summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--Image.gz49155
-rw-r--r--curie.dtb230
-rw-r--r--lib/mali.ko650
-rw-r--r--lib/modules/8189es.ko24762
-rw-r--r--lib/modules/8822bu.ko11082
-rw-r--r--lib/modules/amvdec_avs.ko667
-rw-r--r--lib/modules/amvdec_h264.ko470
-rw-r--r--lib/modules/amvdec_h264_4k2k.ko431
-rw-r--r--lib/modules/amvdec_h264mvc.ko392
-rw-r--r--lib/modules/amvdec_h265.ko2450
-rw-r--r--lib/modules/amvdec_mh264.ko1841
-rw-r--r--lib/modules/amvdec_mjpeg.ko394
-rw-r--r--lib/modules/amvdec_mmjpeg.ko387
-rw-r--r--lib/modules/amvdec_mmpeg4.ko387
-rw-r--r--lib/modules/amvdec_mpeg12.ko406
-rw-r--r--lib/modules/amvdec_mpeg4.ko354
-rw-r--r--lib/modules/amvdec_real.ko348
-rw-r--r--lib/modules/amvdec_vc1.ko439
-rw-r--r--lib/modules/amvdec_vp9.ko2232
-rw-r--r--lib/modules/bcmdhd.ko1442
-rw-r--r--lib/modules/decoder_common.ko2216
-rw-r--r--lib/modules/dhd.ko10105
-rw-r--r--lib/modules/encoder.ko672
-rw-r--r--lib/modules/firmware.ko457
-rw-r--r--lib/modules/media_clock.ko796
-rw-r--r--lib/modules/modules.alias16
-rw-r--r--lib/modules/modules.dep25
-rw-r--r--lib/modules/stream_input.ko2509
-rw-r--r--tdk/optee.ko941
-rw-r--r--tdk/optee_armtz.ko873
30 files changed, 58490 insertions, 58639 deletions
diff --git a/lib/modules/dhd.ko b/lib/modules/dhd.ko
index 93ba799..88fca3f 100644
--- a/lib/modules/dhd.ko
+++ b/lib/modules/dhd.ko
@@ -1,18 +1,18 @@
-ELF
+ELF
-_
-@ qT`2@*
+_
+@ qT`2@*
>
-
+
s
-
+

* @9@
2@* @9
*@9a
-@ q 
+@ q 
@ q 
-@ q
+@ q
@ q@
@
s*@9
@@ -28,10 +28,10 @@ s*@9

