Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
4e244250
Commit
4e244250
authored
Mar 11, 2018
by
Serhiy Storchaka
Committed by
GitHub
Mar 11, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-32946: Speed up "from ... import ..." from non-packages. (GH-5873)
parent
b931bd0a
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
302 additions
and
288 deletions
+302
-288
Lib/importlib/_bootstrap.py
Lib/importlib/_bootstrap.py
+27
-26
Misc/NEWS.d/next/Core and Builtins/2018-02-25-10-52-40.bpo-32946.Lo09rG.rst
...ore and Builtins/2018-02-25-10-52-40.bpo-32946.Lo09rG.rst
+2
-0
Python/import.c
Python/import.c
+15
-4
Python/importlib.h
Python/importlib.h
+258
-258
No files found.
Lib/importlib/_bootstrap.py
View file @
4e244250
...
...
@@ -1016,7 +1016,6 @@ def _handle_fromlist(module, fromlist, import_, *, recursive=False):
"""
# The hell that is fromlist ...
# If a package was imported, try to import stuff from fromlist.
if
hasattr
(
module
,
'__path__'
):
for
x
in
fromlist
:
if
not
isinstance
(
x
,
str
):
if
recursive
:
...
...
@@ -1102,8 +1101,10 @@ def __import__(name, globals=None, locals=None, fromlist=(), level=0):
# Slice end needs to be positive to alleviate need to special-case
# when ``'.' not in name``.
return
sys
.
modules
[
module
.
__name__
[:
len
(
module
.
__name__
)
-
cut_off
]]
el
se
:
el
if
hasattr
(
module
,
'__path__'
)
:
return
_handle_fromlist
(
module
,
fromlist
,
_gcd_import
)
else
:
return
module
def
_builtin_from_name
(
name
):
...
...
Misc/NEWS.d/next/Core and Builtins/2018-02-25-10-52-40.bpo-32946.Lo09rG.rst
0 → 100644
View file @
4e244250
Importing names from already imported module with "from ... import ..." is
now 30% faster if the module is not a package.
Python/import.c
View file @
4e244250
...
...
@@ -1800,10 +1800,21 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals,
}
}
else
{
final_mod
=
_PyObject_CallMethodIdObjArgs
(
interp
->
importlib
,
&
PyId__handle_fromlist
,
mod
,
fromlist
,
interp
->
import_func
,
NULL
);
_Py_IDENTIFIER
(
__path__
);
PyObject
*
path
;
if
(
_PyObject_LookupAttrId
(
mod
,
&
PyId___path__
,
&
path
)
<
0
)
{
goto
error
;
}
if
(
path
)
{
Py_DECREF
(
path
);
final_mod
=
_PyObject_CallMethodIdObjArgs
(
interp
->
importlib
,
&
PyId__handle_fromlist
,
mod
,
fromlist
,
interp
->
import_func
,
NULL
);
}
else
{
final_mod
=
mod
;
Py_INCREF
(
mod
);
}
}
error:
...
...
Python/importlib.h
View file @
4e244250
...
...
@@ -1567,262 +1567,262 @@ const unsigned char _Py_M__importlib[] = {
0
,
115
,
8
,
0
,
0
,
0
,
0
,
9
,
12
,
1
,
8
,
1
,
12
,
1
,
114
,
181
,
0
,
0
,
0
,
41
,
1
,
218
,
9
,
114
,
101
,
99
,
117
,
114
,
115
,
105
,
118
,
101
,
99
,
3
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
8
,
0
,
0
,
0
,
11
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
2
36
,
0
,
0
,
0
,
116
,
0
,
124
,
0
,
100
,
1
,
1
31
,
2
,
114
,
232
,
124
,
1
,
68
,
0
,
93
,
216
,
125
,
4
,
116
,
1
,
124
,
4
,
1
16
,
2
,
131
,
2
,
115
,
76
,
124
,
3
,
114
,
44
,
124
,
0
,
106
,
3
,
100
,
2
,
23
,
0
,
125
,
5
,
110
,
4
,
100
,
3
,
125
,
5
,
116
,
4
,
100
,
4
,
124
,
5
,
1
55
,
0
,
100
,
5
,
116
,
5
,
124
,
4
,
131
,
1
,
106
,
3
,
155
,
0
,
157
,
4
,
1
31
,
1
,
130
,
1
,
113
,
14
,
124
,
4
,
100
,
6
,
107
,
2
,
114
,
118
,
124
,
3
,
11
5
,
230
,
116
,
0
,
124
,
0
,
100
,
7
,
131
,
2
,
114
,
230
,
116
,
6
,
124
,
0
,
1
24
,
0
,
106
,
7
,
124
,
2
,
100
,
8
,
100
,
9
,
141
,
4
,
1
,
0
,
113
,
1
4
,
1
16
,
0
,
124
,
0
,
124
,
4
,
131
,
2
,
115
,
14
,
100
,
10
,
160
,
8
,
124
,
0
,
1
06
,
3
,
124
,
4
,
161
,
2
,
125
,
6
,
122
,
14
,
116
,
9
,
124
,
2
,
124
,
6
,
1
31
,
2
,
1
,
0
,
87
,
0
,
113
,
14
,
4
,
0
,
116
,
10
,
107
,
10
,
114
,
228
,
1
,
0
,
125
,
7
,
1
,
0
,
122
,
42
,
124
,
7
,
106
,
11
,
124
,
6
,
107
,
2
,
11
4
,
210
,
116
,
12
,
106
,
13
,
160
,
14
,
124
,
6
,
116
,
15
,
161
,
2
,
100
,
11
,
1
07
,
9
,
114
,
210
,
87
,
0
,
89
,
0
,
162
,
8
,
113
,
14
,
130
,
0
,
87
,
0
,
53
,
0
,
100
,
11
,
125
,
7
,
126
,
7
,
88
,
0
,
89
,
0
,
113
,
14
,
88
,
0
,
113
,
14
,
124
,
0
,
83
,
0
,
41
,
12
,
122
,
238
,
70
,
105
,
103
,
117
,
114
,
101
,
32
,
111
,
117
,
116
,
32
,
119
,
104
,
97
,
116
,
32
,
95
,
95
,
105
,
109
,
112
,
111
,
1
14
,
116
,
95
,
95
,
32
,
115
,
104
,
111
,
117
,
108
,
100
,
32
,
114
,
101
,
116
,
117
,
1
14
,
110
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
84
,
104
,
101
,
32
,
105
,
109
,
112
,
1
11
,
114
,
116
,
95
,
32
,
112
,
97
,
114
,
97
,
109
,
101
,
116
,
101
,
114
,
32
,
105
,
1
15
,
32
,
97
,
32
,
99
,
97
,
108
,
108
,
97
,
98
,
108
,
101
,
32
,
119
,
104
,
105
,
99
,
104
,
32
,
116
,
97
,
107
,
101
,
115
,
32
,
116
,
104
,
101
,
32
,
110
,
97
,
109
,
101
,
32
,
11
1
,
102
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
32
,
116
,
111
,
10
,
32
,
32
,
32
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
46
,
32
,
73
,
116
,
32
,
105
,
115
,
32
,
114
,
101
,
113
,
117
,
105
,
114
,
101
,
100
,
32
,
116
,
111
,
32
,
100
,
101
,
99
,
1
11
,
117
,
112
,
108
,
101
,
32
,
116
,
104
,
101
,
32
,
102
,
117
,
110
,
99
,
116
,
10
5
,
11
1
,
110
,
32
,
102
,
114
,
111
,
109
,
32
,
97
,
115
,
115
,
117
,
109
,
105
,
110
,
103
,
3
2
,
105
,
109
,
112
,
111
,
114
,
116
,
108
,
105
,
98
,
39
,
115
,
10
,
32
,
32
,
32
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
105
,
109
,
112
,
108
,
101
,
109
,
101
,
110
,
1
16
,
97
,
116
,
105
,
111
,
110
,
32
,
105
,
115
,
32
,
100
,
101
,
115
,
105
,
114
,
101
,
100
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
114
,
127
,
0
,
0
,
0
,
122
,
8
,
46
,
95
,
95
,
97
,
108
,
108
,
95
,
95
,
122
,
13
,
96
,
96
,
102
,
114
,
111
,
109
,
32
,
108
,
105
,
115
,
116
,
39
,
39
,
122
,
8
,
73
,
116
,
101
,
109
,
32
,
105
,
110
,
32
,
122
,
18
,
32
,
109
,
117
,
115
,
116
,
32
,
98
,
101
,
32
,
115
,
116
,
114
,
44
,
32
,
110
,
111
,
116
,
32
,
250
,
1
,
42
,
218
,
7
,
95
,
95
,
97
,
108
,
108
,
95
,
9
5
,
84
,
41
,
1
,
114
,
182
,
0
,
0
,
0
,
122
,
5
,
123
,
125
,
46
,
123
,
125
,
78
,
41
,
16
,
114
,
4
,
0
,
0
,
0
,
114
,
170
,
0
,
0
,
0
,
114
,
171
,
0
,
0
,
0
,
114
,
1
,
0
,
0
,
0
,
114
,
172
,
0
,
0
,
0
,
114
,
13
,
0
,
0
,
0
,
218
,
16
,
95
,
104
,
97
,
110
,
100
,
108
,
101
,
95
,
102
,
114
,
111
,
109
,
108
,
105
,
115
,
116
,
114
,
184
,
0
,
0
,
0
,
114
,
38
,
0
,
0
,
0
,
114
,
59
,
0
,
0
,
0
,
114
,
176
,
0
,
0
,
0
,
114
,
15
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
79
,
0
,
0
,
0
,
114
,
30
,
0
,
0
,
0
,
114
,
179
,
0
,
0
,
0
,
41
,
8
,
114
,
83
,
0
,
0
,
0
,
218
,
8
,
102
,
114
,
111
,
109
,
108
,
105
,
115
,
116
,
11
4
,
177
,
0
,
0
,
0
,
114
,
182
,
0
,
0
,
0
,
218
,
1
,
120
,
90
,
5
,
119
,
104
,
101
,
114
,
101
,
90
,
9
,
102
,
114
,
111
,
109
,
95
,
110
,
97
,
109
,
101
,
90
,
3
,
101
,
120
,
99
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
1
14
,
185
,
0
,
0
,
0
,
241
,
3
,
0
,
0
,
115
,
42
,
0
,
0
,
0
,
0
,
10
,
10
,
1
,
8
,
1
,
10
,
1
,
4
,
1
,
12
,
2
,
4
,
1
,
28
,
2
,
8
,
1
,
14
,
1
,
10
,
1
,
10
,
1
,
10
,
1
,
14
,
1
,
2
,
1
,
14
,
1
,
16
,
4
,
10
,
1
,
18
,
1
,
8
,
1
,
22
,
1
,
114
,
185
,
0
,
0
,
0
,
99
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
3
,
0
,
0
,
0
,
6
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
146
,
0
,
0
,
0
,
124
,
0
,
160
,
0
,
100
,
1
,
161
,
1
,
125
,
1
,
124
,
0
,
160
,
0
,
100
,
2
,
161
,
1
,
125
,
2
,
124
,
1
,
100
,
3
,
107
,
9
,
114
,
82
,
124
,
2
,
100
,
3
,
107
,
9
,
114
,
78
,
124
,
1
,
124
,
2
,
106
,
1
,
107
,
3
,
114
,
78
,
116
,
2
,
106
,
3
,
100
,
4
,
124
,
1
,
155
,
2
,
100
,
5
,
124
,
2
,
106
,
1
,
155
,
2
,
100
,
6
,
157
,
5
,
116
,
4
,
100
,
7
,
100
,
8
,
141
,
3
,
1
,
0
,
124
,
1
,
83
,
0
,
124
,
2
,
100
,
3
,
107
,
9
,
114
,
96
,
124
,
2
,
106
,
1
,
83
,
0
,
116
,
2
,
106
,
3
,
100
,
9
,
1
16
,
4
,
100
,
7
,
100
,
8
,
141
,
3
,
1
,
0
,
124
,
0
,
100
,
10
,
25
,
0
,
1
25
,
1
,
100
,
11
,
124
,
0
,
107
,
7
,
114
,
142
,
124
,
1
,
160
,
5
,
100
,
12
,
161
,
1
,
100
,
13
,
25
,
0
,
125
,
1
,
124
,
1
,
83
,
0
,
41
,
14
,
122
,
167
,
67
,
97
,
108
,
99
,
117
,
108
,
97
,
116
,
101
,
32
,
119
,
104
,
97
,
116
,
32
,
95
,
95
,
112
,
97
,
99
,
107
,
97
,
103
,
101
,
95
,
95
,
32
,
115
,
104
,
111
,
117
,
108
,
100
,
32
,
98
,
101
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
95
,
95
,
112
,
97
,
99
,
1
07
,
97
,
103
,
101
,
95
,
95
,
32
,
105
,
115
,
32
,
110
,
111
,
116
,
32
,
103
,
117
,
97
,
114
,
97
,
110
,
116
,
101
,
101
,
100
,
32
,
116
,
111
,
32
,
98
,
101
,
32
,
100
,
101
,
102
,
105
,
110
,
101
,
100
,
32
,
111
,
114
,
32
,
99
,
111
,
117
,
108
,
100
,
32
,
98
,
101
,
32
,
115
,
101
,
116
,
32
,
116
,
111
,
32
,
78
,
111
,
110
,
101
,
10
,
32
,
32
,
32
,
32
,
116
,
111
,
32
,
114
,
101
,
112
,
114
,
101
,
115
,
101
,
110
,
116
,
32
,
116
,
104
,
97
,
116
,
32
,
105
,
116
,
115
,
32
,
112
,
114
,
111
,
112
,
101
,
114
,
32
,
1
18
,
97
,
108
,
117
,
101
,
32
,
105
,
115
,
32
,
117
,
110
,
107
,
110
,
111
,
119
,
11
0
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
114
,
130
,
0
,
0
,
0
,
114
,
89
,
0
,
0
,
0
,
78
,
122
,
32
,
95
,
95
,
112
,
97
,
99
,
107
,
97
,
103
,
101
,
95
,
95
,
32
,
33
,
61
,
32
,
95
,
95
,
115
,
112
,
101
,
99
,
95
,
95
,
46
,
112
,
97
,
114
,
101
,
110
,
116
,
32
,
40
,
122
,
4
,
32
,
33
,
61
,
32
,
250
,
1
,
41
,
233
,
3
,
0
,
0
,
0
,
41
,
1
,
90
,
10
,
115
,
116
,
97
,
99
,
107
,
108
,
101
,
118
,
101
,
108
,
122
,
89
,
99
,
97
,
110
,
39
,
116
,
32
,
114
,
101
,
115
,
111
,
108
,
118
,
101
,
3
2
,
1
12
,
97
,
99
,
107
,
97
,
103
,
101
,
32
,
102
,
114
,
111
,
109
,
32
,
95
,
95
,
115
,
1
12
,
101
,
99
,
95
,
95
,
32
,
111
,
114
,
32
,
95
,
95
,
112
,
97
,
99
,
107
,
97
,
10
3
,
101
,
95
,
95
,
44
,
32
,
102
,
97
,
108
,
108
,
105
,
110
,
103
,
32
,
98
,
97
,
99
,
107
,
32
,
111
,
110
,
32
,
95
,
95
,
110
,
97
,
109
,
101
,
95
,
95
,
32
,
97
,
1
10
,
100
,
32
,
95
,
95
,
112
,
97
,
116
,
104
,
95
,
95
,
114
,
1
,
0
,
0
,
0
,
114
,
127
,
0
,
0
,
0
,
114
,
117
,
0
,
0
,
0
,
114
,
19
,
0
,
0
,
0
,
41
,
6
,
114
,
30
,
0
,
0
,
0
,
114
,
119
,
0
,
0
,
0
,
114
,
166
,
0
,
0
,
0
,
114
,
167
,
0
,
0
,
0
,
114
,
168
,
0
,
0
,
0
,
114
,
118
,
0
,
0
,
0
,
41
,
3
,
218
,
7
,
103
,
108
,
111
,
98
,
97
,
108
,
115
,
114
,
160
,
0
,
0
,
0
,
114
,
82
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
17
,
95
,
99
,
97
,
108
,
99
,
95
,
95
,
95
,
112
,
97
,
99
,
10
7
,
97
,
103
,
101
,
95
,
95
,
23
,
4
,
0
,
0
,
115
,
30
,
0
,
0
,
0
,
0
,
7
,
10
,
1
,
10
,
1
,
8
,
1
,
18
,
1
,
22
,
2
,
10
,
1
,
4
,
1
,
8
,
1
,
6
,
2
,
6
,
2
,
10
,
1
,
8
,
1
,
8
,
1
,
14
,
1
,
114
,
191
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
99
,
5
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
9
,
0
,
0
,
0
,
5
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
166
,
0
,
0
,
0
,
124
,
4
,
100
,
1
,
107
,
2
,
114
,
18
,
116
,
0
,
124
,
0
,
131
,
1
,
125
,
5
,
110
,
36
,
124
,
1
,
100
,
2
,
107
,
9
,
114
,
30
,
124
,
1
,
110
,
2
,
105
,
0
,
125
,
6
,
116
,
1
,
124
,
6
,
131
,
1
,
125
,
7
,
116
,
0
,
124
,
0
,
124
,
7
,
124
,
4
,
131
,
3
,
125
,
5
,
124
,
3
,
115
,
150
,
124
,
4
,
100
,
1
,
107
,
2
,
114
,
84
,
116
,
0
,
124
,
0
,
160
,
2
,
100
,
3
,
161
,
1
,
100
,
1
,
25
,
0
,
131
,
1
,
83
,
0
,
124
,
0
,
115
,
92
,
124
,
5
,
83
,
0
,
116
,
3
,
124
,
0
,
131
,
1
,
116
,
3
,
124
,
0
,
160
,
2
,
100
,
3
,
161
,
1
,
100
,
1
,
25
,
0
,
131
,
1
,
24
,
0
,
125
,
8
,
116
,
4
,
106
,
5
,
124
,
5
,
106
,
6
,
10
0
,
2
,
116
,
3
,
124
,
5
,
106
,
6
,
131
,
1
,
124
,
8
,
24
,
0
,
133
,
2
,
25
,
0
,
25
,
0
,
83
,
0
,
110
,
12
,
116
,
7
,
124
,
5
,
124
,
3
,
116
,
0
,
131
,
3
,
83
,
0
,
100
,
2
,
83
,
0
,
41
,
4
,
97
,
215
,
1
,
0
,
0
,
73
,
109
,
11
2
,
111
,
114
,
116
,
32
,
97
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
84
,
104
,
101
,
32
,
39
,
103
,
108
,
111
,
98
,
97
,
108
,
115
,
39
,
32
,
97
,
114
,
103
,
117
,
109
,
101
,
110
,
116
,
32
,
105
,
115
,
32
,
117
,
115
,
1
01
,
100
,
32
,
116
,
111
,
32
,
105
,
110
,
102
,
101
,
114
,
32
,
119
,
104
,
101
,
114
,
10
1
,
32
,
116
,
104
,
101
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
105
,
115
,
32
,
11
1
,
99
,
99
,
117
,
114
,
114
,
105
,
110
,
103
,
32
,
102
,
114
,
111
,
109
,
10
,
32
,
32
,
32
,
32
,
116
,
111
,
32
,
104
,
97
,
110
,
100
,
108
,
101
,
32
,
114
,
101
,
108
,
97
,
116
,
105
,
118
,
101
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
115
,
46
,
32
,
84
,
104
,
101
,
32
,
39
,
108
,
111
,
99
,
97
,
108
,
115
,
39
,
32
,
97
,
114
,
103
,
117
,
1
09
,
101
,
110
,
116
,
32
,
105
,
115
,
32
,
105
,
103
,
110
,
111
,
114
,
101
,
100
,
46
,
32
,
84
,
104
,
101
,
10
,
32
,
32
,
32
,
32
,
39
,
102
,
114
,
111
,
109
,
108
,
105
,
115
,
116
,
39
,
32
,
97
,
114
,
103
,
117
,
109
,
101
,
110
,
116
,
32
,
115
,
112
,
101
,
99
,
105
,
102
,
105
,
101
,
115
,
32
,
119
,
104
,
97
,
116
,
32
,
115
,
104
,
111
,
117
,
10
8
,
100
,
32
,
101
,
120
,
105
,
115
,
116
,
32
,
97
,
115
,
32
,
97
,
116
,
116
,
114
,
1
05
,
98
,
117
,
116
,
101
,
115
,
32
,
111
,
110
,
32
,
116
,
104
,
101
,
32
,
109
,
111
,
10
0
,
117
,
108
,
101
,
10
,
32
,
32
,
32
,
32
,
98
,
101
,
105
,
110
,
103
,
32
,
105
,
1
09
,
112
,
111
,
114
,
116
,
101
,
100
,
32
,
40
,
101
,
46
,
103
,
46
,
32
,
96
,
96
,
10
2
,
114
,
111
,
109
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
60
,
102
,
114
,
111
,
109
,
108
,
105
,
115
,
116
,
62
,
96
,
96
,
41
,
46
,
32
,
32
,
84
,
104
,
101
,
32
,
39
,
108
,
101
,
118
,
101
,
108
,
39
,
10
,
32
,
32
,
32
,
32
,
97
,
114
,
103
,
117
,
109
,
101
,
110
,
116
,
32
,
114
,
101
,
112
,
114
,
1
01
,
115
,
101
,
110
,
116
,
115
,
32
,
116
,
104
,
101
,
32
,
112
,
97
,
99
,
107
,
97
,
10
3
,
101
,
32
,
108
,
111
,
99
,
97
,
116
,
105
,
111
,
110
,
32
,
116
,
111
,
32
,
105
,
1
09
,
112
,
111
,
114
,
116
,
32
,
102
,
114
,
111
,
109
,
32
,
105
,
110
,
32
,
97
,
32
,
114
,
101
,
108
,
97
,
116
,
105
,
118
,
101
,
10
,
32
,
32
,
32
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
40
,
101
,
46
,
103
,
46
,
32
,
96
,
96
,
102
,
114
,
111
,
109
,
32
,
46
,
46
,
112
,
107
,
103
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
109
,
111
,
100
,
96
,
96
,
32
,
119
,
111
,
117
,
108
,
100
,
32
,
104
,
97
,
118
,
101
,
32
,
97
,
32
,
39
,
108
,
101
,
118
,
101
,
108
,
39
,
32
,
111
,
102
,
32
,
50
,
41
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
114
,
19
,
0
,
0
,
0
,
78
,
114
,
117
,
0
,
0
,
0
,
41
,
8
,
114
,
181
,
0
,
0
,
0
,
114
,
191
,
0
,
0
,
0
,
218
,
9
,
112
,
97
,
11
4
,
116
,
105
,
116
,
105
,
111
,
110
,
114
,
158
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
79
,
0
,
0
,
0
,
114
,
1
,
0
,
0
,
0
,
114
,
185
,
0
,
0
,
0
,
41
,
9
,
114
,
15
,
0
,
0
,
0
,
114
,
190
,
0
,
0
,
0
,
218
,
6
,
108
,
111
,
99
,
97
,
108
,
115
,
114
,
186
,
0
,
0
,
0
,
114
,
161
,
0
,
0
,
0
,
114
,
83
,
0
,
0
,
0
,
90
,
8
,
103
,
108
,
111
,
98
,
97
,
108
,
115
,
95
,
114
,
160
,
0
,
0
,
0
,
90
,
7
,
99
,
117
,
116
,
95
,
111
,
102
,
102
,
114
,
10
,
0
,
0
,
0
,
1
14
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
10
,
95
,
95
,
105
,
109
,
112
,
111
,
114
,
116
,
95
,
95
,
50
,
4
,
0
,
0
,
115
,
26
,
0
,
0
,
0
,
0
,
11
,
8
,
1
,
10
,
2
,
16
,
1
,
8
,
1
,
12
,
1
,
4
,
3
,
8
,
1
,
18
,
1
,
4
,
1
,
4
,
4
,
26
,
3
,
32
,
2
,
114
,
194
,
0
,
0
,
0
,
99
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
2
,
0
,
0
,
0
,
3
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
38
,
0
,
0
,
0
,
116
,
0
,
160
,
1
,
124
,
0
,
161
,
1
,
125
,
1
,
124
,
1
,
100
,
0
,
107
,
8
,
114
,
30
,
116
,
2
,
100
,
1
,
124
,
0
,
23
,
0
,
131
,
1
,
130
,
1
,
116
,
3
,
124
,
1
,
131
,
1
,
83
,
0
,
41
,
2
,
78
,
122
,
25
,
110
,
111
,
32
,
98
,
117
,
105
,
108
,
116
,
45
,
105
,
110
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
32
,
110
,
97
,
109
,
101
,
100
,
32
,
41
,
4
,
114
,
14
1
,
0
,
0
,
0
,
114
,
145
,
0
,
0
,
0
,
114
,
70
,
0
,
0
,
0
,
114
,
140
,
0
,
0
,
0
,
41
,
2
,
114
,
15
,
0
,
0
,
0
,
114
,
82
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
18
,
95
,
98
,
117
,
105
,
108
,
116
,
105
,
110
,
95
,
102
,
114
,
111
,
109
,
95
,
110
,
97
,
109
,
10
1
,
85
,
4
,
0
,
0
,
115
,
8
,
0
,
0
,
0
,
0
,
1
,
10
,
1
,
8
,
1
,
1
2
,
1
,
114
,
195
,
0
,
0
,
0
,
99
,
2
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
10
,
0
,
0
,
0
,
5
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
166
,
0
,
0
,
0
,
124
,
1
,
97
,
0
,
124
,
0
,
97
,
1
,
116
,
2
,
116
,
1
,
131
,
1
,
125
,
2
,
116
,
1
,
106
,
3
,
160
,
4
,
161
,
0
,
68
,
0
,
93
,
72
,
92
,
2
,
125
,
3
,
125
,
4
,
116
,
5
,
124
,
4
,
124
,
2
,
131
,
2
,
114
,
26
,
124
,
3
,
116
,
1
,
106
,
6
,
107
,
6
,
114
,
60
,
116
,
7
,
125
,
5
,
110
,
18
,
116
,
0
,
160
,
8
,
124
,
3
,
161
,
1
,
114
,
26
,
116
,
9
,
125
,
5
,
110
,
2
,
113
,
26
,
116
,
1
0
,
124
,
4
,
124
,
5
,
131
,
2
,
125
,
6
,
116
,
11
,
124
,
6
,
124
,
4
,
131
,
2
,
1
,
0
,
113
,
26
,
116
,
1
,
106
,
3
,
116
,
12
,
25
,
0
,
125
,
7
,
100
,
1
,
68
,
0
,
93
,
46
,
125
,
8
,
124
,
8
,
116
,
1
,
106
,
3
,
107
,
7
,
114
,
1
38
,
116
,
13
,
124
,
8
,
131
,
1
,
125
,
9
,
110
,
10
,
116
,
1
,
106
,
3
,
124
,
8
,
25
,
0
,
125
,
9
,
116
,
14
,
124
,
7
,
124
,
8
,
124
,
9
,
131
,
3
,
1
,
0
,
113
,
114
,
100
,
2
,
83
,
0
,
41
,
3
,
122
,
250
,
83
,
101
,
116
,
117
,
11
2
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
108
,
105
,
98
,
32
,
98
,
121
,
32
,
105
,
109
,
11
2
,
111
,
114
,
116
,
105
,
110
,
103
,
32
,
110
,
101
,
101
,
100
,
101
,
100
,
32
,
98
,
11
7
,
105
,
108
,
116
,
45
,
105
,
110
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
115
,
32
,
97
,
110
,
100
,
32
,
105
,
110
,
106
,
101
,
99
,
116
,
105
,
110
,
103
,
32
,
116
,
104
,
1
01
,
109
,
10
,
32
,
32
,
32
,
32
,
105
,
110
,
116
,
111
,
32
,
116
,
104
,
101
,
32
,
103
,
108
,
111
,
98
,
97
,
108
,
32
,
110
,
97
,
109
,
101
,
115
,
112
,
97
,
99
,
101
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
65
,
115
,
32
,
115
,
121
,
115
,
32
,
105
,
115
,
32
,
110
,
101
,
101
,
100
,
101
,
100
,
32
,
102
,
111
,
114
,
32
,
115
,
121
,
115
,
46
,
10
9
,
111
,
100
,
117
,
108
,
101
,
115
,
32
,
97
,
99
,
99
,
101
,
115
,
115
,
32
,
97
,
1
10
,
100
,
32
,
95
,
105
,
109
,
112
,
32
,
105
,
115
,
32
,
110
,
101
,
101
,
100
,
101
,
10
0
,
32
,
116
,
111
,
32
,
108
,
111
,
97
,
100
,
32
,
98
,
117
,
105
,
108
,
116
,
45
,
10
5
,
110
,
10
,
32
,
32
,
32
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
115
,
44
,
32
,
116
,
104
,
111
,
115
,
101
,
32
,
116
,
119
,
111
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
115
,
32
,
109
,
117
,
115
,
116
,
32
,
98
,
101
,
32
,
101
,
120
,
112
,
108
,
105
,
99
,
1
05
,
116
,
108
,
121
,
32
,
112
,
97
,
115
,
115
,
101
,
100
,
32
,
105
,
110
,
46
,
10
,
1
0
,
32
,
32
,
32
,
32
,
41
,
3
,
114
,
20
,
0
,
0
,
0
,
114
,
166
,
0
,
0
,
0
,
114
,
56
,
0
,
0
,
0
,
78
,
41
,
15
,
114
,
49
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
13
,
0
,
0
,
0
,
114
,
79
,
0
,
0
,
0
,
218
,
5
,
105
,
116
,
101
,
109
,
115
,
114
,
170
,
0
,
0
,
0
,
114
,
69
,
0
,
0
,
0
,
114
,
141
,
0
,
0
,
0
,
114
,
75
,
0
,
0
,
0
,
114
,
151
,
0
,
0
,
0
,
114
,
128
,
0
,
0
,
0
,
114
,
133
,
0
,
0
,
0
,
114
,
1
,
0
,
0
,
0
,
114
,
195
,
0
,
0
,
0
,
114
,
5
,
0
,
0
,
0
,
41
,
10
,
218
,
10
,
115
,
121
,
115
,
95
,
109
,
111
,
100
,
117
,
108
,
101
,
218
,
11
,
95
,
105
,
109
,
112
,
95
,
109
,
111
,
100
,
117
,
10
8
,
1
01
,
90
,
11
,
109
,
111
,
100
,
117
,
108
,
101
,
95
,
116
,
121
,
112
,
101
,
114
,
15
,
0
,
0
,
0
,
114
,
83
,
0
,
0
,
0
,
114
,
93
,
0
,
0
,
0
,
114
,
82
,
0
,
0
,
0
,
90
,
11
,
115
,
101
,
108
,
102
,
95
,
109
,
111
,
100
,
117
,
108
,
101
,
90
,
1
2
,
98
,
117
,
105
,
108
,
116
,
105
,
110
,
95
,
110
,
97
,
109
,
101
,
90
,
14
,
9
8
,
11
7
,
105
,
108
,
116
,
105
,
110
,
95
,
109
,
111
,
100
,
117
,
108
,
101
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
6
,
95
,
115
,
101
,
116
,
117
,
112
,
92
,
4
,
0
,
0
,
115
,
36
,
0
,
0
,
0
,
0
,
9
,
4
,
1
,
4
,
3
,
8
,
1
,
18
,
1
,
10
,
1
,
10
,
1
,
6
,
1
,
10
,
1
,
6
,
2
,
2
,
1
,
10
,
1
,
12
,
3
,
10
,
1
,
8
,
1
,
10
,
1
,
10
,
2
,
10
,
1
,
114
,
199
,
0
,
0
,
0
,
99
,
2
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
2
,
0
,
0
,
0
,
3
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
38
,
0
,
0
,
0
,
116
,
0
,
124
,
0
,
124
,
1
,
131
,
2
,
1
,
0
,
116
,
1
,
106
,
2
,
160
,
3
,
1
16
,
4
,
161
,
1
,
1
,
0
,
116
,
1
,
106
,
2
,
160
,
3
,
116
,
5
,
16
1
,
1
,
1
,
0
,
100
,
1
,
83
,
0
,
41
,
2
,
122
,
48
,
73
,
110
,
115
,
116
,
97
,
108
,
108
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
101
,
114
,
115
,
32
,
102
,
111
,
114
,
3
2
,
98
,
117
,
105
,
108
,
116
,
105
,
110
,
32
,
97
,
110
,
100
,
32
,
102
,
114
,
111
,
122
,
10
1
,
110
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
115
,
78
,
41
,
6
,
114
,
199
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
165
,
0
,
0
,
0
,
114
,
109
,
0
,
0
,
0
,
114
,
141
,
0
,
0
,
0
,
114
,
151
,
0
,
0
,
0
,
41
,
2
,
114
,
197
,
0
,
0
,
0
,
114
,
198
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
8
,
95
,
105
,
110
,
115
,
116
,
97
,
108
,
108
,
127
,
4
,
0
,
0
,
115
,
6
,
0
,
0
,
0
,
0
,
2
,
10
,
2
,
12
,
1
,
114
,
200
,
0
,
0
,
0
,
99
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
4
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
32
,
0
,
0
,
0
,
100
,
1
,
100
,
2
,
108
,
0
,
125
,
0
,
124
,
0
,
97
,
1
,
124
,
0
,
160
,
2
,
116
,
3
,
106
,
4
,
116
,
5
,
25
,
0
,
161
,
1
,
1
,
0
,
100
,
2
,
83
,
0
,
41
,
3
,
122
,
57
,
73
,
110
,
115
,
116
,
97
,
108
,
108
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
1
01
,
114
,
115
,
32
,
116
,
104
,
97
,
116
,
32
,
114
,
101
,
113
,
117
,
105
,
114
,
101
,
32
,
101
,
120
,
116
,
101
,
114
,
110
,
97
,
108
,
32
,
102
,
105
,
108
,
101
,
115
,
12
1
,
11
5
,
116
,
101
,
109
,
32
,
97
,
99
,
99
,
101
,
115
,
115
,
114
,
19
,
0
,
0
,
0
,
78
,
41
,
6
,
218
,
26
,
95
,
102
,
114
,
111
,
122
,
101
,
110
,
95
,
105
,
109
,
112
,
111
,
114
,
116
,
108
,
105
,
98
,
95
,
101
,
120
,
116
,
101
,
114
,
110
,
97
,
108
,
114
,
115
,
0
,
0
,
0
,
114
,
200
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
79
,
0
,
0
,
0
,
114
,
1
,
0
,
0
,
0
,
41
,
1
,
114
,
201
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
27
,
95
,
105
,
110
,
115
,
116
,
97
,
108
,
108
,
95
,
101
,
120
,
116
,
101
,
114
,
110
,
97
,
108
,
95
,
105
,
109
,
112
,
111
,
114
,
116
,
101
,
114
,
115
,
135
,
4
,
0
,
0
,
115
,
6
,
0
,
0
,
0
,
0
,
3
,
8
,
1
,
4
,
1
,
114
,
202
,
0
,
0
,
0
,
41
,
2
,
78
,
78
,
41
,
1
,
78
,
41
,
2
,
78
,
114
,
19
,
0
,
0
,
0
,
41
,
4
,
78
,
78
,
114
,
10
,
0
,
0
,
0
,
114
,
19
,
0
,
0
,
0
,
41
,
51
,
114
,
3
,
0
,
0
,
0
,
114
,
115
,
0
,
0
,
0
,
114
,
12
,
0
,
0
,
0
,
114
,
16
,
0
,
0
,
0
,
114
,
51
,
0
,
0
,
0
,
114
,
29
,
0
,
0
,
0
,
114
,
36
,
0
,
0
,
0
,
114
,
17
,
0
,
0
,
0
,
114
,
18
,
0
,
0
,
0
,
114
,
41
,
0
,
0
,
0
,
114
,
42
,
0
,
0
,
0
,
114
,
45
,
0
,
0
,
0
,
114
,
57
,
0
,
0
,
0
,
114
,
59
,
0
,
0
,
0
,
114
,
68
,
0
,
0
,
0
,
114
,
74
,
0
,
0
,
0
,
114
,
77
,
0
,
0
,
0
,
114
,
84
,
0
,
0
,
0
,
114
,
95
,
0
,
0
,
0
,
114
,
96
,
0
,
0
,
0
,
114
,
102
,
0
,
0
,
0
,
114
,
78
,
0
,
0
,
0
,
114
,
128
,
0
,
0
,
0
,
114
,
133
,
0
,
0
,
0
,
114
,
136
,
0
,
0
,
0
,
114
,
91
,
0
,
0
,
0
,
114
,
80
,
0
,
0
,
0
,
114
,
139
,
0
,
0
,
0
,
114
,
140
,
0
,
0
,
0
,
114
,
81
,
0
,
0
,
0
,
114
,
141
,
0
,
0
,
0
,
114
,
151
,
0
,
0
,
0
,
114
,
156
,
0
,
0
,
0
,
114
,
162
,
0
,
0
,
0
,
114
,
164
,
0
,
0
,
0
,
114
,
169
,
0
,
0
,
0
,
114
,
173
,
0
,
0
,
0
,
90
,
15
,
95
,
69
,
82
,
82
,
95
,
77
,
83
,
71
,
95
,
80
,
82
,
69
,
70
,
73
,
88
,
114
,
175
,
0
,
0
,
0
,
114
,
178
,
0
,
0
,
0
,
218
,
6
,
111
,
98
,
106
,
101
,
99
,
116
,
114
,
179
,
0
,
0
,
0
,
114
,
180
,
0
,
0
,
0
,
114
,
181
,
0
,
0
,
0
,
114
,
185
,
0
,
0
,
0
,
114
,
191
,
0
,
0
,
0
,
114
,
194
,
0
,
0
,
0
,
114
,
195
,
0
,
0
,
0
,
114
,
199
,
0
,
0
,
0
,
114
,
200
,
0
,
0
,
0
,
114
,
202
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
8
,
60
,
109
,
111
,
100
,
117
,
108
,
101
,
62
,
25
,
0
,
0
,
0
,
115
,
96
,
0
,
0
,
0
,
4
,
0
,
4
,
2
,
8
,
8
,
8
,
8
,
4
,
2
,
4
,
3
,
16
,
4
,
14
,
68
,
14
,
21
,
14
,
16
,
8
,
37
,
8
,
17
,
8
,
11
,
14
,
8
,
8
,
1
1
,
8
,
12
,
8
,
16
,
8
,
36
,
14
,
27
,
14
,
101
,
16
,
26
,
10
,
45
,
14
,
72
,
8
,
17
,
8
,
17
,
8
,
24
,
8
,
29
,
8
,
23
,
8
,
15
,
14
,
73
,
14
,
77
,
14
,
13
,
8
,
9
,
8
,
9
,
10
,
47
,
8
,
16
,
4
,
1
,
8
,
2
,
8
,
27
,
6
,
3
,
8
,
16
,
10
,
15
,
14
,
38
,
8
,
27
,
10
,
35
,
8
,
7
,
8
,
35
,
8
,
8
,
0
,
67
,
0
,
0
,
0
,
115
,
2
26
,
0
,
0
,
0
,
124
,
1
,
68
,
0
,
93
,
216
,
1
25
,
4
,
116
,
0
,
124
,
4
,
116
,
1
,
131
,
2
,
115
,
66
,
124
,
3
,
114
,
3
4
,
1
24
,
0
,
106
,
2
,
100
,
1
,
23
,
0
,
125
,
5
,
110
,
4
,
100
,
2
,
125
,
5
,
116
,
3
,
100
,
3
,
124
,
5
,
155
,
0
,
100
,
4
,
116
,
4
,
124
,
4
,
131
,
1
,
1
06
,
2
,
155
,
0
,
157
,
4
,
131
,
1
,
130
,
1
,
113
,
4
,
124
,
4
,
100
,
5
,
1
07
,
2
,
114
,
108
,
124
,
3
,
115
,
220
,
116
,
5
,
124
,
0
,
100
,
6
,
131
,
2
,
11
4
,
220
,
116
,
6
,
124
,
0
,
124
,
0
,
106
,
7
,
124
,
2
,
100
,
7
,
100
,
8
,
1
41
,
4
,
1
,
0
,
113
,
4
,
116
,
5
,
124
,
0
,
124
,
4
,
131
,
2
,
115
,
4
,
1
00
,
9
,
160
,
8
,
124
,
0
,
106
,
2
,
124
,
4
,
161
,
2
,
125
,
6
,
122
,
14
,
1
16
,
9
,
124
,
2
,
124
,
6
,
131
,
2
,
1
,
0
,
87
,
0
,
113
,
4
,
4
,
0
,
1
16
,
10
,
107
,
10
,
114
,
218
,
1
,
0
,
125
,
7
,
1
,
0
,
122
,
42
,
124
,
7
,
1
06
,
11
,
124
,
6
,
107
,
2
,
114
,
200
,
116
,
12
,
106
,
13
,
160
,
14
,
124
,
6
,
11
6
,
15
,
161
,
2
,
100
,
10
,
107
,
9
,
114
,
200
,
87
,
0
,
89
,
0
,
162
,
8
,
1
13
,
4
,
130
,
0
,
87
,
0
,
53
,
0
,
100
,
10
,
125
,
7
,
126
,
7
,
88
,
0
,
89
,
0
,
113
,
4
,
88
,
0
,
113
,
4
,
124
,
0
,
83
,
0
,
41
,
11
,
122
,
238
,
70
,
105
,
103
,
117
,
114
,
101
,
32
,
111
,
117
,
116
,
32
,
119
,
104
,
97
,
116
,
32
,
95
,
95
,
105
,
109
,
112
,
111
,
114
,
116
,
95
,
95
,
32
,
115
,
104
,
111
,
117
,
108
,
1
00
,
32
,
114
,
101
,
116
,
117
,
114
,
110
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
84
,
1
04
,
101
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
95
,
32
,
112
,
97
,
114
,
97
,
109
,
1
01
,
116
,
101
,
114
,
32
,
105
,
115
,
32
,
97
,
32
,
99
,
97
,
108
,
108
,
97
,
98
,
1
08
,
101
,
32
,
119
,
104
,
105
,
99
,
104
,
32
,
116
,
97
,
107
,
101
,
115
,
32
,
116
,
104
,
101
,
32
,
110
,
97
,
109
,
101
,
32
,
111
,
102
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
32
,
11
6
,
111
,
10
,
32
,
32
,
32
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
46
,
32
,
73
,
116
,
32
,
105
,
115
,
32
,
114
,
101
,
113
,
117
,
105
,
114
,
101
,
100
,
32
,
116
,
111
,
32
,
100
,
101
,
99
,
111
,
117
,
112
,
108
,
101
,
32
,
116
,
104
,
101
,
32
,
1
02
,
117
,
110
,
99
,
116
,
105
,
111
,
110
,
32
,
102
,
114
,
111
,
109
,
32
,
97
,
11
5
,
11
5
,
117
,
109
,
105
,
110
,
103
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
108
,
105
,
98
,
3
9
,
115
,
10
,
32
,
32
,
32
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
105
,
109
,
112
,
108
,
101
,
109
,
101
,
110
,
116
,
97
,
116
,
105
,
111
,
110
,
32
,
105
,
115
,
32
,
1
00
,
101
,
115
,
105
,
114
,
101
,
100
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
122
,
8
,
46
,
95
,
95
,
97
,
108
,
108
,
95
,
95
,
122
,
13
,
96
,
96
,
102
,
114
,
111
,
109
,
32
,
108
,
105
,
115
,
116
,
39
,
39
,
122
,
8
,
73
,
116
,
101
,
109
,
32
,
105
,
110
,
32
,
122
,
18
,
32
,
109
,
117
,
115
,
116
,
32
,
98
,
101
,
32
,
115
,
116
,
114
,
44
,
32
,
110
,
111
,
116
,
32
,
250
,
1
,
42
,
218
,
7
,
95
,
95
,
97
,
108
,
108
,
95
,
95
,
84
,
41
,
1
,
114
,
182
,
0
,
0
,
0
,
122
,
5
,
123
,
125
,
46
,
123
,
12
5
,
78
,
41
,
16
,
114
,
170
,
0
,
0
,
0
,
114
,
171
,
0
,
0
,
0
,
114
,
1
,
0
,
0
,
0
,
114
,
172
,
0
,
0
,
0
,
114
,
13
,
0
,
0
,
0
,
114
,
4
,
0
,
0
,
0
,
218
,
16
,
95
,
104
,
97
,
110
,
100
,
108
,
101
,
95
,
102
,
114
,
111
,
109
,
108
,
105
,
115
,
116
,
114
,
184
,
0
,
0
,
0
,
114
,
38
,
0
,
0
,
0
,
114
,
59
,
0
,
0
,
0
,
114
,
176
,
0
,
0
,
0
,
114
,
15
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
79
,
0
,
0
,
0
,
114
,
30
,
0
,
0
,
0
,
114
,
179
,
0
,
0
,
0
,
41
,
8
,
114
,
83
,
0
,
0
,
0
,
218
,
8
,
102
,
114
,
111
,
109
,
108
,
105
,
115
,
116
,
114
,
177
,
0
,
0
,
0
,
114
,
182
,
0
,
0
,
0
,
218
,
1
,
120
,
90
,
5
,
11
9
,
104
,
101
,
114
,
101
,
90
,
9
,
102
,
114
,
111
,
109
,
95
,
110
,
97
,
109
,
101
,
90
,
3
,
101
,
120
,
99
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
114
,
185
,
0
,
0
,
0
,
241
,
3
,
0
,
0
,
115
,
40
,
0
,
0
,
0
,
0
,
1
0
,
8
,
1
,
10
,
1
,
4
,
1
,
12
,
2
,
4
,
1
,
28
,
2
,
8
,
1
,
14
,
1
,
10
,
1
,
10
,
1
,
10
,
1
,
14
,
1
,
2
,
1
,
14
,
1
,
16
,
4
,
10
,
1
,
18
,
1
,
8
,
1
,
22
,
1
,
114
,
185
,
0
,
0
,
0
,
99
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
3
,
0
,
0
,
0
,
6
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
146
,
0
,
0
,
0
,
124
,
0
,
160
,
0
,
100
,
1
,
161
,
1
,
125
,
1
,
124
,
0
,
160
,
0
,
100
,
2
,
161
,
1
,
125
,
2
,
124
,
1
,
100
,
3
,
107
,
9
,
114
,
82
,
124
,
2
,
100
,
3
,
107
,
9
,
114
,
78
,
124
,
1
,
124
,
2
,
106
,
1
,
107
,
3
,
114
,
78
,
116
,
2
,
106
,
3
,
100
,
4
,
124
,
1
,
155
,
2
,
100
,
5
,
124
,
2
,
106
,
1
,
155
,
2
,
100
,
6
,
157
,
5
,
116
,
4
,
100
,
7
,
100
,
8
,
141
,
3
,
1
,
0
,
124
,
1
,
83
,
0
,
124
,
2
,
100
,
3
,
107
,
9
,
114
,
96
,
124
,
2
,
106
,
1
,
83
,
0
,
116
,
2
,
106
,
3
,
100
,
9
,
116
,
4
,
100
,
7
,
100
,
8
,
141
,
3
,
1
,
0
,
124
,
0
,
100
,
10
,
25
,
0
,
125
,
1
,
100
,
11
,
124
,
0
,
107
,
7
,
114
,
142
,
124
,
1
,
160
,
5
,
100
,
12
,
161
,
1
,
100
,
13
,
25
,
0
,
125
,
1
,
124
,
1
,
83
,
0
,
41
,
14
,
122
,
167
,
67
,
97
,
108
,
99
,
117
,
108
,
97
,
116
,
101
,
32
,
119
,
104
,
97
,
116
,
32
,
95
,
95
,
112
,
97
,
99
,
107
,
97
,
103
,
101
,
95
,
95
,
32
,
115
,
104
,
111
,
117
,
108
,
100
,
32
,
98
,
101
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
95
,
95
,
112
,
97
,
99
,
107
,
97
,
103
,
101
,
95
,
95
,
32
,
105
,
115
,
32
,
110
,
111
,
116
,
32
,
103
,
117
,
97
,
1
14
,
97
,
110
,
116
,
101
,
101
,
100
,
32
,
116
,
111
,
32
,
98
,
101
,
32
,
100
,
101
,
102
,
105
,
110
,
101
,
100
,
32
,
111
,
114
,
32
,
99
,
111
,
117
,
108
,
100
,
32
,
98
,
101
,
32
,
115
,
101
,
116
,
32
,
116
,
111
,
32
,
78
,
111
,
110
,
101
,
10
,
32
,
32
,
32
,
32
,
116
,
111
,
32
,
114
,
101
,
112
,
114
,
101
,
115
,
101
,
110
,
116
,
32
,
116
,
104
,
97
,
116
,
32
,
105
,
116
,
115
,
32
,
112
,
114
,
111
,
112
,
101
,
114
,
32
,
118
,
97
,
108
,
117
,
101
,
32
,
105
,
115
,
32
,
117
,
110
,
107
,
110
,
111
,
119
,
110
,
46
,
1
0
,
10
,
32
,
32
,
32
,
32
,
114
,
130
,
0
,
0
,
0
,
114
,
89
,
0
,
0
,
0
,
78
,
122
,
32
,
95
,
95
,
112
,
97
,
99
,
107
,
97
,
103
,
101
,
95
,
95
,
32
,
33
,
61
,
32
,
95
,
95
,
115
,
112
,
101
,
99
,
95
,
95
,
46
,
112
,
97
,
114
,
101
,
110
,
116
,
32
,
40
,
122
,
4
,
32
,
33
,
61
,
32
,
250
,
1
,
41
,
233
,
3
,
0
,
0
,
0
,
41
,
1
,
90
,
10
,
115
,
116
,
97
,
99
,
107
,
108
,
101
,
118
,
101
,
108
,
122
,
89
,
99
,
97
,
110
,
39
,
116
,
32
,
114
,
101
,
115
,
111
,
108
,
118
,
101
,
32
,
112
,
97
,
99
,
107
,
97
,
103
,
101
,
32
,
102
,
114
,
111
,
109
,
32
,
95
,
95
,
115
,
11
2
,
1
01
,
99
,
95
,
95
,
32
,
111
,
114
,
32
,
95
,
95
,
112
,
97
,
99
,
107
,
97
,
103
,
1
01
,
95
,
95
,
44
,
32
,
102
,
97
,
108
,
108
,
105
,
110
,
103
,
32
,
98
,
97
,
99
,
10
7
,
32
,
111
,
110
,
32
,
95
,
95
,
110
,
97
,
109
,
101
,
95
,
95
,
32
,
97
,
110
,
100
,
32
,
95
,
95
,
112
,
97
,
116
,
104
,
95
,
95
,
114
,
1
,
0
,
0
,
0
,
114
,
1
27
,
0
,
0
,
0
,
114
,
117
,
0
,
0
,
0
,
114
,
19
,
0
,
0
,
0
,
41
,
6
,
114
,
30
,
0
,
0
,
0
,
114
,
119
,
0
,
0
,
0
,
114
,
166
,
0
,
0
,
0
,
114
,
167
,
0
,
0
,
0
,
114
,
168
,
0
,
0
,
0
,
114
,
118
,
0
,
0
,
0
,
41
,
3
,
218
,
7
,
103
,
108
,
111
,
98
,
97
,
108
,
115
,
114
,
160
,
0
,
0
,
0
,
114
,
82
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
17
,
95
,
99
,
97
,
108
,
99
,
95
,
95
,
95
,
112
,
97
,
99
,
107
,
97
,
103
,
101
,
95
,
95
,
22
,
4
,
0
,
0
,
115
,
30
,
0
,
0
,
0
,
0
,
7
,
10
,
1
,
10
,
1
,
8
,
1
,
18
,
1
,
22
,
2
,
10
,
1
,
4
,
1
,
8
,
1
,
6
,
2
,
6
,
2
,
10
,
1
,
8
,
1
,
8
,
1
,
14
,
1
,
114
,
191
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
99
,
5
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
9
,
0
,
0
,
0
,
5
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
18
0
,
0
,
0
,
0
,
124
,
4
,
100
,
1
,
107
,
2
,
114
,
18
,
116
,
0
,
124
,
0
,
131
,
1
,
125
,
5
,
110
,
36
,
124
,
1
,
100
,
2
,
107
,
9
,
114
,
30
,
124
,
1
,
110
,
2
,
105
,
0
,
125
,
6
,
116
,
1
,
124
,
6
,
131
,
1
,
125
,
7
,
116
,
0
,
124
,
0
,
124
,
7
,
124
,
4
,
131
,
3
,
125
,
5
,
124
,
3
,
115
,
150
,
124
,
4
,
100
,
1
,
107
,
2
,
114
,
84
,
116
,
0
,
124
,
0
,
160
,
2
,
100
,
3
,
161
,
1
,
100
,
1
,
25
,
0
,
131
,
1
,
83
,
0
,
124
,
0
,
115
,
92
,
124
,
5
,
83
,
0
,
116
,
3
,
124
,
0
,
131
,
1
,
116
,
3
,
124
,
0
,
160
,
2
,
100
,
3
,
161
,
1
,
100
,
1
,
25
,
0
,
131
,
1
,
24
,
0
,
125
,
8
,
116
,
4
,
106
,
5
,
124
,
5
,
106
,
6
,
100
,
2
,
116
,
3
,
124
,
5
,
106
,
6
,
131
,
1
,
124
,
8
,
24
,
0
,
133
,
2
,
25
,
0
,
2
5
,
0
,
83
,
0
,
110
,
26
,
116
,
7
,
124
,
5
,
100
,
4
,
131
,
2
,
114
,
172
,
116
,
8
,
124
,
5
,
124
,
3
,
116
,
0
,
131
,
3
,
83
,
0
,
124
,
5
,
83
,
0
,
100
,
2
,
83
,
0
,
41
,
5
,
97
,
215
,
1
,
0
,
0
,
73
,
109
,
112
,
111
,
114
,
11
6
,
32
,
97
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
84
,
104
,
101
,
32
,
39
,
103
,
108
,
111
,
98
,
97
,
108
,
115
,
39
,
32
,
97
,
114
,
103
,
117
,
109
,
101
,
110
,
116
,
32
,
105
,
115
,
32
,
117
,
115
,
101
,
100
,
32
,
1
16
,
111
,
32
,
105
,
110
,
102
,
101
,
114
,
32
,
119
,
104
,
101
,
114
,
101
,
32
,
116
,
10
4
,
101
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
105
,
115
,
32
,
111
,
99
,
99
,
11
7
,
114
,
114
,
105
,
110
,
103
,
32
,
102
,
114
,
111
,
109
,
10
,
32
,
32
,
32
,
32
,
116
,
111
,
32
,
104
,
97
,
110
,
100
,
108
,
101
,
32
,
114
,
101
,
108
,
97
,
116
,
105
,
118
,
101
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
115
,
46
,
32
,
84
,
104
,
101
,
32
,
39
,
108
,
111
,
99
,
97
,
108
,
115
,
39
,
32
,
97
,
114
,
103
,
117
,
109
,
101
,
110
,
1
16
,
32
,
105
,
115
,
32
,
105
,
103
,
110
,
111
,
114
,
101
,
100
,
46
,
32
,
84
,
104
,
101
,
10
,
32
,
32
,
32
,
32
,
39
,
102
,
114
,
111
,
109
,
108
,
105
,
115
,
116
,
39
,
32
,
97
,
114
,
103
,
117
,
109
,
101
,
110
,
116
,
32
,
115
,
112
,
101
,
99
,
105
,
102
,
105
,
101
,
115
,
32
,
119
,
104
,
97
,
116
,
32
,
115
,
104
,
111
,
117
,
108
,
100
,
32
,
10
1
,
120
,
105
,
115
,
116
,
32
,
97
,
115
,
32
,
97
,
116
,
116
,
114
,
105
,
98
,
117
,
1
16
,
101
,
115
,
32
,
111
,
110
,
32
,
116
,
104
,
101
,
32
,
109
,
111
,
100
,
117
,
108
,
10
1
,
10
,
32
,
32
,
32
,
32
,
98
,
101
,
105
,
110
,
103
,
32
,
105
,
109
,
112
,
111
,
1
14
,
116
,
101
,
100
,
32
,
40
,
101
,
46
,
103
,
46
,
32
,
96
,
96
,
102
,
114
,
111
,
10
9
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
60
,
102
,
114
,
111
,
109
,
108
,
105
,
115
,
116
,
62
,
96
,
96
,
41
,
46
,
32
,
32
,
84
,
104
,
101
,
32
,
39
,
108
,
101
,
118
,
101
,
108
,
39
,
10
,
32
,
32
,
32
,
32
,
97
,
114
,
103
,
117
,
109
,
101
,
110
,
116
,
32
,
114
,
101
,
112
,
114
,
101
,
115
,
101
,
1
10
,
116
,
115
,
32
,
116
,
104
,
101
,
32
,
112
,
97
,
99
,
107
,
97
,
103
,
101
,
32
,
10
8
,
111
,
99
,
97
,
116
,
105
,
111
,
110
,
32
,
116
,
111
,
32
,
105
,
109
,
112
,
111
,
1
14
,
116
,
32
,
102
,
114
,
111
,
109
,
32
,
105
,
110
,
32
,
97
,
32
,
114
,
101
,
108
,
97
,
116
,
105
,
118
,
101
,
10
,
32
,
32
,
32
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
40
,
101
,
46
,
103
,
46
,
32
,
96
,
96
,
102
,
114
,
111
,
109
,
32
,
46
,
46
,
112
,
107
,
103
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
32
,
109
,
111
,
100
,
96
,
96
,
32
,
119
,
111
,
117
,
108
,
100
,
32
,
104
,
97
,
118
,
101
,
32
,
97
,
32
,
39
,
108
,
101
,
118
,
101
,
108
,
39
,
32
,
111
,
102
,
32
,
50
,
41
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
114
,
19
,
0
,
0
,
0
,
78
,
114
,
117
,
0
,
0
,
0
,
114
,
127
,
0
,
0
,
0
,
41
,
9
,
114
,
181
,
0
,
0
,
0
,
114
,
191
,
0
,
0
,
0
,
218
,
9
,
11
2
,
97
,
114
,
116
,
105
,
116
,
105
,
111
,
110
,
114
,
158
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
79
,
0
,
0
,
0
,
114
,
1
,
0
,
0
,
0
,
114
,
4
,
0
,
0
,
0
,
114
,
185
,
0
,
0
,
0
,
41
,
9
,
114
,
15
,
0
,
0
,
0
,
114
,
190
,
0
,
0
,
0
,
218
,
6
,
108
,
111
,
99
,
97
,
108
,
115
,
114
,
186
,
0
,
0
,
0
,
114
,
161
,
0
,
0
,
0
,
114
,
83
,
0
,
0
,
0
,
90
,
8
,
103
,
108
,
111
,
98
,
97
,
108
,
115
,
95
,
114
,
160
,
0
,
0
,
0
,
90
,
7
,
99
,
117
,
116
,
95
,
111
,
1
02
,
102
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
10
,
95
,
95
,
105
,
109
,
112
,
111
,
114
,
116
,
95
,
95
,
49
,
4
,
0
,
0
,
115
,
30
,
0
,
0
,
0
,
0
,
11
,
8
,
1
,
10
,
2
,
16
,
1
,
8
,
1
,
1
2
,
1
,
4
,
3
,
8
,
1
,
18
,
1
,
4
,
1
,
4
,
4
,
26
,
3
,
32
,
1
,
10
,
1
,
12
,
2
,
114
,
194
,
0
,
0
,
0
,
99
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
2
,
0
,
0
,
0
,
3
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
38
,
0
,
0
,
0
,
116
,
0
,
160
,
1
,
124
,
0
,
161
,
1
,
125
,
1
,
124
,
1
,
10
0
,
0
,
107
,
8
,
114
,
30
,
116
,
2
,
100
,
1
,
124
,
0
,
23
,
0
,
131
,
1
,
130
,
1
,
116
,
3
,
124
,
1
,
131
,
1
,
83
,
0
,
41
,
2
,
78
,
122
,
25
,
110
,
111
,
32
,
98
,
117
,
105
,
108
,
116
,
45
,
105
,
110
,
32
,
109
,
111
,
100
,
117
,
108
,
10
1
,
32
,
110
,
97
,
109
,
101
,
100
,
32
,
41
,
4
,
114
,
141
,
0
,
0
,
0
,
114
,
145
,
0
,
0
,
0
,
114
,
70
,
0
,
0
,
0
,
114
,
140
,
0
,
0
,
0
,
41
,
2
,
114
,
15
,
0
,
0
,
0
,
114
,
82
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
18
,
95
,
98
,
117
,
105
,
108
,
116
,
10
5
,
110
,
95
,
102
,
114
,
111
,
109
,
95
,
110
,
97
,
109
,
101
,
86
,
4
,
0
,
0
,
1
15
,
8
,
0
,
0
,
0
,
0
,
1
,
10
,
1
,
8
,
1
,
12
,
1
,
114
,
195
,
0
,
0
,
0
,
99
,
2
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
10
,
0
,
0
,
0
,
5
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
166
,
0
,
0
,
0
,
124
,
1
,
97
,
0
,
124
,
0
,
97
,
1
,
116
,
2
,
116
,
1
,
131
,
1
,
125
,
2
,
116
,
1
,
106
,
3
,
160
,
4
,
161
,
0
,
68
,
0
,
93
,
72
,
92
,
2
,
125
,
3
,
125
,
4
,
116
,
5
,
1
24
,
4
,
124
,
2
,
131
,
2
,
114
,
26
,
124
,
3
,
116
,
1
,
106
,
6
,
107
,
6
,
114
,
60
,
116
,
7
,
125
,
5
,
110
,
18
,
116
,
0
,
160
,
8
,
124
,
3
,
161
,
1
,
1
14
,
26
,
116
,
9
,
125
,
5
,
110
,
2
,
113
,
26
,
116
,
10
,
124
,
4
,
124
,
5
,
131
,
2
,
125
,
6
,
116
,
11
,
124
,
6
,
124
,
4
,
131
,
2
,
1
,
0
,
113
,
26
,
1
16
,
1
,
106
,
3
,
116
,
12
,
25
,
0
,
125
,
7
,
100
,
1
,
68
,
0
,
93
,
46
,
1
25
,
8
,
124
,
8
,
116
,
1
,
106
,
3
,
107
,
7
,
114
,
138
,
116
,
13
,
124
,
8
,
131
,
1
,
125
,
9
,
110
,
10
,
116
,
1
,
106
,
3
,
124
,
8
,
25
,
0
,
125
,
9
,
116
,
14
,
124
,
7
,
124
,
8
,
124
,
9
,
131
,
3
,
1
,
0
,
113
,
114
,
100
,
2
,
83
,
0
,
41
,
3
,
122
,
250
,
83
,
101
,
116
,
117
,
112
,
32
,
105
,
109
,
112
,
111
,
11
4
,
116
,
108
,
105
,
98
,
32
,
98
,
121
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
105
,
11
0
,
103
,
32
,
110
,
101
,
101
,
100
,
101
,
100
,
32
,
98
,
117
,
105
,
108
,
116
,
45
,
105
,
110
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
115
,
32
,
97
,
110
,
100
,
32
,
105
,
1
10
,
106
,
101
,
99
,
116
,
105
,
110
,
103
,
32
,
116
,
104
,
101
,
109
,
10
,
32
,
32
,
32
,
32
,
105
,
110
,
116
,
111
,
32
,
116
,
104
,
101
,
32
,
103
,
108
,
111
,
98
,
97
,
108
,
32
,
110
,
97
,
109
,
101
,
115
,
112
,
97
,
99
,
101
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
65
,
115
,
32
,
115
,
121
,
115
,
32
,
105
,
115
,
32
,
110
,
101
,
101
,
100
,
10
1
,
100
,
32
,
102
,
111
,
114
,
32
,
115
,
121
,
115
,
46
,
109
,
111
,
100
,
117
,
108
,
1
01
,
115
,
32
,
97
,
99
,
99
,
101
,
115
,
115
,
32
,
97
,
110
,
100
,
32
,
95
,
105
,
10
9
,
112
,
32
,
105
,
115
,
32
,
110
,
101
,
101
,
100
,
101
,
100
,
32
,
116
,
111
,
32
,
10
8
,
111
,
97
,
100
,
32
,
98
,
117
,
105
,
108
,
116
,
45
,
105
,
110
,
10
,
32
,
32
,
32
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
115
,
44
,
32
,
116
,
104
,
111
,
115
,
101
,
32
,
116
,
119
,
111
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
115
,
32
,
109
,
117
,
115
,
1
16
,
32
,
98
,
101
,
32
,
101
,
120
,
112
,
108
,
105
,
99
,
105
,
116
,
108
,
121
,
32
,
1
12
,
97
,
115
,
115
,
101
,
100
,
32
,
105
,
110
,
46
,
10
,
10
,
32
,
32
,
32
,
32
,
41
,
3
,
114
,
20
,
0
,
0
,
0
,
114
,
166
,
0
,
0
,
0
,
114
,
56
,
0
,
0
,
0
,
78
,
41
,
15
,
114
,
49
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
13
,
0
,
0
,
0
,
114
,
79
,
0
,
0
,
0
,
218
,
5
,
105
,
116
,
101
,
109
,
115
,
114
,
170
,
0
,
0
,
0
,
114
,
69
,
0
,
0
,
0
,
114
,
141
,
0
,
0
,
0
,
114
,
75
,
0
,
0
,
0
,
114
,
151
,
0
,
0
,
0
,
114
,
128
,
0
,
0
,
0
,
114
,
133
,
0
,
0
,
0
,
114
,
1
,
0
,
0
,
0
,
114
,
195
,
0
,
0
,
0
,
114
,
5
,
0
,
0
,
0
,
41
,
10
,
218
,
10
,
115
,
121
,
115
,
95
,
109
,
111
,
100
,
117
,
108
,
101
,
21
8
,
1
1
,
95
,
105
,
109
,
112
,
95
,
109
,
111
,
100
,
117
,
108
,
101
,
90
,
11
,
109
,
111
,
100
,
117
,
108
,
101
,
95
,
116
,
121
,
112
,
101
,
114
,
15
,
0
,
0
,
0
,
114
,
83
,
0
,
0
,
0
,
114
,
93
,
0
,
0
,
0
,
114
,
82
,
0
,
0
,
0
,
90
,
11
,
115
,
1
01
,
108
,
102
,
95
,
109
,
111
,
100
,
117
,
108
,
101
,
90
,
12
,
98
,
117
,
105
,
10
8
,
11
6
,
105
,
110
,
95
,
110
,
97
,
109
,
101
,
90
,
14
,
98
,
117
,
105
,
108
,
116
,
105
,
110
,
95
,
109
,
111
,
100
,
117
,
108
,
101
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
6
,
95
,
115
,
101
,
116
,
117
,
112
,
93
,
4
,
0
,
0
,
115
,
36
,
0
,
0
,
0
,
0
,
9
,
4
,
1
,
4
,
3
,
8
,
1
,
18
,
1
,
10
,
1
,
10
,
1
,
6
,
1
,
10
,
1
,
6
,
2
,
2
,
1
,
10
,
1
,
1
2
,
3
,
10
,
1
,
8
,
1
,
10
,
1
,
10
,
2
,
10
,
1
,
114
,
199
,
0
,
0
,
0
,
99
,
2
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
2
,
0
,
0
,
0
,
3
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
38
,
0
,
0
,
0
,
116
,
0
,
124
,
0
,
124
,
1
,
131
,
2
,
1
,
0
,
116
,
1
,
106
,
2
,
160
,
3
,
116
,
4
,
161
,
1
,
1
,
0
,
116
,
1
,
106
,
2
,
160
,
3
,
116
,
5
,
161
,
1
,
1
,
0
,
100
,
1
,
83
,
0
,
41
,
2
,
122
,
48
,
73
,
110
,
115
,
116
,
97
,
108
,
108
,
32
,
105
,
109
,
11
2
,
111
,
114
,
116
,
101
,
114
,
115
,
32
,
102
,
111
,
114
,
32
,
98
,
117
,
105
,
108
,
116
,
10
5
,
110
,
32
,
97
,
110
,
100
,
32
,
102
,
114
,
111
,
122
,
101
,
110
,
32
,
109
,
111
,
100
,
117
,
108
,
101
,
115
,
78
,
41
,
6
,
114
,
199
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
165
,
0
,
0
,
0
,
114
,
109
,
0
,
0
,
0
,
114
,
141
,
0
,
0
,
0
,
114
,
151
,
0
,
0
,
0
,
41
,
2
,
114
,
197
,
0
,
0
,
0
,
114
,
198
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
8
,
95
,
105
,
110
,
115
,
116
,
97
,
108
,
108
,
128
,
4
,
0
,
0
,
115
,
6
,
0
,
0
,
0
,
0
,
2
,
10
,
2
,
12
,
1
,
114
,
200
,
0
,
0
,
0
,
99
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
4
,
0
,
0
,
0
,
67
,
0
,
0
,
0
,
115
,
32
,
0
,
0
,
0
,
100
,
1
,
100
,
2
,
108
,
0
,
125
,
0
,
124
,
0
,
97
,
1
,
124
,
0
,
160
,
2
,
116
,
3
,
106
,
4
,
116
,
5
,
25
,
0
,
161
,
1
,
1
,
0
,
100
,
2
,
83
,
0
,
41
,
3
,
122
,
57
,
73
,
110
,
115
,
1
16
,
97
,
108
,
108
,
32
,
105
,
109
,
112
,
111
,
114
,
116
,
101
,
114
,
115
,
32
,
116
,
104
,
97
,
116
,
32
,
114
,
101
,
113
,
117
,
105
,
114
,
101
,
32
,
101
,
120
,
116
,
10
1
,
11
4
,
110
,
97
,
108
,
32
,
102
,
105
,
108
,
101
,
115
,
121
,
115
,
116
,
101
,
109
,
32
,
97
,
99
,
99
,
101
,
115
,
115
,
114
,
19
,
0
,
0
,
0
,
78
,
41
,
6
,
218
,
26
,
95
,
102
,
114
,
111
,
122
,
101
,
110
,
95
,
105
,
109
,
112
,
111
,
114
,
116
,
108
,
105
,
98
,
95
,
101
,
120
,
116
,
101
,
114
,
110
,
97
,
108
,
114
,
115
,
0
,
0
,
0
,
114
,
200
,
0
,
0
,
0
,
114
,
14
,
0
,
0
,
0
,
114
,
79
,
0
,
0
,
0
,
114
,
1
,
0
,
0
,
0
,
41
,
1
,
114
,
201
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
27
,
95
,
105
,
110
,
115
,
116
,
97
,
108
,
108
,
95
,
101
,
120
,
116
,
101
,
114
,
110
,
97
,
108
,
95
,
105
,
109
,
112
,
111
,
114
,
116
,
101
,
114
,
115
,
136
,
4
,
0
,
0
,
115
,
6
,
0
,
0
,
0
,
0
,
3
,
8
,
1
,
4
,
1
,
114
,
202
,
0
,
0
,
0
,
41
,
2
,
78
,
78
,
41
,
1
,
78
,
41
,
2
,
78
,
114
,
19
,
0
,
0
,
0
,
41
,
4
,
78
,
78
,
114
,
10
,
0
,
0
,
0
,
114
,
19
,
0
,
0
,
0
,
41
,
51
,
114
,
3
,
0
,
0
,
0
,
114
,
115
,
0
,
0
,
0
,
114
,
12
,
0
,
0
,
0
,
114
,
16
,
0
,
0
,
0
,
114
,
51
,
0
,
0
,
0
,
114
,
29
,
0
,
0
,
0
,
114
,
36
,
0
,
0
,
0
,
114
,
17
,
0
,
0
,
0
,
114
,
18
,
0
,
0
,
0
,
114
,
41
,
0
,
0
,
0
,
114
,
42
,
0
,
0
,
0
,
114
,
45
,
0
,
0
,
0
,
114
,
57
,
0
,
0
,
0
,
114
,
59
,
0
,
0
,
0
,
114
,
68
,
0
,
0
,
0
,
114
,
74
,
0
,
0
,
0
,
114
,
77
,
0
,
0
,
0
,
114
,
84
,
0
,
0
,
0
,
114
,
95
,
0
,
0
,
0
,
114
,
96
,
0
,
0
,
0
,
114
,
102
,
0
,
0
,
0
,
114
,
78
,
0
,
0
,
0
,
114
,
128
,
0
,
0
,
0
,
114
,
133
,
0
,
0
,
0
,
114
,
136
,
0
,
0
,
0
,
114
,
91
,
0
,
0
,
0
,
114
,
80
,
0
,
0
,
0
,
114
,
139
,
0
,
0
,
0
,
114
,
140
,
0
,
0
,
0
,
114
,
81
,
0
,
0
,
0
,
114
,
141
,
0
,
0
,
0
,
114
,
151
,
0
,
0
,
0
,
114
,
156
,
0
,
0
,
0
,
114
,
162
,
0
,
0
,
0
,
114
,
164
,
0
,
0
,
0
,
114
,
169
,
0
,
0
,
0
,
114
,
173
,
0
,
0
,
0
,
90
,
15
,
95
,
69
,
82
,
82
,
95
,
77
,
83
,
71
,
95
,
80
,
82
,
69
,
70
,
73
,
88
,
114
,
175
,
0
,
0
,
0
,
114
,
178
,
0
,
0
,
0
,
218
,
6
,
111
,
98
,
106
,
101
,
99
,
116
,
114
,
179
,
0
,
0
,
0
,
114
,
180
,
0
,
0
,
0
,
114
,
181
,
0
,
0
,
0
,
114
,
185
,
0
,
0
,
0
,
114
,
191
,
0
,
0
,
0
,
114
,
194
,
0
,
0
,
0
,
114
,
195
,
0
,
0
,
0
,
114
,
199
,
0
,
0
,
0
,
114
,
20
0
,
0
,
0
,
0
,
114
,
202
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
1
0
,
0
,
0
,
0
,
114
,
10
,
0
,
0
,
0
,
114
,
11
,
0
,
0
,
0
,
218
,
8
,
60
,
109
,
111
,
100
,
117
,
108
,
101
,
62
,
25
,
0
,
0
,
0
,
115
,
96
,
0
,
0
,
0
,
4
,
0
,
4
,
2
,
8
,
8
,
8
,
8
,
4
,
2
,
4
,
3
,
16
,
4
,
14
,
68
,
14
,
21
,
1
4
,
16
,
8
,
37
,
8
,
17
,
8
,
11
,
14
,
8
,
8
,
11
,
8
,
12
,
8
,
16
,
8
,
36
,
14
,
27
,
14
,
101
,
16
,
26
,
10
,
45
,
14
,
72
,
8
,
17
,
8
,
17
,
8
,
24
,
8
,
29
,
8
,
23
,
8
,
15
,
14
,
73
,
14
,
77
,
14
,
13
,
8
,
9
,
8
,
9
,
10
,
47
,
8
,
16
,
4
,
1
,
8
,
2
,
8
,
27
,
6
,
3
,
8
,
16
,
10
,
15
,
14
,
37
,
8
,
27
,
10
,
37
,
8
,
7
,
8
,
35
,
8
,
8
,
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment