Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +2 -0
- ggml/weights.gguf +3 -0
- model.json +27 -0
- qnn/config.json +147 -0
- qnn/kv/layer_0_key_0.raw +0 -0
- qnn/kv/layer_0_key_1.raw +0 -0
- qnn/kv/layer_0_key_2.raw +0 -0
- qnn/kv/layer_0_key_3.raw +0 -0
- qnn/kv/layer_0_key_4.raw +0 -0
- qnn/kv/layer_0_key_5.raw +0 -0
- qnn/kv/layer_0_key_6.raw +0 -0
- qnn/kv/layer_0_key_7.raw +5 -0
- qnn/kv/layer_0_value_0.raw +0 -0
- qnn/kv/layer_0_value_1.raw +0 -0
- qnn/kv/layer_0_value_2.raw +2 -0
- qnn/kv/layer_0_value_3.raw +0 -0
- qnn/kv/layer_0_value_4.raw +0 -0
- qnn/kv/layer_0_value_5.raw +0 -0
- qnn/kv/layer_0_value_6.raw +0 -0
- qnn/kv/layer_0_value_7.raw +0 -0
- qnn/kv/layer_10_key_0.raw +0 -0
- qnn/kv/layer_10_key_1.raw +0 -0
- qnn/kv/layer_10_key_2.raw +0 -0
- qnn/kv/layer_10_key_3.raw +0 -0
- qnn/kv/layer_10_key_4.raw +0 -0
- qnn/kv/layer_10_key_5.raw +0 -0
- qnn/kv/layer_10_key_6.raw +1 -0
- qnn/kv/layer_10_key_7.raw +0 -0
- qnn/kv/layer_10_value_0.raw +0 -0
- qnn/kv/layer_10_value_1.raw +4 -0
- qnn/kv/layer_10_value_2.raw +0 -0
- qnn/kv/layer_10_value_3.raw +0 -0
- qnn/kv/layer_10_value_4.raw +2 -0
- qnn/kv/layer_10_value_5.raw +3 -0
- qnn/kv/layer_10_value_6.raw +3 -0
- qnn/kv/layer_10_value_7.raw +0 -0
- qnn/kv/layer_11_key_0.raw +0 -0
- qnn/kv/layer_11_key_1.raw +0 -0
- qnn/kv/layer_11_key_2.raw +0 -0
- qnn/kv/layer_11_key_3.raw +0 -0
- qnn/kv/layer_11_key_4.raw +0 -0
- qnn/kv/layer_11_key_5.raw +0 -0
- qnn/kv/layer_11_key_6.raw +4 -0
- qnn/kv/layer_11_key_7.raw +0 -0
- qnn/kv/layer_11_value_0.raw +3 -0
- qnn/kv/layer_11_value_1.raw +6 -0
- qnn/kv/layer_11_value_2.raw +0 -0
- qnn/kv/layer_11_value_3.raw +0 -0
- qnn/kv/layer_11_value_4.raw +0 -0
- qnn/kv/layer_11_value_5.raw +0 -0
.gitattributes
CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
ggml/weights.gguf filter=lfs diff=lfs merge=lfs -text
|
37 |
+
vocab.gguf filter=lfs diff=lfs merge=lfs -text
|
ggml/weights.gguf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:4d931447a4526cf4b2a952521f92d6acad4ee5585fb32291203b38d39eef0f6c
|
3 |
+
size 4525775456
|
model.json
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"model_id": "test",
|
3 |
+
"model_arch": "llama",
|
4 |
+
"version": 20241202,
|
5 |
+
"llm_config": {
|
6 |
+
"embed_dim": 4096,
|
7 |
+
"ffn_dim": 14336,
|
8 |
+
"head_size": 128,
|
9 |
+
"kv_dim": 1024,
|
10 |
+
"n_attn_heads": 32,
|
11 |
+
"n_attn_kv_heads": 8,
|
12 |
+
"n_ctx": 131072,
|
13 |
+
"n_layers": 32,
|
14 |
+
"norm_eps": 9.999999747378752e-06,
|
15 |
+
"vocab_size": 128256,
|
16 |
+
"rope_config": {
|
17 |
+
"n_rope_ctx_orig": 131072,
|
18 |
+
"rope_attn_factor": 1.0,
|
19 |
+
"rope_dim": 128,
|
20 |
+
"rope_freq_base": 500000.0,
|
21 |
+
"rope_freq_scale": 1.0,
|
22 |
+
"rope_scale_type": "linear",
|
23 |
+
"rope_type": 0
|
24 |
+
}
|
25 |
+
},
|
26 |
+
"vision": {}
|
27 |
+
}
|
qnn/config.json
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"model_parameters": {
|
3 |
+
"n_layers": 32,
|
4 |
+
"vocab_size": 128256,
|
5 |
+
"embed_dim": 4096,
|
6 |
+
"ffn_hidden_dim": 14336,
|
7 |
+
"head_dim": 128,
|
8 |
+
"n_kv_heads": 8,
|
9 |
+
"rope_theta": 500000.0,
|
10 |
+
"rms_norm_eps": 1e-05,
|
11 |
+
"attention_mask_value": -100000.0,
|
12 |
+
"tie_embedding": false
|
13 |
+
},
|
14 |
+
"qnn_parameters": {
|
15 |
+
"n_hvx_threads": 4
|
16 |
+
},
|
17 |
+
"graphs": [
|
18 |
+
{
|
19 |
+
"type": "transformers",
|
20 |
+
"start_layer_id": 0,
|
21 |
+
"end_layer_id": 8,
|
22 |
+
"batch_size": 1,
|
23 |
+
"cache_size": 3968,
|
24 |
+
"context_size": 4096,
|
25 |
+
"graph_name": "batch_1",
|
26 |
+
"model_path": "llama3_1_8b_0.bin",
|
27 |
+
"kv_path_format": "kv/layer_{layer_id}_{kv_type}_{head_id}.raw",
|
28 |
+
"kv_size": 1,
|
29 |
+
"x_name": "x",
|
30 |
+
"out_name": "out"
|
31 |
+
},
|
32 |
+
{
|
33 |
+
"type": "transformers",
|
34 |
+
"start_layer_id": 8,
|
35 |
+
"end_layer_id": 16,
|
36 |
+
"batch_size": 1,
|
37 |
+
"cache_size": 3968,
|
38 |
+
"context_size": 4096,
|
39 |
+
"graph_name": "batch_1",
|
40 |
+
"model_path": "llama3_1_8b_1.bin",
|
41 |
+
"kv_path_format": "kv/layer_{layer_id}_{kv_type}_{head_id}.raw",
|
42 |
+
"kv_size": 1,
|
43 |
+
"x_name": "x",
|
44 |
+
"out_name": "out"
|
45 |
+
},
|
46 |
+
{
|
47 |
+
"type": "transformers",
|
48 |
+
"start_layer_id": 16,
|
49 |
+
"end_layer_id": 24,
|
50 |
+
"batch_size": 1,
|
51 |
+
"cache_size": 3968,
|
52 |
+
"context_size": 4096,
|
53 |
+
"graph_name": "batch_1",
|
54 |
+
"model_path": "llama3_1_8b_2.bin",
|
55 |
+
"kv_path_format": "kv/layer_{layer_id}_{kv_type}_{head_id}.raw",
|
56 |
+
"kv_size": 1,
|
57 |
+
"x_name": "x",
|
58 |
+
"out_name": "out"
|
59 |
+
},
|
60 |
+
{
|
61 |
+
"type": "transformers",
|
62 |
+
"start_layer_id": 24,
|
63 |
+
"end_layer_id": 32,
|
64 |
+
"batch_size": 1,
|
65 |
+
"cache_size": 3968,
|
66 |
+
"context_size": 4096,
|
67 |
+
"graph_name": "batch_1",
|
68 |
+
"model_path": "llama3_1_8b_3.bin",
|
69 |
+
"kv_path_format": "kv/layer_{layer_id}_{kv_type}_{head_id}.raw",
|
70 |
+
"kv_size": 1,
|
71 |
+
"x_name": "x",
|
72 |
+
"out_name": "out"
|
73 |
+
},
|
74 |
+
{
|
75 |
+
"type": "transformers",
|
76 |
+
"start_layer_id": 0,
|
77 |
+
"end_layer_id": 8,
|
78 |
+
"batch_size": 128,
|
79 |
+
"cache_size": 3968,
|
80 |
+
"context_size": 4096,
|
81 |
+
"graph_name": "batch_128",
|
82 |
+
"model_path": "llama3_1_8b_0.bin",
|
83 |
+
"kv_path_format": "kv/layer_{layer_id}_{kv_type}_{head_id}.raw",
|
84 |
+
"kv_size": 1,
|
85 |
+
"x_name": "x",
|
86 |
+
"out_name": "out"
|
87 |
+
},
|
88 |
+
{
|
89 |
+
"type": "transformers",
|
90 |
+
"start_layer_id": 8,
|
91 |
+
"end_layer_id": 16,
|
92 |
+
"batch_size": 128,
|
93 |
+
"cache_size": 3968,
|
94 |
+
"context_size": 4096,
|
95 |
+
"graph_name": "batch_128",
|
96 |
+
"model_path": "llama3_1_8b_1.bin",
|
97 |
+
"kv_path_format": "kv/layer_{layer_id}_{kv_type}_{head_id}.raw",
|
98 |
+
"kv_size": 1,
|
99 |
+
"x_name": "x",
|
100 |
+
"out_name": "out"
|
101 |
+
},
|
102 |
+
{
|
103 |
+
"type": "transformers",
|
104 |
+
"start_layer_id": 16,
|
105 |
+
"end_layer_id": 24,
|
106 |
+
"batch_size": 128,
|
107 |
+
"cache_size": 3968,
|
108 |
+
"context_size": 4096,
|
109 |
+
"graph_name": "batch_128",
|
110 |
+
"model_path": "llama3_1_8b_2.bin",
|
111 |
+
"kv_path_format": "kv/layer_{layer_id}_{kv_type}_{head_id}.raw",
|
112 |
+
"kv_size": 1,
|
113 |
+
"x_name": "x",
|
114 |
+
"out_name": "out"
|
115 |
+
},
|
116 |
+
{
|
117 |
+
"type": "transformers",
|
118 |
+
"start_layer_id": 24,
|
119 |
+
"end_layer_id": 32,
|
120 |
+
"batch_size": 128,
|
121 |
+
"cache_size": 3968,
|
122 |
+
"context_size": 4096,
|
123 |
+
"graph_name": "batch_128",
|
124 |
+
"model_path": "llama3_1_8b_3.bin",
|
125 |
+
"kv_path_format": "kv/layer_{layer_id}_{kv_type}_{head_id}.raw",
|
126 |
+
"kv_size": 1,
|
127 |
+
"x_name": "x",
|
128 |
+
"out_name": "out"
|
129 |
+
}
|
130 |
+
],
|
131 |
+
"embeddings": [
|
132 |
+
{
|
133 |
+
"graph_name": "batch_1",
|
134 |
+
"model_path": "lm_head.bin",
|
135 |
+
"batch_size": 1,
|
136 |
+
"x_name": "x",
|
137 |
+
"out_name": "logits"
|
138 |
+
},
|
139 |
+
{
|
140 |
+
"graph_name": "batch_128",
|
141 |
+
"model_path": "lm_head.bin",
|
142 |
+
"batch_size": 128,
|
143 |
+
"x_name": "x",
|
144 |
+
"out_name": "logits"
|
145 |
+
}
|
146 |
+
]
|
147 |
+
}
|
qnn/kv/layer_0_key_0.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_key_1.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_key_2.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_key_3.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_key_4.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_key_5.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_key_6.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_key_7.raw
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Rɻ�5�;;�D;
|
2 |
+
|
3 |
+
<��ս�~�]D<�#�<�#��;�=�롼
|
4 |
+
�}��<G�㽌oP�WK��5���7v�w�=��=3z~�M���&>����V+���+>
|
5 |
+
tA�&��=�������F�.��]'���4>g�=��4�\�'>��N>Y�>�m>
|
qnn/kv/layer_0_value_0.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_value_1.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_value_2.raw
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
��ɺ}��9O52;�E�:b396�L:DT;��Z�����eHL��D%:�g'9:�0m���9��;+u�:�˺�N��B��:b���V]�:�{:ײ��.a�.8g�y�5��![����;,�;:��f;���9
|
2 |
+
��OZ�S[�vPB:Ux:D>R;����G��:�\�����9��>�O";�;����9�aX:����@9��Y
|
qnn/kv/layer_0_value_3.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_value_4.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_value_5.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_value_6.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_0_value_7.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_key_0.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_key_1.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_key_2.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_key_3.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_key_4.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_key_5.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_key_6.raw
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
�<�͐];��Q;��#����:��9���8�g��?���l;��:9Qd���
|
qnn/kv/layer_10_key_7.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_value_0.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_value_1.raw
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/�������s�<N��������I<́��F��U�;�S�;��FA�Yt�9͋);YO<!ZN;=M"�Z����%����HF�8�E^;�$�;e�;J�;v1;,H#������˻O�;�Y�;�ł����:v]��G:W���n�$��;]���J[�{�J�,Z";��ܻ�u��t�;��»��;-`��J�
|
2 |
+
��㭺
|
3 |
+
ĕ��к�w��\戼էA��[�:S��84�;�;zX�;)�.<S��j㿹&�;Ϲ<TI�+�9.���4dG;��N;��:��j��� ����/p9�f�:t=��^�:_�̻�;�;5ͺ�Z�`8>�Ż�҉��j�;��Z�:Ca��a�)�Τ��
|
4 |
+
��%��ګ�:�ź;���C�;^��;WQ��K�:<X�����,�pT�<�� �3|E��<�;]�7;H�I��m�.��;��;J�;���sQ
|
qnn/kv/layer_10_value_2.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_value_3.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_10_value_4.raw
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
+̹�0��L<�~%�&������m��:�J ��5�<�Q�<R�(�ʞ��}���O
|
2 |
+
��<;[���Y3>������;տ��]���>�ͺ8�R<
|
qnn/kv/layer_10_value_5.raw
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
�T�P/�;��3<Y]���4�:sb<��;ز�H"��;���h���O���)<X+D7�u���5:��;Wg��R��:Y��@�9$�Իa����
|
2 |
+
|
3 |
+
<`#Z<s�M�If�>��;M���{�7;�m��h��"�;�E�!X�<�ʻF��;�<0�����N�ƞ.��%�;?&��M�<2p��!�g:C\�:ZM�����2x<��8<.�;@#��{��;�-л��="�K�Ó�8vM�;��+�S����\��;Ę��@��;��L��T; B�:��`<YT=<"_�]̮;�"��Lẛ<><{��<���;�]��HM�;5h<k����+�)��C�˻��μ�(�;:����;bU<�I�M�;'��;����B<xL;���A�<z=�:�w�;�Nʼ
|
qnn/kv/layer_10_value_6.raw
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
É@��{�;}�@;
|
2 |
+
@2��a<�xS>���R �`���-"�;�0�;_�L<BC4�W��; �ѻF�\����;�c;������:H�&A�;�/�:w1!<.���І&����;�;kp���J�;pp{:��<`k;�];�����<0����鿻d!:�����
|
3 |
+
x�_�
|
qnn/kv/layer_10_value_7.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_key_0.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_key_1.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_key_2.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_key_3.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_key_4.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_key_5.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_key_6.raw
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
�B�9"K;�i�:Kn����:o���4�;��198��;D��Hy���H;tG@:Dq�:\��~��:�:��H :7�[:x�,�>Ԏ:Ҧh��d;�BI;c������Q%��å:P[:�C�;!�.:_m<����b�:?���;�U#;ſN;=�9<i��=90=Vk���<��#��U�<s$�<3��=�F�;}��<a�<�Ū;�T6<8�jR=�
|
2 |
+
|
3 |
+
;�O;s��;`�:pY�����:'�"�Ż�:�C<y�ͻJl��y�I<� �+S��o�"Ͻ�j�����tg�<������<
|
4 |
+
J�Z�мie���w<Ls�s�)�>]�<|�<[������$=�G��8R<*��
|
qnn/kv/layer_11_key_7.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_value_0.raw
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
c�<ܵ<�,�;��2�m<,���h�%�����Uջ*_=:�����);<`��7�>;��67f\�; ɖ:�����꺶����Z=<��<;�r;4���^!���Yr������u�<�wW<�5�:G�9>�A�1<YD;d�k;�%��iJ��
|
2 |
+
;�*<�IQ9��'�<�9O<���;�~D��nٻ��{�A��Ŭ�i]��*�(�6��;]@<�ݜ�a��[�&�_�:���fX��+<��e;�N�;rNb��*Ȼ`d=Q�A��r;4t'���>�D�^sy;Vt�!쾼�Ό�t�;�WC<��
|
3 |
+
��]�#��-X�P�+<��};Ł캪g�;A=N<��r�5���:q���B<�:�;.7"{<R�9�q�)<N�ڻP#��K��:ƀ$;N��ʍ<�l#<A��;
|
qnn/kv/layer_11_value_1.raw
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
��@8qW
|
2 |
+
<���j-����l<���;q�0<W���Wػ��<I¾:ɢ��n�;7�<<�9�.e�:Ed��V&7<�I�!e�<e�;֧<��;�"�<0�<%��G��C��F�<<L�E;����1%������;UT��/L��պ"I���G���r:���<�<}v$���<����9�;
|
3 |
+
�;�����wK�o�#��;�e��갻�jD��oV�L�*<�X��m�z<
|
4 |
+
Q<���;��9��$<�B�ő�<�'
|
5 |
+
��t�;l�:<�(�%p/<k}<�0R�Dػ�FsL�EV�;��ʻ@�S; ӆ;�I˻��[�'����o�����߱�����ֻ
|
6 |
+
�c:c1�<�U���A;�k��<t<��J;
|
qnn/kv/layer_11_value_2.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_value_3.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_value_4.raw
ADDED
Binary file (512 Bytes). View file
|
|
qnn/kv/layer_11_value_5.raw
ADDED
Binary file (512 Bytes). View file
|
|