@polkadot/types-codec 6.12.2-2 → 6.12.2-20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/base/Base.cjs CHANGED
@@ -1,10 +1,20 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.Base = void 0;
7
9
 
10
+ var _classPrivateFieldLooseBase2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseBase"));
11
+
12
+ var _classPrivateFieldLooseKey2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseKey"));
13
+
14
+ var _registry = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("registry");
15
+
16
+ var _raw = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("raw");
17
+
8
18
  // Copyright 2017-2021 @polkadot/types-codec authors & contributors
9
19
  // SPDX-License-Identifier: Apache-2.0
10
20
 
@@ -14,12 +24,18 @@ exports.Base = void 0;
14
24
  */
15
25
  class Base {
16
26
  constructor(registry, value, initialU8aLength) {
17
- this.registry = void 0;
27
+ Object.defineProperty(this, _registry, {
28
+ writable: true,
29
+ value: void 0
30
+ });
18
31
  this.createdAtHash = void 0;
19
32
  this.initialU8aLength = void 0;
20
- this._raw = void 0;
21
- this.registry = registry;
22
- this._raw = value;
33
+ Object.defineProperty(this, _raw, {
34
+ writable: true,
35
+ value: void 0
36
+ });
37
+ (0, _classPrivateFieldLooseBase2.default)(this, _registry)[_registry] = registry;
38
+ (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw] = value;
23
39
  this.initialU8aLength = initialU8aLength;
24
40
  }
25
41
  /**
@@ -38,13 +54,21 @@ class Base {
38
54
  get hash() {
39
55
  return this.registry.hash(this.toU8a());
40
56
  }
57
+
58
+ get inner() {
59
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw];
60
+ }
41
61
  /**
42
62
  * @description Checks if the value is an empty value
43
63
  */
44
64
 
45
65
 
46
66
  get isEmpty() {
47
- return this._raw.isEmpty;
67
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw].isEmpty;
68
+ }
69
+
70
+ get registry() {
71
+ return (0, _classPrivateFieldLooseBase2.default)(this, _registry)[_registry];
48
72
  }
49
73
  /**
50
74
  * @description Compares the value of the input to see if there is a match
@@ -52,7 +76,7 @@ class Base {
52
76
 
53
77
 
54
78
  eq(other) {
55
- return this._raw.eq(other);
79
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw].eq(other);
56
80
  }
57
81
  /**
58
82
  * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation
@@ -60,7 +84,7 @@ class Base {
60
84
 
61
85
 
62
86
  toHex(isLe) {
63
- return this._raw.toHex(isLe);
87
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw].toHex(isLe);
64
88
  }
65
89
  /**
66
90
  * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
@@ -68,7 +92,7 @@ class Base {
68
92
 
69
93
 
70
94
  toHuman(isExtended) {
71
- return this._raw.toHuman(isExtended);
95
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw].toHuman(isExtended);
72
96
  }
73
97
  /**
74
98
  * @description Converts the Object to JSON, typically used for RPC transfers
@@ -76,7 +100,7 @@ class Base {
76
100
 
77
101
 
78
102
  toJSON() {
79
- return this._raw.toJSON();
103
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw].toJSON();
80
104
  }
81
105
  /**
82
106
  * @description Returns the string representation of the value
@@ -84,7 +108,7 @@ class Base {
84
108
 
85
109
 
86
110
  toString() {
87
- return this._raw.toString();
111
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw].toString();
88
112
  }
89
113
  /**
90
114
  * @description Encodes the value as a Uint8Array as per the SCALE specifications
@@ -93,7 +117,7 @@ class Base {
93
117
 
94
118
 
95
119
  toU8a(isBare) {
96
- return this._raw.toU8a(isBare);
120
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw].toU8a(isBare);
97
121
  }
98
122
  /**
99
123
  * @description Returns the base runtime type name for this instance
@@ -104,6 +128,10 @@ class Base {
104
128
  return 'Base';
105
129
  }
106
130
 
131
+ unwrap() {
132
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw];
133
+ }
134
+
107
135
  }
108
136
 
109
137
  exports.Base = Base;
package/base/Base.d.ts CHANGED
@@ -5,10 +5,9 @@ import type { AnyJson, BareOpts, Codec, CodecRegistry, IU8a } from '../types';
5
5
  * @description A type extends the Base class, when it holds a value
6
6
  */