-
+
-
+
@@ -89,7 +89,7 @@ A @{¨_{
@t^@ q.@
-
+
|S?
@@ -102,9 +102,9 @@ A @{¨_{
*@9A

-@ q`
+@ q`
@ q 
-@ q
+@ q
@? q 
@@ -176,12 +176,12 @@ A @{¨_{
2s
s
*A@Q!
-@`
+@`"
   _|
-
+
@5
@@ -190,142 +190,151 @@ A @{¨_{
@
@
@A
-@
-SA[B{è_ր
+@
+SA[B{è_ր
-
-
-
-
-
+
+
+
+
+
D
-D
-YbH9?
-
-
+D
?
@qH
@q
-
+
-
-@q@G
-
-
-
-
-@
-
-B
-B
-"
-
-
-
+
+@q@G
+
+
+
+
+7
+@
+
+:ՠ
+X@
+SA[BcC{Ĩ_**
+
+
+
+
+B
+B
+"
+
+
+X@@
+
+

aD9`D9b
D9
-/@@
+/@@
-
-
+
+
-
+
`

-
-
-9
+
+
+9
7@y 
-
-
-y
-ya
+
+
+y
+ya
@b
-
+
@`
@
@`
-@
+@
-@@
-
-* Ay,@ *,
+@@
+
+*Ay,@# *,
-
-"
-
-
-
+
+"
+
+
+
-
-7V
-
-
-
-
-D@
-D
-D 
-D@
-q
-R
-
-
-;
-
-
-
-
+
+7V
+
+
+
+
+D@
+D
+D 
+D@
+q
+R
+
+
+;
+
+
+
+
T
-
-
-
-
-
+
+
+
+
+
[
@@6
@{@
@@!
-@
+@
-
+
D`@?
-D
+D
-D[
-D
-D
-
-
-y
-yB
-yF
-yJ
-yN
-y
-
-
-
+Dc
+D
+D
+
+
+
+y
+yR
+yV
+yZ
+y^
+y
+
+
+
-
-
-Rߖ
-R
-*'
+
+
+R߶
+R
+*'
@ 
-
-
-
+
+
+
-
+
+X
-R
+R
@ @{è_
@
@@ -407,8 +416,8 @@ F2Ay
Ay
77@
-@A
-7
+@A
+7

@@ -462,15 +471,19 @@ BӢ
-
-y4
+
+y4
+X 
+XSA{¨_
+@
+X
-
-
+
+
{
{
{
- 
+ 

{
@@ -493,12 +506,12 @@ y4
-
-
-74
+
+
+74
-
+
@@ -511,31 +524,31 @@ y4
-
+
-@
+@
-
-
-
-@
-@9^Rk@9o@9@9{@9c<Sw@9
+
+
+
+@
+@9^Rk@9o@9@9{@9c<Sw@9
@9@9@a
*e
@9
-@G@
+@G@
*E@9
<H \P
-@
+@
9@9J
-7?@i
+7?@i
@9 }@9
ij8)!*@9\P|S;@!
*
-
+
*@
@@ -556,7 +569,7 @@ ij8)!*@9\P|S;@!
2
@
-
+
7u
? @q
r`
@@ -610,210 +623,98 @@ ij8)!*@9\P|S;@!
@9
-
-
-
-
-
-
-
-
-
-y"9
-*g
-
-
-
-
-
-c~@DDbc C#Bb
-
-
+
+
+
+
+
+
+
+@"#
+*g
+|S
+|S
+
+
+
+
+
+ d@s2
+
+R
+
-@
+@
@
-
+
@
-@Z
-
-
-
-
-
-
-
-
-
-
-
-
-!
-E`
-EkCT
-
-
-
-y`9 
-tt?P(9
+@Z
+
+
+
+
+w
+
+@c@
+
+
+
+
+
+
+BR
+
+
+ttttt
+tt5`9?d9d"
+`@B|3
+
+
+
@q
-@qTk 
+@qTk 
-
-
-
+
+
+
+|
e&A9#
d*A9
-q@
-
-
-RF9@
-
+q@
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
R
-R
-
-
-
-
-
-
-@
-7****
-
-@
-
-@`
-
-@e
-7
-kE
-*
-@
-7SA[B@{Ĩ_`@9@5`@ytB
-@!Z
-
-Z@v
-!
-
-
-@!l@
-
-
-7+@SA[BcCkD{ƨ_֛
-Az@yu@y_
-
-
-
-
-
-
-?
-@9@@
-@9A *"
-
-@`@ @
-@b@a@y
-@ @{¨_
-@c@d@y
-@
-
-@
-@##c
-
-@
-@##c
-
-@@d@e@yd
-@!
-
-@9@! *"
-@9@
-@9 *@
-
-
-
-*
-
-Ro
-R
-R
- @9 kz8
-@9
-
-
-
-
-aD`
-!
-
-ya@_
-@9c@9b@9!<S! *!
-@9b@9c@9!<S! *!
-@9W`*|:@9z *x>@9
-@!C
-
-@9c
-@@9B
-
-*bӥ 
-
-
-
-
-yr
-@@
-@@!
-
-
-
-@b@@!
-
-@@
-@@
-
-
-
-
-_@q@
-
-R
-
-R
-RDL
-
-
-
-
-
-
-R
-
-
-
-
-@@
+R
+
+
+
-@c@
+@c@

@@ -821,222 +722,318 @@ K
-*3
+*3
x7sO3`:D
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+9b`
+9ar9
+
-
-
-
-@I@7
-@
+
+
+
+@I@7
+@
7K
@@
R
-
+
@`
-@O,R<@G<
+@O,R<@G<
@
@
@
@
-@"kR x@y
+@"kR x@y
@
@
-@
+@
+9
+9`
@sR@"
-@b"iR
+@b"iR
@
@
-@
-@
-@
-y@
-
-
-
-
-@fR<@_
+@
+@
+@
+
+
+y@
+
+@fR<@_
+
+
+
+9
+C
+C
#@SA[BcC{Ũ_֔z
4v
c
 R
-@@/
-
-@@'
-@
+@@/
+7@W@7
+
+@@'
+@
@
@
-@
-@BR<@?
-@
-@
-@
+@
+@BR<@?
+@
+@
+@
@
@
-@
-@
+@
+@
@
-@
+@
@
@
-@*
+@*
@
-
+
@
-@
-@
-@
+@
+@
+@
@
-
-@a@`
-
-R
-
-
-
-
-
-
-
+
+@a@`
+
-*9@9+@9"/P7k
-_
+*9@9+@9"/P7k
+_
+"
+
+R
+
+
+9
@9
-*c *K=
-,
-B
+*c *K=
+,
+B
*
-*
-*@! ~
+*
+*@! ~
 q
-* j
-5
-*@9
-
-B
-
- q@
- 4`D
-*!
-* <
+* j
+5
+*@9
+
+B
+
+ q@
+ 4`C
+*!
+* <
@9<
-* *! ;
+* *! ;
* ** *
-* ** *
-k
-* * ;
-*!
-*
-*!
-
-cC
-
-b9@q`
-
-7`@\9`C
-
-
-@<@@,R?
-@R"
+* ** *
+k
+* * ;
+*!
+*
+*!
+
+CcL9bC!
+cC
+
+b9@q
+C
+C9
+
+7`@`9`
+C
+C9
+
+
+@<@@,R?
+@R"
@
-@
-@
+@
+@
+9`J9 
@fRW
-@#gR<@@R?
-
+@#gR<@@R?
+
@<@
@
-@7`@
-@
- q
-
-
-
-
-@
-
+@7`@
+@
+C
+ q
+9`A
+
+
+
+C
+
+9`
+@
+
@ @{¨
@ @{¨
-@ @{¨_{
-e@@A@}@=@E@B8pK
-a@C
-]@;
-Y@3
-U@+
-Q@#
-M@
-I@
-
-H7@ P7 !
-R @
-
-@
-
-
-
-
-k@
-z[
-
-D`w9\4`D`q
+@ @{¨_{
+m@@I@@E@M@B@pK
+i@C
+e@;
+a@3
+]@+
+Y@#
+U@
+Q@
+
+H7@ P7 !
+R @
+
+9?
+@
+
+
+
+
+9
+9
+9
+k@
+z[
+
+D`w9\4`C`q
-
-
-
- 7`@HU95aR0`@
-@ 
-
-7`C
-
-
+
+
+
+
+
+9br9_
+@ 
+
+
+7`C
+
+
7` 7
-7
-
+7
+
@
-
-
+
+
@`@!<@
-
-
-@<
-
-@t@
-@
-@b6@
-@ql
-@@+7
-@`!7` 7g
-@*7@;
-@`"
+
+C
+C
+
+C
+C@
+Cv
+C
+CQ
+C
+C7CJ9/`
+C
+C&g@
+C]
+C]
+@<
+C [
+C[
+C@K7@A9
+C@N7@Coc@9# 
+CC76
+CA9"
+CCCo# 
+C
+C
+C
+CT
+C R
+CQ
+CP
+CP
+CA9 9
+CCL9 @*@
+Cs^CBCFCJCNCRCVCjCnC~CZC +
+CXE
+CHC
+C?3C
+C0@*$
+C+
+C
+C
+C
+CC6C@CocU9# 
+C`8
+C
+C
+C@
+C@
+C
+Cg@`
+CCL9CoR# 
+C@@@a
+CA9
+9
+CCB@A9
+9
+9
+9
+CA+
+Ce@
+C 4@
+CA@
+C
+Cj
+C@*
+C@
+Ca
+
+@t@
+@
+@b6@
+@ql
+@9
+
+@ (7 ' 7`6@
+
+@7 7
+
+@*3@@
+@`"
@
-@9!
+@9!
+R
+
-@&R
-
-@9b.
-@9c
+@
+R
+
+@9b.
+@9c
@9*"@9*@9
@@ -1124,7 +1121,125 @@ A
@9a*
@9
@*@@@
-?| ?| aE6
+?| ?| aE6
+
+@
+7****
+
+@
+
+@`
+
+@e
+7
+kE
+*
+@
+7SA[B@{Ĩ_`@9@5`@ytB
+@!Z
+
+Z@v
+!
+
+
+@!l@
+
+
+7+@SA[BcCkD{ƨ_֛
+Az@yu@y_
+
+
+
+
+
+
+?
+@9@@
+@9A *"
+
+@`@ @
+@b@a@y
+@ @{¨_
+@c@d@y
+@
+
+@
+@##c
+
+@
+@##c
+
+@@d@e@yd
+@!
+
+@9@! *"
+@9@
+@9 *@
+
+
+
+*
+
+Ro
+R
+R
+ @9 kz8
+@9
+
+
+
+
+aD`
+!
+
+ya@_
+@9c@9b@9!<S! *!
+@9b@9c@9!<S! *!
+@9W`*|:@9z *x>@9
+@!C
+
+@9c
+@@9B
+
+*bӥ 
+
+
+
+
+yr
+@@
+@@!
+
+
+
+@b@@!
+
+@@
+@@
+
+
+
+
+_@q@
+
+R
+
+R
+RDL
+
+
+
+
+
+
+R
+
+
+
+
+
+@@
+
A>Rc,@`
R@
R
@@ -1244,7 +1359,7 @@ A9
@9?
-
+
@(
7
@@ -1304,7 +1419,7 @@ A9
-
+
@@ -1371,23 +1486,23 @@ B
SA@{è_ֶ{
-
+
-
-
-
+
+
+
Rd@
R
-@?
+@?
R
-
-
-7@66
+
+
+7@66
(6?@
-
+
@@
@
@@
@@ -1396,25 +1511,25 @@ B
y@
-
-
-
+
+
+

-7
+7
R_L
-
+
)

-*
-
+*
+
@'
-
+
@*Á@S
@@ -1422,53 +1537,52 @@ B
Z"A8!@a
E"(
c
-
+
h%8T
R
-
+
-Th!8
-R_ 
+Th!8
+R_ 
R
-
+
-ZZ 7s@
+ZZ 7s@
@
-
+
X
-
+
Z@
@
-ZHZ5Z7B
-@*
-
-
-@*
-ZZ8
-@?
-@eZ<
-@BZ_
+ZHZ5Z7B
+@*A
+@*
+
+ZZ8
+@?
+@eZ<
+@BZ_
-
-@
-@{ ZBZz
-
-
-@9@9@9b@9v@9r@9n@9j@9f@9
-@
-@9@9@9
-@J1
+
+@
+@{ ZBZq
+
+
+@9@9@9b@9v@9r@9n@9j@9f@9 1
+@ 
+@9@9@9
+
+@,1

-
-yA
-
-
+
+yA
+
@@ -1478,33 +1592,33 @@ yA
-@y
-
+@y
+
7v
9`

-
-
-y
+
+
+y
7
-
+
Z!@o
-@(
+@(
*!2
-?
+?
~*
-c
+c
c}
c
@@ -1513,27 +1627,27 @@ y
a

-e@@*fA@
-
-7
+e@@*fA@
+
+7
@(
-@(
+@(
!@9
"#@9
!'@9
-
-
+
+
-
-
+
+
S
-
+
@@ -1543,47 +1657,47 @@ y
@
-
-
+
+
@9@9@9
-
+
-
+
-@X
-@
+@X
+@
-
+
-
-@A+
+
+@A+
;

?

-
+
@
7*AR
-
+
-
-
+
+
7`C2R
-
-
-#
-
-
-y
-
-
+
+
+#
+
+
+y
+
+
t
r
@@ -1596,9 +1710,9 @@ y
@
@
-@ 
-
-
+@ 
+
+
@@ -1668,11 +1782,9 @@ y
R
-
-y @
-
-
-*Â@
+
+
+

@
@@ -1706,7 +1818,7 @@ y @
RaRs
-
+
@@ -1757,7 +1869,7 @@ y @
R7

-7k
+7k
D
{
@@ -1777,14 +1889,14 @@ D
@
@
@!
-@
-
-
+@
+
+
-
-B"
-@q
+
+B"
+@q
D/ؖaUp>Q:̓t6x]|2ŮY*ݓdA`.E Il"M&h
w.fT<E˽BٞPftBSap 2'6L^hzR Cq`(7:&DV`rcr@Q"%40N\jxsbPA5*$8FTbp,¥>@R+:dN_vm|
.<B)8P
@@ -1796,18 +1908,18 @@ D
m ?6grW
TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-
(P
-&-4>FWci{
+&-4>FWci{
-
+
+
+
 !"#$%&'()*+,-./ijklmnopqrstuvwxyz{|}~
-  !"#$%&'()*+,-./ijklmnopqrstuvwxyz{|}~
-
-
+  !"#$%&'()*+,-./ijklmnopqrstuvwxyz{|}~


-
+
@@ -1848,7 +1960,7 @@ D
-
+
@@ -1879,7 +1991,7 @@ D
-
+
@@ -1932,7 +2044,7 @@ D
-
+
@@ -2303,7 +2415,7 @@ D
-
+
@@ -2764,11 +2876,12 @@ failed to power up wifi chip, max retry reached **
-
-
+
+
+
-
-
+
+
@@ -2779,11 +2892,11 @@ failed to power up wifi chip, max retry reached **
-
-
-
-
+
+
+
+
@@ -2799,7 +2912,7 @@ failed to power up wifi chip, max retry reached **
-
+
@@ -2829,12 +2942,16 @@ failed to power up wifi chip, max retry reached **
-
-
-
+
+
+
+
+
+
+
-
-
+
+
@@ -2848,8 +2965,7 @@ failed to power up wifi chip, max retry reached **
-
-
+
@@ -2861,7 +2977,9 @@ failed to power up wifi chip, max retry reached **
-
+
+
+
@@ -2887,7 +3005,9 @@ failed to power up wifi chip, max retry reached **
-
+
+
+
@@ -2900,7 +3020,11 @@ failed to power up wifi chip, max retry reached **
-
+
+
+
+
+
@@ -2915,8 +3039,8 @@ failed to power up wifi chip, max retry reached **
-
-
+
+
@@ -2930,18 +3054,18 @@ failed to power up wifi chip, max retry reached **
-
-
-
-
+
+
+
+
-
-
+
+
@@ -2969,201 +3093,9 @@ Packet :0x
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-TX (count: %d)
-
-
-RX (count: %d)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Try updating wl utility to the latest.
-
-
+
+
+
@@ -3181,7 +3113,7 @@ Try updating wl utility to the latest.
-
+
@@ -3328,9 +3260,10 @@ Try updating wl utility to the latest.
-
+
+
-
+
@@ -3343,7 +3276,8 @@ Try updating wl utility to the latest.
-
+
+
@@ -3375,22 +3309,7 @@ Try updating wl utility to the latest.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -3421,6 +3340,21 @@ Try updating wl utility to the latest.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3545,9 +3479,10 @@ console address : 0x%08X
-
-
-
+
+
+
+
@@ -3696,10 +3631,196 @@ Func 2
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+TX (count: %d)
+
+
+RX (count: %d)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Try updating wl utility to the latest.
+
+
+
@@ -4187,7 +4308,7 @@ Func 2
-
+
@@ -4331,7 +4452,7 @@ Func 2
-
+
@@ -4355,7 +4476,7 @@ Func 2
-
+
@@ -4984,63 +5105,115 @@ dtim_period (%d)
-
-
-+
-oj
-
+
+%
+
-
+
-
+


f
D
-E;L
-F
+EaL
+F
(

-j
-
+j
+

b
!
-!
-)
-)
-
-q
-3
-N
->=
-q>
->
->
+!
+)
+)
+&
+&
+
+q
+63
+=
+=
+=
+=
+d=
+=
+>
+>
+>



-
-$
-R
-Y
-Y
-!
-'
-
-
-
-
-
-
-
-
-
-
+
+$
+=
+=
+:R
+Y
+Y
+!
+'
+
+
+
+
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
+
+
+



@@ -5050,2568 +5223,2531 @@ $



-
-.
-,
-.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.
-2
-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.
-.
-.
-1
-
-
-
-
-
-
-
-
-
-
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-
-
-
-
-
-
-
-
-
-
-
-.
-.
-
-
-/
-
-
-1
-.
-.
-0
-
-
-
-
-
-
-
-
-
-.
-.
-
-
-
-
-.
-.
-.
-.
-.
-.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+2
+1
+2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.
+.
+.
+.
+
+
+
+
+
+
+
+
+
+
+/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1
+-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7623,58 +7759,58 @@ $
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7762,33 +7898,34 @@ $
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7820,275 +7957,275 @@ $
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-$
-
-
-
-
-<
-
-C
-
-
-
-
-
-
-
-B
-^
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-
+
+
+$
+
+;
+
++
+.
+
+B
+
+
+
+
+B
+
+
+F
+
+
+L
+
+
+
+
+
+


@@ -8103,18 +8240,17 @@ B



-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -8131,18 +8267,8 @@ B
-
-
-
-
-
-
-
-
-
-
-
-
+
+



@@ -8150,381 +8276,385 @@ B



-
-
+
+
+
+
+
+
+
+
-$
-%
+$
+%
-
-
-
-+
-
-
-7
-
-
-
-
-
-
-
-
-?
-
-Z
-
-b
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
++
+1
+
+
+
+
+
+
+
+:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8535,62 +8665,56 @@ b
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -8602,413 +8726,430 @@ b
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -9016,133 +9157,134 @@ b
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -9152,291 +9294,266 @@ b
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+