From 7fab253aeae603f5793c7d300ce54a4035e990fb Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Mon, 20 Feb 2017 21:38:10 -0800 Subject: [PATCH 1/6] Updated 03. Setting the eShopOnContainers solution up in a Windows CLI environment (dotnet CLI, Docker CLI and VS Code) (markdown) --- ...dows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md b/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md index 3b15477..d26d99f 100644 --- a/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md +++ b/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md @@ -115,7 +115,7 @@ These steps are easily performed by running a convenient script already created -### Buil Images and Deploy containers into your Docker host +### Build Images and Deploy containers into your Docker host You can build the Docker images and deploy the containers to a regularDocker host by using the Docker CLI tool `docker-compose up` which is very convenient for multi-container applications as it can build all the Docker images for you and then spin-up all the multiple containers of your application, all with a single command. If you don't want to deploy the containers but only build the images, you can do so by running `docker-compose build` These are the steps: From 7b3762f158326b0b9edc93d05a731e839f67e7ad Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Tue, 21 Feb 2017 10:50:47 -0800 Subject: [PATCH 2/6] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index bdc82c9..daca49a 100644 --- a/Home.md +++ b/Home.md @@ -1,7 +1,7 @@ # Welcome to the eShopOnContainers wiki! ## Roadmap -https://github.com/dotnet/eShopOnContainers/wiki/Roadmap-and-Milestones-for-future-releases +https://github.com/dotnet/eShopOnContainers/wiki/01.-Roadmap-and-Milestones-for-future-releases ## Setting up your development environment for eShopOnContainers ### Visual Studio 2017 and Windows based From b79fa1a24cd68093e573cb736ffbbef0f7144d07 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Tue, 21 Feb 2017 17:29:58 -0800 Subject: [PATCH 3/6] Minor update in Home.md --- .vs/eShopOnContainers.wiki/v15/.suo | Bin 14336 -> 14848 bytes .vs/slnx.sqlite | Bin 69632 -> 69632 bytes Home.md | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.vs/eShopOnContainers.wiki/v15/.suo b/.vs/eShopOnContainers.wiki/v15/.suo index d783b61a4816c42488e55f463784fe93f045b1e1..3abe91d036a947c9110df2a2c3905dbefe719a11 100644 GIT binary patch literal 14848 zcmeHNO>7%Q6dqFw<)@SaEp7P=P)dQWyN;b7mr{|$af8$-ZJd@0g1~XMsi|XIv6F(D z!i57!Ai=HTf_eZUXr;CnI3a`(T#!I;KtdqFg%cnS2u={bZ+0j96R*Ag2~C8@n%&u% z-Ffrgy!YmtH~#9&jX$2fxa}w5N&Cba@z26F;wndd2<0o(^Nm7Wi8AZ{Sy)(L^%`Up z+i4X^U{n>DDt?^i03(#fzxKOc5%+HtMQe-{)10mc=hYhwS4b-^W}q}SP;*O z$3XoUN`vCL8ojuiH;XGmPI0?iD?jZ)+BdZSo6z#H*Se2JoI!GSq2Wac-QC9W5vyMsG|3`@-WcIZa_Xn)9>RZEe*s5Dyl3tmkRsNT_s|Xxa03I`tZ4?Ay zS4oZF5BmS2)n_&TmjEK0sY07g#9#D3O1d>(m(9CyeaCvS9~>9N2{8@KH-mdnz7?I@ zfxl=&3h$`;YWIiGNZn={1Kkqn9ssW;pw5&yF6W>uG7_1V%-4Lcl)vJgci$Hs4G*GB zY{%raf35?{*3^Ba+CRtFPR&W6752{&(588(PSr{+w*L_ApK*zx^jmEI(uV56e=EuU z>G!$Uox$EW4ga5nAIjmmB$Q?t@I+-X0I$UOfFZB8SK0&r!?m7kdQkb_k9W@@GbPY3 zJ>9g`^W$g{4amc~M zB1Jss7wtbS=Y*P40uDckrxVEIu)`iaYxu^1me67uOVglPMO@23H3sfSPV@A*IUr(b@1!+S5iKVNzL)I(x0rvBLvyUo&nccmYs?+S_Yp~M~?zf*mk$-$o3 zU_|ThiAA+YB%y14gONT>*ZcH=xSmWV2coCv_YP-EnPfI+l=jUh_Kfd;Y;1J!;7DrR zNF6T}NAd%Od^w%X8#ATw$?S>jxZV@iQbxI)%};5wMXh|?(2l03)6$uI_*&QYLpwg6 zp3B6(sF(9>UYjmVU>I7uSS*F7C+Fu+Mf>A=XQVT#C42jNv{*dSrNxtaM2mJul5xFP z@9j>zn^@sjrVq4zgC7sK?!L6Q8T)DDKY#qWTJRsSM5FlcFf5c& zA0iv#EH~;e!7>an2OEm{C?N2sYgP7n%~kEhze8C4CnfDXutN@`Nn$iPSwoCbE8PS9 zc?(`r$e`ByY}Jm?>bA0?Hd#r-x-P5D{GvaLPrDg=YCn~pO=0=^w5AtoRB!4yM(fj=9}Z#3HkFZ zf_ti<^UrwEnEAQ%Z_fQM<(1e^^a#|e*WL4|2(8SAyH5b`ipB{Q2I{&_wqjsei@bG|KOalNx!wQ5&TQ6?zjF_ zUjLjUaZ4j+;g3bNbT?OgqCPAC|9VInP;>D!Z`@Bs{2qrqCtxWl>@50lH)DMKzg-4p z71=lAgr@QR@Z@*ti=V#!%-mmp>QDXt`7Bvb+^M_GmhHcq8-MHLm#f46RqWB0X#FLH z<(*$PQ|Ihwxyzx&=xbw?nvLUA{zJ&h3Y%Mn>*t}_`6u>fZZz57%aJ(4;fK+u6c1y0 z&Y!mURK4W|IzMd`f7E$g-|&g`1Ac!1SkmKxCjL#Zyq)bz z8=XDr?g?EpqOmS5*4f*u#k(huX4FCWD delta 1384 zcmcgs&ubGw6rR~+lbFt?F+WVq@1#9Mh)tpu5h_FyM3YJq5X6J1Codv`E7*cGf}mgz z?LI;1L3;8kG1{X9q9A&(__rj`ca4<4qt6IP|mP_`9$6b6pEz-77(ahl;t zFw1vf#a4q)QUUt5Y|M?J88q77g|jmDLpX0X=e)yjWEn+&zug3` zxxL`^R3PSYLCS5nnqu7qKYqqFQC66QOMT-M(6r5i>TL+(Xt#heC33(})Lj7!%){_d zS>quXC^x62r1b5p8~-YiOr>$bFj+Gy?XfTcHC0zQiDjPBI7>fOhhFLiY^UcGE@PCW zr!Pj)bOL;VQ-ZdQTLK+5u+FtuMZ^$HSOT)qkg(#b2|vPAb#pTZ$>C-2(^nOws;Szj zr2e|Xg2o4jD`Wx+FpO8BClx_WGz9g%*#;wq2|Se(QEGED6{yK|=ti>f0=vKptjx~g z^P=%9v(xOcaa|aE&Zi+GCE#gz3A)h|t|)1_iutN#u~9PbjY3kNA8g*w>lrL$%|5QqU9ll68Py-D^ zx(N;XftE~K+F>((w916SR3<~=uVNNm^PWADOl?(1}oNjzIl@oD?!u7WYJPsw9Ha!vJ{nBEM>)^AB`y{lN&g(d4QiH z-oP)y40?uqEV{%T;h}I<7#B9uQz)Y0neU{}i7-CpFjW^^jtA`F6fKtr?Nr)d*D zKrEsow5z*Qqm$bp$i!&a*5#7=UG8>IzmL{zam}*3Z1Y=+n>4O;9Ry8)foSH{yr?5G zuX(yoNlX#oDM>D-wa?YnF15Oh9S|)1?)6EQe+)(!13`+cXZLh>n7iAxH0bP_6{4cJ zseuB61>ubDeGN}CHrmqFLF}*%sOYiHsG^LuS;POxCdU)Zn%S@lf*hG__q1*8=#jk2CMC_fv;u zwK*zxsWw$b-_|Zs5p-m#$m~c~QJo``Qp(8oso5CS@|wdG+3S)t2*P&)-8z~0q>wuf zO*Y<{p@x(>wL&&KEh;zRH0CM^()Is$v7d;}I&&jA^AjMjhI9UPC}lzStLn76H`bM? z3C8ORRCG0p9@gcnTuyz3id^*)9qDwCl3Pt(AbX`=>t(KfNOkXTP|<~FCJW()vETaw zCFt}(qbR>Yo4+%$%t_!R&v1wi}l7iKZ-XWtY<;;7gq+Nl}VOMNdU z36HpG;U^x&6UZ*K~kIg}8(zxON- zWq0|;pp*ME@d|tZd5@Q&n2}VHy$;B2$T-r3r{LvC3hKEYZZU<&WAY(3pi?6`)MY@2 z&pEn2Vnc=lTV=&W!hn~@psAWf2!`bfh|uK&NmybWo)e=T^P=#J1Ol=q7WPB;4t_zH za2tm1It`(RhnSdR^0quV9YwjI4z^MR6^z{-OTgvuOS+NEV?!JXKVl^M1nr|gBR?Te zbL;sjaTb+~E~(6hseBt(MYakbU!h&J{{nw)PX+${|o|&Ek!wzy# jhoR{Mw$O(s%5YQ_BxxG#dzl>E2@rc^duaEmUEaR|o-?<) delta 1994 zcmZ`)YfMvT82*muobOzE&Oy0D3oQi-f~Qar4LAl`E`=7lMV2`elv}~dr45Aw>V!Jf z#4GL_hKobYrit;#)Mm>zqpq25W=q_DxQ)bRW{GYyi)?Nabr-YK_MFOM)?ZKG_j{k` zy?x&qnI%SMi7_?Sctm5y8qYOt(qcvEvNl=B&nw6`t=1Lfmzau63jIH7)jHj2V8iAx z{3!7Teje)ScgQD#Q^?{U@z?kXzL7qR^yTTrBg`!(jb5NP(7Du~)LF_)*(d^j4c~{a z!zOYYVI*!x4d4%mGr~OCfPW9I_*KS6c<>&yvpk-~=2S-E3Rl8R_-D$8FmmZ!c7h9O z)}`f#P}%?lCX9hyPEVicY8Rc|%^ePp(cRP0O5fNRI#TF`;3eq@8X3>z6=QZk1ZC(% zeH^+tPCvEwDOUR)iit3w`E|<`VY5a?rREhf8Z_%2Atihn20;vA2+cnu<0nHuTuMQr0Y}cy4V-ldJ%Q z)&YSiRoK$+>}nHRoP8eA^q&^QErCD{7-(^IJB;0J5xxr*D}@ltCOZXuxzY*Lv)7)e z_$fD7TFlVUv3`roZSOIohRQTqe_Q3SjGk0#Wu&jlNDi^ZG(!+4qgQl?W+*D&6{QeV2SdJ`NR6}zvDN0h5Tm{X zg2G_1qouz?tSS;)`uqA^J;5GCD5#SF)?mn2owGC)L+gQRSc>s_MD#&*WjHm%DhSpD zbpzm+kmN*jDx7uk}cP|)lwj%6Bf0M0+#%Q5H%A3(Q8B0!7H=bx4#2}^8B zGFxmW**0U-W`{)5694bIKPA0m%MNSi#6w^XYW{Oj%{=u#U#H~WShq?Rn5fH@(X|MA zRF@;$vg%7^4DmNuMLYw82?tW=d?b3n7MID&0AC+SV>@qt4!fYOV<)OX# z(sgudxIvJh@zXz8@*7|y#~4J9EFZq1+RMHs+@%kZzcI12mpv}{g)yN^uuuWEllo3b z;vcIn@N+Bsba~Cz|7);uI4btrIL^Jz!u?g6-`|H2FKM6xWAGoKE$4%I? zPky4LkD+@ujsMX>W=Rn|0&K*BigH38ZlnlmDr#300dwJ3bc0IA`q{tX$Bal%(;oVB z@)PouaECiVETC0mnPsUkj%!twkS+Wuzky%LCvax+2lg{Amt){0Q%!9qtH>OxkLhB6 zBI7t8_fU05b%oW?zcBaMQP%698ncmTe*6r_o&+=_eGQfq>!n)vWcUL|-^J1BR9?1f zJrFSEJ{#f*5yKWe-vy!P+od6j(f#pQD)>*+8HMgo*>Qddpz`S?LK;^l+A*ExADkY= Wr5AuEUnPCp0b&mi`F9=P>HZh~6H0mj diff --git a/Home.md b/Home.md index bdc82c9..daca49a 100644 --- a/Home.md +++ b/Home.md @@ -1,7 +1,7 @@ # Welcome to the eShopOnContainers wiki! ## Roadmap -https://github.com/dotnet/eShopOnContainers/wiki/Roadmap-and-Milestones-for-future-releases +https://github.com/dotnet/eShopOnContainers/wiki/01.-Roadmap-and-Milestones-for-future-releases ## Setting up your development environment for eShopOnContainers ### Visual Studio 2017 and Windows based From f70f7828bb215aa26b30802a271d74ef4eeb411a Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 22 Feb 2017 13:55:17 -0800 Subject: [PATCH 4/6] Updated VS 2017 setup MD with SPA step --- .vs/VSWorkspaceState.json | 2 +- .vs/eShopOnContainers.wiki/v15/.suo | Bin 14848 -> 15360 bytes .vs/slnx.sqlite | Bin 69632 -> 69632 bytes ...-up-in-a-Visual-Studio-2017-environment.md | 8 ++++++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json index b627f38..f044b85 100644 --- a/.vs/VSWorkspaceState.json +++ b/.vs/VSWorkspaceState.json @@ -2,6 +2,6 @@ "ExpandedNodes": [ "" ], - "SelectedNode": "\\06.-Setting-the-Web-SPA-application-up.md", + "SelectedNode": "\\Home.md", "PreviewInSolutionExplorer": false } \ No newline at end of file diff --git a/.vs/eShopOnContainers.wiki/v15/.suo b/.vs/eShopOnContainers.wiki/v15/.suo index 3abe91d036a947c9110df2a2c3905dbefe719a11..749684b5820a50d4cfe276b32951f1b1ba52367f 100644 GIT binary patch delta 1358 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 HS;O!@+-QZk delta 1955 zcmZ`)ZA@EL7(SPKd+t|z%U2mtXel4%Lt0jlZNQL03zW8$#juzy4qKqkGH9D!D05o` zggGqR!gj_SbxtrQi-{&~HGXW_7(a}2uYVs_ONYjRltKdW)sL_VL(H`fF-p zI`&?bJ5?C~F5*5QU#H$A-$%k0YZXaeh804k76HHP2E$Ek`Jhh!iu7s zyaS!&XY2qqN$w>Z(fAevaRM1qdyY5Hs6W}=^00J*fS`GTfj~rptuoCldc(ecbFX(d zbA3lz_4B_VXGadRBlTw4x?u4Eq-)7SO>>Zul5^iT{c#xOwG>zq&@c*tg<#>JUmP|C zpEdc1yt{m&ITYB{hpTJC5Nwl5(D+=53J1$ZAZS91ZVkFL$E-$&akT3tnw1&QN=q5U z(pD{>fK`JKbfO8X2B}V}(=jo59&mM%S|EfDSPh;;X`0k-24J8$EaEy!1XP-I0P(PY zXcrFW_CZiYFtBgXZyNOn`h%mQ+;+N0DwlF$OYJkb9Y^}xC;7;h#6i78mCVEHw zgZ-vnzupJI+UH@>Wckk-X;L820v6hXLq79Rzs!EoR-;Z(_H@x;;xVZN1rBw|mQZ(V z0hZs_`T~akwCXS{Y%9_x7&5#NXe3i+aU|%G6+CT~LLy(>1i{AmJuRHdS{1n5mW`=y zwUsH8{e=PCPasWu3(oCq*QF(M?*hI zK~DVM#Q2QKt)=HBu2T$o+qAq7P3cb2!Hg0!p z#lC7CB^Y`f@)vy6VZ_l3jyw!+If^la&O!{$&KwLoorO%oj!{giD%On1YfgRg3`%qm z#3umVKD|!1itajP{tTA^lh(UrThF=H!4QoGk=Dg6z(!d6~D2WOqhF1hzYa8pkSw$xe)!G zkfVCQFR5;FB%Fc=lxO%uif>d`R3}x#s_n{g_!Lhl2b2!@7yAacs9082$I* zB`liyg8e>Ib$q{oadrt%X!&5Kw7(UxD+i}ZA zj^s1k7eKMMfNVvd&*vjsqzN5~k8DO8W*lg2 zW(y^aE)`pvu~NDprNh+Fv>$3*1#J~H($=hP{FKT{j_jNI4F38dLfg^ z;M$RU) Date: Wed, 22 Feb 2017 15:38:42 -0800 Subject: [PATCH 5/6] Updated SPA procedure with the NPM extension for the VS Task Runner --- .vs/slnx.sqlite | Bin 69632 -> 69632 bytes 06.-Setting-the-Web-SPA-application-up.md | 11 +++++++++++ img/spa/task-runner-with-npm-extension.png | Bin 0 -> 40120 bytes 3 files changed, 11 insertions(+) create mode 100644 img/spa/task-runner-with-npm-extension.png diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index 4ff1f0f65f5f5ff8c8366838d803f52d0e1d6071..a9bcc1c6d95a7a44ddad114c586eb5f1b432d961 100644 GIT binary patch delta 369 zcmZozz|ydQWr8$g@kAMC#^Q|$!TO9no44ru3a~M5V(?|Go6PPoi@6R+D+uxDs6*9GHEZ z*_OeDp?ET%i;jq1abj6&ie6G;Hb|0lYeS1l&15+zvB~yR**1$f9bjaw4mOd$zWJte z9xIgT&>!U`FN9@cjZR!kU{Y!;pRx(WaQAAbk{ delta 250 zcmZozz|ydQWr8$g=0q81#>|Zg!TOAyo44ru3a~NTGWallo6PPoi?MsMqCngv$2#%i z#In>By`;o!jw?~T8I7Fm42|{-oNSZx+WkfJkR+pXmdr4;P^p72(3W%_t_nXyF)nuj$oPQFvG%Esxz;KRCnGJ8Yi=B9=mmdS5gqS$of zSsLw`KsN9oY+&e|e6UpnXfo^O1Feo+Y^?8q8bv3wPXKD1@Q!(M-V|p}U1y&JR-p4R L^==lO`nn1LO1)N( diff --git a/06.-Setting-the-Web-SPA-application-up.md b/06.-Setting-the-Web-SPA-application-up.md index b1a31b7..7af1639 100644 --- a/06.-Setting-the-Web-SPA-application-up.md +++ b/06.-Setting-the-Web-SPA-application-up.md @@ -40,6 +40,17 @@ Then, run again the npm run build:prod command that should finish with no +#### (Optional) Run NPM tasks from within Visual Studio 2017 + +As the chosen workload method when developing a client frontend app (JS frameworks, etc.), the developer has to be able to trigger the npm tasks when he wants. +Of course, he can always open a command propmt and run npm from the CLI as you just did in the steps above (which is most front-end devs do, in fact). +However, you can also run npm tasks inside Visual Studio if you install the following VS extension: https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner + +This extension adds to the "Task Runner Explorer" the capabailities to run npm tasks (since, out of the box, only gulp/grunt tasks are supported by VS2017). After this extension is installed you can run npm tasks from inside VS2017 and also set build bindings if you wanted. + + + +This extension honors the VS External Web Tools configuration, and allows you to use bindings, so if you want to run npm tasks automatically on every VS build, you could do so. This is not set as default in the eShopOnContainers provided code as it would slow down each VS build with the npm build tasks. ### Build the Docker images and Deploy the containers At this point, if you were originally following the eShopOnContainer setup for any environment and came to this page just to setup the SPA app, now go back to your original setup instructions page. Other than that, you can in any case choose between any of the following options to build and deploy the Docker containers: diff --git a/img/spa/task-runner-with-npm-extension.png b/img/spa/task-runner-with-npm-extension.png new file mode 100644 index 0000000000000000000000000000000000000000..d04a6ea7cc81969dc1a14d78a18afa42ea5c39ec GIT binary patch literal 40120 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 OAVWPf-7;<0i2nhomh;L0 literal 0 HcmV?d00001 From 776f84cf1772b1630b398feea93a13dd5174c8d5 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 22 Feb 2017 16:44:36 -0800 Subject: [PATCH 6/6] Updated with npm install image --- .vs/slnx.sqlite | Bin 69632 -> 69632 bytes 06.-Setting-the-Web-SPA-application-up.md | 10 +++++----- img/spa/npm-install.png | Bin 0 -> 25752 bytes 3 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 img/spa/npm-install.png diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index a9bcc1c6d95a7a44ddad114c586eb5f1b432d961..4070e6f029b6113bfdff5399b193447794ed609d 100644 GIT binary patch delta 557 zcmZozz|ydQWr8$g)kGO*#;T18!TOASo44o(2ypo^)-f?JW?91ccru@Z5)Qr{dnVU8nlsCSCB!v_WY`#l z89CUB3lhN!B>m>)3UUC&7&zE6bJIb3Ktd`tljWSmCfiSC+brUg!pOw7V{(2uuOi}BF|#MT+B3C&_xsIDQ?ET$!@J0mTWZ)A_iu9y1}U>C7F5Yx+NK@x+2Wl zOlZzx=w)XXW(0aw21J9rH~Cu9ZNU&aP@!kaH&hoy)_M%i@+3os$MR*XfP5#6OS485Ez!i*rda>#J72s1!jD?0Ti g6PxVh4^wqn*y9;EH!DuFV`SlKVc^=FJbi8j0MT%xUjP6A delta 379 zcmZozz|ydQWr8$g@kAMC#^Q|$!TO9no44o(2ypo_)-f7 zZN^%CX=R%5xceCE+J-|DSw}dy6r-3b;n~^7r$BXSZ=OV7w z&2npm install as shown below: + * Then, run the command npm run build:prod as shown below: -

-If you get an error like "Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 6.x", then run the command npm rebuild node-sass as in the following screenshot: - -Then, run again the npm run build:prod command that should finish with no errors. + If you get an error like "Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 6.x", then run the command npm rebuild node-sass as in the following screenshot: + + Then, run again the npm run build:prod command that should finish with no errors. - + #### (Optional) Run NPM tasks from within Visual Studio 2017 diff --git a/img/spa/npm-install.png b/img/spa/npm-install.png new file mode 100644 index 0000000000000000000000000000000000000000..113713a13ab23a89d4634e28773f626006006647 GIT binary patch literal 25752 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 literal 0 HcmV?d00001