7
7
  export declare abstract class Base<T extends Codec> implements Codec {
8
- readonly registry: CodecRegistry;
8
+ #private;
9
9
  createdAtHash?: IU8a;
10
10
  readonly initialU8aLength?: number;
11
- protected readonly _raw: T;
12
11
  protected constructor(registry: CodecRegistry, value: T, initialU8aLength?: number);
13
12
  /**
14
13
  * @description The length of the value when encoded as a Uint8Array
@@ -18,10 +17,12 @@ export declare abstract class Base<T extends Codec> implements Codec {
18
17
  * @description returns a hash of the contents
19
18
  */
20
19
  get hash(): IU8a;
20
+ get inner(): T;
21
21
  /**
22
22
  * @description Checks if the value is an empty value
23
23
  */
24
24
  get isEmpty(): boolean;
25
+ get registry(): CodecRegistry;
25
26
  /**
26
27
  * @description Compares the value of the input to see if there is a match
27
28
  */
@@ -51,4 +52,5 @@ export declare abstract class Base<T extends Codec> implements Codec {
51
52
  * @description Returns the base runtime type name for this instance
52
53
  */
53
54
  toRawType(): string;
55
+ unwrap(): T;
54
56
  }
package/base/Base.js CHANGED
@@ -1,3 +1,10 @@
1
+ import _classPrivateFieldLooseBase from "@babel/runtime/helpers/esm/classPrivateFieldLooseBase";
2
+ import _classPrivateFieldLooseKey from "@babel/runtime/helpers/esm/classPrivateFieldLooseKey";
3
+
4
+ var _registry = /*#__PURE__*/_classPrivateFieldLooseKey("registry");
5
+
6
+ var _raw = /*#__PURE__*/_classPrivateFieldLooseKey("raw");
7
+
1
8
  // Copyright 2017-2021 @polkadot/types-codec authors & contributors
2
9
  // SPDX-License-Identifier: Apache-2.0
3
10
 
@@ -7,12 +14,18 @@
7
14
  */
8
15
  export class Base {
9
16
  constructor(registry, value, initialU8aLength) {
10
- this.registry = void 0;
17
+ Object.defineProperty(this, _registry, {
18
+ writable: true,
19
+ value: void 0
20
+ });
11
21
  this.createdAtHash = void 0;
12
22
  this.initialU8aLength = void 0;
13
- this._raw = void 0;
14
- this.registry = registry;
15
- this._raw = value;
23
+ Object.defineProperty(this, _raw, {
24
+ writable: true,
25
+ value: void 0
26
+ });
27
+ _classPrivateFieldLooseBase(this, _registry)[_registry] = registry;
28
+ _classPrivateFieldLooseBase(this, _raw)[_raw] = value;
16
29
  this.initialU8aLength = initialU8aLength;
17
30
  }
18
31
  /**
@@ -31,13 +44,21 @@ export class Base {
31
44
  get hash() {
32
45
  return this.registry.hash(this.toU8a());
33
46
  }
47
+
48
+ get inner() {
49
+ return _classPrivateFieldLooseBase(this, _raw)[_raw];
50
+ }
34
51
  /**
35
52
  * @description Checks if the value is an empty value
36
53
  */
37
54
 
38
55
 
39
56
  get isEmpty() {
40
- return this._raw.isEmpty;
57
+ return _classPrivateFieldLooseBase(this, _raw)[_raw].isEmpty;
58
+ }
59
+
60
+ get registry() {
61
+ return _classPrivateFieldLooseBase(this, _registry)[_registry];
41
62
  }
42
63
  /**
43
64
  * @description Compares the value of the input to see if there is a match
@@ -45,7 +66,7 @@ export class Base {
45
66
 
46
67
 
47
68
  eq(other) {
48
- return this._raw.eq(other);
69
+ return _classPrivateFieldLooseBase(this, _raw)[_raw].eq(other);
49
70
  }
50
71
  /**
51
72
  * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation
@@ -53,7 +74,7 @@ export class Base {
53
74
 
54
75
 
55
76
  toHex(isLe) {
56
- return this._raw.toHex(isLe);
77
+ return _classPrivateFieldLooseBase(this, _raw)[_raw].toHex(isLe);
57
78
  }
58
79
  /**
59
80
  * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
@@ -61,7 +82,7 @@ export class Base {
61
82
 
62
83
 
63
84
  toHuman(isExtended) {
64
- return this._raw.toHuman(isExtended);
85
+ return _classPrivateFieldLooseBase(this, _raw)[_raw].toHuman(isExtended);
65
86
  }
66
87
  /**
67
88
  * @description Converts the Object to JSON, typically used for RPC transfers
@@ -69,7 +90,7 @@ export class Base {
69
90
 
70
91
 
71
92
  toJSON() {
72
- return this._raw.toJSON();
93
+ return _classPrivateFieldLooseBase(this, _raw)[_raw].toJSON();
73
94
  }
74
95
  /**
75
96
  * @description Returns the string representation of the value
@@ -77,7 +98,7 @@ export class Base {
77
98
 
78
99
 
79
100
  toString() {
80
- return this._raw.toString();
101
+ return _classPrivateFieldLooseBase(this, _raw)[_raw].toString();
81
102
  }
82
103
  /**
83
104
  * @description Encodes the value as a Uint8Array as per the SCALE specifications
@@ -86,7 +107,7 @@ export class Base {
86
107
 
87
108
 
88
109
  toU8a(isBare) {
89
- return this._raw.toU8a(isBare);
110
+ return _classPrivateFieldLooseBase(this, _raw)[_raw].toU8a(isBare);
90
111
  }
91
112
  /**
92
113
  * @description Returns the base runtime type name for this instance
@@ -97,4 +118,8 @@ export class Base {
97
118
  return 'Base';
98
119
  }
99
120
 
121
+ unwrap() {
122
+ return _classPrivateFieldLooseBase(this, _raw)[_raw];
123
+ }
124
+
100
125
  }
package/base/Enum.cjs CHANGED
@@ -257,6 +257,14 @@ class Enum {
257
257
  get index() {
258
258
  return (0, _classPrivateFieldLooseBase2.default)(this, _indexes)[_indexes][(0, _classPrivateFieldLooseBase2.default)(this, _entryIndex)[_entryIndex]];
259
259
  }
260
+ /**
261
+ * @description The value of the enum
262
+ */
263
+
264
+
265
+ get inner() {
266
+ return (0, _classPrivateFieldLooseBase2.default)(this, _raw)[_raw];
267
+ }
260
268
  /**
261
269
  * @description true if this is a basic enum (no values)
262
270
  */
package/base/Enum.d.ts CHANGED
@@ -28,6 +28,10 @@ export declare class Enum implements IEnum {
28
28
  * @description The index of the enum value
29
29
  */
30
30
  get index(): number;
31
+ /**
32
+ * @description The value of the enum
33
+ */
34
+ get inner(): Codec;
31
35
  /**
32
36
  * @description true if this is a basic enum (no values)
33
37
  */
package/base/Enum.js CHANGED
@@ -236,6 +236,14 @@ export class Enum {
236
236
  get index() {
237
237
  return _classPrivateFieldLooseBase(this, _indexes)[_indexes][_classPrivateFieldLooseBase(this, _entryIndex)[_entryIndex]];
238
238
  }
239
+ /**
240
+ * @description The value of the enum
241
+ */
242
+
243
+
244
+ get inner() {
245
+ return _classPrivateFieldLooseBase(this, _raw)[_raw];
246
+ }
239
247
  /**
240
248
  * @description true if this is a basic enum (no values)
241
249
  */
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ require("@polkadot/types-augment");
4
+
5
+ var _types = require("@polkadot/types");
6
+
7
+ var _index = require("./index.cjs");
8
+
9
+ // Copyright 2017-2021 @polkadot/types authors & contributors
10
+ // SPDX-License-Identifier: Apache-2.0
11
+ const registry = new _types.TypeRegistry();
12
+ console.log(new _index.U32(registry).divn(1));
@@ -0,0 +1,7 @@
1
+ // Copyright 2017-2021 @polkadot/types authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import '@polkadot/types-augment';
4
+ import { TypeRegistry } from '@polkadot/types';
5
+ import { U32 } from "./index.js";
6
+ const registry = new TypeRegistry();
7
+ console.log(new U32(registry).divn(1));
@@ -43,7 +43,7 @@ class WrapperOpaque extends _Base.Base {
43
43
 
44
44
 
45
45
  toRawType() {
46
- return `WrapperOpaque<${this._raw.toRawType()}>`;
46
+ return `WrapperOpaque<${this.inner.toRawType()}>`;
47
47
  }
48
48
  /**
49
49
  * @description The length of the value when encoded as a Uint8Array
@@ -54,14 +54,6 @@ class WrapperOpaque extends _Base.Base {
54
54
  const u8a = super.toU8a(isBare);
55
55
  return isBare ? u8a : (0, _util.compactAddLength)(u8a);
56
56
  }
57
- /**
58
- * @description Return the inner value for the wrapped type
59
- */
60
-
61
-
62
- unwrap() {
63
- return this._raw;
64
- }
65
57
 
66
58
  }
67
59
 
@@ -11,8 +11,4 @@ export declare class WrapperOpaque<T extends Codec> extends Base<T> {
11
11
  * @description The length of the value when encoded as a Uint8Array
12
12
  */
13
13
  toU8a(isBare?: boolean): Uint8Array;
14
- /**
15
- * @description Return the inner value for the wrapped type
16
- */
17
- unwrap(): T;
18
14
  }
@@ -34,7 +34,7 @@ export class WrapperOpaque extends Base {
34
34
 
35
35
 
36
36
  toRawType() {
37
- return `WrapperOpaque<${this._raw.toRawType()}>`;
37
+ return `WrapperOpaque<${this.inner.toRawType()}>`;
38
38
  }
39
39
  /**
40
40
  * @description The length of the value when encoded as a Uint8Array
@@ -45,13 +45,5 @@ export class WrapperOpaque extends Base {
45
45
  const u8a = super.toU8a(isBare);
46
46
  return isBare ? u8a : compactAddLength(u8a);
47
47
  }
48
- /**
49
- * @description Return the inner value for the wrapped type
50
- */
51
-
52
-
53
- unwrap() {
54
- return this._raw;
55
- }
56
48
 
57
49
  }
package/native/Json.cjs CHANGED
@@ -70,6 +70,10 @@ class Json extends Map {
70
70
  eq(other) {
71
71
  return (0, _index.compareMap)(this, other);
72
72
  }
73
+
74
+ getT(key) {
75
+ return this.get(key);
76
+ }
73
77
  /**
74
78
  * @description Unimplemented, will throw
75
79
  */
package/native/Json.d.ts CHANGED
@@ -28,6 +28,7 @@ export declare class Json extends Map<string, any> implements Codec {
28
28
  * @description Compares the value of the input to see if there is a match
29
29
  */
30
30
  eq(other?: unknown): boolean;
31
+ getT<T>(key: string): T;
31
32
  /**
32
33
  * @description Unimplemented, will throw
33
34
  */
package/native/Json.js CHANGED
@@ -58,6 +58,10 @@ export class Json extends Map {
58
58
  eq(other) {
59
59
  return compareMap(this, other);
60
60
  }
61
+
62
+ getT(key) {
63
+ return this.get(key);
64
+ }
61
65
  /**
62
66
  * @description Unimplemented, will throw
63
67
  */
package/native/Struct.cjs CHANGED
@@ -83,6 +83,8 @@ function decodeStructFromObject(registry, Types, value, jsonMap) {
83
83
  */
84
84
 
85
85
 
86
+ var _registry = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("registry");
87
+
86
88
  var _jsonMap = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("jsonMap");
87
89
 
88
90
  var _Types = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("Types");
@@ -93,7 +95,10 @@ class Struct extends Map {
93
95
  const typeMap = (0, _index.mapToTypeMap)(registry, Types);
94
96
  const [decoded, decodedLength] = (0, _util.isU8a)(value) ? (0, _index.decodeU8a)(registry, value, typeMap, true) : (0, _util.isHex)(value) ? (0, _index.decodeU8a)(registry, (0, _util.u8aToU8a)(value), typeMap, true) : value instanceof Struct ? [value, 0] : decodeStructFromObject(registry, typeMap, value || {}, jsonMap);
95
97
  super(decoded);
96
- this.registry = void 0;
98
+ Object.defineProperty(this, _registry, {
99
+ writable: true,
100
+ value: void 0
101
+ });
97
102
  this.createdAtHash = void 0;
98
103
  this.initialU8aLength = void 0;
99
104
  Object.defineProperty(this, _jsonMap, {
@@ -104,7 +109,7 @@ class Struct extends Map {
104
109
  writable: true,
105
110
  value: void 0
106
111
  });
107
- this.registry = registry;
112
+ (0, _classPrivateFieldLooseBase2.default)(this, _registry)[_registry] = registry;
108
113
  this.initialU8aLength = decodedLength;
109
114
  (0, _classPrivateFieldLooseBase2.default)(this, _jsonMap)[_jsonMap] = jsonMap;
110
115
  (0, _classPrivateFieldLooseBase2.default)(this, _Types)[_Types] = typeMap;
@@ -128,6 +133,10 @@ class Struct extends Map {
128
133
  get defKeys() {
129
134
  return Object.keys((0, _classPrivateFieldLooseBase2.default)(this, _Types)[_Types]);
130
135
  }
136
+
137
+ getT(key) {
138
+ return this.get(key);
139
+ }
131
140
  /**
132
141
  * @description Checks if the value is an empty value
133
142
  */
@@ -180,6 +189,10 @@ class Struct extends Map {
180
189
  get hash() {
181
190
  return this.registry.hash(this.toU8a());
182
191
  }
192
+
193
+ get registry() {
194
+ return (0, _classPrivateFieldLooseBase2.default)(this, _registry)[_registry];
195
+ }
183
196
  /**
184
197
  * @description Compares the value of the input to see if there is a match
185
198
  */
@@ -21,7 +21,6 @@ export declare class Struct<S extends TypesDef = TypesDef, V extends {
21
21
  [K in keyof S]: string;
22
22
  }> extends Map<keyof S, Codec> implements IStruct<keyof S> {
23
23
  #private;
24
- readonly registry: CodecRegistry;
25
24
  createdAtHash?: IU8a;
26
25
  readonly initialU8aLength?: number;
27
26
  constructor(registry: CodecRegistry, Types: S, value?: V | Map<unknown, unknown> | unknown[] | HexString | null, jsonMap?: Map<string, string>);
@@ -30,6 +29,7 @@ export declare class Struct<S extends TypesDef = TypesDef, V extends {
30
29
  * @description The available keys for this struct
31
30
  */
32
31
  get defKeys(): string[];
32
+ getT<T>(key: string): T;
33
33
  /**
34
34
  * @description Checks if the value is an empty value
35
35
  */
@@ -46,6 +46,7 @@ export declare class Struct<S extends TypesDef = TypesDef, V extends {
46
46
  * @description returns a hash of the contents
47
47
  */
48
48
  get hash(): IU8a;
49
+ get registry(): CodecRegistry;
49
50
  /**
50
51
  * @description Compares the value of the input to see if there is a match
51
52
  */
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TEST_A = void 0;
7
+ // Copyright 2017-2021 @polkadot/types authors & contributors
8
+ // SPDX-License-Identifier: Apache-2.0
9
+ const TEST_A = '0x0000000000048670f76b10bd81bf93b0b420ad46c209d1183202abcdfce1b0e13108ccf4020000000000000000000000000000000000000000000000000000000000000000000088b116afe3b5020000000000000001000000000000000000000000000000420d0300030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060202';
10
+ exports.TEST_A = TEST_A;
@@ -0,0 +1,3 @@
1
+ // Copyright 2017-2021 @polkadot/types authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export const TEST_A = '0x0000000000048670f76b10bd81bf93b0b420ad46c209d1183202abcdfce1b0e13108ccf4020000000000000000000000000000000000000000000000000000000000000000000088b116afe3b5020000000000000001000000000000000000000000000000420d0300030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060202';
package/native/Struct.js CHANGED
@@ -70,6 +70,8 @@ function decodeStructFromObject(registry, Types, value, jsonMap) {
70
70
  */
71
71
 
72
72
 
73
+ var _registry = /*#__PURE__*/_classPrivateFieldLooseKey("registry");
74
+
73
75
  var _jsonMap = /*#__PURE__*/_classPrivateFieldLooseKey("jsonMap");
74
76
 
75
77
  var _Types = /*#__PURE__*/_classPrivateFieldLooseKey("Types");
@@ -79,7 +81,10 @@ export class Struct extends Map {
79
81
  const typeMap = mapToTypeMap(registry, Types);
80
82
  const [decoded, decodedLength] = isU8a(value) ? decodeU8a(registry, value, typeMap, true) : isHex(value) ? decodeU8a(registry, u8aToU8a(value), typeMap, true) : value instanceof Struct ? [value, 0] : decodeStructFromObject(registry, typeMap, value || {}, jsonMap);
81
83
  super(decoded);
82
- this.registry = void 0;
84
+ Object.defineProperty(this, _registry, {
85
+ writable: true,
86
+ value: void 0
87
+ });
83
88
  this.createdAtHash = void 0;
84
89
  this.initialU8aLength = void 0;
85
90
  Object.defineProperty(this, _jsonMap, {
@@ -90,7 +95,7 @@ export class Struct extends Map {
90
95
  writable: true,
91
96
  value: void 0
92
97
  });
93
- this.registry = registry;
98
+ _classPrivateFieldLooseBase(this, _registry)[_registry] = registry;
94
99
  this.initialU8aLength = decodedLength;
95
100
  _classPrivateFieldLooseBase(this, _jsonMap)[_jsonMap] = jsonMap;
96
101
  _classPrivateFieldLooseBase(this, _Types)[_Types] = typeMap;
@@ -114,6 +119,10 @@ export class Struct extends Map {
114
119
  get defKeys() {
115
120
  return Object.keys(_classPrivateFieldLooseBase(this, _Types)[_Types]);
116
121
  }
122
+
123
+ getT(key) {
124
+ return this.get(key);
125
+ }
117
126
  /**
118
127
  * @description Checks if the value is an empty value
119
128
  */
@@ -166,6 +175,10 @@ export class Struct extends Map {
166
175
  get hash() {
167
176
  return this.registry.hash(this.toU8a());
168
177
  }
178
+
179
+ get registry() {
180
+ return _classPrivateFieldLooseBase(this, _registry)[_registry];
181
+ }
169
182
  /**
170
183
  * @description Compares the value of the input to see if there is a match
171
184
  */
package/package.json CHANGED
@@ -20,11 +20,14 @@
20
20
  "./detectPackage.cjs"
21
21
  ],
22
22
  "type": "module",
23
- "version": "6.12.2-2",
23
+ "version": "6.12.2-20",
24
24
  "main": "index.js",
25
25
  "dependencies": {
26
- "@babel/runtime": "^7.16.3",
27
- "@polkadot/util": "^8.1.2"
26
+ "@babel/runtime": "^7.16.5",
27
+ "@polkadot/util": "^8.2.2"
28
+ },
29
+ "devDependencies": {
30
+ "@polkadot/types": "^6.12.2-20"
28
31
  },
29
32
  "exports": {
30
33
  ".": {
@@ -121,6 +124,10 @@
121
124
  "default": "./bundle.js"
122
125
  },
123
126
  "./bundle.d.ts": "./bundle.d.ts",
127
+ "./checkTypes.manual": {
128
+ "require": "./checkTypes.manual.cjs",
129
+ "default": "./checkTypes.manual.js"
130
+ },
124
131
  "./detectPackage": {
125
132
  "require": "./detectPackage.cjs",
126
133
  "default": "./detectPackage.js"
@@ -222,6 +229,10 @@
222
229
  "default": "./native/Struct.js"
223
230
  },
224
231
  "./native/Struct.d.ts": "./native/Struct.d.ts",
232
+ "./native/Struct.data": {
233
+ "require": "./native/Struct.data.cjs",
234
+ "default": "./native/Struct.data.js"
235
+ },
225
236
  "./native/Text": {
226
237
  "require": "./native/Text.cjs",
227
238
  "default": "./native/Text.js"
package/packageInfo.cjs CHANGED
@@ -9,6 +9,6 @@ exports.packageInfo = void 0;
9
9
  // Auto-generated by @polkadot/dev, do not edit
10
10
  const packageInfo = {
11
11
  name: '@polkadot/types-codec',
12
- version: '6.12.2-2'
12
+ version: '6.12.2-20'
13
13
  };
14
14
  exports.packageInfo = packageInfo;
package/packageInfo.js CHANGED
@@ -3,5 +3,5 @@
3
3
  // Auto-generated by @polkadot/dev, do not edit
4
4
  export const packageInfo = {
5
5
  name: '@polkadot/types-codec',
6
- version: '6.12.2-2'
6
+ version: '6.12.2-20'
7
7
  };
@@ -59,10 +59,11 @@ export interface IU8a extends Uint8Array, Codec {
59
59
  export interface IVec<T extends Codec = Codec> extends Array<T>, Codec {
60
60
  toArray(): T[];
61
61
  }
62
- export interface IMethod<A extends AnyTuple = AnyTuple> extends Codec {
62
+ export interface IMethod<A extends AnyTuple = AnyTuple, M = any> extends Codec {
63
63
  readonly args: A;
64
64
  readonly argsDef: ArgsDef;
65
65
  readonly callIndex: Uint8Array;
66
66
  readonly data: Uint8Array;
67
+ readonly meta: M;
67
68
  is: (tx: IMethod<AnyTuple>) => tx is IMethod<A>;
68
69
  }
@@ -1,8 +1,17 @@
1
1
  /// <reference types="bn.js" />
2
2
  import type { BN } from '@polkadot/util';
3
3
  import type { Codec, CodecClass } from './codec';
4
+ import type { AnyTuple } from './helpers';
4
5
  import type { ICompact, IEnum, IMap, IMethod, INumber, IOption, IResult, ISet, IStruct, ITuple, IU8a, IVec } from './interfaces';
5
6
  export declare type OnlyCodec<K, T, Types> = K extends keyof Types ? Types[K] : T extends ICompact | IEnum | IMap | IMethod | INumber | IOption | IResult | ISet | IStruct | ITuple | IU8a | IVec ? T : T extends Codec ? T : never;
7
+ export interface RegistryError {
8
+ args: string[];
9
+ docs: string[];
10
+ index: number;
11
+ method: string;
12
+ name: string;
13
+ section: string;
14
+ }
6
15
  export declare type RegistryTypes = Record<string, CodecClass | string | Record<string, string> | {
7
16
  _enum: string[] | Record<string, number> | Record<string, string | null>;
8
17
  } | {
@@ -13,16 +22,24 @@ export interface CodecCreateOptions {
13
22
  isOptional?: boolean;
14
23
  isPedantic?: boolean;
15
24
  }
25
+ export interface CallBase<A extends AnyTuple, M = any> extends IMethod<A, M> {
26
+ readonly method: string;
27
+ readonly section: string;
28
+ toJSON: () => any;
29
+ }
30
+ export interface CallFunction<A extends AnyTuple = AnyTuple, M = any> extends CallBase<A, M> {
31
+ (...args: any[]): IMethod<A, M>;
32
+ }
16
33
  export interface CodecRegistry {
17
34
  readonly chainDecimals: number[];
18
35
  readonly chainSS58: number | undefined;
19
36
  readonly chainTokens: string[];
20
37
  createdAtHash?: IU8a;
21
- findMetaCall(callIndex: Uint8Array): unknown;
38
+ findMetaCall(callIndex: Uint8Array): CallFunction;
22
39
  findMetaError(errorIndex: Uint8Array | {
23
40
  error: BN;
24
41
  index: BN;
25
- }): unknown;
42
+ }): RegistryError;
26
43
  findMetaEvent(eventIndex: Uint8Array): CodecClass<any>;
27
44
  isLookupType(value: string): boolean;
28
45
  createLookupType(lookupId: ICompact<INumber> | number): string;