QFIphWdirty bitcorrupt bitexternal data filecompression typeextended L2 entrieslazy refcountsbitmapsraw external data  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~? UEFI PART\?l? "? Lı 3J =r*9e(s*K>;g僡ĕEm(QEFI=rGy=iG}q=tM[7 />X@@RR?s"@"@Ѿ4>,@b@@  8fot@`@_ @T!@!$Q {S@@SA{¨_a@; 4s:@{S[R@t@y|@y|`  @z@ykT@SA[B{Ĩ_`@4v@ys@_kaT@_@{ @b@ @{¨\A@R, @R{¨_ Վ{S[* A@@SA[B{Ĩ_`RR"rw vu@95!A ?R"AA xabx!R! հ {S@` @` SA{¨_ր@@R_ {S@` @Q` SA{¨_ր@@R_`@_R{S[c@q,T`@@?B@!Ta:@A ?@"aTt @`2@H`@FD RSA[BcC{Ĩ_"!8@@@T@42@)R{SckMRF["FsFTFRb *5v"@yqTF@RY [BSAcCkDsE{ɨ_a@ைҀɨ?T`@9qT`@qTF|a@`v@ybz@yTFR "F FPRFMF@F@R @4] @`F@F@R 5 F@ @!F`@5F `@;bz@y`k T#o*5H#}}`#2 F@5b@Rcz@y`?kTATu@u`z@yk"#T@$qDz T`v@y@!F`@4@!F`4@F@R@c Av_T@9@4F@55 @\ @ZѵZZ@{#av@yZ6Rv@v`z@y_kCT}VC@}V@6 @@@˵ѻuqT qT@@`v@yZ@aR@qTdv@y!u(@Rav@y@A!|!a|! @jZ@7ww@kT@9_ q TrT7@~S@_q6@ @yvT4a5RR#r _q` TF@R !"@95@ ?R!F@! "x`F@R 4@@??@`4B@@@@@4S 9{@@4R`4F@@@4"R@5F5@F5@@@y@Ca@.@?k`Tc@@ F@R 5F"FGRFFFSR@F"FFSR@F"FFd4~4w<Vhq0>Le{  @A ?G@a: @{¨_{!RS?  @  @SA{è_ 5T  3` @Q` {[GS_ tGGR SA[B{è_G@`5G@R  G G@~{@ @R{_  R,@0@4@ (ORRR RB_AT_$@x4f qT d( |S#|S@cl28#DL!c`2`2!`2888R 8qhT8qHTf|Sd2cc`2&$89a ?qiTa ?qTR8a| S !h28a,Fc!`2c`288*{"S[5@yRQA*S`@yPqTSA[B{èAJajt8AFkhTsRZnp{B@y3`:@y+`6@y#`2@y`.@y`*@y `&@yg"@yf@ye@yd@yc@yb@ya @yB}bAd@a"@9 BvdJ@9a@cF@9bB@9$Bnc@yb@ya @y(Ba @y,B0B#4B? qTT?qT?q@TTB?qT?qATaPBX`@9+`@9#`~@9`z@9`v@9 `r@9b@gn@9fj@9ef@9db@9a@8B5a@b@Eb>EC@E@RuSA[BcC{Ȩ_**DE#*@0@*@?HE`R]'@@#'**?ґ@'@0@ @@R`?@7@!LE"@L '@PE- CR"RCR*{[6ES @4A@TR @t@s@au2@@SA[B{ƨ_֍ RBCU3Sc!E!@!0@%@?a@aaZ R{S[cs\k8F@C1TF @@?bTFRSA[BcCkDsE{ǨB`F@SA[BcCkDsE{Ǩ_Cx*qT@>aFo@F!@@!0@#t@@`?o@@?T,F'Fn  t @Aw@v@uR3@l{cC *1T0GRF{¨_ @t {S[c*k+`+@SA[BcCkD@`R{ʨ%75ZF 7?L@`R +@SA[BcCkD{ʨ_1T@FHT;@_Ts?sLC T @`RZ@qT@(T@0DTc@O@?T@ˡ@ 0@ˠҠ@@@?L 0@iTAAZT`TSOK @@_"@@T4TZ3#RBR *@`R5t|s!TRs5_{ `@@ @{¨_@ {R@$4A Ab {A!A_ִ/@hn{Sq!TBb?TRSA{è_ @6@ @!`RR !<?q(T  ??TEҀ?T@R`R_AR2{ASҶARSA{¨@*@?֠ARSAR{¨_ `Sp{SB/BtBT3R'@q#@o@m qTqBB!RBBB *SA{Ũ_B@@94#@@9q@T#Ba/@@7'@@9qT!B 9SRsRB Ճ`<{ 8C' E@t'@6q!T@SA[B{Ũ_ @5a@@@q T@`s@{StE"4xE@@SA{è_TR{ E5!R8R @{¨_ {S*4EC+[!EF"@_@?D E. *SA{ɨ_ հX{ 4FbA_$qTC|@ d"c|%D@h#@  ҀV`A` @{¨_ R`2 lFA_qmTBQ  {C|@c|hcDA  ҁ6 R{_R_ְ{S[F`@@4F@F ?a `6K`6 `5`2K4Fw 2 SA[B{è_ հX){S@9?qAT!RV"RGRe@SA{è_ bѓ8 Q{S @ @ITdG`RD@SA{è_B_TBAtEchG@`` @@`?t Ta@!aTe{@!@ A ?`@@T`@  @G{¨@_ հ{c*S7t@[#@ 5@9qT ҅ @t@9qTp@` @@?5`!{@! "xu*@?STCzTS#@SA[BcC{Ũ_!R` P tJ  @BT{@`R{_@ @A _֊ R_{S[ck @ @(@˟wIӔs"@B@BSA[BcCkD{Ũ__ TBA@_$@@Uwӵ2@@5s9&Ss"@ZC{SR[ck@@+7wR%` 7 R+@SA[BcCkD{Ǩ_*7P7@ @$Q"#7aT*`@9:AqTR`@@@4BR  @@7@`@9qT`7a@9?q$@zAT`@A@`57@@9q@z`T4a@sB`_?ITBRR"@7@ $"c հ{S[ck@ B@@@5 R@?5@Q CRId @R#BBCd@CBC? C@`4C@C ?B$C RC Rd @CBC@x$qTs@@ Cd@C?C @`5@QSA[BcCkD{Ũ_x$qT@Q?@ @@X {S*?TSA{¨_{SSA{¨_` @ 4s@@ BA"_@a@"@BA|_ !<?qhT@UҀ$@R`R_ R{!RC CCC`C`C @{¨,=?C@_,{ Ca@9?qATa!_8?qT` @{¨ @{¨,D@@-Rr_kaT@_{S[ci:F@a"@-Rr_kT3@3s @ Tb@)_qT}s3 TF @ a@-Rr?k T`@s@ @ # T "@-Rr_k T @ "@" TFF>##@A'@bFF FZFH `@9qT!RG`@9 4t#@ #@@9?q$@z@ T_b@a"B @a@8Ҫ`@5a@`"! FF5F@@4`@}s@_ qAT @BB}Ҡ`!_pqT"@9_qT!"@9"5F_q@T!h!8(!F#@'@H'@ Tbha8_q T IT$"F``5'@h38'@tFFbeFeF`^FF@@:F@@' `FaFFF@f@R`?7 Z0[Ї^cjr|8_@@T_#T!"c T%hc8h#8$hc8h#8c_T_#hb8h"8B5_{!(G!@ ?ARSy3,Ga@ ?a@ ? @ R{è_ X!_aTRhd8%hd8kT`K_hb8#hb844Bk@TK_Bhd8%hd844TkT`K_R@9_kT5_C@9kB5_q!!$! 0_{* 5_q,T_qT$š{__q{d@9*55Rccd@9D4*5@9kT*@4@9`44{_cd@9*D4`4d@9*4c R!_\T_T_*R Úc qTd@TFTeh$ a8BTDC|Bcah$8"@9b5 _!{  A!$A*`4 @9 4f@9B4 @94!kaT$hjd84@hd84k@T!R**@he8q@z`T[ 4TD_8q T*S*5qT_ T@_8qTHR! R @*{¨_ Տ{SSA{¨SA{¨_{S`h38SA{¨_{"@T*dC_R҄C@c?hT@˥qT"D{x?`qT߼qARR!ߐq@ T?@qATq! R"R!!(Q DӃ c(qB089>T !0L6@95d5{Ĩ_RR9? qTC!8Ac@!8@"@9@98 8@_IT+i"8@B!?T@_IT"i#8@B@_IT+i 8@!?T{Sc@9*|5qTa@9?qAT_xraTs RA|@$sb5!QR!? qARB0_qARBQ|@(T$ T5@C@R\TSA{¨_'s Rf@94Q_dqT@Q|@Ɯ? T&*T*}f@q T TQqT!47`.*}f*fh""qT`.}47`.*}f@"qT`.}4"qT`>}4[{S[cks3A@9N753@"0Tj 8SA[BcCkDsE{Ǩ_?q`T3@ITj 83vR@9qT:R7@9Q$qTqBR!*7@@9?qaT7@9!Q?$q(TBR7@@8ߐqaTQ7RR߰q T7ߔqT3@iTj 8&@9.7߰qT. &@97@? T@/x|qHTߌqT`qT3@ߌq T qT3@Tj 8Q!! š"B!TqTq!T@9qAT@RRRP3@iTRj 8 @yRRR3?3@iTRj 8 @yRRR3/3@iTRj 8!@9RRRC3%@9RRRC3@iTRj 8)@9RRRC3-@9RRRC1@9RRRC5@9RRRC9@9RRRC=@9RRRC3@iTRj 8iTRj!8R3***ITj 8*q Tq)TRk)Tk(TRARTd$*j 8!QR3!643RRRRRRRRRTb$BB`2j 8!Q"R*B AiThb85F:53@RTE433@R_Te4B343@R?TB43BITj#8c%R%iTha8h!8!%RITj!8!"Rj38{S[$@" AAV|@iT AŅRrA@ ?֟`T@*SA[B{ר_2*8{CC#KCOCDG{ɨ_{CC#K!AGO!@ ?CCD{ɨ_X{S[*@4*RRR@Ts@84qaTQ*qT?|qTD@T qaT?<q87*4_T?kTU`A?qT r`T%R ?qT ER?qTeR5%<?k T$| SQBф$ *Dx$ *dyRRBa$x n{@T@Eg!DE#@CHEaTd@diTc@_ҡ_TLE_TPEB{_ ~8{[VFSck@T(TE!|!Eӕ:R򙧥@&qTqT5`zTD @ Ts?stH T@!R@?4@ R@?@R R@@?@ T@#C@TˁF"@_TF"@G_#TDˀcT_aT @:_T@?AT SA[BcCkD{Ũ_֟TG_T$! { cB"@"h(?T!h(#!T!@@V`RF`R 8{S|| S`SA{¨_F`RrR>{S7RSA{¨_` {cCA@b@_T{¨_a@҅?iT"@_T @F@ET@E"@ @?T"@??B "@_TG!"@?T?T_T_ @!{CSk3AR@A[bAc T`@cT4A@UA"RbA A@A`~{!?T!у(#EB "{!@3 @@AAbAR @@`TbAA@As~s{RJ` @` EӢa@b{!@` `a=3@{ASB[CcDkE_R@A@R#AbAA!TbAgA@AR@`!"E>#{!@@B{ASB[CcDkE3@"@s#@_T6 !@83\dn{S@SA{Ĩ@SA{Ĩ_@~Eӡ@?"T`@B{Ӭ Q$Q?qAz_{@BT @_cTAA`R{_@ F[{@@S@RSA{è_AR@as{S[ @tT* 5c@`@`Xt @SA[B{ĨDB`RHB@@*SA[B{Ĩ_ F{SA!T!ѕ@94"94B@SA{è_ր@R հ{S*q5R@SA{Ĩ_*i 5"94B@aSA@{Ĩ{[*G RS4zOQcPCQ`@4k`TsB`"@9kT`@4`@q9`@[BcCSA{Ũ_44fqT'qiT~qT`"@95 `{S[cks3?`SAD[BcCkDsE@{Ȩ_7Ry @95?@`T?3@!R`??@?@*#Rd` 5@ 5@@5D?@@T*|***H4D@59*!@95qT*`4*A94A49"_qT q@T*oo@44"9|@"Ҁ@kTw҉`@>!Ұ`4@ 59X7 հ{S@SAD@{Ĩ_RzD@gxa_{S[cks@7`@9` 47@94!x!Q!?dqTR]QE@T@Es?`?aE?@"@4-@ @LqTSA[BcCkDsE{Ȩ_ @5 @hz84@7@sa@9?qTs?@Hн{S[E;@ ;@SA[B{Ũ_c@E`?`4F;@@5s@H<F{S[c#@@+@pTtSh58R"Fac@CcCC:`@@`@@08s@)#@SA[BcC{Ǩ_mn{S@!@!@? Te@`@@R@FFFR@SA{è_ Rq{SC@"@kTR@*SA{è_*4{S[*`4`@7@`? 4 R@*SA[B{Ȩ_'@7@@`vG@@G`?`4G@5@ H<{S*@5'@?qT0@@T*SA{è_?qAT@R?8@@R`9@@@@@`@944@@@@'@B !Q`?8@<@@@@@8{?q[SR@@@ R@(q`T4q!T@@@ ?P@RSA[B{Ũ_Q?xqTqlT38@#9'9w*@# ? qTqmTBKsQ@38@# ? P{$ASJ*AR@`@94.AC {S*RZ3# R9&qAT! @ ?RKQ1TSA{Ĩ_Rb@@?֟*qTR{S[R@95@SA[B{Ĩ_A?q30@u*@P{ Aa@aR ?` @@?s@R @{¨_a@ ?@5s@P{S Ba@aR ?s@R*SA{¨_a@ ?֔*s@ PlqRrAzT{@{_ R_{`B @ @{¨_a6@a ?s@P{4{_ B@ Հ!B _ր{a(@$@a @  @{¨_{S(@@Y@~B*SA@{¨_ְ{*S[c* R@8Dq^zT[BSAcC{Ũ_77@@@@qMz TRDD@t4@HDR9 d@G#*?4G@77 Ҽ+4Rs@ JLD "@PDRҥ@"@ "@"@_TTD@5@XDRa@a'@ ?ֵ@@c@'@`?@5a@!a@as@Rs*'@ ?4'@ ?d@G#*?5G@j`Ts@@c@"@'@`?5a@a@'@ ?'@ ? 4 /6Gs{*S*DRDDD@sR b@bs@*@?`4@SA{è_ֵ/6D!D_|S<rT"Q*B<_xq$IzT?4qTB$b7! 2_4qT?4qT*\qT|@!E x`"Q QB<<_|qBz)T?4qTR 8R_րRSA[B{è_{ShE[*`@5@@?@`@b@a @ u5R!E!@4R_R{è_{Rs@5'@6 A(62A 62A6262 E@E5@_q`T_E@ @?qT?qT5@!E!@9@!@!F (F@,F5@_q`T_0F@ @ @`F@5dF@qAThF@ @$@ @y! @y@*_RR F@5F@qT{FS@ @b@`&@@@?a@ ?b@~@SA{¨_ { F@5`@`BRFF!0@@j` @R{¨_{ 3Ga@?qTR}Ro` @R{¨_{StG@5xG`@1T@5RSA{¨_ RS5|GR,a @?1`TSa@?1`T" R`R { *5b~Sa>@G @@{¨ @@ @{¨_{!G!@ 3 @`4  @S@y @ <3{è_`&@d@?{S@5Rc@@@ @`X@kTReshMjbRCy"RkTF_|qTZ"xq( TM T@@?SA{ƨ_aRkTTA2RkTHT2RkT!2Rk`T*B<a2RkT!RkTRᢄRk T(TᡄRkTaRkTRaRkTRBRBRRBRRRRkThqTd@Xa$Y"x*!  @@? {!?@ABCDWXclosing %s efidiskdisk/efi/efidisk.copening %s not a efidiskno such devicem = %p, last block = %llx, block size = %x, io align = %x invalid buffer alignment %dinvalid sector size %dopening %s succeeded hd%diterating %s fd%dcd%dd%dwriting 0x%lx sectors at the sector 0x%llx to %s no media in `%s'failure writing sector 0x%llx to `%s'reading 0x%lx sectors at the sector 0x%llx from %s failure reading sector 0x%llx from `%s'%s,%sRSDTXSDTFACPD$ line size: %lld cachekern/arm64/cache.cI$ line size: %lld Unknown cache line size!invalid arch-dependent ELF magicreloc offset is out of the segment reloc_abs64 %p => 0x%016llx dlkern/arm64/dl.ctrampoline out of rangerelocation out of range reloc_prel32 %p => 0x%016llx reloc_got %p => 0x%016llx (0x%016llx) HI21 out of rangeADR_GOT_PAGE without matching LD64_GOT_LO12_NCLD64_GOT_LO12_NC without matching ADR_GOT_PAGE%lxrelocation 0x%s is not implemented yet reloc_xxxx64 %p %c= 0x%lx dlkern/arm64/dl_helper.crequested buffer size is too largeoverflow is detectednew read is position beyond the end of the written data%s: the command is not allowed when lockdown is enforcedone argument expected/%s%s (%s) unknown invalid argument(%s): Filesystem is %s. %s='%s' not an assignmentSet an environment variable.[ENVVAR=VALUE]setRemove an environment variable.ENVVARunsetList devices or files.[ARG]lsInsert a module.MODULEinsmod%s,%srootvariable `%s' isn't set%s read failed diskkern/disk.cClosing `%s'. Opening `%s'... disk `%s' not foundsector sizes of %d bytes aren't supported yetno such partitionOpening `%s' failed. attempt to read or write outside of partitionattempt to read or write outside of disk `%s'Read out of range: sector 0x%llx (%s). `%s' is already loadedmodule at %p, size 0x%lx moduleskern/dl.cELF header smaller than expectedinvalid arch-independent ELF magicthis ELF file is not of the right typeELF sections outside corerelocating to %p .modnameno module name found.module_licenseno license section in module %.63sLICENSE=GPLv3.moddepsLICENSE=GPLv3+LICENSE=GPLv2+incompatible license in module %.63s: %.63ssymbol `%s' not foundgrub_mod_initgrub_mod_finiunknown symbol type `%d'relocation without symbol tableflushing 0x%lx bytes at %p module name: %s init function: %p prefixvariable `%s' isn't set%s/arm64-efi/%s.modmismatched names.textdynamic_load_symbols %p Print infomation useful for GDB debugginggdbinfo/%sVendor(%pG)[%x: ]%02x set_virtual_address_map failedcould not set EFI variable `%s'section %d is last section; invalid. sectionskern/efi/efi.csection %d has bad magic %08x, should be %08x returning section info for section %d: "%s" malformed EFI Device Path node has length=%dmalformed EFI Device Path node has length=%lu/EndEntire /EndThis /EndUnknown(%x) /PCI(%x,%x)/PCCARD(%x)/MMap(%x,%llx,%llx)Hardware/Ctrl(%x)/UnknownHW(%x)/ACPI(%x,%x)/ACPI(%x,%s,%x)%s)/UnknownACPI(%x)/ATAPI(%x,%x,%x)/SCSI(%x,%x)/FibreChannel(%llx,%llx)/1394(%llx)/USB(%x,%x)/USBClass(%x,%x,%x,%x,%x)/I2O(%x)/MacAddr(%02x:%02x:%02x:%02x:%02x:%02x,%x)/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x)/IPv6(%x:%x:%x:%x:%x:%x:%x:%x,%x:%x:%x:%x:%x:%x:%x:%x,%u,%u,%x,%x)/InfiniBand(%x,%llx,%llx,%llx)/UART(%llu,%u,%x,%x)/Sata(%x,%x,%x)/Vlan(%u)Messaging/UnknownMessaging(%x)/HD(%u,%llx,%llx,%02x%02x%02x%02x%02x%02x%02x%02x,%x,%x)/CD(%u,%llx,%llx)Media/File((null))/File(%s)/Protocol(%pG)/UnknownMedia(%x)/BIOS(%x,%x,%s)/UnknownBIOS(%x)/UnknownType(%x,%x) found registered FDT @ %p linuxkern/efi/fdt.cnot found registered FDT mods%lxinvalid memory address (0x%s > 0x%s)out of memoryCould not malloc memory to remember EFI allocation. Exiting GRUB won't free all memory. couldn't retrieve memory mapmemory map buffer is too smallcouldn't terminate EFI servicesTrying to terminate EFI services again cannot get EFI memory map sizecannot allocate memory for memory mapcannot allocate memory for new memory maperror fetching memory map from EFIMemory starting at %p (%u pages) marked as free, but EFI would not allocatecould not allocate all requested memory: %lu pages still required after iterating EFI memory map%sprohibited by secure boot policyshim_lock protocol not foundbad shim signatureDisabledUNKNOWNEnabledSecureBootSetupModeMokSBStateUEFI Secure Boot state: %s efikern/efi/sb.cyshim_lockshim_lock_verifier0falsedisablenoerror: %s. assert: error stack overflow detected! missing `%c' symbolattempt to read past the end of fileattempt to seek outside of the fileinvalid file name `%s'beyond the total sectorsDetecting %s... fskern/fs.c/error: %s. %s detection failed. unknown filesystemblocklistylockdownlockdown_verifier%sroot(%s)%scmdpatharm64-efiprefixnormal%s%sdebugalloverflow is detectedunrecognized numberpositional arguments are not supportedunexpected formattoo many arguments(null)%s:%d:%s: invalid formatarguments types do not match Aborted. Press any key to exit.string too longunaligned pointer %pout of range pointer %pdouble free at %palloc magic is broken at %p: %lxnull in the ringfree magic is broken at %p: 0x%xout of memoryoverflow is detectedUsing memory for heap: start=%p, end=%p regionskern/mm.cCan we extend into region above? %p + %lx + %lx ?=? %p Yes: extending a region: (%p -> %p) -> (%p -> %p) Can we extend into region below? %p + %x + %lx + %lx ?=? %p No: considering a new region at %p of size %lx overflow is detectedpeek out of range%dsub-partition %s%d of (%s,%s) ends after parent. partitionkern/partition.cUnknown command `%s'. helpTry `help' for usage > grub rescue> Entering rescue mode... file: %s type: %d verifykern/verifiers.cverification requested but nobody cares: %sbig file signature isn't implemented yetpremature end of file %sstring: %s, type: %d verified_readcannot set text modeconsolegrub_abortgrub_acpi_find_fadtgrub_acpi_find_tablegrub_arch_sync_cachesgrub_byte_checksumgrub_callocgrub_command_listgrub_current_contextgrub_debug_enabledgrub_device_closegrub_device_iterategrub_device_opengrub_disk_cache_tablegrub_disk_closegrub_disk_dev_listgrub_disk_dev_registergrub_disk_dev_unregistergrub_disk_firmware_finigrub_disk_firmware_is_taintedgrub_disk_native_sectorsgrub_disk_opengrub_disk_readgrub_disk_write_weakgrub_divmod64grub_dl_headgrub_dl_loadgrub_dl_load_core_noinitgrub_dl_refgrub_dl_ref_countgrub_dl_unloadgrub_dl_unrefgrub_efi_allocate_any_pagesgrub_efi_allocate_fixedgrub_efi_allocate_pages_realgrub_efi_close_protocolgrub_efi_compare_device_pathsgrub_efi_duplicate_device_pathgrub_efi_find_configuration_tablegrub_efi_find_last_device_pathgrub_efi_find_mmap_sizegrub_efi_finish_boot_servicesgrub_efi_free_pagesgrub_efi_get_device_pathgrub_efi_get_filenamegrub_efi_get_firmware_fdtgrub_efi_get_loaded_imagegrub_efi_get_memory_mapgrub_efi_get_ram_basegrub_efi_get_securebootgrub_efi_get_variablegrub_efi_get_variable_with_attributesgrub_efi_image_handlegrub_efi_is_finishedgrub_efi_locate_handlegrub_efi_locate_protocolgrub_efi_net_configgrub_efi_open_protocolgrub_efi_print_device_pathgrub_efi_set_text_modegrub_efi_set_variablegrub_efi_set_variable_to_stringgrub_efi_set_variable_with_attributesgrub_efi_set_virtual_address_mapgrub_efi_stallgrub_efi_system_tablegrub_efidisk_get_device_handlegrub_efidisk_get_device_namegrub_env_exportgrub_env_getgrub_env_get_boolgrub_env_setgrub_env_unsetgrub_env_update_get_sortedgrub_err_printed_errorsgrub_errmsggrub_errnogrub_errorgrub_error_popgrub_error_pushgrub_exitgrub_fatalgrub_file_closegrub_file_filtersgrub_file_get_device_namegrub_file_opengrub_file_progress_hookgrub_file_readgrub_file_seekgrub_file_verifiersgrub_freegrub_fs_autoload_hookgrub_fs_listgrub_fs_probegrub_get_time_msgrub_getkeygrub_getkey_noblockgrub_getkeystatusgrub_gettextgrub_is_lockdowngrub_is_shim_lock_enabledgrub_isspacegrub_key_is_interruptgrub_list_pushgrub_list_removegrub_lockdowngrub_machine_acpi_get_rsdpv1grub_machine_acpi_get_rsdpv2grub_machine_finigrub_mallocgrub_memaligngrub_memcmpgrub_memmovegrub_memsetgrub_millisleepgrub_mm_add_region_fngrub_mm_basegrub_modbasegrub_named_list_findgrub_net_opengrub_net_poll_cards_idlegrub_parser_cmdline_stategrub_parser_split_cmdlinegrub_partition_get_namegrub_partition_iterategrub_partition_map_listgrub_partition_probegrub_print_errorgrub_printfgrub_printf_grub_printf_fmt_checkgrub_puts_grub_real_dprintfgrub_reallocgrub_rebootgrub_refreshgrub_register_command_lockdowngrub_register_command_priogrub_register_variable_hookgrub_snprintfgrub_strchrgrub_strcmpgrub_strcpygrub_strdupgrub_strlengrub_strncmpgrub_strndupgrub_strrchrgrub_strtoulgrub_strtoullgrub_strwordgrub_term_highlight_colorgrub_term_inputsgrub_term_inputs_disabledgrub_term_normal_colorgrub_term_outputsgrub_term_outputs_disabledgrub_term_poll_usbgrub_unregister_commandgrub_utf8_to_utf16_allocgrub_verify_stringgrub_vprintfgrub_vsnprintfgrub_xasprintfgrub_xputsgrub_xvasprintfgrub_zallocmemcmpmemcpymemmovememsetT(0![NYd9ir;0--'?Mqh"XNhEC@DTD)C7jSjkiSd\e[n6kTXhhp[YhfTj0rs X'hVMcxR@RhS\S`VW;Ua8UhT(|zpxx8wXy.yIamxP{p|{Tx~}8~)8LV lyxXv8H%4؆E<SOpO`*`\H@8|3@A`ZеtxHȹ| t,*5GHTT`m@-H,zP '4A,O\vhpPxX-)< IXإgrL----LICENSE=GPLv3+mimg`RELF0@@ {S*@@@SA{è_ց@szTR{  @`@ !@`@@T @{¨{ `@ @{¨_{S[c+ko; @9qT4z@9_qD@zTb@C@q@T@R!scaTq`T9`@@4?z9`4+@SA[BcCkD{ɨ_TqT @9qAT@@@!@G?ր4z9;@o@va@ @ qT`@` q!T@ R@@ @?@@@9qTa@BRT5@@4`@@ [Rb@+@SA[BcCkD@R{ɨ{S[c#c7@9qT@R**C7/@CBR *5`@@#@*SA[BcC{Ǩ_C**4C7@@@CkqAzT@RqBzAT@ {S5R@SA{è_*`@@74ha8ha8Q4*Qd4iqc0*dqHT!?kTeqHTdqHTkT@ @ RR*i*d{ @[U$&RS cksK@_TqT@`RSA[BcCkDsE{ɨ_֟T@_ITt3zQ&՚ѕ$՚C` @ ?cT3@?@@?ֈ@@5cB9 C@T@jB?AT@BKB|@FS@@!@@ 5xK98*RR not a directorytoo deep nesting of symlinksfile `%s' not foundinvalid file name `%s'not a regular fileblocksize too largeattempt to read past the end of fileLICENSE=GPLv3+fshelp`h8@HPX`)FU`l$x$dgrub_fshelp_find_filegrub_strdupgrub_fshelp_find_file_lookupgrub_disk_readgrub_errnogrub_memsetgrub_fshelp_read_filegrub_strcmpgrub_mallocgrub_errorgrub_free (`,``@T8X8`@PPTP`HdHHHHH X(X48@HPX-<AX (TX08<tk.symtab.strtab.shstrtab.rela.text.rodata.str1.1.data.module_license.bss.modname @@0 &25|;|KP   Y,ELF)@@ {(@@@R{_ {S[ckW@A @+a 6*[aRR8R@x?kAT@y@yA 4_k T"Q5+@SA[BcCkD{Ǩ_#d|jd_kT@@y@@(#`@("@#`4@ R%|$heT_k,T"Q4RA|haA@y?iTS @y@@s`T҃R@ R.TBS(@@3R2ѡ*a" |S!|S?T@X@R"6Ro"Q~~@o@A4@*&ؚB~! ٚ5sQK1!To@|˟bT@\@ T@`@SR@{@ @  @t@ǀ@@{B_  @0@E{S[5Q"R(@@PA( B BQE|@ $db@D 6dATKaf@` c"@c|!6T@6T!|T!TT`@a@!! ƚ@@5c@ Ra( aN@4b@ya*@eRA  ;@qmT[@B|@!`@aҡ @4@SA[B{Ǩ_cR {S?`*A@@5ar@y`R?kT`@<qTa*@A4aN@4b@y4(!R kT@ R@,qT@ R#`b@"RrjT@86cAy4`QjATrT$R*B kT@b aRtARs`H@5@SA{è_֡R {S@@@0@@@@SA@{è_ {CS@@@n@@y@y@yZ@yZ@yZ@yZ@ycZ@yBZ!Z<Z<<<<c<@B<!<@@@{ASB@_{S@@@/@@@SA@{è_ {S[ck@4`*@X7`@kT*ct:@@@`5@y 4[@ 4{A9 4"e@@5 `@[@{A9k"8A94_qTAR?4 RSA[BcCkD{֨_`@b"a@f@@4R@R_qaTaR_q"R@@4 R@y @q T(@qT @q@y {S@@'@'4@ ER$@#@@5@@h'@@!@T'@@@@SA{Ũ_{[S@'@@@V@@'@@T@-#%R@@*5'@@a4'@ (@X6@R*@ * 4@! '@@ l@!@* "@*SA[B{Ũ_{S@5`@b"a@@@5`*@@X6@RSA{¨_`@a@*?qTa`@j 8U@@`4 {S[*R`@4@929`@#@9 q 39 @`?SA[B{Ũ_ր @b"a@E@@a5!Ra`@4 { @@@ @{¨_ @ invalid extentsomething wrong with extentext2fs doesn't support quadruple indirect blocksnot an ext2 filesystemfilesystem has unsupported incompatible features%04x%04x-%04x-%04x-%04x-%04x%04x%04xdirectory is encryptedfile is encryptedsymlink is encryptedext2LICENSE=GPLv3+fshelpext208x(08@H08@H   x               < (#9HUdp{$x$dgrub_mod_initgrub_mod_finigrub_fshelp_find_filegrub_xasprintfgrub_memmovegrub_disk_readgrub_dl_refgrub_errnogrub_memsetgrub_fshelp_read_filegrub_fs_listgrub_mallocgrub_errorgrub_list_removegrub_freegrub_strndupgrub_dl_unrefgrub_list_push G00I0G$DP>\G`dlEGE>+<xDxdBx8|>((>(@HDh>lpEEG@\s88?I G@@8@@`0h0p?88<IG@@08@@\dl?HIG@  D  D    $  , Ed G @  x x ?          ;(  0  P GX G` Ix    @    ?   G G I  (  ,  0  8 ;`  d  l E = G  @   0  4  H  L  T Et D =   G @ AXG@JC(( F(  (08H@HH.symtab.strtab.shstrtab.rela.text.rodata.str1.1.rela.data.module_license.bss.moddeps.modname @0@` &2p :P5@`( @PU^ ;  )g`ELF @@ C@C{S[cks 4@@{@*SA[BcCkDsEC_GyJR_kT@`R*C"G9_qT!@qAT@R5R"!|@ *5W@4qT@C@ 5@C4SaRb@*sG Ԛ@ Ԛ@@@ F`?֠5A qaTR9AkT R@"b@R@@R@"Ԛ@@! @ no signatureGPT entry %d: start=%lld, length=%lld gptpartmap/gpt.cno valid GPT headerRead a valid GPT header no GPT partition map foundEFI PARTLICENSE=GPLv3+part_gpt (08@HPX`hh#;JUt$x$dgrub_mod_initgrub_mod_finigrub_partition_map_listgrub_disk_readgrub_errnogrub_gpt_partition_map_iterategrub_real_dprintfgrub_errorgrub_list_removegrub_list_pushgrub_memcmp8@D  ``((!PP8@0L!\@88HX@HX@H0 (08 @4H8PFXZ`shlpt| 4 .symtab.strtab.shstrtab.rela.text.rodata.rodata.str1.1.rela.data.module_license.bss.modname @@ &.2B(=@ 0 HX] 0   f (,gpt2)/boot/grub` (x08@HPX`hpx (08@H  `آУأx (08@HШبPX @08Pخ08@HPX`hp08@HPX`hpx`08@H (hا08@H (@h (08` (08@HPX`hpxȭЭ ȯPP (X`h(08x`У`0HPXX`hpxh`hpxȣУأ (08@HPX`hpx`ئx08xȭЭح`px`hpx (@ȣУ08@HPX`hpxpx0`h8@HPةxHhج`hpxȮЮ0`8 (08@ȧX (08@HPX`hpPX@HxPX`h8أx `hp৸ (08(H (08@hpȥH`hpȭ(08`hpxȡСHPXpأ@px@HPXx0ЪPPX`ȬЬ`hpح8Pȯ x8@HPXxȤФؤऐإ(0Xا0@HX`hpxȨب (8@PXhpȩЩ(0@HX`pxЪت 08HP`hxȫث (8@PXhpȬЬ(0@HX`pxЭح 08HP`hxȮخ (8@PXhpȯЯ (0@HX`pxРؠ 08HP`hxȡء (8@PXhpȢТ(0@HX`pxУأ 08HP`hxȤؤ (8@PXhpȥХ(0@HX`pxЦئ 08HP`hxȧا (8@PXhpȨШ. S"'Z'Z"'ZO.. S"'Z'Z"'ZAbootaTa64.efiBOOTAA64EFI S"'Z'Z"'ZPPMZ@ !L!This program cannot be run in DOS mode. $PEdT `P @.text `.data@mods``@.reloc@@@BBX@XABX@`$@zT?q_@!Q@ACR<@@@D@$@_{ @S' @{¨_{ @`@`@` @~ @{¨@q {S[cA>X@@RR?s"@"@Ѿ4>,@b@@  8fot@`@_ @T!@!$Q {S@@SA{¨_a@; 4s:@{S[R@t@y|@y|`  @z@ykT@SA[B{Ĩ_`@4v@ys@_kaT@_@{ @b@ @{¨\A@R, @R{¨_ Վ{S[* A@@SA[B{Ĩ_`RR"rw vu@95!A ?R"AA xabx!R! հ {S@` @` SA{¨_ր@@R_ {S@` @Q` SA{¨_ր@@R_`@_R{S[c@q,T`@@?B@!Ta:@A ?@"aTt @`2@H`@FD RSA[BcC{Ĩ_"!8@@@T@42@)R{SckMRF["FsFTFRb *5v"@yqTF@RY [BSAcCkDsE{ɨ_a@ைҀɨ?T`@9qT`@qTF|a@`v@ybz@yTFR "F FPRFMF@F@R @4] @`F@F@R 5 F@ @!F`@5F `@;bz@y`k T#o*5H#}}`#2 F@5b@Rcz@y`?kTATu@u`z@yk"#T@$qDz T`v@y@!F`@4@!F`4@F@R@c Av_T@9@4F@55 @\ @ZѵZZ@{#av@yZ6Rv@v`z@y_kCT}VC@}V@6 @@@˵ѻuqT qT@@`v@yZ@aR@qTdv@y!u(@Rav@y@A!|!a|! @jZ@7ww@kT@9_ q TrT7@~S@_q6@ @yvT4a5RR#r _q` TF@R !"@95@ ?R!F@! "x`F@R 4@@??@`4B@@@@@4S 9{@@4R`4F@@@4"R@5F5@F5@@@y@Ca@.@?k`Tc@@ F@R 5F"FGRFFFSR@F"FFSR@F"FFd4~4w<Vhq0>Le{  @A ?G@a: @{¨_{!RS?  @  @SA{è_ 5T  3` @Q` {[GS_ tGGR SA[B{è_G@`5G@R  G G@~{@ @R{_  R,@0@4@ (ORRR RB_AT_$@x4f qT d( |S#|S@cl28#DL!c`2`2!`2888R 8qhT8qHTf|Sd2cc`2&$89a ?qiTa ?qTR8a| S !h28a,Fc!`2c`288*{"S[5@yRQA*S`@yPqTSA[B{èAJajt8AFkhTsRZnp{B@y3`:@y+`6@y#`2@y`.@y`*@y `&@yg"@yf@ye@yd@yc@yb@ya @yB}bAd@a"@9 BvdJ@9a@cF@9bB@9$Bnc@yb@ya @y(Ba @y,B0B#4B? qTT?qT?q@TTB?qT?qATaPBX`@9+`@9#`~@9`z@9`v@9 `r@9b@gn@9fj@9ef@9db@9a@8B5a@b@Eb>EC@E@RuSA[BcC{Ȩ_**DE#*@0@*@?HE`R]'@@#'**?ґ@'@0@ @@R`?@7@!LE"@L '@PE- CR"RCR*{[6ES @4A@TR @t@s@au2@@SA[B{ƨ_֍ RBCU3Sc!E!@!0@%@?a@aaZ R{S[cs\k8F@C1TF @@?bTFRSA[BcCkDsE{ǨB`F@SA[BcCkDsE{Ǩ_Cx*qT@>aFo@F!@@!0@#t@@`?o@@?T,F'Fn  t @Aw@v@uR3@l{cC *1T0GRF{¨_ @t {S[c*k+`+@SA[BcCkD@`R{ʨ%75ZF 7?L@`R +@SA[BcCkD{ʨ_1T@FHT;@_Ts?sLC T @`RZ@qT@(T@0DTc@O@?T@ˡ@ 0@ˠҠ@@@?L 0@iTAAZT`TSOK @@_"@@T4TZ3#RBR *@`R5t|s!TRs5_{ `@@ @{¨_@ {R@$4A Ab {A!A_ִ/@hn{Sq!TBb?TRSA{è_ @6@ @!`RR !<?q(T  ??TEҀ?T@R`R_AR2{ASҶARSA{¨@*@?֠ARSAR{¨_ `Sp{SB/BtBT3R'@q#@o@m qTqBB!RBBB *SA{Ũ_B@@94#@@9q@T#Ba/@@7'@@9qT!B 9SRsRB Ճ`<{ 8C' E@t'@6q!T@SA[B{Ũ_ @5a@@@q T@`s@{StE"4xE@@SA{è_TR{ E5!R8R @{¨_ {S*4EC+[!EF"@_@?D E. *SA{ɨ_ հX{ 4FbA_$qTC|@ d"c|%D@h#@  ҀV`A` @{¨_ R`2 lFA_qmTBQ  {C|@c|hcDA  ҁ6 R{_R_ְ{S[F`@@4F@F ?a `6K`6 `5`2K4Fw 2 SA[B{è_ հX){S@9?qAT!RV"RGRe@SA{è_ bѓ8 Q{S @ @ITdG`RD@SA{è_B_TBAtEchG@`` @@`?t Ta@!aTe{@!@ A ?`@@T`@  @G{¨@_ հ{c*S7t@[#@ 5@9qT ҅ @t@9qTp@` @@?5`!{@! "xu*@?STCzTS#@SA[BcC{Ũ_!R` P tJ  @BT{@`R{_@ @A _֊ R_{S[ck @ @(@˟wIӔs"@B@BSA[BcCkD{Ũ__ TBA@_$@@Uwӵ2@@5s9&Ss"@ZC{SR[ck@@+7wR%` 7 R+@SA[BcCkD{Ǩ_*7P7@ @$Q"#7aT*`@9:AqTR`@@@4BR  @@7@`@9qT`7a@9?q$@zAT`@A@`57@@9q@z`T4a@sB`_?ITBRR"@7@ $"c հ{S[ck@ B@@@5 R@?5@Q CRId @R#BBCd@CBC? C@`4C@C ?B$C RC Rd @CBC@x$qTs@@ Cd@C?C @`5@QSA[BcCkD{Ũ_x$qT@Q?@ @@X {S*?TSA{¨_{SSA{¨_` @ 4s@@ BA"_@a@"@BA|_ !<?qhT@UҀ$@R`R_ R{!RC CCC`C`C @{¨,=?C@_,{ Ca@9?qATa!_8?qT` @{¨ @{¨,D@@-Rr_kaT@_{S[ci:F@a"@-Rr_kT3@3s @ Tb@)_qT}s3 TF @ a@-Rr?k T`@s@ @ # T "@-Rr_k T @ "@" TFF>##@A'@bFF FZFH `@9qT!RG`@9 4t#@ #@@9?q$@z@ T_b@a"B @a@8Ҫ`@5a@`"! FF5F@@4`@}s@_ qAT @BB}Ҡ`!_pqT"@9_qT!"@9"5F_q@T!h!8(!F#@'@H'@ Tbha8_q T IT$"F``5'@h38'@tFFbeFeF`^FF@@:F@@' `FaFFF@f@R`?7 Z0[Ї^cjr|8_@@T_#T!"c T%hc8h#8$hc8h#8c_T_#hb8h"8B5_{!(G!@ ?ARSy3,Ga@ ?a@ ? @ R{è_ X!_aTRhd8%hd8kT`K_hb8#hb844Bk@TK_Bhd8%hd844TkT`K_R@9_kT5_C@9kB5_q!!$! 0_{* 5_q,T_qT$š{__q{d@9*55Rccd@9D4*5@9kT*@4@9`44{_cd@9*D4`4d@9*4c R!_\T_T_*R Úc qTd@TFTeh$ a8BTDC|Bcah$8"@9b5 _!{  A!$A*`4 @9 4f@9B4 @94!kaT$hjd84@hd84k@T!R**@he8q@z`T[ 4TD_8q T*S*5qT_ T@_8qTHR! R @*{¨_ Տ{SSA{¨SA{¨_{S`h38SA{¨_{"@T*dC_R҄C@c?hT@˥qT"D{x?`qT߼qARR!ߐq@ T?@qATq! R"R!!(Q DӃ c(qB089>T !0L6@95d5{Ĩ_RR9? qTC!8Ac@!8@"@9@98 8@_IT+i"8@B!?T@_IT"i#8@B@_IT+i 8@!?T{Sc@9*|5qTa@9?qAT_xraTs RA|@$sb5!QR!? qARB0_qARBQ|@(T$ T5@C@R\TSA{¨_'s Rf@94Q_dqT@Q|@Ɯ? T&*T*}f@q T TQqT!47`.*}f*fh""qT`.}47`.*}f@"qT`.}4"qT`>}4[{S[cks3A@9N753@"0Tj 8SA[BcCkDsE{Ǩ_?q`T3@ITj 83vR@9qT:R7@9Q$qTqBR!*7@@9?qaT7@9!Q?$q(TBR7@@8ߐqaTQ7RR߰q T7ߔqT3@iTj 8&@9.7߰qT. &@97@? T@/x|qHTߌqT`qT3@ߌq T qT3@Tj 8Q!! š"B!TqTq!T@9qAT@RRRP3@iTRj 8 @yRRR3?3@iTRj 8 @yRRR3/3@iTRj 8!@9RRRC3%@9RRRC3@iTRj 8)@9RRRC3-@9RRRC1@9RRRC5@9RRRC9@9RRRC=@9RRRC3@iTRj 8iTRj!8R3***ITj 8*q Tq)TRk)Tk(TRARTd$*j 8!QR3!643RRRRRRRRRTb$BB`2j 8!Q"R*B AiThb85F:53@RTE433@R_Te4B343@R?TB43BITj#8c%R%iTha8h!8!%RITj!8!"Rj38{S[$@" AAV|@iT AŅRrA@ ?֟`T@*SA[B{ר_2*8{CC#KCOCDG{ɨ_{CC#K!AGO!@ ?CCD{ɨ_X{S[*@4*RRR@Ts@84qaTQ*qT?|qTD@T qaT?<q87*4_T?kTU`A?qT r`T%R ?qT ER?qTeR5%<?k T$| SQBф$ *Dx$ *dyRRBa$x n{@T@Eg!DE#@CHEaTd@diTc@_ҡ_TLE_TPEB{_ ~8{[VFSck@T(TE!|!Eӕ:R򙧥@&qTqT5`zTD @ Ts?stH T@!R@?4@ R@?@R R@@?@ T@#C@TˁF"@_TF"@G_#TDˀcT_aT @:_T@?AT SA[BcCkD{Ũ_֟TG_T$! { cB"@"h(?T!h(#!T!@@V`RF`R 8{S|| S`SA{¨_F`RrR>{S7RSA{¨_` {cCA@b@_T{¨_a@҅?iT"@_T @F@ET@E"@ @?T"@??B "@_TG!"@?T?T_T_ @!{CSk3AR@A[bAc T`@cT4A@UA"RbA A@A`~{!?T!у(#EB "{!@3 @@AAbAR @@`TbAA@As~s{RJ` @` EӢa@b{!@` `a=3@{ASB[CcDkE_R@A@R#AbAA!TbAgA@AR@`!"E>#{!@@B{ASB[CcDkE3@"@s#@_T6 !@83\dn{S@SA{Ĩ@SA{Ĩ_@~Eӡ@?"T`@B{Ӭ Q$Q?qAz_{@BT @_cTAA`R{_@ F[{@@S@RSA{è_AR@as{S[ @tT* 5c@`@`Xt @SA[B{ĨDB`RHB@@*SA[B{Ĩ_ F{SA!T!ѕ@94"94B@SA{è_ր@R հ{S*q5R@SA{Ĩ_*i 5"94B@aSA@{Ĩ{[*G RS4zOQcPCQ`@4k`TsB`"@9kT`@4`@q9`@[BcCSA{Ũ_44fqT'qiT~qT`"@95 `{S[cks3?`SAD[BcCkDsE@{Ȩ_7Ry @95?@`T?3@!R`??@?@*#Rd` 5@ 5@@5D?@@T*|***H4D@59*!@95qT*`4*A94A49"_qT q@T*oo@44"9|@"Ҁ@kTw҉`@>!Ұ`4@ 59X7 հ{S@SAD@{Ĩ_RzD@gxa_{S[cks@7`@9` 47@94!x!Q!?dqTR]QE@T@Es?`?aE?@"@4-@ @LqTSA[BcCkDsE{Ȩ_ @5 @hz84@7@sa@9?qTs?@Hн{S[E;@ ;@SA[B{Ũ_c@E`?`4F;@@5s@H<F{S[c#@@+@pTtSh58R"Fac@CcCC:`@@`@@08s@)#@SA[BcC{Ǩ_mn{S@!@!@? Te@`@@R@FFFR@SA{è_ Rq{SC@"@kTR@*SA{è_*4{S[*`4`@7@`? 4 R@*SA[B{Ȩ_'@7@@`vG@@G`?`4G@5@ H<{S*@5'@?qT0@@T*SA{è_?qAT@R?8@@R`9@@@@@`@944@@@@'@B !Q`?8@<@@@@@8{?q[SR@@@ R@(q`T4q!T@@@ ?P@RSA[B{Ũ_Q?xqTqlT38@#9'9w*@# ? qTqmTBKsQ@38@# ? P{$ASJ*AR@`@94.AC {S*RZ3# R9&qAT! @ ?RKQ1TSA{Ĩ_Rb@@?֟*qTR{S[R@95@SA[B{Ĩ_A?q30@u*@P{ Aa@aR ?` @@?s@R @{¨_a@ ?@5s@P{S Ba@aR ?s@R*SA{¨_a@ ?֔*s@ PlqRrAzT{@{_ R_{`B @ @{¨_a6@a ?s@P{4{_ B@ Հ!B _ր{a(@$@a @  @{¨_{S(@@Y@~B*SA@{¨_ְ{*S[c* R@8Dq^zT[BSAcC{Ũ_77@@@@qMz TRDD@t4@HDR9 d@G#*?4G@77 Ҽ+4Rs@ JLD "@PDRҥ@"@ "@"@_TTD@5@XDRa@a'@ ?ֵ@@c@'@`?@5a@!a@as@Rs*'@ ?4'@ ?d@G#*?5G@j`Ts@@c@"@'@`?5a@a@'@ ?'@ ? 4 /6Gs{*S*DRDDD@sR b@bs@*@?`4@SA{è_ֵ/6D!D_|S<rT"Q*B<_xq$IzT?4qTB$b7! 2_4qT?4qT*\qT|@!E x`"Q QB<<_|qBz)T?4qTR 8R_րRSA[B{è_{ShE[*`@5@@?@`@b@a @ u5R!E!@4R_R{è_{Rs@5'@6 A(62A 62A6262 E@E5@_q`T_E@ @?qT?qT5@!E!@9@!@!F (F@,F5@_q`T_0F@ @ @`F@5dF@qAThF@ @$@ @y! @y@*_RR F@5F@qT{FS@ @b@`&@@@?a@ ?b@~@SA{¨_ { F@5`@`BRFF!0@@j` @R{¨_{ 3Ga@?qTR}Ro` @R{¨_{StG@5xG`@1T@5RSA{¨_ RS5|GR,a @?1`TSa@?1`T" R`R { *5b~Sa>@G @@{¨ @@ @{¨_{!G!@ 3 @`4  @S@y @ <3{è_`&@d@?{S@5Rc@@@ @`X@kTReshMjbRCy"RkTF_|qTZ"xq( TM T@@?SA{ƨ_aRkTTA2RkTHT2RkT!2Rk`T*B<a2RkT!RkTRᢄRk T(TᡄRkTaRkTRaRkTRBRBRRBRRRRkThqTd@Xa$Y"x*!  @@? {!?@ABCDWXclosing %s efidiskdisk/efi/efidisk.copening %s not a efidiskno such devicem = %p, last block = %llx, block size = %x, io align = %x invalid buffer alignment %dinvalid sector size %dopening %s succeeded hd%diterating %s fd%dcd%dd%dwriting 0x%lx sectors at the sector 0x%llx to %s no media in `%s'failure writing sector 0x%llx to `%s'reading 0x%lx sectors at the sector 0x%llx from %s failure reading sector 0x%llx from `%s'%s,%sRSDTXSDTFACPD$ line size: %lld cachekern/arm64/cache.cI$ line size: %lld Unknown cache line size!invalid arch-dependent ELF magicreloc offset is out of the segment reloc_abs64 %p => 0x%016llx dlkern/arm64/dl.ctrampoline out of rangerelocation out of range reloc_prel32 %p => 0x%016llx reloc_got %p => 0x%016llx (0x%016llx) HI21 out of rangeADR_GOT_PAGE without matching LD64_GOT_LO12_NCLD64_GOT_LO12_NC without matching ADR_GOT_PAGE%lxrelocation 0x%s is not implemented yet reloc_xxxx64 %p %c= 0x%lx dlkern/arm64/dl_helper.crequested buffer size is too largeoverflow is detectednew read is position beyond the end of the written data%s: the command is not allowed when lockdown is enforcedone argument expected/%s%s (%s) unknown invalid argument(%s): Filesystem is %s. %s='%s' not an assignmentSet an environment variable.[ENVVAR=VALUE]setRemove an environment variable.ENVVARunsetList devices or files.[ARG]lsInsert a module.MODULEinsmod%s,%srootvariable `%s' isn't set%s read failed diskkern/disk.cClosing `%s'. Opening `%s'... disk `%s' not foundsector sizes of %d bytes aren't supported yetno such partitionOpening `%s' failed. attempt to read or write outside of partitionattempt to read or write outside of disk `%s'Read out of range: sector 0x%llx (%s). `%s' is already loadedmodule at %p, size 0x%lx moduleskern/dl.cELF header smaller than expectedinvalid arch-independent ELF magicthis ELF file is not of the right typeELF sections outside corerelocating to %p .modnameno module name found.module_licenseno license section in module %.63sLICENSE=GPLv3.moddepsLICENSE=GPLv3+LICENSE=GPLv2+incompatible license in module %.63s: %.63ssymbol `%s' not foundgrub_mod_initgrub_mod_finiunknown symbol type `%d'relocation without symbol tableflushing 0x%lx bytes at %p module name: %s init function: %p prefixvariable `%s' isn't set%s/arm64-efi/%s.modmismatched names.textdynamic_load_symbols %p Print infomation useful for GDB debugginggdbinfo/%sVendor(%pG)[%x: ]%02x set_virtual_address_map failedcould not set EFI variable `%s'section %d is last section; invalid. sectionskern/efi/efi.csection %d has bad magic %08x, should be %08x returning section info for section %d: "%s" malformed EFI Device Path node has length=%dmalformed EFI Device Path node has length=%lu/EndEntire /EndThis /EndUnknown(%x) /PCI(%x,%x)/PCCARD(%x)/MMap(%x,%llx,%llx)Hardware/Ctrl(%x)/UnknownHW(%x)/ACPI(%x,%x)/ACPI(%x,%s,%x)%s)/UnknownACPI(%x)/ATAPI(%x,%x,%x)/SCSI(%x,%x)/FibreChannel(%llx,%llx)/1394(%llx)/USB(%x,%x)/USBClass(%x,%x,%x,%x,%x)/I2O(%x)/MacAddr(%02x:%02x:%02x:%02x:%02x:%02x,%x)/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x)/IPv6(%x:%x:%x:%x:%x:%x:%x:%x,%x:%x:%x:%x:%x:%x:%x:%x,%u,%u,%x,%x)/InfiniBand(%x,%llx,%llx,%llx)/UART(%llu,%u,%x,%x)/Sata(%x,%x,%x)/Vlan(%u)Messaging/UnknownMessaging(%x)/HD(%u,%llx,%llx,%02x%02x%02x%02x%02x%02x%02x%02x,%x,%x)/CD(%u,%llx,%llx)Media/File((null))/File(%s)/Protocol(%pG)/UnknownMedia(%x)/BIOS(%x,%x,%s)/UnknownBIOS(%x)/UnknownType(%x,%x) found registered FDT @ %p linuxkern/efi/fdt.cnot found registered FDT mods%lxinvalid memory address (0x%s > 0x%s)out of memoryCould not malloc memory to remember EFI allocation. Exiting GRUB won't free all memory. couldn't retrieve memory mapmemory map buffer is too smallcouldn't terminate EFI servicesTrying to terminate EFI services again cannot get EFI memory map sizecannot allocate memory for memory mapcannot allocate memory for new memory maperror fetching memory map from EFIMemory starting at %p (%u pages) marked as free, but EFI would not allocatecould not allocate all requested memory: %lu pages still required after iterating EFI memory map%sprohibited by secure boot policyshim_lock protocol not foundbad shim signatureDisabledUNKNOWNEnabledSecureBootSetupModeMokSBStateUEFI Secure Boot state: %s efikern/efi/sb.cyshim_lockshim_lock_verifier0falsedisablenoerror: %s. assert: error stack overflow detected! missing `%c' symbolattempt to read past the end of fileattempt to seek outside of the fileinvalid file name `%s'beyond the total sectorsDetecting %s... fskern/fs.c/error: %s. %s detection failed. unknown filesystemblocklistylockdownlockdown_verifier%sroot(%s)%scmdpatharm64-efiprefixnormal%s%sdebugalloverflow is detectedunrecognized numberpositional arguments are not supportedunexpected formattoo many arguments(null)%s:%d:%s: invalid formatarguments types do not match Aborted. Press any key to exit.string too longunaligned pointer %pout of range pointer %pdouble free at %palloc magic is broken at %p: %lxnull in the ringfree magic is broken at %p: 0x%xout of memoryoverflow is detectedUsing memory for heap: start=%p, end=%p regionskern/mm.cCan we extend into region above? %p + %lx + %lx ?=? %p Yes: extending a region: (%p -> %p) -> (%p -> %p) Can we extend into region below? %p + %x + %lx + %lx ?=? %p No: considering a new region at %p of size %lx overflow is detectedpeek out of range%dsub-partition %s%d of (%s,%s) ends after parent. partitionkern/partition.cUnknown command `%s'. helpTry `help' for usage > grub rescue> Entering rescue mode... file: %s type: %d verifykern/verifiers.cverification requested but nobody cares: %sbig file signature isn't implemented yetpremature end of file %sstring: %s, type: %d verified_readcannot set text modeconsolegrub_abortgrub_acpi_find_fadtgrub_acpi_find_tablegrub_arch_sync_cachesgrub_byte_checksumgrub_callocgrub_command_listgrub_current_contextgrub_debug_enabledgrub_device_closegrub_device_iterategrub_device_opengrub_disk_cache_tablegrub_disk_closegrub_disk_dev_listgrub_disk_dev_registergrub_disk_dev_unregistergrub_disk_firmware_finigrub_disk_firmware_is_taintedgrub_disk_native_sectorsgrub_disk_opengrub_disk_readgrub_disk_write_weakgrub_divmod64grub_dl_headgrub_dl_loadgrub_dl_load_core_noinitgrub_dl_refgrub_dl_ref_countgrub_dl_unloadgrub_dl_unrefgrub_efi_allocate_any_pagesgrub_efi_allocate_fixedgrub_efi_allocate_pages_realgrub_efi_close_protocolgrub_efi_compare_device_pathsgrub_efi_duplicate_device_pathgrub_efi_find_configuration_tablegrub_efi_find_last_device_pathgrub_efi_find_mmap_sizegrub_efi_finish_boot_servicesgrub_efi_free_pagesgrub_efi_get_device_pathgrub_efi_get_filenamegrub_efi_get_firmware_fdtgrub_efi_get_loaded_imagegrub_efi_get_memory_mapgrub_efi_get_ram_basegrub_efi_get_securebootgrub_efi_get_variablegrub_efi_get_variable_with_attributesgrub_efi_image_handlegrub_efi_is_finishedgrub_efi_locate_handlegrub_efi_locate_protocolgrub_efi_net_configgrub_efi_open_protocolgrub_efi_print_device_pathgrub_efi_set_text_modegrub_efi_set_variablegrub_efi_set_variable_to_stringgrub_efi_set_variable_with_attributesgrub_efi_set_virtual_address_mapgrub_efi_stallgrub_efi_system_tablegrub_efidisk_get_device_handlegrub_efidisk_get_device_namegrub_env_exportgrub_env_getgrub_env_get_boolgrub_env_setgrub_env_unsetgrub_env_update_get_sortedgrub_err_printed_errorsgrub_errmsggrub_errnogrub_errorgrub_error_popgrub_error_pushgrub_exitgrub_fatalgrub_file_closegrub_file_filtersgrub_file_get_device_namegrub_file_opengrub_file_progress_hookgrub_file_readgrub_file_seekgrub_file_verifiersgrub_freegrub_fs_autoload_hookgrub_fs_listgrub_fs_probegrub_get_time_msgrub_getkeygrub_getkey_noblockgrub_getkeystatusgrub_gettextgrub_is_lockdowngrub_is_shim_lock_enabledgrub_isspacegrub_key_is_interruptgrub_list_pushgrub_list_removegrub_lockdowngrub_machine_acpi_get_rsdpv1grub_machine_acpi_get_rsdpv2grub_machine_finigrub_mallocgrub_memaligngrub_memcmpgrub_memmovegrub_memsetgrub_millisleepgrub_mm_add_region_fngrub_mm_basegrub_modbasegrub_named_list_findgrub_net_opengrub_net_poll_cards_idlegrub_parser_cmdline_stategrub_parser_split_cmdlinegrub_partition_get_namegrub_partition_iterategrub_partition_map_listgrub_partition_probegrub_print_errorgrub_printfgrub_printf_grub_printf_fmt_checkgrub_puts_grub_real_dprintfgrub_reallocgrub_rebootgrub_refreshgrub_register_command_lockdowngrub_register_command_priogrub_register_variable_hookgrub_snprintfgrub_strchrgrub_strcmpgrub_strcpygrub_strdupgrub_strlengrub_strncmpgrub_strndupgrub_strrchrgrub_strtoulgrub_strtoullgrub_strwordgrub_term_highlight_colorgrub_term_inputsgrub_term_inputs_disabledgrub_term_normal_colorgrub_term_outputsgrub_term_outputs_disabledgrub_term_poll_usbgrub_unregister_commandgrub_utf8_to_utf16_allocgrub_verify_stringgrub_vprintfgrub_vsnprintfgrub_xasprintfgrub_xputsgrub_xvasprintfgrub_zallocmemcmpmemcpymemmovememsetT(0![NYd9ir;0--'?Mqh"XNhEC@DTD)C7jSjkiSd\e[n6kTXhhp[YhfTj0rs X'hVMcxR@RhS\S`VW;Ua8UhT(|zpxx8wXy.yIamxP{p|{Tx~}8~)8LV lyxXv8H%4؆E<SOpO`*`\H@8|3@A`ZеtxHȹ| t,*5GHTT`m@-H,zP '4A,O\vhpPxX-)< IXإgrL----LICENSE=GPLv3+mimg`RELF0@@ {S*@@@SA{è_ց@szTR{  @`@ !@`@@T @{¨{ `@ @{¨_{S[c+ko; @9qT4z@9_qD@zTb@C@q@T@R!scaTq`T9`@@4?z9`4+@SA[BcCkD{ɨ_TqT @9qAT@@@!@G?ր4z9;@o@va@ @ qT`@` q!T@ R@@ @?@@@9qTa@BRT5@@4`@@ [Rb@+@SA[BcCkD@R{ɨ{S[c#c7@9qT@R**C7/@CBR *5`@@#@*SA[BcC{Ǩ_C**4C7@@@CkqAzT@RqBzAT@ {S5R@SA{è_*`@@74ha8ha8Q4*Qd4iqc0*dqHT!?kTeqHTdqHTkT@ @ RR*i*d{ @[U$&RS cksK@_TqT@`RSA[BcCkDsE{ɨ_֟T@_ITt3zQ&՚ѕ$՚C` @ ?cT3@?@@?ֈ@@5cB9 C@T@jB?AT@BKB|@FS@@!@@ 5xK98*RR not a directorytoo deep nesting of symlinksfile `%s' not foundinvalid file name `%s'not a regular fileblocksize too largeattempt to read past the end of fileLICENSE=GPLv3+fshelp`h8@HPX`)FU`l$x$dgrub_fshelp_find_filegrub_strdupgrub_fshelp_find_file_lookupgrub_disk_readgrub_errnogrub_memsetgrub_fshelp_read_filegrub_strcmpgrub_mallocgrub_errorgrub_free (`,``@T8X8`@PPTP`HdHHHHH X(X48@HPX-<AX (TX08<tk.symtab.strtab.shstrtab.rela.text.rodata.str1.1.data.module_license.bss.modname @@0 &25|;|KP   Y,ELF)@@ {(@@@R{_ {S[ckW@A @+a 6*[aRR8R@x?kAT@y@yA 4_k T"Q5+@SA[BcCkD{Ǩ_#d|jd_kT@@y@@(#`@("@#`4@ R%|$heT_k,T"Q4RA|haA@y?iTS @y@@s`T҃R@ R.TBS(@@3R2ѡ*a" |S!|S?T@X@R"6Ro"Q~~@o@A4@*&ؚB~! ٚ5sQK1!To@|˟bT@\@ T@`@SR@{@ @  @t@ǀ@@{B_  @0@E{S[5Q"R(@@PA( B BQE|@ $db@D 6dATKaf@` c"@c|!6T@6T!|T!TT`@a@!! ƚ@@5c@ Ra( aN@4b@ya*@eRA  ;@qmT[@B|@!`@aҡ @4@SA[B{Ǩ_cR {S?`*A@@5ar@y`R?kT`@<qTa*@A4aN@4b@y4(!R kT@ R@,qT@ R#`b@"RrjT@86cAy4`QjATrT$R*B kT@b aRtARs`H@5@SA{è_֡R {S@@@0@@@@SA@{è_ {CS@@@n@@y@y@yZ@yZ@yZ@yZ@ycZ@yBZ!Z<Z<<<<c<@B<!<@@@{ASB@_{S@@@/@@@SA@{è_ {S[ck@4`*@X7`@kT*ct:@@@`5@y 4[@ 4{A9 4"e@@5 `@[@{A9k"8A94_qTAR?4 RSA[BcCkD{֨_`@b"a@f@@4R@R_qaTaR_q"R@@4 R@y @q T(@qT @q@y {S@@'@'4@ ER$@#@@5@@h'@@!@T'@@@@SA{Ũ_{[S@'@@@V@@'@@T@-#%R@@*5'@@a4'@ (@X6@R*@ * 4@! '@@ l@!@* "@*SA[B{Ũ_{S@5`@b"a@@@5`*@@X6@RSA{¨_`@a@*?qTa`@j 8U@@`4 {S[*R`@4@929`@#@9 q 39 @`?SA[B{Ũ_ր @b"a@E@@a5!Ra`@4 { @@@ @{¨_ @ invalid extentsomething wrong with extentext2fs doesn't support quadruple indirect blocksnot an ext2 filesystemfilesystem has unsupported incompatible features%04x%04x-%04x-%04x-%04x-%04x%04x%04xdirectory is encryptedfile is encryptedsymlink is encryptedext2LICENSE=GPLv3+fshelpext208x(08@H08@H   x               < (#9HUdp{$x$dgrub_mod_initgrub_mod_finigrub_fshelp_find_filegrub_xasprintfgrub_memmovegrub_disk_readgrub_dl_refgrub_errnogrub_memsetgrub_fshelp_read_filegrub_fs_listgrub_mallocgrub_errorgrub_list_removegrub_freegrub_strndupgrub_dl_unrefgrub_list_push G00I0G$DP>\G`dlEGE>+<xDxdBx8|>((>(@HDh>lpEEG@\s88?I G@@8@@`0h0p?88<IG@@08@@\dl?HIG@  D  D    $  , Ed G @  x x ?          ;(  0  P GX G` Ix    @    ?   G G I  (  ,  0  8 ;`  d  l E = G  @   0  4  H  L  T Et D =   G @ AXG@JC(( F(  (08H@HH.symtab.strtab.shstrtab.rela.text.rodata.str1.1.rela.data.module_license.bss.moddeps.modname @0@` &2p :P5@`( @PU^ ;  )g`ELF @@ C@C{S[cks 4@@{@*SA[BcCkDsEC_GyJR_kT@`R*C"G9_qT!@qAT@R5R"!|@ *5W@4qT@C@ 5@C4SaRb@*sG Ԛ@ Ԛ@@@ F`?֠5A qaTR9AkT R@"b@R@@R@"Ԛ@@! @ no signatureGPT entry %d: start=%lld, length=%lld gptpartmap/gpt.cno valid GPT headerRead a valid GPT header no GPT partition map foundEFI PARTLICENSE=GPLv3+part_gpt (08@HPX`hh#;JUt$x$dgrub_mod_initgrub_mod_finigrub_partition_map_listgrub_disk_readgrub_errnogrub_gpt_partition_map_iterategrub_real_dprintfgrub_errorgrub_list_removegrub_list_pushgrub_memcmp8@D  ``((!PP8@0L!\@88HX@HX@H0 (08 @4H8PFXZ`shlpt| 4 .symtab.strtab.shstrtab.rela.text.rodata.rodata.str1.1.rela.data.module_license.bss.modname @@ &.2B(=@ 0 HX] 0   f (,gpt2)/boot/grub` (x08@HPX`hpx (08@H  `آУأx (08@HШبPX @08Pخ08@HPX`hp08@HPX`hpx`08@H (hا08@H (@h (08` (08@HPX`hpxȭЭ ȯPP (X`h(08x`У`0HPXX`hpxh`hpxȣУأ (08@HPX`hpx`ئx08xȭЭح`px`hpx (@ȣУ08@HPX`hpxpx0`h8@HPةxHhج`hpxȮЮ0`8 (08@ȧX (08@HPX`hpPX@HxPX`h8أx `hp৸ (08(H (08@hpȥH`hpȭ(08`hpxȡСHPXpأ@px@HPXx0ЪPPX`ȬЬ`hpح8Pȯ x8@HPXxȤФؤऐإ(0Xا0@HX`hpxȨب (8@PXhpȩЩ(0@HX`pxЪت 08HP`hxȫث (8@PXhpȬЬ(0@HX`pxЭح 08HP`hxȮخ (8@PXhpȯЯ (0@HX`pxРؠ 08HP`hxȡء (8@PXhpȢТ(0@HX`pxУأ 08HP`hxȤؤ (8@PXhpȥХ(0@HX`pxЦئ 08HP`hxȧا (8@PXhpȨШpE3Aip) ǫ|g|gSƫ|g <BkeCRSLA0iJ6//mntu,8K@W@_L ƫ|g    *y$pW{b;lR b{b{bz {b  LL  {bq  {bV {bX{bam (H !ilV" q#! q!{bE25{bEF{bEjC@{b {bA {bB 6zm+ Ver% ;! h R` 1.,Hs1 %8 {bp  &   J@  \ fN  z    Q 6S `  ` `  ` `  ` `  ` `  ` `   ` `   ` `   ` `   ` `   ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `   `! !`!!! ! !`" "`""" " "`# #`### # #`$ $`$$$ $ $`% %`%%% % %`& &`&&& & &`' '`''' ' '`( (`((( ( (`) )`))) ) )`* *`*** * *`+ +`+++ + +`, ,`,,, , ,`- -`--- - -`. .`... . .`/ /`/// / /`0 0`000 0 0`1 1`111 1 1`2 2`222 2 2`3 3`333 3 3`4 4`444 4 4`5 5`555 5 5`6 6`666 6 6`7 7`777 7 7`8 8`888 8 8`9 9`999 9 9`: :`::: : :`; ;`;;; ; ;`< <`<<< < <`= =`=== = =`> >`>>> > >`? ?`??? ? ?`@ @`@@@ @ @`A A`AAA A A`B B`BBB B B`C C`CCC C C`D D`DDD D D`E E`EEE E E`F F`FFF F F`G G`GGG G G`H H`HHH H H`I I`III I I`J J`JJJ J J`K K`KKK K K`L L`LLL L L`M M`MMM M M`N N`NNN N N`O O`OOO O O`P P`PPP P P`Q Q`QQQ Q Q`R R`RRR R R`S S`SSS S S`T T`TTT T T`U U`UUU U U`V V`VVV V V`W W`WWW W W`X X`XXX X X`Y Y`YYY Y Y`Z Z`ZZZ Z Z`[ [`[[[ [ [`\ \`\\\ \ \`] ]`]]] ] ]`^ ^`^^^ ^ ^`_ _`___ _ _`` ````` ` ``a a`aaa a a`b b`bbb b b`c c`ccc c c`d d`ddd d d`e e`eee e e`f f`fff f f`g g`ggg g g`h h`hhh h h`i i`iii i i`j j`jjj j j`k k`kkk k k`l l`lll l l`m m`mmm m m`n n`nnn n n`o o`ooo o o`p p`ppp p p`q q`qqq q q`r r`rrr r r`s s`sss s s`t t`ttt t t`u u`uuu u u`v v`vvv v v`w w`www w w`x x`xxx x x`y y`yyy y y`z z`zzz z z`{ {`{{{ { {`| |`||| | |`} }`}}} } }`~ ~`~~~ ~ ~` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `   ` `à  ` `Ġ  ` `Š  ` `Ơ  ` `Ǡ  ` `Ƞ  ` `ɠ  ` `ʠ  ` `ˠ  ` `̠  ` `͠  ` `Π  ` `Ϡ  ` `Р  ` `Ѡ  ` `Ҡ  ` `Ӡ  ` `Ԡ  ` `ՠ  ` `֠  ` `נ  ` `ؠ  ` `٠  ` `ڠ  ` `۠  ` `ܠ  ` `ݠ  ` `ޠ  ` `ߠ  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  `!a!!a!a!!a!a!!a!a!!a??O?ƫ|gƫ|gƫ|gOA|gʫ|gʫ|g G @KL@KLNƫ|gO99M0ƫ|gƫ|gƫ|gQ? (ƫ|gƫ|gƫ|gƫ|g@   $ ~pƫ|g8qvA0|gƫ|gƫ|g   ;ƫ|gA |g|g|g  <@NT ;H{H{ǫ|g\A|g|g|g KM gmffXXǫ|g\ǫ|gǫ|gǫ|g  & ^_^_fǫ|g^_A|gʫ|gʫ|g 5iPT Gǫ|gjaʫ|gǫ|gErg &< ޕjafǫ|gjaʫ|gǫ|gErg &\> |jaǫ|gja ʫ|gǫ|gErg &n)"_. _jaǫ|gja ʫ|gǫ|gErg &* jaǫ|gja ǫ|gǫ|gErg &Ngd% )UjaYǫ|gjaA|gʫ|gʫ|g  'J NNǫ|gfA|gǫ|gǫ|g */ Bffǫ|gfA|gǫ|gǫ|g ] ffH{ǫ|gfA|gǫ|gǫ|g 9 ffǫ|gfA|g|g|g _?^z "EE|g|gǫ|gǫ|g &Æ$ Sqff/ǫ|gf|g|g|g |9 J1J1|gA|gʫ|gʫ|g #$U[ v,NNʫ|gI xgɫ|gxg &i aɫ|gOxgɫ|gxg &%`/ ݛɫ|g|g|g|g +f )|gxgɫ|gxg & ɫ|gɫ|gɫ|gɫ|g../proc/mountsQT i^ɫ|gxgɫ|gxg &qo, Dɫ|g|g|g|g|g* u QH{H{Zb|gt|g|g|g/etc/init.d/devfsǷ9 ݇ |g H xgɫ|gxg &h,O ɫ|g 2xgɫ|gxg  &Tf|U zɫ|gEf|g̫|g̫|gg ://Bۖ roro̫|gro&xgɫ|gxg ,&2 ɫ|g5xgɫ|gxg -&O[ Aɫ|gA|gʫ|gʫ|g "LU ʫ|g\gʫ|g\g .&a/ Tsʫ|gA|g̫|g̫|g xBW YIkIkXXʫ|g\gʫ|g\g 2&-B-t , ʫ|gA|g|g|g {"j qʫ|gA|gʫ|gʫ|g `1T+ Xʫ|gA|gʫ|gʫ|g %ED {ʫ|gA|gʫ|gʫ|g A\ .ʫ|gA|gʫ|gʫ|g [ 4ʫ|gA|gʫ|gʫ|g <^ 9ʫ|gA|gʫ|gʫ|g clа (ʫ|g\gʫ|g\g 3&Mza qʫ|g\gʫ|g\g 4&6Q Bʫ|gA|gʫ|gʫ|g ; [zʫ|g\gʫ|g\g 5&fQIO Mʫ|g|g|g|g Si 0Zb7X|gZb#|g|g|g t^ |gT|g|g|g  jj ש|gEe|g̫|g̫|gf 7i_O dxhf̫|gfxgʫ|gxg :&4E- zNʫ|gIA|gʫ|gʫ|g 3" NNGʫ|gI |gʫ|gxg ;&;xTR  N"dʫ|gIX|gʫ|gxg =&h NIkʫ|gIz|gʫ|gxg @&, DNpʫ|gI[|gʫ|gxg A&-1S %N:tʫ|gIA|gʫ|gʫ|g  * =(IIXXʫ|gI~xg|g|g =|$ q''ʫ|gIA|gʫ|gʫ|g  Lc/ IIʫ|gIA|gʫ|gʫ|g  Bd&y ܯIIXXʫ|gIA|gʫ|gʫ|g  zO 4QIIXXʫ|gIA|gʫ|gʫ|g  MH5 :IIXXʫ|gIA|gʫ|gʫ|g I6 ÚIIXXʫ|gIA|gʫ|gʫ|g U| x KuIIXXʫ|gIA|gʫ|gʫ|g P_2^U bIIXXʫ|gIA|gʫ|gʫ|g E/hY ރNNʫ|gIaxgʫ|gxg C&r JNʫ|gIxgʫ|gxg D&jBY Nʫ|gIxgʫ|gxg E&܃ Nʫ|gIA|gʫ|gʫ|g Դz( g4[4[XXʫ|gIA|gʫ|gʫ|g "݇ B=@KL@KLV!ʫ|g@KLmA|gʫ|gʫ|g AdS/ (NrSNrSʫ|g@KLA|gʫ|gʫ|g  ы@KL@KLʫ|g@KLA|gʫ|gʫ|g  J@KL@KLʫ|g@KL ʫ|gʫ|gʫ|g../run/lock,o N@KL@KLʫ|g@KLA|g̫|g̫|g ;T3 ffʫ|g@KLA|gʫ|gʫ|g !a o@KL@KLʫ|g@KLA|gʫ|gʫ|g Wey U@KL@KLʫ|g@KL̫|gʫ|gʫ|g../run NN\ʫ|gNA|gʫ|gʫ|g 7蛚b >2NNʫ|gNA|gʫ|gʫ|g ڜ NNʫ|gNʫ|gʫ|gʫ|g../../../etc/crontabs'Cʸ `NNNʫ|gNʫ|gʫ|gʫ|g../mail/a ^NNNʫ|gNC|gʫ|gʫ|g  QNNʫ|gNA |g֫|g֫|gO d:A 1ʫ|g^gʫ|g^g S&Y~> 4ʫ|g'^gʫ|g^g T&Ugּ ʫ|g\^gʫ|g^g U&0^؈ ʫ|gu^gʫ|g^g V&=3 Uʫ|g:^gʫ|g^g W&HN8 .ʫ|gY^gʫ|g^g Y&y>٠^ Iʫ|g^gʫ|g^g Z&dy ʫ|g^gʫ|g^g [&Z„ v;ʫ|g)^gʫ|g^g \&̠<* jʫ|g{^gʫ|g^g ]&,R[ ʫ|g^gʫ|g^g ^&U~ 7ʫ|g^gʫ|g^g _& s ʫ|g@^gʫ|g^g `&0 29ʫ|gy^gʫ|g^g b&s ʫ|g^gʫ|g^g c&Dʈ ʫ|g^gʫ|g^g d& ʫ|gY^gʫ|g^g e&7T9 eʫ|gA|g֫|g֫|g  !~.BH c\~\~XXʫ|g*^gʫ|g^g f&N} aʫ|g^gʫ|g^g  g& ʫ|g~^gʫ|g^g m&۰ gʫ|gV!^gʫ|g^g q&S^ ʫ|gV!^gʫ|g^g s&c ʫ|gV!^gʫ|g^g w&J[ $H gʫ|gV!^gʫ|g^g x&zG ʫ|gV! ^gʫ|g^g y&}:I jʫ|gV!ʫ|gʫ|gʫ|g/usr/libexec/rc/sh/functions.shuN DV!V!ʫ|gV!_^gʫ|g^g }&xT ʫ|gV! ^gʫ|g^g ~&U#Qq hʫ|gV!4^gʫ|g^g &b 'z tʫ|gV!J^gʫ|g^g &2rg ʫ|gV! ^gʫ|g^g &;G ʫ|gV!y^gʫ|g^g &Emc cʫ|gV!^gʫ|g^g &?| a ʫ|gV!k^gʫ|g^g &.4 `ʫ|gV!^gʫ|g^g &ci ʫ|gV!^gʫ|g^g &5>* ~Tʫ|gV!$^gʫ|g^g &`t ʫ|gV!^gʫ|g^g & ʫ|gV!^gʫ|g^g &  ʫ|gV!^gʫ|g^g & %G| ~Tʫ|gV!6^gʫ|g^g & L pʫ|gV!^gʫ|g^g &PA Vʫ|gV!^gʫ|g^g &9z vʫ|gV!^gʫ|g^g &$ox @~ʫ|gV!^gʫ|g^g &^f DIʫ|gV!^^gʫ|g^g &> Uʫ|gV!\^gʫ|g^g &B:Q ʫ|gV!g^gʫ|g^g &0`.Di ,4[ʫ|gV!^gʫ|g^g &Dzg hG4[ʫ|gV!g^gʫ|g^g &tuKC z4[ʫ|gV!^gʫ|g^g &ړdSO k4[ʫ|gV!^gʫ|g^g && 4[ʫ|gV!^gʫ|g^g &%0 p4[ʫ|gV!*^gʫ|g^g &$X> S4[ʫ|gV!#^gʫ|g^g & TRx `/4[ʫ|gV! ^gʫ|g^g &#'3Sw H4[ʫ|gV!^gʫ|g^g &엺 4[ʫ|gV!^gʫ|g^g &T{GD{ h@4[ʫ|gA|gʫ|gʫ|g &0.yx 4[4[XXʫ|g^gʫ|g^g &+ 4[ʫ|g+^gʫ|g^g &8Ζ o4[ʫ|g4^gʫ|g^g  &!Qh ʫ|gA|gʫ|gʫ|g '4j$yK Uʫ|gA|g|g|g (E| H\Z\ZXXʫ|gA|g|g|g )زo! ffXXʫ|gA|gʫ|gʫ|g *_/ bUʫ|gA|g|g|g +D%tS lp89p89Uʫ|gA|g|g|g ,>1% vvUʫ|g^gʫ|g^g &  4[ʫ|g|gʫ|g Kf  '~Lk nH{ʫ|gn\gʫ|g\g 'ĺG szʫ|gzA|gʫ|gʫ|g -]DG? bXXʫ|gl,Yugʫ|g,Yug '{ n ;&ʫ|gl%|g˫|g%|g 'ܗ e˫|g6%|g˫|g%|g 'GZ l}˫|g|g˫|g˫|g../usr/lib/os-releaseaזx T*˫|gA|g˫|g˫|g .t3م JI˫|ga%|g˫|g%|g 'P̒ }˫|gA|g˫|g˫|g / <NrSNrSXX˫|g˫|g˫|g˫|gcerts/ca-certificates.crt ˫|gA|g˫|g˫|g 0G+ :XX˫|g3Pxg˫|gPxg 3S]+@ ˫|gA|g˫|g˫|g 1; u ˫|g˫|g˫|g˫|g/etc/ssl/cert.pemAϵZ \˫|g˫|g˫|g˫|g/etc/ssl/certsEF/z N˫|g~= &p ˫|g !\g˫|g\g 'NfY0  ˫|g 1\g˫|g\g ',c  ˫|g \g˫|g\g '%.\  ˫|g $\g˫|g\g 's#W` t ˫|g ;\g˫|g\g 'T  { ˫|g A|g̫|g̫|g 6{έ WT*T*̫|gF#3g̫|g3g '_g PT*̫|gF#y|g|g|g*  <K "UZbZbZb|gZbAe|g֫|g̫|gf 8x% GԀIk̫|gxhg̫|gg '-˜ ތIk̫|gxhg̫|gg 'Om -Ik̫|gxhAe|g֫|g̫|gf 9s ԀIk̫|gIkg̫|gg lyB< }Ik̫|gIk]g̫|gg '=? 5w̫|g5wog̫|gg '"Dž 5w̫|g5w|g|g|g|g >-0 Z$H{H{Zb|gD&g̫|g&g 'c#' v&4̫|gro7&g̫|g&g ',@1 4[̫|g4[g̫|gg 'Gq\[ Ե̫|gBA|g|g|g ;Z' XX̫|gB۸fͫ|g۸f 'j% 2Nͫ|g -۸fͫ|g۸f ')5 S Nͫ|g A|g|g|g >]? =< < ͫ|g5wA|g|g|g  ?~ ͫ|g5wQPgͫ|gQPg '}``l \~ͫ|g5wQPgͫ|gQPg '3a, `\~ͫ|g5w|gͫ|gQPg '2bu l\~~_@ͫ|g5wrͫ|gͫ|gQPg 'v> \~V!ͫ|g5w\|gͫ|gQPg (%.P\ \~Nͫ|g5wQPgͫ|gQPg  LǬa 9R\~ͫ|g5w QPgͫ|gQPg  L0z*L q\~ͫ|g5wbQPgͫ|gQPg  L/7H F\~ͫ|gy%|gͫ|gQPg LZ. \~Nͫ|gyQPgͫ|gQPg L I\~ͫ|gyQPgͫ|gQPg LV8< G\~ͫ|gyQPgͫ|gQPg L1IL a\~ͫ|gyiQPgͫ|gQPg ĹĦ U\~ͫ|gy QPgͫ|gQPg LR \~ͫ|gy!QPgͫ|gQPg L] \~ͫ|gy QPgͫ|gQPg LۥMEi [\~ͫ|gy#|gͫ|gQPg LpM \~xhͫ|gyOQPgͫ|gQPg L9+Ds $\~ͫ|gy@QPgͫ|gQPg L!ڊջ y%\~ͫ|gy@|gͫ|gQPg L&XJ d\~7Xͫ|gyZQPgͫ|gQPg LNJg \~ͫ|gy QPgͫ|gQPg L `\~ͫ|gyQPgͫ|gQPg Lܚe \~ͫ|gyQPgͫ|gQPg L`." \~ͫ|gyQPgͫ|gQPg L,1,Tix ?9\~ͫ|gy|gͫ|gQPg LmWBp ^\~@KLͫ|gy|gͫ|gQPg  LpMP :\~\ͫ|gy QPgͫ|gQPg !L E\~ͫ|gyQPgͫ|gQPg "L! \~ͫ|gy,|gͫ|gQPg #L(mPlc !\~,mͫ|gyQPgͫ|gQPg $LZ`¢ f[\~ͫ|gyQPgͫ|gQPg %L\,6 }\~ͫ|gyjQPgͫ|gQPg &Lg \~ͫ|gyQPgͫ|gQPg 'L&ӌ YE\~ͫ|gy3QPgͫ|gQPg (L4w +L\~ͫ|gy:|gͫ|gQPg )Lө \~:tͫ|gyQPgͫ|gQPg *L hm. #\~ͫ|gy|gͫ|gQPg +LAet \~ ͫ|gyQPgͫ|gQPg ,L1 ^\~ͫ|gy|gͫ|gQPg -L 1 sG\~Nͫ|gy|gͫ|gQPg .L.KZ \~\~ͫ|gyQPgͫ|gQPg /L\ \~ͫ|gy4|gͫ|gQPg 0LǗAO0 \~\~ͫ|gyQPgͫ|gQPg 1L)Lf \~ͫ|gyQPgͫ|gQPg 2L# c A\~ͫ|gy|gͫ|gQPg 3L@. %\~ ͫ|gy|gͫ|gQPg 4LL< >\~lͫ|gy'QPgͫ|gQPg 5LP27e ɨ\~ͫ|gy+QPgͫ|gQPg 6L/zU \~ͫ|gH{$QPgͫ|gQPg 7Ly݀Ex \~ͫ|gH{QPgͫ|gQPg 8L.K \~ͫ|gH{?QPgͫ|gQPg 9Le %\~ͫ|gH{QPgͫ|gQPg :LʐȤn \~ͫ|gH{QPgͫ|gQPg ;Lׅ \~ͫ|gH{UQPgͫ|gQPg ի|g 12gի|g12g M hի|g 12gի|g12g Mގ$, ի|g12gի|g12g M#*zG $ի|gA|gի|gի|g ?Rz rի|gV! 12gի|g12g MiuC ˆի|gV! 12gի|g12g M=/ ի|gV!X 12gի|g12g M[ Xի|gV!q 12gի|g12g M9&^r vի|gV! 12gի|g12g M_pr ի|gV! 12gի|g12g MVRs,Y rի|gV! 12gի|g12g MH<X pի|gV!A|gի|gի|g ?tF {ի|gV!12gի|g12g M@ ի|gV!12gի|g12g MEH_ ի|gV!ի|gի|gի|gvt220źe V!V!ի|gV!o12gի|g12g MnYz# ի|gV!G12gի|g12g M= zի|gFOgի|gOg Vʽ 6zի|gPA|gի|gի|g ?ZR 7PPի|gP Ogի|gOg 1 'B ի|gA|gի|gի|g ? gt ի|gOg֫|gOg 5=[L qի|gjOg֫|gOg 6_/{c H֫|gA|g|g|g &F\ ҘNrSNrS|gNrSOg֫|gOg P,8 [\~֫|g\~Og֫|gOg Ģ 1%\~֫|g\~Og֫|gOg t) p\~֫|g\~Og֫|gOg pC$sc +\~֫|g\~|g|g|g|g ²MЯ H{H{ |g t|g|g|g ʝ!EV 0|gA|g|g|g `'9 UU|g"|g|gug  hό* mk*u|g|-|g|gug  hN%x k*u(|g78|g|gug iu 1*u4[|g0|g|gug  i Y^ l*ul|g|g|gug ib- o*uz|g|g|gug i[C߰ r*uԀ|gug|gug  i/εl ڪ*u|g|g|gug Ei) U2|g_|g|gug Fiq irU |g|g|g|g h x[ ff|gf#|g|g|g Ȫ O`..f|g./|g|g|g \FsGj g< < Ik|g_|g|g|g hv& R< < l|g< B|g|g|g [B /J1J1|gJ1|g|g|g|g K H{H{|gt|g|g|g/etc/init.d/dmesgP, B^ X |g |g|g|g/etc/init.d/hwdriverso0Q YNNN|gN|g|g|g/etc/init.d/mdev,2]U [vvv|gv|g|g|g/etc/init.d/acpidu *u*u*u|g*u|g|g|g/etc/init.d/bootmisc  b|g|g|g|g/etc/init.d/hostnameB p999|g9|g|g|g/etc/init.d/hwclockot[ 888|g8|g|g|g/etc/init.d/modules+$2 Շ|g|g|g|g/etc/init.d/swap~o B`!`!`!|g`!|g|g|g/etc/init.d/sysctl CF#F#F#|gF#|g|g|g/etc/init.d/syslogW d %&%&%&|g%&|g|g|g/etc/init.d/chronyd T*T*T*|gT*|g|g|g/etc/init.d/networkingǴ4 GIL-L-L-|gL-|g|g|g/etc/init.d/sshdA) |///|g/|g|g|g/etc/init.d/killprocsNn #s4s4s4|gs4|g|g|g/etc/init.d/mount-ro /666|g6|g|g|g/etc/init.d/savecacheɁo. Wp89p89p89|gp89k|g|g|g Vq .NNQ|gN|g|g|g/etc/init.d/tiny-cloud-boot#b! 1\Z\Z\Z|g\Z|g|g|g/etc/init.d/tiny-cloud-earlyA5z v\\\|g\|g|g|g/etc/init.d/tiny-cloud-mainx jajaja|gja|g|g|g/etc/init.d/tiny-cloud-finalu3So ]fff|gf . ..  lost+found boot etc tmp dev  lib var proc bin sbin usrN homeRmediaV mntW optX rootY runQ srv[sys ޣa: ... K ޖz7H ޖz7H ޖz7H ޖz7H ޖz7H ޖz7H ޖz7H ޖz7H ޖz7H ޖz7H ޖz7H  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ...{f: z . .. repositories keysiworld archprotected_paths.d ޖN' . ..<3alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub<3alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub<3alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub<3alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub3alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub P1 . ..cacheRemptyS libUlocalZ@runW logX mailYLopt[spool_ tmpVlock ޹F . .. apkmisc NLJ ... ޷ ... H* . L..+busybox ޤN, . L..-acpidopenrc|chrony . . ../ if-down.d0if-post-down.d1 if-post-up.d2 if-pre-down.d3 if-pre-up.d4if-up.d^` interfaces 9/ .... Z 0 .... M1 .... "H2 .... oh3 .... +V4 ..L..5dad 7 . L..8 udhcpc.conf ލZ . L..=root ގ > . ..@blacklist.confA i386.confBkms.conf? aliases.conf { C . .. ޼_E . .. sj F . ..G15minHdailyIhourlyJmonthlyKweekly ޥ楨G .F.. y?7R ... w\S . ..T miscchrony'dhcpcdXcloud LT .S.. ךU ... ҪW . ..<chrony `nX ... ޴ęY ... ޚ[ . ..\Lcron^mail Ol\ .[L..]crontabs ޽05_ ... A,` . ..{¶Ve ޵fhwclockjmodulesl net-onlineo staticrouteloadkmaprdatesyslogwatchdogV@sshdcrond(chronydabootmisccdevfs@k@5.apk.d1e36cff4304bf69c0323b664a1a886920a08c637e262e89l@5.apk.8808ffa01785d84aa9b99bfab19fcb9a196d979625db3780m@5.apk.7a252540ebef811a6a4b3bb66912fd6d42f150a44acd7d13@ot5.apk.923c6ff52cf0985688a735c527739a0380c979eb728c66dd ޱRnyimodloopk mtabmnetmountnseedrngddmesge fsckg killprocsh localmountp swapqswclockntpd klogdb consolefont fr . ..{:bH% }y firstboot}hwclock~ hwdriversmodules save-keymapssave-termencodingsysfsloadkmapsyslog8crondt4bootmisc@@t5.apk.518b5014c485e8a380065146b0096864d6ff464141688bf2 K{ functions.sh|hostnameloopback machine-idmodloopmount-roosclockprocfsrunsvdirseedrng swapswclock0ntpd u ~netmount networkingnumlock root termencodingYtiny-cloud-bootZ(tiny-cloud-earlydhcpcducgroupsv consolefontzfscksbinfmtbH@.[1@K֘@S@8D @`0@t%@@h @}@H#ր@P@jM@' W3 s6-svscan savecache staticroutewdevfsxdmesg killprocs mtab net-onlinesysctl sysfsconfklogdrdatewatchdogchronydLmdevacpidW sshd[tiny-cloud-final\Htiny-cloud-mainlocal$ localmount90@df @(@@@Ew$p@.q,,tj4P@:@JF@ZP@ modprobe.d6 securetty&servicesalpine-releaseCmodules-load.dlocal.d:profile apkdoas.d lbuFperiodicssl1.1 mdev.conf os-releaseshadow e2scrub.conf mke2fs.conf nvme_grub.d ޴ . ..T features.dl mkinitfs.conf 5`): ...{n:Fc~|`? ? dhcp.modules ext2.modules f2fs.modules https.files jfs.modules keymap.files kms.modules lvm.modules nfit.modules nvme.modules  raid.modulesvirtio.moduleswireguard.filesxenpci.modules xfs.files xfs.modules zfs.files 3i[ ena.modulesfloppy.modules gfs2.modulesdasd_mod.modules mmc.modules nbd.filesbootchart.filescryptkey.filescryptsetup.files nbd.modules network.filesnetwork.modules ocfs2.modules phy.modules squashfs.modules usb.modules zfcp.modulesjgpio_pl061.modulesk` gve.modules r& zfs.modules btrfs.files btrfs.modules dhcp.files4 9p.modules @i0@ @.P@+@@J\, @n:`@j>p@Fc@d@<Ժe@v~>g@4+vh@i ނZy reiserfs.modules  scsi.moduleswireguard.modules base.files cdrom.modulescryptsetup.modules ext3.modules ^ ext4.modules lvm.files qeth.modules  raid.filesp ubifs.modules aoe.modules ata.modules base.modulescramfs.modules p@i @ @.@@"@+0@J\,@ L8@n:P@R<@j>`@?@?@#D }W 8( ,Thundercomm Dragonboard 845c2thundercomm,db845cqcom,sdm845=UIaliases!W/soc@0/geniqup@8c0000/i2c@880000!\/soc@0/geniqup@8c0000/i2c@884000!a/soc@0/geniqup@8c0000/i2c@888000!f/soc@0/geniqup@8c0000/i2c@88c000!k/soc@0/geniqup@8c0000/i2c@890000!p/soc@0/geniqup@8c0000/i2c@894000!u/soc@0/geniqup@8c0000/i2c@898000!z/soc@0/geniqup@8c0000/i2c@89c000!/soc@0/geniqup@ac0000/i2c@a80000!/soc@0/geniqup@ac0000/i2c@a84000!/soc@0/geniqup@ac0000/i2c@a88000!/soc@0/geniqup@ac0000/i2c@a8c000!/soc@0/geniqup@ac0000/i2c@a90000!/soc@0/geniqup@ac0000/i2c@a94000!/soc@0/geniqup@ac0000/i2c@a98000!/soc@0/geniqup@ac0000/i2c@a9c000!/soc@0/geniqup@8c0000/spi@880000!/soc@0/geniqup@8c0000/spi@884000!/soc@0/geniqup@8c0000/spi@888000!/soc@0/geniqup@8c0000/spi@88c000!/soc@0/geniqup@8c0000/spi@890000!/soc@0/geniqup@8c0000/spi@894000!/soc@0/geniqup@8c0000/spi@898000!/soc@0/geniqup@8c0000/spi@89c000!/soc@0/geniqup@ac0000/spi@a80000!/soc@0/geniqup@ac0000/spi@a84000!/soc@0/geniqup@ac0000/spi@a88000!/soc@0/geniqup@ac0000/spi@a8c000!/soc@0/geniqup@ac0000/spi@a90000!/soc@0/geniqup@ac0000/spi@a94000!/soc@0/geniqup@ac0000/spi@a98000!/soc@0/geniqup@ac0000/spi@a9c000$/soc@0/geniqup@ac0000/serial@a84000$ /soc@0/geniqup@8c0000/serial@898000chosenserial0:115200n8clocksxo-board 2fixed-clock,I opp-403200000X 5I>opp-4800000008 5bpopp-576000000"U 5bpopp-652800000& 5u0opp-748800000,opp-82560000015opp-9024000005Ɉ`opp-979200000:]hopp-1056000000>Hopp-1132800000C(!b@opp-1228800000I>!bopp-1324800000N!b opp-1420800000T.opp-1516800000Zh.'Popp-1612800000`!`>'Popp-1689600000d@>>opp-1766400000iI >V0opp-table-cpu42operating-points-v2Oopp-300000000 5I>opp-403200000X 5I>opp-4800000008I>opp-576000000"UI>opp-652800000&I>opp-748800000,I>opp-82560000015!bopp-9024000005Ɉ!bopp-979200000:]h!bopp-1056000000>H.opp-1132800000C(.opp-1209600000H>opp-1286400000L>opp-1363200000Q@>opp-1459200000V>opp-1536000000[Ropp-1612800000`!`Ropp-1689600000d@R'Popp-1766400000iI ^'Popp-1843200000m^'Popp-1920000000rpn'Popp-1996800000wn>opp-2092800000|n>opp-2169600000Qxn>opp-2246400000Xn>opp-2323200000y8n>opp-2400000000 nV0opp-2476800000nV0opp-25536000004nV0opp-2649600000nV0opp-2745600000nopp-2803200000pnopp-table-dsi2operating-points-v2Oopp-19200000$!opp-180000000 "opp-275000000d*#opp-328580000$opp-358000000V%opp-table-qspi2operating-points-v2Oopp-19200000$!opp-100000000"opp-150000000р#opp-300000000%opp-table-qup2operating-points-v2O=opp-50000000!opp-75000000xh"opp-100000000#opp-128000000 %pmu2arm,armv8-pmuv3 psci 2arm,psci-1.0usmcpower-domain-cpu0&'Opower-domain-cpu1&'O power-domain-cpu2&'O power-domain-cpu3&'Opower-domain-cpu4&(Opower-domain-cpu5&(Opower-domain-cpu6&(Opower-domain-cpu7&(Opower-domain-cluster)O&reserved-memory hyp-mem@85700000cp`xbl-mem@85e00000caop-mem@85fc0000caop-cmd-db-mem@85fe0000 2qcom,cmd-dbcsmem@86000000 2qcom,smemc  *tz@86200000c rmtfs@88f000002qcom,rmtfs-memc (7qseecom@8ab00000c@camera-mem@8bf00000cPipa-fw@8c400000c@ipa-gsi@8c410000cAPgpu@8c415000cAP Oadsp@8c500000cPO-wlan-msa@8df00000cOmpss@8e000000cOvenus@95800000cPOcdsp@95d00000cO3mba@96500000cP Oslpi@96700000cp@Ospss@97b00000cmpss-metadataA N@Ofastrpc2shared-dma-poolAS@N]Oframebuffer@9d400000c@@Oremoteproc-adsp2qcom,sdm845-adsp-pas@f++++#zwdogfatalreadyhandoverstop-ackg,xo-./stopokayqcom/sdm845/adsp.mbnglink-edge lpass0apr 2qcom,apr-v2apr_audio_svc &service@3c 2qcom,q6core3avs/audiomsm/adsp/audio_pdservice@4 2qcom,q6afec3avs/audiomsm/adsp/audio_pddais2qcom,q6afe-dais JOdai@22c[service@7 2qcom,q6asmc3avs/audiomsm/adsp/audio_pddais2qcom,q6asm-dais J i1!Odai@0cdai@1cdai@2cdai@3cpzservice@8 2qcom,q6admc3avs/audiomsm/adsp/audio_pdrouting2qcom,q6adm-routingJOfastrpc 2qcom,fastrpcfastrpcglink-apps-dspadsp compute-cb@32qcom,fastrpc-compute-cbc i1#compute-cb@42qcom,fastrpc-compute-cbc i1$remoteproc-cdsp2qcom,sdm845-cdsp-pas@fB2222#zwdogfatalreadyhandoverstop-ackg,xo3.4stopokayqcom/sdm845/cdsp.mbnglink-edge >turing0fastrpc 2qcom,fastrpcfastrpcglink-apps-dspcdsp compute-cb@12qcom,fastrpc-compute-cbc i10compute-cb@22qcom,fastrpc-compute-cbc i10compute-cb@32qcom,fastrpc-compute-cbc i10compute-cb@42qcom,fastrpc-compute-cbc i10compute-cb@52qcom,fastrpc-compute-cbc i10compute-cb@62qcom,fastrpc-compute-cbc i10compute-cb@72qcom,fastrpc-compute-cbc i10compute-cb@82qcom,fastrpc-compute-cbc i10smp2p-cdsp 2qcom,smp2p^ @0master-kernelmaster-kernelO4slave-kernel slave-kernelO2smp2p-lpass 2qcom,smp2p 0 master-kernelmaster-kernelO/slave-kernel slave-kernelO+smp2p-mpss 2qcom,smp2p 0master-kernelmaster-kernelOslave-kernel slave-kernelOipa-ap-to-modemipaOipa-modem-to-apipaOsmp2p-slpi 2qcom,smp2p 0master-kernelmaster-kernelOslave-kernel slave-kernelOsoc@0  2simple-busclock-controller@1000002qcom,gcc-sdm845cg,,567=bi_tcxobi_tcxo_aosleep_clkpcie_0_pipe_clkpcie_1_pipe_clk8O9qfprom@7840002qcom,sdm845-qfpromqcom,qfpromcx@ hstx-trim-primary@1ebc0Ohstx-trim-secondary@1ebc0Orng@793000 2qcom,prng-eecy0g9@coredma-controller@80000052qcom,sdm845-gpi-dmac@ M i1okayO>geniqup@8c00002qcom,geni-se-qupc` m-ahbs-ahbg9d9e i1 : ; ^qup-coreokayi2c@8800002qcom,geni-i2cc@seg9Dqdefault< Y 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8800002qcom,geni-spic@seg9Dqdefault? Y 0: ;;^qup-corequp-config >>txrxokay @can@02microchip,mcp2517fdcgA f@hBBserial@8800002qcom,geni-uartc@seg9DqdefaultC Y8=0: ;;^qup-corequp-config disabledi2c@8840002qcom,geni-i2cc@@seg9FqdefaultD Z 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8840002qcom,geni-spic@@seg9FqdefaultE Z 0: ;;^qup-corequp-config >>txrx disabledserial@8840002qcom,geni-uartc@@seg9FqdefaultF Z8=0: ;;^qup-corequp-config disabledi2c@8880002qcom,geni-i2cc@seg9HqdefaultG [ 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8880002qcom,geni-spic@seg9HqdefaultH [ 0: ;;^qup-corequp-config >>txrxokayserial@8880002qcom,geni-uartc@seg9HqdefaultI [8=0: ;;^qup-corequp-config disabledi2c@88c0002qcom,geni-i2cc@seg9JqdefaultJ \ 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@88c0002qcom,geni-spic@seg9JqdefaultK \ 0: ;;^qup-corequp-config >>txrx disabledserial@88c0002qcom,geni-uartc@seg9JqdefaultL \8=0: ;;^qup-corequp-config disabled LS-UART0i2c@8900002qcom,geni-i2cc@seg9LqdefaultM ] 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8900002qcom,geni-spic@seg9LqdefaultN ] 0: ;;^qup-corequp-config >>txrx disabledserial@8900002qcom,geni-uartc@seg9LqdefaultO ]8=0: ;;^qup-corequp-config disabledi2c@8940002qcom,geni-i2cc@@seg9NqdefaultP ^ 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8940002qcom,geni-spic@@seg9NqdefaultQ ^ 0: ;;^qup-corequp-config >>txrx disabledserial@8940002qcom,geni-uartc@@seg9NqdefaultR ^8=0: ;;^qup-corequp-config disabledi2c@8980002qcom,geni-i2cc@seg9PqdefaultS _ 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8980002qcom,geni-spic@seg9PqdefaultT _ 0: ;;^qup-corequp-config >>txrx disabledserial@8980002qcom,geni-uartc@seg9PqdefaultU _8=0: ;;^qup-corequp-configokaybluetooth2qcom,wcn3990-btVWXY0i2c@89c0002qcom,geni-i2cc@seg9RqdefaultZ ` 8= disabledspi@89c0002qcom,geni-spic@seg9Rqdefault[ ` 0: ;;^qup-corequp-config >>txrx disabledserial@89c0002qcom,geni-uartc@seg9Rqdefault\ `8=0: ;;^qup-corequp-config disableddma-controller@a0000052qcom,sdm845-gpi-dmac%&'()*+@ M i1okayO_geniqup@ac00002qcom,geni-se-qupc` m-ahbs-ahbg9f9g i1 ] ; ^qup-coreokayi2c@a800002qcom,geni-i2cc@seg9Tqdefault^ a 8=H] ;;] ^qup-corequp-configqup-memory __txrx disabledspi@a800002qcom,geni-spic@seg9Tqdefault` a 0] ;;^qup-corequp-config __txrx disabledserial@a800002qcom,geni-uartc@seg9Tqdefaulta a8=0] ;;^qup-corequp-config disabledi2c@a840002qcom,geni-i2cc@@seg9Vqdefaultb b 8=H] ;;] ^qup-corequp-configqup-memory __txrx disabledspi@a840002qcom,geni-spic@@seg9Vqdefaultc b 0] ;;^qup-corequp-config __txrx disabledserial@a840002qcom,geni-debug-uartc@@seg9Vqdefaultd b8=0] ;;^qup-corequp-configokay LS-UART1i2c@a880002qcom,geni-i2cc@seg9Xqdefaulte c 8=H] ;;] ^qup-corequp-configqup-memory __txrxokay,hdmi-bridge@3b2lontium,lt9611c;J f@T  @fgqdefaulthiOports port@0cendpoint#jOport@1cendpoint#kOport@2cendpoint#lOspi@a880002qcom,geni-spic@seg9Xqdefaultm c 0] ;;^qup-corequp-config __txrx disabledserial@a880002qcom,geni-uartc@seg9Xqdefaultn c8=0] ;;^qup-corequp-config disabledi2c@a8c0002qcom,geni-i2cc@seg9Zqdefaulto d 8=H] ;;] ^qup-corequp-configqup-memory __txrxokay,spi@a8c0002qcom,geni-spic@seg9Zqdefaultp d 0] ;;^qup-corequp-config __txrx disabledserial@a8c0002qcom,geni-uartc@seg9Zqdefaultq d8=0] ;;^qup-corequp-config disabledi2c@a900002qcom,geni-i2cc@seg9\qdefaultr e 8=H] ;;] ^qup-corequp-configqup-memory __txrx disabledspi@a900002qcom,geni-spic@seg9\qdefaults e 0] ;;^qup-corequp-config __txrx disabledserial@a900002qcom,geni-uartc@seg9\qdefaultt e8=0] ;;^qup-corequp-config disabledi2c@a940002qcom,geni-i2cc@@seg9^qdefaultu f 8=H] ;;] ^qup-corequp-configqup-memory __txrx disabledspi@a940002qcom,geni-spic@@seg9^qdefaultv f 0] ;;^qup-corequp-config __txrx disabledserial@a940002qcom,geni-uartc@@seg9^qdefaultw f8=0] ;;^qup-corequp-config disabledi2c@a980002qcom,geni-i2cc@seg9`qdefaultx g 8=H] ;;] ^qup-corequp-configqup-memory __txrxokay,spi@a980002qcom,geni-spic@seg9`qdefaulty g 0] ;;^qup-corequp-config __txrx disabledserial@a980002qcom,geni-uartc@seg9`qdefaultz g8=0] ;;^qup-corequp-config disabledi2c@a9c0002qcom,geni-i2cc@seg9bqdefault{ h 8= disabledH] ;;] ^qup-corequp-configqup-memory __txrxspi@a9c0002qcom,geni-spic@seg9bqdefault| h 0] ;;^qup-corequp-config __txrx disabledserial@a9c0002qcom,geni-uartc@seg9bqdefault} h8=0] ;;^qup-corequp-config disabledsystem-cache-controller@11000002qcom,sdm845-llccPcP (0@3llcc0_basellcc1_basellcc2_basellcc3_basellcc_broadcast_base Fdma@10a20002qcom,sdm845-dccqcom,dcc c  pmu@114a0002qcom,sdm845-llcc-bwmonc D ~opp-table2operating-points-v2O~opp-0 5opp-1opp-2.opp-3Ropp-4npmu@1436400(2qcom,sdm845-cpu-bwmonqcom,sdm845-bwmoncCd E opp-table2operating-points-v2Oopp-0I>opp-1opp-2opp-3>opp-4pcie@1c000002qcom,pcie-sdm845Pc `` `p3parfdbielbiconfigmhiWpci=NX 8` `0`0 zmsibu8g9.9)9+9-9/9090pipeauxcfgbus_masterbus_slaveslave_q2atbu111111111 1 1 1 1 1119pci96pciephyokay @# @qdefaultpcie@0WpcicN phy@1c060002qcom,sdm845-qmp-pcie-phyc`(g999+9,9:9.auxcfg_ahbrefrefgenpipeopp-342000000b )opp-257000000Q@ @%zap-shaderqcom/sdm845/a630_zap.mbniommu@504000022qcom,sdm845-smmu-v2qcom,adreno-smmuqcom,smmu-v2c  %xlmnopqrsg9!9 busifaceOgmu@506a000&2qcom,adreno-gmu-630.2qcom,adreno-gmu0c ( H3gmugmu_pdcgmu_pdc_seq01zhfigmu g99!gmucxoaximemnoccxgxiokayOopp-table2operating-points-v2Oopp-400000000ׄ opp-200000000  0clock-controller@af000002qcom,sdm845-dispccc Hg,99bi_tcxogcc_disp_gpll0_clk_srcgcc_disp_gpll0_div_clk_srcdsi0_phy_pll_out_byteclkdsi0_phy_pll_out_dsiclkdsi1_phy_pll_out_byteclkdsi1_phy_pll_out_dsiclkdp_link_clk_divsel_tendp_vco_divided_clk_src_muxOinterrupt-controller@b2200002qcom,sdm845-pdcqcom,pdcc "$ 8^^asvOreset-controller@b2e00002qcom,sdm845-pdc-globalc .Othermal-sensor@c263000 2qcom,sdm845-tsensqcom,tsens-v2 c &0 "  H zuplowcritical Othermal-sensor@c265000 2qcom,sdm845-tsensqcom,tsens-v2 c &P "0 Hzuplowcritical Oreset-controller@c2a00002qcom,sdm845-aoss-ccc *Opower-management@c300000#2qcom,sdm845-aoss-qmpqcom,aoss-qmpc 0 0O.cxebisram@c3f00002qcom,sdm845-rpmh-statsc ?spmi@c4400002qcom,spmi-pmic-arbPc D ``p @`3corechnlsobsrvrintrcnfg zperiph_irq p V pmic@02qcom,pm8998qcom,spmi-pmicc pon@8002qcom,pm8998-ponc c spwrkey2qcom,pm8941-pwrkey =  tresin2qcom,pm8941-resin = okay rtemp-alarm@24002qcom,spmi-temp-alarmc$$  thermal Ocharger@2800*2qcom,pm8998-coincellqcom,pm8941-coincellc( disabledadc@31002qcom,spmi-adc-rev2c11  Ochannel@6c die_tempadc-tm@34002qcom,spmi-adc-tm-hcc44   disabledrtc@60002qcom,pm8941-rtcc`a 3rtcalarmagpio@c000 2qcom,pm8998-gpioqcom,spmi-gpioc NCNCWLAN_SW_CTRLNCPM_GPIO5_BLUE_BT_LEDVOL_UP_NNCADC_IN1PM_GPIO9_YEL_WIFI_LEDCAM0_AVDD_ENNCCAM0_DVDD_ENPM_GPIO13_GREEN_U4_LEDDIV_CLK2NCNCNCSMB_STATNCNCADC_IN2OPTION1WCSS_PWR_REQPM845_GPIO24OPTION2PM845_SLBOcam0-dvdd-1v2-en-stategpio12normal  Ocam0-avdd-2v8-en-stategpio10normal  O vol-up-active-stategpio6normal  Opmic@12qcom,pm8998qcom,spmi-pmicc pmic@22qcom,pmi8998qcom,spmi-pmicc charger@10002qcom,pmi8998-chargerc@-zusb-pluginbat-ovwdog-barkusbin-icl-change  usbin_iusbin_v disabledgpio@c000!2qcom,pmi8998-gpioqcom,spmi-gpiocOadc@45002qcom,pmi8998-rradccE Opmic@32qcom,pmi8998qcom,spmi-pmicc labibb2qcom,pmi8998-lab-ibbibb  zsc-errocplab  zsc-errocppwm2qcom,pmi8998-lpg  okay led@3c " heartbeat ( ?@ABCDEFGHIJKLMNOPQRSTUVWO1tbu@150c50002qcom,sdm845-tbuc P;9 `1tbu@150c90002qcom,sdm845-tbuc ;9  `1tbu@150cd0002qcom,sdm845-tbuc  9  `1tbu@150d10002qcom,sdm845-tbuc  9  `1 tbu@150d50002qcom,sdm845-tbuc P 9  `1tbu@150d90002qcom,sdm845-tbuc ; `1tbu@150dd0002qcom,sdm845-tbuc ;9 `1tbu@150e10002qcom,sdm845-tbucg9;9 `1clock-controller@170140002qcom,sdm845-lpasscc c@0 3ccqdsp6ss disabledinterconnect@179000002qcom,sdm845-gladiator-noccЀ';Owatchdog@17980000#2qcom,apss-wdt-sdm845qcom,kpss-wdtcg5 mailbox@179900002qcom,sdm845-apss-sharedc uO0rsc@179c0000 apps_rsc2qcom,rpmh-rsc0c3drv-0drv-1drv-2$   &bcm-voter2qcom,bcm-voterOclock-controller2qcom,sdm845-rpmh-clkxogO,power-controller2qcom,sdm845-rpmhpdO8opp-table2operating-points-v2Oopp1 opp2 0O!opp3 @O"opp4 O#opp5 O$opp6 O%opp7 @opp8 Popp9 Oopp10 regulators-02qcom,pm8998-rpmh-regulators a     *8GVet "5H[jVsmps3}@@Osmps5}  Osmps7} Oldo1} m mOldo5} 5 5Oldo12}w@w@Oldo7}w@w@OWldo13}w@-*Oldo17}OXldo20}-*-IOldo21}-*-IOldo24}//Oldo25}2Z2OYldo26}OOOlvs1}w@w@Olvs2}w@w@regulators-12qcom,pmi8998-rpmh-regulators bbob}26Ointerrupt-controller@17a00000 2arm,gic-v3  c  Omsi-controller@17a400002arm,gic-v3-its c disableddma-controller@17184000 2qcom,bam-v1.7.4qcom,bam-v1.7.0xc@ 5p% i1Otimer@17c90000  2arm,armv7-timer-memcframe@17ca00002cframe@17cc00002 c disabledframe@17cd00002  c disabledframe@17ce00002  c disabledframe@17cf00002  c disabledframe@17d000002  c disabledframe@17d100002  c disabledinterconnect@17d410002qcom,sdm845-osm-l3qcom,osm-l3cg,9 xoalternate'Ocpufreq@17d43000'2qcom,sdm845-cpufreq-hwqcom,cpufreq-hw c0X3freq-domain0freq-domain1fg,9 xoalternate?Owifi@188000002qcom,wcn3990-wifiokayc3membasecxo_ref_clk_ping, i1@RgWyXYThundercomm_DB845Csound(2qcom,db845c-sndcardqcom,sdm845-sndcard     qdefault,DB845cRX_BIASMCLKAMIC1MIC BIAS1AMIC2MIC BIAS2DMIC0MIC BIAS1DMIC1MIC BIAS1DMIC2MIC BIAS3DMIC3MIC BIAS3SpkrLeft INSPK1 OUTSpkrRight INSPK2 OUTMM_DL1MultiMedia1 PlaybackMM_DL2MultiMedia2 PlaybackMM_DL4MultiMedia4 PlaybackMultiMedia3 CaptureMM_UL3mm1-dai-link MultiMedia1cpumm2-dai-link MultiMedia2cpumm3-dai-link MultiMedia3cpumm4-dai-link MultiMedia4cpuhdmi-dai-linkHDMI Playbackcpuplatformcodecslim-dai-linkSLIM Playbackcpuplatformcodecslimcap-dai-link SLIM Capturecpuplatformcodecthermal-zonescpu0-thermaltripstrip-point0%_1^passivetrip-point1%s1^passivecpu-crit%1 ^criticalcpu1-thermaltripstrip-point0%_1^passivetrip-point1%s1^passivecpu-crit%1 ^criticalcpu2-thermaltripstrip-point0%_1^passivetrip-point1%s1^passivecpu-crit%1 ^criticalcpu3-thermaltripstrip-point0%_1^passivetrip-point1%s1^passivecpu-crit%1 ^criticalcpu4-thermaltripstrip-point0%_1^passivetrip-point1%s1^passivecpu-crit%1 ^criticalcpu5-thermaltripstrip-point0%_1^passivetrip-point1%s1^passivecpu-crit%1 ^criticalcpu6-thermal tripstrip-point0%_1^passivetrip-point1%s1^passivecpu-crit%1 ^criticalcpu7-thermal tripstrip-point0%_1^passivetrip-point1%s1^passivecpu-crit%1 ^criticalaoss0-thermaltripstrip-point0%_1^hotcluster0-thermaltripstrip-point0%_1^hotcluster0-crit%1 ^criticalcluster1-thermaltripstrip-point0%_1^hotcluster1-crit%1 ^criticalgpu-top-thermal cooling-mapsmap0< Atripstrip-point0%L1^passiveOtrip-point1%_1^hottrip-point2%1 ^criticalgpu-bottom-thermal cooling-mapsmap0< Atripstrip-point0%L1^passiveOtrip-point1%_1^hottrip-point2%1 ^criticalaoss1-thermaltripstrip-point0%_1^hotq6-modem-thermaltripstrip-point0%_1^hotmem-thermaltripstrip-point0%_1^hotwlan-thermaltripstrip-point0%_1^hotq6-hvx-thermaltripstrip-point0%_1^hotcamera-thermaltripstrip-point0%_1^hotvideo-thermaltripstrip-point0%_1^hotmodem-thermaltripstrip-point0%_1^hotpm8998-thermaltripspm8998-alert0%(1^passivepm8998-crit%H1 ^criticaltimer2arm,armv8-timer0can-clock 2fixed-clock,bZOAdc12v-regulator2regulator-fixedPDC12V}O"gpio-keys 2gpio-keys_qdefaultkey-vol-up Volume Up s leds 2gpio-ledsled-0 green:user4 indicator "   Roffjled-1 yellow:wlanwlan "   (firmwarescm2qcom,scm-sm6350qcom,scmmemory@80000000memoryopp-table-cpu02operating-points-v2opp-3000000000|opp-576000000"Uopp-768000000->opp-1017600000opp-979200000:]h`opp-1036800000=PJ`opp-1248000000JbJNopp-1401600000SJR`opp-1555200000\x{Ȁopp-1766400000iI {Ȁopp-1900800000qKnȀopp-2073600000{Ȁopp-table-qup2operating-points-v2?opp-75000000xh$!opp-100000000$"opp-128000000 $#pmu2arm,armv8-pmuv3 2psci 2arm,psci-1.0smcpower-domain-cpu0=2$Q%&power-domain-cpu1=2$Q%& power-domain-cpu2=2$Q%& power-domain-cpu3=2$Q%&power-domain-cpu4=2$Q%&power-domain-cpu5=2$Q%&power-domain-cpu6=2$Q'(power-domain-cpu7=2$Q'(power-domain-cpu-cluster0= Q)*+$reserved-memory dmemory@80000000`kmemory@80700000pkmemory@80860000 2qcom,cmd-dbkmemory@808ff000kmemory@80900000 k,memory@80b00000kmemory@86000000Pkmemory@86500000PPkmemory@86a00000Pkmemory@86f00000kdmemory@88d00000kVmemory@8b500000P kmemory@8b700000pkmemory@8b710000qTkmemory@8b800000kamemory@a00000000kmemory@a23000000kmemory@c0000000kmemory@f0d00000k]memory@ffb00000 kmemory@ffbc0000kramoops@ffc000002ramoopsr~kmemory@ffd00000ksmem 2qcom,smem,-smp2p-adsp 2qcom,smp2p. .master-kernelmaster-kernelXslave-kernel slave-kernel4Usmp2p-cdsp 2qcom,smp2p^. .master-kernelmaster-kerneleslave-kernel slave-kernel4csmp2p-mpss 2qcom,smp2p. .master-kernelmaster-kernelbslave-kernel slave-kernel4`ipa-ap-to-modemipaSipa-modem-to-apipa4Qsoc@0 dE 2simple-busclock-controller@1000002qcom,gcc-sm6350d=Pbi_tcxobi_tcxo_aosleep_clk//01mailbox@4080002qcom,sm6350-ipccqcom,ipcc@ 24\.qfprom@7840002qcom,sm6350-qfpromqcom,qfpromx@0 gpu-speed-bin@2015 h\rng@793000 2qcom,prng-eey01DPcoremmc@7c4000$2qcom,sm6350-sdhciqcom,sdhci-msm-v50|@|P| mhccqhciice2whc_irqpwr_irq 2`1e1f/Pifacecorexo1d,h234 disabledopp-table2operating-points-v24opp-19200000$$5opp-100000000$!opp-384000000`$6dma-controller@8000002qcom,sm6350-gpi-dmax2  2Vokay8geniqup@8c00002qcom,geni-se-qup  Pm-ahbs-ahb1a1b  2Cdokayi2c@8800002qcom,geni-i2c@Pse1G default7 2Y "88'txrx H$9!: 1qup-corequp-configqup-memory disabledserial@8840002qcom,geni-uart@@Pse1I default;<=> 2Z23?0$: 1qup-corequp-config disabledi2c@8880002qcom,geni-i2c@Pse1K default@ 2[ "88'txrx H$9!: 1qup-corequp-configqup-memory disableddma-controller@9000002qcom,sm6350-gpi-dmax2 ? 2okayBgeniqup@9c00002qcom,geni-se-qup  Pm-ahbs-ahb1c1d  2dokayi2c@9800002qcom,geni-i2c@Pse1U defaultA 2a "BB'txrx H$9"C 1qup-corequp-configqup-memory disabledi2c@9840002qcom,geni-i2c@@Pse1W defaultD 2b "BB'txrx H$9"C 1qup-corequp-configqup-memory disabledi2c@9880002qcom,geni-i2c@Pse1Y defaultE 2c "BB'txrx H$9"C 1qup-corequp-configqup-memoryokayqtouchscreen@482samsung,s6sy761HF2DGOH defaultIJserial@98c0002qcom,geni-debug-uart@Pse1[ defaultK 2d0$9"1qup-corequp-config disabledi2c@9900002qcom,geni-i2c@Pse1] defaultL 2e "BB'txrx H$9"C 1qup-corequp-configqup-memory disabledinterconnect@15000002qcom,sm6350-config-nocP[oM9interconnect@16200002qcom,sm6350-system-nocbp[oMRinterconnect-clk-virt2qcom,sm6350-clk-virt[oMinterconnect@16e00002qcom,sm6350-aggre1-nocnP[oM:interconnect@17000002qcom,sm6350-aggre2-nocp[oMCinterconnect-compute-noc2qcom,sm6350-compute-noc[oMinterconnect@17400002qcom,sm6350-mmss-noct[oMyufs@1d84000+2qcom,sm6350-ufshcqcom,ufshcjedec,ufs-2.0 @0mstdice 2 Nufsphy1rst21 2{Pcore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clkice_core_clkH1p1 1o1y/1x1v1w1rH <4`рxh disabledOphy@1d870002qcom,sm6350-qmp-ufs-phyp/1t1nPrefref_auxqref21Oufsphy disabledNdma-controller@1dc4000 2qcom,bam-v1.7.4qcom,bam-v1.7.0@@ 2<2&2226282?Pcrypto@1dfa000)2qcom,sm6350-qceqcom,sm8150-qceqcom,qceߠ`"PP'rxtx<2&2226282?$C 1memoryipa@1e400002qcom,sm6350-ipa2@2B00@0mipa-regipa-sharedgsi87QQ(wipagsiipa-clock-queryipa-setup-ready/ PcoreH$C CR 91memoryimemconfigSS*ipa-clock-enabled-validipa-clock-enabled disabledhwlock@1f400002qcom,tcsr-mutex)-remoteproc@30000002qcom,sm6350-adsp-pas<TUUUU#wwdogfatalreadyhandoverstop-ack/Pxo233@lcxlmxV7WXstop disabledglink-edge. .@lpassfastrpc 2qcom,fastrpcFfastrpcglink-apps-dsp@adspZ compute-cb@32qcom,fastrpc-compute-cb 2compute-cb@42qcom,fastrpc-compute-cb 2compute-cb@52qcom,fastrpc-compute-cb 2qgpu@3d000002qcom,adreno-619.0qcom,adreno mkgsl_3d0_reg_memorycx_mem 2,YZ[\ speed_binS disabledzap-shader]opp-table2operating-points-v2Zopp-8500000002opp-800000000/opp-650000000&6@opp-565000000!7@opp-430000000Gopp-355000000(opp-253000000y@@iommu@3d4000022qcom,sm6350-smmu-v2qcom,adreno-smmuqcom,smmu-v2x2lmnopqrs^1-1.Pahbbusiface2^Ygmu@3d6a000&2qcom,adreno-gmu-619.0qcom,adreno-gmu0֠ ) Imgmugmu_pdcgmu_pdc_seq201whfigmu(^^^ 11-Pahbgmucxoaximemnoc2^^@cxgxY_[opp-table2operating-points-v2_opp-200000000 0clock-controller@3d900002qcom,sm6350-gpucc/1+1,8Pbi_tcxogcc_gpu_gpll0_clk_srcgcc_gpu_gpll0_div_clk_srcd=^remoteproc@40800002qcom,sm6350-mpss-pas@@L`````0wwdogfatalreadyhandoverstop-ackshutdown-ack/Pxo233@cxmssa7Wbstop disabledglink-edge. .@modemremoteproc@83000002qcom,sm6350-cdsp-pas0@Bcccc#wwdogfatalreadyhandoverstop-ack/Pxo233@cxmxd7Westop disabledglink-edge. .@cdspfastrpc 2qcom,fastrpcFfastrpcglink-apps-dsp@cdspZ compute-cb@12qcom,fastrpc-compute-cb 2 compute-cb@22qcom,fastrpc-compute-cb 2 compute-cb@32qcom,fastrpc-compute-cb 2 compute-cb@42qcom,fastrpc-compute-cb 2 compute-cb@52qcom,fastrpc-compute-cb 2 compute-cb@62qcom,fastrpc-compute-cb 2 compute-cb@72qcom,fastrpc-compute-cb 2 compute-cb@82qcom,fastrpc-compute-cb 2 mmc@8804000$2qcom,sm6350-sdhciqcom,sdhci-msm-v5@2whc_irqpwr_irq 2`1j1k/Pifacecorexo10$C 9#1sdhc-ddrcpu-sdhcfg defaultsleepd,h23hokayij F^opp-table2operating-points-v2hopp-100000000$6  PPopp-202000000 F$#0|p >phy@88e3000(2qcom,sm6350-qusb2-phyqcom,qusb2-v2-phy0okay k/ Pcfg_ahbref1ophy@88e80002qcom,sm6350-qmp-usb3-dp-phy0 1111Pauxrefcom_auxusb3_pipe211 1  phycommondokaypports port@0endpointport@1endpoint-lqport@2endpointinterconnect@91600002qcom,sm6350-dc-noc 2[oMsystem-cache-controller@92000002qcom,sm6350-llcc  `mllcc0_basellcc_broadcast_baseinterconnect@96800002qcom,sm6350-gem-noc h[oMinterconnect@99900002qcom,sm6350-npu-noc [oMpmu@90b6300)2qcom,sm6350-llcc-bwmonqcom,sdm845-bwmon c 2Em$ opp-table2operating-points-v2mopp-0"opp-1Eopp-2l}popp-3opp-4opp-59`pmu@90cd000-2qcom,sm6350-cpu-bwmonqcom,sc7280-llcc-bwmon  2n$ opp-table2operating-points-v2nopp-0 opp-1topp-2>opp-3popp-4'opp-5,hopp-6;0Xopp-7N(opp-8Zopp-9hopp-10yusb@a6f88002qcom,sm6350-dwc3qcom,dwc3 ookay d(11{1 11}#Pcfg_noccoreifacesleepmock_utmiDTTT<wpwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq2110$C 9(1usb-ddrapps-usbusb@a600000 2snps,dwc3 ` 2 2@=Vn opusb2-phyusb3-phy super-speed peripheralports port@0endpointport@1endpoint-qlcci@ac4a000!2qcom,sm6350-cciqcom,msm8996-cci Ġ 22r0rrWrVrrr5Pcamnoc_axisoc_ahbslow_ahb_srccpas_ahbccicci_srcrrĴ<4`stuv defaultsleep  disabledi2c-bus@0qB@ i2c-bus@1qB@ cci@ac4b000!2qcom,sm6350-cciqcom,msm8996-cci İ 22r0rrWrVrrr5Pcamnoc_axisoc_ahbslow_ahb_srccpas_ahbccicci_srcrrĴ<4`wx defaultsleep  disabledi2c-bus@0qB@ clock-controller@ad000002qcom,sm6350-camcc `/d=rdisplay-subsystem@ae000002qcom,sm6350-mdss mmdss 2S40$y 91mdp0-memcpu-cfg11zPifacebuscore2z 2 d disabled{display-controller@ae010002qcom,sm6350-dpu   mmdpvbif{201zzzzzPbusifacerotlutcorevsyncz$|23ports port@0endpoint-}port@2endpoint-~opp-table2operating-points-v2|opp-19200000$$5opp-200000000 $!opp-300000000$"opp-373333333@U$6opp-448000000$#opp-560000000!`$displayport-controller@ae900002qcom,sm6350-dpqcom,sm8350-dpP     {2 (zzz zz;Pcore_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelz zpppdp23 disabledports port@0endpoint-~port@1endpointopp-table2operating-points-v2opp-160000000 h$!opp-270000000߀$"opp-540000000 /$6opp-8100000000G$#dsi@ae94000(2qcom,sm6350-dsi-ctrlqcom,mdss-dsi-ctrl @ mdsi_ctrl{20zzzzz1$Pbytebyte_intfpixelcoreifacebuszz23dsi  disabledports port@0endpoint-}port@1endpointopp-table2operating-points-v2opp-187500000 -$!opp-300000000$"opp-358000000V$6phy@ae944002qcom,dsi-phy-10nm0 D F Jmdsi_phydsi_phy_lanedsi_plldz/ Pifaceref disabledclock-controller@af000002qcom,sm6350-dispcc 0/1!ppwPbi_tcxogcc_disp_gpll0_clkdsi0_phy_pll_out_byteclkdsi0_phy_pll_out_dsiclkdp_phy_pll_link_clkdp_phy_pll_vco_div_clkd=zinterrupt-controller@b2200002qcom,sm6350-pdcqcom,pdc "d<^^a}?~ 4Tthermal-sensor@c263000 2qcom,sm6350-tsensqcom,tsens-v2 &0 " )TTwuplowcritical7thermal-sensor@c265000 2qcom,sm6350-tsensqcom,tsens-v2 &P "0)TTwuplowcritical7power-management@c300000#2qcom,sm6350-aoss-qmpqcom,aoss-qmp 0. .dWspmi@c4400002qcom,spmi-pmic-arbP D ``p @`mcorechnlsobsrvrintrcnfg wperiph_irq TM 4pmic@02qcom,pm6350qcom,spmi-pmic pon@8002qcom,pm8998-ponZjpwrkey2qcom,pm8941-pwrkey2x= tresin2qcom,pm8941-resin2x= okaystemp-alarm@24002qcom,spmi-temp-alarm$2$7gpio@c000 2qcom,pm6350-gpioqcom,spmi-gpio 4vol-down-n-stategpio2normalpmic@12qcom,pm6350qcom,spmi-pmic pinctrl@f1000002qcom,sm6350-tlmm0l24FT -8Fcci0-default-stategpio39gpio40cci_i2cscci0-sleep-stategpio39gpio40cci_i2c(ucci1-default-stategpio41gpio42cci_i2ctcci1-sleep-stategpio41gpio42cci_i2c(vcci2-default-stategpio43gpio44cci_i2cwcci2-sleep-stategpio43gpio44cci_i2c(xsdc2-off-stategclk-pins sdc2_clkcmd-pins sdc2_cmddata-pins sdc2_datasd-cd-pinsgpio94gpiosdc2-on-statefclk-pins sdc2_clkcmd-pins sdc2_cmd data-pins sdc2_data sd-cd-pinsgpio94gpioqup-uart9-default-stategpio25gpio26 qup13_f2Kqup-i2c0-default-state gpio0gpio1qup007qup-i2c2-default-stategpio45gpio46qup02@qup-i2c6-default-stategpio13gpio14qup10Aqup-i2c7-default-stategpio27gpio28qup11Dqup-i2c8-default-stategpio19gpio20qup12Equp-i2c10-default-state gpio4gpio5qup14Lqup-uart1-cts-default-stategpio61qup01;qup-uart1-rts-default-stategpio62qup01(<qup-uart1-rx-default-stategpio64qup01>qup-uart1-tx-default-stategpio63qup01=ts-active-stategpio21gpioJts-int-default-stategpio22gpioIiommu@15000000!2qcom,sm6350-smmu-500arm,mmu-5002A_`abcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY2interrupt-controller@17a00000 2arm,gic-v34  2watchdog@17c10000#2qcom,apss-wdt-sm6350qcom,kpss-wdt0 2timer@17c200002arm,armv7-timer-memq$ d frame@17c2100072 frame@17c230007 2 0 disabledframe@17c250007 2 P disabledframe@17c270007 2 p disabledframe@17c290007 2  disabledframe@17c2b0007 2 ° disabledframe@17c2d0007 2 disabledrsc@182000002qcom,rpmh-rsc @apps_rsc0 !"mdrv-0drv-1drv-2$2D T `2$clock-controller2qcom,sm6350-rpmh-clkdPxok/power-controller2qcom,sm6350-rpmhpd=3opp-table2operating-points-v2opp1opp205opp3@!opp4"opp56opp6#opp7@opp8Popp9opp10bcm-voter2qcom,bcm-voterMregulators-02qcom,pm6350-rpmh-regulatorspasmps1}B@Osmps2}@ldo2}6`ldo3})22Zldo4}_ 8ldo5}6`ldo6}6ldo7} 6`ldo8}&%6ldo9}-P3(ldo11}w@Gldo12} 6`ldo13} ldo14}ldo15}ldo16} 0 ldo18}  ldo19}zldo20}P 8ldo21} u ldo22}zregulators-12qcom,pm6150l-rpmh-regulatorspesmps8}ƨI8ldo1} 6`ldo2}Pldo3}8ldo4} 2Zldo5} 2Zldo6}-pjldo7})26ldo8} ldo9})2-*ildo10}-3(ldo11}-3(bob} S interconnect@183210002qcom,sm6350-osm-l3qcom,osm-l32/1 Pxoalternate[cpufreq@18323000'2qcom,sm6350-cpufreq-hwqcom,cpufreq-hw 202Xmfreq-domain0freq-domain1/1 Pxoalternate dwifi@188000002qcom,wcn3990-wifimmembase2 2   disabledthermal-zonesaoss0-thermal 3tripsaoss0-crit CH O Ecriticalaoss1-thermal 3tripsaoss1-crit CH O Ecriticalaudio-thermal 3tripsaudio-crit CH O Ecriticalcamera-thermal 3tripscamera-crit CH O Ecriticalcpu0-thermal 3tripstrip-point0 Cs OEpassivecpu0-crit C8 O Ecriticalcooling-mapsmap0 Z _cpu1-thermal 3tripstrip-point0 Cs OEpassivecpu1-crit C8 O Ecriticalcooling-mapsmap0 Z _cpu2-thermal 3tripstrip-point0 Cs OEpassivecpu2-crit C8 O Ecriticalcooling-mapsmap0 Z _cpu3-thermal 3tripstrip-point0 Cs OEpassivecpu3-crit C8 O Ecriticalcooling-mapsmap0 Z _cpu4-thermal 3tripstrip-point0 Cs OEpassivecpu4-crit C8 O Ecriticalcooling-mapsmap0 Z _cpu5-thermal 3tripstrip-point0 Cs OEpassivecpu5-crit C8 O Ecriticalcooling-mapsmap0 Z _cpu6-left-thermal 3 tripstrip-point0 Cs OEpassivecpu6-left-crit C8 O Ecriticalcooling-mapsmap0 Z _cpu6-right-thermal 3 tripstrip-point0 Cs OEpassivecpu6-right-crit C8 O Ecriticalcooling-mapsmap0 Z _cpu7-left-thermal 3 tripstrip-point0 Cs OEpassivecpu7-left-crit C8 O Ecriticalcooling-mapsmap0 Z _ cpu7-right-thermal 3 tripstrip-point0 Cs OEpassivecpu7-right-crit C8 O Ecriticalcooling-mapsmap0 Z _ cpuss0-thermal 3tripscpuss0-crit CH O Ecriticalcpuss1-thermal 3tripscpuss1-crit CH O Ecriticalcwlan-thermal 3tripscwlan-crit CH O Ecriticalddr-thermal 3tripsddr-crit CH O Ecriticalgpuss0-thermal n 3 tripstrip-point0 CL OEpassivegpuss0-crit C O Ecriticalcooling-mapsmap0 Z _gpuss1-thermal n 3tripstrip-point0 CL OEpassivegpuss1-crit C O Ecriticalcooling-mapsmap0 Z _modem-core0-thermal 3tripsmodem-core0-crit CH O Ecriticalmodem-core1-thermal 3tripsmodem-core1-crit CH O Ecriticalmodem-scl-thermal 3 tripsmodem-scl-crit CH O Ecriticalmodem-vec-thermal 3tripsmodem-vec-crit CH O Ecriticalnpu-thermal 3 tripsnpu-crit CH O Ecriticalq6-hvx-thermal 3tripsq6-hvx-crit CH O Ecriticalvideo-thermal 3 tripsvideo-crit CH O Ecriticalpm6350-thermal nd 3tripstrip0 Cs OEpassivetrip1 C8 OEhottrip2 CH O Ecriticaltimer2arm,armv8-timerq$02chosen dframebuffer@a00000002simple-framebuffer08   a8r8g8b81gpio-keys 2gpio-keys defaultkey-volume-down @Volume Downr touch-en-regulator2regulator-fixed touch_en_vreg F   H interrupt-parent#address-cells#size-cellsmodelcompatiblechassis-typeqcom,msm-idqcom,board-id#clock-cellsclock-frequencyclock-output-namesphandledevice_typeregclocksenable-methodcapacity-dmips-mhzdynamic-power-coefficientnext-level-cacheqcom,freq-domainoperating-points-v2interconnectspower-domainspower-domain-names#cooling-cellscache-levelcache-unifiedcpuarm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-usentry-methodidle-state-namelocal-timer-stop#reset-cellsopp-sharedopp-hzopp-peak-kBpsrequired-oppsinterrupts#power-domain-cellsdomain-idle-statesrangesno-maprecord-sizeconsole-sizepmsg-sizeecc-sizememory-regionhwlocksqcom,smeminterrupts-extendedmboxesqcom,local-pidqcom,remote-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-rangesclock-names#mbox-cellsbitsreg-namesinterrupt-namesiommusresetsqcom,dll-configqcom,ddr-configbus-widthnon-removablesupports-cqestatusdma-channelsdma-channel-mask#dma-cellspinctrl-namespinctrl-0dmasdma-namesinterconnect-namesvdd-supplyavdd-supply#interconnect-cellsqcom,bcm-votersphysphy-nameslanes-per-directionreset-namesfreq-table-hz#phy-cellsqcom,eeqcom,controlled-remotelynum-channelsqcom,num-eesqcom,smem-statesqcom,smem-state-names#hwlock-cellsqcom,qmplabelqcom,glink-channelsqcom,non-secure-domainqcom,nsessionsqcom,gmunvmem-cellsnvmem-cell-namesopp-levelopp-supported-hw#iommu-cells#global-interruptspinctrl-1vmmc-supplyvqmmc-supplycd-gpiosopp-avg-kBpsorientation-switchremote-endpointsnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,has-lpm-erratumsnps,hird-thresholdsnps,parkmode-disable-ss-quirkmaximum-speeddr_modeassigned-clocksassigned-clock-ratesassigned-clock-parents#sound-dai-cellsqcom,pdc-ranges#qcom,sensors#thermal-sensor-cellsqcom,channelmode-bootloadermode-recoverydebouncebias-pull-uplinux,codegpio-controllergpio-ranges#gpio-cellspinsfunctionpower-sourcebias-disableinput-enablewakeup-parentgpio-reserved-rangesdrive-strengthbias-pull-downframe-numberqcom,tcs-offsetqcom,drv-idqcom,tcs-configqcom,pmic-idregulator-min-microvoltregulator-max-microvoltregulator-initial-moderegulator-allow-set-loadregulator-allowed-modesregulator-allow-bypass#freq-domain-cellsqcom,msa-fixed-permthermal-sensorstemperaturehysteresistripcooling-devicepolling-delay-passiveheightstrideformatregulator-namegpioenable-active-highvin-supply Q8L`(CL( ,Spreadtrum SP9860G 3GFHD Board2sprd,sp9860g-1h10sprd,sc9860soc 2simple-bus =syscon@202100002sysconD !Hsyscon@402b00002sysconD@+Hsyscon@402e00002sysconD@.Hsyscon@404000002sysconD@@Hsyscon@415e00002sysconDA^Hsyscon@611000002sysconDaHsyscon@621000002sysconDbHsyscon@631000002sysconDcHsyscon@70b000002sysconDpH!ap-apb@70000000 2simple-bus =pserial@0"2sprd,sc9860-uartsprd,sc9836-uartD P[benableuartsourcenokayserial@100000"2sprd,sc9860-uartsprd,sc9836-uartD P[benableuartsourcenokayserial@200000"2sprd,sc9860-uartsprd,sc9836-uartD  P[benableuartsourcenokayserial@300000"2sprd,sc9860-uartsprd,sc9836-uartD0 P[benableuartsourcenokayap-ahb 2simple-bus =dma-controller@201000002sprd,sc9860-dmaD @ P*u  [benablemmc@504300002sprd,sdhci-r11DPC P)[ Cbsdioenable2x_enable D..?u??.. '1?GM^xaon 2simple-bus =spi@400300002sprd,sc9860-adiD@ adi pmic@0 2sprd,sc2731D P H charger@02sprd,sc2731-chargerD led-controller@2002sprd,sc2731-bltcD led@0redDled@1greenDled@2blueDrtc@2802sprd,sc2731-rtcD Pgpio@3002sprd,sc2731-eicD PHefuse@3802sprd,sc2731-efuseD  calib@6D$ Hcalib@24D$H calib@26D&Hadc@4802sprd,sc2731-adcD P) ";big_scale_calibsmall_scale_calibL Hfuel-gauge@a002sprd,sc2731-fguD  X htbat-tempcharge-vol  ;fgu_calibL Pvibrator@ec82sprd,sc2731-vibratorDregulators2sprd,sc2731-regulatorBUCK_CPU0vddarm0xKaBUCK_CPU1vddarm1xKaBUCK_RFdcdcrf '!adLDO_CAMA0 vddcama0O98pdLDO_CAMA1 vddcama1O98pdaLDO_CAMMOT vddcammotO98pdaLDO_VLDOvddvldoO98pdaLDO_EMMCCORE vddemmccoreO98pda H LDO_SDCORE vddsdcoreO98pdaLDO_SDIOvddsdioO98pdaLDO_WIFIPA vddwifipaO98pdaLDO_USB33 vddusb33O98pdaLDO_CAMD0 vddcamd0B@^daLDO_CAMD1 vddcamd1B@^daLDO_CONvddconB@^daLDO_CAMIO vddcamioB@^daLDO_SRAMvddsramB@^datimer@400500002sprd,sc9860-timerD@  P[timer@400500202sprd,sc9860-suspend-timerD@ [hwspinlock@405000002sprd,hwspinlock-r3p0D@P[benableH gpio@402100002sprd,sc9860-eic-debounceD@! P4HJgpio@402100802sprd,sc9860-eic-latchD@!  P4gpio@402100a02sprd,sc9860-eic-asyncD@!  P4gpio@402100c02sprd,sc9860-eic-syncD@!  P4gpio@402800002sprd,sc9860-gpioD@( P2pinctrl@402a00002sprd,sc9860-pinctrlD@*watchdog@403100002sprd,sp9860-wdtD@1 P=) [(Lbenablertc_enableagcp 2simple-bus =dma-controller@415800002sprd,sc9860-dmaDAX@u  [benableashb_ebinterrupt-controller@12001000 2arm,gic-400@D @ `  P Hpmu-gate2sprd,sc9860-pmu-gate5[AHpll2sprd,sc9860-pll5[AHclock-controller@200000002sprd,sc9860-ap-clkD [AHaon-prediv@402d00002sprd,sc9860-aon-predivD@-[AHapahb-gate2sprd,sc9860-apahb-gate5[AHaon-gate2sprd,sc9860-aon-gate5[AHclock-controller@408800002sprd,sc9860-aonsecure-clkD@ [Aagcp-gate2sprd,sc9860-agcp-gate5[AHclock-controller@602000002sprd,sc9860-gpu-clkD` [Aclock-controller@610000002sprd,sc9860-vsp-clkDa [AHvsp-gate2sprd,sc9860-vsp-gate5[Aclock-controller@620000002sprd,sc9860-cam-clkDb@ [AHcam-gate2sprd,sc9860-cam-gate5[Aclock-controller@630000002sprd,sc9860-disp-clkDc [AH disp-gate2sprd,sc9860-disp-gate5[ Aapapb-gate2sprd,sc9860-apapb-gate5![AHfunnel@10001000+2arm,coresight-dynamic-funnelarm,primecellD[ bapb_pclkout-portsportendpointN"H%in-ports port@0DendpointN#H5port@4DendpointN$H&etb@10003000 2arm,coresight-tmcarm,primecellD0[ bapb_pclkout-portsportendpointN%H"stm@10006000 2arm,coresight-stmarm,primecell D`^stm-basestm-stimulus-base[ bapb_pclkout-portsportendpointN&H$funnel@11001000+2arm,coresight-dynamic-funnelarm,primecellD[ bapb_pclkout-portsportendpointN'H2in-ports port@0DendpointN(H9port@1DendpointN)H;port@2DendpointN*H=port@4DendpointN+H?funnel@11002000+2arm,coresight-dynamic-funnelarm,primecellD [ bapb_pclkout-portsportendpointN,H4in-ports port@0DendpointN-HAport@1DendpointN.HCport@2DendpointN/HEport@3DendpointN0HGetf@11003000 2arm,coresight-tmcarm,primecellD0[ bapb_pclkout-portsportendpointN1H6in-portsportendpointN2H'etf@11004000 2arm,coresight-tmcarm,primecellD@[ bapb_pclkout-portsportendpointN3H7in-portsportendpointN4H,funnel@11005000+2arm,coresight-dynamic-funnelarm,primecellDP[ bapb_pclkout-portsportendpointN5H#in-ports port@0DendpointN6H1port@1DendpointN7H3etm@11440000"2arm,coresight-etm4xarm,primecellDDh8[ bapb_pclkout-portsportendpointN9H(etm@11540000"2arm,coresight-etm4xarm,primecellDTh:[ bapb_pclkout-portsportendpointN;H)etm@11640000"2arm,coresight-etm4xarm,primecellDdh<[ bapb_pclkout-portsportendpointN=H*etm@11740000"2arm,coresight-etm4xarm,primecellDth>[ bapb_pclkout-portsportendpointN?H+etm@11840000"2arm,coresight-etm4xarm,primecellDh@[ bapb_pclkout-portsportendpointNAH-etm@11940000"2arm,coresight-etm4xarm,primecellDhB[ bapb_pclkout-portsportendpointNCH.etm@11a40000"2arm,coresight-etm4xarm,primecellDhD[ bapb_pclkout-portsportendpointNEH/etm@11b40000"2arm,coresight-etm4xarm,primecellDhF[ bapb_pclkout-portsportendpointNGH0ext_32k 2fixed-clockAl|ext-32kHext_26m 2fixed-clockAl|ext-26mHext_rco_100m 2fixed-clockAl |ext-rco-100mclk_l0_409m6 2fixed-clockAlj |ext-409m6Hcpus cpu-mapcluster0core0h8core1h:core2h<core3h>cluster1core0h@core1hBcore2hDcore3hFcpu@530000cpu2arm,cortex-a53DSpsciHIH8cpu@530001cpu2arm,cortex-a53DSpsciHIH:cpu@530002cpu2arm,cortex-a53DSpsciHIH<cpu@530003cpu2arm,cortex-a53DSpsciHIH>cpu@530100cpu2arm,cortex-a53DSpsciHIH@cpu@530101cpu2arm,cortex-a53DSpsciHIHBcpu@530102cpu2arm,cortex-a53DSpsciHIHDcpu@530103cpu2arm,cortex-a53DSpsciHIHFidle-statespscicore_pd2arm,idle-state  HHcluster_pd2arm,idle-state  HIpsci 2arm,psci-0.2smctimer2arm,armv8-timer0P   pmu2arm,cortex-a53-pmu`Pz{|}  8:<>@BDFaliases3/soc/ap-apb@70000000/serial@0#;/soc/ap-apb@70000000/serial@100000#C/soc/ap-apb@70000000/serial@200000#K/soc/ap-apb@70000000/serial@300000S/soc/aon/spi@40030000memory@80000000memory D``chosenXserial1:115200n8gpio-keys 2gpio-keyskey-volumedownVolume Down Keydr oJukey-volumeupVolume Up Keyds o ukey-power Power Keydt oureserved-memory =battery2simple-batteryB`0А.?ۨd>h_> Z=^U<ƘP^H<, !bH@G~ 5LfXMY<bfRn> pn0  ,!x>CMh.  yqd&e2^p/#M'tJZ79O9 G_4C l2Qg-Z-,GFxakxIVvu(E. _ll5  AL[?^(8Ef/27'@+'  "N.z "o%P%a hdjTy1$_z3+/a[XNS8"/l#7kJKN\os?Kp}OBp*oz"[<Z:0+]  W}*1s4}%RBt'Rw-F~:R>_6 !zI\#AIfTbQ9AyAQ#699e6~K4\aT`USS4LDkCSV_Yv@I;T/{ ]$AJBDyCR1%`T;1xtZY]-c ){/$mQ;S<}ij`sX+mn8F?3ENW0rD<nonP T"C\`~ i,HRPk 8,E0f7BO(<LDn{$eH}aW`3q\M &W=U:j@(X Gs \.@xEp-|vJ)D5&Pt/u= c=YXgO*h Qf~w<5 R_p3$hUT2aMk(BP*=;g?CL*wmjFjD@=Zy:BU=(Eis+o7c^Y&Gr +0kc m&VG;qI$4Wu`SoK;dPj}N{g?J9 [Z|7A")FK:Sb^\4)O Yvy|.h*f4LY'rNl8wXg#?#{PE 37J>J{&%2@1dlB tek`5Qm_Vvi!e F8edg>HX"md-]c[!2F1eL8^#Z]6Imjw[3vb ^ah>VMN~|q:M+(*U|=)QC)W1zn2dz5;xbic'[rUD!6%gri%uK.   E@B< N&18 b#$!@$AX@@  B He@ HHLB R "8PL@`HH`  @ bAB@@  ` c1H@ @ *B@ @B aD @@ B $b4J  `( bKX( !  @D@ )h@   }2 P% $H0@ H@A*" KĠBy eP@L1@$"& `R$@P H@A& @DbAX"`   B9 PH@R D A(@ A $9$0$ `` 4@"TEH@C9 &40 8@ pA P`pAA@ X@hA)A(`&"@@!  @P@( @+Q Ԁ0d@H0  @@`H ( @0 `9 Q@  @FHA A@ 2 qP!`a a "A   @@   !`0RjR `D @q D6@P)AB  9@`P @hEa`A@ H ,B`@`* d@A H DB!@@@ DP"B@(FEh&B@0 @I0  0 ˆ RE((@PAPJPD!F P@@ex0zr` "!g2@TN@ HdFÀ3   t 0"  .)GA )$<@0)c7"phD: PB `E JFQG #d q $&"AA 10H(@@ B TNH@4R ($ ED "@ HF@B " P  A0$b@86) !0H@!$@H  %$"  `D  " Zd  aB4@D10g$@b@B0@ @ H  숁@B@0 C-  `0U !"#&'()*+-/1246:<=?@BCDGKLNPRUWY\adfjkoqtvz{|~  "%&'),.12567:=>?@BCEGIJKNPTUWY[\^_abcehijmoqrvxy{~  !#%'(+,-27:=?ABEFINPRUWXZ]`abcefhjlmpqrtvwx{     #%&(*+,-01358:;<=?BEGHIJKMRUVWX\^bdegiloquvy| "#(+-/345679:;=?CFJKLORUX[]`acefimqrstw{}   "%)-.37:=>@DEGHJLMNOQSUWYZ[]_acfhjkosvwxz|~  !#&()-157:<=ABDFJMOPSVWXZ\_abegklm*s<|t#ZuV4[_̦ #rx3h[YYr/ :ns:3R/13Ĉ QyË{-8RG|:=O)Va6'l[{T r1:=O+A~zk-4_](B"=5|.G|s=4-2@ʖ:_8-|l·G|.<#=tgV+ì'|KT _ʖ8f|{K.|gY(Gs|?~|V3f^3<KwNuE׈j$PzVYȈ%=r>Qw8ybUt(9AtK eZiƒ`3f rG|Ñ|./A%9H`[%Kcc"Zb@(k8|RqEE!1K0鼽Pvi@c?Lٝʼn,+#$cPl5y>Mv`\zY* دzYVpA>4Btu7[-̎m&J6߲:o* w#6:zk䚥fHAKn`|i.ɝ= |wH: k|L;^p#ua{|1cf qWm!t~2 S hΩa9 >Ϯ ܷ^LFTAt4NWc5|v24ܢKq#8@ =9?fQE{|- o9|g~2&KqÝH{|\Ew|u"?wqIN7V~.rroI>{𦿋$uuCȕx|m"HE(LzYw-^uk:Uk9@d9m7s[fv@a'"OH*3|@y s$qw|%] ^7vZ=XMW[e-M־6zfiugQ;#mˁ"|gUaVI7 0||`uDe=U:yO7t Ij Һ2(ٽ%T -|(IQ1bD/Î_|>z8oNړעÛPS;#|)]wT< |i|SL2|GF3EpN_9M ;ϝ|JEKP-+k޶Baw )$@@Eqq9ܭP129K39Y:|1 ,GX] ޓvTpN2^?r=ޓ@橉5dr KPT[fޓjޓmj(c$ p|c2(}`,\ TnElsu* H􆳔uJ؄|qbmcٴr0>KωEj2@9ozKD} LZOz}L\tB1kΪ8͓н"Ym\{,*&˂T |4,4Fní qk&`I'b;UŦ̇,3&|O=i |m!UYU`I bn |O=bhѾ nw)ThX9AL5hhZwx# ,ӅyRLnJiQ׋=qј;R+cs? IU Tf $$LR8 y=vט;ue{ 2w{ Y±3~aC+`J)9] Gf9ӛݯڋ;;\Jab AÈʙO۝|ZVvްb>d,)(ϴG@8pFÈ̈́|WH kS|1 o_%t4V.ac1O$sAr]|T|9Kd|Wۓ q߽_| JbYws4/u~|1BfK#♔|ca3u(r89݀AM|z!%u 5sR^_&+\43BE  Z[VGДI-8zRȑ6P QG}Dmw?|7G)1UEHcVs zVؽx+ ]co\jב]TzDuE|ͫbW5r ?]|nE|ݣkB ut.]5r<U+|lsmũl󼖍iN}>|aFs`Y旁B}`|Jm}/&ʃY  @Η;?M%O7+%N+} |1Վ+LBlfV1'*,ږ|Ed|99!X|p7|oc;8/)>Hd|^i;U(Msmږ|9H0/tOd|\ӮKu!Ţ|9NM| -R . ږ|͊>rrfk:>]8/tٽ˜V~vjrO>Fx릮e e K(8!8s sӏhn^-o,vu ;O RJZ[ח^(ĩ! 91A!D=|Ĉ߁i>1$$;Ӛ7Q|{'Si7ѣ"h; |=8X3&N(GiֶOţu=9 \Gy$s`p[!>D|_*EמFG( N_֔ GN$; 70c6;`J|j9Ij0.9D,5? y rt,ap_cĔ84 |Mv+63#ӳ݅x1{`^?ۀA|+67-ʚxh׻dvƟ\,P(]]'2P|kcv88zS@̰umzmjq@|Odr@|o_wope/K)Æ1w@|ke-oĹ@e i5;`Jޔۍ7gII";yhno5৖|h=kQj-j% G>-|!䲢s+o S!C#~}LA΂|9RiVmD{`CƤ-g];-i[)o #x+rk$mDTn7V|V|3aoT-iWҊ|-# CZtb7V|bX=~]0ratE LJ*0k.%$ `k oQ(>Ja. 8|/`VfcM(Rj%F/ Qn?ZL퐗+&{J`f`Ȫ"yiJxY xYğ,ߣ_Ws)o'1aD>W_y4=vhKG#=Yџ,W70|qHΚD%ō=i[v 02Z\0V̷>SAM|,R'A`,p+G2f.9VAJ)LyFauշ>hƏ򽋨 PP)L|,fqD> U|$)~ +W|֌`ςZ|i68^ gIo/(%mc`.̎[&7vRQZke]2ľ^5%V6d!9!R(!8yOei9EHry?`:iJrfBYnr,cr^]xY:4)?Nb voPhE=2vnFu>J3KYfHVrٿ͒},>GX7G3q,:_a.#VrH0J\e)[zsZg3eyA5)txR.v Kon<|(f8~Uq"$Aۖ|~x$Z5s<|@'kaBw)t<|^؄ROZ#' gutZ5Ó VRCB4M[;as6F@h$K?B'iG)uuwכ|J.f|X7t uŨU_x,z'63䉠rM iReg ៩3TGn%")VRo?fm7e)Y]r\ /fmkwz%w>1u!%ٔVL C?o!8h|PK-7ws`fkEe=Zp*ÛbAT?s@iǗlky<ya|򢒱46j4ksp y87$?O/('Z"p.W#P4a| LX4ɤXVӦ0+ }m\P!egQSr~58" #,zu #sUemotBYz8ºe| \&})fRS{C"6pzrDn%o796Xձ/xzxN+G116KK4cKbN!t!9K]Y /Pb]l"i$$X&| bd c Bo͕w94PnrH5 )$(ٜ o{ČK=G>| Wnr&|I˵ LSy|&p4 >-ئVLWd*慽,W6z1?eT3?\ W22lvxMc<X7?X=n]Ée|dPJֽ/lW>ݲĥ9m$H3R;m$Ps^{f[@m$wAm$c(>B\Q)f9QaXTJKgٓו| UhʿaȜ1^t;ŧZY{%%v6% {;/%c0|F|pźO s;Pev J k5%ܖ|O</^َLN؋SyvbI4|_{BnN] > -^4 uծ7w0n5/N=-L"|)"BYF%: w V17w~ )Y2"\H90TsY?|V?;H2vըK7 fB;V? PJ)%~" XsV?8|LI$|7I;lU'ාjK" &oXs*r `}.@Z+}2 w[`y^bM2*_jԿw[ ,X6L52*S@dkNº҈,_,hv.a|߈n$'!gi PTK6MxmOi$|8maʊЪ5 s8(&$ `5 W c* $n  |  D(:$  z F$ 4b' 7`] : ĒR L  A& +$M8!. 8 (i 2 `c5 8(% x:" @G- d 4\  O h  B88.  u\6 ,> @" r pDh Я4 ĵ`" X_b9" |(* \k@t' :tB <$8 d$ Xc hh  4,"& x%4) $`47 $X% h DP BD" F\%. < F$ jW4" .<' v& &" jT) Dq. T4J t^ d,& &@"  Pv9 X2 `5$' 44 J  PB  O'" ,7T# " |S ]2 dt  Z $8 N(" 8:L  A& $P $ \Z z% 5 7s/   >' p`*" jh" )4" LnK  H5 @ t, <l " $O  D~" ,u 4 02(" A Ti : <: Ȕo  Fp D 8 d^p- D% 0 |D  9  4 \Yl" `j/  T(" 0 (7 I |X  Hh6 /   }0- ,'  }/ ph { wL) en8 @fL2 d 0t | [!- 0 O$l <P x7 G3(" :t + 4* o/ " H 0X? y y d+ r0(7 B4 8#  % T5" :0:  %: $D i3 ` ( <' P,Q7 |B  |^: P/ |TF  4, t. <  4  hfH `/ N +78&  h*" p`? ]h"  x, " p/ L (!   h@. 4'  O$    =5 8 H8S. 84K%  4 TZ6 P E|(" `B\    / T(  |?`T% 4   |p<0-" @P  K XZ# %+ u8)% h  D(a C\  G"  J   3t `6*" \k@d ,P  94G C4o" `: $  4 d4 0Hi !Lh" 8^4 d* jh $8 l09 DxD   r( J( U" x  (" 9L& P+0H  ~  >xS" h4% !`p eH  D( N`' D+ P) TT *" od~ T}! $"4w/ X"X $ : ď Tt TI  ,mr n |  y"  D4c }p d^* m,/ (,/   :d \4  `?+ 4  L( tNj# 0#8 P   ^$ L^ ! # <A D # 8 !  ;T_8 8}4% etb @& "{:  DT  ,6+ h " $" `   |S-   (8& p&  0  ,H  4(i hF$F 47 ȕ(E* |ll  -X" " 18  ,|8 ĪL $'4_(" >  (38D% " hZX \ -[ & *(" 0- \J  4~ '" +8n   |Y 4" l D," h  4% 8J$0 e \,^/ |% `  |*@ " i, `, H|, 2  (" 9L I$* 0" P*h& H& \ <" <L. + " $-" 8  - l0 $ D8* g @ Q *" q`5" ,;   B2 $93 F+" ظL 3" * s H !`" + 9/ ( X " 0 $ A" B- | ?8  HH d f8 h<" "' ,' 8 \' 9L" 2 H  N: ̖^-" l! l( `  C! x " ;A) S ( L(: $9 rc } P9 `   , \  p<  h\m9  /  4!. . + 0 $ 1  C( <H tOi K0Q ?  ~  D x (  ą4- ,, X_ X|  P" ' < 4 xD4" T-d d| L x,  d 0 X! > 8_% " P ' 8$8" gxT #  i+ X4 p8S 09  J 40: $   8*d8" e L\1 8 =! 0hd  x j 8^45  \P( t ( U L?  <  i,  T 8 `N  0p+ 4s> \<   pI" y/% +" H h9 H@! h P(  e  L7X I@7 B L' 7   `N O )" pO M- AO  "  Y % @ p+" x dwLv# ! M,t"  |% $jx}  ) [(^ |,] wp| D.  ly 8 0. 0 e 8(!1   " \@)" Z$* Dq`) [T  \:d " h@  0 # W D   l4 >+ < ` -/ |   >  -`7 M+ " 89: (<    0<  4G |Sd 9  Il  4) \` r. 0  <  <4 1S ]( n CL$*" \k@\8 e - P tH g" d,Y p D 8  \B H2 ,8X 0  D( 0 3 +) \D L< P 7  ~ y : |L | L - p$H u  d` АO " @$! , 9 |`V) ̶8" $" |X/  7 M4  3$y) LY`7 & X'|8! ha 0F' ,7T9" 8! & 4M" (00 Y n   m"  tP/ tU  ~D/ ԑH   8  a ; L%   88 w [4 M$[  <U% >% x  d L  |  ܴ @< 0I$`# \- ^8 hh E5 7 (c,"  D-Xy eD3" <6_  A  0 L   o(2 X!  L4" 68 X9  `3 + -  4" 82\7 At  2D ,d T]% <7 tB . +" d*H E l!(02 lP L   8Lh $  h&t%  X  (:4 Q ?9 4 PC / $ *)" Q`S  L58. @ $# @ P2  @$ 0@) H0" !," H| (<: D3" P*h LH(  LL! 44-  pt  T  '" 8 <7 M0" # < 48/  }  YH" ) D6 >g: d% ( `8 hX ( X`8 $N  \>,?!. z" 8[  9   ;:  P  T~,C% xXH. 6 ?T: <$ ( i L," H T D3 G," H| lj4" `/ TX`9 | $" 86 Ao u  EX & "D rX+ $4 [4m" *  <`% L"  D p K$ Ыl% "^" ]Hs% , ؄`" <X+ 4 $+' p- +" D C    ,j0 ` ^ * ylI)" hTT8 l}t?: f  P Ф D  L X ~* 0nL$ M9 (40 (V: $ x$.  G $,  U 2   &tj' 7M  4Q  px" 9 ȋ n( ?x=' 6`V8" b0U P'5 F {" xD5 L" h9 H,A  " p@  6L8 lN  4u1  $ DI  " 4v E  < 8M 8 f  J& T$3. $XE 8X  / t T, 0  3 +  3   r @  BT.  H X# P  * p`: 0q: | P hX \C< lw y- d# |: r i%  QH#   t lS$i t|H" x=S P@' 8  d  2(*8 S !$% \ D) xD 8O  = ?X: tD9 X, 4B@Z O# |J  |, $p(" L(. l  @8 N@ |   /8 N4    :   d& P& 3 *  $  x- \ ,  @Z" : h01   8,' @8%" X"X  ?|5 P9()6 >," ܓ4(" L(+" 0  } ( `B\  * fX6 ?3" *  $9 |  P: T7 dCT 1 z& d$9 ԅ4` M   8~ )" \D  D(  s P `" ( 8 Pz" x  2   ^ @P+ q`4  @/ X/ B pO 8]" 8 HjX u$n  @6 l B ' 8w  X* |n, L8V#"   `   xL   @(  0 Ț(r2  @u _ \? lJ `=. 8    x` l$ 8!  G  8~  LO v <  '# 4 D2  $ W DF$?" \  p@U v   8 4/   $ 8" DTz6" H> Q , $ (  dD<X  @=   `@ = )" tN P   b& \$ ` H  \ <L T-& # c 0|-"  ؐ/ ,z  th-" Px* olx xt xy+ xK `2 0. 0^4 }  AR l ,J XQ @,i * " x@   t " `@" >" 4" dh /  p  5 :." \L @N ( pc. P l +  . \L PV8- ( pVS d( 4: D  $#. . D+ l}4 T1P&" X"X< n" t D  $Q$ 0 M0s  @$(+   C Pp = 0q `x 4&" H*| Ѝl  8 t*  ,a' pwx8 B@{' 7" 4` & |& _" i , c Է& ** od ~ P    D<, H`  l<. y} LT9 ~X P @  |;X:-" K. ,(. H( `?1 7 4JX, XB# `+" X4, <+ @ \ d" & %\y. " H> , + D1 8  [2 D{9 Lf ȏ8 dy (@19 0l 08' 08. 4 - L" H" ." @  ȂX % |W+ E4  ,,  d  |`1 h  ! )" \ZH - & \& h' `8  $,   ,  " XO $h<f q(" ?xO:  НX) 4d x ( ' 8+ I  m$ d  z " * oO3 0 0 (`)" X  = ," " ^" I( <j C|t  U  XP  : , ! :( PTp(" ?x=   " E,="  o,  L4 + d& ,yx= \, 8:L )-" p=% 0H" (U PZ6 DT2 W) \W`+ 4D t,!   (c! " 4u" > d$ ]@  h4 q @ Hr $8X T < Y ( \  t    " (  x:)" Sd" `, H   s]    \L# PI $ H s  H? @B) `:  \ <J T;. |< |  \ P1 A HB\  $p`1' 1p)" LY`4," Q XX. L <u7 B$ X |@& & \T [ @"  $ 4(" LLl*" $n  4@  {Dj. # K8. [. lL  020 8  =  9 4v - X0pthread_mutex_locksem_post_pthread_cleanup_pushpthread_mutex_unlocklseekfcntlpthread_cond_waitpreadpwrite_pthread_cleanup_popfdatasyncpthread_rwlock_rdlockpthread_rwlock_unlocksigfillsetpthread_sigmaskpthread_rwlock_wrlockpthread_mutex_initpthread_cond_initsem_initpthread_attr_initpthread_attr_setstacksizepthread_attr_setguardsizepthread_attr_setdetachstatepthread_createsem_waitpthread_cond_broadcastgetpidgetuidaio_readaio_writeaio_fsyncaio_returnaio_erroraio_cancelpthread_cancelpthread_rwlock_tryrdlockpthread_rwlock_initaio_suspendpthread_testcancelclock_gettimelio_listiomalloccabshypotcabsfhypotfcabslhypotlcacoscasincacosfcasinfcacoshcacoshfcacoshl__signbitlcacoslcasinlcargatan2cargfatan2fcarglatan2lcsqrtclogcsqrtfclogfcasinhcasinhfcasinhlcsqrtlcloglcatancatanfcatanhcatanhfcatanhlcatanlccosccoshccosfccoshffabscopysignfabsfcopysignfccoshlccoslcexpcexpfcexplcimagcimagfcimaglconjconjfconjlcpowcpowfcpowlcprojcprojfcprojl__fpclassifylcopysignlcrealcrealfcreallcsincsinhcsinfcsinhfcsinhlcsinlctanctanhctanfctanhfctanhlctanlconfstrfpathconfget_nprocs_confsysconfget_nprocsget_phys_pagesget_avphys_pagesgetrlimitstrcmpstrnlenstrncmpcrypt_rstrtoulsetkeyencrypt__ctype_b_loc__ctype_get_mb_cur_max__ctype_tolower_loc__ctype_toupper_locisalnum__isalnum_lisalpha__isalpha_lisasciiisblank__isblank_liscntrl__iscntrl_lisdigit__isdigit_lisgraph__isgraph_lislower__islower_lisprint__isprint_lispunct__ispunct_lisspace__isspace_lisupper__isupper_liswalnumiswalpha__iswalnum_l__iswalpha_liswblank__iswblank_liswcntrl__iswcntrl_liswctypeiswgraphiswloweriswprintiswpunctiswspaceiswupperiswxdigit__iswctype_l__wctype_liswdigit__iswdigit_l__iswgraph_ltowupper__iswlower_l__iswprint_l__iswpunct_lwcschr__iswspace_ltowlower__iswupper_l__iswxdigit_lisxdigit__isxdigit_ltoasciitolower__tolower_ltoupper__toupper_l__towupper_l__towlower_lwcswidthwcwidthtowctrans__wctrans_l__towctrans_lalphasortstrcollclosedirdirfdfdopendirfstatcallocreaddirreaddir_rrewinddirscandirreallocqsortseekdirtelldirversionsortstrverscmp___environ__progname_full__progname__libc_start_main__stack_chk_guard__stack_chk_failclearenvputenvunsetenvsecure_getenvstrlen__errno_location__strerror_l_Exitabortraise__assert_failat_quick_exit__cxa_finalize__cxa_atexit_finicreatopenatposix_fadviseposix_fallocate__flt_roundsfegetroundfetestexceptfeclearexceptferaiseexceptfegetenvfesetenvfegetexceptflagfeholdexceptfesetexceptflagfesetroundfeupdateenvscalbnfmodlscalbnlfabslprogram_invocation_nameprogram_invocation_short_name__uflowftokmsgctlmsggetmsgrcvmsgsndsemctlsemgetsemopsemtimedopshmatshmctlshmdtshmgetdlsym__tls_get_addrdl_iterate_phdrdladdrdlclosedlerrorvsnprintfdlinfodlopencuseridgeteuidgetpwuid_rdaemonsetsidvwarnvfprintffputsperrorvwarnxverrverrxeuidaccessfaccessateaccessnftwfutimesfutimensgetdtablesizegetloadavgsysinfogetpagesizegetpasstcgetattrtcsetattrtcdrainendusershellfclosesetusershellfopenfmemopengetusershellgetlineisastreamlutimesutimensatulimitsetrlimitendutxentendutentsetutxentsetutentgetutxentgetutentgetutxidgetutidgetutxlinegetutlinepututxlinepututlineupdwtmpxupdwtmputmpxnameutmpnamevallocadjtimexclock_adjtimecapsetcapgetchrootclonecopy_file_rangeepoll_create1epoll_createepoll_ctlepoll_pwaitepoll_waiteventfdeventfd_readeventfd_writefanotify_initfanotify_markflockgetdentsgetrandomgettidinotify_init1inotify_initinotify_add_watchinotify_rm_watchklogctlsem_destroymembarriermemfd_createmlock2mlockinit_moduledelete_moduleumountumount2name_to_handle_atopen_by_handle_atpersonalitypivot_rootprctlpreadv2prlimitprocess_vm_writevprocess_vm_readvptracepwritev2quotactlrebootremap_file_pagessbrksendfilesetfsgidsetfsuidsetgroupssethostnamesetnssettimeofdayclock_settimesignalfdstatxfstatatstimeswaponswapoffsync_file_rangesyncfsteetimerfd_createtimerfd_settimetimerfd_gettimeunsharevhangupvmsplicewait3wait4lgetxattrfgetxattrllistxattrflistxattrlsetxattrfsetxattrlremovexattrfremovexattrbind_textdomain_codesetstrcasecmpcatclosemunmapcatgetsbsearchcatopenstrchrstrcspnbindtextdomaindcngettextdcgettextdngettextdgettext__duplocale__freelocaleiconv_openiconvmbrtowcwctombiconv_close__nl_langinfo_l__nl_langinfolocaleconv__newlocalesetlocale__strcoll_lstrfmon_lstrfmonstrtof__strtof_lstrtod__strtod_lstrtold__strtold_l__strxfrm_lstrcpystrxfrm__uselocale__wcscoll_lwcscmpwcscoll__wcsxfrm_lwcslenwmemcpywcsxfrmaligned_allocmprotectmalloc_usable_sizeposix_memalignreallocarray__fpclassify__fpclassifyffloor__signbit__signbitfceilceilffloorffmafmaffmaxfmaxffminfminfllrintllrintfllroundllroundfnearbyintnearbyintftrunctruncflog1plog1pflog1plcbrtcbrtfcbrtlceillexpm1expm1ferfcerfferfcferflerfclexp10exp2pow10exp10fmodffexp2fpow10fexp10lmodflexp2lpow10lexpm1lfdimfdimffdimlfinitefiniteffloorlfmalfrexplilogblnextafterlfmaxlfminlfmodfmodffrexpfrexpfilogbilogbfj0y0j0fy0fj1y1j1fy1fjnynjnfynfldexpldexpfscalbnfldexpllgamma__signgamlgamma_rlgammaflgammaf_r__lgammal_rlgammalllrintlllroundllog10log10flog10llog2log2flog2lnannanfnanlnearbyintlnextafternextafterfnexttowardnexttowardfnexttowardlremainderremquodremremainderfremquofdremfremainderlremquolscalbscalbfscalblnscalblnfscalblnlsignificandsignificandfsincossincosfsincosltgammatgammaftgammaltruncla64ll64a__xpg_basenamedirnameffsffslffsllfmtmsgpthread_setcancelstateforkptyopenptypipe2login_ttywaitpidget_current_dir_namegetcwdstrdupgetauxvalgetdomainnameunamegetentropygethostidfwriteoptind__optreset__optposoptargmbtowcoptoptopterr__posix_getoptmblengetopt_longgetopt_long_onlygetprioritygetresgidgetresuidgetrusagegetsuboptinitgroupsgetgrouplistioctlissetugidlockfsetmntentendmntentgetmntent_rfgetsfeofferrorgetmntentaddmntentfseekhasmntoptstrstrlstatptsnameposix_openptgrantptunlockptptsname_rrealpathreadlinksetdomainnamesetprioritysyscallgmtime_rstrftime_lsocketconnectsetlogmaskcloselogopenlogvsyslogwordfreewordexpfdopenexeclmincoremlockallmmapmremapmsyncmunlockmunlockallposix_madviseshm_openshm_unlinkmq_closemq_getattrmq_setattrpthread_selfpthread_detachrecvmq_notifypthread_joinmq_openmq_receivemq_timedreceivemq_sendmq_timedsendmq_unlinkc16rtombwcrtombc32rtombmbrlenmbrtoc16mbrtoc32mbsinitmbsnrtowcsmbsrtowcsmbstowcswcsnrtombswcsrtombswcstombswctobacceptaccept4binddn_compdn_expanddn_skipnamesethostentsetnetentgethostentgetnetentendhostentendnetentether_aton_rether_atonether_ntoa_rether_ntoaether_lineether_ntohostether_hosttonfreeaddrinfogai_strerrorgetaddrinfohtonsgethostbyaddr__h_errno_locationgethostbyaddr_rgetnameinfogethostbynamegethostbyname2gethostbyname2_rgethostbyname_rfreeifaddrsgetifaddrsinet_ntopstrcatif_indextonamentohsgetpeernamegetservbynamegetservbyname_rgetservbyportgetservbyport_rstrtolgetsocknamegetsockopth_errnoherrorhstrerrorhtonlif_freenameindexstrncpyif_nameindexif_nametoindexin6addr_anyin6addr_loopbackinet_addrinet_atoninet_networkntohlinet_makeaddrinet_lnaofinet_netofinet_ntoastrspninet_ptonlistenstrtoullgetnetbyaddrgetnetbynamens_get16ns_get32ns_put16ns_put32ns_skiprrns_initparsens_name_uncompressns_parserr_ns_flagdataendprotoentsetprotoentgetprotoentgetprotobynamegetprotobynumberrecvfromrecvmmsgrecvmsgres_initres_mkquerysetsockoptsendtosendmsgres_queryres_searchres_querydomainres_send__res_statesendmmsgendserventsetserventgetserventshutdownsockatmarksocketpairfgetgrentfgetpwentfgetspentfreadgetgrnam_rgetgrgid_rsetgrentendgrentgetgrgidgetgrnamgetpwnam_rsetpwentendpwentgetpwuidgetpwnamsetspentendspentgetspnamgetspnam_rulckpwdfputgrentflockfilefunlockfilefputcputpwentputspenterand48drand48lcong48nrand48lrand48jrand48mrand48srandrand_rsrandominitstatesetstateseed48srand48_Forkvforkexecvexecleexeclpexecvpexecvpefexecvesigismemberposix_spawnposix_spawn_file_actions_addchdir_npposix_spawn_file_actions_addcloseposix_spawn_file_actions_adddup2posix_spawn_file_actions_addfchdir_npposix_spawn_file_actions_addopenposix_spawn_file_actions_destroyposix_spawn_file_actions_initposix_spawnattr_destroyposix_spawnattr_getflagsposix_spawnattr_getpgroupposix_spawnattr_getsigdefaultposix_spawnattr_getsigmaskposix_spawnattr_initposix_spawnattr_getschedparamposix_spawnattr_setschedparamposix_spawnattr_getschedpolicyposix_spawnattr_setschedpolicyposix_spawnattr_setflagsposix_spawnattr_setpgroupposix_spawnattr_setsigdefaultposix_spawnattr_setsigmaskposix_spawnpsystemsigactionsigaddsetsigprocmasksigemptysetwaitidfnmatchglobglobfreeregfreeregcompregerrorregexecsched_setaffinitypthread_setaffinity_npsched_getaffinitypthread_getaffinity_np__sched_cpucountsched_get_priority_maxsched_get_priority_minsched_getcpusched_getparamsched_getschedulersched_rr_get_intervalsched_setparamsched_setschedulersched_yieldhcreatehdestroyhcreate_rhdestroy_rhsearch_rhsearchinsqueremquelsearchlfindtdeletetdestroytfindtsearchtwalkppollpselect_longjmp__setjmp__sigsetjmpgetitimerkillpgpsiginfopsignalstrsignalsetitimersigaltstacksigandsetsigdelsetsigholdsigignoresiginterruptsigisemptysetsiglongjmp__sysv_signalbsd_signalsigorsetsigpausesigsuspendsigpendingsigqueuesigrelse__libc_current_sigrtmax__libc_current_sigrtminsigsetsigtimedwaitsigwaitsigwaitinfo__fxstat__fxstatat__lxstat__xstat__xmknod__xmknodatfchmodfchmodatfutimesatlchmodmkdirmkdiratmkfifomkfifoatfstatfsfstatvfsumask__overflowvasprintfclearerrclearerr_unlockedvdprintf_flushlbffflush__fsetlocking__fwriting__freading__freadable__fwritable__flbf__fbufsize__fpending__fpurge__freadahead__freadptr__freadptrinc__fseterr_IO_feof_unlocked_IO_ferror_unlockedfflush_unlockedfgetcfgetlnungetcfgetposfgets_unlocked__fgetwc_unlockedfwidefgetwcfgetwsfgetws_unlockedfilenofileno_unlockedftrylockfilefopencookiefputs_unlocked__fputwc_unlockedfputwcfputwsfputws_unlockedfread_unlockedfreopen__isoc99_fscanffseekofsetposftelloftellvfwprintffwrite_unlocked__isoc99_fwscanf_IO_getc_IO_getc_unlockedfgetc_unlockedgetchargetchar_unlocked__getdelimgetwgetwchargetwchar_unlockedopen_memstreamopen_wmemstreampclosepopen_IO_putc_IO_putc_unlockedfputc_unlockedputcharputchar_unlockedputwputwcharputwchar_unlockedremoverenamerewind__isoc99_scanfsetbufsetvbufsetbuffersetlinebufvsprintf__isoc99_sscanfstderrstdinstdoutvswprintf__isoc99_swscanftempnamtmpfiletmpnamungetwc__isoc99_vfscanfwcsnlen__isoc99_vfwscanfvprintf__isoc99_vscanf__isoc99_vsscanf__isoc99_vswscanfvwprintf__isoc99_vwscanf__isoc99_wscanfatofatoiatolatollecvtfcvtgcvtimaxabsimaxdivllabslldivqsort_r__strtoull_internalstrtoll__strtoll_internal__strtoul_internal__strtol_internalstrtoimax__strtoimax_internalstrtoumax__strtoumax_internalwcstofwcstodwcstoldwcstoullwcstollwcstoulwcstolwcstoimaxwcstoumaxbcmpbcopyexplicit_bzeromemccpymemmemmempcpymemrchrrindexstrrchrstpcpystpncpy__strcasecmp_lstrcasestrstrncasecmpstrchrnul__xpg_strerror_rstrlcatstrlcpy__strncasecmp_lstrncatstrndupstrpbrkstrsepstrtokstrtok_rswabwcpcpywcscpywcpncpywcsncpywcscasecmpwcsncasecmpwcscasecmp_lwcscatwcscspnwcsdupwcsncasecmp_lwcsncatwcsncmpwmemsetwmemchrwcspbrkwcsrchrwcsspnwcsstrwmemcmpwcstokwcswcswmemmovemkdtempmkostempmkostempsmkstempmkstempsmktempcfgetospeedcfgetispeedcfmakerawcfsetospeedcfsetspeedcfsetispeedtcflowtcflushtcgetsidtcgetwinsizetcsendbreaktcsetwinsizecall_oncecnd_broadcastcnd_destroycnd_initcnd_signalcnd_timedwaitcnd_waitmtx_destroymtx_initmtx_lockmtx_timedlockmtx_trylockmtx_unlockpthread_atforkpthread_attr_destroypthread_attr_getdetachstatepthread_attr_getguardsizepthread_attr_getinheritschedpthread_attr_getschedparampthread_attr_getschedpolicypthread_attr_getscopepthread_attr_getstackpthread_attr_getstacksizepthread_barrierattr_getpsharedpthread_condattr_getclockpthread_condattr_getpsharedpthread_mutexattr_getprotocolpthread_mutexattr_getpsharedpthread_mutexattr_getrobustpthread_mutexattr_gettypepthread_rwlockattr_getpsharedpthread_attr_setinheritschedpthread_attr_setschedparampthread_attr_setschedpolicypthread_attr_setscopepthread_attr_setstackpthread_barrier_destroypthread_barrier_initpthread_barrier_waitpthread_barrierattr_destroypthread_barrierattr_initpthread_barrierattr_setpsharedpthread_exitpthread_killpthread_cond_destroypthread_cond_signalpthread_cond_timedwaitpthread_condattr_destroypthread_condattr_initpthread_condattr_setclockpthread_condattr_setpsharedthrd_detachthrd_equalpthread_equalpthread_getattr_nppthread_getconcurrencypthread_getcpuclockidpthread_getname_nppthread_getschedparamtss_getpthread_getspecificpthread_timedjoin_nppthread_tryjoin_nppthread_key_createpthread_key_deletepthread_mutex_consistentpthread_mutex_destroypthread_mutex_getprioceilingpthread_mutex_setprioceilingpthread_mutex_timedlockpthread_mutex_trylockpthread_mutexattr_destroypthread_mutexattr_initpthread_mutexattr_setprotocolpthread_mutexattr_setpsharedpthread_mutexattr_setrobustpthread_mutexattr_settypepthread_oncepthread_rwlock_destroypthread_rwlock_timedrdlockpthread_rwlock_trywrlockpthread_rwlock_timedwrlockpthread_rwlockattr_destroypthread_rwlockattr_initpthread_rwlockattr_setpsharedthrd_currentpthread_setattr_default_nppthread_getattr_default_nppthread_setcanceltypepthread_setconcurrencypthread_setname_nppthread_setschedparampthread_setschedpriopthread_setspecificpthread_spin_destroypthread_spin_initpthread_spin_lockpthread_spin_trylockpthread_spin_unlocksem_getvaluesem_opensem_closesem_timedwaitsem_trywaitsem_unlinkthrd_createthrd_exitthrd_jointhrd_sleepthrd_yieldtss_createtss_deletetss_set__tzname__timezone__daylighttzsetasctimeasctime_rclock_getcpuclockidclock_getresclock_nanosleeplocaltimelocaltime_rdifftimegetdatestrptimegetdate_errgettimeofdaygmtimemktimestrftimetimegmtimer_createtimer_deletetimer_getoverruntimer_gettimetimer_settimetimespec_getutime__wcsftime_lwcsftimeacctctermiddup3getgidgetegidfchdirfchownfchownatftruncategetgroupsgethostnamegetlogingetlogin_rgetpgidgetppidisattylchownnicepipeposix_closepreadvpwritevreadlinkatrenameatrmdirsetegidseteuidsetgidsetpgidsetregidsetresgidsetresuidsetreuidsetuidsymlinksymlinkattcgetpgrptcsetpgrpttynamettyname_rualarmunlinkatusleep_dlstart_dl_debug_state__dls2b__dls3_dl_debug_addrlibc.musl-aarch64.so.1h gx ~    *  D   +    |0 W8 %@ ^H ;P X f A? |Dh9^{pG<    pG< pG< pG= pG"= pGB= pGb= { *4bk*S4       <#"#@ Z!?@ ;<a+:  d!T8 ' #>mT'd#>ǟ">!R<"ǟ@ "R"..T` #]  T#>} T#>.ǟR"d #9..T#?&T # ">"?R' ! !_">T` #.F T} '#>T.X w #>T">.ǟR"">MT #>T #9T#?FT@ "T` #'Td. #>MT{ `#>MTZ @#>MTd..#>.T.d.d.d..   <cbc@`Za?@`;|a+z ` daGT8`g`#~TOg#~nǟ"~Rbǟ@ bRby..T` c\`F T#~}`T#~nǟRbO #yn..& T#FT c b>b?Cg a a_"~T/` c.T}`g#~T/nX`w`#~T"~nǟRb"~MT`#~T #y&T#FT@ bfT` c'TO/n.`#~MT{``#~MTZ`@#~-TO/n./.#~/.TC`nO/n.O/n.O/n.     { AN=+= =/=B3=A7=E =F==NN]q= NXqjT+@C@K/@@G@#=@O@2=E5@2#==qT@2'==8 5@2'==qMT@2#=3R=*4`R3RЄ@2f'==/@$@4`R@f=$@ N 5@3@=@7 N&5@2==#@;'@@? `5@2==q T@2=3R= 5@2==qǟ`R@.=ff@'@@=&@ N 5 = N `5=== ==N=+ @0==B== =N=@0== @C{Ψ_@2'==oqǟ@2#==gqǟl@o@ === N 5#@;'@@?@2== @5@2==IqmT@.=f@C#@K@@G'@#=@O@2=` 5@2#==*q T@2'=3R=R 5@2'==qǟi@2'==D 5@2'==qT@2=S@CW@@G#=2 5@2#==q-T= N' 5 = N# 5= N 5= N 4'@o@ ==N@2=[@C_@@G#= 5@2#==qT@2=c@Cg@@G#= 5@2#==qT@2=k@Co@@G#= 5@2#==qlT4/@o@ == @o@ = ='@o@ =@2=== @5@2==qmTB@._=f/@o@ ==@o@ ==@o@ = =v      f f! D;$F)p@pH}'} KE BpC}i}_` TqT_ !TqLTMql2TR!K$%)!? !$!ˡ ?@ *TdjRPT``"T$ @T!c4dM4R   DBdj_aTR*DPT`6Tg!%  T% 0 *@B4ҟ6TqM%T!?ڣqmTD q2T_`Tq Tql8TR!K$%)!? !$!! 5B_@4T @dLAAӢ q/T_Tq-Tѿc@dڄ0Q|@RKc Ě $! Ě_L TKK#$Ě! Ś?! Ś!$Ě ?@@Tdj RPT*dMRA!4!T "$*/+ @C!  eM_ TqlTMQdM5$BҀR_ TR B8a  *cCF4T`0T Aɓ? TdjPT   ՊR *a cC_Tc@B8B< *e@ gE) џƔTR!K#%К)!? B$КB_@TR!KQ !)$К?!(C?@!TR_6R)!$R4٧jRD) !=1 cG!Q$!@j2P T`@T" @_`T!7 RI@)@_(CRҊ! 7B 4JR “C@'7   f$f%D;gӦhpa@Ӭ@Ӡp T TT R_֋ @@(T{ R R{_? BTRkThJ__J @?ITT T k_  f$f%D;fpl@aӨ@өpӠ T? `Ti _f ?!T?_և?T? RZ_'I?T TThTqBTTqRB(T_R_ ?!T R{ R {_?T   f$f%D;gpl@aө@ӪpӠT_`TG+_) g ?T? RZ_ֆ_!T+k{ R @R{_?T lTT TqBT TqRB)T?_R_?aT R?T    {f$f% D;*H!@Bp4R_kT!*!MC}Rӫ@Ӈpb4R_ kT*B c)LTJkē@bM}  T-ҥ!ΚaTHҿ$TҿT`Ӓ`Ӆ|S4`Ӈ}[QV`Ӑ}|@~%E}B|.҄~q|3B|}LVF R~|@G~1BA|@ƀ ^ BŀER̓M!eЁ! 7'|@! 7@@&`LL7! 7!75@@BD4A8@d@BFF!Aӟ*TSA[B7Fӫ@ӇpRO5bb mڥ=Ѱ RBKk!К$šB Кm  ) TJ@ LT     T T@ Td@HmTc@T"j2_P@%T_`@(T @H_`T!4a!Kd@ҟlT8& Ɠ!C8bc(TJ@ P>&'<f RBK! ƚ$šA ƚcRҎ/R@)LTJ@ 0 lTHR҄<*#@g  X6R4"TB CГBA T$jRP!T &RC ÓBC?@TB@!8!<*E@`g%gR~f0Z@RfC(5S@R(LA"LS@R(LAFCRQ(L @=CӄX6RH3`g @{¨_       Հ6?!D;ՠ6.=!D;6µRr?'^'+>!D;Հ6D <!D; 6.';> D;_$_T_T_@T&@44?_6&@__ 6&@__NA&@9_8(hn89h.88_ &@($A,~4_T$,>4?_ .4?_ ,4@ @|!B&A 4($B*,C,4ĩB@iTf&Ah$($Bj,*,Cl4,4ĩBT<|f}h$$~j,,l4<<=$>,?_  N_T_@T<N6_ Ղ6_ւ9B6x_=07?_ւc@B@``BT>?_{S[cksl@@uc@C@gA*RX0a;@$RR@; s S)_A< `@|;4!:#t4qT` @5+` @4*CA"R*A "R!a Rb `*aR (J!@"0@_qT` &K@+`@4*A+@qTDq TqAT*A * B*@|@_R3!Rp#SA[BcCkDsE{̨_*o@|@k@{[7UkB?s\S**c,Gw~x^Pz>H{ Xw}haA}ha a}hab%*-SAcCkDsE ?!R5B?,SAcCkDsE[B{֨_ֶB?,*!R @7R.V-G@G~}jwGhw}jx@GhwhxZ}jzGhwhxhz{}h{b)B?,OSAcCkDsE` Y?B?Ҩ,8 O?j7G6hw G?j8G hwhx >?j:G hwhxhz`!4?G hwhxhzh;)#A!9 _ 5)B?p,@R-SAcCkDsEv{S`[*UB?,y)`@qaT`@ABB9!G|\P@rB cA!G!RCCR-`RrBc%5@R-/5cC#@SA[B{ݨ_(`@q,Tb cRr>@R,cC#@Q`){R[SĢc@@b~=]@t^ =t@uLE)x@e<_57.@c`_a5qaTCc9R`_a55b( @@ @@ !@qT4 qA T@;տ;@;#@[BSAcC{ШH !{@T!H !{@T!H !{@T!:Qx)OaC<?= ?,?#@*HჀOSA[BcC{Ш_R!R*Ax ?@qaT*{_R{_<@_ֿ;p@x_{S*[c @kTC#CWRR,,>R* 8@3R'@$qZb__qTt5@ #RH.@q;Ղ5 @v@?T @c(@R+#@*SA[BcC{ը_{ *;A!|N5* @{¨_ҢqTT{A?| S`B?*5@G`B? @{¨)@@?*@@?*@ @{¨_ք T@c  T@ hc`B _ T@ hchb@!hc!hb?h  `T@{S*[co+7N4RRus" T`@CqTx@k R4@?GBs!;T?RR?!;s"T`@ q TkDRSA[BcC{Ȩ_ֵ4qTbRr_?qT5;yRr+z5@;U[`9_55*;s" T`@q T+@kD`9+@$Rc***qTqTqTsR/kD{S@[R@kT*i 5skTzsqTqz3*5*SA[B{è_R{S@@4qT@ @ ?OaC44@qT@#=t@@ =~v`d*?[BcC' #A!TAC!R R]*B"@5@RR*[BRcC*SA{ب_{!?@G3m+@`8 *;m[@``A`f @!t$K!Q g  |@ !|K!!, S?g, SW`_gW`_>W @``A` l n o|@` @A`!l3Bm!n;Cm!o@{Ĩ_{wRAdr?'3m+@ 8? *;m]@ `A & X!|S2!LQ '  |@ !|K!?'W7'W7:W @ `A  , . /@  @A !,3Bm!.;Cm!/@{Ĩ_[ccc{m !@a{DG;`_{{`R!@! r'{; _{ 3f>@`@a @C`C`{¨_>@a@`{ 3&6>@ @! @C C {¨_>@!@ {  NIA*s4@#@ NA'= @{Ũ_@#@ =A'={Wx>N.NN=fsA =WA{è_?@`@`C`P?@ @ C LQN NNQ(a8a{pn |?m.@`~@`;!n8n!(o@`?Am @`{¨Ca_{p.?m.@ "@ (."8.!{ <!};?!@b28.!(/@ ?Am @ {¨C!_@` @a{C`@`{ @`Ca_@  @!{C @ { @ C!_{ =N@ @A= =@ @ NA={è_{=@N=N@.==.== =N=<= =N===N=?f N A={Ĩ_{n?m`/@`!a(`;n;aDPl }HG#`JT +}n^ 9{){LG a^PG ` oTG | })n(n {;|`;};r@`jA`?Am!{¨_;}{.?m /@ !!( ;.;!P,`R r'>?# JT%+>8.9?)? g">" = /g "XG+.). { |  z;{9}9~Abv@ *A ?Am!?{¨_;>@` @a{C`@`{ @`Ca_@  @!{C @ { @ C!_{ =N@ @A= =@ @ NA={è_{ =N=@.NN==0= = NN=)N==NN#=P.==/=p=o= 7.==@/=N==/==N=N/====@. ==N==@. ==NB =x@  = N==0uNA  ==0 ==dN @={Ǩ_ր.=@` @aC`@  @!C f$f{"`Ӏ`_k?mǟq@`.@`Cz, T*`47m@_kMT ȅRr_k T uRr_k,T=JA`c-@`@`A`nT@`A` a7AmCU n@U @`A`T@`A` ~@`A`|@`A`7Am a?Bm{è_JY @`lA` T @`A`A` l~Tg @`  oT@`A` 7mG*G5k T o9n)o n n7Am.8a/ ncT@`7AmA`&`*5 `_kTL*&5A`/ST@`A`7Am!n(`/ aJT@`A`7AmqCzT 8a7Amo_k TL `*5kT.8aA`7Am o @`HT@`A` m!&&{"xax?k;m䇟q@ /@ B@zH TB4޷?kITBR Vr?k T{S@"@C`9qHTRbBKR@B}ӂ*"cB@!"8@B|S"8@y"8D@B|S"8T@SA{è_RBKbRl{k!҄RkhT[bG@!6S*I5csSA[B??@? `TC@ha8!q@zT{@ O`Oz~@=@gz 7[<~7@_AT7@b@#3;GJFs[=<`aTF*;@G@O@0BQ-BqHTqbQBlZB "9~S4"T7|UR\Ur@.F;@y 5V52qTHO@hhRe1$A`j48.3@[YS 5 5R~ ?=sapSs K<KK6[ T{Hb8"8|S?aTc a`T@9@9@9b8`8f8B\S@@**B9!A]9CB|SK@#Hc8!Hb8U9Y9SA[BcCsEkD{Ѩ_GG{S! 2@TsB4SA{ƨ_ց!b4&@9ߐqT&@94'@94qTqTqTqTbqTX& @9ߐq!TqRGzT&{' S[$@9!"_8#_8&_8<S`* *B*DTC@L)M)N)@ @*EHJ BJ! ! 8*M aL!DJ *!(CJ*****aTLA)HB)@C)*8D)*******B__B B * **d  ***C J,b*av J !4JB B*fJJ!XJ!  Tc  ) k    J ) ,) )()@SA[B{Ԩ_{S[@rTRsK*T7˵qz shaT@@SA[B{Ĩ{S@"@C9qHTRBKRm@B}ӂB ڂ2@"c @9!"8@y"8@B|S"8D@"8T@SA{è_RBKRL${S! c? `qTb!6k*(5x!7!5`*@9Q$qhTC`*BR*@@9?qaTTϒT[@c! 7}R[qR[BTkv8q@zTqJzT[BkDSAcC{ب_ր~@s[gz =C=7<<7@_T7@@;Cr I ==<<T{F*C@SqT{QQqBhZB ~S4T6R ==<<kT{CR ==<=a |? = kATR`a= /==ao>=a |? = kB9c@kTCQYqHT*S755Mz@k`T!/RowUR!WUr |a~?=apSa9K`_= K?=oKc==`g= =k=T7;@ 55***QqHT*o@5Q qHT*?@@c!7h ЉХ a$$c a T@9@9@9b8`8f8B\S@@**|S?THb8"8C9!$Y9CB|S?@#Hc8!Hb8Q9U9cCsEC@|C@{S;Ѐ!#$3@TsB4SA{ʨ_ց!!v4{!c  a@8!! B*B9KT!  TR!@{¨_{*RS~R[KKTb@8%RB B *%4Kv~RROK Tb@8%RB B !*Re4O4C@B0 RE@cD@@Bed<_!T@3#R$RK@KT$!8O@KT $`8@SA[B{ͨ_._@;]!@?_._/_2!Q?dqTQ$q_ R2Qdq_q_qIz_q_z_Q$q_Qtq_Qdq_Qxq_Q?tqiTR_{q{_q$QDz_Qdq_Q?$qhT R_{q{_kTRArk_|S!+C"Hb8b !Hb8 (*Qq R _zIT" R_kT! ?q_!?,T?,qTB`BHa8a""@Q$q_+:DdtR{S4Rs(sa@9A4@9_kAT5~@@SA{è_Q$q_{ *I4R @{¨_*q{ *k @{¨_*q)T" R_kR R BzT#8@QRk)T`bR# rRkHT!8R?k!?q_kiTR_|S!*C"Hb8b !Hb8 (`5R_{*({_{ *wk @{¨_Q?$qT2Qq_ RQ?$qT2Qq_ R_Q2_hq 0_Q R_hq 0_*kTbURBUr|S@} R )a2Hf8caӭA?nA0l   KIf8*'ygHc8c|c| Sb|BbB bK ybC|DaN @{¨_{Bk! S[c6`B3A  "T# a@a@`@s@9 !@j8bSA[BcCkD{Ũ__{&SRGczbB b"@@T@x3@s@"8` , K@4!GBG4T@_84?qT@0@wK?T#'R/FR( aS[!@8`6L?aT@ s"bT @y`/6` 29} Ե R 9@SA{٨_{[V!"S*{0*?E{S*B!@ a@q*cP@SA{è{[V;"b@@S43DAa@xtbARb)s@cTb@SA@[B{Ĩ_{GGA;9@ {_G͉8|9A;@ _9} {G @s`@s" @R{¨_{RST@95G@@SA{è_s"a@@5`@hu8?qT{cGS[5@Sa@4s"# `@vL# @}С@?T~@}T@vj9z43#@RSA[BcC{Ũ_m }@"#@m#@{R +`T@95 @{¨v @{¨!I9A5y_{S@@S@SA{è@B @TD@cT$SSs}#@"x!@SA{è_{@S*[RT@954 @Rj58@[BSA{ĨCSA[BDR @SA[BRSA[B*{Ĩ_{R[@T@95GS@t!R"~s"a@5`@hv8?qT`T`@"@TSAR[B{è_@;_ q(Tc5B9``x!@9A;!]|@  {R~6@;Hc 9} {*!8@{SsД:[ BbJ?@"Q?qTSA[B{è_{SЀ@NqT!@RC3 **@SA{è_{SД[c&@s":RAUhc8@?&@a@#Qc#|}?q,TB@&wSA[BcC{Ĩ__{S[b&@bТN_q`Tc&@@b"VWR@SA[B{Ĩ_@`&!AҜa&@R Rc&a@!_{ *b*-*!HR]{*C|@)'q TqT$qTc(X1T5C)?qZCo(Y {Ũ_ ҟO !|@G q!T(X1@T|@7A"6 X1T7|@(Ԡ* |@{ *'07!!Pa ?PqTK@C)c2a c|@V|@76(A" @{Ũ_{*07dPe PqT;@)c2|@c|@/{Ĩ_|@c|@K_|@K_{`qT* T R4?Pq@RZ{_pqZ`RD; _D;!t!*DR_!D; _!D;! !DR_!D;!*!DR_D;"D;)R_@T@)D"DR_{ **Ra @{¨_{RR{_{S*@ @` RSA{¨_tr`T_ֵ{SR**RSA{¨_{S[*@\@_T@S@9`QxrT@^@T@9Q_$qTq***U4b@@рOaQ?$qTRwRRr b@@*aQ?$q  WzlT@` ^@Q#?@T3@9ҵ~@7\(*aQ `~@?$qWT@Uс^@ T@9*aQ?$q(T@^@T@9b@@р@qSA[B{Ĩ_ c,{S*[*cksRc);Rq!T@^@T@9RqTRRR'@^@T@9|;RqAT@^@T@94RY54R@^@T@9qQ IzTq T?qTq4%~Z;Rje  j%_'qT9;RR:R*9q`T`R2 >q42?q T7b@@@4 IT@xqT&4c@#=`~S K T`Q +TZ4_#qT!~#@jaT_qT_q@T_qT_qTA_qT?qaT Rr|z#9#qRӖ*kQzT9@9zy47R* kT&qR!K @RR RRaJsrkT@F  +Iz|T)'Q))@`T@@5ҹ @D6RCoc@/b{@ SA[BcCkDsEc,_c@|=*N=dbB@2#=ARA=`@2=WbB2#=ARA=`2= xSj! R|j!}}R|j!yR|j!uԐR#r|j!pHRr|z#kВRr|z#f@'q T#qT'Q@ K xqlT& 5+Qx*=*G#=N=*?#=*:#=K=vN=/h4\"K *'jJ Rj@RrHs3 )z'&Qk`T?k`T( (~*'|@Rj`t* TIӥ|ʛK*?k T(5* Q**b5qTw kTQ{wQ!)RQ'*kT7qTqT R̪RRRRrWrNrm1rrQ(~* (~jej`!*j kTw9+op?kT`29+~ +='=jy'=bk`T`2+~='=jx+'=Tk@T`2+~R='=jxxK'=E#=@#=_kT:7*4R?qLT R!RK5Kn _{#=L7N*n+=_sN#=BN'=#=$N+=!#=(kT(~៌Rrj`k(T5(kTc@BVN'= '= RKqT@KDsK+=NaQ{?kMT{@*SA [BNcCkDsEc, _<+Q w|(Q y|(Q |(Q *?R(R14(kT<*k Tw kT kT +k T(~j` kTkT (kT(~j`kiTkaT(kT(~j`khTqTq T)R* *{ *R"|~&?k@Tjb $+j" Wz| (T7+'QQ(~j`!2j R5R R4RTogc@!_bkTm `pl(k!T`@.'== Bo9`5`@.'==k'=d=>`3s=j=`6xkMTo'==!q=j`T=z=ARU`.N{=N_kR*4kTF4R5b@@?qZT{*S*2B2[cUxac^@xa q*$QDzTc^@`@Ta@9?q $QDzT Q7RxraT`@?qa^@K Ta@9 2qIT`@a^@ Ta@9!2?qOT`@a^@` Ta@9!2?qaNT`@a^@Ta@92qOT`@a^@Ta@92qKT`@a^@Ta@92qaLT`@a^@Ta@92qKT`@a^@ Ta@92qGT"R'?SA[BcC{˨_** *`b@ `@b?@T"?@T_`b `q`b@@`@`q,=TqT`b@`@`55`ѿT@@3=ss@`@a^@Ta@9R **$R?q!T`@a^@Tb@9R?q@T@@.R=#=2`@a^@Ta@9 s*s@|*$R?q!T`@a^@Tb@9:R?q T\Q?q T {$R`@a^@Ta@9<Q'qIT 2Qq)T?qTz5:Rs T@3#==#=*#=N==@qR?jT@.#==N== R)*@$4_qT9oSaT`b@@`@45` @5`/bkDsE9oS9_S9OS9?S9/ S*aT@`5kDsEBR*"@@2=6@@2=2kDsEv=s@.==97v9{S=NN`7@@.9=dN=a=`65TvKՂ1Tq,T3nRK)\@`*NA`#=#=c4#=o=~qǟ qj@T973@9R3*k=='=*=#=)'='#=%=o5HAR=*kDsESA[BcC{˨0\3@4T9oSaR T?`T?`T?`T?`T"? @T#S_yqT`b@`@`4#K!,TQ JTBR*"@2=@2=kDsE'`b@@`@4 `.ks?qT`@b^@Tb@92qT`b@`@`kD*sE***cC[BSA{˨iqqT`@a^@Ta@92qT`@a^@Ta@92qAT`@a^@Ta@9q55`@a^@Tb@9QqmT_qT!$ša64Լ5`b@`@`RCoT44`b@``@`o_{?q$Az`TS*[*ck\@wR{ƨ_q$Q DzTb^@`@Ta@9q$Q DzTQR?xrATa@q`^@Z?T ` @9zr Tq@TB! #@9U 4<qh T+RRB}`@a^@Ta@92?qTB +@95yRRg`@a^@Ta@9B RR@9<qT+S`b@@`@4`SA[BcCkD4SA[BcCkD`1SA[BcCkD$qHT3R43r)B! #@9k"T*qT8RQҚrjTR! 3+~E9H`8`b@`@` RSA[BcCkD[   Q$q TzT`@5Qa^@`Tb@9R*53Q $qb|@U!ӈTBT`@a^@Tb@9$qTB @9$qTUR*` @9k"2ZzHT`@4*a^@`Tb@9BZ'ٚ` @9*k T_cT`@"ٚb^@4 Tc@9+@B- @9k2ZzHT`@a^@Tb@9*B@ @9~ٛ*!kT"Ta@`^@"?Tb @9 @9k"T`@a^@Tb@99@R bb@V6"`@R`@`@`4SA[BcCkD+@`b@`@`"T@SA[BcCkD6IT BR"SA[BcCkD5SA[BcCkDRyR_`G͌RŬr89*Rr4E|*c$qhTRH$8r#|Q*ccb "K*BH$8$qT_Ry@,@c BD\_{SL@,@4˔`T Ta@b.@7cb@d @c˅˿#dCd^ccf?HT 8SA{¨_BB*a bf{ @T @{¨_֐K"{d@Ac7xbTBcC{Ǩ_[BSA[BkDsEBxbf[@p@yu@l@yc? Te@qTqTb@_AT0Sks@TB@S@3C@TTT9@d@T?`@ZRԀRC@B@#4@@y7@@y J8@TA @7@Aha5@SAkDsE[B`@sbT@9C +#6B|S*6@y4@5A{sx{ *> 7@S@yS*`* @{ʨ_{h|@!|@|@I{_{H|@!|@@{_{|@|@ҁ{0d|@|@{t${_{_PqT$še7|@!|@B|@|@{Ĩ_){R?k,T|@!|@B|@{_֠{(|@{_{|@{_ֈ|@B|@{h|@!|@|@{_{{_{?|@!B|@H{_J)@_ A;@@B!_!x`  _(A;"V8! "6 T@c 9Bx"9`_D;Ձ^ "_ T ;ՁT@pA#T@ !_T A5_{S[c;fpA` _AT` E5s@V;՟z@^"z@T~~@0|@_B S~@!@9V29SA[BcC{Ȩ_{CC#C#' ) A=={Ѩ_{S*;(5 qT@SA{è_* :!{ @9@@ғP T@B@S{@ @!_{ * 45AR@8*7R6 qlT @{¨_M4*!R|@7*ARx7 qT61`T5x701T4R*G*D{BGSsBB@!:t~@=_=1:@SA{Ũ;{BGS[BB@!:T~@=_=BSA@R[B{ŨA{^|@ * ==*Ͼ{^|@ * ==*¾{CC#C#' ) A=={Ѩ_{CC#C#' ) A=={Ѩ_{C#C#' ) A=={C#C#' ) A==*@R` #Rd{CE @DAcBcBcBc}B} {è_~{RCWa @{@{¨? _?q-T{S*q`R`Ҁ>gZ_?@a~ ~z"Bk,T@SA{ڨ_B_{A Rr[: 7S*t'=s@!@v@c t =2* k9TwS?qT7@5 k@`8T!<R\RX8+@?qT\R+@XҌm R)RR[R㭁R_kTqT_k TD *c|Sy`x\4cABT 4@I95 >@kZsR@9q@9ARB4_IT;k58 c3B_9`" 7@@B9AkDcCsE7@SZkDsEkDsE, @BB9AcCcCV4SA[B{ר_cC/_a"B!@AB,!A` _{cCS[* k|! s T*T*7tzsssS C@V,U?jTT4N4N4SE43C?4Ҋ` =v@=t =v@ =v vSA[BcCkD{Ȩ_*z3sAT@C k RҔBq T{Ssa@9?q#$Q`DziT Q$qT?qT?qT?qTSA{è_BRo@$AaT@9?q!$Q DziT@`@9?q!$Q DziTa@9?q!T@9?q!$Q DziTa@__{[uQc#**c@4ҟ,T@9ahd8k`TS*q T! 4@9|@!d8_k`T qTSAR#@[BcC{Ũ_4"hc8 4"t84֢a?@t8_kT@*@2qHTJt8bT4$@7ᇟᗟ'aaa~SAb A!a SA4{STQ*R@9?qTSA{è_[*u@@9?qT[Bv@*Uv@v[B_{Sc RR#T@9?qT?qaT@ b R@@9?qTSA{Ũ_b R@@5@@9{Sq( T[ж *qT*T! 44@s= s [BSA{˨_cks`ȅҠ?j98@8q*]T *aRT?_T [BcCkDsE=a |@"=<_{ V=RyR"a@@?@j48T8 ZqS[BcCkDsE[B 4@B;B]{S[>ck9+z@{@s8X e@9 4q!Te@9bqTR!BE@9BQqT ĚTpqT0qT(RE@9 FQg $q TqT!RDRqT Rkןjc7A?:}@#|@TRA $ @8Q_$q)T!RR @8 Q$qiTaC?qTB?*Z} @;*R"+@SA[BcCkD{ƨ_{C#C#' ) A==b{Ϩ_{C#C#' ) A==J{Ш_{[STSA[B{è_C;c]Р>!A?_֠{STРAA@SA{è_R Ҵ@B;C]B Ѡ$ @L! `_,B;B]{S[dTsSA[B{è_b C;c]{a"|S3|k!N!4?Tb.@RSA@{è_4SAB@_TC!aB`Rn?T@@RSA{èaq{a"|S3|3!N!4?Tb.@RSA@{è_ָ4SAB@_TC!aB`R1?T@@RSA{è${b#TSA@B0AT!N4!NA4@B l  @AT_8_8_x44_9} 6R{¨_SA.RSA_RkTlS!"haC@T9} D@kLTA@!$7A@!$7Bt!CB@_T,S_q(T!@(!bx|kT! kJT?)Tt'D&cT!@џ@T!@(!bx!<|Ӣc@B@*sB  B`TRcDkHTf<R8C8akx TK_#8?qLT_8BC e88!DӁxSAz??TA!k TK_#8?q T_8BA %8SA_8A_8QR!R_8A_8Q{c @"S[5Rc8|RkZZC(@b?9} ԂA(@!@ @ qW T@{vx@|lS?TzsRQ@?09@"49@33B9@9} @(SA[BcCkD{Ũ_ @T_8_8_xB4c49} _RkmTdlS!$ha@?T9} @$kKT@$7@$7tC@T$,SqHT@(dx|_kT kMT??T!t!D!?#cT_"z_?T{"RA S@Rb@c@e@D@F,Sc* $ QkT#5߼qmT9} "/6e@߼qTG_@ T_?)T@(@t@тfxB<|TE|@(xa Tc@(ec@#xb T~ T`@,S߼qlT|@!|@bxa@`x!`@?T"@N9@_q TQ @9_|qhT""@@ 9a@` @!t~~ @" bB@bSb@S_?TT|@(xaQ_|qIT|@(xb(?x""|@@M9qiT}ӂxb_cTMqMT# 5(zfTKec@#x"(xaD@5@ERp@@ӥ QK;Ճ@a @_kaTA5 ! @,8T Rf @_8!6sN |@(xf_Tc@d@d9} "b@@``@`r_"*5SA{¨_sNx& { S_8BR Rc@!8x c@F Qe@b@*jT9} ԥ4 _k@T @9 _r@TbrD_kTC5SA{Ĩ_c;  @9raT @S@ ?3?@_qT`T8_ @9r`T " f{S@ 43@`@Tb@@b@ @!T`@ &͉[#8ҵ ~'sB@ hs@daT!!@!!R'@[B @3 @єa~SA{Ũ_?[c"@TA 5ATT@VCRR@"~RTL@~B'aTbRR4N@q@T[BcC6aT ACRRRL 6 $@ѿ5$@ѿ5@@$ @!BU RC 5 " @C3 @[BsbcC{c|@[k+xab@5b@`@4x!@AR@C@! !Qk T@AR@CB@! !Q?jT@ T+x!@ 5@GRp!@!@ QKUTb@@b@xaT+|xas{`C(SuxnS>|`7xaDTA"q Ta!'"3h`8`~ TS@9`~I TS@9``@x!x!b/6+@ x"@@`@(c,SaxlSa|!@c* @QJ?qMT @9kЃQ3 9;@ _kaT5 5Ss9} @!,S!Q?|qTa!#M95KA ajTZZ[BcCkD{ƨ_cQ# 94a8s~7`vS TO@s~~TAz~@qT@?iTfvS|@Q"@N9|qhT @M9M95qᗟ臟B?TZ*AK?$q,Tq! !  9R(R@_q T@@9u7~qTq@ @cbFTqT TT"R* B@,_8_T RqbFTqbFC Tq`~@ǟ!RZ@ZZ_ja TCRbRKQTFLӅ@AךcQz~@t!Q @?k!B "| AR$ Qzf! cz&c2 c*@!K!Q @ @9A3 9B@y@L@`*By QB9} ԠqT iT*SRZ@ZZ`9SBTTazS!|@?Zs)T`"R*3RR }Dӡ0*@TBcC(@|SB*@*@* @*@@*9Z9Z9Q9wS%$ cex_뙀yx_9*X*1 T{C(9eyx(@lSQ@|@?@`@ T,Sc`xc<|@ |@bhф@BFD_8# 4_xcc _85#bTBBBBBc #TcKcQ##T#4blS8x"8@@!8BDxbk TK!8_qT_8!" A80R@c,@_8ccd28!~~ @@@SAsEt@Ѯc0@98_8!!Q!!_9BkTcQ*@`_9} +zx`@@SARsEyRz8{! TS[`c k T D*?|Ta!@(|SB@*BB*BB*S B*ssZsZsQsvScb #cxS!sxs  @9raT`~@(7xbd CzT~qdFzT7 x`b2@|@(7xc x` @ 40T**1`T|@3@w*@dRҴRCRbRO@T  @9r!TЁ"@N9@_qT@C9  `wtB@{RTT3SA[BcCkD ! B@,_8?T R &PSA[BcCkD @A5  0s@K!j T6ZZK@~@ @?`@@@Tc,S`@(cxc<| @ea˂@!&D`_84_xBB_849} * SA[BcCkDyctc@"bTA!A!AB "TBKBQ"T"4AlS8x!8 @@8b˄DxBk TK!8_qT_8!" A8SA[BcCkD{Ũ_8b_8!!Q! @T_8_8_x!4c49} _RkmTdlSB$hb@T9} @D?kLT@$7@$7tЄC@TD,SqTeР@(dx!|kT kJTR_?TAt D#CTR_@T@(!@Ѡdx<|?'@z?T_?hT R_@tD#BT  @T_8_8_x4e49} _RkmTlSB#hbC@T9} D@?kLTG@$7G@$7BtCB@_T,SqTbB@(Bgx(|kTB kJT?)TtHD%cTB@џ@TbB@(BgxB<|Ec@|S!b|q TqaTD_ TE_85E˿cTBD@95aha85@_ւz_?!T{S` [?Tca@k!T`_8i_8b_x&44?9} SA{Ũb_R_kTAlS!avj` @?T9} @#kLT@c$7@c$7tЄCc@T',SqTcc@(cgx|_kTc _kJT??)T$tDc"cT@?@TbB@(Dgx<|@*%}SB H ?}qTqAT_T_84#z?!T*˿T@9$5Xhj85d$멐 TqDI T$z?aTubҙ!t9:t? T@ZS9L @b!th:8ku TKS_!8qTR_8@_8 8cCkD1jҁR,D"| T!cd@( |SA*@*@* @*ZZQtSbx?iT c@(``x?BkmTp_BcCkD[BSA{Ũ_֥k TK 8qLT`_8 f8cCkD8f_8ƀQ#RMT@cCkDŢ?IT{ Ra @{¨_@R_bC|cA|{R{_ր`lndGahG  }lG ~ zpG+v{ {tG;y;zxG } };y;w+x;z { }+~ };`+|+y_ր`n|GG`G~G| }+z;{+} `+~@b_{=N=?.==:N@.N=={ =3==-4=q='@4=k=!4=e=4=_=5=Y=@5=S= 5=M=5=G=6=A=@6=;==N===NN=.=@. ==(=N%N=" = {ƨ_{G /@`8g  @{¨ `_{wR@dr' /@ 8?_g ? @{¨  ?_f"tӢ4R_qT_3&"xWӢ4R_qT_k'kfd@ap4RR?kT_ք6{==6=Ĥ=z7==t@7==n7==h7==b8==\@8==V8==P8==J =9==D@9==>9==89=|=2:=v=,@:=p=&:=j= :=d=;=^=@.=XN ={è_q~n~/`_q>.> _8``_8  _{N;N{_ gf  gf@aq`_@!q ?_f{DORrS"`4_k(T#``?RcL rkT/R@r_k(TGGT R8;};~;}~~mSA{Ũ_ GGt@R (+};~+}~~m`LjRr_khTRr_kHT/R@r_k@ TaG G8`R;~;};~}~m(@+;}+~}~m`?R r_k TGGtR`@?R 'r_kT_k T!@, g.gxcRb;} ~xb;} ~#`mTqcB|SBXQ$R[ = =GggGG+~G;~ { zx8~;|#ydT9G#yTfB|S!tAK?@qT=G_ ~(~kJTc B kT/Cҁ7 g!.*h gWm]@x>b l8+}xaD?qlT*7@`ovdqH9xb9mT~R!KRBKjn`( cKj.c(qT!`ATRLaTzlc|q T_qTqaTEl!'TRR_qT@R!4 RKAa@Kak_kLT!RqTqT q@TqTn8n4*Y7@9`@k_kMTa@ ~ӀjlXj,~ӀjlTj,A@*с kMT5W@ R"_4@JD - [@ S@ _@+*a!@+ --k {`=_ }+kJTc y"B@ k Tyb/?bx+*YQzX@,@  T:bQ9QbQ_4,@n*O6O@@`@@  =g&A`K6.g@ }@TxL@ z8gYb~,@xb }8~xz89 !@?b ~ }_1T b} *B@*RPx`x` g1*gkkTk TQ! 7/@qTq,T/T@ qT  *: @s*r1eTeBaqc@s{@ SA[BcCkDsE7Fm?Gm _ @*u1eTBaqc@@ Rv:vD/"@*b?kTBaqc@tt9`@mBQ7+x9;w9+x7dm! _q Tl@m9Q+{;z+{pm ?q T/=@+}! qLTK=5c@=c@Can=CR_qTn;n{AR!rS&zkiTkIT8 R"`SA{è_ր"Gggп GG+~G;~ | {x;`8~ zT>G ~LTn+~ | {;|;nQ;~ | {;|;|SBXQR#R\K'"@6@aK{CRrS='@c[pӂ`Ӕp;S*kTRkTD^g~sN`T=b 9=NN==N@;=;=ߠ;=۩=Qx;==N=Щ=<==N=N#=ũ=@<= 7<==¦q T/@pӀKqm T<==fN=N=N=N==N====S=N#=N==/@pӀKqT@===AN=N=N=N==N|=N===-=sN#=N=n=$@.=sQ=f;==N=^=<==N#==T=@.=s=L==B=F#=D=3=R?.g#R?_#`aTcQdR cC*O@r=S@o=%=K@j==f=N=fx7ggz*SA[BcC{ͨ_AҡAKf_&|S_C=@Cp|S_ց`%G$G e ~'G~&G g8d ~=G8f~ f(}(} 5 }G8 |+`C`_l |"bG]8} { ~;a;{8{`GG ~G ~@ y;z |;{ | ~+`+`@b_{ *==NfN=N =a=> ==[@>= =U>= =O>= =I?= =C@?= ==?= =7?={ =1=u =+@=o =%=is4.======NN=Z ==VN= ==N =LN=I @{Ǩ_N ==?==;fㄒR@`r"`Ax?kTD|Sd4@a!@a_G^@;{;a/+z {_@] zG @y z^@п P@о ~Q@+gR@+pS @ }T$@ }U(@+qV,@+rW0@ }X4@ }\8@ℒR+sr+t< | } }+u+v } }+w+x z+~ y+a z+a+a`+?k(T4~on`:;{;{: ` `+|+~ }+`_!R` Kqb(}`;~+{(`;`@a``><@8@@о ~ }RAŧrr:''.-R;9} =@tr'@R r' ;+8+: ;= ;>8>; _{,?m.79 ?A %`mRNRr'@wRAŧr ?१r'Rr;'';=/ > /=+.+; <(< /9=>: (=(<( ?Am{¨_(.?A `mRNRr'@wRAŧr ?१r'Rr';'-R >;<@tr'@R r' /+.+; /= ;<+ ;>( {f@`t`P6(?`qIT2&@{è|@(_n8)o o()`@{è'`;mn)o8n(o@`9`;Am{è&{&@ 6PkiTf)CR@ r'{è(?_.8?)/ /(?) @{è' ;m.)/8.(/@ 9 ;Am{èH){-{_{R=@p?kT@.=mo4 = ==eo5@*= N= = N =NNN@T@*R=?kHTN@ =NN{Ũ_= =0=-@)=q=oN =NkNpx7@.==b.= =}3=Ag>NN= N =P=N=KN=N = =v= =@=N=N;N@.=5.==P3N@*==Z=ޡ@)="= N =NNnT@X@\@`@+ud@~h@ `l@;vp@;wt@ `g `+x+y ` `;z;{ ` `+|+} `~_f{@`S`kiTRs s*s5DGg~*SAB`{è_8`/t`kHTsDQ8k)T`t(tfnl9` A`@`A`@fRrkT `x@+sDG(`8~:`Baq@to~*sx@? `G s*+9|:s)o;o;};:{ &`zkiTRkT8   @{è_ր"DGg~(@b kT`QkT `mRr'@wRNR१r' ?RAŧrr<''.;; > =+:+< => + ?m.,9  ?")`mRNRr'@wRAŧr >१r'Rr<'';;q =DG /+.+< /?Bm=" `+`(`;`@b@! f{ @/gt?`q(TtbP7?qTg)A`R$|@(Aa @o@{è_ o;mn)o(n(o`(m>$@`;Bm;m o n)m(m`(o%@`;Bm&{P x|S/'?k(T7и?kTpR')?A u'CR r'(?A!q @/@{è_ /;m.)/(.(/ (-`'@ ;Bm;m / .)-(- (/%@ ;Bm{6{_{RS =@`pkiT@.=uq ==nqs*6@* ==U@ = = = NNo = TRkHT =#= =SA{ɨ_ =8 =5 ={ =N@.tps`=q.=%=1N= =@)A!*⿝R=<==kTN == =WNU=SN=NO =?TkT BAABB.=NA== =NN:=N== NN=0NA =,N =N'N=$N=!N= = NN=N =N= =f{@`~S`kT@ Tgq>DG+@a`E`Ӏk T8k T ~?@| {2@=@ 4@ }3@+r6@;s5@ |8@ |7@+t:@;u9@ | |+v;w | |+x;y | |+z {+} ~1TbBa!@q\`=`;|;~;`@a`SA{¨__(lT@bPkHT@k(T(`n`R(};`n R8(` Dk(Ton@R8+}~~`R`; f@`@?Tf#@HT`RB #`B*4{b|Scxa* |Sss*5 qTq@~ @{¨_ (_Sx*4RkTR _kd @zT6c kT/ q@T@`HG8~8sQkT/ qT4Xs qT@5XsS7`DG`HG`G@a qT@`HG8~;`a@aq` &@ Rxk(T&DxkTRkT{|S |B*5 q Tq`R r'> @{¨_ (?_D4kTRb kAz Ts 6 kI T q TR`wr'`R(> r'8?@`RaR r!r'?'?k TbQ_qT5Xb qTq@Tq`RaR r!r'>'>`R! r'* = >`R1 r'* = >@`RaR r!r'>'>`R r'!F qTR`wr'`R(> r'; !8@!q { N5A=={Ũ_=4@.==C4oS='@@spӔp`~S~S*6 5 q`Tq@T=@SA=={Ũ@*= N\@=SA@*!.=!= =@SAo= 4:s:Rk T?kd@z` T6sk- T q T@)= N4N=1=@*= N+N=(=@SAk`T qTqTq@T@SA@*== q TqT.=qTN@=SA@#@A'==@SAu ===@SAl @*==56 C@SAAA^@ @=SA=WA2Y D= qT@*= NЖ@)== NʖN=ǟN=ğ=@SA;A= (=q T@SA1&{pSx|SkTRk T@RpR r?''q(?@! \$kTиkT Rr'R §r'| ;HR@r' UR@էr' > =SRɧr'+8;9 < <+: ;+= 8>9 rT 5 kTk(T( . !RgR5r(?ݧr;>7''? =Rr'Rq §r'| ;HR@r' UR@էr' ? >SRɧr'+8;9 < <+: ;+> =;7;=8?@! SA{¨_.-R@RAdr8?(? r7''?kT/.R R?8?br`r7''+>=>-R@RAtr  r7''f{ @ gt?qT?xqT5@b(`n;` `(~!ln;`(`!l@a @{¨`_&{  x|S '?kHT?kT rT ( .;  ?(>!,?.; ?( !,?@!q @{¨ _f{#p"p aR>CUr"ʤr&x!|!a! ( cURB>RCUr"Jr!|!a! "*'"+ ~ ~(|+| ~}+|} ~ ~(}+}~+}@b_{RS='@DpkTp4*_R` r^g||!~!`!K! K?q T?qT?1T?1!TN=lN` |Nk =`f=`p@ 4Q_NNN`@Q|RBrN=|!R`K *RCUr"Jr)ox g|a '" { +{){ \+{|  +|)| )|o+`@=c@=_N==NN==U==NNP=NN===Gg_B@SA{Ǩ_{ Ro=@Sppӟkq=*5==x7'=#=!NRkIT=N=No==Ns=`7@NSA{ƨ_ ==NRkT@ ==@.==@.N=Nf f @g_& & x3'_Cf=@"pgCcpc@B*A

._"{"zR!|SbrkTb|R"rkT`DGA4{¨(`HG4(@!{¨_8:RBrkT⻝Rrk(T!4@!`@{¨";``"@4({¨8`"@{¨;`kiT8 c@qTqT5@af{!ȅ@g`HT6Tg(n{_Hn(~`+(~!hT{n nl`+`~&{BR!rx'kHTиkTpR'(?.{_.(> +??(>BR!VrkT{.., + >{p>{_{R =B@spa>PkTg = =B =6RkT@.=ّ = @ ={Ũ_NҚ = @{Ũo@AqTqT56 = f A, R ={k) T *7m?mK`nmR@`rkT` A`A` ~A`A` o+{A` A`9| $A`(A` +q,A`0A`9r4A`8A`#r':'ࣈR / [r+<'`!R\Rzr'9: R ?gr r<''R ?@dr+;' R R {r'9<` R ar ?'R3r' ?R!Or r+36''AR94`R%r r8'' ? ?P,+596 ? ?+798 ? ?+99: ? ?+;9< ?+=/?A! -; 9.,)- @  ?(/  @7Bm.?Cm{Ĩ_a.aTR8Rr87ar>''`R`Rr' > ?`6R!r r'@R3'+;+<`r'\RʟRar@ԧr = =5''RARArקr+3;48''!fRRڧr!r = =':'R@cr'+5+6Rçr' = =+8;9 = =+:+; = =+7;<>8?@RaaR`6r'tRr}r'NR > ~r'R:'ࣨr /'`Rਨr+<' R9:r'@]Rdr ?!R' Rშr@tr ?<''a R R1r@>r+;8''R@R9<r r:''_&{ x3|Sk(Tk TйkTR$`r'?(=+><. RK ?"+  @{¨_ @CRжr' ɝRQR@!r' = ֊Rr'"R!rtr ?+:' R7'wr'`LRa}R <;;r'yRԧr`٧r9'+6 <'R.`r' <;7+8 < <;9+: < <+;+5= + k)TpR.'8?@!q .; & x!|SkhTk TkT BCRжr]'"ɝRQRB!rZ' ="֊Rr_'"R#rtr ?+:V'"Rw'wr['bLRc}R <;;rX'yRԧrb٧ry'+6 <Z'Rbr.['0 <;7k*+8 < <;9+: < <+;+5= 4+ :?_.?' W!!^(>_.; _,8?+=;>_ķkTpR4' 8?_4{F {; _A' _{z{_{ޝ{_f#t`$QqT@l@m`Am}|BmpCm+{;{f~ ~{ x"D8B<+`xdxb+{  ~ |+x(y }+z} |(~(4g(_`7 qT?TqTRn(R6gn+{#|Tg `gg(~+|;}/;z+{+}++z;|#`Tg `gC` ~/{ @`@t?T `ATg@x!<a @{è_`Aj@@x!<aA`d{ @ /@xW?q(T AT'A!8 ` @{è_OR r'?/@A!8?`?`"A7@b{C==AR= =@pkHTo g`5 =Ssb<` @={ƨ_=Ss=EN= =P< =` =; @@==Gfta$Q?q(T@tDm|Em+``Fm;|f8|"D8B<`xd}x+y |xb+z({ |}+~+`4g ~+~_!7 qiT@Tq@TƒHTA#?c n(R R 6gn ~+{#|Tg `g ~(~(`+|;}/;z+{+}+~+z;|#`Tg `gC` ~/&"xT?qTA!&n=Pm;hQm+;}f;}@!xb `  z ({+|~(g@b_`1T?qHT LTbR' >ITR( R{R =@p?kTpӢ "R_ kTR?k`T=1@6 ==+qT@ ==[o=u{Ĩ_ == === =r4@ ==; ==qToR?k T =S=f=sts~N = =*@|3A!+= xb=rN =w ==*@=n =$=h ==b ==\ =@=V = =P ==J ==D =@=> = ==N ==5*SA{ĨL!@.=-p&"xT?qHT@&nxRmlSm ~@+;}f;}"@xb `  z({+|~(?g@b_`1T?qTBR Vr' >lT6RYr' >DTR( R{l:{_f"R@`br``?kI T@T~`A# T`lA +}`A`Axb | };|;;~;lana w?Aac3Aa z4Aa5Aa 6A+s };t }+u };v }+yZ {;z {;{;z{ }@4;| ~;|;}1Tq@T=gWt_q( TR!K=gWt_Lq T;=;}(}|-g )@ȅRr?k(TnR?khT(lT@b VRr?kT`Aa8| R?Aa(|?A`Ac|l ;};_;w8wz#}T;(`(y+wp;w~;(yqT n8+g ~+};(y|&bR@ 2r x#|Sk) TRk T> 5BR!VrkT`GR,r' =+=0R r' Rr'8;"} ={ <;=;;,R.Yr' R! 5r';># 9;; ?;7 <+69 ?[;9 ;;;;:; <A4;= >;=;<?1 T?q@ T 'W7?q( TRK'W7?Xq T;?:=(=<%g ?"CR"֧rkTk T,RYr'= Rr'.!#= ?;9 <+8 ?};==;=];;= < ?;<;?_!RrkT0R r' R5r8=!R'r(='`GRr'=c4<,? rAT ;?585:#=T;?( (6+50;5>;?(6?qT ?.8?+?g >+=;?(6<{˘{_f"pgA

N{oS[cN_EWF%@5BNSA[BcC{Ȩ_7@=xpspmqRd@zT/@gg#u>Pp=7?PN=q=,T= 5o=#@35 =fpsQ*Y5 ==ڍfpӄQ"&`sQAkmTӢe!ڡ  !ڡ BT"sQ`>qT*g#@?P!@ g*!=?P#@#@={f Ata4?qTBA!Q@ Kga @{¨_ `aT~?g`@Q`{& AxWa4?qTB\!Q@2'a @{¨_ aTR?'?`@Q`{SfpA4R?k`Tp@g02! a>"" `+`@b/ @{¨_л.kHTR'PR' >>_!f f{ep$p_ggS**kT**{Rk`To=`4`KqlTRkT ==~ ===x=@== ==nN ===N =N#=N = = N^===XN===N=N=N== NH==NN=B=N==NN=8N=}N== N0N=u=#=NN='=mN==NNg =N=bN = = NN =ZN=W=U=Ss= = =SA{ɨ_=hq!T= =AB =!@.R?==kT@ == =@=====nf"tb5!tӡ!K_?R@Q_q!T?3Z&"xWb5!XS4!ZK_?R@Q_q!T?'kZ{SR =* =@tQo =!p5! =!=@5>R` SA{è_BR ?kT?oc@@g`qZ{?m@`S**7m3 @`A` @aq`)lkT`A`@C 7Bm`SA?Cm{Ĩ_)n l@a#`T okTfAaq`lkhTAхRArkhTmRrkTa>Aa4Aa6Aa8Aa?Aa3Aa5Aa7Aa;Aa9Ba:B9mlYb!;gA/^B4 BA6BA8BA?BA3BA5 BA7$BA9(B nn}  ~+s+t } }+u+v } }+w+x } }+{+y } }+z+|~+| ok TAхRArk(TmRrkT@B@B@B@B@B@B@B@B@B@B@B@BFA>,BA40BA64BA88BA?XBA4\BA6`BA8dBA?hBA3lBA5pBA7tBA;xBA9|BA:B@/B@B@B@B@B@B@B@B@B@B@B ~ onh+q)r } }+s)t } }+u)v } }+w)x } }+y)z }+{~9|n l;o @B@B@B@B@B@B@B@B@C@C@C@ C@C@C@C@C@ C@$C@(C@,C@0C@4C@8C@+3+4 = =+6+7 = =+8+9 = =+:+; = =+5+<>+< /?k(T@}R r?kT"Rr?kTkRSR rjr'1' ER|Rr`r3''ᑕRRpr@0r:''!RR?r,r2''AŞRRrr';'`;RRA>r r<''eRRr'`R¨r`r' RT'urRBr'qRW'rbRtr'RS'`Nrb/RPr'@RV'rN'Z'RRer'@9RrvrT''bnRRr`?rW''B"RRMr@rS''BJRR5rArV''R`Rⱷr%rZ''t mR!kRr'`RR)r`r'ԒR1'rڃR(r' cR3'`rAXRr'`RR:''rARAr'@՘R2'`drR';' > /.(+1)2 = =+3)4 = =+5)9 = =+:); = =+<)7 =+6>98. ;/WR!Rസrr'҇R`Ҩr1'R'r`Rr3'᠛R'!rR`r:'R'rR@r2'AM';' RR rTr'<' R᪈Rbrr'1'KRlR!rନr3''R|R!rdr:''ۙRRAer@Er2''R`R rr';'`R"RaHr2r<''{S&zkT .?SA{¨_@ 7kTлkT*??.;>*RSA{¨N Rr'TRR3r!r =9''ёRr' ?҆R+9r'R(r,+:' <6R.r' <R+7';;+: <^;><+8~ >(9 <<+:?<(>&x@`T7{;m@ kHTkHTkhT}`0R@r'քR>ಧr'8?;Am{è_>?_ _. ;Am!R{è `=Rŵr '@WR-RUr' -RϦr'@Rar@r')< MR ?='6r'RpR >@r+='Rrr'97R >:'Ƨr'քR. >ಧr+8')9 > >+:9; > >+6)< >9=?I@ A ' `0R@@r'?(-{?m@`S***7m@`qA`Ca9`k TAaq@A`@Co H@`SA7Cm?Dm{Ũ_ @`)n l#`LT.Aa9lmkTfAaq`mkHTAхRArkHTmRrkTA>CA4CA6CA8CA?CA3CA5CA7CA;CA9CA:C o!fBС;gA/^C4CA6CA8CA?CA3CA5CA7CA9C nn}  ~+s+t } }+u+v } }+w+x } }+{+y } }+z+|~+| ok TAхRArk(TmRrkT@4D@8D@CA4CA6CA8CA?CA3CA5CA7CA;CA9DA:DA>DA4 DA6DA8DA?DA3DA5 DA7$DA;(DA9,DA:0D@/dD@hD@lD@pD@tD@xD@|D@D@D@D@D ~ onk+q)r } }+s)t } }+u)v } }+w)x } }+y)z }+{~)|n m;o@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@Df{@`S3`tzkHT7@`kT@`nD@D@Н }D@D@н+tE@П E@н |E@;u Eҽ+vg | |+w+x | |;{+y | |+z}l+} ~SA{¨_`n~b_*SAR{¨xf `!*a47{?m@`HTw@TnT@E` /~_/`_n`?Bm{è_?BmR{è!RQ@`7m nE@ E@E@+v E@ n$E@ ~(E@)w,E@+x0E@ ~4E@ ~8E9y+z ~ ~){+| ~ ~9}+l `h @`A` `o@G9l )n7Am{7m @ S***?m@ qA "Aan " 9lkITAaq@РA +3+4 = =+6+7 = =+8+9 = =+:+; = =+5+<>+<" o?k(T@}R r?kT"Rr?kTRA^Rracr'1'RA%Rrr3''hR@6Ror@5r:''ᣉRR!Er3r2''R`Rr!r';'@&RR=rr<''e0R°Rr' 6Rrr'RT'rbDR⴨r'`RW' rR"r'RS'MrBR[r'gRV'rB'Z'mR}RYr'3R‹rurT''b|RRBr@HrW''BR༖RVr`rS''HRIRAr`ArV''bR!R⽧r)rZ''siRҗRr'RA$r@r'`ІR1'rSR%r'`МR3'rbRr'R:'@0rAR!Ǹr'ঌR2' drAR';' > /.++1)2 = =+3)4 = =+5)9 = =+:); = =+<)7 =+6>)8-" n;o/RR`rAۨr'1'RmRArѨr3''1RRr`r:''aƔR`mRarfr2''RR r!r';' CRRATrඵr<'' pRzR`rr'1'@NRRr`r3''R`Rr`kr:''AӇRqRlrLr2''aR@R`r!r';'੏R#RGr5r<''{@ S&tzk(T7,k T ?ϊR r'RAR5r' >@Rjrr'7'ƅR.+; =r'VR@(r' <;:RWr' R+7 <r'R' <+8+9 < <;:+; < <+6>+ ?SA{¨_ .?fb~S*SAR{¨&x@T7{?m@ khTkTkT`0R@r'  >?_ _. ?Bm{è_?BmR{è!R 9R@r'`RAR:r' ?`Rxr'ZRA_r .r+<'R9'r'`RǓR >)=*r'@ Rr`r;'+8 >' fRɧr'7m . >99+: > >);+< > >9=+,? X @ A  /`0R@r'9, ?).7Am{@`RSf[Ku`!*~A*?kTq@4b`QB|SKT4C`T *7m @`qR/@zTCaq7DmSAC`[B{ƨ_SA[B{ƨ@aBR *SAC`[B{ƨ?mb!`T>k T߂q, Tl n@R|C`b | }kaT~?EmkTq T qTv5h@`A`!9`@A`@C ~`?Em@`A`XAa9`@`A`Q9` @`A`K)`H@`A`RC`b+m `;o@`kT?Emn` R)~9Z`;g/m)lm(z@`};~+z };|C`C`#{$T/nbQ+l+m;oo1THl@A TA`g n&A` nblA`)nq lm9A`TA`@`A`C`>@`A`( @`A`%P!`T n/Cm?EmlJl nq Tb)n km;l#~TlA`C` m?Emk/Cm6f{R?m@`K!*C`a|A*?kH TE`SETc*#5q4 TqRTA` @`A`FfRR!`R/SA`0k Tq@4TqRTSAA`?Bm{è0SAA`?Bm{è *4kiTA`qT q`T5@`A`HAa9`@A`@C `@aqSA`?Bm{è_8@`A`y9`v@`A`/)`p@`A`)9`b+n `;o@`fC`!`ӟk$BzTSA/ *t5A`@aSA&{@ R5xk Tq 4S!|SQ Ts4C 4 7mu @ qR@zT?mn"! DTPk(T,"qRsҀ<s .@RC " < =kaT>?Em@{ƨ^@!!R *@C SA{ƨT@ A RC "+?- ;/@ kT?EmC!qSA?7DmC @{ƨ_. R R)>èrZ ;'/m),-(:@ =;>+: =;<C C #;$T."Q+,+?-;//1T ,0R Vr' ?TRA ' .%A  .n"lA ).sq ,-9?A TA @ A C C@ A  @ A P! T ./Cm,?l? .sq@Tn"). +-;,#>TlA C  -?Em+/Cm&{R?m@ Ax?kT?q|BjT?kTq4S TqRTSA?Bm{èU ?Bm{è_?Bm{è  *5J@!SAA @ A A&RR "+?/ ;.@ &C k$BzT@!qSA @G{!RSf[7m` @`?mak Tk T`6 R x rT/4747@R`rk(Tn/9@E@E@ E@E@+| ~E@nE@+} mE@|E@ m+uE@ }E@+v mpE m+w+x m m+y+z m m;{+| m~+}+o`A`SA[B7Dm?Em{ƨ_֖ @a`A`@a @al oA`9`@HG)oX|@ |"9 ~q@ T/ q@ Tq` TRi ` T `LTa`@lHG`@`R x r T4(4A`6xAnl/EA2EAb?EA3EA9~4EA5EA o 6EA }7FA)r+s8FA9FA ~ ~: FA;FA)t+u@a/9@a9mn@ms@aA`w7Rrk T@R`rk T`/;m@ |lHE@ {LE@ PE@ ~TE@+qXE@+r\E@ }`E@ }dE@+shE@+tlE@ }pE@ }tE+u+v } }+w+x } }+y+z | }+~;{+o@9o,A`@a`(RrkTn;m̔RrkiT@@E9x `R`rk T@/DE9x x@xE@< x|E@E@ ~E@ }E@;f E@+g  E@ |E@ |;lE@+mE@;p |E@ |E@ |+qE@;rE@+s |E@ |E@ |;tE+u;v | x+w+} y |Z;~;z;{+okTA`kTn@lm8}F@9~F@F@ ` F@$F@(F@,F | )v }9w })x }9y })z |){)~sqTqTc+b+`b+ `a+``+ `K)`^@`Fn8 mW/V@@G{!R[&S?mz@ ak T~S`k T7m 5R xr=T)7̌RrkT”RrkT ;/ <@tRR`rr'>'R ?R >,r@r:''!R+:ƖR+;Sr@r3''OR =@~r ='؍R!Rgr'+3"R+4!rr7''gR =LR =rԧr9'',+5+6 ; = =+7+8 = =+9+: < =+>;;+.6449.7Cm A SA[B?Dm{Ũ_֖4@!`A  @! @! , -A 19  HG).|@ |" -9?" ~qT qTqT @T LT`,`R r'  @ R xr@,TA u@a@!9/.7Cm/@!A @!CR`rkT.;/i`Rͧrk TaRݧr'9: ÔRrk T`؂R`r'9:[ :>R5r'R$RAr`4r| :5'' RLr'!ӂR`mR > =4rbr'7'RR;5+6 ?Vr nr9''R < <;9r'Rxr'+7;8 <R`r'BRᨉR < <+9r''R§rr;2+3 <'4'+Rާr' < <;4@R;>;>;8+.A.9?RR`r'`RAͧr ?@jr;''UR. >r+;'@vR@r'+<R /r'\R@r' /%R+=r'R@r'+7ׅR /r'gRr' /<+8 =+9 / /+:+; / /;<+6 />+=+.k( T8Rr'RRަr"^r'S'>"ڝR`Ir'R.@r'9>Rr'R§r' . ?RƧr'@R)3+=ԧr'R,r' > >@R =˧r'`R)4+5@r'gRr' > >)6+7 > >)8+9 > >):+; > >9<+  >?)=?q TT? qT@ ?qT?qT?q!T#+?"+ ?"+? !+ ? +? ) @ A pkT.RZr'/8=@R,`Kr'ˀR9>Cr'RJr' lR fr'`UR@r'Rڧr'} ; ?)6 =97 =)8 =99 =): ;)<)>g.8? /ba7Cmc{ q> @{¨_@G{R =Ǩ =* =5={qT ==:|`6R =M @{è_{ F{_f@ޒc@ApT#@QRk TAA @ #m$tc$!,LB˜ba|Ygh@mha~@ {@{Y z\Bm+{`Am+ ` ~ }(w;y+x[ { zz+~(}+|x+{((y__T @ n4>g8D@GmFm`~EmzW w+}(~{8 x;~+w^ |{+vDmCm+x }{+~|8}Z u(} y w+v w+{(x+z } y8{+|(x y+`+`+ T_T?qT!(R?k@Tfgf R /f`#DQk) T TA 7jg@AR0Frf?4F`!TB!="L!|SB !QB|` bz|@ng`l;~@oAHF@?8FA+{ xLF@' R8 ?Nk TRk TRRaR4,rX.B ^' ,;?ēRϧr|S='Qa™R +: 9٧r5'![R"rR:9 <3'aRr@ӧr2'';9=R 2 7/#ҧr{'BURBrT'R7ۧr8'V :;? 8 6;9 ; ={+4+5{ 6 7+;+9 :+<+= 83(2(=(1(>_{ڃ{_fRrR@`r!` kT?iT~ T/~a8`/]"xSذ_k Tؗ@?hT/C`)?(l T@bN?h Tn/+|f@`TB=|S!Q?qT?qT;~;}8b!LB|@9ARr !n y@=A }g9+;~` l+|8F  { ?T>W8 ?S kT ÞRҷr?khTC (? rT E?kHT.+<&R!4, |SQ`qTqT;>;=?" Rr'`R!Xr! 90R. r;''~;> <9+= =RēR!ҧr+;ϧr=''AUR`™RAr٧r;5'', :Z >w ; 7 = ?+5+6 7 8+=+: ;+9;:+>(<_;<;<{{_f j ݒC@ApiT#@QRkh TAA$,L#n5c$B[g~d|!tBm=bhd@{[+}p@mtCmlAm ` ~8 ~ } {9~ |(vV z+w+{+uz v;w+y({+x(~+}z((w__T5npDm8|HmtFm|`T@m}+zhGm+{lEm `z y+t y{`uZ+v6 y y{+w+|+z+{(x;w v+|+}+` v+~+w T_T?qT!(R?k@Tfgf R/&RkT`Q _k(TR D !CXS!K'd|n"B|>tPm#;hd@by@ {;hQm(y;|  } z ~+{(+} |(@b_xS4Rk`Tq "@z(T~eR>&  Rr{{/C{_f!@?T `T`~_`_{|{b_&!x?kT T >?_ _{{"_{=qTo=Lx5= N8y N=u{¨_= N.y=x&RkT`Q _k(TR D ACXS!5K'd|B|"#&  R{fx{_{R = =* =5='xqT ==xx`6R = @{è_{ {_f@`At!Q?q-T?qaT3aTAA g_A7a$?TA!>g8~C`BA_g&@ AxW!Q?Xq-T?qaT'kaTA '_A7a(_jTA! >'8>C B_'{ =@S p!p! |S?qLT74 ==z=z =q=ow4o=wqT@.==z=@#@A' ==q`==SA{Ũ_`= 452o4@ =~= == ==@ ===q=z =z=oDw@4o=wqT@.==qz=#@'@A ==g_R'_֠@3=_{R =3 =**4 @{è_R =- =f@`#@(T f@T @``Tc$A@g `+~+a_T B tg?qaT+a5&@ R#xk(T &xkT @ k`Tc5$42' ? +>+!_kTJ B6 Q 'R?kaT+?A5{5BpNN{Ǩ_=4Bv=4o=S[WDv 5/@4Ҟgpq2'>  /)?q`Q)/#f#f@`tet QqH T(R"Q_qTbU"!.E,LCmӄBtg%~_b> @;p@m$@6PCm {=wZ |Em?TAm{+z+x7dBm  ~+{ v w +t{;z*y*u x_+x{+} x+vZ;+{ xZ+x+y+wZ+| }+z+~;};}=}+~bf aDtӁ$Q!(}?qT!?p@m=`Am 9Bm:xCm+|;|f } xC@@ e8c<+{8xe!xc+| !( `=a?~!(x(y }+z} ~(a(d4g(_`"T T(d _q T_q T`RK & T`$SCQ@&(qHT5f>g ~f!@$xnBBT+a__`*TҟT_qTnIT (`_nBT!TҟT#/ᗟ?kT a_`d#_֥(QqhT`RK! !T@a`$@`n`_@Qq(T*RC`R8a_֟ᇟ?kRT7 q)Tnq`+`@a`_RMB7gg(~_{ ;mng n)mA`n ~$Tg @ @;Bm{è_!`~9o`AggO~)m~C`)|;z+o+n+z;|!` {n_"&& @ %`QCxSkdQ TRk TR# d "cXSB/!K?'e|n"C|[@_he!"by@ _hQm+yXdPm;|  ~ { x+z |+{+y | z+}+~ afBo_HT!&n=Pm;hQm+};}f;}C@@@ !xc `  z ({+|~(g@b_֟k"T xSQkTR7?kT~eR >&BxA .4!xSk"EzT+!qR.$@zT!xSkT?kT "*?k|Bk!T ! 76. @xWQ?\q(TR!K R Q?jAT@!j CxWqTXqhTRK R QjTj<S!xC !>\F#~ TA >g#~IT { = N}@` =}A` r| @{è_{s{¨_{s{¨_{s{¨_!f`Tf#@t_qbDTT)t'B5tӄڈ Ț4(RK?kT?@aa$Ț ga(`R0 DT8a@akxZ`a`_@cLi5$tӄڅK! ŚR %tKK?kT!R!K?kT_ kjTA?kTa! gR&!@!L! ŚcӄxSe?kTBQEe/ *cBQCT%RҥKa_q!c$Ś! gG!@a?k@TB?k!T(`#aT#aT$7!&kT&"xRyWӟqBCzTkT5YS#xWӄZ!4%RKkT'|SR?@!q!R!KA$ '!( R#!LT8!}S@!?kxZ?q ! _Y*B 2%xWӥ5&XS'|SZK! R"%XSKZ'|SKkT!R!KkT*'|SkJTkTA`Q!\* 'G4R%!X! 2! BxSxSEKkTcQE7*e7**5BxScQ_BkTA`Q%RKq!\*B$! 'g4!@!'RkTckT( #!T#!T7{>NoS[ksNoFWGr5CsNIp==SA[BkDsE{ɨ_cC?@c=ppqR@zTo=r47@8p9pS4*5 @g{@=`syp9QkJT>PWR4 FAAkT= Nl=#=rq, T=#=yr 5 6ck T?PWRX4 g@=Xsfp Q*5 @g{@s`=Iss@*yp9Q?kTRqT<*' RzScQ$kT?&!ӆBڂ?Bڂk"KB\ %R@ g5PN!|q@SA{è_N*kT@=oqNR kT@=fqNAR ks{ @`|A` @K{¨v{ @ A  @K{¨fb?R@`"r` xkHT6kT?(lTg~C`_g(~/RkiT8`_{CPAmqTqT`5 Rs{¨_֞ Rm@a@a{b?R"rSf@`` xkTRȧrk(T?(laTgn@SA{Ĩ_g(/RC@`/A`l`kT8`o*Cm R.@`CmYqTq`T5`@Aao@Aa@a@ao@{BR@ "rS& xkTиkT?( rATpR'>.~SA{Ĩ_pR'(>"A`@ A`B`@"zR!|Sbrk(Tb|R"rkHT 4DG+~A`.@ A`C!`@DG9A`"@ A``@ HG4+~A`@ A`C!@!`@;~:RBrkT⻝R"rk(T @4+~A`@ A`@!`@;~ @a4+~;~kT8 @*@ @q TqT`5`@@}A!@@wA!@!`@@p@!o@@j{RS=D['@spc>PkT@g=`o6RkT5@ ==o=@.===7i=SA[B{Ǩ_N0r==o=RtNo====C *B RefBf`qTq`T5^@AҖ@AҶaA҂@aAҢ^@&BR@ "r xk(TиkT? rTpR'>C _pR'(>"{"zR!|SbrkHTb|R"rkT DG4(0@!{¨_{¨8* HG4({¨@a8:RBrkT⻝R"rkhT @4{¨(8@! @4({¨8kiT8 c?@qTqT5@a@!f{l!ȅ?m|@ @``νghT@`TA`6Tn ++}9nn(oo)`n @?Bm{è_ @)n?Bm{èD{,BR Vr &?m<@ qsz`'ν?khT@ kTA иkT. ?+?+=?9?..(//) . @?Bm{è_ @).?Bm{è%{wuv{_{R =B@spa>PkTBgA= zn6RkT5@ ==n= @ ={Ũ_N q = ==h @Ro ={ŨF =AqTq T5 R: =` = R3f AUf{#phT“'ABqc6“Aӄj4`J`xdxc!<ScA }`|@|`xS|`$`|(H` }|$|``ӄD ! _$!_ӄ|(|!`ӄH!(`!|}!` @_$}|||@M|@,+|@AG}`ӌ`k!`ӧGDJ-) $`}` } |`|`l}@0|@| B-AK@ k` 1-  !!$˥˥˫` `-}||}@E}`|@! }ƀH`ӧG||``ӥ@(`ӡAD&J  $!!$?4ēMӉ`7||%|`ӧ`EE%! ˧|`EE@&!_)T!(%"EBʿBA@"BggGC _pR'(>"R"zR!|SbrkHTb|R"rkTDG4( RHG4(R:RBrkT⻝R"rkT @58 @58kiT8 _{c@{¨_f{B}" @ g `TiT/n`;`@a @{¨`_(`l`n(~`;~TO@(T@b(`[`(pT@a`(~`&{Rr x|S '?kT$R?kiT. (?@!q @{¨ _(  .(> ;>RBЧr?kT r!T (  (??0?@! (> {}uKt{_{R =B@spa>PkTBgA= Pl6RkT5@ ==lN == @{Ũ_Nn ==eN @Ro ={Ũ( =A"f{S`+@`kTnkhTn`g(+@SA{ƨ_;mU oTSf!iT kT +m l`F9m3mA`)N9o9/B@=!;C`k\h`k=h` +|+}TI/;Dm`x8;Dm!Qa k)TsgoCbA`@`l  !`/g;Dmg;Dm 3mAa +mko`Fp!nj)nTN9n9kd lp!m9mDT/B@=!; C` ~ ~\h`=h` +|+} T~@Aa!`lT l@A`dF a  oj)n `+Bm3Cm `;Dmx_9k;n ll iA`9`HG)lX|@ |b i9 ~q@T/ q@Tq`TRk AaAa@ oo@@a/;@a"{5@b{_{ot.=s{_{ R=@p?k(TR?kTp?@kAT=d=m=m =ojqT@. ==m=d=  =dNo==|k=={Ĩ_@d===m=m=d =oj =qT@.=m=mf A{SR[?R@9A4*˔! s*qT~@SA[B{è_DЁ c?bHb8|S"85 ?9_{ @95`> @{¨_`ja8qTj!8! ѡbj`8_qaTs`>_{ @95`> @{¨_׎`ja8qT!a!`ja8qT!`ja8qT a?9`>_֠4|@_֠_R_R{CS[Cc*ks? "B3 R_=^t@ =v[q@T q Tq@Tqsb?ss>H7 @7@H@{ASB[CcDkEsF_s?s"?!R?FR*74c:q'?vƀ?!@?_ !! *#a*?q*ǟwS"Bk`8q@zTe#*AR;@94R @Cah`8A4k`8_q Bz@TRj!T4 BCD73sR;R5T R**c:q!!3?!@z!9D@zaT_"@z@k!! @R`qLT@8RqZd4 R**c:ƀ?!@?{S?@ 7CCZRA R#Rn`55*57@*K@(;@O@**s5!C@q@R%@*SA{ը_;@7@-*#Rϳ;@O@K@ҥ TK@7@q-TR*g8?@K@"{ @ޒ @95 @{Ҩ_@]5`>;]`5@S@?T@W@?aTʌ @{ \ T!!@A3@ST!@ I93@ғAR @{¨_{S%"Tj@RSA{ܨ_@R"{?(TS R١sRu* 7 s R @qT?@áSA*@{Ĩ_R_{S[5BcB@A6d6SA[BcC{Ĩ_^**d6s4SABcC[B{Ĩ'^"g@!gaT@Ril"g@!gaT[BcC@RSA{ĨRl{c7GS[*@#cG5!!G"R*?k T`a@9?q@Ta@9?qT!!G R#SA[BcC{Ǩ_a@A4a@94?q@Tk99G+!@A4!|@aҀ *7@:@B "`"b8::5?`@9RRQojsa@95 R! R8Rk{TM)k Ta;S qT{ *?q* BzATb{8{@_q`T+@kD M) G`@9qT G@5+@RkD@@!!`"$G{@#@e@9q`TbBC5?kT"BG@RAa@9?kT G@@4@@!!4bB#{c7GS[*@&Gt5 G!R*kmT~}~@x`j`@@9RQjTs*<G`{@9?qT*kT@c"RQK|@g'@4kTazfA'@9q!T @94s*@94?q$@zT?qT@9F4kR F@9 ƬQ j R?q)ZHf8qjAT*qTvi@9q TkDkTFi`8ha8k Tk`T@944"BG@@_q T G@4uhav@O!!`9bb) k"BG@@_qT G@ 4uhav@4!!EKR G_qT G@ 4q y@ 5@b*@)kDR[*kDXkDVaxbaz"BџkTkT@ sESA[BcC{ɨ_*6  G GFG@@G T"!{`@9@q@Tq TD@@A RkD@9*`4k|{`h` @9?q$@z`T@9kTsER%R{*|@԰qR!K{_{ԥ{_{Ԟ{_{ S|@ԏ`4*%@qTSA*@{Ĩ_hCR{|@|@q{_{S[cR@_k`@a9Ҡzs*Vzss5jt8qT@5*SA[BcC{Ĩ_C`{R /5)7/T @{˨_{|@!|@)|@{Ĩ_ I9_{|2C#*??q@T T4?qTR? qTRCy7CyqT ;@1kT @R R @ @RCy*Rh{Ĩ_{R{S*|*R5R**k!R*h*ARe qT*SA{¨_*=!8#@94pqAT"@9_pq T('RS?T"@9BQBD _qT!!q!9_P`{\ R{_ R_{S[c8ks*;<{ Z?*Cf@+!@b AR{BSC[DcEkFsG_NSC3#jj`8qTTT*]\`5\5ARKa<sc{@Tj 8j 8j 8j 8nዀjᓀf ᛀb"!B!@ R{BRSb4 RSA{¨_b@dAfD)!``|S @{S*[c*ks`jv8q T6X4{@?4qATRR/=K<aC)!q` T4 6 K`X6b@?qTqX@4!@@ @qTR(@qT9R @ @qT(@q!TR}YRR9#{6[@;`@T_@#{ S_@#{ S)рaj`8?qTѠbja8_qaTRRb*k@qsaRMz9W5*#*?*@4 {@`@T` @!TRSA*[BcCkDsE{Ө_q {Bz@Tj58\4*#?*k@7k@m`? ;ێs@*7;F?@_TRbj68}C*Q2*@5`CL@9ALqTCP@9ң4B@B<`_TR"(k#k@k@ c,{SR_qT*[*@hTm R***7@Ҵ[B*{@ SAc,_wR[B{S[cA R#S`7*S RC!R*r`5R*r*5S@cBүhA R*7R*RvW@4h#@*SA[BcC{Ǩ_* W@\{S3s-+5SA{¨_*4{*@ Q*7* @{¨_@?pq!TaRR_{!Rrs3{¨_{|@STK4*SA{è_/@*BCh ARs c,{G !S?"Tkc"s{ [cc mc#7c$R;_RRARSAzc9 kz8qTR3CzAc!CR3!h{8?q@TSg9o k{8zq` TzlRg9u?(T!lj58z AT;@Rhz8qT_TTߢ T7@hb8q T[ ф k{8qT5RӅ @z T T?@hs8q@T{R k;87@hz8q!TC@T48RC@CR5ARSA[BcCkDsE},@XqT57kz8s" `Sj`8?qaTT TRcB9R?qAT Z@8?qTR@9?qTcj38cB9qTG@`bWlSA[BcCkDsE>! L ! !C@CTT"k`8_qaT? Tc ht8qTR k48sb?T4s!l[BcCkDsERSA{@ c,_{H{_{|@B|@*{_@qT K _{*|@  1T|@** @{Ĩ__=` ) =7@qS4mTq{+) +/{ƨ_{CcS*[k3JC@ 7rTCs*8SBЄB"N 7D!d*s.Bf*~@|@===|7 Ts `Q`8(qT@R38sCv~@R N(73@{ASB[CcDkE_ARRr RZ!7R!`: 4@!`RR@qTQqHT! $6CR!`:`6N 6! Rr? * 7@! bK#W*CR @@@R! bK#W{S*4"CS4"=*@SA{è_{ RSș3s"Cn'/@ҺSA{è_{S*3 R[*c8#͊\.jj68!46`C7#O@ҐSA[BcC{Ũ_.9ARRr R `7R!`:z{S*`Cc (`6qTSA{ƨ_[s R6g"~@*=_=Ŋ_@X[B{C#C#' ) A=={Ш_{k{_{S@ @asxaV@@TV~SA{¨_{S* R[|B7 7cso 6R@ 4 @TR 7kd5`j`84q R?qRB Bф *|@cjd84(qTcQflqTlqTHc8`#`ր5cj`8q`T`@9q`TRfB !5'RRo@`4 @ TR 7k R7k  R7kCO$+*O?qkT@`T:{@!3T` #R_C@ UW 4V*R.69@qTcCkDsER {@@kD\5~3RcCsEw@Y*SA[B{Ѩ_q@T!RЄcB @;) RRAR{@#*!RQO*RS. 6@qTz3RP_C@#T*6V}ӋU`V*|V*R,.6Չ@?qTRo@4 @ mUo@4@?x T@ @˷qcCkDsESR{(B|@{_{ {_{{_{|@{_{,@TS?(T* 7B|@|@c~@ԟATs`qSA{ĨyR{Ĩ_sRSA)|@@F){$H҄TAB|@`a!!Ծ{_{ *7_HT7c~@Ԯ @{Ǩ_CR"L@7@B+ )C|@{`݈{_{Ԇ{_{{_{S!rSA{¨__qTB|@(K_R{Ssb@9_qTRm@9?qd@@T˿ lTa@9?qT"!`Fh&Bh@SA{è__8qT@ԈR T͈R@{S** RR*r**?@@*SA{ը_{Cw{Ҩ_{(|@{_Ҿ{ERCS[c@@ @$@+@ )KS(4SA[B{ɨ_jk R**QT?A9qT?{S*C @q`T~@Լ**SA{ܨ_aRRrR[*7S)a@#!?=>t@ @`~v =R̉RRCZNR#B5@R RT!9{@5G@K@[B~@(@RaR@[B~@('@G@.{@@{@9_q!07!|@N{Ĩ_3@) {(|@:{_{|@z{)*|@*{k{_@9?q@7_{1R Z3 @{¨_`87_A;"]R! B@_A: Z_#c:bD@@#<*5d qTT5 _c cTSC_! ?qT! _{_m R"{_9_$:V{S#c:sa`@qT"CT/@R?k T"$Ra(A RB b/t/@ya@?q T@y@SA{è_{ C!" @{è_$:!"DHT/@a$:$:{d@Asb5 @9`86E;ե]@eQqT!FX`Td 4߆ R"{¨_qR ҄  @9|Sh @Q*qT%@8ѥQ*6%@9QqT@@q_ R{S[cks<@7`ҟbBӄ@TBhT낒<@T`T 7@{"sv7@{@SA[BcCkDsE_ 7@[T7@es?T7@{ 7T`7{S3@e@E4a@9 |Sh @Q*qT!Q%*e7sхD@;]@$ c@9aQ?qH T@@ TsуDRSA{¨c De@9s%5@˟hsc@a !*?r`Ta@9#Qq T!Q?qTc@9Xaa|S#@Q!h !*?q Te5a@9 4 RGsfa@9!Q?qTe7s aa @9!Q?qTs[6ߟR߿r a @9se_8@>)сc@9a_8Tf@ *rTaQ?qTsуDaQ?qITcQqTa@9Xc#|Sf@Qch c*qhTswe5a@94 RSA{¨_a@9!Q?qTsс R%*e7s ca @9!Q?qTs%*\@sqTe7sa@9#QqTߟR߿r@Ts{c'{¨_A {" @9s@86E;ե]@eQqhTЄX`_ TB @xSQ  7"@9@|Sh @Q*qHTBQD*$6 @9QqhT*6 @9QqT*Rdq`{¨_R R d@Rd`Rd5 R"R_֠?q)T{@;]@@?q T#8@QRkR @zIT#@@Qk)T R qT A9{_#|S!cd2!`2@C9A9$| S#,F!h2c`2!`2`D9C9A9%|S$DL#,F!l2`2c`2!`2E9D9C9A 99 _{S[vckc4@ˀ@є 4@`T@@3`TTT!dU4SA[BcCkD{ƨ_{S["3@# cCSA[B{Ũ_sa@4?qiTeT98cҟT@d@Q*q)T4KT@sc#9˿cCcC8c@d@Q*qIT$4) TT@s!@@cC{c{¨_qITA;!]!@ ?q0Z_{{_R_|@{@у{_#4{d|@S*[|@*@Ҽl*6@!XQ?xrATRrjT**7|@37(ҁ@*SA[B{Ĩ_R(A"_6{*|@8{_*|@{`z*{_C {S*GOWc}Cq TO@ R?9{@SAC _ H@?qǟ`D[Bh`8_qT @zATH[C@"RRwK @zTCw@K%QqHTK@&8kT@w*BkTG@h`8q!Tw@K$QqTK@w@%8W@ @@C@[cksCg ?GqAT @9c*c|@!"@9%GCSBqhT4lT!e[3xs4o@s~@sw@R[@sB ˔K@Es`jv8xo8`8 kT|y@5  Tv5@@o@q!?@ ??@@W@R@s@o@kJTC@<To@o@QCC@@ QA!Cg@[BcC? kDsEC@@@!TG@O@GbK@R?W@?O@A@8a 8! C@|@?T@4O@@|cd2h!8"8c@?W@$@Bz-T!@?@c ?A@ac@?TO@A|*O@_h!8qDATqRЀ+ n$ R_4T8@9&˟T ˟*Thf8Hi&8aT)  mT@9qIT?T@9Sq*|@ jTKq9&_TE@9|@4q(TBjT_B@@B?Z?,q- T{S @9 @ T[ |@s*у@9@92#  T@9Qq)TT@9?qBcQ1Tcky@73ќ@9@9  T@9Qq)TT@9qc"@9a&@9#  z(Z@_LTa@9*b*?`7fQ1T[BcCkDsERcCkD[BsESA{ƨ______{S[ vsc@_hTb8@TR@9qT@95 @y3@ ySA[B{Ĩ_!@{S[cjs8s(\ TSA[BcC{Ĩ_!.___{S3s@y R!2ހ@y!K!<y5@SA{è/MSA@{è ! R@95A@9c4!505{S [?cksbZ\@)VTA)TjT*qT$ך6XZ(7c77@*** *7** *75~ Rz ~!!3L;S 5RRRfc9hF! ;7lF: m)Gb! @!@*B@:@@G5@*ߠ@4G@[`Q@qhT! $6s@k**97@ QR;~"R'ARr?T7@x`k@T_sH*S R6ր@cCUkDsEm*RRRRR}bB|@%``by@y!`fy``sbbkTty _@9 @9q~~~`)d)bT4s _q@T(qT`by@y`fy`$_dJ_9s*?TF R*z sGR AyycCkDsE5cCkDsEcCkDsEcC*kDsEcCkDsE cC5kDsEcCkDsE*{@SA[B_{[c**kcSҚӠATLKyEd**qT/@`R[BSAcCkD{ƨ_{[*yKSck*s_|#y*qT q DzTw_Rh rR*o}@"Tca@zzj ֢р@@\_@Bo@*R*R҇@@ 1T1T01T,1T`R@?@qT:_RaRR@RSA[BcCkDsE{ɨ_`5@f)!@AR`RaR@ RAR{c*#cS[ЕA\KFK~c*qT/@`R#@SA[BcC{ƨ_{kS*[*csDR *`7*q @ҁRRB )7xx7@@RTa~} `L5ҁ& 1T1 T,1@T1TR1T R-AR`R*aR@ R&`R8@!h3r@hss"^@Th3@Uw@x@w@5_@4R{@SA[BcCkDsE_sU@@w@@ixARm{*S?q`T?(qTa@9@ ?qT?qT@_TSA{¨_a@9!?qTea@9! ?qTfy6^{S[ @y@q`T!@ @z`!@?kT@kB"A? T@y@yqaT!! !8~k LJ c @y@qT+W#X@@Yc@U@dAq@@U#@@aBqATU"D@xB]`@y@`@y 8~s T`@y q@THTqTq!Tb@yB_`T&@y#R@W#CyAa@#y@SBO9]W`@y@b@yB_@(TWa]W`@y@b@yB_`T&@y#R@WCyAGa@y@3B/9]W`@y@@@ @@}@AwqTB@9@dD@x3c@y@c c8~s!? T`@y qTHTq@TqT@@^BC#Dc@[CDR^<_<]B@9@c@yB@9@@dD@x@c@y@B@cc@y@b@yB_@hT[aK][c@y@@@@F@9UWB@9qTR]y~bCR]?CqTs R!KR 98*R+@@@@@@@cCkDRSA[B{Ǩ_+@^IcCkDkD{ s@QI @{¨_BR{SV]RRB-% @*5{@*SA_?0q`TR_{%  RqT @R{¨_9${CS[*c*k*s@y? qT+qT{ASB[CcDkEsF$_C?<qTe@9d@9c@9!b@9RKW@zTc9 6+7C@c* R4@6R/r/9~*Bc@ K* 8$qTR"8uv@7"Tu?@D@zTR C?lq)T!`;_s 4d^BRK_88% !|SEe8Aa8888T!`uu@eR@9dV@9cZ@9!b^@9KgWcWHG C@O qTc GKcH95c K@ RR҃R"RRC *W@@Ro 9ic9qTq@R0cW@BPfcH95y\!`; \O @99$Qq@Dz4(TG@?9RqT@#qTO@r5@kT@RfJaRt`ARySS[S@!`;[S@9 @9$Qq Dz@4IT! @9$Qx`4_qHT"?9_LTBc[0FcH9`4c4C@@9q TqTC@@9 qTC@@9q!Tg*@ ``@y' c9<6R/r/9b~*Bc@ `K*8?$qT<cc FWRRIaRt@yA@9[ $Q?qDz4(T_9BRp@3T[@`T64Ђ! u5b_LTcQ[EcH94cKu@:T?@tЂ!@ u 4 {|@6{_{ sc/q` @{è_{S[cBRc/|p/@@9`4Kk@AC@R?(TV!` @tR@5CRR6,RkD?qIT@RSA[BcC{ƨ_! )t"R*R4kDRzjwJ9@y@?<KA9c` q! !RkD{ s"c@/q` @{è_{FRS[c<ks*yyCowr T~@!˿Tsеb!` s"s`5SyB[ TYB@YsqR lSRҷ*$1TR?,1T?01T@RSA[BcCkDsE{Ǩ_!` 4*! 5BRo* " `TR s*R!4@R{|@E{_{(|@!|@B|@|@9{_@;XG__{S :@SA{¨! @KsQ  R@95A@9cQ4!5j5Z_Z_NF{R[ARrS* R7*"RK(*`~@!7OtSA[B{ƨ_zz@?Lq`TR{Sks; @y9@@q@T;` @!  T`@yt@y q!TQBq, Tk [DZcR\<@ @*@x:~{a@3Q4sa@?k!Ta"@9?kT`&p 4@ @C@)kT4!xSR"3A|EC@S@ Ra~@s|`$yt 9Y@ @A@ !A@ @j3@@cCRSAkDsE{ƨ_[BcC[BcC{ RS#c/#RYB2ARR7K@S@ P E [K@/@|&T_Br2^88Y2^8s8j8[BG@/@zEy" R"SAcC{֨_{ARrRS R!@7*}s*a&R(*`~@a7;@RSA{Ũ_{cq@{¨ Z_{S cC#[@LRLRSn'@"T@9_qD@zATc@9`Q$qT4qaTRq`T qT5+@\@X+ @@ <@!P@H !_?Tj 8!T RSA[BcC{Ǩ_{{6qhT `*_"@*Rk *|S6?q<_\*|S6q |S!|S _{*|S s/\P@9b:@9`4H! "! #  B ;S9 RXRR#  #B` )Srksd@9q@zd4Tq Tr@6cTcFkGxR{CSD[E_քKBK@@CR8"8|@:8p=qcFkG{S[qT(qTx" R"YaQ#  @Tdj`8Q _$qT 4qTb@9_qT?qTb`8|@j&85 q?_qaTsTR @9qTcR6 @9qT3c a@9sj xa4qT*R* cT`jc82Q%Q$qTqhT \Q#4 ac8qc|@j x!5A:TcCRSA[B{Ũ_@T?qTcs`@91qD@zTR?qAT_qEzT8R j xR1TB*R|@BK4F&BxSB|@eoR!Kz x?kT&@x"|S$88aT Rx5cC2@RRqcC{(|@!|@4{_{[*S,q-T*qT`"W@` RSA[B{ʨ_cCRcpTC@R*R?qT q@T`"VBRb5@9Q$q T'@9`5R`cCVk78# l'@!@94CA9q`TqTGA9 q!T5GA9q TcC @)TcC@9_qT_qT#@R5#@5#@C5#0@95#4@95#8@95 <@9qT_qT#@9`qRR_@9 @9`qT$@d5$@$5$@5 0@95 4@9@5 8@95@RR@!@ K_ c,{C[C kb<XStRRcs*##c  kRos"qT#R@w~@gfR"RRk@T@q1~@ck!} Th!_h%84C9!ke8kT k%8C*XR@7c~@c!XҀ ?T_! q T@ @9B q`T q@T@4`'uQ` QXRJ3c|@Z7>fWsѵ$  1 T@a_?k)TXRw@q@@{A SB[CcDkEsFc,_{Ss<R[sRbB@9l~~B45 `F@9u8! @u8!kT@SA[B{Ĩ_{ UpTR @{¨_aTs`@9Qy! AzITp5`@9q{Skk?o @[cRRs\Ro=.v@?PqT$ 6oi@RD` aRn@y-q@"_8_qB$Q@DzT!ht8?q!$Q DzHT@@9Z$Qx`4?q(TRk@9f2 4qaTo848R@RC qT?[BosEcC)Z@@9$Qq Dz4IT! @9$Qx4_qHT?9;b*;@@4?@"B+U?o@q[BsEocCo@{@SAkD_@o{*S?qT@q,Tb@_kT_qT_pqTRb|@c@|$gh c@`@ $c@`@e $ TRSA{Ҩ_% RqT@4`@/nqTGR@qaTGR{S*[cks*?9Po?TT6*q`T{#Q*q4 :T q*`@ 4; 7R"A_(qTkaT3SRZR>O6(q@T7{7(q TR?AR r! ? ?kT sBR!R|?"!9?7-6|AR|#RXRp?!RCRR#"#9!/9? ?|?3!9?7(q@T?@R ? ?k T sAR|!??7XR Ro|#i|R R? 8R# _9?q Az+TR"A_qTkaTVR~{6 Q**q4 )T q`y Ҡ 7@k|8q4!3ABk`8?bT_qT9\_8?qT9_qTTSRD9ˀj<837%@8$Qq`DzT@8$Qx@4qhT?TT?TT57@*9IqLTT3@S*h68:q@5@9kTKR! Rd"}B" p T@?(qaT=<#>k<<sr`T`^qaTt2тSҕSzC RaRK{3#G`>COҁSR3;q;@*SckR*c@k@`5_ q TckRRrL@9@b2c@RkR[#|S (BKc8Jc8BJB_jT!?qTR s3cJSc@#\S*c“c@RKe*srB*QP*{@*tBk Tz)# ?| g7;_+q@TC@ SSSSSG@R3c;CAR*L@9rH@9"R* kRR73@**k@4R@c'g@Ҹ*{@SA[BcCkDsE_{S*[*cGq@TqT4 y 9 97Rb4_q TR Rb4_Dq T6R7RRt@94s#BRhG@!@95TsE<FqT RyyqTWR!BRyyR7RwsP7klC=Fq C7@ w?4s@W?Pq T$@ 6kDsEX9 @9$Qx`4?qHTBRgTG@T7@Ҵl 5qT~~"BRj x"y?@G@lqw@@zTqǟR@$@z`TaRHk`ARym ?T"_8_qB$Q@DzT!hz8"$Q!xa4_qT~~ Rj x"y<q TkDsE*{@SA[BcC_sE7 c,{cC*S**R[#*^RR$`R*RSyy[9T7*RҸqT _<iTb @y_ q`T_qT?5a@! !t~s#@ {@SA[BcCc,_R{[*aRrSR*R7**BR!R*@4`~@(@*SA[B{Ĩ_**RAR*__@yZ<_@Z_Z y_Z _{S[*c*Q4@7|@?"Tsw4x`T|@ TrB R"SA[BcC{Ĩ_`K{[! ?,qmTScR"y 2&y&xv ATz3*`7 s@T{sx5z3?ATaR~SAcC[B{Ĩ_SAcCqA RSAcC{ *7* @{¨_֪qA R{? qhTS*[*@@kT*a~)`z``&1` T 7wF4**@y?k- TcF@kl Tb&@kmTa@K*[ 7a&@uF" b&`@$` 7b&@a@@ `&!? Ta&:y`&@a&5 y4a@`&@!?- Ta&/ `&@a&&<@yb@a&@BLT !a&`F@`F*@ykTtBqT`F&uF@FRbz`b& y `F@`F*@ykT R`BFSAR[B@{Ĩ_SA[BSA[B@ qaR @SA[BqA RSA[B@Z_Z___{SЂN_qhT! @s"b8 a`bXjNB! SA{¨_{Sa@i@5SA{¨_{ *@?kT @{¨_{*|@|@sp{"{{G|z*'*T*|@`]p {{_{C|@S|@v@ҟ =~v@6`4Ni@3@5{@@?T3@"}; @"@!|@?T1T@!}4@!|@!@4ViR@B!a@"@C_TD@85"X @#@c747@@3@54?X @?k T3@R5@7w"@ೀ@ @_85㷀_8`5a5w_kaT555`@@whSA*[BcCkDsE{̨_{cS R[*sv*@*a?@7@A} T @v3@N= H3@=N=nN=;@TRO43@M4_@vh3@!ˡ;@d@!hcc ;@:43@84_@Ҷvt5[B*SAcC{Ȩ_R*{ `zB@5z @{¨_{ `zBB!0@ @{Ĩ_!; a8`z{*ccBF@{è_{RccB5@{è_{Ss[ RckBv<>`b@AR@8`@p``8ARk`R_84*`4g@`@3_@v? 4gEQZA@9 "Q' _$q)T@@9qT8A@9?q@94?qT@!@{3@!g3A@94!g@`@l3@9"}@4qaT!8@`h"@h"@_@u4R[B*SAcCkD{ƨ_{S[c*`@G [qMTFSR@ 4ˀ3`ˀ!~ӡ@4"Ҫ9 X4 5hgRcz`!Zz ˀ?LT3!; s7c7;C36ks?.Cg@qTzT6t @qm TG@*5ˀTz`@_kATz ˀw@!hy_!# 5w@hy?@kT@FF;@5O@ cgc@kDsE32S@2W@2*SA[BcC{Ϩ_tkDsE⇀ˀMTz`?k`TTaD@* TG@kDsEG@G@ҟZ{S[ Rck*t!; 6`f@g@ts4@kT>*S5@U@?_@583@g@tRRqT$Ӛ 67y9`Tc @A 4@! 4@ 4@ 4@f 4@% 4#**c*c* 7! ! ! "@! @!|@_#T"җ8@Pi$RiG@b@ _85c_85B_85⛀_85^5R*r|*ccb K*B"8$qT/1/@!@34#f@2p_kT2g@ҳRLt22Rg@Dt2@`g@Hq(TRr:eg6@qTzTsEAR*sEOR<=p,g@5@  @qT Rgrg@*w@r@sE*!`;g-g@@!; 3 ! ggR @sEqTzjc8(qg@1!]cc57T]7@*@5ju8_qTjc8_(qT1@T!R{gRsEt!Rtg!RpgYR*R_R_{[*STR ckcs9 )I]OBs =ZG\KWHc@RRC@R!RRr R*7-*Rs@qT^**R7@"\5 0*5@a5/7@!Rs@ .Zs7`@qaT!@8%3 `@qMzBzAT| @ 5@qTR`/[BSAcCkDsE{ͨ_~?T"@BZ"D{[1@@!@37S@Bc"#Cxt!c3*7@6 cC#@@R 4*6`~SA[B{Ũ_#@cC!{C @AB)@3|{A_{C @ @_@T @ T @T @_T @?T@ ?T!@ T#3C!'3|{E_RRR R R  R R@y%@ @yf@$ @y!a @!`ay_{!|n$Lg{;`_@ҊA{!{Q_{!{P_Q _Ң B" | a_@͉R8r$RЊRRr! ,AJa JA< JH@J|S_CC$`@#4|qdGzbRB𥒩*?% `ӂx!!|kLT@2_{Ssb*"a*SA{¨ba{_TS[*baCaCD`@\SN@*!*~T T)TRRR0R1RR*A`eCbNA *!*+aSA[B@{Ĩ_RRRR{SДb`ЂCaCh`@B\SNA@*`!*a@""cks^_CRc@94R1XSA[BcCkDsE{Ǩ_ YTRҏYo9?9|c9ARX_T@95o@4R3>3@Rk"8@$c >@4qTPqTqT Ro@8 4BGB@{|@(#S!1T|@iSA{Ũ_*Wi@hE_@?q`T!R{S[cCk`j$ @9q,T=*)_@qNis-)BuB_"T@@`j^8X;#ќe @*_@64eq*(" @TFs"^`T`@@@s"T`@@`v5s"Ta@ @@v_65*h*$*_v7SA*[BcCkD{ͨ_RA:O{Sc3R[cckJ`@)~:WI~~~""=~g$*% 4`Qq T*_$o@T*oV$s@q T6*|%4#A8777Z@@@O 7W@H 5W@W5H`5W@KWS҂qCzATR~@W* 7(W@q`TqT@k`T@|@?k T!|@W*6G(ҀԄ@@k T@ qT-Tq`TqTHW*60(!bxAWB|@W*6!C)` B2B|@W*7@?k T|@!|@W*`7((W*6@KW@(A"##@R$H}al@! JG G@c`?]@W`4q@ ̂c,{S[ Rc#GkoC"Rs=l ]R5""R̂-c! ^*g@}B]qTKGc@}G@q @AT"@RlK@kG@ ̂{@SA[BcCc,_C*RM=!]]@Gc@`TG3*RO{SV ~`tF` V@`@R@SA{è_րR7{S*} R@L)@@@_RSA{¨_ R_րR{S*!*7*} @R`P)s@`@R@SA{è_ R@R7{S*Ҳ}R@L)@@@_RSA{¨_ R_րRa7{S*[c**SV}`R`R)w)`U@`@RSA[BcC{Ĩ_ R_րR{ @s@ @R{¨_R?_R_RB@"y_RB@"_ R~<]@>t]A?t]B>t^=?x_ R~<]@>t]A?t]B>t^=?x_{*R`<R{_R_R_R_R_!<R?qhTRA_RA_?x@ R<=|A^=xB_=|C^<_?x@ R<=|A^=xB_=|C^<_{S[*;Ɛ{@SA[B{٨_* <OC{S[5Oc=Mk* C@RcM" `RH"!Rq"RE#" ATARd"WATaR^" lRsGЦ @!@C#**)53K@R:6[@qT@R"`R!@R#cCO@{@SA[BC_@R!`R!@R"[R*d|@**{ e[f{_C|@|@{ X[f{_{Sck**@9"R?xq$Bz`TR?tq`T?q`T[*_8 @94R?wq`T[@96o?qTR.@9?tqATo?kT_k`T`@9xtq Tq@TlqT@?6 7|@o@s7M)?kTBK#KkTAK_k#T[BRcC*SAkD{Ȩ_|@s@9Qc<qT&Ú6 @9s*`@9kTtqATqT `?lT+:k88(V* V5"V*V4+@R[B+@R[B{$SD@9pq`Tlq@Tq Tq TR` 86~` 7 /@!|@Y@9 4 7@Ҁ*@9? T@9"RxqBz?IThd8"tq?Thc84c?Thd8tq@z T?Thc8lq@z`TŸQ<qTE$Ś6?Thc8 ѿq?Thc8tq4hc8Fz@TcD?T` R@  `hd8` RA5SA{è_{S*[c6@@9q@T`@9`4kc*r*1@TkD1T`@9qaTROk:@9Y87?q Tt 71T?kD: TkDssIT{3*aT@94D1T1ATkDsE8RSA*[BcC{ʨ_S7@|@kDq*7V*?kT1T?kD:DXz!TO@skD$V***@4OO@3O@ST;B;ZZT@8@6@]@A_8!Q?q’ZTXS3@G{R7O;@`T@9#587qT{@51TkD:!T7@a`T@9 4*O@*7G@Q7@|@X5k3@TSC-*CU*C@kT1`TkD:DXz`TbU*C@**CC@5VROB T@9'Ҝ874k@51TkdD:!T3@T@9@4*zO@*1TC@;@7@|@?@*qUG*kT1`TkdD:D[zT cU*G**G 5BT@9 ҡ87?qMTS*@|@6SB T967@7xkDsE{S[c*k+6ZY*sc@9qd@zT7@@9*d4 *4qT`@9qT56`@974R94*co@547@{7SA*kD+@cC[B{ǨZs`@9@4qT*cO5R*cF4+@*SA[BcCkD{Ǩ_`@95R_@!@oQ{S[@(c*_$@`8j@T_8qTtxR"9#9RSA[BcC{Ĩ_{Sks*e@957qBpS 4_qBtSh&8%@8F?hTq T RR RBM 59Z k:8; @9@5{ 6_qDJz_q 4[k!k@`5@[B @qA07a%ka8f55/tqTGZ_?Tk@9 R @_?T"5&R%ka8!J"k 8E@9RqLzTtqRc*C44lqTpqTqaT4RSA*kDsE{Ҩ_"5 "4RPq['!`5[B X@R?q`T?bSq[B@RBR[clPRU06_`>T7W@W`GxRa *)4?T_8?pq`TR@6 R*?bS@5[BcC!@`*[;@b? 7?@AB99K@9**57@pT K@94q`T(q! TOQB" T@9?_@5@?@ 4O@9qTS@94 @<`T@?2K5Gb6?@7@sSs@[BcCM7@4T@)7@-T@O?P?@@BT?O#?@O@`5;@b?6?@K@9A7@ T@uB997@S5@[BcC@?d*4[BBRcC @_?T!&R"*[B c,{S[c*ksW6v@! 3w(7~ !@9Ra5iO9Rj T@9q`T*RR*"?@qTGR7_O@9\48@947@#C 40q`T"?@tR`U@9 5vx#CG@ [@m"?@! 8bha8??TB5h!84!h!85Үs@V"#@sCsw 7 44@b!!!}9"@?@}C0CO3R44R-?@s@+"}"_Tx"B@?@s@"C@B C@@B@C T@w6{@*SA [BcCkDsEc,_֠@c@ JtR{S @asxa !@?T!~SA{¨_@ @A@@ K_b@|7&@g|7h'_{[cSksRsc@"@` @``{`h<`\`B^?@BpS!*@**`"2@72`"a*@ @]`@@!7@`B !Txa!|}l!` @!ht"`@SARkDsE[BcC{ƨ_c!`xa6]*@R!@xa6 `@@W!t5*\7?k`Ts{`sj<~4!` @CR]h" @`@"|~%chb6**I|~!@7SAkDsER~ah`!ah @@B 6@7x'G]`@id7 TeD@kT{S[ @@@5@@q@T qTqTRSA[B{è_@@!@@5@4@@1`T@@B4R{S@ @kjTa @5 `@`R@SA{è_a@_kTc @` @B _kTЁ~} t` R{S[c @$7? qT@A@#@#5A@"@"4-@A@? T?AT5B@@!*$D@D@!"@7c!"aTc$z#RSA[BcC{Ĩ_֡@!@"@45a@kJTe @!Qaa@?qTT4@@`5@{SB)_kKTR?k,T`@!xSa!|}+ @b@``@AaS|}#RRj3SA{¨_@{SR[*cks3R dx`C7*#C6Rc"C6 R#R3@҄|R7~~R%77@SA[BcCkDsE{Ǩ_Ba@xa7*" @Bhah!!?aTH:jaBk!!?TAk79 @`7 @ @ @* @ @ 3@3" @@R3@D RR~?s~~7@R b @Bhah!!aTh6{s``@7``@`` @` `@``@``@``3@`2` @xa!63@R҄~R ~~`?'{_ NRS *#R=#RRd@T/=u=@SA{Ĩ_{RSR[*`*A``RR``@"Rc@R@dc@ac@aa@?a@?a@?a@?SA[B{è_րR{RSR[*қ`*A``RR``@"Rc@R@dc@ac@aa@?a@?a@?a@?SA[B{è_րR{SR[*c**#R_#RRXd@@T/ARaB@9twb)3aB9@SA[BcC{Ĩ_{#RS[R6#RR/d@T/!RuR@@! SA[B{è_{#RS[R#RR d@T/aRTuR@@! SA[B{è_{kS[csT@W*!RoX4R@*o@! SA[BcCkDsE{˨_!cQC3_C@kTbQBA @B|}$hb4qT!cQC _@?qTT! 4@ @obbA@?|@Q5G@|`GJ5a"F 5!<|@@`5@<5O@|`O5*? qT@ @gb@S@%5C@|`C 5a"5!;|@5@`5K@|`K *@@@*D*T@o@9 co*;G`;@@ @ @@?k Tv T@c7*C4@4W@ R %A**@k TN@!@ 5?@|`?@5!@"A)$ @`@@I {c SR@Sb([3kRs`@9xq)`!?qR@Rsn?@?T @*@9q`TW W@@a@b~@ 7@@`T;@@9qMT?tqT?q!T?@?T@9?tq T?qT @9?tqTsR@`53/R?lqT@9R?q$BzT ?qT:@Tks8t4q`TC038ZL kt8tqT@s 4@?q T"!R/@ /[BkDsE*{@SAcC _ր@9tqT;@@q`Sz,T *!M**kTMkT{{*kTMk TWwW@@Q'? N =kT**4L{5*{L4*L*sRRҮ7@ 7~@c7AEWMW@@ @==@!53^W;W@ @?==@!R$|}RR`⿀3B}0࿀z =k@ZkT@zz`4`@!kT'Q* N =/@`y#RR@3@RERC3@R@RG{S!@94@?lqTDH T?q"TT?qT,@@a6["R.R@.@a.aR@$T@{[B5@**T?qaTR$"5[3*"76@@6O@K4O@c@5L*O@2L*.@*iO@@'L*O@$L*.@*]@T.@.[BcCR!Q!?qT?xq@TT?qT?qT$5?pqATR1aSA{Ũ.B@9@4c@9kAT1"A@a@9b?q`TT?qTTR4?q TR5s e?q!T@!Rs ?qT ?qT)T?qT?qATD4[?qT@!Rs @!Rs ~@!Rs v` @9qTf ERRfR* ck@GzLThc82Q$\Q!Q$qT?qiT qThc8 R?q Ts.@*@d.K[$5 Q qT.@5Q@d.*as 2@_kB2[B6.Rs/5@T@!"Rs#D5`@94pq!T` @9RqAzT@!BRsO@|J`5@O@.@*z.@s5.[BRNSA{Ũ_[B@ScC[B@R{S[cks: @` @P7@x}Ӱ7@~Ө7@}ӡRRj!wk"7@"|}kbTR* R* R )oe?qJT?qT?qTQ! QA_ B_oaw7*_k KT6Q O_!N@6ySNZ!h`6L @_kGT!H@6zS@Z!S;@@"|@?K?@@@4RAg@ )SDB@SA*[BcCkDsE{Ԩ_ֈy`6@~|4@{~{@@`R@HB@h!!ja6h!W@{"|@GWD{@@5H @qTT>5@@D!T@R@?7 Ro@*o q@MTR *?K@*@ @k@?@ )K@e6#@!N@6g@|~I!g#@%h *#@  BA@ |7@|7i0c@{R"|@cH {@@55_@{H {@@35@{|`H {@@25O@{@@o@ "|@H {@@/5O@@q-T_@@qT*o{@{|@{H {@@,5w@{"|@wH {@@*5O@{H {@@)5s@{|`s}H*{@ @?@O @ R 7[@{|@[hH {@@@%5?K\?@ K@@@#5o@!{"|@oLH {@@!5O@{@AH {@@` 5@{|`4H*{@ @5@7so@*! )@@@9g@{ }@gH {@@ 5O@{@@!@"|@O@@@97k *?KpI*@ @k@!@@9@!!*A)?@E6 *k??@k@#@!za6|~g@!gi #@!%*#@ o@ * *?;@*@ @k@?@ )K@E6 *{CC@{@#@!za6|~g@!gi #@!%*#@ Q/ QO@A_ @@@0io  @_kJT. @'0Qio 5_kk2T E^_k TkQ _kTA_ @@@B@ @6 @_kJT5. @Q"B|}ib? q T,T?qT?qT5Q O_@p6@?qTTA4@?KB @O_@?@ K@@@`4R@/7!N@6OZ!Q! QQ QA_0C_/O^-3$@@B^4@?qן@@    @. @Q! Qa @?q #T _k"T_Rk{ k@@.R@ @."I4@ R{@ k "{@kG*G@ k@@ BA@ |7@|Ӏ7h&7#@!D@6g@!|~Ig#@h!#@=? qaT@@@O_!7o@S@{|@SH {@@5k@{@kH {@@ 5{H {@@5@@!*{!|S"|@H {@@5?z?@ K@@@`5_@{GnH {@@5O@{dH {@@5@a{"|@VH {@@5_@{LH {@@5@{|`?H {@@ 5@A{"|@1H {@@`5O@{'H {@@ 5@{|`H*{@ @`5@ 7o@*o@qTo@ o_kT}Q"Q QB|}ib1_ @qTk͍T!Rk{S@ [RR@ @ @su~kTA @@ @@A @@@ @b @ s`@`@` @@6@R@6@s P3kT@v@@s@@p"@@m[BSA{èhSA{è_{[sGH@kScA =R?= C`CRSZ*C@@gut5a@9 RRWR5?pqT`@9qTqaT@ @'%SAcCkDRV5R`5W@@~@WJ`54`sa@9?qT?qd @zTS@*5@@` s!a @9?pqT4R5`@9RaRqBzAzT{@`T`@9qTq TR<RqTZ`_8xqT@a@9a@9 Q$q(TeR  @8 q QIz)T*?qTqT?q`TVR?` @9Q$qhTe @9EQ?$qhT@9R Q  @8 QqIzITkJT6qT@95pqT@9qaT@ 5 ** qT4qT@[ W6RPRC@ @pn>@@a@9?q`T?qd @zAT5R@ @sQ" @Q |}@Th` 6@q!)?q`~S@z T?q@z T!@" @ Q !Q|}CZh`!t_a@9?pq$WzT4?qR$@z`R$@zaT?k T?qZ@{@ #RR? ?@#R R; ;@@`T/AR@@9!xp)@9@@@@Ha@9?pqT`@9qTq`T R@Ru@**n@- @G@@A@Q{|@bkJTC@RL @ ҵ`yA{A!*b6|S` )a6K@ 7`5`J@qT~Ӛ`bJ@`BB|~(`J@xS`"{AҊ`C@@4C@R @[ @;?5ҷ5!@@kJ%T Q # @|}"Qdch`"_?4qT?@! Q@!_ @;qT@qT@qT@;?@@q THT`4?@@@5@|`}5@y@5@|`r qT?@@@j`5@|`c5@_5@|`X4A@?A@ k?@@ @DT @;A?A kT?@;A?@"|@@7535@!"|@+5@'5@|` 5 @qT;@d@q,T@#RsO @k T@O@kC@㷟;AcsV*5@@_1T#O<@C@;ARs95@R@R *@;C@b?@@@@`s@KA@@a@ $C@**C@@ kJT@O@C@;ARs*5_Ts@;@AR@R?Ac kcC@d 4@o5k*5#!@; qa#T@@!R@4@!@?qA@!@A@@@!@ @@q TT 4H5k@A"|@k@5A@!@;5o@|`o4 5A@!@/5s@|`s(4\ qT!5_@!"|@_5A@!@ 5c@|`c @5A@!@5g@|`g 45\@@T _C@#R/@Ҍ@R{ EO@3{@/ 4)S@|#R0RC@OV G+@@+ A?)?@+J@  0) 0/6@3@!@~C@_#R@R /| @0#RC@ GR@@/@|0??@!@R_C@#RCR`3/#RRF @3@!@4__3@r5w@a"|@wj5A@!@e@5{@|`{^4@RC@ @!@B@@ @R@B@@!@?kT Q " @|}!QC@h`!z_qTT 4qTV@@!@5@@q\@@@4@@q@@ @ 5 @@@ @5 @@; 5CA|~`;@@K,5@C@KA!@B@@@@@-5CA|~ ;@@K 5 @C@KA!@B@@@@ ~ӂ`~}{ A?kTҁz a{`{ ! A?k Te zu j* 5R@"@!6O`` R@  G@%;@^@`7Z`h8@@bB Ax`6|~ )`C@R @6420G@zSAcCkD*[BsE{٨_֟Ru C@@!za!h"@aAa ) @G@SAcCkDC@ @C@R @C@Ru @@``a@94@Sa@9?qT~4{ R` a @9@>{6Ro{ RSs*sB[k>sd@9T4Q$5sWbB 4_SA|@[B{è_D5TkTk-T'xdFxdexd5TTR_ R7k@Ro=Ro'ET4oR_=&Ye||f7&hg*H@TG@F@Tf4@*kTTeB|ө@"R*?h<C|_cT_E %h&B@hP@k@TbB_AT?h<f4@kIT*_TF|iP@b*hif k Th(h&B@iP@_ kTbBT{S*@Ab4*z@a@b?**5r@a@\?5`@  RSA{¨_*R?@5a@R{S[c@k[@ u6_@ 5w@cW@` 7|@sRK@qmTc@!|}`@sK)w5W@K@|z|@@~aa7}Ӄ|c8||!cT|g@`g@@@U# @ ˀRC@ ˀ @! R_@5w@cR?MRR-`kK@@57@[5W@C5 BRs@G_@KS 7K@qmT@38sE?@R|}X?@kD2||P[?@]kD'|~EC?@:R[@@OkDR[@`kDB{ bz K@?klT B{ K@?kTC@?x W@?klT7@K@S@@|@7T@@ @ @zK@{ K@q JzwT 74R?@z [@@ C@>64w@57 7A6@5@5@_qJzATA 6~qT*=5@|qT"@!(6*=5k= 5h!(6~qT@|q@ T= 5"@06@`4~qT|q T!R=@qk T"@@ 86*=*@|qa4TT"@86*=*@|q4T 87<a86@`4~q!T|qT!R=@qkT&T@@!?@RR%`*R?@RKO}O@(@B{`"X K@?kLT@@"@A5@%K@@@@@UX!@6|/K@X @`79U[ G@T`@aT@K@*`5G@ . @#@@6C@?x @ҁ@^@`K@A{`az K@klTG+@[@[@}||@ Bx Ѣil@_@v'<@5C@"~a`hb`5 R 7@[@{T 7A6w@4@q JzT7 7A6@5@5@qJzAT 6~qT*OC{_{ G*5* @{¨_8{S*R[*҃3;'gZ*GSZ*~@~@HCC*SA[B{Ө_{S*9*7 RSA{ʨ_R_`R_ {[S**7 T#*@7 R7*Oq@@ #*҂7R6{@SA[B _*d4@*_{7B{_{S 71T|@B@SA{è_{ 7#@Ra @{ʨ_***H*b@/**@6{*` UB{_{|@S*$1!T(!Ԁ*A` 8B`|@5BSA{Ĩ_{S*[|@c4*c|@81ATqTB*SA*[B{ͨ_B*|@B*C**B`5c@ (@qT `61T|@A* A**A*5c@ (@qT` A*~@(Լ A*7Ra!{A{_{|@@q@zSCT @9@5 *$1!T(!Ԁ *X1T*GA@ ` *c|@ *`|@c5BO@~D=/=|n;@aC@cc@b:a:~v=ASA{ͨ_R{C@GTcD @cF@cc}TC@C}R{è_֠XA* R` ! R` {*H` EA{_{*H|@Tc@TQc@~@sB{a@`$!07`xca``{¨_{ @@AQ@!*T$@`?`@~7aED!a @{¨_2a@@@Q* 7"ER?"C#_c2#{ 5c"@"`?T@9 @{è_{C#C#' ) A=={Ш_{ @6@t` @{¨_da@!ta 4 @{¨{C#C#' ) A=={Ш_ҨR_@7@_ R@7@_ R@BR_@ CR_@ *|S_0@_@@@ _OR??==_d@DqTA@!#_{![UK RkS҂B|@*@sQq T5 ;@4SA[B{Ө_@0 c,{S*[*ck*=Q4BBG FAA"Rs=LqMT=3s82jN=oY@q 5Tqk2T:ǑRzrz~ZaZ[~hUX7r@A!s G@G Rs= NY(66Sqs@ss@ @ks @z`T@(6v @q @zT@kࢀ{@ SA[BcCkDc,_Sqsb@@s*Rd;@@G@@/7aҬ@*RR@Tq%T:ǑRzrz~ZaZ[~Ӡ=wQ==q#c#=FiN=2==o@5hJ @h*RIs QG@;rs@ $BGjqhTwRK=NQN=1TG@@9qT===N=qCZC3B|@3@;7@N+=A?=N+=Nf3 A7CA `8@|ě"@3TqR`RaqSן<{`8s!?Ra8*R`8C/o_qs@* 56 R9S@Y39b~@_T4_Ts ; s " 8o==4=9`8b*8N=j==@TsE; *@z R rjAT@_kT@ (6bK_qmT@_kRRg@(7S@v @q @zT@sE_k@**RRG@@t_k@@q @zT@*RR?@@(7bK_q T@a/6@_kR?j @zTbK_q-T@*R# R* R*A@! ƚ!@# I|țK* @T4ѣiT_4K RqTtqЊR4 @RR*RKsr*KR @ $ Db| ?#TD@?q4Dq"R_ g6$1T$(RF!QRi)B4Tˢ@@R{B{  xS{ _kTq``K@q!BD@z!K! ? T@!ǑRar\R|!!a!|K"  !Kb:*RR!C"bA8a|؛#;8?T@!(6s&QqVT@&&q!Raҁc !|@0b&_$q T#RRWT@RcT4*@5g'R8;@"8?Ta! (˃4sKqVT@`'a|؛c!C"bA8!3G@3@*G@c`45 !`>3G@3@cG@a~@?!К33@bJ_HqT@ (6@v @q@z T@sE?k CRRnS@s!˼@*Rb@_6@==.='=s@4G@@9q T='=[)=[@@5D֒{&[5R5rSckRsR;@8_qD@zTs `@9qT`@9q TK˟#LT*x@(64Kk TB@99 [4~@{C\C@{@`@9Q$qTa @9?qTsR%R `@9!Rs`@8 *Q_|q T&!7qa T`@9Q?$q(Ta @9?q T@ X5s** b8_ P !R;@6h`ER H !R*7@%h `@9?@T5s*X3@@@73@,!}A@`@962K+3@" _q,T3@@!6 K`@8Q?$q(TkHT~@ ?kT`@9Q$qT`.@8Q$qTa RsR*r% 1Tq T`@9qT` @9Q?$qTa@9?q T@@K53@@@a73@,!}A @+*}Ss @8_ P ;@+h`+*}Ss7AR@H *7@-RAh 3@" _qLT3@@!*-RRs*r%  K `@8Q$q(TkHTk}a kT`@9aQ$qT`.@8Q$qT-R*  R-R *`@9QqH@T *}}ӥs%`8 QqIT>4?lqT1@T;@P$@ @=(7d_84 x? qszQ7q,TA! !X`x`! ֟1;TX7@X$3@{OHO@{@@@@R[@[@"B =[@|}@CTa@a4C@{?57|@?@(T q@TTq@T qT[@q`Tq TqT[@9[@y[@!@AqR2k!RR @DAha8*A8`w6D DR@[@  !C@8w6+T< *-[@X776<$R <$R[ [@<*<$R<*A|ś!C @@8"<*}KjTqzq@zATk}@- !K Ѝ? kkT| kۢkTt 5kT@(6 * k Tkǟ{G-@;G@{@@{C 7a}@C@M{@z*%lT **[@ _{@M@k`8C@{@4k[@l<R z**-9)[{@Tkǟtq @zTҟTA@A4?|@Z?@(T@@/7??@**R??@@)u? @q@zT@kۢ@*R??@?}Kj!T/=* ***?@1aT<* * *_* ˿+mT< * *U** P  *L**R?GO~@?@G@O@@@/7@`(7|@?G?@G@@ktǟ@@q @zT**R?G[?@G@@ * kT *RPG@(6)u? @q @z!T**R?B?@) ??@@4;@3@7@xsa43@sB*T9R s*T7@xs`4%RSA*[BcCkDsE{Ψ_{S[ck#x@z W 7`@R`6`2@b@AxaW + ~{.@a5*c&@`?`@~{Z+@b@A*a_{Z5[B*SAcCkD{ڨ_g*`@ |*4+@x@R=f @*?qT6B !Q#R_q-T<}?kT<!Q}?qTa4 c4*+7<} @_R +qLT@%+{S[cks@W@X@A6@aR ;@ *@R@@94q$Q DzITqTB@9_qA T҆$B@9@_@_q`T T@9_k` Tc@@!с ^7^5[B*SAcCkDsE{ߨ_@`@@9Zq$QDzIT[$@b$@q$QDz(T_@T" @9c@`!с/@g@!!zY @9q$Q DzT@_@T;$B@95$B@9@/@g@_qTAQ?$qT@ @9qT87>w}@@R$B @9@ AQwx~~@/==B@9@AQ#qT>*}`@8*c C @9cQAQ?$q Tk_q@T_q T_HqTFLQ!'$ ! ƚ? T_q T_q`TqZk@4;@SC@Q[?@9k;C_0qT@9@RoT_ q TT_qaT*ol*_q`Tof@9 RoR@  q T*_q@T_qT_lq T`|@{G#@_@{@@Tc@@р@Qq3T!! !X`x`! RA ? qT_q T*oAQ!?qHT*AQ!?8qT&҇S ?!T ?Ta6@9_q!T@9`Ro@9`Ro@9o_qT@9 o@2q@Tq`T* Ro{F#@{@-Y6Y6 Roo Roqz Rcğo@qT1 T6yo@qT q@T69{(#@{@q$QDz(T_@T" @9c@`!с/@g@ e{ #{@6)@{{qaT" ;9;@_qT{@ho@q Tk@5ҹ@#9'9`@9xq`T{R" {Kl9`@9K@q{@Ttq`T&R${ !R`@9"R{[9`@9"R{9?tq$@zT[9?tqaT{`_8*?kTf9` @9{A{!8tqT4a@9qT**Ұk@C5OoSsWs@_@T@9a84Io9W@"#KMK@#GTTC@@ x&k@jTC@h~KK@CG}~CGC;t5#Kb"K@#GO@;g;@4@;D;G@_@ T@9a8A4;@ h&8!Th? C?@;IK."K@G@C%"Ga8a4 k&8@_@T@9@;Cc@`!с/@g@ T_q`Tk@4o@qT;@ C@@x&;@`;@h&8@/@g@9;;!@;@`8 4_@T" @9;CG@?롿Tk@4o@qT;@ C@ C@ RR @/@g@!!T_q$ @T @/@g@lo@_qT_ q`T 9 o@R@/@g@`TYo@?q T?q@TA5 K  =DqZ; RARR@/@g@!!`T9o@_q"4T_1T yqZRR@/@g@!!T!$Q?DqT#c` cXaxa##`C@A@7#,c}C!_d DqTA@!#C@A@7#,c}C!@_d DqTA@!#C@A@7#,c}C!y_d DqTA@!#C@A@7#,c}C!@y_d DqTA@!#C@A@7#,c}C!9_d DqTA@!#C@A@7#,c}C!@9_d DqTA@!#C@A@7#<c}C!@_d DqTA@!#{C@A@c7#<c}C @@={¨_d@DqlTA@!#C@A@7!<!|#@C>==_d@DqTA@!#_C{Cc7RR7rS[RksC &8R#bN@_qD@zTsZ#@@qT@@q TsKsB T*t~@ {|7`T`@ /6s4Kk T"@ "G4A@$Q$qT@ @qTZR#RA@ RZ3AO@* Q|q Tb & 7?qa TA@ Q$qTA @?q T@5Z**K@ARZ3AX R@_O@Q|4@ـ"0K@ـ"G0@xqTtq4@tqT5 @"@5q &T@5K@Gـ"@qTq (T@4??@G cW@kG`?@&٠q,"T@4Ҁ?`G`@&٠?~G75K@G* 7"@_qT_tq!T R?tqT  R?qT"@#c*?kTb@c_tqD@zT_qT`@tq@zTb_kT?kTBR R@kTA{<?@@j!Tq!Rן{kT`@T9a7a@9?@!?!~Ӄ@qTG@W@@ 7 @@4?@T?@G@!?i@G@@5@q T` @?qT`@`*u@q@R *`5@5Z_{NKk,T:qRsҀ!3!R@@{@SA[B_Ѐ!A``K{* !  @{¨__ __ __ __qT{cA|}SC[O"# k! `@b@Bb!T7@@#@SA[BcC{ը__{S*[ck9Rs? 9?@7sQ[O3tqT3@aha{?*7?77@*{@SA[BcCkDsE_s Q{S**[cks?G˖h@C!RwO R"K&B#šVZ'"R`T~}7?@kc?qMTqsRן7@jTC@s_˳?`6?6w@wBB*5BBB*_qT _qTBQ"RV'šT34{@SA[BcCkDsE_w@cG@,{@[B*kDcCSAsEHE|Eѩ {sC[kScod@CT3**$7@#Q_qTRK"ښ8R`&z"ښS@9? BT`@ `TQ&7*z_TRS?7@qT`9Rӓ@?T* ӓ7s@7@B 9t"Ț8R3?hT*RSU*9qMT QӓsQAs@Ҁzs` &R#`ӔS*@&RS_qATa!!*5!!*?q T"Q ?qT&š9qT*AT{@SA[BcCkDsE_**RAKs&*"3&9*qTAT*_/{[*S K*"R/#@K@@sSA[B{Ҩ_{R{_{"R{_BR{S#[*_S*"R+@S@@!!s@SA[B{Ө_{[*S Ks*"R#@K@@!!sSA[B{Ҩ_{S#[*_SS*"R+@S@@!!s@SA[B{Ө_{[*S K3*"Rv#@K@@!!sSA[B{Ҩ_֡%L@R@q,@c0h$80@T@q5,@LD@dÐAT_` b@9"9{OS[r~!0+*~co~~s~~~s`@ 5*"RC6G@o@@BBb U@SA[B{ר_{R{_{"R{_BR%L@R@q,@c0h$80@T@q5,@LD@dÐAT_` b@9"9O{S[c~!1*~rco~~s~~~s`@5i*"R6G@o@@BBb USA[BcC{ר_ҿpR{R{_z$B@`T?@ T$@9c9!kT! #? T%@ʆ $T#$@9c9!k!T_H|@g})'}ߟ!cB@ T`@9k!T`@9kT&|@@}g`|ߟbc @Td@ʅ$T@9BkaT_B@9B$@9!k T`KR_!$&{@LS[CckޢL_`Tjb8BF} zah$z!8 `T BA?bTdhy8ja8kT8T8# `T BA?bThe8ja8kT#T#:?Z9f4` #T_8Fzac$6}@h``T Ҕ "Tjd8jd8k@TҔITѣj`8j`8k@T{@SA[BcCkD!_{[C S( TA@9A@ Ts˟T TT@T[BSA{è<@y$@xBZZB<<TkT@8 *<kTSA1@9@9 @9@9<S @9<S@9`*`* *@ *"@8@*\S?TkATSA$ kTSA@D@BZZTkT@8 *kTSA[B{è_SA@T&T @bT`#@@T@T@88f}hah!! ?Tc@h`8"h 8T_@TcѿThc8ѡh#8b@ сh`h Tc@cрhc8h#8{  @{¨_B!_T@9BkAT_4"_@T?@T"@9!9b4ߟ! #@bB#_@T"@9!95_{# @T"B!?@T#@995b#@9#4E}&%ߟ! ?T$@c$TBs @9!`9@5R @{¨_{Ss@9*4a@9A4_kTq*`@9nk@T@9*i*`@9*e`K@SA{è_{Ssc@94" 5@SA{è_{S`DSA{¨_{ *@9?3k @{¨_{!r  T @T`@94kTss @{¨_&|@ߟ|`@D "Ts"s`@9@4kThb8#hb8BkaTc5RK_{ ! @{¨_{S!@9a4`@95@SA{Ũ_R$a@9s#Fӂ 4zcBz#ca@9"FӁ4zbA$A6`{S~SA{¨tSA{¨_{SiBTbR@SA{è_s@RsUj38{S[`T SA[B{è_={ !B?@T"_T@9#9C4!B!@TB@9#95@94F}ߟ %T@c%T3?9 @{¨_!?@T"@95ߟ! "@Cb"_`T!"@95 _"{S[Vsb@9?*4@9$@z@T_kT*@9kTb@9* *@9 `K@SA[B{Ĩ_R_{Sba8Ta@9sa59@SA{è_Ehc8$hc8q@Dz4Cc!T@K_RR{  @{¨_{S~j48@SA{è_{SR4`SA{¨_{ a`j`8 @q {¨_{S*Y*SA{¨{S@sbj`8cb4aj 8SA{¨_Q$_qT@85BQ_1TB/#@9^@LLC4"@9B4&"@9!EF š4xecx%!"@9_kT ca@9"FӁ4xbA$A7`_C"B/C${^@LsSckL{bh#!{" kx8F}Ӂ 4`kx853@?`T!!@#Tdha8#k`8k@TT3 B3 [3# `T BA$?bThf8$ka8kT#T#?3@33!74 @CRT?#T{`T`_8AFӁ{a!$š6B}ӡjbT_A#s_B#B#kb84djb8k`TBs_TB!kb8`jb8?k@TkFs[B[B{@SAcCkDsEC"_{ !@95 @{¨_P@c@94@94d @94@9A4f@9&4 @94a@94 @{¨(c@y@@xcZZc<<A@8 *<A@94kATBf@9c<S@$@8<Sc`*`*d * *A@8 *\SA@9A4kATB@4@c@ZcZA@8 *A@94kaTB ѹҷ{S[u`j`8@4Bj`84!j 8SA[B{è_Bs{S[v`j`8@4j`84!j 8SA[B{è_S@s'R'Rhc8$hc8EQ*_k!Tb4c$qT_q hh8Q qT hh8Q qTjT@QQ$qT?$qIT@K_*hc8QcQ$qT$qHT%hc8$qHT!K R@9!$@8$8#8C,T_{SDz` SA{¨_{S` SA{¨_n{S_` #SA{¨_{ 5R` s`@4kT @{¨_hb$hbBkATc5k'Z_#hbh"B5_{S!@4@4a@4sB@SA{è`B@SA{è_{S `~3SA{¨SA{¨_!"@5 B_{ST[sѢ@*4a@?q@@T_kTl*`@ikT@*d*`@*``KSA[B{è_R_{S AD@sєa5_@SA{è_֢@B$@q!CzTk Z_R{ BD#@!c5RC @{¨_{SR`BSA{¨_{ R~`aja @?q{¨_{S*w` T@_kaTSA{¨_{Ssa@a4``@BSA{è_{Sc!@4@4@4`@ 4s{{4`z{{5sE҄[BkD?`T!! T{c{`k`TiT4B4[k# `T BiT{d{akT#T#? ~rt4` ~`@3~73@RS (T7@ B{b4dzbk`TBs  T?"#c?"TA{b`xbB?k@Ts[BkDsESAcC{Ǩ_{S[?v `z``4o~ ja4j!SA[B{è_S@S8@BkaT_b@B#@!k T ZR_$xcx#c_T_`TT #xbx"B_T_$xcx#c_Tx#c_T_{ RBA;"U2eB#C AcBEa 8!T @{è_{["TSѴB 5 R8R4sqT@?DqTBSASAR[B{è_SA*R{S*[*)Ta~@?TҔB@5v@Rz  R**0R`6sqTj@?DqTB@@^R@SA[B{Ĩ_RRR{[hTIR9[B{˨_SASѴ!@ҏ5 RWy 5sq!T9+!RSA&@qT9SASA@R _ R,yA)&@! f!2d cB )_?jTRb@B A*a_{R"{_a5R_|@{#"ҟO {_*AR!p*aRp{!RpqZ{_{!Rsp7@{¨_{|@a+ {_R!Ro?qTCR! o{R{_{|@ {_b 2B @9B4_55b6c  9;բ7cR2c  9 *;cq@T@7 *__kT5_օ_5|@H `T ;*7 _kAT5@@7_a_  `52?kTH !"!T{S4|@[*cCa@?Xs?(T*d5`@ D!qBy@ *1T?1$D:T?1RRSA[BcC{Ũ_!@ Ҽ*?1`T RNqtS{S* R3[**"****O@@*SA[B{Ũ_@A;!_!xb _* R@5@kT;q!T_5q|@)yӇ@  H kTT@?kAT;qaT_Q5_@R_Ԩ !| *@_ ?֨ @@5_ s_R?|?|?|_!Rj{4qARR{_M  " _!R_|A_|__@A5R"_5#5R_ֿ;{9 4qARR{_@b5R _5"5_ֿ;D_{ 4@q{_ {SГCqkT T`zC?֓s@3`@`s@`@?s@` @?֓s@sSA{¨`SA{¨_{S[ҜbJuZt~ C`@ b3@RSA[B{Ĩ_րRR_RB@"_RB@"_RB@"_RB$@"_RB @"_R?_@@RDc#_RRB@"_RB@_q"_RB@Bx"_RB@B|S"_RB@B C"_RB@BG"_RB@BB"_RB@B"_RB@"_O{ |=C!C` @R{¨_R?qhTRA_?TRA_RR?qhTRA_!@RA$_RA _R4?q RR_D T!Rba_R# TRA__R{ @7 @R{¨_`@`55`_2`5Gb@R_x@AT_qMTBQa @B*|Rb|_R{S[@"4q4RJTz !4;Rb_B5u5`@ak T;;`@5u2wB;;`@u2`5H !{@T!H Tb@R_qLT_ Q5wB?+!T;;`@ 4H !{@ATb@Rb52;b@d@_k@Qa__kT`52_kTq@AzT!H T@$#R*a_t55u@u@kT;;`@ 5"#RR_ Q5?q T[B*SA{Ũ_`;;`@`5 R H !"T;q`TO@43_3@a5O@H "ҿqTT;;`@`5; R;ՠ @@4H !{@AT!ԮH !"TH !"Tԓ2_ 54H !"!TԍR_R?_R?qT!SRA_{SS;s"U@;`.@ 4`@9qT@@A`@`@9r!T!T!TH!`"@SA{è_@R `@9rT`@9rT R`9!A; V8! rT @9rT"R"9_{|{SS;hV8s"rTAzT`DT`.@`4a@9`!?q TA; V8! rT @9rT"R"9SA{¨_D`@;@V с4@9?r@T_@9?rT@9?rT!R9_{-{SN4; R`.;,  T!RSA{ͨORc@ r === R@ R`@9rT`@9rTSAR{ͨ_{S*4a@SA{¨SA{¨_@! @c 4`_`5H !{@TR_{S@@42a_!2a5"a_!a5H !{@T@R_x@ATSAR{¨_|||!@"xa7R_@! @c 4`_`5!H TR_!R{S[c @ @T@3RA;!Uxka)T@?@sR?(Tk+@ @ @"2_5;RZ@R o@q` T***A@*?kaTxrTq T 5AR_`5A`5!R`_5a5!R`_5a5;AR`_qTa5;TR;#RBRZ`_ 5t5@@R@? Ra_`5?qT3RYRH !"T> R;42_ Q52?kT*@5*o@+ qAT  Rq!T @k!H T;!R_` 5A`5i;AR`_qTa5;VR;#RBRb_"5v5@?T;@a?@"@? T?@`;@Rb_`5_q@TG@"_@Q 5_qTG@H !"T?@;@H !"!T;AR_qTA@5;SR;#RBRҟ_53`5K*@5*?@;@#L@b2qMT _kT"5;@ @`7" _ 5;;@R@! ;L;5H a# To@q TokD+@*SA[BcC{ɨ_H !"Ta@`7"_Q5OR+@kD;@+@kD{S[*!R?`_5a5;@Ra_?qT`5;TR;#RBRb_"5t5@$R;?@ ?@q@@T@C_5D5Q@@Rb_`5_qTH !"T?@#Rb5RRb_`5_qTSAR[B{Ĩ_H !"TR_R?_?q QAzRTb@RBA*a_R?qTC@Rcxa|*A_?q"H !y!@T_{@;SU`NkTs:b;  N  ;Rb_B5t5@SA{è_ N@5;:;N5_Q !H T;NB5_{RS:b;SN5SA{¨_!H T{!RSS;s"[a99`2"@!@a6@?a6@acu; R_ qT5wS` @`T" eRa>@a? T&^#^aFD^a>_5F_q`@zT&*!^;՟qT`@@ pt*R n @!Qa5 9`@ a @sq`T;*;!R6 `@ܽ`B@h `C{S@4BARc_qTa5BRҼ;Հ@4 Ԩ b@ԁ@ ?e{@ ?|@_A;"Z _@A; _O{S[RdI9? =~d4` ckW;s"@94 hTv@ =v@ =C@x K@@VЁC|BAB_ BT@˔CRbRҟn T` CA @<v ZY@[X/\;@O4`R@+@@?v}^@@_܂@A7@;@@?q>"f@_` @"a5!R 9!0RE#:DrJ7@ 4@#ᣀqaRB_5q@T5 @WR@@ e?@cCkDsE*SA[B{Ԩ_:@8@@6:@`@a7TA`@7d@`@7d c@*:` !R9B(C4C@CAR|˛M|@ҀX@G@&8ACRT RmTbRm@5A<`  @0V@qT;nuRcCkDsE@R@+-H !"!TeRbR_6KuRs `@Q`4incCkDsE[9bR҆mTA<cCkDsEH{cR "__qT#5 ; R2/@, @R{è_?_O{S??|?=(@?qן,@$@ (@RSA{è_[ @@a @@s`"ӠRrmT@0qT[BR_RB @"*BpSB"_{STR_<T@Tc"@B`A RR*6@7@@*SA{ƨ_RK*`4@@TR?8*Zv@@{S[w`"@4|@(K5`"ԠtR@*SA[B{̨_A;!Z X`_{S[\3 RqO@4R j$RR**@!4qdVzT?qT9} O@VqdVzT@*SA[B{Ũ_w2@@`"@lR(@_q`TҿR__qTTO|=_!{B;S@Z9@'N**ExckAT`R @*@"x#R@SA{è_{[ST;*L"~}8@?h"@Tc!@?x7k@RSA[B{̨_{S[V;"cCkR9+Q?s"@T:@kshsh3W@TZ>_q@9?j T@9w9x9+@SA[BcCkD{ƨ_{S*[vs"@4`~@~@HK*SA[B{˨_֟qR3@A@~R#td@zTa6@;U R?kTBA_!xA5_@qlTR_{AR{_R_||a!@R_@? @ATR"_5#5R_ֿ;R_{S[k@@TR_55SA[BkD{ƨ_ֿ;U@@qT Ru7cAF@E;&* `87@D2D!|@H 1@T4D1 TT1TqTs$RRR_qT R7@@`7@ @ 5@SA[BkD{ƨ;@ ;H 2ԿD;qTA@a4A @A45*YX;U?kaTcC`R;*Rb_BQb5xrTt@qTC@`traT#45 qTS#b_Bb5a2"_k!T!5cCzF;@ÀU @tkTk`T` 5D4' 686@@bh @Ԣ@a2D_q#!*C_kTA57"G ?@T@<D5R%g6@7?qT@w2`R?kHT!@@4'*!yH !@DG6`R ;D0qaT@5R_@R@_ @aTR _5"5;_֗{S[ck@@3*yr TW;ո@""@ Rw_kT`qTR6b4@@A?@T"3687`_kTt5@ 4QF;մ4; ; 2H 5F Ra_t5_q!@z?q@z T5RSA[BcCkD{Ũ_F!4G!y!@H "TR_R?_?q`T R?q@TR5@R!x_C75@!2_CH 3K;ՠ;Հ5@!2C__R?qTC@Rcxa*A_?qT!4D75a@!2a_Cш #K;Հ;Հ5a@!2aC_a@R!xa_R_R?qTb@RBtA*a_Rb_a5_ q@T_H !{@!T!{S4R ;q T qTbRqT`_qTb5 H !{@T!;#RbR3`_5t5!%?R@Rb_`5_ qT@RSA{Ũ_@_qT{R{_ֿ;R_R_O|=!@!`SR_{Sm@q!T R[;qTa@a4a@A4;d @RR_BQ5xrTN@q!T`@`4x?kTt_B5a_kATu5[B@SA{Ĩ_{SF@qAT R;q`T@!4@A4;Մ @RRb_BQb5xraT+@qT@c4a2b_Bb5_kT5@SA{è_w2;#@`xk@Tk@Tb _kT"5_R`R _5"5;R_@;d@f@xQ_kDAz!`_kTa55q@zkTR_qBx@H !y!@T!҄R_R?_R?qhTRA_@; _{OS~@?|Rd@~?=?3P5*uN@뵒saC@C?k! k a@}@*SA{ʨ_{ pOC!C`j @R{¨_qhTB;B сC@9c#RA9_RB;q(TB сC@9c#A9`5R_{R{_R_qaRR _{S҈<T`Tc"@B`A R!Rr*6@7@Ҵ@*SA{ƨ_R7*@4q@@Rd*Ie@TR@{S[*w`"@sR4|@~@K@*SA[B{̨_{Su?l`"@sR4|@Kf@*SA{̨_B;CZ|}B dh`Tah @@92@9R_?BzT|@kD@TA@!^A_RR_R?_R;տ;@5_a55R_R _5"5;_ֿ;;R_։R_RB@Bx"_B7?qRb!`Sa_{R"{_ {c*k[_gS[ӂs g7C RR `7DSA[BsEF@EAc @z!?1qTqd@zw TR!|5R?%3 R_q TR)w` 5{!RwR"SA[BsE7*#RbRfT*A*>dZR`P*T**#RbR 7f*?@ T$ @ 4=<@  4 gw@q QzAT_q`TRARrp*`6'@qT0654B B   6R s[)b7!R8C77@R7@ns@ARrF*6@DqT@ւ)K?@a7C!?SA[BsE{@cCkD _*2d7CR@A?TsqaT?@ya@@!cad@SA[BsEҦf?@R`7Cs?y@{SЀ4C !`"__TAT`@Q``5|8ҁfSAR{¨_ր/@ {a R*{_ֿ;Ղ@@@xk@TAq x__kT5b7*_qq{@H !yBԟ!@aT!_!Q5_{S[q? 4 Rc#;!qT`@x@aT`@ 4t$R;c0*RR!R*(5@4x @_B5`_5u5!8#@cCcC#@RSA[B{Ǩ_;#@x@TbQ _k!T"5_{bR"{_Sfҡ_A;N!U?k@T_{Ss:@Z@;8C!8 @{¨{S"3@1+ TG@? T@T`C BPC!LCc! "[SA{¨_s_  TccCѣG?z3A|CccHc*d*$TAT RR#R( Rp'<0RB$&r|#BKB C@&_QB|@TBQa#R#0RQ#rpR!ccaz# X@!d@xa%`@&9?d_T$X@xbB9D4B"daz5Tazcc%L}"j!@?9_TB2<Ҹ@Tazt h@` @ 6!@A@?@ 4!RE7cCSA[B{Ũ_{ OC#+ ) C 4AC=?={Ѩ_AC@R=_=D@R!,D!R{S@`@ysb)T A @A@@P@@ySA{¨F@`J@SA{¨_SA{¨P{kwS["cCss|*@(T"|@hTR@6@qhT@' 7 SA[BcCkD{Ũ_{RS*[ @9 52Ҵ}SR"͚RՀR R!4*$`AJ@9  e5m@@9# dqaT!|S*6SA[B{è_*7B4@bA(@* * @y55@9# qT@{kS.R[csA@[V#@S3@_ T 2<~}k_4RFx@ T{,Td@Qq(T`*q"T@} @`47@kE.BF!|}TKhak@k`ӤR| jdy hhKh!d@hh R|!j`y q`T@9|Sd5@@@qTqTT qTq TqTq"T"@ F@9|S5@qE4@Eqs{/# S'S@/H#Is@{@!kb84B_D T@8`1!@9@9?kTA5!"Rs{/# S.S@/H#Is@{@_)T^ k~8qT _8q!TRB2?h>81B>@9@@9k!T@5"Rs{/# S@@9B5 @94 @yqBz T@?@QqiTРA@DA?֠@ 4=AC@b@!x!BGa@@ AG @C@@CRA@lE?HT@@B h({<d@t5xr@TG@h@T`k @*D4РC@A@A?!RE!q TqTbh( [@ h(@@h( TD@lEhT`h(b@@B@7K# SS@7GKH#IA@@kD@, h(@@CAA `?!REۜY*A@A_@?֠@4SA[BcCkDsE{ͨ_Cx{SCkg<`&i%TCAyBQB<_q$TAyAyc|7|@?qT[@;asT[JR*:GrLQ 7?=6`#[@g@! TAyAy[;g@C !TAyAy[`@7`@e@ ?`@ `@ `@qT`@"Te@t@BӥSZ *Z*e@_B !cA`@qTqT k T kT O@5`@C T` `@`@ `@e@ `@7@kg@k8 ) 4*CRGM@TCAy: qTZTsTAy??3)R~[@#Ta@_Ta @AyAy"3 !e@aTg@*CRaM Ta@ TAys`@qAT @e@c @a@`@:G BjB *S{ cU*{T`@bTa@!6b @R:GecCbBC@`Ta@T*CR!M7@@@?XTG@RBM5 @46 ;@z[BcCsE{@SAkDC_֗@qTsE[BcC ?@){cC;R;@\cC;[BcCcC;[BcCcC{S[@0 @ Ta ,@A@:Gc @ˤ@$@c ?cT?! ?T@s4`@qAT`@qT:Gc @ˤ@`bTT@T?T`@Ac!!T?T@?"T@SA[B{è_{ESR@T[cRAT[c: @ @T4R[c!BA@?/ D@9 B53ҵ}Ss"͚T4Y@RրR R'4*r*`AJD@9B  d5o@#_q!T!|S*6@9 q T@[BcCSA{Ũ_*"74@)@* *h @y@9" 5_qT@5@@[BcC@"BA@?[BcC{S"[#.HB@A@a hT'@ C@'z!w@@?/@@c! M@Cҁ HcҤ@@@T@f4ETR`T@!H"`A T@BA@?֠ O5 R9@B95 @?T%ҰB!A6dzbdz"sc Ta@!7@has"h!!RE)@SA[B{ר_{S[U;*"c;k * obj@_DUAT@5#@s4*`B9@5a @cuj_T$!@ @у _HT/@%@B/x /@6sfEa *47 * R`9jt@@@Z}@?֟TSA *[BcCkD{ب{ C@?_T(B@A@a$џhT@!E@x!bc@a@?`Ta@!@@w@B}BA @{ը_7@dU_@B|ě@BABCA@`>Ea:a@#BA@?֠!REx@#?T&c@a@$ !HT@g@y!C@@ 0 6@$x6C@$l6{@!l6@ޟ#@T!@!@(A@?TB@A@,_.{SR[cks`@9`4qTR.@`ka8bha8!_kTb5.@ ӂ._RZ`@9q!T` @9qTv51Rd4`@95@9`4O 491 RN j`T$R‚.c*!$D @5R=R*7*X(7 G!E3 @0AE@ E @s@c@bha8`ka8!_kTb5{@SA[BcCkDsE_TE *%9#%`n@R`n@`r@R 74"2@4`r@s^@A:A T`r@ *T`B94 @9 5 `%@TT_k 83L@`r@?PqhT'{2`@33@ RB @9)ˡ43@@9qAT`n@`r|n@|ˣ73@7@!`@9q|R#8 1!TE #*8ւ.@@9qTaR <|B%c VR0*6@q T@"!#@9qc5?T*lRa\5S@  ch<8@qTA*T4T`TsE}*E!@$E`@R` s@aN@?TaR@?!T`@[T*cO4*]x**V3"R! &!&"R@ O 4Ov4@R_tE|B c` ~@Ba! ҳ .ҩt^=`O`a9<T`@R>`bz@fP qE~@vEB A!! bt@a qvvE vX!}CxE aC``@x E3AO `4d@ R!$>V&N` D!5:`>3{[X@[B{Ũ_SEck_`T @ A @! @!@3@_A)T+Z@E`T @b'3<>Z@@&BA@?֠ O4 Z@ x6 @Z@ x6 @sBThsTz"2@@hz`h @2@#A!hz`?@`4!REZ@x6bSAcCkD{Ss,Д*[cRK*"R"%U;E"`B9`5s@3bj@_DUTa @#T$!@ @у _HT'@%@B'x '@6@@}x@W!C {w?TSA[BcC{ר_{7*{,,{*{ `>EN5`>E!@>@T> @{¨__{S[3@s 3 b@cGС.B& "dp@y$0dl@yc@$ B@C@`TA@8.k@_T&c@b@bDџhT@ š`@x"LРE Td@c@x@ B_?T9} B.СB}B<B||c"v" ߢ9R!@(Ec@B@?ֿSA[B{֨_{SB@C@@`TA@8! *A"43;@7R.!`(E@SA{èc@B9} {CS[ckCs@cG@;Bb?T&@@u?xhTK@ ՚@!Kx5@_Tb@,A@ ,K@! c@D;Հ #@T !R9.W@@p7@? Tc"$K ha0fN_TO_AT@(?9Ѐ)"@b!A@_qT_ q`T_qT@ @b|@b@b @`"$@aD! x`D!. 7@`"$?b"$C@cй7;`"$Qз  H.D@[V@98@!@)f4@G T с`!(!@9#@9_kTB5!R`)7`)B @< @9q7T @9qa7T3 @947@5!Ry@;@`y@ `9C@һ5 ;@9qT4;@ ˀЀG@!O(?qB`3!*@R R!?y@`@{Cy@ !)Ҏ5 '@9qT5v@vy @{C6+y@!){5 @9qT 5`@? #?y@@s@"G@!+@RK Rc@G@!+@RC R_T@? qaT@a.!,@ R0$F@ A@x@˥!@ ˹Щ@!' &c&wp!y@`"$X@aREE$|@94qTITqT9ғ|9<4QcqT'ܚ6@8'QqT{@ @ 4@`T#R@4C4@@TZCC@C``@bl@yap@y`bp@y0 @!@al@yBb@?qT?qT@a!ˁ`!@cB,$R9XТ!E@ c"$B+`@ "h!`@huhah `@BhuVTs"$< F$wE<"AcpEC` @BH T!ҝ`@"wE"l4_ T 7O@5O 4R@@!-@RUR9} ԷRЁ"R!-Ed.T!R"R!.X.T!RУХ`+DE"R!-b ?@@"o@ `@$l=;С5 *4S;շ@a" T9} ;@` `R*7w"$*.G@@cD!Ob@`o!4@R2@B!D {S[cksc;c R,r"!R _N4/!A ?֠ _@ E ,2c@c@Tc@G@Ҡ_@{@SA[BcCkDsE _֠E!xEBEc@!pESAWEO)uE#aE7GY7@*5;@!E__@ _@`Z@` _@N 5[@>?B95c@#Rf 4@?4?@7@" @_ _@_@!@@3@_@_@@_@@_@_@!p@l@?T_@p@_@X@_@_@__@_@ @c@cC@C@xA?G@tS@dpW@CO@"?@_? \DB.$O;@qcA@.@`?Ls@B95R4C9[@ha! "0:RbZ@Bxa!BB9_qc?!Ta!}ӵ4P@BA@?֠ O5[@9#hy3db@b@ !RE[@}}TbZ@}BhaCB95Z9cZ@[@ahaAh$eb@[@*h$!R9E9 @s*G_@3B9T4_@B9 4_@B943@@7_@7@B9 5_@K_@c3@6_@ҏs"_@X@hs_@X@hsB95_@X@hs_@&_@#E4@R%R`T `4 _@!X@!h`_@!X@!h`"4@?T*a4d6_@B9 43@@6E`6@67@7@`>@~`B@BuGcB}Ӡ`B@@E`:cwE! A`pE}#D  G@TW;"ѡ#"xEb@V$@!@Kz]Z} ab@)`wE 9s @STEZ@K@@@?T[@A OS@s ss @@{ @P{TA@ wE?TRR`!@?@AT@#͐ BEB @_TR_{!BA@? R{_{[,S'RS bD @R RRh*@ @@ H!D@c TRC@ cxc6*B`_ TD@C@9e c|S(6#(6c@c CT˟aT`@ @!?CTa2@`F@@!`@`F@ R@SA[B{Ĩ_{Ss,[0SA[B{è_{S,SE[c#C O?*5s@a@c@`@;a2@EyKR#@*SA[BcC{ʨ_ŌiBD???ŌiBD@hBD@9Ō?1]c>SDpH~??#EgܺvT2g jgrn<:ORQhك[ɼg j;ʄg+rn<6_:OтRQl>+hkAكP@p@?e'?h ?pB?;'h?v˨%7H;s>?KďJ?Y.Q{?*.w'?=?\llll?HUUUUUUUUUUUUU?$/@M,!!9ڍ1췃%/?y\AxD"?7 ݨQ͉֗?xiKt YoRP?'`h]D Ѽ?ܣu vz>((S?}LW7Ng[W?A./6)C  >@P\u<36@j꣯NS*E?o@iBD?"@J47࢘1?ŌiBDŌiBD?@J47࢘1?͉S:3E'q?:3E'q?"qdY(@=?'&v?ດ q?0gI/?px# w,?*܁;s>? e= ŗІ:a$a?tiBs8NTVd?gqU8slU:q???UUUUUUUUUUUUUU?UUUUUUUUUUUUUUĬCY?` @|$͋?CoG?@U)/?f? &*pl?!#?Rq1/?Wp +)Z*?g8^?PzU9- ?lQB˯~?d&}Gt6$X5?7{ℎ_W?͋2HOf??wlQ&E;v.?`VΞ?R$]8?w)Y?1}5u?&f͈I#w?3-?y[!}I? ne4w}?._+^Rd}?"#v#l^5n"?Li?SUUUUUUUUUUUUU?@?w@?ŌiBD@^3}'F?[u-O?Nax?7N/8 ?#n#tFȃA?)EXKh/?K)6lv,d? q{k(?8W?u]A]tE]t?bCy$I$I$I$?QUUUUUUUUUUUUU?,ـb΅q@KReI7zk;;?W=oM aS)?o!=h|?cG9٬yCV-x? ֔aQ@{?KɛXuG?-\x2a?0L?u;;;?#qqq??@;@o@BD?_W74@@@  j h@ ④V?0qYA%?p|\:"b?X?_r ɚ;@@p@@d  cc  (  i1D709vfamulimlGcq0qq3UvuUasvEaUVUrPmXD6q/nVSSp7pNDhCR9071IfIReU@@@@@@@@@@@@@@6789:;<=>?@@@@@@@ @@@@@@ !"#$%&'()*+,-./012345@@@@@./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789hprOBnaeloheSredDyrctbuo./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz          @@@@@@@@@@@@AAAA      $$  $$ " "@H@H@@@@  @@@@@ @@ @ @@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!   !!   !!! !!! !  ! !!!! !                                                                     $1$abcd0123$9Qcg8DyviekV3tDGMZynJ1Xy01@# !./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzxjVp $ν|*ƇGF0FؘiD[\"kqCy!Ib%@@QZ^&Ƕ]/SD!7Ç ZEogL*B9q"am 8D꾤K`Kp~('09|eVD")*C#9Y[e }]O~o,CN~S5:*ӆ    $5$rounds=1234$abc0123456789$3VfDjPt05VHFn47C/ojFZ6KRPYrOjj1lLbH.dkF3bZ6$5$rounds=1234$abc0123456789$Xy01@# !./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/BD7q۵[V9Y?^[1$} Ut]rހܛtiGƝ̡ $o,-tJܩ\ڈvRQ>m1'Y GQcg)) '8!.m,M 8STs e jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxq*+,-./012 34 5 !6"7 8#$9%:;&'<(=>)$6$rounds=1234$abc0123456789$BCpt8zLrc/RcyuXmCDOE1ALqMXB2MH6n1g891HhFj8.w7LxGv.FTkqq6Vxc/km3Y0jE0j24jY5PIv/oOu6reg1$6$rounds=1234$abc0123456789$Xy01@# !./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"(ט/Be#D7q/;Mۉ۵8H[V9YO?m^BؾopE[N1$} Uo{t]r;ހ5%ܛ&itJi%O8GՌƝew̡ $u+Yo,-ntJAܩ\SڈvfRQ>2-m1?!'Y= % GoQcpn g))/F '&&\8!.*Zm,M߳ 8ScTs ew< jvG.;5,rdL迢0BKfpK0TQlReU$* qW5ѻ2pjҸSAQl7LwH'Hᵼ4cZų 9ˊAJNscwOʜ[o.h]t`/CocxrxȄ9dnj(c#齂lPyƲ+SrxqƜa&>'!Ǹ}xnO}orgȢ}c ?G5 q}#w($@{2 ˾L*~e)Y:o_XGJDl     `  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy P ߼@0?YmÇ^?=``@]/_ ? ;_ ? ======?? ???o?????_/>PCx >??|/?8<~~~?_????>????7?o?????pG@??? {? Cd{_??C ꖪ^alnumalphablankcntrldigitgraphlowerprintpunctspaceupperxdigit !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|x< @@@I<` N 0 o @     `8p0/1? @ !`{B ???p@?C80?0?0`?? 8?`? DhL>4?0?? p?????{??        ( ) _ 00 1 x !"###$#%& -:.=/>0?1@1C2D3E4P5Q6R7S8T9Y:[;\e?f@hAiBj@kClDoBqErFuG}HIJKLLMNOPEW{|}XYZZZ[\\]^^^_`aabcdefghijklmn---PiQiRiSiTiUiViWiXiYiZi[i\i]i^i_iuvpqvwxyz{|}â̤ڦۦjn&*+Nbcdefmnop~}ύДѫҬӭ԰ձֲ y$9Oa8($3&~+*](*?*=EG***.265OK1(D/-)A)+*)C*'%$L Tt&%@?p P0 `З@‰8AVJdp~ A 0  ZuZ0ZZZZZZZu0h` (@  "'Qow|  $++++++++TVVVVVVVV+++++++++[VVVVVVVJVV1P1P1P1P1P1P1P1P$Py1P1P18P1P1P1P1P1P1P1PN1N NN$nN1&nQN$PN9S1P1P 1P1P1PS$P1\{\{\{\{\{y\{\{\-+IHx\{ +(***+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*+++++++++++++F+%+UVVVVVUVV$+ѲѲѲ׃1P1P1P1P1P11P1P1P1P1P1P1P1P1PN1P1PN1P1P1P1P1P1P1P1*++++++++++++TVVVVVVVVVVVVTVVVVVVVVVVVV *+++++++++++++**++++++++++++++++++++++++++VVl++++++++++++++++++++++++++++++++++++++++++lA++VVVVVVVVVVVVVV,V+++++++++++++++++++++ l%%%%%%%%%%%%%%%%%%%%%%%%%Vz&%%%%%%%%%%%%%%%++OVV,+VV9++UVV++OVV,+VV7u[{\++OVV9++UVV++OVV,++VV2Wo~~-~9oW~~+++++++++++++$++++++++++*+++++VVVVV9*++++++++++++++++++++++++++++++++++++++++ɬ N1$P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1PSG++++++++++++N1P1P1P1P1P1P1P $P1P1P1P1P+++++++++++y\{\{O{\{\{\{\{\{\{\{\{\{\-++y\{\-y*\'\{\{\{ \{\{O*++++++++++++++++++H*++++++++++++++++++++++++++++++++++HVVVVVVVV+++++++++++++UVVVVVVVVVVVV$+++++++++++VVVVVVVVVVVV$++++++++++++++++VVVVVVVVVVVVVVVVV*++++++++++VVVVVVVVVV*++++++++++VVVVVVVVVV+++++++++++UVVVVVVVVVV !"#$%&'()*+,-./01  `0 `0@,$ P!?@??x`?'{? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV?= >!  @9#!  @  =` @0  \?@fd  ?@ x` @<;@!|<?D`0?3 ~f0@ !@ n`x& @\@ <0( y~m~`< m  1%[B/SETdQsNFe]+8l{!5GVo /F`n 8La9I^No error informationIllegal byte sequenceDomain errorResult not representableNot a ttyPermission deniedOperation not permittedNo such file or directoryNo such processFile existsValue too large for data typeNo space left on deviceOut of memoryResource busyInterrupted system callResource temporarily unavailableInvalid seekCross-device linkRead-only file systemDirectory not emptyConnection reset by peerOperation timed outConnection refusedHost is downHost is unreachableAddress in useBroken pipeI/O errorNo such device or addressBlock device requiredNo such deviceNot a directoryIs a directoryText file busyExec format errorInvalid argumentArgument list too longSymbolic link loopFilename too longToo many open files in systemNo file descriptors availableBad file descriptorNo child processBad addressFile too largeToo many linksNo locks availableResource deadlock would occurState not recoverablePrevious owner diedOperation canceledFunction not implementedNo message of desired typeIdentifier removedDevice not a streamNo data availableDevice timeoutOut of streams resourcesLink has been severedProtocol errorBad messageFile descriptor in bad stateNot a socketDestination address requiredMessage too largeProtocol wrong type for socketProtocol not availableProtocol not supportedSocket type not supportedNot supportedProtocol family not supportedAddress family not supported by protocolAddress not availableNetwork is downNetwork unreachableConnection reset by networkConnection abortedNo buffer space availableSocket is connectedSocket not connectedCannot send after socket shutdownOperation already in progressOperation in progressStale file handleRemote I/O errorQuota exceededNo medium foundWrong medium typeMultihop attemptedRequired key not availableKey has expiredKey has been revokedKey was rejected by service d'@B  !"#  !"#/bin/sh /bin/csh LC_CTYPELC_NUMERICLC_TIMELC_COLLATELC_MONETARYLC_MESSAGESPQW+J= X>?      !"#$%&'()*+,-./01234567      012345789:;<=>?@ABCDEFGHIJKLMNOP6!%&'(VW$#RKLMQ    ,-.>/?<DFF;)* HIGGEAA@DEBC<=     ]Z\[]YXIHUTS123456789: +,       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUKY"[*ED3(,/M/!15)F-!)/E"/Y/<"F///&6&B%"*(H /G /DOH+5O,\% / /-,G /UR%/>=E*.).///*/QFQ*[\]A#-///,-///7O//)%$!/4(F/!/D!@-) /#F"N"/&J#/*?KY('8PF/ $K&%/'A- &V0#")/+B#,-!(/,$/&/M'/4//2/0/!)*/./R'3/+/B-W,/1/4/-/, 4X*M(S-7)!C28/=/;/6/!9//?/L//&(G/O)K/E/N/1 #;&&?M/<$B/UT@/9H/N),"D/PA/I/C/0-J/ .EOO/P/T/-/)S/R/V/U/C#QW/$!D#UX/Y/[/*EV'Z/$",]/0\/#\0.00%[ ,*0-000- 0 0 0 0') 00 0S0005/0]0,8+000000SZ"GVM0'+%$X00=$T0]% 0 0 'W.!0)!P$R"0#0A%>&0\%0%'0ME(0 *)0*0+0H+.0,0+-09(/00010>$50304020B60I+C-7080990["-?$$1:0S$;0=*G[!=0C%>0?0 @0+%Y/'A0@$.B0 )9C0E0D0R-H'+)F0W,G0H0]$I0]SJ0(NE#L0!NM0N0 K0P0*CO0T=L&S0Q0Z(IZ0CT0R0. V0U0#?[0 -W0\0Y0X0.-X"S-T7$D11D- .1Y115*#,8)14O%1 +1F) 1  1/ 1   1111:Z=+G+V%P)111111+*[18 1:'1111(GD%1H 11@"1'#1;'!M!M%"M&-*%1I&1'1 TL!0P,*1)1 +1P+,11-[-1/1.1>=011121M31S*9,/ '\&GTU'61"0 \$F:1"]! ;191#E!*OE)<1=1(%F'>#%+X,&$]F1B)*<'E1=@1A1C1D1:@ )B1>1B?1.Q)G#AOG1<%K1]UN1L1+I1R1M1P1%+Q1S1U1O!.J1H1T1O1W12Y1]12Z12HX12U2)(2[1V1\1'2V222H* 2 2$ 2 22A$ 22,222"!2N!22C+22222 2%2!22&2 (22\""22 MD#22U)2'22 ) $2S#-2+2302*2.2,2+/222725242"$123262=A2[=2;2<2>2 8292Y@2NC2?2B2 )4%'E2D2$F2I2H2G2&J2K2M2L2O2R2P2N2Q2S2T2U2V2W2$0[,RW#"X2.=Y2&P[2Z2?)\23]233V?33339$3>." 3 3 3 3C0* 33 3"39#3A33333333333C*J333!3&G5("3\<&OJ8*%W.! 3#3#!$3%3'3H# S@R)K'$E-3)<-S)3 ,3B$($C$',#((3U$*3&3/.3- /3G)\ %#13.*2373)63033353()83$"TL:393G;3=3<3?343A3@3>3-03 B3LC&:#D3C3E3F3G3H30)I3%J3,(1'!K3J++M3F!$!6(N3O3ZP3/Q3R3AP?%S)V34 U3:*T3D$X3W3Z3Y3[[3]3"\3)V:$44&='0+& 4$,+ 544$!*)$4D*) 4/.' 0 4 4 44$+(X0144+444 49)C44 4 .+&447(44+=&4(444&44X+4$4!4C" 4"4#4%4&4Q(4'4)4M,4;#$*4-4.414/40412434Y!445491+(64774!84594:4;4=4>4?4O!H!6 E$G"I#T)!1J,@4;*B 'A4%,(CB4R1%+C4D48(F4VE4J4(I4G4K4H4 &,;L4-M4O4]"N4Z/!VT(K,P4 Q4R42!1S4% T4LU4V4?+W4%X4Y4; S%3W'&(Z4N[4].%2\455\]4$!*$'7 Y,555%555S 5 5  C 5+1!855> 555555% D555V)U)F$535Q5I!5"555&5%5$5 55#5W)*5'5)5Q,(55R+5,5-505/5.5G$5652515354575E-855595?:5<5;5=5>5MCB  O?5)@5+"&A5  "13:( 'B5TE5#D5C5F5J#B4)2!#G5H5N*K5J5I5\(R59*L5N5J*M5O5'P5)Q5)&S5T5 U5#,,UW5# >'WK#X)$ ;(X58$!*L#"M&,Y5Z50&[5V- .]5\5&6666(66666 6 6 6 6 6CM#6YU&6Z%:)6 .6)6//T%6<#Y6)/"N#N++666D#6 (%"66666U$ 6!6"666#6 (+(#*($6%%6&6Q+?')6\ (6'6!3!-6+6*6-DX,6+$%06/6.616E26[(:36X' %#$46  (V&565**]:6H"76V 796&8666Y<6B6H6@6;$E6<(?6D6F-64!=6=G6 DA6WF6C6I6K6U6S6P6O6W-Q6YX6J6N6>6YR6T60"L6W6V6!E"M6Y6\677O#Z67X77]67F ,87& @';6 77D+7H$ 7O76%&. 77Z*3 779 [6%!7: 777E77777[+Z+7747Q7"7!7&7'7%7(7 7$7)7*77[#75!777H)-7.7/76757\*37$07-27547+71787#,7<, ,;7?7] X-@7=7:797>7)%%A7<7B7ZJ7H7I7G7E7D7K7C7M7ZO7N7#R7P7F7[Q7U7T7V7S7W7X7Y7I)[7Z7 E[\7+]7"K8@8N888886!,@+*I8OMA'I,8&!)P! 8 8 8 8 8)=(B'88888#&=,888I$8=%8'Q!C' 9Y)P#T*8I"#8"8$88&8"8!8N&8\8PR!88: 81&Q'F(8-8)8\.8H8\+87,8#'8#R*8"Q#3'08= ! 1838/8@)#; Z)-?8>8W]88G%&68< W;858:82&48<<8 --"98;CE 78$&.#=8> @8B8!H8C8E8 (R#F8 ,', D8A8WFG8(,K8!R8L8I8P828M8Q8!'J$J8N8'P<V8$S8?*T8U8-+A\8Y8X8&%$Z8[8N($&P/*(9]8),999? 9899 9 9$ 999999999P9999O899W89989999 9][)-"9%91(>$9#93&&9(9'97%(S)9$>(*9+9,9)<4%+(7D'"',$ -.9//93,?(09!&":19\)V;492959-39Z69!79Y9989:9;9Z[%"K<@ ;<9@9?9 >9+ 6-E9&4E*QD9B9C9J":I9]G9H9F9K9J9O9P9L9M9N94'@()Q91"&R9V9*S9U9T9J'"$W9X9 #P-"J)*:Z9]9\9Y9:=%[9:K:*,W&::::)' : :PA 71  7!&Q/M ,])]( :R# :.* # :[::9++U*;*:J0*:::X?:::XZ,(?!<R:-$: !:Q<+::G,!:4&:K$=9A9.&& :#'&:Y':#:":.L*2-F*+='.%:T$::.+:):,':-:3:'! )5:(4:O&*V2# ,0:/:1:.:6:,:*:2:(:K"W+%SN* -#)%(Q 8:[::S@:=:R* ).;:D*L$9:%<:>:, *A:XP*B:(N:C:T:D:!-K:>&S:F:H:J:I:E:P:L3G[,G:S# ?:O:@M:Q:M$];(+V:\]:*;;;X: "N$ ;[:;; ; ;/.U:;7W:+\:&#R:;Y;P;Y:;;Z: ; ;;-%;;;7#+,U(;)!; ;!; ;N%;I%#;;';<?&;*;;;.9;";F<3;.6;5;4;1;%;B;$;7;/;*;';(;0;S-;'#C +;&;);,,I*.;8;@;9;F;D;?;>;/#D <;:;A;G;T'M;H;K;E;S"(;;C;.+W;J;>2; O;V;XQ "L;Q;U;+S;*%R;T;N;P;?("[;Y;HX;<7:Z;\;]; <,<<<5<<<-"< <O(A)#.T/Q-$<%<=<@<@+A) =(=$H0#=!+=1=L@=:=S.$5=>=7= !.=0= A=<=4=;= +9===/$"3=,6=/=Q$2=8=0.]*B= 'N=?D=-!Q=MO=C=I=K=.,F= $H=P=J=&+E=]=IG=L=M=K!9!U=[=Y=$>V=W=?=X(V.S=>HE X& Y-+1#Z=\= >X=R="H> >WB@> > #>8#+>>> >>> >>>>!>>>>"$>>BX!>&>>>>!>>I&=S,> >T!> >HN$>(>&>">#>'>%>-(->*>)>,>3%.>T"L!/>1>0>T=2>F%3>/S$C=1.EI5>4>8>";>6>:>9>$8T-=>?>>><>7>*A>@>JC>)B>+& %Z-I>XE>J>KH>@&D>G>'0'K>0YN>F>L>/,O>S.P>Q> &S>T>&T$V>X>4-U>W>LR>:2Y>F [>Z>81\>?M>]>?Y&????=#??? ?>B(K+ ? ?5  ? ??1)&'?6& #?FL%++.1* )?"%?3???????''?T?????0 ?H \"?#?!?L'%%? "$?.A&(?*?'?3+)?+?#-/?.?U" &-?,?,,0?MUA1?2?4?"6?5?7?,9?8?;?:?-+I@G-=???@?0?C?MA?('B?]?H?DE?\,-U!G?I?5-6[')&J?L?O?K?N?I,P?OM?;-S?SQ?T?F?R?U?V?],W?X?D?Y?#Z?[?\?@(@@@@@@@2( @@ @ @ @ @@@X@@$2$@X@0,B)@#$,"*"1 #G@@@@@!9@9 ')'-@@;" ' (@ -,@@5' @!@:U&@#@L%"@)@$@%@(@'@(! *@+@,@.@-@56@G'0@2@4@5@3@/@1@!((8@7@9@V$:@*#<@-;@H A@C@D@3"B@?@=@>@@@G@E@F@H@J@K@L@M@I@O@N@P@$-S@Q@R@A]+))U@T@V@W@[@X@Y@Z@\@]@AAA'/$AQ&(AA $#AAA A A A AH' AAHRAAA A5&>*-6AAAO$<A +A%6'AAA;+4+#I AA)AAA\'&%A"A+!A#A$A A&A'A#BD"(A)A,AF#%-A2**A+A0A/A.A2A1A3A5A4A,)5%-6A%7A8AA?A@A+AAO+BA-"I&J"CA/DAEAFA4HA5$5-**&6$;JA*-$'LANAJMAU#PAKAI'K1.OAQA*)8SATARA-ZAYAVA\AWA7'UAXABB@*]AJBB+B" BBBGAIA BBH-1 BB,BB# BB* B B &,(6W$BB(B7. B1V#)BYBBB&BBB82$%CB)"(BJ'$ B!BH& B@"B-;"BW##B& +($B%B4"&-'B&BN)BO,B*B3-+B%QE)-B3*/B0. .B0B1BV2B.4BIE5BT6B[,%?T7BA"J 9B;B8B:BB?B BBUAB@BDB=BEB-FBGBS3IBHBJBKB-LBNO.MBNB6%OB"PB"QB0<"'RBCUBGTBCSB/WBXB $YB=9C([BG!VBZB\BZC ('X$9CC']B="Z$Y$UCC C C C C CCCC.)4CCCCR&+CCCCCC("\'C'@C.'C2):"CCCC#%%$C#C C.)C-C*C&C'C,C!C41(C"C+C1C).C/C0C3C2CU'4C[-L)9C6C5C18C:C7C>C;C-8D! D1D ' D DD/ DDJ DD)L,DJDD\$D DCDDDD0!DM %D!DDDY<D"D&D*5+5#D$DD"D)+D:K'L /-NMD'D]#D(D*DX#-D)D3)**+=,D\-+DNK%.D5D/D6D2DZ&)4D1D7D0D#*+3D?D;D>DE]-AE@E?E#BECEDE.EEFEHEGE'X%.'JE2 (KEIE-3GM' "*NELE-.HG8&>SE"7&:!UEQETEOERE*4\PEWEXE%F&H'%. +VE32YE[EZE\E"&#FF]E4D(FF/2.FF FOFWF F#) ;!FF F F F0FFE(K*(FFF#*FF FFFFF&FF$FF F!F!#F"F%F&F'F"H(F6-  I6")F*F+F,F-F.F/F 90FD1F*2F/3F=); 7P( 4F15F+'CF7F(!T&6F 8FY#:F9FF.@FAFBF(-DFOEFFFGFQHFIFF(&KFJFMF-&#5*<;LFIPQFI-G]AG/G4GM,=G4, -W"JQ(CG%"MG5,BGHGKG +NGGGJG*.RGYGQG"0G-)+XGWGSGTGVGPG4#UG]!")ZGH8']G5(HHX(\G5G[G..%R( HHHHU&HHHHH HQD% HHH H$S+X+QHH-.HT,HHHHH%H,' HRH!HS HH"H( HHH<<$H#HU,A%H&H'H63)H<0T-R*H+HM",HY%B1H2H-H.H!&/H0H:H4H7H3H5H6H78H "5!;H@HH'(9'AH\!KHGHJEH *FHCHDHIHLHJHHHBH7"SH +QHRHMHOHPHNHE.WHXHI ZH]HUHTHI;[HI\HYH#VHG&I,II IIIE,I I IIIII IIIIIII !IIIIIIII!I I9H%I"I#I$I&IK(I'I3=)I0*I16+I4,I@(-II4I1IN"2I/I=.I5I=!;I7I!6I9I0I:II:U-@IAIT -BI,CIDIC)EI-JIKI7IIF,FIHI]GILI)NIMIK *OI[IQIRISITIXIYIWIUIPIVIZIO]I>\IJJJJJJJJ6,J)%& J J   JJ & J/ JJV,J%JJJ0JJJJ0JJJQJJJZ#J65 J%JJV! !J"J8L#J *>UT+) $J&O"9%J(J)J!!'J:(&JK2-J7ML,.,J+J ,".;*J/J0J.J7,N&3J!",6JK2J7JL4J5J1JA(%"<O'"#:J8J+" 19J:)-.;JFJ#EJBJJJCJ?J[#>J-'$K24#K(KX"B+&K'K )KB&>!P'$%K&*K+K.!#$.P*K!;K W%/(.KQ=D& -K,KI( 1$0K1K7/K2K3K5K!4KE7K6K8K:KK1?KU @KAKJ(BK#:CKPU !FKEKDKLKJKGKIKHKKKVOK6PK8MKNK.# QKTKRKSK8,%WKUKVKXKL[K\KZKYK\#LLL]KLL LL7L LL L L LLLLLLLU+LLLLLL'LLLLLLL L5!L "LO%$#L&L%L$L9'L2)L;(L1L+L-LD)*L,L0L.L/L2L9&7-3L,5L4L8L ,7LL6L;L:L9L$LK?L@LAL(BL CLDL1]0ELODFL" &GL4)3#]" W*6=@5)HLJLIL?U%KLV&$LL1NL!+]LPLQL(#?!V %OL4XLULM%?"RL]#2$SLWL?F&+#!VL !!TL.YL@!)[LZLN\L(M:%J8"WM,6)@MMMM%"BMMS! MR+ 9, M $W 6 MMD M C*-MQ'MMMCB3MLMMM,@% *M8MMM$I8.MMMS(3,3$MM M$"M!M2%#M?:&P"QK$M%M<&M'M(MN,*M)M9R-ME,M+MH!N"'.M>1M/M0M3M2MY4M5M6M/'2@7M8M-$M++-9MA:M$=MW*;MMBM>%"FMCMEMAM.NDMJ-9NM$IMLMJMOMPMHMUMSGM 'KM?:'*C%% SMMMRM"+#TMQM XMWMVM*ZYM>)3%(Q"W[M< ZMLMNNZNN2$(A.]MW.NNN\MH%4$6# N""NN  N N@XNX )# NN"# NNNNN $NNNNNNNNN NNNA %N$N"N#N!NW!%N&N(N4'NY+3N)N,N*N+N-N/N0N1N4N2N5N7N6N#F+8N 9N#):N 65;NN?N74='AN@NBN;ENDNCNFNIN&GNKNJNMNLNNN %ONPNRNQNK(SNTNDUNVN(** *!WNL(ZNXN>YN!$)\NO]NO7[8OE&OO##,- %[N-:,X-A!FO N5OOOC<B8- O M O O O OOOK-OO('\F,L:OOROOO I51VO-P% B)L-J,O$$ZOO+OM-OO!O OO"O#OY A$O+%O&O .:'O(O)O-O*O+O,O.O#V+$/OR'0O2R++1O2O3O65O86O7O;O9O:OR8OO?OC@O&COBOAOPJ;)DOEOFOGOHOIO9JOKO&MOPOOO &)#?F;ROQO!,G1';%[--:UOTO** %/VOSO0(I,WOXOZOI!:;YOHI$?-;[O\O]OPPPV(PPPPPP PS'+E P P 1<2'ZS*] P>+ P;,! PMPPPPPPP:PPPPPPPP!PPP P"P!R#P$P@%P.&&P'P9"J%(P\&+!7MNR"-PON,P*P+P)P7P.P/P0P1P3P2P84P6P5PZ 8P,!9P %:P?P=P

P;PAP@PCP"BPDPEPGPFPHPJPIP[KPLPMPNPPOPPPQPRPASPTPUPVPWP'YP(ZPXP\P[P]PQQQQQQQQQ Q Q Q Q Q<QWCQQ+QQQQA*QZ.QQQ )QQQQQQM* Y Q"Q Q#QP!Q$Q%Q&Q*Q C!+Q(Q'Q)Q>/Q.Q-Q9Q5Q6Q2Q8Q4QA+.7Q3Q1Q0Q;Q>Q=QR?R@RARBRCRDRERFRGR$<IR, JRKR(LRMRB9KLONRORQRRRSRO-PRTRURWRVRYRZRXR-[R\R3B]R SORT)*U;B@CV !"#$%&'()*+,-./0123456789-. @ABCDEFGHIJKLMNOPQRSTUVWXY/"0N000% & 0 %"<<"    000 0 0 0 0 00000`"d"e""4"2 3 !+!B&@& ""#""a"R"; &&%%%%%%%%%%%!!!!!0j"k""=""5"+","" """""*")"'"("!!""^.""" !0 %%%%d&`&a&e&g&c&"%%%%%%%%%%%h&&&&& ! !!!!!m&i&j&l&22!3"!33!!   !"#$%&'()*+,-./0123456789:;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1{1|1}1~11111111111111111p!q!r!s!t!u!v!w!x!y!`!a!b!c!d!e!f!g!h!i!%% %%%%%,%$%4%<%%%%%%%#%3%+%;%K% %/%(%7%?%%0%%%8%B%%%%%%%% %%%!%"%&%'%)%*%-%.%1%2%5%6%9%:%=%>%@%A%C%D%E%F%G%H%I%J%333!3333333333333333333333333333333333333333333333333333&!3333333333333333333333&2?ARfJ`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2{2$$$$$$$$$$$$$$$$$$$$$$$$$$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$S!T![!\!]!^!'138@BSgKI222222222 2 2 2 2 222222222222222$$$$$$$$$$$$$$$$$$$$$$$$$$t$u$v$w$x$y$z${$|$}$~$$$$$t  A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO  $,-/0189<@KMTX\pqtwxzĬȬ̬լ׬  ),-458DEGIMOPTXaclĻȻлӻ $%')-0148@ACDEILMP]ļͼϼмѼռؼܼ $,@HILPXYdhԽսؽܽ DEHLNTUWYZ[`adhjpqstu{|}оѾԾ׾ؾ @ADHPQUſ̿ͿпԿܿ߿DEHLTUWXY`dfhpų̴̵̸̘̙̜̠̩̫̬̭̼ $(,9\`dlmoqx͈͔͕ͤͥͧͩ͘͜Ͱ  !$(0135XY\_`ahikmtux|΄΅·ΉΐΑΔΘΠΡΣΤΥάέ $,-/018TUX\degipqtxπυόϡϨϰ-458aha9eiouvv{˄U[QW|(PSE\]bncdd np[yݍ}E~NNeP]^aWiqTGu+^NPpg@h QRRjwԞR/`HPacdkLp/tt{PŃܕ(.R]`bOIQ!SX^f8mprsP{[fSckVNPJXX*`'abiA[}_NPTU []]*eNe!hKjrvw^}N߆NʐUNEN]NNOwQR@SSSTVuWW[]^abQeggiPkkkBlnxprstwwvz}  ߂b3dҙEם W@\ʃTzو͎XH\cz[_yzz&P8RRwSWbrc km7wSWshvՕ:gjpom̎Kwfxk<S-WNYcisExzz|us5RGWGu`{̃XjKQKRRbhuiPRRae9hi~tK{냲9яI NYdfj4tyy~_ & OS%`qbrl}f}NbQwOOvQQUhV;WWWYGYY[\]]~^_beegg^ghh_j:k#l}llms&t*tttxuuxxAyGyHyzy{}}-OHw!$Qe}vO TbThёU:Q Za bbfVq OczcWS!g`isn"7u#$% }&'rVZ()*+,CN-gQHYg.sYt^dy_l`b{c[[R/tY)_`012Yt345678љ9:;<=>?@ABCoDE`FGfHI?\JKLMNOPQZ%{g}RSTUVWXY<\l?SnY69NNFOUWXV_eejkMnwz|}ˆ2[dozsuTVUMWadfm[nmoouCANJZlSuT{]UXXXb^bdhvu|NWnW'Y \\6^_4bds۞[_`PR0RW5XWX\`\\]^_`ccdChhjm!nnoqvywy;zHSMvܗkpXrrhscwy{~X`feeflqqZmNzNQQR TaqgPhhm|ouwzc\Qe\gguzsZF-o\Ao _]Yjq{vI{'0Ua[iv?\mpsa}=]j^NuSkk>pr-LRP]d,ekoC|~ͅdb؁^gjmrtotސO ]_ QceuNPiQQhj|||oҊϑO7QRBT^na>bejo*y܅#bjΞRfwkp+ybBab#e#oIqt}o&#JQRR mpˆ^eko>|usN6OV_\]`s-{F4HaOoyR`ddj^oprv\2ouxy}Ƀ֊X_'g'pt`|~!Q(pbrxŒڌNP[^eqBvwJ|'XAZb\jmo;v/}7~8KRegiAmnp t`tYu$vkx,^mQ.bxO+P]m}*_DahaRQQ^iz}uO)RSTUe\`Nghlmrrttbul|yψ̑БɛT~oqtWgm3t,xz {|idjtuxxT[U^ oNMS)Z]N_ba=ciffn+ocpw,;E;Ub+gl jzNY__g}T+WYZ['fghkdqu㌁EL@_[lsvv QMQQRhlw w}}bnQ T}Tff'invw„iOQRY=^Uaxdydfg!jkk_rarAt8ww((glgrvfwFzkl"Y&goSXY^c4fsg:n+szׂ(R]aa bbdeYifkk!qs]uF~j'aX؞PR;TOUevl } }^RlirsTZ>\K]L__*ghcieee fginx!}+*2 POcW_bcogCnqv̀ڀ)Mj/OpO^g"h}v~vDa^ jiqqjudA~CܘOO{pQ^h>lNllr{l:tPRXdjtVvx9e^S_%RwINPuQ[\w^f:fghpuuyz' O!X1X[nfekmzn}os+u܈\OPS\S[_ gyy/9;,gvNOIY\\\gchpq+t+~"Ғ NNOPVRoR&TTW+YfZZ[u[[^fvbweenmn6r&{?|6PQ@tܑDٙSR)TtVXTYnY_anbf~lqv||}g[O__b)] gh|xC~lNPS*SQSYbZ^`aIbybegikkkklh5tuxxyy|}>船l^ۘ;V*[l_ejk\mop]rsӌ;a7lXMNNNN:Oy@y`yy{}r} фdž߈P^܌fߙJRigjP*Rq\ceUls#uu{x0wNdk^q NkIghnkco NPPQFUUV@[\\8^^^^`QhajXn=r@rrvey{saތ^XtUlaz"}rrru%um{XX]^^_U`bcMefffhhr^tn{n}}r͞ YmY-^`fsfgPlm_owxƄˑ+NPHQU [[Gb~ee2n}qtDtttlvy}U~z9ux%MhSQ\Til)m+n ;-gaRfk~ ]emqnWY['``bf_f)ssvwl{VreNRrkmz9{0}oS/VQX[\\]@bcd-fhlmnppq&uuuv{{+| }9},m4 a7Ol\_gm|~k[] d\ᘇs[`~gm 7RpQpxpבOSUVWXZ[\\%^a bKbcd6exe9jk4lm1oqrxstt&vawyWzz|}}a~)1ڄꅖ8Bl֖ӚS~XYp[[mZoq!tt]__B`ehoiSjk5mmsvwM{}#@cbĊ bSe]']i]_thob6rNXNPRGSbfi~^OS6VYZ8\N\M\^_C`e/fBfggsw:ÿ́fiUzW[_o`b ik\nq{UXߘ8OOO{T Z[T3TUbXXgYZ[`aVeedfhZlopqRs}{2K\lDss:netviz~ @QXdtupv͖T&ntzzنxIZ[[hicmst,tx}UL.f_egjls-PZjkwYl]]%sOuPQ/X-YYY[]bdddfHjqdtzzG~^~p YR~a2ktm~%OPQRWX[^Baimgnnqbt(u,us8Ʉ ޓNQOvP*QSSS[[$\aae[rs@tvPyyy}Յ^GꑅRg_e1f/h\q6z NRjkoqSK1NqĖCQSTWWWZZ[(`?acl9mrnn0r?sWtтE`bXg^MOIPPqS WYZ \paf-n2rKt}Àf?_[U˗OsNOQjQ/UUz[[|^}^^``a ac8e gggaibil'm8no6s7s\t1uRv}8Ոۊ0BJ>zIɑn XkAQkY9\dosbph}Wi`GakYNTm-pclQaOPQ[aadikuwdcpNN O7YY]_[_!`>rspuuy 3Q 7pvNNRpSTVY[__nnj}5mwNZO~OXen8NXYYA`zOÌeQDSNiRU[N:RTYYP[W[\[c`Hanpnqstux+}(Ʌnj̖\ORVe(f|pp5r}Lrq[hkzov\f[o{*|6ܖNN S4XXXlY\3^^5_cfVgjj k?oFrPstz|x߁灊l#υ݈wQT(W[MbPg=hh=nn}p!~ KN-r{͊GONO2QTY^bugnijlnr*su{5}W[Ζ_R TZ[XduenrvMz{M|>~{+ʌd_iѓCOzOPhQxQMRjRaX|X`Y\U\^`0bhkloNq t0u8uQurvL{{{{~n>I?"+ZkR*bbYmdvz{v}`S\^8op|ޞczdvNNN\PuPHTY[@^^^_`:c?eteevfxfghijck@lmmn^nppss:u[wxy z}z|}Gꊞ-Jؑf̒ V\6RR|U$X^_`chomy,{́Dd=LJOFQQR2V_k_cdeAfffghhionogqq*rt:wVyZyy zz||D}p~T m;Ֆe|ÓX[ \RSbs'P[_`kahm.t.zB}}1~k*5~POPW]^+cj;NOOOZPYĀjThTUOY[]^]f1gg*hl2mJnopsuL|},}}ۆ;p31NRDЙz|OQQW[\Yf=jZmno qouz"!u˖-NNF͑}SjkiAlzXafbpuuR~IKNST0W@W_ccod/eezfggbk`ll,ow%xIyWy}󁝂rvz7zT~wUUuX/c"dIfKfmhik%mnshtt[uuvwwy ~~/:ь뎰2csOSYZ^Nhtuyz̍폟egWWo}/Ɩ_aoNOPSUo]]!kdkx{IʎnIc>d@wz/jdoqttz|~|~ }L9R[d-g.}PSyXXaYaaez P!PuR1UUXY`Sbb6gUi5@ݙ,PSSDU|WXbdkfgoo"t8t8QTVfWH_aNkXpp}jY+cw=TX-di[^oniLQS*Y `Kakpll{΀ԂƍdodeNQTW_avhuR{q}Xi*9xPWYYb*]ayr֕aWFZ]bddwgl>m,r6t4xwۍ$RBWgHrt*kQSLciOU`WelmLrrzm_opaOOPAbGr{}MjWs^g U T[c^^ _e=[HOS SSTTW^`bbUclfmu2xހ/ނa E^ffprO}Rj_SaSgjothyhyǘĘCTzSiJ|_buvB9S<__lsbuuF{ON< NUOSY^0flUtwfPXx[P[h``eWl"oopUPӗrRDQ+TTcUUjm}fwyTTv䆤ԕ\N OYZ]R`bmgAhl/n8* NUPTWZYi[[awiwm#pr犂홸R8hPx^OgGLNTVs WSVX[1aj{sҎGkWUYrkiO\&_a[flpsss)wMwC}b}#~7R IoQ[tz@ZOTS>Y\>cymrϒ0NDQRWb_lnpPppqsitJanQW_`gafYJNNN|TXX}Y\'_6bHb fgfkimmVnnooo]pr%tZttv\y|~ဦkN_twje`bwZZfm>n?tB_`{T_^ll*mp}y ;ST[:jkpuuyyqAt d+exxkz8NUPY[{^`cakefShneqt}i%;mn>sAʕQL^_M``0aLaCfDfil_nnboLqtv{'|RWQÞ/SV^_b``affgjmoppjsj~4ԆČRrs[kjTV][Heefhmm;ruMOPSTa?MfV}Y=4{[^Z%6Z[\ngEattu8S6!`>X:zaA 1 ^2 C/0IXJy2z`f)jLt{g,zORF4s]tǟW/ILT1A6Xrze{FnA]{$ȟ$$$ɟ5@ʟDbnp˟11111 1111111111LܾQ+Mkܿ a##E e=NnNߑ5wdO(OOVQtQQQRR;SNSSSVXYY2Y4Yf[[[\^;`eghehNmp5u~~~~~~7zςoƉfgnt|}Fiz'Rx^ ǞLɝ >Lp 35n>uIlyl*$NNNNNN7OL4OH>PP}444QYQQRNyRR'S5SQ5SS5S#Tm5r56TTTTTTU#U(U5?U55U5}%UB  +QU,9AFMS@zw8,4:G]iMd|  d~ d,VDF MGN,g:?5RԗxD-nC`dTL-+w9ofgydRPC h!L1 H?sX-E`L yU@CJf* yc9u'V|dC> *,99:x5I^ RV1, 4=l;Ntu."[͌z4 h(9)5Q?0G OL H =?&2d39v+~  Q,U,:.2PkҌʌTĂUÞ&^w-@qm\re47_Sw5M 6 V'xxHUyPN-TZWv͂{~Q7RI:wA|XhR6=W{h[H,K'It[=1U5V(NYxQ[NN>5#\Q__8Lb5ezk5l:llp+r,NrHR;y|Sjb4KcfQi]SdxxuΘޘc|Ğok7N7b;Pms=NAwp\ KQY50]"a2qgs2<KxtQ @cj#Bo *zGUMp$S~ v㉧wNOP/NO4T}XX^^_'e3iCjcJ[t\Vz{|l~Ϗ_!?q@BZhkgvB=Wօ{I qLtm{]ko[f[~Wny=DV2'C6E\;x\=Q5x]WqXE@#wLx9J4Al̊O9YlV;_ !mAFy?@7FFl|AsmE8TaEEM{LvME?Ka6DDA>]H]V]=8]] 888B^^%__99?9M9`=a\9aaa9,bbbc9V:ccdZdK:d]!V:e:eSf:f";gB;ghX;Jhhr;q;{; iCi\rdiii;i;ejtjqjj;j;jjjjkkkull<mm&mmWn>qWN6it[IzXٔez}zYzzzzqdAzzzAT\ {U{){S\{o{[l{!{ ]=e\{5|\D||H|}fxE|||t|||g~EDn]}nt}}5q}W@)`}=}}m!aZan~~+Cl'~@AG6ybᙗQcah\Ef7E:d/l;mkk5=U EmӃ~4nWjZ4Bn.X[q=DjJI|; qzÎԒ-eP *Iމ==^b2%#9n7Il{lAnaxSIltdJ 31B6J=EEJupA[ՑWJ[_%P00җlTt3zyJ43Kf;uqQ=0\AWʘȘǘJ'mUx9)JrKW ;X%W6՛L-4P4i8}0P@>EZcKB hԝ#ߡ~4hĝ[! ;394MdC`;9=2O7+K$m9VVEbizrKuIIwqIHCQJsڋy~6iD쒁˓lDr>rwCzpsDC~qp5>/T"796tK_#7[W%J6UIeq1>\U>RpD6&og37<=lX"hW@?7@@A!lTVfV ƓN+Q86DNeKOOQVhZ9 54)Ouڊ NP QOOJ>BO.PlPPOOXPPvn59>>rm>QQDzYRRsRzFqC Ii>ttVtsKJ@S5r@UET W]fWWW>6XZFo,ZY~ZZZFYaB6mCt!Z^Z׋tqrI7\\^^H^|:^O[766*Gr4 __'kZ;D[u`~``(+&_>%%soa>F&aau`,-FMqdeFj+):"+P4x.7c[d1ccIg-b,;dkeri;02I2 U2?f21:AU"U[U%Tx1*42d421Bf$mkfK0fpxcf22frX8:87;73t;g*Fhh;jc87D3jRjjkehLj;zjWk?<ˊ܉gm oI?=n<@=Z nGX$mBx;qCvBpPrrrG%GyQJzt>_6JJI_?>J#5?`>tIH2WBdP!RQxw22ww{wF7^:H8tt>JJ@JaUxxxxsYyAwVAy-j>:zynA2A5yL I=n5kUp56 zYZ&ZZ Z[x*Z[zA]|m|B[^^|I||||j}~}Nab\aH{}^jBuk gN5WdcbI'{,ZC] {^Ecj?49Iee'qlD7Dƀ BgØBjbeQjSmrZA@+[Z=-"tZnEOeMVTwwً>FF7=HM_+Be)qpEm}YwYnC6* L0JBXlo!#Hyon雵6/IqUIKb@';+4Et>HBJC>%2fe>IxJ?tkt>AGhJWh&/c[itc>Jjss>>JJfJ$IHtIpvIs_1ΊU5IkqCI V Uy}PJR.E 7IYtZ6[=6_yZbt< J9Pi=L=uqBnDWmO~gpln oo=Qu64F>qHYn>IAkXW6RpbCqJ/#hgi4{673Lj6l>DD&mQmloo q=:타lSpYZaZqZA-7Y<6qfBnZ+ZB+j>6w[DBqYBተO(m\DM~C jVBp3qC=l%OJe~Y/]=\_]J}&T:3~W?p[p]s|Y Orsz8s9sVAsHs>{lqHs> w>lVttt>>>>t?S?Bumuruu|?uu?Mv?tv?zv\Oq#ViX@Cw9@agE@5wj@o@^\wwXxpx@9xGxQxfxH5U3yh2yA AyyzgAzAzyAzzA!Nb{l{{{||`BzB{||B|B|p }}}}rC %9{.1T=WpC *s`uD9;VYZD:X|%D-DWTDvʂ؂DWiipd`E8R;EopwErEFF$Ggy)8QԌG_XÍGN:UTWqU7HΎ򎷏ʏ̏3ęHI(XkCEIQIS->jITy-I3Ig$J@5J—TVJ`KDXQ7B]bpKřK<ziݛmL o7I:PV{ƞܔzDiÔY@X7vWWsq jT; T ; S e | ` zV o Ui/-s \ ^\Ovg{G6/;dSu6wxNp-j-E*pbqUhE i6|"##*'q(O)g))**+?+GL,,,[----B.t//30f033_Hffyzg55I67FXgi:Wv_>>u HJAB C;@4CCEJQY;<DDWtF9/Gəb7!^NHHJ rJx eYNOyڎ,PR?WqqRTJ?JUFTnTRks4?U2v^UGbUfUW?I]XfP43Y|GHZ[\WQqa|VaObdJd[]kdId?eKef'eWa'ZV!EfjN4IVml6wgnhd^hhB{ &i9iEzi&-j_6id!y4j[k,]5kFl;uemX7%KpqTzf=Uv<5VVYN^XbVmm[>Lc{0e-VJ\TS=}L"VVI^uY@=pNI 6^;vENvwE2TH%V2UbyCVT5VUf-64uUUTrUA ^HQvb,Z}UubmT͌qvccciUC+r.Q4 QMTUUfv-huLjDsG[ h{V&/}As}nrp<frNGO@]e-HG| uH`q~PNNw5 [lgS69}S6FXnK-KTWZy R:e$ts M<0[LOޟ\=rg 7.c%}>,>*:Rt>z6E@vZzx.X@|Vt]Tv4L7a0C]VWcI4Rp5|V|9WlS\dД5cdq( "mJq Q]L{\{hb5c{*~|B||{ >IZsU[OO`R>RgWVPY^ȗ\iT@,S0a,iS ;LAiPFumڙsRY\Qc#mjVzubOsp|!\<Iv*N BJ\izWR]N1l9OTTR55Rk|.zq{kx VJwSԍOb}(uzwJ>zxlgvZ&lևuSx@ rqs-st댻J/_D;n~%`gvךDn,s!5rLQ|JYaYaL}a_Woab9b\:aS3dch5W]‹ڏ9PFy2S8;e@w|_|-zfcM}ut gbt[t$wgSun·ȁIC+wtڄ56im@t=vq`a<w`q-`~K R<<^Vv1UDmp\aw6FhObE[LcPkbGے?LBsQI6BID<i-7{_ R&R8qDmStS~SwSSSSsrWY?sSSIlINWS: S?-Sw Typ+UWf[mmTSkt ]UTTG =M &GUL/TtUU:@RE5Df7Vf2ffMVOVxVSWVVf#6OFWAnlpBW6~lWXTcC&XK\XXa5XX<X[CWPxBӓ5Yh6Yn>$ZSUYN l*mYmqm(YEnZcZ6I7ZetZoT%=27^Rv[e|[z@]H[`a4Y[[M\D\s\(kI\H\\\]7]]F]\]-8II s!68;.^jz^D SNSq ^^^^8^>h _:H::_h#q$c_nnr_@6_]_=PRjph&֑)1`fwc9=96W'qy@>``IISztPZda$BanaQVa[?_(a]a29)(#`\aecbpb .lcI:8dco6.@Wdd{f::dW:Meo(J#Jeme_e~0e@I7Ke@)ee_4f11Df11KfugfQsf=121Sw(gC!J+;i7ggbgAgD"hPn<h3m]ho4i jߊsih5ii2=:<6;gaiJB6ii;cPiY6*!Ej7j;gj <k# `5ktk'n:X@7!TZ;k>k7l$HQkZl&yl=D=A II<6<2 1$7h%mmmm\m|noI@rn3toQ.!/>St?yOnZK0o 7o0>n=@UEDo\oN=top;=oDAo@UA9@???AQVAWA@AaKp~pppppppA=qqwB+qEqZJq\eCOqbB,qZD'J"Jq苽prBrYC$rAV.r@rtIhUrWrU>D0 h=or+s#H+H(s.sss: .jsItA$J#f6IIIsti&J9t>(`tGtsvtlt07tt,jtSIJ_AyJF[tuuَK[MuJugunuO?Mu]tuuv,vQvOvovvvcv7iivvvvobP}Qw&w@wd RXw2wdhwvJhxxx.yUx4yx v+`&yiyWXy9{y y _DR@ N4  @X<\C&v2D`! `!i$D@5C1Qh@d@P`*h5O Ă(u8@qM ^[Cx @ RO|! nwO6 n /`Txh"pV% w[1r[, \΅@T HD@ @;dD+6[ڐۇ %FFɄM   xn_?~=k翺nܧ>wɒץJnMgTboR6)EeB9B`@@ү{R =   LDA@O6Xg@PNAȄZ`+P@n 9 ěl*Fm!ri*{ ,9J @  DE0 00' 0& % PQRTUVW\ 1 3t%4O 56[]78009:00;< 0 0=>0 0?@ 0 0AB00CDYZ[\]^    005 2  ; 0%%%%%&&%%%%%%2!?IJMNKL_`a "f"g"`""R"a"bcdef^)"*"" """33+"."5"4"@&B&""!!!!!!!!%"#"<"h0 ! !ijk333333333YQ[Q^Q]QaQcQUt|%%%%%%%%%%%%%%%<%4%,%$%%%%%% %%%%m%n%p%o%P%^%j%a%%%%%q%r%s%`!a!b!c!d!e!f!g!h!i!!0"0#0$0%0&0'0(0)0ASDSES!"#$%&'()*+,-./0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ1111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$!$ NYNNNCN]NNNN?QeQkQQRRRSAS\SS N NN N+N8NQENHN_N^NNN@QRRCSSSWXY'YsYP[Q[S[[\"\8\q\]]]]]]r^^ __MbNN N-N0N9NKN9\NNNNNNNNNNNNNNNCQAQgQmQnQlQQQRRRRRRS9SHSGSES^SSSSSX)Y+Y*Y-YT[\$\:\o\]{^^___b6bKbNb/eeeeeefg(g kbkykkkkl4lkp*r6r;rGrYr[rrsNNNNN;NMNONNNNNNNNNNNNNEQDQQQQQQQ RRRSSSSNJSISaS`SoSnSSSSSSSSSSSSSSSSSSSSSVVY.Y1YtYvYU[[<\]]]^^s^|^____ bSbTbRbQbee.g,g*g+g-gckkll8lAl@l>lrssttuu(u)u0u1u2u3uu}vvvvwww:yytzzNNRNSNiNNNNNN OO OO OOOONNNNNNO OIQGQFQHQhQqQQQRRRRRRS!S SpSqS TT T TTT TTT TTTTTTVVV3W0W(W-W,W/W)WYY7Y8YYxYY}YyYYYW[X[[[[[[\y\]^v^t^____b b bbcb[bXb6eeeeeff g=g4g1g5g!kdk{kl]lWlYl_l`lPlUlal[lMlNlpp_r]r~vzs||6 3 nr~k@Lc!2NNMOOOGOWO^O4O[OUO0OPOQO=O:O8OCOTOT&TNT'TFTCT3THTBTT)TJT9T;T8T.T5T6T TWPWOW;WX>YYYYYYYYYYYYY][\[Z[[[[[[,\@\A\?\>\\\\\] ^^^^^__d_b_w_y_________bbbbbbvbbmbb|b~bybsbbobbnbbbbb9e;e8eef_gNgOgPgQg\gVg^gIgFg`gSgWgekkBl^llllllljlzllpllhlll}llrl~ltllvlllllvp|p}pxpbrar`rrrs,u+u7u8uvvwyyyvz|Uo҉7FUdpʎƏŏď]IƑ̑2.1*,&NVNsNNNNNNoOOOsOOlOOOOOpOuOOiO{OO~OOOzOTQRQUQiQwQvQxQQQ;R8R7R:R0R.R6RARRRRSTSSSQSfSwSxSySSSSsTuTTxTTT{TwTTTT|TTqTvTTTbThTT}TTVWwWjWiWaWfWdW|WYIYGYHYDYTYYYYYYYYYYYYYYYYY_[d[c[[[[[[[\H\E\F\\\\\\\\^^^^^^x^^^^^^^&_'_)____|______``/`5``*``!`'`)`+``bb?b>b@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb>eeeeff fffffff ff g gmgggqggsgwggggogpggg~gguggg|gjgrg#kfkgkkllllllllllllllllllllllllllllllllllppppp,r-r8rHrgrirrrrrrsssss=uuuuvvvvww>y@yAyyyzzyzz|T NqRhˎΏԏяǑёw@?;DBR^NNNOOOOOOOOOOOOOOOOOOOOOOWQQQQNRCRJRMRLRKRGRRRRR SWS{SSSTTTTTTTTTTTTTTTTTTTTTTVWWWWWWWWUYQYOYNYPYYYYYYZYYYYZYi[[[[[[\N\O\M\K\\\]^%^^}^^^^_-_e________`` `%``(`M`p`h`b`F`C`l`k`j`d`Abbc cbbcbbcbbbbbbcc?eEeeee%f-f f'f/ff(f1f$ffgggggggggggggggggggggggggjkkkkkkll m2m*mAm%m m1mmm;m=m>m6mml9m'm8m)m.m5mm+mppppppppp0rrrortrrrrsssssssu-uOuLuNuKuuuuuuxvvvvvvvvwvv w wvvwwxx x xFyIyHyGyyyyyyzzzz}|}}} }}}}8 6րڀÀĀ̀ۀ΀ހ݀"ۂ ҂ׂ܂Ԃтނӂ߂Py{zMkԉts͎̎ʐΐÐKJ͑PKLMbi˗ۘߘXNN P P#PO&P%PO)PPPc/cUcBcFcOcIc:cPc=c*c+c(cMcLcHeIeeeeBfIfOfCfRfLfEfAffggg!h8hHhFhSh9hBhTh)hhhLhQh=hgPh@hSSfFUjUfUDU^UaUCUJU1UVUOUUU/UdU8U.U\U,UcU3UAUWUW W WWX XXWWWX5XWW YbY6ZAZIZfZjZ@ZwUUUUUU~UUUU W/X*X4X$X0X1X!XX XXX`YwZZZZZZs[q[[[[[ \ \1\L]P]4]G]]E^=^@^C^~^^^^^<_m____`````a#a`a```ha`a` aaabIbcccccccccccccccvccccRdcc^efebeceeeenfpftfvfoffzf~fwfffgghhhhhihhhhhhhhhh iiihhnih>k:k=kkkkk.l/l,l/n8nTn!n2ngnJn n%n#nn[nXn$nVnnn-n&non4nMn:n,nCnn>nnnnNncnDnrnin_nqq&q0q!q6qnqqLrrr6s%s4s)s:t*t3t"t%t5t6t4t/tt&t(t%u&ukujuuuuuuuu{v|vvvvvOww]xlxox zz zzzzzzzzI{V{F{P{R{T{M{K{O{Q{||^}P}h}U}+}n}r}a}f}b}p}s}U RUTKQN9F>LSt Ń W ̃ʃ8܃ԃ߃[߆نԆۆІކWˆ;`U^a4a'a aa7a!b"bd>dd*d-d=d,dddd d6ddddleeeffffffffgimiZiwi`iTiui0iiJihiki^iSiyii]ici[iGkrkkkkknnnnnnnnnnnnnnnnnnnnnnNqYqiqdqIqgq\qlqfqLqeq^qFqhqVq:rRr7sEs?s>sotZtUt_t^tAt?tYt[t\tvuxuvuvuuuuuuvv[wkwfw^wcwywjwlw\wewhwbwwxxxxxx|xxxxzyyy,yzz zzzzzzw{{`{n{g{|||}y}}}}[}nijrVXqpxenskyzfGw=1ufkIl[<5acimF^\_ Y߈Ԉو܈؈݈ʈՈ҈krsfip|cqmbnly{>hbʌnjȌČ̌Ōߍ捲 KJSBTAljiɑ7W8=@>[KdQ4IME9?Z͖˖ɖʖVtv  霂 PPPPPPPPPPPPbQQRR1SSUVVVUVV V VVUVVVVUWWuX~XXXXyXX}XX%Y"Y$YjYiYZZZZZZZu[[[[[[[[[[ \b\]][^c^U^W^T^^^ _F_p__Ga?aKawabaca_aZaXaua*bdXdTddxd_dzdQdgd4dmd{dreeeefffiiiiiiiiiiiiiiiiiiiIkLk3l3oonon)o>o o,ooo"onno1o8o2o#oo+o/oo*ononnnqq}qqqq>rrrDsPsdtctjtptmtuu'v v v vvvvw}wwawxxxxxxyyy.z1zzzzz{{{u{{{{{{{{|||}}}}}}}}}}}}}}}}}}}p^ZPKɄƄĄ˄ӄфʄ?;"%4U7)jӌьҌk`X\cY^b][uxwtx{|̖Җ| AB󜼞;JQQPPPQQ QQQRRRRRRS.V;V9V2V?V4V)VSVNVWVtV6V/V0VXXXXXXXXmY [Z [Z [[[[[[d\e\]]b^_^a^^^^^^^H_q___vagana]aUaa|apaka~aaaaaaaaaa.bidodyddddddddddddddddddduewexeffff#jjijjji!jj jijjijPkNkkkk?o|ooQofoToomo[oxonoozopodooXonoo`o_oqqqqVrrNsWsittt~ttu v)vv$v&v!v"vvvvwwwwwxxxxxxxx?z~F~7~2~C~+~=~1~E~A~4~9~H~5~?~/~DqrposƁÁɁ q~gч҇Ƈȇˇ;6D8= A?sIKHJD>BE?}9M(uJeK~l[pZTʕ˕̕ȕƕ֖ӗF5;?Ϟޞܞݞ۞>KSVVXX8[]_a3bdddedddef&gjjjjjjjj_kxkk p popoppqqqqwsusttuVvXvRvwwwwyyazbz`zzz+|'|*||#|!||T~U~^~Z~a~R~Y~Hwv́ρ υͅЅɅ(9,+PYcfd_UIMБԕ֕ЕՕܖٖۖޖ$MOLNS>?=.ONMʛɛțQ]`,3QVXXX[^aaaaeeffjjjjpp(pppppr rXrrxszstttuu_vavwyykziz>|?|8|=|7|@|k~m~y~i~j~s~؁݅Յ `_V^A\XIZNOFY |rvlztTNѓߓÓȓܓݓ͓֓ؓדܕ*'aܗ^X[EI ֛ۛarjlRVVVVVX@[C[}[[]aaeeef'gj>p0p2pr{stbvev&y*y,y+yzzL|C|M|||}~|~~Lځf  dplfo_k ˑ0ĘRQ+075 y/_ca7Q8QVVVYl\]aaeeefjkjkLprrttivwP|~~-#"!jltw}_.35:82+892geWEC@>ϚTQ-%\fg×kUUMҚI1>;ӝם4ljV]b#e+e*efktzd|c|e|~~~8?1c`dho\Z[WӚԚњTWV坟VX,e^pqvrvwP69bwjBHDƗp_"X_|}wr^kcpl|n|;rpq^֚#̞dpwwɗbe~ő}~|wxT(rj1r|`$a$b$c$d$e$f$g$h$i$t$u$v$w$x$y$z${$|$}$p!q!r!s!t!u!v!w!x!y!6N?NNNQQQR8SiSS Y[]z^^^P_a_4eeuvv00000000;=='A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO!!!1ZNRDQv12!!!00............................P[TuSKjBN\NQSSN NGNNV n\s_NQN.NNNNNQRlSS WY,Y\]ekkl?r1Ng9g8g;g:g?gOgORO_OAOXO-O3O?OaOQQRR!RRR ScSrSSS0T7T*TTTETTT%TT=TOTAT(T$TGTVVVAWEWLWIWKWRWY@YYYYYYYYYYY[[(\*\\\\\\\\\\\] ^^^^^^^__x_v_______________`_:bbbbbbbqb{bzbpbbbwb}brbtb7eeeeeeEgGgYgUgLgHg]gMgZgKgkllxlglkllllqlolillmllllflslel{lltpzpcrrrrrrrrsssss:u9uuuv=y4xɏ0(/-3NO|OO}OOOvOtOOOwOLOOjOOyOOxOOOOOOOOkOnOQQQ5R2R3RFR1RR S SuuuvvvvvwwwwwwBy?yyxz{zzu||5 ‚ÂpomnVҏˏӏ͏֏Տ׏9=<:COOOOOOOOOOOOOOOOOOODRIRRR=S|SSSSSTTTTTT TTTTTTTpTTTTrTTTWWWWWWWWWWWWWWWX YSYYYYZYYYYYYYYYYYYYYYYY[L\\\\\\\\\\\\\\\\\\\\\]!^"^#^ ^$^^^^^^^_._V__7`9`T`r`^`E`S`G`I`[`L`@`B`_`$`D`X`f`n`BbCbb c cbccbbc cbbcccbcbbAeCeee6f!f2f5ff&f"f3f+f:ff4f9f.fgggggggggggggggggggggggggggggggggggggggggg(kkkkkkk l!l(m4m-mm9/%3-DQ%V?A&"BN*ZMZ9ZLZpZiZGZQZVZBZ\Zr[n[[[Y\] ]]] ] ](] ]&]%]]0]]#]].]>^4^^^^^^6_8____`````````````````````2ceccc}ccccccccocccnccuccmcc|cc;ccxcccccpcSeeefaf[fYf\fbfgyhhhhmhnhhhViohhhhuhthhhwhh|hkhrhhhqh~hhhhhhhxh{hhhh}h6k3k7k8kkkkkk*lmmmmtnmmmmmmnmmmmmmmmmmmmmmmmmmmmmmmmmmmp qpqp qpqpqppqqqpp qqq~r{r|rrsssss ssrssssssttsttsss t tstducuuuuuuuuvvv9w/w-w1w2w4w3w=w%w;w5wHxRxIxMxJxLx&xExPxdygyiyjycykyayyyyyyzzz5{G{4{%{0{"{${3{{*{{1{+{-{/{2{8{{#{||||5}=}8}6}:}E},})}A}G}>}?}J};}(}cGCH%-,!'"83:42tzstu}~vYV†ņȆ̆ÆR։ىՉ0',9;\]}}{y؎ގݎ܎׎$  !ԐVXZSUz|mkqoj嘗PPPPPPPPPPhPPPPP_QQSSSSUUUUwUEVUUUUUUUUU}UUUUUUU W)X7XXX'X#X(XWHX%XXX3X?X6X.X9X8X-X,X;XaYZZZzZZZxZZ|ZZZZZ7ZZZZZZZ{Z}ZZZZZZ[[[[[[[ \0\7]C]k]A]K]?]5]Q]N]U]3]:]R]=]1]Y]B]9]I]8]<]2]6]@]E]D^A^X____``````a` aaa`a````aaaa`a aJbccccccccdcccccccadccccccccccccccc2egejede\eheeeeeeeee|flf{ffqfyfjfrfg ihih*ihhhihhhhhiihhihipihihhihhhhh i iihhhhhhhihhi%ih9k;k?k?efQOPԀCJROG=M:<=?u;σ#ƃȃヿ݃؃˃΃փɃ ރƒՃǃуÃă׃ۃ؆ӆچ݆܆׆цHVU׈Ɉ݉ډۉNM9Y@WXDERHQJLO_؍Ӎ͍Ǎ֍܍ύՍٍȍ׍ō-4/,ad_b` %& '${~–ȖÖlpnNNNPPPPPPPPPPPPPPPPPQzRxR{R|RUUUUUUUUUUUUUUUUUUUUUUUWSXhXdXOXMXIXoXUXNX]XYXeX[X=XcXqXXZZZZZZZZZZZZZZZZZZZZ[[[\3\q]c]J]e]r]l]^]h]g]b]]O^N^J^M^K^^^^^^@___`IaJa+aEa6a2a.aFa/aOa)a@a bh#b%b$bcccdd d d$d3dCdddd9d7d"d#d d&d0d(dAd5d/d dd@d%d'd dcd.d!ddoeeeffffffffxf gfi_i8iNibiqi?iEiji9iBiWiYiziHiIi5ili3i=ieihxi4iii@ioiDiviXiAitiLi;iKi7i\iOiQi2iRi/i{iF 2*-<:15B&'8$0눝艫=hiՌό׌   # "$!zrysvzy}~-X}z~{Η͗ٙǙ>?`a_PQ0QPQQPP Q QP QRRRRHVBVLV5VAVJVIVFVXVZV@V3V=V,V>V8V*V:VWXXXXXXXXXXZZZZZ[Z[Z[[[[g\]]]]]]]]]]]]i^]^`^\^}^^^I__aayaaaaaaaaaaaaaafaa-bndpddddddddddddhdddvezeye{eeefffffffjjjiijii jiiijji'jiijii@jjii jii jjj%jji&jjijQkkkkkllklAo&o~oooooooboOooZoovolooUoroRoPoWooo]ooaoko}ogooSooiooocowojo{oqqqqqqqqqqqqqqqqqrrXsRs^s_s`s]s[sasZsYsbsttttt}ttt|tytuu~u%vvvvv#vv(vvvvvvwwwwxxxxxxxxxxxyyyyyyvk9zzzz{{{{{{{{{||||}}}}}}~}}}}}}}vdgOSRPNQ$;)  '+ *(.1& 0 /bVcdwsXT[RaZQ^mjPN_]olzn\eO{ubgiZ   ϊƊӊъԊՊ׊Ŋ؊Êي>Mߌٌڌ݌猠 #%$.&',$ #spogk/+)*2&.ВÒĒْϒߒؒגݒ̒’ʒȒΒ͒ՒɒޒђӒƒ|ӖZЗϗ&)( 'ܙ͙ϙәԙΙəؙ֙˙י̙FCgtqfvuphdlӞQQQQQQ4SSpV`VnVsVfVcVmVrV^VwVWWXXXXXXXX[[[![[[[[([[ [[[]]]]]]]]]]]]]g^h^f^o^^^^^^K__aaaaaaaaaaaaddddddddddd3ee|eeffffffffff#g4jfjIjgj2jhj>j]jmjvj[jQj(jZj;j?jAjjjdjPjOjTjojij`j[qNnuUg`f]Telcedy&0-.'1")#/,݊ߊȊފln3>8@E6<=A0?6.52974vy{356'z8<#F- ˒%4$)95* ͕Ԗ 5/2$')癹3|~{z}% )"՞֞=&Q%Q"Q$Q Q)QRVVVVVV~VVVVXXXX-[%[2[#[,['[&[/[.[{[[[]l^j^__aaaaaaaaaddddddeeeefjjjjjjjjjjjjjjjjjjjjjjj[kk looooooooooooooqqqqqqqssnsostttttttttuuuuuCvHvIvGvvvwwwwwwwwwxxyxxxyxxyyy\z[zVzXzTzZzzzz||{|{{|{ |{| |||{{|{{| ||-~<~B~3~H8~*~I~@~G~)~L~0~;~6~D~:~E~},ā́ʁŁǁ[Z\{w|zxWyvhŇɇLJ̇ćʇއ53<>AR7B " OprqooNMSPLGC@~8dVG|X\vIPQ`mLjyWUROqw{a^cgNYǕɕÕŕ ՗ԗADJIEC%+,*32/-10H3Ag6./180EBC>7@=-Ȟڞ$#"T1Q-Q.QVVVVVVpY<[i\j\]m^n^aaaaaaaaaadeddeedeefffjjjjjjjjjjj^kk lp p pppppopo&poo prqqrqvsttttttttuu\vdvYvPvSvWvZvvvvwwx yyy yyyyyy_z|)|| ||-||&|(|"|%|0|\~P~V~c~X~b~_~Q~`~W~S~uсҁЁ_^ƅŅDžą˅΅ȅŅ҅$iۇ߇ԇ܇Ӈ؇㇤ׇه݇SKOLFPQI*'#305G/<>1%7&6.$;=:Bu\b`WV^eg[Za]iTFGHK(:;>ҕӕѕזږ]ߖؖݖ#"%חٗ֗ؗPQRA<:  ܚ)5JLKǛƛÛӛě\SOJ[KYVLWRT_XZߞ%+*)(LU4Q5QRRSVVVVVVXXXY=[>[?[]p^_aee e e eeeeefjjjjjjjjjjjjj`kk lp'p pp+p!p"p#p)pp$pp*p r rrrrrrrrrttttu`vwwwwyy!yyyyygzhz3|<|9|,|;|||v~u~x~p~w~o~z~r~t~h~KJxׁՁdacمڅׅ؅߅܅хޅ  bZ[Wa\X]YPHJ@SVTKUQBRWCwv mxsjo{ŽRQOPS@?ޓǓϓ“ړГ̓ٓʓԓՓēΓғ}ڕە)+,(&ݗޗߗ\Y]WHGC%$" '#š  7ޛԛכܛٛ՛ڛwqx}ktupis{oyh-@AMVWX7SVVVXE[]]^^__aeeeeefffjjjjjjjj02.3vtsEdcbU]W^ėŗVY RXPJMKUYLNžО876COqpnoVVN[m\-effk_pap]p`p#rttw8yyyj|~mC875K‘khiFCGǗ^՚Ycgfb^` FtuvV.eekkkkbp&rrww9yi|k||~~~~FGHyz|{nmoqsIr_hnm  Gx{zyWfpo|<Ñtxvu`tsqu hpep|j>=?ɎKst̘adfg$Hbk'rLih.)rKyuvkzipjp~IxψXR`|ZT%f%W%`%l%c%Z%i%]%R%d%U%^%j%a%X%g%[%S%e%V%_%k%b%Y%h%\%Q%P%m%n%p%o%%NNNNNNNN N!N#N&N)N.N/N1N3N5N7NO?O@OAOBODOEOGOHOIOJOKOLOROTOVOaObOfOhOjOkOmOnOqOrOuOwOxOyOzO}OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPP P P PPPPPPPPPPP P"P#P$P'P+P/P0P1P2P3P4P5P6P7P8P9P;P=P?P@PAPBPDPEPFPIPJPKPMPPPQPRPSPTPVPWPXPYP[P]P^P_P`PaPbPcPdPfPgPhPiPjPkPmPnPoPpPqPrPsPtPuPxPyPzP|P}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQ Q Q Q QQQQQQQQQQQQQQQQQQ Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;QQBQGQJQLQNQOQPQRQSQWQXQYQ[Q]Q^Q_Q`QaQcQdQfQgQiQjQoQrQzQ~QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRR R R RRRRRRRRR!R"R#R%R&R'R*R,R/R1R2R4R5RRDRERFRGRHRIRKRNRORRRSRURWRXRYRZR[R]R_R`RbRcRdRfRhRkRlRmRnRpRqRsRtRuRvRwRxRyRzR{R|R~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSS S S S SSSSSSSSSSS"S$S%S'S(S)S+S,S-S/S0S1S2S3S4S5S6S7S8SV@VAVBVCVDVEVFVGVHVIVJVKVOVPVQVRVSVUVVVZV[V]V^V_V`VaVcVeVfVgVmVnVoVpVrVsVtVuVwVxVyVzV}V~VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWW W W WWWWWWWWWWWWWWWWW W!W"W$W%W&W'W+W1W2W4W5W6W7W8WX?X@XAXBXCXEXFXGXHXIXJXKXNXOXPXRXSXUXVXWXYXZX[X\X]X_X`XaXbXcXdXfXgXhXiXjXmXnXoXpXqXrXsXtXuXvXwXxXyXzX{X|X}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYY Y Y Y YYYYYYYYYYY Y!Y"Y#Y&Y(Y,Y0Y2Y3Y5Y6Y;Y=Y>Y?Y@YCYEYFYJYLYMYPYRYSYYY[Y\Y]Y^Y_YaYcYdYfYgYhYiYjYkYlYmYnYoYpYqYrYuYwYzY{Y|Y~YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZ Z Z ZZZZZZZZZZZZZZ!Z"Z$Z&Z'Z(Z*Z+Z,Z-Z.Z/Z0Z3Z5Z7Z8Z9Z:Z;Z=Z>Z?ZAZBZCZDZEZGZHZKZLZMZNZOZPZQZRZSZTZVZWZXZYZ[Z\Z]Z^Z_Z`ZaZcZdZeZfZhZiZkZlZmZnZoZpZqZrZsZxZyZ{Z|Z}Z~ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[ [ [ [ [[[[[[[[[[[[[[[[[ [!["[#[$[%[&['[([)[*[+[,[-[.[/[0[1[3[5[6[8[9[:[;[<[=[>[?[A[B[C[D[E[F[G[H[I[J[K[L[M[N[O[R[V[^[`[a[g[h[k[m[n[o[r[t[v[w[x[y[{[|[~[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\ \ \ \\\\\\\\\\ \!\#\&\(\)\*\+\-\.\/\0\2\3\5\6\7\C\D\F\G\L\M\R\S\T\V\W\X\Z\[\\\]\_\b\d\g\h\i\j\k\l\m\p\r\s\t\u\v\w\x\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]] ] ] ] ] ]]]]]]]]]]]]]] ]!]"]#]%](]*]+],]/]0]1]2]3]5]6]7]8]9]:];]<]?]@]A]B]C]D]E]F]H]I]M]N]O]P]Q]R]S]T]U]V]W]Y]Z]\]^]_]`]a]b]c]d]e]f]g]h]j]m]n]p]q]r]s]u]v]w]x]y]z]{]|]}]~]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^ ^ ^ ^ ^^^^^^^ ^!^"^#^$^%^(^)^*^+^,^/^0^2^3^4^5^6^9^:^>^?^@^A^C^F^G^H^I^J^K^M^N^O^P^Q^R^S^V^W^X^Y^Z^\^]^_^`^c^d^e^f^g^h^i^j^k^l^m^n^o^p^q^u^w^y^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ _ _ ___________!_"_#_$_(_+_,_._0_2_3_4_5_6_7_8_;_=_>_?_A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_Q_T_Y_Z_[_\_^___`_c_e_g_h_k_n_o_r_t_u_v_x_z_}_~________________________________________________________________________`` ` ` `````````"`#`$`,`-`.`0`1`2`3`4`6`7`8`9`:`=`>`@`D`E`F`G`H`I`J`L`N`O`Q`S`T`V`W`X`[`\`^`_```a`e`f`n`q`r`t`u`w`~````````````````````````````````````````````````````````````````````````````aaaaa a a aaaaaaaaaaaaaa!a"a%a(a)a*a,a-a.a/a0a1a2a3a4a5a6a7a8a9a:a;aa@aAaBaCaDaEaFaGaIaKaMaOaPaRaSaTaVaWaXaYaZa[a\a^a_a`aaacadaeafaiajakalamanaoaqarasatavaxayaza{a|a}a~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbb bbbbbbb b#b&b'b(b)b+b-b/b0b1b2b5b6b8b9b:b;bc?c@cAcDcGcHcJcQcRcScTcVcWcXcYcZc[c\c]c`cdcecfchcjckclcocpcrcsctcucxcyc|c}c~ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddd d d dddddddddddd"d#d$d%d'd(d)d+d.d/d0d1d2d3d5d6d7d8d9d;dd@dBdCdIdKdLdMdNdOdPdQdSdUdVdWdYdZd[d\d]d_d`dadbdcdddedfdhdjdkdldndodpdqdrdsdtdudvdwd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeee e e e eeeeeeeeeeeeeeeee e!e"e#e$e&e'e(e)e*e,e-e0e1e2e3e7e:eg?gAgDgEgGgJgKgMgRgTgUgWgXgYgZg[g]gbgcgdgfgggkglgngqgtgvgxgygzg{g}gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhh hhhhhhhhhhhh h"h#h$h%h&h'h(h+h,h-h.h/h0h1h4h5h6h:h;h?hGhKhMhOhRhVhWhXhYhZh[h\h]h^h_hjhlhmhnhohphqhrhshuhxhyhzh{h|h}h~hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiii i i iiiiiiiiiiiiiii!i"i#i%i&i'i(i)i*i+i,i.i/i1i2i3i5i6i7i8i:i;ii@iAiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiUiViXiYi[i\i_iaibidieigihiiijilimioipirisitiuivizi{i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjj j j j jjjjjjjjjjjjjjjj j"j#j$j%j&j'j)j+j,j-j.j0j2j3j4j6j7j8j9j:j;jl?lClDlElHlKlLlMlNlOlQlRlSlVlXlYlZlblclelflglklllmlnlolqlslulwlxlzl{l|lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmm m m mmmmmmmmmmmm m!m"m#m$m&m(m)m,m-m/m0m4m6m7m8m:m?m@mBmDmImLmPmUmVmWmXm[m]m_mambmdmemgmhmkmlmmmpmqmrmsmumvmymzm{m}m~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnn n nnnnnnnnnnn"n&n'n(n*n,n.n0n1n3n5n6n7n9n;nn?n@nAnBnEnFnGnHnInJnKnLnOnPnQnRnUnWnYnZn\n]n^n`nanbncndnenfngnhninjnlnmnonpnqnrnsntnunvnwnxnynzn{n|n}nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooo o o o ooooooooooooooo!o"o#o%o&o'o(o,o.o0o2o4o5o7o8o9o:o;op?p@pApBpCpDpEpFpGpHpIpJpKpMpNpPpQpRpSpTpUpVpWpXpYpZp[p\p]p_p`papbpcpdpepfpgphpipjpnpqprpsptpwpypzp{p}ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqq q q qqqqqqqqqqqq q!q"q#q$q%q'q(q)q*q+q,q-q.q2q3q4q5q7q8q9q:q;qq?q@qAqBqCqDqFqGqHqIqKqMqOqPqQqRqSqTqUqVqWqXqYqZq[q]q_q`qaqbqcqeqiqjqkqlqmqoqpqqqtquqvqwqyq{q|q~qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrr r r r r rrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r)r+r-r.r/r2r3r4r:rr@rArBrCrDrErFrIrJrKrNrOrPrQrSrTrUrWrXrZr\r^r`rcrdrerhrjrkrlrmrprqrsrtrvrwrxr{r|r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr  !"#$%00000 ^ &     000 0 0 0 0 00000006"'"("""*")""7"""%" "#"+"."a"L"H"=""`"n"o"d"e""5"4"B&@&2 3 !0 !&&%%%%%%%%%; !!!!0&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~p!q!r!s!t!u!v!w!x!y!fghijk$$$$$$$$$$$$$$$$$$$$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$$`$a$b$c$d$e$f$g$h$i$ m 2!2"2#2$2%2&2'2(2)2no`!a!b!c!d!e!f!g!h!i!j!k!pq  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEA0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~0000000000000000000000rstuvwxyz{|FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~00000000000000000000000000000000000000000000000000000000000000000000000000000000000000}~569:?@=>ABCD;<78134  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO  % 5 ! !!!!!""#"R"f"g""P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%%%%%%%%%%%%%%%%%%%%%%%%% &"000+MkQDHa1111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1!0"0#0$0%0&0'0(0)02333333333330!!12 00000000IJKLMNOPQRTUVWYZ[\]^_`abcdefhijk>0////////////0%%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K% rrrrrrrrrrrrrrrrrsssssss s s s ssssssssss s#s$s&s's(s-s/s0s2s3s5s6s:s;s?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]rssstsusvswsxsyszs{s|s}sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss^_`abcdefghijklmnopqrstuvwxyz{|}~sssssssstttttt t t ttttttttttttttt t!t#t$t't)t+t-t/t1t2t7t8t9t:t;t=t>t?t@tBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtVtXt]t`tatbtctdtetftgthtitjtktltntotqtrtstttutxtytzt {t|t}tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwtttttttttuuuuuuuu u u u uuuuuuuuuuu u!u"u#u$u&u'u*u.u4u6u9uw?wBwDwEwFwHwIwJwKwLwMwNwOwRwSwTwUwVwWwXwYw\wO!Xq[bbfyrogx`QSS̀ PrY`qTY,g({)]~-ulf<;k{|_xք=kkk^^u]e __X[,AbOS^SMhj_h֜a+R*vl_eon[HduQQgNy|p]w^w_w`wdwgwiwjwmwnwowpwqwrwswtwuwvwwwxwzw{w|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwuv^sdblZSRd”{/O^6$nlsUc\STeW N^ek?|`dsPgMb"lw)Ǒi_܃!Sk``p͂1Nlυd|ifISV{OQKmB\mcS,6gx=d[\]bgzdcI N fswwwwwwwwwwwwwwxxxxxx x xxxxxxxxx x!x"x$x(x*x+x.x/x1x2x3x5x6x=x?xAxBxCxDxFxHxIxJxKxMxOxQxSxTxXxYxZx[x\x^x_x`xaxbxcxdxexfxgxhxixoxpxqxrxsxtxuxvxxxyxzx{x}x~xxxxxx:W\8^PS^eEu1U!Pbg2Vno]5Tpfobdc{_oば\hf_lHldyWYjbHTXN z`oڋbyTucS`lߏ_p;O:\depEQQk][bltu zay{N~wNRQqjSϖndZixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyy y y y y@xPwdYc]z=i O9U2Nuzb^^R9Tpvc$W%f?iUm~"3b~u(x̖Hat͋dk:RP!kjqVSNNQ||O{zgd]Pv|mQgX[[xddc+c-dT{)vSb'YFTykP4b&^kN7_. yyyyyyyyyyyyyyyyy y!y"y#y%y&y'y(y)y*y+y,y-y.y/y0y1y2y3y5y6y7y8y9y=y?yByCyDyEyGyJyKyLyMyNyOyPyQyRyTyUyXyYyaycydyfyiyjykylynypyqyrysytyuyvyyy{y|y}y~yyyyyyyyyyyyyyy `=b9NUScƀe.lFO`mދ9_ˆS_!cZQachRccHP\wy[0R;z`Sv__vlop{vI{wQ$XNOnLe{rmZb^0W,{^_cnxpxQ[W5uCO8u^``YmkxSՖQRc T̍9rxv Syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzz z z zzzzzzzzzzzzNvSv-["NNQcaR hOk`Qm\QbeaFucwkrr5XywL\g@^!nYzw;keXQQ[X(TrfeVvAcTY:YW5g5AR`X\EO%Zv`S|bOi` ?Q3\u1mNzz!z"z$z%z&z'z(z)z*z+z,z-z.z/z0z1z2z4z5z6z8z:z>z@zAzBzCzDzEzGzHzIzJzKzLzMzNzOzPzRzSzTzUzVzXzYzZz[z\z]z^z_z`zazbzczdzezfzgzhzizjzkzlzmznzozqzrzszuz{z|z}z~zzzzzzzzzzzzzzzzzzz0SZO{OONls^ju jwA~QpSԏ)rmlJWe?b2YN~>e^aUޘ*S T^l9Z)TlR~_Wq~l|KYN_$a|0N\g\ Θup"QIYQ[O&T+Yweu[vbbE^l&{OO gzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{ { { {{{{{{{{{{{{!{"{#{'{){-{nmmy_+ubOܑe/Q^PtoRK YPN6ry[DYTvVV9eivnr^uFggzvaybecQR8~\/n`g{vؚ|dP?zJTTLkdb=urRi[|B|i[wm&lN[ca+Tm[QUUdMcea` qWlIl/Ymg*XVjkݐ}YSimuTUwσ8hyTUOTvlmkd:?Vўu_rh`TN*jaR`pTpy?*m[_~UO4ssn;uRS݋i_`mOW"ksSh؏bc`$Uubqm[{^RLaĞxW'|vQ`LqCfL^M`pp%c_b`ԆVk`gaIS`ff?yOpGl~dfZZBQmmA;mOkpb` 'xyQ>WW:gxu=zy{|||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}} } } } }}}}}}}}}}}}}}}}}}}!}#}$}%}&}(})}*},}-}.}0}1}2}3}4}5}6}eo!Y~  TghM|ƖS%`urlsSZ~$cQ ]߄bQc[OmyBR`Nm[[e_EY~~ Vg9YsO[RZ>2uGP}?}@}A}B}C}D}E}F}G}H}I}J}K}L}M}N}O}P}Q}R}S}T}U}V}W}X}Y}Z}[}\}]}^}_}`}a}b}c}d}e}f}g}h}i}j}k}l}m}o}p}q}r}s}t}u}v}x}y}z}{}|}}}~}}}}}}}}}}}}}}}}}}}}}}}}}}}eP0QRonnm^PY\Fm_luhhVY SqMIiy&qNʐGmZVdwOr҉z4~RYeuSzccvyW6*bRThpgwckwzm~YbɅLuPNuJ\]K{eёN%m_'}&N(ۏsKfyяpxm}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}=\RFbQ[wvfN`||~NfofYXle\_uVzzQpzcvz~sENxp]NRSQeeT1\ubruE\yʃ@\Tw>NlZbnc]wQݍ/OS`pgRPcCZ&P7wwS~d+ebcP5rɉQ~GW̃QT\}}}}}~~~~~~~~~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~~~ ~!~"~#~$~%~&~'~(~)~*~+~,~-~.~/~0~1~2~3~4~5~6~7~8~9~:~<~=~>~?~@~B~C~D~E~F~H~I~J~K~L~M~N~O~P~Q~R~S~T~U~V~W~X~Y~Z~[~\~]~OzZmᐏUTaST_cwiQha R*XRNW x w^wa|[bbNpbp`wWۂghxyXTS4nKQ;R[CUWs`QW-TzzP`T[cbScb[gTzw^8YWcWWw{O_[>k!SP{rFhw6weQNv\zuNYAP^~_~`~a~b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~q~r~s~t~u~v~w~x~y~z~{~|~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 79;<=>?@ACFGHIJKLMNORS'andWfFcVbib^WbU!JfUegV݄jZhb{pQo0cȉapntir^ΐgjm^cRbrlOYjpmRPNm~x/}!QWd{|lh^iQShrΞ{ryotNg̑xS)RPOOVY[\]^`cdefgklmopsuvwxz{|}uz|lRtTOTޏp^`m^[e8K`p~|Qh|o$Nϑ~fNdJPuq[foNdc^eRˆpRs3tgx4NޜmQATbsÔ6OQupu\SNn tikxYuR$vAmgmQKT<{z !#$+,-./0249:<>@ADEGHINOPQSUVWY[\]^_`abcdefghklmnoprstuvwxyz{|}WbG|iZd{oKbS^pcdSOx2B^oyU_F.btTݔOee\a\Q/l_sn~\cj[nuSqNceubn&ONl~W;#{=m~YsxlVTWpNVSȏ wnfba+o~ŀǀȀɀʀˀπЀрҀӀԀՀ؀߀  !"#$%&'()*+-.034579:;<=?)+vl_+skwƔoSQ=^8HNsghv dql wZAk'f[YZN jv0sh_[/wa|%_s|yʼnl[B^h w~QMQR)ZbׂcwЅy:n^YmplbvOe`f# T}T,xd@ABCDEGIMNORVWX[\]^_abcdfhjklorsuvwxāŁǁȁɁˁ́΁ρЁсҁӁyd!jxidTb+gX؞l o[L _rgbarNYkXfU^RUa(gvfwgrFzbTPTZ~lCNvYHYWS7uV c|`mbTQZY*Pl<\b`O?S{n+bt^xd{c_Z?\OcB}[nUJMm`grQ[ԁՁցׁ؁فځہ܁݁ށ߁  $%&').2:<=?@ABCEFHJLMNPQRSTUVWY[\]^`abcdefgibl[rmb~SmQ_tYR`sYfPu*ca|T'k%kՅUTvPljU,r^`6tbcLr_Cn>meXovxvTu$RSSN^e*րbT(RpэlxTڀWTjMiOlUv0xbpom_h|x{ gOgcxoWx9ybbR5tkjklmquvwx{|‚ÂłƂɂЂւقڂ݂  !"#$%&)*.027;=dU>uv9SuPA\l{OPGrؘothydwb+TXRNjW s^QtċO\aWlFZ4xD돕|VRQbNa郲W4gWnffm1fpg:khbYNQoglvQhGYgkfu]PeHyAyw\^NO/TQY xhVlď_}llc>?ABDEHJKLMNSUVWXY]bpqrstuvyz~ƒÃăƃȃɃ˃̓΃Ѓу҃ӃՃ׃كڃۃރp`=murfbŔCS~{N&~NԞMR\ocEm4XL] kIkg[TTX7:_bGj9re`ehwTNO]d\OzRN/`zONy4tRdy[lR{"l>PSndtf0l`w^?@ABCDEGHIJKLMNOPRSTUVX]^_`bdefghjnoprtwy{|S6ZSWCglhQubr8RR:p8vtSJinxو6qqQgtXeVvpb~`pXNN_NRY~TbNeb8Ʉcqn[~Qcg9Qz[YsN]leQ%o.J^tm1_dm(nÜ^X[ NS}~„ÄńƄDŽȄ˄̄΄τ҄ԄՄׄ؄لڄۄ܄ބOceQhU'NdkbZ_trmhPx@g9Rl~PeU^q[{RfsIgq\ R}qkUdaUUlGb.X$OFUOLf N\hNc zpR\T~bYJdž fDd\Qam>y7x3u{T8Om Z~^yl[vZuNanXu%urrGS~  "#$%&'()*-./0123456>?@ABDEFGKLMNOPQRSTUWXZ[\]_`abcefgijklmnopqsuvwx|}wviR܀#W^1Yren׋8\qASwbeNߘ[ƋSwON\vY_:yXNgNbR/fUlVNOʑpl^C`[ƉՋ6eKb[[c.US&v}Q,ghkbSmufNNp[qffr͞ ^\/gh_g bzX^pe1o…ÅąŅƅDžȅʅ˅̅ͅ΅х҅ԅօׅ؅مڅۅ݅ޅ߅U`7R Tdp)u^hbS=r4lawz.TwzUxgped6V`ySN{k[UV:O?@ABCDEFGHIJKLRSUVWXY[\]_`acdefghijmscK΀ԂbSl^*Y`plMWJd*+vn[Wjumo-fWkxcSpdlXX*dXhU|Pmpcmn~ChmvWYyr~uhTR"cD|USOfV`mCRI\)YmkX0uul`Fcag:w4^S,Tpmoprstuvwx†ÆņȆ̆͆҆ӆՆֆ׆چ܆݆ @l^\PN^:cGPhnw Tܔd_zvhEcR{~uwPb4YQyzV_m`\WTTQMnVc*To\bXb15@n|-iYb>UcTن\~*gsTOuÀUOMO-n \pakSv)ne~;T3z }UtcmzbegScl]\TLNalK\eh>T4TkfkNBcHS OO^W bdfirRR`fqgRxwpf;V8T!zr‡ÇćŇLJȇɇ͇̇·χЇԇՇևׇ؇هڇ܇݇އ߇  #zo` ^`Y`qpnPlrj-^`NZUm|b~w~#Sf\Or NSYTc(HQN~T$T7m&_Z>fis.sSz[wP~vSv{DXnaNey`TNy]ajPTa']xJRTVm[mSf$%&'()*+,-./01345678:;=>?ABCFGHIJKNOPQRSUVXZ[\]^_`fgjmoqstuvxyz{|\][!hxU{HeTiNGkNOSc:deQhxSall"Q\ #ke__OEfe)s`tQRWb_Lx^Og'`YDQQSylĖqOO=gUy~X bZV{_ĄWSe^\ud`n}Z~~iU[`esÈĈLjȈʈˈ͈̈ψЈшӈֈ׈ڈۈ܈݈ވ  "#$&'(),-./12357 cv)w~tf[tz@Rq_e[o]k[l ŏSb&-@T+NYr]YmŖTN qT pmv%Nx\^plDYcopYvt89:;<=>?@BCEFGHIJKLMNOPQRSTUVWXYZ[\]`abcdeghijklmnopqrstuvwxyz|}~Gd'\ez#YTo0iNV67rΑQ_NucNSfKYmNX;ScO Oc7YWyNul[Y]_iP]YNwNzbfy\Ny_Ɓ8uNԈak_INvn㋮ ы_~5kVk4YTm[n9\_É͉ӉԉՉ׉؉ىۉ݉߉ pS1jtZp^($%gGΏbvq_lx fTbcOÁu^͖ Tlm8l`R(u}^O`_$\1url8nI gSSQOɑS|^mNvi^aYOO>| annN1ZN\y[틽sWTGU\_a2kr !"#$%&'()*+,-./0123456789:;<=?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~tm[Ոkm3 nQCQWScVXTW?sn܏т?a(`bf~Í\|g`NShAQЏt]UfU[S8xBg=hT~p[}Q(WTef^Clm|QgeojV vvpq#bRl<`Xaf`NbU#n-ggŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ(whiTMNpȋXde[z:P[wky|lve-]U\8h`Sbz[n~jzp_3o _cmVgN^&N4vb-f~blugqiFQSnbTُYmsewu'xOguʋ/cG5#cAw_rN`tebck?e  !"#$%'()*+,-./0123456789:;<=>?@ABCDE'^uѐg/e1TwAlKN~Lv ikgb?@BCDEHJKMNOPQRSTVWXY[\]^_`cdefghilmnopqrtuvw{|}~N N@QN^ESNNN2l[iV(Ny?NSGN-Y;rnSlV䀗k~w6NN\NiNN[[lUVNSSSSSe]SS&S.S>S\fScSRRR-R3R?R@RLR^RaR\R}RRRRRQTNNNNNNNNON"OdON%O'O O+O^OgO8eZO]OŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ _OWO2O=OvOtOOOOO~O{OO|OOOOOOOOOOOOO)PLPO,PP.P-POP P%P(P~PCPUPHPNPlP{PPPPPPQPPPPQ QN=lXOeOOFlt|nQ]ɞQYR SSQYUQNVQNnN҈y4[QQQQ QRW_ehijlnoqrxyz{|}~ōǍȍɍʍ͍ЍҍӍԍQQQQ‹Ëˋϋ΋ҋӋԋ֋؋ً܋ߋ  !%'*+./2356iSzS"!1*=?CEFLMNOPSTUVWXZ[\]^_`abcdeghjknqϐŐАĐǐӐܐאې"#1/9CF RBYRRRRTRRRSqw^QQ/S_Zu]LWWW~XXXX)W,W*W3W9W.W/W\W;WBWiWWkWW|W{WhWmWvWsWWWWWWWWWWWWWWWWWWWWWsuwxyz{}~ŽÎĎŎƎǎȎɎʎˎ͎̎ώЎюҎӎԎՎ֎׎؎َڎێ܎ݎގߎ X XWWXXXDX XeXlXXXXXay}Ȃʂ゘˂̂Ă΂ ܂҂؂ ӂՂQ[\<41^/OGC_@`-:3fe  !"#$%&'()*+,-./0123456789:;<=>?@ABCDhiljmnx|}{؃X ݃փ8ԃ߃Ń&\QZYszx?@ABD7UVUuUvUwU3U0U\UUUUUUUUU~UUU{UUUUUUUUUVUUUUUUUUUUUUUUUUVV VV$V#VUV'V-VXV9VWV,VMVbVYV\VLVTVVdVqVkV{V|VVVVVVVVVVVVW W WW^^^^1^;^<^EGHQSTUVXY[\_`fghkmsz{|‘ÑđőƑȑˑБґӑԑՑ֑בّؑڑۑݑޑߑ7^D^T^[^^^a^\z\\\\\\\\\\\\\\\\\\\\\\\\]]']&].]$]]]]X]>]4]=]l][]o]]]k]K]J]i]t]]]]s]]s_w____________ba_rrrrrrrrrrrrrrrrsrsr  !"#$%&'()*+,-./0123456789:;<=>?@ABCDErss!s ssss"s9s%s,s8s1sPsMsWs`slsos~s%Y$YYcghijkltw}^^^^^^^^^^S^^^^^____`_`___``___`5`&``` `)`+` `?`!`x`y`{`z`B`FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsuvwxyz{|}~j`}````````````````` a&aa#a`aa+aJauaaaaaaa_ ,N?rb5lTl\lJllllllhliltlvllllllllllllllllllll’ÒĒŒƒǒɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ 9m'm mCmHmmmmm+mMm.m5mmOmRmTm3mmommm^mmm\m`m|mcmnmmmnmmnmmmnm nm+nnnNnknn_nnSnTn2n%nDnnnnn-onnnnnnnnnnnnboFoGo$oon/o6oKoto*o o)ooooxoro|ozoo  !"#$%&'()*+,-./0123456789:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghikoooooooooop#pp9p5pOp^p[[[[[[/u4d[[0[GӏՏ & !56-/DQRPhXb[ft}P_W_V_X_;\TP\Y\q[c\f\*_)_-_t<_;n\YYYYYYlmnopqrstuvwxyz{|}~“ÓēœƓǓȓɓ˓͓̓YYYYYYYYYYZZYZYYY Z Z2Z4ZZ#ZZ@ZgZJZUZusssssssssssssss| tssssst*t[t&t%t(t0t.t,t/0123456789:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijlmnopqrstuvwxyz{|}~ǔϔӔԔڔ ttAt\tWtUtYtwtmt~ttttttttttttttLgSg^gHgigggjgsgggugggggwg|gg hg hgg hggggghggghgg2h3h`hahNhbhDhdhhhUhfhAhgh@h>hJhIh)hhhthwhhkhhnihi ih'3=CHKUZ`ntuwxyz{|}~•ÕĕŕƕǕȕɕʕ˕$ih iiWihiqi9i`iBi]iikiiixi4iiiiiificiyiiiiiiiiiiiiiii/jijjejiDj>jjPj[j5jjyj=j(jXj|jjjjjj7sRskkkkkkkkkkkkmqrsuvxwyz|~͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕ #$%&'()+,-/0789:>ACJNOQRSVWXYZ\]^`cefkmnopqsxyz{|}~Ύ bbbb"b!b%b$b,btttuuu4eeee ffrgfffpff4f1f6f5f_fTfAfOfVfafWfwffffffffff236;=@EFHIGMUYljʉˉ̉ΉωЉщnrr]rfror~rrrrrrrc2cc–ÖȖʖ˖ЖіӖԖ֖זٖؖږۖܖݖޖߖ  ?ddkkkkklll lllll!l)l$l*l2l5eUekeMrRrVr0rbR gۀ€Āـ̀׀g݀ gZ6,2HLStYZq`i|}mgMXZń&gʁ!"#$%&'()+,./134567:;<=?@ABCDEFGHIJKLMNOPQTUWXZ\]_cdfghjklmnopqruwxyz{}~$k7k9kCkFkYkјҘӘ՘٘ژk@_keQeeeeeeeeepppppppppppqqq/q1qsq\qhqEqrqJqxqzqqqqqqqqqqr(rlpqfqq>b=bCbHbIb;y@yFyIy[y\ySyZybyWy`yoygyzyyyyyy__—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗ <`]`Z`g`A`Y`c``a a]aaaaabllmwwx xxxxe-xxx9x:x;xx?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnbwewww}wwwwwwwww:u@uNuKuHu[uruyuuXa_Hhtqy~vv2ĔȔɔʔ˔͔̔ΔДєҔՔ֔הٔؔ۔ޔߔopqrst˜ØĘŘƘǘȘɘʘ˘̘͘ϘИԘ֘טۘܘݘ "*+),124678<>?B5DEFILNORSTVWXY[^_]abdefghijkloqrs:wwɖyyyyzG]zzzz  !"#$%&'()*+,-/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSVWXYZ[\]^_`abdfsxy{~9z7zQzϞpzvvvvvtt,u "()*+,216879:>ABDFGHIKLNQUWZ[\^cfghijklqmsuuuuuuuuuuuuuuuuuuuuuuuvuuuvvv vv v%vvvv™ÙęřƙǙșəʙ˙̙͙ΙϙЙљҙәԙՙ֙יؙٙڙۙܙݙޙߙvv3vMv^vTv\vVvkvovzxzyzzzzzzzzzzzdir}ƈɈΈ! 4+6Af{u倲vvw "%&')(1 5CFMRiqx  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYMTlnz|{ĆΆɆφІކ߆؆ц #;%.>H41)7?"}~{`pLnSc|dYe҇Z[\]^_`abcdefghijkrÚĚƚǚȚɚʚ͚ΚϚКҚԚ՚֚ךٚښۚܚݚޚƇ凬ˇӇчʇۇ !9<6BDEzz{{{{ {+{{G{8{*{{.{1{ {%{${3{>{{X{Z{E{u{L{]{`{n{{{b{r{q{{{{{{{{{{{{{{{{{{{{{{ |{{|| |  !"$%&'()*+,-.013456789:=>?@FJKLNPRSUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|*|&|8|A|@|D!"#-/(+8;34>DIKOZ_h~؈߈^||Ie||||||||||||||||nf|w}}}G~~sgmGIJPNOd|}~›ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛۛbapio}~rtyU~Yič֍׍ڍލ΍ύۍƍ ,.#/:@95=1IABQRJpv|otxe։މډ܉ܛݛޛߛ  !"#$%&'()*+,-./0123456789:;>&S*-0> ΖҖwȒ>jʓ>k#zĜŜƜǜʜ˜<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~œȜɜќҜڜ̜ۜ͜ΜϜМӜԜ՜ל؜ٜܜݜߜ|XŚš˚̚њECGIHMQ .UTߚ#;~֓۞ܞݞߞ",/97=>D  !"#$%&'()*+,-./0123456789:;<=>?@AB456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⣝ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝߝ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM $'.04;<@MPRSTVY]_`abenortuvwxyz{|}NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~㫞žÞŞƞǞȞʞ˞̞ОҞӞ՞֞מٞڞޞ !#$%&'()*+-.01 234568:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg  !#$'()..s4G4..566..n99&99s:9+,N;n<<.12.V@_A.7C...;CC.CDaFLFC#G)G|GG.GIzI}IIIIIIIIITULLLLwLLMMMMMMMMdhijklmnopqrstuvwxyz{|}~000 000@>?00000N0000  \0 \& %      00;=[]0 0 0 0 0 00000 "`"f"g""4"B&@&2 3 ! &&%%%%%%%%%%%; 0!!!!0" """""*")"'"("!!"" ""#""a"R"j"k""=""5"+","+!0 o&m&j& ! %!"#$%&'()*+,-./0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZA0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO%% %%%%%,%$%4%<%%%%%%%#%3%+%;%K% %/%(%7%?%%0%%%8%B%NUZ?Ta(cY"uPz`c%nefh'Weqb[Y{b}}b|[^ cfHhǕOgN OMOOIPV7YYZ \`apafipOupuy}}ÀcUz;SNNWxNXn82z(/AQpSTTVY_m-bp TS[poS\zNx&nVUk;YSfmtBVNKO SU0[q_ ffh8ll)m[tvNz4[`풲muvř`iSQW0XDY[^(`cclopqYqq?s~vт`[iXeZl%uQ.YeY__be*j'kksV,Ğ\l{QK\aƁvharYNOxSi`)nOz NSNUO=OOsORS VYZ[[yfggLklkpsyykSkWl"ooEotuv wz{!|}6f̊Qeӗ(8N+T\]sLvT/Z__`hjZtxw^NɛN|OOPPIQlQRRRSSTTUQWW}YT[][[]]]x^^^^_R`Labbc;efCffmg!hhi_l*mim/nn2uvlx?z|}}^}}T*RLaʐuq?xMؚ;[RRSTXboj_KQ;RJTV@zw`ҞDs opu_`rdkNVdWXZZh`aff9hhmu:}nBNPOSUo]]]glstxP߈PW^+cPPQgT^XY[i_Mbc=hskn}pǑrx&xmye0}܃ dR(WPgjQBW*:XiT]Wx\OJRT>d(fggzV{"}/\h9{SQ7R[bdd-gkіv֛LcvRf NPSq\`dce_hqs#u{~یxefkNN:OO:RSSUVXYYYP[M\^+^_`c/e\[eeegbk{klEsIyy|}+}󁖉^ifnj܌̖okNrtux:y 3ꁔPl_X+z[NSW1YZ[`nouꌟ[{rPga\J~Q\hcfenq>y}ʎndžPR:\Sg|p5rLȑ+[1_`;NS[Kb1gkrs.zkRQSjT[c9j}VShT[1\]Oab2myyB}M~Frt/1KlƖNOOEQAS_bgAl ncs&~͑SY[m]y.~|~XqQSO\%fwzQ_eoikmndov}]uQR@bffn^}rfRSsY^_U`dPQR SGSSTFU1UVhYY~ d_xRbcBdb-z{v} INHQCS`S[\\]&bGbdh4hlEmmg\oNq}qez{}J~z9nΌxwMRU8o6qhQyU~|LVQX\cffZiruuyVyy| }D}4;a PuRSS PUXOY=r[d\S``\cc?ccdef]iioqNuvz|}}aIXlňpmPXaӁ5 OtPGRsSo`Ic_g,nO^\ʌe}RSvQcX[k[ \ dQg\NY*YplQ>UXY`Sbg5Ui@ę(SOX[\/^_ `Ka4bfln΀Ԃ.۞ۛNS'Y,{Ln'pSSDU[Xbbblo"t8o8QSSFOTjY1]zh7rH=j9NXSVfWbceNkm[npwz{}=ƀˆ[VX>_efjk7uNJ$Pw0W_e`zf`luznE{\uzQ{Ąyz6Z@w-NN[_bm6t4xFZuO^bcWeogvLr̀)M PWZhsidqrXjyw)/OeRZSbgl}v{|6f or~Q{rx{H{ja^Qu`ukQbnzvOpbO{zVYX䆼4O$RJSSS^,deg>lNlHrrsTuA~,酩{Ƒiq=cifjuvxC*SQS&TY^|_`Ibybbekluvxy}w^ۘ j8|P>\_gk5t w;gz9Suf_񃘀<__buF{ee gllp2x+~ހ *JҒlONNPVRJWY=^__?bfgghQ!}~2 T,SP\SXd4ggrfwFzRlkXL^TY,gQvidxTWY'fgkTiU^ggR]hNOSb+glďOm~Nban+osT*gE]{\[JnфzY|l wR"Y!q_rw'a iZZQ T}TfvY]rnMQh}}bxd!jY_[ksv}2Q(gٞvbgR$\;b~|OU` }S_NQY:r6Α%_wSy_}3VgS aalRv8/UQO*QRS[}^`ac gggnm6s7s1uPyՈJĖYNYON?P|^Y[^ccdfJii mnq(uzIɄ! e} ~ab2kltmmeg<ma}=jqNuSP]koͅ-)RTe\Nghttuψ̑x_szNceuRAmn tYukx|zOnae\NNP!NQ[ehmsBvwz|oҊ|ϑuR}+PSgmq3t*W`tAXm/}^N6OOQR]`s|}o#,BTojpŒ2RAZ^_g|iijmobrr{~KΐmQy2֊-PTqjkČ`gNNkhi~nxU _NN*N1N6NYzUYPYNYZYXYbY`YgYlYiYxYYY^OOYYYYYYYY%ZZZZ ZZ@ZlZIZ5Z6ZbZjZZZZZZZZZZZZZZ [ [[2[Z*[6[>[C[E[@[Q[U[Z[[[e[i[p[s[u[x[ez[[[[[[[[[[[[[[[[[[[\\\ \\ \"\(\8\9\A\F\N\S\P\O\q[l\n\bNv\y\\\\Y\\\\\\\\\\\\\]\ ]]]\]]]]]"]]]]L]R]N]K]l]s]v]]]]]]]]]]]]]]]]]]]]] ^^^^^6^7^D^C^@^N^W^T^_^b^d^G^u^v^z^^^^^^^^^^^^^^^^^^^^^^^^_ _]_\_ ___)_-_8_A_H_L_N_/_Q_V_W_Y_a_m_s_w_____________________`_!`````)``1```+`&``:`Z`A`j`w`_`J`F`M`c`C`d`B`l`k`Y``````````````````_````Maaa``a``a!a`` aaGa>a(a'aJa?acMcdOcccccvcccccckciccccccccccd4ddd&d6ded(ddgdodvdNd*eddddddddddddddd ddbdd,eddddedeee$e#e+e4e5e7e6e8eKuHeVeUeMeXe^e]erexeeeeeeeeeeeeeeeeeerg ffesg5f6f4ffOfDfIfAf^f]fdfgfhf_fbfpffffffffffffffffff?ffffffggg&g'g8.g?g6gAg8g7gFg^g`gYgcgdggpgg|gjggggggggggggggggggggggjhFh)h@hMh2hNhh+hYhchwhhhhhhhhhjhthhhhih~hihih"i&ih ihhhh6iiihh%ihhh(i*ii#i!ihyiwi\ixikiTi~ini9iti=iYi0iai^i]iijiiiiiiiii[iiiii.jiiiiiiijji kiiijijiji jjj#jjDj jrj6jxjGjbjYjfjHj8j"jjjjjjjjjjjjjjjjjjjjjkjkk1k8k7kv9kGkCkIkPkYkTk[k_kakxkykkkkkkkkkkkkkkkkkkkkkkkkkkllll$l#l^lUlbljllllll~lhlsllllllllllllllllllmM6m+m=m8mm5m3mm mcmmdmZmymYmmmommn nmmmmmmmmmmmmmmmmm-nnn.nnrn_n>n#nkn+nvnMnnCn:nNn$nnn8nnnnnnnnnnnnnnnnnAooLpnnn?on1on2on>oonozoxooooo[oomoo|oXoooofoooooooooooooooo p popppopptoppp0p>p2pQpcppppppppppppp qpqqeqUqqfqbqLqVqlqqqqqqqqqqqqqqqqqqqqq rrr(r-r,r0r2r;rsNsOs؞Wsjshspsxsus{szsssssssssttot%ts2t:tUt?t_tYtAt\titptctjtvt~tttttttsttttttttttuuu uu uuuu&u,uz7zCzWzIzazbzizpzyz}zzzzzzzzzzzzzzzzzzzzzzzzzzz{{ {{3{{{{5{({6{P{z{{M{ {L{E{u{e{t{g{p{q{l{n{{{{{{{{{{]{{{{{{{{{{||{{`||||{{| |{#|'|*||7|+|=|L|C|T|O|@|P|X|_|d|V|e|l|u||||||||||||||||||||||;|||||}}}} }E}K}.}2}?}5}F}s}V}N}r}h}n}O}c}}}[}}}}}}}}}}}}=~}}}}}}}}}}}}}~ ~#~!~~1~~ ~ ~"~F~f~;~5~9~C~7~2~:~g~]~V~^~Y~Z~y~j~i~|~{~~}}~~~~~~~~~~~~~8:ELMNPQUTX_`higxqܘ !(?;JFRXZ_bhsrpvy}Qۀـ݀Āڀր )#/KF>SQqneft_Ɂ́сف؁ȁځ߁ )+83@YX]Z_dbhjk.qwx~߂҂ނ܂ ق5421@9PE/+#|su΃؃  " 8m*(ALONIV[Zk_lot}:A?HLNPUblxz|bȌڌ  N͌gmqsύڍ֍̍ۍˍߍ B504JGILPHYd`*cUvr|ƎŎȎˎێ  &3;9EB>LIFNW\bcdڏ!  '659OPQRI>VX^hovr}Hbې20JVXceisrɑˑБ֑ߑۑ,^WEIdH?KPZϒD."#:5;\`|nV֓דؓÓݓГȓ6+5!:ARD[`b^j)puw}Z|~ʕoÕ͕̕Օԕ֕ܕ!(./BLOKw\^]_frlΖ˖ɖ͖Mܖ Ֆ$*09=>DFHBI\`dfhRkqy|z×Ɨȗ˗ܗOz 8$!7=FOKkopqtsĘØƘ !$ ,.=>BIEPKQRLUߙۙݙؙљ+7EB@C>UM[W_bedikjϚњӚԚޚߚ"#%'()*./2DCOMNQXtʛƛϛћқԛ:   .%$!0G2F>Z`gvx *&#DA?>FH]^dQPYrozĝƝϝٝӝuy}a̞ΞϞОԞܞޞݞv!,>JRTc_`afgljwrv/XiYdtQq      !"#$%&'()*+./01456789:;<=>ABCDEFGHJKLMPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ #z     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOQRSTUVWXYZ[\^_ !"#$%&'()*+,-./0123456789:@ABCDEFGHIJKLMNOPQRy~      !"#$%&'()*+,-./0123456789:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[  @AVW`ajk             ! " & 0 9 :  !"!""")"H"a"d"e"# #!#%% %%%%%$%,%4%<%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%%%%%%%%%%utf8charwchartucs2beucs2leutf16beutf16leucs4beutf32beucs4leutf32leasciiusasciiiso646iso646usutf16ucs4utf32ucs2eucjpshiftjissjiscp932iso2022jpgb18030gbkgb2312big5bigfivecp950big5hkscseuckrksc5601ksx1001cp949iso88591latin1@iso88592(WN)T5UVn"\N_XEVo 6W\I#@d1 %c25C4e5MMYts7J#@t9 s:C<e=NY`iso88593(( )4G.\$,2-DUG/@\# (1$243D#4xd5e6܄7#,9褣:;#<|d=>%`iso88594($RT)T%H["+Sd_X5QH\5P#0cJ %c25 J4LTc5؜6t7#8cJ s:NJDTLc=>x`iso88595(D'tUguevܵҝw߁xWy硗zמ{|W}ᗟ~ןX" 2ؠBRXbrء&b"Hb&b*"iso88596(bihlp)tix|'Z"2ڨB)iso88597(LL($l)*@İ",--9.dQVeafq֙gh@iZjZk[lF[m݆[n[o\p G\q\r-\s=iso88598( (b)r*+",b-r. BIdFdJ.dN> eRNIeV^eZn%40iso885994E#4Tc5d6ܰ47#8c9褣:;#D?iso885910($H()5ATVrUP4QH)-6EdWsE P#0cJ %c25344TcMW؜6t7#8cJ s:;DLiso885911tis620(x):*z***:+z+++ ;,{,*,:,J;-Z{-j-z-;.{.骻..;/iso885913(\,(`l)ؤ*1",b-.9AcD %E RMU4CUc5gW%7AsD VE!ŔMV?iso885915latin9)$R)V*+",rb-s.G!/#0c1$243D#4Tc5d6t7#8c9褣:;#?iso885916(TPN$c\)V*n\Nr]l-s5.G!V\#@d1$243$4eSee6X7#@d9褣:;$<eTf>\?cp1250windows1250 $P1st\Oe%[LLo0lPi5[WNd)2* \Nb-D.7 S\I#@d1 %c25C4e5MMYts7J#@t9 s:C<e=NY`cp1251windows1251 MWqs$wqw NLo0|("t"vh)ѥB*ub.b-,.&V7b߁xWy硗zמ{|W}ᗟ~ןX" 2ؠBRXbrءcp1252windows1252 $P1]s}u\G LLo0ĂlH0W["(b)*+",b-./#0c1$243D#4Tc5d6t7#8c9褣:;#?cp1253windows1253 $P1]st LLo0 ,(b)*Jİ",b-9.dQVeafq֙gh@iZjZk[lF[m݆[n[o\p G\q\r-\s=cp1254windows1254 $P1]s}u\GLLo0ĂlH@["(b)*+",b-./#0c1$243E#4Tc5d6ܰ47#8c9褣:;#D?cp1255windows1255 $P1]s}u LLo0Ă "("b)r*+",b-r.//3X7@:c>d]z%aBIdFdJ.dN> eRNIeV^eZn%40cp1256windows1256 $OZ1]s}u,GQziNLo0ĘlH-̰)(b)*+",b-2. ihlp)tix5{٧ *z9褣:&;.h8=>4pcp1257windows1257 $P1st .LLo0  (`)ؤ*1",b-.9AcD %E RMU4CUc5gW%7AsD VE!ŔMV5?koi8r 3\7㜳;\w`-vc2. ̰r=> A =4E}4I+4M;ttPG-TWmXgu*`8` .`z JX`jhbha}^}7x^z^{|W^xg}g_~koi8u 3\7㜳;\w`-vc2. ̰r=> " MbE}4I4M;ttEmuTWmXu*`8` .`z JX`jhbha}^}7x^z^{|W^xg}g_~cp437 8S9ꬃ;CL1ɘc =ȳO>XÍ(2]3>D.J/.`-6:? 5CGsK+7s3tH }5NuVK=FtX\s\{ֳ}cpWqmm*#w-1|˰|K 26(cp850 8S9ꬃ;CL1ɘc =ȳO>X >`s ]3>D.J/.`-6:# 0DsKR7s3<0H }5N5)@2ȴԌ3\s\|C4TS?hM6t -"/r.rK.26(cp866 ߁xWy硗zמ{|W}ᗟ~ןX" 2ؠ`-6:? 5CGsK+7s3tH }5NuVK=FtX\s\{BRXbrء}Hו݊|K&26(ibm1047cp1047$`4 4D !d #t" (p$"`Db$Tb d&T "93N9# <&:;| *- 13L1Dc %|$243̀@Ѓ؄!dah.O,mqȡ.b )1uqy/l+R-b / *tA5{!DaH$ =3O=}(M8QH>?\3UXqYh! 5H3M50 4` 806d'^[yY]^[nN]yesnoSunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberAMPM%a %b %e %T %Y%m/%d/%y%H:%M:%S%I:%M:%S %p%m/%d/%y0123456789%a %b %e %T %Y%H:%M:%SLC_CTYPELC_NUMERICLC_TIMELC_COLLATELC_MONETARYLC_MESSAGES    $*2?HTf$TH2Te$ HTd @|$͌?ŌiBD?@!?-Dt>F<`Qx;9@ %z8"6i5DNn)W'4b<ACcQޫa:n$MBI .)>5D.&pA~_֑9S99_(;/ Zmm~6 'FOf?-_'u={9Rk_]0V{Fk 6^ae_@h'sM1Vɨs{`kGg Y*vDW>3~?2O}2&=k^5:|!j$|n0-w;C,MA ]}Fq-ƚ3b|7U>Mvd*p׫c|zWIV;8$#֊wZT# 1fjWaG~"e2`l6 ]?X;ޛ"((XM2}P[.4bH[HJCg_Bja (ә\wƒa<sxZo׽-c&gUE6(aw&FYDMC)Ip>(q>. E {.G{2/ Umrk1˖yJAy߉蔗1k__6HglqrB]2 1%t90 Kh,XGt$}nHrSQ 3K~ch>_@]UR)7dm2H2[LuNqETn *if']P;vIk}'i)̬Tjى,rPw0p'qfId=݃?C 1A9p;7+\ZlK8Yvba˻lj@Iu'" &/dv ;3Q:\&mM-zV? +@m19 [ƭKNʥ76BhcvhR71 dMf)e0WVG:ju(0f"=W6 NB3#Oe ?[x#v{rƦSonJXڷfv-íwH]ƀ/?\m*۶%:SW)-K~v{Y*ܷ-vl>pn(>ag3*Mmng91[H0-C%a5p0˸llZݠ!oGb\paIkVRPU7շ3n_]0.26!i'w @-O͠ /] B}ʢj\.U'U dA*k%{4hjOJ*OZ-ZǕ M :W_?8 q݆޶`MekQUHr;@5{EN)A|ddپ1wXi:<FFUu_ҽn.]D>Bać)"|o5׍nj|]tkn>r{jϩ)sɺQ t$}`t؊ , ~f)zvVE~6ė1'n6بV-oW4,V k^>*_ J;m,Ԅ.5/9a8!D Jj/SNT"*U pid&Z`?R4-4]^`g3aXWQ>qH-!,FYzTOVy"68"gU&8Q 3iHeL6!{J!@GUt:gB^_{gzU+#AUYn!*9GI@VY+ZGņCb!;,ya*L{,C&x<{:&g e+=| Q'ci)h( D Npc~|#2V!*o~MQa6:rm9zk2\F'[4wUYMqe/"+z<\3&:0yE>Hz>ư>h㈵>-C6?MbP?{Gz???$@Y@@@@j@.AcAחAeA _BvH7BmB@0BļB4&k C375'78o: #<=? ABzD@FPG$tIKn:Yau: ?= jIh?a KP&h&\?]ny?t*JUI_?j}{ͷ?*b.Kim?umV#W? ezxʫ)?4Lk^ zo ?fF6XO?&†W2ı.n?bX9v/$?{GzGzG???@@@@8 @@H@-1@@x}@P@* @nt#@ J&@T #*@Ak-@@cR0@?tӰ?lX?Q[?{Q}?Z?G^v?Rݛ?i 7?X?_{3|?ڐ?@En[v?B#Kj?Pο?R B.?8C+eGG@#Kj>Pο.?R B.?(.H ) # jX 5 Ob p N ʊ4 蔍0& Љ -  n ` C Sv ऌpPC  ډ@ lq@Xx` Ӎ( 3 pb  / 7 `0L ʉ_@ 0j0 V pA  0   0 l h8X o JW 78 X ҋ 8p I `*  0Ѝ @  g x  $ X ӋP0 ` x upc fɼg j?NjP'l?,"Q#m?>O~Gz?xE4' |?VW+!l3/~?B8dg`CuB?(I(̔X?LDƗk/z۟W?if 7?6?sMs:?N߬BYfۘr?A{k_+:?8d㘓U(??{n/o?Lj<@d [?lгEG"? %p@q%,? * ")Uؽ?} MѦ ?&*}?Q{n@? ?ݑ #1j?2ٮN %0?oM2+ܫ?XC4ݒ)?b=W HX?bͭǃ+?&< Ȉ?8 -iiS5?Br9E@? ([sH?aˑ/?P)c(c ? /Ub!?Yl#V禇#?b޷*Xc*%?h0(sW'^V&?<\l 8VM(?"P]Q)?$ʏSF +?>s6Ց0@nZ(-?9R]a.?c0FZRqo0?0S2?h aoA&3?;7v4b )Ul5?*EE/PEqss7?0վٰZX]8?nYN}:?(@H:12"A[#B#d=?{A JP??ʺ=[2r`A?(Cm ]C?$ 61ВD? "Y%wF?&/i;<\+jH?or=} 2J?6.z9qbSK?6;ݟ)M? i=ji'O?f`MR/d,mQ?kI<iBS? TCbR ٥LU?dGn}RksV?TCs+R|I-X?QB}Z?~iKpkh\?9 LZv^?fpH*Yom^`?oKXGb?"NLqv1Lc4d?.)}I"R%#f?'rŁ0D]h?+eGg@8CB.v:; ??fz^n?g5RҌ?m{]<lX?<2? n4jf?/*RVQ[?UNP1l?չ#ɑ-?U\Ӏ ?MuM<1 ?LtB<1Lp?J]9ݏ<d?[;_?hPKJ˩:7?-Qfm?6>q4?γ-?mL*H<"4L?i(z`E?[HX*.! ?Ig,|P?`cC<-a`?d; fZ~dxt_u?}JtH?U2gBV? ^˜T'?47;iL?:^#F?nWrPԔD٨?[g?11̐!Ղ_{3|? G;*)F?ӈ:`tF ?3ƿݣ?WĿ09 XJ?$¿"S?ZYb<n?uG_H?[W{хX#?`'"S?GL:w ?@x?ـY?B}8@{>?o;%s?wOz\ Q? Ũ# 0?x)&j!~%? wk~?PS?eD???M?Z:W?@W2?=?Р?8w?@r?CMr ?`P?cuܲ?v?Q?? wC?L O+?@ގ?`l}?j ?3.n6 ?ί ?9P)&p?g y?1'm?h????gI?NF?|p?: -?9 ?P Q?Y?q?m?}?XҿEB*?')ѿ߽"?H+mѿ4G?gAѿ@(C?пȣx>?п%?cRGп4$?E"Ͽ -m?uJGϿT9S?0=DοZD':?D οA ?w)`Ϳ>ڂ?̿W]?V) ̿L ?˿+`?ʿu+$?.@EʿП"?hwɿz[u?0Him ɿ6I]?E qȿ@MyF?0ǿ$\/?pb<<ǿI uw?`7ƿ9>7?T1 ƿAN?0$v}sſѩ ?0{Ŀ*?Q,FĿ z?ÿ0`r?IkÿWW}?@T¿;h?yS?,%`;ɪ>? W@+*?I<2A̖y?KW ?@@7 HMI?@>ieR?Ng|~W#?`/ yܺ&t|?(, ?rFp{?%w?8Et1L5d?m^_'Q?\HL2??jM3r,?`y 1(0? bF4?jlkN?@wJڭΟ*]?켫!,cD?@|?3X6ƃ/?g^q9۝?eI\R?@dI(N/{?r5j?RRU,Y?b=,II?(8? {12ye(?]5Hs'$?x?$y `&?o?ta?=5A܇?.c?ģΓ?ͭ<%???ذ?x?[? t?@\? :?Wj'?V` ?u?w? S?| ?8.?\f\?WY?^,'?j5vڷ?,k>n?`NC?ym?` x?m7m&? 2C?X]X?`q1 ?3&?@+g???G?u?0n&?(J ?PŦ?,>e?3eI*??`?hc_Y?)c%? 0?w?`Cr?%g?m&w?Wy?0O? V?/2?8B.?0gǓW.=`UUUUU?NUY?z)UUUEH[I?&+??ȹ,ֿV7($<?Xտ `?XEwvտmPդb#@?-տg ?xw_Կ>)i?`‹aԿ̄LH/=?0Կ: B<?HiULӿ`QƱ =?GӿMY%=? ҿ+{&=`?Zҿ?϶=`?Zҿ?϶=@?xA)ҿvS($Z ?iѿTh?\gѿ3=?HѿfZĨ&?s$п~k ?д%@п-6?д%@п-6?@^mϿ<*W =`?`˭ο$&+=@?*n'ο?TO/ ?Ok!\Ϳhʻ!=?̿4hOy'=?̿4hOy'=?-t˿1N=?Nʿf?cN<?#ʿFd%?#ʿFd%?PZRɿ*`? eȿ +=@?ǿXJSr+=@?ǿXJSr+= ?ƿfⲣj?p0ſ9PC?p0ſ9PC?&ſ[ ?l+MĿ?`F;? V]2%?ѧ?Nۥ^,=`?MZ?]<i,@? ?2흩<?@Y]^3?G:\#=?`j?h+?@X?ӬZF&=`? 9Ǿ?Eh-@?9? O4%?'?-x!=?#~+?48D,=? a?l=?e?rK#/<@?3=?xTy%= ?'?}i3&=?NW?x.<,=?pu?!%?PD?Cpf`?9믾?,T=@?ZZ?oX(=?nE1cbj2y/proc/se8>ı!>wQlV?RO~>LUUUUU?^ ߿iPB>B:SU?'V?f @@T!?1cba=@T! @1cba=0|@@T!@1cba=m0_?-DT!-DT!?`a=sp.;.;I %{9P!?cbaQ>`!`!?}W>a*?|Z:=+Z>?IUUUUU?IUUUUUſn?wTUU?F;>t*?\3&2?sS`u󾦒7~?h&0?eDC?W?(V"mm?n&?7d?A?z?cUUUUU?b?N]h?3?r8?ZT?4MU? =?uI?;h(?.Ÿ?Yl?UDU?ȊY*@}o?K-':@\3&<9B.?":? v$K{?/lj,DQ=Рf ?R-ޭ?n LE?mt?$I?q#q? UUUUU?똙?-DT! \3&<-DT!IJ`?? $(?QD?a?-DT!@!3|@5WT?? 8aQk?땗Y6*?5c`&?(>=c?\c? Q_?3oJ?ø@?#f>?M?8uYc??bt﮿JHG@\š#,H([@WeRT@pW!z@\g@h(!+@f"(Ld@q ){@ 0O@!jR 5a@&A%@vp3@`s4?5d `4?b-qBp6ct}@?8ܛN8~;@Y.ja@j$h@(u@Q@C]d@ "\t@Z_U 1@Q&V>@ޅp?Jo94?in? aBCо"]!?k"t?hf#w?6UL?OQ*? yw?i}?hn?qy O @9B.@B.?v۪?UZ?? 9DP-@:eSj@\|@""Ef@@Kp@Kq@0@J)?@o,@w'?4>>ž?z]>@kT;1>0,m= (k)AC+ڃ(A?TRfAckNX@f@m>M@%0cm@4[R'@,?9[6xd@ ۾WTz@r#@mY{g@!ڠ;@S@ȝ @鈇 `@=W@Lr?C^T@ٌ)== bO٪@(jl<@cMK@NT-@!|d@^Ye@ݮ-OE@a @B?C"aH@j2>mBP ?]t>ՄT;>?s39P ѱ>WҦ?(?Ȃ?ȳ?i=ŽԫN;WU>\s>;P=k M6?-d>lL?x??ɑp?˙?QN @zk]@ۢm@,R_@tIK@1@dq7|(@@ vB?Պo5@DU|>- zi@,@ŗ @O'M܅@݂'z@2}E@.ey@5z*@leE\@Q^o0@@WD@g6@ ~@IR-@&E[@cn6@C?=cM@}g=S.|mY@1.}֋@#7P|[@_3 u@>GH@7,MV@)ѦHA@^v@{![?4IeA@ݞ!)>k><^~c@)H%@I@ho@Rn96_5Jޣ)Eh3NiH>dx=@&D&i\wW$ArS%A^WAb@jeЦt@$vSмygE0?[ަ,d@.oK6|K@ѺmW@)d @9{1@hOs1itlmfK Y?ZQT@C1 )p`K z@T@|DNh@>1@\_fk_GӇl]qL3pTQ?g#G@Oȏө5~*=,}Ɉ5>?3> Fj>h>d͹V_(?a,G W?S~c ?m0_*w9P=[:>VxNZ>>dw%l*?DHU_?M? e?,)vө?<f?` ?Za??Vcb?RBtp>7X?M,?}P?]?oS?ƶ@?O@~?kحg?bU>?{T"?Ȱ}gij?L?>5?sA?8$4a L?lm4?.ӂb?-V?.n?j쑺?Dpx? f?AՔB?5ߨɠ? ƍ'?8+?PBü? +g?$ N?aWZj?|SU?PDvI?PP?o\G?+%@]@?aץ@E?9hs&^?@>[A}I?a~H?u.t?徜?'?YO?ӓ?x6?tbE?C ZLgK?AˀC?8ϘJ?\.lf?;UUUUU?i}ɐ?6+Y=`PD?DR>?˖dF?x ?Y"$I?xq?UUUUU?? {?խ8=q_@E@E@  /bin:/usr/bin%s*$2a$00$abcdefghijklmnopqrstuu8b 34345_0.../9ZzX7iSJNd21sU_0.../9Zzx22/wK52ZKGAx   test$1$$5$rounds=rounds=%u$$5$%s%.*s$$6$$6$%s%.*s$touppertolower/dev/nullAssertion failed: %s (%s: %s: %d) Dynamic linker failed to allocate memory for error messageUnsupported request %d%s: : /dev/ttyrbe/etc/shellsrbUTF-8%NLSPATHLANG_.@.@n!=1;Plural-Forms:nplurals=plural=utf8Ê̄Ê̌ê̄ê̌ASCIICC.UTF-8LC_ALLPOSIXMUSL_LOCPATH.%*.*fmessagesHALT: ERROR: WARNING: INFO: TO FIX: MSGVERB/dev/console%s%s%s%s%s%s%s%s labelseveritytextactiontagPWD: unrecognized option: : option requires an argument: : option is ambiguous: : option does not take an argument: %*[^ ]%*[ ] %n%*[^ ]%n %n%*[^ ]%n %n%*[^ ]%n %n%*[^ ]%n %d %d%s %s %s %s %d %d /dev/ptmx/dev/pts/%d[]%b %e %T<%d>%s %n%s%s%.0d%s: %.*s2>/dev/nullsheval "printf %s\\\\0 x $1 $2"-c/bin/sh/dev/shm/%.2X:%.2X%d.%d.%d.%d.in-addr.arpaip6.arpa/etc/hosts/etc/services/udp/tcptcpudp%s%s%s %d.%d.%d.%d%x:%x:%x:%x:%x:%x:%x:%x%x:%x:%x:%x:%x:%x:%d.%d.%d.%d:0/etc/resolv.confoptionsndots:attempts:timeout:nameserverdomainsearch127.0.0.1/etc/group/etc/passwd/etc/tcb/%s/shadow/etc/shadowre,%s:%s:%u:%s%s%s:%s:%u:%u:%s:%s:%s %s:%s:%.*ld:%.*ld:%.*ld:%.*ld:%.*ld:%.*ld:%.*lu /usr/local/bin:/bin:/usr/binHOME [[:alnum:]_][^[:alnum:]_][[:space:]][^[:space:]][[:digit:]][^[:digit:]]rwa/tmptempw+/tmp/tmpfile_XXXXXX/tmp/tmpnam_XXXXXX-0X+0X 0X-0x+0x 0xINFNANnaninf-+ 0X0x(null)#+-0%*s%%%s%s%s%s%s*.*%c%c%*%.*s%.0d%s%c%%lln%.*e%.*f000000000000000%.*gXXXXXX/proc/self/task/%d/comm/dev/shm/tmp-%d/etc/localtimeTZUTCGMTTZif%.3s %.3s%3d %.2d:%.2d:%.2d %d __kernel_clock_gettimeLINUX_2.6.39DATEMSK%m/%d/%y%Y-%m-%d%H:%M%H:%M:%S+%lld%+.4ld%lld%*lld%0*lldLOGNAMEError allocating constructor queue: %m State of %s is inconsistent due to multithreaded fork : %.*s/%sreaddir64_r(local)readdir_rError relocating %s: %s: symbol not foundError relocating %s: %s: initial-exec TLS resolves to dynamic definition in %sError relocating %s: cannot allocate TLSDESC for %sError relocating %s: unsupported relocation type %dInvalid library handle %pSymbol not found: %sError relocating %s: RELRO protection failed: %mError preparing lazy relocation for %s: %m/lib:/usr/local/lib:/usr/lib %s => %s (%p) $ORIGIN${ORIGIN}/proc/self/exe%.*s/etc/ld-musl-aarch64.path__libc_start_mainstdinlibc.soError loading dependencies for %sError loading shared library %s: %m (needed by %s)__dls2b__dls3ldd [args]LD_LIBRARY_PATHLD_PRELOAD/proc/listlibrary-pathpreloadargv0musl libc (aarch64) Version %s Dynamic Program Loader Usage: %s [options] [--] pathname%s %s: cannot load %s: %s %s: %s: Not a valid dynamic program %s (%p) linux-gate.so.1%s: Error getting %zu bytes thread-local storage: %m mallocaligned_allocLibrary %s is not already loadedError loading shared library %s: %mCannot dlopen while program is exiting.Error recording dependencies for %sj?$.Dsp"8 1).lN!(Ew8fTl 4)P|ɵՄ? Gy 1Ѭߘr/Ḗ~&jE|,G$l iciNWqX~=t XrX͋qJT{YZ90`*#`(yA8۸y:`l>w'K1/x`\`U%U攫UbHW@cj9U*4\̴ATr|*oc]ũ+1t>\3֯\$lS2zw(H;Kkē!(f a!`|H2]]]u#&܈e>#Ŭom9BD . Ji^Bh!la gӫҠQjh/T(3Ql n;zP;*~ev9>YfCoEå}^;uos D@jVbNw?6r=B$7H ۛIrS{y%P;LylO`@ž\^c$johSl>9oR;Qm,0DE ^J3(fK.WtE9_ ӹyU 2`yr,@%g̣饎"2u<kaP/R=2`#H{1S>W\o.ViB~(2gsUO'[iXʻ]=!lJ[-ySeEIҐK3~ˤAb Lw6~д+MەqՓkю%ǯ/[{AI~-%^q h"W6d$ cUYCxSZ٢[} Źv&ϕbhAJsN-GJ{RQ)S?Wƛv`+t恵oWk *!ec.4dV]-SGjnpzKD). u#&İn}ߧI`fqilRdVឱ¥6)L u@Y>:䚘T?eB[k?ҡ08-M]% L&pc^?kh >\D}W7: P tAu8/;21>8TNmO Bo ,y|$ryVw.?rU$qk.P̈́GXzt}K:zfC cdG27;C$CMQe*P:qUN1w_V5kǣ;< $Y,n<pEㆱo ^*>Zw=Ne)։>%fRxL.jxS<- N=+6&9`y#RnfE{7(2åZl!Xeh;/ۭ}*/n[(!pa)uGa0a4c\s9pL ު˼,b`\ndi#PZe2Zh@*<1! T_~}=b7w-_h)5ǡޖXxWcr"ÃF T0.SHُ(1mX4a(s<|J]d]B> EꫪOlOBBǵj;Oe!AyMjGKPb=bF&[$ti GV[ Htb#*BXU >ap?#r3A~_;"lY7|`t˧@n2w΄PU5ai Z .zD4Egɞs͈Uy_g@Cge48>q(= m!>J=+hZ=@&L4)i Av.khq$j 3ԷCaP.9FE$tO!@MpE/f m1'A9UG%ښ ʫ%xP()Sچ, mbhiHפh'?Oz|Ϊ_7әxB*k@5 ٫9N;VmK1f&tn:2C[Ah xN جV@E'H::SU kKмgUXc)3VJ*%1?~^|1)p/'\,(H"m?H܆AyG@n]Q_2Տd5A4x{%`*`lc´2Of#k>3b $;" r(-Exb}doITH}'>AcG t.no:7`L knU{7,gm;e' )̒9 i{f} ϑ^و/$[Qy{;v.97yY̗&-1.Bh;+jLu.x7BjQ满PcKkؽ%=YBD n *Ngd_ڈ鿾dW{x`M``FѰ8Ew63kBqA_^;Z4ٷ,Q+:Ֆ}}>(-}|%rZLZq)GW;()f(.y_xU`uD^mm%adâW<'*:m?!cf&(3uU4V<wQ( gQ̫_QM08bX7 z{>d!Q2Ow~㶨F=)iSHd$m-if! FEdlX [@X̻k~jEY:D 5>ʹrdfGof,ҏ"W##v215VbuZ6ns҈bIPLVq z2E{Sb%ҽ5iq"|˶+v>S@`8G% 8vFšw``u N˅؍芰z~L\HjiԐ\-% ?2aN[wߏWr:    $1$abcd0123$V9k5q1.2.5  %s/%.*s%.*s/%s/%s.mo.|&====|&=!><+-*%/ -DT! @-DT! -DT!!3|@!3|I@Iya?ު{տ=Jq?mҿ9?g:Qп?$1˿d  ?Xw OWƿ {"^?+?4JJ?^vNX#?aZ<A?? 8R?G`?Y]?j?.6S^?jW6 ? w&?-c?pG" ?Ax?~ȋ?bHSg? W0?9B.?4Hпj [W?#A ߿/dev/log  2 #   (x   @ /var/run/nscd/socket@UTC {FF{FFpF\KK^qJ6#W6i@@@@@:m!A````GwcGppp]S>ow $```` 0@P``````pK__KKK___________"____________K_zKKK_z___8gR_____ #  ```` 0@P``````p>#Z4_cw4 T04kq{W$$$$$$$$$$$$$$$$$$$$$$$$$$$AO$$$W\$$$k$$$$$$$$$$$$%CC$$$a$$fq$x$$q$$ =EJY 11 OT_f_w_[[_ ~; @"$@,(9H`Cx`DE G@P^`_`` aa( b@`ch d`ef jn@zRx $4,P!L$D#AB A l+T H E,P8 A  A Z A A]EBTLEDPlE@E A@COA A eQAI A EAA{CAVC AA ABZBBSA AA AAM<m E[nE$\A DO A $,p]A DO A T^xlp^d$^<A DO A _`0A Ja0u F<bpA D` A Y A q A ` A <DfA Da A V A t A }ip0 pgC.UTF-8 X P 0 P ` H 8 @ # # 0# # % t n( r( f0 a8 e@ wH WX sh Sx d D %   `& & & ; 8 o+(] (;   42h o$4#0%444444h . -QXόF)1[p0] xY)PhHVl͈?w+pAoz/-t ^v,p@,oWAtߠXdJL^ tripstrip-point-0npzpassivetrip-point-1nLzpassive!soc-critn8z criticalcooling-mapsmap0 gpu-thermal(d>^ tripsgpu-thresholdnpzpassivegpu-targetnLzpassive!gpu-critn8z criticalcooling-mapsmap0 xin24m fixed-clockn6xin24m!upower-management@ff000000$rockchip,px30-pmusysconsimple-mfdpower-controllerrockchip,px30-power-controller+!wpower-domain@5<power-domain@7;power-domain@9  C@?power-domain@10 @978:power-domain@11 Kpower-domain@12 XD56power-domain@13 (3 !"#power-domain@14I$syscon@ff010000'rockchip,px30-pmugrfsysconsimple-mfd+!io-domains$rockchip,px30-pmu-io-voltage-domainokay%%reboot-modesyscon-reboot-modeRBRB RBRBRBserial@ff030000$rockchip,px30-uartsnps,dw-apb-uart &&(baudclkapb_pclk4''9txrxCMZdefault h()* disabledi2s@ff060000rockchip,px30-i2s-tdm  (mclk_txmclk_rxhclk4''9txrxr+ tx-mrx-mZdefault0h,-./01234567 disabledi2s@ff070000&rockchip,px30-i2srockchip,rk3066-i2s  (i2s_clki2s_hclk4''9txrxZdefaulth89:;okayi2s@ff080000&rockchip,px30-i2srockchip,rk3066-i2s (i2s_clki2s_hclk4''9txrxZdefaulth<=>? disabledinterrupt-controller@ff131000 arm,gic-400@ @ `   !syscon@ff140000$rockchip,px30-grfsysconsimple-mfd+!+io-domains rockchip,px30-io-voltage-domainokay@AB%B@lvdsrockchip,px30-lvdsC"dphyr+,lvds disabledports+port@0+endpoint@0<D!endpoint@1<E!port@1serial@ff158000$rockchip,px30-uartsnps,dw-apb-uart I(baudclkapb_pclk4''9txrxCMZdefaulthFGokayserial@ff160000$rockchip,px30-uartsnps,dw-apb-uart J(baudclkapb_pclk4''9txrxCMZdefaulthH disabledserial@ff168000$rockchip,px30-uartsnps,dw-apb-uart K(baudclkapb_pclk4''9txrxCMZdefault hIJK disabledserial@ff170000$rockchip,px30-uartsnps,dw-apb-uart L(baudclkapb_pclk4'' 9txrxCMZdefault hLMN disabledserial@ff178000$rockchip,px30-uartsnps,dw-apb-uart M(baudclkapb_pclk4' ' 9txrxCMZdefault hOPQokayi2c@ff180000&rockchip,px30-i2crockchip,rk3399-i2cN (i2cpclk ZdefaulthR+okaypmic@20rockchip,rk809  SZdefaulthTLmxin32k{UUUUVVVVUregulatorsDCDC_REG1vdd_log~p&q;O!regulator-state-memay~DCDC_REG2vdd_arm~p&q;O!regulator-state-memy~DCDC_REG3vcc_ddr;Oregulator-state-memaDCDC_REG4vcc_3v0--;O!Bregulator-state-memay-DCDC_REG5 vcc3v3_sys2Z2Z;O!Vregulator-state-memay2ZLDO_REG1vcc_1v0B@B@;Oregulator-state-memayB@LDO_REG2vcc_1v8w@w@;O!@regulator-state-memayw@LDO_REG3vdd_1v0B@B@;Oregulator-state-memayB@LDO_REG4 vcc3v0_pmu--;O!%regulator-state-memay-LDO_REG5 vccio_sdw@2Z;O!Aregulator-state-memay2ZLDO_REG6vcc_sd2Z2ZO!regulator-state-memay2ZLDO_REG7 vcc2v8_dvp**O!Zregulator-state-memy*LDO_REG8 vcc1v8_dvpw@w@O!\regulator-state-memayw@LDO_REG9 vcc1v5_dvp``O![regulator-state-memy`SWITCH_REG1 vcc3v3_lcdO!XSWITCH_REG2 vcc5v0_host;Oi2c@ff190000&rockchip,px30-i2crockchip,rk3399-i2cO (i2cpclk ZdefaulthW+okaysensor@dasahi-kasei,ak8963  S%100010001touchscreen@14goodix,gt1151 S S S Xsensor@4c fsl,mma7660L Si2c@ff1a0000&rockchip,px30-i2crockchip,rk3399-i2cP (i2cpclk  ZdefaulthY+okay2,ov5695@36 ovti,ov56956Z4(xvclk*[6\Zdefaulth]^ _portendpoint<`C!i2c@ff1b0000&rockchip,px30-i2crockchip,rk3399-i2c Q (i2cpclk  Zdefaultha+ disabledspi@ff1d0000&rockchip,px30-spirockchip,rk3066-spi $U(spiclkapb_pclk4' ' 9txrxNZdefaulthbcde+ disabledspi@ff1d8000&rockchip,px30-spirockchip,rk3066-spi %V(spiclkapb_pclk4''9txrxNZdefaulthfghij+ disabledwatchdog@ff1e0000rockchip,px30-wdtsnps,dw-wdt[ % disabledpwm@ff200000&rockchip,px30-pwmrockchip,rk3328-pwm "S (pwmpclkZdefaulthkU disabledpwm@ff200010&rockchip,px30-pwmrockchip,rk3328-pwm "S (pwmpclkZdefaulthlUokay!pwm@ff200020&rockchip,px30-pwmrockchip,rk3328-pwm "S (pwmpclkZdefaulthmU disabledpwm@ff200030&rockchip,px30-pwmrockchip,rk3328-pwm 0"S (pwmpclkZdefaulthnU disabledpwm@ff208000&rockchip,px30-pwmrockchip,rk3328-pwm #T (pwmpclkZdefaulthoU disabledpwm@ff208010&rockchip,px30-pwmrockchip,rk3328-pwm #T (pwmpclkZdefaulthpU disabledpwm@ff208020&rockchip,px30-pwmrockchip,rk3328-pwm #T (pwmpclkZdefaulthqU disabledpwm@ff208030&rockchip,px30-pwmrockchip,rk3328-pwm 0#T (pwmpclkZdefaulthrU disabledtimer@ff210000*rockchip,px30-timerrockchip,rk3288-timer! Y& (pclktimerdma-controller@ff240000arm,pl330arm,primecell$@` (apb_pclkw!'tsadc@ff280000rockchip,px30-tsadc( $,P,X(tsadcapb_pclk tsadc-apbr+Zinitdefaultsleephstsokay! saradc@ff288000,rockchip,px30-saradcrockchip,rk3399-saradc( T-W(saradcapb_pclk saradc-apbokay,@!nvmem@ff290000rockchip,px30-otp)@/Za(otpapb_pclkphyphy+id@7cpu-leakage@17performance@1e8clock-controller@ff2b0000rockchip,px30-cru+ u& (xin24mgpllr+=8@IFq рр !clock-controller@ff2bc000rockchip,px30-pmucru+u(xin24mr+=&&& G!&syscon@ff2c0000,rockchip,px30-usb2phy-grfsysconsimple-mfd,+usb2phy@100rockchip,px30-usb2phy & (phyclkJv usb480m_phyokay!vhost-porta D llinestateokay!yotg-porta$BA@lotg-bvalidotg-idlinestateokay!xphy@ff2e0000rockchip,px30-dsi-dphy.& E (refpclk>apba|w okay!Cphy@ff2f0000rockchip,px30-csi-dphy/@F(pclka|w /apbr+okay!usb@ff3000000rockchip,px30-usbrockchip,rk3066-usbsnps,dwc20 >(otgotg@ x "usb2-phy|wokayusb@ff340000 generic-ehci4 <y"usb|wokayusb@ff350000 generic-ohci5 =y"usb|wokayethernet@ff360000rockchip,px30-gmac6 +lmacirq@>??@ACL[(stmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macclk_mac_speedr+rmiiZdefaulthz{|w ^ stmmacethokayoutputB _   PPmmc@ff370000.rockchip,px30-dw-mshcrockchip,rk3288-dw-mshc7@ 6 ;CD(biuciuciu-driveciu-sample(3рZdefaulth|}~|wokayASd vAmmc@ff380000.rockchip,px30-dw-mshcrockchip,rk3288-dw-mshc8@ 7 8EF(biuciuciu-driveciu-sample(3рZdefault h|w okaySmmc@ff390000.rockchip,px30-dw-mshcrockchip,rk3288-dw-mshc9@ 5 9GH(biuciuciu-driveciu-sample(3рZdefault h|w okayAB@spi@ff3a0000 rockchip,sfc:@ 8:(clk_sfchclk_sfc hZdefault|w  disablednand-controller@ff3b0000rockchip,px30-nfc;@ 97(ahbnfc7рZdefault h|w  disabledopp-table-1operating-points-v2!opp-200000000 ~opp-300000000opp-400000000ׄopp-4800000008*gpu@ff400000$rockchip,px30-maliarm,mali-bifrost@@$/.- ljobmmugpuI|wokay !video-codec@ff442000rockchip,px30-vpuD PO lvepuvdpu (aclkhclk |w iommu@ff442800rockchip,iommuD( Q (aclkiface |w !dsi@ff450000(rockchip,px30-mipi-dsisnps,dw-mipi-dsiE KD(pclkC"dphy|w =apbr++okayports+port@0+endpoint@0<!endpoint@1<!port@1endpoint<!panel@0xinpeng,xpp055c272 " ,@ 9Xportendpoint<!vop@ff460000rockchip,px30-vop-bigF M(aclk_vopdclk_vophclk_vop345 axiahbdclk |w okayport+! endpoint@0<!endpoint@1<!Diommu@ff460f00rockchip,iommuF M (aclkiface|w  okay!vop@ff470000rockchip,px30-vop-litG N(aclk_vopdclk_vophclk_vop789 axiahbdclk |w okayport+! endpoint@0<!endpoint@1<!Eiommu@ff470f00rockchip,iommuG N (aclkiface|w  okay!isp@ff4a0000rockchip,px30-cif-ispJ$FIJ lispmimipi 3_(ispaclkhclkpclk "dphy|w okayports+port@0+endpoint@0C<!`iommu@ff4a8000rockchip,iommuJ F (aclkiface|w  D okay!qos@ff518000rockchip,px30-qossysconQ !qos@ff520000rockchip,px30-qossysconR !$qos@ff52c000rockchip,px30-qossysconR !qos@ff538000rockchip,px30-qossysconS !qos@ff538080rockchip,px30-qossysconS !qos@ff538100rockchip,px30-qossysconS !qos@ff538180rockchip,px30-qossysconS !qos@ff540000rockchip,px30-qossysconT !qos@ff540080rockchip,px30-qossysconT !qos@ff548000rockchip,px30-qossysconT !qos@ff548080rockchip,px30-qossysconT ! qos@ff548100rockchip,px30-qossysconT !!qos@ff548180rockchip,px30-qossysconT !"qos@ff548200rockchip,px30-qossysconT !#qos@ff550000rockchip,px30-qossysconU !qos@ff550080rockchip,px30-qossysconU !qos@ff550100rockchip,px30-qossysconU !qos@ff550180rockchip,px30-qossysconU !qos@ff558000rockchip,px30-qossysconU !qos@ff558080rockchip,px30-qossysconU !pinctrlrockchip,px30-pinctrlr+ _+ lgpio@ff040000rockchip,gpio-bank & s !Sgpio@ff250000rockchip,gpio-bank% \ s !gpio@ff260000rockchip,gpio-bank& ] s !_gpio@ff270000rockchip,gpio-bank' ^ s pcfg-pull-up !pcfg-pull-down !pcfg-pull-none !pcfg-pull-none-2ma  pcfg-pull-up-2ma  pcfg-pull-up-4ma  !pcfg-pull-none-4ma  pcfg-pull-down-4ma  pcfg-pull-none-8ma  !pcfg-pull-up-8ma  !pcfg-pull-none-12ma  !pcfg-pull-up-12ma  !pcfg-pull-none-smt  !pcfg-output-high pcfg-output-low !pcfg-input-high  !pcfg-input i2c0i2c0-xfer  !Ri2c1i2c1-xfer !Wi2c2i2c2-xfer !Yi2c3i2c3-xfer   !atsadctsadc-otp-pin !stsadc-otp-out !tuart0uart0-xfer  !(uart0-cts !)uart0-rts !*uart1uart1-xfer !Fuart1-cts !Guart1-rts uart2-m0uart2m0-xfer !Huart2-m1uart2m1-xfer  uart3-m0uart3m0-xfer uart3m0-cts uart3m0-rts uart3-m1uart3m1-xfer !Iuart3m1-cts  !Juart3m1-rts  !Kuart4uart4-xfer !Luart4-cts !Muart4-rts !Nuart5uart5-xfer !Ouart5-cts !Puart5-rts !Qspi0spi0-clk !bspi0-csn !cspi0-miso  !dspi0-mosi  !espi0-clk-hs spi0-miso-hs  spi0-mosi-hs  spi1spi1-clk !fspi1-csn0  !gspi1-csn1  !hspi1-miso !ispi1-mosi  !jspi1-clk-hs spi1-miso-hs spi1-mosi-hs  pdmpdm-clk0m0 pdm-clk0m1 pdm-clk1 pdm-sdi0m0 pdm-sdi0m1 pdm-sdi1 pdm-sdi2 pdm-sdi3 pdm-clk0m0-sleep pdm-clk0m1-sleep pdm-clk1-sleep pdm-sdi0m0-sleep pdm-sdi0m1-sleep pdm-sdi1-sleep pdm-sdi2-sleep pdm-sdi3-sleep i2s0i2s0-8ch-mclk i2s0-8ch-sclktx !,i2s0-8ch-sclkrx  !-i2s0-8ch-lrcktx !.i2s0-8ch-lrckrx  !/i2s0-8ch-sdo0 !0i2s0-8ch-sdo1 !2i2s0-8ch-sdo2 !4i2s0-8ch-sdo3 !6i2s0-8ch-sdi0 !1i2s0-8ch-sdi1  !3i2s0-8ch-sdi2  !5i2s0-8ch-sdi3 !7i2s1i2s1-2ch-mclk i2s1-2ch-sclk !8i2s1-2ch-lrck !9i2s1-2ch-sdi !:i2s1-2ch-sdo !;i2s2i2s2-2ch-mclk i2s2-2ch-sclk !<i2s2-2ch-lrck !=i2s2-2ch-sdi !>i2s2-2ch-sdo !?sdmmcsdmmc-clk !|sdmmc-cmd !}sdmmc-det !~sdmmc-bus1 sdmmc-bus4@ !sdiosdio-clk !sdio-cmd !sdio-bus4@ !emmcemmc-clk  !emmc-cmd  !emmc-rstnout  emmc-bus1 emmc-bus4@ emmc-bus8 !emmc-reset  !flashflash-cs0 !flash-rdy  !flash-dqs  !flash-ale  !flash-cle  !flash-wrn  !flash-csl flash-rdn !flash-bus8 !sfcsfc-bus4@ !sfc-bus2 sfc-cs0 !sfc-clk  !lcdclcdc-rgb-dclk-pin lcdc-rgb-m0-hsync-pin lcdc-rgb-m0-vsync-pin lcdc-rgb-m0-den-pin lcdc-rgb888-m0-data-pins      lcdc-rgb666-m0-data-pins      lcdc-rgb565-m0-data-pins      lcdc-rgb888-m1-data-pins    lcdc-rgb666-m1-data-pins    lcdc-rgb565-m1-data-pins    pwm0pwm0-pin !kpwm1pwm1-pin !lpwm2pwm2-pin  !mpwm3pwm3-pin !npwm4pwm4-pin !opwm5pwm5-pin !ppwm6pwm6-pin !qpwm7pwm7-pin !rgmacrmii-pins  !zmac-refclk-12ma  !{mac-refclk  cif-m0cif-clkout-m0  !]dvp-d2d9-m0    dvp-d0d1-m0  d10-d11-m0 cif-m1cif-clkout-m1 dvp-d2d9-m1   dvp-d0d1-m1 d10-d11-m1 ispisp-prelight headphonehp-det pmicpmic_int !Tsoc_slppin_gpio soc_slppin_slp soc_slppin_rst sdio-pwrseqwifi-enable-h !mipimipi-pdn !^chosen serial5:115200n8adc-keys adc-keys  &buttons 7w@ Qdbutton-esc _esc e p0button-home _home ef p button-menu _menu e pxbutton-down _volume down er pbutton-up _volume up es pBhbacklightpwm-backlight a X!emmc-pwrseqmmc-pwrseq-emmchZdefault  !sdio-pwrseqmmc-pwrseq-simpleZdefaulth S!vccsysregulator-fixed vcc5v0_sys;OLK@LK@!U compatibleinterrupt-parent#address-cells#size-cellsmodeli2c0i2c1i2c2i2c3serial0serial1serial2serial3serial4serial5spi0spi1ethernet0mmc0mmc1mmc2device_typeregenable-methodclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientoperating-points-v2cpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-usopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendinterruptsinterrupt-affinityportsstatusclock-frequencyclock-output-names#clock-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontribution#power-domain-cellspm_qospmuio1-supplypmuio2-supplyoffsetmode-bootloadermode-fastbootmode-loadermode-normalmode-recoveryclock-namesdmasdma-namesreg-shiftreg-io-widthpinctrl-namespinctrl-0rockchip,grfresetsreset-names#sound-dai-cells#interrupt-cellsinterrupt-controllervccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplyphysphy-namesrockchip,outputremote-endpointrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-always-onregulator-boot-onregulator-on-in-suspendregulator-suspend-microvoltregulator-off-in-suspendgpiosvdd-supplymount-matrixirq-gpiosreset-gpiosVDDIO-supplyi2c-scl-falling-time-nsi2c-scl-rising-time-nsavdd-supplydvdd-supplydovdd-supplydata-lanesnum-cs#pwm-cellsarm,pl330-periph-burst#dma-cellsassigned-clocksassigned-clock-ratesrockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#io-channel-cellsvref-supplybits#reset-cellsassigned-clock-parents#phy-cellsinterrupt-namespower-domainsdr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy-modeclock_in_outphy-supplysnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-usbus-widthfifo-depthmax-frequencycap-mmc-highspeedcap-sd-highspeedcard-detect-delaysd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplykeep-power-in-suspendnon-removablemmc-pwrseqmmc-hs200-1_8vmali-supplyiommus#iommu-cellsbacklightiovcc-supplyvci-supplyrockchip,disable-mmu-resetrockchip,pmurangesgpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthinput-schmitt-enableoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervallabellinux,codepress-threshold-microvoltpwmspower-supplyٍ .d ..ڍrtl818xߍrtl8xxxurtlwifi ^]ߍ .ٍL..rtl8xxxu.ko.gz V= .ٍ .. btcoexist rtl8188eertl8192c rtl8192ce rtl8192curtl8192d rtl8192de rtl8192ee rtl8192se rtl8723ae rtl8723be rtl8723com rtl8821ae rtl_usb.ko.gz rtlwifi.ko.gz  rtl_pci.ko.gz A . .. aic7xxx.ko.gz\ aic79xx.ko.gz ޿iP! .L.." aic94xx.ko.gz ' Q$ .L..% arcmsr.ko.gz m*' .L..(be2iscsi.ko.gz u-ch.ko.gzE ipr.ko.gzq sr_mod.ko.gz$arcmsr.cxgbiosmartpqit sym53c8xx_2 qChv_storvsc.ko.gzF ips.ko.gzl sd_mod.ko.gz& atp870u.ko.gzG(iscsi_boot_sysfs.ko.gz!aic94xxLlibiscsi_tcp.ko.gzd$scsi_common.ko.gzaic7xxxg scsi_transport_fc.ko.gzj scsi_transport_spi.ko.gz<hisi_sashscsi_transport_iscsi.ko.gzQmegaraid^qla2xxx Pvaacraid9 fcoeA hpsa.ko.gzHiscsi_tcp.ko.gzw wd719x.ko.gz6esas2rvvirtio_scsi.ko.gzxxen-scsifront.ko.gzaqla4xxx 3w-xxxx.ko.gz a100u2w.ko.gzadvansys.ko.gz#am53c974.ko.gz4 dc395x.ko.gzaqla4xxx@@h@5.apk.5d0e94fbf7213bdd04943137fef8af09456f57bed290d371@i@5.apk.45c8f7447a214cd33b7529fac5c5b5366f0a47bcb4184736@s@5.apk.e72a6c9dcf481534c27c8b935ab0a399d58b164250d0d99c@ ޠU[pm80015dmx3191d.ko.gzD initio.ko.gzmT ses.ko.gzRmegaraid.ko.gz] qla1280.ko.gziPscsi_transport_sas.ko.gzVmpt3sas'be2iscsiescsi_debug.ko.gz ~\@f@{H L@@:j|@`T!0@&T- @@/n@@A@BBl@:B@jkD:J@KK@P -/| .8 ..}amlogic qcomrockchip ބ7_} .|L..~meson-canvas.ko.gz V .| ..mdt_loader.ko.gzqcom-geni-se.ko.gzqmi_helpers.ko.gzrmtfs_mem.ko.gzrpm-proc.ko.gz smd-rpm.ko.gzhwcnss_ctrl.ko.gzllcc-qcom.ko.gz TW .|L..io-domain.ko.gz 7 ) .L..* bnx2fc.ko.gz `}+ .L.., bnx2i.ko.gz . . ../cxgb3i1Pcxgb4i3|libcxgbi.ko.gz ~/ ..L..0 cxgb3i.ko.gz ڍ .ٍ ..ۍrtl8180ݍrtl8187 ޱ9~ .N.. ތ|KX .S.. `ۍ .ڍL..܍rtl818x_pci.ko.gz C,root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin adm:x:4:root,daemon tty:x:5: disk:x:6:root lp:x:7:lp kmem:x:9: wheel:x:10:root floppy:x:11:root mail:x:12:mail news:x:13:news uucp:x:14:uucp cron:x:16:cron audio:x:18: cdrom:x:19: dialout:x:20:root ftp:x:21: sshd:x:22: input:x:23: tape:x:26:root video:x:27:root netdev:x:28: kvm:x:34:kvm games:x:35: shadow:x:42: www-data:x:82: users:x:100:games ntp:x:123: abuild:x:300: utmp:x:406: ping:x:999: nogroup:x:65533: nobody:x:65534: klogd:x:101:klogd chrony:x:102:chrony dhcpcd:x:103: root:x:0:0:root:/root:/bin/sh bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/mail:/sbin/nologin news:x:9:13:news:/usr/lib/news:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin cron:x:16:16:cron:/var/spool/cron:/sbin/nologin ftp:x:21:21::/var/lib/ftp:/sbin/nologin sshd:x:22:22:sshd:/dev/null:/sbin/nologin games:x:35:35:games:/usr/games:/sbin/nologin ntp:x:123:123:NTP:/var/empty:/sbin/nologin guest:x:405:100:guest:/dev/null:/sbin/nologin nobody:x:65534:65534:nobody:/:/sbin/nologin klogd:x:100:101:klogd:/dev/null:/sbin/nologin chrony:x:101:102:chrony:/var/log/chrony:/sbin/nologin dhcpcd:x:102:103:dhcpcd:/var/lib/dhcpcd:/sbin/nologin root:::0::::: bin:!::0::::: daemon:!::0::::: lp:!::0::::: sync:!::0::::: shutdown:!::0::::: halt:!::0::::: mail:!::0::::: news:!::0::::: uucp:!::0::::: cron:!::0::::: ftp:!::0::::: sshd:!::0::::: games:!::0::::: ntp:!::0::::: guest:!::0::::: nobody:!::0::::: klogd:!:20095:0:99999:7::: chrony:!:20095:0:99999:7::: dhcpcd:!:20095:0:99999:7::: root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin adm:x:4:root,daemon tty:x:5: disk:x:6:root lp:x:7:lp kmem:x:9: wheel:x:10:root floppy:x:11:root mail:x:12:mail news:x:13:news uucp:x:14:uucp cron:x:16:cron audio:x:18: cdrom:x:19: dialout:x:20:root ftp:x:21: sshd:x:22: input:x:23: tape:x:26:root video:x:27:root netdev:x:28: kvm:x:34:kvm games:x:35: shadow:x:42: www-data:x:82: users:x:100:games ntp:x:123: abuild:x:300: utmp:x:406: ping:x:999: nogroup:x:65533: nobody:x:65534: klogd:x:101:klogd chrony:x:102:chrony dhcpcd:x:103:dhcpcd https://dl-cdn.alpinelinux.org/alpine/v3.21/main https://dl-cdn.alpinelinux.org/alpine/v3.21/community #https://dl-cdn.alpinelinux.org/alpine/v3.21/testing -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr8s1q88XpuJWLCZALdKj lN8wg2ePB2T9aIcaxryYE/Jkmtu+ZQ5zKq6BT3y/udt5jAsMrhHTwroOjIsF9DeG e8Y3vjz+Hh4L8a7hZDaw8jy3CPag47L7nsZFwQOIo2Cl1SnzUc6/owoyjRU7ab0p iWG5HK8IfiybRbZxnEbNAfT4R53hyI6z5FhyXGS2Ld8zCoU/R4E1P0CUuXKEN4p0 64dyeUoOLXEWHjgKiU1mElIQj3k/IF02W89gDj285YgwqA49deLUM7QOd53QLnx+ xrIrPv3A+eyXMFgexNwCKQU9ZdmWa00MjjHlegSGK8Y2NPnRoXhzqSP9T9i2HiXL VQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3v8/ye/V/t5xf4JiXLXa hWFRozsnmn3hobON20GdmkrzKzO/eUqPOKTpg2GtvBhK30fu5oY5uN2ORiv2Y2ht eLiZ9HVz3XP8Fm9frha60B7KNu66FO5P2o3i+E+DWTPqqPcCG6t4Znk2BypILcit wiPKTsgbBQR2qo/cO01eLLdt6oOzAaF94NH0656kvRewdo6HG4urbO46tCAizvCR CA7KGFMyad8WdKkTjxh8YLDLoOCtoZmXmQAiwfRe9pKXRH/XXGop8SYptLqyVVQ+ tegOD9wRs2tOlgcLx4F/uMzHN7uoho6okBPiifRX+Pf38Vx+ozXh056tjmdZkCaV aQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnC+bR4bHf/L6QdU4puhQ gl1MHePszRC38bzvVFDUJsmCaMCL2suCs2A2yxAgGb9pu9AJYLAmxQC4mM3jNqhg /E7yuaBbek3O02zN/ctvflJ250wZCy+z0ZGIp1ak6pu1j14IwHokl9j36zNfGtfv ADVOcdpWITFFlPqwq1qt/H3UsKVmtiF3BNWWTeUEQwKvlU8ymxgS99yn0+4OPyNT L3EUeS+NQJtDS01unau0t7LnjUXn+XIneWny8bIYOQCuVR6s/gpIGuhBaUqwaJOw 7jkJZYF2Ij7uPb4b5/R3vX2FfxxqEHqssFSg8FFUNTZz3qNZs0CRVyfA972g9WkJ hPfn31pQYil4QGRibCMIeU27YAEjXoqfJKEPh4UWMQsQLrEfdGfb8VgwrPbniGfU L3jKJR3VAafL9330iawzVQDlIlwGl6u77gEXMl9K0pfazunYhAp+BMP+9ot5ckK+ osmrqj11qMESsAj083GeFdfV3pXEIwUytaB0AKEht9DbqUfiE/oeZ/LAXgySMtVC sbC4ESmgVeY2xSBIJdDyUap7FR49GGrw0W49NUv9gRgQtGGaNVQQO9oGL2PBC41P iWF9GLoX30HIz1P8PF/cZvicSSPkQf2Z6TV+t0ebdGNS5DjapdnCrq8m9Z0pyKsQ uxAL2a7zX8l5i1CZh1ycUGsCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0BFD1D4lIxQcsqEpQzU pNCYM3aP1V/fxxVdT4DWvSI53JHTwHQamKdMWtEXetWVbP5zSROniYKFXd/xrD9X 0jiGHey3lEtylXRIPxe5s+wXoCmNLcJVnvTcDtwx/ne2NLHxp76lyc25At+6RgE6 ADjLVuoD7M4IFDkAsd8UQ8zM0Dww9SylIk/wgV3ZkifecvgUQRagrNUdUjR56EBZ raQrev4hhzOgwelT0kXCu3snbUuNY/lU53CoTzfBJ5UfEJ5pMw1ij6X0r5S9IVsy KLWH1hiO0NzU2c8ViUYCly4Fe9xMTFc6u2dy/dxf6FwERfGzETQxqZvSfrRX+GLj /QZAXiPg5178hT/m0Y3z5IGenIC/80Z9NCi+byF1WuJlzKjDcF/TU72zk0+PNM/H Kuppf3JT4DyjiVzNC5YoWJT2QRMS9KLP5iKCSThwVceEEg5HfhQBRT9M6KIcFLSs mFjx9kNEEmc1E8hl5IR3+3Ry8G5/bTIIruz14jgeY9u5jhL8Vyyvo41jgt9sLHR1 /J1TxKfkgksYev7PoX6/ZzJ1ksWKZY5NFoDXTNYUgzFUTOoEaOg3BAQKadb3Qbbq XIrxmPBdgrn9QI7NCgfnAY3Tb4EEjs3ON/BNyEhUENcXOH6I1NbcuBQ7g9P73kE4 VORdoc8MdJ5eoKBpO8Ww8HECAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyduVzi1mWm+lYo2Tqt/0 XkCIWrDNP1QBMVPrE0/ZlU2bCGSoo2Z9FHQKz/mTyMRlhNqTfhJ5qU3U9XlyGOPJ piM+b91g26pnpXJ2Q2kOypSgOMOPA4cQ42PkHBEqhuzssfj9t7x47ppS94bboh46 xLSDRff/NAbtwTpvhStV3URYkxFG++cKGGa5MPXBrxIp+iZf9GnuxVdST5PGiVGP ODL/b69sPJQNbJHVquqUTOh5Ry8uuD2WZuXfKf7/C0jC/ie9m2+0CttNu9tMciGM EyKG1/Xhk5iIWO43m4SrrT2WkFlcZ1z2JSf9Pjm4C2+HovYpihwwdM/OdP8Xmsnr DzVB4YvQiW+IHBjStHVuyiZWc+JsgEPJzisNY0Wyc/kNyNtqVKpX6dRhMLanLmy+ f53cCSI05KPQAcGj6tdL+D60uKDkt+FsDa0BTAobZ31OsFVid0vCXtsbplNhW1IF HwsGXBTVcfXg44RLyL8Lk/2dQxDHNHzAUslJXzPxaHBLmt++2COa2EI1iWlvtznk Ok9WP8SOAIj+xdqoiHcC4j72BOVVgiITIJNHrbppZCq6qPR+fgXmXa+sDcGh30m6 9Wpbr28kLMSHiENCWTdsFij+NQTd5S47H7XTROHnalYDuF1RpS+DpQidT5tUimaT JZDr++FjKrnnijbyNF8b98UCAwEAAQ== -----END PUBLIC KEY----- aarch64 /dev/cdrom /media/cdrom iso9660 noauto,ro 0 0 /dev/usbdisk /media/usb vfat noauto,ro 0 0 localhost 127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain # /etc/inittab ::sysinit:/sbin/openrc sysinit ::sysinit:/sbin/openrc boot ::wait:/sbin/openrc default # Set up a couple of getty's tty1::respawn:/sbin/getty 38400 tty1 tty2::respawn:/sbin/getty 38400 tty2 tty3::respawn:/sbin/getty 38400 tty3 tty4::respawn:/sbin/getty 38400 tty4 tty5::respawn:/sbin/getty 38400 tty5 tty6::respawn:/sbin/getty 38400 tty6 # Put a getty on the serial port #ttyS0::respawn:/sbin/getty -L 115200 ttyS0 vt100 # Stuff to do for the 3-finger salute ::ctrlaltdel:/sbin/reboot # Stuff to do before rebooting ::shutdown:/sbin/openrc shutdown af_packet ipv6 # musl itself does not support NSS, however some third-party DNS # implementations use the nsswitch.conf file to determine what # policy to follow. # Editing this file is not recommended. hosts: files dns export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" export PAGER=less umask 022 # use nicer PS1 for bash and busybox ash if [ -n "$BASH_VERSION" -o "$BB_ASH_VERSION" ]; then PS1='\h:\w\$ ' # use nicer PS1 for zsh elif [ -n "$ZSH_VERSION" ]; then PS1='%m:%~%# ' # set up fallback default PS1 else : "${HOSTNAME:=$(hostname)}" PS1='${HOSTNAME%%.*}:$PWD' [ "$(id -u)" -eq 0 ] && PS1="${PS1}# " || PS1="${PS1}\$ " fi for script in /etc/profile.d/*.sh ; do if [ -r "$script" ] ; then . "$script" fi done unset script # Internet (IP) protocols # # Updated from http://www.iana.org/assignments/protocol-numbers and other # sources. # New protocols will be added on request if they have been officially # assigned by IANA and are not historical. # If you need a huge list of used numbers please install the nmap package. ip 0 IP # internet protocol, pseudo protocol number hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883] icmp 1 ICMP # internet control message protocol igmp 2 IGMP # Internet Group Management ggp 3 GGP # gateway-gateway protocol ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') st 5 ST # ST datagram mode tcp 6 TCP # transmission control protocol egp 8 EGP # exterior gateway protocol igp 9 IGP # any private interior gateway (Cisco) pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram protocol hmp 20 HMP # host monitoring protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "reliable datagram" protocol iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905] dccp 33 DCCP # Datagram Congestion Control Prot. [RFC4340] xtp 36 XTP # Xpress Transfer Protocol ddp 37 DDP # Datagram Delivery Protocol idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport ipv6 41 IPv6 # Internet Protocol, version 6 ipv6-route 43 IPv6-Route # Routing Header for IPv6 ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 idrp 45 IDRP # Inter-Domain Routing Protocol rsvp 46 RSVP # Reservation Protocol gre 47 GRE # General Routing Encapsulation esp 50 IPSEC-ESP # Encap Security Payload [RFC2406] ah 51 IPSEC-AH # Authentication Header [RFC2402] skip 57 SKIP # SKIP ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB) vmtp 81 VMTP # Versatile Message Transport eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) ospf 89 OSPFIGP # Open Shortest Path First IGP ax.25 93 AX.25 # AX.25 frames ipip 94 IPIP # IP-within-IP Encapsulation Protocol etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] encap 98 ENCAP # Yet Another IP encapsulation [RFC1241] # 99 # any private encryption scheme pim 103 PIM # Protocol Independent Multicast ipcomp 108 IPCOMP # IP Payload Compression Protocol vrrp 112 VRRP # Virtual Router Redundancy Protocol [RFC5798] l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661] isis 124 ISIS # IS-IS over IPv4 sctp 132 SCTP # Stream Control Transmission Protocol fc 133 FC # Fibre Channel mobility-header 135 Mobility-Header # Mobility Support for IPv6 [RFC3775] udplite 136 UDPLite # UDP-Lite [RFC3828] mpls-in-ip 137 MPLS-in-IP # MPLS-in-IP [RFC4023] manet 138 # MANET Protocols [RFC5498] hip 139 HIP # Host Identity Protocol shim6 140 Shim6 # Shim6 Protocol [RFC5533] wesp 141 WESP # Wrapped Encapsulating Security Payload rohc 142 ROHC # Robust Header Compression ethernet 143 Ethernet # Ethernet encapsulation for SRv6 [RFC8986] # The following entries have not been assigned by IANA but are used # internally by the Linux kernel. mptcp 262 MPTCP # Multipath TCP connection # Network services, Internet style # # Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml . # # New ports will be added on request if they have been officially assigned # by IANA and used in the real-world or are needed by a debian package. # If you need a huge list of used numbers please install the nmap package. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp # SSH Remote Login Protocol telnet 23/tcp smtp 25/tcp mail time 37/tcp timserver time 37/udp timserver whois 43/tcp nicname tacacs 49/tcp # Login Host Protocol (TACACS) tacacs 49/udp domain 53/tcp # Domain Name Server domain 53/udp bootps 67/udp bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher finger 79/tcp http 80/tcp www # WorldWideWeb HTTP kerberos 88/tcp kerberos5 krb5 kerberos-sec # Kerberos v5 kerberos 88/udp kerberos5 krb5 kerberos-sec # Kerberos v5 iso-tsap 102/tcp tsap # part of ISODE acr-nema 104/tcp dicom # Digital Imag. & Comm. 300 pop3 110/tcp pop-3 # POP version 3 sunrpc 111/tcp portmapper # RPC 4.0 portmapper sunrpc 111/udp portmapper auth 113/tcp authentication tap ident nntp 119/tcp readnews untp # USENET News Transfer Protocol ntp 123/udp # Network Time Protocol epmap 135/tcp loc-srv # DCE endpoint resolution netbios-ns 137/udp # NETBIOS Name Service netbios-dgm 138/udp # NETBIOS Datagram Service netbios-ssn 139/tcp # NETBIOS session service imap2 143/tcp imap # Interim Mail Access P 2 and 4 snmp 161/tcp # Simple Net Mgmt Protocol snmp 161/udp snmp-trap 162/tcp snmptrap # Traps for SNMP snmp-trap 162/udp snmptrap cmip-man 163/tcp # ISO mgmt over IP (CMOT) cmip-man 163/udp cmip-agent 164/tcp cmip-agent 164/udp mailq 174/tcp # Mailer transport queue for Zmailer xdmcp 177/udp # X Display Manager Control Protocol bgp 179/tcp # Border Gateway Protocol smux 199/tcp # SNMP Unix Multiplexer qmtp 209/tcp # Quick Mail Transfer Protocol z3950 210/tcp wais # NISO Z39.50 database ipx 213/udp # IPX [RFC1234] ptp-event 319/udp ptp-general 320/udp pawserv 345/tcp # Perf Analysis Workbench zserv 346/tcp # Zebra server rpc2portmap 369/tcp rpc2portmap 369/udp # Coda portmapper codaauth2 370/tcp codaauth2 370/udp # Coda authentication server clearcase 371/udp Clearcase ldap 389/tcp # Lightweight Directory Access Protocol ldap 389/udp svrloc 427/tcp # Server Location svrloc 427/udp https 443/tcp # http protocol over TLS/SSL https 443/udp # HTTP/3 snpp 444/tcp # Simple Network Paging Protocol microsoft-ds 445/tcp # Microsoft Naked CIFS kpasswd 464/tcp kpasswd 464/udp submissions 465/tcp ssmtp smtps urd # Submission over TLS [RFC8314] saft 487/tcp # Simple Asynchronous File Transfer isakmp 500/udp # IPSEC key management rtsp 554/tcp # Real Time Stream Control Protocol rtsp 554/udp nqs 607/tcp # Network Queuing system asf-rmcp 623/udp # ASF Remote Management and Control Protocol qmqp 628/tcp ipp 631/tcp # Internet Printing Protocol ldp 646/tcp # Label Distribution Protocol ldp 646/udp # # UNIX specific services # exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd syslog # no passwords used syslog 514/udp printer 515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route 520/udp router routed # RIP gdomap 538/tcp # GNUstep distributed objects gdomap 538/udp uucp 540/tcp uucpd # uucp daemon klogin 543/tcp # Kerberized `rlogin' (v5) kshell 544/tcp krcmd # Kerberized `rsh' (v5) dhcpv6-client 546/udp dhcpv6-server 547/udp afpovertcp 548/tcp # AFP over TCP nntps 563/tcp snntp # NNTP over SSL submission 587/tcp # Submission [RFC4409] ldaps 636/tcp # LDAP over SSL ldaps 636/udp tinc 655/tcp # tinc control port tinc 655/udp silc 706/tcp kerberos-adm 749/tcp # Kerberos `kadmin' (v5) # domain-s 853/tcp # DNS over TLS [RFC7858] domain-s 853/udp # DNS over DTLS [RFC8094] rsync 873/tcp ftps-data 989/tcp # FTP over SSL (data) ftps 990/tcp telnets 992/tcp # Telnet over SSL imaps 993/tcp # IMAP over SSL pop3s 995/tcp # POP-3 over SSL # # From ``Assigned Numbers'': # #> The Registered Ports are not controlled by the IANA and on most systems #> can be used by ordinary user processes or programs executed by ordinary #> users. # #> Ports are used in the TCP [45,106] to name the ends of logical #> connections which carry long term conversations. For the purpose of #> providing services to unknown callers, a service contact port is #> defined. This list specifies the port used by the server process as its #> contact port. While the IANA can not control uses of these ports it #> does register or list uses of these ports as a convienence to the #> community. # socks 1080/tcp # socks proxy server proofd 1093/tcp rootd 1094/tcp openvpn 1194/tcp openvpn 1194/udp rmiregistry 1099/tcp # Java RMI Registry lotusnote 1352/tcp lotusnotes # Lotus Note ms-sql-s 1433/tcp # Microsoft SQL Server ms-sql-m 1434/udp # Microsoft SQL Monitor ingreslock 1524/tcp datametrics 1645/tcp old-radius datametrics 1645/udp old-radius sa-msg-port 1646/tcp old-radacct sa-msg-port 1646/udp old-radacct kermit 1649/tcp groupwise 1677/tcp l2f 1701/udp l2tp radius 1812/tcp radius 1812/udp radius-acct 1813/tcp radacct # Radius Accounting radius-acct 1813/udp radacct cisco-sccp 2000/tcp # Cisco SCCP nfs 2049/tcp # Network File System nfs 2049/udp # Network File System gnunet 2086/tcp gnunet 2086/udp rtcm-sc104 2101/tcp # RTCM SC-104 IANA 1/29/99 rtcm-sc104 2101/udp gsigatekeeper 2119/tcp gris 2135/tcp # Grid Resource Information Server cvspserver 2401/tcp # CVS client/server operations venus 2430/tcp # codacon port venus 2430/udp # Venus callback/wbc interface venus-se 2431/tcp # tcp side effects venus-se 2431/udp # udp sftp side effect codasrv 2432/tcp # not used codasrv 2432/udp # server port codasrv-se 2433/tcp # tcp side effects codasrv-se 2433/udp # udp sftp side effect mon 2583/tcp # MON traps mon 2583/udp dict 2628/tcp # Dictionary server f5-globalsite 2792/tcp gsiftp 2811/tcp gpsd 2947/tcp gds-db 3050/tcp gds_db # InterBase server icpv2 3130/udp icp # Internet Cache Protocol isns 3205/tcp # iSNS Server Port isns 3205/udp # iSNS Server Port iscsi-target 3260/tcp mysql 3306/tcp ms-wbt-server 3389/tcp nut 3493/tcp # Network UPS Tools nut 3493/udp distcc 3632/tcp # distributed compiler daap 3689/tcp # Digital Audio Access Protocol svn 3690/tcp subversion # Subversion protocol suucp 4031/tcp # UUCP over SSL sysrqd 4094/tcp # sysrq daemon sieve 4190/tcp # ManageSieve Protocol epmd 4369/tcp # Erlang Port Mapper Daemon remctl 4373/tcp # Remote Authenticated Command Service f5-iquery 4353/tcp # F5 iQuery ntske 4460/tcp # Network Time Security Key Establishment ipsec-nat-t 4500/udp # IPsec NAT-Traversal [RFC3947] iax 4569/udp # Inter-Asterisk eXchange mtn 4691/tcp # monotone Netsync Protocol radmin-port 4899/tcp # RAdmin Port sip 5060/tcp # Session Initiation Protocol sip 5060/udp sip-tls 5061/tcp sip-tls 5061/udp xmpp-client 5222/tcp jabber-client # Jabber Client Connection xmpp-server 5269/tcp jabber-server # Jabber Server Connection cfengine 5308/tcp mdns 5353/udp # Multicast DNS postgresql 5432/tcp postgres # PostgreSQL Database freeciv 5556/tcp rptp # Freeciv gameplay amqps 5671/tcp # AMQP protocol over TLS/SSL amqp 5672/tcp amqp 5672/sctp x11 6000/tcp x11-0 # X Window System x11-1 6001/tcp x11-2 6002/tcp x11-3 6003/tcp x11-4 6004/tcp x11-5 6005/tcp x11-6 6006/tcp x11-7 6007/tcp gnutella-svc 6346/tcp # gnutella gnutella-svc 6346/udp gnutella-rtr 6347/tcp # gnutella gnutella-rtr 6347/udp redis 6379/tcp sge-qmaster 6444/tcp sge_qmaster # Grid Engine Qmaster Service sge-execd 6445/tcp sge_execd # Grid Engine Execution Service mysql-proxy 6446/tcp # MySQL Proxy babel 6696/udp # Babel Routing Protocol ircs-u 6697/tcp # Internet Relay Chat via TLS/SSL bbs 7000/tcp afs3-fileserver 7000/udp afs3-callback 7001/udp # callbacks to cache managers afs3-prserver 7002/udp # users & groups database afs3-vlserver 7003/udp # volume location database afs3-kaserver 7004/udp # AFS/Kerberos authentication afs3-volser 7005/udp # volume managment server afs3-bos 7007/udp # basic overseer process afs3-update 7008/udp # server-to-server updater afs3-rmtsys 7009/udp # remote cache manager service font-service 7100/tcp xfs # X Font Service http-alt 8080/tcp webcache # WWW caching service puppet 8140/tcp # The Puppet master service bacula-dir 9101/tcp # Bacula Director bacula-fd 9102/tcp # Bacula File Daemon bacula-sd 9103/tcp # Bacula Storage Daemon xmms2 9667/tcp # Cross-platform Music Multiplexing System nbd 10809/tcp # Linux Network Block Device zabbix-agent 10050/tcp # Zabbix Agent zabbix-trapper 10051/tcp # Zabbix Trapper amanda 10080/tcp # amanda backup services dicom 11112/tcp hkp 11371/tcp # OpenPGP HTTP Keyserver db-lsp 17500/tcp # Dropbox LanSync Protocol dcap 22125/tcp # dCache Access Protocol gsidcap 22128/tcp # GSI dCache Access Protocol wnn6 22273/tcp # wnn6 # # Datagram Delivery Protocol services # rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol #========================================================================= # The remaining port numbers are not as allocated by IANA. #========================================================================= # Kerberos (Project Athena/MIT) services kerberos4 750/udp kerberos-iv kdc # Kerberos (server) kerberos4 750/tcp kerberos-iv kdc kerberos-master 751/udp kerberos_master # Kerberos authentication kerberos-master 751/tcp passwd-server 752/udp passwd_server # Kerberos passwd server krb-prop 754/tcp krb_prop krb5_prop hprop # Kerberos slave propagation zephyr-srv 2102/udp # Zephyr server zephyr-clt 2103/udp # Zephyr serv-hm connection zephyr-hm 2104/udp # Zephyr hostmanager iprop 2121/tcp # incremental propagation supfilesrv 871/tcp # Software Upgrade Protocol server supfiledbg 1127/tcp # Software Upgrade Protocol debugging # # Services added for the Debian GNU/Linux distribution # poppassd 106/tcp # Eudora moira-db 775/tcp moira_db # Moira database moira-update 777/tcp moira_update # Moira update protocol moira-ureg 779/udp moira_ureg # Moira user registration spamd 783/tcp # spamassassin daemon skkserv 1178/tcp # skk jisho server port predict 1210/udp # predict -- satellite tracking rmtcfg 1236/tcp # Gracilis Packeten remote config server xtel 1313/tcp # french minitel xtelw 1314/tcp # french minitel zebrasrv 2600/tcp # zebra service zebra 2601/tcp # zebra vty ripd 2602/tcp # ripd vty (zebra) ripngd 2603/tcp # ripngd vty (zebra) ospfd 2604/tcp # ospfd vty (zebra) bgpd 2605/tcp # bgpd vty (zebra) ospf6d 2606/tcp # ospf6d vty (zebra) ospfapi 2607/tcp # OSPF-API isisd 2608/tcp # ISISd vty (zebra) fax 4557/tcp # FAX transmission service (old) hylafax 4559/tcp # HylaFAX client-server protocol (new) munin 4949/tcp lrrd # Munin rplay 5555/udp # RPlay audio service nrpe 5666/tcp # Nagios Remote Plugin Executor nsca 5667/tcp # Nagios Agent - NSCA canna 5680/tcp # cannaserver syslog-tls 6514/tcp # Syslog over TLS [RFC5425] sane-port 6566/tcp sane saned # SANE network scanner daemon ircd 6667/tcp # Internet Relay Chat zope-ftp 8021/tcp # zope management by ftp tproxy 8081/tcp # Transparent Proxy omniorb 8088/tcp # OmniORB clc-build-daemon 8990/tcp # Common lisp build daemon xinetd 9098/tcp git 9418/tcp # Git Version Control System zope 9673/tcp # zope server webmin 10000/tcp kamanda 10081/tcp # amanda backup services (Kerberos) amandaidx 10082/tcp # amanda backup services amidxtape 10083/tcp # amanda backup services sgi-cmsd 17001/udp # Cluster membership services daemon sgi-crsd 17002/udp sgi-gcd 17003/udp # SGI Group membership daemon sgi-cad 17004/tcp # Cluster Admin daemon binkp 24554/tcp # binkp fidonet protocol asp 27374/tcp # Address Search Protocol asp 27374/udp csync2 30865/tcp # cluster synchronization tool dircproxy 57000/tcp # Detachable IRC Proxy tfido 60177/tcp # fidonet EMSI over telnet fido 60179/tcp # fidonet EMSI over TCP # Local services # valid login shells /bin/sh /bin/ash # content of this file will override /etc/sysctl.d/* usr/bin/[ usr/bin/[[ sbin/acpid usr/sbin/add-shell usr/sbin/addgroup usr/sbin/adduser sbin/adjtimex bin/arch sbin/arp usr/sbin/arping bin/ash usr/bin/awk bin/base64 usr/bin/basename bin/bbconfig usr/bin/bc usr/bin/beep usr/bin/blkdiscard sbin/blkid sbin/blockdev usr/sbin/brctl usr/bin/bunzip2 usr/bin/bzcat usr/bin/bzip2 usr/bin/cal bin/cat bin/chattr bin/chgrp bin/chmod bin/chown usr/sbin/chpasswd usr/sbin/chroot usr/bin/chvt usr/bin/cksum usr/bin/clear usr/bin/cmp usr/bin/comm bin/cp usr/bin/cpio usr/sbin/crond usr/bin/crontab usr/bin/cryptpw usr/bin/cut bin/date usr/bin/dc bin/dd usr/bin/deallocvt usr/sbin/delgroup usr/sbin/deluser sbin/depmod bin/df usr/bin/diff usr/bin/dirname bin/dmesg bin/dnsdomainname usr/bin/dos2unix usr/bin/du bin/dumpkmap bin/echo bin/egrep usr/bin/eject usr/bin/env usr/sbin/ether-wake usr/bin/expand usr/bin/expr usr/bin/factor usr/bin/fallocate bin/false bin/fatattr usr/sbin/fbset sbin/fbsplash bin/fdflush sbin/fdisk bin/fgrep usr/bin/find sbin/findfs usr/bin/flock usr/bin/fold usr/bin/free sbin/fsck sbin/fstrim bin/fsync usr/bin/fuser bin/getopt sbin/getty bin/grep usr/bin/groups bin/gunzip bin/gzip sbin/halt usr/bin/hd usr/bin/head usr/bin/hexdump usr/bin/hostid bin/hostname sbin/hwclock usr/bin/id sbin/ifconfig sbin/ifdown sbin/ifenslave sbin/ifup sbin/init sbin/inotifyd sbin/insmod usr/bin/install bin/ionice bin/iostat sbin/ip sbin/ipaddr bin/ipcalc usr/bin/ipcrm usr/bin/ipcs sbin/iplink sbin/ipneigh sbin/iproute sbin/iprule sbin/iptunnel bin/kbd_mode bin/kill usr/bin/killall usr/sbin/killall5 sbin/klogd usr/bin/last usr/bin/less bin/link bin/linux32 bin/linux64 bin/ln usr/sbin/loadfont sbin/loadkmap usr/bin/logger bin/login sbin/logread sbin/losetup bin/ls bin/lsattr sbin/lsmod usr/bin/lsof usr/bin/lsusb usr/bin/lzcat usr/bin/lzma bin/lzop usr/bin/lzopcat bin/makemime usr/bin/md5sum sbin/mdev usr/bin/mesg usr/bin/microcom bin/mkdir sbin/mkdosfs usr/bin/mkfifo sbin/mkfs.vfat bin/mknod usr/bin/mkpasswd sbin/mkswap bin/mktemp sbin/modinfo sbin/modprobe bin/more bin/mount bin/mountpoint bin/mpstat bin/mv sbin/nameif usr/sbin/nanddump usr/sbin/nandwrite usr/sbin/nbd-client usr/bin/nc bin/netstat bin/nice usr/bin/nl usr/bin/nmeter usr/bin/nohup sbin/nologin usr/bin/nproc usr/bin/nsenter usr/bin/nslookup usr/sbin/ntpd usr/bin/od usr/bin/openvt usr/sbin/partprobe usr/bin/passwd usr/bin/paste usr/bin/pgrep bin/pidof bin/ping bin/ping6 bin/pipe_progress sbin/pivot_root usr/bin/pkill usr/bin/pmap sbin/poweroff bin/printenv usr/bin/printf bin/ps usr/bin/pscan usr/bin/pstree bin/pwd usr/bin/pwdx sbin/raidautorun usr/sbin/rdate usr/sbin/rdev usr/sbin/readahead usr/bin/readlink usr/bin/realpath sbin/reboot bin/reformime usr/sbin/remove-shell usr/bin/renice usr/bin/reset usr/bin/resize bin/rev usr/sbin/rfkill bin/rm bin/rmdir sbin/rmmod sbin/route bin/run-parts bin/sed usr/sbin/sendmail usr/bin/seq sbin/setconsole usr/sbin/setfont usr/bin/setkeycodes usr/sbin/setlogcons bin/setpriv bin/setserial usr/bin/setsid bin/sh usr/bin/sha1sum usr/bin/sha256sum usr/bin/sha3sum usr/bin/sha512sum usr/bin/showkey usr/bin/shred usr/bin/shuf sbin/slattach bin/sleep usr/bin/sort usr/bin/split bin/stat usr/bin/strings bin/stty bin/su usr/bin/sum sbin/swapoff sbin/swapon sbin/switch_root bin/sync sbin/sysctl sbin/syslogd usr/bin/tac usr/bin/tail bin/tar usr/bin/tee usr/bin/test usr/bin/time usr/bin/timeout usr/bin/top bin/touch usr/bin/tr usr/bin/traceroute usr/bin/traceroute6 usr/bin/tree bin/true usr/bin/truncate usr/bin/tty usr/bin/ttysize sbin/tunctl sbin/udhcpc usr/bin/udhcpc6 bin/umount bin/uname usr/bin/unexpand usr/bin/uniq usr/bin/unix2dos usr/bin/unlink usr/bin/unlzma usr/bin/unlzop usr/bin/unshare usr/bin/unxz usr/bin/unzip usr/bin/uptime bin/usleep usr/bin/uudecode usr/bin/uuencode sbin/vconfig usr/bin/vi usr/bin/vlock usr/bin/volname bin/watch sbin/watchdog usr/bin/wc usr/bin/wget usr/bin/which usr/bin/who usr/bin/whoami usr/bin/whois usr/bin/xargs usr/bin/xxd usr/bin/xzcat usr/bin/yes bin/zcat sbin/zcip /var/log/acpid.log { missingok notifempty sharedscripts postrotate /etc/init.d/acpid --quiet --ifstarted restart || true endscript } #!/bin/sh # Block ifup until DAD completion # Copyright (c) 2016-2018 Kaarle Ritvanen has_flag() { ip address show dev $IFACE up | grep -q " $1 " } counter=100 while [ "$counter" -gt 0 ] && has_flag tentative && ! has_flag dadfailed; do sleep 0.2 counter=$((counter - 1)) done console tty0 tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 hvc0 ttyS0 ttyS1 ttyS2 ttyGS0 ttyAMA0 ttyAMA1 ttyTCU0 ttyTHS0 ttyTHS1 ttymxc0 ttymxc2 # Do not overwrite /etc/resolv.conf #RESOLV_CONF="no" # Use alternative path for resolv.conf #RESOLV_CONF="/tmp/resolv.conf" # Prevent overwriting of resolv.conf on a per-interface basis #NO_DNS="eth1 wlan1" # List of interfaces where DHCP routes are ignored #NO_GATEWAY="eth1 wlan1" #!/bin/sh # script for udhcpc # Copyright (c) 2008 Natanael Copa UDHCPC="/etc/udhcpc" UDHCPC_CONF="$UDHCPC/udhcpc.conf" RESOLV_CONF="/etc/resolv.conf" [ -f $UDHCPC_CONF ] && . $UDHCPC_CONF export broadcast export dns export domain export interface export ip export mask export metric export staticroutes export router export subnet export PATH=/usr/bin:/bin:/usr/sbin:/sbin run_scripts() { local dir=$1 if [ -d $dir ]; then for i in $dir/*; do [ -f $i ] && $i done fi } deconfig() { ip -4 addr flush dev $interface } is_wifi() { test -e /sys/class/net/$interface/phy80211 } if_index() { if [ -e /sys/class/net/$interface/ifindex ]; then cat /sys/class/net/$interface/ifindex else ip -4 link show dev $interface | head -n1 | cut -d: -f1 fi } calc_metric() { local base= if is_wifi; then base=300 else base=200 fi echo $(( $base + $(if_index) )) } route_add() { local to=$1 gw=$2 num=$3 # special case for /32 subnets: # /32 instructs kernel to always use routing for all outgoing packets # (they can never be sent to local subnet - there is no local subnet for /32). # Used in datacenters, avoids the need for private ip-addresses between two hops. if [ "$subnet" = "255.255.255.255" ]; then ip -4 route add $gw dev $interface fi ip -4 route add $to via $gw dev $interface \ metric $(( $num + ${IF_METRIC:-$(calc_metric)} )) } routes() { [ -z "$router" ] && [ -z "$staticroutes" ] && return for i in $NO_GATEWAY; do [ "$i" = "$interface" ] && return done while ip -4 route del default via dev $interface 2>/dev/null; do : done local num=0 # RFC3442: # If the DHCP server returns both a Classless Static Routes option # and a Router option, the DHCP client MUST ignore the Router option. if [ -n "$staticroutes" ]; then # static routes format: dest1/mask gw1 ... destn/mask gwn set -- $staticroutes while [ -n "$1" ] && [ -n "$2" ]; do local dest="$1" gw="$2" if [ "$gw" != "0.0.0.0" ]; then route_add $dest $gw $num && num=$(( $num + 1)) fi shift 2 done else local gw= for gw in $router; do route_add 0.0.0.0/0 $gw $num && num=$(( $num + 1 )) done fi } resolvconf() { local i [ -n "$IF_PEER_DNS" ] && [ "$IF_PEER_DNS" != "yes" ] && return if [ "$RESOLV_CONF" = "no" ] || [ "$RESOLV_CONF" = "NO" ] \ || [ -z "$RESOLV_CONF" ] || [ -z "$dns" ]; then return fi for i in $NO_DNS; do [ "$i" = "$interface" ] && return done echo -n > "$RESOLV_CONF.$$" if [ -n "$search" ]; then echo "search $search" >> "$RESOLV_CONF.$$" elif [ -n "$domain" ]; then echo "search $domain" >> "$RESOLV_CONF.$$" fi for i in $dns; do echo "nameserver $i" >> "$RESOLV_CONF.$$" done chmod a+r "$RESOLV_CONF.$$" mv -f "$RESOLV_CONF.$$" "$RESOLV_CONF" } bound() { ip -4 addr add $ip/$mask ${broadcast:+broadcast $broadcast} dev $interface ip -4 link set dev $interface up routes resolvconf } renew() { if ! ip -4 addr show dev $interface | grep $ip/$mask; then ip -4 addr flush dev $interface ip -4 addr add $ip/$mask ${broadcast:+broadcast $broadcast} dev $interface fi local i for i in $router; do if ! ip -4 route show | grep ^default | grep $i; then routes break fi done if ! grep "^search $domain"; then resolvconf return fi for i in $dns; do if ! grep "^nameserver $i"; then resolvconf return fi done } case "$1" in deconfig|renew|bound) run_scripts $UDHCPC/pre-$1 $1 run_scripts $UDHCPC/post-$1 ;; leasefail) echo "udhcpc failed to get a DHCP lease" >&2 ;; nak) echo "udhcpc received DHCP NAK" >&2 ;; *) echo "Error: this script should be called from udhcpc" >&2 exit 1 ;; esac exit 0 # do daily/weekly/monthly maintenance # min hour day month weekday command */15 * * * * run-parts /etc/periodic/15min 0 * * * * run-parts /etc/periodic/hourly 0 2 * * * run-parts /etc/periodic/daily 0 3 * * 6 run-parts /etc/periodic/weekly 0 5 1 * * run-parts /etc/periodic/monthly # Aliases to tell insmod/modprobe which modules to use # Uncomment the network protocols you don't want loaded: # alias net-pf-1 off # Unix # alias net-pf-2 off # IPv4 # alias net-pf-3 off # Amateur Radio AX.25 # alias net-pf-4 off # IPX # alias net-pf-5 off # DDP / appletalk # alias net-pf-6 off # Amateur Radio NET/ROM # alias net-pf-9 off # X.25 # alias net-pf-10 off # IPv6 # alias net-pf-11 off # ROSE / Amateur Radio X.25 PLP # alias net-pf-19 off # Acorn Econet alias char-major-10-175 agpgart alias char-major-10-200 tun alias char-major-81 bttv alias char-major-108 ppp_generic alias /dev/ppp ppp_generic alias tty-ldisc-3 ppp_async alias tty-ldisc-14 ppp_synctty alias ppp-compress-21 bsd_comp alias ppp-compress-24 ppp_deflate alias ppp-compress-26 ppp_deflate # Crypto modules (see http://www.kerneli.org/) alias loop-xfer-gen-0 loop_gen alias loop-xfer-3 loop_fish2 alias loop-xfer-gen-10 loop_gen alias cipher-2 des alias cipher-3 fish2 alias cipher-4 blowfish alias cipher-6 idea alias cipher-7 serp6f alias cipher-8 mars6 alias cipher-11 rc62 alias cipher-15 dfc2 alias cipher-16 rijndael alias cipher-17 rc5 # Support for i2c and lm_sensors alias char-major-89 i2c-dev # xfrm alias xfrm-type-2-4 xfrm4_tunnel alias xfrm-type-2-50 esp4 alias xfrm-type-2-51 ah4 alias xfrm-type-2-108 ipcomp alias xfrm-type-10-41 xfrm6_tunnel alias xfrm-type-10-50 esp6 alias xfrm-type-10-51 ah6 alias xfrm-type-10-108 ipcomp6 alias sha1 sha1-generic # change to aes-i586 to boost performance alias aes aes-generic # # Listing a module here prevents the hotplug scripts from loading it. # Usually that'd be so that some other driver will bind it instead, # no matter which driver happens to get probed first. Sometimes user # mode tools can also control driver binding. # tulip ... de4x5, xircom_tulip_cb, dmfe (...) handle same devices blacklist de4x5 # At least 2.4.3 and later xircom_tulip doesn't have that conflict # xircom_tulip_cb blacklist dmfe #evbug is a debug tool and should be loaded explicitly blacklist evbug # Alternate 8139 driver. Some 8139 cards need this specific driver, # though... # blacklist 8139cp # Ethernet over IEEE1394 module. In too many cases this will load # when there's no eth1394 device present (just an IEEE1394 port) blacklist eth1394 # This module causes many Intel motherboards to crash and reboot. blacklist i8xx-tco # The kernel lists this as "experimental", but for now it's "broken" blacklist via-ircc # ALSA modules to support sound modems. These should be loaded manually # if needed. For most people they just break sound support... blacklist snd-atiixp-modem blacklist snd-intel8x0m blacklist snd-via82xx-modem # we don't want use the pc speaker blacklist snd-pcsp # Alternative module to Orinoco Wireless Cards. blacklist hostap blacklist hostap_cs # framebuffer drivers blacklist aty128fb blacklist atyfb blacklist radeonfb blacklist i810fb blacklist cirrusfb blacklist intelfb blacklist kyrofb blacklist i2c-matroxfb blacklist hgafb blacklist nvidiafb blacklist rivafb blacklist savagefb blacklist sstfb blacklist neofb blacklist tridentfb blacklist tdfxfb blacklist viafb blacklist virgefb blacklist vga16fb blacklist matroxfb_base blacklist vt8623fb # blacklist 1394 drivers blacklist ohci1394 blacklist video1394 blacklist dv1394 # blacklist mISDN dirver by default as we prefer dahdi drivers blacklist hfcmulti blacklist hfcpci blacklist hfcsusb # blacklist C7 cpu freq. use acpi-cpufreq instead blacklist e_powersaver blacklist microcode # needs init config, not compatible with acpid # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12999 blacklist tiny_power_button alias parport_lowlevel parport_pc alias char-major-10-144 nvram alias binfmt-0064 binfmt_aout alias char-major-10-135 rtc # enable modeset options radeon modeset=1 options i915 modeset=1 options nouveau modeset=1 Welcome to Alpine! The Alpine Wiki contains a large amount of how-to guides and general information about administrating Alpine systems. See . You can setup the system with the command: setup-alpine You may change this message by editing /etc/motd. export CHARSET=${CHARSET:-UTF-8} export LANG=${LANG:-C.UTF-8} export LC_COLLATE=${LC_COLLATE:-C} This directory should contain shell scripts configuring system-wide environment on users' shells. Files with the .sh extension found in this directory are evaluated by Bourne-compatible shells (like ash, bash or zsh) when started as a login shell. # Setup a red prompt for root and a green one for users. # Symlink this file to color_prompt.sh to actually enable it. _normal=$'\e[0m' if [ "$USER" = root ]; then _color=$'\e[1;31m' _symbol='#' else _color=$'\e[1;32m' _symbol='$' fi if [ -n "$ZSH_VERSION" ]; then PS1="%{$_color%}%m [%{$_normal%}%~%{$_color%}]$_symbol %{$_normal%}" else PS1="\[$_color\]\h [\[$_normal\]\w\[$_color\]]$_symbol \[$_normal\]" fi unset _normal _color _symbol # Prevents SYN DOS attacks. Applies to ipv6 as well, despite name. net.ipv4.tcp_syncookies = 1 # Prevents ip spoofing. net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 # Only groups within this id range can use ping. net.ipv4.ping_group_range=999 59999 # Redirects can potentially be used to maliciously alter hosts # routing tables. net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 1 net.ipv6.conf.all.accept_redirects = 0 # The source routing feature includes some known vulnerabilities. net.ipv4.conf.all.accept_source_route = 0 net.ipv6.conf.all.accept_source_route = 0 # See RFC 1337 net.ipv4.tcp_rfc1337 = 1 ## Enable IPv6 Privacy Extensions (see RFC4941 and RFC3041) net.ipv6.conf.default.use_tempaddr = 2 net.ipv6.conf.all.use_tempaddr = 2 # Restarts computer after 120 seconds after kernel panic kernel.panic = 120 # Users should not be able to create soft or hard links to files # which they do not own. This mitigates several privilege # escalation vulnerabilities. fs.protected_hardlinks = 1 fs.protected_symlinks = 1 # Disable unprivileged use of the bpf(2) syscall. # Allowing unprivileged use of the bpf(2) syscall may allow a # malicious user to compromise the machine. kernel.unprivileged_bpf_disabled = 1 #!/bin/sh [ -z "$IF_BOND_MEMBERS" ] && IF_BOND_MEMBERS="$IF_BOND_SLAVES" case "$PHASE" in depend) echo "$IF_BOND_MEMBERS" ;; esac #!/bin/sh case "$PHASE" in depend) if [ "$IF_BRIDGE_PORTS" != "none" ]; then echo "$IF_BRIDGE_PORTS" fi ;; esac #!/bin/sh # some users provide a shell fragment for the hostname property. [ -n "$IF_DHCP_HOSTNAME" ] && IF_DHCP_HOSTNAME=$(eval echo $IF_DHCP_HOSTNAME) determine_implementation() { [ -n "$IF_DHCP_PROGRAM" ] && echo "$IF_DHCP_PROGRAM" && return [ -x /sbin/dhcpcd ] && echo "dhcpcd" && return [ -x /usr/sbin/dhclient ] && echo "dhclient" && return [ -x /sbin/udhcpc ] && echo "udhcpc" && return echo "could not find a supported DHCP implementation" exit 1 } start() { case "$1" in dhcpcd) [ -n "$IF_DHCP_HOSTNAME" ] && optargs="$optargs -h $IF_DHCP_HOSTNAME" [ -n "$IF_DHCP_VENDOR" ] && optargs="$optargs -i $IF_DHCP_VENDOR" [ -n "$IF_DHCP_CLIENT_ID" ] && optargs="$optargs -i $IF_DHCP_CLIENT_ID" [ -n "$IF_DHCP_LEASETIME" ] && optargs="$optargs -l $IF_DHCP_LEASETIME" ${MOCK} /sbin/dhcpcd $optargs $IFACE ;; dhclient) # Specific config file given? if [ -n "$IF_DHCP_CONFIG" ]; then optargs="$optargs -cf $IF_DHCP_CONFIG" fi ${MOCK} /usr/sbin/dhclient -pf /var/run/dhclient.$IFACE.pid $optargs $IFACE ;; udhcpc) optargs=$(eval echo $IF_UDHCPC_OPTS) [ -n "$IF_DHCP_HOSTNAME" ] && optargs="$optargs -x hostname:$IF_DHCP_HOSTNAME" [ -n "$IF_DHCP_CLIENT_ID" ] && optargs="$optargs -c $IF_DHCP_CLIENT_ID" [ -n "$IF_DHCP_SCRIPT" ] && optargs="$optargs -s $IF_DHCP_SCRIPT" ${MOCK} /sbin/udhcpc -b -R -p /var/run/udhcpc.$IFACE.pid -i $IFACE $optargs ;; *) ;; esac } stop() { case "$1" in dhcpcd) ${MOCK} /sbin/dhcpcd -k $IFACE ;; dhclient) ${MOCK} kill -9 $(cat /var/run/dhclient.$IFACE.pid) 2>/dev/null ;; udhcpc) ${MOCK} kill $(cat /var/run/udhcpc.$IFACE.pid) ;; *) ;; esac } impl=$(determine_implementation) [ -z "$VERBOSE" ] || set -x case "$PHASE" in up) start $impl ;; down) stop $impl || true ;; *) ;; esac #!/bin/sh yesno() { case "$1" in yes|1) echo 1 ;; *) echo 0 ;; esac } [ "$PHASE" != "up" ] && exit 0 [ -z "$VERBOSE" ] || set -x [ -n "$IF_FORWARD_IPV4" ] && ${MOCK} /bin/sh -c "echo $(yesno $IF_FORWARD_IPV4) > /proc/sys/net/ipv4/conf/$IFACE/forwarding" [ -n "$IF_FORWARD_IPV6" ] && ${MOCK} /bin/sh -c "echo $(yesno $IF_FORWARD_IPV6) > /proc/sys/net/ipv6/conf/$IFACE/forwarding" [ -n "$IF_FORWARD_IPV4_MC" ] && ${MOCK} /bin/sh -c "echo $(yesno $IF_FORWARD_IPV4_MC) > /proc/sys/net/ipv4/conf/$IFACE/mc_forwarding" [ -n "$IF_FORWARD_IPV6_MC" ] && ${MOCK} /bin/sh -c "echo $(yesno $IF_FORWARD_IPV6_MC) > /proc/sys/net/ipv6/conf/$IFACE/mc_forwarding" exit 0 #!/bin/sh start() { ${MOCK} /bin/sh -c "echo 1 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra" } stop() { ${MOCK} /bin/sh -c "echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra" } [ -z "$VERBOSE" ] || set -x case "$PHASE" in up) start $impl ;; down) stop $impl ;; *) ;; esac #!/bin/sh [ -n "$VERBOSE" ] && set -x is_vlan() { case "$IFACE" in *#*) return 1 ;; *:*) return 1 ;; vlan*.*) return 1 ;; vlan*) IF_VLAN_ID="${IFACE#vlan}" [ -n "${IF_VLAN_RAW_DEVICE:-}" ] && return 0 return 1 ;; *.*) IF_VLAN_RAW_DEVICE="${IFACE%.*}" IF_VLAN_ID="${IFACE##*.}" return 0 ;; *) [ -z "${IF_VLAN_ID:-}" ] && return 1 [ -z "${IF_VLAN_RAW_DEVICE:-}" ] && return 1 return 0 ;; esac } case "$PHASE" in depend) # vlan-raw-device if is_vlan; then echo "$IF_VLAN_RAW_DEVICE" # veth-peer-name elif [ "${IF_LINK_TYPE}" = "veth" -a "${IF_VETH_PEER_NAME}" ]; then echo "${IF_VETH_PEER_NAME}" fi ;; create) if [ "${IF_LINK_TYPE}" = "dummy" ]; then if [ -d "/sys/class/net/${IFACE}" ]; then iface_type=$(ip -d link show dev "${IFACE}" | head -n3 | tail -n1 | awk '{ print $1 }') if [ "${iface_type}" != 'dummy' ]; then echo "Interface ${IFACE} exists but is of type ${iface_type} instead of dummy" exit 1 fi exit 0 fi ${MOCK} ip link add "${IFACE}" type dummy elif [ "${IF_LINK_TYPE}" = "veth" ]; then if [ ! -d "/sys/class/net/${IFACE}" ]; then ARGS="" if [ "${IF_VETH_PEER_NAME}" ]; then ARGS="peer ${IF_VETH_PEER_NAME}" fi ${MOCK} ip link add "${IFACE}" type veth ${ARGS} fi elif is_vlan; then if [ -d "/sys/class/net/${IFACE}" ]; then exit 0 fi if [ -z "${MOCK}" ]; then if [ ! -d "/sys/class/net/${IF_VLAN_RAW_DEVICE}" ]; then echo "Underlay device ${IF_VLAN_RAW_DEVICE} for ${IFACE} does not exist" exit 1 fi if ! [ -d /proc/net/vlan ]; then echo "Loading 8021q kernel module for VLAN support" ${MOCK} modprobe 8021q fi fi ${MOCK} ip link add link "${IF_VLAN_RAW_DEVICE}" name "${IFACE}" type vlan id "${IF_VLAN_ID}" fi ;; up) IF_LINK_OPTIONS="$IF_LINK_OPTIONS" [ -n "$IF_MTU" ] && IF_LINK_OPTIONS="$IF_LINK_OPTIONS mtu $IF_MTU" [ -n "$IF_HWADDRESS" ] && IF_LINK_OPTIONS="$IF_LINK_OPTIONS address $IF_HWADDRESS" ${MOCK} ip link set up dev "${IFACE}" ${IF_LINK_OPTIONS} # Set alias is configured if [ "${IF_ALIAS}" ]; then ${MOCK} ip link set alias "${IF_ALIAS}" dev "${IFACE}" fi ;; down) # Don't complain about a vanished interface when downing it if [ -z "${MOCK}" -a ! -d "/sys/class/net/${IFACE}" ]; then exit 0 fi ${MOCK} ip link set down dev "${IFACE}" ;; destroy) if [ "${IF_LINK_TYPE}" = "dummy" ] || [ "${IF_LINK_TYPE}" = "veth" ] || is_vlan; then if [ -z "${MOCK}" -a ! -d "/sys/class/net/${IFACE}" ]; then exit 0 fi ${MOCK} ip link del "${IFACE}" fi ;; esac #!/bin/sh [ -z "${VERBOSE}" ] || set -x [ -z "${IF_METRIC}" ] && IF_METRIC="1" [ -n "${IF_VRF_TABLE}" ] && VRF_TABLE="table ${IF_VRF_TABLE}" [ -n "${IF_VRF_MEMBER}" ] && VRF_TABLE="vrf ${IF_VRF_MEMBER}" [ -n "${IF_METRIC}" ] && METRIC="metric ${IF_METRIC}" addr_family() { if [ "$1" != "${1#*[0-9].[0-9]}" ]; then echo "-4" elif [ "$1" != "${1#*:[0-9a-fA-F]}" ]; then echo "-6" else exit 1 fi } configure_addresses() { for addr in ${IF_ADDRESSES}; do addrfam=$(addr_family ${addr}) if [ "${IF_POINT_TO_POINT}" -a "${addrfam}" = "-4" ]; then PEER="peer ${IF_POINT_TO_POINT}" else PEER="" fi ${MOCK} ip "${addrfam}" addr add "${addr}" ${PEER} dev "${IFACE}" done } configure_gateways() { for gw in ${IF_GATEWAYS}; do addrfam=$(addr_family ${gw}) ${MOCK} ip "${addrfam}" route add default via "${gw}" ${VRF_TABLE} ${METRIC} dev "${IFACE}" onlink done } flush() { cmd="addr" arg="dev ${IFACE}" ${MOCK} ip ${cmd} flush ${arg} } case "$PHASE" in up) configure_addresses add configure_gateways add ;; down) flush ;; *) exit 0 ;; esac # List of /tmp directories we should clean up clean_tmp_dirs="/tmp" # Should we wipe the tmp paths completely or just selectively remove known # locks / files / etc... ? wipe_tmp="NO" # Write the initial dmesg log into /var/log/dmesg after boot # This may be useful if you need the kernel boot log afterwards log_dmesg="YES" # Save the previous dmesg log to dmesg.old # This may be useful if you need to compare the current boot to the # previous one. #previous_dmesg=no # The consolefont service is not activated by default. If you need to # use it, you should run "rc-update add consolefont boot" as root. # # consolefont specifies the default font that you'd like Linux to use on the # console. You can find a good selection of fonts in /usr/share/consolefonts; consolefont="default8x16.psf.gz" # consoletranslation is the charset map file to use. Leave commented to use # the default one. Have a look in /usr/share/consoletrans for a selection of # map files you can use. #consoletranslation="8859-1_to_uni.trans" # OpenRC will attempt each of the following in succession to mount /dev. # # 1. If there is an entry for /dev in fstab, it will be used. # 2. If devtmpfs is defined in the kernel, it will be used. # 3. If tmpfs is defined in the kernel, it will be used. # # Set this to yes if you do not want OpenRC to attempt to mount /dev. # skip_mount_dev="NO" # Sets the level at which logging of messages is done to the # console. See dmesg(1) for more info. dmesg_level="1" # Pass any arguments to fsck. # By default we preen. # Linux systems also force -C0 and -T. # If fsck_args is not specified then Linux systems also use -A # (and -R if / is rw) #fsck_args="-p" # We can also specify the passno in /etc/fstab to check # If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can # do an fsck outside of the normal scope, say for /home. # Here are some examples:- #fsck_passno="=1 =2" #fsck_passno=">1" #fsck_passno="<2" # If passno is not enough granularity, you can also specify mountpoints to # check. This should NOT be used for the default non-multiplexed fsck, or your # system might not be checked. Additionally, it is mutually exclusive with # the fsck_passno setting. #fsck_mnt="" #fsck_mnt="/home" # Most modern fs's don't require a full fsck on boot, but for those that do # it may be advisable to skip this when running on battery. # WARNING: Do not turn this off if you have any JFS partitions. fsck_on_battery="YES" # fsck_shutdown causes fsck to trigger during shutdown as well as startup. # The end result of this is that if any periodic non-root filesystem checks are # scheduled, under normal circumstances the actual check will happen during # shutdown rather than at next boot. # This is useful when periodic filesystem checks are causing undesirable # delays at startup, but such delays at shutdown are acceptable. fsck_shutdown="NO" # fsck_abort_on_errors can be set to no to cause fsck to not abort on # errors. # This is useful when periodic filesystem checks are causing undesirable # aborts. fsck_abort_on_errors="YES" # Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as # Greenwich Mean Time). If that clock is set to the local time, then # set CLOCK to "local". Note that if you dual boot with Windows, then # you should set it to "local". clock="UTC" # If you want the hwclock script to set the system time (software clock) # to match the current hardware clock during bootup, leave this # commented out. # However, you can set this to "NO" if you are running a modern kernel # and using NTP to synchronize your system clock. #clock_hctosys="YES" # If you do not want to set the hardware clock to the current system # time (software clock) during shutdown, set this to no. #clock_systohc="YES" # If you wish to pass any other arguments to hwclock during bootup, # you may do so here. Alpha users may wish to use --arc or --srm here. clock_args="" # If you wish to pass any options to kill_all during shutdown, # you should do so here. # # The setting is called killall5_opts because the options here are meant # to be identical to those you could pass to killall5. killall5_opts="" # If you need to delay after each kill attempt during shutdown, set the amount # of time you need to delay here. This gets passed directly to sleep in # the shell. # kill_delay=0 # Stop the unmounting of certain points. # This could be useful for some NFS related work. #no_umounts="/dir1:/var/dir2" # # Mark certain mount points as critical. # This contains a space separated list of mount points which should be # considered critical. If one of these mount points cannot be mounted, # localmount will fail. # By default, this is empty. #critical_mounts="/home /var" # Enable loadable module support when running from RAM # when OverlayFS support is available in the kernel. # 0 means default tmpfs size (50% of physical RAM). # for more information please see kernel documention at: # https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt overlay_size=0 # Linux users can define a list of modules for a specific kernel version, # a released kernel version, a main kernel version or all kernel versions. # The most specific versioned variable will take precedence. # FreeBSD users can only use the modules="foo bar" setting. #modules_2_6_23_gentoo_r5="ieee1394 ohci1394" #modules_2_6_23="tun ieee1394" #modules_2_6="tun" #modules_2="ipv6" #modules="ohci1394" # Linux users can give the modules some arguments if needed, per version # if necessary. # Again, the most specific versioned variable will take precedence. # This is not supported on FreeBSD. #module_ieee1394_args="debug" #module_ieee1394_args_2_6_23_gentoo_r5="debug2" #module_ieee1394_args_2_6_23="debug3" #module_ieee1394_args_2_6="debug4" #module_ieee1394_args_2="debug5" # You should consult your kernel documentation and configuration # for a list of modules and their options. # As far as we are aware, there are no modern linux tools or use cases # which require /etc/mtab to be a separate file from /proc/self/mounts, # so this setting should be commented out. # If it is set to yes, please comment it out and run this command: # # rc-service mtab restart # In the future, the mtab service will be removed since we are not aware # of any need to manipulate /etc/mtab as a separate file from # /proc/self/mounts. # If you have a technical reason we should keep this support, please # open an issue at https://github.com/openrc/openrc/issues and let us # know about your situation. # This setting controls whether /etc/mtab is a file or symbolic link. # mtab_is_file=no # The interfaces setting controls which interfaces the net-online # service considers in deciding whether the network is active. The # default is all interfaces that support ethernet. #interfaces="" # This setting controls whether a ping test is included in the test for # network connectivity after all interfaces are active. #include_ping_test=no # This setting is the host to attempt to ping if the above is yes. # The default is google.com. #ping_test_host=some.host.name # The timeout setting controls how long the net-online service waits # for the network to be configured. # The default is 120 seconds. # if this is set to 0, the wait is infinite. #timeout=120 # You will need to set the dependencies in the netmount script to match # the network configuration tools you are using. This should be done in # this file by following the examples below, and not by changing the # service script itself. # # Each of these examples is meant to be used separately. So, for # example, do not set rc_need to something like "net.eth0 dhcpcd". # # If you are using newnet and configuring your interfaces with static # addresses with the network script, you should use this setting. # #rc_need="network" # # If you are using oldnet, you must list the specific net.* services you # need. # # This example assumes all of your netmounts can be reached on # eth0. # #rc_need="net.eth0" # # This example assumes some of your netmounts are on eth1 and some # are on eth2. # #rc_need="net.eth1 net.eth2" # # If you are using a dynamic network management tool like # NetworkManager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to # manage the network interfaces with the routes to your netmounts, you # should list that tool. # #rc_need="NetworkManager" #rc_need="dhcpcd" #rc_need="wicd" # # The default setting is designed to be backward compatible with our # current setup, but you are highly discouraged from using this. In # other words, please change it to be more suited to your system. # rc_need="net" # # Mark certain mount points as critical. # This contains aspace separated list of mount points which should be # considered critical. If one of these mount points cannot be mounted, # netmount will fail. # By default, this is empty. #critical_mounts="/home /var" # The convention in this file is to show the default settings commented out. # # Sometimes you want to have urandom start before "localmount" (say for crypt # swap), so you will need to customize this behavior. If you have /var on a # separate partition, make sure paths under /var are adjusted to point to # locations on your root device. # # Set skip_credit to yes or true if you do not want seed files to actually # credit the random number generator. For example, you should set this if you # plan to replicate the file system image without removing the contents of # ${seed_dir}. # # seed_dir=/var/lib/seedrng # skip_credit=no # Do not use this file to define the default route. # In all settings, multiple routes should be separated using ; or new lines. # Define static routes on Linux using iproute2. See ip(8) for syntax. #staticiproute="192.168.0.0/24 via 10.73.1.1; 192.168.1.0/24 via 10.73.1.1" # Or define static routes on Linux using route (legacy). See route(8) for syntax. #staticroute="net 192.168.0.0 netmask 255.255.255.0 gw 10.73.1.1 #net 192.168.1.0 netmask 255.255.255.0 gw 10.73.1.1" # If you are only using local swap partitions, you should not change # this file. Otherwise, you need to uncomment the below rc_before line # followed by the appropriate rc_need line. #rc_before="!localmount" # # If you are using swap files stored on local file systems, uncomment # this line. #rc_need="localmount" # # If you are using swap files stored on network file systems or swap # partitions stored on network block devices such as iSCSI, uncomment # this line. #rc_need="netmount" # This is the location of the reference file swclock uses to set the # system date and time. # This is the default path. If you are using it, you do not need to # uncomment it. If you are using the default and have /var on its own # file system, you need to add the appropriate rc_after setting. # swclock_file=/var/lib/misc/openrc-shutdowntime #!/sbin/openrc-run # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Register misc binary format handlers" depend() { after clock procfs use modules devfs keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -vserver } start() { ebegin "Loading custom binary format handlers" "$RC_LIBEXECDIR"/sh/binfmt.sh eend $? return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. depend() { need localmount before logger after clock root sysctl keyword -prefix -timeout } : ${wipe_tmp:=${WIPE_TMP:-no}} : ${log_dmesg:=${LOG_DMESG:-yes}} cleanup_tmp_dir() { local dir="$1" if ! [ -d "$dir" ]; then mkdir -p "$dir" || return $? fi checkpath -W "$dir" || return 1 chmod a+rwt "$dir" 2> /dev/null cd "$dir" || return 1 if yesno $wipe_tmp; then ebegin "Wiping $dir directory" # Faster than raw find if ! rm -rf -- [!ajlq\.]* 2>/dev/null ; then # Blah, too many files find . -maxdepth 1 -name '[!ajlq\.]*' -exec rm -rf -- {} + fi # pam_mktemp creates a .private directory within which # each user gets a private directory with immutable # bit set; remove the immutable bit before trying to # remove it. [ -d /tmp/.private ] && chattr -R -a /tmp/.private 2> /dev/null # Prune the paths that are left find . -maxdepth 1 \ ! -name . \ ! -name lost+found \ ! -name quota.user \ ! -name aquota.user \ ! -name quota.group \ ! -name aquota.group \ ! -name journal \ -exec rm -rf -- {} + eend 0 else ebegin "Cleaning $dir directory" rm -rf -- .X*-lock esrv* kio* \ jpsock.* .fam* .esd* \ orbit-* ssh-* ksocket-* \ .*-unix eend 0 fi } cleanup_var_run_dir() { ebegin "Cleaning /var/run" for x in $(find /var/run ! -type d ! -name utmp \ ! -name random-seed ! -name dev.db \ ! -name ld-elf.so.hints ! -name ld-elf32.so.hints \ ! -name ld.so.hints); do # Clean stale sockets if [ -S "$x" ]; then if command -v fuser >/dev/null 2>&1; then fuser "$x" >/dev/null 2>&1 || rm -- "$x" else rm -- "$x" fi fi [ ! -f "$x" ] && continue # Do not remove pidfiles of already running daemons case "$x" in *.pid) start-stop-daemon --test --quiet \ --stop --pidfile "$x" && continue ;; esac rm -f -- "$x" done eend 0 } mkutmp() { : >"$1" # Not all systems have the utmp group chgrp utmp "$1" 2>/dev/null chmod 0664 "$1" } migrate_to_run() { src="$1" dst="$2" if [ -L $src -a "$(readlink -f $src)" != $dst ]; then ewarn "$src does not point to $dst." ewarn "Setting $src to point to $dst." rm $src elif [ ! -L $src -a -d $src ]; then ebegin "Migrating $src to $dst" if ! rmdir $src 2>/dev/null; then cp -a $src/* $dst/ rm -rf $src fi eend $? fi # If $src doesn't exist at all, just run this if [ ! -e $src ]; then ln -s $dst $src fi } clean_run() { [ "$RC_SYS" = VSERVER -o "$RC_SYS" = LXC ] && return 0 local dir # If / is still read-only due to a problem, this will fail! if ! checkpath -W /; then ewarn "/ is not writable; unable to clean up underlying /run" return 1 fi if ! checkpath -W /tmp; then ewarn "/tmp is not writable; unable to clean up underlying /run" return 1 fi # Now we know that we can modify /tmp and / # if mktemp -d fails, it returns an EMPTY string # STDERR: mktemp: failed to create directory via template ‘/tmp/tmp.XXXXXXXXXX’: Read-only file system # STDOUT: '' rc=0 dir=$(mktemp -d) if [ -n "$dir" -a -d $dir -a -w $dir ]; then mount --bind / $dir && rm -rf $dir/run/* || rc=1 umount $dir && rmdir $dir else rc=1 fi if [ $rc -ne 0 ]; then ewarn "Could not clean up underlying /run on /" return 1 fi } start() { # Remove any added console dirs if checkpath -W "$RC_LIBEXECDIR"; then rm -rf "$RC_LIBEXECDIR"/console/* fi local logw=false runw=false extra= # Ensure that our basic dirs exist if [ "$RC_UNAME" = Linux ]; then # Satisfy Linux FHS extra=/var/lib/misc if [ ! -d /run ]; then extra="/var/run $extra" fi else extra=/var/run fi for x in /var/log /tmp $extra; do if ! [ -d $x ]; then if ! mkdir -p $x; then eend 1 "failed to create needed directory $x" return 1 fi fi done if [ "$RC_UNAME" = Linux -a -d /run ]; then migrate_to_run /var/lock /run/lock migrate_to_run /var/run /run clean_run fi if checkpath -W /var/run; then ebegin "Creating user login records" local xtra= [ "$RC_UNAME" = NetBSD ] && xtra=x for x in "" $xtra; do mkutmp /var/run/utmp$x done [ -e /var/log/wtmp ] || mkutmp /var/log/wtmp eend 0 mountinfo -q -f tmpfs /var/run || cleanup_var_run_dir fi # Clean up /tmp directories local tmp= for tmp in ${clean_tmp_dirs:-${wipe_tmp_dirs-/tmp}}; do mountinfo -q -f tmpfs "$tmp" || cleanup_tmp_dir "$tmp" done if checkpath -W /tmp; then # Make sure our X11 stuff have the correct permissions # Omit the chown as bootmisc is run before network is up # and users may be using lame LDAP auth #139411 rm -rf /tmp/.ICE-unix /tmp/.X11-unix mkdir -p /tmp/.ICE-unix /tmp/.X11-unix chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix if [ -x /sbin/restorecon ]; then restorecon /tmp/.ICE-unix /tmp/.X11-unix fi fi if yesno $log_dmesg; then if $logw || checkpath -W /var/log; then # Create an 'after-boot' dmesg log case "$RC_SYS" in VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;; *) if yesno ${previous_dmesg:-no} && [ -e /var/log/dmesg ]; then mv /var/log/dmesg /var/log/dmesg.old fi dmesg > /var/log/dmesg chmod 640 /var/log/dmesg ;; esac fi fi return 0 } stop() { # Write a halt record if we're shutting down if [ "$RC_RUNLEVEL" = shutdown ]; then if [ "$RC_UNAME" = Linux ]; then if [ -x /sbin/halt ]; then halt -w else openrc-shutdown -w fi fi if [ "$RC_SYS" = OPENVZ ]; then yesno $RC_REBOOT && printf "" >/reboot fi fi return 0 } # vim: ft=sh #!/sbin/openrc-run # Copyright (c) 2017 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mount the control groups." : "${cgroup_opts:="nodev,noexec,nosuid"}" depend() { keyword -docker -podman -prefix -systemd-nspawn -vserver after sysfs } cgroup1_base() { grep -qw cgroup /proc/filesystems || return 0 if ! mountinfo -q /sys/fs/cgroup; then ebegin "Mounting cgroup filesystem" local opts="${cgroup_opts},mode=755,size=${rc_cgroupsize:-10m}" mount -n -t tmpfs -o "${opts}" cgroup_root /sys/fs/cgroup eend $? fi if ! mountinfo -q /sys/fs/cgroup/openrc; then local agent="${RC_LIBEXECDIR}/sh/cgroup-release-agent.sh" mkdir /sys/fs/cgroup/openrc mount -n -t cgroup \ -o none,${cgroup_opts},name=openrc,release_agent="$agent" \ openrc /sys/fs/cgroup/openrc printf 1 > /sys/fs/cgroup/openrc/notify_on_release fi return 0 } cgroup1_controllers() { yesno "${rc_controller_cgroups:-YES}" && [ -e /proc/cgroups ] && grep -qw cgroup /proc/filesystems || return 0 while read -r name _ _ enabled _; do case "${enabled}" in 1) mountinfo -q "/sys/fs/cgroup/${name}" && continue local x for x in $rc_cgroup_controllers; do [ "${name}" = "blkio" ] && [ "${x}" = "io" ] && continue 2 [ "${name}" = "${x}" ] && continue 2 done mkdir "/sys/fs/cgroup/${name}" mount -n -t cgroup -o "${cgroup_opts},${name}" \ "${name}" "/sys/fs/cgroup/${name}" yesno "${rc_cgroup_memory_use_hierarchy:-no}" && [ "${name}" = memory ] && echo 1 > /sys/fs/cgroup/memory/memory.use_hierarchy ;; esac done < /proc/cgroups return 0 } cgroup2_base() { grep -qw cgroup2 /proc/filesystems || return 0 local base base="$(cgroup2_find_path)" mkdir -p "${base}" mount -t cgroup2 none -o "${cgroup_opts},nsdelegate" "${base}" 2> /dev/null || mount -t cgroup2 none -o "${cgroup_opts}" "${base}" return 0 } cgroup2_controllers() { grep -qw cgroup2 /proc/filesystems || return 0 local active cgroup_path x y cgroup_path="$(cgroup2_find_path)" [ -z "${cgroup_path}" ] && return 0 [ ! -e "${cgroup_path}/cgroup.controllers" ] && return 0 [ ! -e "${cgroup_path}/cgroup.subtree_control" ]&& return 0 read -r active < "${cgroup_path}/cgroup.controllers" for x in ${active}; do case "${rc_cgroup_mode:-unified}" in unified) echo "+${x}" > "${cgroup_path}/cgroup.subtree_control" ;; hybrid) for y in ${rc_cgroup_controllers}; do if [ "$x" = "$y" ]; then echo "+${x}" > "${cgroup_path}/cgroup.subtree_control" fi done ;; esac done return 0 } cgroups_hybrid() { cgroup1_base cgroup2_base cgroup2_controllers cgroup1_controllers return 0 } cgroups_legacy() { cgroup1_base cgroup1_controllers return 0 } cgroups_unified() { cgroup2_base cgroup2_controllers return 0 } mount_cgroups() { case "${rc_cgroup_mode:-unified}" in hybrid) cgroups_hybrid ;; legacy) cgroups_legacy ;; unified) cgroups_unified ;; esac return 0 } restorecon_cgroups() { if [ -x /sbin/restorecon ]; then ebegin "Restoring SELinux contexts in /sys/fs/cgroup" restorecon -rF /sys/fs/cgroup >/dev/null 2>&1 eend $? fi return 0 } start() { # set up kernel support for cgroups if [ -d /sys/fs/cgroup ]; then mount_cgroups restorecon_cgroups fi return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Sets a font for the consoles." depend() { need termencoding after hotplug bootmisc modules keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu } start() { ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} consolefont=${consolefont:-${CONSOLEFONT}} consoletranslation=${consoletranslation:-${CONSOLETRANSLATION}} if [ -z "$consolefont" ]; then ebegin "Using the default console font" eend 0 return 0 fi if [ "$ttyn" = 0 ]; then ebegin "Skipping font setup (rc_tty_number == 0)" eend 0 return 0 fi local x= param= sf_param= retval=0 ttydev=/dev/tty # Get additional parameters if [ -n "$consoletranslation" ]; then param="$param -m $consoletranslation" fi # Set the console font ebegin "Setting console font [$consolefont]" [ -d /dev/vc ] && ttydev=/dev/vc/ x=1 while [ $x -le $ttyn ]; do if ! setfont $consolefont $param -C $ttydev$x >/dev/null; then retval=1 break fi : $(( x += 1 )) done eend $retval # Store the font so we can use it ASAP on boot if [ $retval -eq 0 ] && checkpath -W "$RC_LIBEXECDIR"; then mkdir -p "$RC_LIBEXECDIR"/console zcat "/usr/share/consolefonts/$consolefont" \ > "$RC_LIBEXECDIR"/console/font fi return $retval } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Set up the /dev directory" depend() { provide dev-mount before dev keyword -docker -podman -prefix -systemd-nspawn -vserver } mount_dev() { local action conf_d_dir devfstype msg mountopts action=--mount conf_d_dir="${RC_SERVICE%/*/*}/conf.d" msg=Mounting # Some devices require exec, https://bugs.gentoo.org/92921 # Users with such requirements can use an fstab entry for /dev mountopts="noexec,nosuid,mode=0755" if yesno ${skip_mount_dev:-no} ; then einfo "/dev will not be mounted due to user request" return 0 fi if mountinfo -q /dev; then action=--remount mountopts="remount,$mountopts" msg=Remounting fi if fstabinfo -q /dev; then ebegin "$msg /dev according to fstab" fstabinfo -q $action /dev eend $? return 0 fi if grep -q devtmpfs /proc/filesystems; then devfstype=devtmpfs mountopts="$mountopts,size=10M" elif grep -q tmpfs /proc/filesystems; then devfstype=tmpfs mountopts="$mountopts,size=10M" fi if [ -n "$devfstype" ]; then ebegin "$msg $devfstype on /dev" mount -n -t $devfstype -o $mountopts dev /dev eend $? else ewarn "This kernel does not have devtmpfs or tmpfs support, and there" ewarn "is no entry for /dev in fstab." ewarn "This means /dev will not be mounted." ewarn "To avoid this message, set CONFIG_DEVTMPFS or CONFIG_TMPFS to y" ewarn "in your kernel configuration or see ${conf_d_dir}/${RC_SVCNAME}" fi return 0 } seed_dev() { # Seed /dev with some things that we know we need if [ "${RC_SYS}" != LXC ]; then # creating /dev/console, /dev/tty and /dev/tty1 to be able to write # to $CONSOLE with/without bootsplash before udevd creates it [ -c /dev/console ] || mknod -m 600 /dev/console c 5 1 [ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1 [ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0 # udevd will dup its stdin/stdout/stderr to /dev/null # and we do not want a file which gets buffered in ram [ -c /dev/null ] || mknod -m 666 /dev/null c 1 3 # so udev can add its start-message to dmesg [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11 fi # extra symbolic links not provided by default [ -e /dev/fd ] || ln -snf /proc/self/fd /dev/fd [ -e /dev/stdin ] || ln -snf /proc/self/fd/0 /dev/stdin [ -e /dev/stdout ] || ln -snf /proc/self/fd/1 /dev/stdout [ -e /dev/stderr ] || ln -snf /proc/self/fd/2 /dev/stderr [ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core # Mount required directories as user may not have them in /etc/fstab for x in \ "mqueue /dev/mqueue 1777 ,nodev mqueue" \ "devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \ "tmpfs /dev/shm 1777 ,nodev,mode=1777 shm" \ ; do set -- $x grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue mountinfo -q $2 && continue if [ ! -d $2 ]; then mkdir -m $3 -p $2 >/dev/null 2>&1 || \ ewarn "Could not create $2!" fi if [ -d $2 ]; then ebegin "Mounting $2" if ! fstabinfo --mount $2; then mount -n -t $1 -o noexec,nosuid$4 $5 $2 fi eend $? fi done } restorecon_dev() { if [ -x /sbin/restorecon ]; then ebegin "Restoring SELinux contexts in /dev" restorecon -rF /dev >/dev/null 2>&1 eend $? fi return 0 } start() { mount_dev seed_dev restorecon_dev return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Set the dmesg level for a cleaner boot" depend() { before dev modules keyword -docker -podman -lxc -prefix -systemd-nspawn -vserver } start() { if [ -n "$dmesg_level" ]; then dmesg -n$dmesg_level fi } #!/sbin/openrc-run # The first boot init service # read kernel options init_KOPT() { eval "set -- $(cat /proc/cmdline 2>/dev/null)" for opt; do case "$opt" in ssh_*=*) eval "KOPT_${opt%%=*}='${opt#*=}'" ;; esac done } start() { rm -f /etc/runlevels/*/$RC_SVCNAME init_KOPT local rc=0 ebegin "Starting ${RC_SVCNAME}" if [ -n "$KOPT_ssh_key" ] && [ ! -f "/root/.ssh/authorized_keys" ]; then einfo "Fetching ssh keys" mkdir -pm 700 /root/.ssh checkpath -fm 0600 /root/.ssh/authorized_keys case "$KOPT_ssh_key" in https://*|ftps://*|http://*) wget -q "$KOPT_ssh_key" -O /root/.ssh/authorized_keys rc=$?;; *) echo "$KOPT_ssh_key" > /root/.ssh/authorized_keys;; esac fi eend $rc } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Check and repair filesystems according to /etc/fstab" _IFS=" " depend() { after clock use dev clock modules keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn -timeout -vserver -uml } _abort() { yesno ${fsck_abort_on_errors:-yes} && rc-abort return 1 } # We should only reboot when first booting _reboot() { if [ "$RC_RUNLEVEL" = "$RC_BOOTLEVEL" ]; then reboot "$@" _abort || return 1 fi } _forcefsck() { [ -e /forcefsck ] || get_bootparam forcefsck } start() { local fsck_opts= p= check_extra= if [ -e /fastboot ]; then ewarn "Skipping fsck due to /fastboot" return 0 fi if _forcefsck; then fsck_opts="$fsck_opts -f" check_extra="(check forced)" elif ! yesno ${fsck_on_battery:-YES} && ! on_ac_power; then ewarn "Skipping fsck due to not being on AC power" return 0 fi if [ -n "$fsck_passno" ]; then check_extra="[passno $fsck_passno] $check_extra" if [ -n "$fsck_mnt" ]; then eerror "Only 1 of fsck_passno and fsck_mnt must be set!" return 1 fi fi ebegin "Checking local filesystems $check_extra" # Append passno mounts for p in $fsck_passno; do local IFS="$_IFS" case "$p" in [0-9]*) p="=$p";; esac set -- "$@" $(fstabinfo --passno "$p") unset IFS done # Append custom mounts for m in $fsck_mnt ; do local IFS="$_IFS" set -- "$@" "$m" unset IFS done if [ "$RC_UNAME" = Linux ]; then local skiptypes skiptypes=$(printf 'no%s,' ${net_fs_list} ${extra_net_fs_list}) [ "${skiptypes}" = "no," ] && skiptypes="" fsck_opts="$fsck_opts -T -t ${skiptypes}noopts=_netdev" if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then fsck_args=${fsck_args:--A -p} if echo 2>/dev/null >/.test.$$; then rm -f /.test.$$ fsck_opts="$fsck_opts -R" fi fi if [ "$(readlink -f $(which fsck))" != "/bin/busybox" ]; then fsck_opts="$fsck_opts -C0" fi fi trap : INT QUIT fsck ${fsck_args:--p} $fsck_opts "$@" case $? in 0) eend 0; return 0;; 1) ewend 1 "Filesystems repaired"; return 0;; 2|3) if [ "$RC_UNAME" = Linux ]; then ewend 1 "Filesystems repaired, but reboot needed" _reboot -f else ewend 1 "Filesystems still have errors;" \ "manual fsck required" _abort fi;; 4) if [ "$RC_UNAME" = Linux ]; then ewend 1 "Filesystem errors left uncorrected, aborting" _abort else ewend 1 "Filesystems repaired, but reboot needed" _reboot fi;; 8) ewend 1 "Operational error"; return 0;; 12) ewend 1 "fsck interrupted";; *) eend 2 "Filesystems couldn't be fixed";; esac _abort || return 1 } stop() { # Fake function so we always shutdown correctly. _abort() { return 0; } _reboot() { return 0; } _forcefsck() { return 1; } yesno $fsck_shutdown && start return 0 } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause description="Sets the hostname of the machine." depend() { keyword -prefix -lxc -docker } start() { if [ -s /etc/hostname ] ; then opts="-F /etc/hostname" else opts="${hostname:-localhost}" fi ebegin "Setting hostname" hostname $opts eend $? } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. extra_commands="save show" description="Sets the local clock to UTC or Local Time." description_save="Saves the current time in the BIOS." description_show="Displays the current time in the BIOS." : ${clock_adjfile:=${CLOCK_ADJFILE}} : ${clock_args:=${CLOCK_OPTS}} : ${clock_systohc:=${CLOCK_SYSTOHC}} : ${clock:=${CLOCK:-UTC}} if [ "$clock" = "UTC" ]; then utc="UTC" utc_cmd="--utc" else utc="Local Time" utc_cmd="--localtime" fi depend() { provide clock want modules if yesno $clock_adjfile; then use root fi keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu } setupopts() { case "$(uname -m)" in s390*) utc="s390" ;; *) if [ -e /proc/devices ] && \ grep -q " cobd$" /proc/devices then utc="coLinux" fi ;; esac case "$utc" in UTC|Local" "Time);; *) unset utc_cmd;; esac } # hwclock doesn't always return non zero on error _hwclock() { local err="$(hwclock "$@" 2>&1 >/dev/null)" [ -z "$err" ] && return 0 echo "${err}" >&2 return 1 } get_noadjfile() { if ! yesno $clock_adjfile; then # Some implementations don't handle adjustments if LC_ALL=C hwclock --help 2>&1 | grep -q -e "--noadjfile"; then echo --noadjfile fi fi } rtc_exists() { local rtc= for rtc in /dev/rtc /dev/rtc[0-9]*; do [ -e "$rtc" ] && break done [ -e "$rtc" ] } start() { local retval=0 errstr="" modname setupopts if [ -z "$utc_cmd" ]; then ewarn "Not setting clock for $utc system" return 0 fi ebegin "Setting system clock using the hardware clock [$utc]" if [ -e /proc/modules ]; then if ! rtc_exists; then for x in rtc-cmos rtc genrtc; do modprobe -q $x && rtc_exists && modname="$x" && break done [ -n "$modname" ] && ewarn "The $modname module needs to be configured in" \ "${RC_SERVICE%/*/*}/conf.d/modules or built in." fi fi # Always set the kernel's time zone. _hwclock --systz $utc_cmd $(get_noadjfile) $clock_args : $(( retval += $? )) if [ -e /etc/adjtime ] && yesno $clock_adjfile; then _hwclock --adjust $utc_cmd $(get_noadjfile) : $(( retval += $? )) fi if yesno ${clock_hctosys:-YES}; then _hwclock --hctosys $utc_cmd $(get_noadjfile) $clock_args : $(( retval += $? )) fi eend $retval "Failed to set the system clock" return 0 } stop() { # Don't tweak the hardware clock on LiveCD halt. [ -n "$CDBOOT" ] && return 0 yesno ${clock_systohc:-YES} || return 0 local retval=0 errstr="" setupopts [ -z "$utc_cmd" ] && return 0 ebegin "Setting hardware clock using the system clock" "[$utc]" _hwclock --systohc $utc_cmd $(get_noadjfile) $clock_args retval=$? eend $retval "Failed to sync clocks" } save() { clock_systohc=yes stop } show() { setupopts hwclock --show "$utc_cmd" $(get_noadjfile) $clock_args } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause depend() { need sysfs dev before checkfs fsck after modloop keyword -vserver -lxc } # Load hardware drivers start() { # check for boot option "nocoldplug" if get_bootparam noautodetect; then ewarn "Autodetection of hardware disabled from boot cmdline" return 0 fi ebegin "Loading hardware drivers" find /sys -name modalias -type f -print0 2> /dev/null | xargs -0 sort -u \ | xargs modprobe -b -a 2> /dev/null # we run it twice so we detect all devices find /sys -name modalias -type f -print0 2> /dev/null | xargs -0 sort -u \ | xargs modprobe -b -a 2> /dev/null # check if framebuffer drivers got pulled in if [ -e /dev/fb0 ] && ! [ -e /sys/module/fbcon ]; then modprobe -b -q fbcon fi eend 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Kill all processes so we can unmount disks cleanly." depend() { keyword -prefix } start() { ebegin "Terminating remaining processes" kill_all 15 ${killall5_opts} sleep ${kill_delay:-0} eend 0 ebegin "Killing remaining processes" sleep ${kill_delay:-0} kill_all 9 ${killall5_opts} eend 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. conf_d_dir="${RC_SERVICE%/*/*}/conf.d" local_d_dir="${RC_SERVICE%/*/*}/local.d" description="Executes user programs in ${local_d_dir}" depend() { after * keyword -timeout } start() { local file has_errors redirect retval has_errors=0 yesno $rc_verbose || redirect='> /dev/null 2>&1' ebegin "Starting local" eindent for file in "${local_d_dir}"/*.start; do if [ -x "${file}" ]; then vebegin "Executing \"${file}\"" eval "${file}" $redirect retval=$? if [ ${retval} -ne 0 ]; then has_errors=1 fi veend ${retval} "Execution of \"${file}\" failed." fi done eoutdent if command -v local_start >/dev/null 2>&1; then ewarn "\"${conf_d_dir}/local\" should be removed." ewarn "Please move the code from the local_start function" ewarn "to executable scripts with an .start extension" ewarn "in \"${local_d_dir}\"" local_start fi eend ${has_errors} # We have to end with a zero exit code, because a failed execution # of an executable ${local_d_dir}/*.start file shouldn't result in # marking the local service as failed. Otherwise we are unable to # execute any executable ${local_d_dir}/*.stop file, because a failed # marked service cannot be stopped (and the stop function would # actually call the executable ${local_d_dir}/*.stop file(s)). return 0 } stop() { local file has_errors redirect retval has_errors=0 yesno $rc_verbose || redirect='> /dev/null 2>&1' ebegin "Stopping local" eindent for file in "${local_d_dir}"/*.stop; do if [ -x "${file}" ]; then vebegin "Executing \"${file}\"" eval "${file}" $redirect retval=$? if [ ${retval} -ne 0 ]; then has_errors=1 fi veend ${retval} "Execution of \"${file}\" failed." fi done eoutdent if command -v local_stop >/dev/null 2>&1; then ewarn "\"${conf_d_dir}/local\" should be removed." ewarn "Please move the code from the local_stop function" ewarn "to executable scripts with an .stop extension" ewarn "in \"${local_d_dir}\"" local_stop fi eend ${has_errors} # An executable ${local_d_dir}/*.stop file which failed with a # non-zero exit status is not a reason to mark this service # as failed, therefore we have to end with a zero exit code. return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mounts disks and swap according to /etc/fstab." depend() { need fsck root use lvm modules after clock lvm modules keyword -docker -podman -jail -lxc -prefix -systemd-nspawn -vserver } start() { [ -x /sbin/mkmntdirs ] && mkmntdirs # Mount local filesystems in /etc/fstab. # The types variable must start with no, and must be a type local critical= types="noproc" x= no_netdev= rc= for x in $net_fs_list $extra_net_fs_list; do types="${types},${x}" done if [ "$RC_UNAME" = Linux ]; then no_netdev="-O no_netdev" if mountinfo -q /usr; then touch "$RC_SVCDIR"/usr_premounted fi fi ebegin "Mounting local filesystems" mount -at "$types" $no_netdev eend $? "Some local filesystem failed to mount" rc=$? if [ -z "$critical_mounts" ]; then rc=0 else for x in ${critical_mounts}; do fstabinfo -q $x || continue if ! mountinfo -q $x; then critical=x eerror "Failed to mount $x" fi done [ -z "$critical" ] && rc=0 fi return $rc } stop() { yesno $RC_GOINGDOWN || return 0 # We never unmount / or /dev or $RC_SVCDIR # Bug 381783 local rc_svcdir=$(printf '%s\n' "$RC_SVCDIR" | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g') local x= no_umounts_r="/|/dev|/dev/.*|${rc_svcdir}" no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib(32|64)?|/libexec" # RC_NO_UMOUNTS is an env var that can be set by plugins local IFS="$IFS:" for x in $no_umounts $RC_NO_UMOUNTS; do no_umounts_r="$no_umounts_r|$x" done if [ "$RC_UNAME" = Linux ]; then no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*" if [ -e "$rc_svcdir"/usr_premounted ]; then no_umounts_r="$no_umounts_r|/usr" fi fi no_umounts_r="^($no_umounts_r)$" # Flush all pending disk writes now sync . "$RC_LIBEXECDIR"/sh/rc-mount.sh if [ "$RC_UNAME" = Linux ] && [ -d /sys/fs/aufs ] ; then #if / is aufs we remount it noxino during shutdown if mountinfo -q -f '^aufs$' / ; then mount -o remount,noxino,rw / sync fi local aufs_branch aufs_mount_point aufs_si_id aufs_br_id branches for aufs_si_dir in /sys/fs/aufs/si*; do [ -d "${aufs_si_dir}" ] || continue aufs_si_id="si=${aufs_si_dir#/sys/fs/aufs/si_}" aufs_mount_point="$(mountinfo -o ${aufs_si_id})" branches="$aufs_si_dir/br[0-9] $aufs_si_dir/br[0-9][0-9] $aufs_si_dir/br[0-9][0-9][0-9]" for x in $branches; do [ -e "${x}" ] || continue aufs_branch=$(sed 's/=.*//g' $x) eindent if ! mount -o "remount,del:$aufs_branch" "$aufs_mount_point" > /dev/null 2>&1; then ewarn "Failed to remove branch $aufs_branch from aufs" \ "$aufs_mount_point" fi eoutdent sync done done fi # Umount loop devices einfo "Unmounting loop devices" eindent do_unmount "umount -d" --skip-point-regex "$no_umounts_r" \ --node-regex "^/dev/loop" eoutdent # Now everything else, except network filesystems as the # network should be down by this point. einfo "Unmounting filesystems" eindent local fs= for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+|}$x" done [ -n "$fs" ] && fs="^($fs)$" do_unmount umount --skip-point-regex "$no_umounts_r" \ "${fs:+--skip-fstype-regex}" $fs --nonetdev eoutdent return 0 } #!/sbin/openrc-run # Copyright (c) 2013-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Configures the loopback interface." depend() { after clock keyword -jail -prefix -systemd-nspawn -vserver } start() { if [ "$RC_UNAME" = Linux ]; then ebegin "Bringing up network interface lo" if command -v ip > /dev/null 2>&1; then ip addr add 127.0.0.1/8 dev lo brd + ip link set lo up else ifconfig lo 127.0.0.1 netmask 255.0.0.0 fi else ebegin "Bringing up network interface lo0" ifconfig lo0 127.0.0.1 netmask 255.0.0.0 fi eend $? } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause description="Generate machine-id if needed" depend() { need root dev } start() { if [ -s /etc/machine-id ] ; then return 0 fi ebegin "Generating machine-id" dd if=/dev/urandom status=none bs=16 count=1 \ | md5sum | cut -d' ' -f1 > /etc/machine-id eend $? } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause # script that will mount image with modules depend() { after dev-mount before checkfs fsck hwdrivers modules hwclock dev sysfs keyword -vserver -lxc } # read kernel options init_KOPT() { for opt in $(cat /proc/cmdline 2>/dev/null); do case "$opt" in modloop=*|modloop_verify=*) eval "KOPT_${opt%%=*}='${opt#*=}'" ;; esac done } mountdirs() { awk '$2 !~ /^\/(sys|proc|dev|run)/ && $2 != "/" {print $2}' /proc/mounts } find_modloop() { local dir="$1" local kver=$(uname -r) local oifs="$IFS" IFS=$'\n' set -- $(blkid "$dir"/boot/* "$dir"/*) IFS="$oifs" for line; do img=${line%%:*} verify_modloop "$img" || eerror "Failed to verify signature of $img!" mount "$img" -o loop,ro /.modloop || continue if [ -d /.modloop/modules/$kver ]; then return 0 fi umount /.modloop done return 1 } verify_modloop() { local modloop=$1 key= if ! yesno "${KOPT_modloop_verify:=yes}"; then return 0 fi for key in /etc/apk/keys/*.pub; do local sig=/var/cache/misc/${modloop##*/}.SIGN.RSA.${key##*/} if [ -f "$sig" ]; then if ! command -v openssl > /dev/null; then ewarn "Missing openssl. Modloop verification disabled!" return 0 fi einfo "Verifying modloop" openssl dgst -sha1 -verify "$key" -signature "$sig" "$modloop" \ >/dev/null 2>&1 || return 1 fi done } find_backing_file() { local dir="$1" local dev=$(df -P "$dir" | tail -1 | awk '{print $1}') cat /sys/block/${dev#/dev/}/loop/backing_file 2>/dev/null } start() { local modloop= mount_opts= modloop_dldir="/lib" init_KOPT case "$KOPT_modloop" in none) return 0;; http://*|https://*|ftp://*) modloop=$modloop_dldir/${KOPT_modloop##*/} if [ ! -f "$modloop" ]; then mkdir -p "$modloop_dldir" wget -P "$modloop_dldir" "$KOPT_modloop" || eend 1 fi ;; *) for dir in $(mountdirs); do if [ -f "$dir"/$KOPT_modloop ]; then modloop="$dir/${KOPT_modloop##/}" alpine_mnt="$dir" break fi done ;; esac ebegin "Mounting modloop $modloop" mkdir -p /.modloop if [ -n "$modloop" ]; then verify_modloop "$modloop" || eerror "Failed to verify signature of $img!" mount -o loop,ro $modloop /.modloop eend $? || return 1 else for dir in $(mountdirs); do if find_modloop "$dir"; then alpine_mnt="$dir" break fi done if [ -d /.modloop/modules/$(uname -r) ]; then eend 0 else eend 1 || return 1 fi fi #use overlayfs if available and configured if grep -q -w "overlay$" /proc/filesystems && [ ! -z ${unionfs_size+x} ]; then ewarn "Use of unionfs_size is deprecated use overlay_size instead" overlay_size="$unionfs_size" fi if grep -q -w "overlay$" /proc/filesystems && [ -n "$overlay_size" ]; then ebegin "OverlayFS detected, mounting modloop rw" [ "$overlay_size" != 0 ] && mount_ops="-o size=$overlay_size" mkdir -p /.modoverlayfs /lib/modules mount -t tmpfs $mount_ops tmpfs /.modoverlayfs mkdir -p /.modoverlayfs/modules /.modoverlayfs/work mount -t overlay -o upperdir=/.modoverlayfs/modules,lowerdir=/lib/modules:/.modloop/modules,workdir=/.modoverlayfs/work overlay /lib/modules depmod -A eend $? || return 1 else rm -rf /lib/modules && ln -sf /.modloop/modules /lib/ fi # copy firmware if there are any if [ -d $alpine_mnt/firmware ]; then ebegin "Copying firmware from $alpine_mnt/firmware" cp -R -a $alpine_mnt/firmware /lib/ eend $? elif [ -d /lib/modules/firmware ]; then rmdir /lib/firmware 2>/dev/null \ && ln -s /lib/modules/firmware /lib/ fi return 0 } stop() { local ret=0 local mnt; for mnt in /lib/modules /.modoverlayfs /.modloop; do if mountinfo --quiet "$mnt"; then ebegin "Unmounting $mnt" umount -d "$mnt" || ret=1 fi done eend $ret || return 1 } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause description="Loads a user defined list of kernel modules." depend() { before hwclock hwdrivers keyword -openvz -prefix -vserver -lxc } start() { yesno $rc_verbose && verbose=yes ebegin "Loading modules" eindent for f in /lib/modules-load.d/*.conf \ /usr/lib/modules-load.d/*.conf; do if ! [ -f "$f" ]; then continue fi if [ -f /etc/modules-load.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /etc/modules-load.d/${f##*/}" continue fi if [ -f /run/modules-load.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/modules-load.d/${f##*/}" continue fi veinfo "Processing $f" sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \ | while read module args; do modprobe -q $module $args done done if [ -f /etc/modules ]; then veinfo "Processing /etc/modules" sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < /etc/modules \ | while read module args; do modprobe -q $module $args done fi for f in /etc/modules-load.d/*.conf; do if [ ! -f "$f" ]; then continue fi if [ -f /run/modules-load.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/modules-load.d/${f##*/}" continue fi veinfo "Processing $f" sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \ | while read module args; do modprobe -q $module $args done done for f in /run/modules-load.d/*.conf; do if [ ! -f "$f" ]; then continue fi veinfo "Processing $f" sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \ | while read module args; do modprobe -q $module $args done done eoutdent eend $? } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Re-mount filesystems read-only for a clean reboot." depend() { after killprocs savecache keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -vserver } start() { local ret=0 # Flush all pending disk writes now sync ebegin "Remounting remaining filesystems read-only" # We need the do_unmount function . "$RC_LIBEXECDIR"/sh/rc-mount.sh eindent # Bug 381783 local rc_svcdir=$(echo $RC_SVCDIR | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g') local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|/run|${rc_svcdir}" x= fs= m="$m|/bin|/sbin|/lib(32|64)?|/libexec" if [ -e "$rc_svcdir"/usr_premounted ]; then m="$m|/usr" fi # RC_NO_UMOUNTS is an env var that can be set by plugins local IFS="$IFS:" for x in $no_umounts $RC_NO_UMOUNTS; do m="$m|$x" done m="^($m)$" fs= for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+|}$x" done [ -n "$fs" ] && fs="^($fs)$" do_unmount "umount -r" \ --skip-point-regex "$m" \ "${fs:+--skip-fstype-regex}" $fs --nonetdev ret=$? eoutdent eend $ret } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Update /etc/mtab to match what the kernel knows about" depend() { after clock before localmount need root keyword -prefix -systemd-nspawn } start() { local rc=0 ebegin "Updating /etc/mtab" if ! checkpath -W /etc; then rc=1 elif ! yesno ${mtab_is_file:-no}; then [ ! -L /etc/mtab ] && [ -f /etc/mtab ] && ewarn "Removing /etc/mtab file" einfo "Creating mtab symbolic link" ln -snf /proc/self/mounts /etc/mtab else ewarn "The ${RC_SVCNAME} service will be removed in the future." ewarn "Please change the mtab_is_file setting to no and run" ewarn "# rc-service mtab restart" ewarn "to create the mtab symbolic link." [ -L /etc/mtab ] && ewarn "Removing /etc/mtab symbolic link" rm -f /etc/mtab einfo "Creating mtab file" # With / as tmpfs we cannot umount -at tmpfs in localmount as that # makes / readonly and dismounts all tmpfs even if in use which is # not good. Luckily, umount uses /etc/mtab instead of /proc/mounts # which allows this hack to work. grep -v "^[! ]* / tmpfs " /proc/mounts > /etc/mtab # Remove stale backups rm -f /etc/mtab~ /etc/mtab~~ fi eend $rc "/etc is not writable; unable to create /etc/mtab" return 0 } #!/sbin/openrc-run # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Delays until the network is online or a specific timeout" depend() { after modules net need sysfs provide network-online keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn -uml -vserver } get_interfaces() { local ifname iftype for ifname in /sys/class/net/*; do [ -h "${ifname}" ] || continue read iftype < ${ifname}/type [ "$iftype" = "1" ] && printf "%s " ${ifname##*/} done } start () { local carriers configured dev gateway ifcount infinite local carrier operstate rc ebegin "Checking to see if the network is online" rc=0 interfaces=${interfaces:-$(get_interfaces)} timeout=${timeout:-120} [ $timeout -eq 0 ] && infinite=true || infinite=false while $infinite || [ $timeout -gt 0 ]; do carriers=0 configured=0 ifcount=0 for dev in ${interfaces}; do : $((ifcount += 1)) read carrier < /sys/class/net/$dev/carrier 2> /dev/null || carrier= [ "$carrier" = 1 ] && : $((carriers += 1)) read operstate < /sys/class/net/$dev/operstate 2> /dev/null || operstate= [ "$operstate" = up ] && : $((configured += 1)) done [ $configured -eq $ifcount ] && [ $carriers -ge 1 ] && break sleep 1 : $((timeout -= 1)) done ! $infinite && [ $timeout -eq 0 ] && rc=1 include_ping_test=${include_ping_test:-${ping_default_gateway}} if [ -n "${ping_default_gateway}" ]; then ewarn "ping_default_gateway is deprecated, please use include_ping_test" fi if [ $rc -eq 0 ] && yesno ${include_ping_test:-no}; then ping_test_host="${ping_test_host:-google.com}" if [ -n "$ping_test_host" ]; then while $infinite || [ $timeout -gt 0 ]; do ping -c 1 $ping_test_host > /dev/null 2>&1 rc=$? [ $rc -eq 0 ] && break sleep 1 : $((timeout -= 1)) done fi fi eend $rc "The network is offline" } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mounts network shares according to /etc/fstab." depend() { local opts mywant="" for opts in $(fstabinfo -o -t nfs,nfs4); do case $opts in noauto) ;; *) mywant="$mywant nfsclient"; break ;; esac done after root config /etc/fstab want $mywant use afc-client amd openvpn use dns use root keyword -docker -podman -jail -lxc -prefix -systemd-nspawn -vserver } start() { local x= fs= rc= for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+,}$x" done ebegin "Mounting network filesystems" mount -at $fs rc=$? if [ "$RC_UNAME" = Linux ] && [ $rc = 0 ]; then mount -a -O _netdev rc=$? fi ewend $rc "Could not mount all network filesystems" if [ -z "$critical_mounts" ]; then rc=0 else for x in ${critical_mounts}; do fstabinfo -q $x || continue if ! mountinfo -q $x; then critical=x eerror "Failed to mount $x" fi done [ -z "$critical" ] && rc=0 fi return $rc } stop() { local x= fs= ebegin "Unmounting network filesystems" . "$RC_LIBEXECDIR"/sh/rc-mount.sh for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+,}$x" done if [ -n "$fs" ]; then umount -at $fs || eerror "Failed to simply unmount filesystems" fi eindent fs= for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+|}$x" done [ -n "$fs" ] && fs="^($fs)$" do_unmount umount ${fs:+--fstype-regex} $fs --netdev retval=$? eoutdent if [ "$RC_UNAME" = Linux ] && [ $retval = 0 ]; then umount -a -O _netdev retval=$? fi eend $retval "Failed to unmount network filesystems" } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause # # note that the spoofprotect, syncoockies and ip_forward options are set in # /etc/sysctl.conf : ${cfgfile:="/etc/network/interfaces"} : ${ifquery:="ifquery"} : ${ifstate:="/run/ifstate"} single_iface="${RC_SVCNAME#*.}" if [ "$single_iface" = "$RC_SVCNAME" ]; then single_iface= fi depend() { need localmount hostname want dev-settle after bootmisc hwdrivers modules provide net keyword -jail -prefix -vserver -docker } # find interfaces we want to start find_ifaces() { if [ -n "$single_iface" ]; then echo $single_iface return 0 fi if command -v "$ifquery" >/dev/null; then $ifquery -i "$cfgfile" --list -a return fi # fallback in case ifquery does not exist awk '$1 == "auto" {for (i = 2; i <= NF; i = i + 1) printf("%s ", $i)}' "$cfgfile" } # return the list of interfaces we should try stop find_running_ifaces() { if [ -n "$single_iface" ]; then echo $single_iface return 0 fi if command -v "$ifquery" >/dev/null; then $ifquery --state-file $ifstate -i "$cfgfile" --running return fi # fallback awk -F= '{print $2}' $ifstate } start() { local iface= ret=1 ebegin "Starting networking" eindent for iface in $(find_ifaces); do local r=0 ebegin "$iface" if ! ifup -i "$cfgfile" $iface >/dev/null; then ifdown -i "$cfgfile" $iface >/dev/null 2>&1 r=1 fi # atleast one interface needs to be started for action # to be success eend $r && ret=0 done eoutdent return $ret } stop() { local iface= # Don't stop the network at shutdown. yesno ${keep_network:-YES} && yesno $RC_GOINGDOWN && return 0 ebegin "Stopping networking" eindent for iface in $(find_running_ifaces); do ebegin "$iface" ifdown -i "$cfgfile" -f $iface >/dev/null eend $? done eoutdent return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Turns numlock on for the consoles." ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} depend() { keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -vserver } _setleds() { [ -z "$1" ] && return 1 local dev=/dev/tty t= i=1 retval=0 [ -d /dev/vc ] && dev=/dev/vc/ while [ $i -le $ttyn ]; do setleds -D "$1"num < $dev$i || retval=1 : $(( i += 1 )) done return $retval } start() { ebegin "Enabling numlock on ttys" _setleds + eend $? "Failed to enable numlock" } stop() { yesno $RC_GOINGDOWN && return 0 ebegin "Disabling numlock on ttys" _setleds - eend $? "Failed to disable numlock" } #!/sbin/openrc-run # Copyright (c) 2014-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # Can be used on OSs that take care of the clock. description="Provides clock" depend() { provide clock } start() { # This stub function is required to avoid OpenRC warning at boot: # # * The command variable is undefined. # * There is nothing for osclock to start. # * If this is what you intend, please write a start function. # * This will become a failure in a future release. # return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mounts misc filesystems in /proc." depend() { after clock use devfs want modules keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -vserver } start() { # Setup Kernel Support for miscellaneous Binary Formats if [ -d /proc/sys/fs/binfmt_misc ] && [ ! -e /proc/sys/fs/binfmt_misc/register ]; then if ! grep -qs binfmt_misc /proc/filesystems && modprobe -q binfmt-misc; then ewarn "The binfmt-misc module needs to be loaded by" \ "the modules service or built in." fi if grep -qs binfmt_misc /proc/filesystems; then ebegin "Mounting misc binary format filesystem" mount -t binfmt_misc -o nodev,noexec,nosuid \ binfmt_misc /proc/sys/fs/binfmt_misc eend $? fi fi return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mount the root fs read/write" depend() { after clock need fsck keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn -vserver } start() { local root_opts=",$(fstabinfo -o /)," case "$root_opts" in *,ro,*) ;; *) # Check if the rootfs isn't already writable. if checkpath -W /; then rm -f /fastboot /forcefsck else ebegin "Remounting root filesystem read/write" case "$RC_UNAME" in Linux) mount -n -o remount,rw / ;; *) mount -u -o rw / ;; esac eend $? "Root filesystem could not be mounted read/write" if [ $? -eq 0 ]; then rm -f /fastboot /forcefsck fi fi ;; esac case "$root_opts" in *,shared,*|*,rshared,*) ebegin "Making root filesystem shared" case "$RC_UNAME" in Linux) mount --make-rshared / ;; *) ewarn "Ignoring 'shared' option for / on non-linux" ;; esac eend $? "Root filesystem could not be made shared" ;; esac ebegin "Remounting filesystems" local mountpoint for mountpoint in $(fstabinfo); do case "${mountpoint}" in /*) # Don't remount swap etc. mountinfo -q "${mountpoint}" && \ fstabinfo --remount "${mountpoint}" ;; esac done eend 0 } #!/sbin/openrc-run # Copyright (c) 2016 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. supervisor=supervise-daemon command=/usr/bin/runsvdir pidfile="/var/run/${RC_SVCNAME}.pid" command_args="-P $RC_SVCDIR/sv 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'" start_pre() { checkpath -m 0755 -o root:root -d ${RC_SVCDIR}/sv } #!/sbin/openrc-run # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. command=/bin/s6-svscan command_args="${RC_SVCDIR}"/s6-scan command_background=yes pidfile=/var/run/s6-svscan.pid depend() { need localmount } start_pre() { if [ ! -e "$command" ]; then eerror "$command is missing (please install s6)" else einfo "Creating s6 scan directory" checkpath -d -m 0755 "$RC_SVCDIR"/s6-scan fi return } stop_post() { ebegin "Stopping any remaining s6 services" s6-svc -dx "${RC_SVCDIR}"/s6-scan/* 2>/dev/null || true eend $? ebegin "Stopping any remaining s6 service loggers" s6-svc -dx "${RC_SVCDIR}"/s6-scan/*/log 2>/dev/null || true eend $? } #!/sbin/openrc-run # Copyright (c) 2018 Sony Interactive Entertainment, Inc. # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Save the keymap for use as early as possible" depend() { need termencoding after bootmisc clock keymaps keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu } start() { # Save the keymapping for use immediately at boot ebegin "Saving key mapping" if checkpath -W "$RC_LIBEXECDIR"; then mkdir -p "$RC_LIBEXECDIR"/console dumpkeys >"$RC_LIBEXECDIR"/console/keymap fi eend $? "Unable to save keymapping" } #!/sbin/openrc-run # Copyright (c) 2018 Sony Interactive Entertainment, Inc. # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Configures terminal encoding." ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} : ${unicode:=${UNICODE}} depend() { keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu use root after bootmisc clock termencoding } start() { ebegin "Saving terminal encoding" # Save the encoding for use immediately at boot if checkpath -W "$RC_LIBEXECDIR"; then mkdir -p "$RC_LIBEXECDIR"/console if yesno ${unicode:-yes}; then echo "" > "$RC_LIBEXECDIR"/console/unicode else rm -f "$RC_LIBEXECDIR"/console/unicode fi fi eend 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Saves the caches OpenRC uses to non volatile storage" start() { if [ -e "$RC_SVCDIR"/clock-skewed ]; then ewarn "Clock skew detected!" if ! yesno "${RC_GOINGDOWN}"; then eerror "Not saving deptree cache" return 1 fi fi if [ ! -d "$RC_LIBEXECDIR"/cache ]; then if ! checkpath -W "$RC_LIBEXECDIR"; then eerror "${RC_LIBEXECDIR} is not writable!" eerror "Unable to save dependency cache" if yesno "${RC_GOINGDOWN}"; then return 0 fi return 1 fi rm -rf "$RC_LIBEXECDIR"/cache if ! mkdir -p "$RC_LIBEXECDIR"/cache; then eerror "Unable to create $RC_LIBEXECDIR/cache" eerror "Unable to save dependency cache" if yesno "${RC_GOINGDOWN}"; then return 0 fi return 1 fi fi if ! checkpath -W "$RC_LIBEXECDIR"/cache; then eerror "${RC_LIBEXECDIR}/cache is not writable!" eerror "Unable to save dependency cache" if yesno "${RC_GOINGDOWN}"; then return 0 fi return 1 fi ebegin "Saving dependency cache" local rc=0 save= for x in depconfig deptree rc.log shutdowntime softlevel; do [ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x" done if [ -n "$save" ]; then cp -p $save "$RC_LIBEXECDIR"/cache rc=$? fi if yesno "${RC_GOINGDOWN}"; then if [ $rc -ne 0 ]; then eerror "Unable to save dependency cache" fi eend 0 fi eend $rc "Unable to save dependency cache" } #!/sbin/openrc-run # Copyright (c) 2007-2022 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Initializes the random number generator." depend() { after clock need localmount keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn provide urandom } seedrng_with_options() { set -- [ -n "${seed_dir}" ] && set -- "$@" --seed-dir "${seed_dir}" yesno "${skip_credit}" && set -- "$@" --skip-credit seedrng "$@" } start() { ebegin "Seeding random number generator" seedrng_with_options eend $? "Error seeding random number generator" return 0 } stop() { ebegin "Saving random number generator seed" seedrng_with_options eend $? "Error saving random number generator seed" return 0 } #!/sbin/openrc-run # Copyright (c) 2009-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # This script was inspired by the equivalent rc.d staticroute from NetBSD. description="Configures static routes." __nl=" " depend() { after clock provide net use network keyword -jail -prefix -vserver } pre_flight_checks() { route=route [ -s /etc/route.conf ] && return 0 if [ -n "$staticiproute" ]; then route="ip route" staticroute="$staticiproute" fi } dump_args() { # Route configuration file, as used by the NetBSD RC system if [ -s /etc/route.conf ]; then cat /etc/route.conf return $? fi case "$staticroute" in *"$__nl"*) echo "$staticroute" ;; *) ( set -o noglob IFS=';'; set -- $staticroute IFS="$__nl"; echo "$*" ) ;; esac } do_routes() { local xtra= family= [ "$RC_UNAME" != Linux ] && xtra=-q ebegin "$1 static routes" eindent pre_flight_checks dump_args | while read args; do [ -z "$args" ] && continue case "$args" in "#"*) ;; "+"*) [ $2 = "add" ] && eval ${args#*+} ;; "-"*) [ $2 = "del" -o $2 = "delete" ] && eval ${args#*-} ;; *) veinfo "$args" case "$route" in "ip route") ip route $2 $args ;; *) # Linux route does cannot work it out ... if [ "$RC_UNAME" = Linux ]; then case "$args" in *:*) family="-A inet6";; *) family=;; esac fi route $family $xtra $2 -$args ;; esac veend $? esac done eoutdent eend 0 } start() { do_routes "Adding" "add" } stop() { local cmd="delete" [ "$RC_UNAME" = Linux ] && cmd="del" do_routes "Deleting" "$cmd" } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. depend() { after clock root before localmount keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn -vserver } start() { ebegin "Activating swap devices" case "$RC_UNAME" in NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;; *) swapon -a >/dev/null;; esac eend 0 # If swapon has nothing todo it errors, so always return 0 } stop() { ebegin "Deactivating swap devices" case "$RC_UNAME" in NetBSD|OpenBSD) swapctl -U -t noblk >/dev/null;; *) swapoff -a >/dev/null;; esac eend 0 } #!/sbin/openrc-run # Copyright (c) 2009-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Sets the local clock to the mtime of a given file." swclock_file="${swclock_file:-/var/lib/misc/openrc-shutdowntime}" depend() { provide clock keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu } # swclock is an OpenRC built in start() { ebegin "Setting the local clock based on last shutdown time" if ! swclock "${swclock_file}" 2> /dev/null; then swclock --warn /sbin/openrc-run fi eend $? } stop() { ebegin "Saving the shutdown time" swclock --save "${swclock_file}" eend $? } #!/sbin/openrc-run depend() { after clock before bootmisc logger keyword -prefix -systemd-nspawn -vserver } start() { local quiet retval=0 status ebegin "Configuring kernel parameters" yesno $rc_verbose || quiet=-q eindent for f in /lib/sysctl.d/*.conf \ /usr/lib/sysctl.d/*.conf; do if [ -f /etc/sysctl.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /etc/sysctl.d/${f##*/}" continue fi if [ -f /run/sysctl.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/sysctl.d/${f##*/}" continue fi if [ -f "$f" ]; then vebegin "applying $f" sysctl $quiet -p "$f" status=$? if [ $status -gt 0 ]; then # Don't change retval= since we expect some package/distro provided # sysctl configurations to break, so just warn when the user wants # verbose messages vewarn "Unable to configure kernel parameters from $f" fi fi done for f in /etc/sysctl.d/*.conf; do if [ -f /run/sysctl.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/sysctl.d/${f##*/}" continue fi if [ -f "$f" ]; then vebegin "applying $f" sysctl $quiet -p "$f" status=$? if [ $status -gt 0 ]; then retval=$(( $retval + $status )) eerror "Unable to configure kernel parameters from $f" fi fi done if [ -f /etc/sysctl.conf ]; then vebegin "applying /etc/sysctl.conf" sysctl $quiet -p /etc/sysctl.conf status=$? if [ $status -gt 0 ]; then retval=$(( $retval + $status )) eerror "Unable to configure kernel parameters from /etc/sysctl.conf" fi fi for f in /run/sysctl.d/*.conf; do if [ -f "$f" ]; then vebegin "applying $f" sysctl $quiet -p "$f" status=$? if [ $status -gt 0 ]; then retval=$(( $retval + $status )) eerror "Unable to configure kernel parameters from $f" fi fi done eoutdent eend $retval } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mount the sys filesystem." sysfs_opts=nodev,noexec,nosuid depend() { keyword -docker -podman -lxc -prefix -systemd-nspawn -vserver } mount_sys() { grep -Eq "[[:space:]]+sysfs$" /proc/filesystems || return 1 mountinfo -q /sys && return 0 if [ ! -d /sys ]; then if ! mkdir -m 0755 /sys; then ewarn "Could not create /sys!" return 1 fi fi ebegin "Mounting /sys" if ! fstabinfo --mount /sys; then mount -n -t sysfs -o ${sysfs_opts} sysfs /sys fi eend $? } mount_misc() { # Setup Kernel Support for securityfs if [ -d /sys/kernel/security ] && \ ! mountinfo -q /sys/kernel/security; then if grep -qs securityfs /proc/filesystems; then ebegin "Mounting security filesystem" mount -n -t securityfs -o ${sysfs_opts} \ securityfs /sys/kernel/security eend $? fi fi # Setup Kernel Support for debugfs if [ -d /sys/kernel/debug ] && ! mountinfo -q /sys/kernel/debug; then if grep -qs debugfs /proc/filesystems; then ebegin "Mounting debug filesystem" mount -n -t debugfs -o ${sysfs_opts} debugfs /sys/kernel/debug eend $? fi fi # Setup Kernel Support for configfs if [ -d /sys/kernel/config ] && ! mountinfo -q /sys/kernel/config; then if grep -qs configfs /proc/filesystems; then ebegin "Mounting config filesystem" mount -n -t configfs -o ${sysfs_opts} configfs /sys/kernel/config eend $? fi fi # set up kernel support for fusectl if [ -d /sys/fs/fuse/connections ] \ && ! mountinfo -q /sys/fs/fuse/connections; then if grep -qs fusectl /proc/filesystems; then ebegin "Mounting fuse control filesystem" mount -n -t fusectl -o ${sysfs_opts} \ fusectl /sys/fs/fuse/connections eend $? fi fi # Setup Kernel Support for SELinux if [ -d /sys/fs/selinux ] && ! mountinfo -q /sys/fs/selinux; then if grep -qs selinuxfs /proc/filesystems; then ebegin "Mounting SELinux filesystem" mount -t selinuxfs selinuxfs /sys/fs/selinux eend $? fi fi # Setup Kernel Support for persistent storage if [ -d /sys/fs/pstore ] && ! mountinfo -q /sys/fs/pstore; then if grep -qs 'pstore$' /proc/filesystems; then ebegin "Mounting persistent storage (pstore) filesystem" mount -t pstore pstore -o ${sysfs_opts} /sys/fs/pstore eend $? fi fi # set up kernel support for efivarfs if [ -d /sys/firmware/efi/efivars ] && ! mountinfo -q /sys/firmware/efi/efivars; then ebegin "Mounting efivarfs filesystem" mount -n -t efivarfs -o ${sysfs_opts} \ efivarfs /sys/firmware/efi/efivars 2> /dev/null eend 0 fi } restorecon_sys() { if [ -x /sbin/restorecon ]; then ebegin "Restoring SELinux contexts in /sys" restorecon -F /sys/devices/system/cpu/online >/dev/null 2>&1 eend $? fi } start() { mount_sys mount_misc restorecon_sys return 0 } #!/sbin/openrc-run description="Set sysfs variables from /etc/sysfs.conf and /etc/sysfs.d/*.conf" conffile=/etc/sysfs.conf confdir=/etc/sysfs.d depend() { need sysfs } setval() { local value="$1" attrib="$2" # Some fields need a terminating newline, others # need the terminating newline to be absent :-( echo -n "$value" > "$attrib" 2>/dev/null \ || echo "$value" > "$attrib" } load_conffile() { local file="$1" while read line; do local line=${line%%#*} local cmd= attrib= value= set -- $line if [ $# -eq 0 ]; then continue fi case "$1$3" in mode=) cmd=chmod attrib="$2" value="$4" ;; owner=) cmd=chown attrib="$2" value="$4" ;; *) if [ "$2" = "=" ]; then cmd=setval attrib="$1" value="$3" fi ;; esac if ! [ -e "/sys/$attrib" ]; then eerror "$attrib: unknown attribute" continue fi if [ -z "$attrib" ] || [ -z "$value" ]; then eerror "syntax error in $file: '$line'" continue fi $cmd "$value" "/sys/$attrib" done < "$file" } start() { [ -r "$conffile" -o -d "$confdir" ] || return 0 ebegin "Setting sysfs variables" for file in $confdir/*.conf $conffile; do [ -r "$file" ] || continue load_conffile "$file" || return 1 done eend 0 } #!/sbin/openrc-run # Copyright (c) 2008-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Configures terminal encoding." ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} : ${unicode:=${UNICODE}} depend() { keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu after devfs } start() { local ttydev=/dev/tty n= [ -d /dev/vc ] && ttydev=/dev/vc/ # Set terminal encoding to either ASCII or UNICODE. # See utf-8(7) for more information. local termencoding="%@" termmsg="ASCII" if yesno ${unicode:-yes}; then termencoding="%G" termmsg="UTF-8" fi ebegin "Setting terminal encoding [$termmsg]" n=1 while [ ${n} -le "$ttyn" ]; do printf "\033%s" "$termencoding" >$ttydev$n : $(( n += 1 )) done # Save the encoding for use immediately at boot if checkpath -W "$RC_LIBEXECDIR"; then mkdir -p "$RC_LIBEXECDIR"/console if yesno ${unicode:-yes}; then echo "" > "$RC_LIBEXECDIR"/console/unicode else rm -f "$RC_LIBEXECDIR"/console/unicode fi fi eend 0 } This directory should contain programs or scripts which are to be run when the local service is started or stopped. If a file in this directory is executable and it has a .start extension, it will be run when the local service is started. If a file is executable and it has a .stop extension, it will be run when the local service is stopped. All files are processed in lexical order. Keep in mind that files in this directory are processed sequentially, and the local service is not considered started or stopped until everything is processed, so if you have a process which takes a long time to run, it can delay your boot or shutdown processing. /var/log/rc.log { missingok notifempty } # Global OpenRC configuration settings # Set to "YES" if you want the rc system to try and start services # in parallel for a slight speed improvement. When running in parallel we # prefix the service output with its name as the output will get # jumbled up. # WARNING: whilst we have improved parallel, it can still potentially lock # the boot process. Don't file bugs about this unless you can supply # patches that fix it without breaking other things! #rc_parallel="NO" # Set rc_interactive to "YES" and you'll be able to press the I key during # boot so you can choose to start specific services. Set to "NO" to disable # this feature. This feature is automatically disabled if rc_parallel is # set to YES. #rc_interactive="YES" # If we need to drop to a shell, you can specify it here. # If not specified we use $SHELL, otherwise the one specified in /etc/passwd, # otherwise /bin/sh # Linux users could specify /sbin/sulogin #rc_shell=/bin/sh # Do we allow any started service in the runlevel to satisfy the dependency # or do we want all of them regardless of state? For example, if net.eth0 # and net.eth1 are in the default runlevel then with rc_depend_strict="NO" # both will be started, but services that depend on 'net' will work if either # one comes up. With rc_depend_strict="YES" we would require them both to # come up. #rc_depend_strict="YES" # rc_hotplug controls which services we allow to be hotplugged. # A hotplugged service is one started by a dynamic dev manager when a matching # hardware device is found. # Hotplugged services appear in the "hotplugged" runlevel. # If rc_hotplug is set to any value, we compare the name of this service # to every pattern in the value, from left to right, and we allow the # service to be hotplugged if it matches a pattern, or if it matches no # patterns. Patterns can include shell wildcards. # To disable services from being hotplugged, prefix patterns with "!". #If rc_hotplug is not set or is empty, all hotplugging is disabled. # Example - rc_hotplug="net.wlan !net.*" # This allows net.wlan and any service not matching net.* to be hotplugged. # Example - rc_hotplug="!net.*" # This allows services that do not match "net.*" to be hotplugged. # rc_logger launches a logging daemon to log the entire rc process to # /var/log/rc.log # NOTE: Linux systems require the devfs service to be started before # logging can take place and as such cannot log the sysinit runlevel. #rc_logger="NO" # Through rc_log_path you can specify a custom log file. # The default value is: /var/log/rc.log #rc_log_path="/var/log/rc.log" # If you want verbose output for OpenRC, set this to yes. If you want # verbose output for service foo only, set it to yes in /etc/conf.d/foo. #rc_verbose=no # By default we filter the environment for our running scripts. To allow other # variables through, add them here. Use a * to allow all variables through. #rc_env_allow="VAR1 VAR2" # By default we assume that all daemons will start correctly. # However, some do not - a classic example is that they fork and return 0 AND # then child barfs on a configuration error. Or the daemon has a bug and the # child crashes. You can set the number of milliseconds start-stop-daemon # waits to check that the daemon is still running after starting here. # The default is 0 - no checking. #rc_start_wait=100 # rc_nostop is a list of services which will not stop when changing runlevels. # This still allows the service itself to be stopped when called directly. #rc_nostop="" # rc will attempt to start crashed services by default. # However, it will not stop them by default as that could bring down other # critical services. #rc_crashed_stop=NO #rc_crashed_start=YES # Set rc_nocolor to yes if you do not want colors displayed in OpenRC # output. #rc_nocolor=NO ############################################################################## # MISC CONFIGURATION VARIABLES # There variables are shared between many init scripts # Set unicode to NO to turn off unicode support for keyboards and screens. #unicode="YES" # This is how long fuser should wait for a remote server to respond. The # default is 60 seconds, but it can be adjusted here. #rc_fuser_timeout=60 # Below is the default list of network fstypes. # # afs ceph cifs coda davfs fuse fuse.glusterfs fuse.sshfs gfs glusterfs lustre # ncpfs nfs nfs4 ocfs2 shfs smbfs # # If you would like to add to this list, you can do so by adding your # own fstypes to the following variable. #extra_net_fs_list="" ############################################################################## # SERVICE CONFIGURATION VARIABLES # These variables are documented here, but should be configured in # /etc/conf.d/foo for service foo and NOT enabled here unless you # really want them to work on a global basis. # If your service has characters in its name which are not legal in # shell variable names and you configure the variables for it in this # file, those characters should be replaced with underscores in the # variable names as shown below. # Some daemons are started and stopped via start-stop-daemon. # We can set some things on a per service basis, like the nicelevel. # These need to be exported #export SSD_NICELEVEL="0" # Or the ionice level. The format is class[:data] , just like the # --ionice start-stop-daemon parameter. #export SSD_IONICELEVEL="0:0" # Or the OOM score adjustment. #export SSD_OOM_SCORE_ADJ="0" # Pass ulimit parameters # If you are using bash in POSIX mode for your shell, note that the # ulimit command uses a block size of 512 bytes for the -c and -f # options #rc_ulimit="-u 30" # It's possible to define extra dependencies for services like so #rc_config="/etc/foo" #rc_need="openvpn" #rc_use="net.eth0" #rc_after="clock" #rc_before="local" #rc_provide="!net" # You can also enable the above commands here for each service. Below is an # example for service foo. #rc_foo_config="/etc/foo" #rc_foo_need="openvpn" #rc_foo_after="clock" # Below is an example for service foo-bar. Note that the '-' is illegal # in a shell variable name, so we convert it to an underscore. # example for service foo-bar. #rc_foo_bar_config="/etc/foo-bar" #rc_foo_bar_need="openvpn" #rc_foo_bar_after="clock" # You can also remove dependencies. # This is mainly used for saying which services do NOT provide net. #rc_net_tap0_provide="!net" # This is the subsystem type. # It is used to match against keywords set by the keyword call in the # depend function of service scripts. # # It should be set to the value representing the environment this file is # PRESENTLY in, not the virtualization the environment is capable of. # If it is commented out, automatic detection will be used. # # The list below shows all possible settings as well as the host # operating systems where they can be used and autodetected. # # "" - nothing special # "docker" - Docker container manager (Linux) # "podman" - Podman container manager (Linux) # "jail" - Jail (DragonflyBSD or FreeBSD) # "lxc" - Linux Containers # "openvz" - Linux OpenVZ # "prefix" - Prefix # "rkt" - CoreOS container management system (Linux) # "subhurd" - Hurd subhurds (to be checked) # "systemd-nspawn" - Container created by systemd-nspawn (Linux) # "uml" - Usermode Linux # "vserver" - Linux vserver # "xen0" - Xen0 Domain (Linux and NetBSD) # "xenU" - XenU Domain (Linux and NetBSD) #rc_sys="" # if you use openrc-init, which is currently only available on Linux, # this is the default runlevel to activate after "sysinit" and "boot" # when booting. #rc_default_runlevel="default" # on Linux and Hurd, this is the number of ttys allocated for logins # It is used in the consolefont, keymaps, numlock and termencoding # service scripts. rc_tty_number=12 ############################################################################## # LINUX CGROUPS RESOURCE MANAGEMENT # This sets the mode used to mount cgroups. # "hybrid" mounts cgroups version 2 on /sys/fs/cgroup/unified and # cgroups version 1 on /sys/fs/cgroup. # "legacy" mounts cgroups version 1 on /sys/fs/cgroup # "unified" mounts cgroups version 2 on /sys/fs/cgroup #rc_cgroup_mode="unified" # This is a list of controllers which should be enabled for cgroups version 2 # when hybrid mode is being used. # Controllers listed here will not be available for cgroups version 1. #rc_cgroup_controllers="" # This variable contains the cgroups version 2 settings for your services. # If this is set in this file, the settings will apply to all services. # If you want different settings for each service, place the settings in # /etc/conf.d/foo for service foo. # The format is to specify the setting and value followed by a newline. # Multiple settings and values can be specified. # For example, you would use this to set the maximum memory and maximum # number of pids for a service. #rc_cgroup_settings=" #memory.max 10485760 #pids.max max #" # # For more information about the adjustments that can be made with # cgroups version 2, see Documentation/cgroups-v2.txt in the linux kernel # source tree. #rc_cgroup_settings="" # This switch controls whether or not cgroups version 1 controllers are # individually mounted under # /sys/fs/cgroup in hybrid or legacy mode. #rc_controller_cgroups="YES" # The following setting turns on the memory.use_hierarchy setting in the # root memory cgroup for cgroups v1. # It must be set to yes in this file if you want this functionality. #rc_cgroup_memory_use_hierarchy="NO" # The following settings allow you to set up values for the cgroups version 1 # controllers for your services. # They can be set in this file;, however, if you do this, the settings # will apply to all of your services. # If you want different settings for each service, place the settings in # /etc/conf.d/foo for service foo. # The format is to specify the names of the settings followed by their # values. Each variable can hold multiple settings. # For example, you would use this to set the cpu.shares setting in the # cpu controller to 512 for your service. # rc_cgroup_cpu=" # cpu.shares 512 # " # # For more information about the adjustments that can be made with # cgroups version 1, see Documentation/cgroups-v1/* in the linux kernel # source tree. # Set the blkio controller settings for this service. #rc_cgroup_blkio="" # Set the cpu controller settings for this service. #rc_cgroup_cpu="" # Add this service to the cpuacct controller (any value means yes). #rc_cgroup_cpuacct="" # Set the cpuset controller settings for this service. #rc_cgroup_cpuset="" # Set the devices controller settings for this service. #rc_cgroup_devices="" # Set the hugetlb controller settings for this service. #rc_cgroup_hugetlb="" # Set the memory controller settings for this service. #rc_cgroup_memory="" # Set the net_cls controller settings for this service. #rc_cgroup_net_cls="" # Set the net_prio controller settings for this service. #rc_cgroup_net_prio="" # Set the pids controller settings for this service. #rc_cgroup_pids="" # Set this to YES if you want all of the processes in a service's cgroup # killed when the service is stopped or restarted. # Be aware that setting this to yes means all of a service's # child processes will be killed. Keep this in mind if you set this to # yes here instead of for the individual services in # /etc/conf.d/. # To perform this cleanup manually for a stopped service, you can # execute cgroup_cleanup with /etc/init.d/ cgroup_cleanup or # rc-service cgroup_cleanup. # If the kernel includes support for cgroup2's cgroup.kill, this is used # to reliably teardown the cgroup. # If this fails, the process followed in this cleanup is the following: # 1. send stopsig (sigterm if it isn't set) to all processes left in the # cgroup immediately followed by sigcont. # 2. Send sighup to all processes in the cgroup if rc_send_sighup is # yes. # 3. delay for rc_timeout_stopsec seconds. # 4. send sigkill to all processes in the cgroup unless disabled by # setting rc_send_sigkill to no. # rc_cgroup_cleanup="NO" # If this is yes, we will send sighup to the processes in the cgroup # immediately after stopsig and sigcont. #rc_send_sighup="NO" # This is the amount of time in seconds that we delay after sending sigcont # and optionally sighup, before we optionally send sigkill to all # processes in the # cgroup. # The default is 90 seconds. #rc_timeout_stopsec="90" # If this is set to no, we do not send sigkill to all processes in the # cgroup. #rc_send_sigkill="YES" ############################################################################## # SUPERVISE DAEMON CONFIGURATION VARIABLES # These variables sets more reasonable defaults for supervise-daemon(8). # They may be overriden on a per service basis. # Wait this number of seconds before restarting a daemon after it crashes. respawn_delay=2 # Sets the maximum number of times a daemon will be respawned during a respawn # period. If a daemon dies more than this number of times during a respawn # period, supervise-daemon(8) will give up trying to respawn it and exit. # 0 means unlimited. respawn_max=5 # Sets the length in seconds of a respawn period. respawn_period=1800 Kernel system variables configuration files Files found under the /etc/sysctl.d directory that end with .conf are parsed within sysctl(8) at boot time. If you want to set kernel variables you can either edit /etc/sysctl.conf or make a new file. The filename isn't important, but don't make it a package name as it may clash with something the package builder needs later. The file name must end with .conf, or it will not be read. The recommended location for local system settings is /etc/sysctl.d/local.conf but as long as you follow the rules for the name of the file, anything will work. see the sysctl.conf(5) man page for details of the format. This manpage can be found in the `procps-doc` package. #!/bin/sh # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # Define variables scandir="/run/openrc/s6-scan" statfile=/dev/shm/s6-svstat.${USER} color_red='\E[01;31m' color_green='\E[32m' color_yellow='\E[01;33m' # Time Modules uptimeModules() { # Given a single integer argument representing seconds of uptime... # convert uptime to a friendly human readable string: '2d 16h 58m 46s' # define a variable to keep track of the longest length uptime string uSec=${1:-0} uDay=$(( $uSec / 86400 )) uSec=$(( $uSec % 86400 )) uHour=$(( $uSec / 3600 )) uSec=$(( $uSec % 3600 )) uMin=$(( $uSec / 60 )) uSec=$(( $uSec % 60 )) [ $uDay -ne 0 ] && pDay="${uDay}d " || pDay="" [ $uHour -ne 0 ] && pHour="${uHour}h " || pHour="" [ $uMin -ne 0 ] && pMin="${uMin}m " || pMin="" [ $uSec -ne 0 ] && pSec="${uSec}s " || pSec="" parsedUptime="$( echo ${pDay}${pHour}${pMin}${pSec} | sed 's#[ \t]*$##' )" uCharCount=${#parsedUptime} } # Make sure we are running as root if [ $(id -u) != 0 ]; then printf "This command must be run as root\n" exit 1 fi # Make sure scandir exists if [ ! -d $scandir ]; then printf "%s\n" "$scandir does not exist" exit 1 fi # Make sure s6-svscan is running if ! pgrep s6-svscan >/dev/null ; then printf "s6-svscan is not running\n" exit 1 fi # If TERM is undefined (launching sstat through an ssh command) then make it vt100 if [ -z $TERM -o $TERM = "dumb" ]; then export TERM=vt100 fi # Gather list of candidate services s6-supervise may be supervising # filter for folders and symlinks at /run/openrc/s6-scan/* omitting output starting with '.' services="$(find $scandir -maxdepth 1 -mindepth 1 \( -type d -or -type l \) | awk -F'/' '{ if ( $NF !~ "^\\." ) print $NF}')" if [ -z "$services" ]; then printf "s6 found no services configured for supervision\n" exit 1 fi # Gather status for each service from s6-svstat # write to tmp file in memory for non I/O bound repetitive access rm -f $statfile 2>/dev/null for service in $services ; do echo "$service $(s6-svstat ${scandir}/${service})" >> $statfile done # Define longest string from parsed uptime (default to 7 to match string length of 'Up Time') timeStringLength=7 for uptime in $(awk '$2 == "up" {print $5}' $statfile | sort -run) do uptimeModules $uptime [ ${uCharCount} -gt $timeStringLength ] && timeStringLength=$uCharCount done # Print the status header like so... # Service Name State PID Up Time Start Time #---------------------------- ----- ----- -------------- ------------------- printf "\n" printf "%28s %5s %5s %${timeStringLength}s %19s\n" "Service Name" "State" "PID" "Up Time" "Start Time" for dashes in 28 5 5 $timeStringLength 19 ; do printf "%0.s-" $(seq 1 $dashes) ; echo -n ' ' done && printf "\n" # sshd up (pid 26300) 80373 seconds cat $statfile | \ while read line do set $line service=$1 state=$2 pid=${4/)/} time=$5 # call function to convert time in seconds and define additional variables uptimeModules $time if [ "$state" = up ]; then if [ $time -lt 30 ]; then # uptime < 30 seconds, color the whole line yellow echo -en "$color_yellow" # 1st 4 columns are printed with printf for space padding printf "%28s %5s %5s %${timeStringLength}s" $service $state $pid "$parsedUptime" # 4th column is output from date -d echo -e " $(date -d "${time} seconds ago" "+%F %T")" # reset terminal colors tput sgr0 else printf "%28s" $service # uptime > 30 seconds, color just the "state" value green echo -en "$color_green" printf " %5s" $state # reset terminal colors tput sgr0 printf " %5s" $pid printf " %${timeStringLength}s" "$parsedUptime" echo -e " $(date -d "${time} seconds ago" "+%F %T")" fi else printf "%28s" $service echo -en "$color_red" printf " %5s" $state tput sgr0 echo "" fi done # Cleanup rm -f $statfile 2>/dev/null printf "\n\n" rc-status #!/bin/sh # Detect AC power or not in a portable way # Exit 0 if on AC power, 1 if not and 255 if we don't know how to work it out # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. if [ -f /proc/acpi/ac_adapter/*/state ]; then cat /proc/acpi/ac_adapter/*/state | while read line; do case "$line" in "state:"*"off-line") exit 128;; esac done elif [ -d /sys/class/power_supply ]; then for dir in /sys/class/power_supply/*/; do [ "$(cat "${dir}/type")" != "Mains" ] && continue [ "$(cat "${dir}/online")" = 0 ] && exit 128 done elif [ -f /proc/pmu/info ]; then cat /proc/pmu/info | while read line; do case "$line" in "AC Power"*": 0") exit 128;; esac done elif command -v envstat >/dev/null 2>&1; then # NetBSD has envstat envstat -d acpiacad0 2>/dev/null | while read line; do case "$line" in "connected:"*"OFF") exit 128;; esac done elif sysctl -q hw.acpi.acline >/dev/null 2>/dev/null; then case $(sysctl -n hw.acpi.acline) in 0) exit 1;; *) exit 0;; esac else exit 255 fi [ $? != 128 ] #!/bin/sh # This is a reimplementation of the systemd binfmt.d code to register # misc binary formats with the kernel. # # See the binfmt.d manpage as well: # http://0pointer.de/public/systemd-man/binfmt.d.html # This script should match the manpage as of 2015/03/31 # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. apply_file() { [ $# -lt 1 ] && return 0 FILE="$1" LINENUM=0 ### FILE FORMAT ### # See https://www.kernel.org/doc/Documentation/binfmt_misc.txt while read -r line; do LINENUM=$(( LINENUM+1 )) case $line in \#*) continue ;; \;*) continue ;; '') continue ;; esac local reg=${line#*:} [ -e /proc/sys/fs/binfmt_misc/${reg%%:*} ] && echo -1 > /proc/sys/fs/binfmt_misc/${reg%%:*} echo "${line}" > /proc/sys/fs/binfmt_misc/register rc=$? if [ $rc -ne 0 ]; then printf "binfmt: invalid entry on line %d of \`%s'\n" \ "$LINENUM" "$FILE" >&2 error=1 fi done <$FILE return $rc } [ -e /proc/sys/fs/binfmt_misc/register ] || exit 0 error=0 if [ $# -gt 0 ]; then while [ $# -gt 0 ]; do apply_file "$1" shift done else # The hardcoding of these paths is intentional; we are following the # systemd spec. binfmt_dirs='/usr/lib/binfmt.d/ /run/binfmt.d/ /etc/binfmt.d/' binfmt_basenames='' binfmt_d='' # Build a list of sorted unique basenames # directories declared later in the binfmt_d list will override earlier # directories, on a per file basename basis. # `/run/binfmt.d/foo.conf' supersedes `/usr/lib/binfmt.d/foo.conf'. # `/run/binfmt.d/foo.conf' will always be read after `/etc/binfmt.d/bar.conf' for d in ${binfmt_dirs} ; do [ -d $d ] && for f in ${d}/*.conf ; do case "${f##*/}" in systemd.conf|systemd-*.conf) continue;; esac [ -e $f ] && binfmt_basenames="${binfmt_basenames}\n${f##*/}" done # for f in ${d} done # for d in ${binfmt_dirs} binfmt_basenames="$(printf "${binfmt_basenames}\n" | sort -u )" for b in $binfmt_basenames ; do real_f='' for d in $binfmt_dirs ; do f=${d}/${b} [ -e "${f}" ] && real_f=$f done [ -e "${real_f}" ] && binfmt_d="${binfmt_d} ${real_f}" done # loop through the gathered fragments, sorted globally by filename. # `/run/binfmt.d/foo.conf' will always be read after `/etc/binfmt.d/bar.conf' for FILE in $binfmt_d ; do apply_file "$FILE" done fi exit $error # vim: set ts=2 sw=2 sts=2 noet ft=sh: #!/bin/sh # This is run by the kernel after the last task is removed from a # control group in the openrc hierarchy. # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. cgroup=/sys/fs/cgroup/openrc PATH=/bin:/usr/bin:/sbin:/usr/sbin if [ -d ${cgroup}/"$1" ]; then rmdir ${cgroup}/"$1" fi # Allow any sh script to work with einfo functions and friends # We also provide a few helpful functions for other programs to use # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. RC_GOT_FUNCTIONS="yes" eindent() { : $(( EINFO_INDENT = ${EINFO_INDENT:-0} + 2 )) [ "$EINFO_INDENT" -gt 40 ] && EINFO_INDENT=40 export EINFO_INDENT } eoutdent() { : $(( EINFO_INDENT = ${EINFO_INDENT:-0} - 2 )) [ "$EINFO_INDENT" -lt 0 ] && EINFO_INDENT=0 return 0 } yesno() { [ -z "$1" ] && return 1 # Check the value directly so people can do: # yesno ${VAR} case "$1" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0;; [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1;; esac # Check the value of the var so people can do: # yesno VAR # Note: this breaks when the var contains a double quote. local value= eval value=\"\$$1\" case "$value" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0;; [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1;; *) vewarn "\$$1 is not set properly"; return 2;; esac } rc_runlevel() { rc-status --runlevel } _sanitize_path() { local IFS=":" p= path= for p in $PATH; do case "$p" in /usr/libexec/rc/bin|/usr/libexec/rc/sbin);; /bin|/sbin|/usr/bin|/usr/sbin);; /usr/bin|/usr/sbin);; /usr/local/bin|/usr/local/sbin);; *) path="$path${path:+:}$p";; esac done echo "$path" } # Allow our scripts to support zsh if [ -n "$ZSH_VERSION" ]; then emulate sh NULLCMD=: alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST fi # Make a sane PATH _PREFIX= _PKG_PREFIX=/usr _LOCAL_PREFIX=/usr/local _LOCAL_PREFIX=${_LOCAL_PREFIX:-/usr/local} _PATH=/usr/libexec/rc/bin case "$_PREFIX" in "$_PKG_PREFIX"|"$_LOCAL_PREFIX") ;; *) _PATH="$_PATH:$_PREFIX/bin:$_PREFIX/sbin";; esac _PATH="$_PATH":/bin:/sbin:/usr/bin:/usr/sbin if [ -n "$_PKG_PREFIX" ]; then _PATH="$_PATH:$_PKG_PREFIX/bin:$_PKG_PREFIX/sbin" fi if [ -n "$_LOCAL_PREFIX" ]; then _PATH="$_PATH:$_LOCAL_PREFIX/bin:$_LOCAL_PREFIX/sbin" fi _path="$(_sanitize_path "$PATH")" PATH="$_PATH${_path:+:}$_path" ; export PATH unset _sanitize_path _PREFIX _PKG_PREFIX _LOCAL_PREFIX _PATH _path for arg; do case "$arg" in --nocolor|--nocolour|-C) EINFO_COLOR="NO" ; export EINFO_COLOR ;; esac done if [ -t 1 ] && yesno "${EINFO_COLOR:-YES}"; then if [ -z "$GOOD" ]; then eval $(eval_ecolors) fi else # We need to have shell stub functions so our init scripts can remember # the last ecmd for _e in ebegin eend error errorn einfo einfon ewarn ewarnn ewend \ vebegin veend veinfo vewarn vewend; do eval "$_e() { local _r; command $_e \"\$@\"; _r=\$?; \ EINFO_LASTCMD=$_e; export EINFO_LASTCMD ; return \$_r; }" done unset _e fi #!/bin/sh # Shell wrapper to list our dependencies # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. . /usr/libexec/rc/sh/functions.sh . /usr/libexec/rc/sh/rc-functions.sh config() { [ -n "$*" ] && echo "$RC_SVCNAME config $*" >&3 } need() { [ -n "$*" ] && echo "$RC_SVCNAME ineed $*" >&3 } use() { [ -n "$*" ] && echo "$RC_SVCNAME iuse $*" >&3 } want() { [ -n "$*" ] && echo "$RC_SVCNAME iwant $*" >&3 } before() { [ -n "$*" ] && echo "$RC_SVCNAME ibefore $*" >&3 } after() { [ -n "$*" ] && echo "$RC_SVCNAME iafter $*" >&3 } provide() { [ -n "$*" ] && echo "$RC_SVCNAME iprovide $*" >&3 } keyword() { local c x set -- $* while [ -n "$*" ]; do case "$1" in -containers) x="$(_get_containers)" ;; !-containers) x="$(_get_containers_remove)" ;; *) x=$1 ;; esac c="${c}${x} " shift done [ -n "$c" ] && echo "$RC_SVCNAME keyword $c" >&3 } depend() { : } _done_dirs= for _dir in \ /etc/init.d \ /usr/etc/init.d \ /usr/local/etc/init.d do [ -d "$_dir" ] || continue # Don't do the same dir twice for _d in $_done_dirs; do [ "$_d" = "$_dir" ] && continue 2 done unset _d _done_dirs="$_done_dirs $_dir" cd "$_dir" for RC_SERVICE in *; do [ -x "$RC_SERVICE" -a -f "$RC_SERVICE" ] || continue # Only generate dependencies for OpenRC scripts read one two three <"$RC_SERVICE" case "$one" in \#*/openrc-run) ;; \#*/runscript) ;; \#!) case "$two" in */openrc-run) ;; */runscript) ;; *) continue ;; esac ;; *) continue ;; esac unset one two three RC_SVCNAME=${RC_SERVICE##*/} ; export RC_SVCNAME # Compat SVCNAME=$RC_SVCNAME ; export SVCNAME ( # Save stdout in fd3, then remap it to stderr exec 3>&1 1>&2 _rc_c=${RC_SVCNAME%%.*} if [ -n "$_rc_c" -a "$_rc_c" != "$RC_SVCNAME" ]; then if [ -e "$_dir/../conf.d/$_rc_c" ]; then . "$_dir/../conf.d/$_rc_c" fi fi unset _rc_c if [ -e "$_dir/../conf.d/$RC_SVCNAME" ]; then . "$_dir/../conf.d/$RC_SVCNAME" fi [ -e /etc/rc.conf ] && . /etc/rc.conf if [ -d "/etc/rc.conf.d" ]; then for _f in "/etc"/rc.conf.d/*.conf; do [ -e "$_f" ] && . "$_f" done fi if . "$_dir/$RC_SVCNAME"; then echo "$RC_SVCNAME" >&3 _depend fi ) done done #!/bin/sh # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. : ${CONSOLE:=/dev/console} : ${RC_LIBEXECDIR:=/usr/libexec/rc} service_present() { local p="/etc/runlevels/$1/$2" # fail if the file doesn't exist [ ! -e "$p" ] && return 1 # succeed if $RC_SYS empty, can't check further, assume script will run [ -z "$RC_SYS" ] && return 0 # fail if file contains "-$RC_SYS", because then it won't run grep -Eqi "^[[:space:]]*keyword[[:space:]].*-$RC_SYS([[:space:]]|$)" "$p" && return 1 # succeed otherwise return 0 } if [ -e "$RC_LIBEXECDIR"/console/unicode ]; then termencoding="%G" kmode="-u" else termencoding="(K" kmode="-a" fi # Set the SELinux label on console before everything so we dont lose output [ -x /sbin/restorecon ] && /sbin/restorecon -F /dev/console # Try and set a font and as early as we can if service_present "$RC_DEFAULTLEVEL" consolefont || service_present "$RC_BOOTLEVEL" consolefont; then printf "\033%s" "$termencoding" >"$CONSOLE" 2>/dev/null if [ -r "$RC_LIBEXECDIR"/console/font ] && \ command -v setfont > /dev/null 2>&1; then [ -c "$CONSOLE" ] && cons="-C $CONSOLE" setfont $cons "$RC_LIBEXECDIR"/console/font 2>/dev/null fi fi # Try and set a keyboard map as early as possible if service_present "$RC_DEFAULTLEVEL" loadkeys || service_present "$RC_BOOTLEVEL" loadkeys; then kbd_mode $kmode -C "$CONSOLE" 2>/dev/null if [ -r "$RC_LIBEXECDIR"/console/keymap ]; then loadkeys -q "$RC_LIBEXECDIR"/console/keymap 2>/dev/null fi fi # Ensure we exit 0 so the boot continues exit 0 #!/bin/sh # Copyright (c) 1999-2007 Gentoo Foundation # Copyright (c) 2007-2009 Roy Marples # Released under the 2-clause BSD license. . "$RC_LIBEXECDIR"/sh/functions.sh [ -r "/etc/rc.conf" ] && . "/etc/rc.conf" if [ -d "/etc/rc.conf.d" ]; then for _f in "/etc"/rc.conf.d/*.conf; do [ -e "$_f" ] && . "$_f" done fi # check for md5sum, and probably /usr too if command -v md5sum >/dev/null; then got_md5sum=true else eerror "md5sum is missing, which suggests /usr is not mounted" eerror "If you have separate /usr, it must be mounted by initramfs" eerror "If not, you should check coreutils is installed correctly" got_md5sum=false fi # By default VServer already has /proc mounted, but OpenVZ does not! # However, some of our users have an old proc image in /proc # NFC how they managed that, but the end result means we have to test if # /proc actually works or not. We do this by comparing two reads of # /proc/self/environ for which we have set the variable VAR to two # different values. If the comparison comes back equal, we know that # /proc is not working. mountproc=true f=/proc/self/environ if [ -e $f ]; then if $got_md5sum && [ "$(VAR=a md5sum $f)" = "$(VAR=b md5sum $f)" ]; then eerror "You have cruft in /proc that should be deleted" else # If they don't have md5sum, this will fail in pretty ways if # /proc isn't really mounted. Oh well, their system is busted # anyway, and they get to keep the pieces. einfo "/proc is already mounted" mountproc=false fi fi unset f if $mountproc; then ebegin "Mounting /proc" if ! fstabinfo --mount /proc; then mount -n -t proc -o noexec,nosuid,nodev proc /proc fi eend $? fi # /run is a new directory for storing volatile runtime data. # Read more about /run at https://lwn.net/Articles/436012 sys="$(openrc --sys)" if [ ! -d /run ]; then if [ "$sys" = VSERVER ]; then if [ -e /run ]; then rm -rf /run fi mkdir /run else eerror "The /run directory does not exist. Unable to continue." return 1 fi fi if [ "$sys" = VSERVER ]; then rm -rf /run/* elif ! mountinfo -q /run; then ebegin "Mounting /run" run_mount_opts="mode=0755,nosuid,nodev,nr_inodes=800k,size=20%,strictatime" if ! fstabinfo --mount /run; then if ! mount -t tmpfs -o ${run_mount_opts} tmpfs /run; then eerror "Unable to mount tmpfs on /run." eerror "Can't continue." exit 1 fi fi eend fi checkpath -d "$RC_SVCDIR" checkpath -d -m 0775 -o root:uucp /run/lock # Try to mount xenfs as early as possible, otherwise rc_sys() will always # return RC_SYS_XENU and will think that we are in a domU while it's not. if grep -Eq "[[:space:]]+xenfs$" /proc/filesystems; then ebegin "Mounting xenfs" if ! fstabinfo --mount /proc/xen; then mount -n -t xenfs xenfs /proc/xen -o nosuid,nodev,noexec fi eend $? fi if [ -e "$RC_LIBEXECDIR"/cache/softlevel ]; then cp -p "$RC_LIBEXECDIR"/cache/* "$RC_SVCDIR" 2>/dev/null fi echo sysinit >"$RC_SVCDIR"/softlevel [ -x /sbin/restorecon ] && /sbin/restorecon -rF /run exit 0 #!/bin/sh # Shell wrapper for openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. verify_boot() { if [ ! -e ${RC_SVCDIR}/softlevel ]; then eerror "You are attempting to run an openrc service on a" eerror "system which openrc did not boot." eerror "You may be inside a chroot or you may have used" eerror "another initialization system to boot this system." eerror "In this situation, you will get unpredictable results!" eerror eerror "If you really want to do this, issue the following command:" eerror "touch ${RC_SVCDIR}/softlevel" exit 1 fi return 0 } sourcex() { if [ "$1" = "-e" ]; then shift [ -e "$1" ] || return 1 fi if ! . "$1"; then eerror "$RC_SVCNAME: error loading $1" exit 1 fi } sourcex "/usr/libexec/rc/sh/functions.sh" sourcex "/usr/libexec/rc/sh/rc-functions.sh" case $RC_SYS in PREFIX|SYSTEMD-NSPAWN) ;; *) sourcex -e "/usr/libexec/rc/sh/rc-cgroup.sh";; esac # Support LiveCD foo if sourcex -e "/sbin/livecd-functions.sh"; then livecd_read_commandline fi if [ -z "$1" -o -z "$2" ]; then eerror "$RC_SVCNAME: not enough arguments" exit 1 fi # So daemons know where to recall us if needed RC_SERVICE="$1" ; export RC_SERVICE shift # Compat SVCNAME=$RC_SVCNAME ; export SVCNAME # Dependency function config() { [ -n "$*" ] && echo "config $*" } need() { [ -n "$*" ] && echo "need $*" } use() { [ -n "$*" ] && echo "use $*" } want() { [ -n "$*" ] && echo "want $*" } before() { [ -n "$*" ] && echo "before $*" } after() { [ -n "$*" ] && echo "after $*" } provide() { [ -n "$*" ] && echo "provide $*" } keyword() { local c x set -- $* while [ -n "$*" ]; do case "$1" in -containers) x="$(_get_containers)" ;; !-containers) x="$(_get_containers_remove)" ;; *) x=$1 ;; esac c="${c}${x} " shift done [ -n "$c" ] && echo "keyword $c" } # Describe the init script to the user describe() { if [ -n "$description" ]; then einfo "$description" else ewarn "No description for $RC_SVCNAME" fi local svc= desc= for svc in ${extra_commands:-$opts} $extra_started_commands \ $extra_stopped_commands; do eval desc=\$description_$svc if [ -n "$desc" ]; then einfo "$HILITE$svc$NORMAL: $desc" else ewarn "$HILITE$svc$NORMAL: no description" fi done } # Report status _status() { if service_stopping; then ewarn "status: stopping" return 4 elif service_starting; then ewarn "status: starting" return 8 elif service_inactive; then ewarn "status: inactive" return 16 elif service_crashed; then eerror "status: crashed" return 32 elif service_started; then einfo "status: started" return 0 else einfo "status: stopped" return 3 fi } # These functions select the appropriate function to call from the # supervisor modules default_start() { local func=ssd_start case "$supervisor" in runit) func=runit_start ;; s6) func=s6_start ;; supervise-daemon) func=supervise_start ;; ?*) ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon" ;; esac $func } default_stop() { local func=ssd_stop case "$supervisor" in runit) func=runit_stop ;; s6) func=s6_stop ;; supervise-daemon) func=supervise_stop ;; ?*) ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon" ;; esac $func } default_status() { local func=ssd_status case "$supervisor" in runit) func=runit_status ;; s6) func=s6_status ;; supervise-daemon) func=supervise_status ;; ?*) ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon" ;; esac $func } # Template start / stop / status functions # package init scripts may override these, but the bodies are as minimal as # possible, so that the init scripts can creatively wrap default_* # functions. start() { default_start } stop() { default_stop } status() { default_status } # Start debug output yesno $RC_DEBUG && set -x # Load configuration settings. First the global ones, then any # service-specific settings. sourcex -e "/etc/rc.conf" if [ -d "/etc/rc.conf.d" ]; then for _f in "/etc"/rc.conf.d/*.conf; do sourcex -e "$_f" done fi _conf_d=${RC_SERVICE%/*}/../conf.d # If we're net.eth0 or openvpn.work then load net or openvpn config _c=${RC_SVCNAME%%.*} if [ -n "$_c" -a "$_c" != "$RC_SVCNAME" ]; then if ! sourcex -e "$_conf_d/$_c.$RC_RUNLEVEL"; then sourcex -e "$_conf_d/$_c" fi fi unset _c # Overlay with our specific config if ! sourcex -e "$_conf_d/$RC_SVCNAME.$RC_RUNLEVEL"; then sourcex -e "$_conf_d/$RC_SVCNAME" fi unset _conf_d # If we are configured to run in a VRF, provide a hint for that RC_VRF_EXEC="" if [ -n "$vrf" ]; then RC_VRF_EXEC="/sbin/ip vrf exec $vrf" fi # Add ip netns if configured to run in a netns (netns+vrf may stack) if [ -n "$netns" ]; then RC_VRF_EXEC="/sbin/ip netns exec $netns $RC_VRF_EXEC" fi # load service supervisor functions sourcex "/usr/libexec/rc/sh/runit.sh" sourcex "/usr/libexec/rc/sh/s6.sh" sourcex "/usr/libexec/rc/sh/start-stop-daemon.sh" sourcex "/usr/libexec/rc/sh/supervise-daemon.sh" # Load our script sourcex "$RC_SERVICE" # Set verbose mode if yesno "${rc_verbose:-$RC_VERBOSE}"; then EINFO_VERBOSE=yes export EINFO_VERBOSE fi for _cmd; do if [ "$_cmd" != status -a "$_cmd" != describe ]; then # Apply any ulimit defined if [ -n "${rc_ulimit:-$RC_ULIMIT}" ]; then if ! ulimit ${rc_ulimit:-$RC_ULIMIT}; then eerror "${RC_SVCNAME}: unable to apply RC_ULIMIT settings" fi fi # Apply cgroups settings if defined if [ "$(command -v cgroup_add_service)" = "cgroup_add_service" ] then if grep -qs /sys/fs/cgroup /proc/1/mountinfo then if [ -d /sys/fs/cgroup -a ! -w /sys/fs/cgroup ]; then eerror "No permission to apply cgroup settings" break fi fi cgroup_add_service fi [ "$(command -v cgroup_set_limits)" = "cgroup_set_limits" ] && cgroup_set_limits [ "$(command -v cgroup2_set_limits)" = "cgroup2_set_limits" ] && [ "$_cmd" = start ] && cgroup2_set_limits break fi done eval "printf '%s\n' $required_dirs" | while read _d; do if [ -n "$_d" ] && [ ! -d "$_d" ]; then eerror "$RC_SVCNAME: \`$_d' is not a directory" exit 1 fi done [ $? -ne 0 ] && exit 1 unset _d eval "printf '%s\n' $required_files" | while read _f; do if [ -n "$_f" ] && [ ! -r "$_f" ]; then eerror "$RC_SVCNAME: \`$_f' is not readable" exit 1 fi done [ $? -ne 0 ] && exit 1 unset _f if [ -n "$opts" ]; then ewarn "Use of the opts variable is deprecated and will be" ewarn "removed in the future." ewarn "Please use extra_commands, extra_started_commands or extra_stopped_commands." fi while [ -n "$1" ]; do # Special case depend if [ "$1" = depend ]; then shift # Enter the dir of the init script to fix the globbing # bug 412677 cd ${RC_SERVICE%/*} _depend cd / continue fi # See if we have the required function and run it for _cmd in describe start stop status ${extra_commands:-$opts} \ $extra_started_commands $extra_stopped_commands do if [ "$_cmd" = "$1" ]; then if [ "$(command -v "$1")" = "$1" ]; then # If we're in the background, we may wish to # fake some commands. We do this so we can # "start" ourselves from inactive which then # triggers other services to start which # depend on us. # A good example of this is openvpn. if yesno $IN_BACKGROUND; then for _cmd in $in_background_fake; do if [ "$_cmd" = "$1" ]; then shift continue 3 fi done fi # Check to see if we need to be started before # we can run this command for _cmd in $extra_started_commands; do if [ "$_cmd" = "$1" ]; then if verify_boot && ! service_started; then eerror "$RC_SVCNAME: cannot \`$1' as it has not been started" exit 1 fi fi done # Check to see if we need to be stopped before # we can run this command for _cmd in $extra_stopped_commands; do if [ "$_cmd" = "$1" ]; then if verify_boot && ! service_stopped; then eerror "$RC_SVCNAME: cannot \`$1' as it has not been stopped" exit 1 fi fi done unset _cmd case $1 in start|stop|status) verify_boot;; esac if [ "$(command -v "$1_pre")" = "$1_pre" ] then "$1"_pre || exit $? fi "$1" || exit $? if [ "$(command -v "$1_post")" = "$1_post" ] then "$1"_post || exit $? fi [ "$(command -v cgroup_cleanup)" = "cgroup_cleanup" ] && [ "$1" = "stop" ] && yesno "${rc_cgroup_cleanup}" && \ cgroup_cleanup if [ "$(command -v cgroup2_remove)" = "cgroup2_remove" ]; then [ "$1" = stop ] || [ -z "${command}" ] && cgroup2_remove fi shift continue 2 else if [ "$_cmd" = "start" -o "$_cmd" = "stop" ] then shift continue 2 else eerror "$RC_SVCNAME: function \`$1' defined but does not exist" exit 1 fi fi fi done eerror "$RC_SVCNAME: unknown function \`$1'" exit 1 done exit 0 # Copyright (c) 2012-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. extra_stopped_commands="${extra_stopped_commands} cgroup_cleanup" description_cgroup_cleanup="Kill all processes in the cgroup" cgroup_find_path() { local OIFS name dir result [ -n "$1" ] || return 0 OIFS="$IFS" IFS=":" while read -r _ name dir; do [ "$name" = "$1" ] && result="$dir" done < /proc/1/cgroup IFS="$OIFS" printf "%s" "${result}" } # This extracts all pids in a cgroup and puts them in the cgroup_pids # variable. # It is done this way to avoid subshells so we don't have to worry about # locating the pid of the subshell in the cgroup. # https://github.com/openrc/openrc/issues/396 cgroup_get_pids() { local cgroup_procs p cgroup_pids= cgroup_procs="$(cgroup2_find_path)" if [ -n "${cgroup_procs}" ]; then cgroup_procs="${cgroup_procs}/openrc.${RC_SVCNAME}/cgroup.procs" else cgroup_procs="/sys/fs/cgroup/openrc/${RC_SVCNAME}/tasks" fi [ -f "${cgroup_procs}" ] || return 0 while read -r p; do [ "$p" -eq $$ ] && continue cgroup_pids="${cgroup_pids} ${p}" done < "${cgroup_procs}" return 0 } cgroup_running() { [ -d "/sys/fs/cgroup/unified/${RC_SVCNAME}" ] || [ -d "/sys/fs/cgroup/${RC_SVCNAME}" ] || [ -d "/sys/fs/cgroup/openrc/${RC_SVCNAME}" ] } cgroup_set_values() { [ -n "$1" ] && [ -n "$2" ] && [ -d "/sys/fs/cgroup/$1" ] || return 0 local controller h controller="$1" h=$(cgroup_find_path "$1") cgroup="/sys/fs/cgroup/${1}${h}openrc_${RC_SVCNAME}" [ -d "$cgroup" ] || mkdir -p "$cgroup" set -- $2 local name val while [ -n "$1" ] && [ "$controller" != "cpuacct" ]; do case "$1" in $controller.*) if [ -n "${name}" ] && [ -w "${cgroup}/${name}" ] && [ -n "${val}" ]; then veinfo "$RC_SVCNAME: Setting $cgroup/$name to $val" printf "%s" "$val" > "$cgroup/$name" fi name=$1 val= ;; *) [ -n "$val" ] && val="$val $1" || val="$1" ;; esac shift done if [ -n "${name}" ] && [ -w "${cgroup}/${name}" ] && [ -n "${val}" ]; then veinfo "$RC_SVCNAME: Setting $cgroup/$name to $val" printf "%s" "$val" > "$cgroup/$name" fi if [ -w "$cgroup/tasks" ]; then veinfo "$RC_SVCNAME: adding to $cgroup/tasks" printf "%d" 0 > "$cgroup/tasks" fi return 0 } cgroup_add_service() { # relocate starting process to the top of the cgroup # it prevents from unwanted inheriting of the user # cgroups. But may lead to a problems where that inheriting # is needed. for d in /sys/fs/cgroup/* ; do [ -w "${d}"/tasks ] && printf "%d" 0 > "${d}"/tasks done openrc_cgroup=/sys/fs/cgroup/openrc if [ -d "$openrc_cgroup" ]; then cgroup="$openrc_cgroup/$RC_SVCNAME" mkdir -p "$cgroup" [ -w "$cgroup/tasks" ] && printf "%d" 0 > "$cgroup/tasks" fi } cgroup_set_limits() { local blkio="${rc_cgroup_blkio:-$RC_CGROUP_BLKIO}" [ -n "$blkio" ] && cgroup_set_values blkio "$blkio" local cpu="${rc_cgroup_cpu:-$RC_CGROUP_CPU}" [ -n "$cpu" ] && cgroup_set_values cpu "$cpu" local cpuacct="${rc_cgroup_cpuacct:-$RC_CGROUP_CPUACCT}" [ -n "$cpuacct" ] && cgroup_set_values cpuacct "$cpuacct" local cpuset="${rc_cgroup_cpuset:-$RC_CGROUP_cpuset}" [ -n "$cpuset" ] && cgroup_set_values cpuset "$cpuset" local devices="${rc_cgroup_devices:-$RC_CGROUP_DEVICES}" [ -n "$devices" ] && cgroup_set_values devices "$devices" local hugetlb="${rc_cgroup_hugetlb:-$RC_CGROUP_HUGETLB}" [ -n "$hugetlb" ] && cgroup_set_values hugetlb "$hugetlb" local memory="${rc_cgroup_memory:-$RC_CGROUP_MEMORY}" [ -n "$memory" ] && cgroup_set_values memory "$memory" local net_cls="${rc_cgroup_net_cls:-$RC_CGROUP_NET_CLS}" [ -n "$net_cls" ] && cgroup_set_values net_cls "$net_cls" local net_prio="${rc_cgroup_net_prio:-$RC_CGROUP_NET_PRIO}" [ -n "$net_prio" ] && cgroup_set_values net_prio "$net_prio" local pids="${rc_cgroup_pids:-$RC_CGROUP_PIDS}" [ -n "$pids" ] && cgroup_set_values pids "$pids" return 0 } cgroup2_find_path() { if grep -qw cgroup2 /proc/filesystems; then case "${rc_cgroup_mode:-unified}" in hybrid) printf "/sys/fs/cgroup/unified" ;; unified) printf "/sys/fs/cgroup" ;; esac fi return 0 } cgroup2_remove() { local cgroup_path rc_cgroup_path cgroup_path="$(cgroup2_find_path)" [ -z "${cgroup_path}" ] && return 0 rc_cgroup_path="${cgroup_path}/openrc.${RC_SVCNAME}" [ ! -d "${rc_cgroup_path}" ] || [ ! -e "${rc_cgroup_path}"/cgroup.events ] && return 0 grep -qx "$$" "${rc_cgroup_path}/cgroup.procs" && printf "%d" 0 > "${cgroup_path}/cgroup.procs" local key populated vvalue while read -r key value; do case "${key}" in populated) populated=${value} ;; *) ;; esac done < "${rc_cgroup_path}/cgroup.events" [ "${populated}" = 1 ] && return 0 rmdir "${rc_cgroup_path}" return 0 } cgroup2_set_limits() { local cgroup_path cgroup_path="$(cgroup2_find_path)" [ -z "${cgroup_path}" ] && return 0 mountinfo -q "${cgroup_path}"|| return 0 rc_cgroup_path="${cgroup_path}/openrc.${RC_SVCNAME}" [ ! -d "${rc_cgroup_path}" ] && mkdir "${rc_cgroup_path}" [ -f "${rc_cgroup_path}"/cgroup.procs ] && printf 0 > "${rc_cgroup_path}"/cgroup.procs [ -z "${rc_cgroup_settings}" ] && return 0 echo "${rc_cgroup_settings}" | while read -r key value; do [ -z "${key}" ] && continue [ -z "${value}" ] && continue [ ! -f "${rc_cgroup_path}/${key}" ] && continue veinfo "${RC_SVCNAME}: cgroups: setting ${key} to ${value}" printf "%s" "${value}" > "${rc_cgroup_path}/${key}" done return 0 } cgroup2_kill_cgroup() { local cgroup_path cgroup_path="$(cgroup2_find_path)" [ -z "${cgroup_path}" ] && return 1 rc_cgroup_path="${cgroup_path}/openrc.${RC_SVCNAME}" if [ -f "${rc_cgroup_path}"/cgroup.kill ]; then printf "%d" 1 > "${rc_cgroup_path}"/cgroup.kill fi return } cgroup_fallback_cleanup() { ebegin "Starting fallback cgroups cleanup" local loops=0 cgroup_get_pids if [ -n "${cgroup_pids}" ]; then kill -s CONT ${cgroup_pids} 2> /dev/null kill -s "${stopsig:-TERM}" ${cgroup_pids} 2> /dev/null yesno "${rc_send_sighup:-no}" && kill -s HUP ${cgroup_pids} 2> /dev/null kill -s "${stopsig:-TERM}" ${cgroup_pids} 2> /dev/null cgroup_get_pids while [ -n "${cgroup_pids}" ] && [ "${loops}" -lt "${rc_timeout_stopsec:-90}" ]; do loops=$((loops+1)) sleep 1 cgroup_get_pids done if [ -n "${cgroup_pids}" ] && yesno "${rc_send_sigkill:-yes}"; then kill -s KILL ${cgroup_pids} 2> /dev/null fi fi eend $? } cgroup_cleanup() { cgroup_running || return 0 ebegin "Starting cgroups cleanup" cgroup2_kill_cgroup || cgroup_fallback_cleanup cgroup2_remove cgroup_get_pids [ -z "${cgroup_pids}" ] eend $? "Unable to stop all processes" return 0 } # Copyright (c) 2007 Gentoo Foundation # Copyright (c) 2007-2009 Roy Marples # Released under the 2-clause BSD license. net_fs_list=" afs ceph cifs coda davfs fuse fuse.glusterfs fuse.sshfs gfs glusterfs lustre ncpfs nfs nfs4 ocfs2 shfs smbfs " is_net_fs() { [ -z "$1" ] && return 1 # Check OS specific flags to see if we're local or net mounted mountinfo --quiet --netdev "$1" && return 0 mountinfo --quiet --nonetdev "$1" && return 1 # Fall back on fs types local t=$(mountinfo --fstype "$1") for x in $net_fs_list $extra_net_fs_list; do [ "$x" = "$t" ] && return 0 done return 1 } is_union_fs() { [ ! -x /sbin/unionctl ] && return 1 unionctl "$1" --list >/dev/null 2>&1 } get_bootparam() { local match="$1" [ -z "$match" -o ! -r /proc/cmdline ] && return 1 set -- $(cat /proc/cmdline) while [ -n "$1" ]; do [ "$1" = "$match" ] && return 0 case "$1" in gentoo=*) local params="${1##*=}" local IFS=, x= for x in $params; do [ "$x" = "$match" ] && return 0 done ;; esac shift done return 1 } get_bootparam_value() { local match="$1" which_value="$2" sep="$3" result value if [ -n "$match" -a -r /proc/cmdline ]; then set -- $(cat /proc/cmdline) while [ -n "$1" ]; do case "$1" in $match=*) value="${1##*=}" case "$which_value" in all) [ -z "$sep" ] && sep=' ' if [ -z "$result" ]; then result="$value" else result="${result}${sep}${value}" fi ;; last) result="$value" ;; *) result="$value" break ;; esac ;; esac shift done fi echo $result } need_if_exists() { for x; do rc-service --exists "${x}" && need "${x}" done } # Called from openrc-run.sh or gendepends.sh _get_containers() { local c case "${RC_UNAME}" in FreeBSD) c="-jail" ;; Linux) c="-docker -podman -lxc -openvz -rkt -systemd-nspawn -uml -vserver" ;; esac echo $c } _get_containers_remove() { local c for x in $(_get_containers); do c="${c}!${x} " done echo $c } _depend() { depend local _rc_svcname=$(shell_var "$RC_SVCNAME") _deptype= _depends= # Add any user defined depends for _deptype in config:CONFIG need:NEED use:USE want:WANT \ after:AFTER before:BEFORE \ provide:PROVIDE keyword:KEYWORD; do IFS=: set -- $_deptype unset IFS eval _depends=\$rc_${_rc_svcname}_$1 [ -z "$_depends" ] && eval _depends=\$rc_$1 [ -z "$_depends" ] && eval _depends=\$RC_${_rc_svcname}_$2 [ -z "$_depends" ] && eval _depends=\$RC_$2 $1 $_depends done } # Add our sbin to $PATH case "$PATH" in "$RC_LIBEXECDIR"/sbin|"$RC_LIBEXECDIR"/sbin:*);; *) PATH="$RC_LIBEXECDIR/sbin:$PATH" ; export PATH ;; esac # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # Declare this here so that no formatting doesn't affect the embedded newline __IFS=" " # Handy function to handle all our unmounting needs # mountinfo is a C program to actually find our mounts on our supported OS's # We rely on fuser being present, so if it's not then don't unmount anything. # This isn't a real issue for the BSD's, but it is for Linux. do_unmount() { local cmd="$1" retval=0 retry= pids=- local f_opts="-m -c" f_kill="-s " mnt= if [ "$RC_UNAME" = "Linux" ]; then f_opts="-m" f_kill="-" fi shift local IFS="$__IFS" set -- $(mountinfo "$@") unset IFS for mnt; do # Unmounting a shared mount can unmount other mounts, so # we need to check the mount is still valid mountinfo --quiet "$mnt" || continue # Ensure we interpret all characters properly. mnt=$(printf "$mnt") case "$cmd" in umount) ebegin "Unmounting $mnt" ;; *) ebegin "Remounting $mnt read only" ;; esac retry=4 # Effectively TERM, sleep 1, TERM, sleep 1, KILL, sleep 1 while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do if command -v fuser >/dev/null 2>&1; then pids="$(timeout -s KILL "${rc_fuser_timeout:-60}" \ fuser $f_opts "$mnt" 2>/dev/null)" fi case " $pids " in *" $$ "*) eend 1 "failed because we are using" \ "$mnt" retry=0;; " - ") eend 1 retry=0;; " ") eend 1 "in use but fuser finds nothing" retry=0;; *) if [ $retry -le 0 ]; then eend 1 else local sig="TERM" : $(( retry -= 1 )) [ $retry = 1 ] && sig="KILL" fuser $f_kill$sig -k $f_opts \ "$mnt" >/dev/null 2>&1 sleep 1 fi ;; esac [ $retry -le 0 ] && break done if [ $retry -le 0 ]; then retval=1 else eend 0 fi done return $retval } # Copyright (c) 2016 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # Released under the 2-clause BSD license. runit_start() { local service_path service_link service_path="${runit_service:-/etc/sv/${RC_SVCNAME}}" if [ ! -d "${service_path}" ]; then eerror "Runit service ${service_path} not found" return 1 fi service_link="${RC_SVCDIR}/sv/${service_path##*/}" ebegin "Starting ${name:-$RC_SVCNAME}" ln -snf "${service_path}" "${service_link}" local i=0 retval=1 # it can take upto 5 seconds for runsv to start while [ $i -lt 6 ] ; do if ${RC_VRF_EXEC} sv start "${service_link}" > /dev/null 2>&1; then retval=0 break fi sleep 1 && i=$(expr $i + 1) done if [ $retval -eq 1 ]; then # clean up the link else sv will keep on trying rm "${service_link}" fi eend $retval "Failed to start ${name:-$RC_SVCNAME}" } runit_stop() { local service_path service_link service_path="${runit_service:-/etc/sv/${RC_SVCNAME}}" if [ ! -d "${service_path}" ]; then eerror "Runit service ${service_path} not found" return 1 fi service_link="${RC_SVCDIR}/sv/${service_path##*/}" ebegin "Stopping ${name:-$RC_SVCNAME}" sv stop "${service_link}" > /dev/null 2>&1 && rm "${service_link}" eend $? "Failed to stop ${name:-$RC_SVCNAME}" } runit_status() { local service_path service_link service_path="${runit_service:-/etc/sv/${RC_SVCNAME}}" if [ ! -d "${service_path}" ]; then eerror "Runit service ${service_path} not found" return 1 fi service_link="${RC_SVCDIR}/sv/${service_path##*/}" sv status "${service_link}" } # Start / stop / status functions for s6 support # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. [ -z "${s6_service_path}" ] && s6_service_path="/var/svc.d/${RC_SVCNAME}" _s6_force_kill() { local pid s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" pid="${3%)}" [ -z "${pid}" ] && return 0 if kill -0 "${pid}" 2> /dev/null; then ewarn "Sending DOWN & KILL for ${RC_SVCNAME}" s6-svc -dk "${s6_service_link}" sleep 1 kill -0 "${pid}" 2>/dev/null && return 1 fi return 0 } s6_start() { if [ ! -d "${s6_service_path}" ]; then eerror "${s6_service_path} does not exist." return 1 fi s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" ebegin "Starting ${name:-$RC_SVCNAME}" ln -sf "${s6_service_path}" "${s6_service_link}" s6-svscanctl -na "${RC_SVCDIR}"/s6-scan sleep 1.5 ${RC_VRF_EXEC} s6-svc -u "${s6_service_link}" if [ -n "$s6_svwait_options_start" ]; then s6-svwait ${s6_svwait_options_start} "${s6_service_link}" fi sleep 1.5 set -- $(s6-svstat "${s6_service_link}") [ "$1" = "up" ] eend $? "Failed to start ${name:-$RC_SVCNAME}" } s6_stop() { if [ ! -d "${s6_service_path}" ]; then eerror "${s6_service_path} does not exist." return 1 fi s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" ebegin "Stopping ${name:-$RC_SVCNAME}" s6-svc -d -wD -T ${s6_service_timeout_stop:-60000} "${s6_service_link}" set -- $(s6-svstat "${s6_service_link}") [ "$1" = "up" ] && yesno "${s6_force_kill:-yes}" && _s6_force_kill "$@" set -- $(s6-svstat "${s6_service_link}") [ "$1" = "down" ] eend $? "Failed to stop ${name:-$RC_SVCNAME}" } s6_status() { s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" if [ -L "${s6_service_link}" ]; then s6-svstat "${s6_service_link}" else _status fi } # start / stop / status functions for start-stop-daemon # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. ssd_start() { if [ -z "$command" ]; then ewarn "The command variable is undefined." ewarn "There is nothing for ${name:-$RC_SVCNAME} to start." ewarn "If this is what you intend, please write a start function." ewarn "This will become a failure in a future release." return 0 fi local _background= ebegin "Starting ${name:-$RC_SVCNAME}" if yesno "${command_background}"; then if [ -z "${pidfile}" ]; then eend 1 "command_background option used but no pidfile specified" return 1 fi if [ -n "${command_args_background}" ]; then eend 1 "command_background used with command_args_background" return 1 fi _background="--background --make-pidfile" fi if yesno "$start_inactive"; then local _inactive=false service_inactive && _inactive=true mark_service_inactive fi #the eval call is necessary for cases like: # command_args="this \"is a\" test" # to work properly. eval ${RC_VRF_EXEC} start-stop-daemon --start \ --exec $command \ ${chroot:+--chroot} $chroot \ ${directory:+--chdir} $directory \ ${output_log+--stdout} $output_log \ ${error_log+--stderr} $error_log \ ${output_logger:+--stdout-logger \"$output_logger\"} \ ${error_logger:+--stderr-logger \"$error_logger\"} \ ${capabilities+--capabilities} "$capabilities" \ ${secbits:+--secbits} "$secbits" \ ${no_new_privs:+--no-new-privs} \ ${procname:+--name} $procname \ ${pidfile:+--pidfile} $pidfile \ ${command_user+--user} $command_user \ ${umask+--umask} $umask \ $_background $start_stop_daemon_args \ -- $command_args $command_args_background if eend $? "Failed to start ${name:-$RC_SVCNAME}"; then service_set_value "command" "${command}" [ -n "${chroot}" ] && service_set_value "chroot" "${chroot}" [ -n "${pidfile}" ] && service_set_value "pidfile" "${pidfile}" [ -n "${procname}" ] && service_set_value "procname" "${procname}" return 0 fi if yesno "$start_inactive"; then if ! $_inactive; then mark_service_stopped fi fi return 1 } ssd_stop() { local _progress= local startcommand="$(service_get_value "command")" local startchroot="$(service_get_value "chroot")" local startpidfile="$(service_get_value "pidfile")" local startprocname="$(service_get_value "procname")" command="${startcommand:-$command}" chroot="${startchroot:-$chroot}" pidfile="${startpidfile:-$pidfile}" procname="${startprocname:-$procname}" [ -n "$command" -o -n "$procname" -o -n "$pidfile" ] || return 0 yesno "${command_progress}" && _progress=--progress ebegin "Stopping ${name:-$RC_SVCNAME}" start-stop-daemon --stop \ ${retry:+--retry} $retry \ ${command:+--exec} $command \ ${procname:+--name} $procname \ ${pidfile:+--pidfile} $chroot$pidfile \ ${stopsig:+--signal} $stopsig \ ${_progress} eend $? "Failed to stop ${name:-$RC_SVCNAME}" } ssd_status() { _status } # start / stop / status functions for supervise-daemon # Copyright (c) 2016 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. extra_commands="healthcheck unhealthy ${extra_commands}" supervise_start() { if [ -z "$command" ]; then ewarn "The command variable is undefined." ewarn "There is nothing for ${name:-$RC_SVCNAME} to start." return 1 fi ebegin "Starting ${name:-$RC_SVCNAME}" # The eval call is necessary for cases like: # command_args="this \"is a\" test" # to work properly. eval ${RC_VRF_EXEC} supervise-daemon "${RC_SVCNAME}" --start \ ${retry:+--retry} $retry \ ${directory:+--chdir} $directory \ ${chroot:+--chroot} $chroot \ ${output_log+--stdout} ${output_log} \ ${error_log+--stderr} $error_log \ ${output_logger:+--stdout-logger \"$output_logger\"} \ ${error_logger:+--stderr-logger \"$error_logger\"} \ ${pidfile:+--pidfile} $pidfile \ ${respawn_delay:+--respawn-delay} $respawn_delay \ ${respawn_max:+--respawn-max} $respawn_max \ ${respawn_period:+--respawn-period} $respawn_period \ ${healthcheck_delay:+--healthcheck-delay} $healthcheck_delay \ ${healthcheck_timer:+--healthcheck-timer} $healthcheck_timer \ ${capabilities+--capabilities} "$capabilities" \ ${secbits:+--secbits} "$secbits" \ ${no_new_privs:+--no-new-privs} \ ${command_user+--user} $command_user \ ${umask+--umask} $umask \ ${supervise_daemon_args-${start_stop_daemon_args}} \ $command \ -- $command_args $command_args_foreground rc=$? if [ $rc = 0 ]; then [ -n "${chroot}" ] && service_set_value "chroot" "${chroot}" [ -n "${pidfile}" ] && service_set_value "pidfile" "${pidfile}" fi eend $rc "failed to start ${name:-$RC_SVCNAME}" } supervise_stop() { local startchroot="$(service_get_value "chroot")" local startpidfile="$(service_get_value "pidfile")" chroot="${startchroot:-$chroot}" pidfile="${startpidfile:-$pidfile}" ebegin "Stopping ${name:-$RC_SVCNAME}" supervise-daemon "${RC_SVCNAME}" --stop \ ${pidfile:+--pidfile} $chroot$pidfile eend $? "Failed to stop ${name:-$RC_SVCNAME}" } _check_supervised() { local child_pid start_time child_pid="$(service_get_value "child_pid")" start_time="$(service_get_value "start_time")" if [ -n "${child_pid}" ] && [ -n "${start_time}" ]; then return 1 fi return 0 } supervise_status() { if service_stopping; then ewarn "status: stopping" return 4 elif service_starting; then ewarn "status: starting" return 8 elif service_inactive; then ewarn "status: inactive" return 16 elif service_started; then if service_crashed; then if ! _check_supervised; then eerror "status: unsupervised" return 64 fi eerror "status: crashed" return 32 fi einfo "status: started" return 0 else einfo "status: stopped" return 3 fi } healthcheck() { return 0 } unhealthy() { return 0 } 0.55.1 # # This is a sample mdev.conf. # # Devices: # Syntax: %s %d:%d %s # devices user:group mode $MODALIAS=.* root:root 0660 @modprobe -q -b "$MODALIAS" # null does already exist; therefore ownership has to be changed with command null root:root 0666 @chmod 666 $MDEV zero root:root 0666 full root:root 0666 random root:root 0666 urandom root:root 0444 hwrandom root:root 0660 console root:tty 0600 # load frambuffer console when first frambuffer is found fb0 root:video 0660 @modprobe -q -b fbcon fd0 root:floppy 0660 kmem root:kmem 0640 mem root:kmem 0640 port root:kmem 0640 ptmx root:tty 0666 # Kernel-based Virtual Machine. kvm root:kvm 660 # ram.* ram([0-9]*) root:disk 0660 >rd/%1 loop([0-9]+) root:disk 0660 >loop/%1 # persistent storage dasd.* root:disk 0660 */lib/mdev/persistent-storage mmcblk.* root:disk 0660 */lib/mdev/persistent-storage nbd.* root:disk 0660 */lib/mdev/persistent-storage nvme.* root:disk 0660 */lib/mdev/persistent-storage sd[a-z].* root:disk 0660 */lib/mdev/persistent-storage sr[0-9]+ root:cdrom 0660 */lib/mdev/persistent-storage vd[a-z].* root:disk 0660 */lib/mdev/persistent-storage xvd[a-z].* root:disk 0660 */lib/mdev/persistent-storage md[0-9] root:disk 0660 tty root:tty 0666 tty[0-9] root:root 0600 tty[0-9][0-9] root:tty 0660 ttyS[0-9]* root:dialout 0660 ttyGS[0-9] root:root 0660 pty.* root:tty 0660 vcs[0-9]* root:tty 0660 vcsa[0-9]* root:tty 0660 # rpi bluetooth #ttyAMA0 root:tty 660 @btattach -B /dev/$MDEV -P bcm -S 115200 -N & ttyACM[0-9] root:dialout 0660 @ln -sf $MDEV modem ttyUSB[0-9] root:dialout 0660 @ln -sf $MDEV modem ttyLTM[0-9] root:dialout 0660 @ln -sf $MDEV modem ttySHSF[0-9] root:dialout 0660 @ln -sf $MDEV modem slamr root:dialout 0660 @ln -sf $MDEV slamr0 slusb root:dialout 0660 @ln -sf $MDEV slusb0 fuse root:root 0666 # mobile broadband modems cdc-wdm[0-9]+ root:dialout 0660 # dri device dri/.* root:video 0660 card[0-9] root:video 0660 =dri/ # alsa sound devices and audio stuff pcm.* root:audio 0660 =snd/ control.* root:audio 0660 =snd/ midi.* root:audio 0660 =snd/ seq root:audio 0660 =snd/ timer root:audio 0660 =snd/ adsp root:audio 0660 >sound/ audio root:audio 0660 >sound/ dsp root:audio 0660 >sound/ mixer root:audio 0660 >sound/ sequencer.* root:audio 0660 >sound/ SUBSYSTEM=sound;.* root:audio 0660 # PTP devices ptp[0-9] root:root 0660 */lib/mdev/ptpdev # virtio-ports SUBSYSTEM=virtio-ports;vport.* root:root 0600 @mkdir -p virtio-ports; ln -sf ../$MDEV virtio-ports/$(cat /sys/class/virtio-ports/$MDEV/name) # misc stuff agpgart root:root 0660 >misc/ psaux root:root 0660 >misc/ rtc root:root 0664 >misc/ # input stuff SUBSYSTEM=input;.* root:input 0660 # v4l stuff vbi[0-9] root:video 0660 >v4l/ video[0-9]+ root:video 0660 >v4l/ # dvb stuff dvb.* root:video 0660 */lib/mdev/dvbdev # VideoCore VC4 BCM GPU specific (as in Pi devices) vchiq root:video 0660 vcio root:video 0660 vcsm-cma root:video 0660 vc-mem root:video 0660 # load drivers for usb devices usb[0-9]+ root:root 0660 */lib/mdev/usbdev # net devices # 666 is fine: https://www.kernel.org/doc/Documentation/networking/tuntap.txt net/tun[0-9]* root:netdev 0666 net/tap[0-9]* root:netdev 0666 # zaptel devices zap(.*) root:dialout 0660 =zap/%1 dahdi!(.*) root:dialout 0660 =dahdi/%1 dahdi/(.*) root:dialout 0660 =dahdi/%1 # raid controllers cciss!(.*) root:disk 0660 =cciss/%1 cciss/(.*) root:disk 0660 =cciss/%1 ida!(.*) root:disk 0660 =ida/%1 ida/(.*) root:disk 0660 =ida/%1 rd!(.*) root:disk 0660 =rd/%1 rd/(.*) root:disk 0660 =rd/%1 # tape devices nst[0-9]+.* root:tape 0660 st[0-9]+.* root:tape 0660 # VirtualBox devices vboxguest root:root 0600 vboxuser root:root 0666 vboxdrv root:root 0600 vboxdrvu root:root 0666 vboxnetctl root:root 0600 # fallback for any!device -> any/device (.*)!(.*) root:root 0660 =%1/%2 #!/bin/sh # MDEV=dvb0.demux1 -> ADAPTER=dvb0 -> N=0 ADAPTER=${MDEV%.*} N=${ADAPTER#dvb} # MDEV=dvb0.demux1 -> DEVB_DEV=demux1 DVB_DEV=${MDEV#*.} case "$ACTION" in add|"") mkdir -p dvb/adapter${N} mv ${MDEV} dvb/adapter${N}/${DVB_DEV} ;; remove) rm -f dvb/adapter${N}/${DVB_DEV} rmdir dvb/adapter${N} 2>/dev/null rmdir dvb/ 2>/dev/null esac #!/bin/sh symlink_action() { case "$ACTION" in add) ln -sf "$1" "$2";; remove) rm -f "$2";; esac } sanitise_file() { sed -E -e 's/^\s+//' -e 's/\s+$//' -e 's/ /_/g' "$@" 2>/dev/null } sanitise_string() { echo "$@" | sanitise_file } blkid_encode_string() { # Rewrites string similar to libblk's blkid_encode_string # function which is used by udev/eudev. echo "$@" | sed -e 's| |\\x20|g' } : ${SYSFS:=/sys} # cdrom symlink case "$MDEV" in sr*|xvd*) caps="$(cat $SYSFS/block/$MDEV/capability 2>/dev/null)" if [ $(( 0x${caps:-0} & 8 )) -gt 0 ] || [ "$(cat $SYSFS/block/$MDEV/removable 2>/dev/null)" = "1" ]; then symlink_action $MDEV cdrom fi esac # /dev/block symlinks mkdir -p block if [ -f "$SYSFS/class/block/$MDEV/dev" ]; then maj_min=$(sanitise_file "$SYSFS/class/block/$MDEV/dev") symlink_action ../$MDEV block/${maj_min} fi # by-id symlinks mkdir -p disk/by-id if [ -f "$SYSFS/class/block/$MDEV/partition" ]; then # This is a partition of a device, find out its parent device _parent_dev="$(basename $(${SBINDIR:-/usr/bin}/readlink -f "$SYSFS/class/block/$MDEV/.."))" partition=$(cat $SYSFS/class/block/$MDEV/partition 2>/dev/null) case "$partition" in [0-9]*) partsuffix="-part$partition";; esac # Get name, model, serial, wwid from parent device of the partition _check_dev="$_parent_dev" else _check_dev="$MDEV" fi model=$(sanitise_file "$SYSFS/class/block/$_check_dev/device/model") name=$(sanitise_file "$SYSFS/class/block/$_check_dev/device/name") serial=$(sanitise_file "$SYSFS/class/block/$_check_dev/device/serial") # Special case where block devices have serials attached to the block itself, like virtio-blk : ${serial:=$(sanitise_file "$SYSFS/class/block/$_check_dev/serial")} wwid=$(sanitise_file "$SYSFS/class/block/$_check_dev/wwid") : ${wwid:=$(sanitise_file "$SYSFS/class/block/$_check_dev/device/wwid")} # Sets variables LABEL, PARTLABEL, PARTUUID, TYPE, UUID depending on # blkid output (busybox blkid will not provide PARTLABEL or PARTUUID) eval $(blkid /dev/$MDEV | cut -d: -f2-) if [ -n "$wwid" ]; then case "$MDEV" in nvme*) symlink_action ../../$MDEV disk/by-id/nvme-${wwid}${partsuffix};; esac case "$wwid" in naa.*) symlink_action ../../$MDEV disk/by-id/wwn-0x${wwid#naa.}${partsuffix};; esac fi if [ -n "$serial" ]; then if [ -n "$model" ]; then case "$MDEV" in nvme*) symlink_action ../../$MDEV disk/by-id/nvme-${model}_${serial}${partsuffix};; sd*) symlink_action ../../$MDEV disk/by-id/ata-${model}_${serial}${partsuffix};; esac fi if [ -n "$name" ]; then case "$MDEV" in mmcblk*) symlink_action ../../$MDEV disk/by-id/mmc-${name}_${serial}${partsuffix};; esac fi # virtio-blk case "$MDEV" in vd*) symlink_action ../../$MDEV disk/by-id/virtio-${serial}${partsuffix};; esac fi # by-label, by-partlabel, by-partuuid, by-uuid symlinks if [ -n "$LABEL" ]; then mkdir -p disk/by-label symlink_action ../../$MDEV disk/by-label/"$(blkid_encode_string "$LABEL")" fi if [ -n "$PARTLABEL" ]; then mkdir -p disk/by-partlabel symlink_action ../../$MDEV disk/by-partlabel/"$(blkid_encode_string "$PARTLABEL")" fi if [ -n "$PARTUUID" ]; then mkdir -p disk/by-partuuid symlink_action ../../$MDEV disk/by-partuuid/"$PARTUUID" fi if [ -n "$UUID" ]; then mkdir -p disk/by-uuid symlink_action ../../$MDEV disk/by-uuid/"$UUID" fi # nvme EBS storage symlinks if [ "${MDEV#nvme}" != "$MDEV" ] && [ "$model" = "Amazon_Elastic_Block_Store" ] && command -v nvme >/dev/null; then n=30 while [ $n -gt 0 ]; do ebs_alias=$(nvme id-ctrl -b /dev/$_check_dev \ | dd bs=32 skip=96 count=1 2>/dev/null \ | sed -nre '/^(\/dev\/)?(s|xv)d[a-z]{1,2} /p' \ | tr -d ' ') if [ -n "$ebs_alias" ]; then symlink_action "$MDEV" ${ebs_alias#/dev/}$partition break fi n=$((n - 1)) sleep 0.1 done fi # backwards compatibility with /dev/usbdisk for /dev/sd* if [ "${MDEV#sd}" != "$MDEV" ]; then sysdev=$(readlink $SYSFS/class/block/$MDEV) case "$sysdev" in *usb[0-9]*) # require vfat for devices without partition if ! [ -e $SYSFS/block/$MDEV ] || [ TYPE="vfat" ]; then symlink_action $MDEV usbdisk fi ;; esac fi #!/bin/sh symlink_action() { case "$ACTION" in add) ln -sf "$1" "$2";; remove) rm -f "$2";; esac } clock_name=$(cat ${SYSFS:-/sys}/class/ptp/$MDEV/clock_name 2>/dev/null | sed -e 's/ /_/g') case "$clock_name" in KVM_virtual_PTP) symlink_action $MDEV ptp_kvm ;; ptp_vmw) symlink_action $MDEV ptp_vmw ;; hyperv) symlink_action $MDEV ptp_hyperv ;; esac #!/bin/sh # mdev -s will not set SUBSYSTEM or DEVNAME so we trigger a hotplug event if [ "$SUBSYSTEM" != "usb" ] || [ "$DEVTYPE" != "usb_device" ]; then uev=/sys/bus/usb/devices/$MDEV/uevent [ -e "$uev" ] && echo "add" > "$uev" exit fi [ -n "$DEVNAME" ] || exit case "$ACTION" in add) mkdir -p "${DEVNAME%/*}" mv $MDEV $DEVNAME # autoload driver for i in /sys/$DEVPATH/*/modalias; do [ -e "$i" ] && echo $i done | xargs sort -u | xargs modprobe -a 2>/dev/null ;; remove) rm $DEVNAME ;; esac #!/sbin/openrc-run description="the mdev device manager" depend() { provide dev need sysfs dev-mount before checkfs fsck keyword -containers -vserver -lxc } _start_service () { ebegin "Starting busybox mdev" mkdir -p /dev echo "/sbin/mdev" > /proc/sys/kernel/hotplug eend $? } _start_coldplug () { ebegin "Scanning hardware for mdev" # mdev -s will not create /dev/usb[1-9] devices with recent kernels # so we manually trigger events for usb for i in $(find /sys/devices -name 'usb[0-9]*'); do [ -e $i/uevent ] && echo add > $i/uevent done # trigger the rest of the coldplug mdev -s eend $? } start() { _start_service _start_coldplug } stop() { ebegin "Stopping busybox mdev" echo > /proc/sys/kernel/hotplug eend } # what cipher to use with -e option DEFAULT_CIPHER=aes-256-cbc # Uncomment the row below to encrypt config by default # ENCRYPTION=$DEFAULT_CIPHER # Uncomment below to avoid option to 'lbu commit' # Can also be set to 'floppy' # LBU_MEDIA=usb # Set the LBU_BACKUPDIR variable in case you prefer to save the apkovls # in a normal directory instead of mounting an external media. # LBU_BACKUPDIR=/root/config-backups # Uncomment below to let lbu make up to 3 backups # BACKUP_LIMIT=3 eckd_dasd= fba_dasd= _dasdfmt() { local block="$(ls "${ROOT}sys/bus/ccw/devices/$1/block" 2>/dev/null)" local dev="${ROOT}dev/$block" if ! [ -b "$dev" ]; then echo "$dev ($1) is not a block device" >&2 else if ask_yesno "WARNING: Erase ECKD DASD $1? (y/n)" "n"; then dasdfmt -b 4096 -d cdl -yp "$dev" fi fi } eckdselect_help() { cat <<-__EOF__ Enter each available DASD's address (e.g. 0.0.02d0) to format that DASD. Enter multiple addresses separated by a space to format multiple DASDs. Enter 'all' to format all available DASDs. WARNING: Data will be lost after formatted! Enter 'done' or 'none' to finish formatting. Enter 'abort' to quit the installer. __EOF__ } show_dasd_info() { local busid= vendor= block= devtype= cutype= for busid in $@; do vendor=$(cat "${ROOT}sys/bus/ccw/devices/$busid/vendor" 2>/dev/null) devtype=$(cat "${ROOT}/sys/bus/ccw/devices/$busid/devtype" 2>/dev/null) cutype=$(cat "${ROOT}/sys/bus/ccw/devices/$busid/cutype" 2>/dev/null) block="$(ls "${ROOT}/sys/bus/ccw/devices/$busid/block" 2>/dev/null)" echo " $busid ($devtype $cutype $vendor)" done } ask_eckd(){ local prompt="$1" local help_func="$2" shift 2 local default_dasd="all" apk add --quiet s390-tools resp= while ! all_in_list "$resp" $@ "$default_dasd" "abort" "done" "none"; do echo "Available ECKD DASD(s) are:" show_dasd_info "$@" ask "$prompt" "$default_dasd" case "$resp" in 'abort') exit 0;; 'done'|'none') return 0;; '?') $help_func;; 'all') for busid in $@; do _dasdfmt $busid; done;; *) for busid in $resp; do _dasdfmt $busid; done;; esac done } check_dasd() { eckd_dasd= fba_dasd= local dasd="$(get_bootopt dasd)" for _dasd in $( echo $dasd | tr ',' ' '); do [ -e "${ROOT}/sys/bus/ccw/drivers/dasd-eckd/$_dasd" ] && eckd_dasd="$eckd_dasd $_dasd" [ -e "${ROOT}/sys/bus/ccw/drivers/dasd-fba/$_dasd" ] && fba_dasd="$fba_dasd $_dasd" done if [ -n "$eckd_dasd" ]; then ask_eckd \ "Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter '?' for help)" \ eckdselect_help "$eckd_dasd" fi } is_dasd() { local disk="${1#*\/dev\/}" dasd_type="$2" for _dasd in $(eval "echo \$${dasd_type}_dasd"); do [ -e "${ROOT}sys/bus/ccw/drivers/dasd-$dasd_type/$_dasd/block/$disk" ] && return 0 done return 1 } setup_zipl() { local mnt="$1" root="$2" modules="$3" kernel_opts="$4" local parameters="root=$root modules=$modules $kernel_opts" local dasd="$(echo $eckd_dasd $fba_dasd | tr ' ' ',')" local s390x_net="$(get_bootopt s390x_net)" [ -n "$dasd" ] && parameters="$parameters dasd=$dasd" [ -n "$s390x_net" ] && parameters="$parameters s390x_net=$s390x_net" cat > "$mnt"/etc/zipl.conf <<- EOF [defaultboot] defaultauto prompt=1 timeout=5 default=linux target=/boot [linux] image=/boot/vmlinuz-$KERNEL_FLAVOR ramdisk=/boot/initramfs-$KERNEL_FLAVOR parameters="$parameters" EOF } setup_partitions_eckd() { local blocks_per_track=12 tracks_per_cylinder=15 boot_track= swap_track= local diskdev="$1" boot_size="$2" swap_size="$3" sys_type="$4" boot_track=$(($boot_size * 1024 / 4 / blocks_per_track)) [ "$swap_size" != 0 ] && swap_track=$(($swap_size * 1024 / 4 / blocks_per_track + boot_track + 1)) local conf="$(mktemp)" if [ -n "$swap_track" ]; then cat > "$conf" <<- EOF [first,$boot_track,native] [$((boot_track + 1)),$swap_track,swap] [$((swap_track + 1)),last,$sys_type] EOF else cat > "$conf" <<- EOF [first,$boot_track,native] [$((boot_track + 1)),last,$sys_type] EOF fi fdasd -s -c "$conf" $diskdev rm $conf } PREFIX=/usr PROGRAM=$(basename $0) : ${ROOT:=/} [ "${ROOT}" = "${ROOT%/}" ] && ROOT="${ROOT}/" [ "${ROOT}" = "${ROOT#/}" ] && ROOT="${PWD}/${ROOT}" # echo if in verbose mode vecho() { if [ -n "$VERBOSE" ]; then echo "$@" fi } # echo unless quiet mode qecho() { if [ -z "$QUIET" ]; then echo "$@" fi } # echo to stderr eecho() { echo "$@" >&2 } # echo to stderr and exit with error die() { eecho "$@" exit 1 } init_tmpdir() { local omask="$(umask)" local __tmpd="/tmp/$PROGRAM-${$}-$(date +%s)-$RANDOM" umask 077 || die "umask" mkdir -p "$__tmpd" || exit 1 trap "rc=\$?; rm -fr \"$__tmpd\"; exit \$rc" 0 umask $omask eval "$1=\"$__tmpd\"" } default_read() { local n read n [ -z "$n" ] && n="$2" eval "$1=\"$n\"" } cfg_add() { $MOCK lbu_add "$@" } # return true if given value is Y, y, Yes, yes YES etc yesno() { case $1 in [Yy]|[Yy][Ee][Ss]) return 0;; esac return 1 } # Detect if we are running Xen is_xen() { test -d /proc/xen } # Detect if we are running Xen Dom0 is_xen_dom0() { is_xen && \ grep -q "control_d" /proc/xen/capabilities 2>/dev/null } # list of all network interfaces, sorted by ifindex sorted_ifaces() { for i in "$ROOT"/sys/class/net/*; do local iface="${i##*/}" if [ -e "$i"/ifindex ]; then printf "%s\t%s\n" "$(cat $i/ifindex)" "$iface" fi done | sort -n | awk '{print $2}' } # list of available network interfaces that aren't part of any bridge or bond available_ifaces() { local iflist= ifpath= iface= if ! [ -d "$ROOT"/sys/class/net ]; then ip link | awk -F: '$1 ~ /^[0-9]+$/ {printf "%s",$2}' return fi for iface in $(sorted_ifaces); do # skip interfaces that are part of a bond or bridge ifpath="$ROOT/sys/class/net/$iface" if [ -d "$ifpath"/master/bonding ] || [ -d "$ifpath"/brport ] || [ "$iface" = "lo" ]; then continue fi iflist="${iflist}${iflist:+ }$iface" done echo $iflist } # from OpenBSD installer # Ask for a password, saving the input in $resp. # Display $1 as the prompt. # *Don't* allow the '!' options that ask does. # *Don't* echo input. # *Don't* interpret "\" as escape character. askpass() { printf %s "$1 " set -o noglob $MOCK stty -echo read -r resp $MOCK stty echo set +o noglob echo } # Ask for a password twice, saving the input in $_password askpassword() { local _oifs="$IFS" IFS= while :; do askpass "Password for $1 account? (will not echo)" _password=$resp askpass "Password for $1 account? (again)" # N.B.: Need quotes around $resp and $_password to preserve leading # or trailing spaces. [ "$resp" = "$_password" ] && break echo "Passwords do not match, try again." done IFS=$_oifs } # test the first argument against the remaining ones, return success on a match isin() { local _a="$1" _b shift for _b; do [ "$_a" = "$_b" ] && return 0 done return 1 } # remove all occurrences of first argument from list formed by # the remaining arguments rmel() { local _a="$1" _b shift for _b; do [ "$_a" != "$_b" ] && printf %s "$_b " done } # Issue a read into the global variable $resp. _ask() { local _redo=0 read resp case "$resp" in !) echo "Type 'exit' to return to setup." sh _redo=1 ;; !*) eval "${resp#?}" _redo=1 ;; esac return $_redo } # Ask for user input. # # $1 = the question to ask the user # $2 = the default answer # # Save the user input (or the default) in $resp. # # Allow the user to escape to shells ('!') or execute commands # ('!foo') before entering the input. ask() { local _question="$1" _default="$2" while :; do printf %s "$_question " [ -z "$_default" ] || printf "[%s] " "$_default" _ask && : ${resp:=$_default} && break done } # Ask for user input until a non-empty reply is entered. # # $1 = the question to ask the user # $2 = the default answer # # Save the user input (or the default) in $resp. ask_until() { resp= while [ -z "$resp" ] ; do ask "$1" "$2" done } # Ask for user for y/n until y, yes, n or no is responded # # $1 = the question to ask the user # $2 = the default answer # # Returns true/sucess if y/yes was responded. false othewise ask_yesno() { while true; do ask "$1" "$2" case "$resp" in y|yes|n|no) break;; esac done yesno "$resp" } # Ask for the user to select one value from a list, or 'done'. # # $1 = name of the list items (disk, cd, etc.) # $2 = question to ask # $3 = list of valid choices # $4 = default choice, if it is not specified use the first item in $3 # # N.B.! $3 and $4 will be "expanded" using eval, so be sure to escape them # if they contain spooky stuff # # At exit $resp holds selected item, or 'done' ask_which() { local _name="$1" _query="$2" _list="$3" _def="$4" _dynlist _dyndef while :; do # Put both lines in ask prompt, rather than use a # separate 'echo' to ensure the entire question is # re-ask'ed after a '!' or '!foo' shell escape. eval "_dynlist=\"$_list\"" eval "_dyndef=\"$_def\"" # Clean away whitespace and determine the default set -o noglob set -- $_dyndef; _dyndef="$1" set -- $_dynlist; _dynlist="$*" set +o noglob [ $# -lt 1 ] && resp=done && return : ${_dyndef:=$1} echo "Available ${_name}s are: $_dynlist." printf "Which one %s? (or 'done') " "$_query" [ -n "$_dyndef" ] && printf "[%s] " "$_dyndef" _ask || continue [ -z "$resp" ] && resp="$_dyndef" # Quote $resp to prevent user from confusing isin() by # entering something like 'a a'. isin "$resp" $_dynlist done && break echo "'$resp' is not a valid choice." done } find_modloop_media() { devnum=$(mountpoint -d /.modloop) || return test -n "$devnum" || return modloop_file=$(cat /sys/dev/block/$devnum/loop/backing_file) || return test -n "$modloop_file" || return # assume that device name and mount point don't contain spaces modloop_media=$(df "$modloop_file" | awk 'NR==2{print $6}') || return test -n "$modloop_media" || return echo "$modloop_media" } # Extract fully qualified domain name from current hostname. If none is # currently set, use the provided fallback. get_fqdn() { local _dn _dn=$(hostname -f 2>/dev/null) _dn=${_dn#$(hostname -s 2>/dev/null)} _dn=${_dn#.} echo "${_dn:=$1}" } #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: copy-modloop Copy kernel modules from modloop and unmount loopback device options: -h Show this help __EOF__ exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) set -e if ! rc-service -q modloop status; then echo "modloop is not started" exit 1 fi if [ -n "$DO_UMOUNT" ] && [ -z "$modloop_media" ]; then modloop_media=$(find_modloop_media) fi modulesdir=/lib/modules if [ -L "$modulesdir" ]; then modulesdir=$(readlink "$modulesdir") fi cp -a "$modulesdir" /lib/modules.tmp rc-service modloop stop rm -r /lib/modules mv /lib/modules.tmp /lib/modules if [ -n "$DO_UMOUNT" ]; then umount "$modloop_media" fi #!/bin/sh PROGRAM=setup-acf VERSION=3.19.2-r0 PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { echo "usage: $PROGRAM [-ahn] [-e email] [-l address] [PACKAGE...]" exit $1 } pkgs="acf-core acf-alpine-baselayout acf-apk-tools openssl" while getopts "ae:hl:n" opt ; do case $opt in a) pkgs=$(apk search --quiet --exact 'acf-*');; e) EMAIL="$OPTARG";; h) usage 0;; l) address="$OPTARG";; n) create_passwd=no;; '?') usage "1" >&2;; esac done shift $(expr $OPTIND - 1) while [ $# -gt 0 ]; do pkgs="$pkgs acf-$1" shift done # install packages apk add mini_httpd $pkgs || exit 1 if [ "$create_passwd" != "no" ]; then mkdir -p /etc/acf if [ -f /etc/acf/passwd ]; then mv /etc/acf/passwd /etc/acf/passwd.backup fi echo "root:x:Admin account:ADMIN" >/etc/acf/passwd chmod 600 /etc/acf/passwd acfpasswd -s root fi # setup mini_httpd and start it if [ -d /var/www/localhost/htdocs ]; then mv /var/www/localhost/htdocs /var/www/localhost/htdocs.old fi mkdir -p /var/www/localhost/ ln -s /usr/share/acf/www/ /var/www/localhost/htdocs lbu add /var/www/localhost/htdocs SSLDIR=/etc/ssl/mini_httpd SSLCNF=$SSLDIR/mini_httpd.cnf KEYFILE=$SSLDIR/server.key CRTFILE=$SSLDIR/server.crt PEMFILE=$SSLDIR/server.pem if [ -f $PEMFILE ]; then echo "$PEMFILE already exist." else mkdir -p $SSLDIR cat >$SSLCNF <<-__EOF__ [ req ] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type prompt = no [ req_dn ] OU=HTTPS server CN=$(hostname -f || hostname) emailAddress=${EMAIL:-postmaster@example.com} [ cert_type ] nsCertType = server __EOF__ echo "Generating certificates for HTTPS..." openssl genrsa 2048 > $KEYFILE openssl req -new -x509 -nodes -sha1 -days 3650 -key $KEYFILE \ -config $SSLCNF > $CRTFILE cat $KEYFILE >> $CRTFILE rm $KEYFILE mv $CRTFILE $PEMFILE fi cat >/etc/mini_httpd/mini_httpd.conf <<-__EOF__ nochroot dir=/var/www/localhost/htdocs user=nobody cgipat=cgi-bin** certfile=$PEMFILE port=443 ssl __EOF__ if [ -n "$address" ]; then echo "host=$address" >> /etc/mini_httpd/mini_httpd.conf fi rc-update -q add mini_httpd default rc-service mini_httpd restart # force update of dependency cache rc-update -q --update #!/bin/sh PROGRAM=setup-alpine VERSION=3.19.2-r0 PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" if [ -t 1 ]; then COLCYAN="\e[36m" COLWHITE="\e[97m" COLRESET="\e[0m" else COLCYAN="" COLWHITE="" COLRESET="" fi print_heading1() { printf "${COLCYAN}%s${COLRESET}\n" "$1" } print_heading2() { printf "${COLWHITE}%s${COLRESET}\n" "$1" } is_kvm_clock() { grep -q "kvm-clock" "$ROOT"sys/devices/system/clocksource/clocksource0/current_clocksource 2>/dev/null } is_virtual_console() { case "$(readlink "$ROOT"/proc/self/fd/0)" in /dev/tty[0-9]*) return 0;; esac return 1 } usage() { cat <<-__EOF__ usage: setup-alpine [-ahq] [-c FILE | -f FILE] Setup Alpine Linux options: -a Create Alpine Linux overlay file -c Create answer file (do not install anything) -e Empty root password -f Answer file to use installation -h Show this help -q Quick mode. Ask fewer questions. __EOF__ exit $1 } while getopts "aef:c:hq" opt ; do case $opt in a) ARCHIVE=yes;; f) USEANSWERFILE="$OPTARG";; c) CREATEANSWERFILE="$OPTARG";; e) empty_root_password=1;; h) usage 0;; q) empty_root_password=1; quick=1; APKREPOSOPTS="-1"; HOSTNAMEOPTS="alpine";; '?') usage "1" >&2;; esac done shift $(expr $OPTIND - 1) rc_sys=$(openrc --sys) # mount xenfs so we can detect xen dom0 if [ "$rc_sys" = "XENU" ] && ! grep -q '^xenfs' /proc/mounts; then modprobe xenfs mount -t xenfs xenfs /proc/xen fi case "$USEANSWERFILE" in http*://*|ftp://*) # dynamically download answer file from URL (supports HTTP(S) and FTP) # ensure the network is up, otherwise setup a temporary interface config if ! rc-service networking --quiet status; then setup-interfaces -ar fi temp="$(mktemp)" wget -qO "$temp" "$USEANSWERFILE" || die "Failed to download '$USEANSWERFILE'" USEANSWERFILE="$temp" ;; *) [ -n "$USEANSWERFILE" ] && USEANSWERFILE=$(realpath "$USEANSWERFILE") ;; esac if [ -n "$USEANSWERFILE" ] && [ -e "$USEANSWERFILE" ]; then . "$USEANSWERFILE" fi if [ -n "$CREATEANSWERFILE" ]; then touch "$CREATEANSWERFILE" || echo "Cannot touch file $CREATEANSWERFILE" cat > "$CREATEANSWERFILE" <<-__EOF__ # Example answer file for setup-alpine script # If you don't want to use a certain option, then comment it out # Use US layout with US variant # KEYMAPOPTS="us us" KEYMAPOPTS=none # Set hostname to 'alpine' HOSTNAMEOPTS=alpine # Set device manager to mdev DEVDOPTS=mdev # Contents of /etc/network/interfaces INTERFACESOPTS="auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp hostname alpine-test " # Search domain of example.com, Google public nameserver # DNSOPTS="-d example.com 8.8.8.8" # Set timezone to UTC #TIMEZONEOPTS="UTC" TIMEZONEOPTS=none # set http/ftp proxy #PROXYOPTS="http://webproxy:8080" PROXYOPTS=none # Add first mirror (CDN) APKREPOSOPTS="-1" # Create admin user USEROPTS="-a -u -g audio,input,video,netdev juser" #USERSSHKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOIiHcbg/7ytfLFHUNLRgEAubFz/13SwXBOM/05GNZe4 juser@example.com" #USERSSHKEY="https://example.com/juser.keys" # Install Openssh SSHDOPTS=openssh #ROOTSSHKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOIiHcbg/7ytfLFHUNLRgEAubFz/13SwXBOM/05GNZe4 juser@example.com" #ROOTSSHKEY="https://example.com/juser.keys" # Use openntpd # NTPOPTS="openntpd" NTPOPTS=none # Use /dev/sda as a sys disk # DISKOPTS="-m sys /dev/sda" DISKOPTS=none # Setup storage with label APKOVL for config storage #LBUOPTS="LABEL=APKOVL" LBUOPTS=none #APKCACHEOPTS="/media/LABEL=APKOVL/cache" APKCACHEOPTS=none __EOF__ echo "Answer file $CREATEANSWERFILE has been created. Please add or remove options as desired in that file" exit 0 fi printf "\n\n" print_heading1 " ALPINE LINUX INSTALL" print_heading1 "----------------------" if [ "$ARCHIVE" ] ; then echo "Creating an Alpine overlay" init_tmpdir ROOT else PKGADD="apk add" fi # set keymap if [ "$rc_sys" != LXC ]; then if is_virtual_console || [ -n "$KEYMAPOPTS" ]; then echo print_heading2 " Keymap" print_heading2 "--------" setup-keymap ${KEYMAPOPTS} fi # set hostname echo print_heading2 " Hostname" print_heading2 "----------" setup-hostname ${HOSTNAMEOPTS} && [ -z "$SSH_CONNECTION" ] && rc-service hostname --quiet restart setup-devd -C mdev # just to bootstrap fi # set Interface [ -z "$SSH_CONNECTION" ] && rst_if=1 if [ -n "$INTERFACESOPTS" ]; then if [ "$INTERFACESOPTS" != none ]; then printf "$INTERFACESOPTS" | setup-interfaces -i ${rst_if:+-r} fi else echo print_heading2 " Interface" print_heading2 "-----------" setup-interfaces ${quick:+-a} ${rst_if:+-r} fi # setup up dns if no dhcp was configured if [ -f "$ROOT"/etc/network/interfaces ] && ! grep -q '^iface.*dhcp' "$ROOT"/etc/network/interfaces; then setup-dns ${DNSOPTS} fi # set root password if [ -z "$empty_root_password" ]; then echo print_heading2 " Root Password" print_heading2 "---------------" while ! $MOCK passwd ; do echo "Please retry." done fi # pick timezone if [ -z "$quick" ]; then echo print_heading2 " Timezone" print_heading2 "----------" setup-timezone ${TIMEZONEOPTS} fi echo rc-update --quiet add networking boot rc-update --quiet add seedrng boot || rc-update --quiet add urandom boot svc_list="cron crond" if [ -e /dev/input/event0 ]; then # Only enable acpid for systems with input events entries # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12290 svc_list="$svc_list acpid" fi for svc in $svc_list; do if rc-service --exists $svc; then rc-update --quiet add $svc fi done # start up the services $MOCK openrc ${SSH_CONNECTION:+-n} boot $MOCK openrc ${SSH_CONNECTION:+-n} default # update /etc/hosts - after we have got dhcp address # Get default fully qualified domain name from *first* domain # given on *last* search or domain statement. _dn=$(sed -n \ -e '/^domain[[:space:]][[:space:]]*/{s///;s/\([^[:space:]]*\).*$/\1/;h;}' \ -e '/^search[[:space:]][[:space:]]*/{s///;s/\([^[:space:]]*\).*$/\1/;h;}' \ -e '${g;p;}' "$ROOT"/etc/resolv.conf 2>/dev/null) _hn=$(hostname) _hn=${_hn%%.*} sed -i -e "s/^127\.0\.0\.1.*/127.0.0.1\t${_hn}.${_dn:-$(get_fqdn my.domain)} ${_hn} localhost.localdomain localhost/" \ "$ROOT"/etc/hosts 2>/dev/null if [ -z "$quick" ]; then echo print_heading2 " Proxy" print_heading2 "-------" setup-proxy -q ${PROXYOPTS} fi # activate the proxy if configured if [ -r "$ROOT/etc/profile" ]; then . "$ROOT/etc/profile" fi if ! is_kvm_clock && [ "$rc_sys" != "LXC" ] && [ "$quick" != 1 ]; then echo print_heading2 " Network Time Protocol" print_heading2 "-----------------------" setup-ntp ${NTPOPTS} fi echo print_heading2 " APK Mirror" print_heading2 "------------" setup-apkrepos ${APKREPOSOPTS} # Now that network and apk are operational we can install another device manager if [ "$rc_sys" != LXC ] && [ -n "$DEVDOPTS" -a "$DEVDOPTS" != mdev ]; then setup-devd ${DEVDOPTS} fi # lets stop here if in "quick mode" if [ "$quick" = 1 ]; then exit 0 fi echo print_heading2 " User" print_heading2 "------" setup-user ${USERSSHKEY+-k "$USERSSHKEY"} ${USEROPTS:--a -g 'audio input video netdev'} for i in "$ROOT"home/*; do if [ -d "$i" ]; then lbu add $i fi done setup-sshd ${ROOTSSHKEY+-k "$ROOTSSHKEY"} ${SSHDOPTS} root_keys="$ROOT"/root/.ssh/authorized_keys if [ -f "$root_keys" ]; then lbu add "$ROOT"/root fi if is_xen_dom0; then echo print_heading2 " Xen" print_heading2 "-----" setup-xen-dom0 ${XENDOM0OPTS} fi if [ "$rc_sys" = "LXC" ]; then exit 0 fi echo print_heading2 " Disk & Install" print_heading2 "----------------" DEFAULT_DISK=none \ setup-disk -w /tmp/alpine-install-diskmode.out -q ${DISKOPTS} || exit diskmode=$(cat /tmp/alpine-install-diskmode.out 2>/dev/null) # setup lbu and apk cache unless installed sys on disk if [ "$diskmode" != "sys" ]; then setup-lbu ${LBUOPTS} setup-apkcache ${APKCACHEOPTS} if [ -L "$ROOT"/etc/apk/cache ]; then apk cache sync fi fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-apkcache [-h] [DIR] Setup apk caching. If DIR is not specified user will be asked for location. options: -h Show this help __EOF__ exit $1 } is_mounted() { awk '{print $2}' /proc/mounts | grep -q "^$1$" } find_fstab_mount_point() { local dir="$1" local res= if ! [ -r "${ROOT}"etc/fstab ]; then return fi while [ -n "$dir" ]; do res=$(awk "\$2 == \"$dir\" {print \$2}" "${ROOT}"etc/fstab) if [ -n "$res" ]; then echo $res return fi dir=${dir%/*} done } # figure out mount point find_mount_point() { local dir="$(find_fstab_mount_point "$1")" if [ -d "$dir" ] && [ "$dir" != "/" ]; then echo $dir return fi local dir="$1" while [ -n "$dir" ] && ! [ -d "$dir" ]; do dir=${dir%/*} done local fs_id="$(stat -f -c %i "${dir:-/}")" local parent="${dir%/*}" while [ -n "$dir" ] && [ "$(stat -f -c %i "$parent/")" = "$fs_id" ]; do dir=$parent parent=${parent%/*} done [ -z "$dir" ] && dir=/ echo $dir } # get device for a given mount point get_dev_from_mountpoint() { local mnt="$1" local fstab="$2" awk "\$2 == \"$mnt\" {print \$1}" "$fstab" } get_mount_opts_from_mountpoint() { local mnt="$1" local fstab="$2" awk "\$2 == \"$mnt\" {gsub(/,/, \" \", \$4); print \$4}" "$fstab" } has_mount_opt() { local searchfor="$1" local mnt="$2" local fstab="$3" local opts="$(get_mount_opts_from_mountpoint "$mnt" "$fstab")" local opt= for opt in $opts; do if [ "$opt" = "$searchfor" ]; then return 0 fi done return 1 } is_mounted_ro() { has_mount_opt ro "$1" /proc/mounts } # get the fstype of the given mount point mount_fstype() { # we only want the last mount in case there are several awk -v mnt="$1" '$2 == "/" {fstype = mnt} END {print fstype}' \ /proc/mounts } apk_cache_help() { cat <<-__EOF__ Packages installed from network can be cached locally to be available during boot, before the network is started. Specifying a directory here will make apk cache the packages locally in this directory. Enter 'none' if you do not want to cache packages from network. __EOF__ } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(( OPTIND - 1 )) # try auto detetect what we suggest suggestion= if [ -L "${ROOT}"etc/apk/cache ]; then suggestion=$(readlink "${ROOT}"etc/apk/cache) fi if [ -z "$suggestion" ] && [ -f "$ROOT"etc/lbu/lbu.conf ]; then . "$ROOT"etc/lbu/lbu.conf if [ -n "$LBU_MEDIA" ]; then suggestion=/media/$LBU_MEDIA/cache fi fi if [ -z "$suggestion" ] && [ -L /dev/usbdisk ]; then suggestion=/media/usb/cache fi if [ -z "$suggestion" ] && [ "$(mount_fstype /)" != "tmpfs" ]; then suggestion=/var/cache/apk fi if [ -z "$suggestion" ]; then suggestion=none fi cachedir="$1" resp= while [ $# -eq 0 ] && [ -z "$cachedir" ]; do ask "Enter apk cache directory (or '?' or 'none')" "$suggestion" cachedir="$resp" if [ "$cachedir" = "?" ]; then apk_cache_help cachedir= fi done if [ "$cachedir" = "none" ]; then exit 0 fi case "$cachedir" in /*) ;; *) cachedir="${PWD#${ROOT%/}}/$cachedir";; esac mount=$(find_mount_point "$cachedir") cleanup= if ! is_mounted "$mount"; then # remove noauto that setup-lbu might have added if has_mount_opt noauto "$mount" /etc/fstab; then fstabtmp=$(mktemp) awk -v mnt="$mount" \ '$2 != mnt {print $0} $2 == mnt { sub(/noauto,|,noauto/, "", $4); sub(/^noauto$/, "defaults", $4); print $0 }' /etc/fstab > "$fstabtmp" mv "$fstabtmp" /etc/fstab fi mount "$mount" || exit 1 elif is_mounted_ro "$mount"; then mount -o remount,rw "$mount" || exit 1 cleanup="remount" fi mkdir -p "$ROOT$cachedir" if [ -L "$ROOT"etc/apk/cache ]; then rm -f "$ROOT"etc/apk/cache fi mkdir -p "$ROOT"etc/apk ln -s "$cachedir" "$ROOT"etc/apk/cache case "$cleanup" in umount) umount "$mount";; remount) mount -o remount,ro "$mount";; esac #!/bin/sh PROGRAM=setup-apkrepos PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" : ${MIRRORS_URL:=https://mirrors.alpinelinux.org/mirrors.txt} if [ "$ROOT" != "/" ]; then apk_root_opt="--root $ROOT" fi get_hostname_from_url() { local n="${1#*://}" echo ${n%%/*} } get_mirror_count() { set -- $MIRRORS echo $# } ask_setup_method() { local cstate="enable" if [ -z "$community_prefix" ]; then cstate="disable" fi cat <<-__EOF__ (f) Find and use fastest mirror (s) Show mirrorlist (r) Use random mirror (e) Edit ${ROOT}etc/apk/repositories with text editor (c) Community repo $cstate (skip) Skip setting up apk repositories __EOF__ ask "Enter mirror number or URL:" $1 printf "\n" } add_random_mirror() { local i=0 local count=$(get_mirror_count) if [ ${count:-0} -eq 0 ]; then echo "Warning! no mirror found" >&2 return 1 fi local random_mirror_index="$(awk -v count=$count 'BEGIN {srand(); printf("%.0f", rand() * count)}')" printf %s "Picking random mirror..." for mirror in $MIRRORS; do if [ $i -eq $random_mirror_index ]; then break fi i=$(( $i + 1 )) done add_mirror $mirror } time_cmd() { local start="$(cut -d ' ' -f1 /proc/uptime)" $@ >&2 || return awk -v start=$start -v end=$(cut -d ' ' -f1 /proc/uptime) \ 'BEGIN {print end - start; exit}' } find_fastest_mirror() { local url= local arch="$(apk --print-arch)" for url in $MIRRORS; do # warm up the dns cache $MOCK nslookup $(get_hostname_from_url $url) >/dev/null 2>&1 local time="$(time_cmd wget --spider -q -T 5 -t 1 \ ${url%/}/edge/main/$arch/APKINDEX.tar.gz)" if [ -n "$time" ]; then echo "$time $url" fi done | tee /dev/stderr | sort -nk1,1 | head -n1 | cut -d' ' -f2 } add_fastest_mirror() { echo "Finding fastest mirror... " local fastest="$(find_fastest_mirror)" if [ -z "$fastest" ]; then echo "Warning! No mirror found" >&2 return 1 fi add_mirror "$fastest" } # For every main/ repo, enable corresponding community/ repo add_community_mirrors() { for repo in $(grep '^[^#].*/main$' "$APKREPOS_PATH" 2>/dev/null); do crepo="${repo%%/main}/community" if ! grep -qx -- "$crepo" "$APKREPOS_PATH"; then echo ">>> Enabling repository $crepo" echo "$crepo" >> "$APKREPOS_PATH" fi done } # show mirrors show_mirror_list() { local mirror i=0 [ -z "$MIRRORS" ] && return echo "" echo "Available mirrors:" for mirror in $MIRRORS; do i=$(($i + 1)) echo "$i) $(get_hostname_from_url $mirror)" done echo "" } add_from_list() { local mirror_index="$1" if [ $mirror_index -lt 1 ] || [ $mirror_index -gt $(get_mirror_count) ]; then return 1 fi set $MIRRORS eval "mirror=\${$mirror_index}" add_mirror "$mirror" } get_alpine_release() { # use the main version already configured, or get the version from /etc/alpine-release local version="$(grep -Eom1 '[^/]+/main/?$' "${ROOT}"etc/apk/repositories 2>/dev/null | grep -Eo '^[^/]+' \ || cat "${ROOT}"etc/alpine-release 2>/dev/null)" case "$version" in *_git*|*_alpha*) release="edge";; [0-9]*.[0-9]*.[0-9]*) # release in x.y.z format, cut last digit release=v${version%.[0-9]*};; v[0-9]*.[0-9]*) # release in vx.y format, keep as is release="${version}";; *) # fallback to edge release="edge";; esac } add_mirror() { local mirror="$1" mkdir -p "${APKREPOS_PATH%/*}" echo "${mirror%/}/${release}/main" >> $APKREPOS_PATH echo "${community_prefix}${mirror%/}/${release}/community" >> $APKREPOS_PATH echo "Added mirror $(get_hostname_from_url $mirror)" } add_from_url() { mkdir -p "${APKREPOS_PATH%/*}" echo "$1" >> $APKREPOS_PATH echo "" >> $APKREPOS_PATH } edit_repositories() { local md5="$(md5sum $APKREPOS_PATH 2>/dev/null)" mkdir -p "${APKREPOS_PATH%/*}" ${EDITOR:-vi} "$APKREPOS_PATH" # return true if file changed test "$(md5sum $APKREPOS_PATH 2>/dev/null)" != "$md5" } usage() { cat <<-__EOF__ usage: setup-apkrepos [-ch] [-f|-r|-1|REPO...] setup-apkrepos -o Setup apk repositories options: -c Enable the community repo -f Detect and add fastest mirror -h Show this help -o Only enable a community repo for every defined repo -r Add a random mirror and do not prompt -1 Add first mirror on the list (normally a CDN) Option -o cannot be used with options -c, -f, -r or -1. __EOF__ exit $1 } community_prefix="#" add_fastest=false add_first=false add_random=false add_community_repos=false while getopts "c1fhor" opt; do case $opt in c) community_prefix="" if $add_community_repos; then usage "1" >&2 fi ;; f) add_fastest=true if $add_first || $add_random || $add_community_repos; then usage "1" >&2 fi ;; 1) add_first=true if $add_fastest || $add_random || $add_community_repos; then usage "1" >&2 fi ;; h) usage 0;; o) add_community_repos=true if $add_first || $add_fastest || $add_random \ || [ $community_prefix != "#" ]; then usage "1" >&2 fi ;; r) add_random=true if $add_first || $add_fastest || $add_community_repos; then usage "1" >&2 fi ;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) if [ -z "$MIRRORS" ]; then MIRRORS=$(wget -qO- $MIRRORS_URL) fi APKREPOS_PATH="${ROOT}"etc/apk/repositories if [ -r "$APKREPOS_PATH" ]; then APKREPOS=$(cat "$APKREPOS_PATH") fi get_alpine_release changed=false if [ $# -gt 0 ] && ! $add_community_repos; then # replace the apk repos with the specified ones rm -f "$APKREPOS_PATH" mkdir -p "${APKREPOS_PATH%/*}" for i; do echo "$i" >> "$APKREPOS_PATH" && changed=true done fi if $add_first; then set -- $MIRRORS if [ $# -eq 0 ]; then echo "Warning! No mirror found" >&2 exit 1 fi add_mirror "$1" || exit changed=true fi if $add_random; then add_random_mirror || exit changed=true fi if $add_fastest; then add_fastest_mirror || exit changed=true fi if $add_community_repos; then add_community_mirrors || exit changed=true fi if $add_first || $add_random || $add_fastest || $add_community_repos; then interactive=false else interactive=true fi while $interactive && ! $changed; do if [ -z "$MIRRORS" ]; then MIRRORS=$(wget -qO- $MIRRORS_URL) fi ask_setup_method ${APKREPO_DEFAULT_ANSWER:-1} case "$resp" in skip) break;; [0-9]*) add_from_list $resp && changed=true;; /*|http://*|ftp://*|https://*) add_from_url "$resp" \ && changed=true;; s) show_mirror_list | more;; r|"r c") add_random_mirror && changed=true;; f|"f c") add_fastest_mirror && changed=true;; e) edit_repositories && changed=true;; c) case "$community_prefix" in "#") community_prefix=""; cstate="enabled";; "") community_prefix="#"; cstate="disabled";; esac printf "Community repository %s\n\n" "$cstate" ;; esac case "$resp" in *c) community_prefix=""; printf "Community repository enabled\n";; esac done if $changed; then printf %s "Updating repository indexes... " apk update --quiet $apk_root_opt && echo "done." fi #!/bin/sh prog=${0##*/} version=3.19.2-r0 files_to_move="boot efi apks syslinux.cfg .alpine-release" read_only_mounts= umounts= uninstalls= destdir= cleanup_tmpdata() { if [ -d "$destdir" -a -d "$destdir/.new" ]; then rm -rf "$destdir"/.new fi } cleanup_mounts() { local i= cd / sync sleep 1 for i in $read_only_mounts; do mount -o remount,ro "$i" || echo "Warning: Failed to remount as read-only. Is modloop mounted?" done read_only_mounts="" if [ -n "$umounts" ]; then umount $umounts umounts="" fi } cleanup_installs() { if [ -n "$uninstalls" ]; then apk del --quiet $uninstalls uninstalls="" fi } cleanup() { cleanup_tmpdata cleanup_mounts cleanup_installs } trap cleanup EXIT trap "exit 2" INT TERM QUIT die() { echo "$@" >&2 exit 1 } # find device for mountpoint find_dev() { local mnt="${1%/}" # strip trailing / awk "\$2 == \"$mnt\" {print \$1}" /proc/mounts } # check if given device is on usb bus on_usb_bus() { local dev="$1" [ -e /sys/block/$dev ] || return 1 local sysdev="$(readlink -f /sys/block/$dev/device)" test "${sysdev##*/usb[0-9]}" != "$sysdev" } vecho() { [ -z "$verbose" ] && return 0 echo "$@" } # check if given dir is read-only is_read_only() { local tmpfile="$(mktemp -p "$1" 2>/dev/null)" [ -z "$tmpfile" ] && return 0 rm -f "$tmpfile" return 1 } # find what disk this partition belongs to find_disk_dev() { local i= sysfsname="${1#/dev/}" sysfsname=${sysfsname//\/!} # cciss/c0d0 -> cciss!c0d0 if [ -e /sys/block/$sysfsname ]; then echo "/dev/${sysfsname//!/'/'}" return 0 fi for i in /sys/block/*/$sysfsname; do [ -e "$i" ] || continue echo "$i" | cut -d/ -f4 | sed -e 's:!:/:g' -e 's:^:/dev/:' return 0 done return 1 } find_syslinux_cfg() { # find where new syslinux.cfg is for i in boot/syslinux/syslinux.cfg syslinux.cfg; do if [ -e "$1"/$i ]; then syslinux_cfg=$i vecho "Found $syslinux_cfg" break fi done } fix_syslinux_kernel() { echo "Fixing $syslinux_cfg: kernel $1 -> $2" sed -i -e "/^\s*[Kk][Ee][Rr][Nn][Ee][Ll]\s/s|$1|$2|" \ "$destdir/$syslinux_cfg" } fix_syslinux_initrd() { echo "Fixing $syslinux_cfg: initrd $1 -> $2" sed -i -e "/^\s*[Ii][Nn][Ii][Tt][Rr][Dd]\s/s|$1|$2|" \ -e "/^\s*[Aa][Pp][Pp][Ee][Nn][Dd]\s/s|initrd=$1|initrd=$2|" \ "$destdir/$syslinux_cfg" } check_syslinux() { if [ -z "$syslinux_cfg" ]; then find_syslinux_cfg "$destdir" fi if [ -z "$syslinux_cfg" ]; then die "Could not find any syslinux.cfg. Aborting" fi # kernels for i in $(awk 'tolower($1) == "kernel" {print $2}' "$destdir"/$syslinux_cfg); do k="${destdir%/}/${i#/}" f=${k##*/} if [ -e "$k" ] && [ "${f#vmlinuz}" != "$f" ]; then continue fi if [ -e "${k%/*}"/vmlinuz-$f ] && [ -n "$fix_syslinux_cfg" ]; then fix_syslinux_kernel "$i" "${i%/*}"/vmlinuz-$f elif ! [ -e "$k" ]; then echo "Warning: $syslinux_cfg: kernel $k was not found" echo " Run $0 -f -c "$destdir" to fix" fi done #initramfs initrds=$(awk 'tolower($1) == "initrd" {gsub(",", " "); for (i=2; i<=NF; i++) print $i}' \ "$destdir"/$syslinux_cfg) for i in $(awk 'tolower($1) == "append" {print $0}' \ "$destdir"/$syslinux_cfg); do case $i in initrd=*) initrds=${i#initrd=};; esac done for i in $initrds; do if [ -e "$destdir"/$i ]; then continue fi fname=${i##*/} flavor=${fname%.gz} new=${i%/*}/initramfs-$flavor if [ -e "$destdir"/$new ] && [ -n "$fix_syslinux_cfg" ]; then fix_syslinux_initrd "$i" "$new" else echo "Warning: initrd $i was not found. System will likely not boot" echo " Run $0 -f -c "$destdir" to fix" fi done } version_check() { local new_dir="$1" old_dir="$2" # check if its same version local to_version="$(cat "$new_dir"/.alpine-release)" if [ -n "$upgrade" ] && [ -e "$old_dir"/.alpine-release ]; then local from_version="$(cat "$old_dir"/.alpine-release)" if [ -z "$force" ] && [ -n "$to_version" ] && [ "$from_version" = "$to_version" ]; then die "Source and target seems to have same version ($from_version). Aborting." fi echo "Upgrading $dest from $from_version to $to_version" else echo "Installing $dest to $to_version" fi } usage() { cat <<-__EOF__ $prog $version usage: $prog [-fhUusv] SOURCE [DEST] $prog -c DIR Copy the contents of SOURCE to DEST and make DEST bootable. SOURCE can be a directory or a ISO image. DEST can be a mounted directory or a device. If DEST is ommitted /media/usb will be used. Options: -f Force overwrite existing files. Will overwrite syslinux.cfg if upgrade. -h Show this help. -k fix kernel and initrd name in syslinux.cfg if needed. -U Replace current alpine_dev in syslinux.cfg with UUID if UUID found. -u Upgrade mode. Keep existing syslinux.cfg and don't run syslinux. -s Force run syslinux, even if upgrade mode. -v Verbose mode. Display whats going on. -c Check syslinux.cfg in destination DIR. Use with -f to fix. __EOF__ exit 1 } while getopts "c:fhkUusv" opt; do case "$opt" in c) check_syslinux="$OPTARG";; f) force=1; fix_syslinux_cfg=1;; h) usage;; k) fix_syslinux_cfg=1;; U) replace_alpine_dev=1;; u) upgrade=1;; s) syslinux=1;; v) verbose=1;; esac done shift $(($OPTIND - 1)) src=${1} dest=${2:-/media/usb} if [ -n "$check_syslinux" ]; then destdir="$check_syslinux" check_syslinux exit 0 fi [ -z "$src" ] && usage # find target device if [ -d "$dest" ]; then dest=${dest%/} # strip trailing / if ! awk '{print $2}' /proc/mounts | grep -q "^$dest\$"; then mount "$dest" || die "Failed to mount $dest" umounts="$umounts $dest" elif [ -n "$syslinux" ]; then die "Cannot run syslinux on mounted device" else nosyslinux=1 fi destdir="$dest" dest=$(find_dev "$destdir") elif [ -b "$dest" ]; then destdir="/media/${dest##*/}" mkdir -p "$destdir" mount "$dest" "$destdir" || die "Failed to mount $dest on $destdir" umounts="$umounts $destdir" fi # remount as rw if needed if is_read_only "$destdir"; then vecho "Remounting $destdir as read/write" mount -o remount,rw "$dest" || die "Failed to remount $destdir as rw" read_only_mounts="$read_only_mounts $destdir" fi # fish out label, uuid and type eval $(blkid $dest | cut -d: -f2-) vecho "Using $dest as target (mounted on $destdir)" # find parent device (i.e sda) dev="$dest" while [ -L "$dev" ]; do dev=$(readlink -f $dev) done parent_dev=$(find_disk_dev $dev) # check if this files exist and not in upgrade mode if [ -z "$upgrade" ] && [ -z "$force" ]; then for i in $files_to_move; do [ -e "$destdir"/$i ] && die "$destdir/$i already exists. Use -u to upgrade." done fi # remove partial upgrades if any rm -rf "$destdir"/.new "$destdir"/.old mkdir -p "$destdir"/.new || die "Failed to create $destdir/.new" # copy data from source to .new if [ -f "$src"/.alpine-release ]; then srcdir="$(echo $src | sed -r 's,/$,,')" version_check "$srcdir" "$destdir" for i in $files_to_move; do if [ -e "$srcdir"/$i ]; then vecho "Copying $srcdir/$i to $destdir/.new/" cp -dR "$srcdir"/$i "$destdir"/.new/ fi done else vecho "Extracting $src to $destdir/.new/" case "$src" in https://*|http://*|ftp://*) ${WGET:-wget} -O - "$src" | (cd "$destdir"/.new; exec ${UNISO:-uniso}) \ || die "Failed to download or extract $src" echo "" ;; *) (cd "$destdir"/.new; exec ${UNISO:-uniso}) < "$src" \ || die "Failed to download or extract $src" ;; esac version_check "$destdir/.new" "$destdir" fi # find where new syslinux.cfg is find_syslinux_cfg "$destdir"/.new # abort early in case unexpected trouble if [ -z "$syslinux_cfg" ]; then die "Could not find any syslinux.cfg on new iso?" fi # make sure files are really there before we replace existing vecho "Flushing cache..." sync vecho "Replacing existing files..." mkdir -p "$destdir"/.old || die "Failed to create $destdir/.old" # move current files to .old for i in $files_to_move; do if [ -e "$destdir"/$i ]; then mv "$destdir"/$i "$destdir"/.old/ || die "Failed to move $destdir/$i to $destdir/.old/" fi done # keep any existing syslinux.cfg if [ -e "$destdir"/.old/$syslinux_cfg ]; then mv "$destdir"/.old/$syslinux_cfg "$destdir"/.new/$syslinux_cfg elif [ -e "$destdir"/.old/syslinux.cfg ] \ && [ -e "$destdir"/.new/boot/syslinux/syslinux.cfg ]; then echo "Warning: moving syslinux.cfg to boot/syslinux/syslinux.cfg" >&2 mv "$destdir"/.old/syslinux.cfg "$destdir"/.new/boot/syslinux if [ -z "$syslinux" ]; then echo " You might need run: syslinux $dest" >&2 fi fi # move .new to current for i in $files_to_move; do if [ -e "$destdir"/.new/$i ]; then mv "$destdir"/.new/$i "$destdir"/ \ || die "Failed to move $destdir/.new/ to $destdir" fi done if [ -n "$replace_alpine_dev" -o -z "$upgrade" ] && [ -n "$UUID" ]; then sed -E -i -e "s/alpine_dev=[^ \t:]+/alpine_dev=UUID=$UUID/" \ "$destdir"/$syslinux_cfg fi # verify syslinux.cfg check_syslinux # cleanup [ -z "$keep_old" ] && rm -rf "$destdir"/.old "$destdir"/.new # If we only copy then we are done. if [ -n "$upgrade" ] && [ -z "$syslinux" ]; then exit 0 fi # prevent running syslinux on mounted device if [ -n "$nosyslinux" ]; then echo "Warning: Can not run syslinux on a mounted device" echo " You might need run syslinux manually and install MBR manually" exit 0 fi echo "Making $dest bootable..." if ! [ -x "$(which syslinux)" ]; then apk add --quiet syslinux || die "Failed to install syslinux" uninstalls="syslinux" fi # we need to unmount the device before we can run syslinux cleanup_mounts fsync $dest syslinux $dest if [ -b $parent_dev ]; then dd if=/usr/share/syslinux/mbr.bin of=$parent_dev status=none else echo "Warning: Could not find the parent device for $dest" fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-desktop [-h] [gnome|plasma|xfce|mate|sway|lxqt] Install a standard desktop options: -h Show this help __EOF__ exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) if [ $# -gt 1 ]; then usage "1" >&2 fi if [ $# -eq 0 ]; then users=$(awk -F: '{if ($3<65000 && $3 >= 1000) print $1}' "$ROOT"/etc/passwd 2>/dev/null) if [ -z "$users" ]; then setup-user -g "audio,video,netdev" fi fi de="$1" valid_desktops="xfce gnome plasma mate sway lxqt none" if [ $# -eq 1 ] && ! isin "$de" $valid_desktops; then echo "$de is not a valid desktop" >&2 usage "1" >&2 fi shift while ! isin "$de" $valid_desktops; do ask "Which desktop environment? ('gnome', 'plasma', 'xfce', 'mate', 'sway', 'lxqt' or 'none')" none de="$resp" done case "$de" in none) exit 0 ;; mate) setup-xorg-base mate-desktop-environment ${BROWSER:-firefox} \ gvfs \ lightdm \ lightdm-gtk-greeter \ polkit \ dbus \ dbus-x11 \ font-dejavu \ "$@" rc-update add dbus rc-update add lightdm ;; xfce) setup-xorg-base xfce4 ${BROWSER:-firefox} \ elogind \ gvfs \ lightdm \ lightdm-gtk-greeter \ polkit-elogind \ xfce4-screensaver \ xfce4-terminal \ font-dejavu \ "$@" rc-update add lightdm ;; lxqt) setup-xorg-base ${BROWSER:-firefox} \ lxqt-desktop \ lximage-qt \ obconf-qt \ pavucontrol-qt \ arandr \ sddm \ font-dejavu \ dbus \ dbus-x11 \ openbox \ elogind \ polkit-elogind \ gvfs \ udisks2 \ adwaita-qt \ oxygen \ "$@" rc-update add dbus rc-update add sddm rc-update add elogind ;; gnome) setup-wayland-base ${BROWSER:-firefox} "$@" # apk info needs community repos which are enabled with setup-wayland-base apk add $(apk info --quiet --depends gnome gnome-apps-core) rc-update add gdm ;; plasma) setup-xorg-base ${BROWSER:-firefox} \ ark \ bluedevil \ breeze \ breeze-gtk \ dbus \ discover \ drkonqi \ font-noto \ gwenview \ kate \ kde-cli-tools \ kde-gtk-config \ kde-icons \ kdeplasma-addons \ kgamma \ kinfocenter \ kio-fuse \ kmenuedit \ konsole \ kscreen \ ksshaskpass \ kwallet-pam \ kwayland-integration \ pinentry-qt \ pipewire-alsa \ pipewire-pulse \ plasma-browser-integration \ plasma-desktop \ plasma-disks \ plasma-nm \ plasma-pa \ plasma-systemmonitor \ plasma-vault \ plasma-welcome \ plasma-workspace-wallpapers \ polkit-elogind \ polkit-kde-agent-1 \ powerdevil \ print-manager \ sddm-breeze \ sddm-kcm \ spectacle \ systemsettings \ udisks2 \ xdg-desktop-portal-kde \ xdg-user-dirs \ "$@" rc-update add dbus rc-update add sddm ;; sway) setup-wayland-base ${BROWSER:-firefox} \ font-dejavu \ foot \ grim \ i3status \ sway \ swayidle \ swaylockd \ util-linux-login \ wl-clipboard \ wmenu \ xwayland \ "$@" ;; *) usage "1" >&2 ;; esac users=$(awk -F: '{if ($3<65000 && $3 >= 1000) print $1}' "$ROOT"/etc/passwd 2>/dev/null) if [ -z "$users" ]; then echo "WARNING: You need to create a user account. Please run: setup-user" >&2 echo "" >&2 fi #!/bin/sh -e PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" prog="${0##*/}" usage () { cat </dev/null || : rc-update delete --quiet --quiet mdevd sysinit 2>/dev/null || : fi } enable_mdevd () { apk add --quiet mdevd mdevd-openrc rc-update add --quiet mdevd sysinit rc-update add --quiet mdevd-init sysinit rc-update add --quiet hwdrivers sysinit rc-service --ifstopped mdevd start if "$1" ; then rc-service mdevd-init start rc-service hwdrivers --ifstopped start fi } disable_udev () { if rc-service --exists udev ; then rc-service --ifstopped --quiet udev-postmount stop rc-service --ifstarted --quiet udev stop rc-update delete --quiet --quiet udev-postmount default 2>/dev/null || : rc-update delete --quiet --quiet udev-settle sysinit 2>/dev/null || : rc-update delete --quiet --quiet udev-trigger sysinit 2>/dev/null || : rc-update delete --quiet --quiet udev sysinit 2>/dev/null || : fi } enable_udev () { apk add --quiet eudev udev-init-scripts udev-init-scripts-openrc rc-update add --quiet udev sysinit rc-update add --quiet udev-trigger sysinit rc-update add --quiet udev-settle sysinit rc-update add --quiet udev-postmount default rc-service --ifstopped udev start rc-service --ifstopped udev-trigger start rc-service --ifstopped udev-settle start rc-service --ifstopped udev-postmount start } coldplug=false while getopts "hC" opt ; do case $opt in h) usage 0;; C) coldplug=true ;; '?') usage 1 >&2;; esac done shift $((OPTIND - 1)) devd="$1" if test -n "$devd" ; then interactive=false else interactive=true fi until isin "$devd" mdev mdevd udev ; do ask "What program should manage /dev? [mdev|mdevd|udev]" mdev devd="$resp" done if "$interactive" ; then if ask_yesno "Scan the hardware to populate /dev? [y|n] (Say yes if you're running this script for the first time.)" n ; then coldplug=true else coldplug=false fi fi case "$devd" in mdev) disable_mdevd ; disable_udev ; enable_mdev $coldplug ;; mdevd) disable_mdev ; disable_udev ; enable_mdevd $coldplug ;; udev) disable_mdev ; disable_mdevd ; enable_udev $coldplug ;; esac #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-dns [-h] [-d DOMAINNAME] [IPADDR...] Setup ${ROOT}etc/resolv.conf DNS settings options: -h Show this help -d specify search domain name The optional IPADDR are a list of DNS servers to use. __EOF__ exit $1 } while getopts "d:n:h" opt; do case $opt in d) DOMAINNAME="$OPTARG";; h) usage 0;; n) NAMESERVERS="$OPTARG";; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) conf="${ROOT}etc/resolv.conf" if [ -f "$conf" ] ; then domain=$(awk '/^domain/ {print $2}' $conf) dns=$(awk '/^nameserver/ {printf "%s ",$2}' $conf) elif fqdn="$(get_fqdn)" && [ -n "$fqdn" ]; then domain="$fqdn" fi if [ -n "$DOMAINNAME" ]; then domain="$DOMAINNAME" elif [ $# -eq 0 ]; then ask "DNS domain name? (e.g 'bar.com')" "$domain" domain="$resp" fi if [ -n "$NAMESERVERS" ] || [ $# -gt 0 ];then dns="$NAMESERVERS" else ask "DNS nameserver(s)?" "${dns% }" dns="$(echo $resp | tr ',' ' ')" fi if [ -n "$domain" ]; then mkdir -p "${conf%/*}" echo "search $domain" > $conf fi if [ -n "$dns" ] || [ $# -gt 0 ] && [ -f "$conf" ]; then sed -i -e '/^nameserver/d' $conf fi for i in $dns $@; do mkdir -p "${conf%/*}" echo "nameserver $i" >> $conf done #!/bin/sh PROGRAM=setup-hostname PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-hostname [-h] [HOSTNAME] Sets the system hostname. options: -h Show this help Sets hostname to HOSTNAME or prompt if unspecified. __EOF__ exit $1 } # http://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names valid_hostname() { # check length if [ $(echo "$1" | wc -c) -gt 255 ]; then echo "Hostname '$1' is too long." >&2 return 1 fi # check that it only contains valid chars if ! [ -z "$(echo $1 | sed 's/[0-9a-z.-]//g')" ]; then echo "Hostname must only contain letters (a-z), digits (0-9), '.' or '-'" >&2 return 1 fi # must not start with - or . case "$1" in -*) echo "Hostname must not start with a '-'" >&2; return 1;; .*) echo "Hostname must not start with a '.'" >&2; return 1;; esac return 0 } while getopts "hn:" opt; do case $opt in h) usage 0;; n) name="$OPTARG";; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1 )) if [ -z "$name" ] && [ $# -eq 1 ]; then name="$1" fi # if name is set, then we run non-interactively if [ -n "$name" ] && ! valid_hostname "$name"; then exit 1 fi HOST="$name" while [ -z "$name" ]; do HOST=$(hostname) ask "Enter system hostname (fully qualified form, e.g. 'foo.example.org')" "$HOST" if valid_hostname "$resp"; then HOST="$resp" break fi done mkdir -p "$ROOT/etc" echo "$HOST" > "$ROOT/etc/hostname" #!/bin/sh PROGRAM=setup-interfaces PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" PKGS= unconfigured_add() { touch $1.noconf } unconfigured_detect() { local i= for i in ${INTERFACES:-$(available_ifaces)}; do case "$i" in lo|docker0) continue;; esac unconfigured_add "$i" done } unconfigured_get_first() { ls *.noconf 2>/dev/null | head -n 1 | sed 's/.noconf//' } unconfigured_del() { rm -f $1.noconf } unconfigured_all_done() { local i= for i in *.noconf; do [ -e $i ] && return 1 done return 0 } unconfigured_list() { local list= i= for i in *.noconf; do [ -e "$i" ] || continue list="${list} ${i%.noconf}" done echo $list } unconfigured_isin() { [ -f $1.noconf ] } iface_exists() { test -e "$ROOT"/sys/class/net/$1 } get_default_addr() { # check if dhcpcd is running if pidof dhcpcd > /dev/null && [ -f "$ROOT/var/lib/dhcpc/dhcpcd-$1.info" ]; then echo dhcp elif iface_exists $1; then $MOCK ip addr show $1 | awk '/inet / {print $2}' | head -n 1 | sed 's:/.*::' fi } get_default_mask() { if [ "$1" ] ; then ipcalc -m $1 | sed 's/.*=//' else echo "255.255.255.0" fi } get_default_gateway() { if iface_exists $1; then $MOCK ip route show dev $1 | awk '/^default/ {print $3}' fi } ipaddr_help() { cat <<-__EOF__ Select the ip address for this interface. dhcp Dynamic/automatic ip via DHCP none Do not add any address n.n.n.n (ex: 192.168.0.1) Static ip n.n.n.n/m (ex: 192.168.0.1/24) Static ip with mask br[0-9]+ (ex: br0) Add this interface to a bridge bridge[0-9] (ex: bridge0) Add this interface to a bridge You will be prompted for netmask if not specified with the address. __EOF__ } bridge_add_port() { local bridge="$1" iface= shift for iface; do echo $iface >> $bridge.bridge_ports unconfigured_add $bridge unconfigured_del $iface done } bridge_list_ports() { if [ -r $1.bridge_ports ]; then echo $(cat $1.bridge_ports) fi } is_bridge() { test -r $1.bridge_ports } is_wifi() { test -d "$ROOT"/sys/class/net/$1/phy80211 } find_essids() { local iface="$1" export essids_list=wlans # Supports only open or PSK $MOCK ip link set dev "$iface" up (iw dev "$iface" scan; echo BSS) | awk -F": " ' /^BSS/ { if (ssid) { print ssid "/" auth }; ssid=""; auth="" } $1 ~ /^[[:blank:]]*SSID$/ { ssid=$2 } $1 ~ /Authentication suites/ { auth=$2 }' \ | grep -E -v '(802.1x|\\x00)' | sort -u >"$essids_list" if [ -s "$essids_list" ]; then # we use / as separator since it is an illegal char in ssids awk -F/ '{print NR ") " $1}' "$essids_list" else return 1 fi } config_wpa_supp() { local iface="$1" essid="$2" auth_type="$3" psk="$4" local conffile="$ROOT"/etc/wpa_supplicant/wpa_supplicant.conf mkdir -p "${conffile%/*}" if [ "$auth_type" = "WPA-PSK" ]; then (umask 0077 && wpa_passphrase "$essid" "$psk" | sed -e '/^\t#psk=.*/d' >> "$conffile") else cat << EOF >> $conffile network={ ssid="$essid" key_mgmt=$auth_type } EOF fi mkdir -p "$ROOT/etc/conf.d" if grep -q ^wpa_supplicant_args= "$ROOT"/etc/conf.d/wpa_supplicant 2>/dev/null; then sed -i -e "s/^wpa_supplicant_args=.*/wpa_supplicant_args=\"-i $iface\"/" /etc/conf.d/wpa_supplicant else printf 'wpa_supplicant_args="-i%s"\n' "$iface" >> "$ROOT"/etc/conf.d/wpa_supplicant fi rc-update --quiet add wpa_supplicant boot rc-service wpa_supplicant start } essid_is_valid() { [ -n "$1" ] && cut -d/ -f1 "$essids_list" | grep -q -w -F "$1" } is_number() { echo "$1" | grep -q -E '^[0-9]+$' } essid_by_index() { if is_number "$1"; then cut -d/ -f1 "$essids_list" | sed "$1!d" fi } wlan_is_psk() { local essid="$1" awk -F/ -v essid="$essid" '$1==essid {print $2}' "$essids_list" | grep -q -F -w 'PSK' } config_iface() { local iface="$1" local prefix="$2" local default_address="$3" local address= netmask= gateway= bridge_ports= local bridge local conf="$prefix$iface.conf" if [ -n "$ask_bridge" ] && ! is_bridge $iface \ && ask_yesno "Do you want to bridge the interface $iface? (y/n)" y; then bridge="br$(echo $iface | sed 's/[^0-9]//g')" ask "Name of the bridge you want add $iface to:" $bridge bridge_add_port $resp $iface return fi if [ -r "$iface.bridge_ports" ]; then bridge_ports=$(echo $(cat $iface.bridge_ports)) echo "bridge_ports=\"$bridge_ports\"" >> $conf fi if [ -r "$iface.bond_slaves" ]; then bond_slaves=$(echo $(cat $iface.bond_slaves)) echo "bond_slaves=\"$bond_slaves\"" >> $conf fi if [ -r "$iface.raw_device" ]; then raw_device=$(cat $iface.raw_device) echo "raw_device=\"$raw_device\"" >> $conf fi if is_wifi $iface; then apk add --quiet --no-progress iw wpa_supplicant || return local wifi_configured=false while ! $wifi_configured; do echo "Available wireless networks (scanning):" if ! find_essids $iface; then printf "\nNo available wireless networks\n" return fi local essid= auth_type="NONE" ask "Type the wireless network name to connect to:" if ! essid_is_valid "$resp"; then case "$resp" in ""|done|abort) echo "Aborting $iface setup"; return;; esac local by_index="$(essid_by_index "$resp")" if essid_is_valid "$by_index"; then resp="$by_index" else echo "Invalid SSID: $resp" continue fi fi essid="$resp" if wlan_is_psk "$essid"; then auth_type="WPA-PSK" askpass "Type the \"$essid\" network Pre-Shared Key (will not echo):" psk="$resp" fi config_wpa_supp "$iface" "$essid" "$auth_type" "$psk" && wifi_configured=true done fi # use ipcalc to validate the address. we do accept /mask # we are no interested in the result, only error code, so # we send result to /dev/null while ! ipcalc -s -m $address >/dev/null 2>&1; do address=${default_address:-$(get_default_addr $iface)} [ -z "$address" ] && address="dhcp" ask "Ip address for $iface? (or 'dhcp', 'none', '?')" $address address=$resp case "$resp" in '?') ipaddr_help;; "abort") return;; "dhcp") echo "type=dhcp" >> $conf unconfigured_del $iface return ;; "none") echo "type=manual" >> $conf unconfigured_del $iface return;; br[0-9]*|bridge[0-9]*) case "$iface" in # we dont allow bridge bridges br[0-9]*|bridge[0-9]*) continue;; esac bridge_add_port $resp $iface return ;; esac done # extract netmask if entered together with address if [ "$address" != "${address%%/*}" ]; then netmask=$(ipcalc -s -m $address | cut -d= -f2) fi # use ipcalc -m to validate netmask. we dont accept /mask suffix # so we pass on a dummy mask to ipcalc. while ! ipcalc -s -m $netmask/0 >/dev/null 2>&1; do netmask=$(get_default_mask $address) ask "Netmask?" $netmask netmask=$resp [ "$netmask" = "abort" ] && return done # use ipcalc -m to validate netmask. we dont accept /mask suffix # so we pass on a dummy mask to ipcalc. while ! ipcalc -s -m $gateway/0 >/dev/null 2>&1; do gateway=$(get_default_gateway $iface) [ -z "$gateway" ] && gateway=none ask "Gateway? (or 'none')" $gateway gateway=$resp [ "$gateway" = "abort" ] && return [ "$gateway" = "none" ] && gateway="" [ -z "$gateway" ] && break done echo "type=static" >> $conf if [ -n "$bridge_ports" ]; then echo "bridge_ports=$bridge_ports" >> $conf fi echo "address=${address%%/*}" >> $conf #strip off /mask if there echo "netmask=$netmask" >> $conf echo "gateway=$gateway" >> $conf # print summary echo "Configuration for $iface:" sed 's/^/ /' $conf unconfigured_del $iface } is_bridge() { [ -e "$ROOT"/sys/class/net/$1/bridge ] || [ -e $1.bridge_ports ] } is_bond_master() { [ -e $1.bond_slaves ] } unconfigured_available() { local local i= iflist= for i in $(unconfigured_list); do if ! is_bridge $i && ! is_bond_master $i; then iflist="${iflist}${iflist:+ }$i" fi done echo $iflist } unconfigured_all_are() { local i= for i; do unconfigured_isin $i || return 1 done return 0 } config_bridge() { local bridge="$1" iflist= i= ports= while ! unconfigured_all_done; do set -- $(unconfigured_available) [ $# -eq 0 ] && return 0; ports=$(bridge_list_ports $bridge) if [ -n "$ports" ]; then echo "Bridge ports in $bridge are: $ports" fi echo "Available bridge ports are: $@" ask "Which port(s) do you want add to bridge $bridge? (or 'done')" $1 case $resp in 'abort') return 1;; 'done') return 0;; esac for i in $resp; do if unconfigured_isin $i; then bridge_add_port $bridge $i else echo "$i is not valid" fi done done } bond_add_slave() { local master="$1" slave= shift for slave; do echo $slave >> $master.bond_slaves unconfigured_add $master unconfigured_del $slave done } bond_list_slaves() { if [ -r $1.bond_slaves ]; then echo $(cat $1.bond_slaves) fi } config_bond() { local master="$1" slaves= while ! unconfigured_all_done; do set -- $(unconfigured_available) [ $# -eq 0 ] && return 0; slaves=$(bond_list_slaves $master) if [ -n "$slaves" ]; then echo "Bond slaves in $master are: $slaves" fi echo "Available bond slaves are: $@" ask "Which slave(s) do you want add to $master? (or 'done')" $1 case $resp in 'abort') return 1;; 'done') return 0;; esac for i in $resp; do if unconfigured_isin $i; then bond_add_slave $master $i else echo "$i is not valid" fi done done } config_vlan() { local iface="$1" vid= raw_device= case $iface in *.*) raw_device=${iface%.*} vid=${iface#*.} ;; vlan*) vid=${iface#vlan} ask_which "raw device" "do you want use for $iface" "$(unconfigured_list)" echo "$resp" > $iface.raw_device return 0 ;; esac if unconfigured_isin $raw_device || is_bond_master $raw_device; then return 0 fi echo "$raw_device is not a valid raw device for $iface" return 1 } usage() { cat <<-__EOF__ usage: setup-interfaces [-abhir] [-p ROOT] Setup network interfaces options: -a Automatic interface setup using DHCP -b Ask for bridging of interfaces -h Show this help -i Read new contents of ${ROOT}etc/network/interfaces from stdin -p Set the system root to operate in -r Restart the networking service after the setup __EOF__ exit $1 } iface_help() { cat <<-__EOF__ Select the interface you wish to configure. For advanced configurations, you can also enter: br[0-9]+ (ex: br0) bridge interface bridge[0-9]+ (ex: bridge0) bridge interface bond[0-9]+ (ex: bond32) bonded interface vlan[0-9]+ (ex: vlan371) vlan interface eth?.[0-9]+ (ex: eth0.371) vlan interface bond?.[0.9]+ (ex: bond0.371) vlan interface You will be asked which physical interface(s) to be used for advanced configurations. Select 'none' to leave configuration unmodified. __EOF__ } prompt_for_interfaces() { init_tmpdir TMP cd $TMP unconfigured_detect index=1 while ! unconfigured_all_done; do echo "Available interfaces are: $(unconfigured_list)." echo "Enter '?' for help on bridges, bonding and vlans." ask "Which one do you want to initialize? (or '?' or 'done')" \ $(unconfigured_get_first) iface=$resp case "$iface" in "none") exit;; "done") break;; '?') iface_help; continue;; br[0-9]*|bridge[0-9]*|virbr[0-9]*) config_bridge $iface || continue;; bond[0-9]*.[0-9]*) config_bond ${iface%.*} || continue config_iface ${iface%.*} $(printf "%.3d~" $index) none index=$(( $index + 1 )) config_vlan $iface || continue ;; bond[0-9]*) config_bond $iface || continue;; *.[0-9]*|vlan[0-9]*) config_vlan $iface || continue;; *) unconfigured_isin $iface || continue;; esac config_iface $iface $(printf "%.3d~" $index) index=$(( $index + 1 )) done if [ "$(openrc --sys)" != "LXC" ] || ! ip addr show lo | grep -q 'inet.*127\.0'; then echo "type=loopback" > 000~lo.conf echo "" > interface fi for i in *.conf ; do iface=$(basename $i .conf) iface=${iface#[0-9]*~} bridge_ports= bond_slaves= raw_device= address= type= gateway= . ./$i echo "auto $iface" >> interfaces echo "iface $iface inet $type" >> interfaces if [ -n "$bridge_ports" ]; then PKGS="$PKGS bridge" printf "\tbridge-ports %s\n" "$bridge_ports" >> interfaces fi if [ -n "$bond_slaves" ]; then PKGS="$PKGS bonding" printf "\tbond-slaves %s\n" "$bond_slaves" >> interfaces fi if [ -n "$raw_device" ]; then printf "\tvlan-raw-device %s\n" "$raw_device" >> interfaces fi case "$iface" in *.[0-9]*|vlan[0-9]*) if ! [ -f "$ROOT"usr/libexec/ifupdown-ng/link ]; then PKGS="$PKGS vlan" fi ;; esac case $type in manual) printf "\tup ip link set \$IFACE up\n" >> interfaces printf "\tdown ip link set \$IFACE down\n" >> interfaces ;; static) printf "\taddress %s\n" "$address" >> interfaces printf "\tnetmask %s\n" "$netmask" >> interfaces [ "$gateway" ] \ && printf "\tgateway %s\n" "$gateway" >> interfaces ;; esac echo "" >> interfaces done if ask_yesno "Do you want to do any manual network configuration? (y/n)" n; then case "$EDITOR" in nano) apk add nano;; vim) apk add vim;; esac ${EDITOR:-vi} interfaces fi if [ -n "$PKGS" ]; then apk add --quiet $PKGS fi mkdir -p $ROOT/etc/network cp interfaces $ROOT/etc/network/ } find_first_iface_up() { local n=0 [ $# -eq 0 ] && return while [ $n -le ${SETUP_INTERFACES_LINK_WAIT_MAX:-11} ]; do for i in "$@"; do if [ "$(cat "$ROOT/sys/class/net/$i/operstate" 2>/dev/null)" = "up" ]; then echo "$i" return fi done sleep 0.1 n=$((n+1)) done } auto_setup() { local iface set -- $(available_ifaces) if [ $# -eq 0 ]; then return fi for iface in "$@"; do $MOCK ip link set dev "$iface" up done iface="$(find_first_iface_up "$@")" if [ -z "$iface" ]; then iface="$1" fi # we will likely use the found interface later so lets keep it up for i in "$@"; do if [ "$i" != "$iface" ]; then $MOCK ip link set dev "$i" down fi done cat >$ROOT/etc/network/interfaces <<-EOF auto lo iface lo inet loopback auto $iface iface $iface inet dhcp EOF } ask_bridge= is_xen_dom0 && ask_bridge=1 while getopts "abhip:r" opt; do case $opt in a) auto=1;; b) ask_bridge=1;; h) usage 0;; i) STDINPUT=1;; p) ROOT=$OPTARG;; r) restart=1;; '?') usage "1" >&2;; esac done if [ "$1" = none ]; then exit fi mkdir -p $ROOT/etc/network if [ "$STDINPUT" = "1" ]; then cat > $ROOT/etc/network/interfaces elif [ -n "$auto" ]; then auto_setup else prompt_for_interfaces fi if [ -n "$restart" ]; then rc-service networking --quiet restart >/dev/null fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" MAPDIR="$ROOT/usr/share/bkeymaps" if [ -f "$ROOT/etc/conf.d/loadkmap" ]; then . "$ROOT/etc/conf.d/loadkmap" variant=$(basename "KEYMAP") variant="${variant%%.*}" fi usage() { cat <<-__EOF__ usage: setup-keymap [-h] [LAYOUT [VARIANT]] Sets the system keymap layout and variant. options: -h Show this help Sets keymap to LAYOUT (and VARIANT) or prompt if unspecified. __EOF__ exit $1 } show_layouts() { output="" for file in "$MAPDIR"/*; do base=$(basename "$file") output="$output${base%.bmap.gz} " done print_column "$output" } show_variants() { output="" for file in "$MAPDIR/$1"/*; do base=$(basename "$file") output="$output${base%.bmap.gz} " done print_column "$output" } print_column() { if [ -z "$1" ]; then echo "Error: No data to display." >&2 return 1 fi local terminal_width=$(stty size 2>/dev/null | cut -d' ' -f2) if [ -z "$terminal_width" ] || [ "$terminal_width" -eq 0 ]; then terminal_width=80 fi max_word_length=$(echo "$1" | awk '{for(i=1;i<=NF;i++) x = (length($i) > x ? length($i) : x)} END {print x}') number_of_columns=$((terminal_width / (max_word_length + 1))) if [ "$number_of_columns" -eq 0 ]; then number_of_columns=1 fi words=$(echo $1) i=0 for word in $words; do printf "%-${max_word_length}s " "$word" i=$((i + 1)) if [ $((i % number_of_columns)) -eq 0 ]; then printf "\n" fi done if [ $((i % number_of_columns)) -ne 0 ]; then printf "\n" fi } select_layout() { while true; do if [ -z "$layout" ] || ! [ -d "$MAPDIR/$layout" ]; then layout=none fi show_layouts echo "" ask "Select keyboard layout:" "$layout" echo "" if [ "$resp" = "abort" ] || [ "$resp" = "none" ] ; then goodbye 0 fi set -- $resp layout="$1" variant="$2" if [ -d "$MAPDIR/$layout" ] ; then return 0 fi done } setup_mapfile() { local name="$(basename "$1")" local conf="$ROOT/etc/conf.d/loadkmap" mkdir -p "$ROOT/etc/keymap" mkdir -p "$ROOT/etc/conf.d/" if cp "$1" "$ROOT/etc/keymap/$name" ; then [ -f "$conf" ] && sed -i '/^KEYMAP=/d' "$conf" echo "KEYMAP=/etc/keymap/$name" >> "$conf" # we actually load the keymap now rc-service loadkmap restart rc-update -q add loadkmap boot goodbye 0 fi } select_variant() { while true; do show_variants "$layout" if [ ! -f "$MAPDIR/$layout/$variant.bmap" ] ; then variant="" fi echo "" ask "Select variant (or 'abort'):" "$variant" echo "" variant="$resp" if [ "$variant" = "abort" ] || [ "$variant" = "none" ]; then break; fi if [ -f "$MAPDIR/$layout/$variant.bmap"* ]; then setup_mapfile "$MAPDIR/$layout/$variant.bmap"* fi done } goodbye() { apk del --quiet --no-progress .setup-keymap-deps exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1 )) trap 'goodbye 1' INT apk add --quiet --virtual .setup-keymap-deps kbd-bkeymaps deflayout="$1" defvariant="$2" while true; do if [ -n "$deflayout" ]; then if [ "$deflayout" = "none" ]; then goodbye 0 fi layout="$deflayout" unset deflayout else select_layout fi if [ -n "$defvariant" ]; then variant="$defvariant" fi # if variant is defined, this could match, otherwise we'll have to choose a variant if [ -f "$MAPDIR/$layout/$variant.bmap"* ]; then setup_mapfile "$MAPDIR/$layout/$variant.bmap"* else # if there is only one variant, just pick it count=$(ls "$MAPDIR"/"$layout" | wc -l) if [ $count -eq 1 ]; then setup_mapfile "$MAPDIR/$layout/"* continue fi select_variant fi done #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-lbu [-hq] [MEDIA] Setup lbu media settings. MEDIA is optional mountpoint under /media options: -h Show this help -q Quietly pick best suggestion. Only prompts user if unsure. __EOF__ exit $1 } get_filesystem_type() { local mountpoint="$1" shift awk "\$2==\"$mountpoint\" {print \$3}" "$@" 2>/dev/null } get_dev() { local mountpoint="$1" shift awk "\$2==\"$mountpoint\" {print \$1}" "$@" 2>/dev/null } is_in_fstab() { test -n "$(get_filesystem_type $1 "$ROOT"/etc/fstab)" } is_mounted() { test -n "$(get_filesystem_type $1 "$ROOT"/proc/mounts)" } is_iso9660() { local fs for fs in $(get_filesystem_type $1 "$ROOT"/proc/mounts "$ROOT"/etc/fstab); do if [ "$fs" = "iso9660" ]; then return 0 fi done return 1 } set_media() { local media="${1%/}" # strip trailing / local mnt=/media/$media case "$media" in LABEL=*|UUID=*) mkdir -p $ROOT/media/$media;; esac if [ -d "$media" ] && [ "${media#/media/}" != "$media" ]; then mnt="$media" media=${mnt#/media/} fi if [ "$ROOT" = "/" ] && ! [ -d "$mnt" ]; then echo "$mnt: not a directory" >&2 exit 1 fi # set LBU_MEDIA in /etc/lbu/lbu.conf if [ -f "${ROOT}"etc/lbu/lbu.conf ]; then sed -e "/^\#\?[[:space:]]*LBU_MEDIA=.*/s/.*/LBU_MEDIA=$media/" \ -i "${ROOT}"etc/lbu/lbu.conf if ! egrep -q '^LBU_MEDIA=' "${ROOT}"etc/lbu/lbu.conf; then echo "LBU_MEDIA=$media" >> "${ROOT}"etc/lbu/lbu.conf fi else mkdir -p "${ROOT}"etc/lbu echo "LBU_MEDIA=$media" >> "${ROOT}"etc/lbu/lbu.conf fi # append to fstab if its missing if ! is_in_fstab $mnt; then case "$media" in LABEL=*|UUID=*) dev=$(findfs $media) ;; *) dev=$(get_dev $mnt "$ROOT"/proc/mounts) ;; esac if [ -z "$dev" ]; then echo "$media: Could not find device" >&2 exit 1 fi # get TYPE=... LABEL=... UUID=... from blkid eval $(blkid $dev | awk -F: '{print $2}') if [ -z "$TYPE" ]; then echo "$media: Could not find filesystem type" >&2 exit 1 fi if [ -n "$UUID" ]; then UUID="UUID=$UUID" fi # use LABEL= if it was specifically selected, otherwise use UUID case "$media" in LABEL=*|UUID=*) UUID="$media";; esac mkdir -p "$ROOT"/etc printf "%s\t%s\t%s\tnoauto,ro 0 0\n" "${UUID:-$dev}" "$mnt" "$TYPE" >> "$ROOT"/etc/fstab fi # hack in case we have alpine_dev mounted on /media/usbdisk but # lbu is stored on /media/usb # Otherwise we get issues when we do lbu commit. if [ "$media" = "usb" ] && is_mounted /media/usbdisk; then mount --move /media/usbdisk /media/usb elif [ "$media" = "usbdisk" ] && is_mounted /media/usb; then mount --move /media/usb /media/usbdisk fi } while getopts "hq" opt; do case $opt in h) usage 0;; q) quiet=1;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) # check if MEDIA option was given if [ -n "$1" ]; then if [ "$1" = "none" ]; then exit fi set_media "$1" exit fi alternatives= suggestion="none" for dir in /media/*; do [ -d "$dir" ] || continue if is_iso9660 "$dir"; then continue fi alternatives="$alternatives, '${dir#/media/}'" if is_mounted "$dir"; then suggestion=${dir#/media/} [ -n "$quiet" ] && media=$suggestion fi done if findfs "LABEL=APKOVL" >/dev/null; then suggestion="LABEL=APKOVL" case ", $alternatives, " in *"'LABEL=APKOVL'"*) ;; *) alternatives="$alternatives, 'LABEL=APKOVL'" ;; esac fi # strip leading , + space alternatives=${alternatives#, } # if nothing is mounted (or boot from cdrom) usbmnt=$(awk '$1 == "/dev/usbdisk" {print $2}' /proc/mounts) if [ -z "$suggestion" ] && [ -n "$usbmnt" ]; then suggestion=${usbmnt#/media/} if [ -n "$quiet" ] && [ -e /dev/usbdisk ]; then media=$suggestion fi fi while [ -z "$media" ]; do ask "Enter where to store configs ($alternatives or 'none')" "$suggestion" media="$resp" case "$media" in none|LABEL=*) break;; esac if [ -d "/media/$media" ]; then break fi echo "/media/$media is not a directory. Please try again." media= done if [ "$media" = "none" ]; then exit 0 fi set_media "$media" #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" conf="$ROOT/etc/ssmtp/ssmtp.conf" usage() { cat <<-EOF usage: setup-mta [-h] [SMTPSERVER] Setup SMTP server for outgoing email options: -h Show this help If SMTPSERVER is not prompted user will be prompted EOF exit $1 } cfgval() { awk -F= "/^$1/ {print \$2}" $conf 2>/dev/null } setcfg() { local key="$1" local value="$2" mkdir -p "${conf%/*}" sed -i "s/^\\(\\#\\)*$key=.*/$key=$value/" "$conf" 2>/dev/null if ! grep -q "^$key=" "$conf" 2>/dev/null; then echo "$key=$value" >> "$conf" fi } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1 )) mailhub="$1" if [ -f "$conf" ] ; then mailhub=$(cfgval mailhub) fi domain=$(hostname -d $hostname 2>/dev/null) if [ -z "$mailhub" ] ;then if [ -n "$domain" ] ; then mailhub="smtp.$domain" else mailhub=smtp fi fi res= while [ $# -eq 0 ] && [ "$res" != "221" ]; do ask "Outgoing mail server? (e.g 'smtp.isp.com')" "$mailhub" mailhub="$resp" if ! ask_yesno "Test connection? (y/n)" y; then break fi res=$(printf "quit\r\n\n" | nc $mailhub 25 | awk '/^221/ {print $1}') [ "x$res" = "x221" ] && echo "Connection to $mailhub is ok." done apk add ssmtp setcfg mailhub $mailhub setcfg FromLineOverride YES #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat >&$(( $1 + 1 ))<<-__EOF__ usage: setup-ntp [-h] [busybox|openntpd|chrony|none] Setup NTP time synchronization options: -h Show this help User is prompted if no NTP daemon is specified __EOF__ exit $1 } while getopts "hc:" opt; do case $opt in c) resp="$OPTARG";; h) usage 0;; '?') usage 1;; esac done shift $(( $OPTIND - 1 )) : ${resp:=$1} while [ $# -eq 0 ] && ! isin "$resp" busybox openntpd chrony none abort; do if date -d "$resp" >/dev/null 2>&1; then $MOCK date -s "$resp" else # display current time before asking for NTP client date fi ask "Which NTP client to run? ('busybox', 'openntpd', 'chrony' or 'none')" chrony done pkgs="$resp" case "$resp" in none|abort) exit 0 ;; busybox) pkgs='' svc=ntpd ;; chrony) if apk info --installed --quiet acf-core; then pkgs="$pkgs acf-chrony" fi svc=chronyd ;; openntpd) svc=openntpd ;; *) echo "setup-ntp: '$resp' is not a supported NTP client" >&2 usage 1 ;; esac [ -z "$pkgs" ] || apk add --quiet $pkgs rc-update add $svc default rc-service $svc start #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-proxy [-hq] [PROXYURL] Setup http proxy options: -h Show this help -q Quiet mode If PROXYURL is not specified user will be prompted. __EOF__ exit $1 } while getopts "hp:q" opt; do case "$opt" in q) quiet=1;; h) usage 0;; p) ROOT=$OPTARG;; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1)) proxyurl="$1" PROFILE="$ROOT/etc/profile.d/proxy.sh" if [ -f "$PROFILE" ] ; then . $PROFILE fi suggest=${http_proxy:-none} while [ $# -eq 0 ]; do case "$proxyurl" in http://*|https://*) break;; none) break;; esac ask "HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none')" $suggest proxyurl=$resp done if [ "$proxyurl" = "none" ]; then rm -f "$PROFILE" else mkdir -p "${PROFILE%/*}" cat >"$PROFILE" <<-__EOF__ # this file was generated with and might get overwritten by setup-proxy export http_proxy=$proxyurl export https_proxy=$proxyurl export ftp_proxy=$proxyurl export no_proxy=localhost __EOF__ # busybox wget does not handle http proxies well apk add --quiet --no-progress wget fi if [ -z "$quiet" ] && [ "$proxyurl" != "none" ]; then cat <<-__EOF__ To make changes active please do login again or source $PROFILE with ". $PROFILE" __EOF__ fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-sshd [-h] [-k authorized key] [openssh | dropbear | none] Setup sshd daemon options: -h Show this help -k Authorized key for root (HTTP(S)/FTP URL, the public key itself or 'none') __EOF__ exit $1 } root_login_help() { cat <<-__EOF__ Valid options are: yes root will be able to login with password or ssh key no root will not be allowed to login with ssh prohibit-password root will be able to login with ssh key but not with password __EOF__ } set_sshd_config() { local key="$1" value="$2" sed -i -E -e "s/^#?\s*$key.*/$key $value/" \ "$ROOT"/etc/ssh/sshd_config 2>/dev/null if ! grep -q -w "^$key" "$ROOT"/etc/ssh/sshd_config; then echo "$key $value" >> "$ROOT"/etc/ssh/sshd_config fi } get_sshd_config() { local key="$1" value="$2" awk -v key="$key" '$1 == key {print $2}' "$ROOT"/etc/ssh/sshd_config } authorized_key="$SSH_KEY" while getopts "hc:k:" opt; do case $opt in h) usage 0;; c) sshdchoice="$OPTARG";; # backwards compat k) authorized_key="$OPTARG";; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1 )) case "$1" in openssh|dropbear|none) sshdchoice="$1" ;; "") [ -z "$sshdchoice" ] && interactive=1;; *) usage "1" >&2;; esac while [ -n "$interactive" ] && ! isin "$sshdchoice" openssh dropbear none; do ask "Which ssh server? ('openssh', 'dropbear' or 'none')" openssh sshdchoice="$resp" done if [ "$sshdchoice" = "none" ]; then exit 0 fi pkgs="$sshdchoice" if [ "$sshdchoice" = "openssh" ] && apk info --quiet --installed acf-core; then pkgs="$pkgs acf-openssh" fi apk add --quiet $pkgs users=$(awk -F: '{if ($3<65000 && $3 >= 1000) print $1}' \ "$ROOT"/etc/passwd 2>/dev/null) if [ "$sshdchoice" = "openssh" ] && [ -z "$authorized_key" ] && [ -z "$users" ]; then suggest=prohibit-password while [ -n "$interactive" ]; do ask "Allow root ssh login? ('?' for help)" "$suggest" case "$resp" in '?') root_login_help continue ;; "al "*) suggest="https://gitlab.alpinelinux.org/${resp#* }.keys" continue ;; "gl "*) suggest="https://gitlab.com/${resp#* }.keys" continue ;; "gh "*) suggest="https://github.com/${resp#* }.keys" continue ;; yes|no|prohibit-password) set_sshd_config PermitRootLogin "$resp" break ;; http://*|https://*) authorized_key="$(wget -qO- "$resp")" || { echo "Failed to fetch key from '$resp'" continue } break ;; esac done suggest=none while [ -n "$interactive" ] && [ "$(get_sshd_config PermitRootLogin)" != "no" ]; do ask "Enter ssh key or URL for root (or 'none')" "$suggest" case "$resp" in "al "*) suggest="https://gitlab.alpinelinux.org/${resp#* }.keys" continue ;; "gl "*) suggest="https://gitlab.com/${resp#* }.keys" continue ;; "gh "*) suggest="https://github.com/${resp#* }.keys" continue ;; http://*|https://*) authorized_key="$(wget -qO- "$resp")" || { echo "Failed to fetch key from '$resp'" continue } break ;; none) break ;; *) if printf "%s\n" "$resp" | ssh-keygen -l -f - >/dev/null; then authorized_key="$resp" break fi ;; esac done fi # ask "Enter ssh key or URL for $username (or 'none')" none svc= case "$sshdchoice" in openssh) svc=sshd;; dropbear) svc=dropbear;; esac if [ -n "$svc" ]; then rc-update add $svc default rc-service $svc start fi if [ -n "$authorized_key" -a "$authorized_key" != "none" ]; then # if the argument is an HTTP(S)/FTP URL, try to fetch the file contents case "$authorized_key" in http*://*|ftp://*) key_url="$authorized_key" authorized_key="$(wget -qO- "$key_url")" || die "Failed to fetch key from '$key_url'" ;; esac umask 077 mkdir -p "$ROOT"/root/.ssh echo "$authorized_key" >> "$ROOT"/root/.ssh/authorized_keys fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" zroot="$ROOT"usr/share/zoneinfo usage() { cat <<-__EOF__ usage: setup-timezone [-h] [-k|-i] [TIMEZONE] Sets the timezone for the system. options: -h Show this help -i Install tzdata and symlink instead of making a copy -k Keep previous copies of tzdata TIMEZONE is relative $zroot. If TIMEZONE is not specified user will be prompted. __EOF__ exit $1 } show_tz_list() { local i z= list= local path="$zroot/$1" [ -d "$path" ] || return 1 for i in $(find $path/ -maxdepth 1); do case $i in *.tab|*/) continue;; esac if [ -d "$i" ]; then z="$z ${i##*/}/" else z="$z ${i##*/}" fi done ( cd $path && ls --color=never -Cd $z ) } setup_tz() { local zonepath="$1" if ! $INSTALL_TZDATA; then local zone="${zonepath#*/zoneinfo/}" local zdir="${zonepath%/*}"/ zdir="${zdir#*/zoneinfo/}" if ! $KEEP_TZDATA; then rm -rf "${ROOT}"etc/zoneinfo fi mkdir -p "${ROOT}"etc/zoneinfo/$zdir cp "$zonepath" "${ROOT}"etc/zoneinfo/$zdir/ zonepath=/etc/zoneinfo/$zone fi rm -f "${ROOT}"etc/localtime ln -s "$zonepath" "${ROOT}"etc/localtime } INSTALL_TZDATA=false KEEP_TZDATA=false while getopts "hikz:" opt; do case $opt in h) usage 0;; i) INSTALL_TZDATA=true;; k) KEEP_TZDATA=true;; z) ZONE="$OPTARG";; # backwards compat '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1)) if [ -z "$ZONE" ]; then ZONE="$1" fi if [ "$ZONE" = "none" ]; then exit 0 fi if $INSTALL_TZDATA; then pkg=tzdata apkdel= else pkg="--force --virtual .setup-timezone tzdata" apkdel=".setup-timezone" fi apk add --no-progress --quiet $pkg || die "Failed to install tzdata package" if [ -n "$apkdel" ]; then trap "exit 1" INT TERM HUP trap "apk del --no-progress --quiet $apkdel" EXIT fi if [ -L "${ROOT}"etc/zoneinfo/localtime ]; then default_timezone=$(readlink "${ROOT}"etc/zoneinfo/localtime) default_timezone=${timezone#*/zoneinfo/} else default_timezone=UTC fi if [ -n "$ZONE" ]; then [ -f "$zroot/$ZONE" ] || die "'$ZONE' is not a valid timezone on this system" setup_tz "$zroot"/"$ZONE" else while true; do show_tz_list echo "" ask "Which timezone are you in? (or '?' or 'none')" "$default_timezone" timezone=$(printf %s "$resp" | sed 's/\/\+/\//g; s/\/$//') case "$timezone" in none|abort) break;; ""|"?") continue;; esac while [ -d "$zroot/$timezone" ]; do show_tz_list "$timezone" echo "" ask "What sub-timezone of '$timezone' are you in? (or '?')" zone=$(printf %s "$resp" | sed 's/\/\+/\//g; s/\/$//') case "$zone" in ""|"?") continue;; esac default_timezone="$timezone" timezone="$timezone/$zone" done if [ -f "$zroot/$timezone" ]; then setup_tz "$zroot/$timezone" break fi echo "'$timezone' is not a valid timezone on this system" done fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-user [-h] [-a] [-u] [-f FULLNAME] [-g GROUPS] [-k SSHKEY] [USERNAME] Create user account options: -a Create admin user. Add to wheel group and set up doas -h Show this help -f Set full name for user -g Comma or space separated list of groups to add user to -k ssh key or URL to ssh key (eg. https://gitlab.alpinelinux.org/user.keys) or 'none' for no key -u Unlock the user automatically (eg. creating the user non-interactively with an ssh key for login) If USERNAME is not specified user will be prompted. __EOF__ exit $1 } filter_ssh_keys() { grep -E '^(ecdsa|rsa|ssh)-' } retrieve_ssh_keys() { wget -q -O - "$1" | filter_ssh_keys } contains_ssh_key() { echo "$1" | filter_ssh_keys > /dev/null } while getopts "af:g:hk:u" opt; do case $opt in a) admin=1;; h) usage 0;; f) fullnameopt="$OPTARG";; g) groups="$OPTARG";; k) keysopt="$OPTARG";; u) forceunlock=1;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) if [ -z "$admin$fullnameopt$groups$keysopt$forceunlock" ] && [ "$1" = "none" ]; then exit 0 fi if [ $# -gt 1 ]; then usage "1" >&2 elif [ $# -eq 1 ]; then username="$1" else interactive=1 fi while true; do fullname="$fullnameopt" if [ -n "$interactive" ] && [ -z "$username" ]; then if [ -n "$fullname" ]; then suggest=${fullname:+$(echo "$fullname" | sed -E 's/^(.).*\s+(.*)/\1\2/' | tr '[:upper:]' '[:lower:]')} else suggest=no fi # dont suggest something that has failed before if [ "$suggest" = "$failed_username" ]; then suggest= fi ask "Setup a user? (enter a lower-case loginname, or 'no')" $suggest case "$resp" in no) exit 0;; *) username="$resp";; esac fi if [ -n "$interactive" ] && [ -z "$fullnameopt" ]; then ask "Full name for user $username" ${lastfullname:-$username} fullname="$resp" lastfullname="$resp" fi if [ -n "$fullname" ]; then adduser -g "$fullname" -D "$username" && break else adduser -D "$username" && break fi if ! [ -n "$interactive" ]; then exit 1 fi failed_username="$username" username= done while [ -n "$interactive" ] && ! $MOCK passwd "$username"; do echo "Please retry." done if [ -n "$interactive" ] && [ -z "$keysopt" ]; then suggest=none while true; do ask "Enter ssh key or URL for $username (or 'none')" $suggest case "$resp" in al) suggest="https://gitlab.alpinelinux.org/$username.keys" continue ;; gl) suggest="https://gitlab.com/$username.keys" continue ;; gh) suggest="https://github.com/$username.keys" continue ;; none) break ;; https://*|http://*) sshkeys=$(retrieve_ssh_keys "$resp") ;; *) sshkeys="$resp" ;; esac if contains_ssh_key "$sshkeys"; then break fi echo "Did not find any key in '$resp'" done else case "$keysopt" in https://*|http://*) sshkeys=$(retrieve_ssh_keys "$keysopt");; none) sshkeys="" ;; *) sshkeys="$keysopt";; esac if [ -n "$sshkeys" ] && ! contains_ssh_key "$sshkeys"; then echo "Could not find any keys in '$resp'" >&2 exit 1 fi fi if [ -n "$sshkeys" ] && [ "$sshkeys" != "none" ]; then ssh_directory="$ROOT"/home/$username/.ssh ( umask 077 mkdir -p "$ssh_directory" echo "$sshkeys" > "$ssh_directory"/authorized_keys ) $MOCK chown -R $username:$username "$ssh_directory" fi if [ -n "$groups" ] && [ "$groups" != "none" ]; then for i in $(echo $groups | tr ',' ' '); do $MOCK addgroup "$username" "$i" || exit done fi if [ -n "$admin" ]; then apk add doas mkdir -p "$ROOT"/etc/doas.d echo "permit persist :wheel" >> "$ROOT"/etc/doas.d/doas.conf $MOCK addgroup "$username" "wheel" || exit fi if [ -n "$forceunlock" ]; then $MOCK passwd -u "$username" || exit fi #!/bin/sh usage() { cat <<-__EOF__ usage: setup-wayland-base [-h] [PKG..] Set up system to use Wayland options: -h Show this help Installs and enables elogind, enables community repository, enable udev and install the packages PKG if specified. __EOF__ exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) # For every main/ repo, enable corresponding community/ repo setup-apkrepos -o apk add elogind polkit-elogind eudev "$@" setup-devd udev for service in elogind polkit; do rc-service "$service" start rc-update add "$service" done #!/bin/sh # simple script to setup basic xen dom0 # kernel modules mkdir -p "$ROOT"/etc for mod in xen_netback xen_blkback xenfs xen_pciback xen_wdt tun; do if $MOCK modprobe $mod; then grep -q -w $mod "$ROOT"/etc/modules 2>/dev/null || echo $mod >> "$ROOT"/etc/modules fi done # install packages apk add --quiet xen $@ # setup and start services for svc in xenstored xenconsoled xenqemu; do if rc-service --exist "$svc"; then rc-update --quiet add "$svc" default rc-service "$svc" start fi done #!/bin/sh usage() { cat <<-__EOF__ usage: setup-xorg-base [-h] [PKG..] Set up system to use Xorg options: -h Show this help Installs xorg-server, enables community repository, enable udev and install the packages PKG if specified. __EOF__ exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) # For every main/ repo, enable corresponding community/ repo setup-apkrepos -o apk add xorg-server xf86-input-libinput xinit eudev mesa-dri-gallium "$@" setup-devd udev #!/bin/sh VERSION=3.19.2-r0 PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" # set up temp dir init_tmpdir TMPD LBUCACHE="$TMPD/lbucache" usage() { cat <<-__EOF__ $PROGRAM $VERSION usage: $PROGRAM [-a|--all] [-i|--initd] [-l|--list] [-h|--help] options: -a, --all Select all updated files -i, --initd Use all new init.d scripts -l, --list List updated files -h, --help Show this help __EOF__ exit $1 } is_modified() { [ -f "$LBUCACHE" ] || lbu status -a | awk '{print $2}' > "$LBUCACHE" test -n "$( ( echo "$1" ; cat "$LBUCACHE" ) | sort | uniq -d)" } is_initd() { echo "$1" | grep etc/init.d/ > /dev/null } args=$(getopt -o ailh --long all,initd,list,help -n "$PROGRAM" -- "$@") if [ $? -ne 0 ]; then usage "1" >&2 fi eval set -- "$args" while true; do case $1 in -a|--all) aflag="-a";; -i|--initd) iflag="-i";; -l|--list) lflag="-l";; -h|--help) usage 0;; --) shift; break;; '?') usage "1" >&2;; esac shift done if which vimdiff >/dev/null; then vflag=", Vimdiff old new" vflag2="/v" fi for apknew in $(find "$ROOT/etc" -name '*.apk-new') ; do p="${apknew%.apk-new}" f="${p#${ROOT}/}" if [ "$lflag" ] ; then # just list the file if [ "$aflag" ] || is_modified "$f" ; then echo "$p" fi elif [ "$aflag" ] || is_modified "$f" ; then if [ "$iflag" ] && is_initd "$f" ; then echo "Autoupdating $p" mv "$apknew" "$p" continue fi diff -u "$p" "$apknew" # ask user what to do with the file unset resp while [ -z "$resp" ] ; do echo "New $p available:" ask "Quit, Next, Show diff, Edit new${vflag}, Zap new, Use new (q/n/s/e${vflag2}/z/u)" s case "$resp" in q) exit;; n) continue;; s) diff -u "$p" "$apknew" | ${PAGER:-less} unset resp ;; e) ${EDITOR:-vi} "$apknew" ; unset resp;; v) if [ "$vflag" ]; then vimdiff "$p" "$apknew" fi unset resp;; z) rm "$apknew";; u) mv "$apknew" "$p";; *) unset resp;; esac done else # auto update echo "Autoupdating unchanged $p" mv "$apknew" "$p" fi done #!/bin/sh -e # update-kernel # # Kernel and firmware update script for Alpine installations set up # with setup-bootable # # Copyright (c) 2014 Timo Teräs # Copyright (c) 2014-2021 Kaarle Ritvanen PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" SCRIPT=update-kernel VIRTUAL=.tmp-$SCRIPT SUPERUSER= [ $(id -u) -eq 0 ] && SUPERUSER=Y if [ -z "$SUPERUSER" ] && [ -z "$FAKEROOTKEY" ]; then exec fakeroot "$0" "$@" fi ARCH= BUILDDIR= FLAVOR= MEDIA= MNTDIR= PACKAGES= MKINITFS_ARGS= REPOSITORIES_FILE=/etc/apk/repositories KEYS_DIR=/etc/apk/keys CACHE_DIR=/etc/apk/cache SIGNALS="HUP INT TERM" tmpdir= features= modloopfw= error() { echo "$SCRIPT: $1" >&2 } usage() { [ "$2" ] && error "$2" $outfh local opts="[-F ]... [-p ]..." local dest_args="[-a ] " local outfh=2 [ $1 -eq 0 ] && outfh=1 cat >&$outfh <<-__EOF__ usage: $SCRIPT $opts [$dest_args] $SCRIPT -f $opts $dest_args $SCRIPT -b $opts [$dest_args] Options: -a|--arch Install kernel for specified architecture -b|--build-dir

Install custom-built kernel -e|--modloopfw Install extra firmware in modloop -f|--flavor Install kernel of specified flavor -F|--feature Enable initfs feature -p|--package Additional module or firmware package -s|--modloopsign Sign modloop with abuild key -v|--verbose Verbose output -k|--apk-pubkey Include given key in initramfs -K|--hostkeys Include host keys in initramfs -C|--compression Initramfs compression (see mkinitfs for options) -M|--media Boot media directory layout -d|--keys-dir Override directory of trusted keys for apk -c|--cache-dir Override cache directory --repositories-file apk repositories file On low-memory systems, you may want to point the TMPDIR environment variable to a storage-backed directory. __EOF__ exit $1 } QUIET_OPT="--quiet" OPTS=$(getopt -l arch:,build-dir:,flavor:,feature:,modloopfw:,help,package:,modloopsign,verbose,apk-pubkey:,hostkeys,compression:,media,repositories-file:,keys-dir:,cache-dir: \ -n $SCRIPT -o a:b:f:F:hp:svk:KC:Md:c: -- "$@") || usage 1 eval set -- "$OPTS" while :; do case "$1" in -a|--arch) shift ARCH=$1 ;; -b|--build-dir) shift BUILDDIR=$1 ;; -f|--flavor) shift FLAVOR=$1 ;; -F|--feature) shift features="$features $1" ;; -e|--modloopfw) shift modloopfw="$modloopfw $1" ;; -h|--help) echo "$SCRIPT 3.19.2-r0" usage 0 ;; -p|--package) shift PACKAGES="$PACKAGES $1" ;; -s|--modloopsign) MODLOOPSIGN=1 ;; -v|--verbose) QUIET_OPT= ;; -k|--apk-pubkey) shift APK_PUBKEY="$1" ;; -K|--hostkeys) MKINITFS_ARGS="$MKINITFS_ARGS -K" ;; -C|--compression) shift MKINITFS_ARGS="$MKINITFS_ARGS -C $1" ;; -M|--media) MEDIA=yes ;; -d|--keys-dir) shift KEYS_DIR="$1" ;; -c|--cache-dir) shift CACHE_DIR="$1" ;; --repositories-file) shift REPOSITORIES_FILE=$1 ;; --) break ;; esac shift done DESTDIR=$2 [ "$BUILDDIR" -a "$FLAVOR" ] && \ usage 1 "Cannot specify both build directory and flavor" if [ -z "$DESTDIR" ]; then [ "$ARCH" ] && \ usage 1 "Cannot specify architecture when updating the current kernel" [ "$FLAVOR" ] && \ usage 1 "Cannot specify flavor when updating the current kernel" [ "$SUPERUSER" ] || \ usage 1 "Specify destination directory or run as superuser" while read MOUNT; do set -- $MOUNT [ $2 = /.modloop ] || continue DESTDIR=$(dirname $(busybox losetup $1 | cut -d " " -f 3)) MNTDIR=$(dirname "$DESTDIR") break done < /proc/mounts if [ -z "$MNTDIR" ]; then error "Module loopback device not mounted" exit 1 fi fi remount() { mount $1 -o remount "$MNTDIR" } ignore_sigs() { trap "" $SIGNALS } clean_up() { set +e ignore_sigs if [ "$SUPERUSER" ] && [ -z "$FAKEROOTKEY" ]; then apk del $QUIET_OPT $VIRTUAL fi rm -fr $tmpdir } sign_modloop() { local in="$1" local abuild_conf="${ABUILD_CONF:-"/etc/abuild.conf"}" [ -f "$abuild_conf" ] && . "$abuild_conf" local abuild_home="${ABUILD_USERDIR:-"$HOME/.abuild"}" local abuild_userconf="${ABUILD_USERCONF:-"$abuild_home/abuild.conf"}" [ -f "$abuild_userconf" ] && . "$abuild_userconf" local privkey="$PACKAGER_PRIVKEY" local pubkey="${PACKAGER_PUBKEY:-"${privkey}.pub"}" MODLOOPSIG=${in##*/}.SIGN.RSA.${pubkey##*/} echo "Signing: $in" openssl dgst -sha1 -sign "$privkey" \ -out "$tmpdir/$MODLOOPSIG" \ "$in" } trap clean_up EXIT $SIGNALS if [ "$SUPERUSER" ] && [ -z "$FAKEROOTKEY" ]; then apk add $QUIET_OPT --update-cache -t $VIRTUAL mkinitfs squashfs-tools kmod fi if [ -z "$features" ]; then . "$ROOT"/etc/mkinitfs/mkinitfs.conf fi if [ -z "$FLAVOR" ]; then FLAVOR=$(uname -r | cut -d - -f 3-) [ "$FLAVOR" ] || FLAVOR=vanilla fi [ "$ARCH" ] || ARCH=$(apk --print-arch) tmpdir=$(mktemp -dt $SCRIPT.XXXXXX) ROOTFS=$tmpdir/root BOOT=$ROOTFS/boot CACHE_DIR_OPT="--cache-dir $CACHE_DIR" if ! [ -e "$CACHE_DIR" ]; then CACHE_DIR_OPT= fi _apk() { local cmd="$1" shift apk $cmd $QUIET_OPT $CACHE_DIR_OPT -p $ROOTFS --arch "$ARCH" \ --keys-dir $KEYS_DIR \ --repositories-file "$REPOSITORIES_FILE" $* } extra_pkgs() { local res="$(_apk search -x $1)" if [ "$res" ]; then echo $* fi } # set up the root and get the APKINDEX for search _apk add --initdb --update-cache if [ "$BUILDDIR" ]; then case "$ARCH" in arm*|aarch64*) _install="zinstall dtbs_install" ;; riscv64) _install="zinstall dtbs_install" ;; *) _install="install" ;; esac mkdir -p $BOOT make -C "$BUILDDIR" $_install firmware_install modules_install \ INSTALL_MOD_PATH=$ROOTFS \ INSTALL_PATH=$BOOT \ INSTALL_DTBS_PATH='$ROOTFS/usr/lib/linux-$(KERNELRELEASE)' else if [ -z "$PACKAGES" ]; then PACKAGES="$(extra_pkgs "xtables-addons-$FLAVOR")" fi PACKAGES="$PACKAGES linux-$FLAVOR linux-firmware" fi _apk add --no-scripts alpine-base $PACKAGES if [ -n "$APK_PUBKEY" ]; then mkdir -p "$ROOTFS"/etc/apk/keys cp "$APK_PUBKEY" "$ROOTFS"/etc/apk/keys/ fi KVER_FLAVOR= [ "$FLAVOR" = vanilla ] || KVER_FLAVOR=-$FLAVOR KVER=$(basename $(ls -d $ROOTFS/lib/modules/*"$KVER_FLAVOR")) DTBDIR=$ROOTFS/boot/dtbs-$FLAVOR [ -d "$DTBDIR" ] || DTBDIR=$ROOTFS/usr/lib/linux-$KVER [ -d "$DTBDIR" ] || DTBDIR=$ROOTFS/boot find $ROOTFS/lib/modules \ -name \*.ko.gz -exec gunzip {} + \ -o -name \*.ko.xz -exec unxz {} + \ -o -name \*.ko.zst -exec unzstd --rm {} + \ -o ! -name '' # don't fail if no files found. busybox find doesn't support -true $MOCK depmod -b $ROOTFS "$KVER" STAGING=$tmpdir/boot MODLOOP=$tmpdir/modloop MODIMG=modloop-$FLAVOR mkdir $MODLOOP $STAGING cp -a $ROOTFS/lib/modules $MODLOOP mkdir -p $MODLOOP/modules/firmware find $ROOTFS/lib/modules -type f -name "*.ko*" | xargs modinfo -k $KVER -F firmware | sort -u | while read FW; do for f in "$ROOTFS"/lib/firmware/$FW "$ROOTFS"/lib/firmware/$FW.xz "$ROOTFS"/lib/firmware/$FW.zst; do if ! [ -e "$f" ]; then continue fi install -pD "$f" "$MODLOOP/modules/firmware/${f#*/lib/firmware}" # copy also all potentially associated files f=${f%.zst} f=${f%.xz} for _file in "${f%.*}".*; do install -pD "$_file" "$MODLOOP/modules/firmware/${_file#*/lib/firmware/}" done done done # install extra firmware files in modloop (i.e. not detected by modinfo) for _xfw in $modloopfw; do if [ -f "$ROOTFS/lib/firmware/$_xfw" ]; then install -pD "$ROOTFS/lib/firmware/$_xfw" \ "$MODLOOP"/modules/firmware/"$_xfw" else echo "Warning: extra firmware \"$_xfw\" not found!" fi done # wireless regulatory db if [ -e "$ROOTFS"/lib/modules/*/kernel/net/wireless/cfg80211.ko* ]; then _apk add --no-scripts wireless-regdb for _regdb in "$ROOTFS"/lib/firmware/regulatory.db*; do [ -e "$_regdb" ] && install -pD "$_regdb" "$MODLOOP"/modules/firmware/"${_regdb##*/}" done fi # include bluetooth firmware in modloop if [ -e "$ROOTFS"/lib/modules/*/kernel/drivers/bluetooth/btbcm.ko* ]; then for _btfw in "$ROOTFS"/lib/firmware/brcm/*.hcd*; do install -pD "$_btfw" \ "$MODLOOP"/modules/firmware/brcm/"${_btfw##*/}" done fi case $ARCH in armhf) mksfs="-Xbcj arm" ;; armv7|aarch64) mksfs="-Xbcj arm,armthumb" ;; x86|x86_64) mksfs="-Xbcj x86" ;; *) mksfs= esac mksquashfs $MODLOOP "$STAGING/$MODIMG" $MKSQUASHFS_OPTS -comp xz -exit-on-error $mksfs if [ -n "$MODLOOPSIGN" ]; then sign_modloop "$STAGING/$MODIMG" MKINITFS_ARGS="$MKINITFS_ARGS -s $tmpdir/$MODLOOPSIG" fi $MOCK mkinitfs $MKINITFS_ARGS -q -b $ROOTFS -F "$features base squashfs" \ -o "$STAGING/initramfs-$FLAVOR" "$KVER" for file in System.map config vmlinuz; do cp "$BOOT/$file-$KVER" "$STAGING" 2>/dev/null \ || cp "$BOOT/$file-$FLAVOR" "$STAGING" 2>/dev/null \ || cp "$BOOT/$file" "$STAGING" 2>/dev/null \ || { echo "Failed to copy $file-$KVER, $file-$FLAVOR or $file" >&2; exit 1; } done if [ "$MNTDIR" ]; then ignore_sigs umount /.modloop remount -w fi mkdir -p "$DESTDIR"/${MEDIA:+boot/} mv $STAGING/* "$DESTDIR"/${MEDIA:+boot/} if [ -d "$DTBDIR" ]; then _opwd=$PWD case "$MEDIA,$FLAVOR" in yes,rpi*) _dtb="$DESTDIR/" ;; yes,*) _dtb="$DESTDIR/boot/dtbs-$FLAVOR" ;; *,*) _dtb="$DESTDIR/dtbs/dtbs-$FLAVOR" ;; esac mkdir -p "$_dtb" _dtb=$(realpath "$_dtb") cd "$DTBDIR" find -type f \( -name "*.dtb" -o -name "*.dtbo" \) | cpio -pudm "$_dtb" 2> /dev/null cd "$_opwd" fi if [ "$MNTDIR" ]; then set +e sync remount -r mount -o loop "$DESTDIR/$MODIMG" /.modloop fi exit 0 -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1yHJxQgsHQREclQu4Ohe qxTxd1tHcNnvnQTu/UrTky8wWvgXT+jpveroeWWnzmsYlDI93eLI2ORakxb3gA2O Q0Ry4ws8vhaxLQGC74uQR5+/yYrLuTKydFzuPaS1dK19qJPXB8GMdmFOijnXX4SA jixuHLe1WW7kZVtjL7nufvpXkWBGjsfrvskdNA/5MfxAeBbqPgaq0QMEfxMAn6/R L5kNepi/Vr4S39Xvf2DzWkTLEK8pcnjNkt9/aafhWqFVW7m3HCAII6h/qlQNQKSo GuH34Q8GsFG30izUENV9avY7hSLq7nggsvknlNBZtFUcmGoQrtx3FmyYsIC8/R+B ywIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvNijDxJ8kloskKQpJdx+ mTMVFFUGDoDCbulnhZMJoKNkSuZOzBoFC94omYPtxnIcBdWBGnrm6ncbKRlR+6oy DO0W7c44uHKCFGFqBhDasdI4RCYP+fcIX/lyMh6MLbOxqS22TwSLhCVjTyJeeH7K aA7vqk+QSsF4TGbYzQDDpg7+6aAcNzg6InNePaywA6hbT0JXbxnDWsB+2/LLSF2G mnhJlJrWB1WGjkz23ONIWk85W4S0XB/ewDefd4Ly/zyIciastA7Zqnh7p3Ody6Q0 sS2MJzo7p3os1smGjUF158s6m/JbVh4DN6YIsxwl2OjDOz9R0OycfJSDaBVIGZzg cQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr8s1q88XpuJWLCZALdKj lN8wg2ePB2T9aIcaxryYE/Jkmtu+ZQ5zKq6BT3y/udt5jAsMrhHTwroOjIsF9DeG e8Y3vjz+Hh4L8a7hZDaw8jy3CPag47L7nsZFwQOIo2Cl1SnzUc6/owoyjRU7ab0p iWG5HK8IfiybRbZxnEbNAfT4R53hyI6z5FhyXGS2Ld8zCoU/R4E1P0CUuXKEN4p0 64dyeUoOLXEWHjgKiU1mElIQj3k/IF02W89gDj285YgwqA49deLUM7QOd53QLnx+ xrIrPv3A+eyXMFgexNwCKQU9ZdmWa00MjjHlegSGK8Y2NPnRoXhzqSP9T9i2HiXL VQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwlzMkl7b5PBdfMzGdCT0 cGloRr5xGgVmsdq5EtJvFkFAiN8Ac9MCFy/vAFmS8/7ZaGOXoCDWbYVLTLOO2qtX yHRl+7fJVh2N6qrDDFPmdgCi8NaE+3rITWXGrrQ1spJ0B6HIzTDNEjRKnD4xyg4j g01FMcJTU6E+V2JBY45CKN9dWr1JDM/nei/Pf0byBJlMp/mSSfjodykmz4Oe13xB Ca1WTwgFykKYthoLGYrmo+LKIGpMoeEbY1kuUe04UiDe47l6Oggwnl+8XD1MeRWY sWgj8sF4dTcSfCMavK4zHRFFQbGp/YFJ/Ww6U9lA3Vq0wyEI6MCMQnoSMFwrbgZw wwIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3v8/ye/V/t5xf4JiXLXa hWFRozsnmn3hobON20GdmkrzKzO/eUqPOKTpg2GtvBhK30fu5oY5uN2ORiv2Y2ht eLiZ9HVz3XP8Fm9frha60B7KNu66FO5P2o3i+E+DWTPqqPcCG6t4Znk2BypILcit wiPKTsgbBQR2qo/cO01eLLdt6oOzAaF94NH0656kvRewdo6HG4urbO46tCAizvCR CA7KGFMyad8WdKkTjxh8YLDLoOCtoZmXmQAiwfRe9pKXRH/XXGop8SYptLqyVVQ+ tegOD9wRs2tOlgcLx4F/uMzHN7uoho6okBPiifRX+Pf38Vx+ozXh056tjmdZkCaV aQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoSPnuAGKtRIS5fEgYPXD 8pSGvKAmIv3A08LBViDUe+YwhilSHbYXUEAcSH1KZvOo1WT1x2FNEPBEFEFU1Eyc +qGzbA03UFgBNvArurHQ5Z/GngGqE7IarSQFSoqewYRtFSfp+TL9CUNBvM0rT7vz 2eMu3/wWG+CBmb92lkmyWwC1WSWFKO3x8w+Br2IFWvAZqHRt8oiG5QtYvcZL6jym Y8T6sgdDlj+Y+wWaLHs9Fc+7vBuyK9C4O1ORdMPW15qVSl4Lc2Wu1QVwRiKnmA+c DsH/m7kDNRHM7TjWnuj+nrBOKAHzYquiu5iB3Qmx+0gwnrSVf27Arc3ozUmmJbLj zQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvBxJN9ErBgdRcPr5g4hV qyUSGZEKuvQliq2Z9SRHLh2J43+EdB6A+yzVvLnzcHVpBJ+BZ9RV30EM9guck9sh r+bryZcRHyjG2wiIEoduxF2a8KeWeQH7QlpwGhuobo1+gA8L0AGImiA6UP3LOirl I0G2+iaKZowME8/tydww4jx5vG132JCOScMjTalRsYZYJcjFbebQQolpqRaGB4iG WqhytWQGWuKiB1A22wjmIYf3t96l1Mp+FmM2URPxD1gk/BIBnX7ew+2gWppXOK9j 1BJpo0/HaX5XoZ/uMqISAAtgHZAqq+g3IUPouxTphgYQRTRYpz2COw3NF43VYQrR bQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXEJ8uVwJPODshTkf2BH pH5fVVDppOa974+IQJsZDmGd3Ny0dcd+WwYUhNFUW3bAfc3/egaMWCaprfaHn+oS 4ddbOFgbX8JCHdru/QMAAU0aEWSMybfJGA569c38fNUF/puX6XK/y0lD2SS3YQ/a oJ5jb5eNrQGR1HHMAd0G9WC4JeZ6WkVTkrcOw55F00aUPGEjejreXBerhTyFdabo dSfc1TILWIYD742Lkm82UBOPsOSdSfOdsMOOkSXxhdCJuCQQ70DHkw7Epy9r+X33 ybI4r1cARcV75OviyhD8CFhAlapLKaYnRFqFxlA515e6h8i8ih/v3MSEW17cCK0b QwIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwR4uJVtJOnOFGchnMW5Y j5/waBdG1u5BTMlH+iQMcV5+VgWhmpZHJCBz3ocD+0IGk2I68S5TDOHec/GSC0lv 6R9o6F7h429GmgPgVKQsc8mPTPtbjJMuLLs4xKc+viCplXc0Nc0ZoHmCH4da6fCV tdpHQjVe6F9zjdquZ4RjV6R6JTiN9v924dGMAkbW/xXmamtz51FzondKC52Gh8Mo /oA0/T0KsCMCi7tb4QNQUYrf+Xcha9uus4ww1kWNZyfXJB87a2kORLiWMfs2IBBJ TmZ2Fnk0JnHDb8Oknxd9PvJPT0mvyT8DA+KIAPqNvOjUXP4bnjEHJcoCP9S5HkGC IQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAutQkua2CAig4VFSJ7v54 ALyu/J1WB3oni7qwCZD3veURw7HxpNAj9hR+S5N/pNeZgubQvJWyaPuQDm7PTs1+ tFGiYNfAsiibX6Rv0wci3M+z2XEVAeR9Vzg6v4qoofDyoTbovn2LztaNEjTkB+oK tlvpNhg1zhou0jDVYFniEXvzjckxswHVb8cT0OMTKHALyLPrPOJzVtM9C1ew2Nnc 3848xLiApMu3NBk0JqfcS3Bo5Y2b1FRVBvdt+2gFoKZix1MnZdAEZ8xQzL/a0YS5 Hd0wj5+EEKHfOd3A75uPa/WQmA+o0cBFfrzm69QDcSJSwGpzWrD1ScH3AK8nWvoj v7e9gukK/9yl1b4fQQ00vttwJPSgm9EnfPHLAtgXkRloI27H6/PuLoNvSAMQwuCD hQRlyGLPBETKkHeodfLoULjhDi1K2gKJTMhtbnUcAA7nEphkMhPWkBpgFdrH+5z4 Lxy+3ek0cqcI7K68EtrffU8jtUj9LFTUC8dERaIBs7NgQ/LfDbDfGh9g6qVj1hZl k9aaIPTm/xsi8v3u+0qaq7KzIBc9s59JOoA8TlpOaYdVgSQhHHLBaahOuAigH+VI isbC9vmqsThF2QdDtQt37keuqoda2E6sL7PUvIyVXDRfwX7uMDjlzTxHTymvq2Ck htBqojBnThmjJQFgZXocHG8CAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlEyxkHggKCXC2Wf5Mzx4 nZLFZvU2bgcA3exfNPO/g1YunKfQY+Jg4fr6tJUUTZ3XZUrhmLNWvpvSwDS19ZmC IXOu0+V94aNgnhMsk9rr59I8qcbsQGIBoHzuAl8NzZCgdbEXkiY90w1skUw8J57z qCsMBydAueMXuWqF5nGtYbi5vHwK42PffpiZ7G5Kjwn8nYMW5IZdL6ZnMEVJUWC9 I4waeKg0yskczYDmZUEAtrn3laX9677ToCpiKrvmZYjlGl0BaGp3cxggP2xaDbUq qfFxWNgvUAb3pXD09JM6Mt6HSIJaFc9vQbrKB9KT515y763j5CC2KUsilszKi3mB HYe5PoebdjS7D1Oh+tRqfegU2IImzSwW3iwA7PJvefFuc/kNIijfS/gH/cAqAK6z bhdOtE/zc7TtqW2Wn5Y03jIZdtm12CxSxwgtCF1NPyEWyIxAQUX9ACb3M0FAZ61n fpPrvwTaIIxxZ01L3IzPLpbc44x/DhJIEU+iDt6IMTrHOphD9MCG4631eIdB0H1b 6zbNX1CXTsafqHRFV9XmYYIeOMggmd90s3xIbEujA6HKNP/gwzO6CDJ+nHFDEqoF SkxRdTkEqjTjVKieURW7Swv7zpfu5PrsrrkyGnsRrBJJzXlm2FOOxnbI2iSL1B5F rO5kbUxFeZUIDq+7Yv4kLWcCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnC+bR4bHf/L6QdU4puhQ gl1MHePszRC38bzvVFDUJsmCaMCL2suCs2A2yxAgGb9pu9AJYLAmxQC4mM3jNqhg /E7yuaBbek3O02zN/ctvflJ250wZCy+z0ZGIp1ak6pu1j14IwHokl9j36zNfGtfv ADVOcdpWITFFlPqwq1qt/H3UsKVmtiF3BNWWTeUEQwKvlU8ymxgS99yn0+4OPyNT L3EUeS+NQJtDS01unau0t7LnjUXn+XIneWny8bIYOQCuVR6s/gpIGuhBaUqwaJOw 7jkJZYF2Ij7uPb4b5/R3vX2FfxxqEHqssFSg8FFUNTZz3qNZs0CRVyfA972g9WkJ hPfn31pQYil4QGRibCMIeU27YAEjXoqfJKEPh4UWMQsQLrEfdGfb8VgwrPbniGfU L3jKJR3VAafL9330iawzVQDlIlwGl6u77gEXMl9K0pfazunYhAp+BMP+9ot5ckK+ osmrqj11qMESsAj083GeFdfV3pXEIwUytaB0AKEht9DbqUfiE/oeZ/LAXgySMtVC sbC4ESmgVeY2xSBIJdDyUap7FR49GGrw0W49NUv9gRgQtGGaNVQQO9oGL2PBC41P iWF9GLoX30HIz1P8PF/cZvicSSPkQf2Z6TV+t0ebdGNS5DjapdnCrq8m9Z0pyKsQ uxAL2a7zX8l5i1CZh1ycUGsCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0MfCDrhODRCIxR9Dep1s eXafh5CE5BrF4WbCgCsevyPIdvTeyIaW4vmO3bbG4VzhogDZju+R3IQYFuhoXP5v Y+zYJGnwrgz3r5wYAvPnLEs1+dtDKYOgJXQj+wLJBW1mzRDL8FoRXOe5iRmn1EFS wZ1DoUvyu7/J5r0itKicZp3QKED6YoilXed+1vnS4Sk0mzN4smuMR9eO1mMCqNp9 9KTfRDHTbakIHwasECCXCp50uXdoW6ig/xUAFanpm9LtK6jctNDbXDhQmgvAaLXZ LvFqoaYJ/CvWkyYCgL6qxvMvVmPoRv7OPcyni4xR/WgWa0MSaEWjgPx3+yj9fiMA 1S02pFWFDOr5OUF/O4YhFJvUCOtVsUPPfA/Lj6faL0h5QI9mQhy5Zb9TTaS9jB6p Lw7u0dJlrjFedk8KTJdFCcaGYHP6kNPnOxMylcB/5WcztXZVQD5WpCicGNBxCGMm W64SgrV7M07gQfL/32QLsdqPUf0i8hoVD8wfQ3EpbQzv6Fk1Cn90bZqZafg8XWGY wddhkXk7egrr23Djv37V2okjzdqoyLBYBxMz63qQzFoAVv5VoY2NDTbXYUYytOvG GJ1afYDRVWrExCech1mX5ZVUB1br6WM+psFLJFoBFl6mDmiYt0vMYBddKISsvwLl IJQkzDwtXzT2cSjoj3T5QekCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvaaoSLab+IluixwKV5Od 0gib2YurjPatGIbn5Ov2DLUFYiebj2oJINXJSwUOO+4WcuHFEqiL/1rya+k5hLZt hnPL1tn6QD4rESznvGSasRCQNT2vS/oyZbTYJRyAtFkEYLlq0t3S3xBxxHWuvIf0 qVxVNYpQWyM3N9RIeYBR/euXKJXileSHk/uq1I5wTC0XBIHWcthczGN0m9wBEiWS 0m3cnPk4q0Ea8mUJ91Rqob19qETz6VbSPYYpZk3qOycjKosuwcuzoMpwU8KRiMFd 5LHtX0Hx85ghGsWDVtS0c0+aJa4lOMGvJCAOvDfqvODv7gKlCXUpgumGpLdTmaZ8 1RwqspAe3IqBcdKTqRD4m2mSg23nVx2FAY3cjFvZQtfooT7q1ItRV5RgH6FhQSl7 +6YIMJ1Bf8AAlLdRLpg+doOUGcEn+pkDiHFgI8ylH1LKyFKw+eXaAml/7DaWZk1d dqggwhXOhc/UUZFQuQQ8A8zpA13PcbC05XxN2hyP93tCEtyynMLVPtrRwDnHxFKa qKzs3rMDXPSXRn3ZZTdKH3069ApkEjQdpcwUh+EmJ1Ve/5cdtzT6kKWCjKBFZP/s 91MlRrX2BTRdHaU5QJkUheUtakwxuHrdah2F94lRmsnQlpPr2YseJu6sIE+Dnx4M CfhdVbQL2w54R645nlnohu8CAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0BFD1D4lIxQcsqEpQzU pNCYM3aP1V/fxxVdT4DWvSI53JHTwHQamKdMWtEXetWVbP5zSROniYKFXd/xrD9X 0jiGHey3lEtylXRIPxe5s+wXoCmNLcJVnvTcDtwx/ne2NLHxp76lyc25At+6RgE6 ADjLVuoD7M4IFDkAsd8UQ8zM0Dww9SylIk/wgV3ZkifecvgUQRagrNUdUjR56EBZ raQrev4hhzOgwelT0kXCu3snbUuNY/lU53CoTzfBJ5UfEJ5pMw1ij6X0r5S9IVsy KLWH1hiO0NzU2c8ViUYCly4Fe9xMTFc6u2dy/dxf6FwERfGzETQxqZvSfrRX+GLj /QZAXiPg5178hT/m0Y3z5IGenIC/80Z9NCi+byF1WuJlzKjDcF/TU72zk0+PNM/H Kuppf3JT4DyjiVzNC5YoWJT2QRMS9KLP5iKCSThwVceEEg5HfhQBRT9M6KIcFLSs mFjx9kNEEmc1E8hl5IR3+3Ry8G5/bTIIruz14jgeY9u5jhL8Vyyvo41jgt9sLHR1 /J1TxKfkgksYev7PoX6/ZzJ1ksWKZY5NFoDXTNYUgzFUTOoEaOg3BAQKadb3Qbbq XIrxmPBdgrn9QI7NCgfnAY3Tb4EEjs3ON/BNyEhUENcXOH6I1NbcuBQ7g9P73kE4 VORdoc8MdJ5eoKBpO8Ww8HECAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyduVzi1mWm+lYo2Tqt/0 XkCIWrDNP1QBMVPrE0/ZlU2bCGSoo2Z9FHQKz/mTyMRlhNqTfhJ5qU3U9XlyGOPJ piM+b91g26pnpXJ2Q2kOypSgOMOPA4cQ42PkHBEqhuzssfj9t7x47ppS94bboh46 xLSDRff/NAbtwTpvhStV3URYkxFG++cKGGa5MPXBrxIp+iZf9GnuxVdST5PGiVGP ODL/b69sPJQNbJHVquqUTOh5Ry8uuD2WZuXfKf7/C0jC/ie9m2+0CttNu9tMciGM EyKG1/Xhk5iIWO43m4SrrT2WkFlcZ1z2JSf9Pjm4C2+HovYpihwwdM/OdP8Xmsnr DzVB4YvQiW+IHBjStHVuyiZWc+JsgEPJzisNY0Wyc/kNyNtqVKpX6dRhMLanLmy+ f53cCSI05KPQAcGj6tdL+D60uKDkt+FsDa0BTAobZ31OsFVid0vCXtsbplNhW1IF HwsGXBTVcfXg44RLyL8Lk/2dQxDHNHzAUslJXzPxaHBLmt++2COa2EI1iWlvtznk Ok9WP8SOAIj+xdqoiHcC4j72BOVVgiITIJNHrbppZCq6qPR+fgXmXa+sDcGh30m6 9Wpbr28kLMSHiENCWTdsFij+NQTd5S47H7XTROHnalYDuF1RpS+DpQidT5tUimaT JZDr++FjKrnnijbyNF8b98UCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnpUpyWDWjlUk3smlWeA0 lIMW+oJ38t92CRLHH3IqRhyECBRW0d0aRGtq7TY8PmxjjvBZrxTNDpJT6KUk4LRm a6A6IuAI7QnNK8SJqM0DLzlpygd7GJf8ZL9SoHSH+gFsYF67Cpooz/YDqWrlN7Vw tO00s0B+eXy+PCXYU7VSfuWFGK8TGEv6HfGMALLjhqMManyvfp8hz3ubN1rK3c8C US/ilRh1qckdbtPvoDPhSbTDmfU1g/EfRSIEXBrIMLg9ka/XB9PvWRrekrppnQzP hP9YE3x/wbFc5QqQWiRCYyQl/rgIMOXvIxhkfe8H5n1Et4VAorkpEAXdsfN8KSVv LSMazVlLp9GYq5SUpqYX3KnxdWBgN7BJoZ4sltsTpHQ/34SXWfu3UmyUveWj7wp0 x9hwsPirVI00EEea9AbP7NM2rAyu6ukcm4m6ATd2DZJIViq2es6m60AE6SMCmrQF wmk4H/kdQgeAELVfGOm2VyJ3z69fQuywz7xu27S6zTKi05Qlnohxol4wVb6OB7qG LPRtK9ObgzRo/OPumyXqlzAi/Yvyd1ZQk8labZps3e16bQp8+pVPiumWioMFJDWV GZjCmyMSU8V6MB6njbgLHoyg2LCukCAeSjbPGGGYhnKLm1AKSoJh3IpZuqcKCk5C 8CM1S15HxV78s9dFntEqIokCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtfB12w4ZgqsXWZDfUAV/ 6Y4aHUKIu3q4SXrNZ7CXF9nXoAVYrS7NAxJdAodsY3vPCN0g5O8DFXR+390LdOuQ +HsGKCc1k5tX5ZXld37EZNTNSbR0k+NKhd9h6X3u6wqPOx7SIKxwAQR8qeeFq4pP rt9GAGlxtuYgzIIcKJPwE0dZlcBCg+GnptCUZXp/38BP1eYC+xTXSL6Muq1etYfg odXdb7Yl+2h1IHuOwo5rjgY5kpY7GcAs8AjGk3lDD/av60OTYccknH0NCVSmPoXK vrxDBOn0LQRNBLcAfnTKgHrzy0Q5h4TNkkyTgxkoQw5ObDk9nnabTxql732yy9BY s+hM9+dSFO1HKeVXreYSA2n1ndF18YAvAumzgyqzB7I4pMHXq1kC/8bONMJxwSkS Ym6CoXKyavp7RqGMyeVpRC7tV+blkrrUml0BwNkxE+XnwDRB3xDV6hqgWe0XrifD YTfvd9ScZQP83ip0r4IKlq4GMv/R5shcCRJSkSZ6QSGshH40JYSoiwJf5FHbj9ND 7do0UAqebWo4yNx63j/wb2ULorW3AClv0BCFSdPsIrCStiGdpgJDBR2P2NZOCob3 G9uMj+wJD6JJg2nWqNJxkANXX37Qf8plgzssrhrgOvB0fjjS7GYhfkfmZTJ0wPOw A8+KzFseBh4UFGgue78KwgkCAwEAAQ== -----END PUBLIC KEY----- 3.21.1 Welcome to Alpine Linux 3.21 Kernel \r on an \m (\l) https://secdb.alpinelinux.org/v3.21/main.json https://secdb.alpinelinux.org/v3.21/community.json NAME="Alpine Linux" ID=alpine VERSION_ID=3.21.1 PRETTY_NAME="Alpine Linux v3.21" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" # This file specifies the Certificate Transparency logs # that are to be trusted. # Google's list of logs can be found here: # www.certificate-transparency.org/known-logs # A Python program to convert the log list to OpenSSL's format can be # found here: # https://github.com/google/certificate-transparency/blob/master/python/utilities/log_list/print_log_list.py # Use the "--openssl_output" flag. # This file specifies the Certificate Transparency logs # that are to be trusted. # Google's list of logs can be found here: # www.certificate-transparency.org/known-logs # A Python program to convert the log list to OpenSSL's format can be # found here: # https://github.com/google/certificate-transparency/blob/master/python/utilities/log_list/print_log_list.py # Use the "--openssl_output" flag. # # OpenSSL example configuration file. # See doc/man5/config.pod for more info. # # This is mostly being used for generation of certificate requests, # but may be used for auto loading of providers # Note that you can include other files from the main configuration # file using the .include directive. #.include filename # This definition stops the following lines choking if HOME isn't # defined. HOME = . # Use this in order to automatically load providers. openssl_conf = openssl_init # Comment out the next line to ignore configuration errors config_diagnostics = 1 # Extra OBJECT IDENTIFIER info: # oid_file = $ENV::HOME/.oid oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca', 'req' and 'ts'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 # Policies used by the TSA examples. tsa_policy1 = 1.2.3.4.1 tsa_policy2 = 1.2.3.4.5.6 tsa_policy3 = 1.2.3.4.5.7 # For FIPS # Optionally include a file that is generated by the OpenSSL fipsinstall # application. This file contains configuration data required by the OpenSSL # fips provider. It contains a named section e.g. [fips_sect] which is # referenced from the [provider_sect] below. # Refer to the OpenSSL security policy for more information. # .include fipsmodule.cnf [openssl_init] providers = provider_sect # List of providers to load [provider_sect] default = default_sect # The fips section name should match the section name inside the # included fipsmodule.cnf. # fips = fips_sect # If no providers are activated explicitly, the default one is activated implicitly. # See man 7 OSSL_PROVIDER-default for more details. # # If you add a section explicitly activating any other provider(s), you most # probably need to explicitly activate the default provider, otherwise it # becomes unavailable in openssl. As a consequence applications depending on # OpenSSL may not work correctly which could lead to significant system # problems including inability to remotely access the system. [default_sect] # activate = 1 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = ./demoCA # Where everything is kept certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. #unique_subject = no # Set to 'no' to allow creation of # several certs with same subject. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate serial = $dir/serial # The current serial number crlnumber = $dir/crlnumber # the current crl number # must be commented out to leave a V1 CRL crl = $dir/crl.pem # The current CRL private_key = $dir/private/cakey.pem # The private key x509_extensions = usr_cert # The extensions to add to the cert # Comment out the following two lines for the "traditional" # (and highly broken) format. name_opt = ca_default # Subject Name options cert_opt = ca_default # Certificate field options # Extension copying option: use with caution. # copy_extensions = copy # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crlnumber must also be commented out to leave a V1 CRL. # crl_extensions = crl_ext default_days = 365 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = default # use public key default MD preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_match # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### [ req ] default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extensions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString (PKIX recommendation before 2004) # utf8only: only UTF8Strings (PKIX recommendation after 2004). # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. # WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. string_mask = utf8only # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = AU countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Some-State localityName = Locality Name (eg, city) 0.organizationName = Organization Name (eg, company) 0.organizationName_default = Internet Widgits Pty Ltd # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (e.g. server FQDN or YOUR name) commonName_max = 64 emailAddress = Email Address emailAddress_max = 64 # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # An alternative to produce certificates that aren't # deprecated according to PKIX. # subjectAltName=email:move # Copy subject details # issuerAltName=issuer:copy # This is required for TSA certificates. # extendedKeyUsage = critical,timeStamping [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer basicConstraints = critical,CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always [ proxy_cert_ext ] # These extensions should be added when creating a proxy certificate # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # An alternative to produce certificates that aren't # deprecated according to PKIX. # subjectAltName=email:move # Copy subject details # issuerAltName=issuer:copy # This really needs to be in place for it to be a proxy certificate. proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo #################################################################### [ tsa ] default_tsa = tsa_config1 # the default TSA section [ tsa_config1 ] # These are used by the TSA reply generation only. dir = ./demoCA # TSA root directory serial = $dir/tsaserial # The current serial number (mandatory) crypto_device = builtin # OpenSSL engine to use for signing signer_cert = $dir/tsacert.pem # The TSA signing certificate # (optional) certs = $dir/cacert.pem # Certificate chain to include in reply # (optional) signer_key = $dir/private/tsakey.pem # The TSA private key (optional) signer_digest = sha256 # Signing digest to use. (Optional) default_policy = tsa_policy1 # Policy if request did not specify it # (optional) other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory) accuracy = secs:1, millisecs:500, microsecs:100 # (optional) clock_precision_digits = 0 # number of digits after dot. (optional) ordering = yes # Is ordering defined for timestamps? # (optional, default: no) tsa_name = yes # Must the TSA name be included in the reply? # (optional, default: no) ess_cert_id_chain = no # Must the ESS cert id chain be included? # (optional, default: no) ess_cert_id_alg = sha256 # algorithm to compute certificate # identifier (optional, default: sha256) [insta] # CMP using Insta Demo CA # Message transfer server = pki.certificate.fi:8700 # proxy = # set this as far as needed, e.g., http://192.168.1.1:8080 # tls_use = 0 path = pkix/ # Server authentication recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer ignore_keyusage = 1 # potentially needed quirk unprotected_errors = 1 # potentially needed quirk extracertsout = insta.extracerts.pem # Client authentication ref = 3078 # user identification secret = pass:insta # can be used for both client and server side # Generic message options cmd = ir # default operation, can be overridden on cmd line with, e.g., kur # Certificate enrollment subject = "/CN=openssl-cmp-test" newkey = insta.priv.pem out_trusted = apps/insta.ca.crt # does not include keyUsage digitalSignature certout = insta.cert.pem [pbm] # Password-based protection for Insta CA # Server and client authentication ref = $insta::ref # 3078 secret = $insta::secret # pass:insta [signature] # Signature-based protection for Insta CA # Server authentication trusted = $insta::out_trusted # apps/insta.ca.crt # Client authentication secret = # disable PBM key = $insta::newkey # insta.priv.pem cert = $insta::certout # insta.cert.pem [ir] cmd = ir [cr] cmd = cr [kur] # Certificate update cmd = kur oldcert = $insta::certout # insta.cert.pem [rr] # Certificate revocation cmd = rr oldcert = $insta::certout # insta.cert.pem # # OpenSSL example configuration file. # See doc/man5/config.pod for more info. # # This is mostly being used for generation of certificate requests, # but may be used for auto loading of providers # Note that you can include other files from the main configuration # file using the .include directive. #.include filename # This definition stops the following lines choking if HOME isn't # defined. HOME = . # Use this in order to automatically load providers. openssl_conf = openssl_init # Comment out the next line to ignore configuration errors config_diagnostics = 1 # Extra OBJECT IDENTIFIER info: # oid_file = $ENV::HOME/.oid oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca', 'req' and 'ts'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 # Policies used by the TSA examples. tsa_policy1 = 1.2.3.4.1 tsa_policy2 = 1.2.3.4.5.6 tsa_policy3 = 1.2.3.4.5.7 # For FIPS # Optionally include a file that is generated by the OpenSSL fipsinstall # application. This file contains configuration data required by the OpenSSL # fips provider. It contains a named section e.g. [fips_sect] which is # referenced from the [provider_sect] below. # Refer to the OpenSSL security policy for more information. # .include fipsmodule.cnf [openssl_init] providers = provider_sect # List of providers to load [provider_sect] default = default_sect # The fips section name should match the section name inside the # included fipsmodule.cnf. # fips = fips_sect # If no providers are activated explicitly, the default one is activated implicitly. # See man 7 OSSL_PROVIDER-default for more details. # # If you add a section explicitly activating any other provider(s), you most # probably need to explicitly activate the default provider, otherwise it # becomes unavailable in openssl. As a consequence applications depending on # OpenSSL may not work correctly which could lead to significant system # problems including inability to remotely access the system. [default_sect] # activate = 1 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = ./demoCA # Where everything is kept certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. #unique_subject = no # Set to 'no' to allow creation of # several certs with same subject. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate serial = $dir/serial # The current serial number crlnumber = $dir/crlnumber # the current crl number # must be commented out to leave a V1 CRL crl = $dir/crl.pem # The current CRL private_key = $dir/private/cakey.pem # The private key x509_extensions = usr_cert # The extensions to add to the cert # Comment out the following two lines for the "traditional" # (and highly broken) format. name_opt = ca_default # Subject Name options cert_opt = ca_default # Certificate field options # Extension copying option: use with caution. # copy_extensions = copy # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crlnumber must also be commented out to leave a V1 CRL. # crl_extensions = crl_ext default_days = 365 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = default # use public key default MD preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_match # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### [ req ] default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extensions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString (PKIX recommendation before 2004) # utf8only: only UTF8Strings (PKIX recommendation after 2004). # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. # WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. string_mask = utf8only # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = AU countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Some-State localityName = Locality Name (eg, city) 0.organizationName = Organization Name (eg, company) 0.organizationName_default = Internet Widgits Pty Ltd # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (e.g. server FQDN or YOUR name) commonName_max = 64 emailAddress = Email Address emailAddress_max = 64 # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # An alternative to produce certificates that aren't # deprecated according to PKIX. # subjectAltName=email:move # Copy subject details # issuerAltName=issuer:copy # This is required for TSA certificates. # extendedKeyUsage = critical,timeStamping [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer basicConstraints = critical,CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always [ proxy_cert_ext ] # These extensions should be added when creating a proxy certificate # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # An alternative to produce certificates that aren't # deprecated according to PKIX. # subjectAltName=email:move # Copy subject details # issuerAltName=issuer:copy # This really needs to be in place for it to be a proxy certificate. proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo #################################################################### [ tsa ] default_tsa = tsa_config1 # the default TSA section [ tsa_config1 ] # These are used by the TSA reply generation only. dir = ./demoCA # TSA root directory serial = $dir/tsaserial # The current serial number (mandatory) crypto_device = builtin # OpenSSL engine to use for signing signer_cert = $dir/tsacert.pem # The TSA signing certificate # (optional) certs = $dir/cacert.pem # Certificate chain to include in reply # (optional) signer_key = $dir/private/tsakey.pem # The TSA private key (optional) signer_digest = sha256 # Signing digest to use. (Optional) default_policy = tsa_policy1 # Policy if request did not specify it # (optional) other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory) accuracy = secs:1, millisecs:500, microsecs:100 # (optional) clock_precision_digits = 0 # number of digits after dot. (optional) ordering = yes # Is ordering defined for timestamps? # (optional, default: no) tsa_name = yes # Must the TSA name be included in the reply? # (optional, default: no) ess_cert_id_chain = no # Must the ESS cert id chain be included? # (optional, default: no) ess_cert_id_alg = sha256 # algorithm to compute certificate # identifier (optional, default: sha256) [insta] # CMP using Insta Demo CA # Message transfer server = pki.certificate.fi:8700 # proxy = # set this as far as needed, e.g., http://192.168.1.1:8080 # tls_use = 0 path = pkix/ # Server authentication recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer ignore_keyusage = 1 # potentially needed quirk unprotected_errors = 1 # potentially needed quirk extracertsout = insta.extracerts.pem # Client authentication ref = 3078 # user identification secret = pass:insta # can be used for both client and server side # Generic message options cmd = ir # default operation, can be overridden on cmd line with, e.g., kur # Certificate enrollment subject = "/CN=openssl-cmp-test" newkey = insta.priv.pem out_trusted = apps/insta.ca.crt # does not include keyUsage digitalSignature certout = insta.cert.pem [pbm] # Password-based protection for Insta CA # Server and client authentication ref = $insta::ref # 3078 secret = $insta::secret # pass:insta [signature] # Signature-based protection for Insta CA # Server authentication trusted = $insta::out_trusted # apps/insta.ca.crt # Client authentication secret = # disable PBM key = $insta::newkey # insta.priv.pem cert = $insta::certout # insta.cert.pem [ir] cmd = ir [cr] cmd = cr [kur] # Certificate update cmd = kur oldcert = $insta::certout # insta.cert.pem [rr] # Certificate revocation cmd = rr oldcert = $insta::certout # insta.cert.pem #!/bin/sh poweroff # enter the cron options CRON_OPTS="-c /etc/crontabs" KLOGD_OPTS="" # Absolut path to the keymap which should be loaded using loadkmap. #KEYMAP="/usr/share/keymaps/xkb/us.map.gz" # By default ntpd runs as a client. Add -l to run as a server on port 123. NTPD_OPTS="-N -p pool.ntp.org" # Set the ntp server here NTP_HOST=pool.ntp.org SYSLOGD_OPTS="-t" #WATCHDOG_OPTS="-t 30" WATCHDOG_DEV="" #!/sbin/openrc-run name="busybox acpid" command="/sbin/acpid" command_args="$ACPID_OPTS -f" pidfile="/run/acpid.pid" command_background=true start_stop_daemon_args="-g wheel -k 027" depend() { need dev localmount after hwdrivers modules keyword -vserver -lxc } #!/sbin/openrc-run name="busybox $RC_SVCNAME" command="/usr/sbin/$SVCNAME" pidfile="/run/$RC_SVCNAME.pid" command_args="$CRON_OPTS -f" command_background=true depend() { need localmount need logger } #!/sbin/openrc-run name="busybox klogd" command="/sbin/klogd" command_args="${KLOGD_OPTS} -n" command_user="klogd" pidfile="/run/klogd.pid" command_background=true capabilities="^cap_syslog" depend() { need clock hostname localmount logger before net keyword -vserver -lxc } #!/sbin/openrc-run description="Applies a keymap for the consoles." depend() { provide keymaps need localmount keyword -openvz -prefix -uml -vserver -xenu -lxc } start() { [ -z "$KEYMAP" ] && return ebegin "Setting keymap" zcat "$KEYMAP" | loadkmap eend $? } stop() { return } #!/sbin/openrc-run name="busybox $RC_SVCNAME" command="/usr/sbin/$RC_SVCNAME" command_args="${NTPD_OPTS:--N -p pool.ntp.org} -n" command_user="ntp" pidfile="/run/$SVCNAME.pid" command_background=true capabilities="^cap_sys_time,^cap_net_bind_service" depend() { need net provide ntp-client use dns } #!/sbin/openrc-run depend() { need net after firewall keyword -vserver -lxc } start() { if [ -z "$NTP_HOST" ] ; then eerror "Please set NTP_HOST in /etc/conf.d/rdate" return 1 fi ebegin "Running busybox rdate" rdate "$NTP_HOST" eend $? } #!/sbin/openrc-run description="Message logging system" name="busybox syslog" command="/sbin/syslogd" command_args="${SYSLOGD_OPTS} -n" pidfile="/run/syslogd.pid" command_background=true start_stop_daemon_args="-g wheel -k 027" depend() { need clock hostname localmount provide logger } #!/sbin/openrc-run name="busybox watchdog" command="/sbin/watchdog" command_args="${WATCHDOG_OPTS} -F ${WATCHDOG_DEV}" pidfile="/run/watchdog.pid" command_background=true depend() { need dev after hwdrivers } start_pre() { if ! [ -n "$WATCHDOG_DEV" ]; then eerror "WATCHDOG_DEV is not set" return 1 fi } #!/bin/sh scan_dirs() { scanelf -qS "$@" | while read SONAME FILE; do TARGET="${FILE##*/}" LINK="${FILE%/*}/$SONAME" case "$FILE" in /lib/*|/usr/lib/*|/usr/local/lib/*) ;; *) [ -h "$LINK" -o ! -e "$LINK" ] && ln -sf "$TARGET" "$LINK" esac done return 0 } # eat ldconfig options while getopts "nNvXvf:C:r:" opt; do : done shift $(( $OPTIND - 1 )) [ $# -gt 0 ] && scan_dirs "$@" #!/bin/sh exec /lib/ld-musl-aarch64.so.1 --list "$@" # This is an example /etc/pkcs11/pkcs11.conf file. Copy it into # place before use. # This setting controls whether to load user configuration from the # ~/.config/pkcs11 directory. Possible values: # none: No user configuration # merge: Merge the user config over the system configuration (default) # only: Only user configuration, ignore system configuration user-config: merge #!/bin/sh # This script is a placeholder designed to be replaced when this software # has been customized for distribution. It should be symlinked linked to the # distribution's update-ca-certificates or update-ca-trust command as # appropriate. In the future this script will be called when the PKCS#11 # trust module is used to modify trust anchors and related data. if [ $# -ne 0 ]; then echo "usage: trust extract-compat" >&2 exit 2 fi uid=$(id -u) if [ "$uid" != 0 ]; then echo "trust: running as non-root user: skip extracting compat bundles" >&2 exit 0 fi echo "trust: the placeholder extract-compat command has not been customized by your distribution." >&2 # You can use commands like this to extract data from trust modules # into appropriate locations for your distribution. # # trust extract --format=openssl-bundle --filter=ca-anchors \ # --overwrite /tmp/openssl-bundle.pem # trust extract --format=pem-bundle --filter=ca-anchors --overwrite \ # --purpose server-auth /tmp/server-auth-bundle.pem # trust extract --format=java-cacerts --filter=ca-anchors --overwrite \ # --purpose server-auth /tmp/cacerts exit 1 # default config pool pool.ntp.org iburst initstepslew 10 pool.ntp.org driftfile /var/lib/chrony/chrony.drift rtcsync cmdport 0 /var/log/chrony/*.log { missingok nocreate sharedscripts postrotate /usr/bin/chronyc cyclelogs > /dev/null 2>&1 || true endscript } # /etc/conf.d/chronyd CFGFILE="/etc/chrony/chrony.conf" # chronyd takes some time to perform a second fork, by enabling this # option chronyd is deamonized through start-stop-daemon(1) thereby # significantly reducing the startup time. FAST_STARTUP=no # Configuration dependant options : # -s - Set system time from RTC if rtcfile directive present # -r - Reload sample histories if dumponexit directive present # # The combination of "-s -r" allows chronyd to perform long term averaging of # the gain or loss rate across system reboots and shutdowns. ARGS="" # vrf e.g 'vrf-mgmt' #vrf="" #!/sbin/openrc-run command="/usr/sbin/chronyd" description="NTP daemon" pidfile="/run/chrony/chronyd.pid" required_files="$CFGFILE" command_args="-f $CFGFILE $ARGS" depend() { need net after firewall provide ntp-client ntp-server use dns } start() { if [ -c /dev/rtc ]; then grep -q '^rtcfile' "${CFGFILE}" && command_args="$command_args -s" fi grep -q '^dumponexit$' "${CFGFILE}" && command_args="$command_args -r" if yesno "$FAST_STARTUP"; then # this option makes it stay in foreground and let openrc do the tracking, # so we have to set pidfile to a dir that exists earlier. # the reason this is not the default is because there is no 'readiness', # self-backgrounding chrony waits for time to sync before continuing, # and this form does not. command_args="$command_args -n" command_background=true pidfile=/run/chronyd.pid fi default_start } # A sample configuration for dhcpcd. # See dhcpcd.conf(5) for details. # Allow users of this group to interact with dhcpcd via the control socket. #controlgroup wheel # Inform the DHCP server of our hostname for DDNS. #hostname # Use the hardware address of the interface for the Client ID. #clientid # or # Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361. # Some non-RFC compliant DHCP servers do not reply with this set. # In this case, comment out duid and enable clientid above. duid # Persist interface configuration when dhcpcd exits. persistent # vendorclassid is set to blank to avoid sending the default of # dhcpcd-::: vendorclassid # A list of options to request from the DHCP server. option domain_name_servers, domain_name, domain_search option classless_static_routes # Respect the network MTU. This is applied to DHCP routes. option interface_mtu # Request a hostname from the network option host_name # Most distributions have NTP support. #option ntp_servers # Rapid commit support. # Safe to enable by default because it requires the equivalent option set # on the server to actually work. option rapid_commit # A ServerID is required by RFC2131. require dhcp_server_identifier # Generate SLAAC address using the Hardware Address of the interface #slaac hwaddr # OR generate Stable Private IPv6 Addresses based from the DUID slaac private # Echo the interface flags, reason and message options if [ "$reason" = "TEST" ]; then # General variables at the top set | while read line; do case "$line" in interface=*|pid=*|reason=*|protocol=*|profile=*|skip_hooks=*) echo "$line";; esac done # Interface flags set | while read line; do case "$line" in ifcarrier=*|ifflags=*|ifmetric=*|ifmtu=*|ifwireless=*|ifssid=*) echo "$line";; esac done # Old lease set | while read line; do case "$line" in old_*) echo "$line";; esac done # New lease set | while read line; do case "$line" in new_*) echo "$line";; esac done # Router Advertisements set | while read line; do case "$line" in nd[0-9]*_*) echo "$line";; esac done exit 0 fi # Generate /etc/resolv.conf # Support resolvconf(8) if available # We can merge other dhcpcd resolv.conf files into one like resolvconf, # but resolvconf is preferred as other applications like VPN clients # can readily hook into it. # Also, resolvconf can configure local nameservers such as bind # or dnsmasq. This is important as the libc resolver isn't that powerful. resolv_conf_dir="$state_dir/resolv.conf" nocarrier_roaming_dir="$state_dir/roaming" NL=" " : ${resolvconf:=resolvconf} if command -v "$resolvconf" >/dev/null 2>&1; then have_resolvconf=true else have_resolvconf=false fi build_resolv_conf() { cf="$state_dir/resolv.conf.$ifname" # Build a list of interfaces interfaces=$(list_interfaces "$resolv_conf_dir") # Build the resolv.conf header= if [ -n "$interfaces" ]; then # Build the header for x in ${interfaces}; do header="$header${header:+, }$x" done # Build the search list domain=$(cd "$resolv_conf_dir"; \ key_get_value "domain " ${interfaces}) search=$(cd "$resolv_conf_dir"; \ key_get_value "search " ${interfaces}) set -- ${domain} domain="$1" [ -n "$2" ] && search="$search $*" [ -n "$search" ] && search="$(uniqify $search)" [ "$domain" = "$search" ] && search= [ -n "$domain" ] && domain="domain $domain$NL" [ -n "$search" ] && search="search $search$NL" # Build the nameserver list srvs=$(cd "$resolv_conf_dir"; \ key_get_value "nameserver " ${interfaces}) for x in $(uniqify $srvs); do servers="${servers}nameserver $x$NL" done fi header="$signature_base${header:+ $from }$header" # Assemble resolv.conf using our head and tail files [ -f "$cf" ] && rm -f "$cf" [ -d "$resolv_conf_dir" ] || mkdir -p "$resolv_conf_dir" echo "$header" > "$cf" if [ -f /etc/resolv.conf.head ]; then cat /etc/resolv.conf.head >> "$cf" else echo "# /etc/resolv.conf.head can replace this line" >> "$cf" fi printf %s "$domain$search$servers" >> "$cf" if [ -f /etc/resolv.conf.tail ]; then cat /etc/resolv.conf.tail >> "$cf" else echo "# /etc/resolv.conf.tail can replace this line" >> "$cf" fi if change_file /etc/resolv.conf "$cf"; then chmod 644 /etc/resolv.conf fi rm -f "$cf" } # Extract any ND DNS options from the RA # Obey the lifetimes eval_nd_dns() { eval rdnsstime=\$nd${i}_rdnss${j}_lifetime [ -z "$rdnsstime" ] && return 1 ltime=$(($rdnsstime - $offset)) if [ "$ltime" -gt 0 ]; then eval rdnss=\$nd${i}_rdnss${j}_servers [ -n "$rdnss" ] && new_rdnss="$new_rdnss${new_rdnss:+ }$rdnss" fi eval dnssltime=\$nd${i}_dnssl${j}_lifetime [ -z "$dnssltime" ] && return 1 ltime=$(($dnssltime - $offset)) if [ "$ltime" -gt 0 ]; then eval dnssl=\$nd${i}_dnssl${j}_search [ -n "$dnssl" ] && new_dnssl="$new_dnssl${new_dnssl:+ }$dnssl" fi j=$(($j + 1)) return 0 } add_resolv_conf() { conf="$signature$NL" warn=true # Loop to extract the ND DNS options using our indexed shell values i=1 j=1 while true; do eval acquired=\$nd${i}_acquired [ -z "$acquired" ] && break eval now=\$nd${i}_now [ -z "$now" ] && break offset=$(($now - $acquired)) while true; do eval_nd_dns || break done i=$(($i + 1)) j=1 done [ -n "$new_rdnss" ] && \ new_domain_name_servers="$new_domain_name_servers${new_domain_name_servers:+ }$new_rdnss" [ -n "$new_dnssl" ] && \ new_domain_search="$new_domain_search${new_domain_search:+ }$new_dnssl" # Derive a new domain from our various hostname options if [ -z "$new_domain_name" ]; then if [ "$new_dhcp6_fqdn" != "${new_dhcp6_fqdn#*.}" ]; then new_domain_name="${new_dhcp6_fqdn#*.}" elif [ "$new_fqdn" != "${new_fqdn#*.}" ]; then new_domain_name="${new_fqdn#*.}" elif [ "$new_host_name" != "${new_host_name#*.}" ]; then new_domain_name="${new_host_name#*.}" fi fi # If we don't have any configuration, remove it if [ -z "$new_domain_name_servers" ] && [ -z "$new_domain_name" ] && [ -z "$new_domain_search" ]; then remove_resolv_conf return $? fi if [ -n "$new_domain_name" ]; then set -- $new_domain_name if valid_domainname "$1"; then conf="${conf}domain $1$NL" else syslog err "Invalid domain name: $1" fi # If there is no search this, make this one if [ -z "$new_domain_search" ]; then new_domain_search="$new_domain_name" [ "$new_domain_name" = "$1" ] && warn=true fi fi if [ -n "$new_domain_search" ]; then new_domain_search=$(uniqify $new_domain_search) if valid_domainname_list $new_domain_search; then conf="${conf}search $new_domain_search$NL" elif ! $warn; then syslog err "Invalid domain name in list:" \ "$new_domain_search" fi fi new_domain_name_servers=$(uniqify $new_domain_name_servers) for x in ${new_domain_name_servers}; do conf="${conf}nameserver $x$NL" done if $have_resolvconf; then [ -n "$ifmetric" ] && export IF_METRIC="$ifmetric" printf %s "$conf" | "$resolvconf" -a "$ifname" return $? fi if [ -e "$resolv_conf_dir/$ifname" ]; then rm -f "$resolv_conf_dir/$ifname" fi [ -d "$resolv_conf_dir" ] || mkdir -p "$resolv_conf_dir" printf %s "$conf" > "$resolv_conf_dir/$ifname" build_resolv_conf } remove_resolv_conf() { if $have_resolvconf; then "$resolvconf" -d "$ifname" -f else if [ -e "$resolv_conf_dir/$ifname" ]; then rm -f "$resolv_conf_dir/$ifname" fi build_resolv_conf fi } # For ease of use, map DHCP6 names onto our DHCP4 names case "$reason" in BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6) new_domain_name_servers="$new_dhcp6_name_servers" new_domain_search="$new_dhcp6_domain_search" ;; esac if $if_configured; then if $have_resolvconf && [ "$reason" = NOCARRIER_ROAMING ]; then # avoid calling resolvconf -c on CARRIER unless we roam mkdir -p "$nocarrier_roaming_dir" echo " " >"$nocarrier_roaming_dir/$interface" "$resolvconf" -C "$interface.*" elif $have_resolvconf && [ "$reason" = CARRIER ]; then # Not all resolvconf implementations support -c if [ -e "$nocarrier_roaming_dir/$interface" ]; then rm -f "$nocarrier_roaming_dir/$interface" "$resolvconf" -c "$interface.*" fi elif $if_up || [ "$reason" = ROUTERADVERT ]; then add_resolv_conf elif $if_down; then remove_resolv_conf fi fi # Set the hostname from DHCP data if required # A hostname can either be a short hostname or a FQDN. # hostname_fqdn=true # hostname_fqdn=false # hostname_fqdn=server # A value of server means just what the server says, don't manipulate it. # This could lead to an inconsistent hostname on a DHCPv4 and DHCPv6 network # where the DHCPv4 hostname is short and the DHCPv6 has an FQDN. # DHCPv6 has no hostname option. # RFC4702 section 3.1 says FQDN should be prefered over hostname. # # As such, the default is hostname_fqdn=true so that a consistent hostname # is always assigned. : ${hostname_fqdn:=true} # If we used to set the hostname, but relinquish control of it, we should # reset to the default value. : ${hostname_default=(none)} # Some systems don't have hostname(1) _hostname() { if [ -z "${1+x}" ]; then if [ -r /proc/sys/kernel/hostname ]; then read name /dev/null 2>/dev/null; then hostname elif sysctl kern.hostname >/dev/null 2>&1; then sysctl -n kern.hostname elif sysctl kernel.hostname >/dev/null 2>&1; then sysctl -n kernel.hostname else return 1 fi return $? fi if [ -w /proc/sys/kernel/hostname ]; then echo "$1" >/proc/sys/kernel/hostname elif [ -n "$1" ] && command -v hostname >/dev/null 2>&1; then hostname "$1" elif sysctl kern.hostname >/dev/null 2>&1; then sysctl -w "kern.hostname=$1" >/dev/null elif sysctl kernel.hostname >/dev/null 2>&1; then sysctl -w "kernel.hostname=$1" >/dev/null else # May fail to set a blank hostname hostname "$1" fi } is_default_hostname() { case "$1" in ""|"$hostname_default"|localhost|localhost.localdomain) return 0;; esac return 1 } need_hostname() { # Always load the hostname variable for future use hostname="$(_hostname)" is_default_hostname "$hostname" && return 0 case "$force_hostname" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|1) return 0;; esac if [ -n "$old_fqdn" ]; then if ${hfqdn} || ! ${hshort}; then [ "$hostname" = "$old_fqdn" ] else [ "$hostname" = "${old_fqdn%%.*}" ] fi elif [ -n "$old_host_name" ]; then if ${hfqdn}; then if [ -n "$old_domain_name" ] && [ "$old_host_name" = "${old_host_name#*.}" ] then [ "$hostname" = \ "$old_host_name.$old_domain_name" ] else [ "$hostname" = "$old_host_name" ] fi elif ${hshort}; then [ "$hostname" = "${old_host_name%%.*}" ] else [ "$hostname" = "$old_host_name" ] fi else # No old hostname false fi } try_hostname() { [ "$hostname" = "$1" ] && return 0 if valid_domainname "$1"; then syslog info "Setting hostname: $1" _hostname "$1" else syslog err "Invalid hostname: $1" fi } set_hostname() { hfqdn=false hshort=false case "$hostname_fqdn" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|1) hfqdn=true;; ""|[Ss][Ee][Rr][Vv][Ee][Rr]) ;; *) hshort=true;; esac need_hostname || return 0 if [ -n "$new_fqdn" ]; then if ${hfqdn} || ! ${hshort}; then try_hostname "$new_fqdn" else try_hostname "${new_fqdn%%.*}" fi elif [ -n "$new_host_name" ]; then if ${hfqdn}; then if [ -n "$new_domain_name" ] && [ "$new_host_name" = "${new_host_name#*.}" ] then try_hostname "$new_host_name.$new_domain_name" else try_hostname "$new_host_name" fi elif ${hshort}; then try_hostname "${new_host_name%%.*}" else try_hostname "$new_host_name" fi elif ! is_default_hostname "$hostname"; then try_hostname "$hostname_default" fi } # For ease of use, map DHCP6 names onto our DHCP4 names case "$reason" in BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6) new_fqdn="$new_dhcp6_fqdn" old_fqdn="$old_dhcp6_fqdn" ;; esac if $if_configured && $if_up && [ "$reason" != ROUTERADVERT ]; then set_hostname fi # Sample dhcpcd hook script for NTP # It will configure either one of NTP, OpenNTP or Chrony (in that order) # and will default to NTP if no default config is found. # Like our resolv.conf hook script, we store a database of ntp.conf files # and merge into /etc/ntp.conf # You can set the env var NTP_CONF to override the derived default on # systems with >1 NTP client installed. # Here is an example for OpenNTP # dhcpcd -e NTP_CONF=/usr/pkg/etc/ntpd.conf # or by adding this to /etc/dhcpcd.conf # env NTP_CONF=/usr/pkg/etc/ntpd.conf # or by adding this to /etc/dhcpcd.enter-hook # NTP_CONF=/usr/pkg/etc/ntpd.conf # To use Chrony instead, simply change ntpd.conf to chrony.conf in the # above examples. : ${ntp_confs:=ntp.conf ntpd.conf chrony.conf} : ${ntp_conf_dirs=/etc /etc/chrony /usr/pkg/etc /usr/local/etc} ntp_conf_dir="$state_dir/ntp.conf" # If NTP_CONF is not set, work out a good default if [ -z "$NTP_CONF" ]; then for d in ${ntp_conf_dirs}; do for f in ${ntp_confs}; do if [ -e "$d/$f" ]; then NTP_CONF="$d/$f" break 2 fi done done [ -e "$NTP_CONF" ] || NTP_CONF=/etc/ntp.conf fi # Derive service name from configuration if [ -z "$ntp_service" ]; then case "$NTP_CONF" in *chrony.conf) ntp_service=chronyd;; *) ntp_service=ntpd;; esac fi # Debian has a separate file for DHCP config to avoid stamping on # the master. if [ "$ntp_service" = ntpd ] && command -v invoke-rc.d >/dev/null 2>&1; then [ -e /var/lib/ntp ] || mkdir /var/lib/ntp : ${ntp_service:=ntp} : ${NTP_DHCP_CONF:=/var/lib/ntp/ntp.conf.dhcp} fi : ${ntp_restart_cmd:=service_condcommand $ntp_service restart} ntp_conf=${NTP_CONF} NL=" " build_ntp_conf() { cf="$state_dir/ntp.conf.$ifname" # Build a list of interfaces interfaces=$(list_interfaces "$ntp_conf_dir") header= servers= if [ -n "$interfaces" ]; then # Build the header for x in ${interfaces}; do header="$header${header:+, }$x" done # Build a server list srvs=$(cd "$ntp_conf_dir"; key_get_value "server " $interfaces) if [ -n "$srvs" ]; then for x in $(uniqify $srvs); do servers="${servers}server $x$NL" done fi fi # Merge our config into ntp.conf [ -e "$cf" ] && rm -f "$cf" [ -d "$ntp_conf_dir" ] || mkdir -p "$ntp_conf_dir" if [ -n "$NTP_DHCP_CONF" ]; then [ -e "$ntp_conf" ] && cp "$ntp_conf" "$cf" ntp_conf="$NTP_DHCP_CONF" elif [ -e "$ntp_conf" ]; then remove_markers "$signature_base" "$signature_base_end" \ "$ntp_conf" > "$cf" fi if [ -n "$servers" ]; then echo "$signature_base${header:+ $from }$header" >> "$cf" printf %s "$servers" >> "$cf" echo "$signature_base_end${header:+ $from }$header" >> "$cf" else [ -e "$ntp_conf" ] && [ -e "$cf" ] || return fi # If we changed anything, restart ntpd if change_file "$ntp_conf" "$cf"; then [ -n "$ntp_restart_cmd" ] && eval $ntp_restart_cmd fi } add_ntp_conf() { cf="$ntp_conf_dir/$ifname" [ -e "$cf" ] && rm "$cf" [ -d "$ntp_conf_dir" ] || mkdir -p "$ntp_conf_dir" if [ -n "$new_ntp_servers" ]; then for x in $(uniqify $new_ntp_servers); do echo "server $x" >> "$cf" done fi build_ntp_conf } remove_ntp_conf() { if [ -e "$ntp_conf_dir/$ifname" ]; then rm "$ntp_conf_dir/$ifname" fi build_ntp_conf } # For ease of use, map DHCP6 names onto our DHCP4 names case "$reason" in BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6) new_ntp_servers="$new_dhcp6_sntp_servers $new_dhcp6_ntp_server_addr $new_dhcp6_ntp_server_fqdn" ;; esac if $if_configured; then if $if_up; then add_ntp_conf elif $if_down; then remove_ntp_conf fi fi #!/bin/sh # dhcpcd client configuration script # Handy variables and functions for our hooks to use ifname="$interface${protocol+.}$protocol" from=from signature_base="# Generated by dhcpcd" signature="$signature_base $from $ifname" signature_base_end="# End of dhcpcd" signature_end="$signature_base_end $from $ifname" state_dir=/run/dhcpcd/hook-state _detected_init=false : ${if_up:=false} : ${if_down:=false} : ${syslog_debug:=false} # Ensure that all arguments are unique uniqify() { result= for i do case " $result " in *" $i "*);; *) result="$result${result:+ }$i";; esac done echo "$result" } # List interface config files in a directory. # If dhcpcd is running as a single instance then it will have a list of # interfaces in the preferred order. # Otherwise we just use what we have. list_interfaces() { ifaces= for i in $interface_order; do for x in "$1"/$i.*; do [ -f "$x" ] && ifaces="$ifaces${ifaces:+ }${x##*/}" done done for x in "$1"/*; do [ -f "$x" ] && ifaces="$ifaces${ifaces:+ }${x##*/}" done uniqify $ifaces } # Trim function trim() { var="$*" var=${var#"${var%%[![:space:]]*}"} var=${var%"${var##*[![:space:]]}"} if [ -z "$var" ]; then # So it seems our shell doesn't support wctype(3) patterns # Fall back to sed var=$(echo "$*" | sed -e 's/^[[:space:]]*//;s/[[:space:]]*$//') fi printf %s "$var" } # We normally use sed to extract values using a key from a list of files # but sed may not always be available at the time. key_get_value() { key="$1" shift if command -v sed >/dev/null 2>&1; then sed -n "s/^$key//p" $@ else for x do while read line; do case "$line" in "$key"*) echo "${line##$key}";; esac done < "$x" done fi } # We normally use sed to remove markers from a configuration file # but sed may not always be available at the time. remove_markers() { m1="$1" m2="$2" in_marker=0 shift; shift if command -v sed >/dev/null 2>&1; then sed "/^$m1/,/^$m2/d" $@ else for x do while read line; do case "$line" in "$m1"*) in_marker=1;; "$m2"*) in_marker=0;; *) [ $in_marker = 0 ] && echo "$line";; esac done < "$x" done fi } # Compare two files. comp_file() { [ -e "$1" ] && [ -e "$2" ] || return 1 if command -v cmp >/dev/null 2>&1; then cmp -s "$1" "$2" elif command -v diff >/dev/null 2>&1; then diff -q "$1" "$2" >/dev/null else # Hopefully we're only working on small text files ... [ "$(cat "$1")" = "$(cat "$2")" ] fi } # Compare two files. # If different, replace first with second otherwise remove second. change_file() { if [ -e "$1" ]; then if comp_file "$1" "$2"; then rm -f "$2" return 1 fi fi cat "$2" > "$1" rm -f "$2" return 0 } # Compare two files. # If different, copy or link depending on target type copy_file() { if [ -h "$2" ]; then [ "$(readlink "$2")" = "$1" ] && return 1 ln -sf "$1" "$2" else comp_file "$1" "$2" && return 1 cat "$1" >"$2" fi } # Save a config file save_conf() { if [ -f "$1" ]; then rm -f "$1-pre.$interface" cat "$1" > "$1-pre.$interface" fi } # Restore a config file restore_conf() { [ -f "$1-pre.$interface" ] || return 1 cat "$1-pre.$interface" > "$1" rm -f "$1-pre.$interface" } # Write a syslog entry syslog() { lvl="$1" if [ "$lvl" = debug ]; then ${syslog_debug} || return 0 fi [ -n "$lvl" ] && shift [ -n "$*" ] || return 0 case "$lvl" in err|error) echo "$interface: $*" >&2;; *) echo "$interface: $*";; esac if command -v logger >/dev/null 2>&1; then logger -p daemon."$lvl" -t dhcpcd-run-hooks "$interface: $*" fi } # Check for a valid name as per RFC952 and RFC1123 section 2.1 valid_domainname() { name="$1" [ -z "$name" ] || [ ${#name} -gt 255 ] && return 1 while [ -n "$name" ]; do label="${name%%.*}" [ -z "$label" ] || [ ${#label} -gt 63 ] && return 1 case "$label" in -*|_*|*-|*_) return 1;; *[![:alnum:]_-]*) return 1;; "$name") return 0;; esac name="${name#*.}" done return 0 } valid_domainname_list() { for name do valid_domainname "$name" || return $? done return 0 } # With the advent of alternative init systems, it's possible to have # more than one installed. So we need to try to guess what one we're # using unless overridden by configure. detect_init() { _service_exists="" _service_cmd="" _service_status="" [ -n "$_service_cmd" ] && return 0 if $_detected_init; then [ -n "$_service_cmd" ] return $? fi # Detect the running init system. # As systemd and OpenRC can be installed on top of legacy init # systems we try to detect them first. status="" : ${status:=status} if [ -x /bin/systemctl ] && [ -S /run/systemd/private ]; then _service_exists="/bin/systemctl --quiet is-enabled \$1.service" _service_status="/bin/systemctl --quiet is-active \$1.service" _service_cmd="/bin/systemctl \$2 --no-block \$1.service" elif [ -x /usr/bin/systemctl ] && [ -S /run/systemd/private ]; then _service_exists="/usr/bin/systemctl --quiet is-enabled \$1.service" _service_status="/usr/bin/systemctl --quiet is-active \$1.service" _service_cmd="/usr/bin/systemctl \$2 --no-block \$1.service" elif [ -x /sbin/rc-service ] && { [ -s /libexec/rc/init.d/softlevel ] || [ -s /run/openrc/softlevel ]; } then _service_exists="/sbin/rc-service -e \$1" _service_cmd="/sbin/rc-service \$1 -- -D \$2" elif [ -x /usr/sbin/invoke-rc.d ]; then _service_exists="/usr/sbin/invoke-rc.d --query --quiet \$1 start >/dev/null 2>&1 || [ \$? = 104 ]" _service_cmd="/usr/sbin/invoke-rc.d \$1 \$2" elif [ -x /sbin/service ]; then _service_exists="/sbin/service \$1 >/dev/null 2>&1" _service_cmd="/sbin/service \$1 \$2" elif [ -x /usr/sbin/service ]; then _service_exists="/usr/sbin/service \$1 $status >/dev/null 2>&1" _service_cmd="/usr/sbin/service \$1 \$2" elif [ -x /bin/sv ]; then _service_exists="/bin/sv status \$1 >/dev/null 2>&1" _service_cmd="/bin/sv \$2 \$1" elif [ -x /usr/bin/sv ]; then _service_exists="/usr/bin/sv status \$1 >/dev/null 2>&1" _service_cmd="/usr/bin/sv \$2 \$1" elif [ -e /etc/slackware-version ] && [ -d /etc/rc.d ]; then _service_exists="[ -x /etc/rc.d/rc.\$1 ]" _service_cmd="/etc/rc.d/rc.\$1 \$2" _service_status="/etc/rc.d/rc.\$1 status >/dev/null 2>&1" else for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do if [ -d $x ]; then _service_exists="[ -x $x/\$1 ]" _service_cmd="$x/\$1 \$2" _service_status="$x/\$1 $status >/dev/null 2>&1" break fi done if [ -e /etc/arch-release ]; then _service_status="[ -e /var/run/daemons/\$1 ]" elif [ "$x" = "/etc/rc.d" ] && [ -e /etc/rc.d/rc.subr ]; then _service_status="$x/\$1 check >/dev/null 2>&1" fi fi _detected_init=true if [ -z "$_service_cmd" ]; then syslog err "could not detect a useable init system" return 1 fi return 0 } # Check a system service exists service_exists() { if [ -z "$_service_exists" ]; then detect_init || return 1 fi eval $_service_exists } # Send a command to a system service service_cmd() { if [ -z "$_service_cmd" ]; then detect_init || return 1 fi eval $_service_cmd } # Send a command to a system service if it is running service_status() { if [ -z "$_service_cmd" ]; then detect_init || return 1 fi if [ -n "$_service_status" ]; then eval $_service_status else service_command $1 status >/dev/null 2>&1 fi } # Handy macros for our hooks service_command() { service_exists $1 && service_cmd $1 $2 } service_condcommand() { service_exists $1 && service_status $1 && service_cmd $1 $2 } # We source each script into this one so that scripts run earlier can # remove variables from the environment so later scripts don't see them. # Thus, the user can create their dhcpcd.enter/exit-hook script to configure # /etc/resolv.conf how they want and stop the system scripts ever updating it. for hook in \ /etc/dhcpcd.enter-hook \ /usr/lib/dhcpcd/dhcpcd-hooks/* \ /etc/dhcpcd.exit-hook do case "$hook" in */*~) continue;; esac for skip in $skip_hooks; do case "$hook" in */"$skip") continue 2;; */[0-9][0-9]"-$skip") continue 2;; */[0-9][0-9]"-$skip.sh") continue 2;; esac done if [ -f "$hook" ]; then . "$hook" fi done # Start, reconfigure and stop wpa_supplicant per wireless interface. # # This is only needed when using wpa_supplicant-2.5 or older, OR # when wpa_supplicant has not been built with CONFIG_MATCH_IFACE, OR # wpa_supplicant was launched without the -M flag to activate # interface matching. if [ -z "$wpa_supplicant_conf" ]; then for x in \ /etc/wpa_supplicant/wpa_supplicant-"$interface".conf \ /etc/wpa_supplicant/wpa_supplicant.conf \ /etc/wpa_supplicant-"$interface".conf \ /etc/wpa_supplicant.conf \ ; do if [ -s "$x" ]; then wpa_supplicant_conf="$x" break fi done fi : ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf} wpa_supplicant_ctrldir() { dir=$(key_get_value "[[:space:]]*ctrl_interface=" \ "$wpa_supplicant_conf") dir=$(trim "$dir") case "$dir" in DIR=*) dir=${dir##DIR=} dir=${dir%%[[:space:]]GROUP=*} dir=$(trim "$dir") ;; esac printf %s "$dir" } wpa_supplicant_start() { # If the carrier is up, don't bother checking anything [ "$ifcarrier" = "up" ] && return 0 # Pre flight checks if [ ! -s "$wpa_supplicant_conf" ]; then syslog warn \ "$wpa_supplicant_conf does not exist" syslog warn "not interacting with wpa_supplicant(8)" return 1 fi dir=$(wpa_supplicant_ctrldir) if [ -z "$dir" ]; then syslog warn \ "ctrl_interface not defined in $wpa_supplicant_conf" syslog warn "not interacting with wpa_supplicant(8)" return 1 fi wpa_cli -p "$dir" -i "$interface" status >/dev/null 2>&1 && return 0 syslog info "starting wpa_supplicant" driver=${wpa_supplicant_driver:+-D}$wpa_supplicant_driver err=$(wpa_supplicant -B -c"$wpa_supplicant_conf" -i"$interface" \ "$driver" 2>&1) errn=$? if [ $errn != 0 ]; then syslog err "failed to start wpa_supplicant" syslog err "$err" fi return $errn } wpa_supplicant_reconfigure() { dir=$(wpa_supplicant_ctrldir) [ -z "$dir" ] && return 1 if ! wpa_cli -p "$dir" -i "$interface" status >/dev/null 2>&1; then wpa_supplicant_start return $? fi syslog info "reconfiguring wpa_supplicant" err=$(wpa_cli -p "$dir" -i "$interface" reconfigure 2>&1) errn=$? if [ $errn != 0 ]; then syslog err "failed to reconfigure wpa_supplicant" syslog err "$err" fi return $errn } wpa_supplicant_stop() { dir=$(wpa_supplicant_ctrldir) [ -z "$dir" ] && return 1 wpa_cli -p "$dir" -i "$interface" status >/dev/null 2>&1 || return 0 syslog info "stopping wpa_supplicant" err=$(wpa_cli -i"$interface" terminate 2>&1) errn=$? if [ $errn != 0 ]; then syslog err "failed to stop wpa_supplicant" syslog err "$err" fi return $errn } if [ "$ifwireless" = "1" ] && \ command -v wpa_supplicant >/dev/null 2>&1 && \ command -v wpa_cli >/dev/null 2>&1 then case "$reason" in PREINIT) wpa_supplicant_start;; RECONFIGURE) wpa_supplicant_reconfigure;; DEPARTED|STOPPED) wpa_supplicant_stop;; esac fi # Configure timezone : ${localtime:=/etc/localtime} set_zoneinfo() { [ -z "$new_tzdb_timezone" ] && return 0 zoneinfo_dir= for d in \ /usr/share/zoneinfo \ /usr/lib/zoneinfo \ /var/share/zoneinfo \ /var/zoneinfo \ ; do if [ -d "$d" ]; then zoneinfo_dir="$d" break fi done if [ -z "$zoneinfo_dir" ]; then syslog warning "timezone directory not found" return 1 fi zone_file="$zoneinfo_dir/$new_tzdb_timezone" if [ ! -e "$zone_file" ]; then syslog warning "no timezone definition for $new_tzdb_timezone" return 1 fi if copy_file "$zone_file" "$localtime"; then syslog info "timezone changed to $new_tzdb_timezone" fi } # For ease of use, map DHCP6 names onto our DHCP4 names case "$reason" in BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6) new_tzdb_timezone="$new_dhcp6_tzdb_timezone" ;; esac if $if_configured && $if_up; then set_zoneinfo fi # Lookup the hostname in DNS if not set lookup_hostname() { [ -z "$new_ip_address" ] && return 1 # Silly ISC programs love to send error text to stdout if command -v dig >/dev/null 2>&1; then h=$(dig +short -x $new_ip_address) if [ $? = 0 ]; then echo "$h" | sed 's/\.$//' return 0 fi elif command -v host >/dev/null 2>&1; then h=$(host $new_ip_address) if [ $? = 0 ]; then echo "$h" \ | sed 's/.* domain name pointer \(.*\)./\1/' return 0 fi elif command -v getent >/dev/null 2>&1; then h=$(getent hosts $new_ip_address) if [ $? = 0 ]; then echo "$h" | sed 's/[^ ]* *\([^ ]*\).*/\1/' return 0 fi fi return 1 } set_hostname() { if [ -z "${new_host_name}${new_fqdn_name}" ]; then export new_host_name="$(lookup_hostname)" fi } if $if_up; then set_hostname fi # Sample dhcpcd hook for ypbind # This script is only suitable for the Linux version. ypbind_pid() { [ -s /var/run/ypbind.pid ] && cat /var/run/ypbind.pid } make_yp_conf() { [ -z "${new_nis_domain}${new_nis_servers}" ] && return 0 cf=/etc/yp.conf."$ifname" rm -f "$cf" echo "$signature" > "$cf" prefix= if [ -n "$new_nis_domain" ]; then if ! valid_domainname "$new_nis_domain"; then syslog err "Invalid NIS domain name: $new_nis_domain" rm -f "$cf" return 1 fi domainname "$new_nis_domain" if [ -n "$new_nis_servers" ]; then prefix="domain $new_nis_domain server " else echo "domain $new_nis_domain broadcast" >> "$cf" fi else prefix="ypserver " fi for x in $new_nis_servers; do echo "$prefix$x" >> "$cf" done save_conf /etc/yp.conf cat "$cf" > /etc/yp.conf rm -f "$cf" pid="$(ypbind_pid)" if [ -n "$pid" ]; then kill -HUP "$pid" fi } restore_yp_conf() { [ -n "$old_nis_domain" ] && domainname "" restore_conf /etc/yp.conf || return 0 pid="$(ypbind_pid)" if [ -n "$pid" ]; then kill -HUP "$pid" fi } if $if_configured; then if $if_up; then make_yp_conf elif $if_down; then restore_yp_conf fi fi #!/sbin/openrc-run description="DHCP Client Daemon" command="/sbin/dhcpcd" command_args="-q -B ${command_args:-}" command_background="true" pidfile="/run/dhcpcd/pid" depend() { provide net need localmount use logger network after bootmisc modules before dns } start_pre() { checkpath -d /run/dhcpcd } # See doas.conf(5) and doas.d(5) for configuration details. # Configuration here may be overridden by /etc/doas.d/*.conf if files exist. # Uncomment to allow group "wheel" to become root. # permit persist :wheel # e2scrub configuration file # Uncomment to enable automatic periodic runs of e2scrub_all # (either via cron or via a systemd timer) # periodic_e2scrub=1 # e-mail destination used by e2scrub_fail when problems are found with # the file system. # recipient=root # e-mail sender used by e2scrub_fail when problems are found with # the file system. # sender=e2scrub@host.domain.name # Snapshots will be created to run fsck; the snapshot will be of this size. # snap_size_mb=256 # Set this to 1 to enable fstrim for everyone. # fstrim=0 # Arguments passed into e2fsck. # e2fsck_opts="-vtt" # Set this to 1 to have e2scrub_all scrub all LVs, not just the mounted ones. # scrub_all=0 [defaults] base_features = sparse_super,large_file,filetype,resize_inode,dir_index,ext_attr default_mntopts = acl,user_xattr enable_periodic_fsck = 0 blocksize = 4096 inode_size = 256 inode_ratio = 16384 [fs_types] ext3 = { features = has_journal } ext4 = { features = has_journal,extent,huge_file,flex_bg,metadata_csum,metadata_csum_seed,64bit,dir_nlink,extra_isize,orphan_file } small = { blocksize = 1024 inode_ratio = 4096 } floppy = { blocksize = 1024 inode_ratio = 8192 } big = { inode_ratio = 32768 } huge = { inode_ratio = 65536 } news = { inode_ratio = 4096 } largefile = { inode_ratio = 1048576 blocksize = -1 } largefile4 = { inode_ratio = 4194304 blocksize = -1 } hurd = { blocksize = 4096 inode_size = 128 warn_y2038_dates = 0 } kernel/net/9p kernel/fs/9p kernel/drivers/block/aoe/*.ko* kernel/drivers/ata/*.ko* /bin/busybox /bin/sh /sbin/modprobe /lib/mdev /sbin/apk /etc/modprobe.d/*.conf /etc/mdev.conf /sbin/nlplug-findfs kernel/drivers/block/loop.ko* kernel/drivers/gpu/drm/tiny/simpledrm.ko* kernel/fs/overlayfs .8$,( # ,Microsoft Surface Duo 2#2microsoft,surface-duo2qcom,sm8350=handsetchosenJserial0:115200n8clocksxo-board 2fixed-clockVcI sxo_boardsleep-clk 2fixed-clockc}V(cpus cpu@0cpu2arm,cortex-a55pscipscil2-cache2cachel3-cache2cachecpu@100cpu2arm,cortex-a55pscipscil2-cache2cachecpu@200cpu2arm,cortex-a55psci pscil2-cache2cachecpu@300cpu2arm,cortex-a55psci  pscil2-cache2cache cpu@400cpu2arm,cortex-a78psci  pscil2-cache2cache cpu@500cpu2arm,cortex-a78pscipscil2-cache2cachecpu@600cpu2arm,cortex-a78pscipscil2-cache2cachecpu@700cpu2arm,cortex-x1pscipscil2-cache2cachecpu-mapcluster0core0core1core2core3core4core5core6core7idle-states#pscicpu-sleep-0-02arm,idle-state0silver-rail-power-collapse@@Whhx^cpu-sleep-1-02arm,idle-state0gold-rail-power-collapse@@Wh%xdomain-idle-statescluster-sleep-02domain-idle-state@ADW h x cluster-sleep-12domain-idle-state@ADW hx'!firmwarescm2qcom,scm-sm8350qcom,scm0memory@80000000memorypmu-a552arm,cortex-a55-pmu pmu-a782arm,cortex-a78-pmu pmu-x12arm,cortex-x1-pmu psci 2arm,psci-1.0smcpower-domain-cpu0power-domain-cpu1power-domain-cpu2 power-domain-cpu3 power-domain-cpu4 power-domain-cpu5power-domain-cpu6power-domain-cpu7power-domain-cpu-cluster0 !opp-table-qup100mhz2operating-points-v25opp-50000000"opp-75000000xh#opp-100000000$opp-table-qup120mhz2operating-points-v22opp-50000000"opp-75000000xh#opp-120000000'$reserved-memory memory@80000000`memory@80700000pmemory@80860000 2qcom,cmd-dbmemory@80880000@smem@80900000 2qcom,smem  %memory@80b00000memory@80c00000`mmeory@85200000 Pmemory@85700000pPmemory@85c00000Pmemory@86100000memory@88200000 Phmemory@89700000pmemory@8b500000PZmemory@8b510000Qmemory@8b51a000Q `memory@8b600000`memory@8b800000dmemory@9b8000002qcom,rmtfs-mem(#memory@d0000000memory@d0800000Ѐopmemory@d7ef7000pmemory@d7f00000memory@d7f80000memory@d8800000؀smp2p-adsp 2qcom,smp2p-7& K&Ramaster-kernelqmaster-kernelslave-kernel qslave-kernelsmp2p-cdsp 2qcom,smp2p-^7& K&Ramaster-kernelqmaster-kernelslave-kernel qslave-kernelsmp2p-modem 2qcom,smp2p-7& K&Ramaster-kernelqmaster-kerneleslave-kernel qslave-kernelcipa-ap-to-modemqipaYipa-modem-to-apqipaWsmp2p-slpi 2qcom,smp2p-7& K&Ramaster-kernelqmaster-kernelislave-kernel qslave-kernelgsoc@0  2simple-busclock-controller@1000002qcom,gcc-sm8350V bi_tcxosleep_clkpcie_0_pipe_clkpcie_1_pipe_clkufs_card_rx_symbol_0_clkufs_card_rx_symbol_1_clkufs_card_tx_symbol_0_clkufs_phy_rx_symbol_0_clkufs_phy_rx_symbol_1_clkufs_phy_tx_symbol_0_clkusb3_phy_wrapper_gcc_usb30_pipe_clkusb3_uni_phy_sec_gcc_usb30_pipe_clkD'()*+++,.mailbox@4080002qcom,sm8350-ipccqcom,ipcc@ &dma-controller@800000(2qcom,sm8350-gpi-dmaqcom,sm6350-gpi-dmaLMNOPQRSTUVW  - disabled0geniqup@8c00002qcom,geni-se-qup` m-ahbs-ahb.}.~ -  disabledi2c@8800002qcom,geni-i2c@se.mdefault&/ u 0005txrx  disabledspi@8800002qcom,geni-spi@se.m u1?2 0005txrx  disabledi2c@8840002qcom,geni-i2c@@se.odefault&3 G 0005txrx  disabledspi@8840002qcom,geni-spi@@se.o G1?2 0005txrx  disabledi2c@8880002qcom,geni-i2c@se.qdefault&4 H 0005txrx  disabledspi@8880002qcom,geni-spi@se.q H1?5 0005txrx  disabledi2c@88c0002qcom,geni-i2c@se.sdefault&6 I 0005txrx  disabledspi@88c0002qcom,geni-spi@se.s I1?5 0005txrx  disabledspi@8900002qcom,geni-spi@se.u J1?5 0005txrx  disabledserial@8900002qcom,geni-uart@se.udefault&7 J1?5 disabledi2c@8940002qcom,geni-i2c@@se.wdefault&8 K 0005txrx  disabledspi@8940002qcom,geni-spi@@se.w K1?5 0005txrx  disableddma-controller@900000(2qcom,sm8350-gpi-dmaqcom,sm6350-gpi-dma ~ - disabled:geniqup@9c00002qcom,geni-se-qup` m-ahbs-ahb.y.z - okayi2c@9800002qcom,geni-i2c@se.Mdefault&9 Y 0::5txrx  disabledspi@9800002qcom,geni-spi@se.M Y1?5 0::5txrx  disabledi2c@9840002qcom,geni-i2c@@se.Odefault&; Z 0::5txrx  disabledspi@9840002qcom,geni-spi@@se.O Z1?5 0::5txrx  disabledi2c@9880002qcom,geni-i2c@se.Qdefault&< [ 0::5txrx  disabledspi@9880002qcom,geni-spi@se.Q [1?5 0::5txrx  disabledserial@98c0002qcom,geni-debug-uart@se.Sdefault&= \1?5okayspi@98c0002qcom,geni-spi@se.S \1?5 0::5txrx  disabledi2c@9900002qcom,geni-i2c@se.Udefault&> ] 0::5txrx  disabledspi@9900002qcom,geni-spi@se.U ]1?5 0::5txrx  disabledi2c@9940002qcom,geni-i2c@@se.Wdefault&? ^ 0::5txrx  disabledspi@9940002qcom,geni-spi@@se.W ^1?5 0::5txrx  disabledi2c@9980002qcom,geni-i2c@se.Ydefault&@ _ 0::5txrx  disabledspi@9980002qcom,geni-spi@se.Y _1?5 0::5txrx  disabledserial@9980002qcom,geni-uart@se.Ydefault&A _1?5 disabledi2c@99c0002qcom,geni-i2c@se.[default&B ` 0::5txrx  disabledspi@99c0002qcom,geni-spi@se.[ `1?5 0::5txrx  disableddma-controller@a00000(2qcom,sm8350-gpi-dmaqcom,sm6350-gpi-dma%&'()*  -V disabledDgeniqup@ac00002qcom,geni-se-qup` m-ahbs-ahb.{.| -C okayi2c@a800002qcom,geni-i2c@se._default&C a 0DD5txrx  disabledspi@a800002qcom,geni-spi@se._ a1?2 0DD5txrx  disabledi2c@a840002qcom,geni-i2c@@se.adefault&E b 0DD5txrx  disabledspi@a840002qcom,geni-spi@@se.a b1?5 0DD5txrx  disabledi2c@a880002qcom,geni-i2c@se.cdefault&F c 0DD5txrx okayspi@a880002qcom,geni-spi@se.c c1?5 0DD5txrx  disabledi2c@a8c0002qcom,geni-i2c@se.edefault&G d 0DD5txrx okayspi@a8c0002qcom,geni-spi@se.e d1?5 0DD5txrx  disabledi2c@a900002qcom,geni-i2c@se.gdefault&H e 0DD5txrx  disabledspi@a900002qcom,geni-spi@se.g e1?5 0DD5txrx  disabledi2c@a940002qcom,geni-i2c@@se.idefault&I f 0DD5txrx  disabledspi@a940002qcom,geni-spi@@se.i f1?5 0DD5txrx  disabledrng@10d3000 2qcom,prng-ee 0'coreinterconnect@15000002qcom,sm8350-config-nocPSgJNinterconnect@15800002qcom,sm8350-mc-virtXSgJLinterconnect@16800002qcom,sm8350-system-nochSgJinterconnect@16e00002qcom,sm8350-aggre1-nocnSgJKinterconnect@17000002qcom,sm8350-aggre2-nocp0SgJVinterconnect@17400002qcom,sm8350-mmss-noctSgJupcie@1c000002qcom,pcie-sm8350P0`` ``wparfdbielbiatuconfigpci 8` `0`0`(msi0msi1msi2msi3msi4msi5msi6msi7H...0.2.6.7. .. . Fauxcfgbus_masterbus_slaveslave_q2atbuddrss_sf_tbuaggre1aggre0 --.pci.)pciephy disabledpcie@0pci phy@1c06000 2qcom,sm8350-qmp-gen3x1-pcie-phy` (...0.1.,.4auxcfg_ahbrefrchngpipe.phy.,Vspcie_0_pipe_clk( disabled)pcie@1c080002qcom,pcie-sm8350P0@@ @@wparfdbielbiatuconfigpci 8@ @0@0`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@.8.:.<.@.A. .. ?auxcfgbus_masterbus_slaveslave_q2atbuddrss_sf_tbuaggre1 --. pci.*pciephy disabledpcie@0pci phy@1c0e000 2qcom,sm8350-qmp-gen3x2-pcie-phy (.8.:.;.-.>auxcfg_ahbrefrchngpipe. phy.-Vspcie_1_pipe_clk( disabled*ufshc@1d84000+2qcom,sm8350-ufshcqcom,ufshcjedec,ufs-2.0@0  +ufsphy3.rst. -Gncore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@....'...0TKLMN+bufs-ddrcpu-ufs@uxhxhokay OP 5Q Rphy@1d870002qcom,sm8350-qmp-ufs-phyp'..refref_auxqref.RufsphyV(okayST+dma-controller@1dc4000 2qcom,bam-v1.7.4qcom,bam-v1.7.0@@ --failUcrypto@1dfa000)2qcom,sm8350-qceqcom,sm8150-qceqcom,qceߠ`0UU5rxtx--TVLbmemory disabledipa@1e400002qcom,sm8350-ipa--0K @0wipa-regipa-sharedgsi87WW(ipagsiipa-clock-queryipa-setup-ready' core0TVLMNbmemoryconfig XYY*$ipa-clock-enabled-validipa-clock-enabledokay:selfJZhwlock@1f400002qcom,tcsr-mutexX%syscon@1fc00002qcom,sm8350-tcsrsysconpinctrl@33c00002qcom,sm8350-lpass-lpi-pinctrl <U[f[g coreaudiofv\\gpu@3d000002qcom,adreno-660.1qcom,adreno0#wkgsl_3d0_reg_memorycx_memcx_dbgc ,]]?^_ disabledzap-shaderJ`opp-table2operating-points-v2^opp-8400000002bopp-778000000._Vopp-738000000+@opp-676000000(Jopp-608000000$=Xopp-540000000 /opp-491000000Dopp-443000000gopp-379000000Popp-315000000Ƅ@gmu@3d6a000&2qcom,adreno-gmu-660.1qcom,adreno-gmu0֠@ )wgmursccgmu_pdc01hfigmu8aa ..*aaa%gmucxoaximemnocahbhubsmmu_voteaacxgx ]?b_opp-table2operating-points-v2bopp-200000000 0clock-controller@3d900002qcom,sm8350-gpucc'.'.(8bi_tcxogcc_gpu_gpll0_clk_srcgcc_gpu_gpll0_div_clk_srcVaiommu@3da0000@2qcom,sm8350-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008.*.+aaaaa<busifaceahbhlos1_vote_gpu_smmucx_gmuhub_cx_inthub_aonaG]interconnect@3c400002qcom,sm8350-lpass-ag-nocSgJremoteproc@40800002qcom,sm8350-mpss-pas@@L7ccccc0wdogfatalreadyhandoverstop-ackshutdown-ack'xo11 cxmssTLLJd Xe$stopokay qcom/sm8350/microsoft/modem.mbnglink-edge7& K&modemaremoteproc@5c000002qcom,sm8350-slpi-pas@<7f gggg#wdogfatalreadyhandoverstop-ack'xo11lcxlmxJh Xi$stopokayqcom/sm8350/microsoft/slpi.mbnglink-edge7& K&slpiafastrpc 2qcom,fastrpcfastrpcglink-apps-dspsdsp compute-cb@12qcom,fastrpc-compute-cb -Acompute-cb@22qcom,fastrpc-compute-cb -Bcompute-cb@32qcom,fastrpc-compute-cb -Cmmc@8804000$2qcom,sm8350-sdhciqcom,sdhci-msm-v5@hc_irqpwr_irq..'ifacecorexo.0TV LMN$bsdhc-ddrcpu-sdhc -1?jG disabledopp-table2operating-points-v2jopp-100000000#opp-202000000 Fkphy@88e300002qcom,sm8350-usb-hs-phyqcom,usb-snps-hs-7nm-phy0okay('ref.S lmqphy@88e400002qcom,sm8250-usb-hs-phyqcom,usb-snps-hs-7nm-phy@okay('ref.S lmsregulator@88e7000:2qcom,sm8350-refgen-regulatorqcom,sm8250-refgen-regulatorpphy@88e80002qcom,sm8350-qmp-usb3-dp-phy0 .'..auxrefcom_auxusb3_pipe.. phycommonV(&okayTn,ports port@0endpointport@1endpoint9orport@2endpoint9pphy@88eb0002qcom,sm8350-qmp-usb3-uni-phy okay ....auxrefcom_auxpipesusb3_uni_phy_pipe_clk_srcV(..! phyphy_phyTStinterconnect@90c00002qcom,sm8350-dc-noc BSgJinterconnect@91000002qcom,sm8350-gem-noc  @SgJMsystem-cache-controller@92000002qcom,sm8350-llccP  ( 0 8 `@wllcc0_basellcc1_basellcc2_basellcc3_basellcc_broadcast_baseinterconnect@a0c00002qcom,sm8350-compute-noc SgJusb@a6f88002qcom,sm8350-dwc3qcom,dwc3 ookay (.....#cfg_noccoreifacesleepmock_utmi..$ D7fff<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq..0TKLMN,busb-ddrapps-usbusb@a600000 2snps,dwc3 `  -Ib q,usb2-phyusb3-phy zperipheralports port@0endpointport@1endpoint9rousb@a8f88002qcom,sm8350-dwc3qcom,dwc3 okay 0......&cfg_noccoreifacesleepmock_utmixo..$ D7f f f<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq..0TKLMN-busb-ddrapps-usbusb@a800000 2snps,dwc3   - Ibstusb2-phyusb3-phydisplay-subsystem@ae000002qcom,sm8350-mdss wmdssHTuLuLMNbmdp0-memmdp1-memcpu-cfgvv v..v ifacebusnrt_buscore S -  disabled xdisplay-controller@ae010002qcom,sm8350-dpu   wmdpvbif0..vv"v v,!busnrt_busifacelutcorevsyncv,$?w1xopp-table2operating-points-v2wopp-200000000 $opp-300000000$opp-345000000H@kopp-460000000k yports port@0endpoint9zport@1endpoint9{port@2endpoint9|~displayport-controller@ae900002qcom,sm8350-dpP     x (vv vvv;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelvv,,,dp?}1 disabledports port@0endpoint9~|port@1endpoint9popp-table2operating-points-v2}opp-160000000 h#opp-270000000߀$opp-540000000 /kopp-8100000000Gydsi@ae94000(2qcom,sm8350-dsi-ctrlqcom,mdss-dsi-ctrl @ wdsi_ctrlx0vvv$vv.$bytebyte_intfpixelcoreifacebusvv%?1  disabledopp-table2operating-points-v2opp-187500000 -$opp-300000000$opp-358000000Vkports port@0endpoint9zport@1endpointphy@ae944002qcom,sm8350-dsi-phy-5nm0 D F I|wdsi_phydsi_phy_lanedsi_pllV(v' ifaceref disableddsi@ae96000(2qcom,sm8350-dsi-ctrlqcom,mdss-dsi-ctrl ` wdsi_ctrlx0vv v&vv.$bytebyte_intfpixelcoreifacebusvv'?1  disabledopp-table2operating-points-v2opp-187500000 -$opp-300000000$opp-358000000Vkports port@0endpoint9{port@1endpointphy@ae964002qcom,sm8350-dsi-phy-5nm0 d f i|wdsi_phydsi_phy_lanedsi_pllV(v' ifaceref disabledclock-controller@af000002qcom,sm8350-dispcc 8',,bi_tcxodsi0_phy_pll_out_byteclkdsi0_phy_pll_out_dsiclkdsi1_phy_pll_out_byteclkdsi1_phy_pll_out_dsiclkdp_phy_pll_link_clkdp_phy_pll_vco_div_clkV1vinterrupt-controller@b2200002qcom,sm8350-pdcqcom,pdc "`((672;8>v@BEVF6|a? fthermal-sensor@c263000 2qcom,sm8350-tsensqcom,tsens-v2 &0 " 7ffuplowcriticalthermal-sensor@c265000 2qcom,sm8350-tsensqcom,tsens-v2 &P "07ffuplowcriticalpower-management@c300000#2qcom,sm8350-aoss-qmpqcom,aoss-qmp 07& K&VXsram@c3f00002qcom,rpmh-stats ?spmi@c4400002qcom,spmi-pmic-arbP D ``p @`wcorechnlsobsrvrintrcnfg periph_irq 7f pmic@12qcom,pm8350qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800 2qcom,pm8350-gpioqcom,spmi-gpiof vpmic@32qcom,pm8350bqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800!2qcom,pm8350b-gpioqcom,spmi-gpiofvpmic@22qcom,pm8350cqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800!2qcom,pm8350c-gpioqcom,spmi-gpiof vled-controller@ee00+2qcom,pm8350c-flash-ledqcom,spmi-flash-led disabledpwm2qcom,pm8350c-pwm disabledpmic@02qcom,pmk8350qcom,spmi-pmic pon@13002qcom,pmk8350-pon whlospbspwrkey2qcom,pmk8350-pwrkeyt disabledresin2qcom,pmk8350-resin disabledadc@31002qcom,spmi-adc71 1adc-tm@34002qcom,spmi-adc-tm5-gen244  disabledrtc@61002qcom,pmk8350-rtcab wrtcalarmb disablednvram@71002qcom,spmi-sdamq  qreboot-reason@48H!gpio@b000!2qcom,pmk8350-gpioqcom,spmi-gpiofvpmic@42qcom,pmr735aqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800!2qcom,pmr735a-gpioqcom,spmi-gpiofvpmic@52qcom,pmr735bqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800!2qcom,pmr735b-gpioqcom,spmi-gpiofvpinctrl@f1000002qcom,sm8350-tlmm0 fvO&f 4 8LOsdc2-default-stateclk-pins Isdc2_clkN]cmd-pins Isdc2_cmdNjdata-pins Isdc2_dataNjsdc2-sleep-stateclk-pins Isdc2_clkN]cmd-pins Isdc2_cmdNjdata-pins Isdc2_dataNjqup-uart3-default-state=rx-pinsIgpio18wqup3tx-pinsIgpio19wqup3qup-uart6-default-stateIgpio30gpio31wqup6N]Aqup-uart18-default-stateIgpio68gpio69wqup18N]7qup-i2c0-default-state Igpio4gpio5wqup0Nj9qup-i2c1-default-state Igpio8gpio9wqup1Nj;qup-i2c2-default-stateIgpio12gpio13wqup2Nj<qup-i2c4-default-stateIgpio20gpio21wqup4Nj>qup-i2c5-default-stateIgpio24gpio25wqup5Nj?qup-i2c6-default-stateIgpio28gpio29wqup6Nj@qup-i2c7-default-stateIgpio32gpio33wqup7N]Bqup-i2c8-default-stateIgpio36gpio37wqup8NjCqup-i2c9-default-stateIgpio40gpio41wqup9NjEqup-i2c10-default-stateIgpio44gpio45wqup10NjFqup-i2c11-default-stateIgpio48gpio49wqup11NjGqup-i2c12-default-stateIgpio52gpio53wqup12NjHqup-i2c13-default-state Igpio0gpio1wqup13NjIqup-i2c14-default-stateIgpio56gpio57wqup14N]/qup-i2c15-default-stateIgpio60gpio61wqup15N]3qup-i2c16-default-stateIgpio64gpio65wqup16N]4qup-i2c17-default-stateIgpio72gpio73wqup17N]6qup-i2c19-default-stateIgpio76gpio77wqup19N]8iommu@15000000!2qcom,sm8350-smmu-500arm,mmu-500@Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY-remoteproc@173000002qcom,sm8350-adsp-pas0<7f#wdogfatalreadyhandoverstop-ack'xo11lcxlmxJ X$stopokayqcom/sm8350/microsoft/adsp.mbnglink-edge7& K&lpassaapr 2qcom,apr-v2apr_audio_svc service@3 2qcom,q6coreavs/audiomsm/adsp/audio_pdservice@4 2qcom,q6afeavs/audiomsm/adsp/audio_pddais2qcom,q6afe-dais clock-controller2qcom,q6afe-clocksV[service@7 2qcom,q6asmavs/audiomsm/adsp/audio_pddais2qcom,q6asm-dais  -dai@0dai@1dai@2service@8 2qcom,q6admavs/audiomsm/adsp/audio_pdrouting2qcom,q6adm-routingfastrpc 2qcom,fastrpcfastrpcglink-apps-dspadsp compute-cb@32qcom,fastrpc-compute-cb -compute-cb@42qcom,fastrpc-compute-cb -compute-cb@52qcom,fastrpc-compute-cb -interrupt-controller@17a00000 2arm,gic-v3   timer@17c200002arm,armv7-timer-mem  c$frame@17c21000 frame@17c23000  0 disabledframe@17c25000  P disabledframe@17c27000  p disabledframe@17c29000   disabledframe@17c2b000  ° disabledframe@17c2d000  disabledrsc@18200000 apps_rsc2qcom,rpmh-rsc0 !"wdrv-0drv-1drv-2$  clock-controller2qcom,sm8350-rpmh-clkVxo'power-controller2qcom,sm8350-rpmhpd?1opp-table2operating-points-v2opp1opp20"opp3@#opp4$opp5kopp6yopp7@opp8Popp9opp10bcm-voter2qcom,bcm-voterJregulators-02qcom,pm8350-rpmh-regulatorsb#1?M[iw smps10 vreg_s10b_1p8 %w@ =w@smps11 vreg_s11b_0p95 % y =B@smps12 vreg_s12b_1p25 %@ =ldo1 vreg_l1b_0p88 %  =  Unldo2 vreg_l2b_3p07 %. =. Umldo3 vreg_l3b_0p9 % @ = @ Uldo5 vreg_l3b_0p9 % m =  USldo6 vreg_l6b_1p2 %O =n UTldo7 vreg_l7b_2p96 %$ =- UPldo9 vreg_l9b_1p2 %O =O UQregulators-12qcom,pm8350c-rpmh-regulatorsc#1?M[iw l ~    smps1 vreg_s1c_1p86 %w@ =smps2 vreg_s2c_0p8 %  =B@smps10 vreg_s10c_1p05 % =6@bob vreg_bob %- = ] 0::5txrx  disabledspi@9900002qcom,geni-spi@se.U ]1?5 0::5txrx  disabledi2c@9940002qcom,geni-i2c@@se.Wdefault&? ^ 0::5txrx  disabledspi@9940002qcom,geni-spi@@se.W ^1?5 0::5txrx  disabledi2c@9980002qcom,geni-i2c@se.Ydefault&@ _ 0::5txrx  disabledspi@9980002qcom,geni-spi@se.Y _1?5 0::5txrx  disabledserial@9980002qcom,geni-uart@se.Ydefault&A _1?5 disabledi2c@99c0002qcom,geni-i2c@se.[default&B ` 0::5txrx  disabledspi@99c0002qcom,geni-spi@se.[ `1?5 0::5txrx  disableddma-controller@a00000(2qcom,sm8350-gpi-dmaqcom,sm6350-gpi-dma%&'()*  -V disabledDgeniqup@ac00002qcom,geni-se-qup` m-ahbs-ahb.{.| -C  disabledi2c@a800002qcom,geni-i2c@se._default&C a 0DD5txrx  disabledspi@a800002qcom,geni-spi@se._ a1?2 0DD5txrx  disabledi2c@a840002qcom,geni-i2c@@se.adefault&E b 0DD5txrx  disabledspi@a840002qcom,geni-spi@@se.a b1?5 0DD5txrx  disabledi2c@a880002qcom,geni-i2c@se.cdefault&F c 0DD5txrx  disabledspi@a880002qcom,geni-spi@se.c c1?5 0DD5txrx  disabledi2c@a8c0002qcom,geni-i2c@se.edefault&G d 0DD5txrx  disabledspi@a8c0002qcom,geni-spi@se.e d1?5 0DD5txrx  disabledi2c@a900002qcom,geni-i2c@se.gdefault&H e 0DD5txrx  disabledspi@a900002qcom,geni-spi@se.g e1?5 0DD5txrx  disabledi2c@a940002qcom,geni-i2c@@se.idefault&I f 0DD5txrx  disabledspi@a940002qcom,geni-spi@@se.i f1?5 0DD5txrx  disabledrng@10d3000 2qcom,prng-ee 0'coreinterconnect@15000002qcom,sm8350-config-nocPSgJNinterconnect@15800002qcom,sm8350-mc-virtXSgJLinterconnect@16800002qcom,sm8350-system-nochSgJinterconnect@16e00002qcom,sm8350-aggre1-nocnSgJKinterconnect@17000002qcom,sm8350-aggre2-nocp0SgJVinterconnect@17400002qcom,sm8350-mmss-noctSgJupcie@1c000002qcom,pcie-sm8350P0`` ``wparfdbielbiatuconfigpci 8` `0`0`(msi0msi1msi2msi3msi4msi5msi6msi7H...0.2.6.7. .. . Fauxcfgbus_masterbus_slaveslave_q2atbuddrss_sf_tbuaggre1aggre0 --.pci.)pciephy disabledpcie@0pci phy@1c06000 2qcom,sm8350-qmp-gen3x1-pcie-phy` (...0.1.,.4auxcfg_ahbrefrchngpipe.phy.,Vspcie_0_pipe_clk( disabled)pcie@1c080002qcom,pcie-sm8350P0@@ @@wparfdbielbiatuconfigpci 8@ @0@0`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@.8.:.<.@.A. .. ?auxcfgbus_masterbus_slaveslave_q2atbuddrss_sf_tbuaggre1 --. pci.*pciephy disabledpcie@0pci phy@1c0e000 2qcom,sm8350-qmp-gen3x2-pcie-phy (.8.:.;.-.>auxcfg_ahbrefrchngpipe. phy.-Vspcie_1_pipe_clk( disabled*ufshc@1d84000+2qcom,sm8350-ufshcqcom,ufshcjedec,ufs-2.0@0  +ufsphy3.rst. -Gncore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@....'...0TKLMN+bufs-ddrcpu-ufs@uxhxhokay OP 5Q QRphy@1d870002qcom,sm8350-qmp-ufs-phyp'..refref_auxqref.RufsphyV(okayST+dma-controller@1dc4000 2qcom,bam-v1.7.4qcom,bam-v1.7.0@@ --failUcrypto@1dfa000)2qcom,sm8350-qceqcom,sm8150-qceqcom,qceߠ`0UU5rxtx--TVLbmemory disabledipa@1e400002qcom,sm8350-ipa--0K @0wipa-regipa-sharedgsi87WW(ipagsiipa-clock-queryipa-setup-ready' core0TVLMNbmemoryconfigX"YY*3ipa-clock-enabled-validipa-clock-enabledokayIselfYZhwlock@1f400002qcom,tcsr-mutexg%syscon@1fc00002qcom,sm8350-tcsrsysconpinctrl@33c00002qcom,sm8350-lpass-lpi-pinctrl <U[f[g coreaudiou\\gpu@3d000002qcom,adreno-660.1qcom,adreno0#wkgsl_3d0_reg_memorycx_memcx_dbgc ,]]?^_ disabledzap-shaderY`opp-table2operating-points-v2^opp-8400000002bopp-778000000._Vopp-738000000+@opp-676000000(Jopp-608000000$=Xopp-540000000 /opp-491000000Dopp-443000000gopp-379000000Popp-315000000Ƅ@gmu@3d6a000&2qcom,adreno-gmu-660.1qcom,adreno-gmu0֠@ )wgmursccgmu_pdc01hfigmu8aa ..*aaa%gmucxoaximemnocahbhubsmmu_voteaacxgx ]?b_opp-table2operating-points-v2bopp-200000000 0clock-controller@3d900002qcom,sm8350-gpucc'.'.(8bi_tcxogcc_gpu_gpll0_clk_srcgcc_gpu_gpll0_div_clk_srcVaiommu@3da0000@2qcom,sm8350-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008.*.+aaaaa<busifaceahbhlos1_vote_gpu_smmucx_gmuhub_cx_inthub_aonaG]interconnect@3c400002qcom,sm8350-lpass-ag-nocSgJremoteproc@40800002qcom,sm8350-mpss-pas@@L7ccccc0wdogfatalreadyhandoverstop-ackshutdown-ack'xo11 cxmssTLLYdX"e3stopokayqcom/sm8350/modem.mbnglink-edge7& K&modemaremoteproc@5c000002qcom,sm8350-slpi-pas@<7f gggg#wdogfatalreadyhandoverstop-ack'xo11lcxlmxYhX"i3stopokayqcom/sm8350/slpi.mbnglink-edge7& K&slpiafastrpc 2qcom,fastrpcfastrpcglink-apps-dspsdsp compute-cb@12qcom,fastrpc-compute-cb -Acompute-cb@22qcom,fastrpc-compute-cb -Bcompute-cb@32qcom,fastrpc-compute-cb -Cmmc@8804000$2qcom,sm8350-sdhciqcom,sdhci-msm-v5@hc_irqpwr_irq..'ifacecorexo.0TV LMN$bsdhc-ddrcpu-sdhc -1?jG disabledopp-table2operating-points-v2jopp-100000000#opp-202000000 Fkphy@88e300002qcom,sm8350-usb-hs-phyqcom,usb-snps-hs-7nm-phy0okay('ref.Sl'mqphy@88e400002qcom,sm8250-usb-hs-phyqcom,usb-snps-hs-7nm-phy@okay('ref.Sl'msregulator@88e7000:2qcom,sm8350-refgen-regulatorqcom,sm8250-refgen-regulatorpphy@88e80002qcom,sm8350-qmp-usb3-dp-phy0 .'..auxrefcom_auxusb3_pipe.. phycommonV(5okayTn,ports port@0endpointport@1endpointHorport@2endpointHpphy@88eb0002qcom,sm8350-qmp-usb3-uni-phy okay ....auxrefcom_auxpipesusb3_uni_phy_pipe_clk_srcV(..! phyphy_phyTStinterconnect@90c00002qcom,sm8350-dc-noc BSgJinterconnect@91000002qcom,sm8350-gem-noc  @SgJMsystem-cache-controller@92000002qcom,sm8350-llccP  ( 0 8 `@wllcc0_basellcc1_basellcc2_basellcc3_basellcc_broadcast_baseinterconnect@a0c00002qcom,sm8350-compute-noc SgJusb@a6f88002qcom,sm8350-dwc3qcom,dwc3 ookay (.....#cfg_noccoreifacesleepmock_utmi..$ D7fff<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq..0TKLMN,busb-ddrapps-usbusb@a600000 2snps,dwc3 `  -Xq q,usb2-phyusb3-phy peripheralports port@0endpointport@1endpointHrousb@a8f88002qcom,sm8350-dwc3qcom,dwc3 okay 0......&cfg_noccoreifacesleepmock_utmixo..$ D7f f f<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq..0TKLMN-busb-ddrapps-usbusb@a800000 2snps,dwc3   - Xqstusb2-phyusb3-phydisplay-subsystem@ae000002qcom,sm8350-mdss wmdssHTuLuLMNbmdp0-memmdp1-memcpu-cfgvv v..v ifacebusnrt_buscore S -  disabled xdisplay-controller@ae010002qcom,sm8350-dpu   wmdpvbif0..vv"v v,!busnrt_busifacelutcorevsyncv,$?w1xopp-table2operating-points-v2wopp-200000000 $opp-300000000$opp-345000000H@kopp-460000000k yports port@0endpointHzport@1endpointH{port@2endpointH|~displayport-controller@ae900002qcom,sm8350-dpP     x (vv vvv;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelvv,,,dp?}1 disabledports port@0endpointH~|port@1endpointHpopp-table2operating-points-v2}opp-160000000 h#opp-270000000߀$opp-540000000 /kopp-8100000000Gydsi@ae94000(2qcom,sm8350-dsi-ctrlqcom,mdss-dsi-ctrl @ wdsi_ctrlx0vvv$vv.$bytebyte_intfpixelcoreifacebusvv%?1  disabledopp-table2operating-points-v2opp-187500000 -$opp-300000000$opp-358000000Vkports port@0endpointHzport@1endpointphy@ae944002qcom,sm8350-dsi-phy-5nm0 D F I|wdsi_phydsi_phy_lanedsi_pllV(v' ifaceref disableddsi@ae96000(2qcom,sm8350-dsi-ctrlqcom,mdss-dsi-ctrl ` wdsi_ctrlx0vv v&vv.$bytebyte_intfpixelcoreifacebusvv'?1  disabledopp-table2operating-points-v2opp-187500000 -$opp-300000000$opp-358000000Vkports port@0endpointH{port@1endpointphy@ae964002qcom,sm8350-dsi-phy-5nm0 d f i|wdsi_phydsi_phy_lanedsi_pllV(v' ifaceref disabledclock-controller@af000002qcom,sm8350-dispcc 8',,bi_tcxodsi0_phy_pll_out_byteclkdsi0_phy_pll_out_dsiclkdsi1_phy_pll_out_byteclkdsi1_phy_pll_out_dsiclkdp_phy_pll_link_clkdp_phy_pll_vco_div_clkV1vinterrupt-controller@b2200002qcom,sm8350-pdcqcom,pdc "`((672;8>v@BEVF6|a? fthermal-sensor@c263000 2qcom,sm8350-tsensqcom,tsens-v2 &0 " 7ffuplowcriticalthermal-sensor@c265000 2qcom,sm8350-tsensqcom,tsens-v2 &P "07ffuplowcriticalpower-management@c300000#2qcom,sm8350-aoss-qmpqcom,aoss-qmp 07& K&VXsram@c3f00002qcom,rpmh-stats ?spmi@c4400002qcom,spmi-pmic-arbP D ``p @`wcorechnlsobsrvrintrcnfg periph_irq 7f pmic@12qcom,pm8350qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800 2qcom,pm8350-gpioqcom,spmi-gpiou pmic@32qcom,pm8350bqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800!2qcom,pm8350b-gpioqcom,spmi-gpioupmic@22qcom,pm8350cqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800!2qcom,pm8350c-gpioqcom,spmi-gpiou led-controller@ee00+2qcom,pm8350c-flash-ledqcom,spmi-flash-led disabledpwm2qcom,pm8350c-pwm disabledpmic@02qcom,pmk8350qcom,spmi-pmic pon@13002qcom,pmk8350-pon whlospbspwrkey2qcom,pmk8350-pwrkeytokayresin2qcom,pmk8350-resinokayradc@31002qcom,spmi-adc71 1adc-tm@34002qcom,spmi-adc-tm5-gen244  disabledrtc@61002qcom,pmk8350-rtcab wrtcalarmbokaynvram@71002qcom,spmi-sdamq  qreboot-reason@48H0gpio@b000!2qcom,pmk8350-gpioqcom,spmi-gpioupmic@42qcom,pmr735aqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800!2qcom,pmr735a-gpioqcom,spmi-gpioupmic@52qcom,pmr735bqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  gpio@8800!2qcom,pmr735b-gpioqcom,spmi-gpioupinctrl@f1000002qcom,sm8350-tlmm0 uO5fC4Osdc2-default-stateclk-pins Xsdc2_clk]lcmd-pins Xsdc2_cmd]ydata-pins Xsdc2_data]ysdc2-sleep-stateclk-pins Xsdc2_clk]lcmd-pins Xsdc2_cmd]ydata-pins Xsdc2_data]yqup-uart3-default-state=rx-pinsXgpio18qup3tx-pinsXgpio19qup3qup-uart6-default-stateXgpio30gpio31qup6]lAqup-uart18-default-stateXgpio68gpio69qup18]l7qup-i2c0-default-state Xgpio4gpio5qup0]y9qup-i2c1-default-state Xgpio8gpio9qup1]y;qup-i2c2-default-stateXgpio12gpio13qup2]y<qup-i2c4-default-stateXgpio20gpio21qup4]y>qup-i2c5-default-stateXgpio24gpio25qup5]y?qup-i2c6-default-stateXgpio28gpio29qup6]y@qup-i2c7-default-stateXgpio32gpio33qup7]lBqup-i2c8-default-stateXgpio36gpio37qup8]yCqup-i2c9-default-stateXgpio40gpio41qup9]yEqup-i2c10-default-stateXgpio44gpio45qup10]yFqup-i2c11-default-stateXgpio48gpio49qup11]yGqup-i2c12-default-stateXgpio52gpio53qup12]yHqup-i2c13-default-state Xgpio0gpio1qup13]yIqup-i2c14-default-stateXgpio56gpio57qup14]l/qup-i2c15-default-stateXgpio60gpio61qup15]l3qup-i2c16-default-stateXgpio64gpio65qup16]l4qup-i2c17-default-stateXgpio72gpio73qup17]l6qup-i2c19-default-stateXgpio76gpio77qup19]l8iommu@15000000!2qcom,sm8350-smmu-500arm,mmu-500@Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY-remoteproc@173000002qcom,sm8350-adsp-pas0<7f#wdogfatalreadyhandoverstop-ack'xo11lcxlmxYX"3stopokayqcom/sm8350/adsp.mbnglink-edge7& K&lpassaapr 2qcom,apr-v2apr_audio_svc service@3 2qcom,q6coreavs/audiomsm/adsp/audio_pdservice@4 2qcom,q6afeavs/audiomsm/adsp/audio_pddais2qcom,q6afe-dais clock-controller2qcom,q6afe-clocksV[service@7 2qcom,q6asmavs/audiomsm/adsp/audio_pddais2qcom,q6asm-dais  -dai@0dai@1dai@2service@8 2qcom,q6admavs/audiomsm/adsp/audio_pdrouting2qcom,q6adm-routingfastrpc 2qcom,fastrpcfastrpcglink-apps-dspadsp compute-cb@32qcom,fastrpc-compute-cb -compute-cb@42qcom,fastrpc-compute-cb -compute-cb@52qcom,fastrpc-compute-cb -interrupt-controller@17a00000 2arm,gic-v3   timer@17c200002arm,armv7-timer-mem  c$frame@17c21000 frame@17c23000  0 disabledframe@17c25000  P disabledframe@17c27000  p disabledframe@17c29000   disabledframe@17c2b000  ° disabledframe@17c2d000  disabledrsc@18200000 apps_rsc2qcom,rpmh-rsc0 !"wdrv-0drv-1drv-2$  clock-controller2qcom,sm8350-rpmh-clkVxo'power-controller2qcom,sm8350-rpmhpd?1opp-table2operating-points-v2opp1opp20"opp3@#opp4$opp5kopp6yopp7@opp8Popp9opp10bcm-voter2qcom,bcm-voterJregulators-02qcom,pm8350-rpmh-regulatorsb$2@N\jx  smps10 %vreg_s10b_1p8 4w@ Lw@smps11 %vreg_s11b_0p95 4 y LB@smps12 %vreg_s12b_1p25 4@ Lldo1 %vreg_l1b_0p88 4  L  dnldo2 %vreg_l2b_3p07 4. L. dmldo3 %vreg_l3b_0p9 4 @ L @ dldo5 %vreg_l3b_0p9 4 m L  dSldo6 %vreg_l6b_1p2 4O Ln dTldo7 %vreg_l7b_2p96 4$ L- dPldo9 %vreg_l9b_1p2 4O LO dQregulators-12qcom,pm8350c-rpmh-regulatorsc$2@N\jx {     smps1 %vreg_s1c_1p86 4w@ Lsmps2 %vreg_s2c_0p8 4  LB@smps10 %vreg_s10c_1p05 4 L6@bob %vreg_bob 4- L ] X::]txrx 9okayspi@990000?qcom,geni-spiQ@sepU ]1g5 X::]txrx  9disabledi2c@994000?qcom,geni-i2cQ@@sepW@defaultN? ^ X::]txrx  9disabledspi@994000?qcom,geni-spiQ@@sepW ^1g5 X::]txrx  9disabledi2c@998000?qcom,geni-i2cQ@sepY@defaultN@ _ X::]txrx  9disabledspi@998000?qcom,geni-spiQ@sepY _1g5 X::]txrx  9disabledserial@998000?qcom,geni-uartQ@sepY@defaultNA _1g5 9disabledi2c@99c000?qcom,geni-i2cQ@sep[@defaultNB ` X::]txrx  9disabledspi@99c000?qcom,geni-spiQ@sep[ `1g5 X::]txrx  9disableddma-controller@a00000(?qcom,sm8350-gpi-dmaqcom,sm6350-gpi-dmaQ%&'()*  '.V. 9disabledDgeniqup@ac0000?qcom,geni-se-qupQ` m-ahbs-ahbp{| '.C J9okayi2c@a80000?qcom,geni-i2cQ@sep_@defaultNC a XDD]txrx  9disabledspi@a80000?qcom,geni-spiQ@sep_ a1g2 XDD]txrx  9disabledi2c@a84000?qcom,geni-i2cQ@@sepa@defaultNE b XDD]txrx  9disabledspi@a84000?qcom,geni-spiQ@@sepa b1g5 XDD]txrx  9disabledi2c@a88000?qcom,geni-i2cQ@sepc@defaultNF c XDD]txrx  9disabledspi@a88000?qcom,geni-spiQ@sepc c1g5 XDD]txrx  9disabledi2c@a8c000?qcom,geni-i2cQ@sepe@defaultNG d XDD]txrx 9okayB@speaker-amp@40?cirrus,cs35l41Q@H$ {H%!speaker-amp@41?cirrus,cs35l41QAH$ {H%!spi@a8c000?qcom,geni-spiQ@sepe d1g5 XDD]txrx  9disabledi2c@a90000?qcom,geni-i2cQ@sepg@defaultNI e XDD]txrx 9okayspi@a90000?qcom,geni-spiQ@sepg e1g5 XDD]txrx  9disabledi2c@a94000?qcom,geni-i2cQ@@sepi@defaultNJ f XDD]txrx 9okayspi@a94000?qcom,geni-spiQ@@sepi f1g5 XDD]txrx  9disabledrng@10d3000 ?qcom,prng-eeQ 0p(coreinterconnect@1500000?qcom,sm8350-config-nocQP2FKOinterconnect@1580000?qcom,sm8350-mc-virtQX2FKMinterconnect@1680000?qcom,sm8350-system-nocQh2FKinterconnect@16e0000?qcom,sm8350-aggre1-nocQn2FKLinterconnect@1700000?qcom,sm8350-aggre2-nocQp02FKRinterconnect@1740000?qcom,sm8350-mmss-nocQt2FKypcie@1c00000?qcom,pcie-sm8350PQ0`` ``Vparfdbielbiatuconfigpci`q{ 8J` `0`0`(msi0msi1msi2msi3msi4msi5msi6msi7Hp.0267   Fauxcfgbus_masterbus_slaveslave_q2atbuddrss_sf_tbuaggre1aggre0 ..pci*pciephy 9disabledpcie@0pciQq Jphy@1c06000 ?qcom,sm8350-qmp-gen3x1-pcie-phyQ` (p.01,4auxcfg_ahbrefrchngpipephy,wpcie_0_pipe_clk 9disabled*pcie@1c08000?qcom,pcie-sm8350PQ0@@ @@Vparfdbielbiatuconfigpci`q{ 8J@ @0@0`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@p8:<@A  ?auxcfgbus_masterbus_slaveslave_q2atbuddrss_sf_tbuaggre1 .. pci+pciephy 9disabledpcie@0pciQq Jphy@1c0e000 ?qcom,sm8350-qmp-gen3x2-pcie-phyQ (p8:;->auxcfg_ahbrefrchngpipe phy-wpcie_1_pipe_clk 9disabled+ufshc@1d84000+?qcom,sm8350-ufshcqcom,ufshcjedec,ufs-2.0Q@0  ,ufsphyrst '.&ncore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@p(03LMNO+Aufs-ddrcpu-ufs@Txhxh 9disabledPphy@1d87000?qcom,sm8350-qmp-ufs-phyQpp(refref_auxqrefPufsphyw 9disabled,dma-controller@1dc4000 ?qcom,bam-v1.7.4qcom,bam-v1.7.0Q@@ .bj'..9failQcrypto@1dfa000)?qcom,sm8350-qceqcom,sm8150-qceqcom,qceQߠ`XQQ]rxtx'..3RMAmemory 9disabledipa@1e40000?qcom,sm8350-ipa'..0QK @0Vipa-regipa-sharedgsi8_SS(ipagsiipa-clock-queryipa-setup-readyp( core03RMNOAmemoryconfigTUU*ipa-clock-enabled-validipa-clock-enabled9okayselfV$qcom/sm8350/Sony/sagami/ipa_fws.mbnhwlock@1f40000?qcom,tcsr-mutexQ&syscon@1fc0000?qcom,sm8350-tcsrsysconQpinctrl@33c0000?qcom,sm8350-lpass-lpi-pinctrl Q<UpWfWg coreaudio XXgpu@3d00000?qcom,adreno-660.1qcom,adreno0Q#Vkgsl_3d0_reg_memorycx_memcx_dbgc ,'YYgZ[  9disabledzap-shader\opp-table?operating-points-v2Zopp-8400000002bopp-778000000._Vopp-738000000+@opp-676000000(Jopp-608000000$=Xopp-540000000 /opp-491000000Dopp-443000000gopp-379000000Popp-315000000Ƅ@gmu@3d6a000&?qcom,adreno-gmu-660.1qcom,adreno-gmu0Q֠@ )Vgmursccgmu_pdc01hfigmu8p]] *]]]%gmucxoaximemnocahbhubsmmu_vote]]cxgx 'Yg^[opp-table?operating-points-v2^opp-200000000 0clock-controller@3d90000?qcom,sm8350-gpuccQp('(8bi_tcxogcc_gpu_gpll0_clk_srcgcc_gpu_gpll0_div_clk_srcw]iommu@3da0000@?qcom,sm8350-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500Q(58p*+]]]]]<busifaceahbhlos1_vote_gpu_smmucx_gmuhub_cx_inthub_aon]&Yinterconnect@3c40000?qcom,sm8350-lpass-ag-nocQ2FKremoteproc@4080000?qcom,sm8350-mpss-pasQ@@L______0wdogfatalreadyhandoverstop-ackshutdown-ackp(xo11 cxmss3MM`Tastop9okay"qcom/sm8350/Sony/sagami/modem.mbnglink-edge_' s'Hmodemremoteproc@5c00000?qcom,sm8350-slpi-pasQ@<_b cccc#wdogfatalreadyhandoverstop-ackp(xo11lcxlmxdTestop9okay!qcom/sm8350/Sony/sagami/slpi.mbnglink-edge_' s'Hslpifastrpc ?qcom,fastrpcNfastrpcglink-apps-dspHsdspb compute-cb@1?qcom,fastrpc-compute-cbQ '.Acompute-cb@2?qcom,fastrpc-compute-cbQ '.Bcompute-cb@3?qcom,fastrpc-compute-cbQ '.Cmmc@8804000$?qcom,sm8350-sdhciqcom,sdhci-msm-v5Q@hc_irqpwr_irqp(ifacecorexo03R MNO$Asdhc-ddrcpu-sdhc '.1gfy&9okay H\@defaultsleepNghijklopp-table?operating-points-v2fopp-100000000$opp-202000000 Fmphy@88e30000?qcom,sm8350-usb-hs-phyqcom,usb-snps-hs-7nm-phyQ09okayp(refnopuphy@88e40000?qcom,sm8250-usb-hs-phyqcom,usb-snps-hs-7nm-phyQ@ 9disabledp(refwregulator@88e7000:?qcom,sm8350-refgen-regulatorqcom,sm8250-refgen-regulatorQpphy@88e8000?qcom,sm8350-qmp-usb3-dp-phyQ0 p(auxrefcom_auxusb3_pipe phycommonw9okayqr-ports port@0Qendpointport@1Qendpoint svport@2Qendpoint tphy@88eb000?qcom,sm8350-qmp-usb3-uni-phyQ  9disabled pauxrefcom_auxpipeusb3_uni_phy_pipe_clk_srcw! phyphy_phyxinterconnect@90c0000?qcom,sm8350-dc-nocQ B2FKinterconnect@9100000?qcom,sm8350-gem-nocQ  @2FKNsystem-cache-controller@9200000?qcom,sm8350-llccPQ  ( 0 8 `@Vllcc0_basellcc1_basellcc2_basellcc3_basellcc_broadcast_baseinterconnect@a0c0000?qcom,sm8350-compute-nocQ 2FKusb@a6f8800?qcom,sm8350-dwc3qcom,dwc3Q o9okay J(p#cfg_noccoreifacesleepmock_utmi$ D_bbb<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq03LMNO,Ausb-ddrapps-usbusb@a600000 ?snps,dwc3Q `  '.6 u-usb2-phyusb3-phy Nperipheralports port@0Qendpointport@1Qendpoint vsusb@a8f8800?qcom,sm8350-dwc3qcom,dwc3Q  9disabled J0p&cfg_noccoreifacesleepmock_utmixo$ D_b b b<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq03LMNO-Ausb-ddrapps-usbusb@a800000 ?snps,dwc3Q   '. 6wxusb2-phyusb3-phydisplay-subsystem@ae00000?qcom,sm8350-mdssQ VmdssH3yMyMNOAmdp0-memmdp1-memcpu-cfgzz pzz ifacebusnrt_buscore S '.  9disabled J|display-controller@ae01000?qcom,sm8350-dpu Q   Vmdpvbif0pzz"z z,!busnrt_busifacelutcorevsyncz,$g{1|opp-table?operating-points-v2{opp-200000000 %opp-300000000%opp-345000000H@mopp-460000000k }ports port@0Qendpoint ~port@1Qendpoint port@2Qendpoint displayport-controller@ae90000?qcom,sm8350-dpPQ     | (pzz zzz;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelzzV---dp!g1 9disabledports port@0Qendpoint port@1Qendpoint topp-table?operating-points-v2opp-160000000 h$opp-270000000߀%opp-540000000 /mopp-8100000000G}dsi@ae94000(?qcom,sm8350-dsi-ctrlqcom,mdss-dsi-ctrlQ @ Vdsi_ctrl|0pzzz$zz$bytebyte_intfpixelcoreifacebuszz%Vg1m  9disabledopp-table?operating-points-v2opp-187500000 -%opp-300000000%opp-358000000Vmports port@0Qendpoint ~port@1Qendpointphy@ae94400?qcom,sm8350-dsi-phy-5nm0Q D F I|Vdsi_phydsi_phy_lanedsi_pllwpz( ifaceref 9disableddsi@ae96000(?qcom,sm8350-dsi-ctrlqcom,mdss-dsi-ctrlQ ` Vdsi_ctrl|0pzz z&zz$bytebyte_intfpixelcoreifacebuszz'Vg1m  9disabledopp-table?operating-points-v2opp-187500000 -%opp-300000000%opp-358000000Vmports port@0Qendpoint port@1Qendpointphy@ae96400?qcom,sm8350-dsi-phy-5nm0Q d f i|Vdsi_phydsi_phy_lanedsi_pllwpz( ifaceref 9disabledclock-controller@af00000?qcom,sm8350-dispccQ 8p(--bi_tcxodsi0_phy_pll_out_byteclkdsi0_phy_pll_out_dsiclkdsi1_phy_pll_out_byteclkdsi1_phy_pll_out_dsiclkdp_phy_pll_link_clkdp_phy_pll_vco_div_clkw1zinterrupt-controller@b220000?qcom,sm8350-pdcqcom,pdc Q "`{((672;8>v@BEVF6|a? bthermal-sensor@c263000 ?qcom,sm8350-tsensqcom,tsens-v2 Q &0 " _bbuplowcriticalthermal-sensor@c265000 ?qcom,sm8350-tsensqcom,tsens-v2 Q &P "0_bbuplowcriticalpower-management@c300000#?qcom,sm8350-aoss-qmpqcom,aoss-qmpQ 0_' s'wTsram@c3f0000?qcom,rpmh-statsQ ?spmi@c440000?qcom,spmi-pmic-arbPQ D ``p @`Vcorechnlsobsrvrintrcnfg periph_irq _bb pmic@1?qcom,pm8350qcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800 ?qcom,pm8350-gpioqcom,spmi-gpioQ cASSIGN1_THERMLCD_IDSDR_MMW_THERMRF_IDNCFP_LDO_ENSP_ARI_PWR_ALARMNCG_ASSIST_NPM8350_OPTIONg-assist-n-stategpio9normalpmic@3?qcom,pm8350bqcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800!?qcom,pm8350b-gpioqcom,spmi-gpioQ %NCNCNCNCSNAPSHOT_NNCNCFOCUS_Nsnapshot-n-stategpio5normalfocus-n-stategpio8normalpmic@2?qcom,pm8350cqcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800!?qcom,pm8350c-gpioqcom,spmi-gpioQ SFL_STROBE_TRIG_WIDEFL_STROBE_TRIG_TELENCNCNCRGBC_IR_PWR_ENNCNCWIDEC_PWR_ENled-controller@ee00+?qcom,pm8350c-flash-ledqcom,spmi-flash-ledQ 9disabledpwm?qcom,pm8350c-pwm 9disabledpmic@0?qcom,pmk8350qcom,spmi-pmicQ pon@1300?qcom,pmk8350-ponQ Vhlospbspwrkey?qcom,pmk8350-pwrkey t9okayresin?qcom,pmk8350-resin9okay sadc@3100?qcom,spmi-adc7Q1 1adc-tm@3400?qcom,spmi-adc-tm5-gen2Q44  9disabledrtc@6100?qcom,pmk8350-rtcQab Vrtcalarmb9okaynvram@7100?qcom,spmi-sdamQq  Jqreboot-reason@48QH)gpio@b000!?qcom,pmk8350-gpioqcom,spmi-gpioQ  NCNCVOL_DOWN_NPMK8350_OPTIONvol-down-n-stategpio3normalpmic@4?qcom,pmr735aqcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800!?qcom,pmr735a-gpioqcom,spmi-gpioQ pmic@5?qcom,pmr735bqcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800!?qcom,pmr735b-gpioqcom,spmi-gpioQ pinctrl@f100000?qcom,sm8350-tlmmQ0  H.b<,APPS_I2C_0_SDAAPPS_I2C_0_SCLUWIDEC_PWR_ENHAP_RST_NNCNCPM8008_1_RESET_NNCOIS_TELE_I2C_SDAOIS_TELE_I2C_SCLPM8350_OPTIONNCAPPS_I2C_1_SDAAPPS_I2C_1_SCLNCNCCAM1_RESET_NLEO_CAM0_RESET_NDEBUG_UART_TXDEBUG_UART_RXTS_I2C_SDATS_I2C_SCLTS_RESET_NTS_INT_NDISP_RESET_NSW_SERVICEDISP_ERR_FGTX_GTR_THRES_INNCNCNCNCNCNCNCNCSPK_AMP_INT_NSPK_AMP_RESET_NFP_INT_NFP_RESET_NNCNCDEBUG_GPIO0FORCE_USB_BOOTFP_SPI_MISOFP_SPI_MOSIFP_SPI_CLKFP_SPI_CS_NSPK_AMP_I2C_SDASPK_AMP_I2C_SCLNCHAP_INT_NCAMSENSOR_I2C_SDACAMSENSOR_I2C_SCLSBU_SW_OESBU_SW_SELNFC_ESE_SPI_MISONFC_ESE_SPI_MOSINFC_ESE_SPI_CLKNFC_ESE_SPI_CSNFC_I2C_SDANFC_I2C_SCLNFC_ENNFC_CLK_REQHST_WLAN_ENHST_BT_ENHW_ID_0HW_ID_1HST_BT_UART_CTSHST_BT_UART_RFRHST_BT_UART_TXHST_BT_UART_RXHAP_I2C_SDAHAP_I2C_SCLRF_LCD_ID_ENRF_ID_EXTENSIONNCNCNCNCHALL_INT_NUSB_CC_DIRDISP_VSYNCNCNCCAM_SOF_TELENFC_DWL_REQNFC_IRQWCD_RST_NALS_PROX_INT_NNCNCTRAY_DETUDON_SWITCH_SELPCIE0_RESET_NPCIE0_CLK_REQ_NPCIE0_WAKE_NCAM_SOFRF_ID_EXTENSION_2RGBC_IR_INTCAM_MCLK0CAM_MCLK1CAM_MCLK2CAM_MCLK3NCNCCAM2_RESET_NCCI_I2C0_SDACCI_I2C0_SCLCCI_I2C1_SDACCI_I2C1_SCLCCI_I2C2_SDACCI_I2C2_SCLCCI_I2C3_SDACCI_I2C3_SCLNCPM8008_1_IRQCAM3_RESET_NIMU1_INTEXT_VD0_XVSNCNCNCNCNCHAP_I2S_CLKHAP_I2S_DOUTHAP_TRG1HAP_I2S_SYNCHST_BT_WLAN_SLIMBUS_CLKHST_BT_WLAN_SLIMBUS_DAT0NCUIM2_DETECT_ENUIM2_DATAUIM2_CLKUIM2_RESETUIM2_PRESENTUIM1_DATAUIM1_CLKUIM1_RESETTRAY_DETSM_RFFE0_CLKSM_RFFE0_DATASM_RFFE1_CLKSM_RFFE1_DATASM_MSS_GRFC4SM_MSS_GRFC5SM_MSS_GRFC6SM_MSS_GRFC7SM_RFFE4_CLKSM_RFFE4_DATAWLAN_COEX_UART1_RXWLAN_COEX_UART1_TXHST_SW_CTRLDISP_VDDR_ENNCNCPA_INDICATOR_ORNCQLINK0_REQQLINK0_ENQLINK0_WMSS_RESET_NNCNCNCPM8008_2_IRQTELEC_PWR_ENPM8008_2_RESET_NWCD_SWR_TX_CLKWCD_SWR_TX_DATA0WCD_SWR_TX_DATA1WCD_SWR_RX_CLKWCD_SWR_RX_DATA0WCD_SWR_RX_DATA1SM_DMIC1_CLKSM_DMIC1_DATASM_DMIC2_CLKSM_DMIC2_DATASPK_AMP_I2S_CLKSPK_AMP_I2S_WSSPK_AMP_I2S_ASP_DINSPK_AMP_I2S_ASP_DOUTWCD_SWR_TX_DATA2NCNCNCNCIMU_SPI_MISOIMU_SPI_MOSIIMU_SPI_CLKIMU_SPI_CS_NMAG_I2C_SDAMAG_I2C_SCLSENSOR_I2C_SDASENSOR_I2C_SCLNCNCNCNCHST_BLE_UART_TXHST_BLE_UART_RXHST_WLAN_UART_TXHST_WLAN_UART_RXHsdc2-default-stategclk-pins sdc2_clkQ`cmd-pins sdc2_cmdQdata-pins sdc2_dataQsdc2-sleep-stateiclk-pins sdc2_clkQ`cmd-pins sdc2_cmdQdata-pins sdc2_dataQqup-uart3-default-state=rx-pinsgpio18qup3tx-pinsgpio19qup3qup-uart6-default-stategpio30gpio31qup6Q`Aqup-uart18-default-stategpio68gpio69qup18Q`7qup-i2c0-default-state gpio4gpio5qup0Q9qup-i2c1-default-state gpio8gpio9qup1Q;qup-i2c2-default-stategpio12gpio13qup2Q<qup-i2c4-default-stategpio20gpio21qup4Q>qup-i2c5-default-stategpio24gpio25qup5Q?qup-i2c6-default-stategpio28gpio29qup6Q@qup-i2c7-default-stategpio32gpio33qup7Q`Bqup-i2c8-default-stategpio36gpio37qup8QCqup-i2c9-default-stategpio40gpio41qup9QEqup-i2c10-default-stategpio44gpio45qup10QFqup-i2c11-default-stategpio48gpio49qup11QGqup-i2c12-default-stategpio52gpio53qup12QIqup-i2c13-default-state gpio0gpio1qup13QJqup-i2c14-default-stategpio56gpio57qup14Q`/qup-i2c15-default-stategpio60gpio61qup15Q`3qup-i2c16-default-stategpio64gpio65qup16Q`4qup-i2c17-default-stategpio72gpio73qup17Q`6qup-i2c19-default-stategpio76gpio77qup19Q`8ts-int-default-stategpio23gpioQ`sd-card-det-active-stategpio92gpioQhsd-card-det-sleep-stategpio92gpioQ`jiommu@15000000!?qcom,sm8350-smmu-500arm,mmu-500Q(5@Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY.remoteproc@17300000?qcom,sm8350-adsp-pasQ0<_b#wdogfatalreadyhandoverstop-ackp(xo11lcxlmxTstop9okay!qcom/sm8350/Sony/sagami/adsp.mbnglink-edge_' s'Hlpassapr ?qcom,apr-v2Napr_audio_svcm service@3Q ?qcom,q6coreyavs/audiomsm/adsp/audio_pdservice@4 ?qcom,q6afeQyavs/audiomsm/adsp/audio_pddais?qcom,q6afe-dais !clock-controller?qcom,q6afe-clockswWservice@7 ?qcom,q6asmQyavs/audiomsm/adsp/audio_pddais?qcom,q6asm-dais ! '.dai@0Qdai@1Qdai@2Qservice@8 ?qcom,q6admQyavs/audiomsm/adsp/audio_pdrouting?qcom,q6adm-routing!fastrpc ?qcom,fastrpcNfastrpcglink-apps-dspHadspb compute-cb@3?qcom,fastrpc-compute-cbQ '.compute-cb@4?qcom,fastrpc-compute-cbQ '.compute-cb@5?qcom,fastrpc-compute-cbQ '.interrupt-controller@17a00000 ?arm,gic-v3 Q  timer@17c20000?arm,armv7-timer-mem J Q$frame@17c21000Q frame@17c23000  Q0 9disabledframe@17c25000  QP 9disabledframe@17c27000  Qp 9disabledframe@17c29000  Q 9disabledframe@17c2b000  Q° 9disabledframe@17c2d000 Q 9disabledrsc@18200000 Happs_rsc?qcom,rpmh-rsc0Q !"Vdrv-0drv-1drv-2$  clock-controller?qcom,sm8350-rpmh-clkwxop(power-controller?qcom,sm8350-rpmhpdg1opp-table?operating-points-v2opp1opp20#opp3@$opp4%opp5mopp6}opp7@opp8Popp9opp10bcm-voter?qcom,bcm-voterKregulators-0?qcom,pm8350-rpmh-regulatorsb    , : H V d r       smps10 pm8350_s10 w@ w@ 4smps11 pm8350_s11  y B@ 4smps12 pm8350_s12 @  4ldo1 pm8350_l1     4rldo2 pm8350_l2 . . 4pldo3 pm8350_l3  @  @ 4ldo5 pm8350_l5  m   4 K dnldo6 pm8350_l6 O n 4 K dqldo7 pm8350_l7 $ - 4 K dldo9 pm8350_l9 O O 4 K dregulators-1?qcom,pm8350c-rpmh-regulatorsc    , : H V d r  |     smps1 pm8350c_s1 w@  4smps3 pm8350c_s3    4smps10 pm8350c_s10  6@ 4ldo1 pm8350c_l1 w@ w@ 4oldo2 pm8350c_l2 w@ w@ 4ldo3 pm8350c_l3 2j@ 2j@ 4ldo4 pm8350c_l4 @ - 4ldo5 pm8350c_l5 @ - 4ldo6 pm8350c_l6 w@ -* 4lldo7 pm8350c_l7 - - 4ldo8 pm8350c_l8 w@ w@ 4ldo9 pm8350c_l9 -* -* 4kldo10 pm8350c_l10 O O 4ldo11 pm8350c_l11 $ - 4ldo12 pm8350c_l12 w@  4ldo13 pm8350c_l13 - - 4bob vreg_bob 3@  ,handset9Sony Xperia 1 III ?sony,pdx215-genericqcom,sm8350chosen Jframebuffer@e1000000?simple-framebufferQ0UH[ b  ia8r8g8b8pclocksxo-board ?fixed-clockwI xo_boardsleep-clk ?fixed-clock}w)cpus cpu@0cpu?arm,cortex-a55Qppscipsci l2-cache?cache'l3-cache?cache'cpu@100cpu?arm,cortex-a55Qppscipsci l2-cache?cache'cpu@200cpu?arm,cortex-a55Qppsci  psci l2-cache?cache' cpu@300cpu?arm,cortex-a55Qppsci  psci l2-cache?cache' cpu@400cpu?arm,cortex-a78Qppsci psci l2-cache?cache' cpu@500cpu?arm,cortex-a78Qppscipsci l2-cache?cache'cpu@600cpu?arm,cortex-a78Qppscipsci l2-cache?cache'cpu@700cpu?arm,cortex-x1Qppscipsci l2-cache?cache'cpu-mapcluster0core05core15core25core35core45core55core65core75idle-states9pscicpu-sleep-0-0?arm,idle-stateFsilver-rail-power-collapseV@mh~^cpu-sleep-1-0?arm,idle-stateFgold-rail-power-collapseV@m~% domain-idle-statescluster-sleep-0?domain-idle-stateVADm ~ !cluster-sleep-1?domain-idle-stateVADm ~'"firmwarescm?qcom,scm-sm8350qcom,scm0memory@80000000memoryQpmu-a55?arm,cortex-a55-pmu pmu-a78?arm,cortex-a78-pmu pmu-x1?arm,cortex-x1-pmu psci ?arm,psci-1.0smcpower-domain-cpu0power-domain-cpu1power-domain-cpu2 power-domain-cpu3 power-domain-cpu4 power-domain-cpu5 power-domain-cpu6 power-domain-cpu7 power-domain-cpu-cluster0!"opp-table-qup100mhz?operating-points-v25opp-50000000#opp-75000000xh$opp-100000000%opp-table-qup120mhz?operating-points-v22opp-50000000#opp-75000000xh$opp-120000000'%reserved-memory Jmemory@80000000Q`memory@80700000Qpmemory@80860000 ?qcom,cmd-dbQmemory@80880000Q@smem@80900000 ?qcom,smemQ &memory@80b00000Qmemory@80c00000Q`mmeory@85200000Q Pmemory@85700000QpPmemory@85c00000QPmemory@86100000Qmemory@88200000Q Pfmemory@89700000Qpmemory@8b500000QPXmemory@8b510000QQmemory@8b51a000QQ ^memory@8b600000Q`memory@8b800000Qbmemory@9b800000?qcom,rmtfs-memQ(#2memory@d0000000Qmemory@d0800000QЀopmemory@d7ef7000Qpmemory@d7f00000Qmemory@d7f80000Qmemory@d8800000Q؀memory@e1000000Q0ramoops@ffc00000?ramoopsQ<Ismp2p-adsp ?qcom,smp2pU_' s'zmaster-kernelmaster-kernelslave-kernel slave-kernelsmp2p-cdsp ?qcom,smp2pU^_' s'zmaster-kernelmaster-kernelslave-kernel slave-kernelsmp2p-modem ?qcom,smp2pU_' s'zmaster-kernelmaster-kernelcslave-kernel slave-kernelaipa-ap-to-modemipaWipa-modem-to-apipaUsmp2p-slpi ?qcom,smp2pU_' s'zmaster-kernelmaster-kernelgslave-kernel slave-kernelesoc@0 J ?simple-busclock-controller@100000?qcom,gcc-sm8350Qw bi_tcxosleep_clkpcie_0_pipe_clkpcie_1_pipe_clkufs_card_rx_symbol_0_clkufs_card_rx_symbol_1_clkufs_card_tx_symbol_0_clkufs_phy_rx_symbol_0_clkufs_phy_rx_symbol_1_clkufs_phy_tx_symbol_0_clkusb3_phy_wrapper_gcc_usb30_pipe_clkusb3_uni_phy_sec_gcc_usb30_pipe_clkDp()*+,,,-mailbox@408000?qcom,sm8350-ipccqcom,ipccQ@ 'dma-controller@800000(?qcom,sm8350-gpi-dmaqcom,sm6350-gpi-dmaQLMNOPQRSTUVW  '.. 9disabled0geniqup@8c0000?qcom,geni-se-qupQ` m-ahbs-ahbp}~ '. J9okayi2c@880000?qcom,geni-i2cQ@sepm@defaultN/ u X00]txrx  9disabledspi@880000?qcom,geni-spiQ@sepm u1g2 X00]txrx 9okayi2c@884000?qcom,geni-i2cQ@@sepo@defaultN3 G X00]txrx 9okayspi@884000?qcom,geni-spiQ@@sepo G1g2 X00]txrx  9disabledi2c@888000?qcom,geni-i2cQ@sepq@defaultN4 H X00]txrx  9disabledspi@888000?qcom,geni-spiQ@sepq H1g5 X00]txrx  9disabledi2c@88c000?qcom,geni-i2cQ@seps@defaultN6 I X00]txrx 9okayB@spi@88c000?qcom,geni-spiQ@seps I1g5 X00]txrx  9disabledspi@890000?qcom,geni-spiQ@sepu J1g5 X00]txrx  9disabledserial@890000?qcom,geni-uartQ@sepu@defaultN7 J1g5 9disabledi2c@894000?qcom,geni-i2cQ@@sepw@defaultN8 K X00]txrx  9disabledspi@894000?qcom,geni-spiQ@@sepw K1g5 X00]txrx  9disableddma-controller@900000(?qcom,sm8350-gpi-dmaqcom,sm6350-gpi-dmaQ ~ '.. 9disabled:geniqup@9c0000?qcom,geni-se-qupQ` m-ahbs-ahbpyz '. J9okayi2c@980000?qcom,geni-i2cQ@sepM@defaultN9 Y X::]txrx  9disabledspi@980000?qcom,geni-spiQ@sepM Y1g5 X::]txrx  9disabledi2c@984000?qcom,geni-i2cQ@@sepO@defaultN; Z X::]txrx 9okayB@spi@984000?qcom,geni-spiQ@@sepO Z1g5 X::]txrx  9disabledi2c@988000?qcom,geni-i2cQ@sepQ@defaultN< [ X::]txrx  9disabledspi@988000?qcom,geni-spiQ@sepQ [1g5 X::]txrx  9disabledserial@98c000?qcom,geni-debug-uartQ@sepS@defaultN= \1g5 9disabledspi@98c000?qcom,geni-spiQ@sepS \1g5 X::]txrx  9disabledi2c@990000?qcom,geni-i2cQ@sepU@defaultN> ] X::]txrx 9okayspi@990000?qcom,geni-spiQ@sepU ]1g5 X::]txrx  9disabledi2c@994000?qcom,geni-i2cQ@@sepW@defaultN? ^ X::]txrx  9disabledspi@994000?qcom,geni-spiQ@@sepW ^1g5 X::]txrx  9disabledi2c@998000?qcom,geni-i2cQ@sepY@defaultN@ _ X::]txrx  9disabledspi@998000?qcom,geni-spiQ@sepY _1g5 X::]txrx  9disabledserial@998000?qcom,geni-uartQ@sepY@defaultNA _1g5 9disabledi2c@99c000?qcom,geni-i2cQ@sep[@defaultNB ` X::]txrx  9disabledspi@99c000?qcom,geni-spiQ@sep[ `1g5 X::]txrx  9disableddma-controller@a00000(?qcom,sm8350-gpi-dmaqcom,sm6350-gpi-dmaQ%&'()*  '.V. 9disabledDgeniqup@ac0000?qcom,geni-se-qupQ` m-ahbs-ahbp{| '.C J9okayi2c@a80000?qcom,geni-i2cQ@sep_@defaultNC a XDD]txrx  9disabledspi@a80000?qcom,geni-spiQ@sep_ a1g2 XDD]txrx  9disabledi2c@a84000?qcom,geni-i2cQ@@sepa@defaultNE b XDD]txrx  9disabledspi@a84000?qcom,geni-spiQ@@sepa b1g5 XDD]txrx  9disabledi2c@a88000?qcom,geni-i2cQ@sepc@defaultNF c XDD]txrx  9disabledspi@a88000?qcom,geni-spiQ@sepc c1g5 XDD]txrx  9disabledi2c@a8c000?qcom,geni-i2cQ@sepe@defaultNG d XDD]txrx 9okayB@speaker-amp@40?cirrus,cs35l41Q@H$ {H%!speaker-amp@41?cirrus,cs35l41QAH$ {H%!spi@a8c000?qcom,geni-spiQ@sepe d1g5 XDD]txrx  9disabledi2c@a90000?qcom,geni-i2cQ@sepg@defaultNI e XDD]txrx 9okayspi@a90000?qcom,geni-spiQ@sepg e1g5 XDD]txrx  9disabledi2c@a94000?qcom,geni-i2cQ@@sepi@defaultNJ f XDD]txrx 9okaypmic@75 ?dlg,slg51000Qu 2K@defaultNLregulatorsldo1?slg51000_a_ldo1N$f2Zldo2?slg51000_a_ldo2N$f2Zldo3?slg51000_a_ldo3NOf98pldo4?slg51000_a_ldo4NOf98pldo5?slg51000_a_ldo5N fOldo6?slg51000_a_ldo6N fOldo7?slg51000_a_ldo7NOf98pspi@a94000?qcom,geni-spiQ@@sepi f1g5 XDD]txrx  9disabledrng@10d3000 ?qcom,prng-eeQ 0p(coreinterconnect@1500000?qcom,sm8350-config-nocQP~MQinterconnect@1580000?qcom,sm8350-mc-virtQX~MOinterconnect@1680000?qcom,sm8350-system-nocQh~Minterconnect@16e0000?qcom,sm8350-aggre1-nocQn~MNinterconnect@1700000?qcom,sm8350-aggre2-nocQp0~MTinterconnect@1740000?qcom,sm8350-mmss-nocQt~M{pcie@1c00000?qcom,pcie-sm8350PQ0`` ``parfdbielbiatuconfigpci 8J` `0`0`(msi0msi1msi2msi3msi4msi5msi6msi7Hp.0267   Fauxcfgbus_masterbus_slaveslave_q2atbuddrss_sf_tbuaggre1aggre0 .. pci*$pciephy 9disabledpcie@0pciQ Jphy@1c06000 ?qcom,sm8350-qmp-gen3x1-pcie-phyQ` (p.01,4auxcfg_ahbrefrchngpipe phy.,>wpcie_0_pipe_clkS 9disabled*pcie@1c08000?qcom,pcie-sm8350PQ0@@ @@parfdbielbiatuconfigpci 8J@ @0@0`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@p8:<@A  ?auxcfgbus_masterbus_slaveslave_q2atbuddrss_sf_tbuaggre1 ..  pci+$pciephy 9disabledpcie@0pciQ Jphy@1c0e000 ?qcom,sm8350-qmp-gen3x2-pcie-phyQ (p8:;->auxcfg_ahbrefrchngpipe  phy.->wpcie_1_pipe_clkS 9disabled+ufshc@1d84000+?qcom,sm8350-ufshcqcom,ufshcjedec,ufs-2.0Q@0  ,$ufsphy^ rst '.rncore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@p(0NOPQ+ufs-ddrcpu-ufs@xhxh 9disabledRphy@1d87000?qcom,sm8350-qmp-ufs-phyQpp(refref_auxqref RufsphywS 9disabled,dma-controller@1dc4000 ?qcom,bam-v1.7.4qcom,bam-v1.7.0Q@@ .'..9failScrypto@1dfa000)?qcom,sm8350-qceqcom,sm8150-qceqcom,qceQߠ`XSS]rxtx'..TOmemory 9disabledipa@1e40000?qcom,sm8350-ipa'..0QK @0ipa-regipa-sharedgsi8_UU(ipagsiipa-clock-queryipa-setup-readyp( core0TOPQmemoryconfigVWW*ipa-clock-enabled-validipa-clock-enabled9okayselfX$qcom/sm8350/Sony/sagami/ipa_fws.mbnhwlock@1f40000?qcom,tcsr-mutexQ+&syscon@1fc0000?qcom,sm8350-tcsrsysconQpinctrl@33c0000?qcom,sm8350-lpass-lpi-pinctrl Q<UpYfYg coreaudio9IUZZgpu@3d00000?qcom,adreno-660.1qcom,adreno0Q#kgsl_3d0_reg_memorycx_memcx_dbgc ,'[[g\a]  9disabledzap-shader^opp-table?operating-points-v2\opp-8400000002bjopp-778000000._Vjopp-738000000+j@opp-676000000(Jjopp-608000000$=Xjopp-540000000 /jopp-491000000Djopp-443000000gjopp-379000000jPopp-315000000Ƅj@gmu@3d6a000&?qcom,adreno-gmu-660.1qcom,adreno-gmu0Q֠@ )gmursccgmu_pdc01hfigmu8p__ *___%gmucxoaximemnocahbhubsmmu_vote__cxgx '[g`]opp-table?operating-points-v2`opp-200000000 j0clock-controller@3d90000?qcom,sm8350-gpuccQp('(8bi_tcxogcc_gpu_gpll0_clk_srcgcc_gpu_gpll0_div_clk_srcw_iommu@3da0000@?qcom,sm8350-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500Qt8p*+_____<busifaceahbhlos1_vote_gpu_smmucx_gmuhub_cx_inthub_aon_r[interconnect@3c40000?qcom,sm8350-lpass-ag-nocQ~Mremoteproc@4080000?qcom,sm8350-mpss-pasQ@@L_aaaaa0wdogfatalreadyhandoverstop-ackshutdown-ackp(xo11 cxmssOObVcstop9okay"qcom/sm8350/Sony/sagami/modem.mbnglink-edge_' s'modemremoteproc@5c00000?qcom,sm8350-slpi-pasQ@<_d eeee#wdogfatalreadyhandoverstop-ackp(xo11lcxlmxfVgstop9okay!qcom/sm8350/Sony/sagami/slpi.mbnglink-edge_' s'slpifastrpc ?qcom,fastrpcfastrpcglink-apps-dspsdsp compute-cb@1?qcom,fastrpc-compute-cbQ '.Acompute-cb@2?qcom,fastrpc-compute-cbQ '.Bcompute-cb@3?qcom,fastrpc-compute-cbQ '.Cmmc@8804000$?qcom,sm8350-sdhciqcom,sdhci-msm-v5Q@hc_irqpwr_irqp(ifacecorexo 0T OPQ$sdhc-ddrcpu-sdhc '.1ghr9okay H\@defaultsleepNijklmnopp-table?operating-points-v2hopp-100000000$opp-202000000 Fophy@88e30000?qcom,sm8350-usb-hs-phyqcom,usb-snps-hs-7nm-phyQ09okaySp(ref  pq(rwphy@88e40000?qcom,sm8250-usb-hs-phyqcom,usb-snps-hs-7nm-phyQ@ 9disabledSp(ref yregulator@88e7000:?qcom,sm8350-refgen-regulatorqcom,sm8250-refgen-regulatorQpphy@88e8000?qcom,sm8350-qmp-usb3-dp-phyQ0 p(auxrefcom_auxusb3_pipe  phycommonwS69okayIs t-ports port@0Qendpointport@1QendpointYuxport@2QendpointYvphy@88eb000?qcom,sm8350-qmp-usb3-uni-phyQ  9disabled pauxrefcom_auxpipeusb3_uni_phy_pipe_clk_srcwS ! phyphy_phyzinterconnect@90c0000?qcom,sm8350-dc-nocQ B~Minterconnect@9100000?qcom,sm8350-gem-nocQ  @~MPsystem-cache-controller@9200000?qcom,sm8350-llccPQ  ( 0 8 `@llcc0_basellcc1_basellcc2_basellcc3_basellcc_broadcast_baseinterconnect@a0c0000?qcom,sm8350-compute-nocQ ~Musb@a6f8800?qcom,sm8350-dwc3qcom,dwc3Q o9okay J(p#cfg_noccoreifacesleepmock_utmi.>$ D_ddd<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq 0NOPQ,usb-ddrapps-usbusb@a600000 ?snps,dwc3Q `  '.i w-$usb2-phyusb3-phy peripheralports port@0Qendpointport@1QendpointYxuusb@a8f8800?qcom,sm8350-dwc3qcom,dwc3Q  9disabled J0p&cfg_noccoreifacesleepmock_utmixo.>$ D_d d d<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq 0NOPQ-usb-ddrapps-usbusb@a800000 ?snps,dwc3Q   '. iyz$usb2-phyusb3-phydisplay-subsystem@ae00000?qcom,sm8350-mdssQ mdssH{O{OPQmdp0-memmdp1-memcpu-cfg| | p|| ifacebusnrt_buscore S '.  9disabled J~display-controller@ae01000?qcom,sm8350-dpu Q   mdpvbif0p||"| |,!busnrt_busifacelutcorevsync.|,>$g}1~opp-table?operating-points-v2}opp-200000000 %opp-300000000%opp-345000000H@oopp-460000000k ports port@0QendpointYport@1QendpointYport@2QendpointYdisplayport-controller@ae90000?qcom,sm8350-dpPQ     ~ (p|| |||;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel.||---$dp!g1 9disabledports port@0QendpointYport@1QendpointYvopp-table?operating-points-v2opp-160000000 h$opp-270000000߀%opp-540000000 /oopp-8100000000Gdsi@ae94000(?qcom,sm8350-dsi-ctrlqcom,mdss-dsi-ctrlQ @ dsi_ctrl~0p|||$||$bytebyte_intfpixelcoreifacebus.||%g1  9disabledopp-table?operating-points-v2opp-187500000 -%opp-300000000%opp-358000000Voports port@0QendpointYport@1Qendpointphy@ae94400?qcom,sm8350-dsi-phy-5nm0Q D F I|dsi_phydsi_phy_lanedsi_pllwSp|( ifaceref 9disableddsi@ae96000(?qcom,sm8350-dsi-ctrlqcom,mdss-dsi-ctrlQ ` dsi_ctrl~0p|| |&||$bytebyte_intfpixelcoreifacebus.||'g1  9disabledopp-table?operating-points-v2opp-187500000 -%opp-300000000%opp-358000000Voports port@0QendpointYport@1Qendpointphy@ae96400?qcom,sm8350-dsi-phy-5nm0Q d f i|dsi_phydsi_phy_lanedsi_pllwSp|( ifaceref 9disabledclock-controller@af00000?qcom,sm8350-dispccQ 8p(--bi_tcxodsi0_phy_pll_out_byteclkdsi0_phy_pll_out_dsiclkdsi1_phy_pll_out_byteclkdsi1_phy_pll_out_dsiclkdp_phy_pll_link_clkdp_phy_pll_vco_div_clkw1|interrupt-controller@b220000?qcom,sm8350-pdcqcom,pdc Q "`((672;8>v@BEVF6|a? dthermal-sensor@c263000 ?qcom,sm8350-tsensqcom,tsens-v2 Q &0 " _dduplowcriticalthermal-sensor@c265000 ?qcom,sm8350-tsensqcom,tsens-v2 Q &P "0_dduplowcriticalpower-management@c300000#?qcom,sm8350-aoss-qmpqcom,aoss-qmpQ 0_' s'wVsram@c3f0000?qcom,rpmh-statsQ ?spmi@c440000?qcom,spmi-pmic-arbPQ D ``p @`corechnlsobsrvrintrcnfg periph_irq _d pmic@1?qcom,pm8350qcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800 ?qcom,pm8350-gpioqcom,spmi-gpioQ9U IcASSIGN1_THERMLCD_IDSDR_MMW_THERMRF_IDNCFP_LDO_ENSP_ARI_PWR_ALARMNCG_ASSIST_NPM8350_OPTIONg-assist-n-stategpio9normal&3@pmic@3?qcom,pm8350bqcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800!?qcom,pm8350b-gpioqcom,spmi-gpioQ9UKI:CAM_PWR_A_CSNCNCNCSNAPSHOT_NCAM_PWR_LD_ENNCFOCUS_NKsnapshot-n-stategpio5normal&3@focus-n-stategpio8normal&@3cam-pwr-a-cs-stategpio1normalM&aqLpmic@2?qcom,pm8350cqcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800!?qcom,pm8350c-gpioqcom,spmi-gpioQ9U I]FL_STROBE_TRIG_WIDEFL_STROBE_TRIG_TELENCWLC_TXPWR_ENNCRGBC_IR_PWR_ENNCNCWIDEC_PWR_ENled-controller@ee00+?qcom,pm8350c-flash-ledqcom,spmi-flash-ledQ 9disabledpwm?qcom,pm8350c-pwm} 9disabledpmic@0?qcom,pmk8350qcom,spmi-pmicQ pon@1300?qcom,pmk8350-ponQ hlospbspwrkey?qcom,pmk8350-pwrkeyt9okayresin?qcom,pmk8350-resin9okaysadc@3100?qcom,spmi-adc7Q1 1adc-tm@3400?qcom,spmi-adc-tm5-gen2Q44  9disabledrtc@6100?qcom,pmk8350-rtcQab rtcalarmb9okaynvram@7100?qcom,spmi-sdamQq  Jqreboot-reason@48QHgpio@b000!?qcom,pmk8350-gpioqcom,spmi-gpioQ9UI NCNCVOL_DOWN_NPMK8350_OPTIONvol-down-n-stategpio3normal&3@pmic@4?qcom,pmr735aqcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800!?qcom,pmr735a-gpioqcom,spmi-gpioQ9UIpmic@5?qcom,pmr735bqcom,spmi-pmicQ temp-alarm@a00?qcom,spmi-temp-alarmQ  gpio@8800!?qcom,pmr735b-gpioqcom,spmi-gpioQ9UIpinctrl@f100000?qcom,sm8350-tlmmQ0 9IUHd,APPS_I2C_0_SDAAPPS_I2C_0_SCLUWIDEC_PWR_ENHAP_RST_NWLC_I2C_SDAWLC_I2C_SCLPM8008_1_RESET_NWLC_INT_NOIS_TELE_I2C_SDAOIS_TELE_I2C_SCLPM8350_OPTIONNCAPPS_I2C_1_SDAAPPS_I2C_1_SCLNCNCCAM1_RESET_NLEO_CAM0_RESET_NDEBUG_UART_TXDEBUG_UART_RXTS_I2C_SDATS_I2C_SCLTS_RESET_NTS_INT_NDISP_RESET_NSW_SERVICEDISP_ERR_FGTX_GTR_THRES_INNCNCNCNCNCNCNCNCSPK_AMP_INT_NSPK_AMP_RESET_NFP_INT_NFP_RESET_NNCNCDEBUG_GPIO0FORCE_USB_BOOTFP_SPI_MISOFP_SPI_MOSIFP_SPI_CLKFP_SPI_CS_NSPK_AMP_I2C_SDASPK_AMP_I2C_SCLNCHAP_INT_NCAMSENSOR_I2C_SDACAMSENSOR_I2C_SCLSBU_SW_OESBU_SW_SELNFC_ESE_SPI_MISONFC_ESE_SPI_MOSINFC_ESE_SPI_CLKNFC_ESE_SPI_CSNFC_I2C_SDANFC_I2C_SCLNFC_ENNFC_CLK_REQHST_WLAN_ENHST_BT_ENHW_ID_0HW_ID_1HST_BT_UART_CTSHST_BT_UART_RFRHST_BT_UART_TXHST_BT_UART_RXHAP_I2C_SDAHAP_I2C_SCLRF_LCD_ID_ENRF_ID_EXTENSIONNCNCNCNCHALL_INT_NUSB_CC_DIRDISP_VSYNCNCNCCAM_SOF_TELENFC_DWL_REQNFC_IRQWCD_RST_NALS_PROX_INT_NNCNCTRAY_DETUDON_SWITCH_SELPCIE0_RESET_NPCIE0_CLK_REQ_NPCIE0_WAKE_NCAM_SOFRF_ID_EXTENSION_2RGBC_IR_INTCAM_MCLK0CAM_MCLK1CAM_MCLK2CAM_MCLK3CAM_MCLK4NCCAM2_RESET_NCCI_I2C0_SDACCI_I2C0_SCLCCI_I2C1_SDACCI_I2C1_SCLCCI_I2C2_SDACCI_I2C2_SCLCCI_I2C3_SDACCI_I2C3_SCLNCPM8008_1_IRQCAM3_RESET_NIMU1_INTEXT_VD0_XVSNCNCNCNCNCHAP_I2S_CLKHAP_I2S_DOUTHAP_TRG1HAP_I2S_SYNCHST_BT_WLAN_SLIMBUS_CLKHST_BT_WLAN_SLIMBUS_DAT0NCUIM2_DETECT_ENUIM2_DATAUIM2_CLKUIM2_RESETUIM2_PRESENTUIM1_DATAUIM1_CLKUIM1_RESETTRAY_DETSM_RFFE0_CLKSM_RFFE0_DATASM_RFFE1_CLKSM_RFFE1_DATASM_MSS_GRFC4SM_MSS_GRFC5SM_MSS_GRFC6SM_MSS_GRFC7SM_RFFE4_CLKSM_RFFE4_DATAWLAN_COEX_UART1_RXWLAN_COEX_UART1_TXHST_SW_CTRLDISP_VDDR_ENNCNCPA_INDICATOR_ORTOF_RST_NQLINK0_REQQLINK0_ENQLINK0_WMSS_RESET_NQLINK1_REQQLINK1_ENQLINK1_WMSS_RESET_NPM8008_2_IRQTELEC_PWR_ENPM8008_2_RESET_NWCD_SWR_TX_CLKWCD_SWR_TX_DATA0WCD_SWR_TX_DATA1WCD_SWR_RX_CLKWCD_SWR_RX_DATA0WCD_SWR_RX_DATA1SM_DMIC1_CLKSM_DMIC1_DATASM_DMIC2_CLKSM_DMIC2_DATASPK_AMP_I2S_CLKSPK_AMP_I2S_WSSPK_AMP_I2S_ASP_DINSPK_AMP_I2S_ASP_DOUTWCD_SWR_TX_DATA2NCNCNCNCIMU_SPI_MISOIMU_SPI_MOSIIMU_SPI_CLKIMU_SPI_CS_NMAG_I2C_SDAMAG_I2C_SCLSENSOR_I2C_SDASENSOR_I2C_SCLNCNCNCNCHST_BLE_UART_TXHST_BLE_UART_RXHST_WLAN_UART_TXHST_WLAN_UART_RXHsdc2-default-stateiclk-pins sdc2_clkRcmd-pins sdc2_cmdR3data-pins sdc2_dataR3sdc2-sleep-statekclk-pins sdc2_clkRcmd-pins sdc2_cmdR3data-pins sdc2_dataR3qup-uart3-default-state=rx-pinsgpio18qup3tx-pinsgpio19qup3qup-uart6-default-stategpio30gpio31qup6RAqup-uart18-default-stategpio68gpio69qup18R7qup-i2c0-default-state gpio4gpio5qup0R39qup-i2c1-default-state gpio8gpio9qup1R3;qup-i2c2-default-stategpio12gpio13qup2R3<qup-i2c4-default-stategpio20gpio21qup4R3>qup-i2c5-default-stategpio24gpio25qup5R3?qup-i2c6-default-stategpio28gpio29qup6R3@qup-i2c7-default-stategpio32gpio33qup7RBqup-i2c8-default-stategpio36gpio37qup8R3Cqup-i2c9-default-stategpio40gpio41qup9R3Equp-i2c10-default-stategpio44gpio45qup10R3Fqup-i2c11-default-stategpio48gpio49qup11R3Gqup-i2c12-default-stategpio52gpio53qup12R3Iqup-i2c13-default-state gpio0gpio1qup13R3Jqup-i2c14-default-stategpio56gpio57qup14R/qup-i2c15-default-stategpio60gpio61qup15R3qup-i2c16-default-stategpio64gpio65qup16R4qup-i2c17-default-stategpio72gpio73qup17R6qup-i2c19-default-stategpio76gpio77qup19R8ts-int-default-stategpio23gpioRsd-card-det-active-stategpio92gpioR3jsd-card-det-sleep-stategpio92gpioRliommu@15000000!?qcom,sm8350-smmu-500arm,mmu-500Qt@Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY.remoteproc@17300000?qcom,sm8350-adsp-pasQ0<_d#wdogfatalreadyhandoverstop-ackp(xo11lcxlmxVstop9okay!qcom/sm8350/Sony/sagami/adsp.mbnglink-edge_' s'lpassapr ?qcom,apr-v2apr_audio_svc service@3Q ?qcom,q6coreavs/audiomsm/adsp/audio_pdservice@4 ?qcom,q6afeQavs/audiomsm/adsp/audio_pddais?qcom,q6afe-dais !clock-controller?qcom,q6afe-clockswYservice@7 ?qcom,q6asmQavs/audiomsm/adsp/audio_pddais?qcom,q6asm-dais ! '.dai@0Qdai@1Qdai@2Qservice@8 ?qcom,q6admQavs/audiomsm/adsp/audio_pdrouting?qcom,q6adm-routing!fastrpc ?qcom,fastrpcfastrpcglink-apps-dspadsp compute-cb@3?qcom,fastrpc-compute-cbQ '.compute-cb@4?qcom,fastrpc-compute-cbQ '.compute-cb@5?qcom,fastrpc-compute-cbQ '.interrupt-controller@17a00000 ?arm,gic-v3  Q  timer@17c20000?arm,armv7-timer-mem J Q$frame@17c21000 )Q frame@17c23000 )  Q0 9disabledframe@17c25000 )  QP 9disabledframe@17c27000 )  Qp 9disabledframe@17c29000 )  Q 9disabledframe@17c2b000 )  Q° 9disabledframe@17c2d000 ) Q 9disabledrsc@18200000 apps_rsc?qcom,rpmh-rsc0Q !"drv-0drv-1drv-2$ 6  F Rclock-controller?qcom,sm8350-rpmh-clkwxop(power-controller?qcom,sm8350-rpmhpdg1opp-table?operating-points-v2opp1jopp2j0#opp3j@$opp4j%opp5joopp6jopp7j@opp8jPopp9jopp10jbcm-voter?qcom,bcm-voterMregulators-0?qcom,pm8350-rpmh-regulators bb o }            + < Msmps10 ?pm8350_s10Nw@fw@ bsmps11 ?pm8350_s11N yfB@ bsmps12 ?pm8350_s12N@f bldo1 ?pm8350_l1N f  btldo2 ?pm8350_l2N.f. brldo3 ?pm8350_l3N @f @ bldo5 ?pm8350_l5N mf  b y pldo6 ?pm8350_l6NOfn b y sldo7 ?pm8350_l7N$f- b y ldo9 ?pm8350_l9NOfO b y regulators-1?qcom,pm8350c-rpmh-regulators bc o }              smps1 ?pm8350c_s1Nw@f bsmps3 ?pm8350c_s3Nf  bsmps10 ?pm8350c_s10Nf6@ bldo1 ?pm8350c_l1Nw@fw@ bqldo2 ?pm8350c_l2Nw@fw@ bldo3 ?pm8350c_l3N2j@f2j@ bldo4 ?pm8350c_l4N@f- bldo5 ?pm8350c_l5N@f- bldo6 ?pm8350c_l6Nw@f-* bnldo7 ?pm8350c_l7N-f- bldo8 ?pm8350c_l8Nw@fw@ bldo9 ?pm8350c_l9N-*f-* bmldo10 ?pm8350c_l10NOfO bldo11 ?pm8350c_l11N$f- bldo12 ?pm8350c_l12Nw@f bldo13 ?pm8350c_l13N-f- bbob ?vreg_bobN3@f03345 Cqup-corequp-config V66[txrx  $disabledi2c@88c0002qcom,geni-i2c@se1~+default9? I H3345 Cqup-corequp-configqup-memory V66[txrx $disabledspi@88c0002qcom,geni-spi@se1~ I+default9@A03345 Cqup-corequp-config V66[txrx  $disabledi2c@8900002qcom,geni-i2c@se1+default9B J H3345 Cqup-corequp-configqup-memory V66[txrx $disabledspi@8900002qcom,geni-spi@se1 J+default9CD03345 Cqup-corequp-config V66[txrx  $disabledi2c@8940002qcom,geni-i2c@@se1+default9E K H3345 Cqup-corequp-configqup-memory V66[txrx $disabledserial@8940002qcom,geni-uart@@se1+default9F K0335GCqup-corequp-config $disabledspi@8940002qcom,geni-spi@@se1 K+default9HI03345 Cqup-corequp-config V66[txrx  $disabledi2c@8980002qcom,geni-i2c@se1+default9J C H3345 Cqup-corequp-configqup-memory V66[txrx $disabledspi@8980002qcom,geni-spi@se1 C+default9KL03345 Cqup-corequp-config V66[txrx  $disableddma-controller@900000(2qcom,sm8450-gpi-dmaqcom,sm6350-gpi-dma  ~ 0 $disabledsNgeniqup@9c00002qcom,geni-se-qup  m-ahbs-ahb11 033 Cqup-core $okayi2c@9800002qcom,geni-i2c@se1V+default9M Y H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9800002qcom,geni-spi@se1V Y+default9OPQeRH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@9840002qcom,geni-i2c@@se1X+default9S Z H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9840002qcom,geni-spi@@se1X Z+default9TUH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@9880002qcom,geni-i2c@se1Z+default9V [ H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9880002qcom,geni-spi@se1Z [+default9WXH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@98c0002qcom,geni-i2c@se1\+default9Y \ H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@98c0002qcom,geni-spi@se1\ \+default9Z[H3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@9900002qcom,geni-i2c@se1^+default9\ ] H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9900002qcom,geni-spi@se1^ ]+default9]^QeRH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@9940002qcom,geni-i2c@@se1`+default9_ ^ H3345 Cqup-corequp-configqup-memory VNN[txrx$okayctypec-mux@42 2fcs,fsa4480B V`yaportendpointbsspi@9940002qcom,geni-spi@@se1` ^+default9cdH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@9980002qcom,geni-i2c@se1b+default9e _ H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9980002qcom,geni-spi@se1b _+default9fgH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledserial@99c0002qcom,geni-debug-uart@se1d+default9hi `0335GCqup-corequp-config$okaydma-controller@a00000(2qcom,sm8450-gpi-dmaqcom,sm6350-gpi-dma%&'()*  ~ 0V $disabledskgeniqup@ac00002qcom,geni-se-qup` m-ahbs-ahb11 0C33 Cqup-core $okayi2c@a800002qcom,geni-i2c@se1h+default9j a H3345 Cqup-corequp-configqup-memory Vkk[txrx $disabledspi@a800002qcom,geni-spi@se1h a+default9lmH3345 Cqup-corequp-configqup-memory Vkk[txrx  $disabledi2c@a840002qcom,geni-i2c@@se1j+default9n b H3345 Cqup-corequp-configqup-memory Vkk[txrx$okaychdmi-bridge@2b2lontium,lt9611uxc+ V`, `koyp+default9qrports port@0endpointssport@2endpointts spi@a840002qcom,geni-spi@@se1j b+default9uvH3345 Cqup-corequp-configqup-memory Vkk[txrx  $disabledi2c@a880002qcom,geni-i2c@se1l+default9w c H3345 Cqup-corequp-configqup-memory Vkk[txrx $disabledspi@a880002qcom,geni-spi@se1l c+default9xyH3345 Cqup-corequp-configqup-memory Vkk[txrx  $disabledi2c@a8c0002qcom,geni-i2c@se1n+default9z d H3345 Cqup-corequp-configqup-memory Vkk[txrx $disabledspi@a8c0002qcom,geni-spi@se1n d+default9{|H3345 Cqup-corequp-configqup-memory Vkk[txrx  $disabledi2c@a900002qcom,geni-i2c@se1p+default9} e H3345 Cqup-corequp-configqup-memory Vkk[txrx $disabledspi@a900002qcom,geni-spi@se1p e+default9~H3345 Cqup-corequp-configqup-memory Vkk[txrx  $disabledi2c@a940002qcom,geni-i2c@@se1r+default9 fH3345 Cqup-corequp-configqup-memory Vkk[txrx  $disabledspi@a940002qcom,geni-spi@@se1r f+default9H3345 Cqup-corequp-configqup-memory Vkk[txrx  $disabledi2c@a980002qcom,geni-i2c@se1t+default9 kH3345 Cqup-corequp-configqup-memory Vkk[txrx  $disabledspi@a980002qcom,geni-spi@se1t k+default9H3345 Cqup-corequp-configqup-memory Vkk[txrx  $disabledrng@10c30002qcom,sm8450-trngqcom,trng 0pcie@1c000002qcom,pcie-sm8450-pcie0P0`` ``parfdbielbiatuconfig{pci 8` `0`0 YY`(msi0msi1msi2msi3msi4msi5msi6msi7105G3Cpcie-memcpu-pcie\1617,*1/11131819111 ]pipepipe_muxphy_piperefauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbuaggre0aggre1 ?00I1Ppci1\,apciephy k`^ w``+default9e$okayopp-table2operating-points-v2sopp-2500000&%&Аopp-5000000LK@& opp-8000000zpcie@0{pci phy@1c06000 2qcom,sm8450-qmp-gen3x1-pcie-phy` (1/11121416auxcfg_ahbrefrchngpipepcie_0_pipe_clkVI1Pphy14$okays,pcie@1c080002qcom,pcie-sm8450-pcie1P0@@ @@parfdbielbiatuconfig{pci 8@ @0@0 ZZ`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7105G4Cpcie-memcpu-pcieX1C1D-*1:1<1>1E1F11 Vpipepipe_muxphy_piperefauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbuaggre1 ?00I1 Ppci1\-apciephy k`a w`c+default9e$okayopp-table2operating-points-v2sopp-2500000&%&Аopp-5000000LK@& opp-10000000&B@opp-8000000zopp-16000000$ hopp-32000000H<pcie@0{pci phy@1c0e000 2qcom,sm8450-qmp-gen4x2-pcie-phy (1?1<1=1A1Cauxcfg_ahbrefrchngpipepcie_1_pipe_clkVI1 Pphy1A$okays-interconnect@15000002qcom,sm8450-config-nocPsGinterconnect@16800002qcom,sm8450-system-nochs4interconnect@16c00002qcom,sm8450-pcie-anoclsinterconnect@16e00002qcom,sm8450-aggre1-nocn1 1 sinterconnect@17000002qcom,sm8450-aggre2-nocp 11 1 * sinterconnect@17400002qcom,sm8450-mmss-noctshwlock@1f400002qcom,tcsr-mutexs(syscon@1fc00002qcom,sm8450-tcsrsysconsgpu@3d000002qcom,adreno-730.1qcom,adreno0#kgsl_3d0_reg_memorycx_memcx_dbgc ,e$okayszap-shader'qcom/sm8450/a730_zap.mbnopp-table2operating-points-v2sopp-81800000005opp-791000000/%5@opp-734000000+5opp-640000000&%5opp-599000000#5opp-545000000 | @5opp-492000000SS5opp-421000000@5Popp-350000000ܓ5@opp-317000000 @5@opp-285000000@58opp-220000000 58gmu@3d6a000&2qcom,adreno-gmu-730.1qcom,adreno-gmu0֠P )gmursccgmu_pdc01hfigmu811-!ahbgmucxoaximemnochubdemetcxgx ?esopp-table2operating-points-v2sopp-500000000e5opp-200000000 5@clock-controller@3d900002qcom,sm8450-gpucc*1+1,Vsiommu@3da0000@2qcom,sm8450-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500HU8>?@A01-1.gmuhubhlosbusifaceahbhsphy@88e300002qcom,sm8450-usb-hs-phyqcom,usb-snps-hs-7nm-phy0$okay*refI1usphy@88e80002qcom,sm8450-qmp-usb3-dp-phy0 1*11auxrefcom_auxusb3_pipeI11 PphycommonV$okays/ports port@0endpoints port@1endpointsport@2endpointsremoteproc@24000002qcom,sm8450-slpi-pas@@<V #wdogfatalreadyhandoverstop-ack*xoQQlcxlmx?stop$okay'qcom/sm8450/slpi.mbnglink-edgeV) j)slpifastrpc 2qcom,fastrpcfastrpcglink-apps-dspsdsp compute-cb@12qcom,fastrpc-compute-cb 0Acompute-cb@22qcom,fastrpc-compute-cb 0Bcompute-cb@32qcom,fastrpc-compute-cb 0Ccodec@31e00002qcom,sm8450-lpass-wsa-macro4DEfgmclknplmacrodcodecfsgenV wsa2-mclkssoundwire@31f00002qcom,soundwire-v1.7.0  ifaceWSA29+default ??2   EXj{  $disabledcodec@32000002qcom,sm8450-lpass-rx-macro 4@FfgmclknplmacrodcodecfsgenVmclkssoundwire@32100002qcom,soundwire-v1.7.0!  ifaceRX 9+default2 E Xj{ $okayscodec@0,42sdw20217010d00s codec@32200002qcom,sm8450-lpass-tx-macro"4@FfgmclknplmacrodcodecfsgenVmclkscodec@32400002qcom,sm8450-lpass-wsa-macro$4BCfgmclknplmacrodcodecfsgenVmclkssoundwire@32500002qcom,soundwire-v1.7.0%  ifaceWSA9+default ??2   EXj{ $okaysspeaker@0,12sdw10217020200+default9 ` SpkrLeftsspeaker@0,22sdw10217020200+default9 `Y SpkrRightssoundwire@33b00002qcom,soundwire-v1.7.0;  corewakeupifaceTX9+default 2EXj{ $okayscodec@0,32sdw20217010d00/s codec@33f00002qcom,sm8450-lpass-va-macro?09fgFmclkmacrodcodecnplVfsgen$okay9+defaultDT 'sremoteproc@300000002qcom,sm8450-adsp-pas0<V#wdogfatalreadyhandoverstop-ack*xoQQlcxlmx?stop$okay'qcom/sm8450/adsp.mbnglink-edgeV) j)lpassgpr 2qcom,gpr adsp_appsjv service@1 2qcom,q6apmavs/audiomsm/adsp/audio_pdsdais2qcom,q6apm-dais 0bedais2qcom,q6apm-lpass-daissservice@2 2qcom,q6prmavs/audiomsm/adsp/audio_pdclock-controller2qcom,q6prm-lpass-clocksVsfastrpc 2qcom,fastrpcfastrpcglink-apps-dspadsp compute-cb@32qcom,fastrpc-compute-cb 0compute-cb@42qcom,fastrpc-compute-cb 0compute-cb@52qcom,fastrpc-compute-cb 0remoteproc@323000002qcom,sm8450-cdsp-pas20@@VB#wdogfatalreadyhandoverstop-ack*xoQQ cxmxc?stop$okay'qcom/sm8450/cdsp.mbnglink-edgeV) j)cdspfastrpc 2qcom,fastrpcfastrpcglink-apps-dspcdsp compute-cb@12qcom,fastrpc-compute-cb0!a0! compute-cb@22qcom,fastrpc-compute-cb0!b0" compute-cb@32qcom,fastrpc-compute-cb0!c0# compute-cb@42qcom,fastrpc-compute-cb0!d0$ compute-cb@52qcom,fastrpc-compute-cb0!e0% compute-cb@62qcom,fastrpc-compute-cb0!f0& compute-cb@72qcom,fastrpc-compute-cb0!g0' compute-cb@82qcom,fastrpc-compute-cb0!h0( remoteproc@40800002qcom,sm8450-mpss-pas@@LV0wdogfatalreadyhandoverstop-ackshutdown-ack*xoQQ cxmss?stop$okay'qcom/sm8450/modem.mbnglink-edgeV) j)modemclock-controller@aaf00002qcom,sm8450-videocc *1Q&Vcci@ac15000!2qcom,sm8450-cciqcom,msm8996-cci P ({ -camnoc_axislow_ahb_srccpas_ahbccicci_src9+defaultsleep $disabled i2c-bus@0cB@ i2c-bus@1cB@ cci@ac16000!2qcom,sm8450-cciqcom,msm8996-cci ` ({ -camnoc_axislow_ahb_srccpas_ahbccicci_src9+defaultsleep $disabled i2c-bus@0cB@ i2c-bus@1cB@ clock-controller@ade00002qcom,sm8450-camcc 1**+Q&V $disabledsdisplay-subsystem@ae000002qcom,sm8450-mdss mdssH5GCmdp0-memmdp1-memcpu-cfgI 11< S 0( $okaysdisplay-controller@ae010002qcom,sm8450-dpu   mdpvbif011?<K!busnrt_busifacelutcorevsyncK$eQports port@0endpointsport@1endpointsport@2endpointsopp-table2operating-points-v2sopp-172000000 @opp-200000000 &opp-325000000_@'opp-375000000Z opp-500000000edisplayport-controller@ae900002qcom,sm8450-dpqcom,sm8350-dpP      ( ;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel//\/adpeQ$okayports port@0endpointsport@1endpointsopp-table2operating-points-v2sopp-160000000 h&opp-270000000߀'opp-540000000 /opp-8100000000Gdsi@ae94000(2qcom,sm8450-dsi-ctrlqcom,mdss-dsi-ctrl @ dsi_ctrl0A71$bytebyte_intfpixelcoreifacebusBeQ\adsi $okayports port@0endpointsport@1endpointssopp-table2operating-points-v2sopp-187500000 -&opp-300000000'opp-358000000Vphy@ae944002qcom,sm8450-dsi-phy-5nm0 D F I`dsi_phydsi_phy_lanedsi_pllV* ifaceref$okaysdsi@ae96000(2qcom,sm8450-dsi-ctrlqcom,mdss-dsi-ctrl ` dsi_ctrl0 C91$bytebyte_intfpixelcoreifacebusDeQ\adsi  $disabledports port@0endpointsport@1endpointphy@ae964002qcom,sm8450-dsi-phy-5nm0 d f i`dsi_phydsi_phy_lanedsi_pllV* ifaceref $disabledsclock-controller@af000002qcom,sm8450-dispcc d**1+//Q&V$okaysinterrupt-controller@b2200002qcom,sm8450-pdcqcom,pdc "@dH (6^a}?~ sthermal-sensor@c263000 2qcom,sm8450-tsensqcom,tsens-v2 &0 " uplowcriticalsthermal-sensor@c265000 2qcom,sm8450-tsensqcom,tsens-v2 &P "0uplowcriticalspower-management@c300000#2qcom,sm8450-aoss-qmpqcom,aoss-qmp 0V) j)Vssram@c3f00002qcom,rpmh-stats ?spmi@c4000002qcom,spmi-pmic-arbP @0 P@ D L Bcorechnlsobsrvrintrcnfg periph_irq V pmic@12qcom,pm8350qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  thermalsgpio@8800 2qcom,pm8350-gpioqcom,spmi-gpio.> Jspmic@32qcom,pm8350bqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  thermalsgpio@8800!2qcom,pm8350b-gpioqcom,spmi-gpio.>Jspmic@22qcom,pm8350cqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  sgpio@8800!2qcom,pm8350c-gpioqcom,spmi-gpio.> Jsled-controller@ee00+2qcom,pm8350c-flash-ledqcom,spmi-flash-led $disabledpwm2qcom,pm8350c-pwmV $disabledpmic@72qcom,pm8450qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  sgpio@8800 2qcom,pm8450-gpioqcom,spmi-gpio.>Jspmic@02qcom,pmk8350qcom,spmi-pmic pon@13002qcom,pmk8350-pon hlospbspwrkey2qcom,pmk8350-pwrkeyat $disabledresin2qcom,pmk8350-resin $disabledadc@31002qcom,spmi-adc71 1l$okayschannel@3pmk8350_die_tempchannel@44D~pmk8350_xo_thermchannel@103pm8350_die_tempchannel@144D~skin_msm_tempchannel@145E~ camera_tempchannel@146F~ therm1_tempchannel@147G~wide_rfc_tempchannel@148H~rear_tof_tempchannel@14cL~ therm2_tempchannel@303pm8350b_die_tempchannel@348H~usb_conn_tempchannel@403pmr735a_die_tempchannel@44aJ~ qtm_w_tempchannel@44bK~ qtm_n_tempadc-tm@34002qcom,spmi-adc-tm5-gen244 $okaysxo-therm@0Dskin-msm-therm@1Dcamera-therm@2Etherm1-therm@3Fwide-rfc-therm@4Grear-tof-therm@5Htherm2-therm@6Lusb-conn-therm@7Hrtc@61002qcom,pmk8350-rtcab rtcalarmb $disablednvram@71002qcom,spmi-sdamq  qreboot-reason@48Hsgpio@b000!2qcom,pmk8350-gpioqcom,spmi-gpio.>Jspmic@42qcom,pmr735aqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  thermalsgpio@8800!2qcom,pmr735a-gpioqcom,spmi-gpio.>Jsmailbox@ed180002qcom,sm8450-ipccqcom,ipccр s)pinctrl@f1000002qcom,sm8450-tlmm0 .J>`$s`sdc2-default-statesclk-pins sdc2_clk cmd-pins sdc2_cmd data-pins sdc2_data sdc2-sleep-statesclk-pins sdc2_clk cmd-pins sdc2_cmd data-pins sdc2_data cci0-default-stategpio110gpio111 cci_i2c scci0-sleep-stategpio110gpio111 cci_i2c %scci1-default-stategpio112gpio113 cci_i2c scci1-sleep-stategpio112gpio113 cci_i2c %scci2-default-stategpio114gpio115 cci_i2c scci2-sleep-stategpio114gpio115 cci_i2c %scci3-default-stategpio208gpio209 cci_i2c scci3-sleep-stategpio208gpio209 cci_i2c %spcie0-default-statesperst-pinsgpio94 gpio %clkreq-pinsgpio95 pcie0_clkreqn wake-pinsgpio96 gpio pcie1-default-statesperst-pinsgpio97 gpio %clkreq-pinsgpio98 pcie1_clkreqn wake-pinsgpio99 gpio qup-i2c0-data-clk-state gpio0gpio1 qup0sMqup-i2c1-data-clk-state gpio4gpio5 qup1sSqup-i2c2-data-clk-state gpio8gpio9 qup2sVqup-i2c3-data-clk-stategpio12gpio13 qup3sYqup-i2c4-data-clk-stategpio16gpio17 qup4s\qup-i2c5-data-clk-stategpio206gpio207 qup5s_qup-i2c6-data-clk-stategpio20gpio21 qup6sequp-i2c8-data-clk-stategpio28gpio29 qup8sjqup-i2c9-data-clk-stategpio32gpio33 qup9snqup-i2c10-data-clk-stategpio36gpio37 qup10swqup-i2c11-data-clk-stategpio40gpio41 qup11szqup-i2c12-data-clk-stategpio44gpio45 qup12s}qup-i2c13-data-clk-stategpio48gpio49 qup13 squp-i2c14-data-clk-stategpio52gpio53 qup14 squp-i2c15-data-clk-stategpio56gpio57 qup15s2qup-i2c16-data-clk-stategpio60gpio61 qup16s9qup-i2c17-data-clk-stategpio64gpio65 qup17s<qup-i2c18-data-clk-stategpio68gpio69 qup18s?qup-i2c19-data-clk-stategpio72gpio73 qup19sBqup-i2c20-data-clk-stategpio76gpio77 qup20sEqup-i2c21-data-clk-stategpio80gpio81 qup21sJqup-spi0-cs-stategpio3 qup0sPqup-spi0-data-clk-stategpio0gpio1gpio2 qup0sOqup-spi1-cs-stategpio7 qup1sUqup-spi1-data-clk-stategpio4gpio5gpio6 qup1sTqup-spi2-cs-stategpio11 qup2sXqup-spi2-data-clk-stategpio8gpio9gpio10 qup2sWqup-spi3-cs-stategpio15 qup3s[qup-spi3-data-clk-stategpio12gpio13gpio14 qup3sZqup-spi4-cs-stategpio19 qup4 s^qup-spi4-data-clk-stategpio16gpio17gpio18 qup4s]qup-spi5-cs-stategpio85 qup5sdqup-spi5-data-clk-stategpio206gpio207gpio84 qup5scqup-spi6-cs-stategpio23 qup6sgqup-spi6-data-clk-stategpio20gpio21gpio22 qup6sfqup-spi8-cs-stategpio31 qup8smqup-spi8-data-clk-stategpio28gpio29gpio30 qup8slqup-spi9-cs-stategpio35 qup9svqup-spi9-data-clk-stategpio32gpio33gpio34 qup9suqup-spi10-cs-stategpio39 qup10syqup-spi10-data-clk-stategpio36gpio37gpio38 qup10sxqup-spi11-cs-stategpio43 qup11s|qup-spi11-data-clk-stategpio40gpio41gpio42 qup11s{qup-spi12-cs-stategpio47 qup12squp-spi12-data-clk-stategpio44gpio45gpio46 qup12s~qup-spi13-cs-stategpio51 qup13squp-spi13-data-clk-stategpio48gpio49gpio50 qup13squp-spi14-cs-stategpio55 qup14squp-spi14-data-clk-stategpio52gpio53gpio54 qup14squp-spi15-cs-stategpio59 qup15s8qup-spi15-data-clk-stategpio56gpio57gpio58 qup15s7qup-spi16-cs-stategpio63 qup16s;qup-spi16-data-clk-stategpio60gpio61gpio62 qup16s:qup-spi17-cs-stategpio67 qup17s>qup-spi17-data-clk-stategpio64gpio65gpio66 qup17s=qup-spi18-cs-stategpio71 qup18 sAqup-spi18-data-clk-stategpio68gpio69gpio70 qup18 s@qup-spi19-cs-stategpio75 qup19 sDqup-spi19-data-clk-stategpio72gpio73gpio74 qup19 sCqup-spi20-cs-stategpio79 qup20sIqup-spi20-data-clk-stategpio76gpio77gpio78 qup20sHqup-spi21-cs-stategpio83 qup21sLqup-spi21-data-clk-stategpio80gpio81gpio82 qup21sKqup-uart7-rx-stategpio26 qup7 siqup-uart7-tx-stategpio27 qup7 shqup-uart20-default-stategpio76gpio77gpio78gpio79 qup20sFlt9611-irq-stategpio44 gpio sqlt9611-rst-stategpio107 gpio 4srsd-card-det-n-stategpio92 gpio sspkr-1-sd-n-active-stategpio1 gpio  @sspkr-2-sd-n-active-stategpio89 gpio  @swcd-reset-n-active-stategpio43 gpio  @spinctrl@34400002qcom,sm8450-lpass-lpi-pinctrl DM.J>fg coreaudiostx-swr-active-statesclk-pinsgpio0 swr_tx_clk K data-pinsgpio1gpio2gpio14 swr_tx_data K Urx-swr-active-statesclk-pinsgpio3 swr_rx_clk K data-pins gpio4gpio5 swr_rx_data K Udmic01-default-statesclk-pinsgpio6 dmic1_clk 4data-pinsgpio7 dmic1_datadmic23-default-statesclk-pinsgpio8 dmic2_clk 4data-pinsgpio9 dmic2_datawsa-swr-active-statesclk-pinsgpio10 wsa_swr_clk K data-pinsgpio11 wsa_swr_data K Uwsa2-swr-active-statesclk-pinsgpio15 wsa2_swr_clk K data-pinsgpio16 wsa2_swr_data K Usram@146aa000#2qcom,sm8450-imemsysconsimple-mfdjj pil-reloc@94c2qcom,pil-reloc-info Liommu@15000000!2qcom,sm8450-smmu-500arm,mmu-500HUAabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYs0interrupt-controller@17100000 2arm,gic-v3 c z     smsi-controller@171400002arm,gic-v3-its  stimer@174200002arm,armv7-timer-mem  Bc$frame@17421000 BB frame@17423000   B0 $disabledframe@17425000   BP $disabledframe@17427000   Bp $disabledframe@17429000   B $disabledframe@1742b000   B $disabledframe@1742d000  B $disabledrsc@17a00000 apps_rsc2qcom,rpmh-rsc@drv-0drv-1drv-2drv-3$    bcm-voter2qcom,bcm-votersclock-controller2qcom,sm8450-rpmh-clkVxos*power-controller2qcom,sm8450-rpmhpdesQopp-table2operating-points-v2sopp15opp250s%opp358sopp45@s&opp55Popp65s'opp75opp85sopp95opp105sopp115@opp125Popp135opp145regulators-02qcom,pm8350-rpmh-regulators b     ' 5 C Q _ m |   a a  smps10 vreg_s10b_1p8 w@ w@ssmps11 vreg_s11b_0p95 p ؀ssmps12 vreg_s12b_1p25 p \sldo1 vreg_l1b_0p91    /sldo2 vreg_l2b_3p07 . . /sldo3 vreg_l3b_0p9 @  @ /ldo5 vreg_l5b_0p88 m   /sldo6 vreg_l6b_1p2 O O /sldo7 vreg_l7b_2p5 &5@ &5@ /sldo9 vreg_l9b_1p2 O O /sregulators-12qcom,pm8350c-rpmh-regulators c     ' 5 C Q _ m Fa Xa ia a  smps1 vreg_s1c_1p86 w@ @ssmps10 vreg_s10c_1p05 B@ bob vreg_bob - SpkrLeft INWSA_SPK1 OUTSpkrRight INWSA_SPK2 OUTIN1_HPHLHPHL_OUTIN2_HPHRHPHR_OUTAMIC1MIC BIAS1AMIC2MIC BIAS2AMIC3MIC BIAS3AMIC4MIC BIAS3AMIC5MIC BIAS4VA DMIC0MIC BIAS3VA DMIC1MIC BIAS3VA DMIC2MIC BIAS1VA DMIC3MIC BIAS1TX DMIC0MIC BIAS3TX DMIC1MIC BIAS3TX DMIC2MIC BIAS1TX DMIC3MIC BIAS1TX SWR_INPUT0ADC1_OUTPUTTX SWR_INPUT1ADC2_OUTPUTTX SWR_INPUT0ADC3_OUTPUTTX SWR_INPUT1ADC4_OUTPUTwcd-playback-dai-link LWCD Playbackcpu Vqcodec Vplatform Vwcd-capture-dai-link LWCD Capturecpu Vxcodec Vplatform Vwsa-dai-link LWSA Playbackcpu Vicodec Vplatform Vva-dai-link LVA Capturecpu Vxcodec Vplatform Vthermal-zonesaoss0-thermal `tripsthermal-engine-config pH |Epassivereset-mon-cfg p8 |Epassivecpuss0-thermal `tripsthermal-engine-config pH |Epassivereset-mon-cfg p8 |Epassivecpuss1-thermal `tripsthermal-engine-config pH |Epassivereset-mon-cfg p8 |Epassivecpuss3-thermal `tripsthermal-engine-config pH |Epassivereset-mon-cfg p8 |Epassivecpuss4-thermal `tripsthermal-engine-config pH |Epassivereset-mon-cfg p8 |Epassivecpu4-top-thermal `tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu4-bottom-thermal `tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu5-top-thermal `tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu5-bottom-thermal `tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu6-top-thermal ` tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu6-bottom-thermal ` tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu7-top-thermal ` tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu7-middle-thermal ` tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu7-bottom-thermal ` tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalgpu-top-thermal  `cooling-mapsmap0  tripstrip-point0 pL |Epassivestrip-point1 p_ |Ehottrip-point2 p | Ecriticalgpu-bottom-thermal  `cooling-mapsmap0  tripstrip-point0 pL |Epassivestrip-point1 p_ |Ehottrip-point2 p | Ecriticalaoss1-thermal `tripsthermal-engine-config pH |Epassivereset-mon-cfg p8 |Epassivecpu0-thermal `tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu1-thermal `tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu2-thermal `tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcpu3-thermal `tripstrip-point0 p_ |Epassivetrip-point1 ps |Epassivecpu-crit p | Ecriticalcdsp0-thermal  `tripsthermal-engine-config pH |Epassivethermal-hal-config pH |Epassivereset-mon-cfg p8 |Epassivejunction-config ps |Epassivecdsp1-thermal  `tripsthermal-engine-config pH |Epassivethermal-hal-config pH |Epassivereset-mon-cfg p8 |Epassivejunction-config ps |Epassivecdsp2-thermal  `tripsthermal-engine-config pH |Epassivethermal-hal-config pH |Epassivereset-mon-cfg p8 |Epassivejunction-config ps |Epassivevideo-thermal `tripsthermal-engine-config pH |Epassivereset-mon-cfg p8 |Epassivemem-thermal  ` tripsthermal-engine-config pH |Epassiveddr0-config p_ |Epassivereset-mon-cfg p8 |Epassivemodem0-thermal ` tripsthermal-engine-config pH |Epassivemdmss0-config0 pp | Epassivemdmss0-config1 p( | Epassivereset-mon-cfg p8 |Epassivemodem1-thermal ` tripsthermal-engine-config pH |Epassivemdmss1-config0 pp | Epassivemdmss1-config1 p( | Epassivereset-mon-cfg p8 |Epassivemodem2-thermal ` tripsthermal-engine-config pH |Epassivemdmss2-config0 pp | Epassivemdmss2-config1 p( | Epassivereset-mon-cfg p8 |Epassivemodem3-thermal ` tripsthermal-engine-config pH |Epassivemdmss3-config0 pp | Epassivemdmss3-config1 p( | Epassivereset-mon-cfg p8 |Epassivecamera0-thermal `tripsthermal-engine-config pH |Epassivereset-mon-cfg p8 |Epassivecamera1-thermal `tripsthermal-engine-config pH |Epassivereset-mon-cfg p8 |Epassivepm8350-thermal d `tripstrip0 ps |Epassivepm8350c-crit p8 | Ecriticalpm8350b-thermal d `tripstrip0 ps |Epassivepm8350c-crit p8 | Ecriticalpm8350c-thermal d `tripstrip0 ps |Epassivepm8350c-crit p8 | Ecriticalpm8450-thermal d `tripstrip0 ps |Epassivetrip1 p8 |Ehotpmr735a-thermal d `tripstrip0 ps |Epassivepmr735a-crit p8 | Ecriticalcamera-thermal  `tripsactive-config0 p$ |Epassiverear-tof-thermal  `tripsactive-config0 p$ |Epassiveskin-msm-thermal  `tripsactive-config0 p$ |Epassivetherm1-thermal  `tripsactive-config0 p$ |Epassivetherm2-thermal  `tripsactive-config0 p$ |Epassiveusb-conn-thermal  `tripsactive-config0 p$ |Epassivewide-rfc-thermal  `tripsactive-config0 p$ |Epassivexo-thermal `tripsactive-config0 pP |Epassivetimer2arm,armv8-timer0   c$reboot-mode2nvmem-reboot-mode  reboot-mode  aliases$ /soc@0/geniqup@9c0000/serial@99c000audio-codec2qcom,wcd9385-codec+default9 w@ w@$w@<w@ T$I     {P   `+ ashdmi-out2hdmi-connectorEaportendpoint stlt9611-vdd12-regulator2regulator-fixed LT9611_1V2+ O O 6` ;solt9611-3v3-regulator2regulator-fixed LT9611_3V3+a 6`m 2Z 2Z;sppmic-glink'2qcom,sm8450-pmic-glinkqcom,pmic-glink  N`[connector@02usb-c-connector`dualkdualports port@0endpoint sport@1endpoint sport@2endpointsbvph-pwr-regulator2regulator-fixed vph_pwr 8u  8u us interrupt-parent#address-cells#size-cellsmodelcompatiblechassis-typestdout-path#clock-cellsclock-frequencyphandledevice_typeregenable-methodnext-level-cachepower-domainspower-domain-namesqcom,freq-domain#cooling-cellsclockscache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uslocal-timer-stopqcom,dload-modeinterconnects#reset-cells#interconnect-cellsqcom,bcm-votersinterrupts#power-domain-cellsdomain-idle-statesopp-hzrequired-oppsrangesno-maphwlocksqcom,client-idqcom,vmidqcom,smeminterrupts-extendedmboxesqcom,local-pidqcom,remote-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-rangesclock-names#dma-cellsdma-channelsdma-channel-maskiommusstatuspinctrl-namespinctrl-0interconnect-namesdmasdma-namesoperating-points-v2vcc-supplymode-switchorientation-switchremote-endpointreset-gpiosvdd-supplyreg-nameslinux,pci-domainbus-rangenum-lanesmsi-mapmsi-map-maskinterrupt-namesinterrupt-map-maskinterrupt-mapiommu-mapresetsreset-namesphysphy-namesperst-gpioswake-gpiosmax-link-speedopp-peak-kBpsclock-output-names#phy-cellsassigned-clocksassigned-clock-ratesvdda-phy-supplyvdda-pll-supply#hwlock-cellsqcom,gmumemory-regionfirmware-nameopp-levelqcom,qmp#iommu-cells#global-interruptsdma-coherentvdda18-supplyvdda33-supplyqcom,smem-statesqcom,smem-state-nameslabelqcom,glink-channelsqcom,non-secure-domain#sound-dai-cellsqcom,din-portsqcom,dout-portsqcom,ports-sinterval-lowqcom,ports-offset1qcom,ports-offset2qcom,ports-hstartqcom,ports-hstopqcom,ports-word-lengthqcom,ports-block-pack-modeqcom,ports-block-group-countqcom,ports-lane-controlqcom,rx-port-mappingpowerdown-gpiossound-name-prefix#thermal-sensor-cellsqcom,tx-port-mappingvdd-micb-supplyqcom,dmic-sample-rateqcom,domainqcom,intentsqcom,protection-domainpinctrl-1assigned-clock-parentsdata-lanesvdda-supplyvdds-supplyqcom,pdc-ranges#qcom,sensorsqcom,eeqcom,channelio-channelsio-channel-namesgpio-controllergpio-ranges#gpio-cells#pwm-cellslinux,code#io-channel-cellsqcom,hw-settle-timeqcom,ratiometricqcom,hw-settle-time-usbits#mbox-cellswakeup-parentgpio-reserved-rangespinsdrive-strengthbias-disablebias-pull-upfunctionbias-pull-downoutput-highoutput-lowslew-ratebias-bus-hold#redistributor-regionsredistributor-stridemsi-controller#msi-cellsframe-numberqcom,tcs-offsetqcom,drv-idqcom,tcs-configqcom,pmic-idvdd-s1-supplyvdd-s2-supplyvdd-s3-supplyvdd-s4-supplyvdd-s5-supplyvdd-s6-supplyvdd-s7-supplyvdd-s8-supplyvdd-s9-supplyvdd-s10-supplyvdd-s11-supplyvdd-s12-supplyvdd-l1-l4-supplyvdd-l2-l7-supplyvdd-l3-l5-supplyvdd-l6-l9-l10-supplyvdd-l8-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-initial-modevdd-l1-l12-supplyvdd-l2-l8-supplyvdd-l3-l4-l5-l7-l13-supplyvdd-l6-l9-l11-supplyvdd-l10-supplyvdd-bob-supplyvdd-l2-supplyvdd-l3-supplyvdd-l4-supplyvdd-l1-l2-supplyvdd-l5-l6-supplyvdd-l7-bob-supply#freq-domain-cellslanes-per-directionfreq-table-hzqcom,icevcc-max-microampvccq-supplyvccq-max-microampvdd-hba-supplyqcom,controlled-remotelybus-widthsdhci-caps-maskcd-gpiosvmmc-supplyvqmmc-supplyno-sdiono-mmcsnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirkdr_modeusb-role-switchaudio-routinglink-namesound-daithermal-sensorstemperaturehysteresispolling-delay-passivetripcooling-devicenvmem-cellsnvmem-cell-namesmode-recoverymode-bootloaderserial0qcom,micbias1-microvoltqcom,micbias2-microvoltqcom,micbias3-microvoltqcom,micbias4-microvoltqcom,mbhc-buttons-vthreshold-microvoltqcom,mbhc-headset-vthreshold-microvoltqcom,mbhc-headphone-vthreshold-microvoltqcom,rx-deviceqcom,tx-devicevdd-buck-supplyvdd-rxtx-supplyvdd-io-supplyvdd-mic-bias-supplyvin-supplygpioenable-active-highorientation-gpiospower-roledata-roleregulator-always-onregulator-boot-on e8t( t ',Qualcomm Technologies, Inc. SM8450 QRD2qcom,sm8450-qrdqcom,sm8450=handsetchosenJserial0:115200n8clocksxo-board 2fixed-clockVcssleep-clk 2fixed-clockVc}s+cpus cpu@0{cpu 2qcom,kryo780pscipscisl2-cache2cachesl3-cache2cachescpu@100{cpu 2qcom,kryo780pscipscisl2-cache2cachescpu@200{cpu 2qcom,kryo780psci pscisl2-cache2cachescpu@300{cpu 2qcom,kryo780psci  pscisl2-cache2caches cpu@400{cpu 2qcom,kryo780psci  pscisl2-cache2caches cpu@500{cpu 2qcom,kryo780pscipscisl2-cache2cachescpu@600{cpu 2qcom,kryo780pscipscisl2-cache2cachescpu@700{cpu 2qcom,kryo780pscipscisl2-cache2cachescpu-mapcluster0core0 core1 core2 core3 core4 core5 core6 core7 idle-statespscicpu-sleep-0-02arm,idle-statesilver-rail-power-collapse-@D Uevs!cpu-sleep-1-02arm,idle-stategold-rail-power-collapse-@DXUevs"domain-idle-statescluster-sleep-02domain-idle-state-ADDU es#cluster-sleep-12domain-idle-state-ADD U e6s$firmwarescm2qcom,scm-sm8450qcom,scm0interconnect-02qcom,sm8450-clk-virts3interconnect-12qcom,sm8450-mc-virtsmemory@a0000000{memorypmu2arm,armv8-pmuv3 psci 2arm,psci-1.0smcpower-domain-cpu0 !spower-domain-cpu1 !spower-domain-cpu2 !s power-domain-cpu3 !s power-domain-cpu4 "s power-domain-cpu5 "spower-domain-cpu6 "spower-domain-cpu7 "spower-domain-cpu-cluster0#$s opp-table-qup2operating-points-v2sRopp-50000000%opp-75000000xh&opp-100000000'reserved-memory memory@80000000`$memory@80600000`$memory@80640000d$memory@807c0000|$memory@80800000$memory@80860000 2qcom,cmd-db$memory@80880000$memory@808a0000$memory@808e0000@$memory@808e4000@$memory@80900000 2qcom,smem +($memory@80b00000$memory@80c00000`$memory@85700000pp$memory@85e00000$smemory@88000000$smemory@89900000$smemory@8b900000$memory@8b910000$memory@8b91a000 $smemory@8ba00000$memory@8bb80000$memory@8bbe0000$memory@8bc00000 $smemory@9ee00000p$memory@9f500000P$memory@9fd000002qcom,rmtfs-mem($3Bmemory@a6e00000$memory@a6f00000$memory@bb000000$memory@c0000000 $memory@e0000000`$memory@e0600000`@$memory@e0a00000$memory@e0b000000$memory@e55f3000_0$memory@e55fc000_@$memory@e5600000`$memory@e8800000$memory@e8900000 $memory@e9b00000P$memory@ea000000$memory@ed900000$smp2p-adsp 2qcom,smp2pLV) j)qmaster-kernelmaster-kernelsslave-kernel slave-kernelssmp2p-cdsp 2qcom,smp2pL^V) j)qmaster-kernelmaster-kernelsslave-kernel slave-kernelssmp2p-modem 2qcom,smp2pLV) j)qmaster-kernelmaster-kernelsslave-kernel slave-kernelsipa-ap-to-modemipaipa-modem-to-apipasmp2p-slpi 2qcom,smp2pLV) j)qmaster-kernelmaster-kernelsslave-kernel slave-kernelssoc@0  2simple-busclock-controller@1000002qcom,gcc-sm8450BV@*+,--.../bi_tcxosleep_clkpcie_0_pipe_clkpcie_1_pipe_clkpcie_1_phy_aux_clkufs_phy_rx_symbol_0_clkufs_phy_rx_symbol_1_clkufs_phy_tx_symbol_0_clkusb3_phy_wrapper_gcc_usb30_pipe_clks1dma-controller@800000(2qcom,sm8450-gpi-dmaqcom,sm6350-gpi-dmaLMNOPQRSTUVW  ~ 0 $disableds6geniqup@8c00002qcom,geni-se-qup  m-ahbs-ahb11 0 $okayi2c@8800002qcom,geni-i2c@se1x+default92 u H3345 Cqup-corequp-configqup-memory V66[txrx $disabledspi@8800002qcom,geni-spi@se1x u+default97803345 Cqup-corequp-config V66[txrx  $disabledi2c@8840002qcom,geni-i2c@@se1z+default99 G H3345 Cqup-corequp-configqup-memory V66[txrx $disabledspi@8840002qcom,geni-spi@@se1z G+default9:;03345 Cqup-corequp-config V66[txrx  $disabledi2c@8880002qcom,geni-i2c@se1|+default9< H H3345 Cqup-corequp-configqup-memory V66[txrx $disabledspi@8880002qcom,geni-spi@se1| H+default9=>03345 Cqup-corequp-config V66[txrx  $disabledi2c@88c0002qcom,geni-i2c@se1~+default9? I H3345 Cqup-corequp-configqup-memory V66[txrx $disabledspi@88c0002qcom,geni-spi@se1~ I+default9@A03345 Cqup-corequp-config V66[txrx $okayi2c@8900002qcom,geni-i2c@se1+default9B J H3345 Cqup-corequp-configqup-memory V66[txrx $disabledspi@8900002qcom,geni-spi@se1 J+default9CD03345 Cqup-corequp-config V66[txrx $okayi2c@8940002qcom,geni-i2c@@se1+default9E K H3345 Cqup-corequp-configqup-memory V66[txrx $disabledserial@8940002qcom,geni-uart@@se1+default9F K0335GCqup-corequp-config $disabledspi@8940002qcom,geni-spi@@se1 K+default9HI03345 Cqup-corequp-config V66[txrx  $disabledi2c@8980002qcom,geni-i2c@se1+default9J C H3345 Cqup-corequp-configqup-memory V66[txrx $disabledspi@8980002qcom,geni-spi@se1 C+default9KL03345 Cqup-corequp-config V66[txrx  $disableddma-controller@900000(2qcom,sm8450-gpi-dmaqcom,sm6350-gpi-dma  ~ 0$okaysNgeniqup@9c00002qcom,geni-se-qup  m-ahbs-ahb11 033 Cqup-core $okayi2c@9800002qcom,geni-i2c@se1V+default9M Y H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9800002qcom,geni-spi@se1V Y+default9OPQeRH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@9840002qcom,geni-i2c@@se1X+default9S Z H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9840002qcom,geni-spi@@se1X Z+default9TUH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@9880002qcom,geni-i2c@se1Z+default9V [ H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9880002qcom,geni-spi@se1Z [+default9WXH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@98c0002qcom,geni-i2c@se1\+default9Y \ H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@98c0002qcom,geni-spi@se1\ \+default9Z[H3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@9900002qcom,geni-i2c@se1^+default9\ ] H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9900002qcom,geni-spi@se1^ ]+default9]^QeRH3345 Cqup-corequp-configqup-memory VNN[txrx $okayi2c@9940002qcom,geni-i2c@@se1`+default9_ ^ H3345 Cqup-corequp-configqup-memory VNN[txrx$okayspi@9940002qcom,geni-spi@@se1` ^+default9`aH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledi2c@9980002qcom,geni-i2c@se1b+default9b _ H3345 Cqup-corequp-configqup-memory VNN[txrx $disabledspi@9980002qcom,geni-spi@se1b _+default9cdH3345 Cqup-corequp-configqup-memory VNN[txrx  $disabledserial@99c0002qcom,geni-debug-uart@se1d+default9ef `0335GCqup-corequp-config$okaydma-controller@a00000(2qcom,sm8450-gpi-dmaqcom,sm6350-gpi-dma%&'()*  ~ 0V $disabledshgeniqup@ac00002qcom,geni-se-qup` m-ahbs-ahb11 0C33 Cqup-core  $disabledi2c@a800002qcom,geni-i2c@se1h+default9g a H3345 Cqup-corequp-configqup-memory Vhh[txrx $disabledspi@a800002qcom,geni-spi@se1h a+default9ijH3345 Cqup-corequp-configqup-memory Vhh[txrx  $disabledi2c@a840002qcom,geni-i2c@@se1j+default9k b H3345 Cqup-corequp-configqup-memory Vhh[txrx $disabledspi@a840002qcom,geni-spi@@se1j b+default9lmH3345 Cqup-corequp-configqup-memory Vhh[txrx  $disabledi2c@a880002qcom,geni-i2c@se1l+default9n c H3345 Cqup-corequp-configqup-memory Vhh[txrx $disabledspi@a880002qcom,geni-spi@se1l c+default9opH3345 Cqup-corequp-configqup-memory Vhh[txrx  $disabledi2c@a8c0002qcom,geni-i2c@se1n+default9q d H3345 Cqup-corequp-configqup-memory Vhh[txrx $disabledspi@a8c0002qcom,geni-spi@se1n d+default9rsH3345 Cqup-corequp-configqup-memory Vhh[txrx  $disabledi2c@a900002qcom,geni-i2c@se1p+default9t e H3345 Cqup-corequp-configqup-memory Vhh[txrx $disabledspi@a900002qcom,geni-spi@se1p e+default9uvH3345 Cqup-corequp-configqup-memory Vhh[txrx  $disabledi2c@a940002qcom,geni-i2c@@se1r+default9w fH3345 Cqup-corequp-configqup-memory Vhh[txrx  $disabledspi@a940002qcom,geni-spi@@se1r f+default9xyH3345 Cqup-corequp-configqup-memory Vhh[txrx  $disabledi2c@a980002qcom,geni-i2c@se1t+default9z kH3345 Cqup-corequp-configqup-memory Vhh[txrx  $disabledspi@a980002qcom,geni-spi@se1t k+default9{|H3345 Cqup-corequp-configqup-memory Vhh[txrx  $disabledrng@10c30002qcom,sm8450-trngqcom,trng 0pcie@1c000002qcom,pcie-sm8450-pcie0P0`` ``yparfdbielbiatuconfig{pci 8` `0`0 }Y}Y`(msi0msi1msi2msi3msi4msi5msi6msi70~5G3Cpcie-memcpu-pcie\1617,*1/11131819111 ]pipepipe_muxphy_piperefauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbuaggre0aggre1 001pci1 ,pciephy ^ &`+default9e$okayopp-table2operating-points-v2sopp-2500000&%&1Аopp-5000000LK@&1 opp-8000000z1pcie@0{pci phy@1c06000 2qcom,sm8450-qmp-gen3x1-pcie-phy` (1/11121416auxcfg_ahbrefrchngpipe?pcie_0_pipe_clkVR1phy]14m$okays,pcie@1c080002qcom,pcie-sm8450-pcie1P0@@ @@yparfdbielbiatuconfig{pci 8@ @0@0 }Z}Z`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi70~5G4Cpcie-memcpu-pcieX1C1D-*1:1<1>1E1F11 Vpipepipe_muxphy_piperefauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbuaggre1 001 pci1 -pciephy a &c+default9e $disabledopp-table2operating-points-v2sopp-2500000&%&1Аopp-5000000LK@&1 opp-10000000&1B@opp-8000000z1opp-16000000$1 hopp-32000000H1<pcie@0{pci phy@1c0e000 2qcom,sm8450-qmp-gen4x2-pcie-phy (1?1<1=1A1Cauxcfg_ahbrefrchngpipe?pcie_1_pipe_clkVR1 phy]1Am $disableds-interconnect@15000002qcom,sm8450-config-nocPsGinterconnect@16800002qcom,sm8450-system-nochs4interconnect@16c00002qcom,sm8450-pcie-anocls~interconnect@16e00002qcom,sm8450-aggre1-nocn1 1 sinterconnect@17000002qcom,sm8450-aggre2-nocp 11 1 * sinterconnect@17400002qcom,sm8450-mmss-noctshwlock@1f400002qcom,tcsr-mutexs(syscon@1fc00002qcom,sm8450-tcsrsysconsgpu@3d000002qcom,adreno-730.1qcom,adreno0#ykgsl_3d0_reg_memorycx_memcx_dbgc ,e $disabledszap-shaderopp-table2operating-points-v2sopp-8180000000opp-791000000/%@opp-734000000+opp-640000000&%opp-599000000#opp-545000000 | @opp-492000000SSopp-421000000@Popp-350000000ܓ@opp-317000000 @@opp-285000000@8opp-220000000 8gmu@3d6a000&2qcom,adreno-gmu-730.1qcom,adreno-gmu0֠P )ygmursccgmu_pdc01hfigmu811-!ahbgmucxoaximemnochubdemetcxgx esopp-table2operating-points-v2sopp-500000000eopp-200000000 @clock-controller@3d900002qcom,sm8450-gpucc*1+1,Vsiommu@3da0000@2qcom,sm8450-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008>?@A01-1.gmuhubhlosbusifaceahbsphy@88e300002qcom,sm8450-usb-hs-phyqcom,usb-snps-hs-7nm-phy0$okayR*ref1#<R@qN '@sphy@88e80002qcom,sm8450-qmp-usb3-dp-phy0 1*11auxrefcom_auxusb3_pipe11 phycommonVR$okays/ports port@0endpointport@1endpointsport@2endpointsremoteproc@24000002qcom,sm8450-slpi-pas@@<V #wdogfatalreadyhandoverstop-ack*xoQQlcxlmx):stop$okayPqcom/sm8450/slpi.mbnglink-edgeV) j)^slpifastrpc 2qcom,fastrpcdfastrpcglink-apps-dsp^sdspx compute-cb@12qcom,fastrpc-compute-cb 0Acompute-cb@22qcom,fastrpc-compute-cb 0Bcompute-cb@32qcom,fastrpc-compute-cb 0Ccodec@31e00002qcom,sm8450-lpass-wsa-macro4DEfgmclknplmacrodcodecfsgenV ?wsa2-mclkssoundwire@31f00002qcom,soundwire-v1.7.0  iface^WSA29+default??   !8Sp  $disabledcodec@32000002qcom,sm8450-lpass-rx-macro 4@FfgmclknplmacrodcodecfsgenV?mclkssoundwire@32100002qcom,soundwire-v1.7.0!  iface^RX9+default  !8Sp  $disabledcodec@32200002qcom,sm8450-lpass-tx-macro"4@FfgmclknplmacrodcodecfsgenV?mclkscodec@32400002qcom,sm8450-lpass-wsa-macro$4BCfgmclknplmacrodcodecfsgenV?mclkssoundwire@32500002qcom,soundwire-v1.7.0%  iface^WSA9+default??   !8Sp  $disabledsoundwire@33b00002qcom,soundwire-v1.7.0;  corewakeupiface^TX9+default!8Sp  $disabledcodec@33f00002qcom,sm8450-lpass-va-macro?09fgFmclkmacrodcodecnplV?fsgen $disabledsremoteproc@300000002qcom,sm8450-adsp-pas0<V#wdogfatalreadyhandoverstop-ack*xoQQlcxlmx):stop$okayPqcom/sm8450/adsp.mbnglink-edgeV) j)^lpassgpr 2qcom,gpr dadsp_apps service@1 2qcom,q6apmavs/audiomsm/adsp/audio_pddais2qcom,q6apm-dais 0bedais2qcom,q6apm-lpass-daisservice@2 2qcom,q6prmavs/audiomsm/adsp/audio_pdclock-controller2qcom,q6prm-lpass-clocksVsfastrpc 2qcom,fastrpcdfastrpcglink-apps-dsp^adspx compute-cb@32qcom,fastrpc-compute-cb 0compute-cb@42qcom,fastrpc-compute-cb 0compute-cb@52qcom,fastrpc-compute-cb 0remoteproc@323000002qcom,sm8450-cdsp-pas20@@VB#wdogfatalreadyhandoverstop-ack*xoQQ cxmxc):stop$okayPqcom/sm8450/cdsp.mbnglink-edgeV) j)^cdspfastrpc 2qcom,fastrpcdfastrpcglink-apps-dsp^cdspx compute-cb@12qcom,fastrpc-compute-cb0!a0! compute-cb@22qcom,fastrpc-compute-cb0!b0" compute-cb@32qcom,fastrpc-compute-cb0!c0# compute-cb@42qcom,fastrpc-compute-cb0!d0$ compute-cb@52qcom,fastrpc-compute-cb0!e0% compute-cb@62qcom,fastrpc-compute-cb0!f0& compute-cb@72qcom,fastrpc-compute-cb0!g0' compute-cb@82qcom,fastrpc-compute-cb0!h0( remoteproc@40800002qcom,sm8450-mpss-pas@@LV0wdogfatalreadyhandoverstop-ackshutdown-ack*xoQQ cxmss):stop$okayPqcom/sm8450/modem.mbnglink-edgeV) j)^modemclock-controller@aaf00002qcom,sm8450-videocc *1Q&Vcci@ac15000!2qcom,sm8450-cciqcom,msm8996-cci P ({ -camnoc_axislow_ahb_srccpas_ahbccicci_src9+defaultsleep $disabled i2c-bus@0cB@ i2c-bus@1cB@ cci@ac16000!2qcom,sm8450-cciqcom,msm8996-cci ` ({ -camnoc_axislow_ahb_srccpas_ahbccicci_src9+defaultsleep $disabled i2c-bus@0cB@ i2c-bus@1cB@ clock-controller@ade00002qcom,sm8450-camcc 1**+Q&V $disabledsdisplay-subsystem@ae000002qcom,sm8450-mdss ymdssH5GCmdp0-memmdp1-memcpu-cfg 11< S 0(  $disabledsdisplay-controller@ae010002qcom,sm8450-dpu   ymdpvbif011?<K!busnrt_busifacelutcorevsync]Km$eQports port@0endpointsport@1endpointsport@2endpointsopp-table2operating-points-v2sopp-172000000 @opp-200000000 &opp-325000000_@'opp-375000000Z opp-500000000edisplayport-controller@ae900002qcom,sm8450-dpqcom,sm8350-dpP      ( ;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel]// /dpeQ $disabledports port@0endpointsport@1endpointsopp-table2operating-points-v2sopp-160000000 h&opp-270000000߀'opp-540000000 /opp-8100000000Gdsi@ae94000(2qcom,sm8450-dsi-ctrlqcom,mdss-dsi-ctrl @ ydsi_ctrl0A71$bytebyte_intfpixelcoreifacebus]BeQ dsi  $disabledports port@0endpointsport@1endpointopp-table2operating-points-v2sopp-187500000 -&opp-300000000'opp-358000000Vphy@ae944002qcom,sm8450-dsi-phy-5nm0 D F I`ydsi_phydsi_phy_lanedsi_pllVR* ifaceref $disabledsdsi@ae96000(2qcom,sm8450-dsi-ctrlqcom,mdss-dsi-ctrl ` ydsi_ctrl0 C91$bytebyte_intfpixelcoreifacebus]DeQ dsi  $disabledports port@0endpointsport@1endpointphy@ae964002qcom,sm8450-dsi-phy-5nm0 d f i`ydsi_phydsi_phy_lanedsi_pllVR* ifaceref $disabledsclock-controller@af000002qcom,sm8450-dispcc d**1+//Q&V $disabledsinterrupt-controller@b2200002qcom,sm8450-pdcqcom,pdc "@dH (6^a}?~ sthermal-sensor@c263000 2qcom,sm8450-tsensqcom,tsens-v2 &0 " uplowcriticalsthermal-sensor@c265000 2qcom,sm8450-tsensqcom,tsens-v2 &P "0uplowcriticalspower-management@c300000#2qcom,sm8450-aoss-qmpqcom,aoss-qmp 0V) j)Vssram@c3f00002qcom,rpmh-stats ?spmi@c4000002qcom,spmi-pmic-arbP @0 P@ D L Bycorechnlsobsrvrintrcnfg periph_irq V  pmic@12qcom,pm8350qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  sgpio@8800 2qcom,pm8350-gpioqcom,spmi-gpio"2 >spmic@32qcom,pm8350bqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  sgpio@8800!2qcom,pm8350b-gpioqcom,spmi-gpio"2>spmic@22qcom,pm8350cqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  sgpio@8800!2qcom,pm8350c-gpioqcom,spmi-gpio"2 >sled-controller@ee00+2qcom,pm8350c-flash-ledqcom,spmi-flash-led $disabledpwm2qcom,pm8350c-pwmJ $disabledpmic@72qcom,pm8450qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  sgpio@8800 2qcom,pm8450-gpioqcom,spmi-gpio"2>spmic@02qcom,pmk8350qcom,spmi-pmic pon@13002qcom,pmk8350-pon yhlospbspwrkey2qcom,pmk8350-pwrkeyUt $disabledresin2qcom,pmk8350-resin $disabledadc@31002qcom,spmi-adc71 1`adc-tm@34002qcom,spmi-adc-tm5-gen244  $disabledrtc@61002qcom,pmk8350-rtcab yrtcalarmb $disablednvram@71002qcom,spmi-sdamq  qreboot-reason@48Hrsgpio@b000!2qcom,pmk8350-gpioqcom,spmi-gpio"2>spmic@42qcom,pmr735aqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  sgpio@8800!2qcom,pmr735a-gpioqcom,spmi-gpio"2>spmic@52qcom,pmr735bqcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  sgpio@8800!2qcom,pmr735b-gpioqcom,spmi-gpio"2>smailbox@ed180002qcom,sm8450-ipccqcom,ipccр ws)pinctrl@f1000002qcom,sm8450-tlmm0 ">2$ssdc2-default-statesclk-pins sdc2_clkcmd-pins sdc2_cmddata-pins sdc2_datasdc2-sleep-statesclk-pins sdc2_clkcmd-pins sdc2_cmddata-pins sdc2_datacci0-default-stategpio110gpio111cci_i2cscci0-sleep-stategpio110gpio111cci_i2cscci1-default-stategpio112gpio113cci_i2cscci1-sleep-stategpio112gpio113cci_i2cscci2-default-stategpio114gpio115cci_i2cscci2-sleep-stategpio114gpio115cci_i2cscci3-default-stategpio208gpio209cci_i2cscci3-sleep-stategpio208gpio209cci_i2cspcie0-default-statesperst-pinsgpio94gpioclkreq-pinsgpio95pcie0_clkreqnwake-pinsgpio96gpiopcie1-default-statesperst-pinsgpio97gpioclkreq-pinsgpio98pcie1_clkreqnwake-pinsgpio99gpioqup-i2c0-data-clk-state gpio0gpio1qup0sMqup-i2c1-data-clk-state gpio4gpio5qup1sSqup-i2c2-data-clk-state gpio8gpio9qup2sVqup-i2c3-data-clk-stategpio12gpio13qup3sYqup-i2c4-data-clk-stategpio16gpio17qup4s\qup-i2c5-data-clk-stategpio206gpio207qup5s_qup-i2c6-data-clk-stategpio20gpio21qup6sbqup-i2c8-data-clk-stategpio28gpio29qup8sgqup-i2c9-data-clk-stategpio32gpio33qup9skqup-i2c10-data-clk-stategpio36gpio37qup10snqup-i2c11-data-clk-stategpio40gpio41qup11sqqup-i2c12-data-clk-stategpio44gpio45qup12stqup-i2c13-data-clk-stategpio48gpio49qup13swqup-i2c14-data-clk-stategpio52gpio53qup14szqup-i2c15-data-clk-stategpio56gpio57qup15s2qup-i2c16-data-clk-stategpio60gpio61qup16s9qup-i2c17-data-clk-stategpio64gpio65qup17s<qup-i2c18-data-clk-stategpio68gpio69qup18s?qup-i2c19-data-clk-stategpio72gpio73qup19sBqup-i2c20-data-clk-stategpio76gpio77qup20sEqup-i2c21-data-clk-stategpio80gpio81qup21sJqup-spi0-cs-stategpio3qup0sPqup-spi0-data-clk-stategpio0gpio1gpio2qup0sOqup-spi1-cs-stategpio7qup1sUqup-spi1-data-clk-stategpio4gpio5gpio6qup1sTqup-spi2-cs-stategpio11qup2sXqup-spi2-data-clk-stategpio8gpio9gpio10qup2sWqup-spi3-cs-stategpio15qup3s[qup-spi3-data-clk-stategpio12gpio13gpio14qup3sZqup-spi4-cs-stategpio19qup4s^qup-spi4-data-clk-stategpio16gpio17gpio18qup4s]qup-spi5-cs-stategpio85qup5saqup-spi5-data-clk-stategpio206gpio207gpio84qup5s`qup-spi6-cs-stategpio23qup6sdqup-spi6-data-clk-stategpio20gpio21gpio22qup6scqup-spi8-cs-stategpio31qup8sjqup-spi8-data-clk-stategpio28gpio29gpio30qup8siqup-spi9-cs-stategpio35qup9smqup-spi9-data-clk-stategpio32gpio33gpio34qup9slqup-spi10-cs-stategpio39qup10spqup-spi10-data-clk-stategpio36gpio37gpio38qup10soqup-spi11-cs-stategpio43qup11ssqup-spi11-data-clk-stategpio40gpio41gpio42qup11srqup-spi12-cs-stategpio47qup12svqup-spi12-data-clk-stategpio44gpio45gpio46qup12suqup-spi13-cs-stategpio51qup13syqup-spi13-data-clk-stategpio48gpio49gpio50qup13sxqup-spi14-cs-stategpio55qup14s|qup-spi14-data-clk-stategpio52gpio53gpio54qup14s{qup-spi15-cs-stategpio59qup15s8qup-spi15-data-clk-stategpio56gpio57gpio58qup15s7qup-spi16-cs-stategpio63qup16s;qup-spi16-data-clk-stategpio60gpio61gpio62qup16s:qup-spi17-cs-stategpio67qup17s>qup-spi17-data-clk-stategpio64gpio65gpio66qup17s=qup-spi18-cs-stategpio71qup18sAqup-spi18-data-clk-stategpio68gpio69gpio70qup18s@qup-spi19-cs-stategpio75qup19sDqup-spi19-data-clk-stategpio72gpio73gpio74qup19sCqup-spi20-cs-stategpio79qup20sIqup-spi20-data-clk-stategpio76gpio77gpio78qup20sHqup-spi21-cs-stategpio83qup21sLqup-spi21-data-clk-stategpio80gpio81gpio82qup21sKqup-uart7-rx-stategpio26qup7sfqup-uart7-tx-stategpio27qup7sequp-uart20-default-stategpio76gpio77gpio78gpio79qup20sFsd-card-det-n-stategpio92gpiospinctrl@34400002qcom,sm8450-lpass-lpi-pinctrl DM">2fg coreaudiostx-swr-active-statesclk-pinsgpio0 swr_tx_clkdata-pinsgpio1gpio2gpio14 swr_tx_datarx-swr-active-statesclk-pinsgpio3 swr_rx_clkdata-pins gpio4gpio5 swr_rx_datadmic01-default-stateclk-pinsgpio6 dmic1_clk data-pinsgpio7 dmic1_datadmic23-default-stateclk-pinsgpio8 dmic2_clk data-pinsgpio9 dmic2_datawsa-swr-active-statesclk-pinsgpio10 wsa_swr_clkdata-pinsgpio11 wsa_swr_datawsa2-swr-active-statesclk-pinsgpio15 wsa2_swr_clkdata-pinsgpio16wsa2_swr_datasram@146aa000#2qcom,sm8450-imemsysconsimple-mfdjj pil-reloc@94c2qcom,pil-reloc-info Liommu@15000000!2qcom,sm8450-smmu-500arm,mmu-500Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYs0interrupt-controller@17100000 2arm,gic-v3  '     smsi-controller@171400002arm,gic-v3-its < Ks}timer@174200002arm,armv7-timer-mem  Bc$frame@17421000 VBB frame@17423000 V  B0 $disabledframe@17425000 V  BP $disabledframe@17427000 V  Bp $disabledframe@17429000 V  B $disabledframe@1742b000 V  B $disabledframe@1742d000 V B $disabledrsc@17a00000 ^apps_rsc2qcom,rpmh-rsc@ydrv-0drv-1drv-2drv-3$ c  s  bcm-voter2qcom,bcm-votersclock-controller2qcom,sm8450-rpmh-clkVxos*power-controller2qcom,sm8450-rpmhpdesQopp-table2operating-points-v2sopp1opp20s%opp38sopp4@s&opp5Popp6s'opp7opp8sopp9opp10sopp11@opp12Popp13opp14regulators-02qcom,pm8350-rpmh-regulators b           ) 8 G X i z smps10 vreg_s10b_1p8 w@ w@smps11 vreg_s11b_0p95  ؀ssmps12 vreg_s12b_1p25 @ \sldo1 vreg_l1b_0p91    sldo2 vreg_l2b_3p07 . . sldo3 vreg_l3b_0p9 @ @ ldo5 vreg_l5b_0p88 m  sldo6 vreg_l6b_1p2 O O sldo7 vreg_l7b_2p5 &5@ &5@ sldo9 vreg_l9b_1p2 O O sregulators-12qcom,pm8350c-rpmh-regulators c              1 Fsmps1 vreg_s1c_1p86 w@ @ssmps10 vreg_s10c_1p05 B@ bob vreg_bob - 03345 equp-corequp-config x66}txrx  Fdisabledi2c@88c000?qcom,geni-i2c@ se1~Mdefault[? I H3345 equp-corequp-configqup-memory x66}txrx Fdisabledspi@88c000?qcom,geni-spi@ se1~ IMdefault[@A03345 equp-corequp-config x66}txrx  Fdisabledi2c@890000?qcom,geni-i2c@ se1Mdefault[B J H3345 equp-corequp-configqup-memory x66}txrxFokaycB@spi@890000?qcom,geni-spi@ se1 JMdefault[CD03345 equp-corequp-config x66}txrx  Fdisabledi2c@894000?qcom,geni-i2c@@ se1Mdefault[E K H3345 equp-corequp-configqup-memory x66}txrx Fdisabledserial@894000?qcom,geni-uart@@ se1Mdefault[F K0335Gequp-corequp-config Fdisabledspi@894000?qcom,geni-spi@@ se1 KMdefault[HI03345 equp-corequp-config x66}txrx  Fdisabledi2c@898000?qcom,geni-i2c@ se1Mdefault[J C H3345 equp-corequp-configqup-memory x66}txrx Fdisabledspi@898000?qcom,geni-spi@ se1 CMdefault[KL03345 equp-corequp-config x66}txrx  Fdisableddma-controller@900000(?qcom,sm8450-gpi-dmaqcom,sm6350-gpi-dma! .~ ?0FokaysNgeniqup@9c0000?qcom,geni-se-qup   m-ahbs-ahb11 ?033 equp-core Fokayi2c@980000?qcom,geni-i2c@ se1VMdefault[M Y H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@980000?qcom,geni-spi@ se1V YMdefault[OPQRH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@984000?qcom,geni-i2c@@ se1XMdefault[S Z H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@984000?qcom,geni-spi@@ se1X ZMdefault[TUH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@988000?qcom,geni-i2c@ se1ZMdefault[V [ H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@988000?qcom,geni-spi@ se1Z [Mdefault[WXH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@98c000?qcom,geni-i2c@ se1\Mdefault[Y \ H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@98c000?qcom,geni-spi@ se1\ \Mdefault[Z[H3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@990000?qcom,geni-i2c@ se1^Mdefault[\ ] H3345 equp-corequp-configqup-memory xNN}txrxFokayctouchscreen@48?samsung,s6sy761H]^_Mdefault[`aspi@990000?qcom,geni-spi@ se1^ ]Mdefault[bcQRH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@994000?qcom,geni-i2c@@ se1`Mdefault[d ^ H3345 equp-corequp-configqup-memory xNN}txrxFokaycpmic@75 ?dlg,slg51000u eMdefault[fregulatorsldo1slg51000_a_ldo1$2Zldo2slg51000_a_ldo2$2Zldo3slg51000_a_ldo3O98pldo4slg51000_a_ldo4O98pldo5slg51000_a_ldo5 Oldo6slg51000_a_ldo6 Oldo7slg51000_a_ldo7O98pspi@994000?qcom,geni-spi@@ se1` ^Mdefault[ghH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@998000?qcom,geni-i2c@ se1bMdefault[i _ H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@998000?qcom,geni-spi@ se1b _Mdefault[jkH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledserial@99c000?qcom,geni-debug-uart@ se1dMdefault[lm `0335Gequp-corequp-configFokaydma-controller@a00000(?qcom,sm8450-gpi-dmaqcom,sm6350-gpi-dma%&'()*! .~ ?0VFokaysogeniqup@ac0000?qcom,geni-se-qup`  m-ahbs-ahb11 ?0C33 equp-core Fokayi2c@a80000?qcom,geni-i2c@ se1hMdefault[n a H3345 equp-corequp-configqup-memory xoo}txrx Fdisabledspi@a80000?qcom,geni-spi@ se1h aMdefault[pqH3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a84000?qcom,geni-i2c@@ se1jMdefault[r b H3345 equp-corequp-configqup-memory xoo}txrxFokaycspi@a84000?qcom,geni-spi@@ se1j bMdefault[stH3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a88000?qcom,geni-i2c@ se1lMdefault[u c H3345 equp-corequp-configqup-memory xoo}txrx Fdisabledspi@a88000?qcom,geni-spi@ se1l cMdefault[vwH3345 equp-corequp-configqup-memory xoo}txrx Fokayi2c@a8c000?qcom,geni-i2c@ se1nMdefault[x d H3345 equp-corequp-configqup-memory xoo}txrx Fdisabledspi@a8c000?qcom,geni-spi@ se1n dMdefault[yzH3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a90000?qcom,geni-i2c@ se1pMdefault[{ e H3345 equp-corequp-configqup-memory xoo}txrx Fdisabledspi@a90000?qcom,geni-spi@ se1p eMdefault[|}H3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a94000?qcom,geni-i2c@@ se1rMdefault[~ fH3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledspi@a94000?qcom,geni-spi@@ se1r fMdefault[H3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a98000?qcom,geni-i2c@ se1tMdefault[ kH3345 equp-corequp-configqup-memory xoo}txrx FokaycB@speaker-amp@40?cirrus,cs35l41@] ] %@\tspeaker-amp@41?cirrus,cs35l41A] ] %@\tspi@a98000?qcom,geni-spi@ se1t kMdefault[H3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledrng@10c3000?qcom,sm8450-trngqcom,trng 0pcie@1c00000?qcom,pcie-sm8450-pcie0P0`` ``parfdbielbiatuconfig{pci 8` `0`0 YY`(msi0msi1msi2msi3msi4msi5msi6msi7 05G3epcie-memcpu-pcie\1617,*1/11131819111 ] pipepipe_muxphy_piperefauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbuaggre0aggre1 *0041;pci1G,Lpciephy V]^ b]`Mdefault[Fokaymopp-table?operating-points-v2sopp-2500000&%&|Аopp-5000000LK@&| opp-8000000z|pcie@0{pci phy@1c06000 ?qcom,sm8450-qmp-gen3x1-pcie-phy` (1/11121416 auxcfg_ahbrefrchngpipepcie_0_pipe_clkV41;phy14Fokays,pcie@1c08000?qcom,pcie-sm8450-pcie1P0@@ @@parfdbielbiatuconfig{pci 8@ @0@0 ZZ`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7 05G4epcie-memcpu-pcieX1C1D-*1:1<1>1E1F11 V pipepipe_muxphy_piperefauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbuaggre1 *0041 ;pci1G-Lpciephy V]a b]cMdefault[ Fdisabledopp-table?operating-points-v2sopp-2500000&%&|Аopp-5000000LK@&| opp-10000000&|B@opp-8000000z|opp-16000000$| hopp-32000000H|<pcie@0{pci phy@1c0e000 ?qcom,sm8450-qmp-gen4x2-pcie-phy (1?1<1=1A1C auxcfg_ahbrefrchngpipepcie_1_pipe_clkV41 ;phy1A Fdisableds-interconnect@1500000?qcom,sm8450-config-nocPsGinterconnect@1680000?qcom,sm8450-system-nochs4interconnect@16c0000?qcom,sm8450-pcie-anoclsinterconnect@16e0000?qcom,sm8450-aggre1-nocn1 1 sinterconnect@1700000?qcom,sm8450-aggre2-nocp 11 1 * sinterconnect@1740000?qcom,sm8450-mmss-noctshwlock@1f40000?qcom,tcsr-mutexs(syscon@1fc0000?qcom,sm8450-tcsrsysconsgpu@3d00000?qcom,adreno-730.1qcom,adreno0#kgsl_3d0_reg_memorycx_memcx_dbgc ,? Fdisabledszap-shaderopp-table?operating-points-v2sopp-8180000000opp-791000000/%@opp-734000000+opp-640000000&%opp-599000000#opp-545000000 | @opp-492000000SSopp-421000000@Popp-350000000ܓ@opp-317000000 @@opp-285000000@8opp-220000000 8gmu@3d6a000&?qcom,adreno-gmu-730.1qcom,adreno-gmu0֠P )gmursccgmu_pdc01hfigmu811-! ahbgmucxoaximemnochubdemetcxgx ?sopp-table?operating-points-v2sopp-500000000eopp-200000000 @clock-controller@3d90000?qcom,sm8450-gpucc*1+1,Vsiommu@3da0000@?qcom,sm8450-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500%28>?@A01-1. gmuhubhlosbusifaceahbEsphy@88e30000?qcom,sm8450-usb-hs-phyqcom,usb-snps-hs-7nm-phy0Fokay* ref41R`sphy@88e8000?qcom,sm8450-qmp-usb3-dp-phy0 1*11 auxrefcom_auxusb3_pipe411 ;phycommonVnFokays/ports port@0endpointport@1endpointsport@2endpointsremoteproc@2400000?qcom,sm8450-slpi-pas@@<x #wdogfatalreadyhandoverstop-ack* xoQQlcxlmxstopFokay!qcom/sm8450/Sony/nagara/slpi.mbnglink-edgex) )slpifastrpc ?qcom,fastrpcfastrpcglink-apps-dspsdsp compute-cb@1?qcom,fastrpc-compute-cb ?0Acompute-cb@2?qcom,fastrpc-compute-cb ?0Bcompute-cb@3?qcom,fastrpc-compute-cb ?0Ccodec@31e0000?qcom,sm8450-lpass-wsa-macro4DEfg mclknplmacrodcodecfsgenV wsa2-mclkssoundwire@31f0000?qcom,soundwire-v1.7.0   ifaceWSA2[Mdefault??/   BUgx  Fdisabledcodec@3200000?qcom,sm8450-lpass-rx-macro 4@Ffg mclknplmacrodcodecfsgenVmclkssoundwire@3210000?qcom,soundwire-v1.7.0!   ifaceRX[Mdefault/ B Ugx  Fdisabledcodec@3220000?qcom,sm8450-lpass-tx-macro"4@Ffg mclknplmacrodcodecfsgenVmclkscodec@3240000?qcom,sm8450-lpass-wsa-macro$4BCfg mclknplmacrodcodecfsgenVmclkssoundwire@3250000?qcom,soundwire-v1.7.0%   ifaceWSA[Mdefault??/   BUgx  Fdisabledsoundwire@33b0000?qcom,soundwire-v1.7.0;  corewakeup ifaceTX[Mdefault/BUgx  Fdisabledcodec@33f0000?qcom,sm8450-lpass-va-macro?09fgF mclkmacrodcodecnplVfsgen Fdisabledsremoteproc@30000000?qcom,sm8450-adsp-pas0<x#wdogfatalreadyhandoverstop-ack* xoQQlcxlmxstopFokay!qcom/sm8450/Sony/nagara/adsp.mbnglink-edgex) )lpassgpr ?qcom,gpr adsp_apps service@1 ?qcom,q6apmavs/audiomsm/adsp/audio_pddais?qcom,q6apm-dais ?0bedais?qcom,q6apm-lpass-daisservice@2 ?qcom,q6prmavs/audiomsm/adsp/audio_pdclock-controller?qcom,q6prm-lpass-clocksVsfastrpc ?qcom,fastrpcfastrpcglink-apps-dspadsp compute-cb@3?qcom,fastrpc-compute-cb ?0compute-cb@4?qcom,fastrpc-compute-cb ?0compute-cb@5?qcom,fastrpc-compute-cb ?0remoteproc@32300000?qcom,sm8450-cdsp-pas20@@xB#wdogfatalreadyhandoverstop-ack* xoQQ cxmxcstopFokay!qcom/sm8450/Sony/nagara/cdsp.mbnglink-edgex) )cdspfastrpc ?qcom,fastrpcfastrpcglink-apps-dspcdsp compute-cb@1?qcom,fastrpc-compute-cb?0!a0! compute-cb@2?qcom,fastrpc-compute-cb?0!b0" compute-cb@3?qcom,fastrpc-compute-cb?0!c0# compute-cb@4?qcom,fastrpc-compute-cb?0!d0$ compute-cb@5?qcom,fastrpc-compute-cb?0!e0% compute-cb@6?qcom,fastrpc-compute-cb?0!f0& compute-cb@7?qcom,fastrpc-compute-cb?0!g0' compute-cb@8?qcom,fastrpc-compute-cb?0!h0( remoteproc@4080000?qcom,sm8450-mpss-pas@@Lx0wdogfatalreadyhandoverstop-ackshutdown-ack* xoQQ cxmssstop Fdisabledglink-edgex) )modemclock-controller@aaf0000?qcom,sm8450-videocc *1Q&Vcci@ac15000!?qcom,sm8450-cciqcom,msm8996-cci P ({ - camnoc_axislow_ahb_srccpas_ahbccicci_src[Mdefaultsleep Fdisabled i2c-bus@0cB@ i2c-bus@1cB@ cci@ac16000!?qcom,sm8450-cciqcom,msm8996-cci ` ({ - camnoc_axislow_ahb_srccpas_ahbccicci_src[Mdefaultsleep Fdisabled i2c-bus@0cB@ i2c-bus@1cB@ clock-controller@ade0000?qcom,sm8450-camcc 1**+Q&V Fdisabledsdisplay-subsystem@ae00000?qcom,sm8450-mdss mdssH5Gemdp0-memmdp1-memcpu-cfg4 11< S ?0(  Fdisabledsdisplay-controller@ae01000?qcom,sm8450-dpu   mdpvbif011?<K! busnrt_busifacelutcorevsyncK$Qports port@0endpointsport@1endpointsport@2endpointsopp-table?operating-points-v2sopp-172000000 @opp-200000000 &opp-325000000_@'opp-375000000Z opp-500000000edisplayport-controller@ae90000?qcom,sm8450-dpqcom,sm8350-dpP      ( ; core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel//G/LdpQ Fdisabledports port@0endpointsport@1endpointsopp-table?operating-points-v2sopp-160000000 h&opp-270000000߀'opp-540000000 /opp-8100000000Gdsi@ae94000(?qcom,sm8450-dsi-ctrlqcom,mdss-dsi-ctrl @ dsi_ctrl0A71$ bytebyte_intfpixelcoreifacebusBQGLdsi  Fdisabledports port@0endpointsport@1endpointopp-table?operating-points-v2sopp-187500000 -&opp-300000000'opp-358000000Vphy@ae94400?qcom,sm8450-dsi-phy-5nm0 D F I`dsi_phydsi_phy_lanedsi_pllV*  ifaceref Fdisabledsdsi@ae96000(?qcom,sm8450-dsi-ctrlqcom,mdss-dsi-ctrl ` dsi_ctrl0 C91$ bytebyte_intfpixelcoreifacebusDQGLdsi  Fdisabledports port@0endpointsport@1endpointphy@ae96400?qcom,sm8450-dsi-phy-5nm0 d f i`dsi_phydsi_phy_lanedsi_pllV*  ifaceref Fdisabledsclock-controller@af00000?qcom,sm8450-dispcc d**1+//Q&V Fdisabledsinterrupt-controller@b220000?qcom,sm8450-pdcqcom,pdc "@dH0 (6^a}?~ sthermal-sensor@c263000 ?qcom,sm8450-tsensqcom,tsens-v2 &0 " @uplowcriticalNsthermal-sensor@c265000 ?qcom,sm8450-tsensqcom,tsens-v2 &P "0@uplowcriticalNspower-management@c300000#?qcom,sm8450-aoss-qmpqcom,aoss-qmp 0x) )Vssram@c3f0000?qcom,rpmh-stats ?spmi@c400000?qcom,spmi-pmic-arbP @0 P@ D L Bcorechnlsobsrvrintrcnfg periph_irq xdl pmic@1?qcom,pm8350qcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800 ?qcom,pm8350-gpioqcom,spmi-gpioy NASSIGN1_THERMLCD_IDSDR_MMW_THERMRF_IDNCVOL_DOWN_NNCNCNCPM8350_OPTIONsvol-down-n-stategpio6normalspmic@3?qcom,pm8350bqcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800!?qcom,pm8350b-gpioqcom,spmi-gpioye:CAM_PWR_A_CSNCNCNCSNAPSHOT_NCAM_PWR_LD_ENNCFOCUS_Nsecam-pwr-a-cs-stategpio1normal sfsnapshot-n-stategpio5normalsfocus-n-stategpio8normalscam-pwr-ld-en-stategpio6normal spmic@2?qcom,pm8350cqcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800!?qcom,pm8350c-gpioqcom,spmi-gpioy aFL_STROBE_TRIG_WIDEFL_STROBE_TRIG_TELEWLC_IDWLC_TXPWR_ENNCRGBC_IR_PWR_ENNCNCWIDEC_PWR_ENsrgbc-ir-pwr-en-stategpio6normal sled-controller@ee00+?qcom,pm8350c-flash-ledqcom,spmi-flash-led Fdisabledpwm?qcom,pm8350c-pwm ! Fdisabledpmic@7?qcom,pm8450qcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800 ?qcom,pm8450-gpioqcom,spmi-gpioy FP_LDO_ENspmic@0?qcom,pmk8350qcom,spmi-pmic pon@1300?qcom,pmk8350-pon hlospbspwrkey?qcom,pmk8350-pwrkey ,tFokayresin?qcom,pmk8350-resinFokay ,sadc@3100?qcom,spmi-adc71 1 7adc-tm@3400?qcom,spmi-adc-tm5-gen244 N Fdisabledrtc@6100?qcom,pmk8350-rtcab rtcalarmb Fdisablednvram@7100?qcom,spmi-sdamq  qreboot-reason@48H Isgpio@b000!?qcom,pmk8350-gpioqcom,spmi-gpioy NCNCDISP_THERMPMK8350_OPTIONspmic@4?qcom,pmr735aqcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800!?qcom,pmr735a-gpioqcom,spmi-gpioysmailbox@ed18000?qcom,sm8450-ipccqcom,ipccр  Ns)pinctrl@f100000?qcom,sm8450-tlmm0 y] Z h NCNCNCNCWLC_I2C_SDAWLC_I2C_SCLNCPM8010_1_RESET_NWLC_INT_NNCNCPM8010_2_RESET_NDISP_ERR_FGHALL_INT_NALS_PROX_INT_NIMU1_INTTS_I2C_SDATS_I2C_SCLDISP_RESET_NDISP_VDDR_ENTS_RESET_NTS_INT_NNCTELEC_PWR_ENCAM1_RESET_NLEO_CAM0_RESET_NDEBUG_UART_TXDEBUG_UART_RXFP_SPI_MISOFP_SPI_MOSIFP_SPI_CLKFP_SPI_CS_NNFC_I2C_SDANFC_I2C_SCLNFC_ENNFC_CLK_REQNFC_ESE_SPI_MISONFC_ESE_SPI_MOSINFC_ESE_SPI_CLKNFC_ESE_SPI_CSFP_INT_NNCFP_RESET_NWCD_RST_NNCNFC_DWL_REQNFC_IRQFORCE_USB_BOOTAPPS_I2C_1_SDAAPPS_I2C_1_SCLSBU_SW_OESBU_SW_SELSPK_AMP_I2C_SDASPK_AMP_I2C_SCLNCNCCAMSENSOR_I2C_SDACAMSENSOR_I2C_SCLGNSS_ELNA_EN0NCNCNCNCNCNCNCRGBC_IR_INTNCNCNCNCNCHAP_I2C_SDAHAP_I2C_SCLHAP_RST_NHAP_INT_NHST_BT_UART_CTSHST_BT_UART_RFRHST_BT_UART_TXHST_BT_UART_RXHST_WLAN_ENHST_BT_ENHST_SW_CTRLNCNCNCDISP_VSYNCNCNCHW_ID_0HW_ID_1USB_CC_DIRTRAY_DETSW_SERVICEPCIE0_RESET_NPCIE0_CLK_REQ_NPCIE0_WAKE_NOIS_ENABLE_WIDEDEBUG_GPIO0NCCAM_MCLK0CAM_MCLK1CAM_MCLK2CAM_MCLK3NCNCTOF_RST_NCAM_SOFNCAFEXPTMG_TELECCI_I2C0_SDACCI_I2C0_SCLCCI_I2C1_SDACCI_I2C1_SCLCCI_I2C2_SDACCI_I2C2_SCLNCCAM2_RESET_NNCEXT_VD0_XVSCAM3_RESET_NNCNCNCNCRF_ID_EXTENSION_2HAP_I2S_CLKHAP_I2S_DOUTHAP_TRG1HAP_I2S_SYNCUIM1_DATAUIM1_CLKUIM1_RESETTRAY_DETUIM2_DATAUIM2_CLKUIM2_RESETUIM2_PRESENTSM_RFFE0_CLKSM_RFFE0_DATASM_RFFE1_CLKSM_RFFE1_DATASM_MSS_GRFC4HST_AS_ENLAA_RX_ENNCSM_RFFE4_CLKSM_RFFE4_DATAWLAN_COEX_UART1_RXWLAN_COEX_UART1_TXRF_LCD_ID_ENRF_ID_EXTENSIONSM_MSS_GRFC12NFC_COLD_RSTNCNCSDR1_QLINK0_REQSDR1_QLINK0_ENSDR1_QLINK0_WMSS_RESET_NQLINK1_REQQLINK1_ENQLINK1_WMSS_RESET_NSDR2_QLINK2_REQSDR2_QLINK2_ENSDR2_QLINK2_WMSS_RESET_NWCD_SWR_TX_CLKWCD_SWR_TX_DATA0WCD_SWR_TX_DATA1WCD_SWR_RX_CLKWCD_SWR_RX_DATA0WCD_SWR_RX_DATA1SM_DMIC1_CLKSM_DMIC1_DATASM_DMIC2_CLKSM_DMIC2_DATASPK_AMP_I2S_CLKSPK_AMP_I2S_WSNCNCWCD_SWR_TX_DATA2SPK_AMP_I2S_ASP_DINSPK_AMP_I2S_ASP_DOUTSPK_AMP_INT_NSPK_AMP_RESET_NHST_BT_WLAN_SLIMBUS_CLKHST_BT_WLAN_SLIMBUS_DAT0NCNCNCNCMAG_I2C_SDAMAG_I2C_SCLIMU_SPI_MISOIMU_SPI_MOSIIMU_SPI_CLKIMU_SPI_CS_NSENSOR_I2C_SDASENSOR_I2C_SCLOIS_TELE_I2C_SDAOIS_TELE_I2C_SCLNCOIS_ENABLE_TELEHST_BLE_UART_TXHST_BLE_UART_RXHSTP_CLK_CFG_SELNCAPPS_I2C_0_SDAAPPS_I2C_0_SCLCCI_I2C3_SDACCI_I2C3_SCLs]sdc2-default-statesclk-pins sdc2_clk }cmd-pins sdc2_cmddata-pins sdc2_datasdc2-sleep-statesclk-pins sdc2_clk }cmd-pins sdc2_cmddata-pins sdc2_datacci0-default-stategpio110gpio111cci_i2cscci0-sleep-stategpio110gpio111cci_i2c scci1-default-stategpio112gpio113cci_i2cscci1-sleep-stategpio112gpio113cci_i2c scci2-default-stategpio114gpio115cci_i2cscci2-sleep-stategpio114gpio115cci_i2c scci3-default-stategpio208gpio209cci_i2cscci3-sleep-stategpio208gpio209cci_i2c spcie0-default-statesperst-pinsgpio94gpio clkreq-pinsgpio95pcie0_clkreqnwake-pinsgpio96gpiopcie1-default-statesperst-pinsgpio97gpio clkreq-pinsgpio98pcie1_clkreqnwake-pinsgpio99gpioqup-i2c0-data-clk-state gpio0gpio1qup0sMqup-i2c1-data-clk-state gpio4gpio5qup1sSqup-i2c2-data-clk-state gpio8gpio9qup2sVqup-i2c3-data-clk-stategpio12gpio13qup3sYqup-i2c4-data-clk-stategpio16gpio17qup4s\qup-i2c5-data-clk-stategpio206gpio207qup5sdqup-i2c6-data-clk-stategpio20gpio21qup6siqup-i2c8-data-clk-stategpio28gpio29qup8snqup-i2c9-data-clk-stategpio32gpio33qup9srqup-i2c10-data-clk-stategpio36gpio37qup10suqup-i2c11-data-clk-stategpio40gpio41qup11sxqup-i2c12-data-clk-stategpio44gpio45qup12s{qup-i2c13-data-clk-stategpio48gpio49qup13s~qup-i2c14-data-clk-stategpio52gpio53qup14squp-i2c15-data-clk-stategpio56gpio57qup15s2qup-i2c16-data-clk-stategpio60gpio61qup16s9qup-i2c17-data-clk-stategpio64gpio65qup17s<qup-i2c18-data-clk-stategpio68gpio69qup18s?qup-i2c19-data-clk-stategpio72gpio73qup19sBqup-i2c20-data-clk-stategpio76gpio77qup20sEqup-i2c21-data-clk-stategpio80gpio81qup21sJqup-spi0-cs-stategpio3qup0sPqup-spi0-data-clk-stategpio0gpio1gpio2qup0sOqup-spi1-cs-stategpio7qup1sUqup-spi1-data-clk-stategpio4gpio5gpio6qup1sTqup-spi2-cs-stategpio11qup2sXqup-spi2-data-clk-stategpio8gpio9gpio10qup2sWqup-spi3-cs-stategpio15qup3s[qup-spi3-data-clk-stategpio12gpio13gpio14qup3sZqup-spi4-cs-stategpio19qup4 }scqup-spi4-data-clk-stategpio16gpio17gpio18qup4sbqup-spi5-cs-stategpio85qup5shqup-spi5-data-clk-stategpio206gpio207gpio84qup5sgqup-spi6-cs-stategpio23qup6skqup-spi6-data-clk-stategpio20gpio21gpio22qup6sjqup-spi8-cs-stategpio31qup8sqqup-spi8-data-clk-stategpio28gpio29gpio30qup8spqup-spi9-cs-stategpio35qup9stqup-spi9-data-clk-stategpio32gpio33gpio34qup9ssqup-spi10-cs-stategpio39qup10swqup-spi10-data-clk-stategpio36gpio37gpio38qup10svqup-spi11-cs-stategpio43qup11szqup-spi11-data-clk-stategpio40gpio41gpio42qup11syqup-spi12-cs-stategpio47qup12s}qup-spi12-data-clk-stategpio44gpio45gpio46qup12s|qup-spi13-cs-stategpio51qup13squp-spi13-data-clk-stategpio48gpio49gpio50qup13squp-spi14-cs-stategpio55qup14squp-spi14-data-clk-stategpio52gpio53gpio54qup14squp-spi15-cs-stategpio59qup15s8qup-spi15-data-clk-stategpio56gpio57gpio58qup15s7qup-spi16-cs-stategpio63qup16s;qup-spi16-data-clk-stategpio60gpio61gpio62qup16s:qup-spi17-cs-stategpio67qup17s>qup-spi17-data-clk-stategpio64gpio65gpio66qup17s=qup-spi18-cs-stategpio71qup18 }sAqup-spi18-data-clk-stategpio68gpio69gpio70qup18 }s@qup-spi19-cs-stategpio75qup19 }sDqup-spi19-data-clk-stategpio72gpio73gpio74qup19 }sCqup-spi20-cs-stategpio79qup20sIqup-spi20-data-clk-stategpio76gpio77gpio78qup20sHqup-spi21-cs-stategpio83qup21sLqup-spi21-data-clk-stategpio80gpio81gpio82qup21sKqup-uart7-rx-stategpio26qup7 }smqup-uart7-tx-stategpio27qup7 }slqup-uart20-default-stategpio76gpio77gpio78gpio79qup20sFts-reset-default-stategpio20gpio } s`ts-int-default-stategpio21gpio }satelec-pwr-en-stategpio23gpio } ssd-card-det-n-stategpio92gpiospinctrl@3440000?qcom,sm8450-lpass-lpi-pinctrl DMyfg  coreaudiostx-swr-active-statesclk-pinsgpio0 swr_tx_clk  }data-pinsgpio1gpio2gpio14 swr_tx_data  rx-swr-active-statesclk-pinsgpio3 swr_rx_clk  }data-pins gpio4gpio5 swr_rx_data  dmic01-default-stateclk-pinsgpio6 dmic1_clk data-pinsgpio7 dmic1_datadmic23-default-stateclk-pinsgpio8 dmic2_clk data-pinsgpio9 dmic2_datawsa-swr-active-statesclk-pinsgpio10 wsa_swr_clk  }data-pinsgpio11 wsa_swr_data  wsa2-swr-active-statesclk-pinsgpio15 wsa2_swr_clk  }data-pinsgpio16wsa2_swr_data  sram@146aa000#?qcom,sm8450-imemsysconsimple-mfdjj pil-reloc@94c?qcom,pil-reloc-info Liommu@15000000!?qcom,sm8450-smmu-500arm,mmu-500%2Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYs0interrupt-controller@17100000 ?arm,gic-v3       smsi-controller@17140000?arm,gic-v3-its  stimer@17420000?arm,armv7-timer-mem  Bc$frame@17421000 BB frame@17423000   B0 Fdisabledframe@17425000   BP Fdisabledframe@17427000   Bp Fdisabledframe@17429000   B Fdisabledframe@1742b000   B Fdisabledframe@1742d000  B Fdisabledrsc@17a00000 apps_rsc?qcom,rpmh-rsc@drv-0drv-1drv-2drv-3$     bcm-voter?qcom,bcm-votersclock-controller?qcom,sm8450-rpmh-clkV xos*power-controller?qcom,sm8450-rpmhpdsQopp-table?operating-points-v2sopp1opp20s%opp38sopp4@s&opp5Popp6s'opp7opp8sopp9opp10sopp11@opp12Popp13opp14regulators-0?qcom,pm8350-rpmh-regulators 0b = K Y g u           smps10 pm8350_s10w@w@smps11 pm8350_s11 ؀ssmps12 pm8350_s12@\sldo1 pm8350_l1   0sldo2 pm8350_l2.. 0sldo3 pm8350_l3 @ @ 0ldo5 pm8350_l5 m  0sldo6 pm8350_l6OO 0sldo7 pm8350_l7&5@&5@ 0ldo9 pm8350_l9OO 0regulators-1?qcom,pm8350c-rpmh-regulators 0c = K Y g u      G Y j   smps1 pm8350c_s1w@@ssmps10 pm8350c_s10B@bob vreg_bob3@03345 equp-corequp-config x66}txrx  Fdisabledi2c@88c000?qcom,geni-i2c@ se1~Mdefault[? I H3345 equp-corequp-configqup-memory x66}txrx Fdisabledspi@88c000?qcom,geni-spi@ se1~ IMdefault[@A03345 equp-corequp-config x66}txrx  Fdisabledi2c@890000?qcom,geni-i2c@ se1Mdefault[B J H3345 equp-corequp-configqup-memory x66}txrxFokaycB@spi@890000?qcom,geni-spi@ se1 JMdefault[CD03345 equp-corequp-config x66}txrx  Fdisabledi2c@894000?qcom,geni-i2c@@ se1Mdefault[E K H3345 equp-corequp-configqup-memory x66}txrx Fdisabledserial@894000?qcom,geni-uart@@ se1Mdefault[F K0335Gequp-corequp-config Fdisabledspi@894000?qcom,geni-spi@@ se1 KMdefault[HI03345 equp-corequp-config x66}txrx  Fdisabledi2c@898000?qcom,geni-i2c@ se1Mdefault[J C H3345 equp-corequp-configqup-memory x66}txrx Fdisabledspi@898000?qcom,geni-spi@ se1 CMdefault[KL03345 equp-corequp-config x66}txrx  Fdisableddma-controller@900000(?qcom,sm8450-gpi-dmaqcom,sm6350-gpi-dma! .~ ?0FokaysNgeniqup@9c0000?qcom,geni-se-qup   m-ahbs-ahb11 ?033 equp-core Fokayi2c@980000?qcom,geni-i2c@ se1VMdefault[M Y H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@980000?qcom,geni-spi@ se1V YMdefault[OPQRH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@984000?qcom,geni-i2c@@ se1XMdefault[S Z H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@984000?qcom,geni-spi@@ se1X ZMdefault[TUH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@988000?qcom,geni-i2c@ se1ZMdefault[V [ H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@988000?qcom,geni-spi@ se1Z [Mdefault[WXH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@98c000?qcom,geni-i2c@ se1\Mdefault[Y \ H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@98c000?qcom,geni-spi@ se1\ \Mdefault[Z[H3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@990000?qcom,geni-i2c@ se1^Mdefault[\ ] H3345 equp-corequp-configqup-memory xNN}txrxFokayctouchscreen@48?samsung,s6sy761H]^_Mdefault[`aspi@990000?qcom,geni-spi@ se1^ ]Mdefault[bcQRH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@994000?qcom,geni-i2c@@ se1`Mdefault[d ^ H3345 equp-corequp-configqup-memory xNN}txrxFokaycpmic@75 ?dlg,slg51000u eMdefault[fregulatorsldo1slg51000_a_ldo1$2Zldo2slg51000_a_ldo2$2Zldo3slg51000_a_ldo3O98pldo4slg51000_a_ldo4O98pldo5slg51000_a_ldo5 Oldo6slg51000_a_ldo6 Oldo7slg51000_a_ldo7O98pspi@994000?qcom,geni-spi@@ se1` ^Mdefault[ghH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledi2c@998000?qcom,geni-i2c@ se1bMdefault[i _ H3345 equp-corequp-configqup-memory xNN}txrx Fdisabledspi@998000?qcom,geni-spi@ se1b _Mdefault[jkH3345 equp-corequp-configqup-memory xNN}txrx  Fdisabledserial@99c000?qcom,geni-debug-uart@ se1dMdefault[lm `0335Gequp-corequp-configFokaydma-controller@a00000(?qcom,sm8450-gpi-dmaqcom,sm6350-gpi-dma%&'()*! .~ ?0VFokaysogeniqup@ac0000?qcom,geni-se-qup`  m-ahbs-ahb11 ?0C33 equp-core Fokayi2c@a80000?qcom,geni-i2c@ se1hMdefault[n a H3345 equp-corequp-configqup-memory xoo}txrx Fdisabledspi@a80000?qcom,geni-spi@ se1h aMdefault[pqH3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a84000?qcom,geni-i2c@@ se1jMdefault[r b H3345 equp-corequp-configqup-memory xoo}txrxFokaycspi@a84000?qcom,geni-spi@@ se1j bMdefault[stH3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a88000?qcom,geni-i2c@ se1lMdefault[u c H3345 equp-corequp-configqup-memory xoo}txrx Fdisabledspi@a88000?qcom,geni-spi@ se1l cMdefault[vwH3345 equp-corequp-configqup-memory xoo}txrx Fokayi2c@a8c000?qcom,geni-i2c@ se1nMdefault[x d H3345 equp-corequp-configqup-memory xoo}txrx Fdisabledspi@a8c000?qcom,geni-spi@ se1n dMdefault[yzH3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a90000?qcom,geni-i2c@ se1pMdefault[{ e H3345 equp-corequp-configqup-memory xoo}txrx Fdisabledspi@a90000?qcom,geni-spi@ se1p eMdefault[|}H3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a94000?qcom,geni-i2c@@ se1rMdefault[~ fH3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledspi@a94000?qcom,geni-spi@@ se1r fMdefault[H3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledi2c@a98000?qcom,geni-i2c@ se1tMdefault[ kH3345 equp-corequp-configqup-memory xoo}txrx FokaycB@speaker-amp@40?cirrus,cs35l41@] ] %@\tspeaker-amp@41?cirrus,cs35l41A] ] %@\tspi@a98000?qcom,geni-spi@ se1t kMdefault[H3345 equp-corequp-configqup-memory xoo}txrx  Fdisabledrng@10c3000?qcom,sm8450-trngqcom,trng 0pcie@1c00000?qcom,pcie-sm8450-pcie0P0`` ``parfdbielbiatuconfig{pci 8` `0`0 YY`(msi0msi1msi2msi3msi4msi5msi6msi7 05G3epcie-memcpu-pcie\1617,*1/11131819111 ] pipepipe_muxphy_piperefauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbuaggre0aggre1 *0041;pci1G,Lpciephy V]^ b]`Mdefault[Fokaymopp-table?operating-points-v2sopp-2500000&%&|Аopp-5000000LK@&| opp-8000000z|pcie@0{pci phy@1c06000 ?qcom,sm8450-qmp-gen3x1-pcie-phy` (1/11121416 auxcfg_ahbrefrchngpipepcie_0_pipe_clkV41;phy14Fokays,pcie@1c08000?qcom,pcie-sm8450-pcie1P0@@ @@parfdbielbiatuconfig{pci 8@ @0@0 ZZ`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7 05G4epcie-memcpu-pcieX1C1D-*1:1<1>1E1F11 V pipepipe_muxphy_piperefauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbuaggre1 *0041 ;pci1G-Lpciephy V]a b]cMdefault[ Fdisabledopp-table?operating-points-v2sopp-2500000&%&|Аopp-5000000LK@&| opp-10000000&|B@opp-8000000z|opp-16000000$| hopp-32000000H|<pcie@0{pci phy@1c0e000 ?qcom,sm8450-qmp-gen4x2-pcie-phy (1?1<1=1A1C auxcfg_ahbrefrchngpipepcie_1_pipe_clkV41 ;phy1A Fdisableds-interconnect@1500000?qcom,sm8450-config-nocPsGinterconnect@1680000?qcom,sm8450-system-nochs4interconnect@16c0000?qcom,sm8450-pcie-anoclsinterconnect@16e0000?qcom,sm8450-aggre1-nocn1 1 sinterconnect@1700000?qcom,sm8450-aggre2-nocp 11 1 * sinterconnect@1740000?qcom,sm8450-mmss-noctshwlock@1f40000?qcom,tcsr-mutexs(syscon@1fc0000?qcom,sm8450-tcsrsysconsgpu@3d00000?qcom,adreno-730.1qcom,adreno0#kgsl_3d0_reg_memorycx_memcx_dbgc ,? Fdisabledszap-shaderopp-table?operating-points-v2sopp-8180000000opp-791000000/%@opp-734000000+opp-640000000&%opp-599000000#opp-545000000 | @opp-492000000SSopp-421000000@Popp-350000000ܓ@opp-317000000 @@opp-285000000@8opp-220000000 8gmu@3d6a000&?qcom,adreno-gmu-730.1qcom,adreno-gmu0֠P )gmursccgmu_pdc01hfigmu811-! ahbgmucxoaximemnochubdemetcxgx ?sopp-table?operating-points-v2sopp-500000000eopp-200000000 @clock-controller@3d90000?qcom,sm8450-gpucc*1+1,Vsiommu@3da0000@?qcom,sm8450-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500%28>?@A01-1. gmuhubhlosbusifaceahbEsphy@88e30000?qcom,sm8450-usb-hs-phyqcom,usb-snps-hs-7nm-phy0Fokay* ref41R`sphy@88e8000?qcom,sm8450-qmp-usb3-dp-phy0 1*11 auxrefcom_auxusb3_pipe411 ;phycommonVnFokays/ports port@0endpointport@1endpointsport@2endpointsremoteproc@2400000?qcom,sm8450-slpi-pas@@<x #wdogfatalreadyhandoverstop-ack* xoQQlcxlmxstopFokay!qcom/sm8450/Sony/nagara/slpi.mbnglink-edgex) )slpifastrpc ?qcom,fastrpcfastrpcglink-apps-dspsdsp compute-cb@1?qcom,fastrpc-compute-cb ?0Acompute-cb@2?qcom,fastrpc-compute-cb ?0Bcompute-cb@3?qcom,fastrpc-compute-cb ?0Ccodec@31e0000?qcom,sm8450-lpass-wsa-macro4DEfg mclknplmacrodcodecfsgenV wsa2-mclkssoundwire@31f0000?qcom,soundwire-v1.7.0   ifaceWSA2[Mdefault??/   BUgx  Fdisabledcodec@3200000?qcom,sm8450-lpass-rx-macro 4@Ffg mclknplmacrodcodecfsgenVmclkssoundwire@3210000?qcom,soundwire-v1.7.0!   ifaceRX[Mdefault/ B Ugx  Fdisabledcodec@3220000?qcom,sm8450-lpass-tx-macro"4@Ffg mclknplmacrodcodecfsgenVmclkscodec@3240000?qcom,sm8450-lpass-wsa-macro$4BCfg mclknplmacrodcodecfsgenVmclkssoundwire@3250000?qcom,soundwire-v1.7.0%   ifaceWSA[Mdefault??/   BUgx  Fdisabledsoundwire@33b0000?qcom,soundwire-v1.7.0;  corewakeup ifaceTX[Mdefault/BUgx  Fdisabledcodec@33f0000?qcom,sm8450-lpass-va-macro?09fgF mclkmacrodcodecnplVfsgen Fdisabledsremoteproc@30000000?qcom,sm8450-adsp-pas0<x#wdogfatalreadyhandoverstop-ack* xoQQlcxlmxstopFokay!qcom/sm8450/Sony/nagara/adsp.mbnglink-edgex) )lpassgpr ?qcom,gpr adsp_apps service@1 ?qcom,q6apmavs/audiomsm/adsp/audio_pddais?qcom,q6apm-dais ?0bedais?qcom,q6apm-lpass-daisservice@2 ?qcom,q6prmavs/audiomsm/adsp/audio_pdclock-controller?qcom,q6prm-lpass-clocksVsfastrpc ?qcom,fastrpcfastrpcglink-apps-dspadsp compute-cb@3?qcom,fastrpc-compute-cb ?0compute-cb@4?qcom,fastrpc-compute-cb ?0compute-cb@5?qcom,fastrpc-compute-cb ?0remoteproc@32300000?qcom,sm8450-cdsp-pas20@@xB#wdogfatalreadyhandoverstop-ack* xoQQ cxmxcstopFokay!qcom/sm8450/Sony/nagara/cdsp.mbnglink-edgex) )cdspfastrpc ?qcom,fastrpcfastrpcglink-apps-dspcdsp compute-cb@1?qcom,fastrpc-compute-cb?0!a0! compute-cb@2?qcom,fastrpc-compute-cb?0!b0" compute-cb@3?qcom,fastrpc-compute-cb?0!c0# compute-cb@4?qcom,fastrpc-compute-cb?0!d0$ compute-cb@5?qcom,fastrpc-compute-cb?0!e0% compute-cb@6?qcom,fastrpc-compute-cb?0!f0& compute-cb@7?qcom,fastrpc-compute-cb?0!g0' compute-cb@8?qcom,fastrpc-compute-cb?0!h0( remoteproc@4080000?qcom,sm8450-mpss-pas@@Lx0wdogfatalreadyhandoverstop-ackshutdown-ack* xoQQ cxmssstop Fdisabledglink-edgex) )modemclock-controller@aaf0000?qcom,sm8450-videocc *1Q&Vcci@ac15000!?qcom,sm8450-cciqcom,msm8996-cci P ({ - camnoc_axislow_ahb_srccpas_ahbccicci_src[Mdefaultsleep Fdisabled i2c-bus@0cB@ i2c-bus@1cB@ cci@ac16000!?qcom,sm8450-cciqcom,msm8996-cci ` ({ - camnoc_axislow_ahb_srccpas_ahbccicci_src[Mdefaultsleep Fdisabled i2c-bus@0cB@ i2c-bus@1cB@ clock-controller@ade0000?qcom,sm8450-camcc 1**+Q&V Fdisabledsdisplay-subsystem@ae00000?qcom,sm8450-mdss mdssH5Gemdp0-memmdp1-memcpu-cfg4 11< S ?0(  Fdisabledsdisplay-controller@ae01000?qcom,sm8450-dpu   mdpvbif011?<K! busnrt_busifacelutcorevsyncK$Qports port@0endpointsport@1endpointsport@2endpointsopp-table?operating-points-v2sopp-172000000 @opp-200000000 &opp-325000000_@'opp-375000000Z opp-500000000edisplayport-controller@ae90000?qcom,sm8450-dpqcom,sm8350-dpP      ( ; core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel//G/LdpQ Fdisabledports port@0endpointsport@1endpointsopp-table?operating-points-v2sopp-160000000 h&opp-270000000߀'opp-540000000 /opp-8100000000Gdsi@ae94000(?qcom,sm8450-dsi-ctrlqcom,mdss-dsi-ctrl @ dsi_ctrl0A71$ bytebyte_intfpixelcoreifacebusBQGLdsi  Fdisabledports port@0endpointsport@1endpointopp-table?operating-points-v2sopp-187500000 -&opp-300000000'opp-358000000Vphy@ae94400?qcom,sm8450-dsi-phy-5nm0 D F I`dsi_phydsi_phy_lanedsi_pllV*  ifaceref Fdisabledsdsi@ae96000(?qcom,sm8450-dsi-ctrlqcom,mdss-dsi-ctrl ` dsi_ctrl0 C91$ bytebyte_intfpixelcoreifacebusDQGLdsi  Fdisabledports port@0endpointsport@1endpointphy@ae96400?qcom,sm8450-dsi-phy-5nm0 d f i`dsi_phydsi_phy_lanedsi_pllV*  ifaceref Fdisabledsclock-controller@af00000?qcom,sm8450-dispcc d**1+//Q&V Fdisabledsinterrupt-controller@b220000?qcom,sm8450-pdcqcom,pdc "@dH0 (6^a}?~ sthermal-sensor@c263000 ?qcom,sm8450-tsensqcom,tsens-v2 &0 " @uplowcriticalNsthermal-sensor@c265000 ?qcom,sm8450-tsensqcom,tsens-v2 &P "0@uplowcriticalNspower-management@c300000#?qcom,sm8450-aoss-qmpqcom,aoss-qmp 0x) )Vssram@c3f0000?qcom,rpmh-stats ?spmi@c400000?qcom,spmi-pmic-arbP @0 P@ D L Bcorechnlsobsrvrintrcnfg periph_irq xdl pmic@1?qcom,pm8350qcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800 ?qcom,pm8350-gpioqcom,spmi-gpioy NASSIGN1_THERMLCD_IDSDR_MMW_THERMRF_IDNCVOL_DOWN_NNCNCNCPM8350_OPTIONsvol-down-n-stategpio6normalspmic@3?qcom,pm8350bqcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800!?qcom,pm8350b-gpioqcom,spmi-gpioye/CAM_PWR_A_CSNCNCNCSNAPSHOT_NNCNCFOCUS_Nsecam-pwr-a-cs-stategpio1normal sfsnapshot-n-stategpio5normalsfocus-n-stategpio8normalspmic@2?qcom,pm8350cqcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800!?qcom,pm8350c-gpioqcom,spmi-gpioy UFL_STROBE_TRIG_WIDEFL_STROBE_TRIG_TELEWLC_IDWLC_TXPWR_ENNCNCNCNCWIDEC_PWR_ENsled-controller@ee00+?qcom,pm8350c-flash-ledqcom,spmi-flash-led Fdisabledpwm?qcom,pm8350c-pwm  Fdisabledpmic@7?qcom,pm8450qcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800 ?qcom,pm8450-gpioqcom,spmi-gpioy FP_LDO_ENspmic@0?qcom,pmk8350qcom,spmi-pmic pon@1300?qcom,pmk8350-pon hlospbspwrkey?qcom,pmk8350-pwrkey !tFokayresin?qcom,pmk8350-resinFokay !sadc@3100?qcom,spmi-adc71 1 ,adc-tm@3400?qcom,spmi-adc-tm5-gen244 N Fdisabledrtc@6100?qcom,pmk8350-rtcab rtcalarmb Fdisablednvram@7100?qcom,spmi-sdamq  qreboot-reason@48H >sgpio@b000!?qcom,pmk8350-gpioqcom,spmi-gpioy NCNCDISP_THERMPMK8350_OPTIONspmic@4?qcom,pmr735aqcom,spmi-pmic temp-alarm@a00?qcom,spmi-temp-alarm  Nsgpio@8800!?qcom,pmr735a-gpioqcom,spmi-gpioysmailbox@ed18000?qcom,sm8450-ipccqcom,ipccр  Cs)pinctrl@f100000?qcom,sm8450-tlmm0 y] O ] TELE_SPI_MISOTELE_SPI_MOSITELE_SPI_CLKTELE_SPI_CS_NWLC_I2C_SDAWLC_I2C_SCLNCPM8010_1_RESET_NWLC_INT_NNCNCNCDISP_ERR_FGHALL_INT_NALS_PROX_INT_NIMU1_INTTS_I2C_SDATS_I2C_SCLDISP_RESET_NDISP_VDDR_ENTS_RESET_NTS_INT_NUWIDEC_PWR_ENTELEC_PWR_ENCAM1_RESET_NLEO_CAM0_RESET_NDEBUG_UART_TXDEBUG_UART_RXFP_SPI_MISOFP_SPI_MOSIFP_SPI_CLKFP_SPI_CS_NNFC_I2C_SDANFC_I2C_SCLNFC_ENNFC_CLK_REQNFC_ESE_SPI_MISONFC_ESE_SPI_MOSINFC_ESE_SPI_CLKNFC_ESE_SPI_CSFP_INT_NNCFP_RESET_NWCD_RST_NNCNFC_DWL_REQNFC_IRQFORCE_USB_BOOTAPPS_I2C_1_SDAAPPS_I2C_1_SCLSBU_SW_OESBU_SW_SELSPK_AMP_I2C_SDASPK_AMP_I2C_SCLNCNCCAMSENSOR_I2C_SDACAMSENSOR_I2C_SCLGNSS_ELNA_EN0NCNCNCNCNCNCNCRGBC_IR_INTNCNCNCNCNCHAP_I2C_SDAHAP_I2C_SCLHAP_RST_NHAP_INT_NHST_BT_UART_CTSHST_BT_UART_RFRHST_BT_UART_TXHST_BT_UART_RXHST_WLAN_ENHST_BT_ENHST_SW_CTRLNCNCNCDISP_VSYNCNCNCHW_ID_0HW_ID_1USB_CC_DIRTRAY_DETSW_SERVICEPCIE0_RESET_NPCIE0_CLK_REQ_NPCIE0_WAKE_NOIS_ENABLE_WIDEDEBUG_GPIO0NCCAM_MCLK0CAM_MCLK1CAM_MCLK2CAM_MCLK3NCNCNCCAM_SOFNCAFEXPTMG_TELECCI_I2C0_SDACCI_I2C0_SCLCCI_I2C1_SDACCI_I2C1_SCLCCI_I2C2_SDACCI_I2C2_SCLNCCAM2_RESET_NNCEXT_VD0_XVSCAM3_RESET_NNCNCNCNCRF_ID_EXTENSION_2HAP_I2S_CLKHAP_I2S_DOUTHAP_TRG1HAP_I2S_SYNCUIM1_DATAUIM1_CLKUIM1_RESETTRAY_DETUIM2_DATAUIM2_CLKUIM2_RESETUIM2_PRESENTSM_RFFE0_CLKSM_RFFE0_DATASM_RFFE1_CLKSM_RFFE1_DATASM_MSS_GRFC4HST_AS_ENLAA_RX_ENNCSM_RFFE4_CLKSM_RFFE4_DATAWLAN_COEX_UART1_RXWLAN_COEX_UART1_TXRF_LCD_ID_ENRF_ID_EXTENSIONSM_MSS_GRFC12NFC_COLD_RSTNCNCSDR1_QLINK0_REQSDR1_QLINK0_ENSDR1_QLINK0_WMSS_RESET_NNCNCNCSDR2_QLINK2_REQSDR2_QLINK2_ENSDR2_QLINK2_WMSS_RESET_NWCD_SWR_TX_CLKWCD_SWR_TX_DATA0WCD_SWR_TX_DATA1WCD_SWR_RX_CLKWCD_SWR_RX_DATA0WCD_SWR_RX_DATA1SM_DMIC1_CLKSM_DMIC1_DATASM_DMIC2_CLKSM_DMIC2_DATASPK_AMP_I2S_CLKSPK_AMP_I2S_WSNCNCWCD_SWR_TX_DATA2SPK_AMP_I2S_ASP_DINSPK_AMP_I2S_ASP_DOUTSPK_AMP_INT_NSPK_AMP_RESET_NHST_BT_WLAN_SLIMBUS_CLKHST_BT_WLAN_SLIMBUS_DAT0NCNCNCNCMAG_I2C_SDAMAG_I2C_SCLIMU_SPI_MISOIMU_SPI_MOSIIMU_SPI_CLKIMU_SPI_CS_NSENSOR_I2C_SDASENSOR_I2C_SCLOIS_TELE_I2C_SDAOIS_TELE_I2C_SCLNCOIS_ENABLE_TELEHST_BLE_UART_TXHST_BLE_UART_RXHSTP_CLK_CFG_SELNCAPPS_I2C_0_SDAAPPS_I2C_0_SCLCCI_I2C3_SDACCI_I2C3_SCLs]sdc2-default-statesclk-pins sdc2_clk rcmd-pins sdc2_cmddata-pins sdc2_datasdc2-sleep-statesclk-pins sdc2_clk rcmd-pins sdc2_cmddata-pins sdc2_datacci0-default-stategpio110gpio111cci_i2cscci0-sleep-stategpio110gpio111cci_i2c scci1-default-stategpio112gpio113cci_i2cscci1-sleep-stategpio112gpio113cci_i2c scci2-default-stategpio114gpio115cci_i2cscci2-sleep-stategpio114gpio115cci_i2c scci3-default-stategpio208gpio209cci_i2cscci3-sleep-stategpio208gpio209cci_i2c spcie0-default-statesperst-pinsgpio94gpio clkreq-pinsgpio95pcie0_clkreqnwake-pinsgpio96gpiopcie1-default-statesperst-pinsgpio97gpio clkreq-pinsgpio98pcie1_clkreqnwake-pinsgpio99gpioqup-i2c0-data-clk-state gpio0gpio1qup0sMqup-i2c1-data-clk-state gpio4gpio5qup1sSqup-i2c2-data-clk-state gpio8gpio9qup2sVqup-i2c3-data-clk-stategpio12gpio13qup3sYqup-i2c4-data-clk-stategpio16gpio17qup4s\qup-i2c5-data-clk-stategpio206gpio207qup5sdqup-i2c6-data-clk-stategpio20gpio21qup6siqup-i2c8-data-clk-stategpio28gpio29qup8snqup-i2c9-data-clk-stategpio32gpio33qup9srqup-i2c10-data-clk-stategpio36gpio37qup10suqup-i2c11-data-clk-stategpio40gpio41qup11sxqup-i2c12-data-clk-stategpio44gpio45qup12s{qup-i2c13-data-clk-stategpio48gpio49qup13s~qup-i2c14-data-clk-stategpio52gpio53qup14squp-i2c15-data-clk-stategpio56gpio57qup15s2qup-i2c16-data-clk-stategpio60gpio61qup16s9qup-i2c17-data-clk-stategpio64gpio65qup17s<qup-i2c18-data-clk-stategpio68gpio69qup18s?qup-i2c19-data-clk-stategpio72gpio73qup19sBqup-i2c20-data-clk-stategpio76gpio77qup20sEqup-i2c21-data-clk-stategpio80gpio81qup21sJqup-spi0-cs-stategpio3qup0sPqup-spi0-data-clk-stategpio0gpio1gpio2qup0sOqup-spi1-cs-stategpio7qup1sUqup-spi1-data-clk-stategpio4gpio5gpio6qup1sTqup-spi2-cs-stategpio11qup2sXqup-spi2-data-clk-stategpio8gpio9gpio10qup2sWqup-spi3-cs-stategpio15qup3s[qup-spi3-data-clk-stategpio12gpio13gpio14qup3sZqup-spi4-cs-stategpio19qup4 rscqup-spi4-data-clk-stategpio16gpio17gpio18qup4sbqup-spi5-cs-stategpio85qup5shqup-spi5-data-clk-stategpio206gpio207gpio84qup5sgqup-spi6-cs-stategpio23qup6skqup-spi6-data-clk-stategpio20gpio21gpio22qup6sjqup-spi8-cs-stategpio31qup8sqqup-spi8-data-clk-stategpio28gpio29gpio30qup8spqup-spi9-cs-stategpio35qup9stqup-spi9-data-clk-stategpio32gpio33gpio34qup9ssqup-spi10-cs-stategpio39qup10swqup-spi10-data-clk-stategpio36gpio37gpio38qup10svqup-spi11-cs-stategpio43qup11szqup-spi11-data-clk-stategpio40gpio41gpio42qup11syqup-spi12-cs-stategpio47qup12s}qup-spi12-data-clk-stategpio44gpio45gpio46qup12s|qup-spi13-cs-stategpio51qup13squp-spi13-data-clk-stategpio48gpio49gpio50qup13squp-spi14-cs-stategpio55qup14squp-spi14-data-clk-stategpio52gpio53gpio54qup14squp-spi15-cs-stategpio59qup15s8qup-spi15-data-clk-stategpio56gpio57gpio58qup15s7qup-spi16-cs-stategpio63qup16s;qup-spi16-data-clk-stategpio60gpio61gpio62qup16s:qup-spi17-cs-stategpio67qup17s>qup-spi17-data-clk-stategpio64gpio65gpio66qup17s=qup-spi18-cs-stategpio71qup18 rsAqup-spi18-data-clk-stategpio68gpio69gpio70qup18 rs@qup-spi19-cs-stategpio75qup19 rsDqup-spi19-data-clk-stategpio72gpio73gpio74qup19 rsCqup-spi20-cs-stategpio79qup20sIqup-spi20-data-clk-stategpio76gpio77gpio78qup20sHqup-spi21-cs-stategpio83qup21sLqup-spi21-data-clk-stategpio80gpio81gpio82qup21sKqup-uart7-rx-stategpio26qup7 rsmqup-uart7-tx-stategpio27qup7 rslqup-uart20-default-stategpio76gpio77gpio78gpio79qup20sFts-reset-default-stategpio20gpio r s`ts-int-default-stategpio21gpio rsatelec-pwr-en-stategpio23gpio r ssd-card-det-n-stategpio92gpiosuwidec-pwr-en-stategpio22gpio r spinctrl@3440000?qcom,sm8450-lpass-lpi-pinctrl DMyfg  coreaudiostx-swr-active-statesclk-pinsgpio0 swr_tx_clk  rdata-pinsgpio1gpio2gpio14 swr_tx_data  rx-swr-active-statesclk-pinsgpio3 swr_rx_clk  rdata-pins gpio4gpio5 swr_rx_data  dmic01-default-stateclk-pinsgpio6 dmic1_clk data-pinsgpio7 dmic1_datadmic23-default-stateclk-pinsgpio8 dmic2_clk data-pinsgpio9 dmic2_datawsa-swr-active-statesclk-pinsgpio10 wsa_swr_clk  rdata-pinsgpio11 wsa_swr_data  wsa2-swr-active-statesclk-pinsgpio15 wsa2_swr_clk  rdata-pinsgpio16wsa2_swr_data  sram@146aa000#?qcom,sm8450-imemsysconsimple-mfdjj pil-reloc@94c?qcom,pil-reloc-info Liommu@15000000!?qcom,sm8450-smmu-500arm,mmu-500%2Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYs0interrupt-controller@17100000 ?arm,gic-v3       smsi-controller@17140000?arm,gic-v3-its  stimer@17420000?arm,armv7-timer-mem  Bc$frame@17421000 BB frame@17423000   B0 Fdisabledframe@17425000   BP Fdisabledframe@17427000   Bp Fdisabledframe@17429000   B Fdisabledframe@1742b000   B Fdisabledframe@1742d000  B Fdisabledrsc@17a00000 apps_rsc?qcom,rpmh-rsc@drv-0drv-1drv-2drv-3$     bcm-voter?qcom,bcm-votersclock-controller?qcom,sm8450-rpmh-clkV xos*power-controller?qcom,sm8450-rpmhpdsQopp-table?operating-points-v2sopp1opp20s%opp38sopp4@s&opp5Popp6s'opp7opp8sopp9opp10sopp11@opp12Popp13opp14regulators-0?qcom,pm8350-rpmh-regulators 0b = K Y g u           smps10 pm8350_s10w@w@smps11 pm8350_s11 ؀ssmps12 pm8350_s12@\sldo1 pm8350_l1   0sldo2 pm8350_l2.. 0sldo3 pm8350_l3 @ @ 0ldo5 pm8350_l5 m  0sldo6 pm8350_l6OO 0sldo7 pm8350_l7&5@&5@ 0ldo9 pm8350_l9OO 0regulators-1?qcom,pm8350c-rpmh-regulators 0c = K Y g u      G Y j   smps1 pm8350c_s1w@@ssmps10 pm8350c_s10B@bob vreg_bob3@ J/6Q ^disableds5geniqup@8c00002qcom,geni-se-qup = em-ahbs-ahb{00 J/#Q ^okayi2c@8800002qcom,geni-i2c@ese{0oqdefault1  u H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8800002qcom,geni-spi@ese{0o  uqdefault67H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8840002qcom,geni-i2c@@ese{0qqdefault8  G H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8840002qcom,geni-spi@@ese{0q  Gqdefault9:H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8880002qcom,geni-i2c@ese{0sqdefault;  H H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8880002qcom,geni-spi@ese{0s  Hqdefault<=H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@88c0002qcom,geni-i2c@ese{0uqdefault>  I H2234qup-corequp-configqup-memory 55txrx ^disabledspi@88c0002qcom,geni-spi@ese{0u  Iqdefault?@H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8900002qcom,geni-i2c@ese{0wqdefaultA  J H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8900002qcom,geni-spi@ese{0w  JqdefaultBCH2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8940002qcom,geni-i2c@@ese{0yqdefaultD  K H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8940002qcom,geni-spi@@ese{0y  KqdefaultEFH2234qup-corequp-configqup-memory 55txrx  ^disabledserial@8980002qcom,geni-uart@ese{0{qdefaultGH  02234qup-corequp-config^okaybluetooth2qcom,wcn7850-btIJKLMN O0i2c@89c0002qcom,geni-i2c@ese{0}qdefaultP   H2234qup-corequp-configqup-memory 55txrx ^disabledspi@89c0002qcom,geni-spi@ese{0}  qdefaultQRH2234qup-corequp-configqup-memory 55txrx  ^disabledgeniqup@9c00002qcom,geni-se-i2c-master-hub es-ahb{0Z =^okayi2c@9800002qcom,geni-i2c-master-hub@esecore{0F0EqdefaultS   02234qup-corequp-config ^disabledi2c@9840002qcom,geni-i2c-master-hub@@esecore{0H0EqdefaultT   02234qup-corequp-config ^disabledi2c@9880002qcom,geni-i2c-master-hub@esecore{0J0EqdefaultU   02234qup-corequp-config^okaytypec-mux@42 2fcs,fsa4480B%V0<portendpointOWsi2c@98c0002qcom,geni-i2c-master-hub@esecore{0L0EqdefaultX   02234qup-corequp-config ^disabledi2c@9900002qcom,geni-i2c-master-hub@esecore{0N0EqdefaultY   02234qup-corequp-config ^disabledi2c@9940002qcom,geni-i2c-master-hub@@esecore{0P0EqdefaultZ   02234qup-corequp-config ^disabledi2c@9980002qcom,geni-i2c-master-hub@esecore{0R0Eqdefault[   02234qup-corequp-config ^disabledi2c@99c0002qcom,geni-i2c-master-hub@esecore{0T0Eqdefault\   02234qup-corequp-config ^disabledi2c@9a00002qcom,geni-i2c-master-hub@esecore{0V0Eqdefault]   02234qup-corequp-config ^disabledi2c@9a40002qcom,geni-i2c-master-hub@@esecore{0X0Eqdefault^   02234qup-corequp-config ^disableddma-controller@a00000(2qcom,sm8550-gpi-dmaqcom,sm6350-gpi-dma! %&'()*, 9 J/Q^okaysageniqup@ac00002qcom,geni-se-qup = em-ahbs-ahb{00 J/22 qup-coreQ ^okayi2c@a800002qcom,geni-i2c@ese{0]qdefault_  a H2234`qup-corequp-configqup-memory aatxrx^okaychdmi-bridge@2b2lontium,lt9611uxc+ vb _bkc%defqdefaultports port@0endpointOgsport@2endpointOhsspi@a800002qcom,geni-spi@ese{0]  aqdefaultijH2234`qup-corequp-configqup-memory aatxrx  ^disabledi2c@a840002qcom,geni-i2c@@ese{0_qdefaultk  b H2234`qup-corequp-configqup-memory aatxrx ^disabledspi@a840002qcom,geni-spi@@ese{0_  bqdefaultlmH2234`qup-corequp-configqup-memory aatxrx  ^disabledi2c@a880002qcom,geni-i2c@ese{0aqdefaultn  c H2234`qup-corequp-configqup-memory aatxrx ^disabledspi@a880002qcom,geni-spi@ese{0a  cqdefaultopH2234`qup-corequp-configqup-memory aatxrx  ^disabledi2c@a8c0002qcom,geni-i2c@ese{0cqdefaultq  d H2234`qup-corequp-configqup-memory aatxrx ^disabledspi@a8c0002qcom,geni-spi@ese{0c  dqdefaultrsH2234`qup-corequp-configqup-memory aatxrx  ^disabledi2c@a900002qcom,geni-i2c@ese{0eqdefaultt  e H2234`qup-corequp-configqup-memory aatxrx ^disabledspi@a900002qcom,geni-spi@ese{0e  eqdefaultuvH2234`qup-corequp-configqup-memory aatxrx  ^disabledi2c@a940002qcom,geni-i2c@@ese{0gqdefaultw  fH2234`qup-corequp-configqup-memory aatxrx  ^disabledspi@a940002qcom,geni-spi@@ese{0g  fqdefaultxyH2234`qup-corequp-configqup-memory aatxrx  ^disabledi2c@a980002qcom,geni-i2c@ese{0iqdefaultz  kH2234`qup-corequp-configqup-memory aatxrx  ^disabledspi@a980002qcom,geni-spi@ese{0i  kqdefault{|H2234`qup-corequp-configqup-memory aatxrx  ^disabledserial@a9c0002qcom,geni-debug-uart@ese{0kqdefault}  Cqup-corequp-config02234^okayinterconnect@15000002qcom,sm8550-cnoc-mainP0 sinterconnect@16000002qcom,sm8550-config-noc`b s4interconnect@16800002qcom,sm8550-system-nochЀ interconnect@16c00002qcom,sm8550-pcie-anocl"{00  s~interconnect@16e00002qcom,sm8550-aggre1-nocnD{00 s`interconnect@17000002qcom,sm8550-aggre2-nocp{  sinterconnect@17800002qcom,sm8550-mmss-nocx srng@10c30002qcom,sm8550-trngqcom,trng 0pcie@1c00000pci2qcom,pcie-sm8550P0`` ``vparfdbielbiatuconfig 8=` `0`0Q` (msi0msi1msi2msi3msi4msi5msi6msi78{0"0$0%0*0+00=eauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggr0~3pcie-memcpu-pcie  //0pci0+pciephy^okay  b` b^qdefaultpcie@0pci =wifi@0 2pci17cb,1107IJKLMN O!3phy@1c06000 2qcom,sm8550-qmp-gen3x2-pcie-phy` ({0"0$0&0(eauxcfg_ahbrefrchngpipe0phyE0&U0Vjpcie0_pipe_clk}^okays+pcie@1c08000pci2qcom,pcie-sm8550P0@@ @@vparfdbielbiatuconfig 8=@ @0@0Q` 34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@{0,0.0/0607000 Ieauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggrcnoc_sf_axiE0,U$0~3 pcie-memcpu-pcie  //00 pcilink_down0,pciephy^okay  bc baqdefaultpcie@0pci =phy@1c0e000 2qcom,sm8550-qmp-gen4x2-pcie-phy ({000.0204eauxcfg_ahbrefrchngpipe0 0 phyphy_nocsrE02U0Vjpcie1_pipe_clk}^okays,dma-controller@1dc4000 2qcom,bam-v1.7.4qcom,bam-v1.7.0@  !J//scrypto@1dfa000)2qcom,sm8550-qceqcom,sm8150-qceqcom,qceߠ`rxtxJ//memoryphy@1d800002qcom,sm8550-qmp-ufs-phy {0erefref_auxqref0ufsphyV}^okays-ufs@1d84000+2qcom,sm8550-ufshcqcom,ufshcjedec,ufs-2.0@0   -ufsphy0rst0 J/`Q0`34#ufs-ddrcpu-ufsnecore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@{0000000^okay _b% *6OHsopp-table2operating-points-v2sopp-75000000@Wxhxhopp-150000000@Wррopp-300000000@Wcrypto@1d88000;2qcom,sm8550-inline-crypto-engineqcom,inline-crypto-engine؀{0shwlock@1f400002qcom,tcsr-mutex^s'clock-controller@1fc00002qcom,sm8550-tcsrsyscon{Vsgpu@3d00000!2qcom,adreno-43050a01qcom,adreno0#vkgsl_3d0_reg_memorycx_memcx_dbgc  ,Jl%^okayszap-shaderuqcom/sm8550/a740_zap.mbnopp-table2operating-points-v2sopp-680000000W(opp-615000000W$'opp-550000000W Uopp-475000000WOPopp-401000000W@@opp-348000000W<opp-295000000WW8opp-220000000W 4gmu@3d6a000&2qcom,adreno-gmu-740.1qcom,adreno-gmu0֠P (vgmursccgmu_pdc 01hfigmu8{0 0 !eahbgmucxoaximemnochubdemetcxgx Jsopp-table2operating-points-v2sopp-500000000Weopp-200000000W @clock-controller@3d900002qcom,sm8550-gpucc{)00Vsiommu@3da0000@2qcom,sm8550-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008 >?@A { 0 0!ehlosbusifaceahbQsipa@3f400002qcom,sm8550-ipaJ//0P@vipa-regipa-sharedgsi8v(ipagsiipa-clock-queryipa-setup-ready{ ecore034memoryconfig*ipa-clock-enabled-validipa-clock-enabled^okayselfuqcom/sm8550/ipa_fws.mbnremoteproc@40800002qcom,sm8550-mpss-pas@@Lv0wdogfatalreadyhandoverstop-ackshutdown-ack{exo cxmss ustop^okay0qcom/sm8550/modem.mbnqcom/sm8550/modem_dtb.mbnglink-edgev( (mpsscodec@6aa00002qcom,sm8550-lpass-wsa-macro({DfgemclkmacrodcodecfsgenV jwsa2-mclkssoundwire@6ab00002qcom,soundwire-v2.0.0  {eifaceWSA2qdefault! 1?? F  Y l ~      ^disabledcodec@6ac00002qcom,sm8550-lpass-rx-macro({@fgemclkmacrodcodecfsgenVjmclkssoundwire@6ad00002qcom,soundwire-v2.0.0  {eifaceRXqdefault! 1? F  Y  l ~     ^okayscodec@0,42sdw20217010d00scodec@6ae00002qcom,sm8550-lpass-tx-macro({9fgemclkmacrodcodecfsgenVjmclkscodec@6b000002qcom,sm8550-lpass-wsa-macro({BfgemclkmacrodcodecfsgenVjmclkssoundwire@6b100002qcom,soundwire-v2.0.0  {eifaceWSAqdefault! 1?? F  Y l ~     ^okays#speaker@0,02sdw20217020400qdefault  * 8SpkrLeftJ s!speaker@0,12sdw20217020400qdefault  * 8SpkrRightJ s"soundwire@6d300002qcom,soundwire-v2.0.0  corewakeup{eifaceTXqdefault!\FYl~ ^okays codec@0,32sdw20217010d00uscodec@6d440002qcom,sm8550-lpass-va-macro@${9fgemclkmacrodcodecVjfsgenspinctrl@6e800002qcom,sm8550-lpass-lpi-pinctrl %{fg ecoreaudiostx-swr-active-statesclk-pinsgpio0 swr_tx_clkdata-pinsgpio1gpio2gpio14 swr_tx_datarx-swr-active-statesclk-pinsgpio3 swr_rx_clkdata-pins gpio4gpio5 swr_rx_datadmic01-default-stateclk-pinsgpio6 dmic1_clkdata-pinsgpio7 dmic1_data dmic23-default-stateclk-pinsgpio8 dmic2_clkdata-pinsgpio9 dmic2_data wsa-swr-active-statesclk-pinsgpio10 wsa_swr_clkdata-pinsgpio11 wsa_swr_datawsa2-swr-active-statesclk-pinsgpio15 wsa2_swr_clkdata-pinsgpio16wsa2_swr_dataspkr-1-sd-n-active-stategpio17gpio sspkr-2-sd-n-active-stategpio18gpio sinterconnect@74000002qcom,sm8550-lpass-lpiaon-noc@ interconnect@74300002qcom,sm8550-lpass-lpicx-nocC sinterconnect@7e400002qcom,sm8550-lpass-ag-noc mmc@8804000$2qcom,sm8550-sdhciqcom,sdhci-msm-v5@ hc_irqpwr_irq{00eifacecorexo J/@ d, (h034sdhc-ddrcpu-sdhc 8Q B^okay R  [qdefaultsleep e q ~ opp-table2operating-points-v2sopp-19200000W$opp-50000000Wopp-100000000Wopp-202000000W Fclock-controller@aaf00002qcom,sm8550-videocc  {)0Vcci@ac15000!2qcom,sm8550-cciqcom,msm8996-cci P  {ecamnoc_axicpas_ahbcci [qdefaultsleep ^disabled i2c-bus@0cB@ i2c-bus@1cB@ cci@ac16000!2qcom,sm8550-cciqcom,msm8996-cci `  { ecamnoc_axicpas_ahbcci [qdefaultsleep ^disabled i2c-bus@0cB@ cci@ac17000!2qcom,sm8550-cciqcom,msm8996-cci p  { ecamnoc_axicpas_ahbcci [qdefaultsleep ^disabled i2c-bus@0cB@ i2c-bus@1cB@ clock-controller@ade00002qcom,sm8550-camcc {0)*Vsdisplay-subsystem@ae000002qcom,sm8550-mdss vmdss  S {00=03 mdp0-memmdp1-mem J/ =^okaysdisplay-controller@ae010002qcom,sm8550-dpu   vmdpvbif 0{00@=I!ebusnrt_busifacelutcorevsyncEIU$ports port@0endpointOsport@1endpointOsport@2endpointOsopp-table2operating-points-v2sopp-200000000W opp-325000000W_@opp-375000000WZ opp-514000000Wdisplayport-controller@ae900002qcom,sm8550-dpqcom,sm8350-dpP      ({ ;ecore_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelE ...dp^okayports port@0endpointOsport@1endpointO sopp-table2operating-points-v2sopp-162000000W opp-270000000W߀opp-540000000W /opp-810000000W0Gdsi@ae94000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrl @ vdsi_ctrl 0{B80$ebytebyte_intfpixelcoreifacebusEC dsi ^okay ports port@0endpointOsport@1endpointO sgopp-table2operating-points-v2sopp-187500000W -opp-300000000Wopp-358000000WVphy@ae950002qcom,sm8550-dsi-phy-4nm0 P R Uvdsi_phydsi_phy_lanedsi_pll{ eifacerefV}^okay sdsi@ae96000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrl ` vdsi_ctrl 0{ D:0$ebytebyte_intfpixelcoreifacebusE E dsi  ^disabledports port@0endpointOsport@1endpointphy@ae970002qcom,sm8550-dsi-phy-4nm0 p r uvdsi_phydsi_phy_lanedsi_pll{ eifacerefV} ^disabledsclock-controller@af000002qcom,sm8550-dispcc \{)0*..Vsphy@88e30002qcom,sm8550-snps-eusb2-phy0T}{eref0^okayk sphy@88e80002qcom,sm8550-qmp-usb3-dp-phy0 {000eauxrefcom_auxusb3_pipe000 phycommonV}<^okays.ports port@0endpointOsport@1endpointOsport@2endpointOsusb@a6f88002qcom,sm8550-dwc3qcom,dwc3 o =0{0 0000&ecfg_noccoreifacesleepmock_utmixoE00U$ Dv<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq000`34$usb-ddrapps-usb^okayusb@a600000 2snps,dwc3 `   J/@ .usb2-phyusb3-phy     7 O g    Q ports port@0endpointOsport@1endpointOsinterrupt-controller@b2200002qcom,sm8550-pdcqcom,pdc "@d< ^^a}?~ sthermal-sensor@c271000 2qcom,sm8550-tsensqcom,tsens-v2 ' "   uplowcritical sthermal-sensor@c272000 2qcom,sm8550-tsensqcom,tsens-v2 '  "0  uplowcritical sthermal-sensor@c273000 2qcom,sm8550-tsensqcom,tsens-v2 '0 "@  uplowcritical spower-management@c300000#2qcom,sm8550-aoss-qmpqcom,aoss-qmp 0(v( (Vssram@c3f00002qcom,rpmh-stats ?spmi@c4000002qcom,spmi-pmic-arbP @0 P@ D L B@vcorechnlsobsrvrintrcnfg periph_irq v   pmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ spmic@d2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ s pmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    s gpio@8800 2qcom,pm8550-gpioqcom,spmi-gpio ssdc2-card-det-stategpio12normal  , ; Hsvolume-up-n-stategpio6normal H ; sled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-led ^disabledpwm!2qcom,pm8550-pwmqcom,pm8350c-pwm U^okay led@1status ` foffled@2status ` foffled@3status ` foffpmic@72qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    s gpio@8800!2qcom,pm8550b-gpioqcom,spmi-gpio sphy@fd002qcom,pm8550b-eusb2-repeater} t spmic@52qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    s gpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiospmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    s gpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@32qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@42qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@62qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon vhlospbspwrkey2qcom,pmk8350-pwrkey  t^okayresin2qcom,pmk8350-resin ^okay rrtc@61002qcom,pmk8350-rtcab vrtcalarm bnvram@71002qcom,spmi-sdamq  =qreboot-reason@48H sgpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpiossleep-clk-stategpio3func1   Hs&pmic@a2qcom,pmr735dqcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm   sgpio@8800!2qcom,pmr735d-gpioqcom,spmi-gpiospinctrl@f1000002qcom,sm8550-tlmm0  b  sbcci0-0-default-statessda-pinsgpio110 cci_i2c_sda ;scl-pinsgpio111 cci_i2c_scl ;cci0-0-sleep-statessda-pinsgpio110 cci_i2c_sda scl-pinsgpio111 cci_i2c_scl cci0-1-default-statessda-pinsgpio112 cci_i2c_sda ;scl-pinsgpio113 cci_i2c_scl ;cci0-1-sleep-statessda-pinsgpio112 cci_i2c_sda scl-pinsgpio113 cci_i2c_scl cci1-0-default-statessda-pinsgpio114 cci_i2c_sda ;scl-pinsgpio115 cci_i2c_scl ;cci1-0-sleep-statessda-pinsgpio114 cci_i2c_sda scl-pinsgpio115 cci_i2c_scl cci2-0-default-statessda-pinsgpio74 cci_i2c_sda ;scl-pinsgpio75 cci_i2c_scl ;cci2-0-sleep-statessda-pinsgpio74 cci_i2c_sda scl-pinsgpio75 cci_i2c_scl cci2-1-default-statessda-pinsgpio0 cci_i2c_sda ;scl-pinsgpio1 cci_i2c_scl ;cci2-1-sleep-statessda-pinsgpio0 cci_i2c_sda scl-pinsgpio1 cci_i2c_scl hub-i2c0-data-clk-stategpio16gpio17 i2chub0_se0 ;sShub-i2c1-data-clk-stategpio18gpio19 i2chub0_se1 ;sThub-i2c2-data-clk-stategpio20gpio21 i2chub0_se2 ;sUhub-i2c3-data-clk-stategpio22gpio23 i2chub0_se3 ;sXhub-i2c4-data-clk-state gpio4gpio5 i2chub0_se4 ;sYhub-i2c5-data-clk-state gpio6gpio7 i2chub0_se5 ;sZhub-i2c6-data-clk-state gpio8gpio9 i2chub0_se6 ;s[hub-i2c7-data-clk-stategpio10gpio11 i2chub0_se7 ;s\hub-i2c8-data-clk-stategpio206gpio207 i2chub0_se8 ;s]hub-i2c9-data-clk-stategpio84gpio85 i2chub0_se9 ;s^pcie0-default-statesperst-pinsgpio94gpio clkreq-pinsgpio95pcie0_clk_req_n ;wake-pinsgpio96gpio ;pcie1-default-statesperst-pinsgpio97gpio clkreq-pinsgpio98pcie1_clk_req_n ;wake-pinsgpio99gpio ;qup-i2c0-data-clk-stategpio28gpio29 qup1_se0 ;s_qup-i2c1-data-clk-stategpio32gpio33 qup1_se1 ;skqup-i2c2-data-clk-stategpio36gpio37 qup1_se2 ;snqup-i2c3-data-clk-stategpio40gpio41 qup1_se3 ;sqqup-i2c4-data-clk-stategpio44gpio45 qup1_se4 ;stqup-i2c5-data-clk-stategpio52gpio53 qup1_se5 ;swqup-i2c6-data-clk-stategpio48gpio49 qup1_se6 ;szqup-i2c8-data-clk-states1scl-pinsgpio57qup2_se0_l1_mira ;sda-pinsgpio56qup2_se0_l0_mira ;qup-i2c9-data-clk-stategpio60gpio61 qup2_se1 ;s8qup-i2c10-data-clk-stategpio64gpio65 qup2_se2 ;s;qup-i2c11-data-clk-stategpio68gpio69 qup2_se3 ;s>qup-i2c12-data-clk-state gpio2gpio3 qup2_se4 ;sAqup-i2c13-data-clk-stategpio80gpio81 qup2_se5 ;sDqup-i2c15-data-clk-stategpio72gpio106 qup2_se7 ;sPqup-spi0-cs-stategpio31 qup1_se0sjqup-spi0-data-clk-stategpio28gpio29gpio30 qup1_se0siqup-spi1-cs-stategpio35 qup1_se1smqup-spi1-data-clk-stategpio32gpio33gpio34 qup1_se1slqup-spi2-cs-stategpio39 qup1_se2spqup-spi2-data-clk-stategpio36gpio37gpio38 qup1_se2soqup-spi3-cs-stategpio43 qup1_se3ssqup-spi3-data-clk-stategpio40gpio41gpio42 qup1_se3srqup-spi4-cs-stategpio47 qup1_se4svqup-spi4-data-clk-stategpio44gpio45gpio46 qup1_se4suqup-spi5-cs-stategpio55 qup1_se5syqup-spi5-data-clk-stategpio52gpio53gpio54 qup1_se5sxqup-spi6-cs-stategpio51 qup1_se6s|qup-spi6-data-clk-stategpio48gpio49gpio50 qup1_se6s{qup-spi8-cs-stategpio59qup2_se0_l3_miras7qup-spi8-data-clk-stategpio56gpio57gpio58qup2_se0_l2_miras6qup-spi9-cs-stategpio63 qup2_se1s:qup-spi9-data-clk-stategpio60gpio61gpio62 qup2_se1s9qup-spi10-cs-stategpio67 qup2_se2s=qup-spi10-data-clk-stategpio64gpio65gpio66 qup2_se2s<qup-spi11-cs-stategpio71 qup2_se3s@qup-spi11-data-clk-stategpio68gpio69gpio70 qup2_se3s?qup-spi12-cs-stategpio119 qup2_se4sCqup-spi12-data-clk-stategpio2gpio3gpio118 qup2_se4sBqup-spi13-cs-stategpio83 qup2_se5sFqup-spi13-data-clk-stategpio80gpio81gpio82 qup2_se5sEqup-spi15-cs-stategpio75 qup2_se7sRqup-spi15-data-clk-stategpio72gpio106gpio74 qup2_se7sQqup-uart7-default-stategpio26gpio27 qup1_se7s}qup-uart14-default-stategpio78gpio79 qup2_se6 ;sGqup-uart14-cts-rts-stategpio76gpio77 qup2_se6 sHsdc2-sleep-statesclk-pins sdc2_clkcmd-pins sdc2_cmd ;data-pins sdc2_data ;sdc2-default-statesclk-pins sdc2_clkcmd-pins sdc2_cmd ; data-pins sdc2_data ; bt-default-states%bt-en-pinsgpio81gpiosw-ctrl-pinsgpio82gpio lt9611-irq-stategpio8gpioselt9611-rst-stategpio7gpiosfwcd-reset-n-active-stategpio108gpio swlan-en-stategpio80gpio s$iommu@15000000/2qcom,sm8550-smmu-500qcom,smmu-500arm,mmu-500 Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYQs/interrupt-controller@17100000 2arm,gic-v3  =      smsi-controller@171400002arm,gic-v3-its  &stimer@174200002arm,armv7-timer-memB=  frame@17421000BB  1 frame@17423000B0 1   ^disabledframe@17425000BP 1   ^disabledframe@17427000Bp 1   ^disabledframe@17429000B 1   ^disabledframe@1742b000B 1   ^disabledframe@1742d000B 1   ^disabledrsc@17a00000 apps_rsc2qcom,rpmh-rsc@vdrv-0drv-1drv-2drv-3$  >  N Z!bcm-voter2qcom,bcm-voters clock-controller2qcom,sm8550-rpmh-clkVexo{spower-controller2qcom,sm8550-rpmhpdsopp-table2operating-points-v2sopp-16opp-480sopp-524opp-568sopp-60<opp-64@sopp-80Popp-128sopp-144opp-192sopp-256sopp-320@opp-336Popp-384opp-416regulators-02qcom,pm8550-rpmh-regulators j z  V  V V V    $ 3bbob1 @vreg_bob1 O2K g J/6Q ^disableds5geniqup@8c00002qcom,geni-se-qup = em-ahbs-ahb{00 J/#Q  ^disabledi2c@8800002qcom,geni-i2c@ese{0oqdefault1  u H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8800002qcom,geni-spi@ese{0o  uqdefault67H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8840002qcom,geni-i2c@@ese{0qqdefault8  G H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8840002qcom,geni-spi@@ese{0q  Gqdefault9:H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8880002qcom,geni-i2c@ese{0sqdefault;  H H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8880002qcom,geni-spi@ese{0s  Hqdefault<=H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@88c0002qcom,geni-i2c@ese{0uqdefault>  I H2234qup-corequp-configqup-memory 55txrx ^disabledspi@88c0002qcom,geni-spi@ese{0u  Iqdefault?@H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8900002qcom,geni-i2c@ese{0wqdefaultA  J H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8900002qcom,geni-spi@ese{0w  JqdefaultBCH2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8940002qcom,geni-i2c@@ese{0yqdefaultD  K H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8940002qcom,geni-spi@@ese{0y  KqdefaultEFH2234qup-corequp-configqup-memory 55txrx  ^disabledserial@8980002qcom,geni-uart@ese{0{qdefaultGH  02234qup-corequp-config ^disabledi2c@89c0002qcom,geni-i2c@ese{0}qdefaultI   H2234qup-corequp-configqup-memory 55txrx ^disabledspi@89c0002qcom,geni-spi@ese{0}  qdefaultJKH2234qup-corequp-configqup-memory 55txrx  ^disabledgeniqup@9c00002qcom,geni-se-i2c-master-hub es-ahb{0Z =^okayi2c@9800002qcom,geni-i2c-master-hub@esecore{0F0EqdefaultL   02234qup-corequp-config ^disabledi2c@9840002qcom,geni-i2c-master-hub@@esecore{0H0EqdefaultM   02234qup-corequp-config ^disabledi2c@9880002qcom,geni-i2c-master-hub@esecore{0J0EqdefaultN   02234qup-corequp-config^okaytypec-mux@42 2fcs,fsa4480BOportendpointPsi2c@98c0002qcom,geni-i2c-master-hub@esecore{0L0EqdefaultQ   02234qup-corequp-config ^disabledi2c@9900002qcom,geni-i2c-master-hub@esecore{0N0EqdefaultR   02234qup-corequp-config ^disabledi2c@9940002qcom,geni-i2c-master-hub@@esecore{0P0EqdefaultS   02234qup-corequp-config ^disabledi2c@9980002qcom,geni-i2c-master-hub@esecore{0R0EqdefaultT   02234qup-corequp-config ^disabledi2c@99c0002qcom,geni-i2c-master-hub@esecore{0T0EqdefaultU   02234qup-corequp-config ^disabledi2c@9a00002qcom,geni-i2c-master-hub@esecore{0V0EqdefaultV   02234qup-corequp-config ^disabledi2c@9a40002qcom,geni-i2c-master-hub@@esecore{0X0EqdefaultW   02234qup-corequp-config ^disableddma-controller@a00000(2qcom,sm8550-gpi-dmaqcom,sm6350-gpi-dma! %&'()*, 9 J/Q ^disabledsZgeniqup@ac00002qcom,geni-se-qup = em-ahbs-ahb{00 J/22 qup-coreQ ^okayi2c@a800002qcom,geni-i2c@ese{0]qdefaultX  a H2234Yqup-corequp-configqup-memory ZZtxrx ^disabledspi@a800002qcom,geni-spi@ese{0]  aqdefault[\H2234Yqup-corequp-configqup-memory ZZtxrx  ^disabledi2c@a840002qcom,geni-i2c@@ese{0_qdefault]  b H2234Yqup-corequp-configqup-memory ZZtxrx ^disabledspi@a840002qcom,geni-spi@@ese{0_  bqdefault^_H2234Yqup-corequp-configqup-memory ZZtxrx  ^disabledi2c@a880002qcom,geni-i2c@ese{0aqdefault`  c H2234Yqup-corequp-configqup-memory ZZtxrx ^disabledspi@a880002qcom,geni-spi@ese{0a  cqdefaultabH2234Yqup-corequp-configqup-memory ZZtxrx  ^disabledi2c@a8c0002qcom,geni-i2c@ese{0cqdefaultc  d H2234Yqup-corequp-configqup-memory ZZtxrx ^disabledspi@a8c0002qcom,geni-spi@ese{0c  dqdefaultdeH2234Yqup-corequp-configqup-memory ZZtxrx  ^disabledi2c@a900002qcom,geni-i2c@ese{0eqdefaultf  e H2234Yqup-corequp-configqup-memory ZZtxrx ^disabledspi@a900002qcom,geni-spi@ese{0e  eqdefaultghH2234Yqup-corequp-configqup-memory ZZtxrx  ^disabledi2c@a940002qcom,geni-i2c@@ese{0gqdefaulti  fH2234Yqup-corequp-configqup-memory ZZtxrx  ^disabledspi@a940002qcom,geni-spi@@ese{0g  fqdefaultjkH2234Yqup-corequp-configqup-memory ZZtxrx  ^disabledi2c@a980002qcom,geni-i2c@ese{0iqdefaultl  kH2234Yqup-corequp-configqup-memory ZZtxrx  ^disabledspi@a980002qcom,geni-spi@ese{0i  kqdefaultmnH2234Yqup-corequp-configqup-memory ZZtxrx  ^disabledserial@a9c0002qcom,geni-debug-uart@ese{0kqdefaulto  Cqup-corequp-config02234^okayinterconnect@15000002qcom,sm8550-cnoc-mainP0 sqinterconnect@16000002qcom,sm8550-config-noc`b s4interconnect@16800002qcom,sm8550-system-nochЀ interconnect@16c00002qcom,sm8550-pcie-anocl"{00  spinterconnect@16e00002qcom,sm8550-aggre1-nocnD{00 sYinterconnect@17000002qcom,sm8550-aggre2-nocp{  sinterconnect@17800002qcom,sm8550-mmss-nocx srng@10c30002qcom,sm8550-trngqcom,trng 0pcie@1c00000pci2qcom,pcie-sm8550P0`` ``parfdbielbiatuconfig 8=` `0`0Q ` (msi0msi1msi2msi3msi4msi5msi6msi7$78{0"0$0%0*0+00=eauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggr0p3qpcie-memcpu-pcie Err M//W0^pci0j+opciephy^okay ys` s^qdefaulttpcie@0pci =phy@1c06000 2qcom,sm8550-qmp-gen3x2-pcie-phy` ({0"0$0&0(eauxcfg_ahbrefrchngpipeW0^phy0&0Vpcie0_pipe_clk^okayuvs+pcie@1c08000pci2qcom,pcie-sm8550P0@@ @@parfdbielbiatuconfig 8=@ @0@0Q ` 34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7$7@{0,0.0/0607000 Ieauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggrcnoc_sf_axi0,$0p3q pcie-memcpu-pcie Err M//W00 ^pcilink_down0j,opciephy^okay ysc saqdefaultwpcie@0pci =phy@1c0e000 2qcom,sm8550-qmp-gen4x2-pcie-phy ({000.0204eauxcfg_ahbrefrchngpipeW0 0 ^phyphy_nocsr020Vpcie1_pipe_clk^okayxvus,dma-controller@1dc4000 2qcom,bam-v1.7.4qcom,bam-v1.7.0@  ! J//sycrypto@1dfa000)2qcom,sm8550-qceqcom,sm8150-qceqcom,qceߠ`yyrxtxJ//memoryphy@1d800002qcom,sm8550-qmp-ufs-phy {0erefref_auxqref0Wz^ufsphyV^okay{vs-ufs@1d84000+2qcom,sm8550-ufshcqcom,ufshcjedec,ufs-2.0@0   j-oufsphy%W0^rst09| J/`QG}0Y34#ufs-ddrcpu-ufsnecore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@{0000000[~^okay dsp Oszopp-table2operating-points-v2s}opp-75000000@xhxh9opp-150000000@рр9opp-300000000@9|crypto@1d88000;2qcom,sm8550-inline-crypto-engineqcom,inline-crypto-engine؀{0s~hwlock@1f400002qcom,tcsr-mutexs'clock-controller@1fc00002qcom,sm8550-tcsrsyscon{Vsgpu@3d00000!2qcom,adreno-43050a01qcom,adreno0#kgsl_3d0_reg_memorycx_memcx_dbgc  ,JG%^okayszap-shaderqcom/sm8550/a740_zap.mbnopp-table2operating-points-v2sopp-680000000(opp-615000000$'opp-550000000 Uopp-475000000OPopp-401000000@@opp-348000000<opp-295000000W8opp-220000000 4gmu@3d6a000&2qcom,adreno-gmu-740.1qcom,adreno-gmu0֠P (gmursccgmu_pdc 01hfigmu8{0 0 !eahbgmucxoaximemnochubdemetcxgx JGsopp-table2operating-points-v2sopp-500000000eopp-200000000 @clock-controller@3d900002qcom,sm8550-gpucc{)00Vsiommu@3da0000@2qcom,sm8550-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008 >?@A { 0 0!ehlosbusifaceahbQsipa@3f400002qcom,sm8550-ipaJ//0P@ipa-regipa-sharedgsi8v(ipagsiipa-clock-queryipa-setup-ready{ ecore034memoryconfig*,ipa-clock-enabled-validipa-clock-enabled ^disabledremoteproc@40800002qcom,sm8550-mpss-pas@@Lv0wdogfatalreadyhandoverstop-ackshutdown-ack{exo cxmss ,stop^okay0qcom/sm8550/modem.mbnqcom/sm8550/modem_dtb.mbnglink-edgev( (Bmpsscodec@6aa00002qcom,sm8550-lpass-wsa-macro({DfgemclkmacrodcodecfsgenV wsa2-mclkHssoundwire@6ab00002qcom,soundwire-v2.0.0  {eifaceBWSA2qdefaultYh x??         % H ^disabledcodec@6ac00002qcom,sm8550-lpass-rx-macro({@fgemclkmacrodcodecfsgenVmclkHssoundwire@6ad00002qcom,soundwire-v2.0.0  {eifaceBRXqdefaultYh x?          % H^okayscodec@0,42sdw20217010d00=scodec@6ae00002qcom,sm8550-lpass-tx-macro({9fgemclkmacrodcodecfsgenVmclkHscodec@6b000002qcom,sm8550-lpass-wsa-macro({BfgemclkmacrodcodecfsgenVmclkHssoundwire@6b100002qcom,soundwire-v2.0.0  {eifaceBWSAqdefaultYh x??         % H^okaysspeaker@0,02sdw20217020400qdefault RH bSpkrLeftt sspeaker@0,12sdw20217020400qdefault RH bSpkrRightt ssoundwire@6d300002qcom,soundwire-v2.0.0  corewakeup{eifaceBTXqdefaultYh% H^okayscodec@0,32sdw20217010d00scodec@6d440002qcom,sm8550-lpass-va-macro@${9fgemclkmacrodcodecVfsgenHspinctrl@6e800002qcom,sm8550-lpass-lpi-pinctrl %{fg ecoreaudiostx-swr-active-statesclk-pinsgpio0 swr_tx_clk data-pinsgpio1gpio2gpio14 swr_tx_data-rx-swr-active-statesclk-pinsgpio3 swr_rx_clk data-pins gpio4gpio5 swr_rx_data-dmic01-default-stateclk-pinsgpio6 dmic1_clk;data-pinsgpio7 dmic1_dataGdmic23-default-stateclk-pinsgpio8 dmic2_clk;data-pinsgpio9 dmic2_dataGwsa-swr-active-statesclk-pinsgpio10 wsa_swr_clk data-pinsgpio11 wsa_swr_data-wsa2-swr-active-statesclk-pinsgpio15 wsa2_swr_clk data-pinsgpio16wsa2_swr_data-spkr-1-sd-n-active-stategpio17gpio Tsspkr-2-sd-n-active-stategpio18gpio Tsinterconnect@74000002qcom,sm8550-lpass-lpiaon-noc@ interconnect@74300002qcom,sm8550-lpass-lpicx-nocC sinterconnect@7e400002qcom,sm8550-lpass-ag-noc mmc@8804000$2qcom,sm8550-sdhciqcom,sdhci-msm-v5@ hc_irqpwr_irq{00eifacecorexo J/@_d,ohG034sdhc-ddrcpu-sdhcQ^okay  qdefaultsleepopp-table2operating-points-v2sopp-19200000$9opp-500000009opp-1000000009opp-202000000 F9clock-controller@aaf00002qcom,sm8550-videocc  {)09Vcci@ac15000!2qcom,sm8550-cciqcom,msm8996-cci P  {ecamnoc_axicpas_ahbcciqdefaultsleep ^disabled i2c-bus@0cB@ i2c-bus@1cB@ cci@ac16000!2qcom,sm8550-cciqcom,msm8996-cci `  { ecamnoc_axicpas_ahbcciqdefaultsleep ^disabled i2c-bus@0cB@ cci@ac17000!2qcom,sm8550-cciqcom,msm8996-cci p  { ecamnoc_axicpas_ahbcciqdefaultsleep ^disabled i2c-bus@0cB@ i2c-bus@1cB@ clock-controller@ade00002qcom,sm8550-camcc {0)*9Vsdisplay-subsystem@ae000002qcom,sm8550-mdss mdss  S {00=W03 mdp0-memmdp1-mem J/ =^okaysdisplay-controller@ae010002qcom,sm8550-dpu   mdpvbif 0{00@=I!ebusnrt_busifacelutcorevsyncI$Gports port@0endpointsport@1endpointsport@2endpointsopp-table2operating-points-v2sopp-200000000 9opp-325000000_@9opp-375000000Z 9opp-5140000009|displayport-controller@ae900002qcom,sm8550-dpqcom,sm8350-dpP      ({ ;ecore_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel..j.odpHG^okayports port@0endpointsport@1endpointsopp-table2operating-points-v2sopp-162000000 9opp-270000000߀9opp-540000000 /9opp-8100000000G9|dsi@ae94000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrl @ dsi_ctrl 0{B80$ebytebyte_intfpixelcoreifacebusCGjodsi ^okayvports port@0endpointsport@1endpointsopp-table2operating-points-v2sopp-187500000 -9opp-3000000009opp-358000000V9panel@02visionox,vtdr6130qdefaultsleep    dsportendpointsphy@ae950002qcom,sm8550-dsi-phy-4nm0 P R Udsi_phydsi_phy_lanedsi_pll{ eifacerefV^okay %usdsi@ae96000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrl ` dsi_ctrl 0{ D:0$ebytebyte_intfpixelcoreifacebus EGjodsi  ^disabledports port@0endpointsport@1endpointphy@ae970002qcom,sm8550-dsi-phy-4nm0 p r udsi_phydsi_phy_lanedsi_pll{ eifacerefV ^disabledsclock-controller@af000002qcom,sm8550-dispcc \{)0*..9Vsphy@88e30002qcom,sm8550-snps-eusb2-phy0T{erefW0^okay u 1vjsphy@88e80002qcom,sm8550-qmp-usb3-dp-phy0 {000eauxrefcom_auxusb3_pipe0W00 ^phycommonV^okayvs.ports port@0endpointsport@1endpointsport@2endpointsusb@a6f88002qcom,sm8550-dwc3qcom,dwc3 o =0{0 0000&ecfg_noccoreifacesleepmock_utmixo00$ Dv<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq09|W00Y34$usb-ddrapps-usb^okayusb@a600000 2snps,dwc3 `   J/@ j.ousb2-phyusb3-phy ? S p        *Q 9ports port@0endpointsport@1endpointsinterrupt-controller@b2200002qcom,sm8550-pdcqcom,pdc "@d< I^^a}?~ sthermal-sensor@c271000 2qcom,sm8550-tsensqcom,tsens-v2 ' "  Y uplowcritical gsthermal-sensor@c272000 2qcom,sm8550-tsensqcom,tsens-v2 '  "0 Y uplowcritical gsthermal-sensor@c273000 2qcom,sm8550-tsensqcom,tsens-v2 '0 "@ Y uplowcritical gspower-management@c300000#2qcom,sm8550-aoss-qmpqcom,aoss-qmp 0(v( (Vssram@c3f00002qcom,rpmh-stats ?spmi@c4000002qcom,spmi-pmic-arbP @0 P@ D L B@corechnlsobsrvrintrcnfg periph_irq v }  pmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ gspmic@d2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ gspmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    gsgpio@8800 2qcom,pm8550-gpioqcom,spmi-gpio ssdc2-card-det-stategpio12normalG   sled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-led ^disabledpwm!2qcom,pm8550-pwmqcom,pm8350c-pwm  ^disabledpmic@72qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    gsgpio@8800!2qcom,pm8550b-gpioqcom,spmi-gpio sphy@fd002qcom,pm8550b-eusb2-repeater  spmic@52qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    gsgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiospmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    gsgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@32qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    gsgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@42qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    gsgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@62qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    gs gpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon hlospbspwrkey2qcom,pmk8350-pwrkey  t ^disabledresin2qcom,pmk8350-resin  ^disabledrtc@61002qcom,pmk8350-rtcab rtcalarm bnvram@71002qcom,spmi-sdamq  =qreboot-reason@48H s gpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpiospmic@a2qcom,pmr735dqcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm   gs gpio@8800!2qcom,pmr735d-gpioqcom,spmi-gpiospmic@b2qcom,pmr735dqcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm   gs gpio@8800!2qcom,pmr735d-gpioqcom,spmi-gpiospinctrl@f1000002qcom,sm8550-tlmm0  s   sscci0-0-default-statessda-pinsgpio110 cci_i2c_sda scl-pinsgpio111 cci_i2c_scl cci0-0-sleep-statessda-pinsgpio110 cci_i2c_sda scl-pinsgpio111 cci_i2c_scl cci0-1-default-statessda-pinsgpio112 cci_i2c_sda scl-pinsgpio113 cci_i2c_scl cci0-1-sleep-statessda-pinsgpio112 cci_i2c_sda scl-pinsgpio113 cci_i2c_scl cci1-0-default-statessda-pinsgpio114 cci_i2c_sda scl-pinsgpio115 cci_i2c_scl cci1-0-sleep-statessda-pinsgpio114 cci_i2c_sda scl-pinsgpio115 cci_i2c_scl cci2-0-default-statessda-pinsgpio74 cci_i2c_sda scl-pinsgpio75 cci_i2c_scl cci2-0-sleep-statessda-pinsgpio74 cci_i2c_sda scl-pinsgpio75 cci_i2c_scl cci2-1-default-statessda-pinsgpio0 cci_i2c_sda scl-pinsgpio1 cci_i2c_scl cci2-1-sleep-statessda-pinsgpio0 cci_i2c_sda scl-pinsgpio1 cci_i2c_scl hub-i2c0-data-clk-stategpio16gpio17 i2chub0_se0 sLhub-i2c1-data-clk-stategpio18gpio19 i2chub0_se1 sMhub-i2c2-data-clk-stategpio20gpio21 i2chub0_se2 sNhub-i2c3-data-clk-stategpio22gpio23 i2chub0_se3 sQhub-i2c4-data-clk-state gpio4gpio5 i2chub0_se4 sRhub-i2c5-data-clk-state gpio6gpio7 i2chub0_se5 sShub-i2c6-data-clk-state gpio8gpio9 i2chub0_se6 sThub-i2c7-data-clk-stategpio10gpio11 i2chub0_se7 sUhub-i2c8-data-clk-stategpio206gpio207 i2chub0_se8 sVhub-i2c9-data-clk-stategpio84gpio85 i2chub0_se9 sWpcie0-default-statestperst-pinsgpio94gpio clkreq-pinsgpio95pcie0_clk_req_n wake-pinsgpio96gpio pcie1-default-stateswperst-pinsgpio97gpio clkreq-pinsgpio98pcie1_clk_req_n wake-pinsgpio99gpio qup-i2c0-data-clk-stategpio28gpio29 qup1_se0 sXqup-i2c1-data-clk-stategpio32gpio33 qup1_se1 s]qup-i2c2-data-clk-stategpio36gpio37 qup1_se2 s`qup-i2c3-data-clk-stategpio40gpio41 qup1_se3 scqup-i2c4-data-clk-stategpio44gpio45 qup1_se4 sfqup-i2c5-data-clk-stategpio52gpio53 qup1_se5 siqup-i2c6-data-clk-stategpio48gpio49 qup1_se6 slqup-i2c8-data-clk-states1scl-pinsgpio57qup2_se0_l1_mira sda-pinsgpio56qup2_se0_l0_mira qup-i2c9-data-clk-stategpio60gpio61 qup2_se1 s8qup-i2c10-data-clk-stategpio64gpio65 qup2_se2 s;qup-i2c11-data-clk-stategpio68gpio69 qup2_se3 s>qup-i2c12-data-clk-state gpio2gpio3 qup2_se4 sAqup-i2c13-data-clk-stategpio80gpio81 qup2_se5 sDqup-i2c15-data-clk-stategpio72gpio106 qup2_se7 sIqup-spi0-cs-stategpio31 qup1_se0 s\qup-spi0-data-clk-stategpio28gpio29gpio30 qup1_se0 s[qup-spi1-cs-stategpio35 qup1_se1 s_qup-spi1-data-clk-stategpio32gpio33gpio34 qup1_se1 s^qup-spi2-cs-stategpio39 qup1_se2 sbqup-spi2-data-clk-stategpio36gpio37gpio38 qup1_se2 saqup-spi3-cs-stategpio43 qup1_se3 sequp-spi3-data-clk-stategpio40gpio41gpio42 qup1_se3 sdqup-spi4-cs-stategpio47 qup1_se4 shqup-spi4-data-clk-stategpio44gpio45gpio46 qup1_se4 sgqup-spi5-cs-stategpio55 qup1_se5 skqup-spi5-data-clk-stategpio52gpio53gpio54 qup1_se5 sjqup-spi6-cs-stategpio51 qup1_se6 snqup-spi6-data-clk-stategpio48gpio49gpio50 qup1_se6 smqup-spi8-cs-stategpio59qup2_se0_l3_mira s7qup-spi8-data-clk-stategpio56gpio57gpio58qup2_se0_l2_mira s6qup-spi9-cs-stategpio63 qup2_se1 s:qup-spi9-data-clk-stategpio60gpio61gpio62 qup2_se1 s9qup-spi10-cs-stategpio67 qup2_se2 s=qup-spi10-data-clk-stategpio64gpio65gpio66 qup2_se2 s<qup-spi11-cs-stategpio71 qup2_se3 s@qup-spi11-data-clk-stategpio68gpio69gpio70 qup2_se3 s?qup-spi12-cs-stategpio119 qup2_se4 sCqup-spi12-data-clk-stategpio2gpio3gpio118 qup2_se4 sBqup-spi13-cs-stategpio83 qup2_se5 sFqup-spi13-data-clk-stategpio80gpio81gpio82 qup2_se5 sEqup-spi15-cs-stategpio75 qup2_se7 sKqup-spi15-data-clk-stategpio72gpio106gpio74 qup2_se7 sJqup-uart7-default-stategpio26gpio27 qup1_se7 soqup-uart14-default-stategpio78gpio79 qup2_se6 sGqup-uart14-cts-rts-stategpio76gpio77 qup2_se6 sHsdc2-sleep-statesclk-pins sdc2_clk cmd-pins sdc2_cmd data-pins sdc2_data sdc2-default-statesclk-pins sdc2_clk cmd-pins sdc2_cmd  data-pins sdc2_data  sde-dsi-active-stategpio133gpio ssde-dsi-suspend-stategpio133gpio ssde-te-active-stategpio86 mdp_vsync ssde-te-suspend-stategpio86 mdp_vsync swcd-reset-n-active-stategpio108gpio Ts iommu@15000000/2qcom,sm8550-smmu-500qcom,smmu-500arm,mmu-500 Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYQs/interrupt-controller@17100000 2arm,gic-v3  = % <    smsi-controller@171400002arm,gic-v3-its Q `srtimer@174200002arm,armv7-timer-memB=  frame@17421000BB  k frame@17423000B0 k   ^disabledframe@17425000BP k   ^disabledframe@17427000Bp k   ^disabledframe@17429000B k   ^disabledframe@1742b000B k   ^disabledframe@1742d000B k   ^disabledrsc@17a00000 Bapps_rsc2qcom,rpmh-rsc@drv-0drv-1drv-2drv-3$  x   !bcm-voter2qcom,bcm-voters clock-controller2qcom,sm8550-rpmh-clkVexo{spower-controller2qcom,sm8550-rpmhpdGsopp-table2operating-points-v2sopp-16opp-480sopp-524opp-568sopp-60<opp-64@sopp-80Popp-128sopp-144opp-192sopp-256s|opp-320@opp-336Popp-384opp-416regulators-02qcom,pm8550-rpmh-regulators b    O  O O -O > M \ kbob1 zvreg_bob1 2K  J/6Q ^disableds5geniqup@8c00002qcom,geni-se-qup = em-ahbs-ahb{00 J/#Q ^okayi2c@8800002qcom,geni-i2c@ese{0oqdefault1  u H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8800002qcom,geni-spi@ese{0o  uqdefault67H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8840002qcom,geni-i2c@@ese{0qqdefault8  G H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8840002qcom,geni-spi@@ese{0q  Gqdefault9:H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8880002qcom,geni-i2c@ese{0sqdefault;  H H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8880002qcom,geni-spi@ese{0s  Hqdefault<=H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@88c0002qcom,geni-i2c@ese{0uqdefault>  I H2234qup-corequp-configqup-memory 55txrx ^disabledspi@88c0002qcom,geni-spi@ese{0u  Iqdefault?@H2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8900002qcom,geni-i2c@ese{0wqdefaultA  J H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8900002qcom,geni-spi@ese{0w  JqdefaultBCH2234qup-corequp-configqup-memory 55txrx  ^disabledi2c@8940002qcom,geni-i2c@@ese{0yqdefaultD  K H2234qup-corequp-configqup-memory 55txrx ^disabledspi@8940002qcom,geni-spi@@ese{0y  KqdefaultEFH2234qup-corequp-configqup-memory 55txrx  ^disabledserial@8980002qcom,geni-uart@ese{0{qdefaultGH  02234qup-corequp-config^okaybluetooth2qcom,wcn7850-btIJKLMN O0i2c@89c0002qcom,geni-i2c@ese{0}qdefaultP   H2234qup-corequp-configqup-memory 55txrx ^disabledspi@89c0002qcom,geni-spi@ese{0}  qdefaultQRH2234qup-corequp-configqup-memory 55txrx  ^disabledgeniqup@9c00002qcom,geni-se-i2c-master-hub es-ahb{0Z =^okayi2c@9800002qcom,geni-i2c-master-hub@esecore{0F0EqdefaultS   02234qup-corequp-config ^disabledi2c@9840002qcom,geni-i2c-master-hub@@esecore{0H0EqdefaultT   02234qup-corequp-config ^disabledi2c@9880002qcom,geni-i2c-master-hub@esecore{0J0EqdefaultU   02234qup-corequp-config^okaytypec-retimer@1c2onnn,nb7vpq904m%V0?ports port@0endpointRWsport@1endpointbRXstypec-mux@42 2fcs,fsa4480B%Ym?portendpointRZsi2c@98c0002qcom,geni-i2c-master-hub@esecore{0L0Eqdefault[   02234qup-corequp-config ^disabledi2c@9900002qcom,geni-i2c-master-hub@esecore{0N0Eqdefault\   02234qup-corequp-config ^disabledi2c@9940002qcom,geni-i2c-master-hub@@esecore{0P0Eqdefault]   02234qup-corequp-config ^disabledi2c@9980002qcom,geni-i2c-master-hub@esecore{0R0Eqdefault^   02234qup-corequp-config ^disabledi2c@99c0002qcom,geni-i2c-master-hub@esecore{0T0Eqdefault_   02234qup-corequp-config ^disabledi2c@9a00002qcom,geni-i2c-master-hub@esecore{0V0Eqdefault`   02234qup-corequp-config ^disabledi2c@9a40002qcom,geni-i2c-master-hub@@esecore{0X0Eqdefaulta   02234qup-corequp-config ^disableddma-controller@a00000(2qcom,sm8550-gpi-dmaqcom,sm6350-gpi-dma! %&'()*, 9 J/Q^okaysdgeniqup@ac00002qcom,geni-se-qup = em-ahbs-ahb{00 J/22 qup-coreQ ^okayi2c@a800002qcom,geni-i2c@ese{0]qdefaultb  a H2234cqup-corequp-configqup-memory ddtxrx ^disabledspi@a800002qcom,geni-spi@ese{0]  aqdefaultefH2234cqup-corequp-configqup-memory ddtxrx  ^disabledi2c@a840002qcom,geni-i2c@@ese{0_qdefaultg  b H2234cqup-corequp-configqup-memory ddtxrx ^disabledspi@a840002qcom,geni-spi@@ese{0_  bqdefaulthiH2234cqup-corequp-configqup-memory ddtxrx  ^disabledi2c@a880002qcom,geni-i2c@ese{0aqdefaultj  c H2234cqup-corequp-configqup-memory ddtxrx ^disabledspi@a880002qcom,geni-spi@ese{0a  cqdefaultklH2234cqup-corequp-configqup-memory ddtxrx  ^disabledi2c@a8c0002qcom,geni-i2c@ese{0cqdefaultm  d H2234cqup-corequp-configqup-memory ddtxrx ^disabledspi@a8c0002qcom,geni-spi@ese{0c  dqdefaultnoH2234cqup-corequp-configqup-memory ddtxrx  ^disabledi2c@a900002qcom,geni-i2c@ese{0eqdefaultp  e H2234cqup-corequp-configqup-memory ddtxrx ^disabledspi@a900002qcom,geni-spi@ese{0e  eqdefaultqrH2234cqup-corequp-configqup-memory ddtxrx ^okaytouchscreen@02goodix,gt9916s  ystB@8 `qdefaultuvi2c@a940002qcom,geni-i2c@@ese{0gqdefaultw  fH2234cqup-corequp-configqup-memory ddtxrx  ^disabledspi@a940002qcom,geni-spi@@ese{0g  fqdefaultxyH2234cqup-corequp-configqup-memory ddtxrx  ^disabledi2c@a980002qcom,geni-i2c@ese{0iqdefaultz  kH2234cqup-corequp-configqup-memory ddtxrx  ^disabledspi@a980002qcom,geni-spi@ese{0i  kqdefault{|H2234cqup-corequp-configqup-memory ddtxrx  ^disabledserial@a9c0002qcom,geni-debug-uart@ese{0kqdefault}  Cqup-corequp-config02234^okayinterconnect@15000002qcom,sm8550-cnoc-mainP0 sinterconnect@16000002qcom,sm8550-config-noc`b s4interconnect@16800002qcom,sm8550-system-nochЀ interconnect@16c00002qcom,sm8550-pcie-anocl"{00  s~interconnect@16e00002qcom,sm8550-aggre1-nocnD{00 scinterconnect@17000002qcom,sm8550-aggre2-nocp{  sinterconnect@17800002qcom,sm8550-mmss-nocx srng@10c30002qcom,sm8550-trngqcom,trng 0pcie@1c00000pci2qcom,pcie-sm8550P0`` ``parfdbielbiatuconfig 8=` `0`0Q` (msi0msi1msi2msi3msi4msi5msi6msi78{0"0$0%0*0+00=eauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggr0~3pcie-memcpu-pcie ) 1//;0Bpci0N+Spciephy^okay ]s` hs^qdefaultpcie@0pci =wifi@0 2pci17cb,1107IJKLMN Otphy@1c06000 2qcom,sm8550-qmp-gen3x2-pcie-phy` ({0"0$0&0(eauxcfg_ahbrefrchngpipe;0Bphy0&0Vpcie0_pipe_clk^okays+pcie@1c08000pci2qcom,pcie-sm8550P0@@ @@parfdbielbiatuconfig 8=@ @0@0Q` 34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@{0,0.0/0607000 Ieauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggrcnoc_sf_axi0,$0~3 pcie-memcpu-pcie ) 1//;00 Bpcilink_down0N,Spciephy ^disabledpcie@0pci =phy@1c0e000 2qcom,sm8550-qmp-gen4x2-pcie-phy ({000.0204eauxcfg_ahbrefrchngpipe;0 0 Bphyphy_nocsr020Vpcie1_pipe_clk ^disableds,dma-controller@1dc4000 2qcom,bam-v1.7.4qcom,bam-v1.7.0@  !J//scrypto@1dfa000)2qcom,sm8550-qceqcom,sm8150-qceqcom,qceߠ`rxtxJ//memoryphy@1d800002qcom,sm8550-qmp-ufs-phy {0erefref_auxqref0;BufsphyV^okays-ufs@1d84000+2qcom,sm8550-ufshcqcom,ufshcjedec,ufs-2.0@0   N-Sufsphy;0Brst00 J/`Q>0c34#ufs-ddrcpu-ufsnecore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@{0000000R^okay ys%[ lxOsopp-table2operating-points-v2sopp-75000000@xhxh0opp-150000000@рр0opp-300000000@0crypto@1d88000;2qcom,sm8550-inline-crypto-engineqcom,inline-crypto-engine؀{0shwlock@1f400002qcom,tcsr-mutexs'clock-controller@1fc00002qcom,sm8550-tcsrsyscon{Vsgpu@3d00000!2qcom,adreno-43050a01qcom,adreno0#kgsl_3d0_reg_memorycx_memcx_dbgc  ,J>%^okayszap-shaderqcom/sm8550/a740_zap.mbnopp-table2operating-points-v2sopp-680000000(opp-615000000$'opp-550000000 Uopp-475000000OPopp-401000000@@opp-348000000<opp-295000000W8opp-220000000 4gmu@3d6a000&2qcom,adreno-gmu-740.1qcom,adreno-gmu0֠P (gmursccgmu_pdc 01hfigmu8{0 0 !eahbgmucxoaximemnochubdemetcxgx J>sopp-table2operating-points-v2sopp-500000000eopp-200000000 @clock-controller@3d900002qcom,sm8550-gpucc{)00Vsiommu@3da0000@2qcom,sm8550-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008 >?@A { 0 0!ehlosbusifaceahbQsipa@3f400002qcom,sm8550-ipaJ//0P@ipa-regipa-sharedgsi8v(ipagsiipa-clock-queryipa-setup-ready{ ecore034memoryconfig*ipa-clock-enabled-validipa-clock-enabled^okay-selfqcom/sm8550/ipa_fws.mbnremoteproc@40800002qcom,sm8550-mpss-pas@@Lv0wdogfatalreadyhandoverstop-ackshutdown-ack{exo cxmss stop^okay0qcom/sm8550/modem.mbnqcom/sm8550/modem_dtb.mbnglink-edgev( (=mpsscodec@6aa00002qcom,sm8550-lpass-wsa-macro({DfgemclkmacrodcodecfsgenV wsa2-mclkCssoundwire@6ab00002qcom,soundwire-v2.0.0  {eiface=WSA2qdefaultTc s??           C ^disabledcodec@6ac00002qcom,sm8550-lpass-rx-macro({@fgemclkmacrodcodecfsgenVmclkCssoundwire@6ad00002qcom,soundwire-v2.0.0  {eiface=RXqdefaultTc s?            C^okayscodec@0,42sdw20217010d008scodec@6ae00002qcom,sm8550-lpass-tx-macro({9fgemclkmacrodcodecfsgenVmclkCscodec@6b000002qcom,sm8550-lpass-wsa-macro({BfgemclkmacrodcodecfsgenVmclkCssoundwire@6b100002qcom,soundwire-v2.0.0  {eiface=WSAqdefaultTc s??           C^okays#speaker@0,02sdw20217020400qdefault MC ]SpkrLeftoV~ s!speaker@0,12sdw20217020400qdefault MC ]SpkrRightoV~ s"soundwire@6d300002qcom,soundwire-v2.0.0  corewakeup{eiface=TXqdefaultTc  C^okays codec@0,32sdw20217010d00scodec@6d440002qcom,sm8550-lpass-va-macro@${9fgemclkmacrodcodecVfsgenCspinctrl@6e800002qcom,sm8550-lpass-lpi-pinctrl %{fg ecoreaudiostx-swr-active-statesclk-pinsgpio0 swr_tx_clk   data-pinsgpio1gpio2gpio14 swr_tx_data   (rx-swr-active-statesclk-pinsgpio3 swr_rx_clk   data-pins gpio4gpio5 swr_rx_data   (dmic01-default-stateclk-pinsgpio6 dmic1_clk  6data-pinsgpio7 dmic1_data  Bdmic23-default-stateclk-pinsgpio8 dmic2_clk  6data-pinsgpio9 dmic2_data  Bwsa-swr-active-statesclk-pinsgpio10 wsa_swr_clk   data-pinsgpio11 wsa_swr_data   (wsa2-swr-active-statesclk-pinsgpio15 wsa2_swr_clk   data-pinsgpio16wsa2_swr_data   (spkr-1-sd-n-active-stategpio17gpio   Osspkr-2-sd-n-active-stategpio18gpio   Osinterconnect@74000002qcom,sm8550-lpass-lpiaon-noc@ interconnect@74300002qcom,sm8550-lpass-lpicx-nocC sinterconnect@7e400002qcom,sm8550-lpass-ag-noc mmc@8804000$2qcom,sm8550-sdhciqcom,sdhci-msm-v5@ hc_irqpwr_irq{00eifacecorexo J/@ Zd, jh>034sdhc-ddrcpu-sdhc zQ  ^disabledopp-table2operating-points-v2sopp-19200000$0opp-500000000opp-1000000000opp-202000000 F0clock-controller@aaf00002qcom,sm8550-videocc  {)00Vcci@ac15000!2qcom,sm8550-cciqcom,msm8996-cci P  {ecamnoc_axicpas_ahbcci qdefaultsleep ^disabled i2c-bus@0cB@ i2c-bus@1cB@ cci@ac16000!2qcom,sm8550-cciqcom,msm8996-cci `  { ecamnoc_axicpas_ahbcci qdefaultsleep ^disabled i2c-bus@0cB@ cci@ac17000!2qcom,sm8550-cciqcom,msm8996-cci p  { ecamnoc_axicpas_ahbcci qdefaultsleep ^disabled i2c-bus@0cB@ i2c-bus@1cB@ clock-controller@ade00002qcom,sm8550-camcc {0)*0Vsdisplay-subsystem@ae000002qcom,sm8550-mdss mdss  S {00=;03 mdp0-memmdp1-mem J/ =^okaysdisplay-controller@ae010002qcom,sm8550-dpu   mdpvbif 0{00@=I!ebusnrt_busifacelutcorevsyncI$>ports port@0endpointRsport@1endpointRsport@2endpointRsopp-table2operating-points-v2sopp-200000000 0opp-325000000_@0opp-375000000Z 0opp-5140000000displayport-controller@ae900002qcom,sm8550-dpqcom,sm8350-dpP      ({ ;ecore_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel ..N.SdpC>^okayports port@0endpointRsport@1endpointRbsopp-table2operating-points-v2sopp-162000000 0opp-270000000߀0opp-540000000 /0opp-8100000000G0dsi@ae94000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrl @ dsi_ctrl 0{B80$ebytebyte_intfpixelcoreifacebusC >NSdsi ^okay ports port@0endpointRsport@1endpointRbsopp-table2operating-points-v2sopp-187500000 -0opp-3000000000opp-358000000V0panel@02visionox,vtdr6130 qdefaultsleep   ysportendpointRsphy@ae950002qcom,sm8550-dsi-phy-4nm0 P R Udsi_phydsi_phy_lanedsi_pll{ eifacerefV^okay sdsi@ae96000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrl ` dsi_ctrl 0{ D:0$ebytebyte_intfpixelcoreifacebus E >NSdsi  ^disabledports port@0endpointRsport@1endpointphy@ae970002qcom,sm8550-dsi-phy-4nm0 p r udsi_phydsi_phy_lanedsi_pll{ eifacerefV ^disabledsclock-controller@af000002qcom,sm8550-dispcc \{)0*..0Vsphy@88e30002qcom,sm8550-snps-eusb2-phy0T{eref;0^okay Nsphy@88e80002qcom,sm8550-qmp-usb3-dp-phy0 {000eauxrefcom_auxusb3_pipe0;00 BphycommonV?^okays.ports port@0endpointRsXport@1endpointRsport@2endpointRsusb@a6f88002qcom,sm8550-dwc3qcom,dwc3 o =0{0 0000&ecfg_noccoreifacesleepmock_utmixo00$ Dv<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq00;00c34$usb-ddrapps-usb^okayusb@a600000 2snps,dwc3 `   J/@ N.Susb2-phyusb3-phy   $ = U m     Q ports port@0endpointRsport@1endpointRsinterrupt-controller@b2200002qcom,sm8550-pdcqcom,pdc "@d< ^^a}?~ sthermal-sensor@c271000 2qcom,sm8550-tsensqcom,tsens-v2 ' "   uplowcritical sthermal-sensor@c272000 2qcom,sm8550-tsensqcom,tsens-v2 '  "0  uplowcritical sthermal-sensor@c273000 2qcom,sm8550-tsensqcom,tsens-v2 '0 "@  uplowcritical spower-management@c300000#2qcom,sm8550-aoss-qmpqcom,aoss-qmp 0(v( (Vssram@c3f00002qcom,rpmh-stats ?spmi@c4000002qcom,spmi-pmic-arbP @0 P@ D L B@corechnlsobsrvrintrcnfg periph_irq v 1 > pmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ s pmic@d2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ s pmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    s gpio@8800 2qcom,pm8550-gpioqcom,spmi-gpio svolume-up-n-stategpio6normal J W Bsled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-led^okayled-0flash d j v    led-1flash d j v    pwm!2qcom,pm8550-pwmqcom,pm8350c-pwm ^okaymulti-led d status led@1 dled@2 dled@3 dpmic@72qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    s gpio@8800!2qcom,pm8550b-gpioqcom,spmi-gpio sphy@fd002qcom,pm8550b-eusb2-repeater V spmic@52qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    s gpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiospmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@32qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@42qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@62qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiospmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon hlospbspwrkey2qcom,pmk8350-pwrkey  t^okayresin2qcom,pmk8350-resin ^okay rrtc@61002qcom,pmk8350-rtcab rtcalarm bnvram@71002qcom,spmi-sdamq  =qreboot-reason@48H sgpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpiossleep-clk-stategpio3func1    Js&pmic@a2qcom,pmr735dqcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm   sgpio@8800!2qcom,pmr735d-gpioqcom,spmi-gpiospmic@b2qcom,pmr735dqcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm   sgpio@8800!2qcom,pmr735d-gpioqcom,spmi-gpiospinctrl@f1000002qcom,sm8550-tlmm0  s  ! sscci0-0-default-statessda-pinsgpio110 cci_i2c_sda  Wscl-pinsgpio111 cci_i2c_scl  Wcci0-0-sleep-statessda-pinsgpio110 cci_i2c_sda  6scl-pinsgpio111 cci_i2c_scl  6cci0-1-default-statessda-pinsgpio112 cci_i2c_sda  Wscl-pinsgpio113 cci_i2c_scl  Wcci0-1-sleep-statessda-pinsgpio112 cci_i2c_sda  6scl-pinsgpio113 cci_i2c_scl  6cci1-0-default-statessda-pinsgpio114 cci_i2c_sda  Wscl-pinsgpio115 cci_i2c_scl  Wcci1-0-sleep-statessda-pinsgpio114 cci_i2c_sda  6scl-pinsgpio115 cci_i2c_scl  6cci2-0-default-statessda-pinsgpio74 cci_i2c_sda  Wscl-pinsgpio75 cci_i2c_scl  Wcci2-0-sleep-statessda-pinsgpio74 cci_i2c_sda  6scl-pinsgpio75 cci_i2c_scl  6cci2-1-default-statessda-pinsgpio0 cci_i2c_sda  Wscl-pinsgpio1 cci_i2c_scl  Wcci2-1-sleep-statessda-pinsgpio0 cci_i2c_sda  6scl-pinsgpio1 cci_i2c_scl  6hub-i2c0-data-clk-stategpio16gpio17 i2chub0_se0  WsShub-i2c1-data-clk-stategpio18gpio19 i2chub0_se1  WsThub-i2c2-data-clk-stategpio20gpio21 i2chub0_se2  WsUhub-i2c3-data-clk-stategpio22gpio23 i2chub0_se3  Ws[hub-i2c4-data-clk-state gpio4gpio5 i2chub0_se4  Ws\hub-i2c5-data-clk-state gpio6gpio7 i2chub0_se5  Ws]hub-i2c6-data-clk-state gpio8gpio9 i2chub0_se6  Ws^hub-i2c7-data-clk-stategpio10gpio11 i2chub0_se7  Ws_hub-i2c8-data-clk-stategpio206gpio207 i2chub0_se8  Ws`hub-i2c9-data-clk-stategpio84gpio85 i2chub0_se9  Wsapcie0-default-statesperst-pinsgpio94gpio  6clkreq-pinsgpio95pcie0_clk_req_n  Wwake-pinsgpio96gpio  Wpcie1-default-stateperst-pinsgpio97gpio  6clkreq-pinsgpio98pcie1_clk_req_n  Wwake-pinsgpio99gpio  Wqup-i2c0-data-clk-stategpio28gpio29 qup1_se0  Wsbqup-i2c1-data-clk-stategpio32gpio33 qup1_se1  Wsgqup-i2c2-data-clk-stategpio36gpio37 qup1_se2  Wsjqup-i2c3-data-clk-stategpio40gpio41 qup1_se3  Wsmqup-i2c4-data-clk-stategpio44gpio45 qup1_se4  Wspqup-i2c5-data-clk-stategpio52gpio53 qup1_se5  Wswqup-i2c6-data-clk-stategpio48gpio49 qup1_se6  Wszqup-i2c8-data-clk-states1scl-pinsgpio57qup2_se0_l1_mira  Wsda-pinsgpio56qup2_se0_l0_mira  Wqup-i2c9-data-clk-stategpio60gpio61 qup2_se1  Ws8qup-i2c10-data-clk-stategpio64gpio65 qup2_se2  Ws;qup-i2c11-data-clk-stategpio68gpio69 qup2_se3  Ws>qup-i2c12-data-clk-state gpio2gpio3 qup2_se4  WsAqup-i2c13-data-clk-stategpio80gpio81 qup2_se5  WsDqup-i2c15-data-clk-stategpio72gpio106 qup2_se7  WsPqup-spi0-cs-stategpio31 qup1_se0  sfqup-spi0-data-clk-stategpio28gpio29gpio30 qup1_se0  sequp-spi1-cs-stategpio35 qup1_se1  siqup-spi1-data-clk-stategpio32gpio33gpio34 qup1_se1  shqup-spi2-cs-stategpio39 qup1_se2  slqup-spi2-data-clk-stategpio36gpio37gpio38 qup1_se2  skqup-spi3-cs-stategpio43 qup1_se3  soqup-spi3-data-clk-stategpio40gpio41gpio42 qup1_se3  snqup-spi4-cs-stategpio47 qup1_se4  srqup-spi4-data-clk-stategpio44gpio45gpio46 qup1_se4  sqqup-spi5-cs-stategpio55 qup1_se5  syqup-spi5-data-clk-stategpio52gpio53gpio54 qup1_se5  sxqup-spi6-cs-stategpio51 qup1_se6  s|qup-spi6-data-clk-stategpio48gpio49gpio50 qup1_se6  s{qup-spi8-cs-stategpio59qup2_se0_l3_mira  s7qup-spi8-data-clk-stategpio56gpio57gpio58qup2_se0_l2_mira  s6qup-spi9-cs-stategpio63 qup2_se1  s:qup-spi9-data-clk-stategpio60gpio61gpio62 qup2_se1  s9qup-spi10-cs-stategpio67 qup2_se2  s=qup-spi10-data-clk-stategpio64gpio65gpio66 qup2_se2  s<qup-spi11-cs-stategpio71 qup2_se3  s@qup-spi11-data-clk-stategpio68gpio69gpio70 qup2_se3  s?qup-spi12-cs-stategpio119 qup2_se4  sCqup-spi12-data-clk-stategpio2gpio3gpio118 qup2_se4  sBqup-spi13-cs-stategpio83 qup2_se5  sFqup-spi13-data-clk-stategpio80gpio81gpio82 qup2_se5  sEqup-spi15-cs-stategpio75 qup2_se7  sRqup-spi15-data-clk-stategpio72gpio106gpio74 qup2_se7  sQqup-uart7-default-stategpio26gpio27 qup1_se7  s}qup-uart14-default-stategpio78gpio79 qup2_se6  WsGqup-uart14-cts-rts-stategpio76gpio77 qup2_se6  6sHsdc2-sleep-stateclk-pins sdc2_clk  cmd-pins sdc2_cmd W data-pins sdc2_data W sdc2-default-stateclk-pins sdc2_clk  cmd-pins sdc2_cmd W  data-pins sdc2_data W  bt-default-states%bt-en-pinsgpio81gpio  sw-ctrl-pinsgpio82gpio 6sde-dsi-active-stategpio133gpio  ssde-dsi-suspend-stategpio133gpio  6ssde-te-active-stategpio86 mdp_vsync  6ssde-te-suspend-stategpio86 mdp_vsync  6sts-irq-stategpio25gpio  Wsuts-reset-stategpio24gpio  Wsvwcd-reset-n-active-stategpio108gpio   Oswlan-en-stategpio80gpio  6s$iommu@15000000/2qcom,sm8550-smmu-500qcom,smmu-500arm,mmu-500 Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYQs/interrupt-controller@17100000 2arm,gic-v3  = E \    smsi-controller@171400002arm,gic-v3-its q stimer@174200002arm,armv7-timer-memB=  frame@17421000BB   frame@17423000B0    ^disabledframe@17425000BP    ^disabledframe@17427000Bp    ^disabledframe@17429000B    ^disabledframe@1742b000B    ^disabledframe@1742d000B    ^disabledrsc@17a00000 =apps_rsc2qcom,rpmh-rsc@drv-0drv-1drv-2drv-3$    !bcm-voter2qcom,bcm-voters clock-controller2qcom,sm8550-rpmh-clkVexo{spower-controller2qcom,sm8550-rpmhpd>sopp-table2operating-points-v2sopp-16opp-480sopp-524opp-568sopp-60<opp-64@sopp-80Popp-128sopp-144opp-192sopp-256sopp-320@opp-336Popp-384opp-416regulators-02qcom,pm8550-rpmh-regulators b    Y  *Y <Y MY ^ m | bob1 vreg_bob1 2K opp-table2operating-points-v2sopp-0popp-1,hopp-2Zopp-3ci8opp-4yopp-5Aopp-6Hopp-7։opp-8hpmu@240b6400(2qcom,sm8550-cpu-bwmonqcom,sdm845-bwmon$ d  E33 >opp-table2operating-points-v2sopp-0Eopp-1l}popp-2opp-3opp-49`opp-5/(interconnect@241000002qcom,sm8550-gem-noc$  s3system-cache-controller@250000002qcom,sm8550-llcc`% % %@ %` % % Xllcc0_basellcc1_basellcc2_basellcc3_basellcc_broadcast_basellcc_broadcast_and_base   remoteproc@300000002qcom,sm8550-adsp-pas0<v#wdogfatalreadyhandoverstop-ack{exolcxlmxstop^okay.qcom/sm8550/adsp.mbnqcom/sm8550/adsp_dtb.mbnglink-edgev( (=lpassfastrpc 2qcom,fastrpcfastrpcglink-apps-dsp=adsp compute-cb@32qcom,fastrpc-compute-cbJ//cQcompute-cb@42qcom,fastrpc-compute-cbJ//dQcompute-cb@52qcom,fastrpc-compute-cbJ//eQcompute-cb@62qcom,fastrpc-compute-cbJ//fQcompute-cb@72qcom,fastrpc-compute-cbJ//gQgpr 2qcom,gpr adsp_apps service@1 2qcom,q6apmCavs/audiomsm/adsp/audio_pdsdais2qcom,q6apm-daisJ//abedais2qcom,q6apm-lpass-daisCsservice@2 2qcom,q6prmavs/audiomsm/adsp/audio_pdclock-controller2qcom,q6prm-lpass-clocksVsinterconnect@320c00002qcom,sm8550-nsp-noc2  sremoteproc@323000002qcom,sm8550-cdsp-pas20@@vB#wdogfatalreadyhandoverstop-ack{exo  cxmxcnspstop^okay.qcom/sm8550/cdsp.mbnqcom/sm8550/cdsp_dtb.mbnglink-edgev( (=cdspfastrpc 2qcom,fastrpcfastrpcglink-apps-dsp=cdsp compute-cb@12qcom,fastrpc-compute-cb$J/a/  /Qcompute-cb@22qcom,fastrpc-compute-cb$J/b/  /Qcompute-cb@32qcom,fastrpc-compute-cb$J/c/  /Qcompute-cb@42qcom,fastrpc-compute-cb$J/d/  /Qcompute-cb@52qcom,fastrpc-compute-cb$J/e/  /Qcompute-cb@62qcom,fastrpc-compute-cb$J/f/  /Qcompute-cb@72qcom,fastrpc-compute-cb$J/g/  /Qcompute-cb@82qcom,fastrpc-compute-cb$J/h/  /Qthermal-zonesaoss0-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassivecpuss0-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassivecpuss1-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassivecpuss2-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassivecpuss3-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassivecpu3-top-thermal(tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu3-bottom-thermal(tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu4-top-thermal(tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu4-bottom-thermal(tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu5-top-thermal( tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu5-bottom-thermal( tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu6-top-thermal( tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu6-bottom-thermal( tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu7-top-thermal( tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu7-middle-thermal(tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu7-bottom-thermal(tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalaoss1-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassivecpu0-thermal(tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu1-thermal(tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcpu2-thermal(tripstrip-point08_DEpassivetrip-point18sDEpassivecpu-critical8D Ecriticalcdsp0-thermalO (tripsthermal-engine-config8HDEpassivethermal-hal-config8HDEpassivereset-mon-config88DEpassivejunction-config8sDEpassivecdsp1-thermalO (tripsthermal-engine-config8HDEpassivethermal-hal-config8HDEpassivereset-mon-config88DEpassivejunction-config8sDEpassivecdsp2-thermalO (tripsthermal-engine-config8HDEpassivethermal-hal-config8HDEpassivereset-mon-config88DEpassivejunction-config8sDEpassivecdsp3-thermalO (tripsthermal-engine-config8HDEpassivethermal-hal-config8HDEpassivereset-mon-config88DEpassivejunction-config8sDEpassivevideo-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassivemem-thermalO ( tripsthermal-engine-config8HDEpassiveddr0-config8_DEpassivereset-mon-config88DEpassivemodem0-thermal( tripsthermal-engine-config8HDEpassivemdmss0-config08pD Epassivemdmss0-config18(D Epassivereset-mon-config88DEpassivemodem1-thermal( tripsthermal-engine-config8HDEpassivemdmss1-config08pD Epassivemdmss1-config18(D Epassivereset-mon-config88DEpassivemodem2-thermal( tripsthermal-engine-config8HDEpassivemdmss2-config08pD Epassivemdmss2-config18(D Epassivereset-mon-config88DEpassivemodem3-thermal( tripsthermal-engine-config8HDEpassivemdmss3-config08pD Epassivemdmss3-config18(D Epassivereset-mon-config88DEpassivecamera0-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassivecamera1-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassiveaoss2-thermal(tripsthermal-engine-config8HDEpassivereset-mon-config88DEpassivegpuss-0-thermalO (cooling-mapsmap0e jtripstrip-point08LDEpassivestrip-point18_DEhottrip-point28D Ecriticalgpuss-1-thermalO (cooling-mapsmap0e jtripstrip-point08LDEpassivestrip-point18_DEhottrip-point28D Ecriticalgpuss-2-thermalO (cooling-mapsmap0e jtripstrip-point08LDEpassivestrip-point18_DEhottrip-point28D Ecriticalgpuss-3-thermalO (cooling-mapsmap0e jtripstrip-point08LDEpassivestrip-point18_DEhottrip-point28D Ecriticalgpuss-4-thermalO (cooling-mapsmap0e jtripstrip-point08LDEpassivestrip-point18_DEhottrip-point28D Ecriticalgpuss-5-thermalO (cooling-mapsmap0e jtripstrip-point08LDEpassivestrip-point18_DEhottrip-point28D Ecriticalgpuss-6-thermalO (cooling-mapsmap0e jtripstrip-point08LDEpassivestrip-point18_DEhottrip-point28D Ecriticalgpuss-7-thermalO (cooling-mapsmap0e jtripstrip-point08LDEpassivestrip-point18_DEhottrip-point28D Ecriticalpm8010-m-thermalOd( tripstrip08sDEpassivetrip188DEhotpm8010-n-thermalOd( tripstrip08sDEpassivetrip188DEhotpm8550-thermalOd( tripstrip08sDEpassivetrip188DEhotpm8550b-thermalOd( tripstrip08sDEpassivetrip188DEhotpm8550ve-thermalOd( tripstrip08sDEpassivetrip188DEhotpm8550vs-c-thermalOd(tripstrip08sDEpassivetrip188DEhotpm8550vs-d-thermalOd(tripstrip08sDEpassivetrip188DEhotpm8550vs-e-thermalOd(tripstrip08sDEpassivetrip188DEhotpm8550vs-g-thermalOd(tripstrip08sDEpassivetrip188DEhotpmr735d-k-thermalOd(tripstrip08sDEpassivetrip188DEhotpmr735d-l-thermalOd(tripstrip08sDEpassivetrip188DEhottimer2arm,armv8-timer0    reboot-mode2nvmem-reboot-modey reboot-modealiases$/soc@0/geniqup@ac0000/serial@a9c000$/soc@0/geniqup@8c0000/serial@898000audio-codec2qcom,wcd9385-codecqdefaultw@w@w@ w@ $$I     KrP yslVV~VYCsgpio-keys 2gpio-keysqdefaultkey-volume-up =Volume Up s pmic-glink'2qcom,sm8550-pmic-glinkqcom,pmic-glink  s connector@02usb-c-connector1dual @/6G Tdisabled5geniqup@8c00002qcom,geni-se-qupQ J [m-ahbs-ahb00 @/#G  Tdisabledi2c@8800002qcom,geni-i2cQ@[se0ogdefaultu1 !u H2234qup-corequp-configqup-memory 55txrx Tdisabledspi@8800002qcom,geni-spiQ@[se0o !ugdefaultu67H2234qup-corequp-configqup-memory 55txrx  Tdisabledi2c@8840002qcom,geni-i2cQ@@[se0qgdefaultu8 !G H2234qup-corequp-configqup-memory 55txrx Tdisabledspi@8840002qcom,geni-spiQ@@[se0q !Ggdefaultu9:H2234qup-corequp-configqup-memory 55txrx  Tdisabledi2c@8880002qcom,geni-i2cQ@[se0sgdefaultu; !H H2234qup-corequp-configqup-memory 55txrx Tdisabledspi@8880002qcom,geni-spiQ@[se0s !Hgdefaultu<=H2234qup-corequp-configqup-memory 55txrx  Tdisabledi2c@88c0002qcom,geni-i2cQ@[se0ugdefaultu> !I H2234qup-corequp-configqup-memory 55txrx Tdisabledspi@88c0002qcom,geni-spiQ@[se0u !Igdefaultu?@H2234qup-corequp-configqup-memory 55txrx  Tdisabledi2c@8900002qcom,geni-i2cQ@[se0wgdefaultuA !J H2234qup-corequp-configqup-memory 55txrx Tdisabledspi@8900002qcom,geni-spiQ@[se0w !JgdefaultuBCH2234qup-corequp-configqup-memory 55txrx  Tdisabledi2c@8940002qcom,geni-i2cQ@@[se0ygdefaultuD !K H2234qup-corequp-configqup-memory 55txrx Tdisabledspi@8940002qcom,geni-spiQ@@[se0y !KgdefaultuEFH2234qup-corequp-configqup-memory 55txrx  Tdisabledserial@8980002qcom,geni-uartQ@[se0{gdefaultuGH !02234qup-corequp-config Tdisabledi2c@89c0002qcom,geni-i2cQ@[se0}gdefaultuI ! H2234qup-corequp-configqup-memory 55txrx Tdisabledspi@89c0002qcom,geni-spiQ@[se0} !gdefaultuJKH2234qup-corequp-configqup-memory 55txrx  Tdisabledgeniqup@9c00002qcom,geni-se-i2c-master-hubQ [s-ahb0Z JTokayi2c@9800002qcom,geni-i2c-master-hubQ@[secore0F0EgdefaultuL ! 02234qup-corequp-config Tdisabledi2c@9840002qcom,geni-i2c-master-hubQ@@[secore0H0EgdefaultuM ! 02234qup-corequp-config Tdisabledi2c@9880002qcom,geni-i2c-master-hubQ@[secore0J0EgdefaultuN ! 02234qup-corequp-config Tdisabledi2c@98c0002qcom,geni-i2c-master-hubQ@[secore0L0EgdefaultuO ! 02234qup-corequp-config Tdisabledi2c@9900002qcom,geni-i2c-master-hubQ@[secore0N0EgdefaultuP ! 02234qup-corequp-config Tdisabledi2c@9940002qcom,geni-i2c-master-hubQ@@[secore0P0EgdefaultuQ ! 02234qup-corequp-config Tdisabledi2c@9980002qcom,geni-i2c-master-hubQ@[secore0R0EgdefaultuR ! 02234qup-corequp-config Tdisabledi2c@99c0002qcom,geni-i2c-master-hubQ@[secore0T0EgdefaultuS ! 02234qup-corequp-config Tdisabledi2c@9a00002qcom,geni-i2c-master-hubQ@[secore0V0EgdefaultuT ! 02234qup-corequp-config Tdisabledi2c@9a40002qcom,geni-i2c-master-hubQ@@[secore0X0EgdefaultuU ! 02234qup-corequp-config Tdisableddma-controller@a00000(2qcom,sm8550-gpi-dmaqcom,sm6350-gpi-dmaQ!%&'()*" / @/G TdisabledXgeniqup@ac00002qcom,geni-se-qupQ J [m-ahbs-ahb00 @/22 qup-coreG Tokayi2c@a800002qcom,geni-i2cQ@[se0]gdefaultuV !a H2234Wqup-corequp-configqup-memory XXtxrx Tdisabledspi@a800002qcom,geni-spiQ@[se0] !agdefaultuYZH2234Wqup-corequp-configqup-memory XXtxrx  Tdisabledi2c@a840002qcom,geni-i2cQ@@[se0_gdefaultu[ !b H2234Wqup-corequp-configqup-memory XXtxrx Tdisabledspi@a840002qcom,geni-spiQ@@[se0_ !bgdefaultu\]H2234Wqup-corequp-configqup-memory XXtxrx  Tdisabledi2c@a880002qcom,geni-i2cQ@[se0agdefaultu^ !c H2234Wqup-corequp-configqup-memory XXtxrx Tdisabledspi@a880002qcom,geni-spiQ@[se0a !cgdefaultu_`H2234Wqup-corequp-configqup-memory XXtxrx  Tdisabledi2c@a8c0002qcom,geni-i2cQ@[se0cgdefaultua !d H2234Wqup-corequp-configqup-memory XXtxrx Tdisabledspi@a8c0002qcom,geni-spiQ@[se0c !dgdefaultubcH2234Wqup-corequp-configqup-memory XXtxrx  Tdisabledi2c@a900002qcom,geni-i2cQ@[se0egdefaultud !e H2234Wqup-corequp-configqup-memory XXtxrx Tdisabledspi@a900002qcom,geni-spiQ@[se0e !egdefaultuefH2234Wqup-corequp-configqup-memory XXtxrx  Tdisabledi2c@a940002qcom,geni-i2cQ@@[se0ggdefaultug !fH2234Wqup-corequp-configqup-memory XXtxrx  Tdisabledspi@a940002qcom,geni-spiQ@@[se0g !fgdefaultuhiH2234Wqup-corequp-configqup-memory XXtxrx  Tdisabledi2c@a980002qcom,geni-i2cQ@[se0igdefaultuj !kH2234Wqup-corequp-configqup-memory XXtxrx  Tdisabledspi@a980002qcom,geni-spiQ@[se0i !kgdefaultuklH2234Wqup-corequp-configqup-memory XXtxrx  Tdisabledserial@a9c0002qcom,geni-debug-uartQ@[se0kgdefaultum !Cqup-corequp-config02234 Tdisabledinterconnect@15000002qcom,sm8550-cnoc-mainQP0 ointerconnect@16000002qcom,sm8550-config-nocQ`b 4interconnect@16800002qcom,sm8550-system-nocQhЀ interconnect@16c00002qcom,sm8550-pcie-anocQl"00  ninterconnect@16e00002qcom,sm8550-aggre1-nocQnD00 Winterconnect@17000002qcom,sm8550-aggre2-nocQp  interconnect@17800002qcom,sm8550-mmss-nocQx rng@10c30002qcom,sm8550-trngqcom,trngQ 0pcie@1c00000pci2qcom,pcie-sm8550PQ0`` ``parfdbielbiatuconfig 8J` `0`0G`!(msi0msi1msi2msi3msi4msi5msi6msi780"0$0%0*0+00=[auxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggr0n3opcie-memcpu-pcie pp  //0pci0&++pciephyTokay 5q` @q^urgdefaultpcie@0pciQ Jphy@1c06000 2qcom,sm8550-qmp-gen3x2-pcie-phyQ` (0"0$0&0([auxcfg_ahbrefrchngpipe0phyL0&\0pqpcie0_pipe_clkTokayst+pcie@1c08000pci2qcom,pcie-sm8550PQ0@@ @@parfdbielbiatuconfig 8J@ @0@0G`!34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@0,0.0/0607000 I[auxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggrcnoc_sf_axiL0,\$0n3o pcie-memcpu-pcie pp  //00 pcilink_down0&,+pciephy Tdisabledpcie@0pciQ Jphy@1c0e000 2qcom,sm8550-qmp-gen4x2-pcie-phyQ (000.0204[auxcfg_ahbrefrchngpipe0 0 phyphy_nocsrL02\0pqpcie1_pipe_clk Tdisabled,dma-controller@1dc4000 2qcom,bam-v1.7.4qcom,bam-v1.7.0Q@ !@//ucrypto@1dfa000)2qcom,sm8550-qceqcom,sm8150-qceqcom,qceQߠ`uurxtx@//memoryphy@1d800002qcom,sm8550-qmp-ufs-phyQ 0[refref_auxqref0vufsphypTokaywt-ufs@1d84000+2qcom,sm8550-ufshcqcom,ufshcjedec,ufs-2.0Q@0 ! &-+ufsphy0rst0x @/`Gy0W34#ufs-ddrcpu-ufsn[core_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@0000000zTokay q{& 7|COU}vopp-table2operating-points-v2yopp-75000000@dxhxh~opp-150000000@dррopp-300000000@dxcrypto@1d88000;2qcom,sm8550-inline-crypto-engineqcom,inline-crypto-engineQ؀0zhwlock@1f400002qcom,tcsr-mutexQk'clock-controller@1fc00002qcom,sm8550-tcsrsysconQpgpu@3d00000!2qcom,adreno-43050a01qcom,adreno0Q#kgsl_3d0_reg_memorycx_memcx_dbgc !,@y; Tdisabledzap-shaderopp-table2operating-points-v2opp-680000000d(opp-615000000d$'opp-550000000d Uopp-475000000dOPopp-401000000d@@opp-348000000d<opp-295000000dW8opp-220000000d 4gmu@3d6a000&2qcom,adreno-gmu-740.1qcom,adreno-gmu0Q֠P (gmursccgmu_pdc!01hfigmu80 0 ![ahbgmucxoaximemnochubdemetcxgx @opp-table2operating-points-v2opp-500000000deopp-200000000d @clock-controller@3d900002qcom,sm8550-gpuccQ)00p,iommu@3da0000@2qcom,sm8550-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500Q8!>?@A 0 0![hlosbusifaceahbGipa@3f400002qcom,sm8550-ipa@//0QP@ipa-regipa-sharedgsi8l(ipagsiipa-clock-queryipa-setup-ready [core034memoryconfig*ipa-clock-enabled-validipa-clock-enabled Tdisabledremoteproc@40800002qcom,sm8550-mpss-pasQ@@Ll0wdogfatalreadyhandoverstop-ackshutdown-ack[xo cxmss stopTokay0qcom/sm8550/modem.mdtqcom/sm8550/modem_dtb.mdtglink-edgel( (mpsscodec@6aa00002qcom,sm8550-lpass-wsa-macroQ(Dfg[mclkmacrodcodecfsgenp qwsa2-mclksoundwire@6ab00002qcom,soundwire-v2.0.0Q ![ifaceWSA2ugdefault .?? C  V i {      Tdisabledcodec@6ac00002qcom,sm8550-lpass-rx-macroQ(@fg[mclkmacrodcodecfsgenpqmclksoundwire@6ad00002qcom,soundwire-v2.0.0Q ![ifaceRXugdefault .? C  V  i {      Tdisabledcodec@6ae00002qcom,sm8550-lpass-tx-macroQ(9fg[mclkmacrodcodecfsgenpqmclkcodec@6b000002qcom,sm8550-lpass-wsa-macroQ(Bfg[mclkmacrodcodecfsgenpqmclksoundwire@6b100002qcom,soundwire-v2.0.0Q ![ifaceWSAugdefault .?? C  V i {      Tdisabledsoundwire@6d300002qcom,soundwire-v2.0.0Q! corewakeup[ifaceTXugdefaultCVi{  Tdisabledcodec@6d440002qcom,sm8550-lpass-va-macroQ@$9fg[mclkmacrodcodecpqfsgenpinctrl@6e800002qcom,sm8550-lpass-lpi-pinctrl Q% (fg [coreaudiotx-swr-active-stateclk-pins4gpio0 9swr_tx_clkBQ[data-pins4gpio1gpio2gpio14 9swr_tx_dataBQhrx-swr-active-stateclk-pins4gpio3 9swr_rx_clkBQ[data-pins 4gpio4gpio5 9swr_rx_dataBQhdmic01-default-stateclk-pins4gpio6 9dmic1_clkBvdata-pins4gpio7 9dmic1_dataBdmic23-default-stateclk-pins4gpio8 9dmic2_clkBvdata-pins4gpio9 9dmic2_dataBwsa-swr-active-stateclk-pins4gpio10 9wsa_swr_clkBQ[data-pins4gpio11 9wsa_swr_dataBQhwsa2-swr-active-stateclk-pins4gpio15 9wsa2_swr_clkBQ[data-pins4gpio169wsa2_swr_dataBQhinterconnect@74000002qcom,sm8550-lpass-lpiaon-nocQ@ interconnect@74300002qcom,sm8550-lpass-lpicx-nocQC interconnect@7e400002qcom,sm8550-lpass-ag-nocQ mmc@8804000$2qcom,sm8550-sdhciqcom,sdhci-msm-v5Q@!hc_irqpwr_irq00[ifacecorexo @/@d,h034sdhc-ddrcpu-sdhcG Tdisabledopp-table2operating-points-v2opp-19200000d$opp-50000000d~opp-100000000dopp-202000000d Fclock-controller@aaf00002qcom,sm8550-videoccQ  )0~p,cci@ac15000!2qcom,sm8550-cciqcom,msm8996-cciQ P ![camnoc_axicpas_ahbcciugdefaultsleep Tdisabled i2c-bus@0Q}B@ i2c-bus@1Q}B@ cci@ac16000!2qcom,sm8550-cciqcom,msm8996-cciQ ` ! [camnoc_axicpas_ahbcciugdefaultsleep Tdisabled i2c-bus@0Q}B@ cci@ac17000!2qcom,sm8550-cciqcom,msm8996-cciQ p ! [camnoc_axicpas_ahbcciugdefaultsleep Tdisabled i2c-bus@0Q}B@ i2c-bus@1Q}B@ clock-controller@ade00002qcom,sm8550-camccQ 0)*~p,display-subsystem@ae000002qcom,sm8550-mdssQ mdss !S 00=03 mdp0-memmdp1-mem @/ J Tdisableddisplay-controller@ae010002qcom,sm8550-dpu Q   mdpvbif!000@=I![busnrt_busifacelutcorevsyncLI\$ports port@0Qendpointport@1Qendpointport@2Qendpointopp-table2operating-points-v2opp-200000000d ~opp-325000000d_@opp-375000000dZ opp-514000000dxdisplayport-controller@ae900002qcom,sm8550-dpqcom,sm8350-dpPQ     ! ( ;[core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelL..&.+dp Tdisabledports port@0Qendpointport@1Qendpointopp-table2operating-points-v2opp-162000000d opp-270000000d߀~opp-540000000d /opp-810000000d0Gxdsi@ae94000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrlQ @ dsi_ctrl!0B80$[bytebyte_intfpixelcoreifacebusLC&+dsi  Tdisabledports port@0Qendpointport@1Qendpointopp-table2operating-points-v2opp-187500000d -~opp-300000000dopp-358000000dVphy@ae950002qcom,sm8550-dsi-phy-4nm0Q P R Udsi_phydsi_phy_lanedsi_pll [ifacerefp Tdisableddsi@ae96000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrlQ ` dsi_ctrl!0 D:0$[bytebyte_intfpixelcoreifacebusL E&+dsi  Tdisabledports port@0Qendpointport@1Qendpointphy@ae970002qcom,sm8550-dsi-phy-4nm0Q p r udsi_phydsi_phy_lanedsi_pll [ifacerefp Tdisabledclock-controller@af000002qcom,sm8550-dispccQ \)0*..~p, Tdisabledphy@88e30002qcom,sm8550-snps-eusb2-phyQ0T[ref0 Tdisabledphy@88e80002qcom,sm8550-qmp-usb3-dp-phyQ0 000[auxrefcom_auxusb3_pipe000 phycommonp Tdisabled.ports port@0Qendpointport@1Qendpointport@2Qendpointusb@a6f88002qcom,sm8550-dwc3qcom,dwc3Q o J00 0000&[cfg_noccoreifacesleepmock_utmixoL00\$ Dl<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq0x00W34$usb-ddrapps-usb Tdisabledusb@a600000 2snps,dwc3Q ` ! @/@ &.+usb2-phyusb3-phy !>WoG ports port@0Qendpointport@1Qendpointinterrupt-controller@b2200002qcom,sm8550-pdcqcom,pdc Q "@d< ^^a}?~ thermal-sensor@c271000 2qcom,sm8550-tsensqcom,tsens-v2 Q ' "  '!uplowcritical 5thermal-sensor@c272000 2qcom,sm8550-tsensqcom,tsens-v2 Q '  "0 '!uplowcritical 5thermal-sensor@c273000 2qcom,sm8550-tsensqcom,tsens-v2 Q '0 "@ '!uplowcritical 5power-management@c300000#2qcom,sm8550-aoss-qmpqcom,aoss-qmpQ 0(l( (psram@c3f00002qcom,rpmh-statsQ ?spmi@c4000002qcom,spmi-pmic-arbPQ @0 P@ D L B@corechnlsobsrvrintrcnfg periph_irq l K X pmic@12qcom,pm8550qcom,spmi-pmicQ temp-alarm@a002qcom,spmi-temp-alarmQ !  5gpio@8800 2qcom,pm8550-gpioqcom,spmi-gpioQ ( volume-up-n-state4gpio69normal d qled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-ledQ Tdisabledpwm!2qcom,pm8550-pwmqcom,pm8350c-pwm ~ Tdisabledpmic@22qcom,pm8550qcom,spmi-pmicQ temp-alarm@a002qcom,spmi-temp-alarmQ !  5gpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpioQ (pmic@32qcom,pm8550qcom,spmi-pmicQ temp-alarm@a002qcom,spmi-temp-alarmQ !  5gpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpioQ (pmic@42qcom,pm8550qcom,spmi-pmicQ temp-alarm@a002qcom,spmi-temp-alarmQ !  5gpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpioQ (pmic@62qcom,pm8550qcom,spmi-pmicQ temp-alarm@a002qcom,spmi-temp-alarmQ !  5gpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpioQ (pmic@02qcom,pm8550qcom,spmi-pmicQ pon@13002qcom,pmk8350-ponQ hlospbspwrkey2qcom,pmk8350-pwrkey! tTokayresin2qcom,pmk8350-resin!Tokay rrtc@61002qcom,pmk8350-rtcQab rtcalarm!bnvram@71002qcom,spmi-sdamQq  Jqreboot-reason@48QH gpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpioQ (pinctrl@f1000002qcom,sm8550-tlmmQ0 ! (q  $2qcci0-0-default-statesda-pins4gpio110 9cci_i2c_sdaB qscl-pins4gpio111 9cci_i2c_sclB qcci0-0-sleep-statesda-pins4gpio110 9cci_i2c_sdaB scl-pins4gpio111 9cci_i2c_sclB cci0-1-default-statesda-pins4gpio112 9cci_i2c_sdaB qscl-pins4gpio113 9cci_i2c_sclB qcci0-1-sleep-statesda-pins4gpio112 9cci_i2c_sdaB scl-pins4gpio113 9cci_i2c_sclB cci1-0-default-statesda-pins4gpio114 9cci_i2c_sdaB qscl-pins4gpio115 9cci_i2c_sclB qcci1-0-sleep-statesda-pins4gpio114 9cci_i2c_sdaB scl-pins4gpio115 9cci_i2c_sclB cci2-0-default-statesda-pins4gpio74 9cci_i2c_sdaB qscl-pins4gpio75 9cci_i2c_sclB qcci2-0-sleep-statesda-pins4gpio74 9cci_i2c_sdaB scl-pins4gpio75 9cci_i2c_sclB cci2-1-default-statesda-pins4gpio0 9cci_i2c_sdaB qscl-pins4gpio1 9cci_i2c_sclB qcci2-1-sleep-statesda-pins4gpio0 9cci_i2c_sdaB scl-pins4gpio1 9cci_i2c_sclB hub-i2c0-data-clk-state4gpio16gpio17 9i2chub0_se0B qLhub-i2c1-data-clk-state4gpio18gpio19 9i2chub0_se1B qMhub-i2c2-data-clk-state4gpio20gpio21 9i2chub0_se2B qNhub-i2c3-data-clk-state4gpio22gpio23 9i2chub0_se3B qOhub-i2c4-data-clk-state 4gpio4gpio5 9i2chub0_se4B qPhub-i2c5-data-clk-state 4gpio6gpio7 9i2chub0_se5B qQhub-i2c6-data-clk-state 4gpio8gpio9 9i2chub0_se6B qRhub-i2c7-data-clk-state4gpio10gpio11 9i2chub0_se7B qShub-i2c8-data-clk-state4gpio206gpio207 9i2chub0_se8B qThub-i2c9-data-clk-state4gpio84gpio85 9i2chub0_se9B qUpcie0-default-staterperst-pins4gpio949gpioB clkreq-pins4gpio959pcie0_clk_req_nB qwake-pins4gpio969gpioB qpcie1-default-stateperst-pins4gpio979gpioB clkreq-pins4gpio989pcie1_clk_req_nB qwake-pins4gpio999gpioB qqup-i2c0-data-clk-state4gpio28gpio29 9qup1_se0B qVqup-i2c1-data-clk-state4gpio32gpio33 9qup1_se1B q[qup-i2c2-data-clk-state4gpio36gpio37 9qup1_se2B q^qup-i2c3-data-clk-state4gpio40gpio41 9qup1_se3B qaqup-i2c4-data-clk-state4gpio44gpio45 9qup1_se4B qdqup-i2c5-data-clk-state4gpio52gpio53 9qup1_se5B qgqup-i2c6-data-clk-state4gpio48gpio49 9qup1_se6B qjqup-i2c8-data-clk-state1scl-pins4gpio579qup2_se0_l1_miraB qsda-pins4gpio569qup2_se0_l0_miraB qqup-i2c9-data-clk-state4gpio60gpio61 9qup2_se1B q8qup-i2c10-data-clk-state4gpio64gpio65 9qup2_se2B q;qup-i2c11-data-clk-state4gpio68gpio69 9qup2_se3B q>qup-i2c12-data-clk-state 4gpio2gpio3 9qup2_se4B qAqup-i2c13-data-clk-state4gpio80gpio81 9qup2_se5B qDqup-i2c15-data-clk-state4gpio72gpio106 9qup2_se7B qIqup-spi0-cs-state4gpio31 9qup1_se0B[Zqup-spi0-data-clk-state4gpio28gpio29gpio30 9qup1_se0B[Yqup-spi1-cs-state4gpio35 9qup1_se1B[]qup-spi1-data-clk-state4gpio32gpio33gpio34 9qup1_se1B[\qup-spi2-cs-state4gpio39 9qup1_se2B[`qup-spi2-data-clk-state4gpio36gpio37gpio38 9qup1_se2B[_qup-spi3-cs-state4gpio43 9qup1_se3B[cqup-spi3-data-clk-state4gpio40gpio41gpio42 9qup1_se3B[bqup-spi4-cs-state4gpio47 9qup1_se4B[fqup-spi4-data-clk-state4gpio44gpio45gpio46 9qup1_se4B[equp-spi5-cs-state4gpio55 9qup1_se5B[iqup-spi5-data-clk-state4gpio52gpio53gpio54 9qup1_se5B[hqup-spi6-cs-state4gpio51 9qup1_se6B[lqup-spi6-data-clk-state4gpio48gpio49gpio50 9qup1_se6B[kqup-spi8-cs-state4gpio599qup2_se0_l3_miraB[7qup-spi8-data-clk-state4gpio56gpio57gpio589qup2_se0_l2_miraB[6qup-spi9-cs-state4gpio63 9qup2_se1B[:qup-spi9-data-clk-state4gpio60gpio61gpio62 9qup2_se1B[9qup-spi10-cs-state4gpio67 9qup2_se2B[=qup-spi10-data-clk-state4gpio64gpio65gpio66 9qup2_se2B[<qup-spi11-cs-state4gpio71 9qup2_se3B[@qup-spi11-data-clk-state4gpio68gpio69gpio70 9qup2_se3B[?qup-spi12-cs-state4gpio119 9qup2_se4B[Cqup-spi12-data-clk-state4gpio2gpio3gpio118 9qup2_se4B[Bqup-spi13-cs-state4gpio83 9qup2_se5B[Fqup-spi13-data-clk-state4gpio80gpio81gpio82 9qup2_se5B[Equp-spi15-cs-state4gpio75 9qup2_se7B[Kqup-spi15-data-clk-state4gpio72gpio106gpio74 9qup2_se7B[Jqup-uart7-default-state4gpio26gpio27 9qup1_se7B[mqup-uart14-default-state4gpio78gpio79 9qup2_se6B qGqup-uart14-cts-rts-state4gpio76gpio77 9qup2_se6B Hsdc2-sleep-stateclk-pins 4sdc2_clk[Bcmd-pins 4sdc2_cmd qBdata-pins 4sdc2_data qBsdc2-default-stateclk-pins 4sdc2_clk[Bcmd-pins 4sdc2_cmd qB data-pins 4sdc2_data qB iommu@15000000/2qcom,sm8550-smmu-500qcom,smmu-500arm,mmu-500Q!Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYG/interrupt-controller@17100000 2arm,gic-v3 Q J   !  msi-controller@171400002arm,gic-v3-itsQ  ptimer@174200002arm,armv7-timer-memQBJ  frame@17421000QBB  !frame@17423000QB0  !  Tdisabledframe@17425000QBP  !  Tdisabledframe@17427000QBp  !  Tdisabledframe@17429000QB  !  Tdisabledframe@1742b000QB  !  Tdisabledframe@1742d000QB  ! Tdisabledrsc@17a00000 apps_rsc2qcom,rpmh-rsc@Qdrv-0drv-1drv-2drv-3$!   . :!bcm-voter2qcom,bcm-voter clock-controller2qcom,sm8550-rpmh-clkp[xopower-controller2qcom,sm8550-rpmhpd,opp-table2operating-points-v2opp-16opp-480opp-524opp-568opp-60<opp-64@~opp-80Popp-128opp-144opp-192opp-256xopp-320@opp-336Popp-384opp-416regulators-02qcom,pm8550-rpmh-regulators Jbbob1 Wvreg_bob1 f2K ~ J service@1 2qcom,q6apmQ Wavs/audiomsm/adsp/audio_pddais2qcom,q6apm-dais@//abedais2qcom,q6apm-lpass-daisservice@2 2qcom,q6prmQ Wavs/audiomsm/adsp/audio_pdclock-controller2qcom,q6prm-lpass-clockspinterconnect@320c00002qcom,sm8550-nsp-nocQ2  remoteproc@323000002qcom,sm8550-cdsp-pasQ20@@lB#wdogfatalreadyhandoverstop-ack[xo  cxmxcnspstopTokay.qcom/sm8550/cdsp.mdtqcom/sm8550/cdsp_dtb.mdtglink-edgel( (cdspfastrpc 2qcom,fastrpc fastrpcglink-apps-dspcdsp ' compute-cb@12qcom,fastrpc-compute-cbQ$@/a/  /Gcompute-cb@22qcom,fastrpc-compute-cbQ$@/b/  /Gcompute-cb@32qcom,fastrpc-compute-cbQ$@/c/  /Gcompute-cb@42qcom,fastrpc-compute-cbQ$@/d/  /Gcompute-cb@52qcom,fastrpc-compute-cbQ$@/e/  /Gcompute-cb@62qcom,fastrpc-compute-cbQ$@/f/  /Gcompute-cb@72qcom,fastrpc-compute-cbQ$@/g/  /Gcompute-cb@82qcom,fastrpc-compute-cbQ$@/h/  /Gthermal-zonesaoss0-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassivecpuss0-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassivecpuss1-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassivecpuss2-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassivecpuss3-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassivecpu3-top-thermal ntripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu3-bottom-thermal ntripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu4-top-thermal ntripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu4-bottom-thermal ntripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu5-top-thermal n tripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu5-bottom-thermal n tripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu6-top-thermal n tripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu6-bottom-thermal n tripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu7-top-thermal n tripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu7-middle-thermal ntripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu7-bottom-thermal ntripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalaoss1-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassivecpu0-thermal ntripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu1-thermal ntripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcpu2-thermal ntripstrip-point0 ~_ Epassivetrip-point1 ~s Epassivecpu-critical ~  Ecriticalcdsp0-thermal  ntripsthermal-engine-config ~H Epassivethermal-hal-config ~H Epassivereset-mon-config ~8 Epassivejunction-config ~s Epassivecdsp1-thermal  ntripsthermal-engine-config ~H Epassivethermal-hal-config ~H Epassivereset-mon-config ~8 Epassivejunction-config ~s Epassivecdsp2-thermal  ntripsthermal-engine-config ~H Epassivethermal-hal-config ~H Epassivereset-mon-config ~8 Epassivejunction-config ~s Epassivecdsp3-thermal  ntripsthermal-engine-config ~H Epassivethermal-hal-config ~H Epassivereset-mon-config ~8 Epassivejunction-config ~s Epassivevideo-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassivemem-thermal  n tripsthermal-engine-config ~H Epassiveddr0-config ~_ Epassivereset-mon-config ~8 Epassivemodem0-thermal n tripsthermal-engine-config ~H Epassivemdmss0-config0 ~p Epassivemdmss0-config1 ~( Epassivereset-mon-config ~8 Epassivemodem1-thermal n tripsthermal-engine-config ~H Epassivemdmss1-config0 ~p Epassivemdmss1-config1 ~( Epassivereset-mon-config ~8 Epassivemodem2-thermal n tripsthermal-engine-config ~H Epassivemdmss2-config0 ~p Epassivemdmss2-config1 ~( Epassivereset-mon-config ~8 Epassivemodem3-thermal n tripsthermal-engine-config ~H Epassivemdmss3-config0 ~p Epassivemdmss3-config1 ~( Epassivereset-mon-config ~8 Epassivecamera0-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassivecamera1-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassiveaoss2-thermal ntripsthermal-engine-config ~H Epassivereset-mon-config ~8 Epassivegpuss-0-thermal  ncooling-mapsmap0  tripstrip-point0 ~L Epassivetrip-point1 ~_ Ehottrip-point2 ~  Ecriticalgpuss-1-thermal  ncooling-mapsmap0  tripstrip-point0 ~L Epassivetrip-point1 ~_ Ehottrip-point2 ~  Ecriticalgpuss-2-thermal  ncooling-mapsmap0  tripstrip-point0 ~L Epassivetrip-point1 ~_ Ehottrip-point2 ~  Ecriticalgpuss-3-thermal  ncooling-mapsmap0  tripstrip-point0 ~L Epassivetrip-point1 ~_ Ehottrip-point2 ~  Ecriticalgpuss-4-thermal  ncooling-mapsmap0  tripstrip-point0 ~L Epassivetrip-point1 ~_ Ehottrip-point2 ~  Ecriticalgpuss-5-thermal  ncooling-mapsmap0  tripstrip-point0 ~L Epassivetrip-point1 ~_ Ehottrip-point2 ~  Ecriticalgpuss-6-thermal  ncooling-mapsmap0  tripstrip-point0 ~L Epassivetrip-point1 ~_ Ehottrip-point2 ~  Ecriticalgpuss-7-thermal  ncooling-mapsmap0  tripstrip-point0 ~L Epassivetrip-point1 ~_ Ehottrip-point2 ~  Ecriticalpm8550-thermal d ntripstrip0 ~s Epassivetrip1 ~8 Ehotpm8550vs-c-thermal d ntripstrip0 ~s Epassivetrip1 ~8 Ehotpm8550vs-d-thermal d ntripstrip0 ~s Epassivetrip1 ~8 Ehotpm8550vs-e-thermal d ntripstrip0 ~s Epassivetrip1 ~8 Ehotpm8550vs-g-thermal d ntripstrip0 ~s Epassivetrip1 ~8 Ehottimer2arm,armv8-timer0!   reboot-mode2nvmem-reboot-mode  reboot-mode  aliases$ /soc@0/geniqup@ac0000/serial@a9c000gpio-keys 2gpio-keysugdefaultkey-volume-up Volume Up s :   &vph-pwr-regulator2regulator-fixed Wvph_pwr f8u  ~8u   4 interrupt-parent#address-cells#size-cellsmodelcompatiblechassis-typerangesregwidthheightstrideformat#clock-cellsclock-frequencyphandleclocksclock-multclock-divdevice_typeenable-methodnext-level-cachepower-domainspower-domain-namesqcom,freq-domaincapacity-dmips-mhzdynamic-power-coefficient#cooling-cellscache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uslocal-timer-stopqcom,dload-modeinterconnects#interconnect-cellsqcom,bcm-votersinterrupts#power-domain-cellsdomain-idle-statesno-maphwlocksqcom,smeminterrupts-extendedmboxesqcom,local-pidqcom,remote-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-ranges#reset-cells#mbox-cells#dma-cellsdma-channelsdma-channel-maskiommusdma-coherentstatusclock-namespinctrl-namespinctrl-0interconnect-namesdmasdma-namesreg-namesbus-rangelinux,pci-domainnum-lanesinterrupt-namesinterrupt-map-maskinterrupt-mapmsi-mapiommu-mapresetsreset-namesphysphy-nameswake-gpiosperst-gpiosassigned-clocksassigned-clock-ratesclock-output-names#phy-cellsvdda-phy-supplyvdda-pll-supplyqcom,eeqcom,controlled-remotelylanes-per-directionrequired-oppsoperating-points-v2qcom,icereset-gpiosvcc-supplyvcc-max-microampvccq-supplyvccq-max-microampvdd-hba-supplyopp-hz#hwlock-cellsqcom,gmumemory-regionopp-levelqcom,qmp#iommu-cells#global-interruptsqcom,smem-statesqcom,smem-state-namesfirmware-namelabel#sound-dai-cellsqcom,din-portsqcom,dout-portsqcom,ports-sintervalqcom,ports-offset1qcom,ports-offset2qcom,ports-hstartqcom,ports-hstopqcom,ports-word-lengthqcom,ports-block-pack-modeqcom,ports-block-group-countqcom,ports-lane-controlqcom,ports-sinterval-lowgpio-controller#gpio-cellsgpio-rangespinsfunctiondrive-strengthslew-ratebias-disablebias-bus-holdoutput-highinput-enableqcom,dll-configqcom,ddr-configbus-widthsdhci-caps-maskpinctrl-1remote-endpointassigned-clock-parentsorientation-switchsnps,hird-thresholdsnps,usb2-gadget-lpm-disablesnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,dis-u1-entry-quirksnps,dis-u2-entry-quirksnps,is-utmi-l1-suspendsnps,usb3_lpm_capablesnps,usb2-lpm-disablesnps,has-lpm-erratumtx-fifo-resizeusb-role-switchqcom,pdc-ranges#qcom,sensors#thermal-sensor-cellsqcom,channelqcom,bus-idpower-sourcebias-pull-up#pwm-cellslinux,codebitswakeup-parentgpio-reserved-rangesbias-pull-down#redistributor-regionsredistributor-stridemsi-controller#msi-cellsframe-numberqcom,tcs-offsetqcom,drv-idqcom,tcs-configqcom,pmic-idregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-initial-moderegulator-allow-set-loadregulator-allowed-modesregulator-always-on#freq-domain-cellsopp-peak-kBpsqcom,glink-channelsqcom,non-secure-domainqcom,domainqcom,intentsqcom,protection-domainthermal-sensorstemperaturehysteresispolling-delay-passivetripcooling-devicenvmem-cellsnvmem-cell-namesmode-recoverymode-bootloaderserial0debounce-intervallinux,can-disablewakeup-sourceregulator-boot-on 8(  ,Sony Xperia 1 V2sony,pdx234qcom,sm8550=handsetchosenJserial0:115200n8clocksxo-board 2fixed-clockVcssleep-clk 2fixed-clockVc}s*bi-tcxo-div2-clkV2fixed-factor-clock{s)bi-tcxo-ao-div2-clkV2fixed-factor-clock{scpus cpu@0cpu2arm,cortex-a510{pscipsci d%sl2-cache2cache4@sl3-cache2cache4@scpu@100cpu2arm,cortex-a510{pscipsci d%sl2-cache2cache4@scpu@200cpu2arm,cortex-a510{psci  psci d%sl2-cache2cache4@s cpu@300cpu2arm,cortex-a715{psci  psci %sl2-cache2cache4@s cpu@400cpu2arm,cortex-a715{psci psci %sl2-cache2cache4@s cpu@500cpu2arm,cortex-a710{pscipsci %sl2-cache2cache4@scpu@600cpu2arm,cortex-a710{pscipsci %sl2-cache2cache4@scpu@700cpu2arm,cortex-x3{pscipscif L%sl2-cache2cache4@scpu-mapcluster0core0Ncore1Ncore2Ncore3Ncore4Ncore5Ncore6Ncore7Nidle-statesRpscicpu-sleep-0-02arm,idle-state_silver-rail-power-collapseo@&,s"cpu-sleep-1-02arm,idle-state_gold-rail-power-collapseo@Xs#cpu-sleep-2-02arm,idle-state_goldplus-rail-power-collapseo@F8s$domain-idle-statescluster-sleep-02domain-idle-stateoAD .#s%cluster-sleep-12domain-idle-stateoAD 0's&firmwarescm2qcom,scm-sm8550qcom,scminterconnect-02qcom,sm8550-clk-virt s2interconnect-12qcom,sm8550-mc-virt smemory@a0000000memorypmu-a5102arm,cortex-a510-pmu  pmu-a7102arm,cortex-a710-pmu  pmu-a7152arm,cortex-a715-pmu  pmu-x32arm,cortex-x3-pmu  psci 2arm,psci-1.0smcpower-domain-cpu0!*"spower-domain-cpu1!*"spower-domain-cpu2!*"s power-domain-cpu3!*#s power-domain-cpu4!*#spower-domain-cpu5!*#spower-domain-cpu6!*#spower-domain-cpu7!*$spower-domain-cluster*%&s!reserved-memory =hyp-region@80000000Dcpusys-vm-region@80a00000@Dhyp-tags-region@80e00000=Dxbl-sc-region@d8100000Dhyp-tags-reserved-region@811d0000Dxbl-dt-log-merged-region@81a00000&Daop-cmd-db-region@81c60000 2qcom,cmd-dbDaop-config-merged-region@81c80000@Dsmem@81d00000 2qcom,smem K'Dadsp-mhi-region@81f00000Dglobal-sync-region@82600000`Dtz-stat-region@82700000pDcdsp-secure-heap-region@82800000`Dq6-mpss-dtb-region@9b000000Dsipa-fw-region@9b080000Dipa-gsi-region@9b090000 Dgpu-micro-code-region@9b09a000 Dsspss-region@9b100000Dspu-tz-shared-region@9b280000(Dspu-modem-shared-region@9b2e0000.Dcamera-region@9b3000000Dvideo-region@9bb00000pDcvp-region@9c200000 pDcdsp-region@9c900000Dsq6-cdsp-dtb-region@9e900000Dsq6-adsp-dtb-region@9e980000Dsadspslpi-region@9ea00000Dsmpss-dsm-region@d4d000000Dstz-reserved-region@d8000000Dcpucp-fw-region@d8140000Dqtee-region@d83000000PDta-region@d8800000؀Dtz-tags-region@e1200000 tDhwfence-shbuf-region@e6440000D-Dtrust-ui-vm-region@f3600000`Dtrust-ui-vm-dump-region@f80ee000Dtrust-ui-vm-qrt-region@f80ef000Dtrust-ui-vm-vblk0-ring-region@f80f8000@Dtrust-ui-vm-vblk1-ring-region@f80fc000@Dtrust-ui-vm-swiotlb-region@f8100000Doem-vm-region@f8400000@Doem-vm-vblk0-ring-region@fcc00000@Doem-vm-swiotlb-region@fcc04000@Dhyp-ext-tags-region@fce00000Dhyp-ext-reserved-region@ff700000pDmpss-region@89800000Dssplash@b8000000Dmemory@f8b000002qcom,rmtfs-mem(DSbramoops@ffd000002ramoops lyrdtag-store-region@ffdc0000Dsmp2p-adsp 2qcom,smp2p( (master-kernelmaster-kernelsslave-kernel slave-kernelssmp2p-cdsp 2qcom,smp2p^( (master-kernelmaster-kernelsslave-kernel slave-kernelssmp2p-modem 2qcom,smp2p( (master-kernelmaster-kernelsslave-kernel slave-kernelsipa-ap-to-modemipasipa-modem-to-apipassoc@0 2simple-bus=) clock-controller@1000002qcom,sm8550-gccBV4<{)*+,,---.s0mailbox@4080002qcom,sm8550-ipccqcom,ipcc@  As(dma-controller@800000(2qcom,sm8550-gpi-dmaqcom,sm6350-gpi-dmaM LMNOPQRSTUVWX e> v/6}okays5geniqup@8c00002qcom,geni-se-qup = m-ahbs-ahb{00 v/#} okayi2c@8800002qcom,geni-i2c@se{0odefault1  u H2234qup-corequp-configqup-memory 55txrx disabledspi@8800002qcom,geni-spi@se{0o  udefault67H2234qup-corequp-configqup-memory 55txrx  disabledi2c@8840002qcom,geni-i2c@@se{0qdefault8  G H2234qup-corequp-configqup-memory 55txrx disabledspi@8840002qcom,geni-spi@@se{0q  Gdefault9:H2234qup-corequp-configqup-memory 55txrx  disabledi2c@8880002qcom,geni-i2c@se{0sdefault;  H H2234qup-corequp-configqup-memory 55txrxokaycB@spi@8880002qcom,geni-spi@se{0s  Hdefault<=H2234qup-corequp-configqup-memory 55txrx  disabledi2c@88c0002qcom,geni-i2c@se{0udefault>  I H2234qup-corequp-configqup-memory 55txrxokaycB@speaker-amp@302cirrus,cs35l450 ? ?cirrus,gpio-ctrl2speaker-amp@312cirrus,cs35l451 ? ?cirrus,gpio-ctrl2spi@88c0002qcom,geni-spi@se{0u  Idefault@AH2234qup-corequp-configqup-memory 55txrx  disabledi2c@8900002qcom,geni-i2c@se{0wdefaultB  J H2234qup-corequp-configqup-memory 55txrx disabledspi@8900002qcom,geni-spi@se{0w  JdefaultCDH2234qup-corequp-configqup-memory 55txrx  disabledi2c@8940002qcom,geni-i2c@@se{0ydefaultE  K H2234qup-corequp-configqup-memory 55txrx disabledspi@8940002qcom,geni-spi@@se{0y  KdefaultFGH2234qup-corequp-configqup-memory 55txrx  disabledserial@8980002qcom,geni-uart@se{0{defaultHI  02234qup-corequp-config disabledi2c@89c0002qcom,geni-i2c@se{0}defaultJ   H2234qup-corequp-configqup-memory 55txrx disabledspi@89c0002qcom,geni-spi@se{0}  defaultKLH2234qup-corequp-configqup-memory 55txrx  disabledgeniqup@9c00002qcom,geni-se-i2c-master-hub s-ahb{0Z =okayi2c@9800002qcom,geni-i2c-master-hub@secore{0F0EdefaultM   02234qup-corequp-config disabledi2c@9840002qcom,geni-i2c-master-hub@@secore{0H0EdefaultN   02234qup-corequp-config disabledi2c@9880002qcom,geni-i2c-master-hub@secore{0J0EdefaultO   02234qup-corequp-configokaycpmic@75 2dlg,slg51000u PQdefaultregulatorsldo1%slg51000_a_ldo14$L2Zldo2%slg51000_a_ldo24$L2Zldo3%slg51000_a_ldo34OL98pldo4%slg51000_a_ldo44OL98pldo5%slg51000_a_ldo54 LOldo6%slg51000_a_ldo64 LOldo7%slg51000_a_ldo74OL98pi2c@98c0002qcom,geni-i2c-master-hub@secore{0L0EdefaultR   02234qup-corequp-config disabledi2c@9900002qcom,geni-i2c-master-hub@secore{0N0EdefaultS   02234qup-corequp-config disabledi2c@9940002qcom,geni-i2c-master-hub@@secore{0P0EdefaultT   02234qup-corequp-config disabledi2c@9980002qcom,geni-i2c-master-hub@secore{0R0EdefaultU   02234qup-corequp-config disabledi2c@99c0002qcom,geni-i2c-master-hub@secore{0T0EdefaultV   02234qup-corequp-config disabledi2c@9a00002qcom,geni-i2c-master-hub@secore{0V0EdefaultW   02234qup-corequp-config disabledi2c@9a40002qcom,geni-i2c-master-hub@@secore{0X0EdefaultX   02234qup-corequp-config disableddma-controller@a00000(2qcom,sm8550-gpi-dmaqcom,sm6350-gpi-dmaM %&'()*X e v/}okays[geniqup@ac00002qcom,geni-se-qup = m-ahbs-ahb{00 v/22 qup-core} okayi2c@a800002qcom,geni-i2c@se{0]defaultY  a H2234Zqup-corequp-configqup-memory [[txrxokaycB@spi@a800002qcom,geni-spi@se{0]  adefault\]H2234Zqup-corequp-configqup-memory [[txrx  disabledi2c@a840002qcom,geni-i2c@@se{0_default^  b H2234Zqup-corequp-configqup-memory [[txrx disabledspi@a840002qcom,geni-spi@@se{0_  bdefault_`H2234Zqup-corequp-configqup-memory [[txrx  disabledi2c@a880002qcom,geni-i2c@se{0adefaulta  c H2234Zqup-corequp-configqup-memory [[txrx disabledspi@a880002qcom,geni-spi@se{0a  cdefaultbcH2234Zqup-corequp-configqup-memory [[txrx  disabledi2c@a8c0002qcom,geni-i2c@se{0cdefaultd  d H2234Zqup-corequp-configqup-memory [[txrx disabledspi@a8c0002qcom,geni-spi@se{0c  ddefaultefH2234Zqup-corequp-configqup-memory [[txrx  disabledi2c@a900002qcom,geni-i2c@se{0edefaultg  e H2234Zqup-corequp-configqup-memory [[txrxokaycspi@a900002qcom,geni-spi@se{0e  edefaulthiH2234Zqup-corequp-configqup-memory [[txrx  disabledi2c@a940002qcom,geni-i2c@@se{0gdefaultj  fH2234Zqup-corequp-configqup-memory [[txrx  disabledspi@a940002qcom,geni-spi@@se{0g  fdefaultklH2234Zqup-corequp-configqup-memory [[txrx  disabledi2c@a980002qcom,geni-i2c@se{0idefaultm  kH2234Zqup-corequp-configqup-memory [[txrx  disabledspi@a980002qcom,geni-spi@se{0i  kdefaultnoH2234Zqup-corequp-configqup-memory [[txrx  disabledserial@a9c0002qcom,geni-debug-uart@se{0kdefaultp  Cqup-corequp-config02234okayinterconnect@15000002qcom,sm8550-cnoc-mainP0 srinterconnect@16000002qcom,sm8550-config-noc`b s4interconnect@16800002qcom,sm8550-system-nochЀ interconnect@16c00002qcom,sm8550-pcie-anocl"{00  sqinterconnect@16e00002qcom,sm8550-aggre1-nocnD{00 sZinterconnect@17000002qcom,sm8550-aggre2-nocp{  sinterconnect@17800002qcom,sm8550-mmss-nocx srng@10c30002qcom,sm8550-trngqcom,trng 0pcie@1c00000pci2qcom,pcie-sm8550P0`` ``dparfdbielbiatuconfig 8=` `0`0n}x` (msi0msi1msi2msi3msi4msi5msi6msi78{0"0$0%0*0+00=auxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggr0q3rpcie-memcpu-pcie ss //0pci0+pciephyokay ?` ?^tdefaultpcie@0pcin =phy@1c06000 2qcom,sm8550-qmp-gen3x2-pcie-phy` ({0"0$0&0(auxcfg_ahbrefrchngpipe0phy0&0V4pcie0_pipe_clkGokayRubvs+pcie@1c08000pci2qcom,pcie-sm8550P0@@ @@dparfdbielbiatuconfig 8=@ @0@0n}x` 34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@{0,0.0/0607000 Iauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggrcnoc_sf_axi0,$0q3r pcie-memcpu-pcie ss //00 pcilink_down0,pciephy disabledpcie@0pcin =phy@1c0e000 2qcom,sm8550-qmp-gen4x2-pcie-phy ({000.0204auxcfg_ahbrefrchngpipe0 0 phyphy_nocsr020V4pcie1_pipe_clkG disableds,dma-controller@1dc4000 2qcom,bam-v1.7.4qcom,bam-v1.7.0@  Mrzv//swcrypto@1dfa000)2qcom,sm8550-qceqcom,sm8150-qceqcom,qceߠ`wwrxtxv//memoryphy@1d800002qcom,sm8550-qmp-ufs-phy {0refref_auxqref0xufsphyVG disableds-ufs@1d84000+2qcom,sm8550-ufshcqcom,ufshcjedec,ufs-2.0@0   -ufsphy40rst0y v/`}z0Z34#ufs-ddrcpu-ufsncore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@{0000000{ disabledsxopp-table2operating-points-v2szopp-75000000@xhxh|opp-150000000@рр}opp-300000000@ycrypto@1d88000;2qcom,sm8550-inline-crypto-engineqcom,inline-crypto-engine؀{0s{hwlock@1f400002qcom,tcsr-mutexs'clock-controller@1fc00002qcom,sm8550-tcsrsyscon{V4sgpu@3d00000!2qcom,adreno-43050a01qcom,adreno0#dkgsl_3d0_reg_memorycx_memcx_dbgc  ,v~~% disabledszap-shaderopp-table2operating-points-v2sopp-680000000(opp-615000000$'opp-550000000 Uopp-475000000OPopp-401000000@@opp-348000000<opp-295000000W8opp-220000000 4gmu@3d6a000&2qcom,adreno-gmu-740.1qcom,adreno-gmu0֠P (dgmursccgmu_pdc 01hfigmu8{0 0 !ahbgmucxoaximemnochubdemetcxgx v~sopp-table2operating-points-v2sopp-500000000eopp-200000000 @clock-controller@3d900002qcom,sm8550-gpucc{)00V4siommu@3da0000@2qcom,sm8550-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008 >?@A { 0 0!hlosbusifaceahb}s~ipa@3f400002qcom,sm8550-ipav//0P@dipa-regipa-sharedgsi8(ipagsiipa-clock-queryipa-setup-ready{ core034memoryconfig1*Bipa-clock-enabled-validipa-clock-enabled disabledremoteproc@40800002qcom,sm8550-mpss-pas@@L0wdogfatalreadyhandoverstop-ackshutdown-ack{xo cxmss 1Bstop disabledglink-edge( (Xmpsscodec@6aa00002qcom,sm8550-lpass-wsa-macro({DfgmclkmacrodcodecfsgenV 4wsa2-mclkssoundwire@6ab00002qcom,soundwire-v2.0.0  {ifaceXWSA2default^m }??          *  disabledcodec@6ac00002qcom,sm8550-lpass-rx-macro({@fgmclkmacrodcodecfsgenV4mclkssoundwire@6ad00002qcom,soundwire-v2.0.0  {ifaceXRXdefault^m }?           *  disabledcodec@6ae00002qcom,sm8550-lpass-tx-macro({9fgmclkmacrodcodecfsgenV4mclkscodec@6b000002qcom,sm8550-lpass-wsa-macro({BfgmclkmacrodcodecfsgenV4mclkssoundwire@6b100002qcom,soundwire-v2.0.0  {ifaceXWSAdefault^m }??          *  disabledsoundwire@6d300002qcom,soundwire-v2.0.0  corewakeup{ifaceXTXdefault^mB *  disabledcodec@6d440002qcom,sm8550-lpass-va-macro@${9fgmclkmacrodcodecV4fsgenspinctrl@6e800002qcom,sm8550-lpass-lpi-pinctrl %[kw{fg coreaudiostx-swr-active-statesclk-pinsgpio0 swr_tx_clkdata-pinsgpio1gpio2gpio14 swr_tx_datarx-swr-active-statesclk-pinsgpio3 swr_rx_clkdata-pins gpio4gpio5 swr_rx_datadmic01-default-stateclk-pinsgpio6 dmic1_clkdata-pinsgpio7 dmic1_datadmic23-default-stateclk-pinsgpio8 dmic2_clkdata-pinsgpio9 dmic2_datawsa-swr-active-statesclk-pinsgpio10 wsa_swr_clkdata-pinsgpio11 wsa_swr_datawsa2-swr-active-statesclk-pinsgpio15 wsa2_swr_clkdata-pinsgpio16wsa2_swr_datainterconnect@74000002qcom,sm8550-lpass-lpiaon-noc@ interconnect@74300002qcom,sm8550-lpass-lpicx-nocC sinterconnect@7e400002qcom,sm8550-lpass-ag-noc mmc@8804000$2qcom,sm8550-sdhciqcom,sdhci-msm-v5@ hc_irqpwr_irq{00ifacecorexo v/@d,h034sdhc-ddrcpu-sdhc}okay  !defaultsleep+7DLopp-table2operating-points-v2sopp-19200000$opp-50000000|opp-100000000}opp-202000000 Fclock-controller@aaf00002qcom,sm8550-videocc  {)0|V4cci@ac15000!2qcom,sm8550-cciqcom,msm8996-cci P  {camnoc_axicpas_ahbcci!defaultsleep disabled i2c-bus@0cB@ i2c-bus@1cB@ cci@ac16000!2qcom,sm8550-cciqcom,msm8996-cci `  { camnoc_axicpas_ahbcci!defaultsleep disabled i2c-bus@0cB@ cci@ac17000!2qcom,sm8550-cciqcom,msm8996-cci p  { camnoc_axicpas_ahbcci!defaultsleep disabled i2c-bus@0cB@ i2c-bus@1cB@ clock-controller@ade00002qcom,sm8550-camcc {0)*|V4sdisplay-subsystem@ae000002qcom,sm8550-mdss dmdss  S {00=03 mdp0-memmdp1-mem v/ = disabledsdisplay-controller@ae010002qcom,sm8550-dpu   dmdpvbif 0{00@=I!busnrt_busifacelutcorevsyncI$ports port@0endpointSsport@1endpointSsport@2endpointSsopp-table2operating-points-v2sopp-200000000 |opp-325000000_@}opp-375000000Z opp-514000000ydisplayport-controller@ae900002qcom,sm8550-dpqcom,sm8350-dpP      ({ ;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelc...dp disabledports port@0endpointSsport@1endpointSsopp-table2operating-points-v2sopp-162000000 opp-270000000߀|opp-540000000 /opp-8100000000Gydsi@ae94000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrl @ ddsi_ctrl 0{B80$bytebyte_intfpixelcoreifacebusCcdsi  disabledports port@0endpointSsport@1endpointopp-table2operating-points-v2sopp-187500000 -|opp-300000000}opp-358000000Vphy@ae950002qcom,sm8550-dsi-phy-4nm0 P R Uddsi_phydsi_phy_lanedsi_pll{ ifacerefVG disabledsdsi@ae96000(2qcom,sm8550-dsi-ctrlqcom,mdss-dsi-ctrl ` ddsi_ctrl 0{ D:0$bytebyte_intfpixelcoreifacebus Ecdsi  disabledports port@0endpointSsport@1endpointphy@ae970002qcom,sm8550-dsi-phy-4nm0 p r uddsi_phydsi_phy_lanedsi_pll{ ifacerefVG disabledsclock-controller@af000002qcom,sm8550-dispcc \{)0*..|V4sphy@88e30002qcom,sm8550-snps-eusb2-phy0TG{ref0okayzuvsphy@88e80002qcom,sm8550-qmp-usb3-dp-phy0 {000auxrefcom_auxusb3_pipe000 phycommonVGokayRvbs.ports port@0endpointSsport@1endpointSsport@2endpointSsusb@a6f88002qcom,sm8550-dwc3qcom,dwc3 o =0{0 0000&cfg_noccoreifacesleepmock_utmixo00$ D<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq0y00Z34$usb-ddrapps-usbokayusb@a600000 2snps,dwc3 `   v/@ .usb2-phyusb3-phy   8 P f | } ports port@0endpointSsport@1endpointSsinterrupt-controller@b2200002qcom,sm8550-pdcqcom,pdc "@d< ^^a}?~ sthermal-sensor@c271000 2qcom,sm8550-tsensqcom,tsens-v2 ' "   uplowcritical sthermal-sensor@c272000 2qcom,sm8550-tsensqcom,tsens-v2 '  "0  uplowcritical sthermal-sensor@c273000 2qcom,sm8550-tsensqcom,tsens-v2 '0 "@  uplowcritical spower-management@c300000#2qcom,sm8550-aoss-qmpqcom,aoss-qmp 0(( (Vssram@c3f00002qcom,rpmh-stats ?spmi@c4000002qcom,spmi-pmic-arbP @0 P@ D L B@dcorechnlsobsrvrintrcnfg periph_irq r   pmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ spmic@d2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ spmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800 2qcom,pm8550-gpioqcom,spmi-gpio[w ksvolume-down-n-stategpio6normal  ssd-card-det-n-stategpio12normal   &sled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-ledokayled-0flash 5 ; G  XB@ k led-1flash 5 ; G  XB@ k pwm!2qcom,pm8550-pwmqcom,pm8350c-pwm  disabledpmic@72qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800!2qcom,pm8550b-gpioqcom,spmi-gpio[w kssnapshot-n-stategpio7normal  sfocus-n-stategpio8normal  sphy@fd002qcom,pm8550b-eusb2-repeaterG     spmic@52qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpio[wkspmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpio[wkspmic@32qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpio[wkspmic@42qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpio[wkspmic@62qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm    sgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpio[wPksPcam-pwr-a-cs-stategpio4normal    sQpmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon dhlospbspwrkey2qcom,pmk8350-pwrkey  /tokayresin2qcom,pmk8350-resin okay /srtc@61002qcom,pmk8350-rtcab drtcalarm bnvram@71002qcom,spmi-sdamq  =qreboot-reason@48H :sgpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpio[wkspinctrl@f1000002qcom,sm8550-tlmm0  [kw? ? M s?cci0-0-default-statessda-pinsgpio110 cci_i2c_sda scl-pinsgpio111 cci_i2c_scl cci0-0-sleep-statessda-pinsgpio110 cci_i2c_sda scl-pinsgpio111 cci_i2c_scl cci0-1-default-statessda-pinsgpio112 cci_i2c_sda scl-pinsgpio113 cci_i2c_scl cci0-1-sleep-statessda-pinsgpio112 cci_i2c_sda scl-pinsgpio113 cci_i2c_scl cci1-0-default-statessda-pinsgpio114 cci_i2c_sda scl-pinsgpio115 cci_i2c_scl cci1-0-sleep-statessda-pinsgpio114 cci_i2c_sda scl-pinsgpio115 cci_i2c_scl cci2-0-default-statessda-pinsgpio74 cci_i2c_sda scl-pinsgpio75 cci_i2c_scl cci2-0-sleep-statessda-pinsgpio74 cci_i2c_sda scl-pinsgpio75 cci_i2c_scl cci2-1-default-statessda-pinsgpio0 cci_i2c_sda scl-pinsgpio1 cci_i2c_scl cci2-1-sleep-statessda-pinsgpio0 cci_i2c_sda scl-pinsgpio1 cci_i2c_scl hub-i2c0-data-clk-stategpio16gpio17 i2chub0_se0 sMhub-i2c1-data-clk-stategpio18gpio19 i2chub0_se1 sNhub-i2c2-data-clk-stategpio20gpio21 i2chub0_se2 sOhub-i2c3-data-clk-stategpio22gpio23 i2chub0_se3 sRhub-i2c4-data-clk-state gpio4gpio5 i2chub0_se4 sShub-i2c5-data-clk-state gpio6gpio7 i2chub0_se5 sThub-i2c6-data-clk-state gpio8gpio9 i2chub0_se6 sUhub-i2c7-data-clk-stategpio10gpio11 i2chub0_se7 sVhub-i2c8-data-clk-stategpio206gpio207 i2chub0_se8 sWhub-i2c9-data-clk-stategpio84gpio85 i2chub0_se9 sXpcie0-default-statestperst-pinsgpio94gpio clkreq-pinsgpio95pcie0_clk_req_n wake-pinsgpio96gpio pcie1-default-stateperst-pinsgpio97gpio clkreq-pinsgpio98pcie1_clk_req_n wake-pinsgpio99gpio qup-i2c0-data-clk-stategpio28gpio29 qup1_se0 sYqup-i2c1-data-clk-stategpio32gpio33 qup1_se1 s^qup-i2c2-data-clk-stategpio36gpio37 qup1_se2 saqup-i2c3-data-clk-stategpio40gpio41 qup1_se3 sdqup-i2c4-data-clk-stategpio44gpio45 qup1_se4 sgqup-i2c5-data-clk-stategpio52gpio53 qup1_se5 sjqup-i2c6-data-clk-stategpio48gpio49 qup1_se6 smqup-i2c8-data-clk-states1scl-pinsgpio57qup2_se0_l1_mira sda-pinsgpio56qup2_se0_l0_mira qup-i2c9-data-clk-stategpio60gpio61 qup2_se1 s8qup-i2c10-data-clk-stategpio64gpio65 qup2_se2 s;qup-i2c11-data-clk-stategpio68gpio69 qup2_se3 s>qup-i2c12-data-clk-state gpio2gpio3 qup2_se4 sBqup-i2c13-data-clk-stategpio80gpio81 qup2_se5 sEqup-i2c15-data-clk-stategpio72gpio106 qup2_se7 sJqup-spi0-cs-stategpio31 qup1_se0s]qup-spi0-data-clk-stategpio28gpio29gpio30 qup1_se0s\qup-spi1-cs-stategpio35 qup1_se1s`qup-spi1-data-clk-stategpio32gpio33gpio34 qup1_se1s_qup-spi2-cs-stategpio39 qup1_se2scqup-spi2-data-clk-stategpio36gpio37gpio38 qup1_se2sbqup-spi3-cs-stategpio43 qup1_se3sfqup-spi3-data-clk-stategpio40gpio41gpio42 qup1_se3sequp-spi4-cs-stategpio47 qup1_se4siqup-spi4-data-clk-stategpio44gpio45gpio46 qup1_se4shqup-spi5-cs-stategpio55 qup1_se5slqup-spi5-data-clk-stategpio52gpio53gpio54 qup1_se5skqup-spi6-cs-stategpio51 qup1_se6soqup-spi6-data-clk-stategpio48gpio49gpio50 qup1_se6snqup-spi8-cs-stategpio59qup2_se0_l3_miras7qup-spi8-data-clk-stategpio56gpio57gpio58qup2_se0_l2_miras6qup-spi9-cs-stategpio63 qup2_se1s:qup-spi9-data-clk-stategpio60gpio61gpio62 qup2_se1s9qup-spi10-cs-stategpio67 qup2_se2s=qup-spi10-data-clk-stategpio64gpio65gpio66 qup2_se2s<qup-spi11-cs-stategpio71 qup2_se3sAqup-spi11-data-clk-stategpio68gpio69gpio70 qup2_se3s@qup-spi12-cs-stategpio119 qup2_se4sDqup-spi12-data-clk-stategpio2gpio3gpio118 qup2_se4sCqup-spi13-cs-stategpio83 qup2_se5sGqup-spi13-data-clk-stategpio80gpio81gpio82 qup2_se5sFqup-spi15-cs-stategpio75 qup2_se7sLqup-spi15-data-clk-stategpio72gpio106gpio74 qup2_se7sKqup-uart7-default-stategpio26gpio27 qup1_se7spqup-uart14-default-stategpio78gpio79 qup2_se6 sHqup-uart14-cts-rts-stategpio76gpio77 qup2_se6 sIsdc2-sleep-statesclk-pins sdc2_clkcmd-pins sdc2_cmd data-pins sdc2_data sdc2-default-statesclk-pins sdc2_clkcmd-pins sdc2_cmd  data-pins sdc2_data  iommu@15000000/2qcom,sm8550-smmu-500qcom,smmu-500arm,mmu-500 Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY}s/interrupt-controller@17100000 2arm,gic-v3  = b y    smsi-controller@171400002arm,gic-v3-its  sstimer@174200002arm,armv7-timer-memB=  frame@17421000BB   frame@17423000B0    disabledframe@17425000BP    disabledframe@17427000Bp    disabledframe@17429000B    disabledframe@1742b000B    disabledframe@1742d000B    disabledrsc@17a00000 Xapps_rsc2qcom,rpmh-rsc@ddrv-0drv-1drv-2drv-3$    !bcm-voter2qcom,bcm-voters clock-controller2qcom,sm8550-rpmh-clkVxo{spower-controller2qcom,sm8550-rpmhpdsopp-table2operating-points-v2sopp-16opp-480sopp-524opp-568sopp-60<opp-64@s|opp-80Popp-128s}opp-144opp-192sopp-256syopp-320@opp-336Popp-384opp-416regulators-02qcom,pm8550-rpmh-regulators bbob1 %pm8550_bob144L%7adsp-mhi@81f000007pvmfw@824a0000J7global-sync@82600000`7ftz-stat@82700000p7qdss@828000007qlink-logging@84800000 7fmpss-dsm@86b000007fmpss-dsm-2@8b400000@7fmpss@8bc00000@7fq6-mpss-dtb@9b0000007fipa-fw@9b0800007ipa-gsi@9b090000 7gpu-micro-code@9b09a000 7fspss@9b0a0000 7spu-tz-shared@9b280000(7spu-modem-shared@9b2e0000.7camera@9b30000007video@9bb000007cvp@9c3000000p7cdsp@9ca00000@7fq6-cdsp-dtb@9de000007fq6-adsp-dtb@9de800007fadspslpi@9df000007frmtfs@d7c000002qcom,rmtfs-mem@7FUtz-merged@d80000007hwfence-shbuf@e6440000D-7trust-ui-vm@f3800000@7oem-vm@f7c000007llcc-lpi@ff800000`7smp2p-adsp 2qcom,smp2p_& s&zmaster-kernelmaster-kernelfslave-kernel slave-kernelfsmp2p-cdsp 2qcom,smp2p_& s&z^master-kernelmaster-kernelfslave-kernel slave-kernelfsmp2p-modem 2qcom,smp2p_& s&zmaster-kernelmaster-kernelfslave-kernel slave-kernelfipa-ap-to-modemipafipa-modem-to-apipafsoc@0 2simple-bus 0clock-controller@1000002qcom,sm8650-gccB@n'()*++,,,-I f/mailbox@4060002qcom,sm8650-ipccqcom,ipcc@` f&dma-controller@800000(2qcom,sm8650-gpi-dmaqcom,sm6350-gpi-dmaLMNOPQRSTUVW !?2 =.6D Qdisabledf3geniqup@8c00002qcom,geni-se-qup n// Xm-ahbs-ahb =.#D 0Qokayi2c@8800002qcom,geni-i2c@ un/vXseH0012dqup-corequp-configqup-memory w33|txrx4default  Qdisabledspi@8800002qcom,geni-spi@ un/vXseH0012dqup-corequp-configqup-memory w33|txrx56default  Qdisabledi2c@8840002qcom,geni-i2c@@ Gn/xXseH0012dqup-corequp-configqup-memory w33|txrx7default  Qdisabledspi@8840002qcom,geni-spi@@ Gn/xXseH0012dqup-corequp-configqup-memory w33|txrx89default  Qdisabledi2c@8880002qcom,geni-i2c@ Hn/zXseH0012dqup-corequp-configqup-memory w33|txrx:default  Qdisabledspi@8880002qcom,geni-spi@ Hn/zXseH0012dqup-corequp-configqup-memory w33|txrx;<default  Qdisabledi2c@88c0002qcom,geni-i2c@ In/|XseH0012dqup-corequp-configqup-memory w33|txrx=default  Qdisabledspi@88c0002qcom,geni-spi@ In/|XseH0012dqup-corequp-configqup-memory w33|txrx>?default  Qdisabledi2c@8900002qcom,geni-i2c@ Jn/~XseH0012dqup-corequp-configqup-memory w33|txrx@default  Qdisabledspi@8900002qcom,geni-spi@ Jn/~XseH0012dqup-corequp-configqup-memory w33|txrxABdefault  Qdisabledi2c@8940002qcom,geni-i2c@@ Kn/XseH0012dqup-corequp-configqup-memory w33|txrxCdefault  Qdisabledspi@8940002qcom,geni-spi@@ Kn/XseH0012dqup-corequp-configqup-memory w33|txrxDEdefault  Qdisabledserial@8980002qcom,geni-uart@ n/Xse00012dqup-corequp-configFGdefault Qdisabledserial@89c0002qcom,geni-debug-uart@ n/Xse00012dqup-corequp-configHdefaultQokaygeniqup@9c00002qcom,geni-se-i2c-master-hub n/\Xs-ahb 0 Qdisabledi2c@9800002qcom,geni-i2c-master-hub@ n/H/GXsecore00012dqup-corequp-configIdefault  Qdisabledi2c@9840002qcom,geni-i2c-master-hub@@ n/J/GXsecore00012dqup-corequp-configJdefault  Qdisabledi2c@9880002qcom,geni-i2c-master-hub@ n/L/GXsecore00012dqup-corequp-configKdefault  Qdisabledi2c@98c0002qcom,geni-i2c-master-hub@ n/N/GXsecore00012dqup-corequp-configLdefault  Qdisabledi2c@9900002qcom,geni-i2c-master-hub@ n/P/GXsecore00012dqup-corequp-configMdefault  Qdisabledi2c@9940002qcom,geni-i2c-master-hub@@ n/R/GXsecore00012dqup-corequp-configNdefault  Qdisabledi2c@9980002qcom,geni-i2c-master-hub@ n/T/GXsecore00012dqup-corequp-configOdefault  Qdisabledi2c@99c0002qcom,geni-i2c-master-hub@ n/V/GXsecore00012dqup-corequp-configPdefault  Qdisabledi2c@9a00002qcom,geni-i2c-master-hub@ n/X/GXsecore00012dqup-corequp-configQdefault  Qdisabledi2c@9a40002qcom,geni-i2c-master-hub@@ n/Z/GXsecore00012dqup-corequp-configRdefault  Qdisableddma-controller@a00000(2qcom,sm8650-gpi-dmaqcom,sm6350-gpi-dma%&'()* ! 2 =.D QdisabledfTgeniqup@ac00002qcom,geni-se-qup n// Xm-ahbs-ahb00 dqup-core =.D 0 Qdisabledi2c@a800002qcom,geni-i2c@ an/aXseH0012Sdqup-corequp-configqup-memory wTT|txrxUdefault  Qdisabledspi@a800002qcom,geni-spi@ an/aXseH0012Sdqup-corequp-configqup-memory wTT|txrxVWdefault  Qdisabledi2c@a840002qcom,geni-i2c@@ bn/cXseH0012Sdqup-corequp-configqup-memory wTT|txrxXdefault  Qdisabledspi@a840002qcom,geni-spi@@ bn/cXseH0012Sdqup-corequp-configqup-memory wTT|txrxYZdefault  Qdisabledi2c@a880002qcom,geni-i2c@ cn/eXseH0012Sdqup-corequp-configqup-memory wTT|txrx[default  Qdisabledspi@a880002qcom,geni-spi@ cn/eXseH0012Sdqup-corequp-configqup-memory wTT|txrx\]default  Qdisabledi2c@a8c0002qcom,geni-i2c@ dn/gXseH0012Sdqup-corequp-configqup-memory wTT|txrx^default  Qdisabledspi@a8c0002qcom,geni-spi@ dn/gXseH0012Sdqup-corequp-configqup-memory wTT|txrx_`default  Qdisabledi2c@a900002qcom,geni-i2c@ en/iXseH0012Sdqup-corequp-configqup-memory wTT|txrxadefault  Qdisabledspi@a900002qcom,geni-spi@ en/iXseH0012Sdqup-corequp-configqup-memory wTT|txrxbcdefault  Qdisabledi2c@a940002qcom,geni-i2c@@ fn/kXseH0012Sdqup-corequp-configqup-memory wTT|txrxddefault  Qdisabledspi@a940002qcom,geni-spi@@ fn/kXseH0012Sdqup-corequp-configqup-memory wTT|txrxefdefault  Qdisabledi2c@a980002qcom,geni-i2c@ kn/mXseH0012Sdqup-corequp-configqup-memory wTT|txrxgdefault  Qdisabledspi@a980002qcom,geni-spi@ kn/mXseH0012Sdqup-corequp-configqup-memory wTT|txrxhidefault  Qdisabledi2c@a9c0002qcom,geni-i2c@ Cn/oXseH0012Sdqup-corequp-configqup-memory wTT|txrxjdefault  Qdisabledspi@a9c0002qcom,geni-spi@ Cn/oXseH0012Sdqup-corequp-configqup-memory wTT|txrxkldefault  Qdisabledinterconnect@15000002qcom,sm8650-cnoc-mainP@fninterconnect@16000002qcom,sm8650-config-noc`bf2interconnect@16800002qcom,sm8650-system-nochЀinterconnect@16c00002qcom,sm8650-pcie-anocl"n// fminterconnect@16e00002qcom,sm8650-aggre1-nocndn//fSinterconnect@17000002qcom,sm8650-aggre2-nocpn finterconnect@17800002qcom,sm8650-mmss-nocxfrng@10c30002qcom,sm8650-trngqcom,trng 0pcie@1c00000pci"2qcom,pcie-sm8650qcom,pcie-sm8550P0`` ``parfdbielbiatuconfig`(msi0msi1msi2msi3msi4msi5msi6msi7@n/$/&/'/,/-/ // IXauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggrcnoc_sf_axi/pci0m1n dpcie-memcpu-pcie/ .. oo &0*5pciephy 80` `0`0DQokay ?p` Jp^qdefaultpcie@0pci& 0phy@1c06000 2qcom,sm8650-qmp-gen3x2-pcie-phy` (n/$/&/(/*Xauxcfg_ahbrefrchngpipeV/(f/phy/I{pcie0_pipe_clkQokayrsf*pcie@1c08000pci"2qcom,pcie-sm8650qcom,pcie-sm8550P0@@ @@parfdbielbiatuconfig`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@n/./0/1/8/9/ // IXauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggrcnoc_sf_axiV/.f$// pcilink_down0m1n dpcie-memcpu-pcie/ .. oo &0+5pciephyD 80@ @0@0Qokay ?pc Jpatdefaultpcie@0pci& 0phy@1c0e000 2qcom,sm8650-qmp-gen4x2-pcie-phy (n/2/0/4/6Xauxcfg_ahbrefrchngpipeV/4f/ / phyphy_nocsr/I{pcie1_pipe_clkQokayusrf+dma-controller@1dc40002qcom,bam-v1.7.0@ 2=..fvcrypto@1dfa000)2qcom,sm8650-qceqcom,sm8150-qceqcom,qceߠ`dmemorywvv|rxtx=..phy@1d800002qcom,sm8650-qmp-ufs-phy n/Xrefref_auxqrefwufsphy/IQokayxsf,ufs@1d84000+2qcom,sm8650-ufshcqcom,ufshcjedec,ufs-2.0@0  @n///////nXcore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@JJJ/rst0S12%dufs-ddrcpu-ufs/y =.`z0,5ufsphyQokay $p0{; L|XOfwcrypto@1d88000;2qcom,sm8650-inline-crypto-engineqcom,inline-crypto-engine؀n/fzhwlock@1f400002qcom,tcsr-mutexjf%clock-controller@1fc00002qcom,sm8650-tcsrsyscon nIfgpu@3d00000!2qcom,adreno-43051401qcom,adreno0 #kgsl_3d0_reg_memorycx_memcx_dbgc ,=}}x~ Qdisabledfzap-shaderopp-table2operating-points-v2f~opp-231000000 4opp-310000000z98opp-366000000з<opp-422000000'5@opp-500000000ePopp-578000000"sopp-629000000%}@opp-680000000(opp-720000000*Topp-770000000-Dopp-8340000001Ԁ@gmu@3d6a000&2qcom,adreno-gmu-750.1qcom,adreno-gmu0֠P (gmursccgmu_pdc01hfigmu8n/ /"!Xahbgmucxoaximemnochubdemetcxgx =}xfopp-table2operating-points-v2fopp-260000000I@opp-625000000%@@clock-controller@3d900002qcom,sm8650-gpuccn'/ /!I fiommu@3da0000@2qcom,sm8650-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008>?@A n/"/#XhlosbusifaceahbDf}ipa@3f40000 2qcom,sm8650-ipaqcom,sm8550-ipa=..0P@ipa-regipa-sharedgsi8_(ipagsiipa-clock-queryipa-setup-readyn Xcore012dmemoryconfig*ipa-clock-enabled-validipa-clock-enabled Qdisabledremoteproc@40800002qcom,sm8650-mpss-pas@@L_0wdogfatalreadyhandoverstop-ackshutdown-acknXxo cxmssstopQokay0qcom/sm8650/modem.mbnqcom/sm8650/modem_dtb.mbnglink-edge_& s&mpsscodec@6aa000082qcom,sm8650-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(nDfgXmclkmacrodcodecfsgenI {wsa2-mclkfsoundwire@6ab00002qcom,soundwire-v2.0.0 nXifaceWSA2default)8 H?? ]  p        Qdisabledcodec@6ac000062qcom,sm8650-lpass-rx-macroqcom,sm8550-lpass-rx-macro(n@fgXmclkmacrodcodecfsgenI{mclkfsoundwire@6ad00002qcom,soundwire-v2.0.0 nXifaceRXdefault)8 H1 ]  p         Qdisabledcodec@6ae000062qcom,sm8650-lpass-tx-macroqcom,sm8550-lpass-tx-macro(n9fgXmclkmacrodcodecfsgenI{mclkfcodec@6b0000082qcom,sm8650-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(nBfgXmclkmacrodcodecfsgenI{mclkfsoundwire@6b100002qcom,soundwire-v2.0.0 nXifaceWSAdefault)8 H?? ]  p       Qokayfspeaker@0,02sdw20217020400default   SpkrLeft/>L fspeaker@0,12sdw20217020400default  pM SpkrRight/>L fsoundwire@6d300002qcom,soundwire-v2.0.0 corewakeupnXifaceTXdefault)8^]p  Qdisabledcodec@6d4400062qcom,sm8650-lpass-va-macroqcom,sm8550-lpass-va-macro@$n9fgXmclkmacrodcodecI{fsgenfpinctrl@6e800002qcom,sm8650-lpass-lpi-pinctrlnfg Xcoreaudiowftx-swr-active-statefclk-pinsgpio0 swr_tx_clkdata-pinsgpio1gpio2gpio14 swr_tx_datarx-swr-active-statefclk-pinsgpio3 swr_rx_clkdata-pins gpio4gpio5 swr_rx_datadmic01-default-stateclk-pinsgpio6 dmic1_clkdata-pinsgpio7 dmic1_datadmic23-default-stateclk-pinsgpio8 dmic2_clkdata-pinsgpio9 dmic2_datawsa-swr-active-statefclk-pinsgpio10 wsa_swr_clkdata-pinsgpio11 wsa_swr_datawsa2-swr-active-statefclk-pinsgpio15 wsa2_swr_clkdata-pinsgpio16wsa2_swr_dataspkr-1-sd-n-active-stategpio21gpiofinterconnect@74000002qcom,sm8650-lpass-lpiaon-noc@interconnect@74300002qcom,sm8650-lpass-lpicx-nocCfinterconnect@7e400002qcom,sm8650-lpass-ag-nocmmc@8804000$2qcom,sm8650-sdhciqcom,sdhci-msm-v5@hc_irqpwr_irqn//Xifacecorexo012 dsdhc-ddrcpu-sdhcx =.@d,/hDQokay ? HTaipdefaultsleepopp-table2operating-points-v2fopp-19200000$opp-50000000opp-100000000opp-202000000 Fclock-controller@aaf00002qcom,sm8650-videocc  n'/I cci@ac15000!2qcom,sm8650-cciqcom,msm8996-cci P n Xcamnoc_axicpas_ahbccipdefaultsleep Qdisabled i2c-bus@0VB@ i2c-bus@1VB@ cci@ac16000!2qcom,sm8650-cciqcom,msm8996-cci ` n Xcamnoc_axicpas_ahbccipdefaultsleep Qdisabled i2c-bus@0VB@ i2c-bus@1VB@ cci@ac17000!2qcom,sm8650-cciqcom,msm8996-cci p nXcamnoc_axicpas_ahbccipdefaultsleep Qdisabled i2c-bus@0VB@ i2c-bus@1VB@ clock-controller@ade00002qcom,sm8650-camcc n/'()I fdisplay-subsystem@ae000002qcom,sm8650-mdss mdss Sn/=01dmdp0-memmdp1-mem =. 0Qokayfdisplay-controller@ae010002qcom,sm8650-dpu   mdpvbif_(n/@=IXnrt_busifacelutcorevsyncVIf$xports port@0endpointzfport@1endpointzfport@2endpointzfopp-table2operating-points-v2fopp-200000000 opp-325000000_@opp-375000000Z opp-514000000ydsi@ae94000(2qcom,sm8650-dsi-ctrlqcom,mdss-dsi-ctrl @ dsi_ctrl_0nB8/$Xbytebyte_intfpixelcoreifacebusVCx05dsi Qokaysports port@0endpointzfport@1endpointzfopp-table2operating-points-v2fopp-187500000 -opp-300000000opp-358000000Vpanel@02visionox,vtdr6130 $ppdefaultsleepportendpointzfphy@ae950002qcom,sm8650-dsi-phy-4nm0 P R Udsi_phydsi_phy_lanedsi_plln XifacerefIQokayrfdsi@ae96000(2qcom,sm8650-dsi-ctrlqcom,mdss-dsi-ctrl ` dsi_ctrl_0n D:/$Xbytebyte_intfpixelcoreifacebusV Ex05dsi  Qdisabledports port@0endpointzfport@1endpointphy@ae970002qcom,sm8650-dsi-phy-4nm0 p r udsi_phydsi_phy_lanedsi_plln XifacerefI Qdisabledfdisplayport-controller@af540002qcom,sm8650-dpP @ B Pp ` p_ (n ;Xcore_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelV--x0-5dp Qdisabledopp-table2operating-points-v2fopp-162000000 opp-270000000߀opp-540000000 /opp-8100000000Gyports port@0endpointzfport@1endpointzfclock-controller@af000002qcom,sm8650-dispcc \n'(/)--I Qokayfphy@88e300062qcom,sm8650-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy0TnXref/Qokayrs0fphy@88e80002qcom,sm8650-qmp-usb3-dp-phy0 n///Xauxrefcom_auxusb3_pipe// phycommon/IQokaysf-ports port@0endpointzf port@1endpointzfport@2endpointzfusb@a6f88002qcom,sm8650-dwc3qcom,dwc3 oD_<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq0n/ ////&Xcfg_noccoreifacesleepmock_utmixoV//f$ //y 0Qokayusb@a600000 2snps,dwc3 `  =.@ 0-5usb2-phyusb3-phy   9 R j      D otg ports port@0endpointzf port@1endpointzfinterrupt-controller@b2200002qcom,sm8650-pdcqcom,pdc "@dH ^^a}?~ fthermal-sensor@c228000 2qcom,sm8650-tsensqcom,tsens-v2 " " uplowcritical * 8fthermal-sensor@c229000 2qcom,sm8650-tsensqcom,tsens-v2 " "0uplowcritical * 8fthermal-sensor@c22a000 2qcom,sm8650-tsensqcom,tsens-v2 " "@uplowcritical *  8fpower-management@c300000#2qcom,sm8650-aoss-qmpqcom,aoss-qmp 0&_& s&Ifsram@c3f00002qcom,rpmh-stats ?spmi@c4000002qcom,spmi-pmic-arbP @0 P@ D L B@corechnlsobsrvrintrcnfg _ periph_irq N [ pmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ 8fpmic@d2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ 8fpmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   8fgpio@8800 2qcom,pm8550-gpioqcom,spmi-gpiow fsdc2-card-det-stategpio12normal g t fled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-led Qdisabledpwm!2qcom,pm8550-pwmqcom,pm8350c-pwm  Qdisabledpmic@72qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   8fgpio@8800!2qcom,pm8550b-gpioqcom,spmi-gpiow fphy@fd002qcom,pm8550b-eusb2-repeater  fpmic@82qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   8fgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiowfpmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   8fgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiowfpmic@32qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   8fgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiowfpmic@42qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   8fgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiowfpmic@62qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   8f gpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiowfpmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon hlospbspwrkey2qcom,pmk8350-pwrkey t Qdisabledresin2qcom,pmk8350-resin Qdisabledrtc@61002qcom,pmk8350-rtcab rtcalarmbnvram@71002qcom,spmi-sdamq  0qreboot-reason@48H f gpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpiowfpmic@a2qcom,pmr735dqcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm   8f gpio@8800!2qcom,pmr735d-gpioqcom,spmi-gpiowfpinctrl@f1000002qcom,sm8650-tlmm0 wp  Jfpcci0-0-default-statefsda-pinsgpio113 cci_i2c_sda gscl-pinsgpio114 cci_i2c_scl gcci0-0-sleep-statefsda-pinsgpio113 cci_i2c_sda scl-pinsgpio114 cci_i2c_scl cci0-1-default-statefsda-pinsgpio115 cci_i2c_sda gscl-pinsgpio116 cci_i2c_scl gcci0-1-sleep-statefsda-pinsgpio115 cci_i2c_sda scl-pinsgpio116 cci_i2c_scl cci1-0-default-statefsda-pinsgpio117 cci_i2c_sda gscl-pinsgpio118 cci_i2c_scl gcci1-0-sleep-statefsda-pinsgpio117 cci_i2c_sda scl-pinsgpio118 cci_i2c_scl cci1-1-default-statefsda-pinsgpio12 cci_i2c_sda gscl-pinsgpio13 cci_i2c_scl gcci1-1-sleep-statefsda-pinsgpio12 cci_i2c_sda scl-pinsgpio13 cci_i2c_scl cci2-0-default-statefsda-pinsgpio112 cci_i2c_sda gscl-pinsgpio153 cci_i2c_scl gcci2-0-sleep-statefsda-pinsgpio112 cci_i2c_sda scl-pinsgpio153 cci_i2c_scl cci2-1-default-statefsda-pinsgpio119 cci_i2c_sda gscl-pinsgpio120 cci_i2c_scl gcci2-1-sleep-statefsda-pinsgpio119 cci_i2c_sda scl-pinsgpio120 cci_i2c_scl hub-i2c0-data-clk-stategpio64gpio65 i2chub0_se0 gfIhub-i2c1-data-clk-stategpio66gpio67 i2chub0_se1 gfJhub-i2c2-data-clk-stategpio68gpio69 i2chub0_se2 gfKhub-i2c3-data-clk-stategpio70gpio71 i2chub0_se3 gfLhub-i2c4-data-clk-stategpio72gpio73 i2chub0_se4 gfMhub-i2c5-data-clk-stategpio74gpio75 i2chub0_se5 gfNhub-i2c6-data-clk-stategpio76gpio77 i2chub0_se6 gfOhub-i2c7-data-clk-stategpio78gpio79 i2chub0_se7 gfPhub-i2c8-data-clk-stategpio206gpio207 i2chub0_se8 gfQhub-i2c9-data-clk-stategpio80gpio81 i2chub0_se9 gfRpcie0-default-statefqperst-pinsgpio94gpio clkreq-pinsgpio95pcie0_clk_req_n gwake-pinsgpio96gpio gpcie1-default-stateftperst-pinsgpio97gpio clkreq-pinsgpio98pcie1_clk_req_n gwake-pinsgpio99gpio gqup-i2c0-data-clk-stategpio32gpio33 qup1_se0 gfUqup-i2c1-data-clk-stategpio36gpio37 qup1_se1 gfXqup-i2c2-data-clk-stategpio40gpio41 qup1_se2 gf[qup-i2c3-data-clk-stategpio44gpio45 qup1_se3 gf^qup-i2c4-data-clk-stategpio48gpio49 qup1_se4 gfaqup-i2c5-data-clk-stategpio52gpio53 qup1_se5 gfdqup-i2c6-data-clk-stategpio56gpio57 qup1_se6 gfgqup-i2c7-data-clk-stategpio60gpio61 qup1_se7 gfjqup-i2c8-data-clk-state gpio0gpio1 qup2_se0 gf4qup-i2c9-data-clk-state gpio4gpio5 qup2_se1 gf7qup-i2c10-data-clk-state gpio8gpio9 qup2_se2 gf:qup-i2c11-data-clk-stategpio12gpio13 qup2_se3 gf=qup-i2c12-data-clk-stategpio16gpio17 qup2_se4 gf@qup-i2c13-data-clk-stategpio20gpio21 qup2_se5 gfCqup-i2c14-data-clk-stategpio24gpio25 qup2_se6 gqup-spi0-cs-stategpio35 qup1_se0fWqup-spi0-data-clk-stategpio32gpio33gpio34 qup1_se0fVqup-spi1-cs-stategpio39 qup1_se1fZqup-spi1-data-clk-stategpio36gpio37gpio38 qup1_se1fYqup-spi2-cs-stategpio43 qup1_se2f]qup-spi2-data-clk-stategpio40gpio41gpio42 qup1_se2f\qup-spi3-cs-stategpio47 qup1_se3f`qup-spi3-data-clk-stategpio44gpio45gpio46 qup1_se3f_qup-spi4-cs-stategpio51 qup1_se4fcqup-spi4-data-clk-stategpio48gpio49gpio50 qup1_se4fbqup-spi5-cs-stategpio55 qup1_se5ffqup-spi5-data-clk-stategpio52gpio53gpio54 qup1_se5fequp-spi6-cs-stategpio59 qup1_se6fiqup-spi6-data-clk-stategpio56gpio57gpio58 qup1_se6fhqup-spi7-cs-stategpio63 qup1_se7flqup-spi7-data-clk-stategpio60gpio61gpio62 qup1_se7fkqup-spi8-cs-stategpio3 qup2_se0f6qup-spi8-data-clk-stategpio0gpio1gpio2 qup2_se0f5qup-spi9-cs-stategpio7 qup2_se1f9qup-spi9-data-clk-stategpio4gpio5gpio6 qup2_se1f8qup-spi10-cs-stategpio11 qup2_se2f<qup-spi10-data-clk-stategpio8gpio9gpio10 qup2_se2f;qup-spi11-cs-stategpio15 qup2_se3f?qup-spi11-data-clk-stategpio12gpio13gpio14 qup2_se3f>qup-spi12-cs-stategpio19 qup2_se4fBqup-spi12-data-clk-stategpio16gpio17gpio18 qup2_se4fAqup-spi13-cs-stategpio23 qup2_se5fEqup-spi13-data-clk-stategpio20gpio21gpio22 qup2_se5fDqup-spi14-cs-stategpio27 qup2_se6qup-spi14-data-clk-stategpio24gpio25gpio26 qup2_se6qup-uart14-default-stategpio26gpio27 qup2_se6 gfFqup-uart14-cts-rts-stategpio24gpio25 qup2_se6 fGqup-uart15-default-stategpio30gpio31 qup2_se7fHsdc2-sleep-statefclk-pins sdc2_clkcmd-pins sdc2_cmd gdata-pins sdc2_data gsdc2-default-statefclk-pins sdc2_clkcmd-pins sdc2_cmd  gdata-pins sdc2_data  gdisp0-reset-n-active-stategpio133gpiofdisp0-reset-n-suspend-stategpio133gpio fmdp-vsync-active-stategpio86 mdp_vsync fmdp-vsync-suspend-stategpio86 mdp_vsync fspkr-2-sd-n-active-stategpio77gpiofiommu@15000000/2qcom,sm8650-smmu-500qcom,smmu-500arm,mmu-500Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYDf.interrupt-controller@17100000 2arm,gic-v3       0fmsi-controller@171400002arm,gic-v3-its " 1fotimer@174200002arm,armv7-timer-memB0  frame@17421000BB  <frame@17423000B0   < Qdisabledframe@17425000BP   < Qdisabledframe@17427000Bp   < Qdisabledframe@17429000B   < Qdisabledframe@1742b000B   < Qdisabledframe@1742d000B  < Qdisabledrsc@17a000002qcom,rpmh-rsc@drv-0drv-1drv-2$ I  Y e apps_rscbcm-voter2qcom,bcm-voterfclock-controller2qcom,sm8650-rpmh-clknXxoIfpower-controller2qcom,sm8650-rpmhpdx fopp-table2operating-points-v2fopp-16opp-480fopp-524opp-568fopp-60<opp-64@fopp-80Popp-128fopp-144opp-192fopp-256fyopp-320@opp-336Popp-384opp-416regulators-02qcom,pm8550-rpmh-regulators u           )bbob1 6vreg_bob1 E2K ] O ] kldo1 6vreg_l1m_1p1 E؀ ]؀ u  ldo2 6vreg_l2m_1p056 E ] u  ldo3 6vreg_l3m_2p8 E* ]* uldo4 6vreg_l4m_2p8 E* ]* uldo5 6vreg_l5m_1p8 Ew@ ]w@ uldo6 6vreg_l6m_2p8 E* ]* uldo7 6vreg_l7m_2p96 E-* ]-* uregulators-72qcom,pm8010-rpmh-regulators )n - > O ] kldo1 6vreg_l1n_1p1 E؀ ]؀ u  ldo2 6vreg_l2n_1p056 E ] u  ldo3 6vreg_l3n_1p8 Ew@ ]w@ uldo4 6vreg_l4n_1p8 Ew@ ]w@ uldo5 6vreg_l5n_2p8 E* ]* uldo6 6vreg_l6n_2p8 E* ]* uldo7 6vreg_l7n_3p3 E2j@ ]2j@ ucpufreq@17d91000+2qcom,sm8650-cpufreq-epssqcom,cpufreq-epss@ 0@4freq-domain0freq-domain1freq-domain2freq-domain300dcvsh-irq-0dcvsh-irq-1dcvsh-irq-2dcvsh-irq-3 n'/ Xxoalternate yIfpmu@24091000.2qcom,sm8650-llcc-bwmonqcom,sc7280-llcc-bwmon$  Qxopp-table2operating-points-v2fopp-0 popp-1 ,hopp-2 Zopp-3 ci8opp-4 yopp-5 Aopp-6 Hopp-7 ։opp-8 hpmu@240b7400(2qcom,sm8650-cpu-bwmonqcom,sdm845-bwmon$ t E11xopp-table2operating-points-v2fopp-0 Eopp-1 l}popp-2 opp-3 opp-4 9`opp-5 /(interconnect@241000002qcom,sm8650-gem-noc$ Pf1system-cache-controller@250000002qcom,sm8650-llcc`% %@ % %` % % Xllcc0_basellcc1_basellcc2_basellcc3_basellcc_broadcast_basellcc_broadcast_and_base  remoteproc@300000002qcom,sm8650-adsp-pas0<_#wdogfatalreadyhandoverstop-acknXxolcxlmxstopQokay.qcom/sm8650/adsp.mbnqcom/sm8650/adsp_dtb.mbnglink-edge_& s&lpassfastrpc 2qcom,fastrpc fastrpcglink-apps-dspadsp  compute-cb@32qcom,fastrpc-compute-cb=..C Dcompute-cb@42qcom,fastrpc-compute-cb=..D Dcompute-cb@52qcom,fastrpc-compute-cb=..E Dcompute-cb@62qcom,fastrpc-compute-cb=..F Dcompute-cb@72qcom,fastrpc-compute-cb$=.@.g.Dgpr 2qcom,gpr adsp_apps   service@1 2qcom,q6apm avs/audiomsm/adsp/audio_pdfbedais2qcom,q6apm-lpass-daisfdais2qcom,q6apm-dais=..aservice@2 2qcom,q6prm avs/audiomsm/adsp/audio_pdclock-controller2qcom,q6prm-lpass-clocksIfinterconnect@320c00002qcom,sm8650-nsp-noc2 fremoteproc@323000002qcom,sm8650-cdsp-pas20@@_B#wdogfatalreadyhandoverstop-acknXxo  cxmxcnsp stopQokay.qcom/sm8650/cdsp.mbnqcom/sm8650/cdsp_dtb.mbnglink-edge_& s&cdspfastrpc 2qcom,fastrpc fastrpcglink-apps-dspcdsp  compute-cb@12qcom,fastrpc-compute-cb$=.a.  .Dcompute-cb@22qcom,fastrpc-compute-cb$=.b.  .Dcompute-cb@32qcom,fastrpc-compute-cb$=.c.  .Dcompute-cb@42qcom,fastrpc-compute-cb$=.d.  .Dcompute-cb@52qcom,fastrpc-compute-cb$=.e.  .Dcompute-cb@62qcom,fastrpc-compute-cb$=.f.  .Dcompute-cb@72qcom,fastrpc-compute-cb$=.g.  .Dcompute-cb@82qcom,fastrpc-compute-cb$=.h.  .Dcompute-cb@102qcom,fastrpc-compute-cb $=.l. .Dcompute-cb@112qcom,fastrpc-compute-cb $=.m. .Dcompute-cb@122qcom,fastrpc-compute-cb$=.n.  .Dthermal-zonesaoss0-thermal tripstrip-point0_hotaoss0-critical criticalcpuss0-thermal tripstrip-point0_hotcpuss0-critical criticalcpuss1-thermal tripstrip-point0_hotcpuss1-critical criticalcpuss2-thermal tripstrip-point0_hotcpuss2-critical criticalcpuss3-thermal tripstrip-point0_hotcpuss3-critical criticalcpu2-top-thermal tripstrip-point0_passivetrip-point1spassivecpu2-critical criticalcpu2-bottom-thermal tripstrip-point0_passivetrip-point1spassivecpu2-critical criticalcpu3-top-thermal tripstrip-point0_passivetrip-point1spassivecpu3-critical criticalcpu3-bottom-thermal tripstrip-point0_passivetrip-point1spassivecpu3-critical criticalcpu4-top-thermal tripstrip-point0_passivetrip-point1spassivecpu4-critical criticalcpu4-bottom-thermal tripstrip-point0_passivetrip-point1spassivecpu4-critical criticalcpu5-top-thermal tripstrip-point0_passivetrip-point1spassivecpu5-critical criticalcpu5-bottom-thermal tripstrip-point0_passivetrip-point1spassivecpu5-critical criticalcpu6-top-thermal tripstrip-point0_passivetrip-point1spassivecpu6-critical criticalcpu6-bottom-thermal tripstrip-point0_passivetrip-point1spassivecpu6-critical criticalaoss1-thermal tripstrip-point0_hotaoss1-critical criticalcpu7-top-thermal tripstrip-point0_passivetrip-point1spassivecpu7-critical criticalcpu7-middle-thermal tripstrip-point0_passivetrip-point1spassivecpu7-critical criticalcpu7-bottom-thermal tripstrip-point0_passivetrip-point1spassivecpu7-critical criticalcpu0-thermal tripstrip-point0_passivetrip-point1spassivecpu0-critical criticalcpu1-thermal tripstrip-point0_passivetrip-point1spassivecpu1-critical criticalnsphvx0-thermal  tripstrip-point0_hotnsphvx1-critical criticalnsphvx1-thermal  tripstrip-point0_hotnsphvx1-critical criticalnsphmx0-thermal  tripstrip-point0_hotnsphmx0-critical criticalnsphmx1-thermal  tripstrip-point0_hotnsphmx1-critical criticalnsphmx2-thermal  tripstrip-point0_hotnsphmx2-critical criticalnsphmx3-thermal  tripstrip-point0_hotnsphmx3-critical criticalvideo-thermal  tripstrip-point0_hotvideo-critical criticalddr-thermal  tripstrip-point0_hotddr-critical criticalcamera0-thermal tripstrip-point0_hotcamera0-critical criticalcamera1-thermal tripstrip-point0_hotcamera1-critical criticalaoss2-thermal tripstrip-point0_hotaoss2-critical criticalgpuss0-thermal  cooling-mapsmap02 7tripstrip-point0Lpassiveftrip-point1_hottrip-point2 criticalgpuss1-thermal  cooling-mapsmap02 7tripstrip-point0Lpassiveftrip-point1_hottrip-point2 criticalgpuss2-thermal  cooling-mapsmap02 7tripstrip-point0Lpassiveftrip-point1_hottrip-point2 criticalgpuss3-thermal  cooling-mapsmap02 7tripstrip-point0Lpassiveftrip-point1_hottrip-point2 criticalgpuss4-thermal  cooling-mapsmap02 7tripstrip-point0Lpassiveftrip-point1_hottrip-point2 criticalgpuss5-thermal  cooling-mapsmap02 7tripstrip-point0Lpassiveftrip-point1_hottrip-point2 criticalgpuss6-thermal  cooling-mapsmap02 7tripstrip-point0Lpassiveftrip-point1_hottrip-point2 criticalgpuss7-thermal  cooling-mapsmap02 7tripstrip-point0Lpassiveftrip-point1_hottrip-point2 criticalmodem0-thermal tripstrip-point0_hotmodem0-critical criticalmodem1-thermal tripstrip-point0_hotmodem1-critical criticalmodem2-thermal tripstrip-point0_hotmodem2-critical criticalmodem3-thermal tripstrip-point0_hotmodem3-critical criticalpm8010-m-thermald tripstrip0spassivetrip18hotpm8010-n-thermald tripstrip0spassivetrip18hotpm8550-thermald tripstrip0spassivetrip18hotpm8550b-thermald tripstrip0spassivetrip18hotpm8550ve-thermald tripstrip0spassivetrip18hotpm8550vs-c-thermald tripstrip0spassivetrip18hotpm8550vs-d-thermald tripstrip0spassivetrip18hotpm8550vs-e-thermald tripstrip0spassivetrip18hotpm8550vs-g-thermald  tripstrip0spassivetrip18hotpmr735d-k-thermald  tripstrip0spassivetrip18hottimer2arm,armv8-timer0   reboot-mode2nvmem-reboot-modeF  Rreboot-modecqaliases$/soc@0/geniqup@8c0000/serial@89c000pmic-glink>2qcom,sm8650-pmic-glinkqcom,sm8550-pmic-glinkqcom,pmic-glink  pconnector@02usb-c-connectordualdualports port@0endpointz fport@1endpointz fsound(2qcom,sm8650-sndcardqcom,sm8450-sndcard ,SM8650-MTP3SpkrLeft INWSA_SPK1 OUTSpkrRight INWSA_SPK2 OUTwsa-dai-link WSA Playbackcpuicodecplatformvph-pwr-regulator2regulator-fixed 6vph_pwr E8u  ]8u f interrupt-parent#address-cells#size-cellsmodelcompatiblestdout-path#clock-cellsclock-frequencyphandleclocksclock-multclock-divdevice_typeregpower-domainspower-domain-namesenable-methodnext-level-cachecapacity-dmips-mhzdynamic-power-coefficientqcom,freq-domain#cooling-cellscache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uslocal-timer-stopqcom,dload-modeinterconnects#interconnect-cellsqcom,bcm-votersinterrupts#power-domain-cellsdomain-idle-statesrangesno-maphwlocksqcom,client-idqcom,vmidinterrupts-extendedmboxesqcom,smemqcom,local-pidqcom,remote-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-ranges#reset-cells#mbox-cellsdma-channelsdma-channel-mask#dma-cellsiommusdma-coherentstatusclock-namesinterconnect-namesdmasdma-namespinctrl-0pinctrl-namesreg-namesinterrupt-namesresetsreset-namesiommu-mapinterrupt-mapinterrupt-map-maskmsi-mapmsi-map-masklinux,pci-domainnum-lanesbus-rangephysphy-nameswake-gpiosperst-gpiosassigned-clocksassigned-clock-ratesclock-output-names#phy-cellsvdda-phy-supplyvdda-pll-supplyvdda-qref-supplyqcom,eeqcom,controlled-remotelyfreq-table-hzrequired-oppslanes-per-directionqcom,icereset-gpiosvcc-supplyvcc-max-microampvccq-supplyvccq-max-microamp#hwlock-cellsoperating-points-v2qcom,gmumemory-regionopp-hzopp-levelqcom,qmp#iommu-cells#global-interruptsqcom,smem-statesqcom,smem-state-namesfirmware-namelabel#sound-dai-cellsqcom,din-portsqcom,dout-portsqcom,ports-sintervalqcom,ports-offset1qcom,ports-offset2qcom,ports-hstartqcom,ports-hstopqcom,ports-word-lengthqcom,ports-block-pack-modeqcom,ports-block-group-countqcom,ports-lane-controlpowerdown-gpiossound-name-prefixvdd-1p8-supplyvdd-io-supplyqcom,port-mappingqcom,ports-sinterval-lowgpio-controller#gpio-cellsgpio-rangespinsfunctiondrive-strengthslew-ratebias-disablebias-bus-holdoutput-highinput-enableoutput-lowbus-widthsdhci-caps-maskqcom,dll-configqcom,ddr-configcd-gpiosvmmc-supplyvqmmc-supplyno-sdiono-mmcpinctrl-1remote-endpointassigned-clock-parentsvdda-supplydata-lanesvddio-supplyvci-supplyvdd-supplyvdds-supplyvdda12-supplyorientation-switchsnps,hird-thresholdsnps,usb2-gadget-lpm-disablesnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,dis-u1-entry-quirksnps,dis-u2-entry-quirksnps,is-utmi-l1-suspendsnps,usb3_lpm_capablesnps,usb2-lpm-disablesnps,has-lpm-erratumtx-fifo-resizedr_modeusb-role-switchqcom,pdc-ranges#qcom,sensors#thermal-sensor-cellsqcom,channelqcom,bus-idbias-pull-upoutput-disablepower-source#pwm-cellsvdd18-supplyvdd3-supplylinux,codebitswakeup-parentgpio-reserved-rangesbias-pull-down#redistributor-regionsredistributor-stridemsi-controller#msi-cellsframe-numberqcom,tcs-offsetqcom,drv-idqcom,tcs-configvdd-bob1-supplyvdd-bob2-supplyvdd-l2-l13-l14-supplyvdd-l3-supplyvdd-l5-l16-supplyvdd-l6-l7-supplyvdd-l8-l9-supplyvdd-l11-supplyvdd-l12-supplyvdd-l15-supplyvdd-l17-supplyqcom,pmic-idregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-initial-moderegulator-allow-set-loadregulator-allowed-modesvdd-l1-supplyvdd-l2-supplyvdd-s1-supplyvdd-s2-supplyvdd-s3-supplyvdd-s4-supplyvdd-s5-supplyvdd-s6-supplyvdd-l1-l2-supplyvdd-l3-l4-supplyvdd-l5-supplyvdd-l6-supplyvdd-l7-supply#freq-domain-cellsopp-peak-kBpsqcom,glink-channelsqcom,non-secure-domainqcom,domainqcom,intentsqcom,protection-domainthermal-sensorstemperaturehysteresispolling-delay-passivetripcooling-devicenvmem-cellsnvmem-cell-namesmode-recoverymode-bootloaderserial0orientation-gpiospower-roledata-roleaudio-routinglink-namesound-dairegulator-always-onregulator-boot-on 80( ',Qualcomm Technologies, Inc. SM8650 QRD2qcom,sm8650-qrdqcom,sm8650chosen=serial0:115200n8clocksxo-board 2fixed-clockIVfsleep-clk 2fixed-clockIV}f)bi-tcxo-div2-clk2fixed-factor-clockInuf'bi-tcxo-ao-div2-clk2fixed-factor-clockInuf(cpus cpu@0cpu2arm,cortex-a520npscipscidfl2-cache2cache'3fl3-cache2cache'3fcpu@100cpu2arm,cortex-a520npscipscidfcpu@200cpu2arm,cortex-a720npscipsci fl2-cache2cache'3f cpu@300cpu2arm,cortex-a720n pscipsci fcpu@400cpu2arm,cortex-a720n pscipsci fl2-cache2cache'3f cpu@500cpu2arm,cortex-a720n pscipscifl2-cache2cache'3fcpu@600cpu2arm,cortex-a720npscipscifl2-cache2cache'3fcpu@700cpu2arm,cortex-x4npscipscifLfl2-cache2cache'3fcpu-mapcluster0core0Acore1Acore2Acore3Acore4Acore5Acore6Acore7Aidle-statesEpscicpu-sleep-0-02arm,idle-stateRsilver-rail-power-collapseb@y&,f cpu-sleep-1-02arm,idle-stateRgold-rail-power-collapseb@yXf!cpu-sleep-2-02arm,idle-stateRgold-plus-rail-power-collapseb@yF8f"domain-idle-statescluster-sleep-02domain-idle-statebADy .#f#cluster-sleep-12domain-idle-statebADy 0'f$firmwarescm2qcom,scm-sm8650qcom,scminterconnect-02qcom,sm8650-clk-virtf0interconnect-12qcom,sm8650-mc-virtfmemory@a0000000memorypmu-a5202arm,cortex-a520-pmu pmu-a7202arm,cortex-a720-pmu pmu-x42arm,cortex-x4-pmu psci 2arm,psci-1.0smcpower-domain-cpu0  fpower-domain-cpu1  fpower-domain-cpu2  fpower-domain-cpu3 !f power-domain-cpu4 !f power-domain-cpu5 !f power-domain-cpu6 !fpower-domain-cpu7 "fpower-domain-cluster #$freserved-memory 0hyp@800000007cpusys-vm@80e00000@7xbl-dt-log-merged@81a00000&7aop-cmd-db@81c60000 2qcom,cmd-db7aop-tme-uefi-merged@81c80000P7smem@81d00000 2qcom,smem >%7adsp-mhi@81f000007pvmfw@824a0000J7global-sync@82600000`7ftz-stat@82700000p7qdss@828000007qlink-logging@84800000 7fmpss-dsm@86b000007fmpss-dsm-2@8b400000@7fmpss@8bc00000@7fq6-mpss-dtb@9b0000007fipa-fw@9b0800007fipa-gsi@9b090000 7gpu-micro-code@9b09a000 7fspss@9b0a0000 7spu-tz-shared@9b280000(7spu-modem-shared@9b2e0000.7camera@9b30000007video@9bb000007cvp@9c3000000p7cdsp@9ca00000@7fq6-cdsp-dtb@9de000007fq6-adsp-dtb@9de800007fadspslpi@9df000007frmtfs@d7c000002qcom,rmtfs-mem@7FUtz-merged@d80000007hwfence-shbuf@e6440000D-7trust-ui-vm@f3800000@7oem-vm@f7c000007llcc-lpi@ff800000`7smp2p-adsp 2qcom,smp2p_& s&zmaster-kernelmaster-kernelfslave-kernel slave-kernelfsmp2p-cdsp 2qcom,smp2p_& s&z^master-kernelmaster-kernelfslave-kernel slave-kernelfsmp2p-modem 2qcom,smp2p_& s&zmaster-kernelmaster-kernelfslave-kernel slave-kernelfipa-ap-to-modemipafipa-modem-to-apipafsoc@0 2simple-bus 0clock-controller@1000002qcom,sm8650-gccB@n'()*++,,,-I f/mailbox@4060002qcom,sm8650-ipccqcom,ipcc@` f&dma-controller@800000(2qcom,sm8650-gpi-dmaqcom,sm6350-gpi-dmaLMNOPQRSTUVW !?2 =.6D Qdisabledf3geniqup@8c00002qcom,geni-se-qup n// Xm-ahbs-ahb =.#D 0Qokayi2c@8800002qcom,geni-i2c@ un/vXseH0012dqup-corequp-configqup-memory w33|txrx4default  Qdisabledspi@8800002qcom,geni-spi@ un/vXseH0012dqup-corequp-configqup-memory w33|txrx56default  Qdisabledi2c@8840002qcom,geni-i2c@@ Gn/xXseH0012dqup-corequp-configqup-memory w33|txrx7default  Qdisabledspi@8840002qcom,geni-spi@@ Gn/xXseH0012dqup-corequp-configqup-memory w33|txrx89default  Qdisabledi2c@8880002qcom,geni-i2c@ Hn/zXseH0012dqup-corequp-configqup-memory w33|txrx:default  Qdisabledspi@8880002qcom,geni-spi@ Hn/zXseH0012dqup-corequp-configqup-memory w33|txrx;<default  Qdisabledi2c@88c0002qcom,geni-i2c@ In/|XseH0012dqup-corequp-configqup-memory w33|txrx=default  Qdisabledspi@88c0002qcom,geni-spi@ In/|XseH0012dqup-corequp-configqup-memory w33|txrx>?default  Qdisabledi2c@8900002qcom,geni-i2c@ Jn/~XseH0012dqup-corequp-configqup-memory w33|txrx@default  Qdisabledspi@8900002qcom,geni-spi@ Jn/~XseH0012dqup-corequp-configqup-memory w33|txrxABdefault  Qdisabledi2c@8940002qcom,geni-i2c@@ Kn/XseH0012dqup-corequp-configqup-memory w33|txrxCdefault  Qdisabledspi@8940002qcom,geni-spi@@ Kn/XseH0012dqup-corequp-configqup-memory w33|txrxDEdefault  Qdisabledserial@8980002qcom,geni-uart@ n/Xse00012dqup-corequp-configFGdefaultQokaybluetooth2qcom,wcn7850-btHIJKLMN0serial@89c0002qcom,geni-debug-uart@ n/Xse00012dqup-corequp-configOdefaultQokaygeniqup@9c00002qcom,geni-se-i2c-master-hub n/\Xs-ahb 0 Qdisabledi2c@9800002qcom,geni-i2c-master-hub@ n/H/GXsecore00012dqup-corequp-configPdefault  Qdisabledi2c@9840002qcom,geni-i2c-master-hub@@ n/J/GXsecore00012dqup-corequp-configQdefault  Qdisabledi2c@9880002qcom,geni-i2c-master-hub@ n/L/GXsecore00012dqup-corequp-configRdefault  Qdisabledi2c@98c0002qcom,geni-i2c-master-hub@ n/N/GXsecore00012dqup-corequp-configSdefault  Qdisabledi2c@9900002qcom,geni-i2c-master-hub@ n/P/GXsecore00012dqup-corequp-configTdefault  Qdisabledi2c@9940002qcom,geni-i2c-master-hub@@ n/R/GXsecore00012dqup-corequp-configUdefault  Qdisabledi2c@9980002qcom,geni-i2c-master-hub@ n/T/GXsecore00012dqup-corequp-configVdefault  Qdisabledi2c@99c0002qcom,geni-i2c-master-hub@ n/V/GXsecore00012dqup-corequp-configWdefault  Qdisabledi2c@9a00002qcom,geni-i2c-master-hub@ n/X/GXsecore00012dqup-corequp-configXdefault  Qdisabledi2c@9a40002qcom,geni-i2c-master-hub@@ n/Z/GXsecore00012dqup-corequp-configYdefault  Qdisableddma-controller@a00000(2qcom,sm8650-gpi-dmaqcom,sm6350-gpi-dma%&'()* ! 2 =.DQokayf[geniqup@ac00002qcom,geni-se-qup n// Xm-ahbs-ahb00 dqup-core =.D 0Qokayi2c@a800002qcom,geni-i2c@ an/aXseH0012Zdqup-corequp-configqup-memory w[[|txrx\default  Qdisabledspi@a800002qcom,geni-spi@ an/aXseH0012Zdqup-corequp-configqup-memory w[[|txrx]^default  Qdisabledi2c@a840002qcom,geni-i2c@@ bn/cXseH0012Zdqup-corequp-configqup-memory w[[|txrx_default  Qdisabledspi@a840002qcom,geni-spi@@ bn/cXseH0012Zdqup-corequp-configqup-memory w[[|txrx`adefault  Qdisabledi2c@a880002qcom,geni-i2c@ cn/eXseH0012Zdqup-corequp-configqup-memory w[[|txrxbdefault  Qdisabledspi@a880002qcom,geni-spi@ cn/eXseH0012Zdqup-corequp-configqup-memory w[[|txrxcddefault  Qdisabledi2c@a8c0002qcom,geni-i2c@ dn/gXseH0012Zdqup-corequp-configqup-memory w[[|txrxedefault Qokaytypec-mux@e&2qcom,wcd9395-usbssqcom,wcd9390-usbssf #g/;ports port@0endpointNhfport@1endpointNif%spi@a8c0002qcom,geni-spi@ dn/gXseH0012Zdqup-corequp-configqup-memory w[[|txrxjkdefault  Qdisabledi2c@a900002qcom,geni-i2c@ en/iXseH0012Zdqup-corequp-configqup-memory w[[|txrxldefault  Qdisabledspi@a900002qcom,geni-spi@ en/iXseH0012Zdqup-corequp-configqup-memory w[[|txrxmndefault Qokaytouchscreen@02goodix,gt9916g #g^ojB@|8 `pqdefaulti2c@a940002qcom,geni-i2c@@ fn/kXseH0012Zdqup-corequp-configqup-memory w[[|txrxrdefault  Qdisabledspi@a940002qcom,geni-spi@@ fn/kXseH0012Zdqup-corequp-configqup-memory w[[|txrxstdefault  Qdisabledi2c@a980002qcom,geni-i2c@ kn/mXseH0012Zdqup-corequp-configqup-memory w[[|txrxudefault Qokaytypec-mux@1c2onnn,nb7vpq904mf;ports port@0endpointNvfport@1endpointNwfspi@a980002qcom,geni-spi@ kn/mXseH0012Zdqup-corequp-configqup-memory w[[|txrxxydefault  Qdisabledi2c@a9c0002qcom,geni-i2c@ Cn/oXseH0012Zdqup-corequp-configqup-memory w[[|txrxzdefault  Qdisabledspi@a9c0002qcom,geni-spi@ Cn/oXseH0012Zdqup-corequp-configqup-memory w[[|txrx{|default  Qdisabledinterconnect@15000002qcom,sm8650-cnoc-mainP@f~interconnect@16000002qcom,sm8650-config-noc`bf2interconnect@16800002qcom,sm8650-system-nochЀinterconnect@16c00002qcom,sm8650-pcie-anocl"n// f}interconnect@16e00002qcom,sm8650-aggre1-nocndn//fZinterconnect@17000002qcom,sm8650-aggre2-nocpn finterconnect@17800002qcom,sm8650-mmss-nocxfrng@10c30002qcom,sm8650-trngqcom,trng 0pcie@1c00000pci"2qcom,pcie-sm8650qcom,pcie-sm8550P0`` ``parfdbielbiatuconfig`(msi0msi1msi2msi3msi4msi5msi6msi7@n/$/&/'/,/-/ // IXauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggrcnoc_sf_axi/pci0}1~ dpcie-memcpu-pcie/ ..  '4EOY*^pciephy 80` `0`0DQokay hg` sg^defaultpcie@0pciO 0wifi@0 2pci17cb,1107HIJKLMNphy@1c06000 2qcom,sm8650-qmp-gen3x2-pcie-phy` (n/$/&/(/*Xauxcfg_ahbrefrchngpipe/(/phy/Ipcie0_pipe_clkQokayf*pcie@1c08000pci"2qcom,pcie-sm8650qcom,pcie-sm8550P0@@ @@parfdbielbiatuconfig`34589:vw(msi0msi1msi2msi3msi4msi5msi6msi7@n/./0/1/8/9/ // IXauxcfgbus_masterbus_slaveslave_q2addrss_sf_tbunoc_aggrcnoc_sf_axi/.$// pcilink_down0}1~ dpcie-memcpu-pcie/ ..  '4EOY+^pciephyD 80@ @0@0 Qdisabledpcie@0pciO 0phy@1c0e000 2qcom,sm8650-qmp-gen4x2-pcie-phy (n/2/0/4/6Xauxcfg_ahbrefrchngpipe/4/ / phyphy_nocsr/Ipcie1_pipe_clk Qdisabledf+dma-controller@1dc40002qcom,bam-v1.7.0@ 2=..fcrypto@1dfa000)2qcom,sm8650-qceqcom,sm8150-qceqcom,qceߠ`dmemoryw|rxtx=..phy@1d800002qcom,sm8650-qmp-ufs-phy n/Xrefref_auxqrefufsphy/IQokayf,ufs@1d84000+2qcom,sm8650-ufshcqcom,ufshcjedec,ufs-2.0@0  @n///////nXcore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clk@'JJJ/rst0Z12%dufs-ddrcpu-ufs/5 =.`CWY,^ufsphyQokay #g` q}Ofcrypto@1d88000;2qcom,sm8650-inline-crypto-engineqcom,inline-crypto-engine؀n/fhwlock@1f400002qcom,tcsr-mutexf%clock-controller@1fc00002qcom,sm8650-tcsrsyscon nIfgpu@3d00000!2qcom,adreno-43051401qcom,adreno0 #kgsl_3d0_reg_memorycx_memcx_dbgc ,=Qokayfzap-shaderqcom/sm8650/gen70900_zap.mbnopp-table2operating-points-v2fopp-231000000 4opp-310000000z98opp-366000000з<opp-422000000'5@opp-500000000ePopp-578000000"sopp-629000000%}@opp-680000000(opp-720000000*Topp-770000000-Dopp-8340000001Ԁ@gmu@3d6a000&2qcom,adreno-gmu-750.1qcom,adreno-gmu0֠P (gmursccgmu_pdc01hfigmu8n/ /"!Xahbgmucxoaximemnochubdemetcxgx =fopp-table2operating-points-v2fopp-260000000I@opp-625000000%@@clock-controller@3d900002qcom,sm8650-gpuccn'/ /!I fiommu@3da0000@2qcom,sm8650-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008>?@A n/"/#XhlosbusifaceahbDfipa@3f40000 2qcom,sm8650-ipaqcom,sm8550-ipa=..0P@ipa-regipa-sharedgsi8_(ipagsiipa-clock-queryipa-setup-readyn Xcore012dmemoryconfig*!ipa-clock-enabled-validipa-clock-enabledQokay7selfqcom/sm8650/ipa_fws.mbnremoteproc@40800002qcom,sm8650-mpss-pas@@L_0wdogfatalreadyhandoverstop-ackshutdown-acknXxo cxmss!stopQokay0qcom/sm8650/modem.mbnqcom/sm8650/modem_dtb.mbnglink-edge_& s&Gmpsscodec@6aa000082qcom,sm8650-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(nDfgXmclkmacrodcodecfsgenI wsa2-mclkMfsoundwire@6ab00002qcom,soundwire-v2.0.0 nXifaceGWSA2default^m }??          * M Qdisabledcodec@6ac000062qcom,sm8650-lpass-rx-macroqcom,sm8550-lpass-rx-macro(n@fgXmclkmacrodcodecfsgenImclkMfsoundwire@6ad00002qcom,soundwire-v2.0.0 nXifaceGRXdefault^m }1           * MQokayfcodec@0,42sdw20217010e00B f#codec@6ae000062qcom,sm8650-lpass-tx-macroqcom,sm8550-lpass-tx-macro(n9fgXmclkmacrodcodecfsgenImclkMfcodec@6b0000082qcom,sm8650-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(nBfgXmclkmacrodcodecfsgenImclkMfsoundwire@6b100002qcom,soundwire-v2.0.0 nXifaceGWSAdefault^m }??          * MQokayf!speaker@0,02sdw20217020400default WM gSpkrLeftyf fspeaker@0,12sdw20217020400default WgMM gSpkrRightyf f soundwire@6d300002qcom,soundwire-v2.0.0 corewakeupnXifaceGTXdefault^m * MQokayfcodec@0,32sdw20217010e00f$codec@6d4400062qcom,sm8650-lpass-va-macroqcom,sm8550-lpass-va-macro@$n9fgXmclkmacrodcodecIfsgenMfpinctrl@6e800002qcom,sm8650-lpass-lpi-pinctrlnfg Xcoreaudioftx-swr-active-statefclk-pinsgpio0 swr_tx_clk   %data-pinsgpio1gpio2gpio14 swr_tx_data   2rx-swr-active-statefclk-pinsgpio3 swr_rx_clk   %data-pins gpio4gpio5 swr_rx_data   2dmic01-default-stateclk-pinsgpio6 dmic1_clk  @data-pinsgpio7 dmic1_data  Ldmic23-default-stateclk-pinsgpio8 dmic2_clk  @data-pinsgpio9 dmic2_data  Lwsa-swr-active-statefclk-pinsgpio10 wsa_swr_clk   %data-pinsgpio11 wsa_swr_data   2wsa2-swr-active-statefclk-pinsgpio15 wsa2_swr_clk   %data-pinsgpio16 wsa2_swr_data   2spkr-1-sd-n-active-stategpio21 gpio  % Yfinterconnect@74000002qcom,sm8650-lpass-lpiaon-noc@interconnect@74300002qcom,sm8650-lpass-lpicx-nocCfinterconnect@7e400002qcom,sm8650-lpass-ag-nocmmc@8804000$2qcom,sm8650-sdhciqcom,sdhci-msm-v5@hc_irqpwr_irqn//Xifacecorexo012 dsdhc-ddrcpu-sdhc =.@ d n ~d, hD Qdisabledopp-table2operating-points-v2fopp-19200000$5opp-500000005opp-1000000005opp-202000000 F5clock-controller@aaf00002qcom,sm8650-videocc  n'/I cci@ac15000!2qcom,sm8650-cciqcom,msm8996-cci P n Xcamnoc_axicpas_ahbcci defaultsleep Qdisabled i2c-bus@0VB@ i2c-bus@1VB@ cci@ac16000!2qcom,sm8650-cciqcom,msm8996-cci ` n Xcamnoc_axicpas_ahbcci defaultsleep Qdisabled i2c-bus@0VB@ i2c-bus@1VB@ cci@ac17000!2qcom,sm8650-cciqcom,msm8996-cci p nXcamnoc_axicpas_ahbcci defaultsleep Qdisabled i2c-bus@0VB@ i2c-bus@1VB@ clock-controller@ade00002qcom,sm8650-camcc n/'()I fdisplay-subsystem@ae000002qcom,sm8650-mdss mdss Sn/=01dmdp0-memmdp1-mem =. 0Qokayfdisplay-controller@ae010002qcom,sm8650-dpu   mdpvbif_(n/@=IXnrt_busifacelutcorevsyncI$ports port@0endpointNfport@1endpointNfport@2endpointNfopp-table2operating-points-v2fopp-200000000 5opp-325000000_@5opp-375000000Z 5opp-5140000005dsi@ae94000(2qcom,sm8650-dsi-ctrlqcom,mdss-dsi-ctrl @ dsi_ctrl_0nB8/$Xbytebyte_intfpixelcoreifacebusC Y^dsi Qokay ports port@0endpointNfport@1endpointNfopp-table2operating-points-v2fopp-187500000 -5opp-3000000005opp-358000000V5panel@02visionox,vtdr6130 #g   defaultsleepportendpointNfphy@ae950002qcom,sm8650-dsi-phy-4nm0 P R Udsi_phydsi_phy_lanedsi_plln XifacerefIQokay fdsi@ae96000(2qcom,sm8650-dsi-ctrlqcom,mdss-dsi-ctrl ` dsi_ctrl_0n D:/$Xbytebyte_intfpixelcoreifacebus E Y^dsi  Qdisabledports port@0endpointNfport@1endpointphy@ae970002qcom,sm8650-dsi-phy-4nm0 p r udsi_phydsi_phy_lanedsi_plln XifacerefI Qdisabledfdisplayport-controller@af540002qcom,sm8650-dpP @ B Pp ` p_ (n ;Xcore_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel --Y-^dpMQokayopp-table2operating-points-v2fopp-162000000 5opp-270000000߀5opp-540000000 /5opp-8100000000G5ports port@0endpointNfport@1endpointNfclock-controller@af000002qcom,sm8650-dispcc \n'(/)--5I Qokayfphy@88e300062qcom,sm8650-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy0TnXref/Qokay Yfphy@88e80002qcom,sm8650-qmp-usb3-dp-phy0 n///Xauxrefcom_auxusb3_pipe// phycommon/I;Qokayf-ports port@0endpointNfwport@1endpointNfport@2endpointNfusb@a6f88002qcom,sm8650-dwc3qcom,dwc3 oD_<pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq0n/ ////&Xcfg_noccoreifacesleepmock_utmixo//$ //5 0Qokayusb@a600000 2snps,dwc3 `  =.@ Y-^usb2-phyusb3-phy   . G _ w     D otg ports port@0endpointNfport@1endpointNfinterrupt-controller@b2200002qcom,sm8650-pdcqcom,pdc "@dH ^^a}?~ fthermal-sensor@c228000 2qcom,sm8650-tsensqcom,tsens-v2 " " uplowcritical  -fthermal-sensor@c229000 2qcom,sm8650-tsensqcom,tsens-v2 " "0uplowcritical  -fthermal-sensor@c22a000 2qcom,sm8650-tsensqcom,tsens-v2 " "@uplowcritical   -fpower-management@c300000#2qcom,sm8650-aoss-qmpqcom,aoss-qmp 0&_& s&Ifsram@c3f00002qcom,rpmh-stats ?spmi@c4000002qcom,spmi-pmic-arbP @0 P@ D L B@corechnlsobsrvrintrcnfg _ periph_irq C P pmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ -f pmic@d2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ -f pmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   -f gpio@8800 2qcom,pm8550-gpioqcom,spmi-gpio fvolume-up-n-stategpio6 normal \ L ifled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-ledQokayled-0 flash v |     led-1 flash v |     pwm!2qcom,pm8550-pwmqcom,pm8350c-pwm Qokaymulti-led v  status led@1 vled@2 vled@3 vpmic@72qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   -fgpio@8800!2qcom,pm8550b-gpioqcom,spmi-gpio fphy@fd002qcom,pm8550b-eusb2-repeater f fpmic@82qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   -fgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiofpmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   -fgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiofpmic@32qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   -fgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiofpmic@42qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   -fgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiofpmic@62qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm   -fgpio@8800"2qcom,pm8550vs-gpioqcom,spmi-gpiofpmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon hlospbspwrkey2qcom,pmk8350-pwrkey tQokayresin2qcom,pmk8350-resinQokay rrtc@61002qcom,pmk8350-rtcab rtcalarmbQokaynvram@71002qcom,spmi-sdamq  0qreboot-reason@48H fgpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpiofpmic@a2qcom,pmr735dqcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm   -fgpio@8800!2qcom,pmr735d-gpioqcom,spmi-gpiofpinctrl@f1000002qcom,sm8650-tlmm0 g   Jfgcci0-0-default-statefsda-pinsgpio113 cci_i2c_sda  \scl-pinsgpio114 cci_i2c_scl  \cci0-0-sleep-statefsda-pinsgpio113 cci_i2c_sda  ,scl-pinsgpio114 cci_i2c_scl  ,cci0-1-default-statefsda-pinsgpio115 cci_i2c_sda  \scl-pinsgpio116 cci_i2c_scl  \cci0-1-sleep-statefsda-pinsgpio115 cci_i2c_sda  ,scl-pinsgpio116 cci_i2c_scl  ,cci1-0-default-statefsda-pinsgpio117 cci_i2c_sda  \scl-pinsgpio118 cci_i2c_scl  \cci1-0-sleep-statefsda-pinsgpio117 cci_i2c_sda  ,scl-pinsgpio118 cci_i2c_scl  ,cci1-1-default-statefsda-pinsgpio12 cci_i2c_sda  \scl-pinsgpio13 cci_i2c_scl  \cci1-1-sleep-statefsda-pinsgpio12 cci_i2c_sda  ,scl-pinsgpio13 cci_i2c_scl  ,cci2-0-default-statefsda-pinsgpio112 cci_i2c_sda  \scl-pinsgpio153 cci_i2c_scl  \cci2-0-sleep-statefsda-pinsgpio112 cci_i2c_sda  ,scl-pinsgpio153 cci_i2c_scl  ,cci2-1-default-statefsda-pinsgpio119 cci_i2c_sda  \scl-pinsgpio120 cci_i2c_scl  \cci2-1-sleep-statefsda-pinsgpio119 cci_i2c_sda  ,scl-pinsgpio120 cci_i2c_scl  ,hub-i2c0-data-clk-stategpio64gpio65 i2chub0_se0  \fPhub-i2c1-data-clk-stategpio66gpio67 i2chub0_se1  \fQhub-i2c2-data-clk-stategpio68gpio69 i2chub0_se2  \fRhub-i2c3-data-clk-stategpio70gpio71 i2chub0_se3  \fShub-i2c4-data-clk-stategpio72gpio73 i2chub0_se4  \fThub-i2c5-data-clk-stategpio74gpio75 i2chub0_se5  \fUhub-i2c6-data-clk-stategpio76gpio77 i2chub0_se6  \fVhub-i2c7-data-clk-stategpio78gpio79 i2chub0_se7  \fWhub-i2c8-data-clk-stategpio206gpio207 i2chub0_se8  \fXhub-i2c9-data-clk-stategpio80gpio81 i2chub0_se9  \fYpcie0-default-statefperst-pinsgpio94 gpio  ,clkreq-pinsgpio95 pcie0_clk_req_n  \wake-pinsgpio96 gpio  \pcie1-default-stateperst-pinsgpio97 gpio  ,clkreq-pinsgpio98 pcie1_clk_req_n  \wake-pinsgpio99 gpio  \qup-i2c0-data-clk-stategpio32gpio33 qup1_se0  \f\qup-i2c1-data-clk-stategpio36gpio37 qup1_se1  \f_qup-i2c2-data-clk-stategpio40gpio41 qup1_se2  \fbqup-i2c3-data-clk-stategpio44gpio45 qup1_se3  \fequp-i2c4-data-clk-stategpio48gpio49 qup1_se4  \flqup-i2c5-data-clk-stategpio52gpio53 qup1_se5  \frqup-i2c6-data-clk-stategpio56gpio57 qup1_se6  \fuqup-i2c7-data-clk-stategpio60gpio61 qup1_se7  \fzqup-i2c8-data-clk-state gpio0gpio1 qup2_se0  \f4qup-i2c9-data-clk-state gpio4gpio5 qup2_se1  \f7qup-i2c10-data-clk-state gpio8gpio9 qup2_se2  \f:qup-i2c11-data-clk-stategpio12gpio13 qup2_se3  \f=qup-i2c12-data-clk-stategpio16gpio17 qup2_se4  \f@qup-i2c13-data-clk-stategpio20gpio21 qup2_se5  \fCqup-i2c14-data-clk-stategpio24gpio25 qup2_se6  \qup-spi0-cs-stategpio35 qup1_se0  %f^qup-spi0-data-clk-stategpio32gpio33gpio34 qup1_se0  %f]qup-spi1-cs-stategpio39 qup1_se1  %faqup-spi1-data-clk-stategpio36gpio37gpio38 qup1_se1  %f`qup-spi2-cs-stategpio43 qup1_se2  %fdqup-spi2-data-clk-stategpio40gpio41gpio42 qup1_se2  %fcqup-spi3-cs-stategpio47 qup1_se3  %fkqup-spi3-data-clk-stategpio44gpio45gpio46 qup1_se3  %fjqup-spi4-cs-stategpio51 qup1_se4  %fnqup-spi4-data-clk-stategpio48gpio49gpio50 qup1_se4  %fmqup-spi5-cs-stategpio55 qup1_se5  %ftqup-spi5-data-clk-stategpio52gpio53gpio54 qup1_se5  %fsqup-spi6-cs-stategpio59 qup1_se6  %fyqup-spi6-data-clk-stategpio56gpio57gpio58 qup1_se6  %fxqup-spi7-cs-stategpio63 qup1_se7  %f|qup-spi7-data-clk-stategpio60gpio61gpio62 qup1_se7  %f{qup-spi8-cs-stategpio3 qup2_se0  %f6qup-spi8-data-clk-stategpio0gpio1gpio2 qup2_se0  %f5qup-spi9-cs-stategpio7 qup2_se1  %f9qup-spi9-data-clk-stategpio4gpio5gpio6 qup2_se1  %f8qup-spi10-cs-stategpio11 qup2_se2  %f<qup-spi10-data-clk-stategpio8gpio9gpio10 qup2_se2  %f;qup-spi11-cs-stategpio15 qup2_se3  %f?qup-spi11-data-clk-stategpio12gpio13gpio14 qup2_se3  %f>qup-spi12-cs-stategpio19 qup2_se4  %fBqup-spi12-data-clk-stategpio16gpio17gpio18 qup2_se4  %fAqup-spi13-cs-stategpio23 qup2_se5  %fEqup-spi13-data-clk-stategpio20gpio21gpio22 qup2_se5  %fDqup-spi14-cs-stategpio27 qup2_se6  %qup-spi14-data-clk-stategpio24gpio25gpio26 qup2_se6  %qup-uart14-default-stategpio26gpio27 qup2_se6  \fFqup-uart14-cts-rts-stategpio24gpio25 qup2_se6  ,fGqup-uart15-default-stategpio30gpio31 qup2_se7  %fOsdc2-sleep-stateclk-pins sdc2_clk  %cmd-pins sdc2_cmd  \data-pins sdc2_data  \sdc2-default-stateclk-pins sdc2_clk  %cmd-pins sdc2_cmd  \data-pins sdc2_data  \bt-default-statef'bt-en-pinsgpio17 gpio  %sw-ctrl-pinsgpio18 gpio ,disp0-reset-n-active-stategpio133 gpio  %fdisp0-reset-n-suspend-stategpio133 gpio  ,fmdp-vsync-active-stategpio86 mdp_vsync  ,fmdp-vsync-suspend-stategpio86 mdp_vsync  ,fspkr-2-sd-n-active-stategpio77 gpio  % Yfts-irq-stategpio161 gpio  \ ;fpts-reset-stategpio162 gpio  \fqwcd-reset-n-active-stategpio107 gpio  % Yf"wlan-en-stategpio16 gpio  ,f&iommu@15000000/2qcom,sm8650-smmu-500qcom,smmu-500arm,mmu-500Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYDf.interrupt-controller@17100000 2arm,gic-v3     J a 0fmsi-controller@171400002arm,gic-v3-its v ftimer@174200002arm,armv7-timer-memB0  frame@17421000BB  frame@17423000B0    Qdisabledframe@17425000BP    Qdisabledframe@17427000Bp    Qdisabledframe@17429000B    Qdisabledframe@1742b000B    Qdisabledframe@1742d000B   Qdisabledrsc@17a000002qcom,rpmh-rsc@drv-0drv-1drv-2$    Gapps_rscbcm-voter2qcom,bcm-voterfclock-controller2qcom,sm8650-rpmh-clknXxoIfpower-controller2qcom,sm8650-rpmhpd fopp-table2operating-points-v2fopp-16opp-480fopp-524opp-568fopp-60<opp-64@fopp-80Popp-128fopp-144opp-192fopp-256fopp-320@opp-336Popp-384opp-416regulators-02qcom,pm8550-rpmh-regulators       0 A P _ n }bbob1 vreg_bob1 2K 2qcom,sm8650-pmic-glinkqcom,sm8550-pmic-glinkqcom,pmic-glink  gconnector@02usb-c-connector)dual4dualports port@0endpointNfport@1endpointNfvport@2endpointNfhsound(2qcom,sm8650-sndcardqcom,sm8450-sndcard ,SM8650-QRD>SpkrLeft INWSA_SPK1 OUTSpkrRight INWSA_SPK2 OUTIN1_HPHLHPHL_OUTIN2_HPHRHPHR_OUTAMIC1MIC BIAS1AMIC2MIC BIAS2AMIC3MIC BIAS3AMIC4MIC BIAS3AMIC5MIC BIAS4TX SWR_INPUT0ADC1_OUTPUTTX SWR_INPUT1ADC2_OUTPUTTX SWR_INPUT2ADC3_OUTPUTTX SWR_INPUT3ADC4_OUTPUTwcd-playback-dai-link LWCD PlaybackcpuVqcodecVplatformVwcd-capture-dai-link LWCD CapturecpuVxcodecVplatformVwsa-dai-link LWSA PlaybackcpuVicodecV !platformVvph-pwr-regulator2regulator-fixed vph_pwr 8u  8u `tfaudio-codec&2qcom,wcd9395-codecqcom,wcd9390-codec"defaultw@w@w@w@ $I      4P]#l$ #gk{fffM/;fportendpointN%fiwcn7850-pmu2qcom,wcn7850-pmudefault&' g g( f)nregulatorsldo0 vreg_pmu_rfa_cmnfHldo1 vreg_pmu_aon_0p59fIldo2 vreg_pmu_wlcx_0p8fJldo3 vreg_pmu_wlmx_0p85fKldo4 vreg_pmu_btcmx_0p85ldo5 vreg_pmu_rfa_0p8fLldo6 vreg_pmu_rfa_1p2fMldo7 vreg_pmu_rfa_1p8fNldo8 vreg_pmu_pcie_0p9fldo9 vreg_pmu_pcie_1p8f interrupt-parent#address-cells#size-cellsmodelcompatiblestdout-path#clock-cellsclock-frequencyphandleclocksclock-multclock-divdevice_typeregpower-domainspower-domain-namesenable-methodnext-level-cachecapacity-dmips-mhzdynamic-power-coefficientqcom,freq-domain#cooling-cellscache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uslocal-timer-stopqcom,dload-modeinterconnects#interconnect-cellsqcom,bcm-votersinterrupts#power-domain-cellsdomain-idle-statesrangesno-maphwlocksqcom,client-idqcom,vmidinterrupts-extendedmboxesqcom,smemqcom,local-pidqcom,remote-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-ranges#reset-cells#mbox-cellsdma-channelsdma-channel-mask#dma-cellsiommusdma-coherentstatusclock-namesinterconnect-namesdmasdma-namespinctrl-0pinctrl-namesvddrfacmn-supplyvddaon-supplyvddwlcx-supplyvddwlmx-supplyvddrfa0p8-supplyvddrfa1p2-supplyvddrfa1p8-supplymax-speedvdd-supplyreset-gpiosmode-switchorientation-switchremote-endpointavdd-supplyspi-max-frequencytouchscreen-size-xtouchscreen-size-yvcc-supplyretimer-switchdata-lanesreg-namesinterrupt-namesresetsreset-namesiommu-mapinterrupt-mapinterrupt-map-maskmsi-mapmsi-map-masklinux,pci-domainnum-lanesbus-rangephysphy-nameswake-gpiosperst-gpiosvddpcie0p9-supplyvddpcie1p8-supplyassigned-clocksassigned-clock-ratesclock-output-names#phy-cellsvdda-phy-supplyvdda-pll-supplyqcom,eeqcom,controlled-remotelyfreq-table-hzrequired-oppslanes-per-directionqcom,icevcc-max-microampvccq-supplyvccq-max-microamp#hwlock-cellsoperating-points-v2qcom,gmumemory-regionfirmware-nameopp-hzopp-levelqcom,qmp#iommu-cells#global-interruptsqcom,smem-statesqcom,smem-state-namesqcom,gsi-loaderlabel#sound-dai-cellsqcom,din-portsqcom,dout-portsqcom,ports-sintervalqcom,ports-offset1qcom,ports-offset2qcom,ports-hstartqcom,ports-hstopqcom,ports-word-lengthqcom,ports-block-pack-modeqcom,ports-block-group-countqcom,ports-lane-controlqcom,rx-port-mappingpowerdown-gpiossound-name-prefixvdd-1p8-supplyvdd-io-supplyqcom,port-mappingqcom,ports-sinterval-lowqcom,tx-port-mappinggpio-controller#gpio-cellsgpio-rangespinsfunctiondrive-strengthslew-ratebias-disablebias-bus-holdoutput-highinput-enableoutput-lowbus-widthsdhci-caps-maskqcom,dll-configqcom,ddr-configpinctrl-1assigned-clock-parentsvdda-supplyvddio-supplyvci-supplyvdds-supplyvdda12-supplysnps,hird-thresholdsnps,usb2-gadget-lpm-disablesnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,dis-u1-entry-quirksnps,dis-u2-entry-quirksnps,is-utmi-l1-suspendsnps,usb3_lpm_capablesnps,usb2-lpm-disablesnps,has-lpm-erratumtx-fifo-resizedr_modeusb-role-switchqcom,pdc-ranges#qcom,sensors#thermal-sensor-cellsqcom,channelqcom,bus-idbias-pull-uppower-sourcecolorled-sourcesled-max-microampflash-max-microampflash-max-timeout-usfunction-enumerator#pwm-cellsvdd18-supplyvdd3-supplylinux,codebitswakeup-parentgpio-reserved-rangesbias-pull-downoutput-disable#redistributor-regionsredistributor-stridemsi-controller#msi-cellsframe-numberqcom,tcs-offsetqcom,drv-idqcom,tcs-configvdd-bob1-supplyvdd-bob2-supplyvdd-l2-l13-l14-supplyvdd-l3-supplyvdd-l5-l16-supplyvdd-l6-l7-supplyvdd-l8-l9-supplyvdd-l11-supplyvdd-l12-supplyvdd-l15-supplyvdd-l17-supplyqcom,pmic-idregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-initial-moderegulator-allow-set-loadregulator-allowed-modesvdd-l1-supplyvdd-l2-supplyvdd-s1-supplyvdd-s2-supplyvdd-s3-supplyvdd-s4-supplyvdd-s5-supplyvdd-s6-supplyvdd-l1-l2-supplyvdd-l3-l4-supplyvdd-l5-supplyvdd-l6-supplyvdd-l7-supply#freq-domain-cellsopp-peak-kBpsqcom,glink-channelsqcom,non-secure-domainqcom,domainqcom,intentsqcom,protection-domainthermal-sensorstemperaturehysteresispolling-delay-passivetripcooling-devicenvmem-cellsnvmem-cell-namesmode-recoverymode-bootloaderserial0serial1debounce-intervallinux,can-disablewakeup-sourceorientation-gpiospower-roledata-roleaudio-routinglink-namesound-dairegulator-always-onregulator-boot-onqcom,micbias1-microvoltqcom,micbias2-microvoltqcom,micbias3-microvoltqcom,micbias4-microvoltqcom,mbhc-buttons-vthreshold-microvoltqcom,mbhc-headset-vthreshold-microvoltqcom,mbhc-headphone-vthreshold-microvoltqcom,rx-deviceqcom,tx-devicevdd-buck-supplyvdd-rxtx-supplyvdd-mic-bias-supplywlan-enable-gpiosbt-enable-gpiosvddio1p2-supplyvdddig-supply ՟8( Ɍ ,Lenovo ThinkPad T14s Gen 612lenovo,thinkpad-t14sqcom,x1e78100qcom,x1e80100=laptopchosenclocksxo-board 2fixed-clockJZgsleep-clk 2fixed-clockJ}Zg+bi-tcxo-div2-clk2fixed-factor-clockZovg*bi-tcxo-ao-div2-clk2fixed-factor-clockZovgcpus cpu@0cpu 2qcom,oryonpscipscigl2-cache2cachegcpu@100cpu 2qcom,oryonpscipscigcpu@200cpu 2qcom,oryonpscipscigcpu@300cpu 2qcom,oryonpscipscigcpu@10000cpu 2qcom,oryonpsci  pscigl2-cache2cacheg cpu@10100cpu 2qcom,oryonpsci  pscigcpu@10200cpu 2qcom,oryonpsci  pscigcpu@10300cpu 2qcom,oryonpsci  pscigcpu@20000cpu 2qcom,oryonpscipscigl2-cache2cachegcpu@20100cpu 2qcom,oryonpscipscigcpu@20200cpu 2qcom,oryonpscipscigcpu@20300cpu 2qcom,oryonpscipscigcpu-mapcluster0core0core1core2core3cluster1core0core1core2core3cluster2core0core1core2core3idle-states pscicpu-sleep-02arm,idle-stateret&=N^Xgdomain-idle-statescluster-sleep-02domain-idle-statel2-ret&D=^N^ g%cluster-sleep-12domain-idle-state ret-pll-off&T=N^Xg&firmwarescm2qcom,scm-x1e80100qcom,scmo interconnect-02qcom,x1e80100-clk-virt}!g5interconnect-12qcom,x1e80100-mc-virt}!g memory@80000000memorypmu2arm,armv8-pmuv3 psci 2arm,psci-1.0smcpower-domain-cpu0"gpower-domain-cpu1"gpower-domain-cpu2"gpower-domain-cpu3"gpower-domain-cpu4#g power-domain-cpu5#g power-domain-cpu6#g power-domain-cpu7#g power-domain-cpu8$gpower-domain-cpu9$gpower-domain-cpu10$gpower-domain-cpu11$gpower-domain-cpu-cluster0%&'g"power-domain-cpu-cluster1%&'g#power-domain-cpu-cluster2%&'g$power-domain-systemg'reserved-memory gunyah-hyp@80000000hyp-elf-package@80800000 ncc@80a00000@cpucp-log@80e00000cpucp@80e40000Treserved-region@813800008tags-region@81400000@xbl-dtlog@81a00000xbl-ramdump@81a40000aop-image@81c00000aop-cmd-db@81c60000 2qcom,cmd-dbaop-config@81c80000tme-crash-dump@81ca0000tme-log@81ce0000@uefi-log@81ce4000@secdata-apss@81cff000pdp-ns-shared@81e00000gpu-prr@81f00000tpm-control@81f10000usb-ucsi-shared@81f20000pld-pep@81f30000`pld-gmu@81f36000`pld-pdp@81f37000ptz-stat@82700000pxbl-tmp-buffer@82800000adsp-rpc-remote-heap@84b00000spu-secure-shared-memory@853000000adsp-boot-dtb@866c0000lspss-region@86700000p@adsp-boot@86b00000video@87700000ppadspslpi@87e00000gq6-adsp-dtb@8b800000gcdsp@8b900000gq6-cdsp-dtb@8d900000ggpu-microcode@8d9fe000 gcvp@8da00000pcamera@8e100000av1-encoder@8e900000preserved-region@8f000000wpss@8fa00000q6-wpss-dtb@913000000xbl-sc@d8000000reserved-region@d8040000 qtee@d80e0000Rta@d8600000`tags@e1000000jllcc-lpi@ff800000`smem@ffe00000 2qcom,smem (linux,cma2shared-dma-poolsmp2p-adsp 2qcom,smp2p ) )$.=master-kernelMmaster-kernel]gslave-kernel Mslave-kerneltgsmp2p-cdsp 2qcom,smp2p ) )$^.=master-kernelMmaster-kernel]gslave-kernel Mslave-kerneltgsoc@0 2simple-bus clock-controller@1000002qcom,x1e80100-gcc 4o*+,-./012Zg4mailbox@4080002qcom,x1e80100-ipccqcom,ipcc@ tg)dma-controller@800000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dma > 36 disabledg8geniqup@8c00002qcom,geni-se-qup o44 m-ahbs-ahb 3# okayi2c@8800002qcom,geni-i2c@ (o4seHo5567 qup-corequp-configqup-memory 88txrx#9-default  disabledspi@8800002qcom,geni-spi@ (o4seHo5567 qup-corequp-configqup-memory 88txrx#:;-default  disabledi2c@8840002qcom,geni-i2c@@ )o4seHo5567 qup-corequp-configqup-memory 88txrx#<-default  disabledspi@8840002qcom,geni-spi@@ )o4seHo5567 qup-corequp-configqup-memory 88txrx#=>-default  disabledi2c@8880002qcom,geni-i2c@ *o4seHo5567 qup-corequp-configqup-memory 88txrx#?-default  disabledspi@8880002qcom,geni-spi@ *o4seHo5567 qup-corequp-configqup-memory 88txrx#@A-default  disabledi2c@88c0002qcom,geni-i2c@ +o4seHo5567 qup-corequp-configqup-memory 88txrx#B-default  disabledspi@88c0002qcom,geni-spi@ +o4seHo5567 qup-corequp-configqup-memory 88txrx#CD-default  disabledi2c@8900002qcom,geni-i2c@ ,o4seHo5567 qup-corequp-configqup-memory 88txrx#E-default  disabledspi@8900002qcom,geni-spi@ ,o4seHo5567 qup-corequp-configqup-memory 88txrx#FG-default  disabledi2c@8940002qcom,geni-i2c@@ -o4seHo5567 qup-corequp-configqup-memory 88txrx#H-default  disabledspi@8940002qcom,geni-spi@@ -o4seHo5567 qup-corequp-configqup-memory 88txrx#IJ-default  disabledserial@8940002qcom,geni-uart@@ -o4se0o5567qup-corequp-config#K-default disabledi2c@8980002qcom,geni-i2c@ o4seHo5567 qup-corequp-configqup-memory 88txrx#L-default  disabledspi@8980002qcom,geni-spi@ o4seHo5567 qup-corequp-configqup-memory 88txrx#MN-default  disabledi2c@89c0002qcom,geni-i2c@ o4seHo5567 qup-corequp-configqup-memory 88txrx#O-default  disabledspi@89c0002qcom,geni-spi@ o4seHo5567 qup-corequp-configqup-memory 88txrx#PQ-default  disableddma-controller@a00000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dma      > 36 disabledgSgeniqup@ac00002qcom,geni-se-qup o44 m-ahbs-ahb 3# okayi2c@a800002qcom,geni-i2c@  o4seHo5567R qup-corequp-configqup-memory SStxrx#T-default okayJtouchscreen@10 2hid-over-i2c;  U3#V-defaultspi@a800002qcom,geni-spi@  o4seHo5567R qup-corequp-configqup-memory SStxrx#WX-default  disabledi2c@a840002qcom,geni-i2c@@ !o4seHo5567R qup-corequp-configqup-memory SStxrx#Y-default  disabledspi@a840002qcom,geni-spi@@ !o4seHo5567R qup-corequp-configqup-memory SStxrx#Z[-default  disabledi2c@a880002qcom,geni-i2c@ "o4seHo5567R qup-corequp-configqup-memory SStxrx#\-default  disabledspi@a880002qcom,geni-spi@ "o4seHo5567R qup-corequp-configqup-memory SStxrx#]^-default  disabledi2c@a8c0002qcom,geni-i2c@ #o4seHo5567R qup-corequp-configqup-memory SStxrx#_-default  disabledspi@a8c0002qcom,geni-spi@ #o4seHo5567R qup-corequp-configqup-memory SStxrx#`a-default  disabledi2c@a900002qcom,geni-i2c@ $o4seHo5567R qup-corequp-configqup-memory SStxrx#b-default  disabledspi@a900002qcom,geni-spi@ $o4seHo5567R qup-corequp-configqup-memory SStxrx#cd-default  disabledi2c@a940002qcom,geni-i2c@@ %o4seHo5567R qup-corequp-configqup-memory SStxrx#e-default  disabledspi@a940002qcom,geni-spi@@ %o4seHo5567R qup-corequp-configqup-memory SStxrx#fg-default  disabledi2c@a980002qcom,geni-i2c@ &o4seHo5567R qup-corequp-configqup-memory SStxrx#h-default  disabledspi@a980002qcom,geni-spi@ &o4seHo5567R qup-corequp-configqup-memory SStxrx#ij-default  disabledi2c@a9c0002qcom,geni-i2c@ 'o4seHo5567R qup-corequp-configqup-memory SStxrx#k-default  disabledspi@a9c0002qcom,geni-spi@ 'o4seHo5567R qup-corequp-configqup-memory SStxrx#lm-default  disableddma-controller@b00000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dmaLMNOPQRSTUVW > 3V disabledgngeniqup@bc00002qcom,geni-se-qup o44 m-ahbs-ahb 3C okayi2c@b800002qcom,geni-i2c@ uo4seHo5567 qup-corequp-configqup-memory nntxrx#o-default okayJtouchpad@15 2hid-over-i2c;  U#p-defaultJkeyboard@3a 2hid-over-i2c:;  UC#q-defaultJspi@b800002qcom,geni-spi@ uo4seHo5567 qup-corequp-configqup-memory nntxrx#rs-default  disabledi2c@b840002qcom,geni-i2c@@ Go4seHo5567 qup-corequp-configqup-memory nntxrx#t-default  disabledspi@b840002qcom,geni-spi@@ Go4seHo5567 qup-corequp-configqup-memory nntxrx#uv-default  disabledi2c@b880002qcom,geni-i2c@ Ho4seHo5567 qup-corequp-configqup-memory nntxrx#w-default  disabledserial@b880002qcom,geni-uart@ Ho4se0o5567qup-corequp-config#x-default disabledspi@b880002qcom,geni-spi@ Ho4seHo5567 qup-corequp-configqup-memory nntxrx#yz-default  disabledi2c@b8c0002qcom,geni-i2c@ Io4seHo5567 qup-corequp-configqup-memory nntxrx#{-default  disabledspi@b8c0002qcom,geni-spi@ Io4seHo5567 qup-corequp-configqup-memory nntxrx#|}-default  disabledi2c@b900002qcom,geni-i2c@ Jo4seHo5567 qup-corequp-configqup-memory nntxrx#~-default  disabledspi@b900002qcom,geni-spi@ Jo4seHo5567 qup-corequp-configqup-memory nntxrx#-default  disabledi2c@b940002qcom,geni-i2c@@ Ko4seHo5567 qup-corequp-configqup-memory nntxrx#-default  disabledspi@b940002qcom,geni-spi@@ Ko4seHo5567 qup-corequp-configqup-memory nntxrx#-default  disabledi2c@b980002qcom,geni-i2c@ o4seHo5567 qup-corequp-configqup-memory nntxrx#-default  disabledspi@b980002qcom,geni-spi@ o4seHo5567 qup-corequp-configqup-memory nntxrx#-default  disabledi2c@b9c0002qcom,geni-i2c@ o4seHo5567 qup-corequp-configqup-memory nntxrx#-default  disabledspi@b9c0002qcom,geni-spi@ o4seHo5567 qup-corequp-configqup-memory nntxrx#-default  disabledthermal-sensor@c271000"2qcom,x1e80100-tsensqcom,tsens-v2 ' "  Xuplowcriticalhvgthermal-sensor@c272000"2qcom,x1e80100-tsensqcom,tsens-v2 '  "0 Xuplowcriticalhvgthermal-sensor@c273000"2qcom,x1e80100-tsensqcom,tsens-v2 '0 "@ Xuplowcriticalhvgthermal-sensor@c274000"2qcom,x1e80100-tsensqcom,tsens-v2 '@ "P Xuplowcriticalhvgphy@fd300082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy0Toref46okaygphy@fd50002qcom,x1e80100-qmp-usb3-dp-phyP@ o444auxrefcom_auxusb3_pipe44D4O phycommonZokayg/ports port@0endpointgport@1endpointgport@2endpointgphy@fd900082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyToref47okaygphy@fda0002qcom,x1e80100-qmp-usb3-dp-phy@ o4 4"4#auxrefcom_auxusb3_pipe44E4P phycommonZokayg0ports port@0endpointgport@1endpointgport@2endpointgphy@fde00082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyToref48 disabledgphy@fdf0002qcom,x1e80100-qmp-usb3-dp-phy@ o4$4&4'auxrefcom_auxusb3_pipe44F4Q phycommonZ disabledg1ports port@0endpointport@1endpointgport@2endpointginterconnect@15000002qcom,x1e80100-cnoc-mainPD!}ginterconnect@16000002qcom,x1e80100-cnoc-cfg`f!}g7interconnect@16800002qcom,x1e80100-system-noch!}interconnect@16c00002qcom,x1e80100-pcie-south-anoclЀ!}ginterconnect@16d00002qcom,x1e80100-pcie-center-anocmp!}interconnect@16e00002qcom,x1e80100-aggre1-nocnD!}gRinterconnect@17000002qcom,x1e80100-aggre2-nocp!}ginterconnect@17400002qcom,x1e80100-pcie-north-anoct!}ginterconnect@17500002qcom,x1e80100-usb-center-anocu!}interconnect@17600002qcom,x1e80100-usb-north-anocvp!}ginterconnect@17700002qcom,x1e80100-usb-south-anocw!}ginterconnect@17800002qcom,x1e80100-mmss-nocx!}gpci@1bf8000pci2qcom,pcie-x1e80100`0p p@pp parfdbielbiatuconfigmhi 8p p0p0,=`EFGHIJ(Xmsi0msi1msi2msi3msi4msi5msi6msi7GZKLM8o4v4x4y4444"<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axih4vx$0o 6pcie-memcpu-pcie4"4#pcilink_down4 .pciephyokay U U#-defaultphy@1bfc000"2qcom,x1e80100-qmp-gen4x4-pcie-phy   0o4z4x 4{4}4$auxcfg_ahbrefrchngpipepipediv24%4$phyphy_nocsrh4{x4  Zpcie6a_pipe_clkokayg.pci@1c00000pci2qcom,pcie-x1e80100`0~~@~~0 parfdbielbiatuconfigmhi 8~ ~0~0,=`^_`YVRMN(Xmsi0msi1msi2msi3msi4msi5msi6msi7GZFGHI8o4k4m4n4t4u44!<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axih4kx$0o 6 pcie-memcpu-pcie44pcilink_down4-pciephy disabledphy@1c06000"2qcom,x1e80100-qmp-gen3x2-pcie-phy` 0o4k4m4o4q4s$auxcfg_ahbrefrchngpipepipediv24 phyh4ox4Zpcie5_pipe_clk disabledg-pci@1c08000pci2qcom,pcie-x1e80100`0||@|| parfdbielbiatuconfigmhi 8| |0|0,=`(Xmsi0msi1msi2msi3msi4msi5msi6msi7GZ8o4`4b4c4i4j44!<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axih4`x$0o 6 pcie-memcpu-pcie44pcilink_down4,pciephyokay U U#-defaultpcie@0pci phy@1c0e000"2qcom,x1e80100-qmp-gen3x2-pcie-phy 0o4`4b4d4f4h$auxcfg_ahbrefrchngpipepipediv24phyh4dx4Zpcie4_pipe_clkokayg,hwlock@1f400002qcom,tcsr-mutexg(clock-controller@1fc00002qcom,x1e80100-tcsrsysconoZggpu@3d00000!2qcom,adreno-43050c01qcom,adreno0# kgsl_3d0_reg_memorycx_memcx_dbgc ,o6 gfx-memokayzap-shader.,Q@[-opp-300000000JQ8[ gmu@3d6a000'2qcom,adreno-gmu-x185.1qcom,adreno-gmu0֠P ( gmursccgmu_pdc01Xhfigmu8o4$47!ahbgmucxoaximemnochubdemetcxgx igopp-table2operating-points-v2gopp-550000000J UQopp-220000000J Q@clock-controller@3d900002qcom,x1e80100-gpucco*4546Zgiommu@3da0000B2qcom,x1e80100-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500r8>?@A o4748hlosbusifaceahbginterconnect@264000002qcom,x1e80100-gem-noc&@1!}g6interconnect@320c00002qcom,x1e80100-nsp-noc2 !}gcodec@6aa0000:2qcom,x1e80100-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(oDfgmclkmacrodcodecfsgenZ wsa2-mclkWSA2gsoundwire@6ab00002qcom,soundwire-v2.0.0oiface WSA2#-defaultswr_audio_cgcr ??     ' 8 O j   disabledcodec@6ac000082qcom,x1e80100-lpass-rx-macroqcom,sm8550-lpass-rx-macro(o@fgmclkmacrodcodecfsgenZmclkgsoundwire@6ad00002qcom,soundwire-v2.0.0oiface RX#-defaultswr_audio_cgcr       ' 8 O j   disabledcodec@6ae000082qcom,x1e80100-lpass-tx-macroqcom,sm8550-lpass-tx-macro(o9fgmclkmacrodcodecfsgenZmclkgcodec@6b00000:2qcom,x1e80100-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(oBfgmclkmacrodcodecfsgenZmclkWSAgsoundwire@6b100002qcom,soundwire-v2.0.0oiface WSA#-defaultswr_audio_cgcr ??     ' 8 O j   disabledclock-controller@6b6c00062qcom,x1e80100-lpassaudioccqcom,sc8280xp-lpassaudioccZgsoundwire@6d300002qcom,soundwire-v2.0.0oiface XcorewakeupTXswr_audio_cgcr#-default'8Oj  disabledcodec@6d4400082qcom,x1e80100-lpass-va-macroqcom,sm8550-lpass-va-macro@$o9fgmclkmacrodcodecZfsgengpinctrl@6e80000>2qcom,x1e80100-lpass-lpi-pinctrlqcom,sm8550-lpass-lpi-pinctrl %ofg coreaudiogtx-swr-active-stategclk-pinsgpio0 swr_tx_clkdata-pins gpio1gpio2 swr_tx_datarx-swr-active-stategclk-pinsgpio3 swr_rx_clkdata-pins gpio4gpio5 swr_rx_datadmic01-default-stateclk-pinsgpio6 dmic1_clk"data-pinsgpio7 dmic1_data.dmic23-default-stateclk-pinsgpio8 dmic2_clk"data-pinsgpio9 dmic2_data.wsa-swr-active-stategclk-pinsgpio10 wsa_swr_clkdata-pinsgpio11 wsa_swr_datawsa2-swr-active-stategclk-pinsgpio15 wsa2_swr_clkdata-pinsgpio16wsa2_swr_dataclock-controller@6ea0000,2qcom,x1e80100-lpassccqcom,sc8280xp-lpasscc Zginterconnect@7e400002qcom,x1e80100-lpass-ag-noc!}interconnect@74000002qcom,x1e80100-lpass-lpiaon-noc@!}interconnect@74300002qcom,x1e80100-lpass-lpicx-nocC!}gphy@88e000082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTo ref49 disabledgphy@88e100082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyToref44 disabledgphy@88e200082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy Toref45 disabledgphy@88e30002qcom,x1e80100-qmp-usb3-uni-phy0  o444auxrefcom_auxpipe4G4L phyphy_phy4Zusb_mp_phy0_pipe_clk disabledgphy@88e50002qcom,x1e80100-qmp-usb3-uni-phyP  o444auxrefcom_auxpipe4H4M phyphy_phy4Zusb_mp_phy1_pipe_clk disabledgusb@a0f88002qcom,x1e80100-dwc3qcom,dwc3 Ho444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh44x$ 4 r:9 1Xpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44A0o 67%usb-ddrapps-usbJ  disabledusb@a000000 2snps,dwc3  a 3 1usb2-phyusb3-phy;Tlports port@0endpointport@1endpointgusb@a2f88002qcom,x1e80100-dwc3qcom,dwc3 / Ho444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh44x$ ( 21&Xpwr_eventdp_hs_phy_irqdm_hs_phy_irq44=0o 67"usb-ddrapps-usbJ disabledusb@a200000 2snps,dwc3   3 usb2-phy high-speedports port@0endpointusb@a4f8800 2qcom,x1e80100-dwc3-mpqcom,dwc3 OHo444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh44x$  9:58436578lXpwr_event_1pwr_event_2hs_phy_1hs_phy_2dp_hs_phy_1dm_hs_phy_1dp_hs_phy_2dm_hs_phy_2ss_phy_1ss_phy_244>0o 67&usb-ddrapps-usbJ  disabledusb@a400000 2snps,dwc3 @ 3 3usb2-0usb3-0usb2-1usb3-1host;Tlusb@a6f88002qcom,x1e80100-dwc3qcom,dwc3 oHo4444 44 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh44x$ 4 s=1Xpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44?J okayusb@a600000 2snps,dwc3 ` c 3  /usb2-phyusb3-phy;Tlhostports port@0endpointgport@1endpointgusb@a8f88002qcom,x1e80100-dwc3qcom,dwc3 Ho44 444 4 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh4 4 x$ 4 t< /1Xpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44@0o 67$usb-ddrapps-usbJ okayusb@a800000 2snps,dwc3  e 3` 0usb2-phyusb3-phy;Tlhostports port@0endpointgport@1endpointgdisplay-subsystem@ae000002qcom,x1e80100-mdss  mdss So4&:Ho6   67mdp0-memmdp1-memcpu-cfg 3t okaygdisplay-controller@ae010002qcom,x1e80100-dpu    mdpvbif (o4&=:Fnrt_busifacelutcorevsync2ports port@0endpointgport@4endpointgport@5endpointgport@6endpointgopp-table2operating-points-v2gopp-200000000J opp-325000000J_@opp-375000000JZ opp-514000000Jopp-575000000J"Edisplayport-controller@ae900002qcom,x1e80100-dpP      (o ;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelh//2/dp disabledports port@0endpointgport@1endpointgopp-table2operating-points-v2gopp-160000000J hopp-270000000J߀opp-540000000J /opp-810000000J0Gdisplayport-controller@ae980002qcom,x1e80100-dpP      (o;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelh0020dp disabledports port@0endpointgport@1endpointgopp-table2operating-points-v2gopp-160000000J hopp-270000000J߀opp-540000000J /opp-810000000J0Gdisplayport-controller@ae9a0002qcom,x1e80100-dpP      (o"$'(;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelh%)1121dp disabledports port@0endpointgport@1endpointgopp-table2operating-points-v2gopp-160000000J hopp-270000000J߀opp-540000000J /opp-810000000J0Gdisplayport-controller@aea00002qcom,x1e80100-dpP      (o-/23;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelh042dpokayports port@0endpointgport@1endpoint `=Av1gopp-table2operating-points-v2gopp-160000000J hopp-270000000J߀opp-540000000J /opp-810000000J0Gaux-buspanel 2edp-panel #-defaultportendpointgphy@aec2a002qcom,x1e80100-dp-phy@ * " & o" auxcfg_ahb2Z disabledphy@aec5a002qcom,x1e80100-dp-phy@ Z R V Po- auxcfg_ahb2Zokaygclock-controller@af000002qcom,x1e80100-dispcc do*4%+//00112Zginterrupt-controller@b2200002qcom,x1e80100-pdcqcom,pdc "@dH**/ 4ca  0tgpower-management@c300000%2qcom,x1e80100-aoss-qmpqcom,aoss-qmp 0) ) )Zgsram@c3f00002qcom,rpmh-stats ?arbiter@c4000002qcom,x1e80100-spmi-pmic-arb0 @0 P@ D corechnlsobsrvr spmi@c42d000 B@ L  cnfgintr Xperiph_irq  t pmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon  hlospbspwrkey2qcom,pmk8350-pwrkey tresin2qcom,pmk8350-resin disabledrtc@61002qcom,pmk8350-rtcab  rtcalarmb reservednvram@71002qcom,spmi-sdamq  qreboot-reason@48Hgpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpiotgpwm2qcom,pmk8550-pwm disabledpmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vggpio@8800 2qcom,pm8550-gpioqcom,spmi-gpio tgled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-led disabledpwm!2qcom,pm8550-pwmqcom,pm8350c-pwm disabledpmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiotgpmic@32qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio tgedp-bl-en-stategpio4normal%2@gpmic@42qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio tgpmic@52qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio tgpmic@62qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio tgpmic@82qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vggpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiotgpmic@92qcom,pm8550qcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm  vggpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiotgpmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $vgspmi@c432000 C @ M  cnfgintr Xperiph_irq  t pmic@72qcom,smb2360qcom,spmi-pmic phy@fd002qcom,smb2360-eusb2-repeaterN[gpmic@a2qcom,smb2360qcom,spmi-pmic  phy@fd002qcom,smb2360-eusb2-repeaterN[gpmic@b2qcom,smb2360qcom,spmi-pmic   disabledphy@fd002qcom,smb2360-eusb2-repeaterpmic@c2qcom,smb2360qcom,spmi-pmic   disabledphy@fd002qcom,smb2360-eusb2-repeaterpinctrl@f1000002qcom,x1e80100-tlmm tUg u",HgUqup-i2c0-data-clk-state gpio0gpio1 qup0_se0goqup-i2c1-data-clk-state gpio4gpio5 qup0_se1gtqup-i2c2-data-clk-state gpio8gpio9 qup0_se2gwqup-i2c3-data-clk-stategpio12gpio13 qup0_se3g{qup-i2c4-data-clk-stategpio16gpio17 qup0_se4g~qup-i2c5-data-clk-stategpio20gpio21 qup0_se5gqup-i2c6-data-clk-stategpio24gpio25 qup0_se6gqup-i2c7-data-clk-stategpio14gpio15 qup0_se7gqup-i2c8-data-clk-stategpio32gpio33 qup1_se0gTqup-i2c9-data-clk-stategpio36gpio37 qup1_se1gYqup-i2c10-data-clk-stategpio40gpio41 qup1_se2g\qup-i2c11-data-clk-stategpio44gpio45 qup1_se3g_qup-i2c12-data-clk-stategpio48gpio49 qup1_se4gbqup-i2c13-data-clk-stategpio52gpio53 qup1_se5gequp-i2c14-data-clk-stategpio56gpio57 qup1_se6ghqup-i2c15-data-clk-stategpio54gpio55 qup1_se7gkqup-i2c16-data-clk-stategpio64gpio65 qup2_se0g9qup-i2c17-data-clk-stategpio68gpio69 qup2_se1g<qup-i2c18-data-clk-stategpio72gpio73 qup2_se2g?qup-i2c19-data-clk-stategpio76gpio77 qup2_se3gBqup-i2c20-data-clk-stategpio80gpio81 qup2_se4gEqup-i2c21-data-clk-stategpio84gpio85 qup2_se5gHqup-i2c22-data-clk-stategpio88gpio89 qup2_se6gLqup-i2c23-data-clk-stategpio86gpio87 qup2_se7gOqup-spi0-cs-stategpio3 qup0_se0gsqup-spi0-data-clk-stategpio0gpio1gpio2 qup0_se0grqup-spi1-cs-stategpio7 qup0_se1gvqup-spi1-data-clk-stategpio4gpio5gpio6 qup0_se1guqup-spi2-cs-stategpio11 qup0_se2gzqup-spi2-data-clk-stategpio8gpio9gpio10 qup0_se2gyqup-spi3-cs-stategpio15 qup0_se3g}qup-spi3-data-clk-stategpio12gpio13gpio14 qup0_se3g|qup-spi4-cs-stategpio19 qup0_se4gqup-spi4-data-clk-stategpio16gpio17gpio18 qup0_se4gqup-spi5-cs-stategpio23 qup0_se5gqup-spi5-data-clk-stategpio20gpio21gpio22 qup0_se5gqup-spi6-cs-stategpio27 qup0_se6gqup-spi6-data-clk-stategpio24gpio25gpio26 qup0_se6gqup-spi7-cs-stategpio13 qup0_se7gqup-spi7-data-clk-stategpio14gpio15gpio12 qup0_se7gqup-spi8-cs-stategpio35 qup1_se0gXqup-spi8-data-clk-stategpio32gpio33gpio34 qup1_se0gWqup-spi9-cs-stategpio39 qup1_se1g[qup-spi9-data-clk-stategpio36gpio37gpio38 qup1_se1gZqup-spi10-cs-stategpio43 qup1_se2g^qup-spi10-data-clk-stategpio40gpio41gpio42 qup1_se2g]qup-spi11-cs-stategpio47 qup1_se3gaqup-spi11-data-clk-stategpio44gpio45gpio46 qup1_se3g`qup-spi12-cs-stategpio51 qup1_se4gdqup-spi12-data-clk-stategpio48gpio49gpio50 qup1_se4gcqup-spi13-cs-stategpio55 qup1_se5ggqup-spi13-data-clk-stategpio52gpio53gpio54 qup1_se5gfqup-spi14-cs-stategpio59 qup1_se6gjqup-spi14-data-clk-stategpio56gpio57gpio58 qup1_se6giqup-spi15-cs-stategpio53 qup1_se7gmqup-spi15-data-clk-stategpio54gpio55gpio52 qup1_se7glqup-spi16-cs-stategpio67 qup2_se0g;qup-spi16-data-clk-stategpio64gpio65gpio66 qup2_se0g:qup-spi17-cs-stategpio71 qup2_se1g>qup-spi17-data-clk-stategpio68gpio69gpio70 qup2_se1g=qup-spi18-cs-stategpio75 qup2_se2gAqup-spi18-data-clk-stategpio72gpio73gpio74 qup2_se2g@qup-spi19-cs-stategpio79 qup2_se3gDqup-spi19-data-clk-stategpio76gpio77gpio78 qup2_se3gCqup-spi20-cs-stategpio83 qup2_se4gGqup-spi20-data-clk-stategpio80gpio81gpio82 qup2_se4gFqup-spi21-cs-stategpio87 qup2_se5gJqup-spi21-data-clk-stategpio84gpio85gpio86 qup2_se5gIqup-spi22-cs-stategpio91 qup2_se6gNqup-spi22-data-clk-stategpio88gpio89gpio90 qup2_se6gMqup-spi23-cs-stategpio85 qup2_se7gQqup-spi23-data-clk-stategpio86gpio87gpio84 qup2_se7gPqup-uart2-default-stategxcts-pinsgpio8 qup0_se2rts-pinsgpio9 qup0_se2tx-pinsgpio10 qup0_se2rx-pinsgpio11 qup0_se2qup-uart21-default-stategKtx-pinsgpio86 qup2_se5rx-pinsgpio87 qup2_se5tpad-default-stategpio3gpiogpnvme-reg-en-stategpio18gpiogts0-default-stategVreset-n-pinsgpio48gpio"int-n-pinsgpio51gpiokybd-default-stategpio67gpiogqedp-reg-en-stategpio70gpioghall-int-n-stategpio92gpiogpcie4-default-stategclkreq-n-pinsgpio147 pcie4_clkperst-n-pinsgpio146gpiowake-n-pinsgpio148gpiopcie6a-default-stategclkreq-n-pinsgpio153 pcie6a_clkperst-n-pinsgpio152gpiowake-n-pinsgpio154gpiowcd-reset-n-active-stategpio191gpioiommu@1500000012qcom,x1e80100-smmu-500qcom,smmu-500arm,mmu-500Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYrg3interrupt-controller@17000000 2arm,gic-v3 0  t gmsi-controller@170400002arm,gic-v3-its disabledrsc@175000002qcom,rpmh-rsc0PQR drv-0drv-1drv-2$   apps_rsc'bcm-voter2qcom,bcm-voterg!clock-controller2qcom,x1e80100-rpmh-clkoxoZgpower-controller2qcom,x1e80100-rpmhpdg2opp-table2operating-points-v2gopp-16Qopp-48Q0opp-52Q4opp-56Q8opp-60Q<opp-64Q@gopp-80QPopp-128Qgopp-144Qopp-192Qgopp-256Qgopp-320Q@gopp-336QPopp-384Qopp-416Qregulators-02qcom,pm8550-rpmh-regulators b ! 1 A V l ~    bob1 vreg_bob1 - opp-1[q@opp-2[|opp-3[opp-4[Ȁopp-5[`@pmu@240b5400*2qcom,x1e80100-cpu-bwmonqcom,sdm845-bwmon$ T Eo66 pmu@240b6400*2qcom,x1e80100-cpu-bwmonqcom,sdm845-bwmon$ d Eo66 system-cache-controller@250000002qcom,x1e80100-llcc% % %@ %` % % % % & &  llcc0_basellcc1_basellcc2_basellcc3_basellcc4_basellcc5_basellcc6_basellcc7_basellcc_broadcast_basellcc_broadcast_and_base  remoteproc@300000002qcom,x1e80100-adsp-pas0< #Xwdogfatalreadyhandoverstop-ackoxo22lcxlmxo .i  stopokayQ 36 disabledg8geniqup@8c00002qcom,geni-se-qup o44 m-ahbs-ahb 3# okayi2c@8800002qcom,geni-i2c@ (o4seHo5567 qup-corequp-configqup-memory 88txrx#9-default  disabledspi@8800002qcom,geni-spi@ (o4seHo5567 qup-corequp-configqup-memory 88txrx#:;-default  disabledi2c@8840002qcom,geni-i2c@@ )o4seHo5567 qup-corequp-configqup-memory 88txrx#<-default  disabledspi@8840002qcom,geni-spi@@ )o4seHo5567 qup-corequp-configqup-memory 88txrx#=>-default  disabledi2c@8880002qcom,geni-i2c@ *o4seHo5567 qup-corequp-configqup-memory 88txrx#?-default  disabledspi@8880002qcom,geni-spi@ *o4seHo5567 qup-corequp-configqup-memory 88txrx#@A-default  disabledi2c@88c0002qcom,geni-i2c@ +o4seHo5567 qup-corequp-configqup-memory 88txrx#B-default  disabledspi@88c0002qcom,geni-spi@ +o4seHo5567 qup-corequp-configqup-memory 88txrx#CD-default  disabledi2c@8900002qcom,geni-i2c@ ,o4seHo5567 qup-corequp-configqup-memory 88txrx#E-default  disabledspi@8900002qcom,geni-spi@ ,o4seHo5567 qup-corequp-configqup-memory 88txrx#FG-default  disabledi2c@8940002qcom,geni-i2c@@ -o4seHo5567 qup-corequp-configqup-memory 88txrx#H-default  disabledspi@8940002qcom,geni-spi@@ -o4seHo5567 qup-corequp-configqup-memory 88txrx#IJ-default  disabledserial@8940002qcom,geni-uart@@ -o4se0o5567qup-corequp-config#K-default disabledi2c@8980002qcom,geni-i2c@ o4seHo5567 qup-corequp-configqup-memory 88txrx#L-default  disabledspi@8980002qcom,geni-spi@ o4seHo5567 qup-corequp-configqup-memory 88txrx#MN-default  disabledi2c@89c0002qcom,geni-i2c@ o4seHo5567 qup-corequp-configqup-memory 88txrx#O-default  disabledspi@89c0002qcom,geni-spi@ o4seHo5567 qup-corequp-configqup-memory 88txrx#PQ-default  disableddma-controller@a00000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dma      > 36 disabledgSgeniqup@ac00002qcom,geni-se-qup o44 m-ahbs-ahb 3# okayi2c@a800002qcom,geni-i2c@  o4seHo5567R qup-corequp-configqup-memory SStxrx#T-default  disabledspi@a800002qcom,geni-spi@  o4seHo5567R qup-corequp-configqup-memory SStxrx#UV-default  disabledi2c@a840002qcom,geni-i2c@@ !o4seHo5567R qup-corequp-configqup-memory SStxrx#W-default  disabledspi@a840002qcom,geni-spi@@ !o4seHo5567R qup-corequp-configqup-memory SStxrx#XY-default  disabledi2c@a880002qcom,geni-i2c@ "o4seHo5567R qup-corequp-configqup-memory SStxrx#Z-default  disabledspi@a880002qcom,geni-spi@ "o4seHo5567R qup-corequp-configqup-memory SStxrx#[\-default  disabledi2c@a8c0002qcom,geni-i2c@ #o4seHo5567R qup-corequp-configqup-memory SStxrx#]-default  disabledspi@a8c0002qcom,geni-spi@ #o4seHo5567R qup-corequp-configqup-memory SStxrx#^_-default  disabledi2c@a900002qcom,geni-i2c@ $o4seHo5567R qup-corequp-configqup-memory SStxrx#`-default  disabledspi@a900002qcom,geni-spi@ $o4seHo5567R qup-corequp-configqup-memory SStxrx#ab-default  disabledi2c@a940002qcom,geni-i2c@@ %o4seHo5567R qup-corequp-configqup-memory SStxrx#c-default  disabledspi@a940002qcom,geni-spi@@ %o4seHo5567R qup-corequp-configqup-memory SStxrx#de-default  disabledi2c@a980002qcom,geni-i2c@ &o4seHo5567R qup-corequp-configqup-memory SStxrx#f-default  disabledspi@a980002qcom,geni-spi@ &o4seHo5567R qup-corequp-configqup-memory SStxrx#gh-default  disabledi2c@a9c0002qcom,geni-i2c@ 'o4seHo5567R qup-corequp-configqup-memory SStxrx#i-default  disabledspi@a9c0002qcom,geni-spi@ 'o4seHo5567R qup-corequp-configqup-memory SStxrx#jk-default  disableddma-controller@b00000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dmaLMNOPQRSTUVW > 3V disabledglgeniqup@bc00002qcom,geni-se-qup o44 m-ahbs-ahb 3C okayi2c@b800002qcom,geni-i2c@ uo4seHo5567 qup-corequp-configqup-memory lltxrx#m-default okayJtouchpad@15 2hid-over-i2c;  n#o-defaultJspi@b800002qcom,geni-spi@ uo4seHo5567 qup-corequp-configqup-memory lltxrx#pq-default  disabledi2c@b840002qcom,geni-i2c@@ Go4seHo5567 qup-corequp-configqup-memory lltxrx#r-default okayJspi@b840002qcom,geni-spi@@ Go4seHo5567 qup-corequp-configqup-memory lltxrx#st-default  disabledi2c@b880002qcom,geni-i2c@ Ho4seHo5567 qup-corequp-configqup-memory lltxrx#u-default  disabledserial@b880002qcom,geni-uart@ Ho4se0o5567qup-corequp-config#v-default disabledspi@b880002qcom,geni-spi@ Ho4seHo5567 qup-corequp-configqup-memory lltxrx#wx-default  disabledi2c@b8c0002qcom,geni-i2c@ Io4seHo5567 qup-corequp-configqup-memory lltxrx#y-default okayJspi@b8c0002qcom,geni-spi@ Io4seHo5567 qup-corequp-configqup-memory lltxrx#z{-default  disabledi2c@b900002qcom,geni-i2c@ Jo4seHo5567 qup-corequp-configqup-memory lltxrx#|-default  disabledspi@b900002qcom,geni-spi@ Jo4seHo5567 qup-corequp-configqup-memory lltxrx#}~-default  disabledi2c@b940002qcom,geni-i2c@@ Ko4seHo5567 qup-corequp-configqup-memory lltxrx#-default okayJkeyboard@3a 2hid-over-i2c:;  nC#-defaultJspi@b940002qcom,geni-spi@@ Ko4seHo5567 qup-corequp-configqup-memory lltxrx#-default  disabledi2c@b980002qcom,geni-i2c@ o4seHo5567 qup-corequp-configqup-memory lltxrx#-default  disabledspi@b980002qcom,geni-spi@ o4seHo5567 qup-corequp-configqup-memory lltxrx#-default  disabledi2c@b9c0002qcom,geni-i2c@ o4seHo5567 qup-corequp-configqup-memory lltxrx#-default okayJspi@b9c0002qcom,geni-spi@ o4seHo5567 qup-corequp-configqup-memory lltxrx#-default  disabledthermal-sensor@c271000"2qcom,x1e80100-tsensqcom,tsens-v2 ' "  Xuplowcriticalhvgthermal-sensor@c272000"2qcom,x1e80100-tsensqcom,tsens-v2 '  "0 Xuplowcriticalhvgthermal-sensor@c273000"2qcom,x1e80100-tsensqcom,tsens-v2 '0 "@ Xuplowcriticalhvgthermal-sensor@c274000"2qcom,x1e80100-tsensqcom,tsens-v2 '@ "P Xuplowcriticalhvgphy@fd300082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy0Toref46okaygphy@fd50002qcom,x1e80100-qmp-usb3-dp-phyP@ o444auxrefcom_auxusb3_pipe44D4O phycommonZokayg/ports port@0endpointgport@1endpointgport@2endpointgphy@fd900082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyToref47okaygphy@fda0002qcom,x1e80100-qmp-usb3-dp-phy@ o4 4"4#auxrefcom_auxusb3_pipe44E4P phycommonZokayg0ports port@0endpointgport@1endpointgport@2endpointgphy@fde00082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyToref48 disabledgphy@fdf0002qcom,x1e80100-qmp-usb3-dp-phy@ o4$4&4'auxrefcom_auxusb3_pipe44F4Q phycommonZ disabledg1ports port@0endpointport@1endpointgport@2endpointginterconnect@15000002qcom,x1e80100-cnoc-mainPD!}ginterconnect@16000002qcom,x1e80100-cnoc-cfg`f!}g7interconnect@16800002qcom,x1e80100-system-noch!}interconnect@16c00002qcom,x1e80100-pcie-south-anoclЀ!}ginterconnect@16d00002qcom,x1e80100-pcie-center-anocmp!}interconnect@16e00002qcom,x1e80100-aggre1-nocnD!}gRinterconnect@17000002qcom,x1e80100-aggre2-nocp!}ginterconnect@17400002qcom,x1e80100-pcie-north-anoct!}ginterconnect@17500002qcom,x1e80100-usb-center-anocu!}interconnect@17600002qcom,x1e80100-usb-north-anocvp!}ginterconnect@17700002qcom,x1e80100-usb-south-anocw!}ginterconnect@17800002qcom,x1e80100-mmss-nocx!}gpci@1bf8000pci2qcom,pcie-x1e80100`0p p@pp parfdbielbiatuconfigmhi 8p p0p0,=`EFGHIJ(Xmsi0msi1msi2msi3msi4msi5msi6msi7GZKLM8o4v4x4y4444"<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axih4vx$0o 6pcie-memcpu-pcie4"4#pcilink_down4 .pciephyokay n n#-defaultphy@1bfc000"2qcom,x1e80100-qmp-gen4x4-pcie-phy   0o4z4x 4{4}4$auxcfg_ahbrefrchngpipepipediv24%4$phyphy_nocsrh4{x4  Zpcie6a_pipe_clkokayg.pci@1c00000pci2qcom,pcie-x1e80100`0~~@~~0 parfdbielbiatuconfigmhi 8~ ~0~0,=`^_`YVRMN(Xmsi0msi1msi2msi3msi4msi5msi6msi7GZFGHI8o4k4m4n4t4u44!<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axih4kx$0o 6 pcie-memcpu-pcie44pcilink_down4-pciephy disabledphy@1c06000"2qcom,x1e80100-qmp-gen3x2-pcie-phy` 0o4k4m4o4q4s$auxcfg_ahbrefrchngpipepipediv24 phyh4ox4Zpcie5_pipe_clk disabledg-pci@1c08000pci2qcom,pcie-x1e80100`0||@|| parfdbielbiatuconfigmhi 8| |0|0,=`(Xmsi0msi1msi2msi3msi4msi5msi6msi7GZ8o4`4b4c4i4j44!<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axih4`x$0o 6 pcie-memcpu-pcie44pcilink_down4,pciephyokay n n#-defaultpcie@0pci phy@1c0e000"2qcom,x1e80100-qmp-gen3x2-pcie-phy 0o4`4b4d4f4h$auxcfg_ahbrefrchngpipepipediv24phyh4dx4Zpcie4_pipe_clkokayg,hwlock@1f400002qcom,tcsr-mutexg(clock-controller@1fc00002qcom,x1e80100-tcsrsysconoZggpu@3d00000!2qcom,adreno-43050c01qcom,adreno0# kgsl_3d0_reg_memorycx_memcx_dbgc ,o6 gfx-mem disabledzap-shader.opp-table2operating-points-v2gopp-1100000000<ACM opp-1000000000<;CM۳opp-925000000<7"a@C@M۳opp-800000000</CMopp-744000000<,XCM opp-687000000<(CM|copp-550000000< UCM\kopp-390000000<>C@M-opp-300000000<C8M gmu@3d6a000'2qcom,adreno-gmu-x185.1qcom,adreno-gmu0֠P ( gmursccgmu_pdc01Xhfigmu8o4$47!ahbgmucxoaximemnochubdemetcxgx [gopp-table2operating-points-v2gopp-550000000< UCopp-220000000< C@clock-controller@3d900002qcom,x1e80100-gpucco*4546Zgiommu@3da0000B2qcom,x1e80100-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500dq8>?@A o4748hlosbusifaceahbginterconnect@264000002qcom,x1e80100-gem-noc&@1!}g6interconnect@320c00002qcom,x1e80100-nsp-noc2 !}gcodec@6aa0000:2qcom,x1e80100-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(oDfgmclkmacrodcodecfsgenZ wsa2-mclkWSA2gsoundwire@6ab00002qcom,soundwire-v2.0.0oiface WSA2#-defaultswr_audio_cgcr ??      * A \ y  disabledcodec@6ac000082qcom,x1e80100-lpass-rx-macroqcom,sm8550-lpass-rx-macro(o@fgmclkmacrodcodecfsgenZmclkgsoundwire@6ad00002qcom,soundwire-v2.0.0oiface RX#-defaultswr_audio_cgcr        * A \ y  disabledcodec@6ae000082qcom,x1e80100-lpass-tx-macroqcom,sm8550-lpass-tx-macro(o9fgmclkmacrodcodecfsgenZmclkgcodec@6b00000:2qcom,x1e80100-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(oBfgmclkmacrodcodecfsgenZmclkWSAgsoundwire@6b100002qcom,soundwire-v2.0.0oiface WSA#-defaultswr_audio_cgcr ??      * A \ y  disabledclock-controller@6b6c00062qcom,x1e80100-lpassaudioccqcom,sc8280xp-lpassaudioccZgsoundwire@6d300002qcom,soundwire-v2.0.0oiface XcorewakeupTXswr_audio_cgcr#-default*A\y  disabledcodec@6d4400082qcom,x1e80100-lpass-va-macroqcom,sm8550-lpass-va-macro@$o9fgmclkmacrodcodecZfsgengpinctrl@6e80000>2qcom,x1e80100-lpass-lpi-pinctrlqcom,sm8550-lpass-lpi-pinctrl %ofg coreaudiogtx-swr-active-stategclk-pinsgpio0 swr_tx_clkdata-pins gpio1gpio2 swr_tx_datarx-swr-active-stategclk-pinsgpio3 swr_rx_clkdata-pins gpio4gpio5 swr_rx_datadmic01-default-stateclk-pinsgpio6 dmic1_clkdata-pinsgpio7 dmic1_data dmic23-default-stateclk-pinsgpio8 dmic2_clkdata-pinsgpio9 dmic2_data wsa-swr-active-stategclk-pinsgpio10 wsa_swr_clkdata-pinsgpio11 wsa_swr_datawsa2-swr-active-stategclk-pinsgpio15 wsa2_swr_clkdata-pinsgpio16wsa2_swr_dataclock-controller@6ea0000,2qcom,x1e80100-lpassccqcom,sc8280xp-lpasscc Zginterconnect@7e400002qcom,x1e80100-lpass-ag-noc!}interconnect@74000002qcom,x1e80100-lpass-lpiaon-noc@!}interconnect@74300002qcom,x1e80100-lpass-lpicx-nocC!}gphy@88e000082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTo ref49 disabledgphy@88e100082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyToref44 disabledgphy@88e200082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy Toref45 disabledgphy@88e30002qcom,x1e80100-qmp-usb3-uni-phy0  o444auxrefcom_auxpipe4G4L phyphy_phy4Zusb_mp_phy0_pipe_clk disabledgphy@88e50002qcom,x1e80100-qmp-usb3-uni-phyP  o444auxrefcom_auxpipe4H4M phyphy_phy4Zusb_mp_phy1_pipe_clk disabledgusb@a0f88002qcom,x1e80100-dwc3qcom,dwc3 Ho444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh44x$ 4 r:9 1Xpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44A0o 67%usb-ddrapps-usbJ  disabledusb@a000000 2snps,dwc3  a 3 1usb2-phyusb3-phy-F^ports port@0endpointport@1endpointgusb@a2f88002qcom,x1e80100-dwc3qcom,dwc3 / Ho444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh44x$ ( 21&Xpwr_eventdp_hs_phy_irqdm_hs_phy_irq44=0o 67"usb-ddrapps-usbJ disabledusb@a200000 2snps,dwc3   3 usb2-phy thigh-speedports port@0endpointusb@a4f8800 2qcom,x1e80100-dwc3-mpqcom,dwc3 OHo444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh44x$  9:58436578lXpwr_event_1pwr_event_2hs_phy_1hs_phy_2dp_hs_phy_1dm_hs_phy_1dp_hs_phy_2dm_hs_phy_2ss_phy_1ss_phy_244>0o 67&usb-ddrapps-usbJ  disabledusb@a400000 2snps,dwc3 @ 3 3usb2-0usb3-0usb2-1usb3-1host-F^usb@a6f88002qcom,x1e80100-dwc3qcom,dwc3 oHo4444 44 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh44x$ 4 s=1Xpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44?J okayusb@a600000 2snps,dwc3 ` c 3  /usb2-phyusb3-phy-F^hostports port@0endpointgport@1endpointgusb@a8f88002qcom,x1e80100-dwc3qcom,dwc3 Ho44 444 4 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysh4 4 x$ 4 t< /1Xpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44@0o 67$usb-ddrapps-usbJ okayusb@a800000 2snps,dwc3  e 3` 0usb2-phyusb3-phy-F^hostports port@0endpointgport@1endpointgdisplay-subsystem@ae000002qcom,x1e80100-mdss  mdss So4&:Ho6   67mdp0-memmdp1-memcpu-cfg 3t okaygdisplay-controller@ae010002qcom,x1e80100-dpu    mdpvbif (o4&=:Fnrt_busifacelutcorevsync2ports port@0endpointgport@4endpointgport@5endpointgport@6endpointgopp-table2operating-points-v2gopp-200000000< opp-325000000<_@opp-375000000<Z opp-514000000<opp-575000000<"Edisplayport-controller@ae900002qcom,x1e80100-dpP      (o ;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelh//2/dp disabledports port@0endpointgport@1endpointgopp-table2operating-points-v2gopp-160000000< hopp-270000000<߀opp-540000000< /opp-810000000<0Gdisplayport-controller@ae980002qcom,x1e80100-dpP      (o;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelh0020dp disabledports port@0endpointgport@1endpointgopp-table2operating-points-v2gopp-160000000< hopp-270000000<߀opp-540000000< /opp-810000000<0Gdisplayport-controller@ae9a0002qcom,x1e80100-dpP      (o"$'(;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelh%)1121dp disabledports port@0endpointgport@1endpointgopp-table2operating-points-v2gopp-160000000< hopp-270000000<߀opp-540000000< /opp-810000000<0Gdisplayport-controller@aea00002qcom,x1e80100-dpP      (o-/23;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelh042dpokayports port@0endpointgport@1endpoint `=Av1gopp-table2operating-points-v2gopp-160000000< hopp-270000000<߀opp-540000000< /opp-810000000<0Gaux-buspanel 2edp-panelportendpointgphy@aec2a002qcom,x1e80100-dp-phy@ * " & o" auxcfg_ahb2Z disabledphy@aec5a002qcom,x1e80100-dp-phy@ Z R V Po- auxcfg_ahb2Zokaygclock-controller@af000002qcom,x1e80100-dispcc do*4%+//00112Zginterrupt-controller@b2200002qcom,x1e80100-pdcqcom,pdc "@dH**/ 4ca  0tgpower-management@c300000%2qcom,x1e80100-aoss-qmpqcom,aoss-qmp 0) ) )Zgsram@c3f00002qcom,rpmh-stats ?arbiter@c4000002qcom,x1e80100-spmi-pmic-arb0 @0 P@ D corechnlsobsrvr spmi@c42d000 B@ L  cnfgintr Xperiph_irq  t pmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon  hlospbspwrkey2qcom,pmk8350-pwrkeytresin2qcom,pmk8350-resin disabledrtc@61002qcom,pmk8350-rtcab  rtcalarmb reservednvram@71002qcom,spmi-sdamq  qreboot-reason@48Hgpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpiotgpwm2qcom,pmk8550-pwm disabledpmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vggpio@8800 2qcom,pm8550-gpioqcom,spmi-gpio tgled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-led disabledpwm!2qcom,pm8550-pwmqcom,pm8350c-pwm disabledpmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vggpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiotgpmic@32qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vggpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio tgpmic@42qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio tgpmic@52qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio tgpmic@62qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio tgpmic@82qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiotgpmic@92qcom,pm8550qcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm  vg gpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpiotgpmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $vgspmi@c432000 C @ M  cnfgintr Xperiph_irq  t pmic@72qcom,smb2360qcom,spmi-pmic phy@fd002qcom,smb2360-eusb2-repeater gpmic@a2qcom,smb2360qcom,spmi-pmic  phy@fd002qcom,smb2360-eusb2-repeater gpmic@b2qcom,smb2360qcom,spmi-pmic   disabledphy@fd002qcom,smb2360-eusb2-repeaterpmic@c2qcom,smb2360qcom,spmi-pmic   disabledphy@fd002qcom,smb2360-eusb2-repeaterpinctrl@f1000002qcom,x1e80100-tlmm tn#1",gnqup-i2c0-data-clk-state gpio0gpio1 qup0_se0Fgmqup-i2c1-data-clk-state gpio4gpio5 qup0_se1Fgrqup-i2c2-data-clk-state gpio8gpio9 qup0_se2Fguqup-i2c3-data-clk-stategpio12gpio13 qup0_se3Fgyqup-i2c4-data-clk-stategpio16gpio17 qup0_se4Fg|qup-i2c5-data-clk-stategpio20gpio21 qup0_se5Fgqup-i2c6-data-clk-stategpio24gpio25 qup0_se6Fgqup-i2c7-data-clk-stategpio14gpio15 qup0_se7Fgqup-i2c8-data-clk-stategpio32gpio33 qup1_se0FgTqup-i2c9-data-clk-stategpio36gpio37 qup1_se1FgWqup-i2c10-data-clk-stategpio40gpio41 qup1_se2FgZqup-i2c11-data-clk-stategpio44gpio45 qup1_se3Fg]qup-i2c12-data-clk-stategpio48gpio49 qup1_se4Fg`qup-i2c13-data-clk-stategpio52gpio53 qup1_se5Fgcqup-i2c14-data-clk-stategpio56gpio57 qup1_se6Fgfqup-i2c15-data-clk-stategpio54gpio55 qup1_se7Fgiqup-i2c16-data-clk-stategpio64gpio65 qup2_se0Fg9qup-i2c17-data-clk-stategpio68gpio69 qup2_se1Fg<qup-i2c18-data-clk-stategpio72gpio73 qup2_se2Fg?qup-i2c19-data-clk-stategpio76gpio77 qup2_se3FgBqup-i2c20-data-clk-stategpio80gpio81 qup2_se4FgEqup-i2c21-data-clk-stategpio84gpio85 qup2_se5FgHqup-i2c22-data-clk-stategpio88gpio89 qup2_se6FgLqup-i2c23-data-clk-stategpio86gpio87 qup2_se7FgOqup-spi0-cs-stategpio3 qup0_se0gqqup-spi0-data-clk-stategpio0gpio1gpio2 qup0_se0gpqup-spi1-cs-stategpio7 qup0_se1gtqup-spi1-data-clk-stategpio4gpio5gpio6 qup0_se1gsqup-spi2-cs-stategpio11 qup0_se2gxqup-spi2-data-clk-stategpio8gpio9gpio10 qup0_se2gwqup-spi3-cs-stategpio15 qup0_se3g{qup-spi3-data-clk-stategpio12gpio13gpio14 qup0_se3gzqup-spi4-cs-stategpio19 qup0_se4g~qup-spi4-data-clk-stategpio16gpio17gpio18 qup0_se4g}qup-spi5-cs-stategpio23 qup0_se5gqup-spi5-data-clk-stategpio20gpio21gpio22 qup0_se5gqup-spi6-cs-stategpio27 qup0_se6gqup-spi6-data-clk-stategpio24gpio25gpio26 qup0_se6gqup-spi7-cs-stategpio13 qup0_se7gqup-spi7-data-clk-stategpio14gpio15gpio12 qup0_se7gqup-spi8-cs-stategpio35 qup1_se0gVqup-spi8-data-clk-stategpio32gpio33gpio34 qup1_se0gUqup-spi9-cs-stategpio39 qup1_se1gYqup-spi9-data-clk-stategpio36gpio37gpio38 qup1_se1gXqup-spi10-cs-stategpio43 qup1_se2g\qup-spi10-data-clk-stategpio40gpio41gpio42 qup1_se2g[qup-spi11-cs-stategpio47 qup1_se3g_qup-spi11-data-clk-stategpio44gpio45gpio46 qup1_se3g^qup-spi12-cs-stategpio51 qup1_se4gbqup-spi12-data-clk-stategpio48gpio49gpio50 qup1_se4gaqup-spi13-cs-stategpio55 qup1_se5gequp-spi13-data-clk-stategpio52gpio53gpio54 qup1_se5gdqup-spi14-cs-stategpio59 qup1_se6ghqup-spi14-data-clk-stategpio56gpio57gpio58 qup1_se6ggqup-spi15-cs-stategpio53 qup1_se7gkqup-spi15-data-clk-stategpio54gpio55gpio52 qup1_se7gjqup-spi16-cs-stategpio67 qup2_se0g;qup-spi16-data-clk-stategpio64gpio65gpio66 qup2_se0g:qup-spi17-cs-stategpio71 qup2_se1g>qup-spi17-data-clk-stategpio68gpio69gpio70 qup2_se1g=qup-spi18-cs-stategpio75 qup2_se2gAqup-spi18-data-clk-stategpio72gpio73gpio74 qup2_se2g@qup-spi19-cs-stategpio79 qup2_se3gDqup-spi19-data-clk-stategpio76gpio77gpio78 qup2_se3gCqup-spi20-cs-stategpio83 qup2_se4gGqup-spi20-data-clk-stategpio80gpio81gpio82 qup2_se4gFqup-spi21-cs-stategpio87 qup2_se5gJqup-spi21-data-clk-stategpio84gpio85gpio86 qup2_se5gIqup-spi22-cs-stategpio91 qup2_se6gNqup-spi22-data-clk-stategpio88gpio89gpio90 qup2_se6gMqup-spi23-cs-stategpio85 qup2_se7gQqup-spi23-data-clk-stategpio86gpio87gpio84 qup2_se7gPqup-uart2-default-stategvcts-pinsgpio8 qup0_se2rts-pinsgpio9 qup0_se2tx-pinsgpio10 qup0_se2rx-pinsgpio11 qup0_se2qup-uart21-default-stategKtx-pinsgpio86 qup2_se5rx-pinsgpio87 qup2_se5edp-reg-en-stategpio70gpiogkybd-default-stategpio67gpiognvme-reg-en-stategpio18gpiogpcie4-default-stategclkreq-n-pinsgpio147 pcie4_clkFperst-n-pinsgpio146gpiowake-n-pinsgpio148gpioFpcie6a-default-stategclkreq-n-pinsgpio153 pcie6a_clkFperst-n-pinsgpio152gpiowake-n-pinsgpio154gpioFtpad-default-stategpio3gpiogoiommu@1500000012qcom,x1e80100-smmu-500qcom,smmu-500arm,mmu-500Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYdqg3interrupt-controller@17000000 2arm,gic-v3 0  tSj gmsi-controller@170400002arm,gic-v3-its disabledrsc@175000002qcom,rpmh-rsc0PQR drv-0drv-1drv-2$   apps_rsc'bcm-voter2qcom,bcm-voterg!clock-controller2qcom,x1e80100-rpmh-clkoxoZgpower-controller2qcom,x1e80100-rpmhpdg2opp-table2operating-points-v2gopp-16Copp-48C0opp-52C4opp-56C8opp-60C<opp-64C@gopp-80CPopp-128Cgopp-144Copp-192Cgopp-256Cgopp-320C@gopp-336CPopp-384Copp-416Cregulators-02qcom,pm8550-rpmh-regulatorsb   / @ Q ` obob1 ~vreg_bob1 - opp-1Mq@opp-2M|opp-3Mopp-4MȀopp-5M`@pmu@240b5400*2qcom,x1e80100-cpu-bwmonqcom,sdm845-bwmon$ T Eo66 pmu@240b6400*2qcom,x1e80100-cpu-bwmonqcom,sdm845-bwmon$ d Eo66 system-cache-controller@250000002qcom,x1e80100-llcc% % %@ %` % % % % & &  llcc0_basellcc1_basellcc2_basellcc3_basellcc4_basellcc5_basellcc6_basellcc7_basellcc_broadcast_basellcc_broadcast_and_base  remoteproc@300000002qcom,x1e80100-adsp-pas0< #Xwdogfatalreadyhandoverstop-ackoxo22lcxlmxo .[ C Tstopokayc jqcom/x1e80100/ASUSTeK/vivobook-s15/qcadsp8380.mbnqcom/x1e80100/ASUSTeK/vivobook-s15/adsp_dtbs.elfglink-edge ) )lpass=fastrpc 2qcom,fastrpc xfastrpcglink-apps-dspadsp  compute-cb@32qcom,fastrpc-compute-cb33ccompute-cb@42qcom,fastrpc-compute-cb33dcompute-cb@52qcom,fastrpc-compute-cb33ecompute-cb@62qcom,fastrpc-compute-cb33fcompute-cb@72qcom,fastrpc-compute-cb33ggpr 2qcom,gpr xadsp_apps   service@1 2qcom,q6apm avs/audiomsm/adsp/audio_pdbedais2qcom,q6apm-lpass-daisdais2qcom,q6apm-dais33aservice@2 2qcom,q6prm avs/audiomsm/adsp/audio_pdclock-controller2qcom,q6prm-lpass-clocksZgremoteproc@323000002qcom,x1e80100-cdsp-pas20@@ B#Xwdogfatalreadyhandoverstop-ackoxo22 2  cxmxcnspo .[ C Tstopokayc jqcom/x1e80100/ASUSTeK/vivobook-s15/qccdsp8380.mbnqcom/x1e80100/ASUSTeK/vivobook-s15/cdsp_dtbs.elfglink-edge ) )cdsp=fastrpc 2qcom,fastrpc xfastrpcglink-apps-dspcdsp  compute-cb@12qcom,fastrpc-compute-cb 3  compute-cb@22qcom,fastrpc-compute-cb 3  compute-cb@32qcom,fastrpc-compute-cb 3  compute-cb@42qcom,fastrpc-compute-cb 3  compute-cb@52qcom,fastrpc-compute-cb 3  compute-cb@62qcom,fastrpc-compute-cb 3  compute-cb@72qcom,fastrpc-compute-cb 3  compute-cb@82qcom,fastrpc-compute-cb 3  compute-cb@102qcom,fastrpc-compute-cb  3 compute-cb@112qcom,fastrpc-compute-cb  3 compute-cb@122qcom,fastrpc-compute-cb  3  compute-cb@132qcom,fastrpc-compute-cb  3  timer2arm,armv8-timer0   thermal-zonesaoss0-thermal tripstrip-point0 _ Ehotaoss0-critical H  Ecriticalcpu0-0-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu0-0-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu0-1-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu0-1-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu0-2-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu0-2-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu0-3-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu0-3-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpuss0-top-thermal  tripstrip-point0 _ Ehotcpuss2-critical H  Ecriticalcpuss0-btm-thermal  tripstrip-point0 _ Ehotcpuss2-critical H  Ecriticalmem-thermal  tripstrip-point0 _ Ehotmem-critical H  Ecriticalvideo-thermal   tripstrip-point0 H Epassiveaoss1-thermal tripstrip-point0 _ Ehotaoss0-critical H  Ecriticalcpu1-0-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu1-0-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu1-1-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu1-1-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu1-2-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu1-2-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu1-3-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu1-3-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpuss1-top-thermal  tripstrip-point0 _ Ehotcpuss2-critical H  Ecriticalcpuss1-btm-thermal  tripstrip-point0 _ Ehotcpuss2-critical H  Ecriticalaoss2-thermal tripstrip-point0 _ Ehotaoss0-critical H  Ecriticalcpu2-0-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu2-0-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu2-1-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu2-1-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu2-2-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu2-2-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu2-3-top-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpu2-3-btm-thermal  tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-critical   Ecriticalcpuss2-top-thermal  tripstrip-point0 _ Ehotcpuss2-critical H  Ecriticalcpuss2-btm-thermal  tripstrip-point0 _ Ehotcpuss2-critical H  Ecriticalaoss3-thermal tripstrip-point0 _ Ehotaoss0-critical H  Ecriticalnsp0-thermal tripstrip-point0 _ Ehotnsp0-critical H  Ecriticalnsp1-thermal tripstrip-point0 _ Ehotnsp1-critical H  Ecriticalnsp2-thermal tripstrip-point0 _ Ehotnsp2-critical H  Ecriticalnsp3-thermal tripstrip-point0 _ Ehotnsp3-critical H  Ecriticalgpuss-0-thermal  tripstrip-point0 L Epassivetrip-point1 _ Ehottrip-point2 H  Ecriticalgpuss-1-thermal  tripstrip-point0 L Epassivetrip-point1 _ Ehottrip-point2 H  Ecriticalgpuss-2-thermal  tripstrip-point0 L Epassivetrip-point1 _ Ehottrip-point2 H  Ecriticalgpuss-3-thermal  tripstrip-point0 L Epassivetrip-point1 _ Ehottrip-point2 H  Ecriticalgpuss-4-thermal   tripstrip-point0 L Epassivetrip-point1 _ Ehottrip-point2 H  Ecriticalgpuss-5-thermal   tripstrip-point0 L Epassivetrip-point1 _ Ehottrip-point2 H  Ecriticalgpuss-6-thermal   tripstrip-point0 L Epassivetrip-point1 _ Ehottrip-point2 H  Ecriticalgpuss-7-thermal   tripstrip-point0 L Epassivetrip-point1 _ Ehottrip-point2 H  Ecriticalcamera0-thermal  tripstrip-point0 _ Ehotcamera0-critical 8  Ecriticalcamera1-thermal tripstrip-point0 _ Ehotcamera0-critical 8  Ecriticalpm8550-thermal d tripstrip0 s Epassivetrip1 8 Ehotpm8550ve-2-thermal d tripstrip0 s Epassivetrip1 8 Ehotpmc8380-3-thermal d tripstrip0 s Epassivetrip1 8 Ehotpmc8380-4-thermal d  tripstrip0 s Epassivetrip1 8 Ehotpmc8380-5-thermal d  tripstrip0 s Epassivetrip1 8 Ehotpmc8380-6-thermal d  tripstrip0 s Epassivetrip1 8 Ehotpm8550ve-8-thermal d  tripstrip0 s Epassivetrip1 8 Ehotpm8550ve-9-thermal d  tripstrip0 s Epassivetrip1 8 Ehotpm8010-thermal d tripstrip0 s Epassivetrip1 8 Ehotpmic-glink@2qcom,x1e80100-pmic-glinkqcom,sm8550-pmic-glinkqcom,pmic-glink nyn{ connector@02usb-c-connector "dual -dualports port@0endpointgport@1endpointgconnector@12usb-c-connector "dual -dualports port@0endpointgport@1endpointgvph-pwr-regulator2regulator-fixed ~vph_pwr 8u  8u  7 Kgregulator-edp-3p32regulator-fixed ~VREG_EDP_3P3 2Z 2Z ]nF b#-default 7 Kgregulator-nvme2regulator-fixed ~VREG_NVME_3P3 2Z 2Z ]n b#-default Kg interrupt-parent#address-cells#size-cellsmodelcompatiblechassis-typeclock-frequency#clock-cellsphandleclocksclock-multclock-divdevice_typeregenable-methodnext-level-cachepower-domainspower-domain-namescpu-idle-statescache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-usinterconnects#interconnect-cellsqcom,bcm-votersinterrupts#power-domain-cellsdomain-idle-statesrangesno-maphwlockssizereusablelinux,cma-defaultinterrupts-extendedmboxesqcom,smemqcom,local-pidqcom,remote-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-ranges#reset-cells#mbox-cellsdma-channelsdma-channel-mask#dma-cellsiommusstatusclock-namesinterconnect-namesdmasdma-namespinctrl-0pinctrl-nameshid-descr-addrwakeup-sourceinterrupt-names#qcom,sensors#thermal-sensor-cells#phy-cellsresetsvdd-supplyvdda12-supplyphysreset-namesorientation-switchvdda-phy-supplyvdda-pll-supplyremote-endpointreg-namesbus-rangedma-coherentlinux,pci-domainnum-lanesinterrupt-map-maskinterrupt-mapassigned-clocksassigned-clock-ratesrequired-oppsphy-namesperst-gpioswake-gpiosvddpe-3v3-supplyqcom,4ln-config-selclock-output-names#hwlock-cellsoperating-points-v2qcom,gmu#cooling-cellsmemory-regionopp-hzopp-levelopp-peak-kBpsqcom,qmp#iommu-cells#global-interrupts#sound-dai-cellssound-name-prefixlabelqcom,din-portsqcom,dout-portsqcom,ports-sintervalqcom,ports-offset1qcom,ports-offset2qcom,ports-hstartqcom,ports-hstopqcom,ports-word-lengthqcom,ports-block-pack-modeqcom,ports-block-group-countqcom,ports-lane-controlqcom,ports-sinterval-lowgpio-controller#gpio-cellsgpio-rangespinsfunctiondrive-strengthslew-ratebias-disablebias-bus-holdoutput-highinput-enablesnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,usb3_lpm_capablemaximum-speeddr_modeassigned-clock-parentsdata-laneslink-frequenciespower-supplyqcom,pdc-rangesqcom,eeqcom,channellinux,codebits#pwm-cellsvdd18-supplyvdd3-supplywakeup-parentgpio-reserved-rangesbias-pull-up#redistributor-regionsredistributor-stridemsi-controller#msi-cellsqcom,tcs-offsetqcom,drv-idqcom,tcs-configqcom,pmic-idvdd-bob1-supplyvdd-bob2-supplyvdd-l1-l4-l10-supplyvdd-l2-l13-l14-supplyvdd-l5-l16-supplyvdd-l6-l7-supplyvdd-l8-l9-supplyvdd-l12-supplyvdd-l15-supplyvdd-l17-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-initial-modevdd-l1-supplyvdd-l2-supplyvdd-l3-supplyvdd-s4-supplyvdd-s1-supplyvdd-s2-supplyvdd-s5-supplyframe-numberqcom,smem-statesqcom,smem-state-namesfirmware-nameqcom,glink-channelsqcom,non-secure-domainqcom,domainqcom,intentsqcom,protection-domainthermal-sensorstemperaturehysteresispolling-delay-passiveorientation-gpiospower-roledata-roleregulator-always-onregulator-boot-ongpioenable-active-high @8ވ( P ),Qualcomm Technologies, Inc. X1E80100 CRD 2qcom,x1e80100-crdqcom,x1e80100chosen=serial0:115200n8clocksxo-board 2fixed-clockIYfsleep-clk 2fixed-clockI}Yf+bi-tcxo-div2-clk2fixed-factor-clockYnuf*bi-tcxo-ao-div2-clk2fixed-factor-clockYnufcpus cpu@0cpu 2qcom,oryonpscipscifl2-cache2cachefcpu@100cpu 2qcom,oryonpscipscifcpu@200cpu 2qcom,oryonpscipscifcpu@300cpu 2qcom,oryonpscipscifcpu@10000cpu 2qcom,oryonpsci  pscifl2-cache2cachef cpu@10100cpu 2qcom,oryonpsci  pscifcpu@10200cpu 2qcom,oryonpsci  pscifcpu@10300cpu 2qcom,oryonpsci  pscifcpu@20000cpu 2qcom,oryonpscipscifl2-cache2cachefcpu@20100cpu 2qcom,oryonpscipscifcpu@20200cpu 2qcom,oryonpscipscifcpu@20300cpu 2qcom,oryonpscipscifcpu-mapcluster0core0core1core2core3cluster1core0core1core2core3cluster2core0core1core2core3idle-statespscicpu-sleep-02arm,idle-stateret%<M]Xfdomain-idle-statescluster-sleep-02domain-idle-statel2-ret%D<^M] f%cluster-sleep-12domain-idle-state ret-pll-off%T<M]Xf&firmwarescm2qcom,scm-x1e80100qcom,scmn interconnect-02qcom,x1e80100-clk-virt|!f5interconnect-12qcom,x1e80100-mc-virt|!f memory@80000000memorypmu2arm,armv8-pmuv3 psci 2arm,psci-1.0smcpower-domain-cpu0"fpower-domain-cpu1"fpower-domain-cpu2"fpower-domain-cpu3"fpower-domain-cpu4#f power-domain-cpu5#f power-domain-cpu6#f power-domain-cpu7#f power-domain-cpu8$fpower-domain-cpu9$fpower-domain-cpu10$fpower-domain-cpu11$fpower-domain-cpu-cluster0%&'f"power-domain-cpu-cluster1%&'f#power-domain-cpu-cluster2%&'f$power-domain-systemf'reserved-memory gunyah-hyp@80000000hyp-elf-package@80800000 ncc@80a00000@cpucp-log@80e00000cpucp@80e40000Treserved-region@813800008tags-region@81400000@xbl-dtlog@81a00000xbl-ramdump@81a40000aop-image@81c00000aop-cmd-db@81c60000 2qcom,cmd-dbaop-config@81c80000tme-crash-dump@81ca0000tme-log@81ce0000@uefi-log@81ce4000@secdata-apss@81cff000pdp-ns-shared@81e00000gpu-prr@81f00000tpm-control@81f10000usb-ucsi-shared@81f20000pld-pep@81f30000`pld-gmu@81f36000`pld-pdp@81f37000ptz-stat@82700000pxbl-tmp-buffer@82800000adsp-rpc-remote-heap@84b00000spu-secure-shared-memory@853000000adsp-boot-dtb@866c0000lspss-region@86700000p@adsp-boot@86b00000video@87700000ppadspslpi@87e00000f q6-adsp-dtb@8b800000f cdsp@8b900000fq6-cdsp-dtb@8d900000fgpu-microcode@8d9fe000 fcvp@8da00000pcamera@8e100000av1-encoder@8e900000preserved-region@8f000000wpss@8fa00000q6-wpss-dtb@913000000xbl-sc@d8000000reserved-region@d8040000 qtee@d80e0000Rta@d8600000`tags@e1000000jllcc-lpi@ff800000`smem@ffe00000 2qcom,smem (linux,cma2shared-dma-poolsmp2p-adsp 2qcom,smp2p) )#-<master-kernelLmaster-kernel\f slave-kernel Lslave-kernelsfsmp2p-cdsp 2qcom,smp2p) )#^-<master-kernelLmaster-kernel\fslave-kernel Lslave-kernelsf soc@0 2simple-bus clock-controller@1000002qcom,x1e80100-gcc 4n*+,-./012Yf4mailbox@4080002qcom,x1e80100-ipccqcom,ipcc@ sf)dma-controller@800000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dma > 36 disabledf8geniqup@8c00002qcom,geni-se-qup n44 m-ahbs-ahb 3# okayi2c@8800002qcom,geni-i2c@ (n4seHn5567 qup-corequp-configqup-memory 88txrx"9,default  disabledspi@8800002qcom,geni-spi@ (n4seHn5567 qup-corequp-configqup-memory 88txrx":;,default  disabledi2c@8840002qcom,geni-i2c@@ )n4seHn5567 qup-corequp-configqup-memory 88txrx"<,default  disabledspi@8840002qcom,geni-spi@@ )n4seHn5567 qup-corequp-configqup-memory 88txrx"=>,default  disabledi2c@8880002qcom,geni-i2c@ *n4seHn5567 qup-corequp-configqup-memory 88txrx"?,default  disabledspi@8880002qcom,geni-spi@ *n4seHn5567 qup-corequp-configqup-memory 88txrx"@A,default  disabledi2c@88c0002qcom,geni-i2c@ +n4seHn5567 qup-corequp-configqup-memory 88txrx"B,default  disabledspi@88c0002qcom,geni-spi@ +n4seHn5567 qup-corequp-configqup-memory 88txrx"CD,default  disabledi2c@8900002qcom,geni-i2c@ ,n4seHn5567 qup-corequp-configqup-memory 88txrx"E,default  disabledspi@8900002qcom,geni-spi@ ,n4seHn5567 qup-corequp-configqup-memory 88txrx"FG,default  disabledi2c@8940002qcom,geni-i2c@@ -n4seHn5567 qup-corequp-configqup-memory 88txrx"H,default  disabledspi@8940002qcom,geni-spi@@ -n4seHn5567 qup-corequp-configqup-memory 88txrx"IJ,default  disabledserial@8940002qcom,geni-debug-uart@@ -n4se0n5567qup-corequp-config"K,defaultokayi2c@8980002qcom,geni-i2c@ n4seHn5567 qup-corequp-configqup-memory 88txrx"L,default  disabledspi@8980002qcom,geni-spi@ n4seHn5567 qup-corequp-configqup-memory 88txrx"MN,default  disabledi2c@89c0002qcom,geni-i2c@ n4seHn5567 qup-corequp-configqup-memory 88txrx"O,default  disabledspi@89c0002qcom,geni-spi@ n4seHn5567 qup-corequp-configqup-memory 88txrx"PQ,default  disableddma-controller@a00000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dma      > 36 disabledfSgeniqup@ac00002qcom,geni-se-qup n44 m-ahbs-ahb 3# okayi2c@a800002qcom,geni-i2c@  n4seHn5567R qup-corequp-configqup-memory SStxrx"T,default okayItouchscreen@10 2hid-over-i2c: U3"V,defaultspi@a800002qcom,geni-spi@  n4seHn5567R qup-corequp-configqup-memory SStxrx"WX,default  disabledi2c@a840002qcom,geni-i2c@@ !n4seHn5567R qup-corequp-configqup-memory SStxrx"Y,default  disabledspi@a840002qcom,geni-spi@@ !n4seHn5567R qup-corequp-configqup-memory SStxrx"Z[,default  disabledi2c@a880002qcom,geni-i2c@ "n4seHn5567R qup-corequp-configqup-memory SStxrx"\,default  disabledspi@a880002qcom,geni-spi@ "n4seHn5567R qup-corequp-configqup-memory SStxrx"]^,default  disabledi2c@a8c0002qcom,geni-i2c@ #n4seHn5567R qup-corequp-configqup-memory SStxrx"_,default  disabledspi@a8c0002qcom,geni-spi@ #n4seHn5567R qup-corequp-configqup-memory SStxrx"`a,default  disabledi2c@a900002qcom,geni-i2c@ $n4seHn5567R qup-corequp-configqup-memory SStxrx"b,default  disabledspi@a900002qcom,geni-spi@ $n4seHn5567R qup-corequp-configqup-memory SStxrx"cd,default  disabledi2c@a940002qcom,geni-i2c@@ %n4seHn5567R qup-corequp-configqup-memory SStxrx"e,default  disabledspi@a940002qcom,geni-spi@@ %n4seHn5567R qup-corequp-configqup-memory SStxrx"fg,default  disabledi2c@a980002qcom,geni-i2c@ &n4seHn5567R qup-corequp-configqup-memory SStxrx"h,default  disabledspi@a980002qcom,geni-spi@ &n4seHn5567R qup-corequp-configqup-memory SStxrx"ij,default  disabledi2c@a9c0002qcom,geni-i2c@ 'n4seHn5567R qup-corequp-configqup-memory SStxrx"k,default  disabledspi@a9c0002qcom,geni-spi@ 'n4seHn5567R qup-corequp-configqup-memory SStxrx"lm,default  disableddma-controller@b00000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dmaLMNOPQRSTUVW > 3V disabledfngeniqup@bc00002qcom,geni-se-qup n44 m-ahbs-ahb 3C okayi2c@b800002qcom,geni-i2c@ un4seHn5567 qup-corequp-configqup-memory nntxrx"o,default okayItouchpad@15 2hid-over-i2c: U"p,defaultIkeyboard@3a 2hid-over-i2c:: UC"q,defaultIspi@b800002qcom,geni-spi@ un4seHn5567 qup-corequp-configqup-memory nntxrx"rs,default  disabledi2c@b840002qcom,geni-i2c@@ Gn4seHn5567 qup-corequp-configqup-memory nntxrx"t,default  disabledspi@b840002qcom,geni-spi@@ Gn4seHn5567 qup-corequp-configqup-memory nntxrx"uv,default  disabledi2c@b880002qcom,geni-i2c@ Hn4seHn5567 qup-corequp-configqup-memory nntxrx"w,default  disabledserial@b880002qcom,geni-uart@ Hn4se0n5567qup-corequp-config"x,default disabledspi@b880002qcom,geni-spi@ Hn4seHn5567 qup-corequp-configqup-memory nntxrx"yz,default  disabledi2c@b8c0002qcom,geni-i2c@ In4seHn5567 qup-corequp-configqup-memory nntxrx"{,default  disabledspi@b8c0002qcom,geni-spi@ In4seHn5567 qup-corequp-configqup-memory nntxrx"|},default  disabledi2c@b900002qcom,geni-i2c@ Jn4seHn5567 qup-corequp-configqup-memory nntxrx"~,default  disabledspi@b900002qcom,geni-spi@ Jn4seHn5567 qup-corequp-configqup-memory nntxrx",default  disabledi2c@b940002qcom,geni-i2c@@ Kn4seHn5567 qup-corequp-configqup-memory nntxrx",default  disabledspi@b940002qcom,geni-spi@@ Kn4seHn5567 qup-corequp-configqup-memory nntxrx",default  disabledi2c@b980002qcom,geni-i2c@ n4seHn5567 qup-corequp-configqup-memory nntxrx",default  disabledspi@b980002qcom,geni-spi@ n4seHn5567 qup-corequp-configqup-memory nntxrx",default  disabledi2c@b9c0002qcom,geni-i2c@ n4seHn5567 qup-corequp-configqup-memory nntxrx",default  disabledspi@b9c0002qcom,geni-spi@ n4seHn5567 qup-corequp-configqup-memory nntxrx",default  disabledthermal-sensor@c271000"2qcom,x1e80100-tsensqcom,tsens-v2 ' " Wuplowcriticalgufthermal-sensor@c272000"2qcom,x1e80100-tsensqcom,tsens-v2 '  "0Wuplowcriticalgufthermal-sensor@c273000"2qcom,x1e80100-tsensqcom,tsens-v2 '0 "@Wuplowcriticalgufthermal-sensor@c274000"2qcom,x1e80100-tsensqcom,tsens-v2 '@ "PWuplowcriticalgufphy@fd300082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy0Tnref46okayfphy@fd50002qcom,x1e80100-qmp-usb3-dp-phyP@ n444auxrefcom_auxusb3_pipe44D4O phycommonYokayf/ports port@0endpointf#port@1endpointfport@2endpointfphy@fd900082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTnref47okayfphy@fda0002qcom,x1e80100-qmp-usb3-dp-phy@ n4 4"4#auxrefcom_auxusb3_pipe44E4P phycommonYokayf0ports port@0endpointf%port@1endpointfport@2endpointfphy@fde00082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTnref48okayfphy@fdf0002qcom,x1e80100-qmp-usb3-dp-phy@ n4$4&4'auxrefcom_auxusb3_pipe44F4Q phycommonYokayf1ports port@0endpointf'port@1endpointfport@2endpointfinterconnect@15000002qcom,x1e80100-cnoc-mainPD!|finterconnect@16000002qcom,x1e80100-cnoc-cfg`f!|f7interconnect@16800002qcom,x1e80100-system-noch!|interconnect@16c00002qcom,x1e80100-pcie-south-anoclЀ!|finterconnect@16d00002qcom,x1e80100-pcie-center-anocmp!|interconnect@16e00002qcom,x1e80100-aggre1-nocnD!|fRinterconnect@17000002qcom,x1e80100-aggre2-nocp!|finterconnect@17400002qcom,x1e80100-pcie-north-anoct!|finterconnect@17500002qcom,x1e80100-usb-center-anocu!|interconnect@17600002qcom,x1e80100-usb-north-anocvp!|finterconnect@17700002qcom,x1e80100-usb-south-anocw!|finterconnect@17800002qcom,x1e80100-mmss-nocx!|fpci@1bf8000pci2qcom,pcie-x1e80100`0p p@pp parfdbielbiatuconfigmhi 8p p0p0+<`EFGHIJ(Wmsi0msi1msi2msi3msi4msi5msi6msi7FYKLM8n4v4x4y4444"<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axig4vw$0n 6pcie-memcpu-pcie4"4#pcilink_down4 .pciephyokay U U,default"phy@1bfc000"2qcom,x1e80100-qmp-gen4x4-pcie-phy   0n4z4x 4{4}4$auxcfg_ahbrefrchngpipepipediv24%4$phyphy_nocsrg4{w4  Ypcie6a_pipe_clkokayf.pci@1c00000pci2qcom,pcie-x1e80100`0~~@~~0 parfdbielbiatuconfigmhi 8~ ~0~0+<`^_`YVRMN(Wmsi0msi1msi2msi3msi4msi5msi6msi7FYFGHI8n4k4m4n4t4u44!<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axig4kw$0n 6 pcie-memcpu-pcie44pcilink_down4-pciephyokay U U",defaultphy@1c06000"2qcom,x1e80100-qmp-gen3x2-pcie-phy` 0n4k4m4o4q4s$auxcfg_ahbrefrchngpipepipediv24 phyg4ow4Ypcie5_pipe_clkokayf-pci@1c08000pci2qcom,pcie-x1e80100`0||@|| parfdbielbiatuconfigmhi 8| |0|0+<`(Wmsi0msi1msi2msi3msi4msi5msi6msi7FY8n4`4b4c4i4j44!<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axig4`w$0n 6 pcie-memcpu-pcie44pcilink_down4,pciephyokay U U",defaultpcie@0pci phy@1c0e000"2qcom,x1e80100-qmp-gen3x2-pcie-phy 0n4`4b4d4f4h$auxcfg_ahbrefrchngpipepipediv24phyg4dw4Ypcie4_pipe_clkokayf,hwlock@1f400002qcom,tcsr-mutexf(clock-controller@1fc00002qcom,x1e80100-tcsrsysconnYfgpu@3d00000!2qcom,adreno-43050c01qcom,adreno0# kgsl_3d0_reg_memorycx_memcx_dbgc ,n6 gfx-memokayzap-shader-;qcom/x1e80100/gen70500_zap.mbnopp-table2operating-points-v2fopp-1100000000IAPZ opp-1000000000I;PZ۳opp-925000000I7"a@P@Z۳opp-800000000I/PZopp-744000000I,XPZ opp-687000000I(PZ|copp-550000000I UPZ\kopp-390000000I>P@Z-opp-300000000IP8Z gmu@3d6a000'2qcom,adreno-gmu-x185.1qcom,adreno-gmu0֠P ( gmursccgmu_pdc01Whfigmu8n4$47!ahbgmucxoaximemnochubdemetcxgx hfopp-table2operating-points-v2fopp-550000000I UPopp-220000000I P@clock-controller@3d900002qcom,x1e80100-gpuccn*4546Yfiommu@3da0000B2qcom,x1e80100-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500q~8>?@A n4748hlosbusifaceahbfinterconnect@264000002qcom,x1e80100-gem-noc&@1!|f6interconnect@320c00002qcom,x1e80100-nsp-noc2 !|f codec@6aa0000:2qcom,x1e80100-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(nDfgmclkmacrodcodecfsgenY wsa2-mclkWSA2fsoundwire@6ab00002qcom,soundwire-v2.0.0niface WSA2",defaultswr_audio_cgcr ??     & 7 N i  okayf2speaker@0,02sdw20217020400   WooferRight f0speaker@0,12sdw20217020400   TweeterRight f1codec@6ac000082qcom,x1e80100-lpass-rx-macroqcom,sm8550-lpass-rx-macro(n@fgmclkmacrodcodecfsgenYmclkfsoundwire@6ad00002qcom,soundwire-v2.0.0niface RX",defaultswr_audio_cgcr       & 7 N i  okayf*codec@0,42sdw20217010d00fcodec@6ae000082qcom,x1e80100-lpass-tx-macroqcom,sm8550-lpass-tx-macro(n9fgmclkmacrodcodecfsgenYmclkfcodec@6b00000:2qcom,x1e80100-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(nBfgmclkmacrodcodecfsgenYmclkWSAfsoundwire@6b100002qcom,soundwire-v2.0.0niface WSA",defaultswr_audio_cgcr ??     & 7 N i  okayf/speaker@0,02sdw20217020400   WooferLeft f-speaker@0,12sdw20217020400   TweeterLeft f.clock-controller@6b6c00062qcom,x1e80100-lpassaudioccqcom,sc8280xp-lpassaudioccYfsoundwire@6d300002qcom,soundwire-v2.0.0niface WcorewakeupTXswr_audio_cgcr",default&7Ni okayf,codec@0,32sdw20217010d00f codec@6d4400082qcom,x1e80100-lpass-va-macroqcom,sm8550-lpass-va-macro@$n9fgmclkmacrodcodecYfsgen",default,I>fpinctrl@6e80000>2qcom,x1e80100-lpass-lpi-pinctrlqcom,sm8550-lpass-lpi-pinctrl %nfg coreaudioBR^ftx-swr-active-statefclk-pinsjgpio0 oswr_tx_clkxdata-pins jgpio1gpio2 oswr_tx_dataxrx-swr-active-statefclk-pinsjgpio3 oswr_rx_clkxdata-pins jgpio4gpio5 oswr_rx_dataxdmic01-default-statefclk-pinsjgpio6 odmic1_clkxdata-pinsjgpio7 odmic1_dataxdmic23-default-statefclk-pinsjgpio8 odmic2_clkxdata-pinsjgpio9 odmic2_dataxwsa-swr-active-statefclk-pinsjgpio10 owsa_swr_clkxdata-pinsjgpio11 owsa_swr_dataxwsa2-swr-active-statefclk-pinsjgpio15 owsa2_swr_clkxdata-pinsjgpio16owsa2_swr_dataxspkr-01-sd-n-active-statejgpio12ogpioxfspkr-23-sd-n-active-statejgpio13ogpioxfclock-controller@6ea0000,2qcom,x1e80100-lpassccqcom,sc8280xp-lpasscc Yfinterconnect@7e400002qcom,x1e80100-lpass-ag-noc!|interconnect@74000002qcom,x1e80100-lpass-lpiaon-noc@!|interconnect@74300002qcom,x1e80100-lpass-lpicx-nocC!|fphy@88e000082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTn ref49 disabledfphy@88e100082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTnref44 disabledfphy@88e200082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy Tnref45 disabledfphy@88e30002qcom,x1e80100-qmp-usb3-uni-phy0  n444auxrefcom_auxpipe4G4L phyphy_phy4Yusb_mp_phy0_pipe_clk disabledfphy@88e50002qcom,x1e80100-qmp-usb3-uni-phyP  n444auxrefcom_auxpipe4H4M phyphy_phy4Yusb_mp_phy1_pipe_clk disabledfusb@a0f88002qcom,x1e80100-dwc3qcom,dwc3 Hn444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysg44w$ 4r:9 1Wpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44A0n 67%usb-ddrapps-usbI okayusb@a000000 2snps,dwc3  a 3 1usb2-phyusb3-phyhostports port@0endpointf&port@1endpointfusb@a2f88002qcom,x1e80100-dwc3qcom,dwc3 / Hn444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysg44w$ (21&Wpwr_eventdp_hs_phy_irqdm_hs_phy_irq44=0n 67"usb-ddrapps-usbI disabledusb@a200000 2snps,dwc3   3 usb2-phy high-speedports port@0endpointusb@a4f8800 2qcom,x1e80100-dwc3-mpqcom,dwc3 OHn444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysg44w$ 9:58436578lWpwr_event_1pwr_event_2hs_phy_1hs_phy_2dp_hs_phy_1dm_hs_phy_1dp_hs_phy_2dm_hs_phy_2ss_phy_1ss_phy_244>0n 67&usb-ddrapps-usbI  disabledusb@a400000 2snps,dwc3 @ 3 3usb2-0usb3-0usb2-1usb3-1hostusb@a6f88002qcom,x1e80100-dwc3qcom,dwc3 oHn4444 44 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysg44w$ 4s=1Wpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44?I okayusb@a600000 2snps,dwc3 ` c 3  /usb2-phyusb3-phyhostports port@0endpointf"port@1endpointfusb@a8f88002qcom,x1e80100-dwc3qcom,dwc3 Hn44 444 4 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sysg4 4 w$ 4t< /1Wpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44@0n 67$usb-ddrapps-usbI okayusb@a800000 2snps,dwc3  e 3` 0usb2-phyusb3-phyhostports port@0endpointf$port@1endpointfdisplay-subsystem@ae000002qcom,x1e80100-mdss  mdss Sn4&:Hn6   67mdp0-memmdp1-memcpu-cfg 3s okayfdisplay-controller@ae010002qcom,x1e80100-dpu    mdpvbif(n4&=:Fnrt_busifacelutcorevsync2ports port@0endpointfport@4endpointfport@5endpointfport@6endpointfopp-table2operating-points-v2fopp-200000000I opp-325000000I_@opp-375000000IZ opp-514000000Iopp-575000000I"Edisplayport-controller@ae900002qcom,x1e80100-dpP      (n ;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelg-//2/dp disabledports port@0endpointfport@1endpointfopp-table2operating-points-v2fopp-160000000I hopp-270000000I߀opp-540000000I /opp-810000000I0Gdisplayport-controller@ae980002qcom,x1e80100-dpP      (n;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelg-0020dp disabledports port@0endpointfport@1endpointfopp-table2operating-points-v2fopp-160000000I hopp-270000000I߀opp-540000000I /opp-810000000I0Gdisplayport-controller@ae9a0002qcom,x1e80100-dpP     (n"$'(;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelg%)-1121dp disabledports port@0endpointfport@1endpointfopp-table2operating-points-v2fopp-160000000I hopp-270000000I߀opp-540000000I /opp-810000000I0Gdisplayport-controller@aea00002qcom,x1e80100-dpP     (n-/23;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixelg04-2dpokayports port@0endpointfport@1endpointD O`=Av1fopp-table2operating-points-v2fopp-160000000I hopp-270000000I߀opp-540000000I /opp-810000000I0Gaux-buspanel&2samsung,atna45af01samsung,atna33xc20 `m",defaultportendpointfphy@aec2a002qcom,x1e80100-dp-phy@ * " & n" auxcfg_ahb2Y disabledphy@aec5a002qcom,x1e80100-dp-phy@ Z R V Pn- auxcfg_ahb2Yokayfclock-controller@af000002qcom,x1e80100-dispcc dn*4%+//00112Yfinterrupt-controller@b2200002qcom,x1e80100-pdcqcom,pdc "@dHz**/ 4ca  0sfpower-management@c300000%2qcom,x1e80100-aoss-qmpqcom,aoss-qmp 0)) )Yfsram@c3f00002qcom,rpmh-stats ?arbiter@c4000002qcom,x1e80100-spmi-pmic-arb0 @0 P@ D corechnlsobsrvr spmi@c42d000 B@ L  cnfgintr Wperiph_irq s pmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon  hlospbspwrkey2qcom,pmk8350-pwrkeytresin2qcom,pmk8350-resin disabledrtc@61002qcom,pmk8350-rtcab  rtcalarmb reservednvram@71002qcom,spmi-sdamq  qreboot-reason@48Hgpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpioB^Rsfpwm2qcom,pmk8550-pwm disabledpmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  ufgpio@8800 2qcom,pm8550-gpioqcom,spmi-gpioB^ Rsfled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-led disabledpwm!2qcom,pm8550-pwmqcom,pm8350c-pwm disabledpmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  ufgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpioB^Rsfpmic@32qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  ufgpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpioB^ Rsfedp-bl-en-statejgpio4onormalfpmic@42qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  ufgpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpioB^ Rsfpmic@52qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  ufgpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpioB^ Rsfpmic@62qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  ufgpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpioB^ Rsfpmic@82qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  ufgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpioB^Rsfpmic@92qcom,pm8550qcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm  ufgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpioB^Rsfpmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $ufspmi@c432000 C @ M  cnfgintr Wperiph_irq s pmic@72qcom,smb2360qcom,spmi-pmic phy@fd002qcom,smb2360-eusb2-repeaterfpmic@a2qcom,smb2360qcom,spmi-pmic  phy@fd002qcom,smb2360-eusb2-repeaterfpmic@b2qcom,smb2360qcom,spmi-pmic  okayphy@fd002qcom,smb2360-eusb2-repeaterfpmic@c2qcom,smb2360qcom,spmi-pmic   disabledphy@fd002qcom,smb2360-eusb2-repeaterpinctrl@f1000002qcom,x1e80100-tlmm BRs^U ",fUqup-i2c0-data-clk-state jgpio0gpio1 oqup0_se0x foqup-i2c1-data-clk-state jgpio4gpio5 oqup0_se1x ftqup-i2c2-data-clk-state jgpio8gpio9 oqup0_se2x fwqup-i2c3-data-clk-statejgpio12gpio13 oqup0_se3x f{qup-i2c4-data-clk-statejgpio16gpio17 oqup0_se4x f~qup-i2c5-data-clk-statejgpio20gpio21 oqup0_se5x fqup-i2c6-data-clk-statejgpio24gpio25 oqup0_se6x fqup-i2c7-data-clk-statejgpio14gpio15 oqup0_se7x fqup-i2c8-data-clk-statejgpio32gpio33 oqup1_se0x fTqup-i2c9-data-clk-statejgpio36gpio37 oqup1_se1x fYqup-i2c10-data-clk-statejgpio40gpio41 oqup1_se2x f\qup-i2c11-data-clk-statejgpio44gpio45 oqup1_se3x f_qup-i2c12-data-clk-statejgpio48gpio49 oqup1_se4x fbqup-i2c13-data-clk-statejgpio52gpio53 oqup1_se5x fequp-i2c14-data-clk-statejgpio56gpio57 oqup1_se6x fhqup-i2c15-data-clk-statejgpio54gpio55 oqup1_se7x fkqup-i2c16-data-clk-statejgpio64gpio65 oqup2_se0x f9qup-i2c17-data-clk-statejgpio68gpio69 oqup2_se1x f<qup-i2c18-data-clk-statejgpio72gpio73 oqup2_se2x f?qup-i2c19-data-clk-statejgpio76gpio77 oqup2_se3x fBqup-i2c20-data-clk-statejgpio80gpio81 oqup2_se4x fEqup-i2c21-data-clk-statejgpio84gpio85 oqup2_se5x fHqup-i2c22-data-clk-statejgpio88gpio89 oqup2_se6x fLqup-i2c23-data-clk-statejgpio86gpio87 oqup2_se7x fOqup-spi0-cs-statejgpio3 oqup0_se0xfsqup-spi0-data-clk-statejgpio0gpio1gpio2 oqup0_se0xfrqup-spi1-cs-statejgpio7 oqup0_se1xfvqup-spi1-data-clk-statejgpio4gpio5gpio6 oqup0_se1xfuqup-spi2-cs-statejgpio11 oqup0_se2xfzqup-spi2-data-clk-statejgpio8gpio9gpio10 oqup0_se2xfyqup-spi3-cs-statejgpio15 oqup0_se3xf}qup-spi3-data-clk-statejgpio12gpio13gpio14 oqup0_se3xf|qup-spi4-cs-statejgpio19 oqup0_se4xfqup-spi4-data-clk-statejgpio16gpio17gpio18 oqup0_se4xfqup-spi5-cs-statejgpio23 oqup0_se5xfqup-spi5-data-clk-statejgpio20gpio21gpio22 oqup0_se5xfqup-spi6-cs-statejgpio27 oqup0_se6xfqup-spi6-data-clk-statejgpio24gpio25gpio26 oqup0_se6xfqup-spi7-cs-statejgpio13 oqup0_se7xfqup-spi7-data-clk-statejgpio14gpio15gpio12 oqup0_se7xfqup-spi8-cs-statejgpio35 oqup1_se0xfXqup-spi8-data-clk-statejgpio32gpio33gpio34 oqup1_se0xfWqup-spi9-cs-statejgpio39 oqup1_se1xf[qup-spi9-data-clk-statejgpio36gpio37gpio38 oqup1_se1xfZqup-spi10-cs-statejgpio43 oqup1_se2xf^qup-spi10-data-clk-statejgpio40gpio41gpio42 oqup1_se2xf]qup-spi11-cs-statejgpio47 oqup1_se3xfaqup-spi11-data-clk-statejgpio44gpio45gpio46 oqup1_se3xf`qup-spi12-cs-statejgpio51 oqup1_se4xfdqup-spi12-data-clk-statejgpio48gpio49gpio50 oqup1_se4xfcqup-spi13-cs-statejgpio55 oqup1_se5xfgqup-spi13-data-clk-statejgpio52gpio53gpio54 oqup1_se5xffqup-spi14-cs-statejgpio59 oqup1_se6xfjqup-spi14-data-clk-statejgpio56gpio57gpio58 oqup1_se6xfiqup-spi15-cs-statejgpio53 oqup1_se7xfmqup-spi15-data-clk-statejgpio54gpio55gpio52 oqup1_se7xflqup-spi16-cs-statejgpio67 oqup2_se0xf;qup-spi16-data-clk-statejgpio64gpio65gpio66 oqup2_se0xf:qup-spi17-cs-statejgpio71 oqup2_se1xf>qup-spi17-data-clk-statejgpio68gpio69gpio70 oqup2_se1xf=qup-spi18-cs-statejgpio75 oqup2_se2xfAqup-spi18-data-clk-statejgpio72gpio73gpio74 oqup2_se2xf@qup-spi19-cs-statejgpio79 oqup2_se3xfDqup-spi19-data-clk-statejgpio76gpio77gpio78 oqup2_se3xfCqup-spi20-cs-statejgpio83 oqup2_se4xfGqup-spi20-data-clk-statejgpio80gpio81gpio82 oqup2_se4xfFqup-spi21-cs-statejgpio87 oqup2_se5xfJqup-spi21-data-clk-statejgpio84gpio85gpio86 oqup2_se5xfIqup-spi22-cs-statejgpio91 oqup2_se6xfNqup-spi22-data-clk-statejgpio88gpio89gpio90 oqup2_se6xfMqup-spi23-cs-statejgpio85 oqup2_se7xfQqup-spi23-data-clk-statejgpio86gpio87gpio84 oqup2_se7xfPqup-uart2-default-statefxcts-pinsjgpio8 oqup0_se2xrts-pinsjgpio9 oqup0_se2xtx-pinsjgpio10 oqup0_se2xrx-pinsjgpio11 oqup0_se2xqup-uart21-default-statefKtx-pinsjgpio86 oqup2_se5xrx-pinsjgpio87 oqup2_se5xedp-reg-en-statejgpio70ogpioxf3hall-int-n-statejgpio92ogpiof!kybd-default-statejgpio67ogpiofqnvme-reg-en-statejgpio18ogpioxf4pcie4-default-statefclkreq-n-pinsjgpio147 opcie4_clkx perst-n-pinsjgpio146ogpioxwake-n-pinsjgpio148ogpiox pcie5-default-statefclkreq-n-pinsjgpio150 opcie5_clkx perst-n-pinsjgpio149ogpioxwake-n-pinsjgpio151ogpiox pcie6a-default-statefclkreq-n-pinsjgpio153 opcie6a_clkx perst-n-pinsjgpio152ogpioxwake-n-pinsjgpio154ogpiox tpad-default-statejgpio3ogpiofpts0-default-statefVint-n-pinsjgpio51ogpioreset-n-pinsjgpio48ogpioxwcd-reset-n-active-statejgpio191ogpioxfwwan-sw-en-statejgpio221ogpioxf5iommu@1500000012qcom,x1e80100-smmu-500qcom,smmu-500arm,mmu-500Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYq~f3interrupt-controller@17000000 2arm,gic-v3 0  s , C fmsi-controller@170400002arm,gic-v3-its X g disabledrsc@175000002qcom,rpmh-rsc0PQR drv-0drv-1drv-2$ r    apps_rsc'bcm-voter2qcom,bcm-voterf!clock-controller2qcom,x1e80100-rpmh-clknxoYfpower-controller2qcom,x1e80100-rpmhpdf2opp-table2operating-points-v2fopp-16Popp-48P0opp-52P4opp-56P8opp-60P<opp-64P@fopp-80PPopp-128Pfopp-144Popp-192Pfopp-256Pfopp-320P@fopp-336PPopp-384Popp-416Pregulators-02qcom,pm8550-rpmh-regulators b        * 9 Hbob1 Wvreg_bob1 f- ~opp-1Zq@opp-2Z|opp-3Zopp-4ZȀopp-5Z`@pmu@240b5400*2qcom,x1e80100-cpu-bwmonqcom,sdm845-bwmon$ T En66 pmu@240b6400*2qcom,x1e80100-cpu-bwmonqcom,sdm845-bwmon$ d En66 system-cache-controller@250000002qcom,x1e80100-llcc% % %@ %` % % % % & &  llcc0_basellcc1_basellcc2_basellcc3_basellcc4_basellcc5_basellcc6_basellcc7_basellcc_broadcast_basellcc_broadcast_and_base  remoteproc@300000002qcom,x1e80100-adsp-pas0<#Wwdogfatalreadyhandoverstop-acknxo22lcxlmxn -  h   -stopokay2;qcom/x1e80100/adsp.mbnqcom/x1e80100/adsp_dtb.mbnglink-edge) )lpass<fastrpc 2qcom,fastrpc Cfastrpcglink-apps-dspadsp W compute-cb@32qcom,fastrpc-compute-cb33ccompute-cb@42qcom,fastrpc-compute-cb33dcompute-cb@52qcom,fastrpc-compute-cb33ecompute-cb@62qcom,fastrpc-compute-cb33fcompute-cb@72qcom,fastrpc-compute-cb33ggpr 2qcom,gpr Cadsp_apps n z service@1 2qcom,q6apm avs/audiomsm/adsp/audio_pdf+bedais2qcom,q6apm-lpass-daisf(dais2qcom,q6apm-dais33aservice@2 2qcom,q6prm avs/audiomsm/adsp/audio_pdclock-controller2qcom,q6prm-lpass-clocksYfremoteproc@323000002qcom,x1e80100-cdsp-pas20@@B    #Wwdogfatalreadyhandoverstop-acknxo22 2  cxmxcnspn  -h  -stopokay2;qcom/x1e80100/cdsp.mbnqcom/x1e80100/cdsp_dtb.mbnglink-edge) )cdsp<fastrpc 2qcom,fastrpc Cfastrpcglink-apps-dspcdsp W compute-cb@12qcom,fastrpc-compute-cb 3  compute-cb@22qcom,fastrpc-compute-cb 3  compute-cb@32qcom,fastrpc-compute-cb 3  compute-cb@42qcom,fastrpc-compute-cb 3  compute-cb@52qcom,fastrpc-compute-cb 3  compute-cb@62qcom,fastrpc-compute-cb 3  compute-cb@72qcom,fastrpc-compute-cb 3  compute-cb@82qcom,fastrpc-compute-cb 3  compute-cb@102qcom,fastrpc-compute-cb  3 compute-cb@112qcom,fastrpc-compute-cb  3 compute-cb@122qcom,fastrpc-compute-cb  3  compute-cb@132qcom,fastrpc-compute-cb  3  timer2arm,armv8-timer0   thermal-zonesaoss0-thermal tripstrip-point0 _ hotaoss0-critical H  criticalcpu0-0-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-0-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-1-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-1-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-2-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-2-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-3-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-3-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpuss0-top-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalcpuss0-btm-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalmem-thermal  tripstrip-point0 _ hotmem-critical H  criticalvideo-thermal   tripstrip-point0 H passiveaoss1-thermal tripstrip-point0 _ hotaoss0-critical H  criticalcpu1-0-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-0-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-1-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-1-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-2-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-2-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-3-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-3-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpuss1-top-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalcpuss1-btm-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalaoss2-thermal tripstrip-point0 _ hotaoss0-critical H  criticalcpu2-0-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-0-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-1-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-1-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-2-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-2-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-3-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-3-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpuss2-top-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalcpuss2-btm-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalaoss3-thermal tripstrip-point0 _ hotaoss0-critical H  criticalnsp0-thermal tripstrip-point0 _ hotnsp0-critical H  criticalnsp1-thermal tripstrip-point0 _ hotnsp1-critical H  criticalnsp2-thermal tripstrip-point0 _ hotnsp2-critical H  criticalnsp3-thermal tripstrip-point0 _ hotnsp3-critical H  criticalgpuss-0-thermal  tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-1-thermal  tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-2-thermal  tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-3-thermal  tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-4-thermal   tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-5-thermal   tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-6-thermal   tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-7-thermal   tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalcamera0-thermal  tripstrip-point0 _ hotcamera0-critical 8  criticalcamera1-thermal tripstrip-point0 _ hotcamera0-critical 8  criticalpm8550-thermal d tripstrip0 s passivetrip1 8 hotpm8550ve-2-thermal d tripstrip0 s passivetrip1 8 hotpmc8380-3-thermal d tripstrip0 s passivetrip1 8 hotpmc8380-4-thermal d tripstrip0 s passivetrip1 8 hotpmc8380-5-thermal d tripstrip0 s passivetrip1 8 hotpmc8380-6-thermal d tripstrip0 s passivetrip1 8 hotpm8550ve-8-thermal d tripstrip0 s passivetrip1 8 hotpm8550ve-9-thermal d tripstrip0 s passivetrip1 8 hotpm8010-thermal d tripstrip0 s passivetrip1 8 hotaliases$ /soc@0/geniqup@8c0000/serial@894000audio-codec2qcom,wcd9385-codec,default" w@ w@ w@ +w@ C$I      j P    U   f)gpio-keys 2gpio-keys"!,defaultswitch-lid U\ I pmic-glink@2qcom,x1e80100-pmic-glinkqcom,sm8550-pmic-glinkqcom,pmic-glink $ 1UyU{U}connector@02usb-c-connector Cdual Ndualports port@0endpoint"fport@1endpoint#fconnector@12usb-c-connector Cdual Ndualports port@0endpoint$fport@1endpoint%fconnector@22usb-c-connector Cdual Ndualports port@0endpoint&fport@1endpoint'fsound2qcom,x1e80100-sndcard ,X1E80100-CRDt XWooferLeft INWSA WSA_SPK1 OUTTweeterLeft INWSA WSA_SPK2 OUTWooferRight INWSA2 WSA_SPK2 OUTTweeterRight INWSA2 WSA_SPK2 OUTIN1_HPHLHPHL_OUTIN2_HPHRHPHR_OUTAMIC2MIC BIAS2VA DMIC0MIC BIAS3VA DMIC1MIC BIAS3VA DMIC2MIC BIAS1VA DMIC3MIC BIAS1VA DMIC0VA MIC BIAS3VA DMIC1VA MIC BIAS3VA DMIC2VA MIC BIAS1VA DMIC3VA MIC BIAS1TX SWR_INPUT1ADC2_OUTPUTwcd-playback-dai-link fWCD Playbackcpu p(qcodec p)*platform p+wcd-capture-dai-link fWCD Capturecpu p(xcodec p),platform p+wsa-dai-link fWSA Playbackcpu p(icodec0 p-./012platform p+va-dai-link fVA Capturecpu p(ncodec pplatform p+vph-pwr-regulator2regulator-fixed Wvph_pwr f8u  ~8u  z fregulator-edp-3p32regulator-fixed WVREG_EDP_3P3 f2Z ~2Z UF "3,default fregulator-nvme2regulator-fixed WVREG_NVME_3P3 f2Z ~2Z U ,default"4 fregulator-wwan2regulator-fixed WSDX_VPH_PWR f2Z ~2Z U "5,default f interrupt-parent#address-cells#size-cellsmodelcompatiblestdout-pathclock-frequency#clock-cellsphandleclocksclock-multclock-divdevice_typeregenable-methodnext-level-cachepower-domainspower-domain-namescpu-idle-statescache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-usinterconnects#interconnect-cellsqcom,bcm-votersinterrupts#power-domain-cellsdomain-idle-statesrangesno-maphwlockssizereusablelinux,cma-defaultinterrupts-extendedmboxesqcom,smemqcom,local-pidqcom,remote-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-ranges#reset-cells#mbox-cellsdma-channelsdma-channel-mask#dma-cellsiommusstatusclock-namesinterconnect-namesdmasdma-namespinctrl-0pinctrl-nameshid-descr-addrwakeup-sourceinterrupt-names#qcom,sensors#thermal-sensor-cells#phy-cellsresetsvdd-supplyvdda12-supplyphysreset-namesorientation-switchvdda-phy-supplyvdda-pll-supplyremote-endpointreg-namesbus-rangedma-coherentlinux,pci-domainnum-lanesinterrupt-map-maskinterrupt-mapassigned-clocksassigned-clock-ratesrequired-oppsphy-namesperst-gpioswake-gpiosvddpe-3v3-supplyqcom,4ln-config-selclock-output-names#hwlock-cellsoperating-points-v2qcom,gmu#cooling-cellsmemory-regionfirmware-nameopp-hzopp-levelopp-peak-kBpsqcom,qmp#iommu-cells#global-interrupts#sound-dai-cellssound-name-prefixlabelqcom,din-portsqcom,dout-portsqcom,ports-sintervalqcom,ports-offset1qcom,ports-offset2qcom,ports-hstartqcom,ports-hstopqcom,ports-word-lengthqcom,ports-block-pack-modeqcom,ports-block-group-countqcom,ports-lane-controlreset-gpiosvdd-1p8-supplyvdd-io-supplyqcom,port-mappingqcom,rx-port-mappingqcom,ports-sinterval-lowqcom,tx-port-mappingvdd-micb-supplyqcom,dmic-sample-rategpio-controller#gpio-cellsgpio-rangespinsfunctiondrive-strengthslew-ratebias-disablebias-bus-holdoutput-highinput-enableoutput-lowsnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,usb3_lpm_capabledr_modemaximum-speedassigned-clock-parentsdata-laneslink-frequenciesenable-gpiospower-supplyqcom,pdc-rangesqcom,eeqcom,channellinux,codebits#pwm-cellspower-sourceinput-disableoutput-enablevdd18-supplyvdd3-supplywakeup-parentgpio-reserved-rangesbias-pull-up#redistributor-regionsredistributor-stridemsi-controller#msi-cellsqcom,tcs-offsetqcom,drv-idqcom,tcs-configqcom,pmic-idvdd-bob1-supplyvdd-bob2-supplyvdd-l1-l4-l10-supplyvdd-l2-l13-l14-supplyvdd-l5-l16-supplyvdd-l6-l7-supplyvdd-l8-l9-supplyvdd-l12-supplyvdd-l15-supplyvdd-l17-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-initial-modevdd-l1-supplyvdd-l2-supplyvdd-l3-supplyvdd-s4-supplyvdd-s1-supplyvdd-s2-supplyvdd-s5-supplyframe-numberqcom,smem-statesqcom,smem-state-namesqcom,glink-channelsqcom,non-secure-domainqcom,domainqcom,intentsqcom,protection-domainthermal-sensorstemperaturehysteresispolling-delay-passiveserial0qcom,micbias1-microvoltqcom,micbias2-microvoltqcom,micbias3-microvoltqcom,micbias4-microvoltqcom,mbhc-buttons-vthreshold-microvoltqcom,mbhc-headset-vthreshold-microvoltqcom,mbhc-headphone-vthreshold-microvoltqcom,rx-deviceqcom,tx-devicevdd-buck-supplyvdd-rxtx-supplyvdd-mic-bias-supplylinux,input-typewakeup-event-actionorientation-gpiospower-roledata-roleaudio-routinglink-namesound-dairegulator-always-onregulator-boot-ongpioenable-active-high t8(( L ,Lenovo Yoga Slim 7x!2lenovo,yoga-slim7xqcom,x1e80100chosenclocksxo-board 2fixed-clock=MZsleep-clk 2fixed-clock=}MZ+bi-tcxo-div2-clk2fixed-factor-clockMbitZ*bi-tcxo-ao-div2-clk2fixed-factor-clockMbitZcpus cpu@0~cpu 2qcom,oryonpscipsciZl2-cache2cacheZcpu@100~cpu 2qcom,oryonpscipsciZcpu@200~cpu 2qcom,oryonpscipsciZcpu@300~cpu 2qcom,oryonpscipsciZcpu@10000~cpu 2qcom,oryonpsci  psciZl2-cache2cacheZ cpu@10100~cpu 2qcom,oryonpsci  psciZcpu@10200~cpu 2qcom,oryonpsci  psciZcpu@10300~cpu 2qcom,oryonpsci  psciZcpu@20000~cpu 2qcom,oryonpscipsciZl2-cache2cacheZcpu@20100~cpu 2qcom,oryonpscipsciZcpu@20200~cpu 2qcom,oryonpscipsciZcpu@20300~cpu 2qcom,oryonpscipsciZcpu-mapcluster0core0core1core2core3cluster1core0core1core2core3cluster2core0core1core2core3idle-statespscicpu-sleep-02arm,idle-state ret0AQXZdomain-idle-statescluster-sleep-02domain-idle-state l2-retD0^AQ Z%cluster-sleep-12domain-idle-state  ret-pll-offT0AQXZ&firmwarescm2qcom,scm-x1e80100qcom,scmb interconnect-02qcom,x1e80100-clk-virtp!Z5interconnect-12qcom,x1e80100-mc-virtp!Z memory@80000000~memorypmu2arm,armv8-pmuv3 psci 2arm,psci-1.0smcpower-domain-cpu0"Zpower-domain-cpu1"Zpower-domain-cpu2"Zpower-domain-cpu3"Zpower-domain-cpu4#Z power-domain-cpu5#Z power-domain-cpu6#Z power-domain-cpu7#Z power-domain-cpu8$Zpower-domain-cpu9$Zpower-domain-cpu10$Zpower-domain-cpu11$Zpower-domain-cpu-cluster0%&'Z"power-domain-cpu-cluster1%&'Z#power-domain-cpu-cluster2%&'Z$power-domain-systemZ'reserved-memory gunyah-hyp@80000000hyp-elf-package@80800000 ncc@80a00000@cpucp-log@80e00000cpucp@80e40000Treserved-region@813800008tags-region@81400000@xbl-dtlog@81a00000xbl-ramdump@81a40000aop-image@81c00000aop-cmd-db@81c60000 2qcom,cmd-dbaop-config@81c80000tme-crash-dump@81ca0000tme-log@81ce0000@uefi-log@81ce4000@secdata-apss@81cff000pdp-ns-shared@81e00000gpu-prr@81f00000tpm-control@81f10000usb-ucsi-shared@81f20000pld-pep@81f30000`pld-gmu@81f36000`pld-pdp@81f37000ptz-stat@82700000pxbl-tmp-buffer@82800000adsp-rpc-remote-heap@84b00000spu-secure-shared-memory@853000000adsp-boot-dtb@866c0000lspss-region@86700000p@adsp-boot@86b00000video@87700000ppadspslpi@87e00000Zq6-adsp-dtb@8b800000Zcdsp@8b900000Z q6-cdsp-dtb@8d900000Z gpu-microcode@8d9fe000 Zcvp@8da00000pcamera@8e100000av1-encoder@8e900000preserved-region@8f000000wpss@8fa00000q6-wpss-dtb@913000000xbl-sc@d8000000reserved-region@d8040000 qtee@d80e0000Rta@d8600000`tags@e1000000jllcc-lpi@ff800000`smem@ffe00000 2qcom,smem (linux,cma2shared-dma-poolsmp2p-adsp 2qcom,smp2p) )!0master-kernel@master-kernelPZ slave-kernel @slave-kernelg|Zsmp2p-cdsp 2qcom,smp2p) )^!0master-kernel@master-kernelPZslave-kernel @slave-kernelg|Z soc@0 2simple-bus clock-controller@1000002qcom,x1e80100-gcc 4b*+,-./012MZ4mailbox@4080002qcom,x1e80100-ipccqcom,ipcc@ g|Z)dma-controller@800000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dma > 36 disabledZ8geniqup@8c00002qcom,geni-se-qup b44 m-ahbs-ahb 3# okayi2c@8800002qcom,geni-i2c@ (b4seHb5567 qup-corequp-configqup-memory 88 txrx9 default  disabledspi@8800002qcom,geni-spi@ (b4seHb5567 qup-corequp-configqup-memory 88 txrx:; default  disabledi2c@8840002qcom,geni-i2c@@ )b4seHb5567 qup-corequp-configqup-memory 88 txrx< default  disabledspi@8840002qcom,geni-spi@@ )b4seHb5567 qup-corequp-configqup-memory 88 txrx=> default  disabledi2c@8880002qcom,geni-i2c@ *b4seHb5567 qup-corequp-configqup-memory 88 txrx? default  disabledspi@8880002qcom,geni-spi@ *b4seHb5567 qup-corequp-configqup-memory 88 txrx@A default  disabledi2c@88c0002qcom,geni-i2c@ +b4seHb5567 qup-corequp-configqup-memory 88 txrxB default  disabledspi@88c0002qcom,geni-spi@ +b4seHb5567 qup-corequp-configqup-memory 88 txrxCD default  disabledi2c@8900002qcom,geni-i2c@ ,b4seHb5567 qup-corequp-configqup-memory 88 txrxE default  disabledspi@8900002qcom,geni-spi@ ,b4seHb5567 qup-corequp-configqup-memory 88 txrxFG default  disabledi2c@8940002qcom,geni-i2c@@ -b4seHb5567 qup-corequp-configqup-memory 88 txrxH default  disabledspi@8940002qcom,geni-spi@@ -b4seHb5567 qup-corequp-configqup-memory 88 txrxIJ default  disabledserial@8940002qcom,geni-uart@@ -b4se0b5567qup-corequp-configK default disabledi2c@8980002qcom,geni-i2c@ b4seHb5567 qup-corequp-configqup-memory 88 txrxL default  disabledspi@8980002qcom,geni-spi@ b4seHb5567 qup-corequp-configqup-memory 88 txrxMN default  disabledi2c@89c0002qcom,geni-i2c@ b4seHb5567 qup-corequp-configqup-memory 88 txrxO default  disabledspi@89c0002qcom,geni-spi@ b4seHb5567 qup-corequp-configqup-memory 88 txrxPQ default  disableddma-controller@a00000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dma      > 36 disabledZSgeniqup@ac00002qcom,geni-se-qup b44 m-ahbs-ahb 3# okayi2c@a800002qcom,geni-i2c@  b4seHb5567R qup-corequp-configqup-memory SS txrxT default okay=touchscreen@14 2hid-over-i2c. U3V defaultspi@a800002qcom,geni-spi@  b4seHb5567R qup-corequp-configqup-memory SS txrxWX default  disabledi2c@a840002qcom,geni-i2c@@ !b4seHb5567R qup-corequp-configqup-memory SS txrxY default  disabledspi@a840002qcom,geni-spi@@ !b4seHb5567R qup-corequp-configqup-memory SS txrxZ[ default  disabledi2c@a880002qcom,geni-i2c@ "b4seHb5567R qup-corequp-configqup-memory SS txrx\ default  disabledspi@a880002qcom,geni-spi@ "b4seHb5567R qup-corequp-configqup-memory SS txrx]^ default  disabledi2c@a8c0002qcom,geni-i2c@ #b4seHb5567R qup-corequp-configqup-memory SS txrx_ default  disabledspi@a8c0002qcom,geni-spi@ #b4seHb5567R qup-corequp-configqup-memory SS txrx`a default  disabledi2c@a900002qcom,geni-i2c@ $b4seHb5567R qup-corequp-configqup-memory SS txrxb default  disabledspi@a900002qcom,geni-spi@ $b4seHb5567R qup-corequp-configqup-memory SS txrxcd default  disabledi2c@a940002qcom,geni-i2c@@ %b4seHb5567R qup-corequp-configqup-memory SS txrxe default  disabledspi@a940002qcom,geni-spi@@ %b4seHb5567R qup-corequp-configqup-memory SS txrxfg default  disabledi2c@a980002qcom,geni-i2c@ &b4seHb5567R qup-corequp-configqup-memory SS txrxh default  disabledspi@a980002qcom,geni-spi@ &b4seHb5567R qup-corequp-configqup-memory SS txrxij default  disabledi2c@a9c0002qcom,geni-i2c@ 'b4seHb5567R qup-corequp-configqup-memory SS txrxk default  disabledspi@a9c0002qcom,geni-spi@ 'b4seHb5567R qup-corequp-configqup-memory SS txrxlm default  disableddma-controller@b00000*2qcom,x1e80100-gpi-dmaqcom,sm6350-gpi-dmaLMNOPQRSTUVW > 3V disabledZngeniqup@bc00002qcom,geni-se-qup b44 m-ahbs-ahb 3C okayi2c@b800002qcom,geni-i2c@ ub4seHb5567 qup-corequp-configqup-memory nn txrxo default okay=touchpad@2c 2hid-over-i2c,.  Up default=keyboard@3a 2hid-over-i2c:. UCq default=spi@b800002qcom,geni-spi@ ub4seHb5567 qup-corequp-configqup-memory nn txrxrs default  disabledi2c@b840002qcom,geni-i2c@@ Gb4seHb5567 qup-corequp-configqup-memory nn txrxt default  disabledspi@b840002qcom,geni-spi@@ Gb4seHb5567 qup-corequp-configqup-memory nn txrxuv default  disabledi2c@b880002qcom,geni-i2c@ Hb4seHb5567 qup-corequp-configqup-memory nn txrxw default  disabledserial@b880002qcom,geni-uart@ Hb4se0b5567qup-corequp-configx default disabledspi@b880002qcom,geni-spi@ Hb4seHb5567 qup-corequp-configqup-memory nn txrxyz default  disabledi2c@b8c0002qcom,geni-i2c@ Ib4seHb5567 qup-corequp-configqup-memory nn txrx{ default  disabledspi@b8c0002qcom,geni-spi@ Ib4seHb5567 qup-corequp-configqup-memory nn txrx|} default  disabledi2c@b900002qcom,geni-i2c@ Jb4seHb5567 qup-corequp-configqup-memory nn txrx~ default  disabledspi@b900002qcom,geni-spi@ Jb4seHb5567 qup-corequp-configqup-memory nn txrx default  disabledi2c@b940002qcom,geni-i2c@@ Kb4seHb5567 qup-corequp-configqup-memory nn txrx default  disabledspi@b940002qcom,geni-spi@@ Kb4seHb5567 qup-corequp-configqup-memory nn txrx default  disabledi2c@b980002qcom,geni-i2c@ b4seHb5567 qup-corequp-configqup-memory nn txrx default  disabledspi@b980002qcom,geni-spi@ b4seHb5567 qup-corequp-configqup-memory nn txrx default  disabledi2c@b9c0002qcom,geni-i2c@ b4seHb5567 qup-corequp-configqup-memory nn txrx default  disabledspi@b9c0002qcom,geni-spi@ b4seHb5567 qup-corequp-configqup-memory nn txrx default  disabledthermal-sensor@c271000"2qcom,x1e80100-tsensqcom,tsens-v2 ' " Kuplowcritical[iZthermal-sensor@c272000"2qcom,x1e80100-tsensqcom,tsens-v2 '  "0Kuplowcritical[iZthermal-sensor@c273000"2qcom,x1e80100-tsensqcom,tsens-v2 '0 "@Kuplowcritical[iZthermal-sensor@c274000"2qcom,x1e80100-tsensqcom,tsens-v2 '@ "PKuplowcritical[iZphy@fd300082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy0Tbref46okayZphy@fd50002qcom,x1e80100-qmp-usb3-dp-phyP@ b444auxrefcom_auxusb3_pipe44D4O phycommonMokayZ/ports port@0endpointZport@1endpointZport@2endpointZphy@fd900082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTbref47okayZphy@fda0002qcom,x1e80100-qmp-usb3-dp-phy@ b4 4"4#auxrefcom_auxusb3_pipe44E4P phycommonMokayZ0ports port@0endpointZport@1endpointZport@2endpointZphy@fde00082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTbref48okayZphy@fdf0002qcom,x1e80100-qmp-usb3-dp-phy@ b4$4&4'auxrefcom_auxusb3_pipe44F4Q phycommonMokayZ1ports port@0endpointZ!port@1endpointZport@2endpointZinterconnect@15000002qcom,x1e80100-cnoc-mainPD!pZinterconnect@16000002qcom,x1e80100-cnoc-cfg`f!pZ7interconnect@16800002qcom,x1e80100-system-noch!pinterconnect@16c00002qcom,x1e80100-pcie-south-anoclЀ!pZinterconnect@16d00002qcom,x1e80100-pcie-center-anocmp!pinterconnect@16e00002qcom,x1e80100-aggre1-nocnD!pZRinterconnect@17000002qcom,x1e80100-aggre2-nocp!pZinterconnect@17400002qcom,x1e80100-pcie-north-anoct!pZinterconnect@17500002qcom,x1e80100-usb-center-anocu!pinterconnect@17600002qcom,x1e80100-usb-north-anocvp!pZinterconnect@17700002qcom,x1e80100-usb-south-anocw!pZinterconnect@17800002qcom,x1e80100-mmss-nocx!pZpci@1bf8000~pci2qcom,pcie-x1e80100`0p p@ppparfdbielbiatuconfigmhi 8p p0p00`EFGHIJ(Kmsi0msi1msi2msi3msi4msi5msi6msi7|:MKLM8b4v4x4y4444"<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axi[4vk$0b 6pcie-memcpu-pcie4"4#pcilink_down4 .pciephyokay U U defaultphy@1bfc000"2qcom,x1e80100-qmp-gen4x4-pcie-phy   0b4z4x 4{4}4$auxcfg_ahbrefrchngpipepipediv24%4$phyphy_nocsr[4{k4  Mpcie6a_pipe_clkokayZ.pci@1c00000~pci2qcom,pcie-x1e80100`0~~@~~0parfdbielbiatuconfigmhi 8~ ~0~00`^_`YVRMN(Kmsi0msi1msi2msi3msi4msi5msi6msi7|:MFGHI8b4k4m4n4t4u44!<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axi[4kk$0b 6 pcie-memcpu-pcie44pcilink_down4-pciephy disabledphy@1c06000"2qcom,x1e80100-qmp-gen3x2-pcie-phy` 0b4k4m4o4q4s$auxcfg_ahbrefrchngpipepipediv24 phy[4ok4Mpcie5_pipe_clk disabledZ-pci@1c08000~pci2qcom,pcie-x1e80100`0||@||parfdbielbiatuconfigmhi 8| |0|00`(Kmsi0msi1msi2msi3msi4msi5msi6msi7|:M8b4`4b4c4i4j44!<auxcfgbus_masterbus_slaveslave_q2anoc_aggrcnoc_sf_axi[4`k$0b 6 pcie-memcpu-pcie44pcilink_down4,pciephyokay U U defaultpcie@0~pci wifi@0 2pci17cb,1107LES790phy@1c0e000"2qcom,x1e80100-qmp-gen3x2-pcie-phy 0b4`4b4d4f4h$auxcfg_ahbrefrchngpipepipediv24phy[4dk4Mpcie4_pipe_clkokayZ,hwlock@1f400002qcom,tcsr-mutexZ(clock-controller@1fc00002qcom,x1e80100-tcsrsysconbMZgpu@3d00000!2qcom,adreno-43050c01qcom,adreno0#kgsl_3d0_reg_memorycx_memcx_dbgc ,)2b6 gfx-memokayzap-shaderA,Oqcom/x1e80100/LENOVO/83ED/qcdxkmsuc8380.mbnopp-table2operating-points-v2Zopp-1100000000]Adn opp-1000000000];dn۳opp-925000000]7"a@d@n۳opp-800000000]/dnopp-744000000],Xdn opp-687000000](dn|copp-550000000] Udn\kopp-390000000]>d@n-opp-300000000]d8n gmu@3d6a000'2qcom,adreno-gmu-x185.1qcom,adreno-gmu0֠P (gmursccgmu_pdc01Khfigmu8b4$47!ahbgmucxoaximemnochubdemetcxgx |Zopp-table2operating-points-v2Zopp-550000000] Udopp-220000000] d@clock-controller@3d900002qcom,x1e80100-gpuccb*4546MZiommu@3da0000B2qcom,x1e80100-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-5008>?@A b4748hlosbusifaceahbZinterconnect@264000002qcom,x1e80100-gem-noc&@1!pZ6interconnect@320c00002qcom,x1e80100-nsp-noc2 !pZ codec@6aa0000:2qcom,x1e80100-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(bDfgmclkmacrodcodecfsgenM wsa2-mclkWSA2Zsoundwire@6ab00002qcom,soundwire-v2.0.0biface WSA2 defaultswr_audio_cgcr ??    ( : K b }  okayZ(speaker@0,02sdw20217020400   WooferRight Z&speaker@0,12sdw20217020400   TweeterRight Z'codec@6ac000082qcom,x1e80100-lpass-rx-macroqcom,sm8550-lpass-rx-macro(b@fgmclkmacrodcodecfsgenMmclkZsoundwire@6ad00002qcom,soundwire-v2.0.0biface RX defaultswr_audio_cgcr      ( : K b }   disabledcodec@6ae000082qcom,x1e80100-lpass-tx-macroqcom,sm8550-lpass-tx-macro(b9fgmclkmacrodcodecfsgenMmclkZcodec@6b00000:2qcom,x1e80100-lpass-wsa-macroqcom,sm8550-lpass-wsa-macro(bBfgmclkmacrodcodecfsgenMmclkWSAZsoundwire@6b100002qcom,soundwire-v2.0.0biface WSA defaultswr_audio_cgcr ??    ( : K b }  okayZ%speaker@0,02sdw20217020400   WooferLeft Z#speaker@0,12sdw20217020400   TweeterLeft Z$clock-controller@6b6c00062qcom,x1e80100-lpassaudioccqcom,sc8280xp-lpassaudioccMZsoundwire@6d300002qcom,soundwire-v2.0.0biface KcorewakeupTXswr_audio_cgcr default(:Kb}  disabledcodec@6d4400082qcom,x1e80100-lpass-va-macroqcom,sm8550-lpass-va-macro@$b9fgmclkmacrodcodecMfsgen defaultI>Zpinctrl@6e80000>2qcom,x1e80100-lpass-lpi-pinctrlqcom,sm8550-lpass-lpi-pinctrl %bfg coreaudio,<HZtx-swr-active-stateZclk-pinsTgpio0 Yswr_tx_clkbq{data-pins Tgpio1gpio2 Yswr_tx_databqrx-swr-active-stateZclk-pinsTgpio3 Yswr_rx_clkbq{data-pins Tgpio4gpio5 Yswr_rx_databqdmic01-default-stateZclk-pinsTgpio6 Ydmic1_clkbdata-pinsTgpio7 Ydmic1_databdmic23-default-stateZclk-pinsTgpio8 Ydmic2_clkbdata-pinsTgpio9 Ydmic2_databwsa-swr-active-stateZclk-pinsTgpio10 Ywsa_swr_clkbq{data-pinsTgpio11 Ywsa_swr_databqwsa2-swr-active-stateZclk-pinsTgpio15 Ywsa2_swr_clkbq{data-pinsTgpio16Ywsa2_swr_databqspkr-01-sd-n-active-stateTgpio12Ygpiob{Zspkr-23-sd-n-active-stateTgpio13Ygpiob{Zclock-controller@6ea0000,2qcom,x1e80100-lpassccqcom,sc8280xp-lpasscc MZinterconnect@7e400002qcom,x1e80100-lpass-ag-noc!pinterconnect@74000002qcom,x1e80100-lpass-lpiaon-noc@!pinterconnect@74300002qcom,x1e80100-lpass-lpicx-nocC!pZphy@88e000082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTb ref49 disabledZphy@88e100082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phyTbref44 disabledZphy@88e200082qcom,x1e80100-snps-eusb2-phyqcom,sm8550-snps-eusb2-phy Tbref45 disabledZphy@88e30002qcom,x1e80100-qmp-usb3-uni-phy0  b444auxrefcom_auxpipe4G4L phyphy_phy4Musb_mp_phy0_pipe_clk disabledZphy@88e50002qcom,x1e80100-qmp-usb3-uni-phyP  b444auxrefcom_auxpipe4H4M phyphy_phy4Musb_mp_phy1_pipe_clk disabledZusb@a0f88002qcom,x1e80100-dwc3qcom,dwc3 Hb444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sys[44k$ 4r:9 1Kpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44A0b 67%usb-ddrapps-usb= okayusb@a000000 2snps,dwc3  a 3 1usb2-phyusb3-phyhostports port@0endpointZ port@1endpointZusb@a2f88002qcom,x1e80100-dwc3qcom,dwc3 / Hb444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sys[44k$ (21&Kpwr_eventdp_hs_phy_irqdm_hs_phy_irq44=0b 67"usb-ddrapps-usb= disabledusb@a200000 2snps,dwc3   3 usb2-phy  high-speedports port@0endpointusb@a4f8800 2qcom,x1e80100-dwc3-mpqcom,dwc3 OHb444444 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sys[44k$ 9:58436578lKpwr_event_1pwr_event_2hs_phy_1hs_phy_2dp_hs_phy_1dm_hs_phy_1dp_hs_phy_2dm_hs_phy_2ss_phy_1ss_phy_244>0b 67&usb-ddrapps-usb=  disabledusb@a400000 2snps,dwc3 @ 3 3usb2-0usb3-0usb2-1usb3-1hostusb@a6f88002qcom,x1e80100-dwc3qcom,dwc3 oHb4444 44 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sys[44k$ 4s=1Kpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44?= okayusb@a600000 2snps,dwc3 ` c 3  /usb2-phyusb3-phyhostports port@0endpointZport@1endpointZusb@a8f88002qcom,x1e80100-dwc3qcom,dwc3 Hb44 444 4 444Rcfg_noccoreifacesleepmock_utminoc_aggrnoc_aggr_northnoc_aggr_southnoc_sys[4 4 k$ 4t< /1Kpwr_eventdp_hs_phy_irqdm_hs_phy_irqss_phy_irq44@0b 67$usb-ddrapps-usb= okayusb@a800000 2snps,dwc3  e 3` 0usb2-phyusb3-phyhostports port@0endpointZport@1endpointZdisplay-subsystem@ae000002qcom,x1e80100-mdss mdss Sb4&:Hb6   67mdp0-memmdp1-memcpu-cfg 3g| okayZdisplay-controller@ae010002qcom,x1e80100-dpu   mdpvbif(b4&=:Fnrt_busifacelutcorevsync2ports port@0endpointZport@4endpointZport@5endpointZport@6endpointZopp-table2operating-points-v2Zopp-200000000] opp-325000000]_@opp-375000000]Z opp-514000000]opp-575000000]"Edisplayport-controller@ae900002qcom,x1e80100-dpP      (b ;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel[//2/dp disabledports port@0endpointZport@1endpointZopp-table2operating-points-v2Zopp-160000000] hopp-270000000]߀opp-540000000] /opp-810000000]0Gdisplayport-controller@ae980002qcom,x1e80100-dpP      (b;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel[0020dp disabledports port@0endpointZport@1endpointZopp-table2operating-points-v2Zopp-160000000] hopp-270000000]߀opp-540000000] /opp-810000000]0Gdisplayport-controller@ae9a0002qcom,x1e80100-dpP     (b"$'(;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel[%)1121dp disabledports port@0endpointZport@1endpointZopp-table2operating-points-v2Zopp-160000000] hopp-270000000]߀opp-540000000] /opp-810000000]0Gdisplayport-controller@aea00002qcom,x1e80100-dpP     (b-/23;core_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel[042dpokayports port@0endpointZport@1endpoint. 9`=Av1Zopp-table2operating-points-v2Zopp-160000000] hopp-270000000]߀opp-540000000] /opp-810000000]0Gaux-buspanel&2samsung,atna45dc02samsung,atna33xc20 JW defaultportendpointZphy@aec2a002qcom,x1e80100-dp-phy@ * " & b" auxcfg_ahb2M disabledphy@aec5a002qcom,x1e80100-dp-phy@ Z R V Pb- auxcfg_ahb2MokayZclock-controller@af000002qcom,x1e80100-dispcc db*4%+//00112MZinterrupt-controller@b2200002qcom,x1e80100-pdcqcom,pdc "@dHd**/ 4ca  0|gZpower-management@c300000%2qcom,x1e80100-aoss-qmpqcom,aoss-qmp 0)) )MZsram@c3f00002qcom,rpmh-stats ?arbiter@c4000002qcom,x1e80100-spmi-pmic-arb0 @0 P@ Dcorechnlsobsrvrt| spmi@c42d000 B@ L cnfgintr Kperiph_irq g| pmic@02qcom,pm8550qcom,spmi-pmic pon@13002qcom,pmk8350-pon hlospbspwrkey2qcom,pmk8350-pwrkeytresin2qcom,pmk8350-resin disabledrtc@61002qcom,pmk8350-rtcab rtcalarmb reservednvram@71002qcom,spmi-sdamq  qreboot-reason@48Hgpio@8800!2qcom,pmk8550-gpioqcom,spmi-gpio,H<g|Zpwm2qcom,pmk8550-pwm disabledpmic@12qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  iZgpio@8800 2qcom,pm8550-gpioqcom,spmi-gpio,H <g|Zled-controller@ee00*2qcom,pm8550-flash-ledqcom,spmi-flash-led disabledpwm!2qcom,pm8550-pwmqcom,pm8350c-pwm disabledpmic@22qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  iZgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpio,H<g|Zpmic@32qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  iZgpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio,H <g|Zedp-bl-en-stateTgpio4YnormalZpmic@42qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  iZgpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio,H <g|Zpmic@52qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  iZgpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio,H <g|Zpmic@62qcom,pmc8380qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  iZgpio@8800!2qcom,pmc8380-gpioqcom,spmi-gpio,H <g|Zpmic@82qcom,pm8550qcom,spmi-pmic temp-alarm@a002qcom,spmi-temp-alarm  iZgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpio,H<g|Zpmic@92qcom,pm8550qcom,spmi-pmic  temp-alarm@a002qcom,spmi-temp-alarm  iZgpio@8800"2qcom,pm8550ve-gpioqcom,spmi-gpio,H<g|Zpmic@c2qcom,pm8010qcom,spmi-pmic  temp-alarm@24002qcom,spmi-temp-alarm$ $iZspmi@c432000 C @ M cnfgintr Kperiph_irq g| pmic@72qcom,smb2360qcom,spmi-pmic phy@fd002qcom,smb2360-eusb2-repeaterZpmic@a2qcom,smb2360qcom,spmi-pmic  phy@fd002qcom,smb2360-eusb2-repeaterZpmic@b2qcom,smb2360qcom,spmi-pmic  okayphy@fd002qcom,smb2360-eusb2-repeaterZpmic@c2qcom,smb2360qcom,spmi-pmic   disabledphy@fd002qcom,smb2360-eusb2-repeaterpinctrl@f1000002qcom,x1e80100-tlmm ,<g|HU",ZUqup-i2c0-data-clk-state Tgpio0gpio1 Yqup0_se0b Zoqup-i2c1-data-clk-state Tgpio4gpio5 Yqup0_se1b Ztqup-i2c2-data-clk-state Tgpio8gpio9 Yqup0_se2b Zwqup-i2c3-data-clk-stateTgpio12gpio13 Yqup0_se3b Z{qup-i2c4-data-clk-stateTgpio16gpio17 Yqup0_se4b Z~qup-i2c5-data-clk-stateTgpio20gpio21 Yqup0_se5b Zqup-i2c6-data-clk-stateTgpio24gpio25 Yqup0_se6b Zqup-i2c7-data-clk-stateTgpio14gpio15 Yqup0_se7b Zqup-i2c8-data-clk-stateTgpio32gpio33 Yqup1_se0b ZTqup-i2c9-data-clk-stateTgpio36gpio37 Yqup1_se1b ZYqup-i2c10-data-clk-stateTgpio40gpio41 Yqup1_se2b Z\qup-i2c11-data-clk-stateTgpio44gpio45 Yqup1_se3b Z_qup-i2c12-data-clk-stateTgpio48gpio49 Yqup1_se4b Zbqup-i2c13-data-clk-stateTgpio52gpio53 Yqup1_se5b Zequp-i2c14-data-clk-stateTgpio56gpio57 Yqup1_se6b Zhqup-i2c15-data-clk-stateTgpio54gpio55 Yqup1_se7b Zkqup-i2c16-data-clk-stateTgpio64gpio65 Yqup2_se0b Z9qup-i2c17-data-clk-stateTgpio68gpio69 Yqup2_se1b Z<qup-i2c18-data-clk-stateTgpio72gpio73 Yqup2_se2b Z?qup-i2c19-data-clk-stateTgpio76gpio77 Yqup2_se3b ZBqup-i2c20-data-clk-stateTgpio80gpio81 Yqup2_se4b ZEqup-i2c21-data-clk-stateTgpio84gpio85 Yqup2_se5b ZHqup-i2c22-data-clk-stateTgpio88gpio89 Yqup2_se6b ZLqup-i2c23-data-clk-stateTgpio86gpio87 Yqup2_se7b ZOqup-spi0-cs-stateTgpio3 Yqup0_se0b{Zsqup-spi0-data-clk-stateTgpio0gpio1gpio2 Yqup0_se0b{Zrqup-spi1-cs-stateTgpio7 Yqup0_se1b{Zvqup-spi1-data-clk-stateTgpio4gpio5gpio6 Yqup0_se1b{Zuqup-spi2-cs-stateTgpio11 Yqup0_se2b{Zzqup-spi2-data-clk-stateTgpio8gpio9gpio10 Yqup0_se2b{Zyqup-spi3-cs-stateTgpio15 Yqup0_se3b{Z}qup-spi3-data-clk-stateTgpio12gpio13gpio14 Yqup0_se3b{Z|qup-spi4-cs-stateTgpio19 Yqup0_se4b{Zqup-spi4-data-clk-stateTgpio16gpio17gpio18 Yqup0_se4b{Zqup-spi5-cs-stateTgpio23 Yqup0_se5b{Zqup-spi5-data-clk-stateTgpio20gpio21gpio22 Yqup0_se5b{Zqup-spi6-cs-stateTgpio27 Yqup0_se6b{Zqup-spi6-data-clk-stateTgpio24gpio25gpio26 Yqup0_se6b{Zqup-spi7-cs-stateTgpio13 Yqup0_se7b{Zqup-spi7-data-clk-stateTgpio14gpio15gpio12 Yqup0_se7b{Zqup-spi8-cs-stateTgpio35 Yqup1_se0b{ZXqup-spi8-data-clk-stateTgpio32gpio33gpio34 Yqup1_se0b{ZWqup-spi9-cs-stateTgpio39 Yqup1_se1b{Z[qup-spi9-data-clk-stateTgpio36gpio37gpio38 Yqup1_se1b{ZZqup-spi10-cs-stateTgpio43 Yqup1_se2b{Z^qup-spi10-data-clk-stateTgpio40gpio41gpio42 Yqup1_se2b{Z]qup-spi11-cs-stateTgpio47 Yqup1_se3b{Zaqup-spi11-data-clk-stateTgpio44gpio45gpio46 Yqup1_se3b{Z`qup-spi12-cs-stateTgpio51 Yqup1_se4b{Zdqup-spi12-data-clk-stateTgpio48gpio49gpio50 Yqup1_se4b{Zcqup-spi13-cs-stateTgpio55 Yqup1_se5b{Zgqup-spi13-data-clk-stateTgpio52gpio53gpio54 Yqup1_se5b{Zfqup-spi14-cs-stateTgpio59 Yqup1_se6b{Zjqup-spi14-data-clk-stateTgpio56gpio57gpio58 Yqup1_se6b{Ziqup-spi15-cs-stateTgpio53 Yqup1_se7b{Zmqup-spi15-data-clk-stateTgpio54gpio55gpio52 Yqup1_se7b{Zlqup-spi16-cs-stateTgpio67 Yqup2_se0b{Z;qup-spi16-data-clk-stateTgpio64gpio65gpio66 Yqup2_se0b{Z:qup-spi17-cs-stateTgpio71 Yqup2_se1b{Z>qup-spi17-data-clk-stateTgpio68gpio69gpio70 Yqup2_se1b{Z=qup-spi18-cs-stateTgpio75 Yqup2_se2b{ZAqup-spi18-data-clk-stateTgpio72gpio73gpio74 Yqup2_se2b{Z@qup-spi19-cs-stateTgpio79 Yqup2_se3b{ZDqup-spi19-data-clk-stateTgpio76gpio77gpio78 Yqup2_se3b{ZCqup-spi20-cs-stateTgpio83 Yqup2_se4b{ZGqup-spi20-data-clk-stateTgpio80gpio81gpio82 Yqup2_se4b{ZFqup-spi21-cs-stateTgpio87 Yqup2_se5b{ZJqup-spi21-data-clk-stateTgpio84gpio85gpio86 Yqup2_se5b{ZIqup-spi22-cs-stateTgpio91 Yqup2_se6b{ZNqup-spi22-data-clk-stateTgpio88gpio89gpio90 Yqup2_se6b{ZMqup-spi23-cs-stateTgpio85 Yqup2_se7b{ZQqup-spi23-data-clk-stateTgpio86gpio87gpio84 Yqup2_se7b{ZPqup-uart2-default-stateZxcts-pinsTgpio8 Yqup0_se2b{rts-pinsTgpio9 Yqup0_se2b{tx-pinsTgpio10 Yqup0_se2b{rx-pinsTgpio11 Yqup0_se2b{qup-uart21-default-stateZKtx-pinsTgpio86 Yqup2_se5b{rx-pinsTgpio87 Yqup2_se5b{edp-reg-en-stateTgpio70Ygpiob{Z*kybd-default-stateTgpio67Ygpio{Zqnvme-reg-en-stateTgpio18Ygpiob{Z+pcie4-default-stateZclkreq-n-pinsTgpio147 Ypcie4_clkb perst-n-pinsTgpio146Ygpiob{wake-n-pinsTgpio148Ygpiob pcie6a-default-stateZclkreq-n-pinsTgpio153 Ypcie6a_clkb perst-n-pinsTgpio152Ygpiob{wake-n-pinsTgpio154Ygpiob tpad-default-stateTgpio3Ygpio{Zpts0-default-stateZVint-n-pinsTgpio51Ygpio{reset-n-pinsTgpio48Ygpiobiommu@1500000012qcom,x1e80100-smmu-500qcom,smmu-500arm,mmu-500Aabcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ3interrupt-controller@17000000 2arm,gic-v3 0  |g  - Zmsi-controller@170400002arm,gic-v3-its B Q disabledrsc@175000002qcom,rpmh-rsc0PQRdrv-0drv-1drv-2$ \  l x apps_rsc'bcm-voter2qcom,bcm-voterZ!clock-controller2qcom,x1e80100-rpmh-clkbxoMZpower-controller2qcom,x1e80100-rpmhpdZ2opp-table2operating-points-v2Zopp-16dopp-48d0opp-52d4opp-56d8opp-60d<opp-64d@Zopp-80dPopp-128dZopp-144dopp-192dZopp-256dZopp-320d@Zopp-336dPopp-384dopp-416dregulators-02qcom,pm8550-rpmh-regulators b         # 2bob1 Avreg_bob1 P- hopp-1nq@opp-2n|opp-3nopp-4nȀopp-5n`@pmu@240b5400*2qcom,x1e80100-cpu-bwmonqcom,sdm845-bwmon$ T Eb66 pmu@240b6400*2qcom,x1e80100-cpu-bwmonqcom,sdm845-bwmon$ d Eb66 system-cache-controller@250000002qcom,x1e80100-llcc% % %@ %` % % % % & & llcc0_basellcc1_basellcc2_basellcc3_basellcc4_basellcc5_basellcc6_basellcc7_basellcc_broadcast_basellcc_broadcast_and_base  remoteproc@300000002qcom,x1e80100-adsp-pas0<#Kwdogfatalreadyhandoverstop-ackbxo22lcxlmxb A|   stopokayQOqcom/x1e80100/LENOVO/83ED/qcadsp8380.mbnqcom/x1e80100/LENOVO/83ED/adsp_dtbs.elfglink-edge) )lpass0fastrpc 2qcom,fastrpc -fastrpcglink-apps-dspadsp A compute-cb@32qcom,fastrpc-compute-cb33ccompute-cb@42qcom,fastrpc-compute-cb33dcompute-cb@52qcom,fastrpc-compute-cb33ecompute-cb@62qcom,fastrpc-compute-cb33fcompute-cb@72qcom,fastrpc-compute-cb33ggpr 2qcom,gpr -adsp_apps X d service@1 2qcom,q6apm qavs/audiomsm/adsp/audio_pdZ)bedais2qcom,q6apm-lpass-daisZ"dais2qcom,q6apm-dais33aservice@2 2qcom,q6prm qavs/audiomsm/adsp/audio_pdclock-controller2qcom,q6prm-lpass-clocksMZremoteproc@323000002qcom,x1e80100-cdsp-pas20@@B    #Kwdogfatalreadyhandoverstop-ackbxo22 2  cxmxcnspb  A  |  stopokayQOqcom/x1e80100/LENOVO/83ED/qccdsp8380.mbnqcom/x1e80100/LENOVO/83ED/cdsp_dtbs.elfglink-edge) )cdsp0fastrpc 2qcom,fastrpc -fastrpcglink-apps-dspcdsp A compute-cb@12qcom,fastrpc-compute-cb 3  compute-cb@22qcom,fastrpc-compute-cb 3  compute-cb@32qcom,fastrpc-compute-cb 3  compute-cb@42qcom,fastrpc-compute-cb 3  compute-cb@52qcom,fastrpc-compute-cb 3  compute-cb@62qcom,fastrpc-compute-cb 3  compute-cb@72qcom,fastrpc-compute-cb 3  compute-cb@82qcom,fastrpc-compute-cb 3  compute-cb@102qcom,fastrpc-compute-cb  3 compute-cb@112qcom,fastrpc-compute-cb  3 compute-cb@122qcom,fastrpc-compute-cb  3  compute-cb@132qcom,fastrpc-compute-cb  3  timer2arm,armv8-timer0   thermal-zonesaoss0-thermal tripstrip-point0 _ hotaoss0-critical H  criticalcpu0-0-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-0-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-1-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-1-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-2-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-2-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-3-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu0-3-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpuss0-top-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalcpuss0-btm-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalmem-thermal  tripstrip-point0 _ hotmem-critical H  criticalvideo-thermal   tripstrip-point0 H passiveaoss1-thermal tripstrip-point0 _ hotaoss0-critical H  criticalcpu1-0-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-0-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-1-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-1-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-2-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-2-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-3-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu1-3-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpuss1-top-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalcpuss1-btm-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalaoss2-thermal tripstrip-point0 _ hotaoss0-critical H  criticalcpu2-0-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-0-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-1-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-1-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-2-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-2-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-3-top-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpu2-3-btm-thermal  tripstrip-point0 _ passivetrip-point1 s passivecpu-critical   criticalcpuss2-top-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalcpuss2-btm-thermal  tripstrip-point0 _ hotcpuss2-critical H  criticalaoss3-thermal tripstrip-point0 _ hotaoss0-critical H  criticalnsp0-thermal tripstrip-point0 _ hotnsp0-critical H  criticalnsp1-thermal tripstrip-point0 _ hotnsp1-critical H  criticalnsp2-thermal tripstrip-point0 _ hotnsp2-critical H  criticalnsp3-thermal tripstrip-point0 _ hotnsp3-critical H  criticalgpuss-0-thermal  tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-1-thermal  tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-2-thermal  tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-3-thermal  tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-4-thermal   tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-5-thermal   tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-6-thermal   tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalgpuss-7-thermal   tripstrip-point0 L passivetrip-point1 _ hottrip-point2 H  criticalcamera0-thermal  tripstrip-point0 _ hotcamera0-critical 8  criticalcamera1-thermal tripstrip-point0 _ hotcamera0-critical 8  criticalpm8550-thermal d tripstrip0 s passivetrip1 8 hotpm8550ve-2-thermal d tripstrip0 s passivetrip1 8 hotpmc8380-3-thermal d tripstrip0 s passivetrip1 8 hotpmc8380-4-thermal d tripstrip0 s passivetrip1 8 hotpmc8380-5-thermal d tripstrip0 s passivetrip1 8 hotpmc8380-6-thermal d tripstrip0 s passivetrip1 8 hotpm8550ve-8-thermal d tripstrip0 s passivetrip1 8 hotpm8550ve-9-thermal d tripstrip0 s passivetrip1 8 hotpm8010-thermal d tripstrip0 s passivetrip1 8 hotpmic-glink@2qcom,x1e80100-pmic-glinkqcom,sm8550-pmic-glinkqcom,pmic-glink $ UyU{U}connector@02usb-c-connector dual dualports port@0endpointZport@1endpointZconnector@12usb-c-connector dual dualports port@0endpointZport@1endpointZconnector@22usb-c-connector dual dualports port@0endpoint Zport@1endpoint!Zsound2qcom,x1e80100-sndcard,X1E80100-LENOVO-Yoga-Slim7x WooferLeft INWSA WSA_SPK1 OUTTweeterLeft INWSA WSA_SPK2 OUTWooferRight INWSA2 WSA_SPK2 OUTTweeterRight INWSA2 WSA_SPK2 OUTwsa-dai-link WSA Playbackcpu "icodec0 #$%&'(platform )va-dai-link VA Capturecpu "ncodec platform )vph-pwr-regulator2regulator-fixed Avph_pwr P8u  h8u   "Zregulator-edp-3p32regulator-fixed AVREG_EDP_3P3 P2Z h2Z 4UF 9* default "Zregulator-nvme2regulator-fixed AVREG_NVME_3P3 P2Z h2Z 4U 9+ default "Z interrupt-parent#address-cells#size-cellsmodelcompatibleclock-frequency#clock-cellsphandleclocksclock-multclock-divdevice_typeregenable-methodnext-level-cachepower-domainspower-domain-namescpu-idle-statescache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-usinterconnects#interconnect-cellsqcom,bcm-votersinterrupts#power-domain-cellsdomain-idle-statesrangesno-maphwlockssizereusablelinux,cma-defaultinterrupts-extendedmboxesqcom,smemqcom,local-pidqcom,remote-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-ranges#reset-cells#mbox-cellsdma-channelsdma-channel-mask#dma-cellsiommusstatusclock-namesinterconnect-namesdmasdma-namespinctrl-0pinctrl-nameshid-descr-addrwakeup-sourceinterrupt-names#qcom,sensors#thermal-sensor-cells#phy-cellsresetsvdd-supplyvdda12-supplyphysreset-namesorientation-switchvdda-phy-supplyvdda-pll-supplyremote-endpointreg-namesbus-rangedma-coherentlinux,pci-domainnum-lanesinterrupt-map-maskinterrupt-mapassigned-clocksassigned-clock-ratesrequired-oppsphy-namesperst-gpioswake-gpiosvddpe-3v3-supplyqcom,4ln-config-selclock-output-namesqcom,ath12k-calibration-variant#hwlock-cellsoperating-points-v2qcom,gmu#cooling-cellsmemory-regionfirmware-nameopp-hzopp-levelopp-peak-kBpsqcom,qmp#iommu-cells#global-interrupts#sound-dai-cellssound-name-prefixlabelqcom,din-portsqcom,dout-portsqcom,ports-sintervalqcom,ports-offset1qcom,ports-offset2qcom,ports-hstartqcom,ports-hstopqcom,ports-word-lengthqcom,ports-block-pack-modeqcom,ports-block-group-countqcom,ports-lane-controlreset-gpiosvdd-1p8-supplyvdd-io-supplyqcom,port-mappingqcom,ports-sinterval-lowvdd-micb-supplyqcom,dmic-sample-rategpio-controller#gpio-cellsgpio-rangespinsfunctiondrive-strengthslew-ratebias-disablebias-bus-holdoutput-highinput-enableoutput-lowsnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,usb3_lpm_capabledr_modemaximum-speedassigned-clock-parentsdata-laneslink-frequenciesenable-gpiospower-supplyqcom,pdc-rangesqcom,eeqcom,channellinux,codebits#pwm-cellspower-sourceinput-disableoutput-enablevdd18-supplyvdd3-supplywakeup-parentgpio-reserved-rangesbias-pull-up#redistributor-regionsredistributor-stridemsi-controller#msi-cellsqcom,tcs-offsetqcom,drv-idqcom,tcs-configqcom,pmic-idvdd-bob1-supplyvdd-bob2-supplyvdd-l1-l4-l10-supplyvdd-l2-l13-l14-supplyvdd-l5-l16-supplyvdd-l6-l7-supplyvdd-l8-l9-supplyvdd-l12-supplyvdd-l15-supplyvdd-l17-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-initial-modevdd-l1-supplyvdd-l2-supplyvdd-l3-supplyvdd-s4-supplyvdd-s1-supplyvdd-s2-supplyvdd-s5-supplyframe-numberqcom,smem-statesqcom,smem-state-namesqcom,glink-channelsqcom,non-secure-domainqcom,domainqcom,intentsqcom,protection-domainthermal-sensorstemperaturehysteresispolling-delay-passiveorientation-gpiospower-roledata-roleaudio-routinglink-namesound-dairegulator-always-onregulator-boot-ongpioenable-active-high 8( =firefly,px30-jd4-core-mbfirefly,px30-jd4-corerockchip,px30 +/7Firefly Core-PX30-JD4 on MB-JD4-PX30 baseboardaliases=/i2c@ff180000B/i2c@ff190000G/i2c@ff1a0000L/i2c@ff1b0000Q/serial@ff030000Y/serial@ff158000a/serial@ff160000i/serial@ff168000q/serial@ff170000y/serial@ff178000/spi@ff1d0000/spi@ff1d8000/ethernet@ff360000/mmc@ff370000/mmc@ff380000/mmc@ff390000cpus+cpu@0cpuarm,cortex-a35psciZ!cpu@1cpuarm,cortex-a35psciZ!cpu@2cpuarm,cortex-a35psciZ! cpu@3cpuarm,cortex-a35psciZ! idle-states)pscicpu-sleeparm,idle-state6G^xo!cluster-sleeparm,idle-state6G^o!opp-table-0operating-points-v2!opp-600000000#F ~~p@opp-8160000000, p@opp-1008000000< p@opp-1200000000G   p@opp-1296000000M?d ppp@arm-pmuarm,cortex-a35-pmu0defg display-subsystemrockchip,display-subsystem  disabledexternal-gmac-clock fixed-clock gmac_clkinpsci arm,psci-1.0smctimerarm,armv8-timer0   thermal-zonessoc-thermal(>L^ tripstrip-point-0npzpassivetrip-point-1nLzpassive!soc-critn8z criticalcooling-mapsmap0 gpu-thermal(d>^ tripsgpu-thresholdnpzpassivegpu-targetnLzpassive!gpu-critn8z criticalcooling-mapsmap0 xin24m fixed-clockn6xin24m!npower-management@ff000000$rockchip,px30-pmusysconsimple-mfdpower-controllerrockchip,px30-power-controller+!ppower-domain@5<power-domain@7;power-domain@9  C@?power-domain@10 @978:power-domain@11 Kpower-domain@12 XD56power-domain@13 (3 !"#power-domain@14I$syscon@ff010000'rockchip,px30-pmugrfsysconsimple-mfd+!io-domains$rockchip,px30-pmu-io-voltage-domainokay%%reboot-modesyscon-reboot-modeRBRB RBRBRBserial@ff030000$rockchip,px30-uartsnps,dw-apb-uart &&(baudclkapb_pclk4''9txrxCMZdefault h()* disabledi2s@ff060000rockchip,px30-i2s-tdm  (mclk_txmclk_rxhclk4''9txrxr+ tx-mrx-mZdefault0h,-./01234567 disabledi2s@ff070000&rockchip,px30-i2srockchip,rk3066-i2s  (i2s_clki2s_hclk4''9txrxZdefaulth89:; disabledi2s@ff080000&rockchip,px30-i2srockchip,rk3066-i2s (i2s_clki2s_hclk4''9txrxZdefaulth<=>? disabledinterrupt-controller@ff131000 arm,gic-400@ @ `   !syscon@ff140000$rockchip,px30-grfsysconsimple-mfd+!+io-domains rockchip,px30-io-voltage-domainokay@AB%B@lvdsrockchip,px30-lvdsC"dphyr+,lvds disabledports+port@0+endpoint@0<D!endpoint@1<E!port@1serial@ff158000$rockchip,px30-uartsnps,dw-apb-uart I(baudclkapb_pclk4''9txrxCMZdefault hFGH disabledserial@ff160000$rockchip,px30-uartsnps,dw-apb-uart J(baudclkapb_pclk4''9txrxCMZdefaulthIokayserial@ff168000$rockchip,px30-uartsnps,dw-apb-uart K(baudclkapb_pclk4''9txrxCMZdefault hJKL disabledserial@ff170000$rockchip,px30-uartsnps,dw-apb-uart L(baudclkapb_pclk4'' 9txrxCMZdefault hMNO disabledserial@ff178000$rockchip,px30-uartsnps,dw-apb-uart M(baudclkapb_pclk4' ' 9txrxCMZdefault hPQR disabledi2c@ff180000&rockchip,px30-i2crockchip,rk3399-i2cN (i2cpclk ZdefaulthS+okaypmic@20rockchip,rk809  TZdefaulthULmxin32k{VVVVWWWWVregulatorsDCDC_REG1vdd_log~p&q;O!regulator-state-memay~DCDC_REG2vdd_arm~p&q;O!regulator-state-memy~DCDC_REG3vcc_ddr;Oregulator-state-memaDCDC_REG4vcc_3v0--;O!Bregulator-state-memay-DCDC_REG5 vcc3v3_sys2Z2Z;O!Wregulator-state-memay2ZLDO_REG1vcc_1v0B@B@;Oregulator-state-memayB@LDO_REG2vcc_1v8w@w@;O!@regulator-state-memayw@LDO_REG3vdd_1v0B@B@;Oregulator-state-memayB@LDO_REG4 vcc3v0_pmu--;O!%regulator-state-memay-LDO_REG5 vccio_sdw@2Z;O!Aregulator-state-memay2ZLDO_REG6vcc_sd2Z2ZO!zregulator-state-memay2ZLDO_REG7 vcc2v8_dvp**Oregulator-state-memy*LDO_REG8 vcc1v8_dvpw@w@Oregulator-state-memayw@LDO_REG9 vcc1v5_dvp``Oregulator-state-memy`SWITCH_REG1 vcc3v3_lcdOSWITCH_REG2 vcc5v0_host;Oi2c@ff190000&rockchip,px30-i2crockchip,rk3399-i2cO (i2cpclk ZdefaulthX+ disabledi2c@ff1a0000&rockchip,px30-i2crockchip,rk3399-i2cP (i2cpclk  ZdefaulthY+ disabledi2c@ff1b0000&rockchip,px30-i2crockchip,rk3399-i2c Q (i2cpclk  ZdefaulthZ+ disabledspi@ff1d0000&rockchip,px30-spirockchip,rk3066-spi $U(spiclkapb_pclk4' ' 9txrxZdefaulth[\]^+ disabledspi@ff1d8000&rockchip,px30-spirockchip,rk3066-spi %V(spiclkapb_pclk4''9txrxZdefaulth_`abc+ disabledwatchdog@ff1e0000rockchip,px30-wdtsnps,dw-wdt[ % disabledpwm@ff200000&rockchip,px30-pwmrockchip,rk3328-pwm "S (pwmpclkZdefaulthd disabledpwm@ff200010&rockchip,px30-pwmrockchip,rk3328-pwm "S (pwmpclkZdefaulthe disabledpwm@ff200020&rockchip,px30-pwmrockchip,rk3328-pwm "S (pwmpclkZdefaulthf disabledpwm@ff200030&rockchip,px30-pwmrockchip,rk3328-pwm 0"S (pwmpclkZdefaulthg disabledpwm@ff208000&rockchip,px30-pwmrockchip,rk3328-pwm #T (pwmpclkZdefaulthh disabledpwm@ff208010&rockchip,px30-pwmrockchip,rk3328-pwm #T (pwmpclkZdefaulthi disabledpwm@ff208020&rockchip,px30-pwmrockchip,rk3328-pwm #T (pwmpclkZdefaulthj disabledpwm@ff208030&rockchip,px30-pwmrockchip,rk3328-pwm 0#T (pwmpclkZdefaulthk disabledtimer@ff210000*rockchip,px30-timerrockchip,rk3288-timer! Y& (pclktimerdma-controller@ff240000arm,pl330arm,primecell$@ (apb_pclk!'tsadc@ff280000rockchip,px30-tsadc( $,P,X(tsadcapb_pclk tsadc-apbr+Zinitdefaultsleephlm(l2okayH_! saradc@ff288000,rockchip,px30-saradcrockchip,rk3399-saradc( Tz-W(saradcapb_pclk saradc-apbokay@!nvmem@ff290000rockchip,px30-otp)@/Za(otpapb_pclkphyphy+id@7cpu-leakage@17performance@1eclock-controller@ff2b0000rockchip,px30-cru+ n& (xin24mgpllr+8@IFq рр !clock-controller@ff2bc000rockchip,px30-pmucru+n(xin24mr+&&& G!&syscon@ff2c0000,rockchip,px30-usb2phy-grfsysconsimple-mfd,+usb2phy@100rockchip,px30-usb2phy & (phyclko usb480m_phyokay!ohost-port D linestateokay!rotg-port$BA@otg-bvalidotg-idlinestateokay!qphy@ff2e0000rockchip,px30-dsi-dphy.& E (refpclk>apbp  disabled!Cphy@ff2f0000rockchip,px30-csi-dphy/@F(pclkp /apbr+ disabled!usb@ff3000000rockchip,px30-usbrockchip,rk3066-usbsnps,dwc20 >(otgotg@ q "usb2-phypokayusb@ff340000 generic-ehci4 <r"usbpokayusb@ff350000 generic-ohci5 =r"usbpokayethernet@ff360000rockchip,px30-gmac6 +macirq@>??@ACL[(stmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macclk_mac_speedr+"rmiiZdefaulthstp ^ stmmacethokay+output8B Cu S iPPmmc@ff370000.rockchip,px30-dw-mshcrockchip,rk3288-dw-mshc7@ 6 ;CD(biuciuciu-driveciu-sample~рZdefaulthvwxypokay  zAmmc@ff380000.rockchip,px30-dw-mshcrockchip,rk3288-dw-mshc8@ 7 8EF(biuciuciu-driveciu-sample~рZdefault h{|}p okay$:H~mmc@ff390000.rockchip,px30-dw-mshcrockchip,rk3288-dw-mshc9@ 5 9GH(biuciuciu-driveciu-sample~рZdefault hp okayS:H B@spi@ff3a0000 rockchip,sfc:@ 8:(clk_sfchclk_sfc hZdefaultp  disablednand-controller@ff3b0000rockchip,px30-nfc;@ 97(ahbnfc7рZdefault hp  disabledopp-table-1operating-points-v2!opp-200000000 ~opp-300000000opp-400000000ׄopp-4800000008*gpu@ff400000$rockchip,px30-maliarm,mali-bifrost@@$/.- jobmmugpuIpokayb!video-codec@ff442000rockchip,px30-vpuD PO vepuvdpu (aclkhclknp iommu@ff442800rockchip,iommuD( Q (aclkifaceup !dsi@ff450000(rockchip,px30-mipi-dsisnps,dw-mipi-dsiE KD(pclkC"dphyp =apbr++ disabledports+port@0+endpoint@0<!endpoint@1<!port@1vop@ff460000rockchip,px30-vop-bigF M(aclk_vopdclk_vophclk_vop345 axiahbdclknp  disabledport+! endpoint@0<!endpoint@1<!Diommu@ff460f00rockchip,iommuF M (aclkifacep u disabled!vop@ff470000rockchip,px30-vop-litG N(aclk_vopdclk_vophclk_vop789 axiahbdclknp  disabledport+! endpoint@0<!endpoint@1<!Eiommu@ff470f00rockchip,iommuG N (aclkifacep u disabled!isp@ff4a0000rockchip,px30-cif-ispJ$FIJ ispmimipi 3_(ispaclkhclkpclkn"dphyp  disabledports+port@0+iommu@ff4a8000rockchip,iommuJ F (aclkifacep u!qos@ff518000rockchip,px30-qossysconQ !qos@ff520000rockchip,px30-qossysconR !$qos@ff52c000rockchip,px30-qossysconR !qos@ff538000rockchip,px30-qossysconS !qos@ff538080rockchip,px30-qossysconS !qos@ff538100rockchip,px30-qossysconS !qos@ff538180rockchip,px30-qossysconS !qos@ff540000rockchip,px30-qossysconT !qos@ff540080rockchip,px30-qossysconT !qos@ff548000rockchip,px30-qossysconT !qos@ff548080rockchip,px30-qossysconT ! qos@ff548100rockchip,px30-qossysconT !!qos@ff548180rockchip,px30-qossysconT !"qos@ff548200rockchip,px30-qossysconT !#qos@ff550000rockchip,px30-qossysconU !qos@ff550080rockchip,px30-qossysconU !qos@ff550100rockchip,px30-qossysconU !qos@ff550180rockchip,px30-qossysconU !qos@ff558000rockchip,px30-qossysconU !qos@ff558080rockchip,px30-qossysconU !pinctrlrockchip,px30-pinctrlr++gpio@ff040000rockchip,gpio-bank &!Tgpio@ff250000rockchip,gpio-bank% \!gpio@ff260000rockchip,gpio-bank& ]!ugpio@ff270000rockchip,gpio-bank' ^pcfg-pull-up!pcfg-pull-downpcfg-pull-none!pcfg-pull-none-2mapcfg-pull-up-2mapcfg-pull-up-4ma!pcfg-pull-none-4mapcfg-pull-down-4mapcfg-pull-none-8ma!pcfg-pull-up-8ma!pcfg-pull-none-12ma !pcfg-pull-up-12ma !pcfg-pull-none-smt !pcfg-output-high pcfg-output-low &pcfg-input-high 1!pcfg-input 1i2c0i2c0-xfer > !Si2c1i2c1-xfer >!Xi2c2i2c2-xfer >!Yi2c3i2c3-xfer >  !Ztsadctsadc-otp-pin >!ltsadc-otp-out >!muart0uart0-xfer >  !(uart0-cts > !)uart0-rts > !*uart1uart1-xfer >!Fuart1-cts >!Guart1-rts >!Huart2-m0uart2m0-xfer >uart2-m1uart2m1-xfer > !Iuart3-m0uart3m0-xfer >uart3m0-cts >uart3m0-rts >uart3-m1uart3m1-xfer >!Juart3m1-cts > !Kuart3m1-rts > !Luart4uart4-xfer >!Muart4-cts >!Nuart4-rts >!Ouart5uart5-xfer >!Puart5-cts >!Quart5-rts >!Rspi0spi0-clk >![spi0-csn >!\spi0-miso > !]spi0-mosi > !^spi0-clk-hs >spi0-miso-hs > spi0-mosi-hs > spi1spi1-clk >!_spi1-csn0 > !`spi1-csn1 > !aspi1-miso >!bspi1-mosi > !cspi1-clk-hs >spi1-miso-hs >spi1-mosi-hs > pdmpdm-clk0m0 >pdm-clk0m1 >pdm-clk1 >pdm-sdi0m0 >pdm-sdi0m1 >pdm-sdi1 >pdm-sdi2 >pdm-sdi3 >pdm-clk0m0-sleep >pdm-clk0m1-sleep >pdm-clk1-sleep >pdm-sdi0m0-sleep >pdm-sdi0m1-sleep >pdm-sdi1-sleep >pdm-sdi2-sleep >pdm-sdi3-sleep >i2s0i2s0-8ch-mclk >i2s0-8ch-sclktx >!,i2s0-8ch-sclkrx > !-i2s0-8ch-lrcktx >!.i2s0-8ch-lrckrx > !/i2s0-8ch-sdo0 >!0i2s0-8ch-sdo1 >!2i2s0-8ch-sdo2 >!4i2s0-8ch-sdo3 >!6i2s0-8ch-sdi0 >!1i2s0-8ch-sdi1 > !3i2s0-8ch-sdi2 > !5i2s0-8ch-sdi3 >!7i2s1i2s1-2ch-mclk >i2s1-2ch-sclk >!8i2s1-2ch-lrck >!9i2s1-2ch-sdi >!:i2s1-2ch-sdo >!;i2s2i2s2-2ch-mclk >i2s2-2ch-sclk >!<i2s2-2ch-lrck >!=i2s2-2ch-sdi >!>i2s2-2ch-sdo >!?sdmmcsdmmc-clk >!vsdmmc-cmd >!wsdmmc-det >!xsdmmc-bus1 >sdmmc-bus4@ >!ysdiosdio-clk >!}sdio-cmd >!|sdio-bus4@ >!{emmcemmc-clk > !emmc-cmd > !emmc-rstnout > emmc-bus1 >emmc-bus4@ >emmc-bus8 >!emmc-reset > !flashflash-cs0 >!flash-rdy > !flash-dqs > !flash-ale > !flash-cle > !flash-wrn > !flash-csl >flash-rdn >!flash-bus8 >!sfcsfc-bus4@ >!sfc-bus2 >sfc-cs0 >!sfc-clk > !lcdclcdc-rgb-dclk-pin >lcdc-rgb-m0-hsync-pin >lcdc-rgb-m0-vsync-pin >lcdc-rgb-m0-den-pin >lcdc-rgb888-m0-data-pins >     lcdc-rgb666-m0-data-pins >     lcdc-rgb565-m0-data-pins >     lcdc-rgb888-m1-data-pins >   lcdc-rgb666-m1-data-pins >   lcdc-rgb565-m1-data-pins >   pwm0pwm0-pin >!dpwm1pwm1-pin >!epwm2pwm2-pin > !fpwm3pwm3-pin >!gpwm4pwm4-pin >!hpwm5pwm5-pin >!ipwm6pwm6-pin >!jpwm7pwm7-pin >!kgmacrmii-pins > !smac-refclk-12ma > !tmac-refclk > cif-m0cif-clkout-m0 > dvp-d2d9-m0 >   dvp-d0d1-m0 > d10-d11-m0 >cif-m1cif-clkout-m1 >dvp-d2d9-m1 >  dvp-d0d1-m1 >d10-d11-m1 >ispisp-prelight >pmicpmic_int >!Uledsblue-led > !green-led > !sdio-pwrseqwifi-enable-h >!emmc-pwrseqmmc-pwrseq-emmchZdefault L !vcc5v0-sys-regulatorregulator-fixed vcc5v0_sys;OLK@LK@ X!Vchosen cserial2:115200n8dc-12v-regulatorregulator-fixeddc_12v;O!adc-keys adc-keys o {buttons ` dbutton-recovery Recovery h FPleds gpio-ledsZdefaulthblue-led  on heartbeat R  px30-mb-jd4:blue:work heartbeatgreen-led  on power R  px30-mb-jd4:blue:diy default-onsdio-pwrseqmmc-pwrseq-simpleZdefaulth LT!~vcc5v0-baseboard-regulatorregulator-fixedvcc5v0_baseboard;OLK@LK@ X! compatibleinterrupt-parent#address-cells#size-cellsmodeli2c0i2c1i2c2i2c3serial0serial1serial2serial3serial4serial5spi0spi1ethernet0mmc0mmc1mmc2device_typeregenable-methodclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientoperating-points-v2cpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-usopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendinterruptsinterrupt-affinityportsstatusclock-frequencyclock-output-names#clock-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontribution#power-domain-cellspm_qospmuio1-supplypmuio2-supplyoffsetmode-bootloadermode-fastbootmode-loadermode-normalmode-recoveryclock-namesdmasdma-namesreg-shiftreg-io-widthpinctrl-namespinctrl-0rockchip,grfresetsreset-names#sound-dai-cells#interrupt-cellsinterrupt-controllervccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplyphysphy-namesrockchip,outputremote-endpointrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-always-onregulator-boot-onregulator-on-in-suspendregulator-suspend-microvoltregulator-off-in-suspendnum-cs#pwm-cellsarm,pl330-periph-burst#dma-cellsassigned-clocksassigned-clock-ratesrockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#io-channel-cellsvref-supplybits#reset-cellsassigned-clock-parents#phy-cellsinterrupt-namespower-domainsdr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy-modeclock_in_outphy-supplysnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-usbus-widthfifo-depthmax-frequencycap-mmc-highspeedcap-sd-highspeedcard-detect-delaysd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplykeep-power-in-suspendnon-removablemmc-pwrseqmmc-hs200-1_8vmali-supplyiommus#iommu-cellsrockchip,disable-mmu-resetrockchip,pmurangesgpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthinput-schmitt-enableoutput-highoutput-lowinput-enablerockchip,pinsreset-gpiosvin-supplystdout-pathio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervallabellinux,codepress-threshold-microvoltcolordefault-statefunctionlinux,default-trigger k8e(d.rockchip,px5-evbrockchip,px5rockchip,rk3368 +7Rockchip PX5 EVBaliases=/pinctrl/gpio@ff750000C/pinctrl/gpio@ff780000I/pinctrl/gpio@ff790000O/pinctrl/gpio@ff7a0000U/i2c@ff650000Z/i2c@ff660000_/i2c@ff140000d/i2c@ff150000i/i2c@ff160000n/i2c@ff170000s/serial@ff180000{/serial@ff190000/serial@ff690000/serial@ff1b0000/serial@ff1c0000/spi@ff110000/spi@ff120000/spi@ff130000/mmc@ff0c0000/mmc@ff0f0000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1core2core3 cpu@0cpuarm,cortex-a53pscicpu@1cpuarm,cortex-a53pscicpu@2cpuarm,cortex-a53pscicpu@3cpuarm,cortex-a53psci cpu@100cpuarm,cortex-a53pscicpu@101cpuarm,cortex-a53pscicpu@102cpuarm,cortex-a53pscicpu@103cpuarm,cortex-a53psciarm-pmuarm,cortex-a53-pmu`pqrstuvw  psci arm,psci-0.2smctimerarm,armv8-timer0   oscillator fixed-clock n6xin24m.Fmmc@ff0c00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @;р I  D r vPbiuciuciu-driveciu-sample\ g nresetzokaydefault Z$mmc@ff0d00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @;р I  E s wPbiuciuciu-driveciu-sample\ !g nreset zdisabledmmc@ff0f00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc@;р I  G u yPbiuciuciu-driveciu-sample\ #g nresetzokay р1@Fdefault $saradc@ff100000rockchip,saradc $TI I [Psaradcapb_pclkg W nsaradc-apb zdisabledspi@ff110000(rockchip,rk3368-spirockchip,rk3066-spiI A RPspiclkapb_pclk ,default+ zdisabledspi@ff120000(rockchip,rk3368-spirockchip,rk3066-spiI B SPspiclkapb_pclk -default+ zdisabledspi@ff130000(rockchip,rk3368-spirockchip,rk3066-spiI C TPspiclkapb_pclk )default !+ zdisabledi2c@ff140000(rockchip,rk3368-i2crockchip,rk3288-i2c >+Pi2cI Ndefault"zokaytouchscreen@40silead,gsl1680@ # f#r i2c@ff150000(rockchip,rk3368-i2crockchip,rk3288-i2c ?+Pi2cI Odefault$ zdisabledi2c@ff160000(rockchip,rk3368-i2crockchip,rk3288-i2c @+Pi2cI Pdefault% zdisabledi2c@ff170000(rockchip,rk3368-i2crockchip,rk3288-i2c A+Pi2cI Qdefault& zdisabledserial@ff180000&rockchip,rk3368-uartsnps,dw-apb-uart n6I M UPbaudclkapb_pclk 7 zdisabledserial@ff190000&rockchip,rk3368-uartsnps,dw-apb-uart n6I N VPbaudclkapb_pclk 8 zdisabledserial@ff1b0000&rockchip,rk3368-uartsnps,dw-apb-uart n6I P XPbaudclkapb_pclk : zdisabledserial@ff1c0000&rockchip,rk3368-uartsnps,dw-apb-uart n6I Q YPbaudclkapb_pclk ;zokaydma-controller@ff250000arm,pl330arm,primecell%@I  Papb_pclkthermal-zonescpu-thermald#'tripscpu_alert03$?passive(cpu_alert138?passive)cpu_crit3s? criticalcooling-mapsmap0J(0Omap1J)0O gpu-thermald#'tripsgpu_alert038?passive*gpu_crit38? criticalcooling-mapsmap0J*0Otsadc@ff280000rockchip,rk3368-tsadc( %I H ZPtsadcapb_pclkg  ntsadc-apbinitdefaultsleep+^,h+rszokay'ethernet@ff290000rockchip,rk3368-gmac) macirq-8I  f g c ]MPstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac zdisabledusb@ff500000 generic-ehciP I zokayusb@ff5800002rockchip,rk3368-usbrockchip,rk3066-usbsnps,dwc2X I Potgotg@@ zokaydma-controller@ff600000arm,pl330arm,primecell`@I  Papb_pclkGi2c@ff650000(rockchip,rk3368-i2crockchip,rk3288-i2ceI LPi2c <default.+zokaypmic@1brockchip,rk808 /default01&G2S2_2k2w22222xin32krk808-clkout2.regulatorsDCDC_REG1 ` `$vdd_cpuDCDC_REG2 ` `$vdd_logDCDC_REG3$vcc_ddrDCDC_REG42Z 2Z$vcc_ioLDO_REG1w@ w@ $vcc18_flashLDO_REG22Z 2Z$vcca_33LDO_REG3B@ B@$vdd_10LDO_REG42Z 2Z$avdd_33LDO_REG5w@ 2Z $vccio_sdLDO_REG6B@ B@ $vdd10_lcdLDO_REG7w@ w@$vcc_18LDO_REG8w@ w@ $vcc18_lcdSWITCH_REG1$vcc_sdSWITCH_REG2 $vcc33_lcdi2c@ff660000(rockchip,rk3368-i2crockchip,rk3288-i2cf =+Pi2cI Mdefault3zokayaccelerometer@18 bosch,bma250 4pwm@ff680000(rockchip,rk3368-pwmrockchip,rk3288-pwmh3default5I _ zdisabledpwm@ff680010(rockchip,rk3368-pwmrockchip,rk3288-pwmh3default6I _ zdisabledpwm@ff680020(rockchip,rk3368-pwmrockchip,rk3288-pwmh 3I _ zdisabledpwm@ff680030(rockchip,rk3368-pwmrockchip,rk3288-pwmh03default7I _ zdisabledserial@ff690000&rockchip,rk3368-uartsnps,dw-apb-uartiI O WPbaudclkapb_pclk 9default8 zdisabledmbox@ff6b0000rockchip,rk3368-mailboxk0I E Ppclk_mailbox> zdisabledpower-management@ff730000&rockchip,rk3368-pmusysconsimple-mfdspower-controller!rockchip,rk3368-power-controllerJ+Jpower-domain@12 I       c h g n o r s f d d h i l k j n m$^9:;<=>?@AJpower-domain@14 I  o p ^BCDJpower-domain@16I @^EJsyscon@ff738000)rockchip,rk3368-pmugrfsysconsimple-mfdsKio-domains&rockchip,rk3368-pmu-io-voltage-domain zdisabledreboot-modesyscon-reboot-modeelRBxRBRB RBclock-controller@ff760000rockchip,rk3368-cruvIFPxin24m-. syscon@ff770000&rockchip,rk3368-grfsysconsimple-mfdw-io-domains"rockchip,rk3368-io-voltage-domain zdisabledwatchdog@ff800000 rockchip,rk3368-wdtsnps,dw-wdtI p Ozokaytimer@ff810000,rockchip,rk3368-timerrockchip,rk3288-timer  BI a U Ppclktimerspdif@ff880000rockchip,rk3368-spdif 6I S  PmclkhclkGtxdefaultH zdisabledi2s-2ch@ff890000(rockchip,rk3368-i2srockchip,rk3066-i2s (Pi2s_clki2s_hclkI T GGtxrx zdisabledi2s-8ch@ff898000(rockchip,rk3368-i2srockchip,rk3066-i2s 5Pi2s_clki2s_hclkI R GGtxrxdefaultI zdisablediommu@ff900800rockchip,iommu I  PaclkifaceJ  zdisablediommu@ff914000rockchip,iommu @P I  PaclkifaceJ  zdisablediommu@ff930300rockchip,iommu I  PaclkifaceJ  zdisablediommu@ff9a0440rockchip,iommu @@@ I  Paclkiface zdisablediommu@ff9a0800rockchip,iommu  I  Paclkiface zdisabledqos@ffad0000rockchip,rk3368-qossyscon 9qos@ffad0080rockchip,rk3368-qossyscon :qos@ffad0100rockchip,rk3368-qossyscon ;qos@ffad0180rockchip,rk3368-qossyscon <qos@ffad0200rockchip,rk3368-qossyscon =qos@ffad0280rockchip,rk3368-qossyscon >qos@ffad0300rockchip,rk3368-qossyscon ?qos@ffad0380rockchip,rk3368-qossyscon @qos@ffad0400rockchip,rk3368-qossyscon Aqos@ffae0000rockchip,rk3368-qossyscon Bqos@ffae0100rockchip,rk3368-qossyscon Cqos@ffae0180rockchip,rk3368-qossyscon Dqos@ffaf0000rockchip,rk3368-qossyscon Eefuse@ffb00000rockchip,rk3368-efuse +I q Ppclk_efusecpu-leakage@17temp-adjust@1finterrupt-controller@ffb71000 arm,gic-400@ @ `   pinctrlrockchip,rk3368-pinctrl-+K+8gpio@ff750000rockchip,gpio-bankuI @ Q?O/gpio@ff780000rockchip,gpio-bankxI A R?Ogpio@ff790000rockchip,gpio-bankyI B S?O4gpio@ff7a0000rockchip,gpio-bankzI C T?O#pcfg-pull-up[Mpcfg-pull-downhpcfg-pull-nonewLpcfg-pull-none-12maw Nemmcemmc-clkLemmc-cmdMemmc-pwrMemmc-bus1Memmc-bus4@MMMMemmc-bus8MMMMMMMMgmacrgmii-pinsLLLN N NNN NLLLLLLrmii-pinsLLLN N NLLLLi2c0i2c0-xfer LL.i2c1i2c1-xfer LL3i2c2i2c2-xfer  LL"i2c3i2c3-xfer LL$i2c4i2c4-xfer LL%i2c5i2c5-xfer LL&i2si2s-8ch-bus L LLLLLLLLIpwm0pwm0-pinL5pwm1pwm1-pinL6pwm3pwm3-pinL7sdio0sdio0-bus1Msdio0-bus4@MMMMsdio0-cmdMsdio0-clkLsdio0-cdMsdio0-wpMsdio0-pwrMsdio0-bkpwrMsdio0-intMsdmmcsdmmc-clk L sdmmc-cmd M sdmmc-cd Msdmmc-bus1Msdmmc-bus4@MMMM spdifspdif-txLHspi0spi0-clkMspi0-cs0Mspi0-cs1Mspi0-txMspi0-rxMspi1spi1-clkMspi1-cs0Mspi1-cs1Mspi1-rxMspi1-txMspi2spi2-clk Mspi2-cs0 M!spi2-rx M spi2-tx Mtsadcotp-pinL+otp-outL,uart0uart0-xfer MLuart0-ctsLuart0-rtsLuart1uart1-xfer MLuart1-ctsLuart1-rtsLuart2uart2-xfer ML8uart3uart3-xfer MLuart3-ctsLuart3-rtsLuart4uart4-xfer MLuart4-ctsLuart4-rtsLkeyspwr-keyLOpmicpmic-sleepL1pmic-intM0chosenserial4:115200n8memory@0@memorygpio-keys gpio-keysdefaultOkey-power l/ GPIO Powertvcc-sys-regulatorregulator-fixed$vcc_sysLK@ LK@2 compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3i2c0i2c1i2c2i2c3i2c4i2c5serial0serial1serial2serial3serial4spi0spi1spi2mmc0mmc1cpudevice_typeregenable-method#cooling-cellsphandleinterruptsinterrupt-affinityclock-frequencyclock-output-names#clock-cellsmax-frequencyclocksclock-namesfifo-depthresetsreset-namesstatusbus-widthcap-mmc-highspeedcap-sd-highspeedcard-detect-delayno-sdiosd-uhs-sdr12sd-uhs-sdr25pinctrl-namespinctrl-0rockchip,default-sample-phasevmmc-supplyvqmmc-supplymmc-hs200-1_8vno-sdnon-removable#io-channel-cellspower-gpiostouchscreen-size-xtouchscreen-size-ysilead,max-fingersreg-shiftreg-io-width#dma-cellsarm,pl330-broken-no-flushparm,pl330-periph-burstpolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicepinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-temprockchip,hw-tshut-moderockchip,hw-tshut-polarityinterrupt-namesrockchip,grfdr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizerockchip,system-power-controllervcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-name#pwm-cells#mbox-cells#power-domain-cellspm_qosoffsetmode-normalmode-recoverymode-bootloadermode-loader#reset-cellsdmasdma-names#sound-dai-cellspower-domains#iommu-cellsrockchip,disable-mmu-resetinterrupt-controller#interrupt-cellsrockchip,pmurangesgpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthrockchip,pinsstdout-pathlabellinux,codewakeup-source .L..btcoexist.ko.gz , .L..rtl8188ee.ko.gz EELFu@@8 @@@@888  ( ((9C TTT$$Ptd   ,,QtdRtd( ((88/lib/ld-musl-aarch64.so.1GNUNN6#y"W&ju^DAv剠 2( \  j4\ 7 U W+q  *JUEO_$ dc ]\  e  W  n X   zN E> #\y8:w@SR4 "   LD  (d jJ1 H *yc ! q $ LQ#u  i m Q C \x* t  *O y  /@ p   ? e q f !{ T   ;  1 kF W % u|/ A> / 7  A#J  0   6  0&~Gl ! fB s  !D ` _  g- a  >Oc ]`3 u 1v ? nb P*Bp) L  I W  k   /    m] X9 ' 9 Q    24 GN x <-  \c  ,  @      D   ) D Tklogctldprintfsetuidchrootstrcasestrsocketputchar_unlockedmkdtempgetspnam_rputc_unlockedfflushstrcpyshmgetsigsuspendgethostidvasprintffchmodgmtime_rfnmatchreaddirexecvsetlocalesrandttyname_rfopenstrsignalstrncmpftruncateinet_atonoptindgetpwentstrrchrregexecpipetcdraincfmakerawshmatperrorwcrtombconnectfileno_unlockedgetpwuidstpncpysendfilesemctlmbsrtowcsclosedirinitgroupsinet_ntoananosleepfchdirfeof_unlockedmknodgetusershellgetgrgidftellinet_ntopstrncpypersonalitymbstowcsgetprioritytcgetsidsigprocmaskregfreesigfillset__stack_chk_faildaemonshmctlinotify_rm_watchunlinklistenfgets_unlockediswprintmkdirshmdtreallocfsyncstdinstrtoll_exitsocketpairmemchrmemrchrstrpbrkpopengetpidkillstrspnstrdupgetc_unlockedinet_ptonstrftimemkstempflockstatvfsrewindlocaltime_rstrtodsetutxentgmtime__ctype_get_mb_cur_maxendpwentstrtolisattylchownmmapsetmntentsched_yieldns_name_uncompressclearenvswapoffstrchrnulsyslogsymlinkisprintexeclecfsetispeedrebootexeclpfdatasyncsigsetjmpgetpwnamgetppidfutimensstrlenungetccospivot_rootpowprctlunsharesendsetitimersigemptysetopenloggetaddrinfogetchar_unlockeddirnamememsetcfgetospeedstrstrsinstrcspntcsendbreakns_initparseutimensatrmdir__errno_locationbindtcsetattrmemcmpgetpagesizegetnameinfostrndupendgrentgetsockoptsetgroupsmempcpygetoptgetlogin_rmsggetdup2clearerrpausefstatunsetenvsqrtstrptimeshutdownsetnsvsnprintfsigaddsetctimegetgrnamadjtimexsethostnameputenvfchownstdoutgethostbyaddrfputcrecvmktempfputsstrtok_rregerrorstrnlenlseekmemcpyfclosetcsetpgrpgetmntentstrtoulvprintfsetsockoptmallocsiglongjmpkillpgstrcatumaskstrcasecmprealpathlstatftellotimegmsetegidraiseremovesetpgidgetpeernamegetgidtzsetres_mkqueryhasmntopt__libc_current_sigrtmaxopendirgetenvsched_getaffinitysscanfrecvfromregcompoptarggetservbynamewcwidthmsgctlstderrsigdelsetioctlsyncfsns_parserralarmsysteminotify_initmunmapwait3gethostbynameseteuidpututxlineclock_settimegetgroupsgetuidreadlinkfscanfether_aton_rreadaheadexecvegetegidsetrlimitgetopt_longsettimeofdayexecvpfreeifaddrsfreopenstrncasecmpgetifaddrsif_nametoindexsendmsgstrtoullpcloseutimesusleepgetcwdcryptupdwtmpxfwritefreadgettimeofdayrenamesigactionscandirgeteuidstatfsgetresgidether_hosttonatofclock_gettimeatoitcflushwaitpidstrverscmplocaltimeendutxentswaponferror_unlockedstrchrcapsetendmntentgetsockname_finisendtovforkmktimeatan2alphasortgetlinefdopenqsortexpwcstombsacceptgetresuidhstrerrortcgetattrinotify_add_watchgetutxent__cxa_finalize__libc_current_sigrtminumount2syscallbsearchfreeaddrinfocapgetsetsidcfsetspeedfcntl__stack_chk_guardcfsetospeedcfgetispeedatoll__h_errno_locationgetmntent_rns_get16getrlimitmountmemmoveunamesigtimedwaitpreadstrsepaccesssysinfogetgrouplistopterrsetgidmkfifosetbufstrcmpns_get32recvmsgtcgetpgrp__libc_start_mainsetpwentsemopstpcpyppollsetprioritygetservbyportposix_fallocatefseekostrcollvfprintfcloseloggetopt_long_onlysysconffputs_unlockedsemget___environlibc.musl-aarch64.so.1__deregister_frame_info_ITM_registerTMCloneTable_ITM_deregisterTMCloneTable__register_frame_info.Rcot HPX`hpx3HU  ( 0 8 @ HPX`hpx !"#$%&'() *(+0,8-@/H0P1X2`3h4p5x6789:;<=>?@ABCDEFGHIJ K(L0M8N@OHPPQXR`ShTpUxVWXYZ[\]^_`abdefghijk l(m0n8p@qHrPsXt`uhvpwxxy{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx      (08@HPX`hp x!"#$%&'()*+,-./012456 7(8098:@;H<P=X>`?h@pAxBCDEFGHIJKLMNOPQRSTUV W(X0Y8Z@[H\P]X^`_h`paxbcdefghijklmnopqrstuv w(x0y8z@{H|P}X~`hpx(UUUUUEUUUY 6o3?"?73333gfff˶$UUUTUU3333333gfUx@6{{_{PvA    PzA P~A PA PA" PAB PAb PA PA PA PA PA PA" PAB PAb PA PA PA PA PA PA" PAB PAb PA PA PA PA PA PA" PAB PAb PA PA PA PA PB PB" P BB PBb PB PB PB PB P"B P&B" P*BB P.Bb P2B P6B P:B P>B PBB PFB" PJBB PNBb PRB PVB PZB P^B PbB PfB" PjBB PnBb PrB PvB PzB P~B PB PB" PBB PBb PB PB PB PB PB PB" PBB PBb PB PB PB PB PB PB" PBB PBb PB PB PB PB PB PB" PBB PBb PB PB PB PB PC PC" P CB PCb PC PC PC PC P"C P&C" P*CB P.Cb P2C P6C P:C P>C PBC PFC" PJCB PNCb PRC PVC PZC P^C PbC PfC" PjCB PnCb PrC PvC PzC P~C PC PC" PCB PCb PC PC PC PC PC PC" PCB PCb PC PC PC PC PC PC" PCB PCb PC PC PC PC PC PC" PCB PCb PC PC PC PC PD PD" P DB PDb PD PD PD PD P"D! P&D"! P*DB! P.Db! P2D! P6D! P:D! P>D! PBD" PFD"" PJDB" PNDb" PRD" PVD" PZD" P^D" PbD# PfD"# PjDB# PnDb# PrD# PvD# PzD# P~D# PD$ PD"$ PDB$ PDb$ PD$ PD$ PD$ PD$ PD% PD"% PDB% PDb% PD% PD% PD% PD% PD& PD"& PDB& PDb& PD& PD& PD& PD& PD' PD"' PDB' PDb' PD' PD' PD' PD' PE( PE"( P EB( PEb( PE( PE( PE( PE( P"E) P&E") P*EB) P.Eb) P2E) P6E) P:E) P>E) PBE* PFE"* PJEB* PNEb* PRE* PVE* PZE* P^E* PbE+ PfE"+ PjEB+ PnEb+ PrE+ PvE+ PzE+ P~E+ PE, PE", PEB, PEb, PE, PE, PE, PE, PE- PE"- PEB- PEb- PE- PE- PE- PE- PE. PE". PEB. PEb. PE. PE. PE. PE. PE/ PE"/ PEB/ PEb/ PE/ PE/ PE/ PE/ PF0 PF"0 P FB0 PFb0 PF0 PF0 PF0 PF0 P"F1 P&F"1 P*FB1 P.Fb1 P2F1 P6F1 P:F1 P>F1 PBF2 PFF"2 PJFB2 PNFb2 PRF2 PVF2 PZF2 P^F2 PbF3 PfF"3 PjFB3 PnFb3 PrF3 PvF3 PzF3 P~F3 PF4 PF"4 PFB4 PFb4 PF4 PF4 PF4 PF4 PF5 PF"5 PFB5 PFb5 PF5 PF5 PF5 PF5 PF6 PF"6 PFB6 PFb6 PF6 PF6 PF6 PF6 PF7 PF"7 PFB7 PFb7 PF7 PF7 PF7 PF7 PG8 PG"8 P GB8 PGb8 PG8 PG8 PG8 PG8 P"G9 P&G"9 P*GB9 P.Gb9 P2G9 P6G9 P:G9 P>G9 PBG: PFG": PJGB: PNGb: PRG: PVG: PZG: P^G: PbG; @A!?TA!Ga_@A!!"A !ABBGb_{ S`A97@|G@@@G@$ R`9 @{¨_@G@{A@! ${A!|DGA@CcG@G "@ C_! O RWur_@y6 sqTs~S@9@5!5*WA_BOè_Ҁja8ja8kTHT@85sOR"r TAR3޳>@qd@Ta@85Q5?z`(w`@9 qT`\(q`(m>@k`@94(qTh db`@O<@qTO3RO_OWA @@!<ROO R* RHO_@85sQ5q!RBzT qBRBz T @@9lqT @`a!(]5@9A__O*WBUA<I 4JR!dkbc$b8a#DZcxS(cqT4`(;5I6!!"s@?A 92OWa!d)_g#@@@RFAR*w RQsR?y`(`)`@95`R#KkT 1R ~@s4a!2 7sRxAR R`@9 4@@9@4~S@j`8|S z``@85@a!25<< @@9qT`D21 @Ua!25@G8sR S?@j`8@|SB B{b?4@@@@Dq`TV+`@859?qaTGa!({5 @@ <@7@9@"<=p7 @<@#`2 RZO`d) S@`>@9?qaT`>`>RA `>@#hb8c5_Bhb8k TOWWTdTs&qsWAO¨_RC@95_c4Ehc8$hc8k`TBC@85OW_, 5*WA_BOè_5`jw841AT*s`@95|@R*A5_@85@94!QO sR;@9?qT!B @BO¨p8OR@O_ORaT@9A4O_OR O8@9?qATaT@9"4@95@9_!k_A!tGO @'CG@@@@@4<=<=?A!tG'@"@ҀT)OE_O@tG@'CG@@@@`4w<=<= ?` ` g YO tGW_o@g #@ 4\R?@=9*@s @3 R!K?qcC-T~@!|@<3z~@==<<=8/{ RKK@kLT~@===*7{ /@a ! ! !|@~@`/@ARRh"8 #@6/@~@@Rx #@6@a/@! $@B3/@@Tc tGg@@B Tz~@3/?@/@/@BRR8/@84@94/@`b;8{ /@A 8/@;{ g@v /@@;]@OMWN_OgPoQ_!!tG+"@'<CG=<=9kO3avG"@'<CG=<=svG'@a@@TOE_OSRa&C^|@=?=`R`&Oè_O3avG"@'<CG=<=svG'@a@@TOE_` ` ` y@H@@?@@9OaR *O*X72R*I @*O¨_OaR *@*X6xR*: @*O¨_"RAR3*4ER@R*RAsrd*h5?qATBqT8!qaT_R46KBQR#8_I)+bR 9 A_I)+bR 9 A_*p<aTD#_%hc8cDӥ @hg8he82$828C@"h@@R$@9$4TAR_փQc$q T2dQq(Tc\Qc%@9f SQ$qT*9! 2QqT\Q*95!#@9qAT!q@zTR"9@R`B_Og ROO_@ROW* OtG_@ҿ1T R3RI5@RF*`5C5R@3B***aR7R5@yq@@y83*QR_kR@@yP3t`*QR_k Ru7*y tG@@BҠT*SRRROA*WB_C_O3avG"@svG@@b@!@TOA_18 A!p3qA*_RRR%OOW*_=_|_<^@r@B  =c <}ra@~ =" ! ‚B!_G}t@A@6`juQ@Qxju@@!@@=* R7cjuҁ@@0=R4vG@@! T4"`ju U@RtjubrR*A!=@d=% Ja77}RRvr+*@@6*A! R|RkT@ R= s*@=@=@6[BB=Ү#@OAWB_CC__ 6vGO W @G@> 4L>`@(>#\ncCC#B!_*86@RbrR3;G}Ӂjvs5"@"A!`>/!?c}vGG@@!`TT'@jv@>('S(6 @@> 7@>+ @` Q*@?.@A!?@d= J!87(6 R|R;+}R;Rvr@;@86Q!LkT@R=h;;@?@1`TD@+@? G)@@X? 7Ҙ0R!r@?@@? @@`>/!?3@?cRX07'@=R,4 @@@DqT'@u 7@A!l??@<A;@?@1!T;@?@@A!=@3?@7?;@ G)@/@034'@7?S@7"@RTQ R"R'@ G)5'@R4@5 R3R1OIWJ_K_O3`vGW_go@@U4L>I#B0!^*@@GWX?@[vG@@TAR]@,8P7V6@C:)q T T`R@#@s@X?aRA#q+TT@< R@#OCRWD_EgFoG_Cc3W4B<vGO_@'@!]G}`ajw@a@ @@ab"@R^`jw <@@9qATR4@NvG'@@TcG@[OERWF_G_"BtGO W _ *@@G <@ @9qTB!O]* K4L>wR@ q Tq Tq T @%ORSTA2= =q!TO4@#5@ @qT@R̈́TA? X?6Rb1TTq@TR"BtGG@C@!`TEa@@?kATa@@@==1T `L ROIWJ_K_@RDBR8`7AA_ D@N6@A_ RRD@`@pA9"*!*4q9!`l@bGR!*laRxAR9RyA@"BtGOW_go;@@$ D@`@`Re"dcBb!P`r9c\6`@`.}"BGV}Ӗjb`@@9Q$qhTajbTCZ> @ @`1*6G*R(kT@Xw2@zw76`2@a !4@6@`2(qmT@8xAR@3*7!*?AR*_* R6AR`!R**AR qT!63 H!? R>@!R) aR `@@9_qT@95RqT@Q**_qT@5`R`@ARRRR2RR`@@`">R7!RRARRR7q@zT"RR 6@}R@`*R6@qxR6@id A*RCcdt6@!RRR-RARR4*7`j@iRRJr R**_`jb 62`j`2 Rn9`yJ`6`@|J86tr9MRu*qMT` !p9T@9!Q!?$qT*qmT R`9R!7l`@nJH7J@ P7ԐRZtrZ rR@)RRJ(7a@`@uv @@R`"RNT|`@QqTIC@9(qMzT"R&TT0C@9q T` 87Tq TT4qT(T(qTT qT$q@T4 QqTP9C@9`r9`rB94RGa@҂B?a@@`9T@!џCT˟ `2@q T6`64@X|qTqHT"*C@9`8O RsGMa>@@\ RctGO W _ g s`@O@a`0* cG`<iuq*'R*c9A!(}Z @7cG`az`!RsG (7 R'4R!`>@Rm @ @@@ R<@aRUgvR}GRRcA95ZRu1aTr4@@#@cc@(qTZqT`$Q\qDz)T"@Rc9pAR@@9?qT9cIT} *@bOqlT@AR@@9qAzAT @x K@ 3@cAR!`%q@Tc9@7@@4@@@9`5R@@4@ڊ@R4RR/*1T5 Rc@4*qT**/@ @ +@qcROq@4T 9+@hRctGO@b@!Ҁ T@!@!@)0RRa'@4@ X' @W +V* @UV T~ S@s @@@@@@#@0L@!R~R!@@Q@R [@5@@4@Rl@@R@ *@7!R*4*@AR!( k Rs@OJWK_LgM_RO`vGW_go<@@ `R# <@BCA!\ Y*sGue* r }ӠTs5ju@*!KejuJ34@kT@t #@@c@ ;5?5@@ @)4@qT@c[?? @ @"@9BQB 5q@@zT@t @@  @s4@@94@l DJ@~@4@A! RYJ@@\,J u@4s5@ J 4@uuu R#@8@}}657B@x@@@ R?!RRIRҽqLTTu[?Ҵ6@~64bBP( }sss@4PsvG@a@@T:@ROYWZ_[g\o]_WvGO_g S@/g*#CA!PXG*t`z`@9?qT@9`52"@"R`! <c4*>@KRR:<@ I5RAsbR @5J@rRq! @ @*n,sMqTqTv5AsRRWI 4  i@@V 5@ BRRRRJqRtGO W +_ W6g X@O V9I!aWR!@r@R!pu!0Rq@R#FRDAR 3RH!RR;!RRB@ R#9@RcrARRRCr@c} ="A&~<p!x=!2'@5%WR]R@9$Q\qDz⇟AR[@4qjTw qTR=&5@4! _!pR[]l"xz_myRSA[BcCkDsE{ƨ_O8qT@)=D@`@4s"RqMT@<BQ_qT 5rT~N9 @O¨_@@? q(T!Q? qTT@ _@O`@OO``B``OOD@``b``O@OR D@``Ҋ`b҆`ҁ҂t2 @`.O¨_OW_@TWA_BOè_@sAӁ@`~!h`@q@4kTuO @!?HTa@`@~`t @O¨_֔O@ Ta@`@~`t @O¨_O?@ 3 @T@ @O¨_9O Bҁ@ @ ` š#8$T @O¨__OW_@ITc@`@| wWA_BOè_!O`vG{@oD@`svGo@a@@T{@ON_CBtGOWa@@@?T`@#TBtG@A@@T!R `@TOCWDC_O!6BҦ!OBA@cB@T_!O A_BTQa@b @ E`@R`@!` @O¨__OWTu@_T!` @`Jt9WAO¨_AO!BGW!|$_B NJ*  $AJ2 6<@ $RBGA`@WAO¨_րF@@ @OW_D@@" v@&>@>~~@=?=g@`>@0v>WA_BOŨ_!tGO"@'bJR_jT<CG=<=`J6D@A5 R9R!tG'@"@cҀT ROE_OavG"@'<CG=<=D@A4svG'@a@ҀT ROE R_ctGO*W_+`@ҖbET#BR@@5@kT! !& RctG@b@!ҠTB+@OBWC_D_@OB{_)T! !t' RO_@_TBbR!R_@FҿTR"_@cфh8D_ DIT! !( jA R_@9B7! !8( \A R_?|q$IzT?4q$JzTR_R?q T x(IA R__O!@ a@!! @aO¨O!D@W_3,@w@v@CtWA_BOè_`TO! @ `@9a@b @9`@@T?T} ԉT# @O¨._O@ ` @`@9R`9 @RO¨_!@@9a9@@_C cbT%h@AT@ˀ@cT _ BRLRhTcDRT5` Eh8 i#8cc  i8h8   `i$8Bi8B A"bi 8i 8b OW@{` @`@9R`9WARO¨_"@j @9+@9?99L99A@9@ `TU@9 Tu9a@@ TA˯c@@` @duJ O!@ T @O¨1OW@T`@@aT?T} ԉTc_@@T?TV@WAOèT"9Oc`nG@[4 (,sG`@T@5O_G@L4 )R%OD@`R?T RC@RAO_OWD@6R4`@`p<hu8,`@aWAO¨_OSW_@RR 3D@@B?HTX!T@WA_BOĨ_s~ Ӛ@s ؚOD@@@AO_tG "@RNtG"D@A(ABA|CAhac @@@!@T @_! WOWCa@TT} ԉTWAO¨O D@R @B@hs8QQc!dq IziT|qaTssр @ @O¨_OWD@ @As@sa ?ւ@WAO¨OD@ O! !@) ! !) rT! !*  @*O D@ @ARK @ O¨* @O¨  OWBtG_3@@TTBT} TbcTz@b@x8R?*x4@BtG@A@TRUaTTTT`Tz@`@z3@*OCWD_E_A  '@9@960k@#@˥˿ c c#҇A  wuA @g$@@|@=`OW!tG"@T9#!tG@"@TNRTH!Q!$Q9 9sHsOAWB_OavG"@9D@,@svG@a@@T!OA_OOD@,@tGO@D@`@Z<@@9?qT`.@`RtG@@BҀT` OA_O_v _Q#j`8:D@WDsRsg Y@g@T@qATs#@WA_BgCOƨ_րQj`8 kTq@zTQ^@RqGzˠW@tGO_'g8*o3@bv@ 4`G@@TD@ A@4`G@T A Rc_ vGR!_*q,TsvG@a@@T{OA_CWBgDoE3@@94 5`vG@@BaT_C!@oEgDWBbGOA3@R@`5*`41T4 )T*@*9*qT4!@! +OD@` @@9A5a@`y`O`?HT@9O_rT"D@A@!AA_C_ORtGW#@D@u9<@@9q@ RߺqR`` @@9T4rqT` @@9?(qTa@!aQ$q)TqTz'TqaTX5*a @*` @` ߺqaTuH`@`vtG@@B@T#@OAWB_CC_'@9@906k@#@˥˿ c cҬOW_gotG@+C@s@9RtG@@cTAT@@9qT?T?T@@9qATJ~iT?|hT!!@R@5 )'@KR @T @@i8h8 ` ` @i!8@A@Hi8(T Hi!8 @5qB! Rs")#%!Cc   a@`A@@B*5 @;*5I*5@D*`5>*5H*5A*5@& 4!R@ @@@o@@[@G@3@@ @' 5*5*!RC*+@WA_BgCoDOƨ__O!tGWg # @/@@_T  _C B_W"9C948R@T@R!tG/@"@ҀTn5*`5a @` @BTc@Rb@B`` @` Â@9@9tOF*WG_HgI__OtGWgo@` @5R !t+ tG@@BT( @C_9RT`@`@9qATc@9@9\  @u @hT@a@?T!*@a@?T!! @a@?Ta@!h8!4@Tj@@zk$8b9@R@BF'TRc@9@9  G @@5Rh8a@"5Dh8%h8ck4BT@'h&8@a55ROC*WD_EgFoG__OtGWg;@ @3R !t+ atG@@BTo @Re9a @O*5*5*5@?T @u@9‚@9@99@;@*OCWD_EgF_WO_gvG3@C@@s"*@vG@@@TWD*OC_EgF_WOBtG_g5@C@@"TTTTBT} ԟz@9R@`zC*y4@BtG@A@TRKWD*OC_EgF_WO*tG_go@Ҁ @RR`?tG@@B T# +#@cuCq@!kc9@  9;*/G@*5 K@cdT@` R @@hT5 @43R@$k@"W@ C@c'K@7`5@ @5Ac''@cC`@ R`?@ @c˄@z5@@9`?@`4*@*OTWU_VgWoX_WOtG_go@Ҡ@!! Au @9R @966R !8( tG@@B`T@T@!9?q!T@99s"9Rc 99g@c99@!T?@R@R@!!!@9'@x##*5*5@*5~@ځ @_@!@A @?@BAhT-@T!o@2[@03@.@,u@*OQWR_SgToU_WOBtG_ g [A@7@_!T@a@ ҟ9 9RBtG7@A@T@ch84 !+ 3R!c @9@9?T@B9_qaT7@c99l*#_`5Cy@U7@" ycT֒@U6A5@?T @T989*5A9*`556Z*@5A@+ 'c99*`4 @{x!@!h8a4R[@*OGWH_IgJ_OWu@!TJ R@WAOè_`@a@~!h`@4` @T!u @`@AB˕VaB|b@C!tGOW# @#D@@*`5 @@@@5L !tG@"@ҀT/#@OBWCC_!tGOW3"@@R>@!@9?qKqT?q3D@t ``B @``  9 ҟBpaA 9`bһ`ҷ>@@9qT;( 7`Ҥ`BҠ`Ҝ` `" Ғ` Ҏ`"tB0C`>@@9qT+f``# @.m@95!@- i @ R44Rt@R!*!tG@"@cҠTBRq!@@!@5^GF >@m@9493@ODWE_BtGOW*_A@'3D@55tsB #@C* 4q_@`@s@~w4 @`j5@@@BtG'@C@!ҠT.ts OEWF_G_3vOSctGWb@ AR q @zTR@R?@ hT RctG@b@!ҀT`@``@@C v7#D@ RR `@3@ODWE_C_W!tGOgo @wҡ@?,q%Th%T?(q T?$q#T QqT"R!tGw@"@c $TУ @D@<@@9qT\@P@c"t@ R"9 @9 4_qT5#R!ZAfAQQB_$qYzT!8,  x R@9qTR @9 4q!Bz`T*q`T@95R! R`@94qAz`TT@9 Q$qTv @ 9!QBR@ң@` `9!Rjv8c@Qb @$q`h"8` @` рjv8qTcC1CWC7*QK@94qTqQQn`5kO4@S@9@  9jy8 4QQq9H@5@k(57@4#@R5@5` @a@?T!9@?qc@ qaT`@T`@ `@ @T`@a@D@ D@ ,Y֞@9@OOWP_QgRoSC_O_ЗWD@@T^4R; A`!=5`@*`5b@@B@@?k T@@ QqIT@@ @d4?q`T.!Q?qTz5$5a@!@!Q?qITb @*WA_BOè_O D@@ R @O¨_ X5@!@!Q?qTa@"@! @_OtGWgo@D@`@T5R2x"ߞqT@RqT* 5@Q?q T@@`@  @R4`@`RߞqT@R,5<@@9qT` ߞq TRtG@@B T`@@9(T@4R`@` @р @ѿT@!h84R`@`9a@?@ T QDR*B$qTc*9"c qT @|@ߪqT a@ `AR`.@@@95<@@9q`TRߞqT@Rrq`T*`@`@95@9 5/*@zT R`@`45aTaj`8;/,OA*WB_CgDoE_c#!tGW jqO_ [ @?C 5c@@@qT q`T R!tG?@"@c@ T)*@R~ @/K6D@@?T3R*"#*qAzT,Ajq!Tq#HzT@q!Tz@5@'@!Q"qaT@D@TCxRRQuD@@?֠5_TXa D@qT|[@OHWI_J_OW@T@@`~!h`@qsWAO¨_W*O!tG_ g o @7D@@@`g R!tG7@"@c TY#M@qq?kaTM*@q!T5C @;'4R#5*@5S$`@aTqTqBzTR q#4@AR *T CvA3AB?As@s!@;Rb@qBzT`@k!R.a @Ҋ#@x@'`@T~OGWH_IgJoK_OD@W_vuR`@N/ `vr`@`` @@94a @a<@@9q`Tb@҃j`8_k+TJ)06 @9$Q\qDz)TA` @` a@rATR*?q#TH&T?q#T?q #T?xqT? qI%T#$QTq$T0Xcxc` !Q!?dq#Tw @B`-Rj`8Ch`8d4kT4!B ?PqT.`@iTAR-K0B`@ qaTbR`@PqT#c,#B-!.p..5R4;rT!. W6q*T(qT`@`a @/` @` @B.!.P 5 BR` @@9q!Tc0/B-!.p.5` @` R`u R`R@*! R@WA_BOĨ_! QafR` @@9?qT` R@bR`R` @@9?qT` R`R` @@9Q$qTR@R`B@1`@R`b5`@q!T5`@q TR* R5`@qaT@5`.@  `@q@ T R`5`@qT5@Rvb RC`.@ `@qTR@5`@qT RR#`.@w `.@.*5 @R@YQOBB@!.3Z5`bB( !B2!.3KBL!.3C5`RY= 5`@qT5 R 5`@qT`.@#HRZ.*5v@߲qaT`.@C8* J@ @-n`4*3@0X4[`5`@qAT5R`@qTRRE(`6@!6 'A 5t@QqBzTRR/5qT`@qaTR!\72 5&5`@qAT! 5`.@vbCw # `.@ R@5`@qT @R/*5@R @?O D@5@qT5@q!T7 @ RO¨_ @RO¨/OavGW_go+ "@7Ҿ*@59/F@@4?@!@9?qTqT5@qTT8@!8*5S 5@q T53R@qT@B2f.@9`5.R@qT5@5@qT6@6 R6@!с65RK@@xq$@z!TI 58@9P '8@+@!@GTk`8 qT'@X{xa R<qTX 5/@ P 5XR@qT.@ d@ d@E*5@qTqs<5@q TT8 )R/@5@q`T.@*8 548@5!,925@qaT 5@qT!: F@`2@`.@`.@`@`` @Ya @!a `b`z R@tG7A@B`TR95dd3,4?@@9qT@s!F@"@kqT* #5@S\V+@/@TR@C9k @sAFF\5@b ";3"F@I4Rm">!#@|!@ h`"40L@!: b3Rvg@T:XF@# f+@z7@AT:`/@?CT(e @|@@"_⇟q_k`The59@@A @@@ 89ZC!RM43R?` Q_qTs@k`R;F@ e{ RRK*@)5_qTYCRx5s@OqaTF@Ja  @ KqTF@Ja  @ C9 9@+q`T'qTqT#qTqTGǟ ן@G@ җF@ @5?@@9qaTR*5@xrT;3R@o@q@{Rj fRR"n"5{qTRkF@ S;5_@@5@{@)T!; ^@NC`Rk[ R #"`kQkF@qaTz@Z`"qaTz@z@F@`@`$ `  j*5A@@QqT@@ @q`T  /@qaT @@b@,*k435@\T|<[qT@@qT@@qT@"@b# @c!@?Ta?@!@9?q@@@c Ch84!@R" @"T**RCRK5F@e/Q!@$es@@?*4@W 5C@b @ 9 9# j m5@D@CF9RC9k*[F@@@iT#R @5A@#U@5A@ QqiT?@`@``@ QqITG@ A @lA @`@C@@`@@!+7@@?k@T;@B@@_kT 5 @5!t+3R F@96!8( @#CA @<#@@7#@@39C ARC 9 @C9 9* 5@#@#g@`@_@K@5@B@#@`5@Te@55@@@9qT @R5 @@4*C#R^@5 s@a @F@ @_@D@*4@@@#;NF@ @`X:#qT" k@ @k`85`@ @ATR8RQy8 4@@@ @@u3R.G@@@?qT@x _@a@x@4A?qT*5@@a @a*5@R: @4;R<1L{5 RR/*@5Z@_T" F@z@k@`"@3 ?(qT? qT?qHTT4!Q?qT@ C# C_T_BT} _T?cT<_=@@ >|@T"#3iTTTCT!=t@=tTT=t@=tTTiT#T=t@=tNTF@@@@#@5`@Q?q)T_@`@``@`@C  \@*`5;*5@C9CGABKAAT@9s@# qrRk@qT` @r@@9_@@`xs@9kaT@9`4sF@@ L`5`@Q?qiT@@a @+@" RqT` @I@@@q"R"R*84@HT;@A {5@*`z5F@"@@cT`T@@<?@@!@9@?qT<``.d5b@@" @ +@WA_BgCoDOƨ_OSD@WuGa ``v-@b@_`TWAO¨_O_JW 6/RD@AA(T<@@9q`TJ(6@GWA_BOĨ@{ta*@*WA_BOĨ_Oq  D(=*34J7<@$ @O¨OgW_*qoGd={:G=+R*WqTqTTqTqT@@@5R G@qap*f*@2G @`WA J_B*gC oDOŨmG@3 @ 1RWA_BgCoDOŨ_O3RoWRR_Rg9?+Rg\r7-[G*7@g@*qTTqT4eR**!*eRbsqT*!3RRRRTqTqTqTT1@Tq`T@G@Lb `@Hb*@G@Cb*`@?b*1aT+@RWA_BgCoDOǨ_"tG;C@7CG<46 @ QjT5w@@9?qT@9R4bB)R[*@"qT(T 4`@c*svGO@a@Ҁ TR`@:00R!R׺* 6@ C@Y*l 0RAHR*a B)U`@R* 7*7**R`*\0RR*a@ 0R!ȀR*7***a@4@ b@c*/@*@5*k@*OJWK_L_cD@d8AqT! A* B _֟qTd@J2q9 @O¨_W vGO_ g o k@?)IDD f#b!h '(*#@!F@@R"9 r c/@*6/@ 3@&qT t4 4[&qmT @F5F`@@2%*`:@@ 4R!/7c:@B HA RF`>aR*a:@c@y*% RC@rSRy`>@ARγ`!Ry`>@Rȳ`>@! v`>@"RAgR@AR!*bRlARb*ha^@?q TT?`qTT? q T?@q TL / R`>*aj@RKa>av@KaBa@K`F`^@|S`:`R@@5`J@aA*#RBR|D`T [ d:AbJ)cAB|!a* '@ @4`>@! !`@@9?q!T@95G@ׂG9 a?qTa@ OR7`6`@YW aR9* qT/@qTD)Y 9@:a.@b&@`F@4 4Kq@ TC qcKtRt6KRB _kITK`R{*@!`J@?q`Tb ?qBK[ ?kITK <R k Tö'@@R'@XG@T'@!R19';R@Rt%`:@ 5 @ 4A R! bKTC K{A !B@?AT+eTaA Rh@ @|a:A~_kT!@9J" @9 5@8}*`:A@@9*BQB_$qhTq(T@R:`A9`7*@RRSԐR rK`>@"RR`>@RAgRy`>@CAR`>@(aR*Dc@y`:@?kT@*v$b:*RvG?@@@TNk@ROHWI_JgKoL_ѢO*@tGW_g o @/Ҁ@` @A6@ 3ARRR9A@8A5@*@6 @!#{*"V9R@Rr!~w QW R+y I5C!qT@@@qTvG I/@@! TT@3aR@qmT|@@q,TGTGb @y"4҂6ka8C48!B|S?@!T9@a@@9_qbT@95zb?q$cBnG@n`@x6QqTa@@a@@!@Ks!zb?q`BcWOFWG_HgIoJ_֠D@J"@#@86 RkT (@b!C)_ ?k_ @B _k7*D@@@kHTQR7@(@Xa__q Tq@TtqTlqTqT RQ_QD@ (@ (_RAD@@D@ @ !D@@aX7@AO**#OOD@$@4!QdOW*D@`RA4uBv`@kT@WAOè_`*@RXt5b A`~@4"ha?kTR[a A`~"b !OgD@WϒR_ro4@+?kT6'@@J@6"Q7_A~@7 @r!T!+@7X`7԰ѭWR`GC9??_ CkTR w?@@@C@R @,qaTҵ`TqdTGRG@? w@RR= @? T7RaG!h`8? qT" @b_8$qTB"  9BJ@6?lqT"WA"4"QB_qTb$š6?q !W?W" @?$qE }k+T" ?(qaT R? _ +@R"@Z +`ї!+@"@$x"!@ _A`4!!!@ϒRr?kT? @ T@@@,qT *! +@WA_BgCoDOɨ_@R?q!89h5!A A?kT*!A A4@?kT @T @ 7@L? K@T0T @ {O *D@qT @O¨_`*@axaB__kTxaB_kT!"_q Ta`a*@`@!`!_kTa@kT`@ TD@J"@#@$ @@86_kiT*# @!(@!b!_ ?kTKAc@ kiTbK"B6?_{S[ckstG@ҠD@&@ |@<|pc c TC@ <@c CTCJ@69#Q*@RRR@_<)@9a94"?$qp`?kLT9s`s|@C^b~@@GT@T} ԂT`_^R*YX6?kT@kT_C*R~}kz4@k^@kcTC^\@_kT!^*^~@Е tGR_@B@T5SA[BcCkDsE{ƨ_=O W_c-tG@GҠD@z@1cT {*`6z@1`T@ztGGH@B@T6@Ri*@7#*d*5@  @q!TϒR#r*Tz*jb8?(qTkTBTT c-WA_BOè_֠O D@@@ 66@L b@_qTf@h @*Q*Ђ"@J86@b ks** z@7 %4 b@?q)Tf@?kT:@!X`  @O¨ &*z@qT| Rs s<kaЮ @O¨_֠OD@`@6Jr`TO;`@45O@Ra6@cb@q)Tbf@OT! OO_{RS[RcksCtG@D@Ё"@?kT`J"Rj@T@_TR@07@@K?kT {~}`J6&@.@hu? T_]l&@RAhu&@!4<p|@pc c TC@ <@c CTC@95eX c9R"B~_JT4_A!! .ij]\Qk`84YiTT#RZTT} _K_$R\s<p|@pc c TC@ <@c CTC9)`@95îz`j`84ѭ޲cdja8RqTbRlq@TbHd8k!8!Tk 8stG_@B@TkSA[BcCkDsE{ƨ_֠СD@!J@@'a86|} 4C(@dha! cha_c_kTC @RD@kBTk#T@$@D,@X!!QID`|@_&Y!kT4x` _kT!kT OD@`*@ @``6@ RR `z R`^$`ZA4 4Y @O¨Xta@`*@?k"T*R-T R!ҫ@ttvGI@@!`T,RRARRӭ4!!``qT"*m#@7!җF5R R AR*Ri@4ARR@OPWQ_RgSoT_ѣctGO*W*_C+`@`Rr @k(T<@@9qT@* *`4?@@9qT*@s ctG@a@@Té+@*OBWC_D_{S[*ctG`@҃@*@<p|@pc c TC@<@c CT3QcQs*RsCR]k#TctG_a@T@ Rs4@ Rn@ @SA[B{Ĩ_ѠO tGW _ g o{"@O!'A!)+#>@!@9?q!A TcC!a*@>@G"@9}`_qT@@++@@9_qaT@9b4!@9?q!HR!ҳ>@!@9?q>@@9q`jv!xSų*!Rr6*baR '@RIN*>@@9q!T 6/@R@NS @!K?k>@sZ@9qT(63@C4>`4s!L[R@*QjT/;R@ @@ )@;@K _ jT***kT>@@9qT*@TkR֒r;_kBT>@@9qT@K ?_ jT***?@>@@9q T@*k T*R*@@ ?T>@@9qT:qTwK k!K RkBTqTk!K`K@ kZk*֒7@"R6@@V>@@9qaTU6;@*kD@@@H@Z ?T>@@9q@T7@R_X@tGO@@B@TC{@ROJWK_LgMoN_OW!!GД `@WAO¨_Rd@KR**ERҁ"RAR_OW @{R*7BRR***~V*@`@*WAOè_5RRCрtGOW_ g o 4@c@7Ҵ5@ @@H!2 *4!@55!5VR"RR!4!@4Xέ*6M*:*3*66RXRv 69h*ҟ TtG7@@B T34@9kT7#@kaT6@#@ qIT} ! 8ZS@@Rr@@.858#@\Z@9qA@9qA@t5@! k5@7`R997@R#9*9 c@ROGWH_IgJoKC_OWR`@95*WAO¨_R 4csR5A_O`vGW_g o [@/!*sGv}Ӗ@2 q9@AR_q*D@z`Tԭ@/7j`ARQ*7CR7U 6#9a@*჊R6$v R:@9_{q!1@TX@Q_qTb @"$`=s"_{q#TQ_$qT#@! #!!`x#@*! `x#@ #`@}`@y`@u+z@X1T0`@d/`@`cyz@!<R@4!*4O*sy*჊Rv7*aRr@7*Rm6>Q|*RjTsvG/@a@T'7CRS*6#*7@?Lql Tiq TlT q@ TqTW5C)K3sb#@RR k TlT@qT TqTT@qTqTrT{S {dxj@TrT$QqT*4@@#ch @ATaT3sB8@`4C)sn !<C)/@34sj @B)hE)c@y s@y4R?kT<Ĥs  գRPˣ#ch aRR!RARR_{qTsB\qT![`xbA! [@ROFWG_HgIoJ_O`vGW_goK@* ?!4 4@sG!Rs@sJ*|@@"@9BQB_PqT (š`7 @9@4v~}T s3jv `< s"`Q\+`@I`~@@+R £Q*xqIzTk;TLzK68T @@6a@H@R?jT@A7k(T?1T`@@*@R'@9R ROW_@ hqT9aT@!*@Rܥ!`Rإ@ @R*kTf@!AK@  1!TB@@qT @R`RWA_BOĨ__O!tGWgo @K`#c!$r!G6@6! 6!L#SR 6~!HR@r"!*~}6*!RI@Z+@<BQ_q(Tt D}R@4R!@} š&qiTTR  R9!~Z?a5r Tss`f.$s*!$~@!$4 %"#@ ROAWB_CC_OWWAO¨_a@SEA,"(.@ @ (.s@Ob  D@J(7!/lG@@3 @O¨_OW_goBB@944%kRD@DR`@*Ht88 : u4jz8?kTbZ`@@4b tB`@  C"T!C BT} 0HTaB `Q`@ `Rh;8yz5jz8T4Q~qTX%&tN4 @b( B90`WAgC`"_BoDOŨ-уctGOWR_Rg#:@`@A{v?{6q {62߂T*@@94V2Rq`TK~@5BT} 2 K7҂@ -R!Z"t@R2@-@[Y ZctG@b@!ҠTt@! Z"ҁV@֠R@@OYWZ_[g\_Cт_*AtGOW#@ҁ@ !J(7%#1Dbҁ$qGD@BDZ)bҁ 4~<[saڪvG@@@TOBWC_DC_O TW_g#c-`vG@O > D#!%sG@su}ӓju !7[ q!Tjus"c&7ΫR`@U`3Re:`@@9k9Һ@+lzwTj&!R@+_2&^zusx-CڟKB`3!R9=:a@b@+v*@T` @^s@@E ,(Zy,a @N`"@@s@ATj&R2&&zux"`,a @5`&@@s@!TR& &4ICc*c&R8&RsvGOMa@@TF Tc-R#@WA_BgCOŨ_O 4@TR P*4' @*O¨_с!tGOW_ @'Ҡ\'/7?!''N'844@ RR!RRb~` Rc`(9R7֒`r@/5!tG'@"@cTߞ(t@@9468a@c ?d@#@bRf@PqBKB0(OEWF_G_OWJB|S@QjaTJWABRO¨@B$h*>q,TsR۩W_CvGOgo;"@ҁ;J p`@9q` T!%<)p@`)LvG@@`Tmv8֢ -URR`+6@+@6ׂ_5"BqT- @B@9<@9?qaT!_8?@T~9 WC_DOBgEoF;@vG@@T;@OBWC_DgEoF_O`vGW_g# @_ 9aCc!d$4rT J02 G@c+!%<)5!.7@ R֒r@.`5R`ZuvG_A@T؝@ARt9R@HX}`jy@R5A@%wj9@9a4A R#@WA_BgCOŨ_рtGOW_֒@Ҡ+!U.D@@ Rcr@`5W.tG@@BT@Y. 4@AR$`9@k(@6BJ_r@T"2(6 @@`@!Q?*@@BOCWD_E_OW*_E7A@9?qTHT?qT?qT4#$Qcq(T@@9`483@9qATSRZ@@9`4BBWA_BOè_ց"D@@O (@JrT R?jaTt!2a*D@)@!,+` @` R @O¨_OW_go(@+J7`7_|Р!L++@A @4+@*WA_BgCoDOƨ_ր(7@)икb.,,9RR@)EJ(6`*@7RR` @R.* 44a@Aa @,Y`*@x`*a @`@IT!D@!@J06D@!%Bh՚k`*@7Dqa4u@Uu @*$-P`*@2`*!RBp 7тBtGOW_go@@آ@9?qAT!RBtG@C@ҀTS@AR_qT"5!,R`@RеCR&r@ - 5,!7 @e@5@@D@@@Ra @5@Ҥ`(`+@6x`+@Q(@7!2(@@!-7`5@@@@"!-(5@z!- 5@(@!2(OS*WT_UgVoW_CWvGO_go@4DbB$a!$G*%`b`j} 6!+b,@@ Rr@p,5RvG@@!ҀT RR@AR.@9@@a@RK`5@"6AR j{/6R 4-!\',Z R`r@-,5,!& , Rr@,*5 ,RjT@0@`@@.P.`@4&`@40&}зйj .9[>!.c (qy@(@!2(@(@!2(j{!R`(@!2(@ '(@7A6x4*ž@`t4*@7*OTWU_VgWoXC_OWWAO¨*|@'!!?%WAO¨_!B@9C5_kAT9ORW0 Rs8a~@35@WAOè__qT_lqTsj!8s OWR__B*WAOĨ_a@94ͤ\'؝ !tG"@҃@# Rbha8"4_qT_qBh!8!?Th!8#AT!tG@"@cҀTQ@_WO!tG_*"@#R@@854}ӳjtw4 w` jtj4`sN!tG@"@`T#!  ` @U@4s@WROQ_S_R"ROWе._ g*RoGZ/@WA_BgCoDOŨ_@Ua!,R4@94RUAK`F COW!tG_# @s3sR,*6Kt@@Rk@ M@!`$wS** "=q@z*RT*a5!tG@"@ҠT@K#@*OAWB_CC_ւOS@@*@ `@O_qTlT qT T qTT1TqTqZߗ0_֠d/x0(//ORvGW@!16 @Rs@6s2 6*ҾqNzTvG@@`T=1CGz`#@*4,"@ROQWR_ցO"tGW_go+C C@g 4G@"@@?`6@!R@@?P#1<R+,RR 2@R#Ryy# # @# @#P q,T: 4vGgA@ TΘG@4@@3@?kT@5G@ @94`5@`86Д>cF)h22@762(6 @3*ch a!%s+ZԖ9G@@@`?@7@@@@!!2@@?42b@@2G@5@@9@4*H3C +@WA_BgCoDOƨ_RWtvGOG_go@` AR*iaR$3>`h2K`CcfB!3 *G@@`T@)`@B4T4ڟrT @.G  @B4 R G @@_qT@4ğ!@"@_qT!@B4H58HRxj(T54OH6?C??@@?`6?TBT} ?T?cTw@B5J@6;$R`RcH6@A5`>a2@4c:@4b>@KkBT?qmT!Qa2a6@4K$RrkiT Rr R79J@RbN@939~ Ry_IT} tRCJ3@96a#˟TdrRR`R aTͧ`6`B@`BJ07`F@`F`2@`5J`7`tG@@BҀT,aOQ RWR5COs`vGW_ g o c@7ҠD;"WDRAR R/aR#a!& `86'@"RR!;HR$Rrr;Gc@z`X;)AR9@La&R`R)Mk@a"R`Ry7!T;RjT!;`JvG *7@@!-TBRR =@#@[5#@;`JqT@`5@`J`6@4ARR*ġ@*;@RyH 4*R֡*S RrR`R̡R`RjO@9B5!= Ry@R*;4!@<t<*R;*RPAyqT<@@s@/`J7@?=@9@=CR$AR!@R!&=!P(R8RK R @CRC`RR6=%kA9_ qT/By@Rqd@zAT@y#By"Z "kT? qaTq!T'By qTWD9qaTSD9O@9kT xS@kkT*D`TBT} TcT#҄kdD!+T#TTTka@3k!T{Jc 7@?kAT@S35@[ 7_q:,;;Z{q{+@wD9 >sD9oD9kD9gD9cD9@R?kT3@#RSD9SZ4@50 f@9e@9\>d@9c @9b@9jz8ג7@47@}RK">̒K@KkA94O@O/ByqTS@SzJ 6Sӕ4@@4?kT?Z/7O@9BTCTZ2uz &ITc@OGWH_IgJoKC_OssG}qT9O_ 8TQA|@cb8(qT*j!8ѢBH?Wt_#vGO;*@AҺ|@1TiT} ?{#*74?6G`Jd @9qT@95VG-8 R`8`@R#RvG@@!TqT@9@5`N@9qT`R@94` @<`Tv46RaN rN4и0R;@ODWE_F_O`RG8*OO`RG)8 OÚCޑѢB_vvGOW@|@1TiT} ݖ)GR8*Р9ʖ`sf.@g R|8*qT`&־|QG Cj$7 g*Ppu>ZiX],BQ@(B@9qaT@94X֚1ڐ~G@9?qaT@94ȐlG@9?qaT@94LvG@@ҀT4VODWE_F_AOsW`vG_*@'B"qIT} !R*uG*! |@*В`svG'@a@@TrOEWF_G_W aO tG_g@_Ҡ@@ΖO@` (r*1T`@<@@0= @8qTVBR8R* 4@3R@*vG_@@!@:T3R9J5RՑ`RL@9?qTP@94@!<`?`T*Lq qTR!R@R5q4Rc`!y4q TcaBqIT} RZ*6*R :* @TcҹĐH T`@9i @sBq RgR_8 fB_8( e2_8d"_8c_8b_8ab_8  qTBH?@1`T|@T?O 7G ؏= ˏ`0l ٔ`־ $(͔v.   g X  X $ l IB=ֲp1w|%lkp._Ga @9qaT@94l8ֲPG@9?qaT@94&|#8 R`8ޒ L@9?qTP@9!4@!<`?TL0 @qT@'ٖ6`С@<@i|S!Q? qT@)@@T `dT g`E `yBE0qT5*!(Q?qT@ @)$ؖ@5*R!R@R*ޘ@ C5@4 qA4Rc`!*\OLWM_NgO_#WtvGOR_go@ҀD;A!++*Z6@cs!X* qLT!6* qTR[aRR RE*CGz`/@4ҁzcah 8ckTo#@Y; }7TBT} ԿT[cT @y yTScTT[To @y[AR y[+yRc 7}!?T"T?iT?#T @yq@#"y!T@5@*$Rc(6 TSCTT#T#D@y ys4b~@?T?T?T#cTs4*54@c*a&Rz  R3yk@R9WyTcTiTT@c @yR'b~@y*ΛwG@@ҀTrRORRWS_TgUoV_OW4a!  R`r''@% 5WAOè_@Rx4MCc+WtvGO@!*G@+a!<@!@9?qT @@T<7R@6@F3Rs696@94@qAT@ z)`@`@RBtvG@@`Ta@@?;6R9 6@!RvbR@ROAWB_c`tGO W _ g o; {@O"@@@9qT@@9q!T@@9`5;@"`@a@wGO@@!TOJWK_LgMoN{@ ARR*Кa@*R)@` @@"|@wGO@@!T{@ROJWK_LgMoN_ր@9qTTR@y#@"@@TД,s>S$R` Z*66!34@R!@; 5?s@6?@s(6?@@y"T@?cT" @ @y@ @*ƚ86RR@@5@j`TrT*a"R#yry"* "Ry*_ABs>S@ @(6| @'7s 06R@yC@@(@9qAT@95H6_qT@) *?R| RR/39 RR+V5@y(qT+@b9RAR*a&RҚ@c@o @k0TBT} Tp_cT@@y@* @G9@@,,1@T<@#qT q59#[ |iT"@WR?dr @yT*.R @0qaTj<8H6jR`RV4*ʒOF*WG_HgIoJ_CWtvGO_ g o c@7K`DBBt,!L *Qj@ThGytz`: RRAR*aR̖h3@@`TVR) ZwG7@A@`Tً"*4`yP77x6`"R24<rAyX7C2R@4?R`R։4}9C{D84`"R*4Btx rAyX7]7R**c 2R6!>R`R`7@5ry<*RS@$R53@3P*`4*@4@c@*OGWH_IgJoKC_ R__a!tG"@a!J?rT`J6 Ra!tG@"@cT*Q`qTTa@B G@@YRWSR@R?jTR@_OI"@9_q@T5'O__qTCQcdqTBQBC2cQcdq)T_|qT!CQc$qT8 ROW`gG_o3@S@YК9,Z|}G@k,T @&!`@!@`@!@` !`!,`ւG@!;`WA_BgCoDOŨ_s"t`@G@o@~|h{6@"@h{|`bBtGOW3@@Ҡ@klT!BDqT} Ԣ@~|V@h``4@5bBtG@C@!ҠTV3@ODWE_OW@"@!@?`4BY!!5RWAO¨_`@!0@@?4CWAO¨OW@"@!@?`4" +5RWAO¨_`@!0@@?4B< WA!#O¨tO  @O¨_`@@9qTs@O @g'@9A4!G*|@cJ`8c4j"8`B!Y' @O¨_O `5js8K @O¨_OW!\ _5 @@WA_BOĨ_!`&4@klT@~|8!h`5@OW_@Us|@a $&WA_BOè_ROg aO !tGW 4R_ #o sZ {C @G=~~||7@95@qMT9?tq`TT?pq`T?qT?lq`T"Ҝ@9 4@9lqT&qLT@`C4!R4 @9tqaTq-TQC~@!t5z`@?h 8@Ra!tGG@"@cҠTO !t &&^g5@5yI@ZK? jT5QC? @4`@94R4 ?*qs@OIWJ_KgLoM_ HOW!?*!9s  qWAxSO¨_OW!)*"#s #`  qWAO¨_$OW0% *!s t&s $'s qWAtSO¨_OW'* s  qWAxSO¨_OWL(*!s  qWAxSO¨_(OW**"s t,`  qWAO¨_--,.8/O@ 4 @O¨  @ RO¨_OW@`40r* ls  qxSWAO¨_@ROWD1_Y 4Vւ0R`~j``4*WAsZ_B`@OèFsT1WAR_BOè_OSs0W_R`@ 5sbqaTRL2ُ` @$*`4ԐR ro  qWA_BOè_A!tGOW @2j+`]A@!tG@"@c Tlډj 8<@OAWB_Cg@OtGW_oC@ҕғ9+PR@/3 @q 4`X69@t   Rʍ9?@9?qT @N4!\ I@ 5R*'$L3@$@943D` \C,@44 @#5: @Ry_klT " @~\@h` @`5|4"7R!4!l 5Z@4!x5G$}L@9?qTL/hqT qTp6@`@955}!< 59@,z@7`@*R.a|:|Ӷyk:`@ `@`A! 59_kMTc@|`h`56GWR**@tG@@B@T:C@OCWD_EgFoGC_ R_ R_S\OwGW_r,wgo @'Ҁ6;ʄGb `<@@9@/?qе!(7GJ}ajta`4k4@ҙJ6@`;9 @vG'@@Tajt@0@!@RJ8'J7G!@/T D77G@R48 J`6@R@J5`78| R :@@ @ԇ`5T ?1!T@@@ @h<R 4@@ R9@7z;9R6R!R6`@@@DqT?qAT6R!HR؈ 6`a;93L*9 b)r@/#T5$#@@5@!05@!2@GL@#@:-@@@S@ @OEWF_GgHoI_OW _ SwRNjt8BAT9WA_BOè_@yR!Q_ !kcT _֢@yRBQ "kTA _R@yRBQ "kT?A _@9@9 @9@9@9@9L AOW@-@; @ 4@WAOè_`Bq4Ts@D /RRFR_TC$ BJc|c| S!qTRR$xSAR_BOBtGW_g!|'o @@7Ҡf(@R@RYR!8h!lc:cZ;@R`RI!`@8qA T?T?T?T_IT} BTgj38nR a"b aB @b" abb a"b ab gA{`fedBb? qTY5~ ~;R{X@5BBtG7AA@T`@9qTS>Tc9R *WA_BgCoDOŨ_O3sb;Wt@WAO¨_ր@+ 4s"O3s4Wt@WAO¨_ր@ 4s"!*!4 @@_@kT! BBtGOW@_*ARgo@@R**&*a"R6*y@@@@LqTAy`FyR`&`h*$RɁ7`"+TbB?TTKBT} L`FAy`By*#R`7@`**!$R`7@`.ڋ*.R5L`o@`"΋*A(R`7@`&ċ@R"Ry*`5 R`L`*"Rx`7L`*!#Rn`7L`*a#Rd`7L`*uF@y*5RBBtG@C@!Ҁ,T"Bdrb@y `;6@v`;@yBy*62@\N@a@c_kT2@4@_kT! @a4 dh`84`" ?2`F@yh6aA9 3xa)`F@yp6$@R`@4@!R@`"@? `F@y  6@!R`b@?x `F@y 6@!R`@?@!R`@?&`3D7;'+3/CS#D#Es?1?@ ToȀ`Fy5ÀbE)_qB@R`@4eR9{aZ@bj@( cr@?qTa~@$ eTa^@ bn@cv@a@ ?qTa@ a&@?1TD  `b@! `f@a!` A95`@a"@?`T{a A94 va@y?qT pa@b@L jaA94 e@RZ@RXQ5D/@o7@ 'qT'@@R Wc@R!R3y;@@;8@ q`T TqTTqTLT54 =)PdTvДf-{)aFy@y?jT & @9`5B@OUWV_WgXoY_BBtGOW_#3@@@5ARR*cō*R@~@ԋ*A"Rx@kaTB@@k T*L@bT!R1@*1@T@TRBBtG@C@!@Td3@OCWD_E_O .Oą`@7``* `pO -@ @H/g!!?!`OBB/WTvGO_g@A!0**G@s(6@ ~}4 rTzr`T@@~jw"@94 _qT?9!@9a5RC 5jw҈%RRRq6R!!Z !*B|S#R@4#@5@h5@_@R!Z#kT?q 6 @ 36 @@!*36@ @ ~6 @~*@~3 6BRR?jwl@la@~TvG@@@TOBRWC_DgE_OW_go<T 5Ҿ97RŠ `@942@95qT@@WA_BgCoDOŨ_@9@48KB!9"%2l!-  @(WTvGO_go@Ҁ!@6@RR<@"A @2 Gt`z`c@Bl@oA!RAR*A*! ,1@@Rr@vG@@ T@tc@@Rr@5B;s@ `IT} #}e @*a$R$NO@@z42@qMT@S~+S?|(R| Rc'*C}RS`RC(R'*}*$R}A9`@5`@5`2@1`TkaT`@ʀ5y @`5a@@a@a y@ROVWW_XgYoZ_g*@OtGW_6o^RG"@RR)!*c1aTG`yza:6@AR*aRS}*`RP}qT Tq@TTq`Tq TqTT8qTqATG@?$@;$G@<R:Rk@@ @ lAR*O$<&#*"RR$*@84FC!!@1)@4@@ 5 *BҾ*a! c?TT@?iT?T} *ҧ7@!`R*x |`R* ۚ|*`R|;@$IG*KR| 6  Ȫ/ Rc@@Zg*e@*@*`*s{@!`R*c |@`R*bۚ|`R*|Ay*AaRBZB<|@$IG@ 4!aR*|4 **`Rx|4L5R~B|qTR`6RvG@@ T%~7RRy*a`RN|6@@@@qT*`R*ׁ*Ձ4*!@ROXWY_Zg[o\_OA*@ !GD@4@@?qTA! ]~xe*O*!`3R~*O}!R~AR}@!RD@`{O@D@ @ @`{`5 @@@"D@ |**O¨_@ R@@OAW*!tG_ g "@74Aq7!D@/r<6A9`RxR>qTO*?? =*a +|qIT}  RRcj`8B cDjc8c2C8cj`8c @jc8c2C8F8cj`8dQ|qc09kaTQBss@RBK@8BˀRW5A!tG7@"@@Tb}OGWH_IgJ_CA tGOW_goC@ R;ybRKy@D@@ @#@4|Y9+VRRR @@4}RARrk|BcA@qT@@@@q T@@4)`R RvG@@!T}!T?y5 @q aT@@qTG@ROy42[`R~qLTT@@qTQ#?yR 4[CR}q, TQ!R`R#*4*Ru4* R/}qT @P6*R@ @4K4T ;4@ @*4RS @qT` A@9?(qTBBB|@`R}qT @P6*R@@s4{K4T@ @4*|v5`Ri*BkT*t*t4@qT@@`4 ɄoRC@OCWD_EgFoGC_O@D@@@`R`R_!RR{EtG 7OW _ @?@J6@D@`@5@J7@ @`@@g@sz`5@R@t`RW}|*@6.!R`Rb@`RA`@K$EG!@| a@R`:`@9`bEz5@CRD@`Rte@D@ `6`=>|@`R~<"D@B!CO@#D@W_@47#@OAWB_CC_@6`BBa@@cF*bD`w@JP6`.@` v@R|OA_CWB#@C|"BtGOWA@@a! ~@A R@@9tq@Tj|bR@@ARt D@  @Â@"BtG@A@Tqxa!@ f~@Rw@@@@`5@TOA RWB_"OBtGW_ A@@ R4@9@R!Q!?$qT#!bB` v*?lR7v֎ !8{`~@Ѡ7v~~Bp!R*{qxS"BtGAC@!@Tx WA_BOè_OW_g#uy9 R#@WA_BgCOŨy4?֠4**{#@WA_BgCOŨ_O!W !tGSCgB"@?abb2 a" f"ae!!;y qMT{ TaByavR!!tG?@"@c@TwДbRURyu"ybyuZy RS@OHWI_C"BtGOW#A@7*5k@y(q!TG)K@!*G@*!*?q@*B/"BtG7@A@TpwRqT;@qWH*OGC_C"OBtGO#CA@7~~~x* 5@_qT_q`!!k@y(qTG)K@B*G@*B*_qbB,'N"BtG7@A@`T3wa!0"RqT;@qOG*C@C_C"OBtGO#CA@7~~~8*@5 @@bB&xa"BtG7@A@@TwOG*C@C_Oր <@D R`a!`"*6`@x2`6`@2`6`@2`T@6`@ B!RW @RO¨_֟wRaR`t P7`RrT`@l*``@rT` $u`@? q T`$teRCdcFb`\%B%%*t`@` 6`&`&`@`(6`'`<'`@`06`x'`'`@ ?6`'t`@? qT`$taRC`\(t`!.d)n`"`R R`c L*!R5`@qT`"~`h#6`$`$%6`$`$%O3aRsGWt@``@*c`R~h4a@@WAOè_OW4vG_gC@`+wx#@RVyxtG@Ry`aG @@9_qT@9@5?svGAa@Tv2t`,ta!H+*x`5`G0@5tG@y9!;x5`G!R0a!d+x5'CWA_BgCOĨ_W4GO2*@`@*s~wh3>R*2R"RRt@ OAWB_OW*_0qT G@sR yw++KҀ*@9 5WA_BOè__B*WAOèOW_go+#"BtG@@_`@7`,sc*s*!4"BtG_DA@Ҁ!T\u@J6`,*!Ru5HyHy?qTT?pqTHT?@q TT?<qT?0qTHT?q`TT?q`T?qT?qT_@ykTqT?BR@RNxA9q`-gs@qTR?B@R3A?B$'t7A9qss+ss+ssJ,qT`\-=s?Bw*A?B$Bt 7A9qg*`-&s4?B@94"Rv*?T?BT} ?T cTsA9qA`.qTA?B$҂s7A9qw* w*w*#@***rfLqTA9q`0rA?B$s*7`.rA:$ҕs*`7T4`.rFt`@/r@t`|/r":t`/r24t`/rB.t`00r#x֦9_.#*+@WA_BgCoDOƨ_O#BRW`tG_gRo+C {G@'}Ra @ | Ry@@y@"D@Co@x@C@"D@ZC@k|z@ @Å@ +w@kT@zS*` `2@!KvqT#C@@ u`6` z*@ @KkT@KkT*a@~w!"@4C@*!06t@`p0zC@wvG'A@ Ts@5@`0 r@`0r?q TڂGU@2@Bu@4@@k)T @4/A9z _ qT4C@Q*s G*@!@6@K`*1qwӺ4قG@@!!#@"x``ahd1q R 7@R~G @kT@!@1aTقG@ @hd@qC *+@WA_BgCoDOƨ_"@tGO W 5 _ 7+g 8K3kR@G@GCR`Rr@Aw @9q!T9Rv@9@48my 7qMTqT!RR`G 992Ryt 4Z9#_+q!T`2z R *" qT!RCG @2@ @!5@@Rq 4!!1`t 4cp<Rb8!B<@9D @BDdhd8bhb828B288?@!Tss2Ev@)T} ԪG@ 5@Hp%}Rc9AGc " @_kHTGR@kT@`wqMTGuеF4R@?k( T`4@R}G4@<@9@9@9@9`3}@R#q4@9@9@9@9@ R@R7 28R#jT`~}ӡ@j`8s*T"@|wd B|SF09"@BD49@skT`h3p RvGG@@!Tmr@a~wCc@4Ahap Rsq`T@!RG 9k@OIWJ_KgL_@bPRrlo}&K'" _  `_"?cBD@^@+_RDGRA@F#|&hc#cD@z@R_4/C`$|&!Q!@m c\;|{[b|+~hd+~ q!Th]8/A `A;~w^?T `@AF @<_ D@XA9?qTRX9RT9X_?$qiT!R@>@#~ןPZ_@>@#~ןPZ_!!D@"X@ "X_q T XA9?X,qhT X9__1T6 XA9$qIT XA9?XqTQ"R X9!@@ "@C@6b^@;^!@!O3R!D@!XA9s"ksraQ!2A  O_x?b"Zkk=8?gy!Z)_Z`Z ccgϏR@ur^?kT>g(_#ctGO#W _ B`@?Ҁ@5@#ctG?@a@Tuq@|OHWI_J_!!tGO W [v" @GaR``@,u`@*ut` D@H@u@4zs4`T6yu@ @y(qTcҡ2# @`"R!`9!tGG@"@T"q @`@9S2[@OIWJ_OW_ot@Q{jt`"o``R`9 aD@`@T&`@w N@@NWA_BOĨ_@@x@s5`6x`@t`@t@WA_BOĨt@y"<!Zy_b8?gy!Zy_Z|SZ!<<?ccg|^_{ S[ck3m;m;tG@ D@N@ |@|{pc"c"TC@<@c CT |Cpc!c!TC@<@c CT y@CF 96R Flw q( TJ@qTa`!708Ex tG_@BҀTfp@ @9Q_j@T%Dm#R'Emn@=Gm(dZA98e o` bMdbMN(}M(aP `T?4@{`;`aj"m@{baj __m +`@{baj C_mJ@qT!@x@*c1oyR d" Q F RF%KRR|{ӆhfcKk(T|{`@|@R@6C`qBkTC`{ӆhfc kT|{`@?kcT#~DT!?kHTJ@qT*c`c78wqBzR@#T#~lTb~| @@j"s!@9=b+|}Ts5J@qiTbRB7` 9w\*c 2ҷnq)T||ja?<@#kT/=4@"||!jb^4@;~^k(T`#l,TkHT`b`Up!` @`lTaQ**kTsKksQs *C`C`*R B @ 6@@a@9@@9?kT6!$||hdTkHTB!;@SA[BcCkD3Em;Fm{Ȩ_O3`vG@#|@m svGa^a^F ^F D@(@a@@TMoOB_#`tGOW_g37@ D@@a@ `J@@` 4`H9wbVA9v֒9w9ufzn9b2@`:t":\zn`ZA9"RssZ:B RznA``t:Kznommmmrrr#ctG@a@@TnOBWC_DgE3@7@rctG@a@!T3@7@OBWC_DgE_!!tGO W _ g o{ @OҺmp D@ FR`V9BYv^f"` e`d`>!3*v:5@6aRf`:a"@@4v`:@@ `:@ R"RR6RRZm7R    6#@Z#{K@ `R r+`: @+@P q@T=@y9;@ `N@5w4 R`V9@5`<6! J2 @RunR!}R!@r}!!tGO@"@ҠTUn @@9!2?qT@b=n4`:vR; @!hn*qT2@` ;u<R4 7|S*v@ R*@@/ox/@@\)V@TT} ԁRTa/m @R!R=@0o5ARsq@or9R!R%AR9@*`;A@#@kTtB@{`;YР R9#Z? r@5]'@p5+@`/@3@t!|!o5!RR*@@@?kT@+@3@a;`0t@R7~+@A``>t`@ nu@+o>@+o>@+o5 tG'@@B@Tl@!mT@x@m+o#``T;o`!T!mdT@&@)&[@@+o7TpRJ@;@?@OEWF;HmC_!!tGOW;m$@ @o D@>@#nT6@n5`! TJ@7`B@j`y:@9` @ ~|@ o:m aVA9F O`B@9?kTA``V9`9!`J@qT@`D?tR!!tGo@"@cT=lA`5J`6RKoA`.`)n/:n>A`@R @9`R9"@`R НzEmF +}~&@;~vGm\F3+m#~~2@+}+~m R%?g $ x?!Ѐ#?! R3`^@ q@4T!O?q!Z ,Q`^ R3aRA9063@23863@23`ZA9a@Q|@?qIT#Wo6`0r@ `2`J@qhT R#BA`@`;@T"@bB@s@ONWO;Pm_O WtG? m@7`@7#4`@ Rj`B@@qT,qTa@`tr?`T ݿ(6a@`=os tG7@@BTk` @@C` @@BQBl4a@`Us`jA#@?kAT`nA'@?kT`@7o#@9` nD@@qT'@9`Q8qITa@``8sZA9 qT/`*!n T@/@`@@zCm8o@`e@9;z;{ `!L`a"4b #` T b9c9F {O`|m@x@`@`.t@d&R`24a@!k! DZ9z;||@l`)} L pm /9&6K ƚc+{ LHe452e9JJ@*5SJ/74@?qITJ@qT`rZA9  |!g LTa@`r ƚcoBoNoZoforo~ooa@A``rZA9 q(TRv/qR!vOGWH?Im_ tGO W _go;?m@_|l`Gw@yss}ttw@ еvSF  I5c@R@'@1T4R` R` yn+n/@)~z@=!@9s@*x Wq)Tc@1kT}Rl*5qlT I4`< I`z@>@#T!@?@7~}Ӕbaj !Rj Ay#o@Oo @1 TqTR9 @ @yBR*@*"D@ v_ qT* R"RR7@n`G@H@4!@` r*k k(k o  @9!S 9 @@BZ"s"@ @@@$@" @RB@@D@_ckTR@q @m<Rm<A9 qhTR@R9!@*"@9* @q @9`5**A9#R**c `q}R~k*yqTc@R1T`y8R4Q5m:Z+qXzIT}` y`4@@6x@@Rij|QZ@'@;~#nT/@@5/@A9?@q@T@!@95@/`_O@`Z:@@#oiT@@7*+/@c`@@#oiTc@@@9!tSDO!@RW5jG`bBaB@ga@`g`G@ ˂ |`4 g`GD@_1T@(@H@}RAd"` g RsGRa^@4`@_lO3W_*gy<*AzaG@KK"(@@ ( D@kIT4D`GH@?kBTHeG&'Cư!  R hf8jT@ssV  J7`***t Zg}R` "Sg5hWA_BgCOĨAt*h&8ssr @WA_BgCOĨ_+@tGOW@AG \@4!X@?kdTRdG#RRb@A@$CB`c B9## 9bcBa>@Ru@"~@)ukT < q`@4a@?@ TRiHRGr`@C`#RgvG@@`Th`@@sf@R!9ivG@@aTWD*OC+@h`J@k|Ss+@OCWD_OsG a A9t>@b@B0TjR9y`@Zy`@y yz`Z a@! y @O¨}OsG a A9t>@b@B05j9`@Zy`@y yy`Z @O¨dCoW*@wGOTG_g"r@Ҡ( R@RfFr!4* 6@ <U@6tG@h5@RP6@RRRA aG 9yG4_@T4ya R!qHRr24_@4< yG F%g ` ~y cJ5fZ y`GsyG2LBR!S"Rz` CG @@y @y?k@T? uG`B@F&f @`f`G@`$f @y(qTBRaRwg6 @@@_qT>n"RaR@R @y(qTBRARdg6L>oAR*!R Rr`G@aR zG#@@ @kq@;@@ @y?(q"T*0q@?A @B<?<^'=_É<J` 5"D@sJ4R tGRR@B8BxS CRRRR| R!RR @@4a9@Rh/'RS Rc7`G4s+8@h@#RRRsRj@ 6 @@@q@T@=Wn5 J6 |6 | @RCy# wy 0TBT} T!p_cT@ RR;g1T 8Hf@R:jRk1T`h`GGAyyo@+==R"RARRg6a@!tc\@[@ROFWG_HgIoJ_$c5`ehb89E5_օxbB?jtGOW#_Vg@R$ro@@BABh!@c@ [c$q@T7T0kUg`4ftG@@B@ Td_RRER#_85_q!T!*9*@"8BC c _kaT 8*(qlT!3@C! #@R\Rc/cbRyHC@BBbBh@R/cbRy3F)?@@4b+h@OVWW_XgYoZ_OW @@@@`@sf5"`@9 6@@hB`@9WAO¨_gs`@9 5RW *CtGO _ go6@@W A!@Hf5* OccT_T} RRlg8҇*6@kT#TAq#5Ry R@@ RAR@Ro*6l*a&RpC@qTa!R*ptGW@@BTcpQ?q(T@ @xax@*@;_@qT>Hq!T@@6 h7`6T#_CTTTA@2SXqT5 !@a3_!ROKWL_MgNoO_W *tGO _ g #s@OT7*@`@@gR ey@`"Rf`!(!ZO@R9ye6@jSsBvR9W4q75BR Ry@@@@yH6?@(?O@c4`Z *b 6?1T@\j(6@@yzbx*y@:_@qTyDqTO@@5CR `6AHq!T@y`7"R@yq!2y4 T@LqAT@y2yiCPqAT@y{@2y^GTqT@y2y_#y#Ay|#y?@XqT5 !@ _?KjT@o/@#jT@4jqTb6ORAR*nqaTa!RzotGO@@BҀTb!Rs@OJWK_LgM_BtGOW**_go@@o@Taq@A! !@`A!ba 7Z[XZ{?3#sScCcEa@,qT6d@5T0HiG@a6#!OG@`H6 R#9s@@Ry3@2#yys@7@2rs@ d]`ee4J)@_@R`I)S@cBtGo@A@@Ta@ONWO_PgQoR_tGOW_VWgֆC@yR@3CA!*6 @A!3d4A!, d 5s2Gz`tR4 c4c5y9&fa1#h5k4@"@44vG@@ҀTa/OBRWC_DgE_R`REe4 h RA_W_*vGO#G@'aR`RSn*TT"G@TBBT} !G4=@<R@<~ =}r‚p6/@НRrRl`Nx63@!RbJ@f`BR`6T6Zy8}BPӟoaZ@ySBR9jx@y` *qT! a@!j`` @@bj` @a6Ҩ`6 qT"RaR*7laRjRR`R 75*RBRaR@R)laRj"R!R`RCRRR`R54BRaR@R"RaR*lRjb6@RR4A!`A!( tg"b4#9 Xy qaT@RRRM`4@4@Rk]3k^9k` @jx@]4@`]aJ@b6@@8]vG7@@To_` @aZ@y!Z!<a @R"D@R@hgf"D@`ROGWH_IgJ_OW_J06*D@@\9@X52@@9@4q(T|@ xaVІ@9WX*@ p]kT@@RWA_BOĨ_jQ$qHT@! HqT|@EХ@T*R]js8 sN]@WA_BOĨ_BtGOW_Rg o [C@/lD@ @@5iC@@#'+K@k-TBtG/@A@8T^#@*RR ]@!G@?kT@R j@5qTG@QkJTiy4O@`3@c@`4+@4 Z )'@J6Zy7y!!K<rRy3@*4R!RR4A*!!@4!xe4P99BRRR4A*!|!@@7[@y @ !Z!< @@7dD@R˂~@jkT@*Kfo?@}RZ{?#@/@!`RS Ry7*C!qMTACR@`RD@F+6@ @o_e`Aw!*{\ 68u]5Rx`*R^R^@aR^@8`R`@[@8` @<_`@Re` t@WA_BOĨ_]`5{R']`5`7Rz] 4@R9@*bt R`*OW*J7D@`@`61uTa@D`@a@5`@4`@#cH*5`@^u5@Rc WAO¨_OW!RD@Ԃ6^@`+bߒAR^@9R@94?|qhT?$qT93@*WAOè_9J6G@B[Oa!0WD@ B94!ff@82QB_dqTQB_qT(š6qT@+qbe99=*qTVY(qA:WAO¨_WvGO_go3"@3D@w@3Y`R yJ@7Ga@@?qT@ ,]R`@@5@zb]\5C@`@4b@_T_q-T*!\qT|@`@Pe` @` `@5w@ R+b2@A!X,Z"R`@`@2\@b`@ 4=:u:C@R_Y``A@4@,a@,q Td]4RT03a}R!ҩ54qT@)Zb R` `B R`@@,`@"RYTJ`7`@YJ@7Ga@@?qT@h-o]vG@@TYb2@A!-XZ3@OAWB_CgDoE_OW asA!-?ZJ 6AG!.@4ZYU0D@9`B9Q$q(TvB9߂qT9`v9@WAOè_g wGOW_o@ kcGDpR`R!Z`:@.`a"Ckfe`2dcBX@A!D0X`bA9 7@0[@0[X`bA9(7A!(1X4/@@`bA907/@A!1Xb@`bA97A!1X`*@`X@ x6`&@\*(`"*[`"@ `bA97@1[`"@[*c"@A!2XWc@TV!RZZy93`? ?@C[qlTqTqTq,T8q T0q,TqT`4qT(*Kb#CDb2@R@Bj.@B.BA!/NXk?U[a@4@qן;W@3[(a@?@@ 3_Ra[?T@9?q$IzT?@W@]`5BRi`@@@@4@t38c[S@Jh7`@6`2@a@0b`S@J7`@b`TuYңqT@a,7qTL[@Y4@4 R`@q`CzT@qT@4_PY @9qT3@?[ a3;@@#cW3@;cQWR3A[5#@*'[%[#+C#ЁTU*"R(OpqTG@D@ARZ@?8@5=qT,qT@54qTG@D@@05!GA9g)!.@h5"@@5G@9D@TqAT:BR i @@@4@5% R @;5qT@6qTA!6@6^Z7Z<GT@p6 qTcUR*"@A!6!YxqT @ @@6XqTA!6@7K@G@@6Z 7@ 7~X#@pZ;@nZ/@lZjZ'@hZ3@fZ*@ROTWU_VgWoX_OW_go+C! tGx@'@d7@-?A@RRT@E* @@4W*#G@8RY.X7@9Xs84uX` 5ZҿbB@8vTS@XAR9 J 8!j"8_`@6@TTTBT} _ T*UARJ98*6Z7A!7[A!7[*R?kT*s@[A!T8[q6`:RJ7YtG'D@B@TUC!+@WA_BgCoDOƨ_C3CO`vGW_@`R@8! sGtU8@ @@,YSaR@svG@a@@TUOBRWC_DC_)OtGG"@'RKy@{c_TIT} `G@_TX_#TdGo@@(@yDy€?}c_bTT`G@_TX_T`G@(@y@y3bT_TTCT@7iTTTecTe@c@y;y#T #TiTTcGR @B`R~asvG'@a@@T"UOE_OW*4*W `9Q`T$<9b@a @]`"*u4`qJTb@ a @H9[@@@K@*WAOè_$H9Ta@ x9\Oo@wGO W _g@_ 9!0R*AR R`aR7_Y7RR<@U @2 @^V4+@RkT ,:\vGZ6@OV4+@@ Z<kT :`G@6@j6 @ _a!@Rm`5jvzG@ (R`R`jv\$R`R]aK@C?TZ[?BT} `G@?Tc_(T`G!@y#IHyT?T`GHTXT`G A1V5Rjv :[\@5RBU<" kT`G@ Z`GRR@@` #_q5-U}R!e@}R@JT!Ҫ*q TaT4qTTR qlT}RU@!@ R} qT@RaG4R!@*qR@!96svG_@a@Ҁ TS@q-Tye@ K}R| 2y76jv 0;[qT@!!t;<R#B`RbT0Z@y qT@y@Rq@zaT@{"U4U*qAT@! U`5@ U5qT5@ qT@RtR*b:5qT@T}R~ xSC!!t;lROL*@WM_NgOoP_O @9?qT!RS RSARS@9RS @O¨_8RR*RS8RR" RS`9RS8RR @O¨qOW,_a@! @9qT @9w"qT @94!^YqJTW RWAJ_Bq@R ,9Oè_!T!R qaTa@+Y6`@!!84)Qz" `89OsGa@b*@6 ;YO_R*@tGOW#@y@`PQ<qH Ta@!`qT@ZK@G@`PqT*cbbaRA/@@BA`@G0@4a@k!TGaN@9C)!J?jaTD)J?jT@GA95G@ E)b@ t kTGb@ (@#@ t~cTT`<tJ@9@!GR@`T4RvG@@!`TR`@ @C`B@99$D@x?T?T?TcBT} _@TQG!"y4c5`TvQR r`G@A@!Aaa@c@c!R(@` @yTqT ;PJ 4v@**  <PaB@9?qT <6PH6 z@>1P4 *|>,P@` ]'@l9] @1T"B>jPqHT@1T.U`!!4?2T ? P@R\1?(qT d< >PU`@!!? T@OPWQ_OW @ [ b@TT} ԉTaP@`ҵ@RWAOè_O@tGW_ @?` @y@Q<qhTc@cqT@G0@4a@kATG<@`4`@6Rb'@@ YvG?A@!ҀTHQG@@ ` @yDqTa@@'@8BO/@@U5@TRxOv@Rl\ R qT@nO!hzcX>`*4aO4@]O (ZO+@@ TO3@ !NOC@@ $FO[@ @9XPW P!4  !**y"RV*M@tG?@@BaTk@ROHWI_JgKoL_OsGa@`@b2@6 ;QO_R2tGOW_b @y@wa@@pQ<qTc@y Q!pqT QG@`_pq!TG@4bB@9kaTGuB@4@kTG@y@_jT*@97B5@7`B@90qT*brc!R*@#G@@94`B@99$D@x?T?T?TcBT} _@THG!@"y 4RvGw@@! TIG @4@`@@5G@!F)b@ t kTGb@ 0@#@ t~c(TbT`j@4`CTHR r`G@A@!Aaa@c@c$@0!$@`B@9!x)GG@5@4 G@`D@xR"R!Q h|G*96 wG*@96 rG@7*@4 hG@) @c!B`G@@ ( ZG@yR6 T TGR6  OGR6  JGR6  EGR 6  @GR(6  ;GR06 < 6GR86 \ 1G@R&TROOWP_Q_OW_g#9*O@tG@@G ||4`@!! =PG@5!9Gq BRRҠ a@C lW ^G 5  NqT@s"qTz5Gz@!!J@5qcZG:R @*  N6"B 0=1P! #`8 Rqc5a@@@5B@9V4G7 R`` @ux` a@RP &1 6 T SO`&@ 5v5  lGvGG@@T=H*  }F/1ATuPb&@*sF*qT *0 OGRR@9 6  1ү 6 \QP9#@WA_BgCOŨ_@O&RO_L 1N*`"4?qT<@`@RRcGI`y`yA_OsGa@`@b@ 6 ;NO_RtGOW_goc @y@b@``Q<qTG!d@y!@)HvG@@Ҡ7TGG@``qTApqT iO*brRtBW@ @GzB@9@_+q Tq 5RG@9D)!J?j!TA94_kTy@9?k,TG`A94_kTy7@9kTGA94_kATy @9?kTGB94_k!Ty7 @9kTc#@! @9_+q7y!Bsg9? T?T} ԗ@9_ qRZq TkT @!jT45kaT?T#T\F@@9_+qy!B9?T?T?T#CTFF5G `A9@5G A95G B9@5G,@5G@ `"@y(q!T@9qT3@@1`TGb@B) t kT 4IOG!"yx@5 y7@9!`p@5"y!j5 y7 @9!b5+@!!@kTGb@ @#@ t~c)T`TE R r`G @A@!Aaa@c@c!RbT`` @ydqT ;D@9qT `x)D@@9`B@9AkT?@9 HD#@ @9"`B@9AkT2 @9 4D/@GdykT`B@9!$ D+@@ Dq@z@TG@5* D @H7@9@4G!$@?1TO @=D7@`B@9! D3@@  D @6 PD @6 hD @6 D @@6 D`B@9(qTK@T`@H7 @5@4`|;{D'@`G(@5@  DoD@RdQh`x)gD~4*  aDx ]Dt dWD{C4* QDul9 KD @S4a  DDOSRWT_UgVoW_OW_goC!tG; @RGRR@ l99a@D9 5 d NKq T,Tq@TqTq,T4@Ta@D9<D9`5@99@94"RR g@y9D9a@'D9`5@99@94BRR g@y7R9s"@@CA2C9R#c =  - R*RY D9`5@R9 7R?j T+Aҋ[By`qT  bR*R; varqT   M*R 7@`ARy@yS9+@@y/@@y'@@y@R r/[ 6@R!tGB"@cҠT'E#@` TTERCWA_BgCoDOŨ_OW_go+:*wG@?9 GR65 `G*`a@5`G@qzSC  aG ,`G@1 4 TwG*BRa @@44`@!!=xL @J$qT!!X`x`! SCa@e 4a@J(q T!`@@{#@*`Ga@a@JqT`G(qT`G8qTa@C 4!! `GS@|G'Ca@Z 4b@!!F4@!!RS'`GS@ ia@}J,q!Ta*`Ga@0q!TW*`Ga@4qTMa@*|G@H?a@SJ,q!T7*`Ga@0q!T-*`Ga@`4qT#a@*@D@A@c aG (7*qT!RN*@7!B!CDT J qTRsvG?Ga@`TC*G`T*BR!iRCy@ o@R; )@RKS@#Wy9GP`6  J:*+@WA_BgCoDOƨ_OW_go+*#*BtGR2@@҂`ERKyyl9c9 s9fqT{9R9 {#rRRRka@#\X5 ( R*RT HyqT4*"R R HyRQRv 5A9x?qT {9cA9`5@Rc9{|SBtGxSBC@!TGC`Rw9 R9nI,q(T`[`xa NcA9a@ cA9`5@9c9@9RR? s";cA9a@ cA9`5@9c9@92R+a@!HE52"`@! +*BR R? a@!2E52 `@! *R#a@ 4! `@ @<R{9 #a@ 4!  @2w9 #a@ 4! @qTRs9Rs9 @ @! *Rc@2c a@ @9Q$qIT#! 5 2 @9a@6 9cA9 cA9`5@9c9@9g@yg94"RR2X Q!?qhT@!qTfqaT6+@WA_BgCoDOƨ_@ASOH*0q(T`"BBHa8a""@R RO*#RROWRORRRRR@R!R<@`@Y RRRROW_g#*#!tG @7RCRK R!l9yyc9aRw9qT!Ry9O#9R8H1T<@`@" _qT cA9a@z @9g@yBRk9R s"a@cA9`5@Rc9qRj`T s9#|S!tGxS7B"@c TA_qT cA9a@J g@y@9"Rg9Q?8q(T [axa  @!l *RR a@ 4! @o9 R@E@9`@! *BRRv@!!l R* a@5 4!{ @bR a@ 4!!n @q TRRs9O6Rws9{ @!P *Rq @! *Rg @DbRT] @8 *RR#@R9JP a@ 4! -_HqTE @#@WA_BgCOŨ_OW!tGt @y @ҟqTc@cpq$TbrR`B@9qT(qRZ@R@@I?uBE? @cJ@9`B@9AkT  @98+8?R-L@@9`B@9AkT @9)?@94 8"?+@C@A@@!??@@ ?+_ L4*? ?R l>c4*>!@@@_1TX>R>@9 5;@ @_1T!P>7@ @_1T!>/@@~S4 0>> `x)>@9(q!T@a`B@9! \>@RKR!tG@"@c`Tf@>qT KOPWQ_CO#`vG@ҁ@ayF6<@@d "q TsvGq@b@!@T9@OC#@C9@Rqs@svG@b@!aT#@OCC_*BR!>RCOWavG"@qH ARR*(L>R*L**CsvG@a@@T?OC*WDC_OWOtG_g BSgR@/ҠR =`9R`Ny`>R?k~2#9@`@9`'5!b(A#5R`9#A9 4C#)HARR*Ka&R*L*yC#@`b@a2@ Z 5RkTb*@yaB2b*yc@Rk"5"T`.@ya2`.y`.@!5gEhq(TZ`xa  @EQ?qTa@9`R?jT!H8GR`9" Q?qT`@9q@zTRQqT`@9q@zT R!y `@R 2@`BL `)!!|!v Zd `*@yR2`*y@B7 `!a Z`N `.@yR2`.y@B`!O Z`@ 2``*@y2`*y`.@y2`.y`@ 2`*@y2`.@y2NyR`Ny# @$ELq`T@ `2 @ELqT@ `.{ #@[Gt @E\qT@Z! qT@ `9` @D\q`T@34!3@9`9N R `@9@4 . 'Gq$ @zTCO_3_@@4H=]@@3@~v =!@@5R`9`*@y`(7`.@y@/6F!b? 5 RqDzT TtG/@@B@T>S@OFWG_HgI_OWtG;@'a@9?q`TT?qT?qTHb2`2@ 4a@R `.@4a@R l<`@ 4ARR*vJ*"R"K** B5ҝH<Ba@9a 4|<`@94lw<`@96r<`@9qT@RR@*d<`N@y07_<abR@R8AarR@R3A`*@y(6`.@y(6`C)?kTH<`*@y 6l9\A<`*@y86l9:<`.@y 6l93<`.@y86l9,<tG'@@BT=uTb2rT2%o^r\u4<  <`.@y/64;@OEWF_OWtG_g# @a!|' 9 @R@@R@@R@ ARAEtGA@B@ T=9c>qTcC#cC#>8qT`@94?5EARR*I$R*.J**A4'EAyx? qAaRAzTO2~ =/`5`@4@kT`@94n?5`2@4AkaT`.@4AkT`@4@k!T@R]H #@WA_BgCOŨ_CBtGO#C@"@94vEARR* -I*A>RI*@BtG@A@ҀT<#@OCC_CctGOW*`@`>RkT@@9@4JEARR* I**I*@ctG@a@@TRR!tG@"@c Tr<qT`>RqTA>Ry@9qTTqTqT>>R\@9qTTqTq T@9?q%*a5@RkG@9?q@9?q+@OD_OR ~aRR~":H`RNxRSH`@R> @`O¨_OcvGd@ y"`Ry@RB)@ C9FsvG@a@@T;OB_O CB|@ctG`@Ҁ@+<7@#CR$:*`6@@@,qZctGBb@! T;#@yqTqTC @!@@K  tBK!@ _<qT @<qiTkTRC @O¨_OCOdvG@?/ b|@c@;3À<_# y!`R RÃ<y@c*q*T@@@qT=BT kC;+@?0qTX B@A4`@ tKsB ?qT`@<qiTkiTS@(6QCb@ @_kTb @"@_kTa @y? qT?qTqT`@!@@K  B?*6>4\-C4*X!RctG/@a@@T:[@ROFWG_HgIoJ_WOtG_g o [@/`@DO@R+CÂ< R#w y;RyÃ<<`@y2`y@R;6!A"9! @R*>*qJT@@@q`TAT B7+@?0q TX 7Bt@BqSTzJTS@(6"*P"@5b@ @_kTa @kaTa @y?qTLqT`@!@@K"5{b@)T`BT} g9R(>tG/@@BTD: *T`vnBKsB4?qTS@(6fB4*X![@*OFWG_HgIoJ_tG @@,tkLT t~"yRh$x"_T% T_T#_BT} #@!,!tRtG@@!ҀT9 @_O@   tkTt~`x|@tj%xTT} ԉTa8`@  t`R @O¨_tG @@y,tkHT 8~"yRh$x"_T% T_T#_BT} #@y!,!tyRtG@@!ҀT9 @_O*W"*RB|}O;q T5@WAOè_ց@y?klT!<}j!B BtsKB"@y_ qiT_kMT@*@yWA#Oè@AO*W_*g#?q!TB Q_(qT $š`6#@WA_B*gC@ROŨr<5a~@@9s Q 7kT#@WA_BgCOŨ_kt8sQ79g#Zk#RWOBtG_*gR@@<CBR14|#@qlTSbTTTcBT} @RBtG@C@!T8ARf<@8g:qT@qhTj38skT`X3OCWD_EgF_*L@" }hb@_@_kT@OWC!tG @Ҡ @y@qaT@\q TcQR%@ `N@B`N@" }@B@`@` @&@y`@`!"D@xR`bBQb_ qBЃB|@BT?bT} ` @?k@TT#7@;`6R!tGA"@cTs8CWAO¨_4*A_*#CAO!_ 4RA @A_R_O8qT ?O_OBRR;!RO_OsVW*_bzvxkT;sT*!#:WA_BOè_CѢBtGOW_!C@@'B$6qIT} !֒@@RCr@4 @RSJ*q T2@P$?BtG'@A@T7@S|}&Bj3C@OEWF_GC_O`^@ B`^!$O!$A!1A!4!%(@0%O_O`Z@A`ZO `2 L%O_O`V@A`VO h%{O_O`R@A`RO!! !P+!@@%aO_OW_*g@9 5 @RWA_BgCOĨ_֙B8{s895* sT*ҵIqTOW`b@҄A@"` `bTT ` T BT}  !` C6%`b@RWAO¨qIT?O*M\@3@*OO_O > @O¨R\@O N @O¨RX@qIT?O*@X@3@*OO_qIT{?O*AT@3@*OO_O 2 @O¨RT@UqIT^?O*5P@3@*OO_O & @O¨RP@8*,qT Ha8a <_֠P,?ѢBtGO@@Ҡ<,qT!T"H`8RR5@?T!@9a5_)TBtG@C@!@TT6@OA_OW!tG @R999R49 @<Sa8`@95@@*R!tG@"@cT"64OAWB_ѡ!tGO @` J@5T& !&5qT@HRr?kaT@` 7` J`5` !tG@"@c@T5@OA_OW*|!@8`4!84!\ 8`5*qRRu9`9`yR AR69@@R`9qJzTWAO¨_b@R84qTRzraT@RRDR`9R@8c5RbQB_$qTqHTbB!@9qT!? qHTRO_DqTB6&H= 4B6!3'==O_OWtG_*+@FqTBh(&(=~!@7`4!74!\7@5w9tG@@B`TT5R8@9*b5`@9R(qR`yR9G*@@@`5`ykT@9q@TvyR9*A4Bh(!3'<@ZK? jT*`ykT4+@OBWC_D_BRO`vG@ 4B6!('U* @RO¨7 @O¨*_!!Qa6_ @9kT@9D5@95@9kTdc!KOLW5R6GB`Ru9@r`E^ZB5Z!Z <KRR?k)T`y`*WAO¨_֡O#R!Gd|S$e@H9(6B_8C8cqTA? TRy#!Q 9cH9ҡ!3!G3$AsO_a@"@yBZB<@B3s@CѡW* tGO#5G@ҠbBf77bqTtG@DRAbsvG@a@ҀT344uG°RAR R B?!R*rR[)@b#@OBWCC_eA @9!>A_OW !tG*"@O#RҟB* 7qT@yAZ3<!<@!? T;@9DqT#@9|Sq!Tg@y@@R?kTk@ykATuALRs"QL5b~@T?TT BT} _ T2!tGOA"@ҀTk33 *WAO¨_OaRsG`AbC|`aC"bL!O_OW5˵QtG_go,K-K@56tG@@B`T83`@95` @95t@9kLT`@9HqT@q(Tq(TqTqTTqTq TqThq`ThTdqT`qT\q T q@TqT`@9K|@s:s6"@9a@95:`Ba^qiTaC*2>ab@3?T?BT} ?TarcTz@Z Z**>a"3?CiT?CT?Ta2T{ @j{ Z**>a6Q{2@9^* +=@T~SR{S+~ (@<K 604{RQ.4{CZ\8*Bd+` `04`@9qIT)b*+=@sQB+`b*+b*+@@9Z kTb@yBZB<@|@`cTc=5S,:FK@ODWE_FgGoH_OW`vG_+@`GAh-x=GA`@`G A[ `@5vG@@T2s"1s"=+@OBWC_D_ҽOWgvG_ @7R G kBQ qT-(:#2\ R!A" @9B1!A" @9B1GA" @9B1G"R*$A@1!--9aKeDRCDR.9t;GRvGh7A@@T1 WA_BgCOĨ_R5A @x GA!KeDRBGXCDR1BO`vGW @7#aRIi!|.-Z9svG7Aa@@Ty1 WAO¨_OWvG_g# #@7!R"G A;5?J (6RR*Q; aR9 9G2!A t ARPD9RL9TT} ԂTB?@" GA0ԂGA 5J6p;!R9R 92A A0!D8-$9tvG7A@@T 1 #@WA_BgCOŨ_O`vGW @7#aRtGA" @9B0A" @9B0GA" @9B0!.-8;vG7A@@T0 WAO¨_O_`vGW @7#RtGA" @9B|0A" @9Bv0GA" @9Bn0!6-8aKeDRCDRvG7A@T0 WA_BOè_OW_go+ uG@ҀRc`RgRkBP2@D;G."b O B !#f*С'J@2 vx6z ҵ6"r/6/6;@!x25zc@R.qLT;@h/7 RB!C@!@a5qTF @9G|S!"R@ "@H9* @9?@`7G!p$R @9` 56"rC@ G"R*`&A`!R`" #RBR( aR9!R9G AY7*@I5VH6!RR<@1 @2 GRRR`AA/8kt;0+`#GcBC q T`RrkҀA*}RA+~1*}A+@aKs  s~ ~ q*T@@@qT6"@9 6Cb E@H9*@@9!9G$R! Yr3T#@b`Aa#`5#@?T#@ IT} ԀG?T?#TGBDy! yG hBq TLTq T q` TqT4q@Tk@`4kmT5@RpY0\G vx6g@66t07Rr 2c@Ryk@`4kmT@?hRO006,0n7 R7J4GAr0vGA@1T+/`R?X h R4W5x6g@7RO#Nzq TR&GARu~ShGRRh@RqBzT77R+@57@t;GXhR <qTT(q T0qToy4G`BdBq#!TQ1T16g@O.GdB kBq TqTzq[Rsҁ q TqTRGh RRRkR@t;#O!t116'6#x`7G@C B!\?kTBhB_qLT_qT4_qTB9?qATB9?qAT RR:@9@9!*?r@T @9H26@B22GhBqT@t;k`R-GRRXh@BR26GA/>2/@B9qTi@ Rh]'@J(6A/,2@bR/@ B2!,3D3O6p @9?qT*!,33E6fRa@!@B2!4 @9_\qT!4`_T_CT_Tp?T@|Z!L*4o6'@J` 6GA/1@"RJ/@B2!4 @9?qT*!4BR@!@B2!4 @9_`qT!4 _T_#T_T0?T@!h( Z4*5qq|ksqs6x7zqRs?*GB6s hB.?qB@hu?sKs~ 7p6z0R3rRr 2 R7rR\4*7@ +@WA_BgCoDOƨ_OR*LW/L*<7 qT45 O_O*g*o wGW°R_*+ @W RAR- 7c*#L??v, RrGBR/93TKTTBT} Ԃ@ @yRy*-`7 Rc9{`@Z@Z`"aZ;yy R9syyB*yB "R?y_@ hT*RRn.s8**06!83vGWA@@T-sF5sj5 *+@WA_BgCoDOƨ_C_g*vGO*W*oC"R@@RAR,7*sZ#\RRy`@y*U-*1T@@ZGyyRB#*+*1 T**(BtG7@A@@T!1T=(4RuOo+ }TBT} bTTc@b @yy C R{yiTcTTsT# y?T#T?3iT?#T @G;?TK#T?TC?T@k@cRRҜ"*C9R2*!+yĽqKT@T@407qmT{@yqT@G@?kTRҊ"q@$z 2sKxQk T4Rq[@*OGWH_IgJ_OW('7WAO¨_g$@9`5E+a`jc8@5 hc85 >(R@h#8c0"_% RF@RR R"@_q T>)A_ @@95BQ" qT"@@ qTB*"$)$@ qTB*" )'_qT@95BQ"cBK"7b|@@9qT@9 @"* "__тBtGOW*#@@Ҁ0` @9?kATBtG@C@!@T OBWC__8?qA_R#`8|@qAT_֣4"B@9B O @9BT ?qT @O¨4?@94(`B B|@TT} ԉTg`J48 @O¨_ф!tGOe@ңcd@95svG@b@ҁTOB? (kTC93a@9c(! @aha8KG9T[TCTBT} #svG@a@ҀT cOB_!B @@9b45@9kcT_@тBtGOA@BRE Tb?TT#BT} @a# RBtG@C@!ҀTROA_O*W_*gy)7w`  *99@"@B@9_kTWA_BgCOĨ_`)ZsZyy5 OW_O @9  qT)RO(!@@!@4<J'O@9 ,qT3V@*@9*sO@**OW7"TBT} Ta~@#@WA_BOŨ_@9/6@O@@9 ?qHT! )*!ObTcTa@O@ 9)TaotGOW_gK@!^R16@@@5qHTcRc9g9:9ZR@9 q!TB @9(  @Th`8?,qTXaxa F *@tG@@@T*!  4R?19@q 4@**4R@9/7R+1ZSyR$1Z+RM1R!"@8*BR1*!9q@T@54~S!Aa@9R?q$@zTx(%9@Rc9ҥ*qTRK@*ODWE_FgGoH_OWc`vG@R's! svG@b@!@TRODWE_Cс!tGOsRW_#C @''Rk!@"qTsqTR q!tG'@"@cҀTBqaTsqTb!XqTsq`TC@OEWF_GC_***рtGOW_@R @@9?qaT@9qTTqTqTq`TTqTqTN" R#c"B !(@#}@*@?q  WA*svs š!vӵv!š šDs3@s@tA)'@Bˬ+@A)/@A)A)A)654A)'@BˉA) 7@A)zF@B @t;@A)ptG@@BTgRR@ROZW[_\_ց!GBJ!@BaR_@$@T5@$@`T!@ ROsG `@ '`@ @O¨_s@@a @?Ta@@?T`@OobwGW_*g+A@ `G@5ARR** 6s+R: R;a* ss@g qTG@@ 5F  q!T@7'@kATMT@'7@ 4#@4|`"|tB\l!@cLT,xccn*4vG@@ҀTR*+@WA_BgCoDOƨ__ vGO W Rg o{A@Oҥ` G:+8 @ {)@@sNqG@ qTTqTqTR#BR.*@@@5@kT4 J6@*4#G!R@@5R7@9 4G @Q vGO@@ TO`h-y"q`TTqLT`7c7 q*R 45R*{@*OJWK_LgMoN_O `vGW _ k@O aG  R @ @9?qT@9?qT@9!5a!h-!|G#nB`@`L*I* R4J`7@R,'G@vGO@@!T!x?qaT@947G @8<IT} `@KDqATR5@s"`@#(xk@OJWK_L_!@@C_c c g_OW_go+CvG@g %D`. R`bRSw` q`a! .f*#@AT2#@yB";8RG@V @9Q$qhT'*q@`*(6`.R`b 6`.@R`b`Qa# vc"Bf@R8' / R~x.@'@ R@RXG 4/K9qT~@!+ 3 #c|R+@F#qThc!@h#@9#F'qT`@~@q(TR@ @"|#9hb4h`56@B6@ Rc|+y@+@ak``kd@`@ @@`B B@@` @ @`@ @@` @@@`C`c@C 4@R%`@qIT@ C@|4h| h`f.@' !  ` | @R@l74` @K"x6R' dV!_qT@"B?@ a @ |š;@! CAh YC5@R%qmTq T'@@/@ ` @ X`@yb x$  k9@8@'&C"#qT;@ ?@` @A`@`5`