From 48142c88ec79c6436d178327f223394759b2e7fc Mon Sep 17 00:00:00 2001 From: bini <abokouamebini@gmail.com> Date: Wed, 12 Mar 2025 10:18:10 +0100 Subject: [PATCH] initial commit --- .classpath | 10 + .project | 28 + .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 14 + Diagramme/Diagramme _sequence.drawio.pdf | Bin 0 -> 41409 bytes Diagramme/diagramme_classe.drawio.pdf | Bin 0 -> 35210 bytes Diagramme/justidication.pdf | Bin 0 -> 94785 bytes bin/Panier/Disque.class | Bin 0 -> 611 bytes bin/Panier/Main.class | Bin 0 -> 2569 bytes bin/Panier/Nourriture.class | Bin 0 -> 777 bytes bin/Panier/Panier.class | Bin 0 -> 1834 bytes bin/Panier/Produit.class | Bin 0 -> 741 bytes bin/Panier/ValeurInvalideException.class | Bin 0 -> 439 bytes bin/Panier/Vendable.class | Bin 0 -> 128 bytes bin/module-info.class | Bin 0 -> 153 bytes doc/Gestion_panier/Panier/Disque.html | 200 +++ doc/Gestion_panier/Panier/Main.html | 186 +++ doc/Gestion_panier/Panier/Nourriture.html | 206 +++ doc/Gestion_panier/Panier/Panier.html | 213 +++ doc/Gestion_panier/Panier/Produit.html | 206 +++ doc/Gestion_panier/Panier/Vendable.html | 161 +++ .../Panier/class-use/Disque.html | 58 + doc/Gestion_panier/Panier/class-use/Main.html | 58 + .../Panier/class-use/Nourriture.html | 58 + .../Panier/class-use/Panier.html | 58 + .../Panier/class-use/Produit.html | 58 + .../Panier/class-use/Vendable.html | 107 ++ .../Panier/package-summary.html | 117 ++ doc/Gestion_panier/Panier/package-tree.html | 78 + doc/Gestion_panier/Panier/package-use.html | 75 + doc/Gestion_panier/module-summary.html | 79 ++ doc/allclasses-index.html | 91 ++ doc/allpackages-index.html | 65 + doc/copy.svg | 33 + doc/element-list | 2 + doc/help-doc.html | 194 +++ doc/index-files/index-1.html | 66 + doc/index-files/index-2.html | 70 + doc/index-files/index-3.html | 84 ++ doc/index-files/index-4.html | 72 + doc/index-files/index-5.html | 70 + doc/index-files/index-6.html | 78 + doc/index-files/index-7.html | 66 + doc/index.html | 26 + doc/legal/COPYRIGHT | 1 + doc/legal/LICENSE | 1 + doc/legal/jquery.md | 72 + doc/legal/jqueryUI.md | 49 + doc/member-search-index.js | 1 + doc/module-search-index.js | 1 + doc/overview-tree.html | 82 ++ doc/package-search-index.js | 1 + doc/resources/glass.png | Bin 0 -> 499 bytes doc/resources/x.png | Bin 0 -> 394 bytes doc/script-dir/jquery-3.6.1.min.js | 2 + doc/script-dir/jquery-ui.min.css | 6 + doc/script-dir/jquery-ui.min.js | 6 + doc/script.js | 268 ++++ doc/search-page.js | 299 ++++ doc/search.html | 73 + doc/search.js | 458 ++++++ doc/stylesheet.css | 1264 +++++++++++++++++ doc/tag-search-index.js | 1 + doc/type-search-index.js | 1 + src/Panier/Disque.java | 34 + src/Panier/Main.java | 69 + src/Panier/Nourriture.java | 40 + src/Panier/Panier.java | 43 + src/Panier/Produit.java | 39 + src/Panier/ValeurInvalideException.java | 27 + src/Panier/Vendable.java | 19 + src/module-info.java | 8 + 72 files changed, 5754 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 Diagramme/Diagramme _sequence.drawio.pdf create mode 100644 Diagramme/diagramme_classe.drawio.pdf create mode 100644 Diagramme/justidication.pdf create mode 100644 bin/Panier/Disque.class create mode 100644 bin/Panier/Main.class create mode 100644 bin/Panier/Nourriture.class create mode 100644 bin/Panier/Panier.class create mode 100644 bin/Panier/Produit.class create mode 100644 bin/Panier/ValeurInvalideException.class create mode 100644 bin/Panier/Vendable.class create mode 100644 bin/module-info.class create mode 100644 doc/Gestion_panier/Panier/Disque.html create mode 100644 doc/Gestion_panier/Panier/Main.html create mode 100644 doc/Gestion_panier/Panier/Nourriture.html create mode 100644 doc/Gestion_panier/Panier/Panier.html create mode 100644 doc/Gestion_panier/Panier/Produit.html create mode 100644 doc/Gestion_panier/Panier/Vendable.html create mode 100644 doc/Gestion_panier/Panier/class-use/Disque.html create mode 100644 doc/Gestion_panier/Panier/class-use/Main.html create mode 100644 doc/Gestion_panier/Panier/class-use/Nourriture.html create mode 100644 doc/Gestion_panier/Panier/class-use/Panier.html create mode 100644 doc/Gestion_panier/Panier/class-use/Produit.html create mode 100644 doc/Gestion_panier/Panier/class-use/Vendable.html create mode 100644 doc/Gestion_panier/Panier/package-summary.html create mode 100644 doc/Gestion_panier/Panier/package-tree.html create mode 100644 doc/Gestion_panier/Panier/package-use.html create mode 100644 doc/Gestion_panier/module-summary.html create mode 100644 doc/allclasses-index.html create mode 100644 doc/allpackages-index.html create mode 100644 doc/copy.svg create mode 100644 doc/element-list create mode 100644 doc/help-doc.html create mode 100644 doc/index-files/index-1.html create mode 100644 doc/index-files/index-2.html create mode 100644 doc/index-files/index-3.html create mode 100644 doc/index-files/index-4.html create mode 100644 doc/index-files/index-5.html create mode 100644 doc/index-files/index-6.html create mode 100644 doc/index-files/index-7.html create mode 100644 doc/index.html create mode 100644 doc/legal/COPYRIGHT create mode 100644 doc/legal/LICENSE create mode 100644 doc/legal/jquery.md create mode 100644 doc/legal/jqueryUI.md create mode 100644 doc/member-search-index.js create mode 100644 doc/module-search-index.js create mode 100644 doc/overview-tree.html create mode 100644 doc/package-search-index.js create mode 100644 doc/resources/glass.png create mode 100644 doc/resources/x.png create mode 100644 doc/script-dir/jquery-3.6.1.min.js create mode 100644 doc/script-dir/jquery-ui.min.css create mode 100644 doc/script-dir/jquery-ui.min.js create mode 100644 doc/script.js create mode 100644 doc/search-page.js create mode 100644 doc/search.html create mode 100644 doc/search.js create mode 100644 doc/stylesheet.css create mode 100644 doc/tag-search-index.js create mode 100644 doc/type-search-index.js create mode 100644 src/Panier/Disque.java create mode 100644 src/Panier/Main.java create mode 100644 src/Panier/Nourriture.java create mode 100644 src/Panier/Panier.java create mode 100644 src/Panier/Produit.java create mode 100644 src/Panier/ValeurInvalideException.java create mode 100644 src/Panier/Vendable.java create mode 100644 src/module-info.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..7b57c0d --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-20"> + <attributes> + <attribute name="module" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/.project b/.project new file mode 100644 index 0000000..30848b5 --- /dev/null +++ b/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>Gestion_panier</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> + <filteredResources> + <filter> + <id>1741770836841</id> + <name></name> + <type>30</type> + <matcher> + <id>org.eclipse.core.resources.regexFilterMatcher</id> + <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> + </matcher> + </filter> + </filteredResources> +</projectDescription> diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ccfd559 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=20 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=20 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=20 diff --git a/Diagramme/Diagramme _sequence.drawio.pdf b/Diagramme/Diagramme _sequence.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..56ed5d372260372c4606d0e3aa10a3a289f79836 GIT binary patch literal 41409 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	?bd3AawZsd0QoGc(EyxGly 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 Ll1o+9)!z*Om_f;T literal 0 HcmV?d00001 diff --git a/Diagramme/diagramme_classe.drawio.pdf b/Diagramme/diagramme_classe.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..03b207292eab27d51d448f7b5a9e58fb4123b1b4 GIT binary patch literal 35210 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 TMX70A#wM0#hFq$uuKsQSB%j7W literal 0 HcmV?d00001 diff --git a/Diagramme/justidication.pdf b/Diagramme/justidication.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1315c12de8418195872e4e6d075cd0a1d4ffec4d GIT binary patch literal 94785 zcmY!laB<T$)HCPhQr)_B>sDSaLj?nc{G=>iE*l&DkjjEoedolI#GL$e{eZ;u)M5oA z1p|d3eV@d<bd9tkUAG`j1^wWXqSEA&kfPMop#1z21!Is2LHfRlMcJNtY56ubU}kEH zLP=3+s-2y_Z)!<mN@7W(f~5i2tgy_~^3<Y$qSUn1qSU<P)M5oounBf{yj-byDPXsN zYy~r5jsiPI-#NcDuSCI6-#as<I9kCNWL&HQvObUyhCcm(#G=%^5~x>#Qj7CTi;`1| zZEW=2^7BeSl%awt$Si#~BLzzc!&t%41i~^=Ff@a(Oce|*AS^QlBalr&`flb5MqsUW zcKWUrCGNo`i6yBvHu~<t<_hLuweG<d3SeD!cKQKD`N_elCDHl;E^hiEsTC#qp1FzX zsZJ2e8A5r2e5CK2nv$95lwT38017lyOH(~#BLxc+Lp@8QSOtCO{JfIXypm!Ch#TFD z@=FU~AqD2>2kVCvCFT_ufP9`@sqY-D?~+=UnVcHr?qp}DACj0<tRD=GNJ!`uD;OXL zB*<V`K)Pk-l%y8vyX7R7q`IUg=clCV`=sWjmt-gynOmBGbQPBrr6%U`a#hUP8||Gh zZ7H-*`a}H#-5`UcS?AyJ@i1mr8_hWC_uypJruMUPBHm?HiYw<%OG)|vR_6Nuq*Yya z*Rrp?=#pgJu()o*nxv1(8{^L2yR)IY+kAh_-<q?N9!`jji{H5Zc{->6hxlnrn^ey{ zY12Mwq+6jEX=-Wz`+BySz5VVzw)WMZ{R|XuzWw`C(#&^8Lgpdkm62IR^P<bFo89dH z8mIDeOH8-D5F2*?Z%N&^_xG+&-}Hh%<h``?<MT__SHI!=r~SO5JN(BB!Tf2gHh=hc z|NZ^*X1~Lq>z_9V&lFwxZ06mRX%%ZClW!k+5o*16O7=;YMU{(YJ`kFxxb^q-=jm^b z$FGyPEwI+YZ%fhi+d9QtratvNtZP&?Q6<yN#?>HeddRw+ml%U~8~yaNx)t4U<j@?Z zlDcTI;F!-zhKEwqABX?lvVE4YP1ny&jb5ew;mSL9z2@h!={hwxg!BB>M9m6qz5eLJ z{zkT3&r_+>PfyUA_gY|X{g>7kdtY@g*{=EJ-+^!M+&3s}y-->bp>fc+V}Ac%M=zG= z$uVEfUp}F&cWKJ(cTaVV1S-T97&|uVO<Q9>VP;NB+|<XR8|OSYeC3<m>Cme&m$J_M zYVJwdRI*lmgTWPr_kaDoou@y3BzOC+{o&{+he?l$0w*`E+i>as>(eZyxqkWLA9ON* z3v-=1|9|e4+DZ3<FK>wLam|Ub`g1#`aIflee}=tV!q26>ohew^*zzb-Ora)LXWzP{ zX20b&yl0KRE$MM!vXf=<&q)efnD)JMuYUNB&edI4tR2fjkA~fGD%N(|@shc$_ieA> zu9gg!cfpYlrWr}jG59fi^4-95a;LLAs~K2LW}lfpTc5Ma_xJV>$*%cUhi*@adT^j$ z`Of)@=W4&+d|RAZt`>8#F80u}dFH=&6xpnMb|S^yTI=l2yOYi&ht@c=7380m=@9?B zX1k2&TC2u(|Dzr2g3JT=%&^tpKjkrB*@7vY;#vn@FfaVd#u~l(59c&fqeAV<G^Qh! zx}DlT7H-XA4SfB`^Zpl)TJ6BqJ~5w{FS4_lnE5K9`f|9!1N|LGZY<K8rhMfT|6i#* z6Sh@vx!U&>TTf}5n-eqr^DIS|+esT29b3M(<tDpi_Jy!}M%G`gCBEh#=F#80uuZ<$ zQs&8z*^iWeh<-?a_>1cw&p$r)P47CdugaUPRL}KKuboZa^SY?K<W@P`;<X<)o_pxe z&;BDOy2{t(-cHBaawpm3ef{4?#a}PUxbQY^SstgYUhZG7{EZF13rr2OH+~fmIoc}i z$+2gLlvmY;gZpCnx%&%3-b}x~w!kBWBVPKuRQi<<(_-ePJg!y<Um%<NYW-`+*I`G$ zrmyjeKQ;fON9mLEKT1waklR`N)^EbgjEyf26&a>P{gSz}#`olnV>#z~t#qRK-L2M5 zPnn!^eAYkSKd#(44PI}99$k8Hr2M3@L`eFZZ+tHCN6Y$oBzx|)?2d??J>lYui?0sE zg)Fq3sLu2}_SH^jr>o~C6xbb@b0=`qZn4#w#ZJ4w2Y<@H!^UE9=CrEo+z)?RZr^HX zT)lp^;7`{tWj}e&rxZU(t2p+U@g3h!-*j#(KlLlyQWLAT&)T&y{O*hbwvt(VvkOia z-E47PCSj?#``gA>tECh^^i4c)BgeFKqUoRig;6GV4_t{&VDbC5Aii<eYiY^F31Zir zxi@6a-TKi&NmJi#$Mt>dHr$=YQ+em*YnP8Mtjp>>?#|fp>R80-g}>RDQ$*?x?p)lx zqFj`pp?PBE_y1~bm&~FR_==xbhO4fb63gzi{os?fgQwHB)@Pht<Jj|f4Ofd!Yv#OD zt0K1K&yBx$@0{Avl3P12YO}w%$?@%0N}sk>zI)zw#<quS%V*83KANR+-u%cZwrty9 ze?+FIsO|KqnY6%txptGKo1A0QR&Mjy>NV%L1}G&<Pt~2lZ|B^;A-CV`q=>m$%2Y|s zi&i~3Q!B3&*;q4Qu`)VSV<mrW-kp;_TN6@_?>X?qM@Z#y*&Ers$5}CF1W#O!($x2R zdLY_UGicrC!;`;mm@U^HyW73-h0XJuV$9}Of8DUoytPtZ&Bws+?ZlS7MVfxMwC}xX z+29zY?x*RX&VPBQ<k@b{83N01ZnCqzP^whjSScyI%(%l>{rREk^0LX({5B@OnaTK} z+4y(EvzsL@)AF<5aecF{mY>eJvdCw$Y|Npu=4CeK23Fx>b5wddJN}-$th4Uwvf%C` z+vm7EThQzFMtPRK_Jx_MH|#Txh^g$=s`|&iM@BHgZG+La-3qNdm#gNi6Em=lm9FD1 zyX;!x@T}{=!-@U2XYaJV+>^?b6Lv2C_|oM|9w^z{=<{EwOmUFzeRqLxfpzC+kJd(~ z`3X-dHcv3~cz(#W@O8wi`L1oo;_ZI38CI1#hP-93=q-!Ye|y1f@tX@9a@UC64?42D z&n|e)w=Cl|(d~7!12#tN&vwhZc`eT)(0%R4t(`LWuUdvze);<8<pEB)C7;E%Sc^~W zJXqK4{OrM!KT30yx#xUa>b#}tul}}&E6v0rD;fWmn#9Mc<jN`d%7mFM(77|aSH-<K z<<x>T!ZOU8^$$P%B=$;)!{)Bxhm=)2O!u`cT3vI%X~MZ^vqK`Eoxk>+yUXkraP8r~ z9R(rNmj8UX@>hY)CXJl;h7(dMWNP`@-NiKDe%>9zwm0tD`%fNa&&z*qetqoyr<XQY z7cTo*QIfTDvi}t?AC(e&%j`oXN!IaZ&odj&2t2+bA5(jjp>~nkuJ(5qGTo=V=X=>R zTR=Rq+#|IsyIImp;?DwWl|G++?=DMo2`ni8yYNKdwVrJ0MOR|oE=8`gJNja#z4Wr+ z#Hn}vR>r1poup}TDYAic$=9_fj|DKEOnKJz?}k><oZu{j<1XKsrd#n|UbySXi)TmY zdDb3T^Qq=e$2a4+BYG~O5&yo3tGv?gI1yR8RAcvlTN#;|8MnV{HZ}?0$de4ee)Pq{ zMOP#|>aK-<2w&b{Zl_dmb@hxDKfR__o$c;@&-JLzo8jzMj)L9pZ@C@9`I<BGjQ%t| z@Gto{@#fqKYHpV#CY{_CvE-G=q+7nT8OtW>i;Eprd6XP2zQ<2I$k01_lUQ{3b56Mh zcH7_GDY$w5c9G?)<SP53hx-ry+8=vK<VdJqSGQ~X#Le|VhYKgMtJM@7m!0W!lUv|O z#=B0LY~2lSs*I2BEo|GoedG1`MAjAO&o~y!NE+V@Ul2CmN<VPHvx%=X_+MS_T*CBf z*PR<%4+w>>K5sJ9eD2JNmx5kYP0zU=#jxMgxP9V-!~ag4_!M_T+hXdc>5YH&R<28U zfAMBx?b?%W9VNf7PvC18I5=U|1>GC63sg7Gd#=1}(k=bu8_VT>EV$0PZHc~zUvDRi z(&DDqCI&}~j^1m2^-g)ax6X&gpDyle+4vpWSZY25?^J%gsX9=b=U8AI%hugXb~&we zPw$O768yH`V#!vm*+1o{G3cGtIF@u^S4ctZh3i*79}P?2dGyO;$H<=tI{w^TbHdQ< zi_nf6ORos(*cc_ombK4Xqp7rHd!v-^H>uaozWjlV%`6Fl)Bj&IZS0b3O1k}Odt{|l z^kI*qTdg!=<lQ&g9m_3fk-Q%;^{2ww>hGx=3&Ou72F&_qH(gtcaqf=WPh0HjW{ZA) zzRx<WZpH2Eyk=|Gd%DVh<}unH@wo6}i|%uiuGbvhjVi`B7r)nM&)oKJ$(m=ar)IAd zoYp&yqeIOg-adDq=Bbv~HuYNFo_{P9PM-Igcfyx3ukP`cwiU~IWgIfk8uS{^wkWxp zdgrodj;m@g&+T7tWLYAfOjr|ODYul};s^83sXF_>T@_ff7uIV5^#ovzW^h*u)W6UV zE=?){^{YaPN>jn2eu=rM`fi5$PKm{-U=<;mxv9l|spUcWxruoJ!MaZQIVrv&`mTA& z`6-!s>H6WBd5(F-nQ%TxlS^uGa#3bMNq&(6w0n|SR9xbmkyxZ)Y^3j#2xS`?8|#N> zrj%q9E0}{jB%tOx%)KCu816+F4DKF*9gD+(ZaInR#USfEOA>Q3lO6NYb5a!y^c{<n zLESA2OGAB-VIa1yk)fHsb7Fx<YG!&yiGrEAxxQmrI@n<fCPwD^zKInOj*+RU1=!wj zh)Qz<1N{i7E+bO|eV^1sP>?8?80iO>q~?Z!7@**A0{4}4O-(HnKz1n@85kIVtO0eV zz;OlkCnyBK3|MCg-e=Qy^40gtFUn2K(N9iPFhmX|Q16YPCTB-fO`vWhiYAaF5lNx4 zAk_d7|G|~HN%=X*G47d?npcupQmN|!4Z@Vfyb_QR#R`U?4q=dfNPcKuCa5o_U=DI% z5VDKGO2D>9D;R?N*0BnRKmdz?Wo>M*xB-@2ojqMZ7J^c&5oBNh#MO89bP36K_jK`1 zEYOF!Qr{(9!O+0K03;b)SzMBu3mOPeFa-7DgTS!~N(a!?Y6$5$hbvfsJ%ZwHkOr8` z{EJdji!$@lHDI=AD(DBLre_wH6jf?CrsOB3f`%eW3kq^lb3sWArTYrD1ZEP*3uvwY zbHPa)9`^VXv!Q{3DKsidz$pwlHCq}ZQnQ(X0U|XU8X6jdt%9az6SUL}Ny26ZU^S2= zYydW00i;vG%+fek0W9a1nUiXyU=B)Es4<P)Plx*xk<L(y9AiXuI~HXoqNF$iWsD)H zYzxwN!&=A~8^OvL3vg;fiBph9qGAH(B>WL!i5d?ENbz89WPykW6B9#3JQ$gonS#R+ zM?Anv6=P#qsbT_F4v7+7Gc!|AtQbH_6>}pC)KUdJK7`>#T#;achy=7^6}bQ)6dj<F z3|Dj@mH8H+&__)%Ae|VFMdVMgzri^J({=b`248uPoI^|uP-4aq64V4@22tK4XBJ&k zGkAG#Vg|`CD2WeLG-7xb5i_X8Fs6s$H7=|S!d4!GGbK`aYym38P{SOg1ni7x1tV~& zhg=?mMZmJi<uRsXs8=u>fpaN1rV$aZU<7uzez<}Ks8B)i09XUei4+ygU`t>o!3!*e zE5ME#%E=Gx0Z4Ie0j}wg(<6A)7{m97^oUwqo8c@ebRi8c5(*3>aGc^Ozm1Gc-~~7+ zsiMX`NGFDyiHI?TBe9knx`t+YCd9NAElrS0bps<rscvXtYzPi+^2!bqOK90)Xl!h( zU}kB8TB?J`^)dX7h%3Bh2g2{f6d^{ShB$JQ&H^lel5#*IVAn(|7=eoLAe15mBm$Pj zQ-mPgM8%Q>RKQ|1@r=NU2vm}QrBVC=5`nptvXTU33Ctu?N)kjk44HHZPUX--1r*gN z8Pph5qrd{fv9u&3zevNkNYBaB&r?%D-?=C?u_V7p<KKS<UxrMEWQHP!e1>9%e1<fJ z5{7jQ3Jl>4`3yx2DGUk>MhpfFh76W4O_}+5E{P?n8ZK5w21cd^#)d|Q28Jdk#@Ysk z>IMetnhN^9`6&cc1Qg|`lqRQ=W<7FxF-A@=;8^xg$_g&Y)%Q~{F@zLn3dROz`ncz) z%#G2esJ4dP_Iqp~Q0x9k{u#f_{bWwXjocZ60ihz9@)zt{u0?CzVrdO&+JFDCRV&v{ z)3salXZF~pr=6>)nb^h^)MTQ5v{SroiE^Hbrl-@CB|4n1JrZNIg19bkII_cRiOkDG zlcp^x^^BVE@Q3b+8%<l3v`y7cOlwPs@rsDj@{XAHM8rqNl0BetLqU#HMfwSjM>2vF zn8jK5Xr6emM@5hOMx;lBK#O+XNrm`S)yM~1j#&K3II`t{<c0$x=I16}JfbVKae}Hu zH1kUbj$Pb;EI9kNEMX|r5MmABV7ujH*|S(^*M*XzLv4&97i6V3D(<eY|Cn=S>*>OB z!|&W>e;tm>Cmq&2nNVC+RkNjO!5+b)&x>d7S)O3SdbsGzhSef$E(UX1)&=iLOlOI6 z^t5~s$?n;wbn@a8i&H8-Z=YrCKOUI>G=uN)if`>NL|nRKB7KCy-sp5syRX&#?DnZe zpZ89FlJUKL%5Ud8{{-gUsgU%ky8iZ<%53{)&$2qUVh83=DeP$mC%>Iem=v3k^KF9n zwx)~L(X#3Pr}>%cNgLesnAx!HhS-I){=$iG4#gZ;TYd3V&Vdx}=S-{e=gJ++v9^5_ z^qu>{^rima8g4&nkX5~8owe8Q`Pqt{A4;e1X$@QRYqzOQX_%91pqt?HN0Ku0jI|do z?kJGeUZCvY-q6V){5sJ^#IUI|?$N21_7h%TrU#!-P`>^9+V9=VUfzf`{=WUHcf~B0 zyu+(l*BeO7X(p-!TzY+~{tVxr=<>JsJHM~ff4Dl&>O9-S;y{19sns*=%<^-d9GCt5 zbaiL`<N5<@{;z-abIrHK%e7J@*v@5Dtk@M9{JrY-*?(a_A~W~T{`PZY<~;jwrJg-@ zmG@g!tjnT%Z>Kr`|Jm}st<G-sv$G}12`2M>|Fq@yFmKL`*1hpGXID<``O*zBdmbr@ z#pTYvDjUN6|ChkkezT7J75!!#R+>%tzmQi+LC*9q<Awaw>-QGceBpoT{!1R*%P)q` z#=?eqOppr*e|?|K;u0|7SDKpy?qch^WELkQ=Q<Nmw*gk95T(Nu)TAUyhZ(#^v$4@9 z$`0@V7TAtx1tU|CrzpqfMn(!COs+|$1|Xd#CMF7|re+Et+CTv$2I3ikM`l3s7RJV4 zd6*1H7NpkL!cqa$_yF-i>Ok@!dN^Yf6BFd73pk9xkqTOffqSKakr^m~!jg8yoY)Bm zvkn{Zw7sw6lD+L*IO}v7N8?4K6Nz^twy_uFs2b~R3Y_D7uWpmL)r<pdKmXf*jQ({g z*7_6Y7isp}$xRn0C&wH*C6;*L<YcSx2YY<0!}F|Xuh??n?>3b=)>6$`QWxGU>2;c0 z*z7cT5co2@?8H1Zi<-Eqm%mMq<<FTY6tXJ!;6sh(IG;T;B^|}zT(P`Zd&}?8A4|J! z9Rbt-{gFP#*6wX0cJo5Zs+CKkGUhFfYJKwWrL}3#x6=h>_BLI+*S*@c<NNnBPv75l zzBx7W(-he$3YJakd)8~V%~)Ae$H4wOUma^s1`hxc4lFYRV`JzN4MPP(Ljwy7)UZ2i z#a$6{b>{z_{WDLhC{CVG&ardy?C;5Hoab9S)bt&g6;&9G8z!AR<C~T+Y34Z}q2Mb@ zT}dvp!t4vLuG)I7D`GF>#D$>?vvSMBx97>f*>>w1`|HKpy7%>7Mfs%tFMjrn^~LjF zH}k9g-&y|uKmY%q_r>q_GCMFN$dxgLta-m7?56zxZpMZk6L+1w`ToQ7+TA%!>f*|| zn~OD6rtYbz<JYT@a1g2bTl+Ws>Yn4uHf`UTYwt~r>#(d;Kk&z0u>Rs&i<tMOFTxkB z;r|f#%FXFe^Pf}=ZT^oo<@GP5K1;o;J>t()pt%10%ZjIGPDe8u?eVyM_x+Az=a;@( zVVgZ6{#CeBU#)uFR;DRl9pO9{zou?<f484g;j>PI=DqjaZAz674plDr^RMC2{gMyA zOBptbGSmpHSg-W`?4sB2SKpcz@Oz=+ZHJ!^s<Y=UG&{8Zzd@i#r_VZ*J=q<uCeuD% z=5}{}^Tg|oxv$)>D@hgQRcWt&SuLK^^7Me=9A@E&L}jOXG5L;D0&$AT3QdlC++$iY z>Pnu-x5Vjb_KCY565QJ-{8ike?ObWE(2a9m>HVF*)xsybwncpUv+iZ&L(vz>2jUl7 ze3zIbHlOKuYtX+q{aUjp|JSB`e!k%6={3SJ4}Px7{kci}KTFR4|Jxo4i7$WKkn-TA zgVD!p2jB2Ai@z1@;(jE4J+LtI(<{px$Mp5yZ(g6hk4y25(1EsE83_ZYLpSeietmA& zIkt0h-7XC0W~Fav*}nDLWbVZ&n@g{)-Lt05)%WYCRBti;Rjbx)h&pxJ%e$+ai~G~( zCo!9+Y&NKN3`=vXipui(^k<1n@S#0Fc0?riIIb6Fou?ddO=tb9X;+%^LNz8_U!%Ev z#~X*HWU+<OQzvZ6((BhMH8#uCTh41)t^Z()t7Y!xIY(5kI^|Z*yrSd%O51mnh}vxP z62+S8$vM-n81uv(PgvNX__1Tg*&R+<e&yz#S}&)~x*F>I?&7m|YE#VRvU8?LizZh} z_DClS_PBcZPX7B?C08|(VfwWg<8zIQa%+Q(pDs%?b<SI)wxXtP^Wml2a$jWSoidvJ z_GzkCX2~gAtrNUiPMXP$Zp+-Rny#u^=JqL|{DE2Ko;Ock?AyRuwafc)%%;;Dw|YO7 zEnB6$QRJ)H%FKBCxpvKqJ}f!5E;{Xe+Q-FbU&?hZTD*9>$E#-PU1{fMW#(^R%oB6^ z>H1f4v8}7VCyGQ{sa!esc4PU<6#i9HR;XWDy`sMBj*sTu+p4B+c@yp~zP;PfeCA@U zE&Vh2)6;JCx!-Fzla{$<v$xsm(#TDBFK$V&k#xK5-j{M?NzYE>r>T#Z9mz;I{#-S~ zA?8nx!_0Zf0?Eq*ynmOZaBlV3C!_5&b&gQfCDq0Lr!$x9v<E&fN;!PmuVCt{Lp>E& zW*mDL7|gr$^4C=}@+U35$j_+lVE6f8OqcWG7oU9PnOHOD`dpVf=YKFOb7fSJlef$L z4og?*aHAT}%9{Z*R!{${#>vhjza=q8_M4P;+x?tnocnZhn&n)s#7gg4w1dSqvi)G1 z?$*^Y=5sAAO($=fc<#-tSu^AA=_ae%A2loP%F>we&)Z<>x%{&0D^$J~FPr+J#=HH_ zro`guS8Q&rJ-TgaF`wAncstwWj<5b4)3fWotf1GOzByt_^zxaSmqeFy{rs^!+4U{g zYu<>dJx)tPSFNn}-LhT!>@)ox8ZwsN;TsdvW~MER3bqoDH)Nlm9Ct^fpN*R}#{2oR zi-C{lSl)TS``GB_?!-H8-^y~{S>+uv-@SKkY`f(l(=ziL$3GXWd%dH@U43!U<&Z8< zk!G<b*6JC?8&<A)T;cLQX)}|u!5vAp0~u|aQjF;{x-a?kw1r#tl&f7;FK)fTwS(!y z#E>VqkNx_(W_|MBso&;&-C(M&ekPL7-lKif;hRS-p4?2jf9A|e9iLMxb(d7k%5B|l z@x1rAQPI64zXK9O&)vJVYL4{BZI5hQES_rDtg$#A{^IrbyKi>8MzF118R6;K$re3h z&)+Y{p3HbMBQ-g(=up^N`RXwHG8g-6%jJt-9$$B*f9<7y-K+hPUy_&p+F0{9VxHa2 z2`L7W&m<r5xHTVKV9ddGj-l;I!4uwS&0070*FGf|IJbyP<UGpokI&iIV43vb0aw8D z&$=<*?#!8i{#FZ@x(C_6nsE3?$4t?uY>U*kI(Vl$@7lFzi|U&GEvrv^MTgYhp0=*g z>D%pztBR@(AI*(T6k52%Hu8&rEnkbvw>$He_Lf;M;k&x@y6Re=HE~x<I@d+N_D)~- z<<iY?@7pJgCpfb?_Se4XuzSvDyR=N9v?uVmMrlvr<;_=jM_KK<a(vU<EKydan`K2y z{;kMWw=LiOG>!Fr-q&r4<-2yRcAs=C*L^GV&IP-Vzg)K1Ik5kf*W|3pvzL7QHFx@q zd!EZ*KV4RM<K~^4ru!~0Gm%}l{i^xtKDFP48LGCARewKUvAfjkZlQ*vt++SOWI3%( zEm=8t>p6RWzbw(dx?_IU9e>kpx1weqOXK%Vh`zpqQR>Z(n>Q<3x=oYxc5OcMtu177 zy{h*auHs)`BkhG6Y`8X7d^`HE*hDVhDl{%W&VTuagcnzAesx@3c4>Wl;<;afl_9f@ z6fFbu8ZI5Y#Jx^oufpD&mtFF=JgIo1vi)^IkYDJ^y&^|eF9?d^wye;9@V-T-;l%7) zwN;noES29eR2Ee~`Fe;&=i>4$)>W1tUO&pxIM!4vckWQ}5|&#JQl5ksIEkC{JoWgm zCUf}xHhTx*I`g6lp6ggOi{#%lGwl$RYspeHE)uzRsJe~Cqt#}GqTK~YuDas8{&DT6 z7qX_VIS_s+TCw3T+md>pX^(jrm1A0Oy>F?0X!%3@hjPjS7w$PqRi6r<9KXOJn{n9B zg0Egc`pE4ByBh8~2KI;QALNfX$*I*p`Y&TCRcZNY{*F}=T8WxDjdD5n+ukeP=YKHY za_0Xy72{3DpE902-@vfez9sHIOI_D4J0+o;E_3cE|2gp_UYU8K^P66i)~Noqa(gpd z1#09i{SQ_OHRqbon_N1l*vN2_TRE4<55~KV>#zMSuzk~d`(k(X1I7xWd&;FpeB%`B zpFP?cdxvwQ@BLNzy_SX_XP<a=!hMA@-<gcJQ#UZ*U$Ndj`hCOhf~Vzy*Sl|=JH!&{ z6*gh&lcGz0`#kg1?yLVlJhf<j;q#xBHB9lxZvV{t7xho~pK!Cq#=1`jo~)j@?S!d> zw@shHyq^+V)n2r$ebBDJb9n0p?zOl3b9ok*bIk7gXw&$X^@r`A-nX(9{B{T4X9?Dt zOcKfwy%8oLy|XDt<+g`B=OpGQnL=vkC(fT_Ke6~uQl4h`*|pDa?X)|0zIBJ8-_v6| zh3{m(+kf$t)V`VgpYA{4|9Jkh{qy>h|M^z`<2tBV(c<{f&r!5ad5-8g&dEw0MrPeF z1mx#bWNb<;@?N5_N$HaCPFth4x3)bWoxUt%;JP^9?93|Rs*Oc|ZtQEzWl7%7Zo7;7 z-SHb2U)b^{R<N!9QhDaR_Xn*%e1Cu2?qQWbtS%w*DxS-5a#2v{$Gtskj%}0tY~r#` zb@z$7BK~8Qb7YQ|P1@5J=eMYRwuN=MsrixE(|6CwK6v-EuULI&@QhB5^@n|yd|v%i z?4MU1cfG0nqxX;AKl|Ufe|~)f|7Z1|(^>ph2;ORGC|GQuW}{-G`N!wS)DOEN6xRv3 zZ(R8(@MGjh+1N>X-rFOtFXVn*+9r5-cblgLlYMicMb$%f;hWw*DKd2)_nxxWiGMe` ze)MS3@)LOv#g_;e2Y5T&;b;C3pOI+xQ+0b!%t`B$X+8JzE_rV|Q2vAUkMkeV51T9; ztbUk1YT|pyP@}bvfv<3i^_k*F8upHM5BVCUzZF}n@wvT8kt><dzSDg}(z@m-4KbsK zBH_9+>OW%)%botSa31#B+qeE%HV<cq?V0_(X=M^ZC*~hGxWD!HbKg7BZ|^8qsO@o% zyT0E2wb~E$iO;PfJmu#3v@|c8`&x~ANBhZJozm+6=I%HD#BlP#J*F8Rb5=Z;+W5%K zP44l$=KTj6Px`l*Kd^jfdZS}`+vK-%{vX<F-lKk2?Z=ev<A1L-KJSn}zs&B>o;Qcz zr^~%gZ_Qok_x{Lw+rWZP30FG(<~=t`{?atrp>1JBWmV?tmoaa5b>0fQ?7sE2kMP!j zaO*(t_oupCJD(k?DPFYGzrkPi-;?ELg6Eo5<}8W-TCwO*bj7@5j#fI>Y$|p8<cvks zuG>$I%IrGJGdU-EPGMoq(hU{=w(+FKSFL=x__FYFf9JbL+_#ph7_Qv4Yg5v`GvYdt zdrAUD>lVCvuKxN-4Da5R3%su<tX(0#v&y@&wsz;zd0##*^$wD{zAkolV9`HT@7ldb zlQuhkF*kXrGw*xVo$u_q+0zdf<@G)gJESm8I=eT!H@Y|O@m4oki5?gE<SQ?eT?`6p z<_L7lA9UIlI6cSY702<<H{F^P7;CpFs=28r9q38a`!dD%L2se@j`a_3pW*+wMR=q6 zB>%o6mky-PI5+p4O|hD+^0dlj>$Yv%cB?B<IDg}mdqsD<w?|xh=`d+k=HmKax1#>6 zUemDpL}<!CC8f!(pIwa~-nV-(tKypN$K>yd?<RK6_K>Y_y7TY)@*`U(J3c>h=tcPc zccEV{aP8kZb^W%uOxaEMazurmv>NW*Y5D0;&z(C(m5GUYdg}TnPfn>-CVH*YImyjk z^t9kf^zlmvw3bG%xn}V3W=`hIlbM+>S88lF&=oy+C4^^z>DgI&OQ#l3GdYyLWcjj! zYloU7YA$d7$7Xd&>+&TdRqx8gzAr^g4_62*)>K@)=u>L(-@uyYtkk8=q0X<DM`l*B zYrl|PuyMuOrL|F}zNJZ}O1w@<U*}x#+1nTzHevM{6+=ti(u<2kK2LHDJv~j&GbTpi zwD*~o8Np9t_Ub)tiahk(ch2ck`KxE>thzB}`mJ4-vgg<HpUB*Fx+*p9Rns4{*GEov zX+OQv$=~{5`SqCT!IS3ikKp>?yztwf&+9pPewLKX+VlR;+KXLvlkfMbdl>38JKjFD ze)@z*msl$@rY$&jv?lD&qEC}_<SaHSnfv>32yfQ4+j`1DYt@q*Sv)~8GhX!T-qNm( zm=LJ?==ECNZFiz3Y~1t9xwvySYu4SF#pyo6>3-WU893hEWn7wmZbnwNaAe1&RgtkG zB4RG(41Z6uZD(H8%38EePu0>?cj_gDU9QuXz0}AJ6pd<=QHe>}nS43+esx*3b81~y z(y?<ktIzJs{eAiUw(b7={@;20KK}2S_3wV4tKDmzzxi3(r`udl*T0RqWVK~kO=@1N z;lpQ3wv<lW^zUDEd)v3YMn8{lUiDnQ{IyZMMcJDp=ik5lQRXVweddXljb-Sam#!an ztj$=cYn{53anq*H+m5{6ygDeUwNf?n(!C@7Nk0sojJjGjE{byYaVwm0M*4ogw0!oH zGnpk<OQim~U!VED^9w_U%*Ls@Iwor3Pt>107dxYWqF?(|d&FWJ|5NJRlQ(MjoIS0c zCR}FedGlw(RVOcR->qx%@^&!ly_eajx>WCkmdEMyKIiv2M@*Pi$R6c6q50Fj4Ls*X zD>YXyPmK!ss<Wo1XqDJrrm*<`Q;IcQ)9>v4y>xrqwjb{*ik+QrUOIJG_PXuH#}n5c zTs0@PS^oV-QPZ!5=6@b7la}B0uThyj&dXmVI`8YYJry6M_m|$DZX^5m?5FTM*?)uu zxSu^fFnM{-=cF$aB-fwr=>Fe5bDsFpwaa~VK1Y1q%xC>>YcTseyV6(hn3wPP^`e3+ zH8eAq<KEwBlcM+kmlnFtzg+ic>Xz;Q_DNMgj5x#V`~TH0(PeeZm%X3S#a8^|&dtRK zZRW{Dn?}qys{F{fXg=HHVvcv$5}5a$wqJ43@P}QEOLMPFQ+#%TPRPV!DH-<e9ZbA^ z>iR`xyz|(_6lee2rT5?^OQ92Yv+FN???Ym2uO({Po4@whok?JB&QC1h@#1>?J3vHD zK;6n@Msww(a?=^@Wrcg$xHnh0c!<xxk{~<d$o$L=j9f?RFF%mT5KuR{apGo4sgw-2 z-eGeS3%)Ae{Okgo{pQb#c;~T4KmIrM;IT-%V?n<kpO%y{@3!kd^l`f34VSn5@y8$h z<WN8Ao;=B>+rIUvBG>YBi_$l2{mXMMY1bm7&FLSXoN4+j@!yYay77-NF6p$JIWtu4 z^TcfZHt#P!vi^(JoUW39S0&n)tnN4Hx2UYVDE{F$Q{RN+<_bUe`gLD<!eMFGzw+Me zskdxv-vtC@g*SO6coh16yjs%p<@=94L1!ljaRlA-I=zW&Wyaj&k{?)W_bz-?wlx33 zYmS^t%ce(YX)X4?R_gcK$+@<cvHiZS(d;E2zKq8=q%ZJ~x_|q%qq)}V>EY$OY#mo# zHy4;R=Z2*Xv*XIkm)El_4NHy4`u^3LZOK(e*PDu#vUUC^9`btiF;0K-l~<c_x$=rB zo_pu*JJ=wk`rV>QZut{=nSwU9#q-)~YQ0XZWm%Hwe?r$Xp!51_i<?u{hrcR+AX6r{ z{IE8wZ7p-4VeP2~A&0Jd0cWw0C1(9kO01dq(mCdC^SI=;<m)e{pa9O+71qT^0vH{a zyGwFZUhvGkA%5dvMxR3P{rBG&RlmqPq5e=y^F)%nvq6W?JVs3kr#$xqN1KGU>~L1B z@4aeeW0UjpdQzsNW?1=(``K^#FV^qb_KkhJ>(K~}uiWb-!uEKC-k9|Ajn_d(d#M#J zTccHW=L_tWp2&9b@r9CQ7fR9{3R?_*>G@xHU)nRpQ2Z}r|1|ek3RZ8znf}fT;5hoV z#~^?2jBkuu-0Dq2Z2`<xE8C2$g4RhE|6!b;eL+%da>m3*w~ThBc`>qO-*{WND?QSz z$IF)4@BISr!m|<Yr9bp}xXw%ReEHrnI_*Z_q34mOZ^W7$j!0P8(0=u757VxisB2te zjY|AkoSJ`2mb2QdxcXFD?!zycbvrK>yEwO|cE0-&QTvO{`QO0_Pl8s=o^pI`#ouD( ztckDK-Au}635axjEUd1w$@u(Soa^YCs1K3H7K+vgG}Qgk`0}XzIY*MMfzzXp2e-(6 z{Qhy?%=ZlfeasII*)iz-ldGFkKh3`Jd*MI#KaVeTzW%#ollb$w7G4Dc@BRLSEc;+J z#bs%$i5{oa%pCjIvL4?J_&7D=V)7kVbY7H=j|#H&`t;~V-xRwT*(Qa<A~K>+WDngd zow!HpO9@NuJ4dP5*uy`VcBFabsYY$*(Gt))bX9JPS%b0Tp6Wm^!^;=gn|I7|%eu_E zdisM`TvH6APg{L?m$ZM8;Mav~7=GuJEB}j(;p!HDD(&XWyu+>OYlgr6X8**n@WVxW zGG%Oag!cM`aVRclv%GOjVe%`-*CK4&A6cAHdY-)1VQ)n5E|DDT8(CR%+t+^IBzn<m zqQK{eUa#z*E)3L9uCmp!WAyzeQqKQ);kQd#5-zKRQ~A!F%<MSoeDLDgCthdbyFAwf z&C!_`H>dbql&i6_;qAq*f0@qoOWSy4%eTyV{*lgGc?@I&<?J`#IB(?p_-0%73On=D zo0?yCr_H*yjz!vZUtHL9p~Fr-*(TQWbI(p;bzD+0L$qXDc=s8D$=j2~<~wh;epPFK z+wtNX*UjF^YMHxMT$#CR_NpdF-%0JR+7{)@&#w}BHG6jD!{fDyN6pU6VpTo2*1J2c zd+NvUi}kd>DLyGQIISVpl3ToHqtEBMtyUSVRi<&N)24NQ*ZW#K;cvyO)QR)oTAy7t z_o&va-GVagTV>kyHZETjSiVWCe8a5;Ti++u)Rmd_7@P_b`+MT$&IEhERD)TG_N&*| zg}qliyGt(Zcu3yfTY2&`wrTHDI`Pfnfs)tzE&QpMD>8n~*=u1{*S5QWckMT$wX0rw zN?naMTl?IJf6-LaGmoC6?EV^LD1FW5>xRAWU2XNAJztvSf4xF7q~*_13#~Pi78UNC z@?`~YyxBJ6OR<-$EvlMYBc7$5o9$g`u=H=z?yxhf7+-l_nJ#eI{HxF6PmA~My3uKM zz%T50dX>~#+v9Uqb<LY*w|2gzeP)RBn-XrrpQlR9mOt5X^WVq%yxyoApUWIhpXvFs zQufisMLw_FZ{0quBzyMl^!smvi?4BO)u;8J-}BHy;=IT|wd%)#&-O5C7T+tpaZ_DK zM5|RSachC(x2q@K9(ZwKNAT%a6O|8~I~VZ9-t*H%c_yW_U;o|oD+P0P7VYQRv4^=< zN{3}}fn=-s<7%6||HYH6j{e}~O3h1w&1}FX?JPiZK;WVNXa$341v3MKSOo<`BZFuK z6ElNY1>`9d@S;noQX_K<6e-Y}F0ho14W2o2V?*%jS(qCt=F|qA&TBRh*z;Sv#)n_9 zZHA3X%ajRjk1n)({boE8w_<6M&SRM$zoqoO7KN-*b=YieygNxo^y$Vcr!Ky@`)v`E zyY$kftqb=@Fn-}#dr9S4h}Oe2k$a0)^LFmpA;r!fyK?rt6v<w@n&N`8CEa`9od4jm z$XxrN*4;}-!via0Vtalz@@-k%^TcxMg^I<~Z|%7zdqLyGw54BapB`I!{f@-^#f-C9 zWF8wWnr<*7s$p#@w@UKACnnZECktQrw9tO_x!xb^aue3u%--0-`YmSvro3gp9g<l$ znHx+0KDqcMmv3;s)k57xU+P%?8#jG+c)a^V<Z;K-g$njbh3!X$r53&4#c}jYgR4l+ zw*UD%5*xquw6$+_=j<;3F70QZf9l7qo*fadojJu7ml!@>U=s7b>*d)cv*yLWH`?Tf zJsLr4zz9cxiHW(T5q!$V(!$sbEkfSZa@T}h-TM7j^?YOFN*|+2dp0BEnLbQDPEIG9 zTN-`l2?;4U9N_7isnRmtrioF+wKG(US1V&>Qa0mijqn`HnLjvQ=w7_`D?@ZmezxfP z8(G@ZqT=^DJ^TIMn6qi?w)p-3@_zq)w`TIzYxlC(?)`r2^_%A^JV!b-*jyIA-TdsC z__8(gszn8(xmNB^PK~~PR{h(3mk`@FkCc)%@!9fwJNENjRZ%*<wR`upH8C$YpHp2m z+fC$U^roc4k7|YQ{a_5duI#e=n%>)-=r8}c-e+F<YPTUplZDfGlD_-j$P?+hu{*zQ zlDC-{((`As%T)2T5qB?^-QPaHc2YzR<CX2}b9S%M{<>eM+^PT9$$guOb7$XJyiG8B z`qRIwZ-te;`*Cs=e~0fM){8$Tt-E?RyE$?TN0sZX^4Lo^uf|sx|H<Fgt?}))%I_?d zDD&4pmapA7uirOQZPJJ4?e6w!KfSN-d-T8N?aSA?;xp5fr5E1zW-zyE%X(SEUAynw z`TbjBO5BWj4BrL`**9;S)Vj(;fc^U=^Uf>ZFX*+0btG+@8)CHbeyI8)ukem;+buJW z8&5564iKHn{ZyitpYKwt_zO9PS?M9S1E>EjcHLXIqR-dF>c-)?q=N|pOUqaEZdyJi zMI(9f5>xqu)h~CfSa|k}YC?8~S;^T0A2}}h9!?G8Ew<(VS@Phd{`9{_AB-;jo7QVJ zf7xpP37=o*Oxd2frqCpHl|Re<i=XdKv5dK9xn_Qs)uM)v^{Z{~uCLDAyQA@yC|4a{ zT>HK&4dzaE+%Gj9jBCDs*pzU*z<!y;DGk0)840?l{zgt~+#A`m%=Lo0()q^1UG^?v znZLjP_>?-K?yqR&;v@A-&ee-t*#G^%`t9HD40d+Ew&xhcU24$$|7Dw@+rC5dzyG`W zwndRAk;7TykU-o2xd*<n^8a03`=i=%>%aexvq6Fef3zC|KTP1vSomR=WSap(HFjpb zoJRkpN9!l`|B=lBY2VNC?QZ>6cBl>Y;R5-AqW?o*+z+gk)kxjaV(;Z!f7<WgZQ-Y` zQrQ(uJNl1lb)U@KA#F2R>FDJtYv#CrJrz4euPk6=hU>og^UFV}oO*cM<Nx-AN0z4o zFKY^aVp-b$>Zn~;$g+UGNscG~D9=)iTUPTl%1F~tWaV$ORyWO$3%^|drucdN?HB(T z{)fr_=Tk`jy8fFY&;QQ{o(FRk9JW90*L2b&`2T%dZg3cYeDyy~p{+3F#clZrt0Ip= zYfTfDgDR6&hMZbbIK}&MCezel-m^y{>-o+uf4W6Zz0<bDUUu>K8!U0B;!P{w3Vt)G z-uGI3zV@fvG68n(`jHKju3lL&Jx9%c?Sj*7-ur%wt7=N{?E7o#@BZOxf_~r!z02Cp zZ>D_vo!(#j|NHNIGo8LXeZS#{m&ZTu&OfJmOs}NIxwmIt*mJK&Q_H9(Q1Y?O7gmvU z<|$5rsai%_w|q8=xN~+YpSq~r`DWtbin@a=vpTe0UM|^W92#={%C))XYwN0<AM?z* zYEpgf&a=wT=kq^aWEG!x`%2N=vb8^F+1>r{HC8NMMP9~JM(&T-WpUL?-6{X#?b!A_ z&yTxZdveygtE<D-?Wp*<X{onZ`8NGI*KM+wZBKe7a{kGuO`c0tkGcwTtBXA8KYzNk zU)owt{r1$SXG(75N-lPfynHz*c#^R2qsKZM4WGSOae`y=#RXbT#;4YnUi<krYFm8p zrn#4wJw3T+GjG$j%`A0i`2z3mG@EsI{p_3Pw|+TP^l`e*UPbTslHO?>t4~axp1r>G z*4Ff_Io}w!C6sYrGQVO`TlThP-n@m&x4+IbzQo7Qbt5}?`n4OT&$eIBDt$fu+qGZW z0kQERDO)%1GB(nm{!3}`gdQg^@4~XL8>g)F@&7R8)+akZHRCy#F3mOF8Z~RPTh#*2 z@Z8%<YctEdb9=8o{P6T?)|y?1Z?2oT*{i$swOYtp^Tm>@Oc&qlsh#<TH+Spzr+nYy z>=PE2?YFL)SR8n}Rd-g#=aXiS?qqCt^WOQV;+1%0h+O>LqPsVvR=-&58=E%$=DmBb z-`tvaQ#U<ZcG9n!70!>>S=HyuO6`+V%$bqx9$m9}y=(I9iwk1EIe*i<vfD3x?UWzW zZ*S#DpIV&xzQ{h#r)s@hv6%(a%a`|>4<=8E%YL7mS7^0`YxU*pVaBWUCssYrdEx*0 z*5z|opFI5*`N%2pZFi@vpUdp?ekJoRzSO)MvrOvQoKEe@a+a?RWlXBuW#?_NxVYSN zQi<Q9dwre;%s(W&GP^(6P0JL#`Y+Dg@`+evTyU(|^1a`a5B)BmSMfi_^Y(@#4>r~K z7-_nnoY~0s*CVQU_twJ4PZ$it9`_zPzOrhcg?{;8hU;@;#jGU`x%+nH&R%aLf3V!* z$?LmT50;jtY?*gccj2D7x7IR#dbYb(>bv*Z2OVme^R9g9$v7wS-P*A4{q^Z>DrcwE zK2yIoX->fIEiuU_;}^f<c`5zON;*wHW8?L2zuJ>;U#RiZTQa}I&3sOhA}iB6O+A-Y z_c|Avr#p6wJa8|)YMDL#=kml=2i<iS?sARTsXygW*uwDEkJS%n&PrXT8g*^y4xV2> z;!P4v5*c0#rLDiL^Dk5JRd<QSzjIE^2Pbcua&Di7*&X$@cWU$MK3V=OzSI3qv>@W- zGv2e@Rn^MpFJ4XD`0DN2;#;q){_f3XJ~*#z`Q1lvY&D`>yz|4?)<5~m&%&R(HLLXc z?+cwv*VyP^*EHR`xBHjJj#<$r>$mp5?7Z}9tzGW4+t07uy6e}zd8u&km#M*97T=8T z6<NN@PW`sg?(?U&or%3rbfIZ)hIg@dgK^y3^`E|`I$kfj(6=;hdXeT-r<og1^Ozc( zS;}Dk^4qoMxJ7cYt6wnL-ZwnpF@2_6N{<y=g-05v>6EqRPmXFXN_ODP+@pMrD`nY) zHR>t0X*X`M^txv82~J;bw35eB-sr6Ey%RzCJIgnfYps9K(ILXBV99d(WY4eVo4C^6 zI?pXG`N;74<?J_G<*sDUGS0cl?5+9QQn~s0r8jH3F2t>P{CVGtgL_zY{|0k@eJvsu zD)gj^Q~lgL&R?ID(i`_pD@$OG=FwZe;eKc2+d21+r|&8~S8~t#ZscwbF`<plB8Rox zYbW|gSw4L+A^*pEsg0X^p6ps4elL5b&7|bRmMI@Duhz9R-~GjBo1c<d$n_r=SPoWP zJHE_0I`3-Ok2~o;x3<hHtJY^L+$nSNY1PBeD!&Xjp1)jWb?b@D@g?sIoD5`{s=aq# zedyd;6#sJS?HYIKF3p?iQJ2DYo?j`{Jl}M2=DSIEFILTZQ#b!^|H(sX+Y=VuG8MhE zPojG7W?#Pv%L3|WZ3t`J`t_V^<e}~lk*3OFYmVm5^|Rb-`ZLM-BL7<7%ciq#FPgY@ z`}Lcv4R^d))oi%x{577NUnf0We)?_B>nX=49Q`D6N%EHB!*z19k+Zj6d->sD%kD1` zN(B;uZzq*}IpuuLX}|Quj@P~Kw@&|>l%juRNysMaXTJ>_--=bwjjg|$8}>w?rE2Eq zg^MO6ws=b|+VgMn+O;L$bxn5doAAPZ^<Bl}$#JXqJ<s%2R&)Ey-f5cGyWFQKsBGTJ zuNGUZPCr<=uBzpFcVOz&rEjJ3<>EA*pT15Fe0_qOTeR6_{;XeRU0aVI-DWb^_No3A zA*p9E39bpBH=GS|3)=jH`M=^iF0+q~7LIZsgc%QK+-|7YAK$Y%G(@fQ@e}d)7xO;y z?d1$P!PLpRk}E;{lH&p?8Ik<2*RP3Hu^+hmxKvKUc-w~sAuN~NMgJ|Y=)T`Byo0yN zocUx}>}R(HtFkNtjWnmcke?p@BQ14FMe{#~Cy#hPs`YYCeI;+a??cK`NhY;*iz1Gl zaH~GD-jliLQ`hxhn>TTn%Zu%A_?P)nME6p+t*F6q(M5;Uk2s6;zq8ellelJcL0&lA zW9r>UY-^@AFK}->-k{#dwN~u=1+@oe4;U9XZCqfMU{^40O2^+M`#*QOKW$v_^T5>u zxelxo_lke&Ru%nyr07me&ZDZ0&65sn@5+DuNAE+)2YH8ijCJgvCcT$CSI-~wYQMG4 ze%_xcALbtZ6Lw<lgY63XKg-)bzdmZU_s*@veeNafMmf_?@w|9@fN6n47JHDjz%JQO zMQo>zm?pK}3zDx;{BcUaeaAW;i#flncWts)U0cBKRHf=vuc}lILYe`&G8=D7Y&t0{ zow!-h3`7KK3f#?DAAK*yQP;sbK;hlpj@?tT7c?JOyz5WYg|`Q6jnwsAWsV<Oo!|Mi z(a?-%lj`5pdxyH(k0!O;(iZ!^yjSneH&;ESAU>B5GZN*rbFE8r)9YQfOey=eyq~Wy zA~r@++3E$C!g7}jIthXs*j9A(IfU(dJ7I>Ww(pbPjk%9zA5lx4yh`NCh98F)O_)_s zyE$;r3FZDyxh-3(B3?eTojSYqpX{^+VhQ2})&Y+B(Tdx<yBpSacx%tu<x$6~q@kG3 zDChc1Vn<hu&YPq}aqdi=B^xIQt+-;s`1ioN#I+B5(w6jWvDY*`Ad``-(Cet*-#BlI z=7W+aXHLwVXngpUhCM64?t-!e;eZ#Lk{x~~9$9I;t0{4>e8z>Z>ZP*<=Y~&vx_r-0 z%jV>nX4BqEp5E4<8t3nty3kx$#m=to^R{Emz3tNdCR%HIS4*3lc3o<GkWhahHekhP zpXpEdSuS1T_D<GT|IGYhjcAGa2j2w>(iwIen0835_`tltY)#(J16&Vu60`$cJLOMV za%V|j^Zc0?s~#M5{`^JmFAw)Q{5%pl)p$eSR;F@h)>r%ZfBi0b9q_6_@47?(%TJMq zzg3s)<Skj!bK&%ft;q)swlZortUaK&z{~x}&xrE#)4w*~YKT3+?BJ?%pm?9f{Qm;y zYya3yd~NFQu_<uVpBP2Eb15sge8|`nVtjk~<+)aWr}=4@%zD~8Gw)x@uAj#*pS?dP z@0?>(|3WW~vKLn#_O3FyAD=ldG*d1*(=Au?iGs2JrIn6B->T=HyOO!i{9@w2&4>S} zxBu+t`}|$@nJM3Ak#-$(uFHqc2$xE!YVLMjez|nk+ultx>(h+q=NnJIb!KYXw(f<c zt1e}>`K_I_iT{27+RmjN?Kj&)nrB5EFuv9%8=I~p@gby%m(}KZ<6ORqvc|vV2R`TC zR(^Bd=f3U@^~N=ix1Cb?Cb&90<)8oIKmBXweQTc263<j;UO9vN&$@=^S()|fr|QLj z$_Fg-ymjBvw`%9zHF4AH>v!CF+jysJ%dfo-@7T8diam8Tdavn(YMD#<>_z)o%Ze4s zS#NA>@V44v^FT6vbx*RlMz{BEzM{gHo{tN<F9&?)`taGQHJf?orjXv8goaS|Il>2u zmQ3$AP&a*f_9m0x-pPwkt_(NqnzQS2SkX(Hwxh4k&DIQlzO3PM)|I3k_e<}5TlqZk zX5p_HN7>45-m7EzJG=i){l;Gh>TVaar|w|dro5B+%-02PBcC7Mc6>A2jXw>!2IU7> zjy}A@cusD^SH%-jIhNHI$`r~w-?sb3?!L~c8}~KOf8N{bbFABL$DCl#34d;<ba%nj z7awa@)b0$<?Va~`o7HuO=3B2Flka&%@BAzjEqP=zTSV>uy4x*l7+-oZzPj;$L9R^H znX*Guf9D?k{A{Y+qoXM)ulMXcw)I%q<C@1gk5eAIB+t8;CzC6a>SJ<rw$3t%;4PY$ zQj8>hx;kf{m|`Jd^Q`pr`L{y6VkddJmUPYAR^VCrBH8wwkIZIwZvoytiFu-zA4#uR zxYJ9!)SO46xp<4`JGQe|N*ulAlg)okxco!x&e>Vf1};l8Hiy>nl}wO0eZQtT^i%Kb z{0~1Pn$2!F^1dy5J9*~|PnCC@S8djsI_Y}&lCUHGz1pi+|KxfkzwDj9!qr-{C4K8I z<z>#eEu^vU`@M^yc54It*_%DgGoGL1pTzgcw5Bxotm8e^nd_e_?4GlJ<y_^bZ$3%g zmoz^0B-TK=KjqSz`9@16Q#aM!T@z@2xZ>=ZwJ%Sf;gPgG_G+o%v5U#OE=~%Fjm%&w zHT7gOp63`@6&q>eJS#DwMXTF(_oj@bja8`|FD?l;^OE|yGsfU#spsT<LE=2WVwUcz z`Y)cfT>D91e@vCN-m}ZM6W?&pHdK`6X-kyOYwG<ypL1^LfAM2$_P_n=D*NfN&Hl~X zgkN0Wwl02_*7~Y%`&`%a*PomIHvfHumZhHcdTZ<KEw1OJs^g=Nhp(_+vg>T*Wp~-F zXLW03@12|FFnjyjYd6ClzusRRTzc3txAwJ9^wrt>7H#s~v?=T6wY$9W3-czt+MOEB zyJ;=k&1-k>?f$w=>RHIfwq?`oghPL>(&zbDCnwsO`SAGP4O%xZnTF0+o-DgEJd$6t z<*)Xsx0e^q4V@*a5n4I5a%xbkr&g%pC+6FUp|3(G%U*NNxxe8QQ{kM=U3aEL?OyZj zjDLCg_gi_M*VYy{uZx|&iu-!fC#z>>8Ks{-tM)%zd3Db}Df!9oncH;lO$tk2y}H!r zbzJJ!;;q?VXI!nG8hI{qU1W0F+fc1JqU*X0MXRUQr0>(N_xTrh^x2l3ImtQIQ%kLW ztcu<<?eIKhxqY`bpWJ+Q^X=jTi`$NTY&Y&t`E>2f)tR%6wx_;3XEPylLKk<m+?T4d z^nZ%MYYuy)WHW9x-L?Dmfse|Yv#+1*D>=Mdr`{#p#lK~P%ME2Nr9Fbag0HeRdgcfp zQv2lEIzu(8wJSN~K!ly(ndo$l`8#a0{HKVSN|c&-UFB(RTill1Hks{eo`yjMuP@vF zg{Lnh-^ja>+;JoCM&6TuE7q-;r;*sX$z9Z?a`CK1A+sk6{<_9H#V~67xmQ~yculvh zI3YFrf$27m;9lRh^Uvd+ughC`W(nV%{-@iwJr88Mz&VFw4tK~)^#$jd@3Z~mTyep4 z!F{%SoNuNJO;rDs6+Hdw35g$fid20?TmP~iZJo?^;I>%%k2|c2an{C1Y^S!ae9+j{ zIdSSni&e%}EWb=Xm_B&l@Siutb)m);?RfE7&HM6Rl^K_GPl(j^++M9)tbFjvjmX<? z%O<;6#v0B`c$N12TvF2A*DH3<HrRC_VTt$d)QzQ+`WZx)++J-iw6Zsax$jbbsYnfX zh0Kq47rs2u{F+q6r^_!V%z2})&Z5UfZ&zzsu-M!b;TMKdN7zcu&lUJ?X+F1DxuhW} zgZa1RqnAf6X3Af)m)^G7$}3UpuG{)cttFg$osSn>&Rbv}Ve@L`QoTC{r<>k4nq8Ro zz%jx#$n<Xq-$v0Ky{F2yz0Z}z^lpjCED@0su2K8JRdj!Oc|_QT{$+|^rMnK>CJEnd zS^d4J%Bq5EURt2_-NR;^z87SCxg56C<0WsL&*YbkRTE7WOq<PCtaq_#NIvgdqVAp8 ze9*jk|5EwK6E1Yl+UFSkps<1MXGP%JcZ$}jmqliI=3a<%T)&CM%(0@`^5CimxfAX= z%NLpdpJ{N2-~4K@_Fac^1u6ZDg>woQMHu$w{r+fk+%6!#F`su!pWbr0iaPUC_uScU zvY0h4fAHY+#lss-_;=-Q5r6yra^STCH8~S(wZ5%lbrwB%Bq8X-_Jaz&i^VE-%$9SN zmfy&9V*%?#&1+hcr=qrg_;U5dL#17F`z{rKc+7j`Z}P96-ou~8_IKrT&6B^gygqtA zXZs>gli6YyvZDN_U*i7|Cck+8CHb4rZJ4IHPdR?|^wr4+XA9oWS=ID@bAqjSY5vh@ zt_uwFre8R1k>;+iwsB?-U-Y4E8>4S9R8QS|iuX?A+W+NF!uI0pwN+P1>A3rz{Pe9q zu*gpLsPqo5i~A)1-gWQ49IVrsy4mK-3)LzATl}AyR=j)S{zE!x^NnS5g7#aM<h=Oq zJfFS#WJh3`+@lSB?_5Rx9hmg+aKyGbrJJ`u{8?7Fze7;$p~%riK_=YuZzz>@s2|;Y zO7&FTQ`4<+xxwG1Z?}c<+KT6J#I2U!&GW(g-@k1gUWRpI$tJNp|95?eagu(S^=hfK zVO-uaTZ<F?7ZR(w;+Di;{$0U*MCL=KWK?`-;P#n!JD!`B$yZOYJvT2Yf204C!^R(b z9;)tX3jb`iuO<K3=4Sb)`X9@WYFum#-NJre@8g0B(cOKESgtzRT)wjQm2KO6>Eja1 zC2#xgw<vw|Wyj@xm-Bfp2K>6f>b#xD*6Pdc2Y(*0{dm8~MvC8mee?9~i9GL)7VEn` zYW`yUi*@gs-@g<e`yB1?Pxb3*i`lc4t4yxX?`sa*?A~;_d7p1G+2pR7t9x{F=hqGS z8?tX~eZ%%m_V3NkeQ#6$ACx=tS-`sGx$8Hz-@LzNe@{pjC~my?=8>h%{OJpqU;Sfa z*M0ur=9cxxE+5r@`1)hpyN7@ODAaqZaEM>KZMM<vj#{0HoUnd}y>`sW&`+ZMM)8r0 zViwB;&I^tUv<uJ8TDvRc?ozw74N_e^pLtI6TJy5=yqEHm<UOV~=a9KnyaAi9-kLD~ z1^4;qe2#u!b6D`&S~acdAI%N*gIuRq$<A)?kgV7op_nJKKSX@<<U{A;lJ_Rf++k6% ze8uDWomX@0?9Ujr`s#{zzpUcg^!JbMKf(WNCmosfvpT1zNVvLVz1Y<qtC+4lpQ`dy z>T9gbgZO1db*j=&`n$7_m>&GUq^MN9I{5C<`O3SCdekq>o^kd1$LPQpk^6e`mx?X* z_&aBs;=BI~<Jv0xpGM!X_}H|m`<|fRKlK>t{DZ4L^2}bB^0B)@@^-)Icazf#gmZXH zH@=@R-S$k~S+;^J_toDe_S#70dp}MK>$-i!_|U;Pfr(Eh+il93cVyNNPdk5`Bnz#s z!ui%-`<I-anZPPxt!&`3+JL$2gUp)Dtr5QS(p#r^ZBN?!KjVeq&ZO1rS4110dnd5d zq@626@xSHN<h(u2%Ukz(ww7=t7jTPyn7hUB#$mC<yYm~rP8QZ%GUfcD4N=PuZ1=sP zKdDmf+M%#5za+2yU%v5``3C+ML21X&NG&n!x)QVgN>b{l<iB^j(gk&0-j(gT`Jv&L z&DkVPm#*3jakrnZO9a2o*?zIks`9~ord`e_Td$X`Ig=gm=-a}~Cs+TMPoHn>7k=pZ z${EjnPnoRQvz=x7;`Y-U+)b1GYr3Yf<}c0Kv)l4uc2o39(+c+wPB90cvwcte8!OKf zz!|&z*N>X3Yef=!YrFo6{JyyUM%bF$mtUB!ao3yXwg2#E<sbH;wKJ-wPTyD-#<HG& zpND6MyPDFKzSu7oYnSi~Y|l)ZpvHIhN$o+ai><P+d}qn-QO`)8xW!}#llFV%E!S5h zy?wcmr&RygyRcM4{f7O?nlqm|S1sHXy+`NYiju#w_2NSCQU8B;6(s$+&PA`ZI2uvd zF54~K{%3Yb<-YUBZ!Y6V?+?0j=Tt%6%%0+NB6E^f6}(${ICGKU^EHtb&mPTex1Ppt z{+_!qE~;a4p!T~B-346HO|!2X*@!=$vR&%=qOZT+z7LwyzV1-x8us$J`43u3Waq`* zNy|U7_rKVjp1h+!Gx^_jlt0>1ChuqYcSj`81;<~8@0|KyeLr@*@Nxx{`i|u<pIdbQ zZJKxV@8{`XY~IPOzqr1@th)K$k(aL|&ZX~H)cb$lx^&7PR^@j^+FQ=Pn`U=T?wS2D z+cPKl**!wpe)PW=7s;H`$u6;UCeN$H7nYo6)0A!;eWT=68g2J+&bKpLYM#t2yyYzF z5$)ILqp{)JM5Bb7o%O7S$`$vy+*ba4S5tnFWxnz`!RJhgi$$zb#haJ!(W>oh{<+}K z>*tRTK7Nz_>ZnNXi+Jt5RWt5;XNm~Qd~uuNqouTd`=%2r_BXxG6o|Mks~6k6q-D?J zuI_gW+b=9<4E#UgrpB3jEgDO@_oglKIQqy}uj`A}{H2k0mLD&6?)b6kk8nugqC=l% zbF$|2{_E_Sef4U@UcqN9$9gyg-5ghniW+p!=E$EJoFXnh)knw2&&!0%llPpDW}^4z zXr8M-e@;EM>f_X@j~jD3CBo;#UA%E)!YjMbfSKw?E2nM>pIz8p!LrvV*@ZP_y_}Rs zwb9$l8G^O~f7aZ8sdcF`&QVaBW8dxmcNZK!c)rh2xfJAhNxiW~>TJ(N&5JfgSJFyu z^-QiQ-XFN+cmul->%!gNXP=$u)$^vjsH(~<=84x+bxm!}zN5L@`ffdpsH<Fc`|rs^ zm*=-Q8OXF>p2zib*PWcRhaU1T)!%66U>KLYsOQj;FX>#VJTB)V4GZST3cS<xd^Y*m z?$bi2+HQGI?*3eK`m%S+<kVab@6{Um^9|M~zX;Dc^K|FEPbY<o@?@$)?|n&kp1*GY zV?Igl^`=J4)RR3ur@YD9^5&JpmC1qYUG_>ZbvYepmm*-OsrgcHQ}?|SFJ5#^U3C0T z&2*V+^$YDYr`<X?>wdsdo}2t-oVya<s;_t4HUA&a9Dj@3cVksGT`Mammx>>cdDs@t zx^A{poGHKWbLp$nnvGH=>*s7ga##5He#yUUE#!6@EA^FaV!1OzN%`B+6f?;g3)MIN zRC;;nknnO_xo-Eq6~e*=!pYog|LQP)lW;aF@w{nybI%Q@rJiie{$4&OAJjZvJNI^e zdh7g{joHhTYky63ULD)pou9N<e}j-%jOn^(e-}o})xUIjZ+m}gTyJ~$=hF4dUdN^O zh8~-_Y$emXBL~;A#8@gTJq&vBI41FhXV%Ww`gbS!xvFdsTrSi#Ie60J$vP=IdYYa3 zdZ#4MAAkSmPTB7Z6aClUusuBS+J?YblXZz7&pJ=vXYu8WK=jj9e{FaF_$a>h-tN-* zd5?T|9K7#QJj3z(%eE!Y&TbT+BGY3z=U)8x3v-lT+OMou{@ZF5ywb`tEhwk**ONDo zE=}6iS?trfSa+tFe^P2vXj17q)9qzlrCx7+UZ1%YmYw~!?aI5ryH}-`<$C^ow&Lv7 z`?Izgf1MV1f8{;PxA(5>c7MC}Ui|-(Z<m*TyZQBMs#juiU~K24cjrz@%}ol-nV5D; zQ!_;AZr9qRKgWE|GgO~=-J?Hi>qU<(m;WRMO?-QF&RkXfu#g+l+*17}a=9T==I5tQ zW_0`%;Wyvz@5RhB&HZ*(Z!OO~dK7%h!0=StPmiGb^)nR0@<nD|F7|rG^LX!ySiTKY zjDAkqynlu~Te4^7NsmhjE(_YH_sn@Clk#OtUTl!o*TdbOD{GdVEU-QKhFR6L*lAjB z&Blc$+m~rwo)}*Gwx`pTS6b?mk<qK=eRB^@-o&+LUC)w_7hgTOQx*Pe#hIp!$!q_u zoa`;NPGau#=?`b@^YUD?HnV);(nEW!v*xsJ-t;+V-KUF%C$G(TvT9Dxox-oecT%su zzMJgjuHLJ^BQGh@@8F!2(?0?;mwvq1`OG9cr)rY&{aNODlWU%@Zu_=*?iZDBN2mU> zKL4>W{*?b@SC=mPw;8iK5>i5@L<HN|O1$sw3p$lNImgr1Qz^5d_p{s0r0C?zoTyiC zC1%~w7CUFLH$d;;@yDklH1_a3+-leIQdCx6URG6HPG{dw;jas$f|?j-y*(qt8LF{m z^|Upe22zV-K6VP9lJ;6PEl2v+{MkF#Y95rCC=qB^=oDN2dXio3nk4(k-n)ifYOm}1 z4_y*a-6MGK(<6?2*TQU;+p>iUP3}2;e7v2e5e`f8ZyaPwxe(hZzHamN+Ed?Oo&K9_ zB|HE9RP8@s9_)UkSgIMR(Ost+&9!Cb8|E_t0asN{o_Y3#QS5bZzsK^Ne6#Oqzc+tR zkv|=_>G2YaWuokjzFT;u_jqNlbJl52+|P5Ai~G(Y)A?sC3~i>aHm{J5oMx<T+%0V( z+#}tyF7VpLYdotBR8o%bTC^$na?qt62NxdMI{EB`d*_6bCwTR_X?5ScJ@YDyP`+o@ z@+}?$wP&ZN%;|f4EH?LT@LT3%_wVj^3O(z|eC#`u_L;OJ2V)h@-?uFK5wxdi%99-~ z>-wJrd3$|2;>2@*hmvK@)9Oc;*T?TZQ2+bb``pTXe>biU|F>mZj_=7^Js(*kQ<G0; zcP$tF82f%xWU*Gcy<N$JzYE#-e?GT(KHuKk-{)@gewUp3zHa^Q1BR*ZF1-D8ckYpg zM;d0RwSV);Uu1rD{x0>e5v!b5-V50$*RCQLJoCV`jb3xyzXhoIsTt)u-Rk7BTO6^i zXOg1gw}s|yM~{8tICq63*hIXfqn7J)Rep_+&l>Y}I~2---+a4ayU{Br>XhQVqka7C z_utM;v@DF#TQZN!e~!$C)Gr@9gWn`?udWE)aPNFbvdfc(AL|cvb!14caH{Ps_3iQY z@$>U667hd})X2ifO#Nnwd(-nnitpx6k;yDsx_i|W^>;u1?DAGiEtuZjKd->DzV^69 zb=#l2y=@bB$7V?E)GTSNvlGtzq_65Wd-{|d|J%*sZ&Z`FnA^Sj|KX$VgWQnxThGsU z7%%>vQ6e3=UD8we<h0U_s+Q9pFHk&p)pLX5_a$n28)EJrGgDLzkP2RKvt^s-?frMA zO}bFjzTC6ttwuoCOSUMDo6BOi&34j!SkJVyVRz>2O@DlI{@=IUH2K2Y&3-1&&s;o{ z@odib>iyq;pPMMNi=83%&f}ZU6K(7dNog#PZ`2HIvbI(9oAa6R<pIUjM-)#ob@9tI zZVnK(5Kp*Ws(9|IWaQ-;yDRK8Z!()6NY|fNa(4aIXNNUP{q|><G?@24p4EERytUZk z_>&tkPvnmOeJF2Hr_gK3=P9Pxv)8Uhx_b5VwD;yWV(-1*`2C9QVY~CQ)~vaEpk>;I z*OAG70&_nySkyk&5I*q3vf$_GV^i3BRw{I_K4ZQ3+!sc{?$B?KF5ca?*X&qWYH`)M zT&3(a26<xhZ@xbwn11x6#p^FDelu=~N?JeZICCOwc5kGv{?&E6Ch=wON}q7+s(LfC zwwfQmfUHTuuIFEVPwnjY_fHT^S@c88)byzEgEa<zoZg347cvI3McQr<{Bw-Q?01f2 z%ek}c_v)-07<ri#N_H<|aWy<)@GfBvuhi;4?#i`}*K${Xs+WCNJUi=Hh$7b+&;OGH z3yyL)bhu1dVf)j<*+=o6Lzi%|wn=ld!5<@`oiF~jm+z^(eXaBNyPDkSC$ClppZ9-j zzbBg~JnqN2cWjyu)@_!^pP}_9Dd+hW>GvVa|LsYC!1?`!aDDZ=H|IaDdOp1(w$Vm` zJLm9@vpZzocpc?_F=Op^7M+FbJMWABcQ(lr-M*{5<NMBc-}gvWn0{%~IN^6vmTU7K z_V+7(KR1{xw1dONHPB9I!%D;Xulkp~DU*KeU%A(VV_UhWgy*6q9+jTcdxA=Tl_xKG zzjUeLqFef_rhJhIOWI+-O}|X(*s&1#=S7CAYr_ouZcK8nbx;foObILAGI6zX?;Yoh z=g;@VO63$y%4?KhzdZlKL6+Yl>L*S|>Iq+N*~opZRaP#rSp87n1F4wjjlL%&Bb%A^ z{?EFZxchI}72^i>YBnbJ+^o=qhSy4=|M~+W4lZ#2mBaHX^ykTkc2CxSl6P)gIaj%{ zC(+6`&Y+@INK!8A$;JrJP@V;AEBt&9tx#Ovao}BYt7&1r!OleomK4aHuYNgm`m(&L z?BBEa3qD`jKlfI_Vl(%>6W`umXOgvhS>2!a!SDb6=+$nj5d4;CA1A;hz1sam0f(E9 z<NIqOn>$?AD6qc1xb=+bndviPPyIbL`BdW3uEn8$eD@~oUzKY5d8a{g7fXcctGU7j z=elPpGY0l*3bH<($d`EkeY4+0&SMf`4(A`(EjuN1vG`uSiHzFhnSJdux6OK4F+)Dc z{(f<tjf<7Sa{tMN3Wp0ewevX7;wloDzxcqDNiP<}Y8mBhI5l7HT{7<${hLwoOu1gB z-XAu;O8<R%@&k+h%e-Ez7^YoJ+Tnh;=-J;xQfHm5zr5PFwJRfc-{Vv4`-^n{3E6LT z&ko(T!F<BGD-Ja|*1yl3>Nq}kZ)e364W~Qv7s`L`Y5ew>olo-i#0Q&y=W4p|U3_rD z^QDy)ad~_9NXBc|D{lAQCvHFC_s&1d{xJUY*mg6;ph|DQ#`$e0bblT-dVN;?smr{l zDarSqCtqG6_wCstv-n88pWZ*cio-u|eId3b^xm`klkT^cohpC&-u?Tt`7ZrWznjWu z)ZP8Q%I4mm===FklFth7<A2KkSACYfWBup9<#EwX(|?IQHGA-NpXtumwdTL$C&r)q zAN8;FpY6}Rd+rKy&bYEdi1W(Ii#aM2f)@LzD6B9v6#B5r&{W8yDfU#6NTT_qzZ}0) zcb?j_Dt^lOou4=9&!5~l|KYvb(z^ZqhMY`JKWmIspO`mI`1pKNpljgwmF!mvzs{&~ zdU~b(OWK_t$s*3#F9Kxz(zZTcxa|D@ZDzkzKCnBp=<-f2Q`oH8z~CbHB)&DT_DJSC zflZl@a~}z6q(;q*JnHr*=sd%pg^lz2&NFT*UUWO^;MU%VX{qUvVoQyLo@`ogRhx4q z{M*yJsdLupo@}^Yb*H(ZXl=x~jcWU+Gv@Iztt$zZukctqZ|S_BH}_5HJg{cMH&f=% zVI8kjW^(uhglbgiF~l%2v~PT+=ydFJd46))#V0QtuFakA_4MGpyWdi^KMMSln1951 z=hlS#QRR6>Hv7$<&Hc0b;j+!q`Q0WNQGt>v+w(kHC*7L4ou}mcn{~zcZ>);V4_$um zTc1(G6)^M2f8W5JIn!H~-jy(}3ePleUMkQ$+2`2RSG#VO%75lFKKo%^Mo7~|v(<qT zZyTgiIhB&~nmT5vSQ;L7S-K*6(xL-w_pi&IOy6)b<&e(;zX?7%vYxBATzVODWY3E3 zH4$^|3?H>5ww`(^nDlswQ)YC{ig_2dacqh07u~exw~KA?`=ZI-6(OebM;`~uEPW#& zdUEE)S6?*m`uO$!3ZDP}pN{hv9)UiK<2NoaeEsfuYDJLq$s<Slq#Oh?))=v}>u(e8 zG`+FW&wr-M{*Zp{6*{F0{W67bDdf6c_ulUDziIxF^N#~xKL3#)@k^g=@{ej;DUZjE ze4Dr?&a8WMb3;ht38v!pYnkr7Xf|wEET=R1)dwHJ1xIJ>?_o?0uw7@pWYd$Wr+QvA zPT&8gX<MSVq+aowuo|mZdd5~B2X9WT*__?T&@a-fr<UN<lj0TS%k&_B%lRWG8Wo=I zZV0&C@$y+3(-9*^C2o&7s=K8=B-QhuWf8p2c<1~%WrM@VIT;?O@0ao@VU*(h_3Yei z=~>w^b<@({ZvJ7l`SOMbZ@8ad*jAsonEPGVh6RegVG0Y~Y9=VWGdOifp?>+=DW~tL z<a6e5)>&Si|2J>KeKq+m`{`BMAHqJIwRrB|bu(nqnyHhEgMYqhds2Gx-<yDIpSTW{ z9{lxS(}Vh7_qinIdpx}UX#dB(lK*`_RlHhkA$}!!;gkgRFCs@LGORz=u*W8gr*+D) zwt!Vaue%I4O1#fx`1&A`MULr&)keMe<=4MnmwY`fE!~9qRFZAA!s$0>`_lVUZ{{d3 z%i{`eZ&^9}P+<GqM;H90-(K;)DSs+u^$+j!t6Z#?=>MF5YhgNTWc;)Q<9dz@NlCV% zzm$CYzxo__;bCg;_Qhq-J@F}9Ll)heuJNEkz|6DWnK8RD;vtjm#*(XMu{_O*$DT<o zN=(%Yn#ysgg@aKpM46B0kt5TUk_QPIY!k0##A~QjNUi!azwNh89+x<OvWSm}-XWcs zO9k#OIe(bXDecI#o1Xqb=x>D9r3z+yA)hrGes=u#F3B?Fcm6l|w%RuT@0!dHk1nMy z%zhtR^n8_*dGYHjzRrRlrmdZ*n<KwcS9;&mjmh7RrhPu_{Q6z&GbiI&AEOTVaEZ<o zowBs;vC+$n-m>p~8q?l+?UAXrJgnDiKQHk~hkkYG9Mi<f(=LcDF0C-$Y+0whZ|Y9N zqQ#p`t2S@rejo7ev`z2)YkaD8Q)c#6TRipq^YzEvlkAWBAGyys{^+-{ep=u2|JufL zH+l*jzG@i6RdDgjwA|D2vitSY^8{uj2vjREwoAE2X*INX99Va3&qRlS-j_a$#roYP z-=s;%)VBpn>|6LRaNdHG?s?P2f9CC*p8oyA?}|3}#`LD6TK}fK%kXP;ay*u}-T8;E zhgPJ=&UG$awTa=JD}RSB<Bm~Y+}EWWk^eH^^4g(oBCK7mjo+FbHfp%+mFsfl&;1gh zQzfTW`_JIp;{C!Klg>YQIj_+q_W6v}4-L$l4@-($F&fSZc_(>hsrtf$@#=nWHZ%*f zt~(O6ldnM6>4ed|dx}!|)|aMC=L|CTeHh_#`bZJ$9g#L)vs)1k8!O^6^%ADAsXU50 zU=-0Ep%I>SS-ov-D$gI=H+sttsP^pC{OS1h%8H0{-FyqIW0EZkcD*b~u(+48;!{0C z`0X1nIFcBxCfZxy5zkr1WhKGzr|&E4%qdqDgEXwO0`iufnkf-6OJ#bfXz-1H`5T@Y zx?B=iajk)OhgqC;>G_bA3vL`rGT6Ash0*V+!oSBK7w@kBU^1<`JlD?pyr{|FCr|g5 zZ;3s5=TL&p)~}ll*4tEG&b@l%%G&to^wfX+b&pox{=UmWIgaH`MZ*SVzTi3Aa}P+* z;9bc3Q2GP!8Qz7`hn)P@u84hAd#sw-UqYVy0}o&8UYBThUzT3OxW0uP%2q5}PxZXk z6ZTWSo4($IPvK797J12lsh%%On>rsIb5TrMw8PM~_MV58&xbVi^aUFv?upzJH*1-n z9CX6^@5VgE6`z7^Dj&W&uND4vf`$EDySvT|B5Vhuyq+)}7IUAdbJA9G+w~=ud)CjM zkf(Vt``g;@nm2v7F;{l3pVTouYo(!@j96<2k5cUx{X;ig)Mafy&bi+-QTt5G8W;Ve z|MH%6FhBk=<Mf9O%87-p>mt7@S**PC#QR9{--O^*H%_X%JpQzD{+h1sXDy4Xu31a2 zDGR^<{DZ3j)3leu$C?e8BLDcDwSIcA*8E9V<)dR$Ep)$z-b*k%y0!51&Ro7`vCEUr zZhZFS(2YY+7JKfqi}W+P`%`yXv@E|$yieV%2e;lj@b^gdx-iw5-V)$UFn!j=l48pC zNW!A&Vvt!dbH-fz-U)JTr+$ZUT;zKBwrWv@%Vf_BYf~N9PZ3enH()xUa`$DK@b2X@ z2PRJTd@Z5cY*n?KTT9ij|M%zLpV&XCe`>37S;)NpLSy)g1KNR}x85C^9ecyI@^Gs9 z`<;iL*iN@E|Fx&@)y&?l9$^!-R+gOq$<VW;N+b8mlCPV*x695^W>8eQGUcXZ>y3to zGEqU@x2N(5&E?FlWs5$uYDH?mDJJQr=5HppyBTjROlN4^tfVF{Vag(){d-0JA*1BW z87%3mml}1fQme2~kGm72`;a%RX5q5Jc1fZAS950nRkaIz;a9CUx8iU4`{z?z1x}WV zg&+O9@agXLdtZlZADGtb>HE5a$7kQqU%UD3KV1D<pSt9>-o-6JH3gp%uD@=c8|~I_ zEag(EvTpLS`=<XU+|V&@S4cbZ=7G`~$F@Hn2Rg*tU8V2*P^@nG_^E8c?-*CD@FORa zj~^>sr^%n?D-`-hROhMs-Wf&vd@TRpbXw_g`k0LFSL-PeAN4QIJfS(Y_FQ>H-M)7X zzy4P|p8PNURb7hAW4_M{kK~`vdour%%{$Y7-20Djbgw$F+ubzo`OZ_@k8U_?vqZ|g z;`*;$SL+|Gd)zDi^XnnE&riR7m0P^7Y;owDsK;LCR;+M!UY#x&m1Uk4V>@3cXx^0T z970ZKSML?*m*g+{A}-l<Vx3l6{@m>cPghk+R~~7Q&6p&vRMr+z+Hdjm(`kL?liv~+ z88YvZmMmnjv`IRUDE{C<hrUcl$nx?Re){J%na($#FJitaW!dMj_sQ3ZZ&Hsio)a*% zNw<1@c;Ef!dv}%hf1h&w!C!^<7j5s(W1bf*xA@V^uV1R$Y}ov#{><<Rd>@#9Lsi)8 z)yMhoEN?PP%<N<-m)M+X&B@gJV84f|uJWrr|DKoG&Ybhs^1u6EKYuCyNeUNJrY+s% zJpB~gqT5F|DeO4);7))4&Qs5(bZ?Qff1z={>(kc<Ynj^j?2$OO=B}F}&)g%zZ-QQU zm2e$*PD?K6@p-B;i6OG@^Nv~x;rhufY>)Y;XDt1-a*0{0N7uil;)cA_x2JuqTJ!vt znAF;1PiOh&{#tGvZ&;JvY%OG*HA_=Ef8W11)oY5q)j~Eg>}T-WE@kt>^|82M_q6Mu zZvH)%?537~gs<YWeFXc33v+jLsUO$c@PEO<h*Y2RtN8c%PJMl#%k#y_J1P8c#XoH} z(V0}dmGfMa_O`EcUnd{a_p{~m%6<8TW%uN}{j)CGe0z6mk6mj|&_&L<Atg?B^BCq| zW$A8xVSZ_qVs@iTo|tD+nE0M20yqB4svc%awB%P@!eqNG;92I$^c6PYJ_TOe8V<Gn zI#zRW)$9k0!fZv9qSg1LuJzl$u>GWC*y_aHJ*l^}E-R-5a({l?%Qj{93LhCpE#*ZF z|N5S(ac153kUwg9W8q;7yMJX?wJtS}GlJzfJn!dlzSA<ebV^J|bK<9fr<|8(%$$1Z zQtpdwhpu0^J8idjjK`;Kol_Tf9TbVli#ewoBIY)I`^%|w6%Xb-7Zr)^nm%)S)U;{S z&c4iuw#r}oRO)o>GV8PDQ8KIdlvm93NDXd%Day6t#=N!XMdq`=-l+8Y%a0i=b9^ID zg?)NcnyY&8R&Hv^jW1D=tzyw@*|K;096C|uz0>=iO8&H)bN0lhJz4MK;xo_U{<`hP zA8!1exsYeFrsMw5o36VqC!Fj{FIX1t%sTsOl#bK!`K^Kv!o=sP$IG*}vdz!XSJqv` zn^|qryl(EL8H&8wN|qkg^IkgGd}63~JvC2jpBq1W(Nnd!?bAgAc01c>fBGTPzq?V@ zO7GQ=q};mXgaU)TNsqp`NXc+?b~xysQOQ5?MPt<*wi}(o%u_oLdVVlJXJn~1_uSQt zj2T;<j_j>VN?SF>&9mFPxY=-VwqLfl_TiZ<n-3IZg>)LloD2$^VElwj>EzRn8%-8c zv$J*B16K!x6s*jc*pwu2d+~<M$G4h0vXYfT(rtpAnRloJtf^p#xx{e9U-osIwvfwj z1y{ku)`@BrK@Lwk6DNu#fBPiEI&ZGakFcOQ7j&m>S`%@~u7Z{G)@z*u;?q9O5z#yw zFl(WSW2Tk(&GY{pBlg=FXq|4`AR6+HeQ|AAww;bs?h^iEoA+tmaQpR1%(*($fcLwk zj<IH))Mm@<O5fbFP33;xr{~P-dTL|$eP^Vv{7hN3U^kPi?^k9fS+G}d%$jlZe#iDR zw@b2j{Ch6HJ~r~AkdNNNr+jbrKAp7F@#LH0jxhh~|5tr;f80B^jx{@K`u(4*%m1&w zUT&hhqtdtL`PGXV$<f<(&WPN++|J0p_WG68<!4GiZ~JzwTC9fs`<CC*)u+A99H*Gq zru|Z>zVXBNiEH7Xla=o*B+P{P1URK7?uMycX6esSebf=qI+bCn$wjV2E^W(uZhhOM zQss>d)WkhcS>D~n$yZz*;9wki<?Dl<lTSjPzWu`Dc``BUW&ZNxN5c=iIjOX0)^_g$ zsu4R_=D43zeBRc3tflS59=`2SX&nDfzOAux`nK@Xapxr`vwSm5&NXB&JMQ`R#hK@_ zYtLG<f5}Z^vOm;YxcE=IV6)-H#MhaDLgpKzdE=AICFGLli~TrilP7$~^Y+no8>$=M zY*unU(CuI_XZPe~9fkc9Uz+ksewU7X>>j4?RCFgxH23bdy4!NI6FJP-b96R!njM|i z{%XhD8NJ&X>t(X^Z&q!cuQPk*WGRUyo<;_HPtH4dYs=k)qc62D|8&cW(cFJ1>PO3= zHqn^$Y0W3}qt`exep6x#Jy_?h(BTy0;P~Zt)=Np%ir;S&j1p9BD+>PpI<Q&p$coT| z=9k#*3<932xBd3nT%p=mkhao?w|=XRQ;@dB+<Tudinl+%_w|5z-Pgan=fA5f>2;pi z%v<*6l*qn-dq4KRj}6sYI>Vpu|I6vi_gi1NcC62C#}dDuul~!_>Tk#VxY^Af$Fbw! zPF<!srA_@oGd1RFi}O@m^END<Kl9JRd2OGw_=NAT{^tC`w@$e!!H>5wUb3+9TidDZ z<Rkg5vmy#q9;jThovJJ>;^W>gAmUl_?&YyIAHkz1IDY43_xfDedTN7^$#t!|*o4># z`;YCoYSGemW#WO;rwpI6RGrV5)hzzl^wX;c%Ocj_k-nqF&sOevzvOM<yNU9L`wf04 zpMNy{ga6O@zy2%C;i+3O=a|v)60hu~yOqneoi_#>-dp)V-gmwO*B&JYZ;cj?v(Fi= z_r98NN+Fab_WIgM&u<kw9{W2bD|kKM-p2>}=2w{t%PXC9FP|w=wK}A&eanjV?rV0O z-gWy_M6uG`voBr$X7F1z9J|PwqQuKn_3GFz>sK@0S?$@*cRh4t=ybnAi9)6DXswhd zR*PiYXXao1B$y(%CA}b_Xu<O*46Sl5FNB4euQ<+`l6L089;1@f7smvC&lTA4??Bat z`PZ(6-SG;FV$fyjYrJ3}^t6cKhUk$Qfg+wxi82zBKg$0sh?p0d$1o{Jq2R<rgOys@ zpDrC`Q=7*d+WMeC-kRC%<((@UooX|J1Vv}1Pd|S~$7I17j+B#SS;ya3d|>WzFZ;7$ zWntcp%+8~FyRz;r<$u5D(IiXPKRYkhAH8FJd}HnRE*HIrH>Ehs<34^+PPf{0+aoRe z;1|zkK@0sRqcaa!t28HG&eS+@Ql!a=w@+l22WO=wYn3h+FC*tK5h*6EFButsL)ITH zH?nl*v^)MUUPS2;<2NV4&It=&T=FgJcz=iEiPHTWCxS#>b{Meh+bpiS$9C4(Zz0dF z^l1Y6lTY*?&=Q-bx}5E|a|Hj_wiy9On5J*6(A2KtZDD%IcXvq$4<CDu<fpzxPd0u1 zBJr!>PFCOPR84<5-|H`oZ0kgxnC+Z7Z{FgmoDaMf_-t5mScCoJg-1t^${4Qr`7&pt z`S;Yr(|dRGIPd(s^P|lA=WRtirz)jwUS2(R_0Xy>wl@1)j(g?xRc@^8{b_gjG4Jo9 zKNasnW(A5YS#iEG*I~zc{haV!Q%+A^eYW<L?y0yf;gwzXXZBx8@Z?yx<ZF`Vo2Unz zs(Z!R4=-dDv^blT@#R8Xx5=Yp$2hV(6}q!RJ6=q**?Uj%eVx8^qett<x{&*4Crao| z)t&U|!Xu&U6W`vj6ZT&}V}{I|%=tO$^(oJa1mq++!k6@PANhPFdb)>n%aUmVuSBPq z9Z)-(&6Q_hrnOm{;e=0-_D1$e4^%r%g(_Iw?rJ0%I&S&H-u2<wssx+<f?Z<%kF&TO zm{<d>{I{FRJ}^G!bxx<4@AVmf>o%+RmLFg4&wI^uYpwU~4aScH_BQsUz6zO^z29hi z-os<ewbJV&P2Qh5t^fF__PjrGsrQZZ?e|!`=;7Vd)vy0TzdZK$=Ij3^E7V(V_~7-8 zp=hyybrIvI;3jdKwO1JfT+5<vX!72+t&~kPsy(BiGD&~3Z+|eGn&@56v<U*6SWMLW zD<-CU>?&=Ub2j)~+vAFkGj+b_8%|}ncU+a2r6cBL?(&!U62~uvJBvTCD^9Sss*7W5 zv2o6jpCDsx-Rzsc=vya~@4I81S6t&B@_*2IRPFfX-DBQA+j;Ms^GHX03be72+IWMd zaqn$e&cnr%v}|-|uvbQDyotM%vfcgAd{O?Fi;s8Iy|83@m|?s(d`EDS*sl0nD&K!p z2d@8pea*%7ERIQRr{ioR`X=l)DlZXh<tVff<T@HM(QJLr2{Gn5_qUuY-B~_4zj@Eb zzT;~;ANw|4eGz%;ZOXoLZ#TRXde8N@p)yLYbnn4G$38BrnDvwU^`xqwaSP?=<t=}y z`Y*jN*ye}-y)yN~vpQ@G6a44uE^|GT6dax+y7^QItMQ39C2zmne_wUvOUF*Fo>_b| z>QDWdXPIc5TgH97qUT4ljj@B*rE(R`I)<i)w|VlWe6KpOcGr?kTTX7iyZQQOK9`^K z4(ylS(CE{)Gn2(GhI{8%Re=f4^7VQRCp$i@=e`%R;LV3eXYakecQ@`@^{uyZLIrU* zlnp8qw}0q6(AA`OU@`}Li!hVAP3m`v3w}-7+XAP5D!Y3xH+^F47VWZcQ)F+SoI7KI z{#)6HeUfKc9-i(x$*44gt!lxH28mX^3MrKdUi?kWiiL;L_>XXAZnF4W!f#=+>w&=5 zZHpS^?rh9!QQp7DcEdb2Gn2Ch9-klD)XY*1+xBYaCf>M|i$4pxmPmRy?nto+xXpd# z-t3#k*T0?FYAbyA^4n#b+`ml!+qF3-_{A1Qzk0Pp5&k=xp6mMYuln@9_gkfnSbD=c z>7q|!&Y>MV-y_fcK6-P)p`$<3u5n$pS>j@|WZ9)PIa8{I<4dph@s_75&Aa}t`paVb zUfU0+p78x?3H%a&bJHijw0Ezgx5ZR$u718-;{P+{Gyngr+*bNA>~Gm5-`7qZdyoDo zosy=vuR(MR&)0UzxjVM<oK<DH6tSf^V#D?1#&ZWf4cz2k2^r?>cF|mHCV5=&dpgtn zbg@TKH`*sGz8843F|kuPV4abnUSD{hUx%>ia&teX2IWWEPwoo}y*a;Y@8J`U=N$`H z$*p?+s6ch0Trl%7nT;_%%8XUg$4j}lCf(xuoqwt0K;C(ibGvqIKgnkI@5RMiOgkIu zF5W%$ciwN|H%w)XrJeuvzUi(0$jE#yb=&GE%MHJARr~UH@>}w!_$aae*|st<corwu zw}~4*yw#B7{2Ur~L3!hcdmp+J)!y`E+s%2`)?j}>K;P1`(Y!lBBDCh_=G}@X)*H>| zdE8ba+PzCRv|qJ7_|LY(jgMKLod5PsEc52IFm3IrQIh$KmcHX%b=0=Z$0vF6-urfW z_G!=G{5$qMqVH+?HQj3m_9QVW_%Hrhrg87RrKN}QzqfBEH@}_g+3~E{xOn!YX(iRd zv(y(>20KnEIo|x^{j&~+1?;sSwf=9+d&S*8*PzXhquyTX_3HAX=g+jxZq;mJ+Vk&V zj;iP1V_vMAzRhgez4fJ+)>DNOUqx(wY+O)w@zlxfuY*7TJ$(4J8~eKG>tQ^<x#mvv zP+HAypElj!&P*h?=Xfypx&$+w%=<qd&lXFGI;{GYTQB^w>Hc~9Sz-?DS?T&FS|IX_ ztM|pKvPsWw?$fH={oeP^{X>g-c1*l^YeT7Ov(yfq@|$<N78)(je*DbRT=kdvJF_=t z_a5#Jz88C|^r9?xx&H5{>*clgr@nu`N{Ua~y+--d>Z9S)d-H9!eLQk3Sem)CYq`R- zJGv8lj~#D4H_eNo@}}5U<Ay)7&+9wxJ}KJiduT$NYVVUvDj%w)B;B@eb@IBa6sc9c z_3y22snww$ofp5p<gDfC@ZWFy#N?%WU)6neof?{cZlUU&MTa)-+Ou4^{MCh9E1iSW zl?`{E%QG(v-?(768F$5Q22u5yvos37mp|y!y1gX&@7!l|<ja4z|LOV9`YgPId2vkR zt%thC$A9Y|oo;4k74~Pw+2(rQ!`phoHdNXwJ^T3V&$~bOY-UgIv_Bu+srl6VsgCs) zuJuai)0nl}Ph~4FnjKc>{yA)QR=48;hVaaZB7T8ye!c429lS&P>U=4GS#QapvZ9o% zvZtIO|5kXnWCWRON`IFA+WULK`CjRhD;>MH?zp(`_dM4M!Lt>*SwVYlJbe58AJZJ~ z(qHFyO+MEb*(vbxQuUXxnc^ka|BA+Bp4xm@=knR4BV9U&C$0O^-nFG=^`<9}J8RUZ zIzN%T`PwX}hVOn)NRHi($u)&-=e9WHm{@pf3%@)#IjO2aFICcmUnqaFoPdARvX%?6 zb7mAeO@1#tJw#BQ&9mk{GpnT>AKQA9PuyQ+r!ww0si<mNvfZ=$TOXTl^O1z}^`Z-X zjDKwYxixy)+T3UfeO6~XNonDz;^2iVZyYHSSKlQRxmIzbTeRqrgF7E8M1@5yT<~+p zq6L-5yaY<q!&ok+z6|AxQ_$ynboJy`$31DeD|8v!*`F<X>N}S!?pkEl#hHAqXPTsL zHUF4&XQ|_sP5**eb-$FdWCksq)@Qx{=bQBpO&AjI_+2isJ+hN8Abi#A%}NPdRJ>I5 z%U>;US?sVt_+ac)`-@xc8nhV7CO7P6i4iRDJ0Qqt&7!lBY5DdNvqcU27oXa1eCzr5 z@}jp}j(wbNW_6-z-7NbhcZ1dC?w0)A`IG6_)}EPXq;|N<pUo`Tc*BRo^KzEmuY9%J z6PK*C{A9|r>zAe1r~g~0xEnR@<o=$pe@oWki?!un{;A}qTPnZys9*W@#A0qSbGIus z8~)#a_BChUzk|m5cekE-r1Noh*Gr>sC2?C9+}Qi4tF?8dfAP<4tK%dpcLmfuh^_Jb zTYl~TXTiHCX4aIZDQ{m=pK)fc#_qXX`3b#h(f?DK!|SSZi@SBQKl_He%~INUdZui2 zer3knKL?|~<;|%7_U(|BuKfOt-;)+y&t{Np&Uvu&Khwq>?$3u<=UHD_C0r$N*3Y=~ za+;;zw^XZMoylt?H`>fh@yM*vzTK&Lg7eX7<t2&>#k^1Qgz<)HZ;o1eJ;2y#r`s~C zzuN^baZUBl;4(1IJ{j;cqCDWF!}{q51)Ae>*c25GdN+r2#d(IXL_W~CxF=yHtLof^ zZp<gSo)xJGvH5=Zc-&x{@kN8Fj~-17pLJCEWz^|Fj{g1_0m=2+UPnH7mvGOYp>xRf zr0QHxV^Q`rEsirGCNt8F+P7q?P1o3d?x0p~SmtK0*`XD)f~Q<w@aehWC$^Ata!T)0 zjn)>YnXpb3G5)&P#p_V;l})`zstjjtKe6={uWE6&z6&$o*@+TacQ0pIT(G)VwPvbs z@s8bFw{M+q@^Wp2;FDh)HlMO8NjC|W_bYQd`!#W+@v>{}!lBpJr6(^<`SvJj$Cd~G zjlbz8<VBb6vznA^`)9(F<tqDAqPOLo?w7QGJTr6c$={}Dr<nC;78>UUXJk(Ex%75& z+nG&UmIlm<j9VJ5H<_DTWXA-Pv&mkXEM<B6H51HsbH_f|9b5ICduc0A%J0-_@mq!O zEZx7QTuOa^T;-DGG}XvW|NHO%*Ie+5m+8K$OWh)kf=x>{8p~K5Vw^YoQQA&%OX+r( z#9baLTY~mj#Ldz16V1JRbf!|}5{?CNI`g#VY2NCZd{$rnKr8bJ$(<dArc%F8YH+_5 z+<5iXRr@asn&UffNV;3i>AdljV}WFApVEg5pKX%DZ5=rEI36ClKYg?7a|ymC4(YSY zH&1zS^n~M)69>J{9a+IRJs`2&!t3|e2h4ul2QN%J_Ra84RHoT4>4i6Wj(w}i__Au{ zhVzGcXWZ3hPHSEKXf-?A{q2SqqHfFXQhGZ5#||Nl>W1t8UOe*szV_y~ywBNp^Yg=( zb}V}-`A}=aFJtp5+0nZuN_!RhelFDB78o9(X0mCz`-85wJ5N<6J(=hI=PS=b$EPAk zBj4qnk$K1R?UzbHQ^+CpK%FaD5&Ji2ToqbgrQj`*UUw$8<{`_i*`?mKx-9DdtJWN! zv;ND>&r2WAFb{oV#g*&%##5%@g2GPrqQ6U+Eey1d%kh;kxnFwNeBztxiVVN<mg&~E z`IAIFt$8ImP8BB01*Xi;zoYeR220%H&oZ~StTdOD-Kw_iPL9>KStmLxPB<>&SLHCB zxTN;Qw|geaFFdAQ4az%Xn<r%0DP7FJ%ecE*MMceE`$1iG-L}g?r!9_c+Wc_q{+eC2 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	#cZ?S!8IG)14LEQW#m)p|&i{EkPNUd7- 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 OGIU3qm>HNs9Ss1=>Z1Yx literal 0 HcmV?d00001 diff --git a/bin/Panier/Disque.class b/bin/Panier/Disque.class new file mode 100644 index 0000000000000000000000000000000000000000..61f9cf906ae57c7e221e62f2f91f0c1c8c94a730 GIT binary patch literal 611 zcmX^0Z`VEs1_lQPC3XfTMh4!1#JtSZB7K+4;=<BYb_Nzk27#=^vPAuy#JqHU|D>$c z<PvrUHbw@1sKT(+yp+VGoK!{zmV%<p3PuJ-7e)p)o6Nk-5<5l)77Z88Fh&M0*NWuS zf|AVqykd3+UPcBvnC8Ts)Y2l)yt2fc%#>8PB1Q%l=lqmZE(T@>0UicU20=y!W)00S z4hCUH234O_1&~DwDWwW2U`HyX<Y$&B99~sYl&VmWUz}NznWo3Zz{4O4(kjNtAgbYm z@Ii1%QD$DcwPqM610#b34+A>`2O|T&Pi9`KUukYqYEcNpFG4=~$%#2(iA9+pK2(sU zBqOsJq#EjaNElf&GVlhMBqnG3CKf;yvZtq(1b_pBSwqu>k%22XzqBYh)h!bgOxzG{ zdLTD3C^9fIFf%YRure?*Fo7Jyz`(%7z{tSKz{SACz|FwGz{0@Dz{9}Dz`#(*z{0@H zz`!7-wVi=qoo~im2HxEaJdr{|+ZjamYpHK#5Z}naz`)EP$-uxM#=y$Jz#zoH!XV7R z#UR2U!XU;V$so=k1(st1nZh8=Aj1FxQeb--8Dtq47<d^N|1*d%FtIZ*f~;a>kYkW% tU<6yQ4|W&>1FO~+2J!V^cY<tUV_;-pU{C;?%mZe#LQQ65Pynk^1OPn6b<zL; literal 0 HcmV?d00001 diff --git a/bin/Panier/Main.class b/bin/Panier/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..31774097bd3e7e1a4d6226e4f86c3601310a5ed0 GIT binary patch literal 2569 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 literal 0 HcmV?d00001 diff --git a/bin/Panier/Nourriture.class b/bin/Panier/Nourriture.class new file mode 100644 index 0000000000000000000000000000000000000000..7befdc1e58c98feb634cecd8beda2fdad76d1f13 GIT binary patch literal 777 zcmX^0Z`VEs1_lQPb#?|OMh3xv#JtSZB7ML7(xRfwlG377b_Nzk27#=^vPAuy#JqHU z|D>$c<PvrUHbw@1sN%5Hyp+VGoK!{zwt}L}3h#7A21XY~2KIvd%#>mfkIg1CFSEps zk%3ji#YHoWk%7y#B0067Br`v+n4N)-kwFe-QesYOX_04MSz=CRN-A6tBLj<beo87A z12cml4+9s25F-P#hGrNCg9syowNI)7$X11d#3F_4%$)r6qQu<XRE3mOg`7l%Jh(p; zQt~rP6b`Q{DN0o+$S=+;$xPGZV&G*E0~sjJ$RMiWgYaZ<Nl|8Ax;4lONk#@;kQE@m z5M?MQ10#bp4+A>`2Z$xh!@$YF!N|bxlbM(5SDKrYS`-2aD<Pl!<iwn?#G*_PA1cUF zl95@=$RO+k4G=^;STi#42A3ozXZt1=Kozs6r<Md1WmbSg!-bK7D>%QjC^^+F6BHHv z2(5Y`k1;4RFfuSRFfy<*FflNJoX5bxzyxv}m}X?)V&G<AV&Gw5U|?ZjWZ-4sXJBBM z$H2nC%D}*&ueF^)K%H;KTn66V47`y-!rK`{_iG~f5+J^o`c?)hEzPYAG8-8f7?>I4 z7#J9o7&sUh7(^IY7(^Mk7{nMv7$g{^7$g}~7^E3A8Dtpr7-Sjb85kH87??rUFeor6 zGJt?S*nx~-F-`^!24)5&1_lOx2B!ZEA`Hyz42;aoATA?=GJ^^OBiOAbV0SYxaA|E} kkkZ=1Ad|fw>@$!v*cd=Yse!HH0kgTFRxvWDf>o&j09TZviU0rr literal 0 HcmV?d00001 diff --git a/bin/Panier/Panier.class b/bin/Panier/Panier.class new file mode 100644 index 0000000000000000000000000000000000000000..b8a3719f2acdfbba6222adde8b6e9284bdb5f670 GIT binary patch literal 1834 zcmX^0Z`VEs1_lR)cy<ORMh4!1#JtSZB7F$O&cMRRAdr<<mZ+bTn3t~apOlrFT*An} zQBahhQkq#(%*Y_%1C}l=$;{FB$t*6hW@O+D&P>lsEGaEYWn@r7leY1Jn5-WFF~Qo- znvsFcCNnRy#Ey}HSwl07k%7fIKP8omfti7qhk=uUi=Ba=kwF+?i(^qyVkO8bE(SgZ zUQPx^1|c2>Rt7dk27aH+yi~u^+@#c^ki?{%R7M6NpZw&+oUp{AOb{O`$WoG#SqxGQ za|+nY){G3yi76?J45AvIFh_=^=B0o%T7#U$<yw)PT2PXipI6MzAkD}i2h|>yn3Gys z<e68Nn3I{33RlFzAj`<0>655XSelqul38+ir9w)6W{JY#RV78K3dN-bhgTM5rj{0^ zDjZ&*V4%mvAjKdL@~;BO1&~k!hk0;GQD$DcwPqMQgAyYHAJkH4@NqFHGN^!bse*Mu zCE?EY)C}WhP-oC&XV73|;6nr<DD-$3#2K`}y1?RKyCCsvtr^A0zyWo3DkB4<CnE!E zaz=h}DkFm+M$j-autQS=C@}<p!xA35j10WNC5g$|zKI3Uz~@O%EeXjlNz4f-%B%p# zxC_XMraTO04CagsY{ex-sfoFa4AL5!kU#*ZEQqLnFj&%Bh=GB@l83>H!J3hQH?g1~ zr_!<5CBGCL<LW5-(n|A^K{2Kuk`Gbf1{JX8X0T<jXJ@cuWDp1YAJZBh1_uU5Mh5QO z!~&RZMg}(xBv;`!9gEu`_CtNZ&EU-7%Ff`z$RLYhJF-F^1~&#{Mh52M(p*LcuHgLA zqU2P!Oi;?^hJ>^pNIN5gfKz^cNpVS0Vu5dJNk)E3F&Be3gD*RS4<myTNChPOX6BXU zXQ%4>B<3ciB>JY7B&H=Mm*f{!@-X-@_=9|k5MpFF1NA95VL)|44EIRPOUX$sR`JQt z&n_*nh6D&$88odTiJ)i<sVqoER!+Pm#7g{np<xbo2-IZf#GIVq%#u`Vel`X#9BJJ} zfFTf+jY4=BLP258m!4VzN}JFe#?Q(S%*Y_D0ZaE#VQWnn0ful!1|HA6ywoD+oW$bd z)M9pqXhsHAjPS-5YU~WLj0|%4l`=B0L4ue;k%5tcnSp_Uk%0+R(lIbHurn|)Ffnj2 zFf%ZM%18!A25trh1}89|fk8lPI|Gl_ZU(-{?F<5283Z?iRSPpPFz|uR;bLH6;AP-v z;9?MAU|`^3U}Rum5MU5x5ChvG&LF|S#30GQz`(-5$RGtaxs`#1frWvAK}C8l1MhAI zsYoH2?F@4JcQYtP>PT;AQ1;W>!XT)-lR=G%Asl2IGXuyrF$Pu!1_lWR76wTMJ_Z>E z2?jX^Wd?b$ty&QCptdqFs4!?V=zv|K!l28b$H2rO!N9|y&tSm7%wWjC0P-0h10#bG zgE7>z&J0Xo<&q$)cQTkTGVEfoU|`tEV8g_)lfj9RVLjZ}Y+!|&V0$6Hm4w>M%-{}I j<-y<y4T%5-W`-b!Fop<*NCpN5E(S)1D25n@I0i`oXROtq literal 0 HcmV?d00001 diff --git a/bin/Panier/Produit.class b/bin/Panier/Produit.class new file mode 100644 index 0000000000000000000000000000000000000000..6d112b300564078f98627887efb2b3d8a67df1b1 GIT binary patch literal 741 zcmX^0Z`VEs1_lQPO?Cz*Mh3os#JtSZBK?4({FKtn5_Sd_Mh1bb#Ii*FoW#6zegCAa z)Z`LI2G-<^{Nhwb20<UF`mofzl*FW*RBJ{Cj>6K!ypqh4R7M6yPeukdo6Nk-5<5l) zQ4I{mo|<8d3|y`i$*Bb;nfZCe><qk&4013d6LV5ai#+qn5_2+BQsIgi8Cab2Q&PDY zm>C3k7&sXO85x*0G{ZO;gc%t$eG(O*wjW-pkdmKSqHuUsNl~goacRNfl|`AUrA4U< zhZiUq=y5UdFo=S*i-8@6@L_OCQD$DcwPqM610#b34+AR$8;B*v!@$nK!N|bxlbM(5 zSDKrYS`-5EFC&AHPkwS@PFP}5CWsFeWGTtWEM{a7fcY32oYssCyul@j$=SY%1z?rz z42p~l{4ftg!;q1IFFmy+peVBfstxQz7j6ax22~ygH3nry26m_dMh33n{L-T2RJY8W zR7M6Ks0KZde;5=Q7#Wxu7#Nrsm_XhDv)CCpz%(NRCj%D)69YE`0|N^KBLfcu9|HqJ zD+4oFhpg6i27Z~j47|G;cp`;_wlj$A*V5j~Ag(2|l|gbN0|NsygERvJgA@ZB0|SF7 z0}F!~0|$dRgAjuxgE)f}gA9W-gA4-$g95}b23ZC<1`v=1JA;vdfk74&nhZ<~@(c_N z0t}4*8H5;^*%=tw85BUWj0{Q)$_$KPCs~1=$G{+<wS_^lU26-2_)Z2DMuzP5U~hn2 Y!Nvg6qYAc>2h0|L+Q`VD4pyZB01$qa^Z)<= literal 0 HcmV?d00001 diff --git a/bin/Panier/ValeurInvalideException.class b/bin/Panier/ValeurInvalideException.class new file mode 100644 index 0000000000000000000000000000000000000000..fc591aa047bef1e904a770d1b07fa801c2bb04ed GIT binary patch literal 439 zcmX^0Z`VEs1_lQPadrkKMh3Zn#JtSZBK@$$oYc}H&%Cn4oXnI|*NWuSf|AVqJaz^a zMh4-m#Ii*FoW#6zeYgZ8gFta=QD$OJSZYymW`16%rwbzkqZcCsuXBE0aY<rcNmyb| zX(}rN1TZo(u-RnhWtP}6GKgyUAPfvHDay=Cx7G|}WMFa5Pf6usU}oUsVc=rmW@O;^ z$;?ajE6q(xEec6Y%1LEp5c0`SPRt2QEXoA&p@J+W8JWe53<^H@y<*MCz@D30T%4E= zHVDHBj0{}C`K3k4scxAdt7LG5h#p8Ig8~C112Y2y10#bJ11kd?10w@F0|NsS0|x^m z10%@w42%ps3=9l*3``763=9lxTH4zgcsGL8@G~$laDhc78CV&l7z7v?7{tJQHU>ck TA#i}PF$gn=fXxyG>k$J0J4<En literal 0 HcmV?d00001 diff --git a/bin/Panier/Vendable.class b/bin/Panier/Vendable.class new file mode 100644 index 0000000000000000000000000000000000000000..2e584e9ee7f90656220a04ca3ec6475e49cb757c GIT binary patch literal 128 zcmX^0Z`VEs1_lQPPId++Mh5<X#JtSZBK@$`yp+VGoK$uO7Dfhvti-ZJ{hY+SbbbG% ztkmQZMh5ou)RKUr%nC*ZW(`djMh33n{L-T2RJY8WR7M6~m~K6gMm9zUMh0dE5MX3s VWME}rV_;xlWMF4tU|?e4005Dx925Wm literal 0 HcmV?d00001 diff --git a/bin/module-info.class b/bin/module-info.class new file mode 100644 index 0000000000000000000000000000000000000000..ba1f550672d9e268e09818e9922ef1bc8d408862 GIT binary patch literal 153 zcmX^0Z`VEs1_lQPE_MbcMh5QO{FKt1RNc(Hw0uSeuHgLAqU2P!%$!t41_2}~y{yEt zL`DWSU$AOn26jdUKKIn(lFa<P_=3c|%+w-b22Mr>PLMLaq{QOX1_lO31{h#sU}j)o ZU}9ilU}a!n5My8iOE5BUG=Lcp0sty3A5Q=P literal 0 HcmV?d00001 diff --git a/doc/Gestion_panier/Panier/Disque.html b/doc/Gestion_panier/Panier/Disque.html new file mode 100644 index 0000000..c07d2ea --- /dev/null +++ b/doc/Gestion_panier/Panier/Disque.html @@ -0,0 +1,200 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Disque</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Disque"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Disque.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Disque" class="title">Class Disque</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Disque</div> +</div> +<section class="class-description" id="class-description"> +<dl class="notes"> +<dt>All Implemented Interfaces:</dt> +<dd><code><a href="Vendable.html" title="interface in Panier">Vendable</a></code></dd> +</dl> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Disque</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> +implements <a href="Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="block">Classe représentant un disque (CD/DVD) vendable. + Implémente l'interface <a href="Vendable.html" title="interface in Panier"><code>Vendable</code></a>.</div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(double)" class="member-name-link">Disque</a><wbr>(double prix)</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur pour initialiser le prix du disque.</div> +</div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrix()" class="member-name-link">getPrix</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne le prix du disque.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>(double)"> +<h3>Disque</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Disque</span><wbr><span class="parameters">(double prix)</span> + throws <span class="exceptions">Panier.ValeurInvalideException</span></div> +<div class="block">Constructeur pour initialiser le prix du disque.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>prix</code> - Le prix du disque en euros. Doit être un nombre positif.</dd> +<dt>Throws:</dt> +<dd><code>Panier.ValeurInvalideException</code> - si le prix est inférieur ou égal à 0.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="getPrix()"> +<h3>getPrix</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">getPrix</span>()</div> +<div class="block">Retourne le prix du disque.</div> +<dl class="notes"> +<dt>Specified by:</dt> +<dd><code><a href="Vendable.html#getPrix()">getPrix</a></code> in interface <code><a href="Vendable.html" title="interface in Panier">Vendable</a></code></dd> +<dt>Returns:</dt> +<dd>Le prix du disque en euros.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Main.html b/doc/Gestion_panier/Panier/Main.html new file mode 100644 index 0000000..898a769 --- /dev/null +++ b/doc/Gestion_panier/Panier/Main.html @@ -0,0 +1,186 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Main</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Main"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Main.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Main" class="title">Class Main</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Main</div> +</div> +<section class="class-description" id="class-description"> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Main</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div> +<div class="block">Classe principale contenant le programme de test pour la gestion d'un panier d'achats. + <p> + Cette classe permet de tester l'ajout de produits (Disques et Nourriture) dans un panier + et d'afficher le prix total. Elle gère également les erreurs liées à des valeurs invalides. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Main</a>()</code></div> +<div class="col-last even-row-color"> </div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#main(java.lang.String%5B%5D)" class="member-name-link">main</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[] args)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> +<div class="block">Méthode principale qui exécute différents scénarios de test pour la gestion des paniers.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>()"> +<h3>Main</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Main</span>()</div> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="main(java.lang.String[])"> +<h3>main</h3> +<div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">main</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[] args)</span></div> +<div class="block">Méthode principale qui exécute différents scénarios de test pour la gestion des paniers.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>args</code> - Arguments de la ligne de commande (non utilisés ici).</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Nourriture.html b/doc/Gestion_panier/Panier/Nourriture.html new file mode 100644 index 0000000..7098e17 --- /dev/null +++ b/doc/Gestion_panier/Panier/Nourriture.html @@ -0,0 +1,206 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Nourriture</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Nourriture"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Nourriture.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Nourriture" class="title">Class Nourriture</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Nourriture</div> +</div> +<section class="class-description" id="class-description"> +<dl class="notes"> +<dt>All Implemented Interfaces:</dt> +<dd><code><a href="Vendable.html" title="interface in Panier">Vendable</a></code></dd> +</dl> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Nourriture</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> +implements <a href="Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="block">Classe représentant un produit alimentaire vendable. + <p> + Chaque instance de cette classe correspond à une portion de nourriture, + définie par un prix par kilogramme et un poids en kilogrammes. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(double,double)" class="member-name-link">Nourriture</a><wbr>(double prixKg, + double poidsKg)</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur permettant d'initialiser une portion de nourriture avec son prix et son poids.</div> +</div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrix()" class="member-name-link">getPrix</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Calcule et retourne le prix total de la portion de nourriture.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>(double,double)"> +<h3>Nourriture</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Nourriture</span><wbr><span class="parameters">(double prixKg, + double poidsKg)</span> + throws <span class="exceptions">Panier.ValeurInvalideException</span></div> +<div class="block">Constructeur permettant d'initialiser une portion de nourriture avec son prix et son poids.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>prixKg</code> - Prix par kilogramme (doit être strictement positif).</dd> +<dd><code>poidsKg</code> - Poids en kilogrammes (doit être strictement positif).</dd> +<dt>Throws:</dt> +<dd><code>Panier.ValeurInvalideException</code> - Si le prix par kilogramme ou le poids sont négatifs ou nuls.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="getPrix()"> +<h3>getPrix</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">getPrix</span>()</div> +<div class="block">Calcule et retourne le prix total de la portion de nourriture.</div> +<dl class="notes"> +<dt>Specified by:</dt> +<dd><code><a href="Vendable.html#getPrix()">getPrix</a></code> in interface <code><a href="Vendable.html" title="interface in Panier">Vendable</a></code></dd> +<dt>Returns:</dt> +<dd>Le prix total (prix par kilogramme * poids en kilogrammes).</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Panier.html b/doc/Gestion_panier/Panier/Panier.html new file mode 100644 index 0000000..8d330d2 --- /dev/null +++ b/doc/Gestion_panier/Panier/Panier.html @@ -0,0 +1,213 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Panier"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Panier.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Panier" class="title">Class Panier</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Panier</div> +</div> +<section class="class-description" id="class-description"> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Panier</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div> +<div class="block">Classe représentant un panier contenant des produits. + <p> + Cette classe permet d'ajouter des produits dans le panier et de calculer le prix total du panier. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Panier</a>()</code></div> +<div class="col-last even-row-color"> </div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#add(int,Panier.Vendable)" class="member-name-link">add</a><wbr>(int quantite, + <a href="Vendable.html" title="interface in Panier">Vendable</a> chose)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Ajoute un produit dans le panier.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTotalPrix()" class="member-name-link">getTotalPrix</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Calcule le prix total du panier.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>()"> +<h3>Panier</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Panier</span>()</div> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="add(int,Panier.Vendable)"> +<h3>add</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">add</span><wbr><span class="parameters">(int quantite, + <a href="Vendable.html" title="interface in Panier">Vendable</a> chose)</span> + throws <span class="exceptions">Panier.ValeurInvalideException</span></div> +<div class="block">Ajoute un produit dans le panier. + <p> + Si la quantité demandée est inférieure ou égale à 0, une exception est levée. + </p></div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>quantite</code> - La quantité du produit à ajouter (doit être supérieure à 0).</dd> +<dd><code>chose</code> - Le produit à ajouter, qui doit implémenter l'interface <a href="Vendable.html" title="interface in Panier"><code>Vendable</code></a>.</dd> +<dt>Throws:</dt> +<dd><code>Panier.ValeurInvalideException</code> - Si la quantité est inférieure ou égale à 0.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="getTotalPrix()"> +<h3>getTotalPrix</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">getTotalPrix</span>()</div> +<div class="block">Calcule le prix total du panier. + <p> + Le prix total est la somme des prix de chaque produit, calculé en fonction de la quantité et du prix de chaque produit. + </p></div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Le prix total du panier.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Produit.html b/doc/Gestion_panier/Panier/Produit.html new file mode 100644 index 0000000..dda82a0 --- /dev/null +++ b/doc/Gestion_panier/Panier/Produit.html @@ -0,0 +1,206 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Produit</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Produit"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Produit.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Produit" class="title">Class Produit</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Produit</div> +</div> +<section class="class-description" id="class-description"> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Produit</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div> +<div class="block">Classe représentant un produit dans un panier. + <p> + Cette classe contient un produit (qui doit implémenter l'interface <a href="Vendable.html" title="interface in Panier"><code>Vendable</code></a>) + ainsi qu'une quantité. Elle permet de calculer le prix total du produit en fonction de la quantité. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(Panier.Vendable,int)" class="member-name-link">Produit</a><wbr>(<a href="Vendable.html" title="interface in Panier">Vendable</a> chose, + int quantite)</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur pour initialiser un produit avec une chose vendable et une quantité.</div> +</div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrixProduit()" class="member-name-link">getPrixProduit</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Méthode pour obtenir le prix total du produit (quantité * prix unitaire).</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>(Panier.Vendable,int)"> +<h3>Produit</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Produit</span><wbr><span class="parameters">(<a href="Vendable.html" title="interface in Panier">Vendable</a> chose, + int quantite)</span> + throws <span class="exceptions">Panier.ValeurInvalideException</span></div> +<div class="block">Constructeur pour initialiser un produit avec une chose vendable et une quantité. + <p> + Si la quantité est inférieure ou égale à 0, une exception <code>ValeurInvalideException</code> est levée. + </p></div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>chose</code> - Le produit à ajouter (doit être une instance d'un objet implémentant <a href="Vendable.html" title="interface in Panier"><code>Vendable</code></a>).</dd> +<dd><code>quantite</code> - La quantité du produit à ajouter (doit être supérieure à 0).</dd> +<dt>Throws:</dt> +<dd><code>Panier.ValeurInvalideException</code> - Si la quantité est inférieure ou égale à 0.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="getPrixProduit()"> +<h3>getPrixProduit</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">getPrixProduit</span>()</div> +<div class="block">Méthode pour obtenir le prix total du produit (quantité * prix unitaire). + <p> + Cette méthode calcule le prix total du produit en multipliant la quantité par le prix unitaire + du produit (qui est obtenu via la méthode <a href="Vendable.html#getPrix()"><code>Vendable.getPrix()</code></a>). + </p></div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Le prix total du produit (quantité * prix unitaire).</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Vendable.html b/doc/Gestion_panier/Panier/Vendable.html new file mode 100644 index 0000000..34494d7 --- /dev/null +++ b/doc/Gestion_panier/Panier/Vendable.html @@ -0,0 +1,161 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Vendable</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, interface: Vendable"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Vendable.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li>Constr</li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li>Constr</li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Interface Vendable" class="title">Interface Vendable</h1> +</div> +<section class="class-description" id="class-description"> +<dl class="notes"> +<dt>All Known Implementing Classes:</dt> +<dd><code><a href="Disque.html" title="class in Panier">Disque</a></code>, <code><a href="Nourriture.html" title="class in Panier">Nourriture</a></code></dd> +</dl> +<hr> +<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">Vendable</span></div> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix. + <p> + Les classes qui implémentent cette interface doivent définir la méthode <a href="#getPrix()"><code>getPrix()</code></a>, + qui retourne le prix unitaire de l'objet. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>double</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getPrix()" class="member-name-link">getPrix</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> +<div class="block">Méthode pour obtenir le prix unitaire de l'objet.</div> +</div> +</div> +</div> +</div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="getPrix()"> +<h3>getPrix</h3> +<div class="member-signature"><span class="return-type">double</span> <span class="element-name">getPrix</span>()</div> +<div class="block">Méthode pour obtenir le prix unitaire de l'objet. + <p> + Cette méthode doit être implémentée dans toutes les classes qui + représentent des objets ayant un prix, comme les produits vendus + dans un panier. + </p></div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Le prix unitaire de l'objet.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Disque.html b/doc/Gestion_panier/Panier/class-use/Disque.html new file mode 100644 index 0000000..665be38 --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Disque.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Disque</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Disque"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Disque.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Disque" class="title">Uses of Class<br>Panier.Disque</h1> +</div> +No usage of Panier.Disque</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Main.html b/doc/Gestion_panier/Panier/class-use/Main.html new file mode 100644 index 0000000..e937af6 --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Main.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Main</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Main"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Main.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Main" class="title">Uses of Class<br>Panier.Main</h1> +</div> +No usage of Panier.Main</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Nourriture.html b/doc/Gestion_panier/Panier/class-use/Nourriture.html new file mode 100644 index 0000000..1c4dace --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Nourriture.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Nourriture</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Nourriture"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Nourriture.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Nourriture" class="title">Uses of Class<br>Panier.Nourriture</h1> +</div> +No usage of Panier.Nourriture</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Panier.html b/doc/Gestion_panier/Panier/class-use/Panier.html new file mode 100644 index 0000000..8f7cf9e --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Panier.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Panier"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Panier.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Panier" class="title">Uses of Class<br>Panier.Panier</h1> +</div> +No usage of Panier.Panier</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Produit.html b/doc/Gestion_panier/Panier/class-use/Produit.html new file mode 100644 index 0000000..bb90d5d --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Produit.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Produit</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Produit"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Produit.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Produit" class="title">Uses of Class<br>Panier.Produit</h1> +</div> +No usage of Panier.Produit</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Vendable.html b/doc/Gestion_panier/Panier/class-use/Vendable.html new file mode 100644 index 0000000..8a98c9d --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Vendable.html @@ -0,0 +1,107 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Interface Panier.Vendable</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, interface: Vendable"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Vendable.html" title="interface in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Interface Panier.Vendable" class="title">Uses of Interface<br>Panier.Vendable</h1> +</div> +<section class="class-uses"> +<ul class="block-list"> +<li> +<section class="detail" id="Panier"> +<h2>Uses of <a href="../Vendable.html" title="interface in Panier">Vendable</a> in <a href="../package-summary.html">Panier</a></h2> +<div class="caption"><span>Classes in <a href="../package-summary.html">Panier</a> that implement <a href="../Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="summary-table three-column-summary"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Class</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><code>class </code></div> +<div class="col-second even-row-color"><code><a href="../Disque.html" class="type-name-link" title="class in Panier">Disque</a></code></div> +<div class="col-last even-row-color"> +<div class="block">Classe représentant un disque (CD/DVD) vendable.</div> +</div> +<div class="col-first odd-row-color"><code>class </code></div> +<div class="col-second odd-row-color"><code><a href="../Nourriture.html" class="type-name-link" title="class in Panier">Nourriture</a></code></div> +<div class="col-last odd-row-color"> +<div class="block">Classe représentant un produit alimentaire vendable.</div> +</div> +</div> +<div class="caption"><span>Methods in <a href="../package-summary.html">Panier</a> with parameters of type <a href="../Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="summary-table three-column-summary"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><code>void</code></div> +<div class="col-second even-row-color"><span class="type-name-label">Panier.</span><code><a href="../Panier.html#add(int,Panier.Vendable)" class="member-name-link">add</a><wbr>(int quantite, + <a href="../Vendable.html" title="interface in Panier">Vendable</a> chose)</code></div> +<div class="col-last even-row-color"> +<div class="block">Ajoute un produit dans le panier.</div> +</div> +</div> +<div class="caption"><span>Constructors in <a href="../package-summary.html">Panier</a> with parameters of type <a href="../Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="summary-table three-column-summary"> +<div class="table-header col-first">Modifier</div> +<div class="table-header col-second">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><code> </code></div> +<div class="col-second even-row-color"><code><a href="../Produit.html#%3Cinit%3E(Panier.Vendable,int)" class="member-name-link">Produit</a><wbr>(<a href="../Vendable.html" title="interface in Panier">Vendable</a> chose, + int quantite)</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur pour initialiser un produit avec une chose vendable et une quantité.</div> +</div> +</div> +</section> +</li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/package-summary.html b/doc/Gestion_panier/Panier/package-summary.html new file mode 100644 index 0000000..59e0b45 --- /dev/null +++ b/doc/Gestion_panier/Panier/package-summary.html @@ -0,0 +1,117 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier"> +<meta name="generator" content="javadoc/PackageWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="package-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li class="nav-bar-cell1-rev">Package</li> +<li>Class</li> +<li><a href="package-use.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#package">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Package:</p> +<ul> +<li>Description</li> +<li>Related Packages</li> +<li><a href="#class-summary">Classes and Interfaces</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Package: </li> +<li>Description | </li> +<li>Related Packages | </li> +<li><a href="#class-summary">Classes and Interfaces</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<div class="sub-title"><span class="module-label-in-package">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<h1 title="Package Panier" class="title">Package Panier</h1> +</div> +<hr> +<div class="package-signature">package <span class="element-name">Panier</span></div> +<section class="summary"> +<ul class="summary-list"> +<li> +<div id="class-summary"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab1" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab1', 2)" class="table-tab">Interfaces</button><button id="class-summary-tab2" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab2', 2)" class="table-tab">Classes</button></div> +<div id="class-summary.tabpanel" role="tabpanel"> +<div class="summary-table two-column-summary" aria-labelledby="class-summary-tab0"> +<div class="table-header col-first">Class</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color class-summary class-summary-tab2"><a href="Disque.html" title="class in Panier">Disque</a></div> +<div class="col-last even-row-color class-summary class-summary-tab2"> +<div class="block">Classe représentant un disque (CD/DVD) vendable.</div> +</div> +<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="Main.html" title="class in Panier">Main</a></div> +<div class="col-last odd-row-color class-summary class-summary-tab2"> +<div class="block">Classe principale contenant le programme de test pour la gestion d'un panier d'achats.</div> +</div> +<div class="col-first even-row-color class-summary class-summary-tab2"><a href="Nourriture.html" title="class in Panier">Nourriture</a></div> +<div class="col-last even-row-color class-summary class-summary-tab2"> +<div class="block">Classe représentant un produit alimentaire vendable.</div> +</div> +<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="Panier.html" title="class in Panier">Panier</a></div> +<div class="col-last odd-row-color class-summary class-summary-tab2"> +<div class="block">Classe représentant un panier contenant des produits.</div> +</div> +<div class="col-first even-row-color class-summary class-summary-tab2"><a href="Produit.html" title="class in Panier">Produit</a></div> +<div class="col-last even-row-color class-summary class-summary-tab2"> +<div class="block">Classe représentant un produit dans un panier.</div> +</div> +<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="Vendable.html" title="interface in Panier">Vendable</a></div> +<div class="col-last odd-row-color class-summary class-summary-tab1"> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix.</div> +</div> +</div> +</div> +</div> +</li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/package-tree.html b/doc/Gestion_panier/Panier/package-tree.html new file mode 100644 index 0000000..d9b1b32 --- /dev/null +++ b/doc/Gestion_panier/Panier/package-tree.html @@ -0,0 +1,78 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Panier Class Hierarchy</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="tree: module: Gestion_panier, package: Panier"> +<meta name="generator" content="javadoc/PackageTreeWriter"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="package-tree-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li class="nav-bar-cell1-rev">Tree</li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#tree">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 class="title">Hierarchy For Package Panier</h1> +</div> +<section class="hierarchy"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a> +<ul> +<li class="circle">Panier.<a href="Disque.html" class="type-name-link" title="class in Panier">Disque</a> (implements Panier.<a href="Vendable.html" title="interface in Panier">Vendable</a>)</li> +<li class="circle">Panier.<a href="Main.html" class="type-name-link" title="class in Panier">Main</a></li> +<li class="circle">Panier.<a href="Nourriture.html" class="type-name-link" title="class in Panier">Nourriture</a> (implements Panier.<a href="Vendable.html" title="interface in Panier">Vendable</a>)</li> +<li class="circle">Panier.<a href="Panier.html" class="type-name-link" title="class in Panier">Panier</a></li> +<li class="circle">Panier.<a href="Produit.html" class="type-name-link" title="class in Panier">Produit</a></li> +</ul> +</li> +</ul> +</section> +<section class="hierarchy"> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li class="circle">Panier.<a href="Vendable.html" class="type-name-link" title="interface in Panier">Vendable</a></li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/package-use.html b/doc/Gestion_panier/Panier/package-use.html new file mode 100644 index 0000000..94ed29d --- /dev/null +++ b/doc/Gestion_panier/Panier/package-use.html @@ -0,0 +1,75 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Package Panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier"> +<meta name="generator" content="javadoc/PackageUseWriter"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="package-use-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Package Panier" class="title">Uses of Package<br>Panier</h1> +</div> +<section class="package-uses"> +<ul class="block-list"> +<li> +<section class="detail" id="Panier"> +<div class="caption"><span>Classes in <a href="package-summary.html">Panier</a> used by <a href="package-summary.html">Panier</a></span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Class</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><a href="class-use/Vendable.html#Panier">Vendable</a></div> +<div class="col-last even-row-color"> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix.</div> +</div> +</div> +</section> +</li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/module-summary.html b/doc/Gestion_panier/module-summary.html new file mode 100644 index 0000000..818cb2c --- /dev/null +++ b/doc/Gestion_panier/module-summary.html @@ -0,0 +1,79 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Gestion_panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier"> +<meta name="generator" content="javadoc/ModuleWriterImpl"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="module-declaration-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li class="nav-bar-cell1-rev">Module</li> +<li><a href="Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Panier/package-tree.html">Tree</a></li> +<li><a href="../index-files/index-1.html">Index</a></li> +<li><a href="../help-doc.html#module">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Module:</p> +<ul> +<li>Description</li> +<li>Modules</li> +<li>Packages</li> +<li>Services</li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Module: </li> +<li>Description | </li> +<li>Modules | </li> +<li>Packages | </li> +<li>Services</li> +</ul> +</div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Module Gestion_panier" class="title">Module Gestion_panier</h1> +</div> +<hr> +<div class="module-signature">module <span class="element-name">Gestion_panier</span></div> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/allclasses-index.html b/doc/allclasses-index.html new file mode 100644 index 0000000..2854f65 --- /dev/null +++ b/doc/allclasses-index.html @@ -0,0 +1,91 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>All Classes and Interfaces</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="class index"> +<meta name="generator" content="javadoc/AllClassesIndexWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="all-classes-index-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="Gestion_panier/module-summary.html">Module</a></li> +<li><a href="Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li><a href="index-files/index-1.html">Index</a></li> +<li><a href="help-doc.html#all-classes">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="All Classes and Interfaces" class="title">All Classes and Interfaces</h1> +</div> +<div id="all-classes-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="all-classes-table-tab1" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab1', 2)" class="table-tab">Interfaces</button><button id="all-classes-table-tab2" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab2', 2)" class="table-tab">Classes</button></div> +<div id="all-classes-table.tabpanel" role="tabpanel"> +<div class="summary-table two-column-summary" aria-labelledby="all-classes-table-tab0"> +<div class="table-header col-first">Class</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Disque.html" title="class in Panier">Disque</a></div> +<div class="col-last even-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe représentant un disque (CD/DVD) vendable.</div> +</div> +<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Main.html" title="class in Panier">Main</a></div> +<div class="col-last odd-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe principale contenant le programme de test pour la gestion d'un panier d'achats.</div> +</div> +<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Nourriture.html" title="class in Panier">Nourriture</a></div> +<div class="col-last even-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe représentant un produit alimentaire vendable.</div> +</div> +<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Panier.html" title="class in Panier">Panier</a></div> +<div class="col-last odd-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe représentant un panier contenant des produits.</div> +</div> +<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Produit.html" title="class in Panier">Produit</a></div> +<div class="col-last even-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe représentant un produit dans un panier.</div> +</div> +<div class="col-first odd-row-color all-classes-table all-classes-table-tab1"><a href="Gestion_panier/Panier/Vendable.html" title="interface in Panier">Vendable</a></div> +<div class="col-last odd-row-color all-classes-table all-classes-table-tab1"> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix.</div> +</div> +</div> +</div> +</div> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/allpackages-index.html b/doc/allpackages-index.html new file mode 100644 index 0000000..fcc603c --- /dev/null +++ b/doc/allpackages-index.html @@ -0,0 +1,65 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>All Packages</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="package index"> +<meta name="generator" content="javadoc/AllPackagesIndexWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="all-packages-index-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="Gestion_panier/module-summary.html">Module</a></li> +<li><a href="Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li><a href="index-files/index-1.html">Index</a></li> +<li><a href="help-doc.html#all-packages">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="All&nbsp;Packages" class="title">All Packages</h1> +</div> +<div class="caption"><span>Package Summary</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Package</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><a href="Gestion_panier/Panier/package-summary.html">Panier</a></div> +<div class="col-last even-row-color"> </div> +</div> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/copy.svg b/doc/copy.svg new file mode 100644 index 0000000..d435f6c --- /dev/null +++ b/doc/copy.svg @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + + + + + + + + + + + + + + + + + + + + +--> + +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 380 460" fill="#505050"> + <path + d="M 346,8 H 108 C 90,8 75,23 75,41 v 316 c 0,18 15,33 33,33 h 238 c 18,0 33,-15 33,-33 V 41 C 379,23 364,8 346,8 Z m -8,344 H 116 c -2,0 -3,-1 -3,-3 V 49 c 0,-2 1,-3 3,-3 h 222 c 2,0 3,1 3,3 v 300 h 10e-4 c 0,2 -1,3 -3,3 z"/> + <path + d="m 290,389 v 26 h 10e-4 c 0,2 -1,3 -3,3 H 49 c -2,0 -3,-1 -3,-3 V 99 c 0,-2 1,-3 3,-3 h 27 v 0 l -5e-4,-38 H 41 C 23,58 8,73 8,91 v 332 c 10e-4,18 15,33 33,33 h 254 c 18,0 33,-15 33,-33 v -34"/> +</svg> diff --git a/doc/element-list b/doc/element-list new file mode 100644 index 0000000..76363ff --- /dev/null +++ b/doc/element-list @@ -0,0 +1,2 @@ +module:Gestion_panier +Panier diff --git a/doc/help-doc.html b/doc/help-doc.html new file mode 100644 index 0000000..d3e7031 --- /dev/null +++ b/doc/help-doc.html @@ -0,0 +1,194 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>API Help</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="help"> +<meta name="generator" content="javadoc/HelpWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="help-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="Gestion_panier/module-summary.html">Module</a></li> +<li><a href="Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li><a href="index-files/index-1.html">Index</a></li> +<li class="nav-bar-cell1-rev">Help</li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Help:</p> +<ul> +<li><a href="#help-navigation">Navigation</a></li> +<li><a href="#help-pages">Pages</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Help: </li> +<li><a href="#help-navigation">Navigation</a> | </li> +<li><a href="#help-pages">Pages</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<h1 class="title">JavaDoc Help</h1> +<ul class="help-toc"> +<li><a href="#help-navigation">Navigation</a>: +<ul class="help-subtoc"> +<li><a href="#search">Search</a></li> +</ul> +</li> +<li><a href="#help-pages">Kinds of Pages</a>: +<ul class="help-subtoc"> +<li><a href="#module">Module</a></li> +<li><a href="#package">Package</a></li> +<li><a href="#class">Class or Interface</a></li> +<li><a href="#doc-file">Other Files</a></li> +<li><a href="#use">Use</a></li> +<li><a href="#tree">Tree (Class Hierarchy)</a></li> +<li><a href="#all-packages">All Packages</a></li> +<li><a href="#all-classes">All Classes and Interfaces</a></li> +<li><a href="#index">Index</a></li> +</ul> +</li> +</ul> +<hr> +<div class="sub-title"> +<h2 id="help-navigation">Navigation</h2> +Starting from the <a href="index.html">Overview</a> page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The <a href="index-files/index-1.html">Index</a> and Search box allow you to navigate to specific declarations and summary pages, including: <a href="allpackages-index.html">All Packages</a>, <a href="allclasses-index.html">All Classes and Interfaces</a> +<section class="help-section" id="search"> +<h3>Search</h3> +<p>You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API. These items can be searched using part or all of the name, optionally using "camelCase" abbreviations, or multiple search terms separated by whitespace. Some examples:</p> +<ul class="help-section-list"> +<li><code>"j.l.obj"</code> matches "java.lang.Object"</li> +<li><code>"InpStr"</code> matches "java.io.InputStream"</li> +<li><code>"math exact long"</code> matches "java.lang.Math.absExact(long)"</li> +</ul> +<p>Refer to the <a href="https://docs.oracle.com/en/java/javase/20/docs/specs/javadoc/javadoc-search-spec.html">Javadoc Search Specification</a> for a full description of search features.</p> +</section> +</div> +<hr> +<div class="sub-title"> +<h2 id="help-pages">Kinds of Pages</h2> +The following sections describe the different kinds of pages in this collection. +<section class="help-section" id="module"> +<h3>Module</h3> +<p>Each module has a page that contains a list of its packages, dependencies on other modules, and services, with a summary for each. These pages may contain the following categories:</p> +<ul class="help-section-list"> +<li>Packages</li> +<li>Modules</li> +<li>Services</li> +</ul> +</section> +<section class="help-section" id="package"> +<h3>Package</h3> +<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:</p> +<ul class="help-section-list"> +<li>Interfaces</li> +<li>Classes</li> +<li>Enum Classes</li> +<li>Exception Classes</li> +<li>Annotation Interfaces</li> +</ul> +</section> +<section class="help-section" id="class"> +<h3>Class or Interface</h3> +<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.</p> +<ul class="help-section-list"> +<li>Class Inheritance Diagram</li> +<li>Direct Subclasses</li> +<li>All Known Subinterfaces</li> +<li>All Known Implementing Classes</li> +<li>Class or Interface Declaration</li> +<li>Class or Interface Description</li> +</ul> +<br> +<ul class="help-section-list"> +<li>Nested Class Summary</li> +<li>Enum Constant Summary</li> +<li>Field Summary</li> +<li>Property Summary</li> +<li>Constructor Summary</li> +<li>Method Summary</li> +<li>Required Element Summary</li> +<li>Optional Element Summary</li> +</ul> +<br> +<ul class="help-section-list"> +<li>Enum Constant Details</li> +<li>Field Details</li> +<li>Property Details</li> +<li>Constructor Details</li> +<li>Method Details</li> +<li>Element Details</li> +</ul> +<p><span class="help-note">Note:</span> Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.</p> +<p>The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p> +</section> +<section class="help-section" id="doc-file"> +<h3>Other Files</h3> +<p>Packages and modules may contain pages with additional information related to the declarations nearby.</p> +</section> +<section class="help-section" id="use"> +<h3>Use</h3> +<p>Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.</p> +</section> +<section class="help-section" id="tree"> +<h3>Tree (Class Hierarchy)</h3> +<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p> +<ul class="help-section-list"> +<li>When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.</li> +<li>When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.</li> +</ul> +</section> +<section class="help-section" id="all-packages"> +<h3>All Packages</h3> +<p>The <a href="allpackages-index.html">All Packages</a> page contains an alphabetic index of all packages contained in the documentation.</p> +</section> +<section class="help-section" id="all-classes"> +<h3>All Classes and Interfaces</h3> +<p>The <a href="allclasses-index.html">All Classes and Interfaces</a> page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.</p> +</section> +<section class="help-section" id="index"> +<h3>Index</h3> +<p>The <a href="index-files/index-1.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as <a href="allpackages-index.html">All Packages</a>, <a href="allclasses-index.html">All Classes and Interfaces</a>.</p> +</section> +</div> +<hr> +<span class="help-footnote">This help file applies to API documentation generated by the standard doclet.</span></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-1.html b/doc/index-files/index-1.html new file mode 100644 index 0000000..2e50eba --- /dev/null +++ b/doc/index-files/index-1.html @@ -0,0 +1,66 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>A-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: A"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:A">A</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Panier.html#add(int,Panier.Vendable)" class="member-name-link">add(int, Vendable)</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Panier.html" title="class in Panier">Panier</a></dt> +<dd> +<div class="block">Ajoute un produit dans le panier.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-2.html b/doc/index-files/index-2.html new file mode 100644 index 0000000..771ecb6 --- /dev/null +++ b/doc/index-files/index-2.html @@ -0,0 +1,70 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>D-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: D"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:D">D</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Disque.html" class="type-name-link" title="class in Panier">Disque</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe représentant un disque (CD/DVD) vendable.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Disque.html#%3Cinit%3E(double)" class="member-name-link">Disque(double)</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Disque.html" title="class in Panier">Disque</a></dt> +<dd> +<div class="block">Constructeur pour initialiser le prix du disque.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-3.html b/doc/index-files/index-3.html new file mode 100644 index 0000000..8053e31 --- /dev/null +++ b/doc/index-files/index-3.html @@ -0,0 +1,84 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>G-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: G"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:G">G</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/module-summary.html">Gestion_panier</a> - module Gestion_panier</dt> +<dd> </dd> +<dt><a href="../Gestion_panier/Panier/Disque.html#getPrix()" class="member-name-link">getPrix()</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Disque.html" title="class in Panier">Disque</a></dt> +<dd> +<div class="block">Retourne le prix du disque.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Nourriture.html#getPrix()" class="member-name-link">getPrix()</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Nourriture.html" title="class in Panier">Nourriture</a></dt> +<dd> +<div class="block">Calcule et retourne le prix total de la portion de nourriture.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Vendable.html#getPrix()" class="member-name-link">getPrix()</a> - Method in interface Panier.<a href="../Gestion_panier/Panier/Vendable.html" title="interface in Panier">Vendable</a></dt> +<dd> +<div class="block">Méthode pour obtenir le prix unitaire de l'objet.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Produit.html#getPrixProduit()" class="member-name-link">getPrixProduit()</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Produit.html" title="class in Panier">Produit</a></dt> +<dd> +<div class="block">Méthode pour obtenir le prix total du produit (quantité * prix unitaire).</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Panier.html#getTotalPrix()" class="member-name-link">getTotalPrix()</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Panier.html" title="class in Panier">Panier</a></dt> +<dd> +<div class="block">Calcule le prix total du panier.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-4.html b/doc/index-files/index-4.html new file mode 100644 index 0000000..1cf9d50 --- /dev/null +++ b/doc/index-files/index-4.html @@ -0,0 +1,72 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>M-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: M"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:M">M</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Main.html#main(java.lang.String%5B%5D)" class="member-name-link">main(String[])</a> - Static method in class Panier.<a href="../Gestion_panier/Panier/Main.html" title="class in Panier">Main</a></dt> +<dd> +<div class="block">Méthode principale qui exécute différents scénarios de test pour la gestion des paniers.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Main.html" class="type-name-link" title="class in Panier">Main</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe principale contenant le programme de test pour la gestion d'un panier d'achats.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Main.html#%3Cinit%3E()" class="member-name-link">Main()</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Main.html" title="class in Panier">Main</a></dt> +<dd> </dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-5.html b/doc/index-files/index-5.html new file mode 100644 index 0000000..cfdd526 --- /dev/null +++ b/doc/index-files/index-5.html @@ -0,0 +1,70 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>N-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: N"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:N">N</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Nourriture.html" class="type-name-link" title="class in Panier">Nourriture</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe représentant un produit alimentaire vendable.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Nourriture.html#%3Cinit%3E(double,double)" class="member-name-link">Nourriture(double, double)</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Nourriture.html" title="class in Panier">Nourriture</a></dt> +<dd> +<div class="block">Constructeur permettant d'initialiser une portion de nourriture avec son prix et son poids.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-6.html b/doc/index-files/index-6.html new file mode 100644 index 0000000..e657e7f --- /dev/null +++ b/doc/index-files/index-6.html @@ -0,0 +1,78 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>P-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: P"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:P">P</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/package-summary.html">Panier</a> - package Panier</dt> +<dd> </dd> +<dt><a href="../Gestion_panier/Panier/Panier.html" class="type-name-link" title="class in Panier">Panier</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe représentant un panier contenant des produits.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Panier.html#%3Cinit%3E()" class="member-name-link">Panier()</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Panier.html" title="class in Panier">Panier</a></dt> +<dd> </dd> +<dt><a href="../Gestion_panier/Panier/Produit.html" class="type-name-link" title="class in Panier">Produit</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe représentant un produit dans un panier.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Produit.html#%3Cinit%3E(Panier.Vendable,int)" class="member-name-link">Produit(Vendable, int)</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Produit.html" title="class in Panier">Produit</a></dt> +<dd> +<div class="block">Constructeur pour initialiser un produit avec une chose vendable et une quantité.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-7.html b/doc/index-files/index-7.html new file mode 100644 index 0000000..852b353 --- /dev/null +++ b/doc/index-files/index-7.html @@ -0,0 +1,66 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>V-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: V"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:V">V</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Vendable.html" class="type-name-link" title="interface in Panier">Vendable</a> - Interface in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000..90baf7e --- /dev/null +++ b/doc/index.html @@ -0,0 +1,26 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Generated Documentation (Untitled)</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index redirect"> +<meta name="generator" content="javadoc/IndexRedirectWriter"> +<link rel="canonical" href="Gestion_panier/module-summary.html"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<script type="text/javascript">window.location.replace('Gestion_panier/module-summary.html')</script> +<noscript> +<meta http-equiv="Refresh" content="0;Gestion_panier/module-summary.html"> +</noscript> +</head> +<body class="index-redirect-page"> +<main role="main"> +<noscript> +<p>JavaScript is disabled on your browser.</p> +</noscript> +<p><a href="Gestion_panier/module-summary.html">Gestion_panier/module-summary.html</a></p> +</main> +</body> +</html> diff --git a/doc/legal/COPYRIGHT b/doc/legal/COPYRIGHT new file mode 100644 index 0000000..ca74fff --- /dev/null +++ b/doc/legal/COPYRIGHT @@ -0,0 +1 @@ +Please see ..\java.base\COPYRIGHT diff --git a/doc/legal/LICENSE b/doc/legal/LICENSE new file mode 100644 index 0000000..4ad9fe4 --- /dev/null +++ b/doc/legal/LICENSE @@ -0,0 +1 @@ +Please see ..\java.base\LICENSE diff --git a/doc/legal/jquery.md b/doc/legal/jquery.md new file mode 100644 index 0000000..d468b31 --- /dev/null +++ b/doc/legal/jquery.md @@ -0,0 +1,72 @@ +## jQuery v3.6.1 + +### jQuery License +``` +jQuery v 3.6.1 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +****************************************** + +The jQuery JavaScript Library v3.6.1 also includes Sizzle.js + +Sizzle.js includes the following license: + +Copyright JS Foundation and other contributors, https://js.foundation/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/sizzle + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +********************* + +``` diff --git a/doc/legal/jqueryUI.md b/doc/legal/jqueryUI.md new file mode 100644 index 0000000..9f4c9e9 --- /dev/null +++ b/doc/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.13.1 + +### jQuery UI License +``` +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/doc/member-search-index.js b/doc/member-search-index.js new file mode 100644 index 0000000..b35fc82 --- /dev/null +++ b/doc/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"Panier","c":"Panier","l":"add(int, Vendable)","u":"add(int,Panier.Vendable)"},{"p":"Panier","c":"Disque","l":"Disque(double)","u":"%3Cinit%3E(double)"},{"p":"Panier","c":"Disque","l":"getPrix()"},{"p":"Panier","c":"Nourriture","l":"getPrix()"},{"p":"Panier","c":"Vendable","l":"getPrix()"},{"p":"Panier","c":"Produit","l":"getPrixProduit()"},{"p":"Panier","c":"Panier","l":"getTotalPrix()"},{"p":"Panier","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"Panier","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"Panier","c":"Nourriture","l":"Nourriture(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"Panier","c":"Panier","l":"Panier()","u":"%3Cinit%3E()"},{"p":"Panier","c":"Produit","l":"Produit(Vendable, int)","u":"%3Cinit%3E(Panier.Vendable,int)"}];updateSearchResults(); \ No newline at end of file diff --git a/doc/module-search-index.js b/doc/module-search-index.js new file mode 100644 index 0000000..a0ad1a3 --- /dev/null +++ b/doc/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [{"l":"Gestion_panier"}];updateSearchResults(); \ No newline at end of file diff --git a/doc/overview-tree.html b/doc/overview-tree.html new file mode 100644 index 0000000..eddab56 --- /dev/null +++ b/doc/overview-tree.html @@ -0,0 +1,82 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Class Hierarchy</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="class tree"> +<meta name="generator" content="javadoc/TreeWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="tree-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li>Module</li> +<li>Package</li> +<li>Class</li> +<li>Use</li> +<li class="nav-bar-cell1-rev">Tree</li> +<li><a href="index-files/index-1.html">Index</a></li> +<li><a href="help-doc.html#tree">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 class="title">Hierarchy For All Packages</h1> +</div> +<span class="package-hierarchy-label">Package Hierarchies:</span> +<ul class="horizontal contents-list"> +<li><a href="Gestion_panier/Panier/package-tree.html">Panier</a></li> +</ul> +<section class="hierarchy"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a> +<ul> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Disque.html" class="type-name-link" title="class in Panier">Disque</a> (implements Panier.<a href="Gestion_panier/Panier/Vendable.html" title="interface in Panier">Vendable</a>)</li> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Main.html" class="type-name-link" title="class in Panier">Main</a></li> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Nourriture.html" class="type-name-link" title="class in Panier">Nourriture</a> (implements Panier.<a href="Gestion_panier/Panier/Vendable.html" title="interface in Panier">Vendable</a>)</li> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Panier.html" class="type-name-link" title="class in Panier">Panier</a></li> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Produit.html" class="type-name-link" title="class in Panier">Produit</a></li> +</ul> +</li> +</ul> +</section> +<section class="hierarchy"> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Vendable.html" class="type-name-link" title="interface in Panier">Vendable</a></li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/package-search-index.js b/doc/package-search-index.js new file mode 100644 index 0000000..1d7b216 --- /dev/null +++ b/doc/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"m":"Gestion_panier","l":"Panier"}];updateSearchResults(); \ No newline at end of file diff --git a/doc/resources/glass.png b/doc/resources/glass.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f591f467a1c0c949bbc510156a0c1afb860a6e GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7BuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFi!P!aSW-rmGtNTe|u&Qmvi^?IhLGixWU-L+VDeB zU_I-jdrv$2-b)lPxJ_VmIP2-~%}1e*<%o9U4^e^F4QE&%U3YlHWb%YBj9KZ~TVv)+ z#~Ug%1(q|4{%i4M;tgX8vTpogF7TT9Y29M!11v|T2FwngXxhv$p`PF4XkpRk45pU> zIeH9|3G7F*8@lQfgBe8Z|NVU}K7n=H4xR^0kIwV_VDy;BJe|?J;Rf4uzXXd8CQVa? zeSN1JBKI&g<vFxAMwl2gt@OO$5Yu*+L2Lr!eEU7$87{4Ekg8h170+O(@gS@5hNOr! z`}?|IUHY;cm~NhRm~;Bv$&+87f6r$NGb?M8zrXJudzUDKY4fF{WeR-t*B<TXKFpw^ z{+U6uIK!)k;mGsGS&nV@p9oK%_W#Q#O^sQH8`^RXWijX}gl-m0d11%M8M%&MU#|I( zvRK9muLuPp7KfwijZ@?UKI=PXvQFrp#>DHZa*NeNuahCjyCr4njQh6x*e}g+o5UF4 zY-IVfby?vjPNO~5HQ$v_vN`Z-HoAQ*YG7by_;hl<EJLNjQU(SF22WQ%mvv4FO#nFj B#b5vc literal 0 HcmV?d00001 diff --git a/doc/resources/x.png b/doc/resources/x.png new file mode 100644 index 0000000000000000000000000000000000000000..30548a756e151be4e927e8d28c508cc5b3514bf3 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7BuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFzR@^IEGZ*O3HaZ^8f?OQim9pBaxy<f4-Ld(9n0U zGtnVSNMJj|Rlmft!p|CvMY|ejuy-)`%h*@mJ$CAm72ny14q1`{pP4p_2fVFTQ&=qK z$tx|O&#uLDaABpUfUz=Xcq7jV)<^q2n%2B%dvJm0(&XbzDq@Tu>lNnpFKJ-S;!vKD zc4(oclmy%Ahy_gD3r*S-1I*0MYD+Fy*31~dkm6x8t9-`COgBS@ERGW^3p3gtT<J+< znB)}Gz`35G?}FR6b4d$kWvpR)(5dysAd(|Qx;c+Q@2tXYrN$rpvlO`-+KwDrq{ZWJ zv%Y0lALFc+$O$|%`GwM((s=d+vZkzW+x5hJmiI0Pwk?8PS}PQ@FYqufy;n7Z+u`R! vQvvtH%RMP4qB1IM*&gvI)QdSZFfwGaS2)}aWlm;bU|{fc^>bP0l+XkKG;Nb2 literal 0 HcmV?d00001 diff --git a/doc/script-dir/jquery-3.6.1.min.js b/doc/script-dir/jquery-3.6.1.min.js new file mode 100644 index 0000000..2c69bc9 --- /dev/null +++ b/doc/script-dir/jquery-3.6.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=y.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:v}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,y,s,c,v,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace($," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,y){var v="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===y?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=v!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(v){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=y)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ye(function(){return[0]}),last:ye(function(e,t){return[t-1]}),eq:ye(function(e,t,n){return[n<0?n+t:n]}),even:ye(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ye(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ye(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ye(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,y,v,e){return y&&!y[S]&&(y=Ce(y)),v&&!v[S]&&(v=Ce(v,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?v||(e?d:l||y)?[]:t:f;if(g&&g(f,p,n,r),y){i=Te(p,u),y(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(v||d){if(v){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);v(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=v?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),v?v(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,y,v,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(y=o,m=0<(v=i).length,x=0<y.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=y[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=v[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+v.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ve(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function $(){E.removeEventListener("DOMContentLoaded",$),C.removeEventListener("load",$),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",$),C.addEventListener("load",$));var B=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)B(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):B(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",v.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,v.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=y.events)||(u=y.events=Object.create(null)),(a=y.handle)||(a=y.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.hasData(e)&&Y.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||S.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(t,e){S.event.special[t]={setup:function(){return Se(this,t,Ce),!1},trigger:function(){return Se(this,t),!0},_default:function(e){return Y.get(e.target,t)},delegateType:e}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!v.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ye(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ye(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ye(r)),r.parentNode&&(n&&ie(r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ye(c),r=0,i=(o=ye(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ye(e),a=a||ye(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ye(c,"script")).length&&ve(a,!f&&ye(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return B(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return B(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ye(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=/^--/,Me=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Ie=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},We=new RegExp(ne.join("|"),"i"),Fe="[\\x20\\t\\r\\n\\f]",$e=new RegExp("^"+Fe+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Fe+"+$","g");function Be(e,t,n){var r,i,o,a,s=Re.test(t),u=e.style;return(n=n||Me(e))&&(a=n.getPropertyValue(t)||n[t],s&&(a=a.replace($e,"$1")),""!==a||ie(e)||(a=S.style(e,t)),!v.pixelBoxStyles()&&Pe.test(a)&&We.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(v,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var ze=["Webkit","Moz","ms"],Ue=E.createElement("div").style,Xe={};function Ve(e){var t=S.cssProps[e]||Xe[e];return t||(e in Ue?e:Xe[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=ze.length;while(n--)if((e=ze[n]+t)in Ue)return e}(e)||e)}var Ge=/^(none|table(?!-c[ea]).+)/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Me(e),i=(!v.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Re.test(t),l=e.style;if(u||(t=Ve(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Re.test(t)||(t=Ve(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ge.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):Ie(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Me(e),o=!v.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=_e(v.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-Ie(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return B(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Me(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Ve(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(y?"hidden"in y&&(g=y.hidden):y=Y.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",v.checkOn=""!==rt.value,v.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",v.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return B(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function yt(e){return(e.match(P)||[]).join(" ")}function vt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return B(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),v.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){S(this).addClass(t.call(this,e,vt(this)))}):(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=yt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){S(this).removeClass(t.call(this,e,vt(this)))}):arguments.length?(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=yt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return m(t)?this.each(function(e){S(this).toggleClass(t.call(this,e,vt(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=mt(t),this.each(function(){if(s)for(o=S(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=vt(this))&&Y.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+yt(vt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:yt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},v.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),v.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=y.call(e,"type")?e.type:e,h=y.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),v.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function jt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):jt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)jt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var Dt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function $t(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Bt(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Bt(Bt(e,S.ajaxSettings),t):Bt(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,y=S.ajaxSetup({},t),v=y.context||y,m=y.context&&(v.nodeType||v.jquery)?S(v):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=y.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(y.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),y.url=((e||y.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),y.type=t.method||t.type||y.method||y.type,y.dataTypes=(y.dataType||"*").toLowerCase().match(P)||[""],null==y.crossDomain){r=E.createElement("a");try{r.href=y.url,r.href=r.href,y.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){y.crossDomain=!0}}if(y.data&&y.processData&&"string"!=typeof y.data&&(y.data=S.param(y.data,y.traditional)),$t(Rt,y,t,T),h)return T;for(i in(g=S.event&&y.global)&&0==S.active++&&S.event.trigger("ajaxStart"),y.type=y.type.toUpperCase(),y.hasContent=!Ot.test(y.type),f=y.url.replace(qt,""),y.hasContent?y.data&&y.processData&&0===(y.contentType||"").indexOf("application/x-www-form-urlencoded")&&(y.data=y.data.replace(Dt,"+")):(o=y.url.slice(f.length),y.data&&(y.processData||"string"==typeof y.data)&&(f+=(Et.test(f)?"&":"?")+y.data,delete y.data),!1===y.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),y.url=f+o),y.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(y.data&&y.hasContent&&!1!==y.contentType||t.contentType)&&T.setRequestHeader("Content-Type",y.contentType),T.setRequestHeader("Accept",y.dataTypes[0]&&y.accepts[y.dataTypes[0]]?y.accepts[y.dataTypes[0]]+("*"!==y.dataTypes[0]?", "+It+"; q=0.01":""):y.accepts["*"]),y.headers)T.setRequestHeader(i,y.headers[i]);if(y.beforeSend&&(!1===y.beforeSend.call(v,T,y)||h))return T.abort();if(u="abort",b.add(y.complete),T.done(y.success),T.fail(y.error),c=$t(Mt,y,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,y]),h)return T;y.async&&0<y.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},y.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(y,T,n)),!i&&-1<S.inArray("script",y.dataTypes)&&S.inArray("json",y.dataTypes)<0&&(y.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(y,s,T,i),i?(y.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===y.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(v,[o,l,T]):x.rejectWith(v,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,y,i?o:a]),b.fireWith(v,[T,l]),g&&(m.trigger("ajaxComplete",[T,y]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();v.cors=!!zt&&"withCredentials"in zt,v.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(v.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=yt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S}); diff --git a/doc/script-dir/jquery-ui.min.css b/doc/script-dir/jquery-ui.min.css new file mode 100644 index 0000000..d64539c --- /dev/null +++ b/doc/script-dir/jquery-ui.min.css @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.13.1 - 2022-05-12 +* http://jqueryui.com +* Includes: core.css, autocomplete.css, menu.css +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:"alpha(opacity=0)"}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} \ No newline at end of file diff --git a/doc/script-dir/jquery-ui.min.js b/doc/script-dir/jquery-ui.min.js new file mode 100644 index 0000000..55c2832 --- /dev/null +++ b/doc/script-dir/jquery-ui.min.js @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.13.1 - 2022-05-12 +* http://jqueryui.com +* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/autocomplete.js, widgets/menu.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(x){"use strict";x.ui=x.ui||{};x.ui.version="1.13.1";var n,i=0,l=Array.prototype.hasOwnProperty,a=Array.prototype.slice;x.cleanData=(n=x.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=x._data(i,"events"))&&e.remove&&x(i).triggerHandler("remove");n(t)}),x.widget=function(t,i,e){var s,n,o,l={},a=t.split(".")[0],r=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=x.Widget),Array.isArray(e)&&(e=x.extend.apply(null,[{}].concat(e))),x.expr.pseudos[r.toLowerCase()]=function(t){return!!x.data(t,r)},x[a]=x[a]||{},s=x[a][t],n=x[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},x.extend(n,s,{version:e.version,_proto:x.extend({},e),_childConstructors:[]}),(o=new i).options=x.widget.extend({},o.options),x.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}l[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=x.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},l,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(x.each(s._childConstructors,function(t,e){var i=e.prototype;x.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),x.widget.bridge(t,n),n},x.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n<o;n++)for(e in s[n])i=s[n][e],l.call(s[n],e)&&void 0!==i&&(x.isPlainObject(i)?t[e]=x.isPlainObject(t[e])?x.widget.extend({},t[e],i):x.widget.extend({},i):t[e]=i);return t},x.widget.bridge=function(o,e){var l=e.prototype.widgetFullName||o;x.fn[o]=function(i){var t="string"==typeof i,s=a.call(arguments,1),n=this;return t?this.length||"instance"!==i?this.each(function(){var t,e=x.data(this,l);return"instance"===i?(n=e,!1):e?"function"!=typeof e[i]||"_"===i.charAt(0)?x.error("no such method '"+i+"' for "+o+" widget instance"):(t=e[i].apply(e,s))!==e&&void 0!==t?(n=t&&t.jquery?n.pushStack(t.get()):t,!1):void 0:x.error("cannot call methods on "+o+" prior to initialization; attempted to call method '"+i+"'")}):n=void 0:(s.length&&(i=x.widget.extend.apply(null,[i].concat(s))),this.each(function(){var t=x.data(this,l);t?(t.option(i||{}),t._init&&t._init()):x.data(this,l,new e(i,this))})),n}},x.Widget=function(){},x.Widget._childConstructors=[],x.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n<i.length-1;n++)s[i[n]]=s[i[n]]||{},s=s[i[n]];if(t=i.pop(),1===arguments.length)return void 0===s[t]?null:s[t];s[t]=e}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=e}return this._setOptions(o),this},_setOptions:function(t){for(var e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(t){var e,i,s;for(e in t)s=this.classesElementLookup[e],t[e]!==this.options.classes[e]&&s&&s.length&&(i=x(s.get()),this._removeClass(s,e),i.addClass(this._classes({element:i,keys:e,classes:t,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(n){var o=[],l=this;function t(t,e){for(var i,s=0;s<t.length;s++)i=l.classesElementLookup[t[s]]||x(),i=n.add?(function(){var i=[];n.element.each(function(t,e){x.map(l.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),l._on(x(i),{remove:"_untrackClassesElement"})}(),x(x.uniqueSort(i.get().concat(n.element.get())))):x(i.not(n.element).get()),l.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=x.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\S+/g)||[],!0),n.extra&&t(n.extra.match(/\S+/g)||[]),o.join(" ")},_untrackClassesElement:function(i){var s=this;x.each(s.classesElementLookup,function(t,e){-1!==x.inArray(i.target,e)&&(s.classesElementLookup[t]=x(e.not(i.target).get()))}),this._off(x(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n="string"==typeof t||null===t,i={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s="boolean"==typeof s?s:i};return i.element.toggleClass(this._classes(i),s),this},_on:function(n,o,t){var l,a=this;"boolean"!=typeof n&&(t=o,o=n,n=!1),t?(o=l=x(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,l=this.widget()),x.each(t,function(t,e){function i(){if(n||!0!==a.options.disabled&&!x(this).hasClass("ui-state-disabled"))return("string"==typeof e?a[e]:e).apply(a,arguments)}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||x.guid++);var s=t.match(/^([\w:-]*)\s*(.*)$/),t=s[1]+a.eventNamespace,s=s[2];s?l.on(t,s,i):o.on(t,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(e),this.bindings=x(this.bindings.not(t).get()),this.focusable=x(this.focusable.not(t).get()),this.hoverable=x(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(x(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(x(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=x.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!("function"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},x.each({show:"fadeIn",hide:"fadeOut"},function(o,l){x.Widget.prototype["_"+o]=function(e,t,i){var s,n=(t="string"==typeof t?{effect:t}:t)?!0!==t&&"number"!=typeof t&&t.effect||l:o;"number"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!x.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&x.effects&&x.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){x(this)[o](),i&&i.call(e[0]),t()})}});var s,C,E,o,r,u,h,c,k;x.widget;function T(t,e,i){return[parseFloat(t[0])*(c.test(t[0])?e/100:1),parseFloat(t[1])*(c.test(t[1])?i/100:1)]}function A(t,e){return parseInt(x.css(t,e),10)||0}function W(t){return null!=t&&t===t.window}C=Math.max,E=Math.abs,o=/left|center|right/,r=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,h=/^\w+/,c=/%$/,k=x.fn.position,x.position={scrollbarWidth:function(){if(void 0!==s)return s;var t,e=x("<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>"),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.width<t.element[0].scrollWidth;return{width:"scroll"===i||"auto"===i&&t.height<t.element[0].scrollHeight?x.position.scrollbarWidth():0,height:e?x.position.scrollbarWidth():0}},getWithinInfo:function(t){var e=x(t||window),i=W(e[0]),s=!!e[0]&&9===e[0].nodeType;return{element:e,isWindow:i,isDocument:s,offset:!i&&!s?x(t).offset():{left:0,top:0},scrollLeft:e.scrollLeft(),scrollTop:e.scrollTop(),width:e.outerWidth(),height:e.outerHeight()}}},x.fn.position=function(c){if(!c||!c.of)return k.apply(this,arguments);var d,f,m,p,v,t,g="string"==typeof(c=x.extend({},c)).of?x(document).find(c.of):x(c.of),_=x.position.getWithinInfo(c.within),y=x.position.getScrollInfo(_),b=(c.collision||"flip").split(" "),w={},e=9===(t=(e=g)[0]).nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:W(t)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:t.preventDefault?{width:0,height:0,offset:{top:t.pageY,left:t.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()};return g[0].preventDefault&&(c.at="left top"),f=e.width,m=e.height,v=x.extend({},p=e.offset),x.each(["my","at"],function(){var t,e,i=(c[this]||"").split(" ");(i=1===i.length?o.test(i[0])?i.concat(["center"]):r.test(i[0])?["center"].concat(i):["center","center"]:i)[0]=o.test(i[0])?i[0]:"center",i[1]=r.test(i[1])?i[1]:"center",t=u.exec(i[0]),e=u.exec(i[1]),w[this]=[t?t[0]:0,e?e[0]:0],c[this]=[h.exec(i[0])[0],h.exec(i[1])[0]]}),1===b.length&&(b[1]=b[0]),"right"===c.at[0]?v.left+=f:"center"===c.at[0]&&(v.left+=f/2),"bottom"===c.at[1]?v.top+=m:"center"===c.at[1]&&(v.top+=m/2),d=T(w.at,f,m),v.left+=d[0],v.top+=d[1],this.each(function(){var i,t,l=x(this),a=l.outerWidth(),r=l.outerHeight(),e=A(this,"marginLeft"),s=A(this,"marginTop"),n=a+e+A(this,"marginRight")+y.width,o=r+s+A(this,"marginBottom")+y.height,u=x.extend({},v),h=T(w.my,l.outerWidth(),l.outerHeight());"right"===c.my[0]?u.left-=a:"center"===c.my[0]&&(u.left-=a/2),"bottom"===c.my[1]?u.top-=r:"center"===c.my[1]&&(u.top-=r/2),u.left+=h[0],u.top+=h[1],i={marginLeft:e,marginTop:s},x.each(["left","top"],function(t,e){x.ui.position[b[t]]&&x.ui.position[b[t]][e](u,{targetWidth:f,targetHeight:m,elemWidth:a,elemHeight:r,collisionPosition:i,collisionWidth:n,collisionHeight:o,offset:[d[0]+h[0],d[1]+h[1]],my:c.my,at:c.at,within:_,elem:l})}),c.using&&(t=function(t){var e=p.left-u.left,i=e+f-a,s=p.top-u.top,n=s+m-r,o={target:{element:g,left:p.left,top:p.top,width:f,height:m},element:{element:l,left:u.left,top:u.top,width:a,height:r},horizontal:i<0?"left":0<e?"right":"center",vertical:n<0?"top":0<s?"bottom":"middle"};f<a&&E(e+i)<f&&(o.horizontal="center"),m<r&&E(s+n)<m&&(o.vertical="middle"),C(E(e),E(i))>C(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0<l&&a<=0?(i=t.left+l+e.collisionWidth-n-s,t.left+=l-i):t.left=!(0<a&&l<=0)&&a<l?s+n-e.collisionWidth:s:0<l?t.left+=l:0<a?t.left-=a:t.left=C(t.left-o,t.left)},top:function(t,e){var i=e.within,s=i.isWindow?i.scrollTop:i.offset.top,n=e.within.height,o=t.top-e.collisionPosition.marginTop,l=s-o,a=o+e.collisionHeight-n-s;e.collisionHeight>n?0<l&&a<=0?(i=t.top+l+e.collisionHeight-n-s,t.top+=l-i):t.top=!(0<a&&l<=0)&&a<l?s+n-e.collisionHeight:s:0<l?t.top+=l:0<a?t.top-=a:t.top=C(t.top-o,t.top)}},flip:{left:function(t,e){var i=e.within,s=i.offset.left+i.scrollLeft,n=i.width,o=i.isWindow?i.scrollLeft:i.offset.left,l=t.left-e.collisionPosition.marginLeft,a=l-o,r=l+e.collisionWidth-n-o,u="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,i="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,l=-2*e.offset[0];a<0?((s=t.left+u+i+l+e.collisionWidth-n-s)<0||s<E(a))&&(t.left+=u+i+l):0<r&&(0<(o=t.left-e.collisionPosition.marginLeft+u+i+l-o)||E(o)<r)&&(t.left+=u+i+l)},top:function(t,e){var i=e.within,s=i.offset.top+i.scrollTop,n=i.height,o=i.isWindow?i.scrollTop:i.offset.top,l=t.top-e.collisionPosition.marginTop,a=l-o,r=l+e.collisionHeight-n-o,u="top"===e.my[1]?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,i="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,l=-2*e.offset[1];a<0?((s=t.top+u+i+l+e.collisionHeight-n-s)<0||s<E(a))&&(t.top+=u+i+l):0<r&&(0<(o=t.top-e.collisionPosition.marginTop+u+i+l-o)||E(o)<r)&&(t.top+=u+i+l)}},flipfit:{left:function(){x.ui.position.flip.left.apply(this,arguments),x.ui.position.fit.left.apply(this,arguments)},top:function(){x.ui.position.flip.top.apply(this,arguments),x.ui.position.fit.top.apply(this,arguments)}}};var t;x.ui.position,x.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},x.fn.extend({uniqueId:(t=0,function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&x(this).removeAttr("id")})}}),x.ui.safeActiveElement=function(e){var i;try{i=e.activeElement}catch(t){i=e.body}return i=!(i=i||e.body).nodeName?e.body:i},x.widget("ui.menu",{version:"1.13.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("<span>").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s<e+t&&this.activeMenu.scrollTop(i+e-s+t))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(t){var e=x.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(e)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var t=i?this.element:x(e&&e.target).closest(this.element.find(".ui-menu"));t.length||(t=this.element),this._close(t),this.blur(e),this._removeClass(t.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=t},i?0:this.delay)},_close:function(t){(t=t||(this.active?this.active.parent():this.element)).find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(t){return!x(t.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this._menuItems(this.active.children(".ui-menu")).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_menuItems:function(t){return(t||this.element).find(this.options.items).filter(".ui-menu-item")},_move:function(t,e,i){var s;(s=this.active?"first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").last():this.active[t+"All"](".ui-menu-item").first():s)&&s.length&&this.active||(s=this._menuItems(this.activeMenu)[e]()),this.focus(i,s)},nextPage:function(t){var e,i,s;this.active?this.isLastItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.innerHeight(),0===x.fn.jquery.indexOf("3.2.")&&(s+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.nextAll(".ui-menu-item").each(function(){return(e=x(this)).offset().top-i-s<0}),this.focus(t,e)):this.focus(t,this._menuItems(this.activeMenu)[this.active?"last":"first"]())):this.next(t)},previousPage:function(t){var e,i,s;this.active?this.isFirstItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.innerHeight(),0===x.fn.jquery.indexOf("3.2.")&&(s+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.prevAll(".ui-menu-item").each(function(){return 0<(e=x(this)).offset().top-i+s}),this.focus(t,e)):this.focus(t,this._menuItems(this.activeMenu).first())):this.next(t)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||x(t.target).closest(".ui-menu-item");var e={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,e)},_filterMenuItems:function(t){var t=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),e=new RegExp("^"+t,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return e.test(String.prototype.trim.call(x(this).children(".ui-menu-item-wrapper").text()))})}});x.widget("ui.autocomplete",{version:"1.13.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("<div>").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):!1!==this._trigger("search",e)?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")}.bind(this)},__response:function(t){t=t&&this._normalize(t),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:x.map(t,function(t){return"string"==typeof t?{label:t,value:t}:x.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var e=this.menu.element.empty();this._renderMenu(e,t),this.isNewMenu=!0,this.menu.refresh(),e.show(),this._resizeMenu(),e.position(x.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(i,t){var s=this;x.each(t,function(t,e){s._renderItemData(i,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(t,e){return x("<li>").append(x("<div>").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1<t?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var e;this._superApply(arguments),this.options.disabled||this.cancelSearch||(e=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("<div>").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/doc/script.js b/doc/script.js new file mode 100644 index 0000000..4f18152 --- /dev/null +++ b/doc/script.js @@ -0,0 +1,268 @@ +/* + * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + var display = checkbox.checked ? '' : 'none'; + document.querySelectorAll("div.table-tabs").forEach(function(t) { + var id = t.parentElement.getAttribute("id"); + var selectedClass = id + "-tab" + selected; + // if selected is empty string it selects all uncategorized entries + var selectUncategorized = !Boolean(selected); + var visible = 0; + document.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectUncategorized) { + if (elem.className.indexOf(selectedClass) === -1) { + elem.style.display = display; + } + } else if (elem.classList.contains(selectedClass)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button.firstElementChild, button.parentElement); +} +// Copy the link to the adjacent header to the clipboard +function copyUrl(button) { + var id; + var header = button.parentElement; + if (header.hasAttribute("id")) { + id = header.getAttribute("id"); + } else if (header.parentElement.tagName === 'SECTION' && header.parentElement.hasAttribute("id")) { + id = header.parentElement.getAttribute("id"); + } else if (header.firstElementChild && header.firstElementChild.tagName === "A" + && header.firstElementChild.hasAttribute("id")) { + id = header.firstElementChild.getAttribute("id"); + } + var url = document.location.href; + if (url.indexOf("#") > -1) { + url = url.substring(0, url.indexOf("#")); + } + copyToClipboard(url + "#" + id); + switchCopyLabel(button.lastElementChild, button.parentElement); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(span, parent) { + var copied = span.getAttribute("data-copied"); + if (span.innerHTML !== copied) { + var initialLabel = span.innerHTML; + span.innerHTML = copied; + parent.onmouseleave = parent.ontouchend = function() { + span.innerHTML = initialLabel; + }; + } +} +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + var timeoutId; + contentDiv.addEventListener("scroll", function(e) { + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + }, 100); + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/doc/search-page.js b/doc/search-page.js new file mode 100644 index 0000000..a7d29d8 --- /dev/null +++ b/doc/search-page.js @@ -0,0 +1,299 @@ +/* + * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = this.previousSibling.innerText; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); + var span = this.lastElementChild; + var copied = span.getAttribute("data-copied"); + if (span.innerHTML !== copied) { + var initialLabel = span.innerHTML; + span.innerHTML = copied; + var parent = this.parentElement.parentElement; + parent.onmouseleave = parent.ontouchend = copy[0].onmouseenter = function() { + span.innerHTML = initialLabel; + }; + } + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("<div class='table-tabs'></div>").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("<button id='result-tab-" + key + + "' class='page-search-header'><span>" + categories[key] + "</span>" + + "<span style='font-weight: normal'> (" + count + ")</span></button>").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("<span class='page-search-header active-table-tab'>" + categories[key] + + "<span style='font-weight: normal'> (" + count + ")</span></span>").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("<div class='table-tabs'></div>").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("<div class='summary-table'>") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("<div class='table-header col-plain'>" + col1 + "</div>").appendTo(table); + if (category !== "modules") { + $("<div class='table-header col-plain'>" + col2 + "</div>").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("<a/>") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("<div/>").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("<div/>").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); diff --git a/doc/search.html b/doc/search.html new file mode 100644 index 0000000..7454df9 --- /dev/null +++ b/doc/search.html @@ -0,0 +1,73 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Search</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="search"> +<meta name="generator" content="javadoc/SearchWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="search-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="Gestion_panier/module-summary.html">Module</a></li> +<li><a href="Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li><a href="index-files/index-1.html">Index</a></li> +<li><a href="help-doc.html#search">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<h1 class="title">Search</h1> +<div> +<input type="text" id="page-search-input" disabled placeholder="Search"> +<input type="reset" id="page-search-reset" disabled value="Reset" style="margin: 6px;"> +<details class="page-search-details"> +<summary id="page-search-expand">Additional resources</summary> +</details> +</div> +<div class="page-search-info"> +<p>The <a href="help-doc.html#search">help page</a> provides an introduction to the scope and syntax of JavaDoc search.</p> +<p>You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.</p> +<p>The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.</p> +<span id="page-search-link">link</span><button class="copy" id="page-search-copy"><img src="copy.svg" alt="Copy URL"><span data-copied="Copied!">Copy URL</span></button> +<p> +<input type="checkbox" id="search-redirect" disabled> +<label for="search-redirect">Redirect to first result</label></p> +</div> +<p id="page-search-notify">Loading search index...</p> +<div id="result-section" style="display: none;"> +<div id="result-container"></div> +<script type="text/javascript" src="search-page.js"></script> +</div> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/search.js b/doc/search.js new file mode 100644 index 0000000..9e61cfe --- /dev/null +++ b/doc/search.js @@ -0,0 +1,458 @@ +/* + * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ +"use strict"; +const messages = { + enterTerm: "Enter a search term", + noResult: "No results found", + oneResult: "Found one result", + manyResults: "Found {0} results", + loading: "Loading search index...", + searching: "Searching...", + redirecting: "Redirecting to first result...", + copyUrl: "Copy URL", + urlCopied: "Copied!" +} +const categories = { + modules: "Modules", + packages: "Packages", + types: "Classes and Interfaces", + members: "Members", + searchTags: "Search Tags" +}; +const highlight = "<span class='result-highlight'>$&</span>"; +const NO_MATCH = {}; +const MAX_RESULTS = 300; +function checkUnnamed(name, separator) { + return name === "<Unnamed>" || !name ? "" : name + separator; +} +function escapeHtml(str) { + return str.replace(/</g, "<").replace(/>/g, ">"); +} +function getHighlightedText(str, boundaries, from, to) { + var start = from; + var text = ""; + for (var i = 0; i < boundaries.length; i += 2) { + var b0 = boundaries[i]; + var b1 = boundaries[i + 1]; + if (b0 >= to || b1 <= from) { + continue; + } + text += escapeHtml(str.slice(start, Math.max(start, b0))); + text += "<span class='result-highlight'>"; + text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); + text += "</span>"; + start = Math.min(to, b1); + } + text += escapeHtml(str.slice(start, to)); + return text; +} +function getURLPrefix(item, category) { + var urlPrefix = ""; + var slash = "/"; + if (category === "modules") { + return item.l + slash; + } else if (category === "packages" && item.m) { + return item.m + slash; + } else if (category === "types" || category === "members") { + if (item.m) { + urlPrefix = item.m + slash; + } else { + $.each(packageSearchIndex, function(index, it) { + if (it.m && item.p === it.l) { + urlPrefix = it.m + slash; + } + }); + } + } + return urlPrefix; +} +function getURL(item, category) { + if (item.url) { + return item.url; + } + var url = getURLPrefix(item, category); + if (category === "modules") { + url += "module-summary.html"; + } else if (category === "packages") { + if (item.u) { + url = item.u; + } else { + url += item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (category === "types") { + if (item.u) { + url = item.u; + } else { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + } + } else if (category === "members") { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; + if (item.u) { + url += item.u; + } else { + url += item.l; + } + } else if (category === "searchTags") { + url += item.u; + } + item.url = url; + return url; +} +function createMatcher(term, camelCase) { + if (camelCase && !isUpperCase(term)) { + return null; // no need for camel-case matcher for lower case query + } + var pattern = ""; + var upperCase = []; + term.trim().split(/\s+/).forEach(function(w, index, array) { + var tokens = w.split(/(?=[A-Z,.()<>?[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + // ',' and '?' are the only delimiters commonly followed by space in java signatures + pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; + upperCase.push(false); + var isWordToken = /\w$/.test(s); + if (isWordToken) { + if (i === tokens.length - 1 && index < array.length - 1) { + // space in query string matches all delimiters + pattern += "(.*?)"; + upperCase.push(isUpperCase(s[0])); + } else { + if (!camelCase && isUpperCase(s) && s.length === 1) { + pattern += "()"; + } else { + pattern += "([a-z0-9$<>?[\\]]*?)"; + } + upperCase.push(isUpperCase(s[0])); + } + } else { + pattern += "()"; + upperCase.push(false); + } + } + }); + var re = new RegExp(pattern, "gi"); + re.upperCase = upperCase; + return re; +} +function findMatch(matcher, input, startOfName, endOfName) { + var from = startOfName; + matcher.lastIndex = from; + var match = matcher.exec(input); + // Expand search area until we get a valid result or reach the beginning of the string + while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { + if (from === 0) { + return NO_MATCH; + } + from = input.lastIndexOf(".", from - 2) + 1; + matcher.lastIndex = from; + match = matcher.exec(input); + } + var boundaries = []; + var matchEnd = match.index + match[0].length; + var score = 5; + var start = match.index; + var prevEnd = -1; + for (var i = 1; i < match.length; i += 2) { + var isUpper = isUpperCase(input[start]); + var isMatcherUpper = matcher.upperCase[i]; + // capturing groups come in pairs, match and non-match + boundaries.push(start, start + match[i].length); + // make sure groups are anchored on a left word boundary + var prevChar = input[start - 1] || ""; + var nextChar = input[start + 1] || ""; + if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) { + if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { + score -= 0.1; + } else if (isMatcherUpper && start === prevEnd) { + score -= isUpper ? 0.1 : 1.0; + } else { + return NO_MATCH; + } + } + prevEnd = start + match[i].length; + start += match[i].length + match[i + 1].length; + + // lower score for parts of the name that are missing + if (match[i + 1] && prevEnd < endOfName) { + score -= rateNoise(match[i + 1]); + } + } + // lower score if a type name contains unmatched camel-case parts + if (input[matchEnd - 1] !== "." && endOfName > matchEnd) + score -= rateNoise(input.slice(matchEnd, endOfName)); + score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); + + if (score <= 0) { + return NO_MATCH; + } + return { + input: input, + score: score, + boundaries: boundaries + }; +} +function isUpperCase(s) { + return s !== s.toLowerCase(); +} +function isLowerCase(s) { + return s !== s.toUpperCase(); +} +function rateNoise(str) { + return (str.match(/([.(])/g) || []).length / 5 + + (str.match(/([A-Z]+)/g) || []).length / 10 + + str.length / 20; +} +function doSearch(request, response) { + var term = request.term.trim(); + var maxResults = request.maxResults || MAX_RESULTS; + if (term.length === 0) { + return this.close(); + } + var matcher = { + plainMatcher: createMatcher(term, false), + camelCaseMatcher: createMatcher(term, true) + } + var indexLoaded = indexFilesLoaded(); + + function getPrefix(item, category) { + switch (category) { + case "packages": + return checkUnnamed(item.m, "/"); + case "types": + return checkUnnamed(item.p, "."); + case "members": + return checkUnnamed(item.p, ".") + item.c + "."; + default: + return ""; + } + } + function useQualifiedName(category) { + switch (category) { + case "packages": + return /[\s/]/.test(term); + case "types": + case "members": + return /[\s.]/.test(term); + default: + return false; + } + } + function searchIndex(indexArray, category) { + var matches = []; + if (!indexArray) { + if (!indexLoaded) { + matches.push({ l: messages.loading, category: category }); + } + return matches; + } + $.each(indexArray, function (i, item) { + var prefix = getPrefix(item, category); + var simpleName = item.l; + var qualifiedName = prefix + simpleName; + var useQualified = useQualifiedName(category); + var input = useQualified ? qualifiedName : simpleName; + var startOfName = useQualified ? prefix.length : 0; + var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 + ? input.indexOf("(", startOfName) : input.length; + var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); + if (m === NO_MATCH && matcher.camelCaseMatcher) { + m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); + } + if (m !== NO_MATCH) { + m.indexItem = item; + m.prefix = prefix; + m.category = category; + if (!useQualified) { + m.input = qualifiedName; + m.boundaries = m.boundaries.map(function(b) { + return b + prefix.length; + }); + } + matches.push(m); + } + return true; + }); + return matches.sort(function(e1, e2) { + return e2.score - e1.score; + }).slice(0, maxResults); + } + + var result = searchIndex(moduleSearchIndex, "modules") + .concat(searchIndex(packageSearchIndex, "packages")) + .concat(searchIndex(typeSearchIndex, "types")) + .concat(searchIndex(memberSearchIndex, "members")) + .concat(searchIndex(tagSearchIndex, "searchTags")); + + if (!indexLoaded) { + updateSearchResults = function() { + doSearch(request, response); + } + } else { + updateSearchResults = function() {}; + } + response(result); +} +// JQuery search menu implementation +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> .result-item"); + // workaround for search result scrolling + this.menu._scrollIntoView = function _scrollIntoView( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height() - 26; + itemHeight = item.outerHeight(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }; + }, + _renderMenu: function(ul, items) { + var currentCategory = ""; + var widget = this; + widget.menu.bindings = $(); + $.each(items, function(index, item) { + if (item.category && item.category !== currentCategory) { + ul.append("<li class='ui-autocomplete-category'>" + categories[item.category] + "</li>"); + currentCategory = item.category; + } + var li = widget._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", categories[item.category] + " : " + item.l); + } else { + li.attr("aria-label", item.l); + } + li.attr("class", "result-item"); + }); + ul.append("<li class='ui-static-link'><a href='" + pathtoroot + "search.html?q=" + + encodeURI(widget.term) + "'>Go to search page</a></li>"); + }, + _renderItem: function(ul, item) { + var li = $("<li/>").appendTo(ul); + var div = $("<div/>").appendTo(li); + var label = item.l + ? item.l + : getHighlightedText(item.input, item.boundaries, 0, item.input.length); + var idx = item.indexItem; + if (item.category === "searchTags" && idx.h) { + if (idx.d) { + div.html(label + "<span class='search-tag-holder-result'> (" + idx.h + ")</span><br><span class='search-tag-desc-result'>" + + idx.d + "</span><br>"); + } else { + div.html(label + "<span class='search-tag-holder-result'> (" + idx.h + ")</span>"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + var expanded = false; + var windowWidth; + function collapse() { + if (expanded) { + $("div#navbar-top").removeAttr("style"); + $("button#navbar-toggle-button") + .removeClass("expanded") + .attr("aria-expanded", "false"); + expanded = false; + } + } + $("button#navbar-toggle-button").click(function (e) { + if (expanded) { + collapse(); + } else { + var navbar = $("div#navbar-top"); + navbar.height(navbar.prop("scrollHeight")); + $("button#navbar-toggle-button") + .addClass("expanded") + .attr("aria-expanded", "true"); + expanded = true; + windowWidth = window.innerWidth; + } + }); + $("ul.sub-nav-list-small li a").click(collapse); + $("input#search-input").focus(collapse); + $("main").click(collapse); + $("section[id] > :header, :header[id], :header:has(a[id])").hover( + function () { + $(this).append($("<button class='copy copy-header' onclick='copyUrl(this)'> " + + "<img src='" + pathtoroot + "copy.svg' alt='" + messages.copyUrl + "'> " + + "<span data-copied='" + messages.urlCopied + "'></span></button>")); + }, + function () { + $(this).find("button:last").remove(); + } + ); + $(window).on("orientationchange", collapse).on("resize", function(e) { + if (expanded && windowWidth !== window.innerWidth) collapse(); + }); + var search = $("#search-input"); + var reset = $("#reset-button"); + search.catcomplete({ + minLength: 1, + delay: 200, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push({ l: messages.noResult }); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.indexItem) { + var url = getURL(ui.item.indexItem, ui.item.category); + window.location.href = pathtoroot + url; + $("#search-input").focus(); + } + } + }); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + reset.click(function() { + search.val('').focus(); + }); + search.focus(); +}); diff --git a/doc/stylesheet.css b/doc/stylesheet.css new file mode 100644 index 0000000..5f38959 --- /dev/null +++ b/doc/stylesheet.css @@ -0,0 +1,1264 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --code-font-size: 14px; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:1em; +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:0.915em; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + float:left; + width:100%; + clear:right; + min-height:2.8em; + padding:10px 0 0 0; + overflow:hidden; + font-size:0.857em; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:var(--subnav-background-color); + float:left; + width:100%; + overflow:hidden; + font-size:0.857em; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:1em; + font-family:var(--block-font-family) +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.tag-list, ul.tag-list-long { + padding-left: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="125" height="170"> \ + <path d="M10.101 57.059L63.019 4.142l52.917 52.917M10.101 86.392l52.917 52.917 52.917-52.917" style="opacity:.35;"/></svg>'); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="125" height="170"> \ + <path d="M10.101 57.059L63.019 4.142l52.917 52.917" style="opacity:.75;"/> \ + <path d="M10.101 86.392l52.917 52.917 52.917-52.917" style="opacity:.35;"/></svg>'); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="125" height="170"> \ + <path d="M10.101 57.059L63.019 4.142l52.917 52.917" style="opacity:.35;"/> \ + <path d="M10.101 86.392l52.917 52.917 52.917-52.917" style="opacity:.75;"/></svg>'); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--body-font-size); + font-family:var(--block-font-family); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + border: 1px solid var(--selected-background-color); + color: var(--selected-text-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\ + <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \ + 132-240 240 120 120 240-240 132 132V0z" fill="%234a6782"/>\ + </svg>'); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\ + <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \ + 132-240 240 120 120 240-240 132 132V0z" fill="%23bb7a2a"/>\ + </svg>'); +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 80%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.2s; + cursor: pointer; +} +button.copy:hover, +button.copy:active { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; +} +/* header/section copy button */ +button.copy-header { + margin: 0 0.2em; + padding: 0 4px; + height: 1.16em; +} +button.copy-header img { + height: 0.88em; + top: 0.1em; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + content: attr(aria-label); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; + opacity: 0; +} +div.page-search-info:hover button#page-search-copy, +div.page-search-info:hover button#page-search-copy span { + opacity: 90%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + opacity: 50%; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + content: attr(aria-label); + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; + display: none; +} +div.snippet-container:hover button.snippet-copy span { + display: inline; +} +div.snippet-container:hover button.snippet-copy { + opacity: 80%; +} +div.snippet-container button.snippet-copy:hover { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: var(--subnav-background-color); + color: var(--body-text-color); + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:var(--link-color); + } + ul.sub-nav-list-small a:hover { + color:var(--link-color-active); + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} diff --git a/doc/tag-search-index.js b/doc/tag-search-index.js new file mode 100644 index 0000000..0367dae --- /dev/null +++ b/doc/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/doc/type-search-index.js b/doc/type-search-index.js new file mode 100644 index 0000000..6ea21ad --- /dev/null +++ b/doc/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"Panier","l":"Disque"},{"p":"Panier","l":"Main"},{"p":"Panier","l":"Nourriture"},{"p":"Panier","l":"Panier"},{"p":"Panier","l":"Produit"},{"p":"Panier","l":"Vendable"}];updateSearchResults(); \ No newline at end of file diff --git a/src/Panier/Disque.java b/src/Panier/Disque.java new file mode 100644 index 0000000..cf19626 --- /dev/null +++ b/src/Panier/Disque.java @@ -0,0 +1,34 @@ +package Panier; + +/** + * Classe représentant un disque (CD/DVD) vendable. + * Implémente l'interface {@link Vendable}. + */ +public class Disque implements Vendable { + + /** Prix du disque */ + private double prix; + + /** + * Constructeur pour initialiser le prix du disque. + * + * @param prix Le prix du disque en euros. Doit être un nombre positif. + * @throws ValeurInvalideException si le prix est inférieur ou égal à 0. + */ + public Disque(double prix) throws ValeurInvalideException { + if (prix <= 0) { + throw new ValeurInvalideException("Le prix du disque doit être positif."); + } + this.prix = prix; + } + + /** + * Retourne le prix du disque. + * + * @return Le prix du disque en euros. + */ + @Override + public double getPrix() { + return prix; + } +} diff --git a/src/Panier/Main.java b/src/Panier/Main.java new file mode 100644 index 0000000..33bfeee --- /dev/null +++ b/src/Panier/Main.java @@ -0,0 +1,69 @@ +package Panier; + +/** + * Classe principale contenant le programme de test pour la gestion d'un panier d'achats. + * Cette classe permet de tester l'ajout de produits (Disques et Nourriture) dans un panier + * et d'afficher le prix total. Elle gère également les erreurs liées à des valeurs invalides. + */ +public class Main { + + /** + * Méthode principale qui exécute différents scénarios de test pour la gestion des paniers. + * + * @param args Arguments de la ligne de commande (non utilisés ici). + */ + public static void main(String[] args) { + + // =================== TEST 1 : Panier avec 2 disques et 3 portions de nourriture =================== + Panier panier1 = new Panier(); + try { + panier1.add(2, new Disque(15.0)); // 2 disques à 15€ + panier1.add(3, new Nourriture(10.0, 0.5)); // 3 portions de 0.5kg à 10€/kg + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 1 : " + e.getMessage()); + } + System.out.println("Prix total du panier 1 : " + panier1.getTotalPrix() + "€"); + // Attendu : (2 * 15) + (3 * (10 * 0.5)) = 30 + 15 = 45€ + + // =================== TEST 2 : Panier avec 5 disques =================== + Panier panier2 = new Panier(); + try { + panier2.add(5, new Disque(20.0)); // 5 disques à 20€ + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 2 : " + e.getMessage()); + } + System.out.println("Prix total du panier 2 : " + panier2.getTotalPrix() + "€"); + // Attendu : 5 * 20 = 100€ + + // =================== TEST 3 : Panier avec 4 portions de nourriture =================== + Panier panier3 = new Panier(); + try { + panier3.add(4, new Nourriture(8.0, 1.0)); // 4 portions de 1kg à 8€/kg + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 3 : " + e.getMessage()); + } + System.out.println("Prix total du panier 3 : " + panier3.getTotalPrix() + "€"); + // Attendu : 4 * (8 * 1) = 32€ + + // =================== TEST 4 : Panier vide =================== + Panier panier4 = new Panier(); + System.out.println("Prix total du panier 4 : " + panier4.getTotalPrix() + "€"); + // Attendu : 0€ + + // =================== TEST 5 : Erreur - Ajouter une quantité négative =================== + Panier panier5 = new Panier(); + try { + panier5.add(-1, new Disque(15.0)); // Devrait déclencher une exception + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 5 : " + e.getMessage()); + } + + // =================== TEST 6 : Erreur - Ajouter un produit avec un prix négatif =================== + Panier panier6 = new Panier(); + try { + panier6.add(2, new Disque(-10.0)); // Devrait déclencher une exception + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 6 : " + e.getMessage()); + } + } +} diff --git a/src/Panier/Nourriture.java b/src/Panier/Nourriture.java new file mode 100644 index 0000000..163f08d --- /dev/null +++ b/src/Panier/Nourriture.java @@ -0,0 +1,40 @@ +package Panier; + +/** + * Classe représentant un produit alimentaire vendable. + * Chaque instance de cette classe correspond à une portion de nourriture, + * définie par un prix par kilogramme et un poids en kilogrammes. + */ +public class Nourriture implements Vendable { + + private double prixKg; // Prix par kilogramme + private double poidsKg; // Poids en kilogrammes + + /** + * Constructeur permettant d'initialiser une portion de nourriture avec son prix et son poids. + * + * @param prixKg Prix par kilogramme (doit être strictement positif). + * @param poidsKg Poids en kilogrammes (doit être strictement positif). + * @throws ValeurInvalideException Si le prix par kilogramme ou le poids sont négatifs ou nuls. + */ + public Nourriture(double prixKg, double poidsKg) throws ValeurInvalideException { + if (prixKg <= 0) { + throw new ValeurInvalideException("Le prix par kilogramme de la nourriture doit être positif."); + } + if (poidsKg <= 0) { + throw new ValeurInvalideException("Le poids de la nourriture doit être positif."); + } + this.prixKg = prixKg; + this.poidsKg = poidsKg; + } + + /** + * Calcule et retourne le prix total de la portion de nourriture. + * + * @return Le prix total (prix par kilogramme * poids en kilogrammes). + */ + @Override + public double getPrix() { + return prixKg * poidsKg; + } +} diff --git a/src/Panier/Panier.java b/src/Panier/Panier.java new file mode 100644 index 0000000..24f7c14 --- /dev/null +++ b/src/Panier/Panier.java @@ -0,0 +1,43 @@ +package Panier; + +import java.util.ArrayList; +import java.util.List; + +/** + * Classe représentant un panier contenant des produits. + * Cette classe permet d'ajouter des produits dans le panier et de calculer le prix total du panier. + */ +public class Panier { + + // Liste des produits dans le panier + private List<Produit> produits = new ArrayList<>(); + + /** + * Ajoute un produit dans le panier. + * Si la quantité demandée est inférieure ou égale à 0, une exception est levée. + * + * @param quantite La quantité du produit à ajouter (doit être supérieure à 0). + * @param chose Le produit à ajouter, qui doit implémenter l'interface {@link Vendable}. + * @throws ValeurInvalideException Si la quantité est inférieure ou égale à 0. + */ + public void add(int quantite, Vendable chose) throws ValeurInvalideException { + if (quantite <= 0) { + throw new ValeurInvalideException("La quantité doit être supérieure à 0."); + } + // Création du produit à ajouter avec la quantité spécifiée + Produit produit = new Produit(chose, quantite); + // Ajout du produit dans la liste + produits.add(produit); + } + + /** + * Calcule le prix total du panier. + * Le prix total est la somme des prix de chaque produit, calculé en fonction de la quantité et du prix de chaque produit. + * + * @return Le prix total du panier. + */ + public double getTotalPrix() { + // On parcourt la liste des produits et on somme les prix de chaque produit + return produits.stream().mapToDouble(Produit::getPrixProduit).sum(); + } +} diff --git a/src/Panier/Produit.java b/src/Panier/Produit.java new file mode 100644 index 0000000..5d86f7c --- /dev/null +++ b/src/Panier/Produit.java @@ -0,0 +1,39 @@ +package Panier; + +/** + * Classe représentant un produit dans un panier. + * Cette classe contient un produit (qui doit implémenter l'interface {@link Vendable}) + * ainsi qu'une quantité. Elle permet de calculer le prix total du produit en fonction de la quantité. + */ +public class Produit { + + private Vendable chose; // L'objet vendable (comme un disque ou de la nourriture) + private int quantite; // La quantité de ce produit dans le panier + + /** + * Constructeur pour initialiser un produit avec une chose vendable et une quantité. + * Si la quantité est inférieure ou égale à 0, une exception {@link ValeurInvalideException} est levée. + * + * @param chose Le produit à ajouter (doit être une instance d'un objet implémentant {@link Vendable}). + * @param quantite La quantité du produit à ajouter (doit être supérieure à 0). + * @throws ValeurInvalideException Si la quantité est inférieure ou égale à 0. + */ + public Produit(Vendable chose, int quantite) throws ValeurInvalideException { + if (quantite <= 0) { + throw new ValeurInvalideException("La quantité doit être supérieure à 0."); + } + this.chose = chose; + this.quantite = quantite; + } + + /** + * Méthode pour obtenir le prix total du produit (quantité * prix unitaire). + * Cette méthode calcule le prix total du produit en multipliant la quantité par le prix unitaire + * du produit (qui est obtenu via la méthode {@link Vendable#getPrix()}). + * + * @return Le prix total du produit (quantité * prix unitaire). + */ + public double getPrixProduit() { + return quantite * chose.getPrix(); + } +} diff --git a/src/Panier/ValeurInvalideException.java b/src/Panier/ValeurInvalideException.java new file mode 100644 index 0000000..245b73c --- /dev/null +++ b/src/Panier/ValeurInvalideException.java @@ -0,0 +1,27 @@ +package Panier; + +/** + * Exception personnalisée pour gérer les erreurs liées à des valeurs invalides, + * telles que des prix ou quantités non valides. + * Cette exception est levée lorsque des valeurs invalides sont détectées dans + * les processus liés aux produits dans le panier (par exemple, un prix ou une + * quantité inférieure ou égale à 0). + */ +class ValeurInvalideException extends Exception { + + /** + * ID de version pour la sérialisation. + */ + private static final long serialVersionUID = 1L; + + /** + * Constructeur de l'exception {@link ValeurInvalideException}. + * Ce constructeur permet de créer une exception avec un message d'erreur + * détaillant la raison de l'échec. + * + * @param message Le message d'erreur à afficher lorsqu'une valeur invalide est rencontrée. + */ + public ValeurInvalideException(String message) { + super(message); + } +} diff --git a/src/Panier/Vendable.java b/src/Panier/Vendable.java new file mode 100644 index 0000000..8fd08a9 --- /dev/null +++ b/src/Panier/Vendable.java @@ -0,0 +1,19 @@ +package Panier; + +/** + * Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix. + * Les classes qui implémentent cette interface doivent définir la méthode {@link #getPrix()}, + * qui retourne le prix unitaire de l'objet. + */ +public interface Vendable { + + /** + * Méthode pour obtenir le prix unitaire de l'objet. + * Cette méthode doit être implémentée dans toutes les classes qui + * représentent des objets ayant un prix, comme les produits vendus + * dans un panier. + * + * @return Le prix unitaire de l'objet. + */ + double getPrix(); +} diff --git a/src/module-info.java b/src/module-info.java new file mode 100644 index 0000000..61d7fda --- /dev/null +++ b/src/module-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * + */ +module Gestion_panier { +} \ No newline at end of file -- GitLab