From 29d79c6819d0d81360f76908d2cfaae8ef1051b8 Mon Sep 17 00:00:00 2001 From: Dillon Matchett Date: Thu, 25 Nov 2021 15:38:32 -0400 Subject: [PATCH] [Ultica] add layering example (#1107) * add layering example * updated workflows and added layering files for the other Ulticas * I guess I was missing a newline * Chibi and Altica handle talls differently so I can't provide my laptop sprite * added some kitchen layering stuff * Update layering.json * Update layering.json * removed altica and chibi config stuff * Delete desk_laptop.json --- .github/workflows/Altica_ci_build.yml | 2 +- .github/workflows/Ultica_ci_build.yml | 1 + gfx/UltimateCataclysm/layering.json | 79 ++++++++++++++++++ .../layers/cupboard_battery_charger.png | Bin 0 -> 655 bytes .../layers/cupboard_box_small.png | Bin 0 -> 623 bytes .../layers/cupboard_candle.png | Bin 0 -> 709 bytes .../layers/cupboard_matches.png | Bin 0 -> 712 bytes .../layers/desk_pen_1.png | Bin 0 -> 552 bytes .../layers/desk_pen_2.png | Bin 0 -> 549 bytes .../layers/sink_box_small.png | Bin 0 -> 599 bytes .../layers/sink_brush.png | Bin 0 -> 714 bytes .../layers/sink_dish_towel.png | Bin 0 -> 582 bytes .../layers/sink_sponge.png | Bin 0 -> 581 bytes .../pngs_tall_32x64/layers/desk_laptop.png | Bin 0 -> 766 bytes .../pngs_tall_32x64/layers/oven_pan_1.png | Bin 0 -> 694 bytes .../pngs_tall_32x64/layers/oven_pan_2.png | Bin 0 -> 694 bytes 16 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 gfx/UltimateCataclysm/layering.json create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_battery_charger.png create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_box_small.png create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_candle.png create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_matches.png create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/desk_pen_1.png create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/desk_pen_2.png create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_box_small.png create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_brush.png create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_dish_towel.png create mode 100644 gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_sponge.png create mode 100644 gfx/UltimateCataclysm/pngs_tall_32x64/layers/desk_laptop.png create mode 100644 gfx/UltimateCataclysm/pngs_tall_32x64/layers/oven_pan_1.png create mode 100644 gfx/UltimateCataclysm/pngs_tall_32x64/layers/oven_pan_2.png diff --git a/.github/workflows/Altica_ci_build.yml b/.github/workflows/Altica_ci_build.yml index 928d4e01ab..c724670dc2 100644 --- a/.github/workflows/Altica_ci_build.yml +++ b/.github/workflows/Altica_ci_build.yml @@ -63,4 +63,4 @@ jobs: uses: actions/upload-artifact@v2 with: name: ${{ steps.build.outputs.artifact_name }} - path: ${{ steps.build.outputs.artifact_name }} \ No newline at end of file + path: ${{ steps.build.outputs.artifact_name }} diff --git a/.github/workflows/Ultica_ci_build.yml b/.github/workflows/Ultica_ci_build.yml index 3ffc6fa5ea..4d24832811 100644 --- a/.github/workflows/Ultica_ci_build.yml +++ b/.github/workflows/Ultica_ci_build.yml @@ -54,6 +54,7 @@ jobs: mv "${BUILD_DIR}"/*.png "$artifact_name" mv "$BUILD_DIR/tile_config.json" "$artifact_name" mv "gfx/$TILESET/tileset.txt" "$artifact_name" + mv "gfx/$TILESET/layering.json" "$artifact_name" echo ::set-output name=artifact_name::"$artifact_name" diff --git a/gfx/UltimateCataclysm/layering.json b/gfx/UltimateCataclysm/layering.json new file mode 100644 index 0000000000..0d959ab3ef --- /dev/null +++ b/gfx/UltimateCataclysm/layering.json @@ -0,0 +1,79 @@ +{ +"item_variants": [ + { + "context": "f_desk", + "variants": [ + { + "item": "laptop", + "sprite": [{"id": "desk_laptop", "weight": 1}], + "layer": 90 + }, + { + "item": "pen", + "sprite": [{"id": "desk_pen_1", "weight": 2}, {"id": "desk_pen_2", "weight": 2}], + "layer": 100 + } + ] + }, + { + "context": "f_oven", + "variants": [ + { + "item": "pan", + "sprite": [{"id": "oven_pan_1", "weight": 1}, {"id": "oven_pan_2", "weight": 1}], + "layer": 100 + } + ] + }, + { + "context": "f_cupboard", + "variants": [ + { + "item": "battery_charger", + "sprite": [{"id": "cupboard_battery_charger", "weight": 1}], + "layer": 90 + }, + { + "item": "box_small", + "sprite": [{"id": "cupboard_box_small", "weight": 1}], + "layer": 90 + }, + { + "item": "candle", + "sprite": [{"id": "cupboard_candle", "weight": 1}], + "layer": 90 + }, + { + "item": "matches", + "sprite": [{"id": "cupboard_matches", "weight": 1}], + "layer": 90 + } + ] + }, + { + "context": "f_sink", + "variants": [ + { + "item": "box_small", + "sprite": [{"id": "sink_box_small", "weight": 1}], + "layer": 90 + }, + { + "item": "brush", + "sprite": [{"id": "sink_brush", "weight": 1}], + "layer": 90 + }, + { + "item": "dish_towel", + "sprite": [{"id": "sink_dish_towel", "weight": 1}], + "layer": 90 + }, + { + "item": "sponge", + "sprite": [{"id": "sink_sponge", "weight": 1}], + "layer": 90 + } + ] + } +] +} diff --git a/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_battery_charger.png b/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_battery_charger.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa7b04c5d834a43c3cee9cc26eacae73baea738 GIT binary patch literal 655 zcmV;A0&x9_P)p;)SD(QwGSnppD= zyyL`$2OIvRqN_`>#W+3V=TYh;9s*{s-gRBWna=16*an4X6;-PU&kIMkDyqqQ!XrvP znHD|~_G@xL;agKrS^Q>l&f+hVwRm&^>}F4Iu7gt@tmL(#@RYExSg0zk^O!erWlAeC z$z!s{(TNf!gqIXmHYrdcAh{$n>+TCSean=^qsU*Sh9-_2dGY#1txDI7+_TU26NwGN-w3(d%u^cMR?wxV&j= zsROv$h0$jXb^y$L5fKp#%RzE5O&16J-f53; zz=x~!j{;d)S-7QKT%7cEz}d5B89#pfh)9Ir5M=z>vTw3F+#HQOia{ pU^E0qLtr!nMnhmU1O{aY0044TE)77_3d;Zh002ovPDHLkV1gg{BU=Cf literal 0 HcmV?d00001 diff --git a/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_box_small.png b/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_box_small.png new file mode 100644 index 0000000000000000000000000000000000000000..2430d38f467b060849c083873594b5214d31bf9e GIT binary patch literal 623 zcmV-#0+9WQP)p;)SD(QwGSnppD= zyyL`$2OIvRqN_`>#W+3V=TYh;9s*{s-gRBWna=16*an4X6;-PU&kIMkDyqqQ!XrvP znHD|~_G@xL;agKrS^Q>l&f+hVwRm&^>}F4Iu7gt@tmL(#@RYExSg0zk^O!erWlAeC z$z!s{(TNf!gqIXmHYrdcAh{$n>+TCSean=^qsU*Sh9-_2dGY#1txDI7+_TU26NwGN-w3(d%u^cMR?wxV&j= zsROv$h0$jRkEnJ4 zidt&9n+4gRr|0*8xuU9iVEXm#OVqLlr#ToQ@axMf48?3bVhpqj0Tc(ANipG!f>Y1_ z(Ig6(ki9#rD+_B-;S#4t{Gg-(UJ)LK<@3tG=6-(jh2i$C*9@v^qF|a<0L204j@`$w zhnAMp%2T7}j)uT!2#kinXb6mkz-S1JhQMeDjE2By2n?+d0063DCk#*l(I5Z-002ov JPDHLkV1mC4AZP#p literal 0 HcmV?d00001 diff --git a/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_candle.png b/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_candle.png new file mode 100644 index 0000000000000000000000000000000000000000..e371a963a1a5e78155d7861c3b6653b87d1a0deb GIT binary patch literal 709 zcmV;$0y_PPP)p;)SD(QwGSnppD= zyyL`$2OIvRqN_`>#W+3V=TYh;9s*{s-gRBWna=16*an4X6;-PU&kIMkDyqqQ!XrvP znHD|~_G@xL;agKrS^Q>l&f+hVwRm&^>}F4Iu7gt@tmL(#@RYExSg0zk^O!erWlAeC z$z!s{(TNf!gqIXmHYrdcAh{$n>+TCSean=^qsU*Sh9-_2dGY#1txDI7+_TU26NwGN-w3(d%u^cMR?wxV&j= zsROv$h0$j4Wy z-B1*7o;||=wfr{2-FI}cp8++TA+Z1kZl-j0fK|jLMnOS{rOL_-45?+`8KF*KrlnKh zA#i`6ECc5sL6D`4ckePVR-|*n?EOm@2LSD5;1GQew+j>s^Z@V>P;`340E&U{tnXn_ rKo9#z?HCP#(GVC7fzc2c4FLuKqk2C$xve<700000NkvXXu0mjfA6r4w literal 0 HcmV?d00001 diff --git a/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_matches.png b/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/cupboard_matches.png new file mode 100644 index 0000000000000000000000000000000000000000..b50cdb7d3953d9dd57ef2b7c2ec68fe9b3df708d GIT binary patch literal 712 zcmV;(0yq7MP)p;)SD(QwGSnppD= zyyL`$2OIvRqN_`>#W+3V=TYh;9s*{s-gRBWna=16*an4X6;-PU&kIMkDyqqQ!XrvP znHD|~_G@xL;agKrS^Q>l&f+hVwRm&^>}F4Iu7gt@tmL(#@RYExSg0zk^O!erWlAeC z$z!s{(TNf!gqIXmHYrdcAh{$n>+TCSean=^qsU*Sh9-_2dGY#1txDI7+_TU26NwGN-w3(d%u^cMR?wxV&j= zsROv$h0$jxB{yK%;O5cz6D`JZSDW60s{Z<-MkKR1Oq5! zsAW0G5}Y9b^Cc(*o__oY_N`laA0sRT?q0u2yAS}G46^_j0u0i?G>|cGJ0nOO6av(; uoGLyTHDojdMnhmU1V%$(Gz5lx2mk>7;Z&X>z|Oq@0000e@h>d^1S0l3CF+xP*EVK9H%$&>28Sp1dy6H9yfoYYUR3aXknVpL? zJrN{CJ1xXC-L)sv6B+&;?>G2Vy^gA0|L?0ig1Nk_gRfb5RJWb7@R)FNxoj)m5bo5A zT26Rhc+imp3STHaTjfW^g(|-)b~34P@T;DY!Y|JLV!h~?!UMv+W~rk8oJZXxl((kS zQoCjL;F2OioCsMeEK;IORH`MJ)%Oj3`=(eDk1l_k6&!ICD2jJb)QWV?OEpB#%U5DW z<^DHM*BBYDb`Qm&@xk+6`k-kGJ~ut@Bss<2MBl7wy?YQ|gOl@` zmfeQab?CaYHAnlF0y6!E0nf+KHVYkB&^lku>Svv!Tga@+6J5g2F7(U(@WK}gKWGoM zaw9_k000SaNLh0L01m+b01m+cxRGn^0001ANkle@h>d^1S0l3CF+xP*EVK9H%$&>28Sp1dy6H9yfoYYUR3aXknVpL? zJrN{CJ1xXC-L)sv6B+&;?>G2Vy^gA0|L?0ig1Nk_gRfb5RJWb7@R)FNxoj)m5bo5A zT26Rhc+imp3STHaTjfW^g(|-)b~34P@T;DY!Y|JLV!h~?!UMv+W~rk8oJZXxl((kS zQoCjL;F2OioCsMeEK;IORH`MJ)%Oj3`=(eDk1l_k6&!ICD2jJb)QWV?OEpB#%U5DW z<^DHM*BBYDb`Qm&@xk+6`k-kGJ~ut@Bss<2MBl7wy?YQ|gOl@` zmfeQab?CaYHAnlF0y6!E0nf+KHVYkB&^lku>Svv!Tga@+6J5g2F7(U(@WK}gKWGoM zaw9_k000SaNLh0L01m+b01m+cxRGn^00017Nkl<4US^$!GmhfcVv)<2N+x$yNqt=c6z-~E@LNZto8 nPYVzO7{CAqFn|FJTxsA3Fgqa}*bmK$00000NkvXXu0mjf5zX@{ literal 0 HcmV?d00001 diff --git a/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_box_small.png b/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_box_small.png new file mode 100644 index 0000000000000000000000000000000000000000..378965d36c32ab1ec546bda3f60790563c85044c GIT binary patch literal 599 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=hEVFy?1EI|pPYCo?c;Oe~#f>+O^% za=bn(aLL02XP4$?*XAY>mt=`2NxWGTt}eR1{lN6od%ZleFI-YEanaq&TiYDfe62}A zqp4%sK8Jko6K`YIFKC%}y7+wm|Kfk`&n@|HD6=kI@tt*H#Hx&o1t)gTiula8=kbwN zcIkgh7OnQ)c+|r7@$+hAu9-evb1=kI>)^yR()g0%!-M4A2I$3>4*~@OG zn4RFa>>`JU(ZT+af6|K1J<^}NwW5UaO`3oHy5?ZnHBYuK`Y>g~`iK=;Yd_C0FHH5) zHawZU>Da|iA+?t2BB5rQ0g4JcRg7Q1<2I{3J>}@)6Y)#i)cRy9KmKxE>vg^7$(k3E zKe?`)+4+C|@_BP-Zrion>B9dkiTT0?8~A&7CH|Qw<@T6IM!z67>-TA+c z&ht)o$DYjWmCQSCwO&j&U8y>IlJhj%*{%KD5`GQO<=U>TjokXpvcBoZHk*sGGI9r( zT-j~@kKwUf`rq}RGhPB?fV03OvY3H^?=T269?xHq0u=1?ba4!ca8KT|dvR0Z)yBs> ziG0&|3<}=esBOEjY-)j>uB4B`VQp(ZqXG`CzwL?bA5Q$=vPI-(j+nsmy@%#K{QB0L zXM6tMw17}y*2`a*d=@-lXPmM0%NCgweG3+czylM?rU_oX{>78|3)joQYB%Qu6Be9A cK^p^u?rN3KqQ~Mt0bR!6>FVdQ&MBb@0C+qLiBNm+ox9SM z_y2jCnej2FyDtJAueSX;1fG4U?AiA3scl!zpzQ^&i*@WeXp(skHNnUmp64S zc>q^C(D$q-j6_vxlj+W6;Nt?ibO(n=Ff9B1Yk$Q&XYc6( zLva8A010qNS#tmY4#NNd4#NS*Z>VGd009C?L_t(o31eUw1*0J_8UmvsFd70QJp>pj z2>@TeevtP6=w@u*R7kYBEa;j^;R7vVP*4a!(W0wokHRO!A=v>?U&GAB@I6d|Sel7g zg)nsv_Wu|J1fDVAqZydeVaf+TO>|;G_eytnH$!P@DZ}O}bQ$b?-!|;xWQl?-rxqYP z1Yiz0d-g1t`Q*tHFfAh^1Cv6bjg5^__%IGhxnR|*RWN;UT3T9~;n1N&a6T@J;0n+f zM27&rV4pH|FN2<*JHw?*JHa%ld>|GO?EsL0*c@@_FlHc<;s9bDiq&$WHRDl8QV77( wfSsKkhLNyz5Ed4OAvY>88UmvsFsMTS0CxR6pu*=9P5=M^07*qoM6N<$f^tnO00000 literal 0 HcmV?d00001 diff --git a/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_dish_towel.png b/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_dish_towel.png new file mode 100644 index 0000000000000000000000000000000000000000..2dca1435559d449b6d291d84f152bc73d9381d5c GIT binary patch literal 582 zcmV-M0=fN(P)p;)SD(QwGSnppD= zyyL`$2OIvRqN_`>#W+3V=TYh;9s*{s-gRBWna=16*an4X6;-PU&kIMkDyqqQ!XrvP znHD|~_G@xL;agKrS^Q>l&f+hVwRm&^>}F4Iu7gt@tmL(#@RYExSg0zk^O!erWlAeC z$z!s{(TNf!gqIXmHYrdcAh{$n>+TCSean=^qsU*Sh9-_2dGY#1txDI7+_TU26NwGN-w3(d%u^cMR?wxV&j= zsROv$h0$jjgYYBnT!5+(p2?l)_ zzznO)9Rq$b>SELzXwj1imw|43j}e>q7|HyC&YIz^1igTOG9UvoAOkWW1HU$K0@Jr= UpxkIH#sB~S07*qoM6N<$f-waIh5!Hn literal 0 HcmV?d00001 diff --git a/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_sponge.png b/gfx/UltimateCataclysm/pngs_incomplete_32x32/layers/sink_sponge.png new file mode 100644 index 0000000000000000000000000000000000000000..45be0199afaa6d470d41a159a2e16df9512815cc GIT binary patch literal 581 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=hEVFy?1EI|pPYCo?c;Oe~#f>+O^% za=bn(aLL02XP4$?*XAY>mt=`2NxWGTt}eR1{lN6od%ZleFI-YEanaq&TiYDfe62}A zqp4%sK8Jko6K`YIFKC%}y7+wm|Kfk`&n@|HD6=kI@tt*H#Hx&o1t)gTiula8=kbwN zcIkgh7OnQ)c+|r7@$+hAu9-evb1=kI>)^yR()g0%!-M4A2I$3>4*~@OG zn4RFa>>`JU(ZT+af6|K1J<^}NwW5UaO`3oHy5?ZnHBYuK`Y>g~`iK=;Yd_C0FHH5) zHawZU>Da|iA+?t2BB5rQ0g4JcRg7Q1<2I{3J>}@)6Y)#i)cRy9KmKxE>vg^7$(k3E zKe?`)+4+C|@_BP-Zrion>B9dkiTT0?8~A&7CH|Qw<@T6IM!z67>-TA+c z&ht)o$DYjWmCQSCwO&j&U8y>IlJhj%*{%KD5`GQO<=U>TjokXpvcBoZHk*sGGI9r( zT-j~@kKwUf`rq}RGhPB?fV03OvY3H^?=T269?xHq0u-$Aba4!ca8FKHU|wMQvp+{w zdG8zX6D5EC|Glffq168V-;{(KwQM=&!nQI6@7pYIT%Y5VlkoaR>kUbm`jFsxK$U|?yHvHO0>_6N`%44$rj JF6*2UngGaD2TA|{ literal 0 HcmV?d00001 diff --git a/gfx/UltimateCataclysm/pngs_tall_32x64/layers/desk_laptop.png b/gfx/UltimateCataclysm/pngs_tall_32x64/layers/desk_laptop.png new file mode 100644 index 0000000000000000000000000000000000000000..0de545ae300dbcbc1d2193d7b8d2a9996bda3071 GIT binary patch literal 766 zcmVJp*K@mi3`~$uk3G1CiNRVWf+52&3&SmBdxIRY`;3g9 z5IzQeO9H(*$o@cnq*Zl>_Y5Gg_a$Orbg6?g&xUOsQ zeYo6#{wGtn^s3~M=}x8K{T#Yt(0d0RtF^5D);W8G=$1UuEgT%ei0toP`vrfvXV0(; ztcU;r010qNS#tmYTt)x@Tt)#DltV!P00A~hL_t(&1?`rxZi6rohD`xgLMjX}ph_%E z8CogNkf+KE<&7$JsF+w#qcSki4j>0x`X$JKk0?@x{$9@Z{XU<+vk^+MkpKyh011!) z36KB@kN^pgz=H{R(*5&1{~X70C)NAD|IswfyGtLq1n`GpxciG=F?8DJ{`<`-ngmZ0 z(JdO!lfe}yptatVhg2_4Kzbr%Db*!Cn9L0D6%EMxGYQCos+1l3T|7TzVDs!odQHGibDJ;#O18(S{xty w(2@WNkN^pg015n40_LxmjRZ)51Rh1;0{fy%*5p;)SD(QwGSnppD= zyyL`$2OIvRqN_`>#W+3V=TYh;9s*{s-gRBWna=16*an4X6;-PU&kIMkDyqqQ!XrvP znHD|~_G@xL;agKrS^Q>l&f+hVwRm&^>}F4Iu7gt@tmL(#@RYExSg0zk^O!erWlAeC z$z!s{(TNf!gqIXmHYrdcAh{$n>+TCSean=^qsU*Sh9-_2dGY#1txDI7+_TU26NwGN-w3(d%u^cMR?wxV&j= zsROv$h0$jrP3Q&Lo|1L2520#=={kU%&$7+`PIR5Hi`4lb%A0I%P$`F=ip>12anzO2^uVk43ZWN#Z1t>rP c3jDOd4e?Am+2$ltB>(^b07*qoM6N<$f;}oVo&W#< literal 0 HcmV?d00001 diff --git a/gfx/UltimateCataclysm/pngs_tall_32x64/layers/oven_pan_2.png b/gfx/UltimateCataclysm/pngs_tall_32x64/layers/oven_pan_2.png new file mode 100644 index 0000000000000000000000000000000000000000..cfb492da2f2bf7df883b50c8b0ffa373410ce402 GIT binary patch literal 694 zcmV;n0!jUeP)p;)SD(QwGSnppD= zyyL`$2OIvRqN_`>#W+3V=TYh;9s*{s-gRBWna=16*an4X6;-PU&kIMkDyqqQ!XrvP znHD|~_G@xL;agKrS^Q>l&f+hVwRm&^>}F4Iu7gt@tmL(#@RYExSg0zk^O!erWlAeC z$z!s{(TNf!gqIXmHYrdcAh{$n>+TCSean=^qsU*Sh9-_2dGY#1txDI7+_TU26NwGN-w3(d%u^cMR?wxV&j= zsROv$h0$jFm zSXg@u@0B}v3`rLYuVAI5NeBoLLJGqyMDnu)LJT&qg}bi1^UXdYJP06w00IagfB*sr zAbw2E&*1fO$zWshHs^L{tS?k1cEbGfoj{B=P&RI6w)7yFL z!4Hee$A21L6vgAxIPbd7%r#t}<6&jSUtdo*h@xmnl0>u#&+|;}dvKbjQkJFEb^UZ^ z(gw7cHW37Ygkd<=Zkk5gww*j&1FX04eSdIW*EFDG-}iqBA8*J60R#|0009ILKmY** c5SUZo2IyWo*;0l1f&c&j07*qoM6N<$f^m8_lmGw# literal 0 HcmV?d00001