1 //
2 // MessagePack for C++ static resolution routine
3 //
4 // Copyright (C) 2008-2009 FURUHASHI Sadayuki
5 //
6 //    Licensed under the Apache License, Version 2.0 (the "License");
7 //    you may not use this file except in compliance with the License.
8 //    You may obtain a copy of the License at
9 //
10 //        http://www.apache.org/licenses/LICENSE-2.0
11 //
12 //    Unless required by applicable law or agreed to in writing, software
13 //    distributed under the License is distributed on an "AS IS" BASIS,
14 //    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 //    See the License for the specific language governing permissions and
16 //    limitations under the License.
17 //
18 #ifndef MSGPACK_TYPE_TUPLE_HPP__
19 #define MSGPACK_TYPE_TUPLE_HPP__
20 
21 #include "msgpack/object.hpp"
22 
23 namespace msgpack {
24 
25 namespace type {
26 
27 // FIXME operator==
28 // FIXME operator!=
29 
30 
31 template <typename A0 = void, typename A1 = void, typename A2 = void, typename A3 = void, typename A4 = void, typename A5 = void, typename A6 = void, typename A7 = void, typename A8 = void, typename A9 = void, typename A10 = void, typename A11 = void, typename A12 = void, typename A13 = void, typename A14 = void, typename A15 = void, typename A16 = void, typename A17 = void, typename A18 = void, typename A19 = void, typename A20 = void, typename A21 = void, typename A22 = void, typename A23 = void, typename A24 = void, typename A25 = void, typename A26 = void, typename A27 = void, typename A28 = void, typename A29 = void, typename A30 = void, typename A31 = void, typename A32 = void>
32 struct tuple;
33 
34 template <typename Tuple, int N>
35 struct tuple_element;
36 
37 template <typename Tuple, int N>
38 struct const_tuple_element;
39 
40 template <typename T>
41 struct tuple_type {
42 	typedef T type;
43 	typedef T value_type;
44 	typedef T& reference;
45 	typedef const T& const_reference;
46 	typedef const T& transparent_reference;
47 };
48 
49 template <typename T>
50 struct tuple_type<T&> {
51 	typedef T type;
52 	typedef T& value_type;
53 	typedef T& reference;
54 	typedef const T& const_reference;
55 	typedef T& transparent_reference;
56 };
57 
58 template <typename T>
59 struct tuple_type<const T&> {
60 	typedef T type;
61 	typedef T& value_type;
62 	typedef T& reference;
63 	typedef const T& const_reference;
64 	typedef const T& transparent_reference;
65 };
66 
67 
68 
69 template <typename A0>
70 struct tuple_element<tuple<A0>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element71 	tuple_element(tuple<A0>& x) : _x(x.a0) {}
getmsgpack::type::tuple_element72 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element73 	typename tuple_type<A0>::const_reference get() const { return _x; }
74 private:
75 	typename tuple_type<A0>::reference _x;
76 };
77 
78 
79 
80 template <typename A0, typename A1>
81 struct tuple_element<tuple<A0, A1>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element82 	tuple_element(tuple<A0, A1 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element83 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element84 	typename tuple_type<A0>::const_reference get() const { return _x; }
85 private:
86 	typename tuple_type<A0>::reference _x;
87 };
88 
89 template <typename A0, typename A1>
90 struct tuple_element<tuple<A0, A1>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element91 	tuple_element(tuple<A0, A1 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element92 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element93 	typename tuple_type<A1>::const_reference get() const { return _x; }
94 private:
95 	typename tuple_type<A1>::reference _x;
96 };
97 
98 
99 
100 template <typename A0, typename A1, typename A2>
101 struct tuple_element<tuple<A0, A1, A2>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element102 	tuple_element(tuple<A0, A1 , A2 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element103 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element104 	typename tuple_type<A0>::const_reference get() const { return _x; }
105 private:
106 	typename tuple_type<A0>::reference _x;
107 };
108 
109 template <typename A0, typename A1, typename A2>
110 struct tuple_element<tuple<A0, A1, A2>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element111 	tuple_element(tuple<A0, A1 , A2 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element112 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element113 	typename tuple_type<A1>::const_reference get() const { return _x; }
114 private:
115 	typename tuple_type<A1>::reference _x;
116 };
117 
118 template <typename A0, typename A1, typename A2>
119 struct tuple_element<tuple<A0, A1, A2>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element120 	tuple_element(tuple<A0, A1 , A2 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element121 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element122 	typename tuple_type<A2>::const_reference get() const { return _x; }
123 private:
124 	typename tuple_type<A2>::reference _x;
125 };
126 
127 
128 
129 template <typename A0, typename A1, typename A2, typename A3>
130 struct tuple_element<tuple<A0, A1, A2, A3>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element131 	tuple_element(tuple<A0, A1 , A2 , A3 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element132 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element133 	typename tuple_type<A0>::const_reference get() const { return _x; }
134 private:
135 	typename tuple_type<A0>::reference _x;
136 };
137 
138 template <typename A0, typename A1, typename A2, typename A3>
139 struct tuple_element<tuple<A0, A1, A2, A3>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element140 	tuple_element(tuple<A0, A1 , A2 , A3 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element141 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element142 	typename tuple_type<A1>::const_reference get() const { return _x; }
143 private:
144 	typename tuple_type<A1>::reference _x;
145 };
146 
147 template <typename A0, typename A1, typename A2, typename A3>
148 struct tuple_element<tuple<A0, A1, A2, A3>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element149 	tuple_element(tuple<A0, A1 , A2 , A3 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element150 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element151 	typename tuple_type<A2>::const_reference get() const { return _x; }
152 private:
153 	typename tuple_type<A2>::reference _x;
154 };
155 
156 template <typename A0, typename A1, typename A2, typename A3>
157 struct tuple_element<tuple<A0, A1, A2, A3>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element158 	tuple_element(tuple<A0, A1 , A2 , A3 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element159 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element160 	typename tuple_type<A3>::const_reference get() const { return _x; }
161 private:
162 	typename tuple_type<A3>::reference _x;
163 };
164 
165 
166 
167 template <typename A0, typename A1, typename A2, typename A3, typename A4>
168 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element169 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element170 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element171 	typename tuple_type<A0>::const_reference get() const { return _x; }
172 private:
173 	typename tuple_type<A0>::reference _x;
174 };
175 
176 template <typename A0, typename A1, typename A2, typename A3, typename A4>
177 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element178 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element179 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element180 	typename tuple_type<A1>::const_reference get() const { return _x; }
181 private:
182 	typename tuple_type<A1>::reference _x;
183 };
184 
185 template <typename A0, typename A1, typename A2, typename A3, typename A4>
186 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element187 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element188 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element189 	typename tuple_type<A2>::const_reference get() const { return _x; }
190 private:
191 	typename tuple_type<A2>::reference _x;
192 };
193 
194 template <typename A0, typename A1, typename A2, typename A3, typename A4>
195 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element196 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element197 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element198 	typename tuple_type<A3>::const_reference get() const { return _x; }
199 private:
200 	typename tuple_type<A3>::reference _x;
201 };
202 
203 template <typename A0, typename A1, typename A2, typename A3, typename A4>
204 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element205 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element206 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element207 	typename tuple_type<A4>::const_reference get() const { return _x; }
208 private:
209 	typename tuple_type<A4>::reference _x;
210 };
211 
212 
213 
214 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
215 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element216 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element217 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element218 	typename tuple_type<A0>::const_reference get() const { return _x; }
219 private:
220 	typename tuple_type<A0>::reference _x;
221 };
222 
223 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
224 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element225 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element226 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element227 	typename tuple_type<A1>::const_reference get() const { return _x; }
228 private:
229 	typename tuple_type<A1>::reference _x;
230 };
231 
232 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
233 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element234 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element235 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element236 	typename tuple_type<A2>::const_reference get() const { return _x; }
237 private:
238 	typename tuple_type<A2>::reference _x;
239 };
240 
241 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
242 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element243 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element244 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element245 	typename tuple_type<A3>::const_reference get() const { return _x; }
246 private:
247 	typename tuple_type<A3>::reference _x;
248 };
249 
250 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
251 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element252 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element253 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element254 	typename tuple_type<A4>::const_reference get() const { return _x; }
255 private:
256 	typename tuple_type<A4>::reference _x;
257 };
258 
259 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
260 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element261 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element262 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element263 	typename tuple_type<A5>::const_reference get() const { return _x; }
264 private:
265 	typename tuple_type<A5>::reference _x;
266 };
267 
268 
269 
270 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
271 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element272 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element273 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element274 	typename tuple_type<A0>::const_reference get() const { return _x; }
275 private:
276 	typename tuple_type<A0>::reference _x;
277 };
278 
279 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
280 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element281 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element282 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element283 	typename tuple_type<A1>::const_reference get() const { return _x; }
284 private:
285 	typename tuple_type<A1>::reference _x;
286 };
287 
288 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
289 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element290 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element291 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element292 	typename tuple_type<A2>::const_reference get() const { return _x; }
293 private:
294 	typename tuple_type<A2>::reference _x;
295 };
296 
297 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
298 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element299 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element300 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element301 	typename tuple_type<A3>::const_reference get() const { return _x; }
302 private:
303 	typename tuple_type<A3>::reference _x;
304 };
305 
306 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
307 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element308 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element309 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element310 	typename tuple_type<A4>::const_reference get() const { return _x; }
311 private:
312 	typename tuple_type<A4>::reference _x;
313 };
314 
315 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
316 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element317 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element318 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element319 	typename tuple_type<A5>::const_reference get() const { return _x; }
320 private:
321 	typename tuple_type<A5>::reference _x;
322 };
323 
324 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
325 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element326 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element327 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element328 	typename tuple_type<A6>::const_reference get() const { return _x; }
329 private:
330 	typename tuple_type<A6>::reference _x;
331 };
332 
333 
334 
335 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
336 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element337 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element338 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element339 	typename tuple_type<A0>::const_reference get() const { return _x; }
340 private:
341 	typename tuple_type<A0>::reference _x;
342 };
343 
344 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
345 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element346 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element347 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element348 	typename tuple_type<A1>::const_reference get() const { return _x; }
349 private:
350 	typename tuple_type<A1>::reference _x;
351 };
352 
353 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
354 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element355 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element356 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element357 	typename tuple_type<A2>::const_reference get() const { return _x; }
358 private:
359 	typename tuple_type<A2>::reference _x;
360 };
361 
362 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
363 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element364 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element365 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element366 	typename tuple_type<A3>::const_reference get() const { return _x; }
367 private:
368 	typename tuple_type<A3>::reference _x;
369 };
370 
371 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
372 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element373 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element374 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element375 	typename tuple_type<A4>::const_reference get() const { return _x; }
376 private:
377 	typename tuple_type<A4>::reference _x;
378 };
379 
380 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
381 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element382 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element383 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element384 	typename tuple_type<A5>::const_reference get() const { return _x; }
385 private:
386 	typename tuple_type<A5>::reference _x;
387 };
388 
389 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
390 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element391 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element392 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element393 	typename tuple_type<A6>::const_reference get() const { return _x; }
394 private:
395 	typename tuple_type<A6>::reference _x;
396 };
397 
398 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
399 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element400 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element401 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element402 	typename tuple_type<A7>::const_reference get() const { return _x; }
403 private:
404 	typename tuple_type<A7>::reference _x;
405 };
406 
407 
408 
409 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
410 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element411 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element412 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element413 	typename tuple_type<A0>::const_reference get() const { return _x; }
414 private:
415 	typename tuple_type<A0>::reference _x;
416 };
417 
418 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
419 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element420 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element421 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element422 	typename tuple_type<A1>::const_reference get() const { return _x; }
423 private:
424 	typename tuple_type<A1>::reference _x;
425 };
426 
427 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
428 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element429 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element430 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element431 	typename tuple_type<A2>::const_reference get() const { return _x; }
432 private:
433 	typename tuple_type<A2>::reference _x;
434 };
435 
436 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
437 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element438 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element439 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element440 	typename tuple_type<A3>::const_reference get() const { return _x; }
441 private:
442 	typename tuple_type<A3>::reference _x;
443 };
444 
445 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
446 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element447 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element448 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element449 	typename tuple_type<A4>::const_reference get() const { return _x; }
450 private:
451 	typename tuple_type<A4>::reference _x;
452 };
453 
454 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
455 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element456 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element457 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element458 	typename tuple_type<A5>::const_reference get() const { return _x; }
459 private:
460 	typename tuple_type<A5>::reference _x;
461 };
462 
463 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
464 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element465 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element466 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element467 	typename tuple_type<A6>::const_reference get() const { return _x; }
468 private:
469 	typename tuple_type<A6>::reference _x;
470 };
471 
472 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
473 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element474 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element475 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element476 	typename tuple_type<A7>::const_reference get() const { return _x; }
477 private:
478 	typename tuple_type<A7>::reference _x;
479 };
480 
481 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
482 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element483 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element484 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element485 	typename tuple_type<A8>::const_reference get() const { return _x; }
486 private:
487 	typename tuple_type<A8>::reference _x;
488 };
489 
490 
491 
492 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
493 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element494 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element495 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element496 	typename tuple_type<A0>::const_reference get() const { return _x; }
497 private:
498 	typename tuple_type<A0>::reference _x;
499 };
500 
501 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
502 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element503 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element504 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element505 	typename tuple_type<A1>::const_reference get() const { return _x; }
506 private:
507 	typename tuple_type<A1>::reference _x;
508 };
509 
510 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
511 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element512 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element513 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element514 	typename tuple_type<A2>::const_reference get() const { return _x; }
515 private:
516 	typename tuple_type<A2>::reference _x;
517 };
518 
519 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
520 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element521 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element522 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element523 	typename tuple_type<A3>::const_reference get() const { return _x; }
524 private:
525 	typename tuple_type<A3>::reference _x;
526 };
527 
528 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
529 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element530 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element531 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element532 	typename tuple_type<A4>::const_reference get() const { return _x; }
533 private:
534 	typename tuple_type<A4>::reference _x;
535 };
536 
537 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
538 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element539 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element540 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element541 	typename tuple_type<A5>::const_reference get() const { return _x; }
542 private:
543 	typename tuple_type<A5>::reference _x;
544 };
545 
546 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
547 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element548 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element549 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element550 	typename tuple_type<A6>::const_reference get() const { return _x; }
551 private:
552 	typename tuple_type<A6>::reference _x;
553 };
554 
555 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
556 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element557 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element558 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element559 	typename tuple_type<A7>::const_reference get() const { return _x; }
560 private:
561 	typename tuple_type<A7>::reference _x;
562 };
563 
564 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
565 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element566 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element567 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element568 	typename tuple_type<A8>::const_reference get() const { return _x; }
569 private:
570 	typename tuple_type<A8>::reference _x;
571 };
572 
573 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
574 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element575 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element576 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element577 	typename tuple_type<A9>::const_reference get() const { return _x; }
578 private:
579 	typename tuple_type<A9>::reference _x;
580 };
581 
582 
583 
584 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
585 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element586 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element587 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element588 	typename tuple_type<A0>::const_reference get() const { return _x; }
589 private:
590 	typename tuple_type<A0>::reference _x;
591 };
592 
593 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
594 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element595 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element596 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element597 	typename tuple_type<A1>::const_reference get() const { return _x; }
598 private:
599 	typename tuple_type<A1>::reference _x;
600 };
601 
602 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
603 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element604 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element605 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element606 	typename tuple_type<A2>::const_reference get() const { return _x; }
607 private:
608 	typename tuple_type<A2>::reference _x;
609 };
610 
611 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
612 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element613 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element614 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element615 	typename tuple_type<A3>::const_reference get() const { return _x; }
616 private:
617 	typename tuple_type<A3>::reference _x;
618 };
619 
620 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
621 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element622 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element623 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element624 	typename tuple_type<A4>::const_reference get() const { return _x; }
625 private:
626 	typename tuple_type<A4>::reference _x;
627 };
628 
629 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
630 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element631 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element632 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element633 	typename tuple_type<A5>::const_reference get() const { return _x; }
634 private:
635 	typename tuple_type<A5>::reference _x;
636 };
637 
638 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
639 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element640 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element641 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element642 	typename tuple_type<A6>::const_reference get() const { return _x; }
643 private:
644 	typename tuple_type<A6>::reference _x;
645 };
646 
647 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
648 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element649 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element650 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element651 	typename tuple_type<A7>::const_reference get() const { return _x; }
652 private:
653 	typename tuple_type<A7>::reference _x;
654 };
655 
656 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
657 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element658 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element659 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element660 	typename tuple_type<A8>::const_reference get() const { return _x; }
661 private:
662 	typename tuple_type<A8>::reference _x;
663 };
664 
665 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
666 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element667 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element668 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element669 	typename tuple_type<A9>::const_reference get() const { return _x; }
670 private:
671 	typename tuple_type<A9>::reference _x;
672 };
673 
674 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
675 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element676 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element677 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element678 	typename tuple_type<A10>::const_reference get() const { return _x; }
679 private:
680 	typename tuple_type<A10>::reference _x;
681 };
682 
683 
684 
685 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
686 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element687 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element688 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element689 	typename tuple_type<A0>::const_reference get() const { return _x; }
690 private:
691 	typename tuple_type<A0>::reference _x;
692 };
693 
694 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
695 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element696 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element697 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element698 	typename tuple_type<A1>::const_reference get() const { return _x; }
699 private:
700 	typename tuple_type<A1>::reference _x;
701 };
702 
703 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
704 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element705 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element706 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element707 	typename tuple_type<A2>::const_reference get() const { return _x; }
708 private:
709 	typename tuple_type<A2>::reference _x;
710 };
711 
712 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
713 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element714 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element715 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element716 	typename tuple_type<A3>::const_reference get() const { return _x; }
717 private:
718 	typename tuple_type<A3>::reference _x;
719 };
720 
721 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
722 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element723 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element724 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element725 	typename tuple_type<A4>::const_reference get() const { return _x; }
726 private:
727 	typename tuple_type<A4>::reference _x;
728 };
729 
730 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
731 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element732 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element733 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element734 	typename tuple_type<A5>::const_reference get() const { return _x; }
735 private:
736 	typename tuple_type<A5>::reference _x;
737 };
738 
739 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
740 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element741 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element742 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element743 	typename tuple_type<A6>::const_reference get() const { return _x; }
744 private:
745 	typename tuple_type<A6>::reference _x;
746 };
747 
748 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
749 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element750 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element751 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element752 	typename tuple_type<A7>::const_reference get() const { return _x; }
753 private:
754 	typename tuple_type<A7>::reference _x;
755 };
756 
757 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
758 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element759 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element760 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element761 	typename tuple_type<A8>::const_reference get() const { return _x; }
762 private:
763 	typename tuple_type<A8>::reference _x;
764 };
765 
766 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
767 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element768 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element769 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element770 	typename tuple_type<A9>::const_reference get() const { return _x; }
771 private:
772 	typename tuple_type<A9>::reference _x;
773 };
774 
775 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
776 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element777 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element778 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element779 	typename tuple_type<A10>::const_reference get() const { return _x; }
780 private:
781 	typename tuple_type<A10>::reference _x;
782 };
783 
784 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
785 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element786 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element787 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element788 	typename tuple_type<A11>::const_reference get() const { return _x; }
789 private:
790 	typename tuple_type<A11>::reference _x;
791 };
792 
793 
794 
795 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
796 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element797 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element798 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element799 	typename tuple_type<A0>::const_reference get() const { return _x; }
800 private:
801 	typename tuple_type<A0>::reference _x;
802 };
803 
804 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
805 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element806 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element807 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element808 	typename tuple_type<A1>::const_reference get() const { return _x; }
809 private:
810 	typename tuple_type<A1>::reference _x;
811 };
812 
813 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
814 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element815 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element816 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element817 	typename tuple_type<A2>::const_reference get() const { return _x; }
818 private:
819 	typename tuple_type<A2>::reference _x;
820 };
821 
822 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
823 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element824 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element825 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element826 	typename tuple_type<A3>::const_reference get() const { return _x; }
827 private:
828 	typename tuple_type<A3>::reference _x;
829 };
830 
831 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
832 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element833 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element834 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element835 	typename tuple_type<A4>::const_reference get() const { return _x; }
836 private:
837 	typename tuple_type<A4>::reference _x;
838 };
839 
840 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
841 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element842 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element843 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element844 	typename tuple_type<A5>::const_reference get() const { return _x; }
845 private:
846 	typename tuple_type<A5>::reference _x;
847 };
848 
849 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
850 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element851 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element852 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element853 	typename tuple_type<A6>::const_reference get() const { return _x; }
854 private:
855 	typename tuple_type<A6>::reference _x;
856 };
857 
858 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
859 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element860 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element861 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element862 	typename tuple_type<A7>::const_reference get() const { return _x; }
863 private:
864 	typename tuple_type<A7>::reference _x;
865 };
866 
867 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
868 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element869 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element870 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element871 	typename tuple_type<A8>::const_reference get() const { return _x; }
872 private:
873 	typename tuple_type<A8>::reference _x;
874 };
875 
876 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
877 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element878 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element879 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element880 	typename tuple_type<A9>::const_reference get() const { return _x; }
881 private:
882 	typename tuple_type<A9>::reference _x;
883 };
884 
885 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
886 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element887 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element888 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element889 	typename tuple_type<A10>::const_reference get() const { return _x; }
890 private:
891 	typename tuple_type<A10>::reference _x;
892 };
893 
894 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
895 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element896 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element897 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element898 	typename tuple_type<A11>::const_reference get() const { return _x; }
899 private:
900 	typename tuple_type<A11>::reference _x;
901 };
902 
903 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
904 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element905 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element906 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element907 	typename tuple_type<A12>::const_reference get() const { return _x; }
908 private:
909 	typename tuple_type<A12>::reference _x;
910 };
911 
912 
913 
914 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
915 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element916 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element917 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element918 	typename tuple_type<A0>::const_reference get() const { return _x; }
919 private:
920 	typename tuple_type<A0>::reference _x;
921 };
922 
923 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
924 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element925 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element926 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element927 	typename tuple_type<A1>::const_reference get() const { return _x; }
928 private:
929 	typename tuple_type<A1>::reference _x;
930 };
931 
932 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
933 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element934 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element935 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element936 	typename tuple_type<A2>::const_reference get() const { return _x; }
937 private:
938 	typename tuple_type<A2>::reference _x;
939 };
940 
941 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
942 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element943 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element944 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element945 	typename tuple_type<A3>::const_reference get() const { return _x; }
946 private:
947 	typename tuple_type<A3>::reference _x;
948 };
949 
950 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
951 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element952 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element953 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element954 	typename tuple_type<A4>::const_reference get() const { return _x; }
955 private:
956 	typename tuple_type<A4>::reference _x;
957 };
958 
959 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
960 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element961 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element962 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element963 	typename tuple_type<A5>::const_reference get() const { return _x; }
964 private:
965 	typename tuple_type<A5>::reference _x;
966 };
967 
968 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
969 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element970 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element971 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element972 	typename tuple_type<A6>::const_reference get() const { return _x; }
973 private:
974 	typename tuple_type<A6>::reference _x;
975 };
976 
977 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
978 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element979 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element980 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element981 	typename tuple_type<A7>::const_reference get() const { return _x; }
982 private:
983 	typename tuple_type<A7>::reference _x;
984 };
985 
986 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
987 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element988 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element989 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element990 	typename tuple_type<A8>::const_reference get() const { return _x; }
991 private:
992 	typename tuple_type<A8>::reference _x;
993 };
994 
995 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
996 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element997 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element998 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element999 	typename tuple_type<A9>::const_reference get() const { return _x; }
1000 private:
1001 	typename tuple_type<A9>::reference _x;
1002 };
1003 
1004 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
1005 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element1006 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element1007 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element1008 	typename tuple_type<A10>::const_reference get() const { return _x; }
1009 private:
1010 	typename tuple_type<A10>::reference _x;
1011 };
1012 
1013 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
1014 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element1015 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element1016 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element1017 	typename tuple_type<A11>::const_reference get() const { return _x; }
1018 private:
1019 	typename tuple_type<A11>::reference _x;
1020 };
1021 
1022 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
1023 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element1024 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element1025 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element1026 	typename tuple_type<A12>::const_reference get() const { return _x; }
1027 private:
1028 	typename tuple_type<A12>::reference _x;
1029 };
1030 
1031 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
1032 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element1033 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element1034 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element1035 	typename tuple_type<A13>::const_reference get() const { return _x; }
1036 private:
1037 	typename tuple_type<A13>::reference _x;
1038 };
1039 
1040 
1041 
1042 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1043 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element1044 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element1045 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element1046 	typename tuple_type<A0>::const_reference get() const { return _x; }
1047 private:
1048 	typename tuple_type<A0>::reference _x;
1049 };
1050 
1051 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1052 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element1053 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element1054 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element1055 	typename tuple_type<A1>::const_reference get() const { return _x; }
1056 private:
1057 	typename tuple_type<A1>::reference _x;
1058 };
1059 
1060 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1061 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element1062 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element1063 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element1064 	typename tuple_type<A2>::const_reference get() const { return _x; }
1065 private:
1066 	typename tuple_type<A2>::reference _x;
1067 };
1068 
1069 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1070 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element1071 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element1072 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element1073 	typename tuple_type<A3>::const_reference get() const { return _x; }
1074 private:
1075 	typename tuple_type<A3>::reference _x;
1076 };
1077 
1078 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1079 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element1080 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element1081 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element1082 	typename tuple_type<A4>::const_reference get() const { return _x; }
1083 private:
1084 	typename tuple_type<A4>::reference _x;
1085 };
1086 
1087 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1088 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element1089 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element1090 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element1091 	typename tuple_type<A5>::const_reference get() const { return _x; }
1092 private:
1093 	typename tuple_type<A5>::reference _x;
1094 };
1095 
1096 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1097 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element1098 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element1099 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element1100 	typename tuple_type<A6>::const_reference get() const { return _x; }
1101 private:
1102 	typename tuple_type<A6>::reference _x;
1103 };
1104 
1105 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1106 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element1107 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element1108 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element1109 	typename tuple_type<A7>::const_reference get() const { return _x; }
1110 private:
1111 	typename tuple_type<A7>::reference _x;
1112 };
1113 
1114 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1115 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element1116 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element1117 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element1118 	typename tuple_type<A8>::const_reference get() const { return _x; }
1119 private:
1120 	typename tuple_type<A8>::reference _x;
1121 };
1122 
1123 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1124 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element1125 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element1126 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element1127 	typename tuple_type<A9>::const_reference get() const { return _x; }
1128 private:
1129 	typename tuple_type<A9>::reference _x;
1130 };
1131 
1132 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1133 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element1134 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element1135 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element1136 	typename tuple_type<A10>::const_reference get() const { return _x; }
1137 private:
1138 	typename tuple_type<A10>::reference _x;
1139 };
1140 
1141 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1142 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element1143 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element1144 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element1145 	typename tuple_type<A11>::const_reference get() const { return _x; }
1146 private:
1147 	typename tuple_type<A11>::reference _x;
1148 };
1149 
1150 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1151 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element1152 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element1153 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element1154 	typename tuple_type<A12>::const_reference get() const { return _x; }
1155 private:
1156 	typename tuple_type<A12>::reference _x;
1157 };
1158 
1159 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1160 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element1161 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element1162 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element1163 	typename tuple_type<A13>::const_reference get() const { return _x; }
1164 private:
1165 	typename tuple_type<A13>::reference _x;
1166 };
1167 
1168 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
1169 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element1170 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element1171 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element1172 	typename tuple_type<A14>::const_reference get() const { return _x; }
1173 private:
1174 	typename tuple_type<A14>::reference _x;
1175 };
1176 
1177 
1178 
1179 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1180 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element1181 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element1182 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element1183 	typename tuple_type<A0>::const_reference get() const { return _x; }
1184 private:
1185 	typename tuple_type<A0>::reference _x;
1186 };
1187 
1188 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1189 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element1190 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element1191 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element1192 	typename tuple_type<A1>::const_reference get() const { return _x; }
1193 private:
1194 	typename tuple_type<A1>::reference _x;
1195 };
1196 
1197 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1198 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element1199 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element1200 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element1201 	typename tuple_type<A2>::const_reference get() const { return _x; }
1202 private:
1203 	typename tuple_type<A2>::reference _x;
1204 };
1205 
1206 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1207 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element1208 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element1209 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element1210 	typename tuple_type<A3>::const_reference get() const { return _x; }
1211 private:
1212 	typename tuple_type<A3>::reference _x;
1213 };
1214 
1215 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1216 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element1217 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element1218 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element1219 	typename tuple_type<A4>::const_reference get() const { return _x; }
1220 private:
1221 	typename tuple_type<A4>::reference _x;
1222 };
1223 
1224 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1225 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element1226 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element1227 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element1228 	typename tuple_type<A5>::const_reference get() const { return _x; }
1229 private:
1230 	typename tuple_type<A5>::reference _x;
1231 };
1232 
1233 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1234 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element1235 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element1236 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element1237 	typename tuple_type<A6>::const_reference get() const { return _x; }
1238 private:
1239 	typename tuple_type<A6>::reference _x;
1240 };
1241 
1242 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1243 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element1244 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element1245 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element1246 	typename tuple_type<A7>::const_reference get() const { return _x; }
1247 private:
1248 	typename tuple_type<A7>::reference _x;
1249 };
1250 
1251 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1252 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element1253 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element1254 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element1255 	typename tuple_type<A8>::const_reference get() const { return _x; }
1256 private:
1257 	typename tuple_type<A8>::reference _x;
1258 };
1259 
1260 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1261 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element1262 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element1263 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element1264 	typename tuple_type<A9>::const_reference get() const { return _x; }
1265 private:
1266 	typename tuple_type<A9>::reference _x;
1267 };
1268 
1269 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1270 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element1271 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element1272 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element1273 	typename tuple_type<A10>::const_reference get() const { return _x; }
1274 private:
1275 	typename tuple_type<A10>::reference _x;
1276 };
1277 
1278 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1279 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element1280 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element1281 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element1282 	typename tuple_type<A11>::const_reference get() const { return _x; }
1283 private:
1284 	typename tuple_type<A11>::reference _x;
1285 };
1286 
1287 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1288 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element1289 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element1290 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element1291 	typename tuple_type<A12>::const_reference get() const { return _x; }
1292 private:
1293 	typename tuple_type<A12>::reference _x;
1294 };
1295 
1296 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1297 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element1298 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element1299 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element1300 	typename tuple_type<A13>::const_reference get() const { return _x; }
1301 private:
1302 	typename tuple_type<A13>::reference _x;
1303 };
1304 
1305 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1306 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element1307 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element1308 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element1309 	typename tuple_type<A14>::const_reference get() const { return _x; }
1310 private:
1311 	typename tuple_type<A14>::reference _x;
1312 };
1313 
1314 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
1315 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element1316 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element1317 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element1318 	typename tuple_type<A15>::const_reference get() const { return _x; }
1319 private:
1320 	typename tuple_type<A15>::reference _x;
1321 };
1322 
1323 
1324 
1325 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1326 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element1327 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element1328 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element1329 	typename tuple_type<A0>::const_reference get() const { return _x; }
1330 private:
1331 	typename tuple_type<A0>::reference _x;
1332 };
1333 
1334 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1335 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element1336 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element1337 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element1338 	typename tuple_type<A1>::const_reference get() const { return _x; }
1339 private:
1340 	typename tuple_type<A1>::reference _x;
1341 };
1342 
1343 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1344 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element1345 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element1346 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element1347 	typename tuple_type<A2>::const_reference get() const { return _x; }
1348 private:
1349 	typename tuple_type<A2>::reference _x;
1350 };
1351 
1352 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1353 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element1354 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element1355 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element1356 	typename tuple_type<A3>::const_reference get() const { return _x; }
1357 private:
1358 	typename tuple_type<A3>::reference _x;
1359 };
1360 
1361 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1362 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element1363 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element1364 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element1365 	typename tuple_type<A4>::const_reference get() const { return _x; }
1366 private:
1367 	typename tuple_type<A4>::reference _x;
1368 };
1369 
1370 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1371 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element1372 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element1373 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element1374 	typename tuple_type<A5>::const_reference get() const { return _x; }
1375 private:
1376 	typename tuple_type<A5>::reference _x;
1377 };
1378 
1379 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1380 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element1381 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element1382 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element1383 	typename tuple_type<A6>::const_reference get() const { return _x; }
1384 private:
1385 	typename tuple_type<A6>::reference _x;
1386 };
1387 
1388 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1389 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element1390 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element1391 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element1392 	typename tuple_type<A7>::const_reference get() const { return _x; }
1393 private:
1394 	typename tuple_type<A7>::reference _x;
1395 };
1396 
1397 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1398 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element1399 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element1400 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element1401 	typename tuple_type<A8>::const_reference get() const { return _x; }
1402 private:
1403 	typename tuple_type<A8>::reference _x;
1404 };
1405 
1406 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1407 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element1408 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element1409 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element1410 	typename tuple_type<A9>::const_reference get() const { return _x; }
1411 private:
1412 	typename tuple_type<A9>::reference _x;
1413 };
1414 
1415 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1416 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element1417 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element1418 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element1419 	typename tuple_type<A10>::const_reference get() const { return _x; }
1420 private:
1421 	typename tuple_type<A10>::reference _x;
1422 };
1423 
1424 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1425 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element1426 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element1427 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element1428 	typename tuple_type<A11>::const_reference get() const { return _x; }
1429 private:
1430 	typename tuple_type<A11>::reference _x;
1431 };
1432 
1433 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1434 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element1435 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element1436 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element1437 	typename tuple_type<A12>::const_reference get() const { return _x; }
1438 private:
1439 	typename tuple_type<A12>::reference _x;
1440 };
1441 
1442 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1443 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element1444 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element1445 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element1446 	typename tuple_type<A13>::const_reference get() const { return _x; }
1447 private:
1448 	typename tuple_type<A13>::reference _x;
1449 };
1450 
1451 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1452 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element1453 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element1454 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element1455 	typename tuple_type<A14>::const_reference get() const { return _x; }
1456 private:
1457 	typename tuple_type<A14>::reference _x;
1458 };
1459 
1460 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1461 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element1462 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element1463 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element1464 	typename tuple_type<A15>::const_reference get() const { return _x; }
1465 private:
1466 	typename tuple_type<A15>::reference _x;
1467 };
1468 
1469 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
1470 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element1471 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element1472 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element1473 	typename tuple_type<A16>::const_reference get() const { return _x; }
1474 private:
1475 	typename tuple_type<A16>::reference _x;
1476 };
1477 
1478 
1479 
1480 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1481 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element1482 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element1483 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element1484 	typename tuple_type<A0>::const_reference get() const { return _x; }
1485 private:
1486 	typename tuple_type<A0>::reference _x;
1487 };
1488 
1489 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1490 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element1491 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element1492 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element1493 	typename tuple_type<A1>::const_reference get() const { return _x; }
1494 private:
1495 	typename tuple_type<A1>::reference _x;
1496 };
1497 
1498 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1499 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element1500 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element1501 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element1502 	typename tuple_type<A2>::const_reference get() const { return _x; }
1503 private:
1504 	typename tuple_type<A2>::reference _x;
1505 };
1506 
1507 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1508 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element1509 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element1510 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element1511 	typename tuple_type<A3>::const_reference get() const { return _x; }
1512 private:
1513 	typename tuple_type<A3>::reference _x;
1514 };
1515 
1516 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1517 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element1518 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element1519 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element1520 	typename tuple_type<A4>::const_reference get() const { return _x; }
1521 private:
1522 	typename tuple_type<A4>::reference _x;
1523 };
1524 
1525 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1526 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element1527 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element1528 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element1529 	typename tuple_type<A5>::const_reference get() const { return _x; }
1530 private:
1531 	typename tuple_type<A5>::reference _x;
1532 };
1533 
1534 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1535 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element1536 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element1537 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element1538 	typename tuple_type<A6>::const_reference get() const { return _x; }
1539 private:
1540 	typename tuple_type<A6>::reference _x;
1541 };
1542 
1543 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1544 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element1545 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element1546 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element1547 	typename tuple_type<A7>::const_reference get() const { return _x; }
1548 private:
1549 	typename tuple_type<A7>::reference _x;
1550 };
1551 
1552 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1553 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element1554 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element1555 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element1556 	typename tuple_type<A8>::const_reference get() const { return _x; }
1557 private:
1558 	typename tuple_type<A8>::reference _x;
1559 };
1560 
1561 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1562 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element1563 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element1564 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element1565 	typename tuple_type<A9>::const_reference get() const { return _x; }
1566 private:
1567 	typename tuple_type<A9>::reference _x;
1568 };
1569 
1570 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1571 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element1572 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element1573 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element1574 	typename tuple_type<A10>::const_reference get() const { return _x; }
1575 private:
1576 	typename tuple_type<A10>::reference _x;
1577 };
1578 
1579 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1580 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element1581 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element1582 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element1583 	typename tuple_type<A11>::const_reference get() const { return _x; }
1584 private:
1585 	typename tuple_type<A11>::reference _x;
1586 };
1587 
1588 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1589 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element1590 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element1591 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element1592 	typename tuple_type<A12>::const_reference get() const { return _x; }
1593 private:
1594 	typename tuple_type<A12>::reference _x;
1595 };
1596 
1597 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1598 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element1599 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element1600 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element1601 	typename tuple_type<A13>::const_reference get() const { return _x; }
1602 private:
1603 	typename tuple_type<A13>::reference _x;
1604 };
1605 
1606 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1607 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element1608 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element1609 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element1610 	typename tuple_type<A14>::const_reference get() const { return _x; }
1611 private:
1612 	typename tuple_type<A14>::reference _x;
1613 };
1614 
1615 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1616 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element1617 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element1618 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element1619 	typename tuple_type<A15>::const_reference get() const { return _x; }
1620 private:
1621 	typename tuple_type<A15>::reference _x;
1622 };
1623 
1624 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1625 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element1626 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element1627 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element1628 	typename tuple_type<A16>::const_reference get() const { return _x; }
1629 private:
1630 	typename tuple_type<A16>::reference _x;
1631 };
1632 
1633 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
1634 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element1635 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element1636 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element1637 	typename tuple_type<A17>::const_reference get() const { return _x; }
1638 private:
1639 	typename tuple_type<A17>::reference _x;
1640 };
1641 
1642 
1643 
1644 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1645 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element1646 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element1647 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element1648 	typename tuple_type<A0>::const_reference get() const { return _x; }
1649 private:
1650 	typename tuple_type<A0>::reference _x;
1651 };
1652 
1653 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1654 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element1655 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element1656 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element1657 	typename tuple_type<A1>::const_reference get() const { return _x; }
1658 private:
1659 	typename tuple_type<A1>::reference _x;
1660 };
1661 
1662 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1663 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element1664 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element1665 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element1666 	typename tuple_type<A2>::const_reference get() const { return _x; }
1667 private:
1668 	typename tuple_type<A2>::reference _x;
1669 };
1670 
1671 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1672 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element1673 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element1674 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element1675 	typename tuple_type<A3>::const_reference get() const { return _x; }
1676 private:
1677 	typename tuple_type<A3>::reference _x;
1678 };
1679 
1680 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1681 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element1682 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element1683 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element1684 	typename tuple_type<A4>::const_reference get() const { return _x; }
1685 private:
1686 	typename tuple_type<A4>::reference _x;
1687 };
1688 
1689 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1690 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element1691 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element1692 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element1693 	typename tuple_type<A5>::const_reference get() const { return _x; }
1694 private:
1695 	typename tuple_type<A5>::reference _x;
1696 };
1697 
1698 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1699 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element1700 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element1701 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element1702 	typename tuple_type<A6>::const_reference get() const { return _x; }
1703 private:
1704 	typename tuple_type<A6>::reference _x;
1705 };
1706 
1707 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1708 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element1709 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element1710 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element1711 	typename tuple_type<A7>::const_reference get() const { return _x; }
1712 private:
1713 	typename tuple_type<A7>::reference _x;
1714 };
1715 
1716 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1717 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element1718 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element1719 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element1720 	typename tuple_type<A8>::const_reference get() const { return _x; }
1721 private:
1722 	typename tuple_type<A8>::reference _x;
1723 };
1724 
1725 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1726 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element1727 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element1728 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element1729 	typename tuple_type<A9>::const_reference get() const { return _x; }
1730 private:
1731 	typename tuple_type<A9>::reference _x;
1732 };
1733 
1734 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1735 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element1736 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element1737 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element1738 	typename tuple_type<A10>::const_reference get() const { return _x; }
1739 private:
1740 	typename tuple_type<A10>::reference _x;
1741 };
1742 
1743 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1744 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element1745 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element1746 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element1747 	typename tuple_type<A11>::const_reference get() const { return _x; }
1748 private:
1749 	typename tuple_type<A11>::reference _x;
1750 };
1751 
1752 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1753 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element1754 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element1755 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element1756 	typename tuple_type<A12>::const_reference get() const { return _x; }
1757 private:
1758 	typename tuple_type<A12>::reference _x;
1759 };
1760 
1761 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1762 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element1763 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element1764 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element1765 	typename tuple_type<A13>::const_reference get() const { return _x; }
1766 private:
1767 	typename tuple_type<A13>::reference _x;
1768 };
1769 
1770 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1771 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element1772 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element1773 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element1774 	typename tuple_type<A14>::const_reference get() const { return _x; }
1775 private:
1776 	typename tuple_type<A14>::reference _x;
1777 };
1778 
1779 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1780 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element1781 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element1782 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element1783 	typename tuple_type<A15>::const_reference get() const { return _x; }
1784 private:
1785 	typename tuple_type<A15>::reference _x;
1786 };
1787 
1788 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1789 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element1790 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element1791 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element1792 	typename tuple_type<A16>::const_reference get() const { return _x; }
1793 private:
1794 	typename tuple_type<A16>::reference _x;
1795 };
1796 
1797 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1798 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element1799 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element1800 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element1801 	typename tuple_type<A17>::const_reference get() const { return _x; }
1802 private:
1803 	typename tuple_type<A17>::reference _x;
1804 };
1805 
1806 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
1807 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element1808 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element1809 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element1810 	typename tuple_type<A18>::const_reference get() const { return _x; }
1811 private:
1812 	typename tuple_type<A18>::reference _x;
1813 };
1814 
1815 
1816 
1817 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1818 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element1819 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element1820 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element1821 	typename tuple_type<A0>::const_reference get() const { return _x; }
1822 private:
1823 	typename tuple_type<A0>::reference _x;
1824 };
1825 
1826 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1827 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element1828 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element1829 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element1830 	typename tuple_type<A1>::const_reference get() const { return _x; }
1831 private:
1832 	typename tuple_type<A1>::reference _x;
1833 };
1834 
1835 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1836 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element1837 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element1838 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element1839 	typename tuple_type<A2>::const_reference get() const { return _x; }
1840 private:
1841 	typename tuple_type<A2>::reference _x;
1842 };
1843 
1844 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1845 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element1846 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element1847 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element1848 	typename tuple_type<A3>::const_reference get() const { return _x; }
1849 private:
1850 	typename tuple_type<A3>::reference _x;
1851 };
1852 
1853 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1854 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element1855 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element1856 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element1857 	typename tuple_type<A4>::const_reference get() const { return _x; }
1858 private:
1859 	typename tuple_type<A4>::reference _x;
1860 };
1861 
1862 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1863 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element1864 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element1865 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element1866 	typename tuple_type<A5>::const_reference get() const { return _x; }
1867 private:
1868 	typename tuple_type<A5>::reference _x;
1869 };
1870 
1871 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1872 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element1873 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element1874 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element1875 	typename tuple_type<A6>::const_reference get() const { return _x; }
1876 private:
1877 	typename tuple_type<A6>::reference _x;
1878 };
1879 
1880 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1881 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element1882 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element1883 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element1884 	typename tuple_type<A7>::const_reference get() const { return _x; }
1885 private:
1886 	typename tuple_type<A7>::reference _x;
1887 };
1888 
1889 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1890 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element1891 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element1892 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element1893 	typename tuple_type<A8>::const_reference get() const { return _x; }
1894 private:
1895 	typename tuple_type<A8>::reference _x;
1896 };
1897 
1898 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1899 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element1900 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element1901 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element1902 	typename tuple_type<A9>::const_reference get() const { return _x; }
1903 private:
1904 	typename tuple_type<A9>::reference _x;
1905 };
1906 
1907 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1908 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element1909 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element1910 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element1911 	typename tuple_type<A10>::const_reference get() const { return _x; }
1912 private:
1913 	typename tuple_type<A10>::reference _x;
1914 };
1915 
1916 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1917 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element1918 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element1919 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element1920 	typename tuple_type<A11>::const_reference get() const { return _x; }
1921 private:
1922 	typename tuple_type<A11>::reference _x;
1923 };
1924 
1925 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1926 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element1927 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element1928 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element1929 	typename tuple_type<A12>::const_reference get() const { return _x; }
1930 private:
1931 	typename tuple_type<A12>::reference _x;
1932 };
1933 
1934 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1935 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element1936 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element1937 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element1938 	typename tuple_type<A13>::const_reference get() const { return _x; }
1939 private:
1940 	typename tuple_type<A13>::reference _x;
1941 };
1942 
1943 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1944 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element1945 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element1946 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element1947 	typename tuple_type<A14>::const_reference get() const { return _x; }
1948 private:
1949 	typename tuple_type<A14>::reference _x;
1950 };
1951 
1952 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1953 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element1954 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element1955 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element1956 	typename tuple_type<A15>::const_reference get() const { return _x; }
1957 private:
1958 	typename tuple_type<A15>::reference _x;
1959 };
1960 
1961 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1962 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element1963 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element1964 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element1965 	typename tuple_type<A16>::const_reference get() const { return _x; }
1966 private:
1967 	typename tuple_type<A16>::reference _x;
1968 };
1969 
1970 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1971 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element1972 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element1973 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element1974 	typename tuple_type<A17>::const_reference get() const { return _x; }
1975 private:
1976 	typename tuple_type<A17>::reference _x;
1977 };
1978 
1979 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1980 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element1981 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element1982 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element1983 	typename tuple_type<A18>::const_reference get() const { return _x; }
1984 private:
1985 	typename tuple_type<A18>::reference _x;
1986 };
1987 
1988 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1989 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element1990 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element1991 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element1992 	typename tuple_type<A19>::const_reference get() const { return _x; }
1993 private:
1994 	typename tuple_type<A19>::reference _x;
1995 };
1996 
1997 
1998 
1999 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2000 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element2001 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element2002 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element2003 	typename tuple_type<A0>::const_reference get() const { return _x; }
2004 private:
2005 	typename tuple_type<A0>::reference _x;
2006 };
2007 
2008 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2009 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element2010 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element2011 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element2012 	typename tuple_type<A1>::const_reference get() const { return _x; }
2013 private:
2014 	typename tuple_type<A1>::reference _x;
2015 };
2016 
2017 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2018 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element2019 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element2020 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element2021 	typename tuple_type<A2>::const_reference get() const { return _x; }
2022 private:
2023 	typename tuple_type<A2>::reference _x;
2024 };
2025 
2026 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2027 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element2028 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element2029 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element2030 	typename tuple_type<A3>::const_reference get() const { return _x; }
2031 private:
2032 	typename tuple_type<A3>::reference _x;
2033 };
2034 
2035 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2036 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element2037 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element2038 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element2039 	typename tuple_type<A4>::const_reference get() const { return _x; }
2040 private:
2041 	typename tuple_type<A4>::reference _x;
2042 };
2043 
2044 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2045 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element2046 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element2047 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element2048 	typename tuple_type<A5>::const_reference get() const { return _x; }
2049 private:
2050 	typename tuple_type<A5>::reference _x;
2051 };
2052 
2053 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2054 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element2055 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element2056 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element2057 	typename tuple_type<A6>::const_reference get() const { return _x; }
2058 private:
2059 	typename tuple_type<A6>::reference _x;
2060 };
2061 
2062 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2063 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element2064 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element2065 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element2066 	typename tuple_type<A7>::const_reference get() const { return _x; }
2067 private:
2068 	typename tuple_type<A7>::reference _x;
2069 };
2070 
2071 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2072 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element2073 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element2074 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element2075 	typename tuple_type<A8>::const_reference get() const { return _x; }
2076 private:
2077 	typename tuple_type<A8>::reference _x;
2078 };
2079 
2080 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2081 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element2082 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element2083 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element2084 	typename tuple_type<A9>::const_reference get() const { return _x; }
2085 private:
2086 	typename tuple_type<A9>::reference _x;
2087 };
2088 
2089 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2090 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element2091 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element2092 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element2093 	typename tuple_type<A10>::const_reference get() const { return _x; }
2094 private:
2095 	typename tuple_type<A10>::reference _x;
2096 };
2097 
2098 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2099 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element2100 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element2101 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element2102 	typename tuple_type<A11>::const_reference get() const { return _x; }
2103 private:
2104 	typename tuple_type<A11>::reference _x;
2105 };
2106 
2107 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2108 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element2109 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element2110 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element2111 	typename tuple_type<A12>::const_reference get() const { return _x; }
2112 private:
2113 	typename tuple_type<A12>::reference _x;
2114 };
2115 
2116 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2117 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element2118 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element2119 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element2120 	typename tuple_type<A13>::const_reference get() const { return _x; }
2121 private:
2122 	typename tuple_type<A13>::reference _x;
2123 };
2124 
2125 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2126 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element2127 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element2128 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element2129 	typename tuple_type<A14>::const_reference get() const { return _x; }
2130 private:
2131 	typename tuple_type<A14>::reference _x;
2132 };
2133 
2134 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2135 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element2136 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element2137 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element2138 	typename tuple_type<A15>::const_reference get() const { return _x; }
2139 private:
2140 	typename tuple_type<A15>::reference _x;
2141 };
2142 
2143 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2144 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element2145 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element2146 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element2147 	typename tuple_type<A16>::const_reference get() const { return _x; }
2148 private:
2149 	typename tuple_type<A16>::reference _x;
2150 };
2151 
2152 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2153 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element2154 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element2155 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element2156 	typename tuple_type<A17>::const_reference get() const { return _x; }
2157 private:
2158 	typename tuple_type<A17>::reference _x;
2159 };
2160 
2161 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2162 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element2163 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element2164 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element2165 	typename tuple_type<A18>::const_reference get() const { return _x; }
2166 private:
2167 	typename tuple_type<A18>::reference _x;
2168 };
2169 
2170 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2171 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element2172 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element2173 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element2174 	typename tuple_type<A19>::const_reference get() const { return _x; }
2175 private:
2176 	typename tuple_type<A19>::reference _x;
2177 };
2178 
2179 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2180 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element2181 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element2182 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element2183 	typename tuple_type<A20>::const_reference get() const { return _x; }
2184 private:
2185 	typename tuple_type<A20>::reference _x;
2186 };
2187 
2188 
2189 
2190 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2191 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element2192 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element2193 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element2194 	typename tuple_type<A0>::const_reference get() const { return _x; }
2195 private:
2196 	typename tuple_type<A0>::reference _x;
2197 };
2198 
2199 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2200 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element2201 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element2202 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element2203 	typename tuple_type<A1>::const_reference get() const { return _x; }
2204 private:
2205 	typename tuple_type<A1>::reference _x;
2206 };
2207 
2208 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2209 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element2210 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element2211 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element2212 	typename tuple_type<A2>::const_reference get() const { return _x; }
2213 private:
2214 	typename tuple_type<A2>::reference _x;
2215 };
2216 
2217 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2218 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element2219 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element2220 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element2221 	typename tuple_type<A3>::const_reference get() const { return _x; }
2222 private:
2223 	typename tuple_type<A3>::reference _x;
2224 };
2225 
2226 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2227 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element2228 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element2229 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element2230 	typename tuple_type<A4>::const_reference get() const { return _x; }
2231 private:
2232 	typename tuple_type<A4>::reference _x;
2233 };
2234 
2235 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2236 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element2237 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element2238 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element2239 	typename tuple_type<A5>::const_reference get() const { return _x; }
2240 private:
2241 	typename tuple_type<A5>::reference _x;
2242 };
2243 
2244 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2245 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element2246 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element2247 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element2248 	typename tuple_type<A6>::const_reference get() const { return _x; }
2249 private:
2250 	typename tuple_type<A6>::reference _x;
2251 };
2252 
2253 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2254 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element2255 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element2256 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element2257 	typename tuple_type<A7>::const_reference get() const { return _x; }
2258 private:
2259 	typename tuple_type<A7>::reference _x;
2260 };
2261 
2262 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2263 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element2264 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element2265 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element2266 	typename tuple_type<A8>::const_reference get() const { return _x; }
2267 private:
2268 	typename tuple_type<A8>::reference _x;
2269 };
2270 
2271 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2272 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element2273 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element2274 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element2275 	typename tuple_type<A9>::const_reference get() const { return _x; }
2276 private:
2277 	typename tuple_type<A9>::reference _x;
2278 };
2279 
2280 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2281 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element2282 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element2283 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element2284 	typename tuple_type<A10>::const_reference get() const { return _x; }
2285 private:
2286 	typename tuple_type<A10>::reference _x;
2287 };
2288 
2289 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2290 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element2291 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element2292 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element2293 	typename tuple_type<A11>::const_reference get() const { return _x; }
2294 private:
2295 	typename tuple_type<A11>::reference _x;
2296 };
2297 
2298 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2299 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element2300 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element2301 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element2302 	typename tuple_type<A12>::const_reference get() const { return _x; }
2303 private:
2304 	typename tuple_type<A12>::reference _x;
2305 };
2306 
2307 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2308 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element2309 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element2310 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element2311 	typename tuple_type<A13>::const_reference get() const { return _x; }
2312 private:
2313 	typename tuple_type<A13>::reference _x;
2314 };
2315 
2316 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2317 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element2318 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element2319 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element2320 	typename tuple_type<A14>::const_reference get() const { return _x; }
2321 private:
2322 	typename tuple_type<A14>::reference _x;
2323 };
2324 
2325 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2326 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element2327 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element2328 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element2329 	typename tuple_type<A15>::const_reference get() const { return _x; }
2330 private:
2331 	typename tuple_type<A15>::reference _x;
2332 };
2333 
2334 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2335 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element2336 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element2337 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element2338 	typename tuple_type<A16>::const_reference get() const { return _x; }
2339 private:
2340 	typename tuple_type<A16>::reference _x;
2341 };
2342 
2343 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2344 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element2345 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element2346 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element2347 	typename tuple_type<A17>::const_reference get() const { return _x; }
2348 private:
2349 	typename tuple_type<A17>::reference _x;
2350 };
2351 
2352 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2353 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element2354 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element2355 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element2356 	typename tuple_type<A18>::const_reference get() const { return _x; }
2357 private:
2358 	typename tuple_type<A18>::reference _x;
2359 };
2360 
2361 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2362 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element2363 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element2364 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element2365 	typename tuple_type<A19>::const_reference get() const { return _x; }
2366 private:
2367 	typename tuple_type<A19>::reference _x;
2368 };
2369 
2370 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2371 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element2372 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element2373 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element2374 	typename tuple_type<A20>::const_reference get() const { return _x; }
2375 private:
2376 	typename tuple_type<A20>::reference _x;
2377 };
2378 
2379 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2380 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element2381 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element2382 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element2383 	typename tuple_type<A21>::const_reference get() const { return _x; }
2384 private:
2385 	typename tuple_type<A21>::reference _x;
2386 };
2387 
2388 
2389 
2390 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2391 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element2392 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element2393 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element2394 	typename tuple_type<A0>::const_reference get() const { return _x; }
2395 private:
2396 	typename tuple_type<A0>::reference _x;
2397 };
2398 
2399 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2400 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element2401 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element2402 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element2403 	typename tuple_type<A1>::const_reference get() const { return _x; }
2404 private:
2405 	typename tuple_type<A1>::reference _x;
2406 };
2407 
2408 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2409 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element2410 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element2411 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element2412 	typename tuple_type<A2>::const_reference get() const { return _x; }
2413 private:
2414 	typename tuple_type<A2>::reference _x;
2415 };
2416 
2417 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2418 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element2419 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element2420 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element2421 	typename tuple_type<A3>::const_reference get() const { return _x; }
2422 private:
2423 	typename tuple_type<A3>::reference _x;
2424 };
2425 
2426 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2427 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element2428 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element2429 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element2430 	typename tuple_type<A4>::const_reference get() const { return _x; }
2431 private:
2432 	typename tuple_type<A4>::reference _x;
2433 };
2434 
2435 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2436 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element2437 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element2438 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element2439 	typename tuple_type<A5>::const_reference get() const { return _x; }
2440 private:
2441 	typename tuple_type<A5>::reference _x;
2442 };
2443 
2444 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2445 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element2446 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element2447 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element2448 	typename tuple_type<A6>::const_reference get() const { return _x; }
2449 private:
2450 	typename tuple_type<A6>::reference _x;
2451 };
2452 
2453 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2454 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element2455 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element2456 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element2457 	typename tuple_type<A7>::const_reference get() const { return _x; }
2458 private:
2459 	typename tuple_type<A7>::reference _x;
2460 };
2461 
2462 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2463 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element2464 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element2465 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element2466 	typename tuple_type<A8>::const_reference get() const { return _x; }
2467 private:
2468 	typename tuple_type<A8>::reference _x;
2469 };
2470 
2471 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2472 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element2473 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element2474 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element2475 	typename tuple_type<A9>::const_reference get() const { return _x; }
2476 private:
2477 	typename tuple_type<A9>::reference _x;
2478 };
2479 
2480 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2481 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element2482 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element2483 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element2484 	typename tuple_type<A10>::const_reference get() const { return _x; }
2485 private:
2486 	typename tuple_type<A10>::reference _x;
2487 };
2488 
2489 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2490 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element2491 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element2492 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element2493 	typename tuple_type<A11>::const_reference get() const { return _x; }
2494 private:
2495 	typename tuple_type<A11>::reference _x;
2496 };
2497 
2498 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2499 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element2500 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element2501 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element2502 	typename tuple_type<A12>::const_reference get() const { return _x; }
2503 private:
2504 	typename tuple_type<A12>::reference _x;
2505 };
2506 
2507 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2508 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element2509 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element2510 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element2511 	typename tuple_type<A13>::const_reference get() const { return _x; }
2512 private:
2513 	typename tuple_type<A13>::reference _x;
2514 };
2515 
2516 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2517 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element2518 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element2519 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element2520 	typename tuple_type<A14>::const_reference get() const { return _x; }
2521 private:
2522 	typename tuple_type<A14>::reference _x;
2523 };
2524 
2525 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2526 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element2527 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element2528 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element2529 	typename tuple_type<A15>::const_reference get() const { return _x; }
2530 private:
2531 	typename tuple_type<A15>::reference _x;
2532 };
2533 
2534 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2535 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element2536 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element2537 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element2538 	typename tuple_type<A16>::const_reference get() const { return _x; }
2539 private:
2540 	typename tuple_type<A16>::reference _x;
2541 };
2542 
2543 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2544 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element2545 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element2546 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element2547 	typename tuple_type<A17>::const_reference get() const { return _x; }
2548 private:
2549 	typename tuple_type<A17>::reference _x;
2550 };
2551 
2552 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2553 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element2554 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element2555 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element2556 	typename tuple_type<A18>::const_reference get() const { return _x; }
2557 private:
2558 	typename tuple_type<A18>::reference _x;
2559 };
2560 
2561 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2562 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element2563 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element2564 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element2565 	typename tuple_type<A19>::const_reference get() const { return _x; }
2566 private:
2567 	typename tuple_type<A19>::reference _x;
2568 };
2569 
2570 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2571 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element2572 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element2573 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element2574 	typename tuple_type<A20>::const_reference get() const { return _x; }
2575 private:
2576 	typename tuple_type<A20>::reference _x;
2577 };
2578 
2579 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2580 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element2581 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element2582 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element2583 	typename tuple_type<A21>::const_reference get() const { return _x; }
2584 private:
2585 	typename tuple_type<A21>::reference _x;
2586 };
2587 
2588 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2589 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element2590 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element2591 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element2592 	typename tuple_type<A22>::const_reference get() const { return _x; }
2593 private:
2594 	typename tuple_type<A22>::reference _x;
2595 };
2596 
2597 
2598 
2599 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2600 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element2601 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element2602 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element2603 	typename tuple_type<A0>::const_reference get() const { return _x; }
2604 private:
2605 	typename tuple_type<A0>::reference _x;
2606 };
2607 
2608 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2609 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element2610 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element2611 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element2612 	typename tuple_type<A1>::const_reference get() const { return _x; }
2613 private:
2614 	typename tuple_type<A1>::reference _x;
2615 };
2616 
2617 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2618 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element2619 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element2620 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element2621 	typename tuple_type<A2>::const_reference get() const { return _x; }
2622 private:
2623 	typename tuple_type<A2>::reference _x;
2624 };
2625 
2626 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2627 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element2628 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element2629 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element2630 	typename tuple_type<A3>::const_reference get() const { return _x; }
2631 private:
2632 	typename tuple_type<A3>::reference _x;
2633 };
2634 
2635 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2636 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element2637 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element2638 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element2639 	typename tuple_type<A4>::const_reference get() const { return _x; }
2640 private:
2641 	typename tuple_type<A4>::reference _x;
2642 };
2643 
2644 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2645 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element2646 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element2647 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element2648 	typename tuple_type<A5>::const_reference get() const { return _x; }
2649 private:
2650 	typename tuple_type<A5>::reference _x;
2651 };
2652 
2653 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2654 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element2655 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element2656 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element2657 	typename tuple_type<A6>::const_reference get() const { return _x; }
2658 private:
2659 	typename tuple_type<A6>::reference _x;
2660 };
2661 
2662 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2663 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element2664 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element2665 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element2666 	typename tuple_type<A7>::const_reference get() const { return _x; }
2667 private:
2668 	typename tuple_type<A7>::reference _x;
2669 };
2670 
2671 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2672 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element2673 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element2674 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element2675 	typename tuple_type<A8>::const_reference get() const { return _x; }
2676 private:
2677 	typename tuple_type<A8>::reference _x;
2678 };
2679 
2680 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2681 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element2682 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element2683 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element2684 	typename tuple_type<A9>::const_reference get() const { return _x; }
2685 private:
2686 	typename tuple_type<A9>::reference _x;
2687 };
2688 
2689 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2690 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element2691 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element2692 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element2693 	typename tuple_type<A10>::const_reference get() const { return _x; }
2694 private:
2695 	typename tuple_type<A10>::reference _x;
2696 };
2697 
2698 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2699 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element2700 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element2701 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element2702 	typename tuple_type<A11>::const_reference get() const { return _x; }
2703 private:
2704 	typename tuple_type<A11>::reference _x;
2705 };
2706 
2707 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2708 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element2709 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element2710 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element2711 	typename tuple_type<A12>::const_reference get() const { return _x; }
2712 private:
2713 	typename tuple_type<A12>::reference _x;
2714 };
2715 
2716 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2717 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element2718 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element2719 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element2720 	typename tuple_type<A13>::const_reference get() const { return _x; }
2721 private:
2722 	typename tuple_type<A13>::reference _x;
2723 };
2724 
2725 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2726 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element2727 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element2728 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element2729 	typename tuple_type<A14>::const_reference get() const { return _x; }
2730 private:
2731 	typename tuple_type<A14>::reference _x;
2732 };
2733 
2734 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2735 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element2736 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element2737 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element2738 	typename tuple_type<A15>::const_reference get() const { return _x; }
2739 private:
2740 	typename tuple_type<A15>::reference _x;
2741 };
2742 
2743 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2744 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element2745 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element2746 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element2747 	typename tuple_type<A16>::const_reference get() const { return _x; }
2748 private:
2749 	typename tuple_type<A16>::reference _x;
2750 };
2751 
2752 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2753 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element2754 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element2755 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element2756 	typename tuple_type<A17>::const_reference get() const { return _x; }
2757 private:
2758 	typename tuple_type<A17>::reference _x;
2759 };
2760 
2761 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2762 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element2763 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element2764 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element2765 	typename tuple_type<A18>::const_reference get() const { return _x; }
2766 private:
2767 	typename tuple_type<A18>::reference _x;
2768 };
2769 
2770 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2771 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element2772 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element2773 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element2774 	typename tuple_type<A19>::const_reference get() const { return _x; }
2775 private:
2776 	typename tuple_type<A19>::reference _x;
2777 };
2778 
2779 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2780 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element2781 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element2782 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element2783 	typename tuple_type<A20>::const_reference get() const { return _x; }
2784 private:
2785 	typename tuple_type<A20>::reference _x;
2786 };
2787 
2788 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2789 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element2790 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element2791 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element2792 	typename tuple_type<A21>::const_reference get() const { return _x; }
2793 private:
2794 	typename tuple_type<A21>::reference _x;
2795 };
2796 
2797 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2798 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element2799 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element2800 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element2801 	typename tuple_type<A22>::const_reference get() const { return _x; }
2802 private:
2803 	typename tuple_type<A22>::reference _x;
2804 };
2805 
2806 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2807 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 23> : tuple_type<A23> {
tuple_elementmsgpack::type::tuple_element2808 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : _x(x.a23) {}
getmsgpack::type::tuple_element2809 	typename tuple_type<A23>::reference get() { return _x; }
getmsgpack::type::tuple_element2810 	typename tuple_type<A23>::const_reference get() const { return _x; }
2811 private:
2812 	typename tuple_type<A23>::reference _x;
2813 };
2814 
2815 
2816 
2817 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2818 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element2819 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element2820 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element2821 	typename tuple_type<A0>::const_reference get() const { return _x; }
2822 private:
2823 	typename tuple_type<A0>::reference _x;
2824 };
2825 
2826 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2827 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element2828 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element2829 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element2830 	typename tuple_type<A1>::const_reference get() const { return _x; }
2831 private:
2832 	typename tuple_type<A1>::reference _x;
2833 };
2834 
2835 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2836 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element2837 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element2838 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element2839 	typename tuple_type<A2>::const_reference get() const { return _x; }
2840 private:
2841 	typename tuple_type<A2>::reference _x;
2842 };
2843 
2844 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2845 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element2846 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element2847 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element2848 	typename tuple_type<A3>::const_reference get() const { return _x; }
2849 private:
2850 	typename tuple_type<A3>::reference _x;
2851 };
2852 
2853 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2854 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element2855 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element2856 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element2857 	typename tuple_type<A4>::const_reference get() const { return _x; }
2858 private:
2859 	typename tuple_type<A4>::reference _x;
2860 };
2861 
2862 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2863 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element2864 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element2865 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element2866 	typename tuple_type<A5>::const_reference get() const { return _x; }
2867 private:
2868 	typename tuple_type<A5>::reference _x;
2869 };
2870 
2871 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2872 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element2873 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element2874 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element2875 	typename tuple_type<A6>::const_reference get() const { return _x; }
2876 private:
2877 	typename tuple_type<A6>::reference _x;
2878 };
2879 
2880 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2881 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element2882 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element2883 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element2884 	typename tuple_type<A7>::const_reference get() const { return _x; }
2885 private:
2886 	typename tuple_type<A7>::reference _x;
2887 };
2888 
2889 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2890 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element2891 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element2892 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element2893 	typename tuple_type<A8>::const_reference get() const { return _x; }
2894 private:
2895 	typename tuple_type<A8>::reference _x;
2896 };
2897 
2898 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2899 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element2900 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element2901 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element2902 	typename tuple_type<A9>::const_reference get() const { return _x; }
2903 private:
2904 	typename tuple_type<A9>::reference _x;
2905 };
2906 
2907 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2908 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element2909 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element2910 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element2911 	typename tuple_type<A10>::const_reference get() const { return _x; }
2912 private:
2913 	typename tuple_type<A10>::reference _x;
2914 };
2915 
2916 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2917 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element2918 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element2919 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element2920 	typename tuple_type<A11>::const_reference get() const { return _x; }
2921 private:
2922 	typename tuple_type<A11>::reference _x;
2923 };
2924 
2925 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2926 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element2927 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element2928 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element2929 	typename tuple_type<A12>::const_reference get() const { return _x; }
2930 private:
2931 	typename tuple_type<A12>::reference _x;
2932 };
2933 
2934 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2935 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element2936 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element2937 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element2938 	typename tuple_type<A13>::const_reference get() const { return _x; }
2939 private:
2940 	typename tuple_type<A13>::reference _x;
2941 };
2942 
2943 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2944 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element2945 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element2946 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element2947 	typename tuple_type<A14>::const_reference get() const { return _x; }
2948 private:
2949 	typename tuple_type<A14>::reference _x;
2950 };
2951 
2952 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2953 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element2954 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element2955 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element2956 	typename tuple_type<A15>::const_reference get() const { return _x; }
2957 private:
2958 	typename tuple_type<A15>::reference _x;
2959 };
2960 
2961 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2962 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element2963 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element2964 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element2965 	typename tuple_type<A16>::const_reference get() const { return _x; }
2966 private:
2967 	typename tuple_type<A16>::reference _x;
2968 };
2969 
2970 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2971 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element2972 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element2973 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element2974 	typename tuple_type<A17>::const_reference get() const { return _x; }
2975 private:
2976 	typename tuple_type<A17>::reference _x;
2977 };
2978 
2979 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2980 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element2981 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element2982 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element2983 	typename tuple_type<A18>::const_reference get() const { return _x; }
2984 private:
2985 	typename tuple_type<A18>::reference _x;
2986 };
2987 
2988 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2989 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element2990 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element2991 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element2992 	typename tuple_type<A19>::const_reference get() const { return _x; }
2993 private:
2994 	typename tuple_type<A19>::reference _x;
2995 };
2996 
2997 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2998 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element2999 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element3000 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element3001 	typename tuple_type<A20>::const_reference get() const { return _x; }
3002 private:
3003 	typename tuple_type<A20>::reference _x;
3004 };
3005 
3006 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
3007 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element3008 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element3009 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element3010 	typename tuple_type<A21>::const_reference get() const { return _x; }
3011 private:
3012 	typename tuple_type<A21>::reference _x;
3013 };
3014 
3015 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
3016 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element3017 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element3018 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element3019 	typename tuple_type<A22>::const_reference get() const { return _x; }
3020 private:
3021 	typename tuple_type<A22>::reference _x;
3022 };
3023 
3024 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
3025 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 23> : tuple_type<A23> {
tuple_elementmsgpack::type::tuple_element3026 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a23) {}
getmsgpack::type::tuple_element3027 	typename tuple_type<A23>::reference get() { return _x; }
getmsgpack::type::tuple_element3028 	typename tuple_type<A23>::const_reference get() const { return _x; }
3029 private:
3030 	typename tuple_type<A23>::reference _x;
3031 };
3032 
3033 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
3034 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 24> : tuple_type<A24> {
tuple_elementmsgpack::type::tuple_element3035 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : _x(x.a24) {}
getmsgpack::type::tuple_element3036 	typename tuple_type<A24>::reference get() { return _x; }
getmsgpack::type::tuple_element3037 	typename tuple_type<A24>::const_reference get() const { return _x; }
3038 private:
3039 	typename tuple_type<A24>::reference _x;
3040 };
3041 
3042 
3043 
3044 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3045 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element3046 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element3047 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element3048 	typename tuple_type<A0>::const_reference get() const { return _x; }
3049 private:
3050 	typename tuple_type<A0>::reference _x;
3051 };
3052 
3053 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3054 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element3055 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element3056 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element3057 	typename tuple_type<A1>::const_reference get() const { return _x; }
3058 private:
3059 	typename tuple_type<A1>::reference _x;
3060 };
3061 
3062 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3063 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element3064 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element3065 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element3066 	typename tuple_type<A2>::const_reference get() const { return _x; }
3067 private:
3068 	typename tuple_type<A2>::reference _x;
3069 };
3070 
3071 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3072 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element3073 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element3074 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element3075 	typename tuple_type<A3>::const_reference get() const { return _x; }
3076 private:
3077 	typename tuple_type<A3>::reference _x;
3078 };
3079 
3080 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3081 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element3082 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element3083 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element3084 	typename tuple_type<A4>::const_reference get() const { return _x; }
3085 private:
3086 	typename tuple_type<A4>::reference _x;
3087 };
3088 
3089 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3090 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element3091 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element3092 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element3093 	typename tuple_type<A5>::const_reference get() const { return _x; }
3094 private:
3095 	typename tuple_type<A5>::reference _x;
3096 };
3097 
3098 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3099 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element3100 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element3101 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element3102 	typename tuple_type<A6>::const_reference get() const { return _x; }
3103 private:
3104 	typename tuple_type<A6>::reference _x;
3105 };
3106 
3107 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3108 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element3109 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element3110 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element3111 	typename tuple_type<A7>::const_reference get() const { return _x; }
3112 private:
3113 	typename tuple_type<A7>::reference _x;
3114 };
3115 
3116 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3117 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element3118 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element3119 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element3120 	typename tuple_type<A8>::const_reference get() const { return _x; }
3121 private:
3122 	typename tuple_type<A8>::reference _x;
3123 };
3124 
3125 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3126 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element3127 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element3128 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element3129 	typename tuple_type<A9>::const_reference get() const { return _x; }
3130 private:
3131 	typename tuple_type<A9>::reference _x;
3132 };
3133 
3134 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3135 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element3136 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element3137 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element3138 	typename tuple_type<A10>::const_reference get() const { return _x; }
3139 private:
3140 	typename tuple_type<A10>::reference _x;
3141 };
3142 
3143 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3144 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element3145 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element3146 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element3147 	typename tuple_type<A11>::const_reference get() const { return _x; }
3148 private:
3149 	typename tuple_type<A11>::reference _x;
3150 };
3151 
3152 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3153 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element3154 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element3155 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element3156 	typename tuple_type<A12>::const_reference get() const { return _x; }
3157 private:
3158 	typename tuple_type<A12>::reference _x;
3159 };
3160 
3161 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3162 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element3163 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element3164 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element3165 	typename tuple_type<A13>::const_reference get() const { return _x; }
3166 private:
3167 	typename tuple_type<A13>::reference _x;
3168 };
3169 
3170 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3171 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element3172 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element3173 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element3174 	typename tuple_type<A14>::const_reference get() const { return _x; }
3175 private:
3176 	typename tuple_type<A14>::reference _x;
3177 };
3178 
3179 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3180 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element3181 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element3182 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element3183 	typename tuple_type<A15>::const_reference get() const { return _x; }
3184 private:
3185 	typename tuple_type<A15>::reference _x;
3186 };
3187 
3188 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3189 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element3190 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element3191 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element3192 	typename tuple_type<A16>::const_reference get() const { return _x; }
3193 private:
3194 	typename tuple_type<A16>::reference _x;
3195 };
3196 
3197 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3198 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element3199 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element3200 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element3201 	typename tuple_type<A17>::const_reference get() const { return _x; }
3202 private:
3203 	typename tuple_type<A17>::reference _x;
3204 };
3205 
3206 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3207 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element3208 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element3209 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element3210 	typename tuple_type<A18>::const_reference get() const { return _x; }
3211 private:
3212 	typename tuple_type<A18>::reference _x;
3213 };
3214 
3215 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3216 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element3217 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element3218 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element3219 	typename tuple_type<A19>::const_reference get() const { return _x; }
3220 private:
3221 	typename tuple_type<A19>::reference _x;
3222 };
3223 
3224 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3225 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element3226 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element3227 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element3228 	typename tuple_type<A20>::const_reference get() const { return _x; }
3229 private:
3230 	typename tuple_type<A20>::reference _x;
3231 };
3232 
3233 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3234 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element3235 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element3236 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element3237 	typename tuple_type<A21>::const_reference get() const { return _x; }
3238 private:
3239 	typename tuple_type<A21>::reference _x;
3240 };
3241 
3242 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3243 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element3244 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element3245 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element3246 	typename tuple_type<A22>::const_reference get() const { return _x; }
3247 private:
3248 	typename tuple_type<A22>::reference _x;
3249 };
3250 
3251 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3252 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 23> : tuple_type<A23> {
tuple_elementmsgpack::type::tuple_element3253 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a23) {}
getmsgpack::type::tuple_element3254 	typename tuple_type<A23>::reference get() { return _x; }
getmsgpack::type::tuple_element3255 	typename tuple_type<A23>::const_reference get() const { return _x; }
3256 private:
3257 	typename tuple_type<A23>::reference _x;
3258 };
3259 
3260 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3261 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 24> : tuple_type<A24> {
tuple_elementmsgpack::type::tuple_element3262 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a24) {}
getmsgpack::type::tuple_element3263 	typename tuple_type<A24>::reference get() { return _x; }
getmsgpack::type::tuple_element3264 	typename tuple_type<A24>::const_reference get() const { return _x; }
3265 private:
3266 	typename tuple_type<A24>::reference _x;
3267 };
3268 
3269 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
3270 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 25> : tuple_type<A25> {
tuple_elementmsgpack::type::tuple_element3271 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : _x(x.a25) {}
getmsgpack::type::tuple_element3272 	typename tuple_type<A25>::reference get() { return _x; }
getmsgpack::type::tuple_element3273 	typename tuple_type<A25>::const_reference get() const { return _x; }
3274 private:
3275 	typename tuple_type<A25>::reference _x;
3276 };
3277 
3278 
3279 
3280 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3281 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element3282 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element3283 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element3284 	typename tuple_type<A0>::const_reference get() const { return _x; }
3285 private:
3286 	typename tuple_type<A0>::reference _x;
3287 };
3288 
3289 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3290 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element3291 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element3292 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element3293 	typename tuple_type<A1>::const_reference get() const { return _x; }
3294 private:
3295 	typename tuple_type<A1>::reference _x;
3296 };
3297 
3298 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3299 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element3300 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element3301 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element3302 	typename tuple_type<A2>::const_reference get() const { return _x; }
3303 private:
3304 	typename tuple_type<A2>::reference _x;
3305 };
3306 
3307 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3308 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element3309 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element3310 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element3311 	typename tuple_type<A3>::const_reference get() const { return _x; }
3312 private:
3313 	typename tuple_type<A3>::reference _x;
3314 };
3315 
3316 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3317 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element3318 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element3319 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element3320 	typename tuple_type<A4>::const_reference get() const { return _x; }
3321 private:
3322 	typename tuple_type<A4>::reference _x;
3323 };
3324 
3325 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3326 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element3327 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element3328 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element3329 	typename tuple_type<A5>::const_reference get() const { return _x; }
3330 private:
3331 	typename tuple_type<A5>::reference _x;
3332 };
3333 
3334 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3335 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element3336 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element3337 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element3338 	typename tuple_type<A6>::const_reference get() const { return _x; }
3339 private:
3340 	typename tuple_type<A6>::reference _x;
3341 };
3342 
3343 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3344 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element3345 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element3346 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element3347 	typename tuple_type<A7>::const_reference get() const { return _x; }
3348 private:
3349 	typename tuple_type<A7>::reference _x;
3350 };
3351 
3352 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3353 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element3354 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element3355 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element3356 	typename tuple_type<A8>::const_reference get() const { return _x; }
3357 private:
3358 	typename tuple_type<A8>::reference _x;
3359 };
3360 
3361 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3362 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element3363 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element3364 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element3365 	typename tuple_type<A9>::const_reference get() const { return _x; }
3366 private:
3367 	typename tuple_type<A9>::reference _x;
3368 };
3369 
3370 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3371 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element3372 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element3373 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element3374 	typename tuple_type<A10>::const_reference get() const { return _x; }
3375 private:
3376 	typename tuple_type<A10>::reference _x;
3377 };
3378 
3379 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3380 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element3381 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element3382 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element3383 	typename tuple_type<A11>::const_reference get() const { return _x; }
3384 private:
3385 	typename tuple_type<A11>::reference _x;
3386 };
3387 
3388 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3389 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element3390 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element3391 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element3392 	typename tuple_type<A12>::const_reference get() const { return _x; }
3393 private:
3394 	typename tuple_type<A12>::reference _x;
3395 };
3396 
3397 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3398 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element3399 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element3400 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element3401 	typename tuple_type<A13>::const_reference get() const { return _x; }
3402 private:
3403 	typename tuple_type<A13>::reference _x;
3404 };
3405 
3406 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3407 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element3408 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element3409 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element3410 	typename tuple_type<A14>::const_reference get() const { return _x; }
3411 private:
3412 	typename tuple_type<A14>::reference _x;
3413 };
3414 
3415 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3416 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element3417 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element3418 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element3419 	typename tuple_type<A15>::const_reference get() const { return _x; }
3420 private:
3421 	typename tuple_type<A15>::reference _x;
3422 };
3423 
3424 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3425 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element3426 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element3427 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element3428 	typename tuple_type<A16>::const_reference get() const { return _x; }
3429 private:
3430 	typename tuple_type<A16>::reference _x;
3431 };
3432 
3433 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3434 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element3435 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element3436 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element3437 	typename tuple_type<A17>::const_reference get() const { return _x; }
3438 private:
3439 	typename tuple_type<A17>::reference _x;
3440 };
3441 
3442 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3443 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element3444 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element3445 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element3446 	typename tuple_type<A18>::const_reference get() const { return _x; }
3447 private:
3448 	typename tuple_type<A18>::reference _x;
3449 };
3450 
3451 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3452 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element3453 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element3454 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element3455 	typename tuple_type<A19>::const_reference get() const { return _x; }
3456 private:
3457 	typename tuple_type<A19>::reference _x;
3458 };
3459 
3460 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3461 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element3462 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element3463 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element3464 	typename tuple_type<A20>::const_reference get() const { return _x; }
3465 private:
3466 	typename tuple_type<A20>::reference _x;
3467 };
3468 
3469 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3470 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element3471 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element3472 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element3473 	typename tuple_type<A21>::const_reference get() const { return _x; }
3474 private:
3475 	typename tuple_type<A21>::reference _x;
3476 };
3477 
3478 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3479 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element3480 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element3481 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element3482 	typename tuple_type<A22>::const_reference get() const { return _x; }
3483 private:
3484 	typename tuple_type<A22>::reference _x;
3485 };
3486 
3487 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3488 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 23> : tuple_type<A23> {
tuple_elementmsgpack::type::tuple_element3489 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a23) {}
getmsgpack::type::tuple_element3490 	typename tuple_type<A23>::reference get() { return _x; }
getmsgpack::type::tuple_element3491 	typename tuple_type<A23>::const_reference get() const { return _x; }
3492 private:
3493 	typename tuple_type<A23>::reference _x;
3494 };
3495 
3496 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3497 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 24> : tuple_type<A24> {
tuple_elementmsgpack::type::tuple_element3498 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a24) {}
getmsgpack::type::tuple_element3499 	typename tuple_type<A24>::reference get() { return _x; }
getmsgpack::type::tuple_element3500 	typename tuple_type<A24>::const_reference get() const { return _x; }
3501 private:
3502 	typename tuple_type<A24>::reference _x;
3503 };
3504 
3505 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3506 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 25> : tuple_type<A25> {
tuple_elementmsgpack::type::tuple_element3507 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a25) {}
getmsgpack::type::tuple_element3508 	typename tuple_type<A25>::reference get() { return _x; }
getmsgpack::type::tuple_element3509 	typename tuple_type<A25>::const_reference get() const { return _x; }
3510 private:
3511 	typename tuple_type<A25>::reference _x;
3512 };
3513 
3514 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
3515 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 26> : tuple_type<A26> {
tuple_elementmsgpack::type::tuple_element3516 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : _x(x.a26) {}
getmsgpack::type::tuple_element3517 	typename tuple_type<A26>::reference get() { return _x; }
getmsgpack::type::tuple_element3518 	typename tuple_type<A26>::const_reference get() const { return _x; }
3519 private:
3520 	typename tuple_type<A26>::reference _x;
3521 };
3522 
3523 
3524 
3525 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3526 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element3527 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element3528 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element3529 	typename tuple_type<A0>::const_reference get() const { return _x; }
3530 private:
3531 	typename tuple_type<A0>::reference _x;
3532 };
3533 
3534 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3535 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element3536 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element3537 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element3538 	typename tuple_type<A1>::const_reference get() const { return _x; }
3539 private:
3540 	typename tuple_type<A1>::reference _x;
3541 };
3542 
3543 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3544 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element3545 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element3546 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element3547 	typename tuple_type<A2>::const_reference get() const { return _x; }
3548 private:
3549 	typename tuple_type<A2>::reference _x;
3550 };
3551 
3552 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3553 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element3554 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element3555 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element3556 	typename tuple_type<A3>::const_reference get() const { return _x; }
3557 private:
3558 	typename tuple_type<A3>::reference _x;
3559 };
3560 
3561 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3562 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element3563 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element3564 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element3565 	typename tuple_type<A4>::const_reference get() const { return _x; }
3566 private:
3567 	typename tuple_type<A4>::reference _x;
3568 };
3569 
3570 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3571 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element3572 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element3573 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element3574 	typename tuple_type<A5>::const_reference get() const { return _x; }
3575 private:
3576 	typename tuple_type<A5>::reference _x;
3577 };
3578 
3579 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3580 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element3581 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element3582 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element3583 	typename tuple_type<A6>::const_reference get() const { return _x; }
3584 private:
3585 	typename tuple_type<A6>::reference _x;
3586 };
3587 
3588 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3589 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element3590 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element3591 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element3592 	typename tuple_type<A7>::const_reference get() const { return _x; }
3593 private:
3594 	typename tuple_type<A7>::reference _x;
3595 };
3596 
3597 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3598 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element3599 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element3600 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element3601 	typename tuple_type<A8>::const_reference get() const { return _x; }
3602 private:
3603 	typename tuple_type<A8>::reference _x;
3604 };
3605 
3606 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3607 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element3608 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element3609 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element3610 	typename tuple_type<A9>::const_reference get() const { return _x; }
3611 private:
3612 	typename tuple_type<A9>::reference _x;
3613 };
3614 
3615 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3616 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element3617 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element3618 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element3619 	typename tuple_type<A10>::const_reference get() const { return _x; }
3620 private:
3621 	typename tuple_type<A10>::reference _x;
3622 };
3623 
3624 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3625 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element3626 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element3627 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element3628 	typename tuple_type<A11>::const_reference get() const { return _x; }
3629 private:
3630 	typename tuple_type<A11>::reference _x;
3631 };
3632 
3633 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3634 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element3635 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element3636 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element3637 	typename tuple_type<A12>::const_reference get() const { return _x; }
3638 private:
3639 	typename tuple_type<A12>::reference _x;
3640 };
3641 
3642 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3643 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element3644 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element3645 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element3646 	typename tuple_type<A13>::const_reference get() const { return _x; }
3647 private:
3648 	typename tuple_type<A13>::reference _x;
3649 };
3650 
3651 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3652 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element3653 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element3654 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element3655 	typename tuple_type<A14>::const_reference get() const { return _x; }
3656 private:
3657 	typename tuple_type<A14>::reference _x;
3658 };
3659 
3660 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3661 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element3662 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element3663 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element3664 	typename tuple_type<A15>::const_reference get() const { return _x; }
3665 private:
3666 	typename tuple_type<A15>::reference _x;
3667 };
3668 
3669 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3670 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element3671 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element3672 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element3673 	typename tuple_type<A16>::const_reference get() const { return _x; }
3674 private:
3675 	typename tuple_type<A16>::reference _x;
3676 };
3677 
3678 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3679 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element3680 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element3681 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element3682 	typename tuple_type<A17>::const_reference get() const { return _x; }
3683 private:
3684 	typename tuple_type<A17>::reference _x;
3685 };
3686 
3687 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3688 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element3689 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element3690 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element3691 	typename tuple_type<A18>::const_reference get() const { return _x; }
3692 private:
3693 	typename tuple_type<A18>::reference _x;
3694 };
3695 
3696 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3697 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element3698 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element3699 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element3700 	typename tuple_type<A19>::const_reference get() const { return _x; }
3701 private:
3702 	typename tuple_type<A19>::reference _x;
3703 };
3704 
3705 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3706 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element3707 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element3708 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element3709 	typename tuple_type<A20>::const_reference get() const { return _x; }
3710 private:
3711 	typename tuple_type<A20>::reference _x;
3712 };
3713 
3714 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3715 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element3716 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element3717 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element3718 	typename tuple_type<A21>::const_reference get() const { return _x; }
3719 private:
3720 	typename tuple_type<A21>::reference _x;
3721 };
3722 
3723 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3724 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element3725 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element3726 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element3727 	typename tuple_type<A22>::const_reference get() const { return _x; }
3728 private:
3729 	typename tuple_type<A22>::reference _x;
3730 };
3731 
3732 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3733 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 23> : tuple_type<A23> {
tuple_elementmsgpack::type::tuple_element3734 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a23) {}
getmsgpack::type::tuple_element3735 	typename tuple_type<A23>::reference get() { return _x; }
getmsgpack::type::tuple_element3736 	typename tuple_type<A23>::const_reference get() const { return _x; }
3737 private:
3738 	typename tuple_type<A23>::reference _x;
3739 };
3740 
3741 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3742 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 24> : tuple_type<A24> {
tuple_elementmsgpack::type::tuple_element3743 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a24) {}
getmsgpack::type::tuple_element3744 	typename tuple_type<A24>::reference get() { return _x; }
getmsgpack::type::tuple_element3745 	typename tuple_type<A24>::const_reference get() const { return _x; }
3746 private:
3747 	typename tuple_type<A24>::reference _x;
3748 };
3749 
3750 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3751 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 25> : tuple_type<A25> {
tuple_elementmsgpack::type::tuple_element3752 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a25) {}
getmsgpack::type::tuple_element3753 	typename tuple_type<A25>::reference get() { return _x; }
getmsgpack::type::tuple_element3754 	typename tuple_type<A25>::const_reference get() const { return _x; }
3755 private:
3756 	typename tuple_type<A25>::reference _x;
3757 };
3758 
3759 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3760 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 26> : tuple_type<A26> {
tuple_elementmsgpack::type::tuple_element3761 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a26) {}
getmsgpack::type::tuple_element3762 	typename tuple_type<A26>::reference get() { return _x; }
getmsgpack::type::tuple_element3763 	typename tuple_type<A26>::const_reference get() const { return _x; }
3764 private:
3765 	typename tuple_type<A26>::reference _x;
3766 };
3767 
3768 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
3769 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 27> : tuple_type<A27> {
tuple_elementmsgpack::type::tuple_element3770 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : _x(x.a27) {}
getmsgpack::type::tuple_element3771 	typename tuple_type<A27>::reference get() { return _x; }
getmsgpack::type::tuple_element3772 	typename tuple_type<A27>::const_reference get() const { return _x; }
3773 private:
3774 	typename tuple_type<A27>::reference _x;
3775 };
3776 
3777 
3778 
3779 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3780 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element3781 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element3782 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element3783 	typename tuple_type<A0>::const_reference get() const { return _x; }
3784 private:
3785 	typename tuple_type<A0>::reference _x;
3786 };
3787 
3788 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3789 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element3790 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element3791 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element3792 	typename tuple_type<A1>::const_reference get() const { return _x; }
3793 private:
3794 	typename tuple_type<A1>::reference _x;
3795 };
3796 
3797 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3798 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element3799 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element3800 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element3801 	typename tuple_type<A2>::const_reference get() const { return _x; }
3802 private:
3803 	typename tuple_type<A2>::reference _x;
3804 };
3805 
3806 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3807 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element3808 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element3809 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element3810 	typename tuple_type<A3>::const_reference get() const { return _x; }
3811 private:
3812 	typename tuple_type<A3>::reference _x;
3813 };
3814 
3815 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3816 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element3817 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element3818 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element3819 	typename tuple_type<A4>::const_reference get() const { return _x; }
3820 private:
3821 	typename tuple_type<A4>::reference _x;
3822 };
3823 
3824 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3825 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element3826 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element3827 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element3828 	typename tuple_type<A5>::const_reference get() const { return _x; }
3829 private:
3830 	typename tuple_type<A5>::reference _x;
3831 };
3832 
3833 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3834 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element3835 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element3836 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element3837 	typename tuple_type<A6>::const_reference get() const { return _x; }
3838 private:
3839 	typename tuple_type<A6>::reference _x;
3840 };
3841 
3842 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3843 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element3844 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element3845 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element3846 	typename tuple_type<A7>::const_reference get() const { return _x; }
3847 private:
3848 	typename tuple_type<A7>::reference _x;
3849 };
3850 
3851 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3852 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element3853 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element3854 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element3855 	typename tuple_type<A8>::const_reference get() const { return _x; }
3856 private:
3857 	typename tuple_type<A8>::reference _x;
3858 };
3859 
3860 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3861 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element3862 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element3863 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element3864 	typename tuple_type<A9>::const_reference get() const { return _x; }
3865 private:
3866 	typename tuple_type<A9>::reference _x;
3867 };
3868 
3869 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3870 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element3871 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element3872 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element3873 	typename tuple_type<A10>::const_reference get() const { return _x; }
3874 private:
3875 	typename tuple_type<A10>::reference _x;
3876 };
3877 
3878 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3879 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element3880 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element3881 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element3882 	typename tuple_type<A11>::const_reference get() const { return _x; }
3883 private:
3884 	typename tuple_type<A11>::reference _x;
3885 };
3886 
3887 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3888 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element3889 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element3890 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element3891 	typename tuple_type<A12>::const_reference get() const { return _x; }
3892 private:
3893 	typename tuple_type<A12>::reference _x;
3894 };
3895 
3896 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3897 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element3898 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element3899 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element3900 	typename tuple_type<A13>::const_reference get() const { return _x; }
3901 private:
3902 	typename tuple_type<A13>::reference _x;
3903 };
3904 
3905 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3906 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element3907 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element3908 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element3909 	typename tuple_type<A14>::const_reference get() const { return _x; }
3910 private:
3911 	typename tuple_type<A14>::reference _x;
3912 };
3913 
3914 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3915 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element3916 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element3917 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element3918 	typename tuple_type<A15>::const_reference get() const { return _x; }
3919 private:
3920 	typename tuple_type<A15>::reference _x;
3921 };
3922 
3923 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3924 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element3925 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element3926 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element3927 	typename tuple_type<A16>::const_reference get() const { return _x; }
3928 private:
3929 	typename tuple_type<A16>::reference _x;
3930 };
3931 
3932 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3933 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element3934 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element3935 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element3936 	typename tuple_type<A17>::const_reference get() const { return _x; }
3937 private:
3938 	typename tuple_type<A17>::reference _x;
3939 };
3940 
3941 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3942 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element3943 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element3944 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element3945 	typename tuple_type<A18>::const_reference get() const { return _x; }
3946 private:
3947 	typename tuple_type<A18>::reference _x;
3948 };
3949 
3950 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3951 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element3952 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element3953 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element3954 	typename tuple_type<A19>::const_reference get() const { return _x; }
3955 private:
3956 	typename tuple_type<A19>::reference _x;
3957 };
3958 
3959 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3960 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element3961 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element3962 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element3963 	typename tuple_type<A20>::const_reference get() const { return _x; }
3964 private:
3965 	typename tuple_type<A20>::reference _x;
3966 };
3967 
3968 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3969 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element3970 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element3971 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element3972 	typename tuple_type<A21>::const_reference get() const { return _x; }
3973 private:
3974 	typename tuple_type<A21>::reference _x;
3975 };
3976 
3977 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3978 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element3979 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element3980 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element3981 	typename tuple_type<A22>::const_reference get() const { return _x; }
3982 private:
3983 	typename tuple_type<A22>::reference _x;
3984 };
3985 
3986 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3987 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 23> : tuple_type<A23> {
tuple_elementmsgpack::type::tuple_element3988 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a23) {}
getmsgpack::type::tuple_element3989 	typename tuple_type<A23>::reference get() { return _x; }
getmsgpack::type::tuple_element3990 	typename tuple_type<A23>::const_reference get() const { return _x; }
3991 private:
3992 	typename tuple_type<A23>::reference _x;
3993 };
3994 
3995 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
3996 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 24> : tuple_type<A24> {
tuple_elementmsgpack::type::tuple_element3997 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a24) {}
getmsgpack::type::tuple_element3998 	typename tuple_type<A24>::reference get() { return _x; }
getmsgpack::type::tuple_element3999 	typename tuple_type<A24>::const_reference get() const { return _x; }
4000 private:
4001 	typename tuple_type<A24>::reference _x;
4002 };
4003 
4004 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
4005 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 25> : tuple_type<A25> {
tuple_elementmsgpack::type::tuple_element4006 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a25) {}
getmsgpack::type::tuple_element4007 	typename tuple_type<A25>::reference get() { return _x; }
getmsgpack::type::tuple_element4008 	typename tuple_type<A25>::const_reference get() const { return _x; }
4009 private:
4010 	typename tuple_type<A25>::reference _x;
4011 };
4012 
4013 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
4014 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 26> : tuple_type<A26> {
tuple_elementmsgpack::type::tuple_element4015 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a26) {}
getmsgpack::type::tuple_element4016 	typename tuple_type<A26>::reference get() { return _x; }
getmsgpack::type::tuple_element4017 	typename tuple_type<A26>::const_reference get() const { return _x; }
4018 private:
4019 	typename tuple_type<A26>::reference _x;
4020 };
4021 
4022 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
4023 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 27> : tuple_type<A27> {
tuple_elementmsgpack::type::tuple_element4024 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a27) {}
getmsgpack::type::tuple_element4025 	typename tuple_type<A27>::reference get() { return _x; }
getmsgpack::type::tuple_element4026 	typename tuple_type<A27>::const_reference get() const { return _x; }
4027 private:
4028 	typename tuple_type<A27>::reference _x;
4029 };
4030 
4031 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
4032 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 28> : tuple_type<A28> {
tuple_elementmsgpack::type::tuple_element4033 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : _x(x.a28) {}
getmsgpack::type::tuple_element4034 	typename tuple_type<A28>::reference get() { return _x; }
getmsgpack::type::tuple_element4035 	typename tuple_type<A28>::const_reference get() const { return _x; }
4036 private:
4037 	typename tuple_type<A28>::reference _x;
4038 };
4039 
4040 
4041 
4042 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4043 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element4044 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element4045 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element4046 	typename tuple_type<A0>::const_reference get() const { return _x; }
4047 private:
4048 	typename tuple_type<A0>::reference _x;
4049 };
4050 
4051 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4052 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element4053 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element4054 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element4055 	typename tuple_type<A1>::const_reference get() const { return _x; }
4056 private:
4057 	typename tuple_type<A1>::reference _x;
4058 };
4059 
4060 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4061 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element4062 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element4063 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element4064 	typename tuple_type<A2>::const_reference get() const { return _x; }
4065 private:
4066 	typename tuple_type<A2>::reference _x;
4067 };
4068 
4069 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4070 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element4071 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element4072 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element4073 	typename tuple_type<A3>::const_reference get() const { return _x; }
4074 private:
4075 	typename tuple_type<A3>::reference _x;
4076 };
4077 
4078 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4079 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element4080 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element4081 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element4082 	typename tuple_type<A4>::const_reference get() const { return _x; }
4083 private:
4084 	typename tuple_type<A4>::reference _x;
4085 };
4086 
4087 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4088 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element4089 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element4090 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element4091 	typename tuple_type<A5>::const_reference get() const { return _x; }
4092 private:
4093 	typename tuple_type<A5>::reference _x;
4094 };
4095 
4096 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4097 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element4098 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element4099 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element4100 	typename tuple_type<A6>::const_reference get() const { return _x; }
4101 private:
4102 	typename tuple_type<A6>::reference _x;
4103 };
4104 
4105 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4106 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element4107 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element4108 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element4109 	typename tuple_type<A7>::const_reference get() const { return _x; }
4110 private:
4111 	typename tuple_type<A7>::reference _x;
4112 };
4113 
4114 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4115 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element4116 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element4117 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element4118 	typename tuple_type<A8>::const_reference get() const { return _x; }
4119 private:
4120 	typename tuple_type<A8>::reference _x;
4121 };
4122 
4123 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4124 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element4125 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element4126 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element4127 	typename tuple_type<A9>::const_reference get() const { return _x; }
4128 private:
4129 	typename tuple_type<A9>::reference _x;
4130 };
4131 
4132 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4133 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element4134 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element4135 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element4136 	typename tuple_type<A10>::const_reference get() const { return _x; }
4137 private:
4138 	typename tuple_type<A10>::reference _x;
4139 };
4140 
4141 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4142 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element4143 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element4144 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element4145 	typename tuple_type<A11>::const_reference get() const { return _x; }
4146 private:
4147 	typename tuple_type<A11>::reference _x;
4148 };
4149 
4150 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4151 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element4152 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element4153 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element4154 	typename tuple_type<A12>::const_reference get() const { return _x; }
4155 private:
4156 	typename tuple_type<A12>::reference _x;
4157 };
4158 
4159 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4160 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element4161 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element4162 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element4163 	typename tuple_type<A13>::const_reference get() const { return _x; }
4164 private:
4165 	typename tuple_type<A13>::reference _x;
4166 };
4167 
4168 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4169 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element4170 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element4171 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element4172 	typename tuple_type<A14>::const_reference get() const { return _x; }
4173 private:
4174 	typename tuple_type<A14>::reference _x;
4175 };
4176 
4177 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4178 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element4179 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element4180 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element4181 	typename tuple_type<A15>::const_reference get() const { return _x; }
4182 private:
4183 	typename tuple_type<A15>::reference _x;
4184 };
4185 
4186 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4187 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element4188 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element4189 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element4190 	typename tuple_type<A16>::const_reference get() const { return _x; }
4191 private:
4192 	typename tuple_type<A16>::reference _x;
4193 };
4194 
4195 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4196 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element4197 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element4198 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element4199 	typename tuple_type<A17>::const_reference get() const { return _x; }
4200 private:
4201 	typename tuple_type<A17>::reference _x;
4202 };
4203 
4204 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4205 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element4206 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element4207 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element4208 	typename tuple_type<A18>::const_reference get() const { return _x; }
4209 private:
4210 	typename tuple_type<A18>::reference _x;
4211 };
4212 
4213 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4214 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element4215 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element4216 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element4217 	typename tuple_type<A19>::const_reference get() const { return _x; }
4218 private:
4219 	typename tuple_type<A19>::reference _x;
4220 };
4221 
4222 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4223 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element4224 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element4225 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element4226 	typename tuple_type<A20>::const_reference get() const { return _x; }
4227 private:
4228 	typename tuple_type<A20>::reference _x;
4229 };
4230 
4231 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4232 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element4233 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element4234 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element4235 	typename tuple_type<A21>::const_reference get() const { return _x; }
4236 private:
4237 	typename tuple_type<A21>::reference _x;
4238 };
4239 
4240 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4241 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element4242 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element4243 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element4244 	typename tuple_type<A22>::const_reference get() const { return _x; }
4245 private:
4246 	typename tuple_type<A22>::reference _x;
4247 };
4248 
4249 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4250 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 23> : tuple_type<A23> {
tuple_elementmsgpack::type::tuple_element4251 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a23) {}
getmsgpack::type::tuple_element4252 	typename tuple_type<A23>::reference get() { return _x; }
getmsgpack::type::tuple_element4253 	typename tuple_type<A23>::const_reference get() const { return _x; }
4254 private:
4255 	typename tuple_type<A23>::reference _x;
4256 };
4257 
4258 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4259 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 24> : tuple_type<A24> {
tuple_elementmsgpack::type::tuple_element4260 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a24) {}
getmsgpack::type::tuple_element4261 	typename tuple_type<A24>::reference get() { return _x; }
getmsgpack::type::tuple_element4262 	typename tuple_type<A24>::const_reference get() const { return _x; }
4263 private:
4264 	typename tuple_type<A24>::reference _x;
4265 };
4266 
4267 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4268 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 25> : tuple_type<A25> {
tuple_elementmsgpack::type::tuple_element4269 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a25) {}
getmsgpack::type::tuple_element4270 	typename tuple_type<A25>::reference get() { return _x; }
getmsgpack::type::tuple_element4271 	typename tuple_type<A25>::const_reference get() const { return _x; }
4272 private:
4273 	typename tuple_type<A25>::reference _x;
4274 };
4275 
4276 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4277 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 26> : tuple_type<A26> {
tuple_elementmsgpack::type::tuple_element4278 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a26) {}
getmsgpack::type::tuple_element4279 	typename tuple_type<A26>::reference get() { return _x; }
getmsgpack::type::tuple_element4280 	typename tuple_type<A26>::const_reference get() const { return _x; }
4281 private:
4282 	typename tuple_type<A26>::reference _x;
4283 };
4284 
4285 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4286 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 27> : tuple_type<A27> {
tuple_elementmsgpack::type::tuple_element4287 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a27) {}
getmsgpack::type::tuple_element4288 	typename tuple_type<A27>::reference get() { return _x; }
getmsgpack::type::tuple_element4289 	typename tuple_type<A27>::const_reference get() const { return _x; }
4290 private:
4291 	typename tuple_type<A27>::reference _x;
4292 };
4293 
4294 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4295 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 28> : tuple_type<A28> {
tuple_elementmsgpack::type::tuple_element4296 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a28) {}
getmsgpack::type::tuple_element4297 	typename tuple_type<A28>::reference get() { return _x; }
getmsgpack::type::tuple_element4298 	typename tuple_type<A28>::const_reference get() const { return _x; }
4299 private:
4300 	typename tuple_type<A28>::reference _x;
4301 };
4302 
4303 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
4304 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 29> : tuple_type<A29> {
tuple_elementmsgpack::type::tuple_element4305 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : _x(x.a29) {}
getmsgpack::type::tuple_element4306 	typename tuple_type<A29>::reference get() { return _x; }
getmsgpack::type::tuple_element4307 	typename tuple_type<A29>::const_reference get() const { return _x; }
4308 private:
4309 	typename tuple_type<A29>::reference _x;
4310 };
4311 
4312 
4313 
4314 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4315 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element4316 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element4317 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element4318 	typename tuple_type<A0>::const_reference get() const { return _x; }
4319 private:
4320 	typename tuple_type<A0>::reference _x;
4321 };
4322 
4323 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4324 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element4325 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element4326 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element4327 	typename tuple_type<A1>::const_reference get() const { return _x; }
4328 private:
4329 	typename tuple_type<A1>::reference _x;
4330 };
4331 
4332 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4333 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element4334 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element4335 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element4336 	typename tuple_type<A2>::const_reference get() const { return _x; }
4337 private:
4338 	typename tuple_type<A2>::reference _x;
4339 };
4340 
4341 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4342 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element4343 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element4344 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element4345 	typename tuple_type<A3>::const_reference get() const { return _x; }
4346 private:
4347 	typename tuple_type<A3>::reference _x;
4348 };
4349 
4350 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4351 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element4352 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element4353 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element4354 	typename tuple_type<A4>::const_reference get() const { return _x; }
4355 private:
4356 	typename tuple_type<A4>::reference _x;
4357 };
4358 
4359 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4360 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element4361 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element4362 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element4363 	typename tuple_type<A5>::const_reference get() const { return _x; }
4364 private:
4365 	typename tuple_type<A5>::reference _x;
4366 };
4367 
4368 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4369 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element4370 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element4371 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element4372 	typename tuple_type<A6>::const_reference get() const { return _x; }
4373 private:
4374 	typename tuple_type<A6>::reference _x;
4375 };
4376 
4377 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4378 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element4379 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element4380 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element4381 	typename tuple_type<A7>::const_reference get() const { return _x; }
4382 private:
4383 	typename tuple_type<A7>::reference _x;
4384 };
4385 
4386 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4387 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element4388 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element4389 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element4390 	typename tuple_type<A8>::const_reference get() const { return _x; }
4391 private:
4392 	typename tuple_type<A8>::reference _x;
4393 };
4394 
4395 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4396 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element4397 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element4398 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element4399 	typename tuple_type<A9>::const_reference get() const { return _x; }
4400 private:
4401 	typename tuple_type<A9>::reference _x;
4402 };
4403 
4404 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4405 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element4406 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element4407 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element4408 	typename tuple_type<A10>::const_reference get() const { return _x; }
4409 private:
4410 	typename tuple_type<A10>::reference _x;
4411 };
4412 
4413 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4414 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element4415 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element4416 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element4417 	typename tuple_type<A11>::const_reference get() const { return _x; }
4418 private:
4419 	typename tuple_type<A11>::reference _x;
4420 };
4421 
4422 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4423 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element4424 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element4425 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element4426 	typename tuple_type<A12>::const_reference get() const { return _x; }
4427 private:
4428 	typename tuple_type<A12>::reference _x;
4429 };
4430 
4431 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4432 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element4433 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element4434 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element4435 	typename tuple_type<A13>::const_reference get() const { return _x; }
4436 private:
4437 	typename tuple_type<A13>::reference _x;
4438 };
4439 
4440 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4441 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element4442 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element4443 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element4444 	typename tuple_type<A14>::const_reference get() const { return _x; }
4445 private:
4446 	typename tuple_type<A14>::reference _x;
4447 };
4448 
4449 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4450 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element4451 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element4452 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element4453 	typename tuple_type<A15>::const_reference get() const { return _x; }
4454 private:
4455 	typename tuple_type<A15>::reference _x;
4456 };
4457 
4458 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4459 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element4460 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element4461 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element4462 	typename tuple_type<A16>::const_reference get() const { return _x; }
4463 private:
4464 	typename tuple_type<A16>::reference _x;
4465 };
4466 
4467 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4468 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element4469 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element4470 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element4471 	typename tuple_type<A17>::const_reference get() const { return _x; }
4472 private:
4473 	typename tuple_type<A17>::reference _x;
4474 };
4475 
4476 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4477 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element4478 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element4479 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element4480 	typename tuple_type<A18>::const_reference get() const { return _x; }
4481 private:
4482 	typename tuple_type<A18>::reference _x;
4483 };
4484 
4485 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4486 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element4487 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element4488 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element4489 	typename tuple_type<A19>::const_reference get() const { return _x; }
4490 private:
4491 	typename tuple_type<A19>::reference _x;
4492 };
4493 
4494 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4495 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element4496 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element4497 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element4498 	typename tuple_type<A20>::const_reference get() const { return _x; }
4499 private:
4500 	typename tuple_type<A20>::reference _x;
4501 };
4502 
4503 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4504 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element4505 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element4506 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element4507 	typename tuple_type<A21>::const_reference get() const { return _x; }
4508 private:
4509 	typename tuple_type<A21>::reference _x;
4510 };
4511 
4512 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4513 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element4514 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element4515 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element4516 	typename tuple_type<A22>::const_reference get() const { return _x; }
4517 private:
4518 	typename tuple_type<A22>::reference _x;
4519 };
4520 
4521 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4522 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 23> : tuple_type<A23> {
tuple_elementmsgpack::type::tuple_element4523 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a23) {}
getmsgpack::type::tuple_element4524 	typename tuple_type<A23>::reference get() { return _x; }
getmsgpack::type::tuple_element4525 	typename tuple_type<A23>::const_reference get() const { return _x; }
4526 private:
4527 	typename tuple_type<A23>::reference _x;
4528 };
4529 
4530 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4531 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 24> : tuple_type<A24> {
tuple_elementmsgpack::type::tuple_element4532 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a24) {}
getmsgpack::type::tuple_element4533 	typename tuple_type<A24>::reference get() { return _x; }
getmsgpack::type::tuple_element4534 	typename tuple_type<A24>::const_reference get() const { return _x; }
4535 private:
4536 	typename tuple_type<A24>::reference _x;
4537 };
4538 
4539 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4540 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 25> : tuple_type<A25> {
tuple_elementmsgpack::type::tuple_element4541 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a25) {}
getmsgpack::type::tuple_element4542 	typename tuple_type<A25>::reference get() { return _x; }
getmsgpack::type::tuple_element4543 	typename tuple_type<A25>::const_reference get() const { return _x; }
4544 private:
4545 	typename tuple_type<A25>::reference _x;
4546 };
4547 
4548 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4549 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 26> : tuple_type<A26> {
tuple_elementmsgpack::type::tuple_element4550 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a26) {}
getmsgpack::type::tuple_element4551 	typename tuple_type<A26>::reference get() { return _x; }
getmsgpack::type::tuple_element4552 	typename tuple_type<A26>::const_reference get() const { return _x; }
4553 private:
4554 	typename tuple_type<A26>::reference _x;
4555 };
4556 
4557 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4558 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 27> : tuple_type<A27> {
tuple_elementmsgpack::type::tuple_element4559 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a27) {}
getmsgpack::type::tuple_element4560 	typename tuple_type<A27>::reference get() { return _x; }
getmsgpack::type::tuple_element4561 	typename tuple_type<A27>::const_reference get() const { return _x; }
4562 private:
4563 	typename tuple_type<A27>::reference _x;
4564 };
4565 
4566 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4567 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 28> : tuple_type<A28> {
tuple_elementmsgpack::type::tuple_element4568 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a28) {}
getmsgpack::type::tuple_element4569 	typename tuple_type<A28>::reference get() { return _x; }
getmsgpack::type::tuple_element4570 	typename tuple_type<A28>::const_reference get() const { return _x; }
4571 private:
4572 	typename tuple_type<A28>::reference _x;
4573 };
4574 
4575 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4576 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 29> : tuple_type<A29> {
tuple_elementmsgpack::type::tuple_element4577 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a29) {}
getmsgpack::type::tuple_element4578 	typename tuple_type<A29>::reference get() { return _x; }
getmsgpack::type::tuple_element4579 	typename tuple_type<A29>::const_reference get() const { return _x; }
4580 private:
4581 	typename tuple_type<A29>::reference _x;
4582 };
4583 
4584 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
4585 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 30> : tuple_type<A30> {
tuple_elementmsgpack::type::tuple_element4586 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : _x(x.a30) {}
getmsgpack::type::tuple_element4587 	typename tuple_type<A30>::reference get() { return _x; }
getmsgpack::type::tuple_element4588 	typename tuple_type<A30>::const_reference get() const { return _x; }
4589 private:
4590 	typename tuple_type<A30>::reference _x;
4591 };
4592 
4593 
4594 
4595 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4596 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 0> : tuple_type<A0> {
tuple_elementmsgpack::type::tuple_element4597 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a0) {}
getmsgpack::type::tuple_element4598 	typename tuple_type<A0>::reference get() { return _x; }
getmsgpack::type::tuple_element4599 	typename tuple_type<A0>::const_reference get() const { return _x; }
4600 private:
4601 	typename tuple_type<A0>::reference _x;
4602 };
4603 
4604 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4605 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 1> : tuple_type<A1> {
tuple_elementmsgpack::type::tuple_element4606 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a1) {}
getmsgpack::type::tuple_element4607 	typename tuple_type<A1>::reference get() { return _x; }
getmsgpack::type::tuple_element4608 	typename tuple_type<A1>::const_reference get() const { return _x; }
4609 private:
4610 	typename tuple_type<A1>::reference _x;
4611 };
4612 
4613 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4614 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 2> : tuple_type<A2> {
tuple_elementmsgpack::type::tuple_element4615 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a2) {}
getmsgpack::type::tuple_element4616 	typename tuple_type<A2>::reference get() { return _x; }
getmsgpack::type::tuple_element4617 	typename tuple_type<A2>::const_reference get() const { return _x; }
4618 private:
4619 	typename tuple_type<A2>::reference _x;
4620 };
4621 
4622 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4623 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 3> : tuple_type<A3> {
tuple_elementmsgpack::type::tuple_element4624 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a3) {}
getmsgpack::type::tuple_element4625 	typename tuple_type<A3>::reference get() { return _x; }
getmsgpack::type::tuple_element4626 	typename tuple_type<A3>::const_reference get() const { return _x; }
4627 private:
4628 	typename tuple_type<A3>::reference _x;
4629 };
4630 
4631 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4632 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 4> : tuple_type<A4> {
tuple_elementmsgpack::type::tuple_element4633 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a4) {}
getmsgpack::type::tuple_element4634 	typename tuple_type<A4>::reference get() { return _x; }
getmsgpack::type::tuple_element4635 	typename tuple_type<A4>::const_reference get() const { return _x; }
4636 private:
4637 	typename tuple_type<A4>::reference _x;
4638 };
4639 
4640 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4641 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 5> : tuple_type<A5> {
tuple_elementmsgpack::type::tuple_element4642 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a5) {}
getmsgpack::type::tuple_element4643 	typename tuple_type<A5>::reference get() { return _x; }
getmsgpack::type::tuple_element4644 	typename tuple_type<A5>::const_reference get() const { return _x; }
4645 private:
4646 	typename tuple_type<A5>::reference _x;
4647 };
4648 
4649 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4650 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 6> : tuple_type<A6> {
tuple_elementmsgpack::type::tuple_element4651 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a6) {}
getmsgpack::type::tuple_element4652 	typename tuple_type<A6>::reference get() { return _x; }
getmsgpack::type::tuple_element4653 	typename tuple_type<A6>::const_reference get() const { return _x; }
4654 private:
4655 	typename tuple_type<A6>::reference _x;
4656 };
4657 
4658 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4659 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 7> : tuple_type<A7> {
tuple_elementmsgpack::type::tuple_element4660 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a7) {}
getmsgpack::type::tuple_element4661 	typename tuple_type<A7>::reference get() { return _x; }
getmsgpack::type::tuple_element4662 	typename tuple_type<A7>::const_reference get() const { return _x; }
4663 private:
4664 	typename tuple_type<A7>::reference _x;
4665 };
4666 
4667 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4668 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 8> : tuple_type<A8> {
tuple_elementmsgpack::type::tuple_element4669 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a8) {}
getmsgpack::type::tuple_element4670 	typename tuple_type<A8>::reference get() { return _x; }
getmsgpack::type::tuple_element4671 	typename tuple_type<A8>::const_reference get() const { return _x; }
4672 private:
4673 	typename tuple_type<A8>::reference _x;
4674 };
4675 
4676 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4677 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 9> : tuple_type<A9> {
tuple_elementmsgpack::type::tuple_element4678 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a9) {}
getmsgpack::type::tuple_element4679 	typename tuple_type<A9>::reference get() { return _x; }
getmsgpack::type::tuple_element4680 	typename tuple_type<A9>::const_reference get() const { return _x; }
4681 private:
4682 	typename tuple_type<A9>::reference _x;
4683 };
4684 
4685 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4686 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 10> : tuple_type<A10> {
tuple_elementmsgpack::type::tuple_element4687 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a10) {}
getmsgpack::type::tuple_element4688 	typename tuple_type<A10>::reference get() { return _x; }
getmsgpack::type::tuple_element4689 	typename tuple_type<A10>::const_reference get() const { return _x; }
4690 private:
4691 	typename tuple_type<A10>::reference _x;
4692 };
4693 
4694 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4695 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 11> : tuple_type<A11> {
tuple_elementmsgpack::type::tuple_element4696 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a11) {}
getmsgpack::type::tuple_element4697 	typename tuple_type<A11>::reference get() { return _x; }
getmsgpack::type::tuple_element4698 	typename tuple_type<A11>::const_reference get() const { return _x; }
4699 private:
4700 	typename tuple_type<A11>::reference _x;
4701 };
4702 
4703 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4704 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 12> : tuple_type<A12> {
tuple_elementmsgpack::type::tuple_element4705 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a12) {}
getmsgpack::type::tuple_element4706 	typename tuple_type<A12>::reference get() { return _x; }
getmsgpack::type::tuple_element4707 	typename tuple_type<A12>::const_reference get() const { return _x; }
4708 private:
4709 	typename tuple_type<A12>::reference _x;
4710 };
4711 
4712 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4713 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 13> : tuple_type<A13> {
tuple_elementmsgpack::type::tuple_element4714 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a13) {}
getmsgpack::type::tuple_element4715 	typename tuple_type<A13>::reference get() { return _x; }
getmsgpack::type::tuple_element4716 	typename tuple_type<A13>::const_reference get() const { return _x; }
4717 private:
4718 	typename tuple_type<A13>::reference _x;
4719 };
4720 
4721 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4722 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 14> : tuple_type<A14> {
tuple_elementmsgpack::type::tuple_element4723 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a14) {}
getmsgpack::type::tuple_element4724 	typename tuple_type<A14>::reference get() { return _x; }
getmsgpack::type::tuple_element4725 	typename tuple_type<A14>::const_reference get() const { return _x; }
4726 private:
4727 	typename tuple_type<A14>::reference _x;
4728 };
4729 
4730 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4731 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 15> : tuple_type<A15> {
tuple_elementmsgpack::type::tuple_element4732 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a15) {}
getmsgpack::type::tuple_element4733 	typename tuple_type<A15>::reference get() { return _x; }
getmsgpack::type::tuple_element4734 	typename tuple_type<A15>::const_reference get() const { return _x; }
4735 private:
4736 	typename tuple_type<A15>::reference _x;
4737 };
4738 
4739 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4740 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 16> : tuple_type<A16> {
tuple_elementmsgpack::type::tuple_element4741 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a16) {}
getmsgpack::type::tuple_element4742 	typename tuple_type<A16>::reference get() { return _x; }
getmsgpack::type::tuple_element4743 	typename tuple_type<A16>::const_reference get() const { return _x; }
4744 private:
4745 	typename tuple_type<A16>::reference _x;
4746 };
4747 
4748 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4749 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 17> : tuple_type<A17> {
tuple_elementmsgpack::type::tuple_element4750 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a17) {}
getmsgpack::type::tuple_element4751 	typename tuple_type<A17>::reference get() { return _x; }
getmsgpack::type::tuple_element4752 	typename tuple_type<A17>::const_reference get() const { return _x; }
4753 private:
4754 	typename tuple_type<A17>::reference _x;
4755 };
4756 
4757 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4758 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 18> : tuple_type<A18> {
tuple_elementmsgpack::type::tuple_element4759 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a18) {}
getmsgpack::type::tuple_element4760 	typename tuple_type<A18>::reference get() { return _x; }
getmsgpack::type::tuple_element4761 	typename tuple_type<A18>::const_reference get() const { return _x; }
4762 private:
4763 	typename tuple_type<A18>::reference _x;
4764 };
4765 
4766 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4767 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 19> : tuple_type<A19> {
tuple_elementmsgpack::type::tuple_element4768 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a19) {}
getmsgpack::type::tuple_element4769 	typename tuple_type<A19>::reference get() { return _x; }
getmsgpack::type::tuple_element4770 	typename tuple_type<A19>::const_reference get() const { return _x; }
4771 private:
4772 	typename tuple_type<A19>::reference _x;
4773 };
4774 
4775 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4776 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 20> : tuple_type<A20> {
tuple_elementmsgpack::type::tuple_element4777 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a20) {}
getmsgpack::type::tuple_element4778 	typename tuple_type<A20>::reference get() { return _x; }
getmsgpack::type::tuple_element4779 	typename tuple_type<A20>::const_reference get() const { return _x; }
4780 private:
4781 	typename tuple_type<A20>::reference _x;
4782 };
4783 
4784 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4785 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 21> : tuple_type<A21> {
tuple_elementmsgpack::type::tuple_element4786 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a21) {}
getmsgpack::type::tuple_element4787 	typename tuple_type<A21>::reference get() { return _x; }
getmsgpack::type::tuple_element4788 	typename tuple_type<A21>::const_reference get() const { return _x; }
4789 private:
4790 	typename tuple_type<A21>::reference _x;
4791 };
4792 
4793 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4794 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 22> : tuple_type<A22> {
tuple_elementmsgpack::type::tuple_element4795 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a22) {}
getmsgpack::type::tuple_element4796 	typename tuple_type<A22>::reference get() { return _x; }
getmsgpack::type::tuple_element4797 	typename tuple_type<A22>::const_reference get() const { return _x; }
4798 private:
4799 	typename tuple_type<A22>::reference _x;
4800 };
4801 
4802 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4803 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 23> : tuple_type<A23> {
tuple_elementmsgpack::type::tuple_element4804 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a23) {}
getmsgpack::type::tuple_element4805 	typename tuple_type<A23>::reference get() { return _x; }
getmsgpack::type::tuple_element4806 	typename tuple_type<A23>::const_reference get() const { return _x; }
4807 private:
4808 	typename tuple_type<A23>::reference _x;
4809 };
4810 
4811 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4812 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 24> : tuple_type<A24> {
tuple_elementmsgpack::type::tuple_element4813 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a24) {}
getmsgpack::type::tuple_element4814 	typename tuple_type<A24>::reference get() { return _x; }
getmsgpack::type::tuple_element4815 	typename tuple_type<A24>::const_reference get() const { return _x; }
4816 private:
4817 	typename tuple_type<A24>::reference _x;
4818 };
4819 
4820 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4821 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 25> : tuple_type<A25> {
tuple_elementmsgpack::type::tuple_element4822 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a25) {}
getmsgpack::type::tuple_element4823 	typename tuple_type<A25>::reference get() { return _x; }
getmsgpack::type::tuple_element4824 	typename tuple_type<A25>::const_reference get() const { return _x; }
4825 private:
4826 	typename tuple_type<A25>::reference _x;
4827 };
4828 
4829 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4830 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 26> : tuple_type<A26> {
tuple_elementmsgpack::type::tuple_element4831 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a26) {}
getmsgpack::type::tuple_element4832 	typename tuple_type<A26>::reference get() { return _x; }
getmsgpack::type::tuple_element4833 	typename tuple_type<A26>::const_reference get() const { return _x; }
4834 private:
4835 	typename tuple_type<A26>::reference _x;
4836 };
4837 
4838 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4839 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 27> : tuple_type<A27> {
tuple_elementmsgpack::type::tuple_element4840 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a27) {}
getmsgpack::type::tuple_element4841 	typename tuple_type<A27>::reference get() { return _x; }
getmsgpack::type::tuple_element4842 	typename tuple_type<A27>::const_reference get() const { return _x; }
4843 private:
4844 	typename tuple_type<A27>::reference _x;
4845 };
4846 
4847 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4848 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 28> : tuple_type<A28> {
tuple_elementmsgpack::type::tuple_element4849 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a28) {}
getmsgpack::type::tuple_element4850 	typename tuple_type<A28>::reference get() { return _x; }
getmsgpack::type::tuple_element4851 	typename tuple_type<A28>::const_reference get() const { return _x; }
4852 private:
4853 	typename tuple_type<A28>::reference _x;
4854 };
4855 
4856 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4857 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 29> : tuple_type<A29> {
tuple_elementmsgpack::type::tuple_element4858 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a29) {}
getmsgpack::type::tuple_element4859 	typename tuple_type<A29>::reference get() { return _x; }
getmsgpack::type::tuple_element4860 	typename tuple_type<A29>::const_reference get() const { return _x; }
4861 private:
4862 	typename tuple_type<A29>::reference _x;
4863 };
4864 
4865 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4866 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 30> : tuple_type<A30> {
tuple_elementmsgpack::type::tuple_element4867 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a30) {}
getmsgpack::type::tuple_element4868 	typename tuple_type<A30>::reference get() { return _x; }
getmsgpack::type::tuple_element4869 	typename tuple_type<A30>::const_reference get() const { return _x; }
4870 private:
4871 	typename tuple_type<A30>::reference _x;
4872 };
4873 
4874 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
4875 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 31> : tuple_type<A31> {
tuple_elementmsgpack::type::tuple_element4876 	tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : _x(x.a31) {}
getmsgpack::type::tuple_element4877 	typename tuple_type<A31>::reference get() { return _x; }
getmsgpack::type::tuple_element4878 	typename tuple_type<A31>::const_reference get() const { return _x; }
4879 private:
4880 	typename tuple_type<A31>::reference _x;
4881 };
4882 
4883 
4884 
4885 
4886 
4887 template <typename A0>
4888 struct const_tuple_element<tuple<A0>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element4889 	const_tuple_element(const tuple<A0>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element4890 	typename tuple_type<A0>::const_reference get() const { return _x; }
4891 private:
4892 	typename tuple_type<A0>::const_reference _x;
4893 };
4894 
4895 
4896 
4897 template <typename A0, typename A1>
4898 struct const_tuple_element<tuple<A0, A1>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element4899 	const_tuple_element(const tuple<A0, A1>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element4900 	typename tuple_type<A0>::const_reference get() const { return _x; }
4901 private:
4902 	typename tuple_type<A0>::const_reference _x;
4903 };
4904 
4905 template <typename A0, typename A1>
4906 struct const_tuple_element<tuple<A0, A1>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element4907 	const_tuple_element(const tuple<A0, A1>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element4908 	typename tuple_type<A1>::const_reference get() const { return _x; }
4909 private:
4910 	typename tuple_type<A1>::const_reference _x;
4911 };
4912 
4913 
4914 
4915 template <typename A0, typename A1, typename A2>
4916 struct const_tuple_element<tuple<A0, A1, A2>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element4917 	const_tuple_element(const tuple<A0, A1, A2>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element4918 	typename tuple_type<A0>::const_reference get() const { return _x; }
4919 private:
4920 	typename tuple_type<A0>::const_reference _x;
4921 };
4922 
4923 template <typename A0, typename A1, typename A2>
4924 struct const_tuple_element<tuple<A0, A1, A2>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element4925 	const_tuple_element(const tuple<A0, A1, A2>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element4926 	typename tuple_type<A1>::const_reference get() const { return _x; }
4927 private:
4928 	typename tuple_type<A1>::const_reference _x;
4929 };
4930 
4931 template <typename A0, typename A1, typename A2>
4932 struct const_tuple_element<tuple<A0, A1, A2>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element4933 	const_tuple_element(const tuple<A0, A1, A2>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element4934 	typename tuple_type<A2>::const_reference get() const { return _x; }
4935 private:
4936 	typename tuple_type<A2>::const_reference _x;
4937 };
4938 
4939 
4940 
4941 template <typename A0, typename A1, typename A2, typename A3>
4942 struct const_tuple_element<tuple<A0, A1, A2, A3>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element4943 	const_tuple_element(const tuple<A0, A1, A2, A3>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element4944 	typename tuple_type<A0>::const_reference get() const { return _x; }
4945 private:
4946 	typename tuple_type<A0>::const_reference _x;
4947 };
4948 
4949 template <typename A0, typename A1, typename A2, typename A3>
4950 struct const_tuple_element<tuple<A0, A1, A2, A3>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element4951 	const_tuple_element(const tuple<A0, A1, A2, A3>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element4952 	typename tuple_type<A1>::const_reference get() const { return _x; }
4953 private:
4954 	typename tuple_type<A1>::const_reference _x;
4955 };
4956 
4957 template <typename A0, typename A1, typename A2, typename A3>
4958 struct const_tuple_element<tuple<A0, A1, A2, A3>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element4959 	const_tuple_element(const tuple<A0, A1, A2, A3>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element4960 	typename tuple_type<A2>::const_reference get() const { return _x; }
4961 private:
4962 	typename tuple_type<A2>::const_reference _x;
4963 };
4964 
4965 template <typename A0, typename A1, typename A2, typename A3>
4966 struct const_tuple_element<tuple<A0, A1, A2, A3>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element4967 	const_tuple_element(const tuple<A0, A1, A2, A3>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element4968 	typename tuple_type<A3>::const_reference get() const { return _x; }
4969 private:
4970 	typename tuple_type<A3>::const_reference _x;
4971 };
4972 
4973 
4974 
4975 template <typename A0, typename A1, typename A2, typename A3, typename A4>
4976 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element4977 	const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element4978 	typename tuple_type<A0>::const_reference get() const { return _x; }
4979 private:
4980 	typename tuple_type<A0>::const_reference _x;
4981 };
4982 
4983 template <typename A0, typename A1, typename A2, typename A3, typename A4>
4984 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element4985 	const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element4986 	typename tuple_type<A1>::const_reference get() const { return _x; }
4987 private:
4988 	typename tuple_type<A1>::const_reference _x;
4989 };
4990 
4991 template <typename A0, typename A1, typename A2, typename A3, typename A4>
4992 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element4993 	const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element4994 	typename tuple_type<A2>::const_reference get() const { return _x; }
4995 private:
4996 	typename tuple_type<A2>::const_reference _x;
4997 };
4998 
4999 template <typename A0, typename A1, typename A2, typename A3, typename A4>
5000 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5001 	const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5002 	typename tuple_type<A3>::const_reference get() const { return _x; }
5003 private:
5004 	typename tuple_type<A3>::const_reference _x;
5005 };
5006 
5007 template <typename A0, typename A1, typename A2, typename A3, typename A4>
5008 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5009 	const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5010 	typename tuple_type<A4>::const_reference get() const { return _x; }
5011 private:
5012 	typename tuple_type<A4>::const_reference _x;
5013 };
5014 
5015 
5016 
5017 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
5018 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5019 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5020 	typename tuple_type<A0>::const_reference get() const { return _x; }
5021 private:
5022 	typename tuple_type<A0>::const_reference _x;
5023 };
5024 
5025 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
5026 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5027 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5028 	typename tuple_type<A1>::const_reference get() const { return _x; }
5029 private:
5030 	typename tuple_type<A1>::const_reference _x;
5031 };
5032 
5033 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
5034 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5035 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5036 	typename tuple_type<A2>::const_reference get() const { return _x; }
5037 private:
5038 	typename tuple_type<A2>::const_reference _x;
5039 };
5040 
5041 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
5042 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5043 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5044 	typename tuple_type<A3>::const_reference get() const { return _x; }
5045 private:
5046 	typename tuple_type<A3>::const_reference _x;
5047 };
5048 
5049 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
5050 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5051 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5052 	typename tuple_type<A4>::const_reference get() const { return _x; }
5053 private:
5054 	typename tuple_type<A4>::const_reference _x;
5055 };
5056 
5057 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
5058 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5059 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5060 	typename tuple_type<A5>::const_reference get() const { return _x; }
5061 private:
5062 	typename tuple_type<A5>::const_reference _x;
5063 };
5064 
5065 
5066 
5067 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
5068 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5069 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5070 	typename tuple_type<A0>::const_reference get() const { return _x; }
5071 private:
5072 	typename tuple_type<A0>::const_reference _x;
5073 };
5074 
5075 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
5076 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5077 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5078 	typename tuple_type<A1>::const_reference get() const { return _x; }
5079 private:
5080 	typename tuple_type<A1>::const_reference _x;
5081 };
5082 
5083 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
5084 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5085 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5086 	typename tuple_type<A2>::const_reference get() const { return _x; }
5087 private:
5088 	typename tuple_type<A2>::const_reference _x;
5089 };
5090 
5091 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
5092 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5093 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5094 	typename tuple_type<A3>::const_reference get() const { return _x; }
5095 private:
5096 	typename tuple_type<A3>::const_reference _x;
5097 };
5098 
5099 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
5100 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5101 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5102 	typename tuple_type<A4>::const_reference get() const { return _x; }
5103 private:
5104 	typename tuple_type<A4>::const_reference _x;
5105 };
5106 
5107 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
5108 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5109 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5110 	typename tuple_type<A5>::const_reference get() const { return _x; }
5111 private:
5112 	typename tuple_type<A5>::const_reference _x;
5113 };
5114 
5115 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
5116 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5117 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5118 	typename tuple_type<A6>::const_reference get() const { return _x; }
5119 private:
5120 	typename tuple_type<A6>::const_reference _x;
5121 };
5122 
5123 
5124 
5125 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
5126 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5127 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5128 	typename tuple_type<A0>::const_reference get() const { return _x; }
5129 private:
5130 	typename tuple_type<A0>::const_reference _x;
5131 };
5132 
5133 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
5134 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5135 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5136 	typename tuple_type<A1>::const_reference get() const { return _x; }
5137 private:
5138 	typename tuple_type<A1>::const_reference _x;
5139 };
5140 
5141 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
5142 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5143 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5144 	typename tuple_type<A2>::const_reference get() const { return _x; }
5145 private:
5146 	typename tuple_type<A2>::const_reference _x;
5147 };
5148 
5149 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
5150 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5151 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5152 	typename tuple_type<A3>::const_reference get() const { return _x; }
5153 private:
5154 	typename tuple_type<A3>::const_reference _x;
5155 };
5156 
5157 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
5158 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5159 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5160 	typename tuple_type<A4>::const_reference get() const { return _x; }
5161 private:
5162 	typename tuple_type<A4>::const_reference _x;
5163 };
5164 
5165 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
5166 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5167 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5168 	typename tuple_type<A5>::const_reference get() const { return _x; }
5169 private:
5170 	typename tuple_type<A5>::const_reference _x;
5171 };
5172 
5173 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
5174 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5175 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5176 	typename tuple_type<A6>::const_reference get() const { return _x; }
5177 private:
5178 	typename tuple_type<A6>::const_reference _x;
5179 };
5180 
5181 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
5182 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element5183 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element5184 	typename tuple_type<A7>::const_reference get() const { return _x; }
5185 private:
5186 	typename tuple_type<A7>::const_reference _x;
5187 };
5188 
5189 
5190 
5191 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
5192 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5193 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5194 	typename tuple_type<A0>::const_reference get() const { return _x; }
5195 private:
5196 	typename tuple_type<A0>::const_reference _x;
5197 };
5198 
5199 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
5200 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5201 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5202 	typename tuple_type<A1>::const_reference get() const { return _x; }
5203 private:
5204 	typename tuple_type<A1>::const_reference _x;
5205 };
5206 
5207 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
5208 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5209 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5210 	typename tuple_type<A2>::const_reference get() const { return _x; }
5211 private:
5212 	typename tuple_type<A2>::const_reference _x;
5213 };
5214 
5215 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
5216 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5217 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5218 	typename tuple_type<A3>::const_reference get() const { return _x; }
5219 private:
5220 	typename tuple_type<A3>::const_reference _x;
5221 };
5222 
5223 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
5224 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5225 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5226 	typename tuple_type<A4>::const_reference get() const { return _x; }
5227 private:
5228 	typename tuple_type<A4>::const_reference _x;
5229 };
5230 
5231 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
5232 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5233 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5234 	typename tuple_type<A5>::const_reference get() const { return _x; }
5235 private:
5236 	typename tuple_type<A5>::const_reference _x;
5237 };
5238 
5239 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
5240 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5241 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5242 	typename tuple_type<A6>::const_reference get() const { return _x; }
5243 private:
5244 	typename tuple_type<A6>::const_reference _x;
5245 };
5246 
5247 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
5248 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element5249 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element5250 	typename tuple_type<A7>::const_reference get() const { return _x; }
5251 private:
5252 	typename tuple_type<A7>::const_reference _x;
5253 };
5254 
5255 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
5256 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element5257 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element5258 	typename tuple_type<A8>::const_reference get() const { return _x; }
5259 private:
5260 	typename tuple_type<A8>::const_reference _x;
5261 };
5262 
5263 
5264 
5265 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5266 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5267 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5268 	typename tuple_type<A0>::const_reference get() const { return _x; }
5269 private:
5270 	typename tuple_type<A0>::const_reference _x;
5271 };
5272 
5273 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5274 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5275 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5276 	typename tuple_type<A1>::const_reference get() const { return _x; }
5277 private:
5278 	typename tuple_type<A1>::const_reference _x;
5279 };
5280 
5281 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5282 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5283 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5284 	typename tuple_type<A2>::const_reference get() const { return _x; }
5285 private:
5286 	typename tuple_type<A2>::const_reference _x;
5287 };
5288 
5289 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5290 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5291 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5292 	typename tuple_type<A3>::const_reference get() const { return _x; }
5293 private:
5294 	typename tuple_type<A3>::const_reference _x;
5295 };
5296 
5297 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5298 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5299 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5300 	typename tuple_type<A4>::const_reference get() const { return _x; }
5301 private:
5302 	typename tuple_type<A4>::const_reference _x;
5303 };
5304 
5305 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5306 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5307 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5308 	typename tuple_type<A5>::const_reference get() const { return _x; }
5309 private:
5310 	typename tuple_type<A5>::const_reference _x;
5311 };
5312 
5313 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5314 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5315 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5316 	typename tuple_type<A6>::const_reference get() const { return _x; }
5317 private:
5318 	typename tuple_type<A6>::const_reference _x;
5319 };
5320 
5321 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5322 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element5323 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element5324 	typename tuple_type<A7>::const_reference get() const { return _x; }
5325 private:
5326 	typename tuple_type<A7>::const_reference _x;
5327 };
5328 
5329 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5330 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element5331 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element5332 	typename tuple_type<A8>::const_reference get() const { return _x; }
5333 private:
5334 	typename tuple_type<A8>::const_reference _x;
5335 };
5336 
5337 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
5338 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element5339 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element5340 	typename tuple_type<A9>::const_reference get() const { return _x; }
5341 private:
5342 	typename tuple_type<A9>::const_reference _x;
5343 };
5344 
5345 
5346 
5347 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5348 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5349 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5350 	typename tuple_type<A0>::const_reference get() const { return _x; }
5351 private:
5352 	typename tuple_type<A0>::const_reference _x;
5353 };
5354 
5355 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5356 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5357 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5358 	typename tuple_type<A1>::const_reference get() const { return _x; }
5359 private:
5360 	typename tuple_type<A1>::const_reference _x;
5361 };
5362 
5363 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5364 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5365 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5366 	typename tuple_type<A2>::const_reference get() const { return _x; }
5367 private:
5368 	typename tuple_type<A2>::const_reference _x;
5369 };
5370 
5371 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5372 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5373 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5374 	typename tuple_type<A3>::const_reference get() const { return _x; }
5375 private:
5376 	typename tuple_type<A3>::const_reference _x;
5377 };
5378 
5379 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5380 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5381 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5382 	typename tuple_type<A4>::const_reference get() const { return _x; }
5383 private:
5384 	typename tuple_type<A4>::const_reference _x;
5385 };
5386 
5387 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5388 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5389 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5390 	typename tuple_type<A5>::const_reference get() const { return _x; }
5391 private:
5392 	typename tuple_type<A5>::const_reference _x;
5393 };
5394 
5395 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5396 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5397 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5398 	typename tuple_type<A6>::const_reference get() const { return _x; }
5399 private:
5400 	typename tuple_type<A6>::const_reference _x;
5401 };
5402 
5403 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5404 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element5405 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element5406 	typename tuple_type<A7>::const_reference get() const { return _x; }
5407 private:
5408 	typename tuple_type<A7>::const_reference _x;
5409 };
5410 
5411 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5412 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element5413 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element5414 	typename tuple_type<A8>::const_reference get() const { return _x; }
5415 private:
5416 	typename tuple_type<A8>::const_reference _x;
5417 };
5418 
5419 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5420 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element5421 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element5422 	typename tuple_type<A9>::const_reference get() const { return _x; }
5423 private:
5424 	typename tuple_type<A9>::const_reference _x;
5425 };
5426 
5427 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
5428 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element5429 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element5430 	typename tuple_type<A10>::const_reference get() const { return _x; }
5431 private:
5432 	typename tuple_type<A10>::const_reference _x;
5433 };
5434 
5435 
5436 
5437 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5438 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5439 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5440 	typename tuple_type<A0>::const_reference get() const { return _x; }
5441 private:
5442 	typename tuple_type<A0>::const_reference _x;
5443 };
5444 
5445 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5446 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5447 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5448 	typename tuple_type<A1>::const_reference get() const { return _x; }
5449 private:
5450 	typename tuple_type<A1>::const_reference _x;
5451 };
5452 
5453 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5454 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5455 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5456 	typename tuple_type<A2>::const_reference get() const { return _x; }
5457 private:
5458 	typename tuple_type<A2>::const_reference _x;
5459 };
5460 
5461 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5462 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5463 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5464 	typename tuple_type<A3>::const_reference get() const { return _x; }
5465 private:
5466 	typename tuple_type<A3>::const_reference _x;
5467 };
5468 
5469 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5470 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5471 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5472 	typename tuple_type<A4>::const_reference get() const { return _x; }
5473 private:
5474 	typename tuple_type<A4>::const_reference _x;
5475 };
5476 
5477 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5478 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5479 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5480 	typename tuple_type<A5>::const_reference get() const { return _x; }
5481 private:
5482 	typename tuple_type<A5>::const_reference _x;
5483 };
5484 
5485 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5486 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5487 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5488 	typename tuple_type<A6>::const_reference get() const { return _x; }
5489 private:
5490 	typename tuple_type<A6>::const_reference _x;
5491 };
5492 
5493 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5494 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element5495 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element5496 	typename tuple_type<A7>::const_reference get() const { return _x; }
5497 private:
5498 	typename tuple_type<A7>::const_reference _x;
5499 };
5500 
5501 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5502 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element5503 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element5504 	typename tuple_type<A8>::const_reference get() const { return _x; }
5505 private:
5506 	typename tuple_type<A8>::const_reference _x;
5507 };
5508 
5509 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5510 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element5511 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element5512 	typename tuple_type<A9>::const_reference get() const { return _x; }
5513 private:
5514 	typename tuple_type<A9>::const_reference _x;
5515 };
5516 
5517 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5518 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element5519 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element5520 	typename tuple_type<A10>::const_reference get() const { return _x; }
5521 private:
5522 	typename tuple_type<A10>::const_reference _x;
5523 };
5524 
5525 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
5526 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element5527 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element5528 	typename tuple_type<A11>::const_reference get() const { return _x; }
5529 private:
5530 	typename tuple_type<A11>::const_reference _x;
5531 };
5532 
5533 
5534 
5535 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5536 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5537 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5538 	typename tuple_type<A0>::const_reference get() const { return _x; }
5539 private:
5540 	typename tuple_type<A0>::const_reference _x;
5541 };
5542 
5543 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5544 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5545 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5546 	typename tuple_type<A1>::const_reference get() const { return _x; }
5547 private:
5548 	typename tuple_type<A1>::const_reference _x;
5549 };
5550 
5551 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5552 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5553 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5554 	typename tuple_type<A2>::const_reference get() const { return _x; }
5555 private:
5556 	typename tuple_type<A2>::const_reference _x;
5557 };
5558 
5559 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5560 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5561 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5562 	typename tuple_type<A3>::const_reference get() const { return _x; }
5563 private:
5564 	typename tuple_type<A3>::const_reference _x;
5565 };
5566 
5567 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5568 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5569 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5570 	typename tuple_type<A4>::const_reference get() const { return _x; }
5571 private:
5572 	typename tuple_type<A4>::const_reference _x;
5573 };
5574 
5575 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5576 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5577 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5578 	typename tuple_type<A5>::const_reference get() const { return _x; }
5579 private:
5580 	typename tuple_type<A5>::const_reference _x;
5581 };
5582 
5583 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5584 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5585 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5586 	typename tuple_type<A6>::const_reference get() const { return _x; }
5587 private:
5588 	typename tuple_type<A6>::const_reference _x;
5589 };
5590 
5591 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5592 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element5593 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element5594 	typename tuple_type<A7>::const_reference get() const { return _x; }
5595 private:
5596 	typename tuple_type<A7>::const_reference _x;
5597 };
5598 
5599 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5600 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element5601 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element5602 	typename tuple_type<A8>::const_reference get() const { return _x; }
5603 private:
5604 	typename tuple_type<A8>::const_reference _x;
5605 };
5606 
5607 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5608 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element5609 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element5610 	typename tuple_type<A9>::const_reference get() const { return _x; }
5611 private:
5612 	typename tuple_type<A9>::const_reference _x;
5613 };
5614 
5615 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5616 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element5617 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element5618 	typename tuple_type<A10>::const_reference get() const { return _x; }
5619 private:
5620 	typename tuple_type<A10>::const_reference _x;
5621 };
5622 
5623 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5624 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element5625 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element5626 	typename tuple_type<A11>::const_reference get() const { return _x; }
5627 private:
5628 	typename tuple_type<A11>::const_reference _x;
5629 };
5630 
5631 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
5632 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element5633 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element5634 	typename tuple_type<A12>::const_reference get() const { return _x; }
5635 private:
5636 	typename tuple_type<A12>::const_reference _x;
5637 };
5638 
5639 
5640 
5641 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5642 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5643 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5644 	typename tuple_type<A0>::const_reference get() const { return _x; }
5645 private:
5646 	typename tuple_type<A0>::const_reference _x;
5647 };
5648 
5649 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5650 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5651 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5652 	typename tuple_type<A1>::const_reference get() const { return _x; }
5653 private:
5654 	typename tuple_type<A1>::const_reference _x;
5655 };
5656 
5657 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5658 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5659 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5660 	typename tuple_type<A2>::const_reference get() const { return _x; }
5661 private:
5662 	typename tuple_type<A2>::const_reference _x;
5663 };
5664 
5665 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5666 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5667 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5668 	typename tuple_type<A3>::const_reference get() const { return _x; }
5669 private:
5670 	typename tuple_type<A3>::const_reference _x;
5671 };
5672 
5673 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5674 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5675 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5676 	typename tuple_type<A4>::const_reference get() const { return _x; }
5677 private:
5678 	typename tuple_type<A4>::const_reference _x;
5679 };
5680 
5681 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5682 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5683 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5684 	typename tuple_type<A5>::const_reference get() const { return _x; }
5685 private:
5686 	typename tuple_type<A5>::const_reference _x;
5687 };
5688 
5689 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5690 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5691 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5692 	typename tuple_type<A6>::const_reference get() const { return _x; }
5693 private:
5694 	typename tuple_type<A6>::const_reference _x;
5695 };
5696 
5697 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5698 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element5699 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element5700 	typename tuple_type<A7>::const_reference get() const { return _x; }
5701 private:
5702 	typename tuple_type<A7>::const_reference _x;
5703 };
5704 
5705 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5706 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element5707 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element5708 	typename tuple_type<A8>::const_reference get() const { return _x; }
5709 private:
5710 	typename tuple_type<A8>::const_reference _x;
5711 };
5712 
5713 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5714 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element5715 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element5716 	typename tuple_type<A9>::const_reference get() const { return _x; }
5717 private:
5718 	typename tuple_type<A9>::const_reference _x;
5719 };
5720 
5721 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5722 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element5723 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element5724 	typename tuple_type<A10>::const_reference get() const { return _x; }
5725 private:
5726 	typename tuple_type<A10>::const_reference _x;
5727 };
5728 
5729 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5730 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element5731 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element5732 	typename tuple_type<A11>::const_reference get() const { return _x; }
5733 private:
5734 	typename tuple_type<A11>::const_reference _x;
5735 };
5736 
5737 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5738 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element5739 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element5740 	typename tuple_type<A12>::const_reference get() const { return _x; }
5741 private:
5742 	typename tuple_type<A12>::const_reference _x;
5743 };
5744 
5745 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
5746 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element5747 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element5748 	typename tuple_type<A13>::const_reference get() const { return _x; }
5749 private:
5750 	typename tuple_type<A13>::const_reference _x;
5751 };
5752 
5753 
5754 
5755 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5756 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5757 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5758 	typename tuple_type<A0>::const_reference get() const { return _x; }
5759 private:
5760 	typename tuple_type<A0>::const_reference _x;
5761 };
5762 
5763 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5764 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5765 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5766 	typename tuple_type<A1>::const_reference get() const { return _x; }
5767 private:
5768 	typename tuple_type<A1>::const_reference _x;
5769 };
5770 
5771 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5772 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5773 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5774 	typename tuple_type<A2>::const_reference get() const { return _x; }
5775 private:
5776 	typename tuple_type<A2>::const_reference _x;
5777 };
5778 
5779 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5780 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5781 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5782 	typename tuple_type<A3>::const_reference get() const { return _x; }
5783 private:
5784 	typename tuple_type<A3>::const_reference _x;
5785 };
5786 
5787 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5788 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5789 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5790 	typename tuple_type<A4>::const_reference get() const { return _x; }
5791 private:
5792 	typename tuple_type<A4>::const_reference _x;
5793 };
5794 
5795 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5796 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5797 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5798 	typename tuple_type<A5>::const_reference get() const { return _x; }
5799 private:
5800 	typename tuple_type<A5>::const_reference _x;
5801 };
5802 
5803 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5804 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5805 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5806 	typename tuple_type<A6>::const_reference get() const { return _x; }
5807 private:
5808 	typename tuple_type<A6>::const_reference _x;
5809 };
5810 
5811 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5812 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element5813 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element5814 	typename tuple_type<A7>::const_reference get() const { return _x; }
5815 private:
5816 	typename tuple_type<A7>::const_reference _x;
5817 };
5818 
5819 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5820 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element5821 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element5822 	typename tuple_type<A8>::const_reference get() const { return _x; }
5823 private:
5824 	typename tuple_type<A8>::const_reference _x;
5825 };
5826 
5827 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5828 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element5829 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element5830 	typename tuple_type<A9>::const_reference get() const { return _x; }
5831 private:
5832 	typename tuple_type<A9>::const_reference _x;
5833 };
5834 
5835 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5836 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element5837 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element5838 	typename tuple_type<A10>::const_reference get() const { return _x; }
5839 private:
5840 	typename tuple_type<A10>::const_reference _x;
5841 };
5842 
5843 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5844 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element5845 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element5846 	typename tuple_type<A11>::const_reference get() const { return _x; }
5847 private:
5848 	typename tuple_type<A11>::const_reference _x;
5849 };
5850 
5851 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5852 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element5853 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element5854 	typename tuple_type<A12>::const_reference get() const { return _x; }
5855 private:
5856 	typename tuple_type<A12>::const_reference _x;
5857 };
5858 
5859 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5860 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element5861 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element5862 	typename tuple_type<A13>::const_reference get() const { return _x; }
5863 private:
5864 	typename tuple_type<A13>::const_reference _x;
5865 };
5866 
5867 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
5868 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element5869 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element5870 	typename tuple_type<A14>::const_reference get() const { return _x; }
5871 private:
5872 	typename tuple_type<A14>::const_reference _x;
5873 };
5874 
5875 
5876 
5877 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5878 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element5879 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element5880 	typename tuple_type<A0>::const_reference get() const { return _x; }
5881 private:
5882 	typename tuple_type<A0>::const_reference _x;
5883 };
5884 
5885 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5886 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element5887 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element5888 	typename tuple_type<A1>::const_reference get() const { return _x; }
5889 private:
5890 	typename tuple_type<A1>::const_reference _x;
5891 };
5892 
5893 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5894 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element5895 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element5896 	typename tuple_type<A2>::const_reference get() const { return _x; }
5897 private:
5898 	typename tuple_type<A2>::const_reference _x;
5899 };
5900 
5901 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5902 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element5903 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element5904 	typename tuple_type<A3>::const_reference get() const { return _x; }
5905 private:
5906 	typename tuple_type<A3>::const_reference _x;
5907 };
5908 
5909 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5910 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element5911 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element5912 	typename tuple_type<A4>::const_reference get() const { return _x; }
5913 private:
5914 	typename tuple_type<A4>::const_reference _x;
5915 };
5916 
5917 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5918 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element5919 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element5920 	typename tuple_type<A5>::const_reference get() const { return _x; }
5921 private:
5922 	typename tuple_type<A5>::const_reference _x;
5923 };
5924 
5925 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5926 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element5927 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element5928 	typename tuple_type<A6>::const_reference get() const { return _x; }
5929 private:
5930 	typename tuple_type<A6>::const_reference _x;
5931 };
5932 
5933 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5934 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element5935 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element5936 	typename tuple_type<A7>::const_reference get() const { return _x; }
5937 private:
5938 	typename tuple_type<A7>::const_reference _x;
5939 };
5940 
5941 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5942 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element5943 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element5944 	typename tuple_type<A8>::const_reference get() const { return _x; }
5945 private:
5946 	typename tuple_type<A8>::const_reference _x;
5947 };
5948 
5949 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5950 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element5951 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element5952 	typename tuple_type<A9>::const_reference get() const { return _x; }
5953 private:
5954 	typename tuple_type<A9>::const_reference _x;
5955 };
5956 
5957 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5958 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element5959 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element5960 	typename tuple_type<A10>::const_reference get() const { return _x; }
5961 private:
5962 	typename tuple_type<A10>::const_reference _x;
5963 };
5964 
5965 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5966 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element5967 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element5968 	typename tuple_type<A11>::const_reference get() const { return _x; }
5969 private:
5970 	typename tuple_type<A11>::const_reference _x;
5971 };
5972 
5973 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5974 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element5975 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element5976 	typename tuple_type<A12>::const_reference get() const { return _x; }
5977 private:
5978 	typename tuple_type<A12>::const_reference _x;
5979 };
5980 
5981 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5982 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element5983 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element5984 	typename tuple_type<A13>::const_reference get() const { return _x; }
5985 private:
5986 	typename tuple_type<A13>::const_reference _x;
5987 };
5988 
5989 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5990 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element5991 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element5992 	typename tuple_type<A14>::const_reference get() const { return _x; }
5993 private:
5994 	typename tuple_type<A14>::const_reference _x;
5995 };
5996 
5997 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
5998 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element5999 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element6000 	typename tuple_type<A15>::const_reference get() const { return _x; }
6001 private:
6002 	typename tuple_type<A15>::const_reference _x;
6003 };
6004 
6005 
6006 
6007 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6008 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element6009 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element6010 	typename tuple_type<A0>::const_reference get() const { return _x; }
6011 private:
6012 	typename tuple_type<A0>::const_reference _x;
6013 };
6014 
6015 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6016 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element6017 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element6018 	typename tuple_type<A1>::const_reference get() const { return _x; }
6019 private:
6020 	typename tuple_type<A1>::const_reference _x;
6021 };
6022 
6023 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6024 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element6025 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element6026 	typename tuple_type<A2>::const_reference get() const { return _x; }
6027 private:
6028 	typename tuple_type<A2>::const_reference _x;
6029 };
6030 
6031 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6032 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element6033 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element6034 	typename tuple_type<A3>::const_reference get() const { return _x; }
6035 private:
6036 	typename tuple_type<A3>::const_reference _x;
6037 };
6038 
6039 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6040 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element6041 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element6042 	typename tuple_type<A4>::const_reference get() const { return _x; }
6043 private:
6044 	typename tuple_type<A4>::const_reference _x;
6045 };
6046 
6047 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6048 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element6049 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element6050 	typename tuple_type<A5>::const_reference get() const { return _x; }
6051 private:
6052 	typename tuple_type<A5>::const_reference _x;
6053 };
6054 
6055 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6056 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element6057 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element6058 	typename tuple_type<A6>::const_reference get() const { return _x; }
6059 private:
6060 	typename tuple_type<A6>::const_reference _x;
6061 };
6062 
6063 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6064 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element6065 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element6066 	typename tuple_type<A7>::const_reference get() const { return _x; }
6067 private:
6068 	typename tuple_type<A7>::const_reference _x;
6069 };
6070 
6071 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6072 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element6073 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element6074 	typename tuple_type<A8>::const_reference get() const { return _x; }
6075 private:
6076 	typename tuple_type<A8>::const_reference _x;
6077 };
6078 
6079 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6080 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element6081 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element6082 	typename tuple_type<A9>::const_reference get() const { return _x; }
6083 private:
6084 	typename tuple_type<A9>::const_reference _x;
6085 };
6086 
6087 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6088 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element6089 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element6090 	typename tuple_type<A10>::const_reference get() const { return _x; }
6091 private:
6092 	typename tuple_type<A10>::const_reference _x;
6093 };
6094 
6095 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6096 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element6097 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element6098 	typename tuple_type<A11>::const_reference get() const { return _x; }
6099 private:
6100 	typename tuple_type<A11>::const_reference _x;
6101 };
6102 
6103 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6104 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element6105 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element6106 	typename tuple_type<A12>::const_reference get() const { return _x; }
6107 private:
6108 	typename tuple_type<A12>::const_reference _x;
6109 };
6110 
6111 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6112 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element6113 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element6114 	typename tuple_type<A13>::const_reference get() const { return _x; }
6115 private:
6116 	typename tuple_type<A13>::const_reference _x;
6117 };
6118 
6119 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6120 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element6121 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element6122 	typename tuple_type<A14>::const_reference get() const { return _x; }
6123 private:
6124 	typename tuple_type<A14>::const_reference _x;
6125 };
6126 
6127 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6128 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element6129 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element6130 	typename tuple_type<A15>::const_reference get() const { return _x; }
6131 private:
6132 	typename tuple_type<A15>::const_reference _x;
6133 };
6134 
6135 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
6136 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element6137 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element6138 	typename tuple_type<A16>::const_reference get() const { return _x; }
6139 private:
6140 	typename tuple_type<A16>::const_reference _x;
6141 };
6142 
6143 
6144 
6145 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6146 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element6147 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element6148 	typename tuple_type<A0>::const_reference get() const { return _x; }
6149 private:
6150 	typename tuple_type<A0>::const_reference _x;
6151 };
6152 
6153 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6154 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element6155 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element6156 	typename tuple_type<A1>::const_reference get() const { return _x; }
6157 private:
6158 	typename tuple_type<A1>::const_reference _x;
6159 };
6160 
6161 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6162 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element6163 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element6164 	typename tuple_type<A2>::const_reference get() const { return _x; }
6165 private:
6166 	typename tuple_type<A2>::const_reference _x;
6167 };
6168 
6169 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6170 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element6171 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element6172 	typename tuple_type<A3>::const_reference get() const { return _x; }
6173 private:
6174 	typename tuple_type<A3>::const_reference _x;
6175 };
6176 
6177 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6178 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element6179 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element6180 	typename tuple_type<A4>::const_reference get() const { return _x; }
6181 private:
6182 	typename tuple_type<A4>::const_reference _x;
6183 };
6184 
6185 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6186 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element6187 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element6188 	typename tuple_type<A5>::const_reference get() const { return _x; }
6189 private:
6190 	typename tuple_type<A5>::const_reference _x;
6191 };
6192 
6193 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6194 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element6195 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element6196 	typename tuple_type<A6>::const_reference get() const { return _x; }
6197 private:
6198 	typename tuple_type<A6>::const_reference _x;
6199 };
6200 
6201 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6202 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element6203 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element6204 	typename tuple_type<A7>::const_reference get() const { return _x; }
6205 private:
6206 	typename tuple_type<A7>::const_reference _x;
6207 };
6208 
6209 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6210 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element6211 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element6212 	typename tuple_type<A8>::const_reference get() const { return _x; }
6213 private:
6214 	typename tuple_type<A8>::const_reference _x;
6215 };
6216 
6217 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6218 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element6219 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element6220 	typename tuple_type<A9>::const_reference get() const { return _x; }
6221 private:
6222 	typename tuple_type<A9>::const_reference _x;
6223 };
6224 
6225 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6226 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element6227 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element6228 	typename tuple_type<A10>::const_reference get() const { return _x; }
6229 private:
6230 	typename tuple_type<A10>::const_reference _x;
6231 };
6232 
6233 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6234 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element6235 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element6236 	typename tuple_type<A11>::const_reference get() const { return _x; }
6237 private:
6238 	typename tuple_type<A11>::const_reference _x;
6239 };
6240 
6241 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6242 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element6243 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element6244 	typename tuple_type<A12>::const_reference get() const { return _x; }
6245 private:
6246 	typename tuple_type<A12>::const_reference _x;
6247 };
6248 
6249 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6250 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element6251 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element6252 	typename tuple_type<A13>::const_reference get() const { return _x; }
6253 private:
6254 	typename tuple_type<A13>::const_reference _x;
6255 };
6256 
6257 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6258 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element6259 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element6260 	typename tuple_type<A14>::const_reference get() const { return _x; }
6261 private:
6262 	typename tuple_type<A14>::const_reference _x;
6263 };
6264 
6265 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6266 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element6267 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element6268 	typename tuple_type<A15>::const_reference get() const { return _x; }
6269 private:
6270 	typename tuple_type<A15>::const_reference _x;
6271 };
6272 
6273 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6274 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element6275 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element6276 	typename tuple_type<A16>::const_reference get() const { return _x; }
6277 private:
6278 	typename tuple_type<A16>::const_reference _x;
6279 };
6280 
6281 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
6282 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element6283 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element6284 	typename tuple_type<A17>::const_reference get() const { return _x; }
6285 private:
6286 	typename tuple_type<A17>::const_reference _x;
6287 };
6288 
6289 
6290 
6291 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6292 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element6293 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element6294 	typename tuple_type<A0>::const_reference get() const { return _x; }
6295 private:
6296 	typename tuple_type<A0>::const_reference _x;
6297 };
6298 
6299 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6300 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element6301 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element6302 	typename tuple_type<A1>::const_reference get() const { return _x; }
6303 private:
6304 	typename tuple_type<A1>::const_reference _x;
6305 };
6306 
6307 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6308 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element6309 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element6310 	typename tuple_type<A2>::const_reference get() const { return _x; }
6311 private:
6312 	typename tuple_type<A2>::const_reference _x;
6313 };
6314 
6315 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6316 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element6317 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element6318 	typename tuple_type<A3>::const_reference get() const { return _x; }
6319 private:
6320 	typename tuple_type<A3>::const_reference _x;
6321 };
6322 
6323 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6324 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element6325 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element6326 	typename tuple_type<A4>::const_reference get() const { return _x; }
6327 private:
6328 	typename tuple_type<A4>::const_reference _x;
6329 };
6330 
6331 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6332 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element6333 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element6334 	typename tuple_type<A5>::const_reference get() const { return _x; }
6335 private:
6336 	typename tuple_type<A5>::const_reference _x;
6337 };
6338 
6339 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6340 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element6341 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element6342 	typename tuple_type<A6>::const_reference get() const { return _x; }
6343 private:
6344 	typename tuple_type<A6>::const_reference _x;
6345 };
6346 
6347 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6348 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element6349 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element6350 	typename tuple_type<A7>::const_reference get() const { return _x; }
6351 private:
6352 	typename tuple_type<A7>::const_reference _x;
6353 };
6354 
6355 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6356 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element6357 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element6358 	typename tuple_type<A8>::const_reference get() const { return _x; }
6359 private:
6360 	typename tuple_type<A8>::const_reference _x;
6361 };
6362 
6363 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6364 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element6365 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element6366 	typename tuple_type<A9>::const_reference get() const { return _x; }
6367 private:
6368 	typename tuple_type<A9>::const_reference _x;
6369 };
6370 
6371 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6372 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element6373 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element6374 	typename tuple_type<A10>::const_reference get() const { return _x; }
6375 private:
6376 	typename tuple_type<A10>::const_reference _x;
6377 };
6378 
6379 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6380 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element6381 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element6382 	typename tuple_type<A11>::const_reference get() const { return _x; }
6383 private:
6384 	typename tuple_type<A11>::const_reference _x;
6385 };
6386 
6387 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6388 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element6389 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element6390 	typename tuple_type<A12>::const_reference get() const { return _x; }
6391 private:
6392 	typename tuple_type<A12>::const_reference _x;
6393 };
6394 
6395 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6396 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element6397 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element6398 	typename tuple_type<A13>::const_reference get() const { return _x; }
6399 private:
6400 	typename tuple_type<A13>::const_reference _x;
6401 };
6402 
6403 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6404 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element6405 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element6406 	typename tuple_type<A14>::const_reference get() const { return _x; }
6407 private:
6408 	typename tuple_type<A14>::const_reference _x;
6409 };
6410 
6411 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6412 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element6413 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element6414 	typename tuple_type<A15>::const_reference get() const { return _x; }
6415 private:
6416 	typename tuple_type<A15>::const_reference _x;
6417 };
6418 
6419 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6420 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element6421 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element6422 	typename tuple_type<A16>::const_reference get() const { return _x; }
6423 private:
6424 	typename tuple_type<A16>::const_reference _x;
6425 };
6426 
6427 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6428 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element6429 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element6430 	typename tuple_type<A17>::const_reference get() const { return _x; }
6431 private:
6432 	typename tuple_type<A17>::const_reference _x;
6433 };
6434 
6435 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
6436 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element6437 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element6438 	typename tuple_type<A18>::const_reference get() const { return _x; }
6439 private:
6440 	typename tuple_type<A18>::const_reference _x;
6441 };
6442 
6443 
6444 
6445 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6446 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element6447 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element6448 	typename tuple_type<A0>::const_reference get() const { return _x; }
6449 private:
6450 	typename tuple_type<A0>::const_reference _x;
6451 };
6452 
6453 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6454 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element6455 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element6456 	typename tuple_type<A1>::const_reference get() const { return _x; }
6457 private:
6458 	typename tuple_type<A1>::const_reference _x;
6459 };
6460 
6461 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6462 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element6463 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element6464 	typename tuple_type<A2>::const_reference get() const { return _x; }
6465 private:
6466 	typename tuple_type<A2>::const_reference _x;
6467 };
6468 
6469 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6470 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element6471 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element6472 	typename tuple_type<A3>::const_reference get() const { return _x; }
6473 private:
6474 	typename tuple_type<A3>::const_reference _x;
6475 };
6476 
6477 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6478 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element6479 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element6480 	typename tuple_type<A4>::const_reference get() const { return _x; }
6481 private:
6482 	typename tuple_type<A4>::const_reference _x;
6483 };
6484 
6485 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6486 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element6487 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element6488 	typename tuple_type<A5>::const_reference get() const { return _x; }
6489 private:
6490 	typename tuple_type<A5>::const_reference _x;
6491 };
6492 
6493 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6494 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element6495 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element6496 	typename tuple_type<A6>::const_reference get() const { return _x; }
6497 private:
6498 	typename tuple_type<A6>::const_reference _x;
6499 };
6500 
6501 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6502 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element6503 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element6504 	typename tuple_type<A7>::const_reference get() const { return _x; }
6505 private:
6506 	typename tuple_type<A7>::const_reference _x;
6507 };
6508 
6509 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6510 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element6511 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element6512 	typename tuple_type<A8>::const_reference get() const { return _x; }
6513 private:
6514 	typename tuple_type<A8>::const_reference _x;
6515 };
6516 
6517 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6518 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element6519 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element6520 	typename tuple_type<A9>::const_reference get() const { return _x; }
6521 private:
6522 	typename tuple_type<A9>::const_reference _x;
6523 };
6524 
6525 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6526 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element6527 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element6528 	typename tuple_type<A10>::const_reference get() const { return _x; }
6529 private:
6530 	typename tuple_type<A10>::const_reference _x;
6531 };
6532 
6533 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6534 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element6535 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element6536 	typename tuple_type<A11>::const_reference get() const { return _x; }
6537 private:
6538 	typename tuple_type<A11>::const_reference _x;
6539 };
6540 
6541 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6542 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element6543 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element6544 	typename tuple_type<A12>::const_reference get() const { return _x; }
6545 private:
6546 	typename tuple_type<A12>::const_reference _x;
6547 };
6548 
6549 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6550 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element6551 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element6552 	typename tuple_type<A13>::const_reference get() const { return _x; }
6553 private:
6554 	typename tuple_type<A13>::const_reference _x;
6555 };
6556 
6557 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6558 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element6559 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element6560 	typename tuple_type<A14>::const_reference get() const { return _x; }
6561 private:
6562 	typename tuple_type<A14>::const_reference _x;
6563 };
6564 
6565 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6566 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element6567 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element6568 	typename tuple_type<A15>::const_reference get() const { return _x; }
6569 private:
6570 	typename tuple_type<A15>::const_reference _x;
6571 };
6572 
6573 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6574 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element6575 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element6576 	typename tuple_type<A16>::const_reference get() const { return _x; }
6577 private:
6578 	typename tuple_type<A16>::const_reference _x;
6579 };
6580 
6581 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6582 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element6583 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element6584 	typename tuple_type<A17>::const_reference get() const { return _x; }
6585 private:
6586 	typename tuple_type<A17>::const_reference _x;
6587 };
6588 
6589 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6590 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element6591 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element6592 	typename tuple_type<A18>::const_reference get() const { return _x; }
6593 private:
6594 	typename tuple_type<A18>::const_reference _x;
6595 };
6596 
6597 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
6598 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element6599 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element6600 	typename tuple_type<A19>::const_reference get() const { return _x; }
6601 private:
6602 	typename tuple_type<A19>::const_reference _x;
6603 };
6604 
6605 
6606 
6607 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6608 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element6609 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element6610 	typename tuple_type<A0>::const_reference get() const { return _x; }
6611 private:
6612 	typename tuple_type<A0>::const_reference _x;
6613 };
6614 
6615 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6616 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element6617 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element6618 	typename tuple_type<A1>::const_reference get() const { return _x; }
6619 private:
6620 	typename tuple_type<A1>::const_reference _x;
6621 };
6622 
6623 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6624 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element6625 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element6626 	typename tuple_type<A2>::const_reference get() const { return _x; }
6627 private:
6628 	typename tuple_type<A2>::const_reference _x;
6629 };
6630 
6631 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6632 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element6633 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element6634 	typename tuple_type<A3>::const_reference get() const { return _x; }
6635 private:
6636 	typename tuple_type<A3>::const_reference _x;
6637 };
6638 
6639 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6640 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element6641 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element6642 	typename tuple_type<A4>::const_reference get() const { return _x; }
6643 private:
6644 	typename tuple_type<A4>::const_reference _x;
6645 };
6646 
6647 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6648 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element6649 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element6650 	typename tuple_type<A5>::const_reference get() const { return _x; }
6651 private:
6652 	typename tuple_type<A5>::const_reference _x;
6653 };
6654 
6655 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6656 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element6657 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element6658 	typename tuple_type<A6>::const_reference get() const { return _x; }
6659 private:
6660 	typename tuple_type<A6>::const_reference _x;
6661 };
6662 
6663 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6664 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element6665 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element6666 	typename tuple_type<A7>::const_reference get() const { return _x; }
6667 private:
6668 	typename tuple_type<A7>::const_reference _x;
6669 };
6670 
6671 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6672 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element6673 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element6674 	typename tuple_type<A8>::const_reference get() const { return _x; }
6675 private:
6676 	typename tuple_type<A8>::const_reference _x;
6677 };
6678 
6679 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6680 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element6681 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element6682 	typename tuple_type<A9>::const_reference get() const { return _x; }
6683 private:
6684 	typename tuple_type<A9>::const_reference _x;
6685 };
6686 
6687 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6688 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element6689 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element6690 	typename tuple_type<A10>::const_reference get() const { return _x; }
6691 private:
6692 	typename tuple_type<A10>::const_reference _x;
6693 };
6694 
6695 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6696 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element6697 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element6698 	typename tuple_type<A11>::const_reference get() const { return _x; }
6699 private:
6700 	typename tuple_type<A11>::const_reference _x;
6701 };
6702 
6703 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6704 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element6705 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element6706 	typename tuple_type<A12>::const_reference get() const { return _x; }
6707 private:
6708 	typename tuple_type<A12>::const_reference _x;
6709 };
6710 
6711 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6712 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element6713 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element6714 	typename tuple_type<A13>::const_reference get() const { return _x; }
6715 private:
6716 	typename tuple_type<A13>::const_reference _x;
6717 };
6718 
6719 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6720 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element6721 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element6722 	typename tuple_type<A14>::const_reference get() const { return _x; }
6723 private:
6724 	typename tuple_type<A14>::const_reference _x;
6725 };
6726 
6727 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6728 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element6729 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element6730 	typename tuple_type<A15>::const_reference get() const { return _x; }
6731 private:
6732 	typename tuple_type<A15>::const_reference _x;
6733 };
6734 
6735 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6736 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element6737 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element6738 	typename tuple_type<A16>::const_reference get() const { return _x; }
6739 private:
6740 	typename tuple_type<A16>::const_reference _x;
6741 };
6742 
6743 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6744 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element6745 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element6746 	typename tuple_type<A17>::const_reference get() const { return _x; }
6747 private:
6748 	typename tuple_type<A17>::const_reference _x;
6749 };
6750 
6751 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6752 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element6753 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element6754 	typename tuple_type<A18>::const_reference get() const { return _x; }
6755 private:
6756 	typename tuple_type<A18>::const_reference _x;
6757 };
6758 
6759 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6760 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element6761 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element6762 	typename tuple_type<A19>::const_reference get() const { return _x; }
6763 private:
6764 	typename tuple_type<A19>::const_reference _x;
6765 };
6766 
6767 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
6768 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element6769 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element6770 	typename tuple_type<A20>::const_reference get() const { return _x; }
6771 private:
6772 	typename tuple_type<A20>::const_reference _x;
6773 };
6774 
6775 
6776 
6777 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6778 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element6779 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element6780 	typename tuple_type<A0>::const_reference get() const { return _x; }
6781 private:
6782 	typename tuple_type<A0>::const_reference _x;
6783 };
6784 
6785 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6786 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element6787 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element6788 	typename tuple_type<A1>::const_reference get() const { return _x; }
6789 private:
6790 	typename tuple_type<A1>::const_reference _x;
6791 };
6792 
6793 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6794 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element6795 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element6796 	typename tuple_type<A2>::const_reference get() const { return _x; }
6797 private:
6798 	typename tuple_type<A2>::const_reference _x;
6799 };
6800 
6801 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6802 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element6803 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element6804 	typename tuple_type<A3>::const_reference get() const { return _x; }
6805 private:
6806 	typename tuple_type<A3>::const_reference _x;
6807 };
6808 
6809 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6810 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element6811 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element6812 	typename tuple_type<A4>::const_reference get() const { return _x; }
6813 private:
6814 	typename tuple_type<A4>::const_reference _x;
6815 };
6816 
6817 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6818 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element6819 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element6820 	typename tuple_type<A5>::const_reference get() const { return _x; }
6821 private:
6822 	typename tuple_type<A5>::const_reference _x;
6823 };
6824 
6825 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6826 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element6827 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element6828 	typename tuple_type<A6>::const_reference get() const { return _x; }
6829 private:
6830 	typename tuple_type<A6>::const_reference _x;
6831 };
6832 
6833 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6834 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element6835 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element6836 	typename tuple_type<A7>::const_reference get() const { return _x; }
6837 private:
6838 	typename tuple_type<A7>::const_reference _x;
6839 };
6840 
6841 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6842 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element6843 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element6844 	typename tuple_type<A8>::const_reference get() const { return _x; }
6845 private:
6846 	typename tuple_type<A8>::const_reference _x;
6847 };
6848 
6849 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6850 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element6851 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element6852 	typename tuple_type<A9>::const_reference get() const { return _x; }
6853 private:
6854 	typename tuple_type<A9>::const_reference _x;
6855 };
6856 
6857 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6858 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element6859 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element6860 	typename tuple_type<A10>::const_reference get() const { return _x; }
6861 private:
6862 	typename tuple_type<A10>::const_reference _x;
6863 };
6864 
6865 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6866 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element6867 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element6868 	typename tuple_type<A11>::const_reference get() const { return _x; }
6869 private:
6870 	typename tuple_type<A11>::const_reference _x;
6871 };
6872 
6873 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6874 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element6875 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element6876 	typename tuple_type<A12>::const_reference get() const { return _x; }
6877 private:
6878 	typename tuple_type<A12>::const_reference _x;
6879 };
6880 
6881 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6882 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element6883 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element6884 	typename tuple_type<A13>::const_reference get() const { return _x; }
6885 private:
6886 	typename tuple_type<A13>::const_reference _x;
6887 };
6888 
6889 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6890 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element6891 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element6892 	typename tuple_type<A14>::const_reference get() const { return _x; }
6893 private:
6894 	typename tuple_type<A14>::const_reference _x;
6895 };
6896 
6897 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6898 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element6899 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element6900 	typename tuple_type<A15>::const_reference get() const { return _x; }
6901 private:
6902 	typename tuple_type<A15>::const_reference _x;
6903 };
6904 
6905 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6906 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element6907 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element6908 	typename tuple_type<A16>::const_reference get() const { return _x; }
6909 private:
6910 	typename tuple_type<A16>::const_reference _x;
6911 };
6912 
6913 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6914 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element6915 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element6916 	typename tuple_type<A17>::const_reference get() const { return _x; }
6917 private:
6918 	typename tuple_type<A17>::const_reference _x;
6919 };
6920 
6921 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6922 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element6923 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element6924 	typename tuple_type<A18>::const_reference get() const { return _x; }
6925 private:
6926 	typename tuple_type<A18>::const_reference _x;
6927 };
6928 
6929 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6930 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element6931 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element6932 	typename tuple_type<A19>::const_reference get() const { return _x; }
6933 private:
6934 	typename tuple_type<A19>::const_reference _x;
6935 };
6936 
6937 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6938 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element6939 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element6940 	typename tuple_type<A20>::const_reference get() const { return _x; }
6941 private:
6942 	typename tuple_type<A20>::const_reference _x;
6943 };
6944 
6945 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
6946 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element6947 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element6948 	typename tuple_type<A21>::const_reference get() const { return _x; }
6949 private:
6950 	typename tuple_type<A21>::const_reference _x;
6951 };
6952 
6953 
6954 
6955 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
6956 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element6957 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element6958 	typename tuple_type<A0>::const_reference get() const { return _x; }
6959 private:
6960 	typename tuple_type<A0>::const_reference _x;
6961 };
6962 
6963 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
6964 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element6965 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element6966 	typename tuple_type<A1>::const_reference get() const { return _x; }
6967 private:
6968 	typename tuple_type<A1>::const_reference _x;
6969 };
6970 
6971 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
6972 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element6973 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element6974 	typename tuple_type<A2>::const_reference get() const { return _x; }
6975 private:
6976 	typename tuple_type<A2>::const_reference _x;
6977 };
6978 
6979 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
6980 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element6981 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element6982 	typename tuple_type<A3>::const_reference get() const { return _x; }
6983 private:
6984 	typename tuple_type<A3>::const_reference _x;
6985 };
6986 
6987 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
6988 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element6989 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element6990 	typename tuple_type<A4>::const_reference get() const { return _x; }
6991 private:
6992 	typename tuple_type<A4>::const_reference _x;
6993 };
6994 
6995 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
6996 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element6997 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element6998 	typename tuple_type<A5>::const_reference get() const { return _x; }
6999 private:
7000 	typename tuple_type<A5>::const_reference _x;
7001 };
7002 
7003 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7004 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element7005 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element7006 	typename tuple_type<A6>::const_reference get() const { return _x; }
7007 private:
7008 	typename tuple_type<A6>::const_reference _x;
7009 };
7010 
7011 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7012 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element7013 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element7014 	typename tuple_type<A7>::const_reference get() const { return _x; }
7015 private:
7016 	typename tuple_type<A7>::const_reference _x;
7017 };
7018 
7019 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7020 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element7021 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element7022 	typename tuple_type<A8>::const_reference get() const { return _x; }
7023 private:
7024 	typename tuple_type<A8>::const_reference _x;
7025 };
7026 
7027 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7028 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element7029 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element7030 	typename tuple_type<A9>::const_reference get() const { return _x; }
7031 private:
7032 	typename tuple_type<A9>::const_reference _x;
7033 };
7034 
7035 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7036 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element7037 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element7038 	typename tuple_type<A10>::const_reference get() const { return _x; }
7039 private:
7040 	typename tuple_type<A10>::const_reference _x;
7041 };
7042 
7043 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7044 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element7045 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element7046 	typename tuple_type<A11>::const_reference get() const { return _x; }
7047 private:
7048 	typename tuple_type<A11>::const_reference _x;
7049 };
7050 
7051 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7052 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element7053 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element7054 	typename tuple_type<A12>::const_reference get() const { return _x; }
7055 private:
7056 	typename tuple_type<A12>::const_reference _x;
7057 };
7058 
7059 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7060 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element7061 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element7062 	typename tuple_type<A13>::const_reference get() const { return _x; }
7063 private:
7064 	typename tuple_type<A13>::const_reference _x;
7065 };
7066 
7067 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7068 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element7069 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element7070 	typename tuple_type<A14>::const_reference get() const { return _x; }
7071 private:
7072 	typename tuple_type<A14>::const_reference _x;
7073 };
7074 
7075 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7076 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element7077 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element7078 	typename tuple_type<A15>::const_reference get() const { return _x; }
7079 private:
7080 	typename tuple_type<A15>::const_reference _x;
7081 };
7082 
7083 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7084 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element7085 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element7086 	typename tuple_type<A16>::const_reference get() const { return _x; }
7087 private:
7088 	typename tuple_type<A16>::const_reference _x;
7089 };
7090 
7091 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7092 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element7093 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element7094 	typename tuple_type<A17>::const_reference get() const { return _x; }
7095 private:
7096 	typename tuple_type<A17>::const_reference _x;
7097 };
7098 
7099 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7100 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element7101 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element7102 	typename tuple_type<A18>::const_reference get() const { return _x; }
7103 private:
7104 	typename tuple_type<A18>::const_reference _x;
7105 };
7106 
7107 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7108 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element7109 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element7110 	typename tuple_type<A19>::const_reference get() const { return _x; }
7111 private:
7112 	typename tuple_type<A19>::const_reference _x;
7113 };
7114 
7115 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7116 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element7117 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element7118 	typename tuple_type<A20>::const_reference get() const { return _x; }
7119 private:
7120 	typename tuple_type<A20>::const_reference _x;
7121 };
7122 
7123 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7124 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element7125 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element7126 	typename tuple_type<A21>::const_reference get() const { return _x; }
7127 private:
7128 	typename tuple_type<A21>::const_reference _x;
7129 };
7130 
7131 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
7132 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element7133 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element7134 	typename tuple_type<A22>::const_reference get() const { return _x; }
7135 private:
7136 	typename tuple_type<A22>::const_reference _x;
7137 };
7138 
7139 
7140 
7141 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7142 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element7143 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element7144 	typename tuple_type<A0>::const_reference get() const { return _x; }
7145 private:
7146 	typename tuple_type<A0>::const_reference _x;
7147 };
7148 
7149 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7150 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element7151 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element7152 	typename tuple_type<A1>::const_reference get() const { return _x; }
7153 private:
7154 	typename tuple_type<A1>::const_reference _x;
7155 };
7156 
7157 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7158 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element7159 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element7160 	typename tuple_type<A2>::const_reference get() const { return _x; }
7161 private:
7162 	typename tuple_type<A2>::const_reference _x;
7163 };
7164 
7165 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7166 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element7167 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element7168 	typename tuple_type<A3>::const_reference get() const { return _x; }
7169 private:
7170 	typename tuple_type<A3>::const_reference _x;
7171 };
7172 
7173 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7174 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element7175 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element7176 	typename tuple_type<A4>::const_reference get() const { return _x; }
7177 private:
7178 	typename tuple_type<A4>::const_reference _x;
7179 };
7180 
7181 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7182 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element7183 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element7184 	typename tuple_type<A5>::const_reference get() const { return _x; }
7185 private:
7186 	typename tuple_type<A5>::const_reference _x;
7187 };
7188 
7189 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7190 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element7191 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element7192 	typename tuple_type<A6>::const_reference get() const { return _x; }
7193 private:
7194 	typename tuple_type<A6>::const_reference _x;
7195 };
7196 
7197 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7198 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element7199 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element7200 	typename tuple_type<A7>::const_reference get() const { return _x; }
7201 private:
7202 	typename tuple_type<A7>::const_reference _x;
7203 };
7204 
7205 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7206 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element7207 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element7208 	typename tuple_type<A8>::const_reference get() const { return _x; }
7209 private:
7210 	typename tuple_type<A8>::const_reference _x;
7211 };
7212 
7213 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7214 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element7215 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element7216 	typename tuple_type<A9>::const_reference get() const { return _x; }
7217 private:
7218 	typename tuple_type<A9>::const_reference _x;
7219 };
7220 
7221 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7222 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element7223 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element7224 	typename tuple_type<A10>::const_reference get() const { return _x; }
7225 private:
7226 	typename tuple_type<A10>::const_reference _x;
7227 };
7228 
7229 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7230 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element7231 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element7232 	typename tuple_type<A11>::const_reference get() const { return _x; }
7233 private:
7234 	typename tuple_type<A11>::const_reference _x;
7235 };
7236 
7237 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7238 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element7239 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element7240 	typename tuple_type<A12>::const_reference get() const { return _x; }
7241 private:
7242 	typename tuple_type<A12>::const_reference _x;
7243 };
7244 
7245 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7246 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element7247 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element7248 	typename tuple_type<A13>::const_reference get() const { return _x; }
7249 private:
7250 	typename tuple_type<A13>::const_reference _x;
7251 };
7252 
7253 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7254 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element7255 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element7256 	typename tuple_type<A14>::const_reference get() const { return _x; }
7257 private:
7258 	typename tuple_type<A14>::const_reference _x;
7259 };
7260 
7261 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7262 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element7263 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element7264 	typename tuple_type<A15>::const_reference get() const { return _x; }
7265 private:
7266 	typename tuple_type<A15>::const_reference _x;
7267 };
7268 
7269 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7270 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element7271 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element7272 	typename tuple_type<A16>::const_reference get() const { return _x; }
7273 private:
7274 	typename tuple_type<A16>::const_reference _x;
7275 };
7276 
7277 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7278 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element7279 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element7280 	typename tuple_type<A17>::const_reference get() const { return _x; }
7281 private:
7282 	typename tuple_type<A17>::const_reference _x;
7283 };
7284 
7285 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7286 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element7287 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element7288 	typename tuple_type<A18>::const_reference get() const { return _x; }
7289 private:
7290 	typename tuple_type<A18>::const_reference _x;
7291 };
7292 
7293 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7294 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element7295 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element7296 	typename tuple_type<A19>::const_reference get() const { return _x; }
7297 private:
7298 	typename tuple_type<A19>::const_reference _x;
7299 };
7300 
7301 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7302 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element7303 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element7304 	typename tuple_type<A20>::const_reference get() const { return _x; }
7305 private:
7306 	typename tuple_type<A20>::const_reference _x;
7307 };
7308 
7309 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7310 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element7311 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element7312 	typename tuple_type<A21>::const_reference get() const { return _x; }
7313 private:
7314 	typename tuple_type<A21>::const_reference _x;
7315 };
7316 
7317 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7318 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element7319 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element7320 	typename tuple_type<A22>::const_reference get() const { return _x; }
7321 private:
7322 	typename tuple_type<A22>::const_reference _x;
7323 };
7324 
7325 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
7326 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 23> : tuple_type<A23> {
const_tuple_elementmsgpack::type::const_tuple_element7327 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : _x(x.a23) {}
getmsgpack::type::const_tuple_element7328 	typename tuple_type<A23>::const_reference get() const { return _x; }
7329 private:
7330 	typename tuple_type<A23>::const_reference _x;
7331 };
7332 
7333 
7334 
7335 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7336 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element7337 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element7338 	typename tuple_type<A0>::const_reference get() const { return _x; }
7339 private:
7340 	typename tuple_type<A0>::const_reference _x;
7341 };
7342 
7343 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7344 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element7345 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element7346 	typename tuple_type<A1>::const_reference get() const { return _x; }
7347 private:
7348 	typename tuple_type<A1>::const_reference _x;
7349 };
7350 
7351 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7352 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element7353 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element7354 	typename tuple_type<A2>::const_reference get() const { return _x; }
7355 private:
7356 	typename tuple_type<A2>::const_reference _x;
7357 };
7358 
7359 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7360 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element7361 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element7362 	typename tuple_type<A3>::const_reference get() const { return _x; }
7363 private:
7364 	typename tuple_type<A3>::const_reference _x;
7365 };
7366 
7367 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7368 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element7369 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element7370 	typename tuple_type<A4>::const_reference get() const { return _x; }
7371 private:
7372 	typename tuple_type<A4>::const_reference _x;
7373 };
7374 
7375 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7376 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element7377 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element7378 	typename tuple_type<A5>::const_reference get() const { return _x; }
7379 private:
7380 	typename tuple_type<A5>::const_reference _x;
7381 };
7382 
7383 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7384 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element7385 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element7386 	typename tuple_type<A6>::const_reference get() const { return _x; }
7387 private:
7388 	typename tuple_type<A6>::const_reference _x;
7389 };
7390 
7391 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7392 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element7393 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element7394 	typename tuple_type<A7>::const_reference get() const { return _x; }
7395 private:
7396 	typename tuple_type<A7>::const_reference _x;
7397 };
7398 
7399 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7400 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element7401 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element7402 	typename tuple_type<A8>::const_reference get() const { return _x; }
7403 private:
7404 	typename tuple_type<A8>::const_reference _x;
7405 };
7406 
7407 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7408 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element7409 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element7410 	typename tuple_type<A9>::const_reference get() const { return _x; }
7411 private:
7412 	typename tuple_type<A9>::const_reference _x;
7413 };
7414 
7415 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7416 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element7417 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element7418 	typename tuple_type<A10>::const_reference get() const { return _x; }
7419 private:
7420 	typename tuple_type<A10>::const_reference _x;
7421 };
7422 
7423 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7424 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element7425 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element7426 	typename tuple_type<A11>::const_reference get() const { return _x; }
7427 private:
7428 	typename tuple_type<A11>::const_reference _x;
7429 };
7430 
7431 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7432 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element7433 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element7434 	typename tuple_type<A12>::const_reference get() const { return _x; }
7435 private:
7436 	typename tuple_type<A12>::const_reference _x;
7437 };
7438 
7439 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7440 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element7441 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element7442 	typename tuple_type<A13>::const_reference get() const { return _x; }
7443 private:
7444 	typename tuple_type<A13>::const_reference _x;
7445 };
7446 
7447 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7448 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element7449 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element7450 	typename tuple_type<A14>::const_reference get() const { return _x; }
7451 private:
7452 	typename tuple_type<A14>::const_reference _x;
7453 };
7454 
7455 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7456 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element7457 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element7458 	typename tuple_type<A15>::const_reference get() const { return _x; }
7459 private:
7460 	typename tuple_type<A15>::const_reference _x;
7461 };
7462 
7463 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7464 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element7465 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element7466 	typename tuple_type<A16>::const_reference get() const { return _x; }
7467 private:
7468 	typename tuple_type<A16>::const_reference _x;
7469 };
7470 
7471 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7472 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element7473 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element7474 	typename tuple_type<A17>::const_reference get() const { return _x; }
7475 private:
7476 	typename tuple_type<A17>::const_reference _x;
7477 };
7478 
7479 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7480 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element7481 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element7482 	typename tuple_type<A18>::const_reference get() const { return _x; }
7483 private:
7484 	typename tuple_type<A18>::const_reference _x;
7485 };
7486 
7487 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7488 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element7489 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element7490 	typename tuple_type<A19>::const_reference get() const { return _x; }
7491 private:
7492 	typename tuple_type<A19>::const_reference _x;
7493 };
7494 
7495 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7496 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element7497 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element7498 	typename tuple_type<A20>::const_reference get() const { return _x; }
7499 private:
7500 	typename tuple_type<A20>::const_reference _x;
7501 };
7502 
7503 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7504 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element7505 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element7506 	typename tuple_type<A21>::const_reference get() const { return _x; }
7507 private:
7508 	typename tuple_type<A21>::const_reference _x;
7509 };
7510 
7511 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7512 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element7513 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element7514 	typename tuple_type<A22>::const_reference get() const { return _x; }
7515 private:
7516 	typename tuple_type<A22>::const_reference _x;
7517 };
7518 
7519 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7520 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 23> : tuple_type<A23> {
const_tuple_elementmsgpack::type::const_tuple_element7521 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a23) {}
getmsgpack::type::const_tuple_element7522 	typename tuple_type<A23>::const_reference get() const { return _x; }
7523 private:
7524 	typename tuple_type<A23>::const_reference _x;
7525 };
7526 
7527 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
7528 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 24> : tuple_type<A24> {
const_tuple_elementmsgpack::type::const_tuple_element7529 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : _x(x.a24) {}
getmsgpack::type::const_tuple_element7530 	typename tuple_type<A24>::const_reference get() const { return _x; }
7531 private:
7532 	typename tuple_type<A24>::const_reference _x;
7533 };
7534 
7535 
7536 
7537 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7538 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element7539 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element7540 	typename tuple_type<A0>::const_reference get() const { return _x; }
7541 private:
7542 	typename tuple_type<A0>::const_reference _x;
7543 };
7544 
7545 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7546 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element7547 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element7548 	typename tuple_type<A1>::const_reference get() const { return _x; }
7549 private:
7550 	typename tuple_type<A1>::const_reference _x;
7551 };
7552 
7553 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7554 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element7555 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element7556 	typename tuple_type<A2>::const_reference get() const { return _x; }
7557 private:
7558 	typename tuple_type<A2>::const_reference _x;
7559 };
7560 
7561 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7562 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element7563 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element7564 	typename tuple_type<A3>::const_reference get() const { return _x; }
7565 private:
7566 	typename tuple_type<A3>::const_reference _x;
7567 };
7568 
7569 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7570 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element7571 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element7572 	typename tuple_type<A4>::const_reference get() const { return _x; }
7573 private:
7574 	typename tuple_type<A4>::const_reference _x;
7575 };
7576 
7577 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7578 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element7579 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element7580 	typename tuple_type<A5>::const_reference get() const { return _x; }
7581 private:
7582 	typename tuple_type<A5>::const_reference _x;
7583 };
7584 
7585 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7586 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element7587 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element7588 	typename tuple_type<A6>::const_reference get() const { return _x; }
7589 private:
7590 	typename tuple_type<A6>::const_reference _x;
7591 };
7592 
7593 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7594 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element7595 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element7596 	typename tuple_type<A7>::const_reference get() const { return _x; }
7597 private:
7598 	typename tuple_type<A7>::const_reference _x;
7599 };
7600 
7601 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7602 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element7603 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element7604 	typename tuple_type<A8>::const_reference get() const { return _x; }
7605 private:
7606 	typename tuple_type<A8>::const_reference _x;
7607 };
7608 
7609 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7610 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element7611 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element7612 	typename tuple_type<A9>::const_reference get() const { return _x; }
7613 private:
7614 	typename tuple_type<A9>::const_reference _x;
7615 };
7616 
7617 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7618 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element7619 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element7620 	typename tuple_type<A10>::const_reference get() const { return _x; }
7621 private:
7622 	typename tuple_type<A10>::const_reference _x;
7623 };
7624 
7625 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7626 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element7627 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element7628 	typename tuple_type<A11>::const_reference get() const { return _x; }
7629 private:
7630 	typename tuple_type<A11>::const_reference _x;
7631 };
7632 
7633 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7634 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element7635 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element7636 	typename tuple_type<A12>::const_reference get() const { return _x; }
7637 private:
7638 	typename tuple_type<A12>::const_reference _x;
7639 };
7640 
7641 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7642 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element7643 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element7644 	typename tuple_type<A13>::const_reference get() const { return _x; }
7645 private:
7646 	typename tuple_type<A13>::const_reference _x;
7647 };
7648 
7649 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7650 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element7651 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element7652 	typename tuple_type<A14>::const_reference get() const { return _x; }
7653 private:
7654 	typename tuple_type<A14>::const_reference _x;
7655 };
7656 
7657 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7658 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element7659 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element7660 	typename tuple_type<A15>::const_reference get() const { return _x; }
7661 private:
7662 	typename tuple_type<A15>::const_reference _x;
7663 };
7664 
7665 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7666 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element7667 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element7668 	typename tuple_type<A16>::const_reference get() const { return _x; }
7669 private:
7670 	typename tuple_type<A16>::const_reference _x;
7671 };
7672 
7673 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7674 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element7675 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element7676 	typename tuple_type<A17>::const_reference get() const { return _x; }
7677 private:
7678 	typename tuple_type<A17>::const_reference _x;
7679 };
7680 
7681 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7682 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element7683 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element7684 	typename tuple_type<A18>::const_reference get() const { return _x; }
7685 private:
7686 	typename tuple_type<A18>::const_reference _x;
7687 };
7688 
7689 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7690 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element7691 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element7692 	typename tuple_type<A19>::const_reference get() const { return _x; }
7693 private:
7694 	typename tuple_type<A19>::const_reference _x;
7695 };
7696 
7697 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7698 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element7699 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element7700 	typename tuple_type<A20>::const_reference get() const { return _x; }
7701 private:
7702 	typename tuple_type<A20>::const_reference _x;
7703 };
7704 
7705 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7706 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element7707 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element7708 	typename tuple_type<A21>::const_reference get() const { return _x; }
7709 private:
7710 	typename tuple_type<A21>::const_reference _x;
7711 };
7712 
7713 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7714 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element7715 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element7716 	typename tuple_type<A22>::const_reference get() const { return _x; }
7717 private:
7718 	typename tuple_type<A22>::const_reference _x;
7719 };
7720 
7721 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7722 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 23> : tuple_type<A23> {
const_tuple_elementmsgpack::type::const_tuple_element7723 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a23) {}
getmsgpack::type::const_tuple_element7724 	typename tuple_type<A23>::const_reference get() const { return _x; }
7725 private:
7726 	typename tuple_type<A23>::const_reference _x;
7727 };
7728 
7729 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7730 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 24> : tuple_type<A24> {
const_tuple_elementmsgpack::type::const_tuple_element7731 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a24) {}
getmsgpack::type::const_tuple_element7732 	typename tuple_type<A24>::const_reference get() const { return _x; }
7733 private:
7734 	typename tuple_type<A24>::const_reference _x;
7735 };
7736 
7737 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
7738 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 25> : tuple_type<A25> {
const_tuple_elementmsgpack::type::const_tuple_element7739 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : _x(x.a25) {}
getmsgpack::type::const_tuple_element7740 	typename tuple_type<A25>::const_reference get() const { return _x; }
7741 private:
7742 	typename tuple_type<A25>::const_reference _x;
7743 };
7744 
7745 
7746 
7747 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7748 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element7749 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element7750 	typename tuple_type<A0>::const_reference get() const { return _x; }
7751 private:
7752 	typename tuple_type<A0>::const_reference _x;
7753 };
7754 
7755 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7756 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element7757 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element7758 	typename tuple_type<A1>::const_reference get() const { return _x; }
7759 private:
7760 	typename tuple_type<A1>::const_reference _x;
7761 };
7762 
7763 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7764 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element7765 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element7766 	typename tuple_type<A2>::const_reference get() const { return _x; }
7767 private:
7768 	typename tuple_type<A2>::const_reference _x;
7769 };
7770 
7771 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7772 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element7773 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element7774 	typename tuple_type<A3>::const_reference get() const { return _x; }
7775 private:
7776 	typename tuple_type<A3>::const_reference _x;
7777 };
7778 
7779 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7780 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element7781 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element7782 	typename tuple_type<A4>::const_reference get() const { return _x; }
7783 private:
7784 	typename tuple_type<A4>::const_reference _x;
7785 };
7786 
7787 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7788 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element7789 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element7790 	typename tuple_type<A5>::const_reference get() const { return _x; }
7791 private:
7792 	typename tuple_type<A5>::const_reference _x;
7793 };
7794 
7795 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7796 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element7797 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element7798 	typename tuple_type<A6>::const_reference get() const { return _x; }
7799 private:
7800 	typename tuple_type<A6>::const_reference _x;
7801 };
7802 
7803 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7804 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element7805 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element7806 	typename tuple_type<A7>::const_reference get() const { return _x; }
7807 private:
7808 	typename tuple_type<A7>::const_reference _x;
7809 };
7810 
7811 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7812 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element7813 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element7814 	typename tuple_type<A8>::const_reference get() const { return _x; }
7815 private:
7816 	typename tuple_type<A8>::const_reference _x;
7817 };
7818 
7819 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7820 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element7821 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element7822 	typename tuple_type<A9>::const_reference get() const { return _x; }
7823 private:
7824 	typename tuple_type<A9>::const_reference _x;
7825 };
7826 
7827 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7828 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element7829 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element7830 	typename tuple_type<A10>::const_reference get() const { return _x; }
7831 private:
7832 	typename tuple_type<A10>::const_reference _x;
7833 };
7834 
7835 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7836 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element7837 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element7838 	typename tuple_type<A11>::const_reference get() const { return _x; }
7839 private:
7840 	typename tuple_type<A11>::const_reference _x;
7841 };
7842 
7843 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7844 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element7845 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element7846 	typename tuple_type<A12>::const_reference get() const { return _x; }
7847 private:
7848 	typename tuple_type<A12>::const_reference _x;
7849 };
7850 
7851 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7852 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element7853 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element7854 	typename tuple_type<A13>::const_reference get() const { return _x; }
7855 private:
7856 	typename tuple_type<A13>::const_reference _x;
7857 };
7858 
7859 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7860 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element7861 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element7862 	typename tuple_type<A14>::const_reference get() const { return _x; }
7863 private:
7864 	typename tuple_type<A14>::const_reference _x;
7865 };
7866 
7867 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7868 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element7869 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element7870 	typename tuple_type<A15>::const_reference get() const { return _x; }
7871 private:
7872 	typename tuple_type<A15>::const_reference _x;
7873 };
7874 
7875 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7876 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element7877 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element7878 	typename tuple_type<A16>::const_reference get() const { return _x; }
7879 private:
7880 	typename tuple_type<A16>::const_reference _x;
7881 };
7882 
7883 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7884 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element7885 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element7886 	typename tuple_type<A17>::const_reference get() const { return _x; }
7887 private:
7888 	typename tuple_type<A17>::const_reference _x;
7889 };
7890 
7891 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7892 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element7893 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element7894 	typename tuple_type<A18>::const_reference get() const { return _x; }
7895 private:
7896 	typename tuple_type<A18>::const_reference _x;
7897 };
7898 
7899 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7900 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element7901 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element7902 	typename tuple_type<A19>::const_reference get() const { return _x; }
7903 private:
7904 	typename tuple_type<A19>::const_reference _x;
7905 };
7906 
7907 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7908 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element7909 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element7910 	typename tuple_type<A20>::const_reference get() const { return _x; }
7911 private:
7912 	typename tuple_type<A20>::const_reference _x;
7913 };
7914 
7915 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7916 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element7917 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element7918 	typename tuple_type<A21>::const_reference get() const { return _x; }
7919 private:
7920 	typename tuple_type<A21>::const_reference _x;
7921 };
7922 
7923 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7924 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element7925 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element7926 	typename tuple_type<A22>::const_reference get() const { return _x; }
7927 private:
7928 	typename tuple_type<A22>::const_reference _x;
7929 };
7930 
7931 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7932 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 23> : tuple_type<A23> {
const_tuple_elementmsgpack::type::const_tuple_element7933 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a23) {}
getmsgpack::type::const_tuple_element7934 	typename tuple_type<A23>::const_reference get() const { return _x; }
7935 private:
7936 	typename tuple_type<A23>::const_reference _x;
7937 };
7938 
7939 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7940 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 24> : tuple_type<A24> {
const_tuple_elementmsgpack::type::const_tuple_element7941 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a24) {}
getmsgpack::type::const_tuple_element7942 	typename tuple_type<A24>::const_reference get() const { return _x; }
7943 private:
7944 	typename tuple_type<A24>::const_reference _x;
7945 };
7946 
7947 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7948 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 25> : tuple_type<A25> {
const_tuple_elementmsgpack::type::const_tuple_element7949 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a25) {}
getmsgpack::type::const_tuple_element7950 	typename tuple_type<A25>::const_reference get() const { return _x; }
7951 private:
7952 	typename tuple_type<A25>::const_reference _x;
7953 };
7954 
7955 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
7956 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 26> : tuple_type<A26> {
const_tuple_elementmsgpack::type::const_tuple_element7957 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : _x(x.a26) {}
getmsgpack::type::const_tuple_element7958 	typename tuple_type<A26>::const_reference get() const { return _x; }
7959 private:
7960 	typename tuple_type<A26>::const_reference _x;
7961 };
7962 
7963 
7964 
7965 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
7966 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element7967 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element7968 	typename tuple_type<A0>::const_reference get() const { return _x; }
7969 private:
7970 	typename tuple_type<A0>::const_reference _x;
7971 };
7972 
7973 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
7974 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element7975 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element7976 	typename tuple_type<A1>::const_reference get() const { return _x; }
7977 private:
7978 	typename tuple_type<A1>::const_reference _x;
7979 };
7980 
7981 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
7982 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element7983 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element7984 	typename tuple_type<A2>::const_reference get() const { return _x; }
7985 private:
7986 	typename tuple_type<A2>::const_reference _x;
7987 };
7988 
7989 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
7990 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element7991 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element7992 	typename tuple_type<A3>::const_reference get() const { return _x; }
7993 private:
7994 	typename tuple_type<A3>::const_reference _x;
7995 };
7996 
7997 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
7998 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element7999 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element8000 	typename tuple_type<A4>::const_reference get() const { return _x; }
8001 private:
8002 	typename tuple_type<A4>::const_reference _x;
8003 };
8004 
8005 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8006 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element8007 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element8008 	typename tuple_type<A5>::const_reference get() const { return _x; }
8009 private:
8010 	typename tuple_type<A5>::const_reference _x;
8011 };
8012 
8013 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8014 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element8015 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element8016 	typename tuple_type<A6>::const_reference get() const { return _x; }
8017 private:
8018 	typename tuple_type<A6>::const_reference _x;
8019 };
8020 
8021 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8022 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element8023 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element8024 	typename tuple_type<A7>::const_reference get() const { return _x; }
8025 private:
8026 	typename tuple_type<A7>::const_reference _x;
8027 };
8028 
8029 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8030 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element8031 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element8032 	typename tuple_type<A8>::const_reference get() const { return _x; }
8033 private:
8034 	typename tuple_type<A8>::const_reference _x;
8035 };
8036 
8037 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8038 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element8039 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element8040 	typename tuple_type<A9>::const_reference get() const { return _x; }
8041 private:
8042 	typename tuple_type<A9>::const_reference _x;
8043 };
8044 
8045 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8046 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element8047 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element8048 	typename tuple_type<A10>::const_reference get() const { return _x; }
8049 private:
8050 	typename tuple_type<A10>::const_reference _x;
8051 };
8052 
8053 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8054 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element8055 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element8056 	typename tuple_type<A11>::const_reference get() const { return _x; }
8057 private:
8058 	typename tuple_type<A11>::const_reference _x;
8059 };
8060 
8061 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8062 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element8063 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element8064 	typename tuple_type<A12>::const_reference get() const { return _x; }
8065 private:
8066 	typename tuple_type<A12>::const_reference _x;
8067 };
8068 
8069 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8070 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element8071 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element8072 	typename tuple_type<A13>::const_reference get() const { return _x; }
8073 private:
8074 	typename tuple_type<A13>::const_reference _x;
8075 };
8076 
8077 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8078 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element8079 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element8080 	typename tuple_type<A14>::const_reference get() const { return _x; }
8081 private:
8082 	typename tuple_type<A14>::const_reference _x;
8083 };
8084 
8085 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8086 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element8087 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element8088 	typename tuple_type<A15>::const_reference get() const { return _x; }
8089 private:
8090 	typename tuple_type<A15>::const_reference _x;
8091 };
8092 
8093 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8094 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element8095 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element8096 	typename tuple_type<A16>::const_reference get() const { return _x; }
8097 private:
8098 	typename tuple_type<A16>::const_reference _x;
8099 };
8100 
8101 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8102 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element8103 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element8104 	typename tuple_type<A17>::const_reference get() const { return _x; }
8105 private:
8106 	typename tuple_type<A17>::const_reference _x;
8107 };
8108 
8109 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8110 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element8111 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element8112 	typename tuple_type<A18>::const_reference get() const { return _x; }
8113 private:
8114 	typename tuple_type<A18>::const_reference _x;
8115 };
8116 
8117 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8118 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element8119 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element8120 	typename tuple_type<A19>::const_reference get() const { return _x; }
8121 private:
8122 	typename tuple_type<A19>::const_reference _x;
8123 };
8124 
8125 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8126 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element8127 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element8128 	typename tuple_type<A20>::const_reference get() const { return _x; }
8129 private:
8130 	typename tuple_type<A20>::const_reference _x;
8131 };
8132 
8133 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8134 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element8135 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element8136 	typename tuple_type<A21>::const_reference get() const { return _x; }
8137 private:
8138 	typename tuple_type<A21>::const_reference _x;
8139 };
8140 
8141 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8142 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element8143 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element8144 	typename tuple_type<A22>::const_reference get() const { return _x; }
8145 private:
8146 	typename tuple_type<A22>::const_reference _x;
8147 };
8148 
8149 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8150 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 23> : tuple_type<A23> {
const_tuple_elementmsgpack::type::const_tuple_element8151 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a23) {}
getmsgpack::type::const_tuple_element8152 	typename tuple_type<A23>::const_reference get() const { return _x; }
8153 private:
8154 	typename tuple_type<A23>::const_reference _x;
8155 };
8156 
8157 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8158 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 24> : tuple_type<A24> {
const_tuple_elementmsgpack::type::const_tuple_element8159 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a24) {}
getmsgpack::type::const_tuple_element8160 	typename tuple_type<A24>::const_reference get() const { return _x; }
8161 private:
8162 	typename tuple_type<A24>::const_reference _x;
8163 };
8164 
8165 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8166 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 25> : tuple_type<A25> {
const_tuple_elementmsgpack::type::const_tuple_element8167 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a25) {}
getmsgpack::type::const_tuple_element8168 	typename tuple_type<A25>::const_reference get() const { return _x; }
8169 private:
8170 	typename tuple_type<A25>::const_reference _x;
8171 };
8172 
8173 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8174 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 26> : tuple_type<A26> {
const_tuple_elementmsgpack::type::const_tuple_element8175 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a26) {}
getmsgpack::type::const_tuple_element8176 	typename tuple_type<A26>::const_reference get() const { return _x; }
8177 private:
8178 	typename tuple_type<A26>::const_reference _x;
8179 };
8180 
8181 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
8182 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 27> : tuple_type<A27> {
const_tuple_elementmsgpack::type::const_tuple_element8183 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : _x(x.a27) {}
getmsgpack::type::const_tuple_element8184 	typename tuple_type<A27>::const_reference get() const { return _x; }
8185 private:
8186 	typename tuple_type<A27>::const_reference _x;
8187 };
8188 
8189 
8190 
8191 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8192 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element8193 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element8194 	typename tuple_type<A0>::const_reference get() const { return _x; }
8195 private:
8196 	typename tuple_type<A0>::const_reference _x;
8197 };
8198 
8199 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8200 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element8201 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element8202 	typename tuple_type<A1>::const_reference get() const { return _x; }
8203 private:
8204 	typename tuple_type<A1>::const_reference _x;
8205 };
8206 
8207 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8208 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element8209 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element8210 	typename tuple_type<A2>::const_reference get() const { return _x; }
8211 private:
8212 	typename tuple_type<A2>::const_reference _x;
8213 };
8214 
8215 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8216 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element8217 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element8218 	typename tuple_type<A3>::const_reference get() const { return _x; }
8219 private:
8220 	typename tuple_type<A3>::const_reference _x;
8221 };
8222 
8223 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8224 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element8225 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element8226 	typename tuple_type<A4>::const_reference get() const { return _x; }
8227 private:
8228 	typename tuple_type<A4>::const_reference _x;
8229 };
8230 
8231 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8232 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element8233 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element8234 	typename tuple_type<A5>::const_reference get() const { return _x; }
8235 private:
8236 	typename tuple_type<A5>::const_reference _x;
8237 };
8238 
8239 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8240 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element8241 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element8242 	typename tuple_type<A6>::const_reference get() const { return _x; }
8243 private:
8244 	typename tuple_type<A6>::const_reference _x;
8245 };
8246 
8247 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8248 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element8249 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element8250 	typename tuple_type<A7>::const_reference get() const { return _x; }
8251 private:
8252 	typename tuple_type<A7>::const_reference _x;
8253 };
8254 
8255 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8256 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element8257 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element8258 	typename tuple_type<A8>::const_reference get() const { return _x; }
8259 private:
8260 	typename tuple_type<A8>::const_reference _x;
8261 };
8262 
8263 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8264 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element8265 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element8266 	typename tuple_type<A9>::const_reference get() const { return _x; }
8267 private:
8268 	typename tuple_type<A9>::const_reference _x;
8269 };
8270 
8271 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8272 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element8273 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element8274 	typename tuple_type<A10>::const_reference get() const { return _x; }
8275 private:
8276 	typename tuple_type<A10>::const_reference _x;
8277 };
8278 
8279 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8280 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element8281 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element8282 	typename tuple_type<A11>::const_reference get() const { return _x; }
8283 private:
8284 	typename tuple_type<A11>::const_reference _x;
8285 };
8286 
8287 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8288 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element8289 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element8290 	typename tuple_type<A12>::const_reference get() const { return _x; }
8291 private:
8292 	typename tuple_type<A12>::const_reference _x;
8293 };
8294 
8295 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8296 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element8297 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element8298 	typename tuple_type<A13>::const_reference get() const { return _x; }
8299 private:
8300 	typename tuple_type<A13>::const_reference _x;
8301 };
8302 
8303 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8304 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element8305 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element8306 	typename tuple_type<A14>::const_reference get() const { return _x; }
8307 private:
8308 	typename tuple_type<A14>::const_reference _x;
8309 };
8310 
8311 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8312 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element8313 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element8314 	typename tuple_type<A15>::const_reference get() const { return _x; }
8315 private:
8316 	typename tuple_type<A15>::const_reference _x;
8317 };
8318 
8319 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8320 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element8321 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element8322 	typename tuple_type<A16>::const_reference get() const { return _x; }
8323 private:
8324 	typename tuple_type<A16>::const_reference _x;
8325 };
8326 
8327 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8328 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element8329 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element8330 	typename tuple_type<A17>::const_reference get() const { return _x; }
8331 private:
8332 	typename tuple_type<A17>::const_reference _x;
8333 };
8334 
8335 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8336 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element8337 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element8338 	typename tuple_type<A18>::const_reference get() const { return _x; }
8339 private:
8340 	typename tuple_type<A18>::const_reference _x;
8341 };
8342 
8343 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8344 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element8345 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element8346 	typename tuple_type<A19>::const_reference get() const { return _x; }
8347 private:
8348 	typename tuple_type<A19>::const_reference _x;
8349 };
8350 
8351 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8352 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element8353 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element8354 	typename tuple_type<A20>::const_reference get() const { return _x; }
8355 private:
8356 	typename tuple_type<A20>::const_reference _x;
8357 };
8358 
8359 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8360 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element8361 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element8362 	typename tuple_type<A21>::const_reference get() const { return _x; }
8363 private:
8364 	typename tuple_type<A21>::const_reference _x;
8365 };
8366 
8367 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8368 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element8369 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element8370 	typename tuple_type<A22>::const_reference get() const { return _x; }
8371 private:
8372 	typename tuple_type<A22>::const_reference _x;
8373 };
8374 
8375 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8376 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 23> : tuple_type<A23> {
const_tuple_elementmsgpack::type::const_tuple_element8377 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a23) {}
getmsgpack::type::const_tuple_element8378 	typename tuple_type<A23>::const_reference get() const { return _x; }
8379 private:
8380 	typename tuple_type<A23>::const_reference _x;
8381 };
8382 
8383 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8384 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 24> : tuple_type<A24> {
const_tuple_elementmsgpack::type::const_tuple_element8385 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a24) {}
getmsgpack::type::const_tuple_element8386 	typename tuple_type<A24>::const_reference get() const { return _x; }
8387 private:
8388 	typename tuple_type<A24>::const_reference _x;
8389 };
8390 
8391 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8392 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 25> : tuple_type<A25> {
const_tuple_elementmsgpack::type::const_tuple_element8393 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a25) {}
getmsgpack::type::const_tuple_element8394 	typename tuple_type<A25>::const_reference get() const { return _x; }
8395 private:
8396 	typename tuple_type<A25>::const_reference _x;
8397 };
8398 
8399 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8400 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 26> : tuple_type<A26> {
const_tuple_elementmsgpack::type::const_tuple_element8401 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a26) {}
getmsgpack::type::const_tuple_element8402 	typename tuple_type<A26>::const_reference get() const { return _x; }
8403 private:
8404 	typename tuple_type<A26>::const_reference _x;
8405 };
8406 
8407 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8408 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 27> : tuple_type<A27> {
const_tuple_elementmsgpack::type::const_tuple_element8409 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a27) {}
getmsgpack::type::const_tuple_element8410 	typename tuple_type<A27>::const_reference get() const { return _x; }
8411 private:
8412 	typename tuple_type<A27>::const_reference _x;
8413 };
8414 
8415 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
8416 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 28> : tuple_type<A28> {
const_tuple_elementmsgpack::type::const_tuple_element8417 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : _x(x.a28) {}
getmsgpack::type::const_tuple_element8418 	typename tuple_type<A28>::const_reference get() const { return _x; }
8419 private:
8420 	typename tuple_type<A28>::const_reference _x;
8421 };
8422 
8423 
8424 
8425 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8426 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element8427 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element8428 	typename tuple_type<A0>::const_reference get() const { return _x; }
8429 private:
8430 	typename tuple_type<A0>::const_reference _x;
8431 };
8432 
8433 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8434 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element8435 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element8436 	typename tuple_type<A1>::const_reference get() const { return _x; }
8437 private:
8438 	typename tuple_type<A1>::const_reference _x;
8439 };
8440 
8441 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8442 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element8443 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element8444 	typename tuple_type<A2>::const_reference get() const { return _x; }
8445 private:
8446 	typename tuple_type<A2>::const_reference _x;
8447 };
8448 
8449 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8450 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element8451 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element8452 	typename tuple_type<A3>::const_reference get() const { return _x; }
8453 private:
8454 	typename tuple_type<A3>::const_reference _x;
8455 };
8456 
8457 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8458 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element8459 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element8460 	typename tuple_type<A4>::const_reference get() const { return _x; }
8461 private:
8462 	typename tuple_type<A4>::const_reference _x;
8463 };
8464 
8465 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8466 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element8467 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element8468 	typename tuple_type<A5>::const_reference get() const { return _x; }
8469 private:
8470 	typename tuple_type<A5>::const_reference _x;
8471 };
8472 
8473 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8474 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element8475 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element8476 	typename tuple_type<A6>::const_reference get() const { return _x; }
8477 private:
8478 	typename tuple_type<A6>::const_reference _x;
8479 };
8480 
8481 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8482 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element8483 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element8484 	typename tuple_type<A7>::const_reference get() const { return _x; }
8485 private:
8486 	typename tuple_type<A7>::const_reference _x;
8487 };
8488 
8489 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8490 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element8491 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element8492 	typename tuple_type<A8>::const_reference get() const { return _x; }
8493 private:
8494 	typename tuple_type<A8>::const_reference _x;
8495 };
8496 
8497 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8498 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element8499 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element8500 	typename tuple_type<A9>::const_reference get() const { return _x; }
8501 private:
8502 	typename tuple_type<A9>::const_reference _x;
8503 };
8504 
8505 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8506 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element8507 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element8508 	typename tuple_type<A10>::const_reference get() const { return _x; }
8509 private:
8510 	typename tuple_type<A10>::const_reference _x;
8511 };
8512 
8513 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8514 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element8515 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element8516 	typename tuple_type<A11>::const_reference get() const { return _x; }
8517 private:
8518 	typename tuple_type<A11>::const_reference _x;
8519 };
8520 
8521 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8522 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element8523 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element8524 	typename tuple_type<A12>::const_reference get() const { return _x; }
8525 private:
8526 	typename tuple_type<A12>::const_reference _x;
8527 };
8528 
8529 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8530 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element8531 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element8532 	typename tuple_type<A13>::const_reference get() const { return _x; }
8533 private:
8534 	typename tuple_type<A13>::const_reference _x;
8535 };
8536 
8537 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8538 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element8539 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element8540 	typename tuple_type<A14>::const_reference get() const { return _x; }
8541 private:
8542 	typename tuple_type<A14>::const_reference _x;
8543 };
8544 
8545 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8546 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element8547 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element8548 	typename tuple_type<A15>::const_reference get() const { return _x; }
8549 private:
8550 	typename tuple_type<A15>::const_reference _x;
8551 };
8552 
8553 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8554 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element8555 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element8556 	typename tuple_type<A16>::const_reference get() const { return _x; }
8557 private:
8558 	typename tuple_type<A16>::const_reference _x;
8559 };
8560 
8561 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8562 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element8563 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element8564 	typename tuple_type<A17>::const_reference get() const { return _x; }
8565 private:
8566 	typename tuple_type<A17>::const_reference _x;
8567 };
8568 
8569 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8570 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element8571 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element8572 	typename tuple_type<A18>::const_reference get() const { return _x; }
8573 private:
8574 	typename tuple_type<A18>::const_reference _x;
8575 };
8576 
8577 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8578 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element8579 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element8580 	typename tuple_type<A19>::const_reference get() const { return _x; }
8581 private:
8582 	typename tuple_type<A19>::const_reference _x;
8583 };
8584 
8585 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8586 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element8587 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element8588 	typename tuple_type<A20>::const_reference get() const { return _x; }
8589 private:
8590 	typename tuple_type<A20>::const_reference _x;
8591 };
8592 
8593 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8594 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element8595 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element8596 	typename tuple_type<A21>::const_reference get() const { return _x; }
8597 private:
8598 	typename tuple_type<A21>::const_reference _x;
8599 };
8600 
8601 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8602 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element8603 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element8604 	typename tuple_type<A22>::const_reference get() const { return _x; }
8605 private:
8606 	typename tuple_type<A22>::const_reference _x;
8607 };
8608 
8609 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8610 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 23> : tuple_type<A23> {
const_tuple_elementmsgpack::type::const_tuple_element8611 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a23) {}
getmsgpack::type::const_tuple_element8612 	typename tuple_type<A23>::const_reference get() const { return _x; }
8613 private:
8614 	typename tuple_type<A23>::const_reference _x;
8615 };
8616 
8617 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8618 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 24> : tuple_type<A24> {
const_tuple_elementmsgpack::type::const_tuple_element8619 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a24) {}
getmsgpack::type::const_tuple_element8620 	typename tuple_type<A24>::const_reference get() const { return _x; }
8621 private:
8622 	typename tuple_type<A24>::const_reference _x;
8623 };
8624 
8625 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8626 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 25> : tuple_type<A25> {
const_tuple_elementmsgpack::type::const_tuple_element8627 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a25) {}
getmsgpack::type::const_tuple_element8628 	typename tuple_type<A25>::const_reference get() const { return _x; }
8629 private:
8630 	typename tuple_type<A25>::const_reference _x;
8631 };
8632 
8633 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8634 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 26> : tuple_type<A26> {
const_tuple_elementmsgpack::type::const_tuple_element8635 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a26) {}
getmsgpack::type::const_tuple_element8636 	typename tuple_type<A26>::const_reference get() const { return _x; }
8637 private:
8638 	typename tuple_type<A26>::const_reference _x;
8639 };
8640 
8641 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8642 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 27> : tuple_type<A27> {
const_tuple_elementmsgpack::type::const_tuple_element8643 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a27) {}
getmsgpack::type::const_tuple_element8644 	typename tuple_type<A27>::const_reference get() const { return _x; }
8645 private:
8646 	typename tuple_type<A27>::const_reference _x;
8647 };
8648 
8649 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8650 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 28> : tuple_type<A28> {
const_tuple_elementmsgpack::type::const_tuple_element8651 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a28) {}
getmsgpack::type::const_tuple_element8652 	typename tuple_type<A28>::const_reference get() const { return _x; }
8653 private:
8654 	typename tuple_type<A28>::const_reference _x;
8655 };
8656 
8657 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
8658 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 29> : tuple_type<A29> {
const_tuple_elementmsgpack::type::const_tuple_element8659 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : _x(x.a29) {}
getmsgpack::type::const_tuple_element8660 	typename tuple_type<A29>::const_reference get() const { return _x; }
8661 private:
8662 	typename tuple_type<A29>::const_reference _x;
8663 };
8664 
8665 
8666 
8667 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8668 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element8669 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element8670 	typename tuple_type<A0>::const_reference get() const { return _x; }
8671 private:
8672 	typename tuple_type<A0>::const_reference _x;
8673 };
8674 
8675 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8676 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element8677 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element8678 	typename tuple_type<A1>::const_reference get() const { return _x; }
8679 private:
8680 	typename tuple_type<A1>::const_reference _x;
8681 };
8682 
8683 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8684 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element8685 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element8686 	typename tuple_type<A2>::const_reference get() const { return _x; }
8687 private:
8688 	typename tuple_type<A2>::const_reference _x;
8689 };
8690 
8691 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8692 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element8693 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element8694 	typename tuple_type<A3>::const_reference get() const { return _x; }
8695 private:
8696 	typename tuple_type<A3>::const_reference _x;
8697 };
8698 
8699 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8700 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element8701 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element8702 	typename tuple_type<A4>::const_reference get() const { return _x; }
8703 private:
8704 	typename tuple_type<A4>::const_reference _x;
8705 };
8706 
8707 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8708 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element8709 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element8710 	typename tuple_type<A5>::const_reference get() const { return _x; }
8711 private:
8712 	typename tuple_type<A5>::const_reference _x;
8713 };
8714 
8715 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8716 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element8717 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element8718 	typename tuple_type<A6>::const_reference get() const { return _x; }
8719 private:
8720 	typename tuple_type<A6>::const_reference _x;
8721 };
8722 
8723 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8724 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element8725 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element8726 	typename tuple_type<A7>::const_reference get() const { return _x; }
8727 private:
8728 	typename tuple_type<A7>::const_reference _x;
8729 };
8730 
8731 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8732 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element8733 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element8734 	typename tuple_type<A8>::const_reference get() const { return _x; }
8735 private:
8736 	typename tuple_type<A8>::const_reference _x;
8737 };
8738 
8739 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8740 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element8741 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element8742 	typename tuple_type<A9>::const_reference get() const { return _x; }
8743 private:
8744 	typename tuple_type<A9>::const_reference _x;
8745 };
8746 
8747 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8748 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element8749 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element8750 	typename tuple_type<A10>::const_reference get() const { return _x; }
8751 private:
8752 	typename tuple_type<A10>::const_reference _x;
8753 };
8754 
8755 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8756 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element8757 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element8758 	typename tuple_type<A11>::const_reference get() const { return _x; }
8759 private:
8760 	typename tuple_type<A11>::const_reference _x;
8761 };
8762 
8763 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8764 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element8765 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element8766 	typename tuple_type<A12>::const_reference get() const { return _x; }
8767 private:
8768 	typename tuple_type<A12>::const_reference _x;
8769 };
8770 
8771 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8772 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element8773 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element8774 	typename tuple_type<A13>::const_reference get() const { return _x; }
8775 private:
8776 	typename tuple_type<A13>::const_reference _x;
8777 };
8778 
8779 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8780 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element8781 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element8782 	typename tuple_type<A14>::const_reference get() const { return _x; }
8783 private:
8784 	typename tuple_type<A14>::const_reference _x;
8785 };
8786 
8787 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8788 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element8789 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element8790 	typename tuple_type<A15>::const_reference get() const { return _x; }
8791 private:
8792 	typename tuple_type<A15>::const_reference _x;
8793 };
8794 
8795 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8796 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element8797 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element8798 	typename tuple_type<A16>::const_reference get() const { return _x; }
8799 private:
8800 	typename tuple_type<A16>::const_reference _x;
8801 };
8802 
8803 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8804 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element8805 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element8806 	typename tuple_type<A17>::const_reference get() const { return _x; }
8807 private:
8808 	typename tuple_type<A17>::const_reference _x;
8809 };
8810 
8811 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8812 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element8813 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element8814 	typename tuple_type<A18>::const_reference get() const { return _x; }
8815 private:
8816 	typename tuple_type<A18>::const_reference _x;
8817 };
8818 
8819 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8820 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element8821 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element8822 	typename tuple_type<A19>::const_reference get() const { return _x; }
8823 private:
8824 	typename tuple_type<A19>::const_reference _x;
8825 };
8826 
8827 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8828 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element8829 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element8830 	typename tuple_type<A20>::const_reference get() const { return _x; }
8831 private:
8832 	typename tuple_type<A20>::const_reference _x;
8833 };
8834 
8835 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8836 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element8837 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element8838 	typename tuple_type<A21>::const_reference get() const { return _x; }
8839 private:
8840 	typename tuple_type<A21>::const_reference _x;
8841 };
8842 
8843 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8844 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element8845 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element8846 	typename tuple_type<A22>::const_reference get() const { return _x; }
8847 private:
8848 	typename tuple_type<A22>::const_reference _x;
8849 };
8850 
8851 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8852 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 23> : tuple_type<A23> {
const_tuple_elementmsgpack::type::const_tuple_element8853 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a23) {}
getmsgpack::type::const_tuple_element8854 	typename tuple_type<A23>::const_reference get() const { return _x; }
8855 private:
8856 	typename tuple_type<A23>::const_reference _x;
8857 };
8858 
8859 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8860 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 24> : tuple_type<A24> {
const_tuple_elementmsgpack::type::const_tuple_element8861 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a24) {}
getmsgpack::type::const_tuple_element8862 	typename tuple_type<A24>::const_reference get() const { return _x; }
8863 private:
8864 	typename tuple_type<A24>::const_reference _x;
8865 };
8866 
8867 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8868 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 25> : tuple_type<A25> {
const_tuple_elementmsgpack::type::const_tuple_element8869 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a25) {}
getmsgpack::type::const_tuple_element8870 	typename tuple_type<A25>::const_reference get() const { return _x; }
8871 private:
8872 	typename tuple_type<A25>::const_reference _x;
8873 };
8874 
8875 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8876 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 26> : tuple_type<A26> {
const_tuple_elementmsgpack::type::const_tuple_element8877 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a26) {}
getmsgpack::type::const_tuple_element8878 	typename tuple_type<A26>::const_reference get() const { return _x; }
8879 private:
8880 	typename tuple_type<A26>::const_reference _x;
8881 };
8882 
8883 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8884 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 27> : tuple_type<A27> {
const_tuple_elementmsgpack::type::const_tuple_element8885 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a27) {}
getmsgpack::type::const_tuple_element8886 	typename tuple_type<A27>::const_reference get() const { return _x; }
8887 private:
8888 	typename tuple_type<A27>::const_reference _x;
8889 };
8890 
8891 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8892 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 28> : tuple_type<A28> {
const_tuple_elementmsgpack::type::const_tuple_element8893 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a28) {}
getmsgpack::type::const_tuple_element8894 	typename tuple_type<A28>::const_reference get() const { return _x; }
8895 private:
8896 	typename tuple_type<A28>::const_reference _x;
8897 };
8898 
8899 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8900 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 29> : tuple_type<A29> {
const_tuple_elementmsgpack::type::const_tuple_element8901 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a29) {}
getmsgpack::type::const_tuple_element8902 	typename tuple_type<A29>::const_reference get() const { return _x; }
8903 private:
8904 	typename tuple_type<A29>::const_reference _x;
8905 };
8906 
8907 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
8908 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 30> : tuple_type<A30> {
const_tuple_elementmsgpack::type::const_tuple_element8909 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : _x(x.a30) {}
getmsgpack::type::const_tuple_element8910 	typename tuple_type<A30>::const_reference get() const { return _x; }
8911 private:
8912 	typename tuple_type<A30>::const_reference _x;
8913 };
8914 
8915 
8916 
8917 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8918 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 0> : tuple_type<A0> {
const_tuple_elementmsgpack::type::const_tuple_element8919 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a0) {}
getmsgpack::type::const_tuple_element8920 	typename tuple_type<A0>::const_reference get() const { return _x; }
8921 private:
8922 	typename tuple_type<A0>::const_reference _x;
8923 };
8924 
8925 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8926 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 1> : tuple_type<A1> {
const_tuple_elementmsgpack::type::const_tuple_element8927 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a1) {}
getmsgpack::type::const_tuple_element8928 	typename tuple_type<A1>::const_reference get() const { return _x; }
8929 private:
8930 	typename tuple_type<A1>::const_reference _x;
8931 };
8932 
8933 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8934 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 2> : tuple_type<A2> {
const_tuple_elementmsgpack::type::const_tuple_element8935 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a2) {}
getmsgpack::type::const_tuple_element8936 	typename tuple_type<A2>::const_reference get() const { return _x; }
8937 private:
8938 	typename tuple_type<A2>::const_reference _x;
8939 };
8940 
8941 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8942 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 3> : tuple_type<A3> {
const_tuple_elementmsgpack::type::const_tuple_element8943 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a3) {}
getmsgpack::type::const_tuple_element8944 	typename tuple_type<A3>::const_reference get() const { return _x; }
8945 private:
8946 	typename tuple_type<A3>::const_reference _x;
8947 };
8948 
8949 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8950 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 4> : tuple_type<A4> {
const_tuple_elementmsgpack::type::const_tuple_element8951 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a4) {}
getmsgpack::type::const_tuple_element8952 	typename tuple_type<A4>::const_reference get() const { return _x; }
8953 private:
8954 	typename tuple_type<A4>::const_reference _x;
8955 };
8956 
8957 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8958 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 5> : tuple_type<A5> {
const_tuple_elementmsgpack::type::const_tuple_element8959 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a5) {}
getmsgpack::type::const_tuple_element8960 	typename tuple_type<A5>::const_reference get() const { return _x; }
8961 private:
8962 	typename tuple_type<A5>::const_reference _x;
8963 };
8964 
8965 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8966 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 6> : tuple_type<A6> {
const_tuple_elementmsgpack::type::const_tuple_element8967 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a6) {}
getmsgpack::type::const_tuple_element8968 	typename tuple_type<A6>::const_reference get() const { return _x; }
8969 private:
8970 	typename tuple_type<A6>::const_reference _x;
8971 };
8972 
8973 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8974 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 7> : tuple_type<A7> {
const_tuple_elementmsgpack::type::const_tuple_element8975 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a7) {}
getmsgpack::type::const_tuple_element8976 	typename tuple_type<A7>::const_reference get() const { return _x; }
8977 private:
8978 	typename tuple_type<A7>::const_reference _x;
8979 };
8980 
8981 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8982 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 8> : tuple_type<A8> {
const_tuple_elementmsgpack::type::const_tuple_element8983 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a8) {}
getmsgpack::type::const_tuple_element8984 	typename tuple_type<A8>::const_reference get() const { return _x; }
8985 private:
8986 	typename tuple_type<A8>::const_reference _x;
8987 };
8988 
8989 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8990 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 9> : tuple_type<A9> {
const_tuple_elementmsgpack::type::const_tuple_element8991 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a9) {}
getmsgpack::type::const_tuple_element8992 	typename tuple_type<A9>::const_reference get() const { return _x; }
8993 private:
8994 	typename tuple_type<A9>::const_reference _x;
8995 };
8996 
8997 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
8998 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 10> : tuple_type<A10> {
const_tuple_elementmsgpack::type::const_tuple_element8999 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a10) {}
getmsgpack::type::const_tuple_element9000 	typename tuple_type<A10>::const_reference get() const { return _x; }
9001 private:
9002 	typename tuple_type<A10>::const_reference _x;
9003 };
9004 
9005 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9006 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 11> : tuple_type<A11> {
const_tuple_elementmsgpack::type::const_tuple_element9007 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a11) {}
getmsgpack::type::const_tuple_element9008 	typename tuple_type<A11>::const_reference get() const { return _x; }
9009 private:
9010 	typename tuple_type<A11>::const_reference _x;
9011 };
9012 
9013 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9014 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 12> : tuple_type<A12> {
const_tuple_elementmsgpack::type::const_tuple_element9015 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a12) {}
getmsgpack::type::const_tuple_element9016 	typename tuple_type<A12>::const_reference get() const { return _x; }
9017 private:
9018 	typename tuple_type<A12>::const_reference _x;
9019 };
9020 
9021 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9022 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 13> : tuple_type<A13> {
const_tuple_elementmsgpack::type::const_tuple_element9023 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a13) {}
getmsgpack::type::const_tuple_element9024 	typename tuple_type<A13>::const_reference get() const { return _x; }
9025 private:
9026 	typename tuple_type<A13>::const_reference _x;
9027 };
9028 
9029 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9030 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 14> : tuple_type<A14> {
const_tuple_elementmsgpack::type::const_tuple_element9031 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a14) {}
getmsgpack::type::const_tuple_element9032 	typename tuple_type<A14>::const_reference get() const { return _x; }
9033 private:
9034 	typename tuple_type<A14>::const_reference _x;
9035 };
9036 
9037 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9038 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 15> : tuple_type<A15> {
const_tuple_elementmsgpack::type::const_tuple_element9039 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a15) {}
getmsgpack::type::const_tuple_element9040 	typename tuple_type<A15>::const_reference get() const { return _x; }
9041 private:
9042 	typename tuple_type<A15>::const_reference _x;
9043 };
9044 
9045 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9046 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 16> : tuple_type<A16> {
const_tuple_elementmsgpack::type::const_tuple_element9047 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a16) {}
getmsgpack::type::const_tuple_element9048 	typename tuple_type<A16>::const_reference get() const { return _x; }
9049 private:
9050 	typename tuple_type<A16>::const_reference _x;
9051 };
9052 
9053 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9054 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 17> : tuple_type<A17> {
const_tuple_elementmsgpack::type::const_tuple_element9055 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a17) {}
getmsgpack::type::const_tuple_element9056 	typename tuple_type<A17>::const_reference get() const { return _x; }
9057 private:
9058 	typename tuple_type<A17>::const_reference _x;
9059 };
9060 
9061 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9062 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 18> : tuple_type<A18> {
const_tuple_elementmsgpack::type::const_tuple_element9063 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a18) {}
getmsgpack::type::const_tuple_element9064 	typename tuple_type<A18>::const_reference get() const { return _x; }
9065 private:
9066 	typename tuple_type<A18>::const_reference _x;
9067 };
9068 
9069 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9070 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 19> : tuple_type<A19> {
const_tuple_elementmsgpack::type::const_tuple_element9071 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a19) {}
getmsgpack::type::const_tuple_element9072 	typename tuple_type<A19>::const_reference get() const { return _x; }
9073 private:
9074 	typename tuple_type<A19>::const_reference _x;
9075 };
9076 
9077 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9078 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 20> : tuple_type<A20> {
const_tuple_elementmsgpack::type::const_tuple_element9079 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a20) {}
getmsgpack::type::const_tuple_element9080 	typename tuple_type<A20>::const_reference get() const { return _x; }
9081 private:
9082 	typename tuple_type<A20>::const_reference _x;
9083 };
9084 
9085 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9086 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 21> : tuple_type<A21> {
const_tuple_elementmsgpack::type::const_tuple_element9087 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a21) {}
getmsgpack::type::const_tuple_element9088 	typename tuple_type<A21>::const_reference get() const { return _x; }
9089 private:
9090 	typename tuple_type<A21>::const_reference _x;
9091 };
9092 
9093 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9094 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 22> : tuple_type<A22> {
const_tuple_elementmsgpack::type::const_tuple_element9095 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a22) {}
getmsgpack::type::const_tuple_element9096 	typename tuple_type<A22>::const_reference get() const { return _x; }
9097 private:
9098 	typename tuple_type<A22>::const_reference _x;
9099 };
9100 
9101 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9102 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 23> : tuple_type<A23> {
const_tuple_elementmsgpack::type::const_tuple_element9103 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a23) {}
getmsgpack::type::const_tuple_element9104 	typename tuple_type<A23>::const_reference get() const { return _x; }
9105 private:
9106 	typename tuple_type<A23>::const_reference _x;
9107 };
9108 
9109 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9110 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 24> : tuple_type<A24> {
const_tuple_elementmsgpack::type::const_tuple_element9111 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a24) {}
getmsgpack::type::const_tuple_element9112 	typename tuple_type<A24>::const_reference get() const { return _x; }
9113 private:
9114 	typename tuple_type<A24>::const_reference _x;
9115 };
9116 
9117 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9118 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 25> : tuple_type<A25> {
const_tuple_elementmsgpack::type::const_tuple_element9119 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a25) {}
getmsgpack::type::const_tuple_element9120 	typename tuple_type<A25>::const_reference get() const { return _x; }
9121 private:
9122 	typename tuple_type<A25>::const_reference _x;
9123 };
9124 
9125 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9126 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 26> : tuple_type<A26> {
const_tuple_elementmsgpack::type::const_tuple_element9127 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a26) {}
getmsgpack::type::const_tuple_element9128 	typename tuple_type<A26>::const_reference get() const { return _x; }
9129 private:
9130 	typename tuple_type<A26>::const_reference _x;
9131 };
9132 
9133 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9134 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 27> : tuple_type<A27> {
const_tuple_elementmsgpack::type::const_tuple_element9135 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a27) {}
getmsgpack::type::const_tuple_element9136 	typename tuple_type<A27>::const_reference get() const { return _x; }
9137 private:
9138 	typename tuple_type<A27>::const_reference _x;
9139 };
9140 
9141 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9142 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 28> : tuple_type<A28> {
const_tuple_elementmsgpack::type::const_tuple_element9143 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a28) {}
getmsgpack::type::const_tuple_element9144 	typename tuple_type<A28>::const_reference get() const { return _x; }
9145 private:
9146 	typename tuple_type<A28>::const_reference _x;
9147 };
9148 
9149 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9150 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 29> : tuple_type<A29> {
const_tuple_elementmsgpack::type::const_tuple_element9151 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a29) {}
getmsgpack::type::const_tuple_element9152 	typename tuple_type<A29>::const_reference get() const { return _x; }
9153 private:
9154 	typename tuple_type<A29>::const_reference _x;
9155 };
9156 
9157 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9158 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 30> : tuple_type<A30> {
const_tuple_elementmsgpack::type::const_tuple_element9159 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a30) {}
getmsgpack::type::const_tuple_element9160 	typename tuple_type<A30>::const_reference get() const { return _x; }
9161 private:
9162 	typename tuple_type<A30>::const_reference _x;
9163 };
9164 
9165 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
9166 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 31> : tuple_type<A31> {
const_tuple_elementmsgpack::type::const_tuple_element9167 	const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : _x(x.a31) {}
getmsgpack::type::const_tuple_element9168 	typename tuple_type<A31>::const_reference get() const { return _x; }
9169 private:
9170 	typename tuple_type<A31>::const_reference _x;
9171 };
9172 
9173 
9174 
9175 template <>
9176 struct tuple<> {
tuplemsgpack::type::tuple9177 	tuple() {}
tuplemsgpack::type::tuple9178 	tuple(object o) { o.convert(this); }
9179 	typedef tuple<> value_type;
9180 };
9181 
9182 template <typename A0>
9183 struct tuple<A0> {
9184 	typedef tuple<A0> value_type;
tuplemsgpack::type::tuple9185 	tuple() {}
tuplemsgpack::type::tuple9186 	tuple(typename tuple_type<A0>::transparent_reference _a0) :
9187 		a0(_a0) {}
tuplemsgpack::type::tuple9188 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9189 	template <int N> typename tuple_element<value_type, N>::reference get()
9190 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9191 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9192 		{ return const_tuple_element<value_type, N>(*this).get(); }
9193 
9194 	A0 a0;
9195 };
9196 
9197 template <typename A0, typename A1>
9198 struct tuple<A0, A1> {
9199 	typedef tuple<A0, A1> value_type;
tuplemsgpack::type::tuple9200 	tuple() {}
tuplemsgpack::type::tuple9201 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1) :
9202 		a0(_a0), a1(_a1) {}
tuplemsgpack::type::tuple9203 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9204 	template <int N> typename tuple_element<value_type, N>::reference get()
9205 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9206 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9207 		{ return const_tuple_element<value_type, N>(*this).get(); }
9208 
9209 	A0 a0;
9210 	A1 a1;
9211 };
9212 
9213 template <typename A0, typename A1, typename A2>
9214 struct tuple<A0, A1, A2> {
9215 	typedef tuple<A0, A1, A2> value_type;
tuplemsgpack::type::tuple9216 	tuple() {}
tuplemsgpack::type::tuple9217 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2) :
9218 		a0(_a0), a1(_a1), a2(_a2) {}
tuplemsgpack::type::tuple9219 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9220 	template <int N> typename tuple_element<value_type, N>::reference get()
9221 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9222 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9223 		{ return const_tuple_element<value_type, N>(*this).get(); }
9224 
9225 	A0 a0;
9226 	A1 a1;
9227 	A2 a2;
9228 };
9229 
9230 template <typename A0, typename A1, typename A2, typename A3>
9231 struct tuple<A0, A1, A2, A3> {
9232 	typedef tuple<A0, A1, A2, A3> value_type;
tuplemsgpack::type::tuple9233 	tuple() {}
tuplemsgpack::type::tuple9234 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3) :
9235 		a0(_a0), a1(_a1), a2(_a2), a3(_a3) {}
tuplemsgpack::type::tuple9236 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9237 	template <int N> typename tuple_element<value_type, N>::reference get()
9238 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9239 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9240 		{ return const_tuple_element<value_type, N>(*this).get(); }
9241 
9242 	A0 a0;
9243 	A1 a1;
9244 	A2 a2;
9245 	A3 a3;
9246 };
9247 
9248 template <typename A0, typename A1, typename A2, typename A3, typename A4>
9249 struct tuple<A0, A1, A2, A3, A4> {
9250 	typedef tuple<A0, A1, A2, A3, A4> value_type;
tuplemsgpack::type::tuple9251 	tuple() {}
tuplemsgpack::type::tuple9252 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4) :
9253 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4) {}
tuplemsgpack::type::tuple9254 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9255 	template <int N> typename tuple_element<value_type, N>::reference get()
9256 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9257 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9258 		{ return const_tuple_element<value_type, N>(*this).get(); }
9259 
9260 	A0 a0;
9261 	A1 a1;
9262 	A2 a2;
9263 	A3 a3;
9264 	A4 a4;
9265 };
9266 
9267 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
9268 struct tuple<A0, A1, A2, A3, A4, A5> {
9269 	typedef tuple<A0, A1, A2, A3, A4, A5> value_type;
tuplemsgpack::type::tuple9270 	tuple() {}
tuplemsgpack::type::tuple9271 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5) :
9272 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {}
tuplemsgpack::type::tuple9273 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9274 	template <int N> typename tuple_element<value_type, N>::reference get()
9275 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9276 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9277 		{ return const_tuple_element<value_type, N>(*this).get(); }
9278 
9279 	A0 a0;
9280 	A1 a1;
9281 	A2 a2;
9282 	A3 a3;
9283 	A4 a4;
9284 	A5 a5;
9285 };
9286 
9287 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
9288 struct tuple<A0, A1, A2, A3, A4, A5, A6> {
9289 	typedef tuple<A0, A1, A2, A3, A4, A5, A6> value_type;
tuplemsgpack::type::tuple9290 	tuple() {}
tuplemsgpack::type::tuple9291 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6) :
9292 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6) {}
tuplemsgpack::type::tuple9293 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9294 	template <int N> typename tuple_element<value_type, N>::reference get()
9295 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9296 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9297 		{ return const_tuple_element<value_type, N>(*this).get(); }
9298 
9299 	A0 a0;
9300 	A1 a1;
9301 	A2 a2;
9302 	A3 a3;
9303 	A4 a4;
9304 	A5 a5;
9305 	A6 a6;
9306 };
9307 
9308 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
9309 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7> {
9310 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7> value_type;
tuplemsgpack::type::tuple9311 	tuple() {}
tuplemsgpack::type::tuple9312 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7) :
9313 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {}
tuplemsgpack::type::tuple9314 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9315 	template <int N> typename tuple_element<value_type, N>::reference get()
9316 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9317 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9318 		{ return const_tuple_element<value_type, N>(*this).get(); }
9319 
9320 	A0 a0;
9321 	A1 a1;
9322 	A2 a2;
9323 	A3 a3;
9324 	A4 a4;
9325 	A5 a5;
9326 	A6 a6;
9327 	A7 a7;
9328 };
9329 
9330 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
9331 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> {
9332 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> value_type;
tuplemsgpack::type::tuple9333 	tuple() {}
tuplemsgpack::type::tuple9334 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8) :
9335 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8) {}
tuplemsgpack::type::tuple9336 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9337 	template <int N> typename tuple_element<value_type, N>::reference get()
9338 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9339 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9340 		{ return const_tuple_element<value_type, N>(*this).get(); }
9341 
9342 	A0 a0;
9343 	A1 a1;
9344 	A2 a2;
9345 	A3 a3;
9346 	A4 a4;
9347 	A5 a5;
9348 	A6 a6;
9349 	A7 a7;
9350 	A8 a8;
9351 };
9352 
9353 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
9354 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> {
9355 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> value_type;
tuplemsgpack::type::tuple9356 	tuple() {}
tuplemsgpack::type::tuple9357 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9) :
9358 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {}
tuplemsgpack::type::tuple9359 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9360 	template <int N> typename tuple_element<value_type, N>::reference get()
9361 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9362 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9363 		{ return const_tuple_element<value_type, N>(*this).get(); }
9364 
9365 	A0 a0;
9366 	A1 a1;
9367 	A2 a2;
9368 	A3 a3;
9369 	A4 a4;
9370 	A5 a5;
9371 	A6 a6;
9372 	A7 a7;
9373 	A8 a8;
9374 	A9 a9;
9375 };
9376 
9377 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
9378 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> {
9379 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> value_type;
tuplemsgpack::type::tuple9380 	tuple() {}
tuplemsgpack::type::tuple9381 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10) :
9382 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10) {}
tuplemsgpack::type::tuple9383 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9384 	template <int N> typename tuple_element<value_type, N>::reference get()
9385 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9386 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9387 		{ return const_tuple_element<value_type, N>(*this).get(); }
9388 
9389 	A0 a0;
9390 	A1 a1;
9391 	A2 a2;
9392 	A3 a3;
9393 	A4 a4;
9394 	A5 a5;
9395 	A6 a6;
9396 	A7 a7;
9397 	A8 a8;
9398 	A9 a9;
9399 	A10 a10;
9400 };
9401 
9402 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
9403 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> {
9404 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> value_type;
tuplemsgpack::type::tuple9405 	tuple() {}
tuplemsgpack::type::tuple9406 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11) :
9407 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {}
tuplemsgpack::type::tuple9408 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9409 	template <int N> typename tuple_element<value_type, N>::reference get()
9410 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9411 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9412 		{ return const_tuple_element<value_type, N>(*this).get(); }
9413 
9414 	A0 a0;
9415 	A1 a1;
9416 	A2 a2;
9417 	A3 a3;
9418 	A4 a4;
9419 	A5 a5;
9420 	A6 a6;
9421 	A7 a7;
9422 	A8 a8;
9423 	A9 a9;
9424 	A10 a10;
9425 	A11 a11;
9426 };
9427 
9428 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
9429 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> {
9430 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> value_type;
tuplemsgpack::type::tuple9431 	tuple() {}
tuplemsgpack::type::tuple9432 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12) :
9433 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12) {}
tuplemsgpack::type::tuple9434 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9435 	template <int N> typename tuple_element<value_type, N>::reference get()
9436 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9437 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9438 		{ return const_tuple_element<value_type, N>(*this).get(); }
9439 
9440 	A0 a0;
9441 	A1 a1;
9442 	A2 a2;
9443 	A3 a3;
9444 	A4 a4;
9445 	A5 a5;
9446 	A6 a6;
9447 	A7 a7;
9448 	A8 a8;
9449 	A9 a9;
9450 	A10 a10;
9451 	A11 a11;
9452 	A12 a12;
9453 };
9454 
9455 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
9456 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> {
9457 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> value_type;
tuplemsgpack::type::tuple9458 	tuple() {}
tuplemsgpack::type::tuple9459 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13) :
9460 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {}
tuplemsgpack::type::tuple9461 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9462 	template <int N> typename tuple_element<value_type, N>::reference get()
9463 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9464 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9465 		{ return const_tuple_element<value_type, N>(*this).get(); }
9466 
9467 	A0 a0;
9468 	A1 a1;
9469 	A2 a2;
9470 	A3 a3;
9471 	A4 a4;
9472 	A5 a5;
9473 	A6 a6;
9474 	A7 a7;
9475 	A8 a8;
9476 	A9 a9;
9477 	A10 a10;
9478 	A11 a11;
9479 	A12 a12;
9480 	A13 a13;
9481 };
9482 
9483 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
9484 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> {
9485 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> value_type;
tuplemsgpack::type::tuple9486 	tuple() {}
tuplemsgpack::type::tuple9487 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14) :
9488 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14) {}
tuplemsgpack::type::tuple9489 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9490 	template <int N> typename tuple_element<value_type, N>::reference get()
9491 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9492 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9493 		{ return const_tuple_element<value_type, N>(*this).get(); }
9494 
9495 	A0 a0;
9496 	A1 a1;
9497 	A2 a2;
9498 	A3 a3;
9499 	A4 a4;
9500 	A5 a5;
9501 	A6 a6;
9502 	A7 a7;
9503 	A8 a8;
9504 	A9 a9;
9505 	A10 a10;
9506 	A11 a11;
9507 	A12 a12;
9508 	A13 a13;
9509 	A14 a14;
9510 };
9511 
9512 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
9513 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> {
9514 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> value_type;
tuplemsgpack::type::tuple9515 	tuple() {}
tuplemsgpack::type::tuple9516 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15) :
9517 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {}
tuplemsgpack::type::tuple9518 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9519 	template <int N> typename tuple_element<value_type, N>::reference get()
9520 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9521 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9522 		{ return const_tuple_element<value_type, N>(*this).get(); }
9523 
9524 	A0 a0;
9525 	A1 a1;
9526 	A2 a2;
9527 	A3 a3;
9528 	A4 a4;
9529 	A5 a5;
9530 	A6 a6;
9531 	A7 a7;
9532 	A8 a8;
9533 	A9 a9;
9534 	A10 a10;
9535 	A11 a11;
9536 	A12 a12;
9537 	A13 a13;
9538 	A14 a14;
9539 	A15 a15;
9540 };
9541 
9542 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
9543 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> {
9544 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> value_type;
tuplemsgpack::type::tuple9545 	tuple() {}
tuplemsgpack::type::tuple9546 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16) :
9547 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16) {}
tuplemsgpack::type::tuple9548 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9549 	template <int N> typename tuple_element<value_type, N>::reference get()
9550 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9551 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9552 		{ return const_tuple_element<value_type, N>(*this).get(); }
9553 
9554 	A0 a0;
9555 	A1 a1;
9556 	A2 a2;
9557 	A3 a3;
9558 	A4 a4;
9559 	A5 a5;
9560 	A6 a6;
9561 	A7 a7;
9562 	A8 a8;
9563 	A9 a9;
9564 	A10 a10;
9565 	A11 a11;
9566 	A12 a12;
9567 	A13 a13;
9568 	A14 a14;
9569 	A15 a15;
9570 	A16 a16;
9571 };
9572 
9573 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
9574 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> {
9575 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> value_type;
tuplemsgpack::type::tuple9576 	tuple() {}
tuplemsgpack::type::tuple9577 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17) :
9578 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {}
tuplemsgpack::type::tuple9579 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9580 	template <int N> typename tuple_element<value_type, N>::reference get()
9581 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9582 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9583 		{ return const_tuple_element<value_type, N>(*this).get(); }
9584 
9585 	A0 a0;
9586 	A1 a1;
9587 	A2 a2;
9588 	A3 a3;
9589 	A4 a4;
9590 	A5 a5;
9591 	A6 a6;
9592 	A7 a7;
9593 	A8 a8;
9594 	A9 a9;
9595 	A10 a10;
9596 	A11 a11;
9597 	A12 a12;
9598 	A13 a13;
9599 	A14 a14;
9600 	A15 a15;
9601 	A16 a16;
9602 	A17 a17;
9603 };
9604 
9605 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
9606 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> {
9607 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> value_type;
tuplemsgpack::type::tuple9608 	tuple() {}
tuplemsgpack::type::tuple9609 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18) :
9610 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18) {}
tuplemsgpack::type::tuple9611 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9612 	template <int N> typename tuple_element<value_type, N>::reference get()
9613 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9614 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9615 		{ return const_tuple_element<value_type, N>(*this).get(); }
9616 
9617 	A0 a0;
9618 	A1 a1;
9619 	A2 a2;
9620 	A3 a3;
9621 	A4 a4;
9622 	A5 a5;
9623 	A6 a6;
9624 	A7 a7;
9625 	A8 a8;
9626 	A9 a9;
9627 	A10 a10;
9628 	A11 a11;
9629 	A12 a12;
9630 	A13 a13;
9631 	A14 a14;
9632 	A15 a15;
9633 	A16 a16;
9634 	A17 a17;
9635 	A18 a18;
9636 };
9637 
9638 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
9639 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> {
9640 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> value_type;
tuplemsgpack::type::tuple9641 	tuple() {}
tuplemsgpack::type::tuple9642 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19) :
9643 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {}
tuplemsgpack::type::tuple9644 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9645 	template <int N> typename tuple_element<value_type, N>::reference get()
9646 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9647 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9648 		{ return const_tuple_element<value_type, N>(*this).get(); }
9649 
9650 	A0 a0;
9651 	A1 a1;
9652 	A2 a2;
9653 	A3 a3;
9654 	A4 a4;
9655 	A5 a5;
9656 	A6 a6;
9657 	A7 a7;
9658 	A8 a8;
9659 	A9 a9;
9660 	A10 a10;
9661 	A11 a11;
9662 	A12 a12;
9663 	A13 a13;
9664 	A14 a14;
9665 	A15 a15;
9666 	A16 a16;
9667 	A17 a17;
9668 	A18 a18;
9669 	A19 a19;
9670 };
9671 
9672 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
9673 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> {
9674 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> value_type;
tuplemsgpack::type::tuple9675 	tuple() {}
tuplemsgpack::type::tuple9676 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20) :
9677 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20) {}
tuplemsgpack::type::tuple9678 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9679 	template <int N> typename tuple_element<value_type, N>::reference get()
9680 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9681 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9682 		{ return const_tuple_element<value_type, N>(*this).get(); }
9683 
9684 	A0 a0;
9685 	A1 a1;
9686 	A2 a2;
9687 	A3 a3;
9688 	A4 a4;
9689 	A5 a5;
9690 	A6 a6;
9691 	A7 a7;
9692 	A8 a8;
9693 	A9 a9;
9694 	A10 a10;
9695 	A11 a11;
9696 	A12 a12;
9697 	A13 a13;
9698 	A14 a14;
9699 	A15 a15;
9700 	A16 a16;
9701 	A17 a17;
9702 	A18 a18;
9703 	A19 a19;
9704 	A20 a20;
9705 };
9706 
9707 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
9708 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> {
9709 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> value_type;
tuplemsgpack::type::tuple9710 	tuple() {}
tuplemsgpack::type::tuple9711 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21) :
9712 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {}
tuplemsgpack::type::tuple9713 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9714 	template <int N> typename tuple_element<value_type, N>::reference get()
9715 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9716 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9717 		{ return const_tuple_element<value_type, N>(*this).get(); }
9718 
9719 	A0 a0;
9720 	A1 a1;
9721 	A2 a2;
9722 	A3 a3;
9723 	A4 a4;
9724 	A5 a5;
9725 	A6 a6;
9726 	A7 a7;
9727 	A8 a8;
9728 	A9 a9;
9729 	A10 a10;
9730 	A11 a11;
9731 	A12 a12;
9732 	A13 a13;
9733 	A14 a14;
9734 	A15 a15;
9735 	A16 a16;
9736 	A17 a17;
9737 	A18 a18;
9738 	A19 a19;
9739 	A20 a20;
9740 	A21 a21;
9741 };
9742 
9743 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
9744 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> {
9745 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> value_type;
tuplemsgpack::type::tuple9746 	tuple() {}
tuplemsgpack::type::tuple9747 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22) :
9748 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22) {}
tuplemsgpack::type::tuple9749 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9750 	template <int N> typename tuple_element<value_type, N>::reference get()
9751 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9752 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9753 		{ return const_tuple_element<value_type, N>(*this).get(); }
9754 
9755 	A0 a0;
9756 	A1 a1;
9757 	A2 a2;
9758 	A3 a3;
9759 	A4 a4;
9760 	A5 a5;
9761 	A6 a6;
9762 	A7 a7;
9763 	A8 a8;
9764 	A9 a9;
9765 	A10 a10;
9766 	A11 a11;
9767 	A12 a12;
9768 	A13 a13;
9769 	A14 a14;
9770 	A15 a15;
9771 	A16 a16;
9772 	A17 a17;
9773 	A18 a18;
9774 	A19 a19;
9775 	A20 a20;
9776 	A21 a21;
9777 	A22 a22;
9778 };
9779 
9780 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
9781 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> {
9782 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> value_type;
tuplemsgpack::type::tuple9783 	tuple() {}
tuplemsgpack::type::tuple9784 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23) :
9785 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {}
tuplemsgpack::type::tuple9786 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9787 	template <int N> typename tuple_element<value_type, N>::reference get()
9788 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9789 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9790 		{ return const_tuple_element<value_type, N>(*this).get(); }
9791 
9792 	A0 a0;
9793 	A1 a1;
9794 	A2 a2;
9795 	A3 a3;
9796 	A4 a4;
9797 	A5 a5;
9798 	A6 a6;
9799 	A7 a7;
9800 	A8 a8;
9801 	A9 a9;
9802 	A10 a10;
9803 	A11 a11;
9804 	A12 a12;
9805 	A13 a13;
9806 	A14 a14;
9807 	A15 a15;
9808 	A16 a16;
9809 	A17 a17;
9810 	A18 a18;
9811 	A19 a19;
9812 	A20 a20;
9813 	A21 a21;
9814 	A22 a22;
9815 	A23 a23;
9816 };
9817 
9818 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
9819 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> {
9820 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> value_type;
tuplemsgpack::type::tuple9821 	tuple() {}
tuplemsgpack::type::tuple9822 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24) :
9823 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24) {}
tuplemsgpack::type::tuple9824 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9825 	template <int N> typename tuple_element<value_type, N>::reference get()
9826 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9827 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9828 		{ return const_tuple_element<value_type, N>(*this).get(); }
9829 
9830 	A0 a0;
9831 	A1 a1;
9832 	A2 a2;
9833 	A3 a3;
9834 	A4 a4;
9835 	A5 a5;
9836 	A6 a6;
9837 	A7 a7;
9838 	A8 a8;
9839 	A9 a9;
9840 	A10 a10;
9841 	A11 a11;
9842 	A12 a12;
9843 	A13 a13;
9844 	A14 a14;
9845 	A15 a15;
9846 	A16 a16;
9847 	A17 a17;
9848 	A18 a18;
9849 	A19 a19;
9850 	A20 a20;
9851 	A21 a21;
9852 	A22 a22;
9853 	A23 a23;
9854 	A24 a24;
9855 };
9856 
9857 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
9858 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> {
9859 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> value_type;
tuplemsgpack::type::tuple9860 	tuple() {}
tuplemsgpack::type::tuple9861 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25) :
9862 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {}
tuplemsgpack::type::tuple9863 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9864 	template <int N> typename tuple_element<value_type, N>::reference get()
9865 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9866 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9867 		{ return const_tuple_element<value_type, N>(*this).get(); }
9868 
9869 	A0 a0;
9870 	A1 a1;
9871 	A2 a2;
9872 	A3 a3;
9873 	A4 a4;
9874 	A5 a5;
9875 	A6 a6;
9876 	A7 a7;
9877 	A8 a8;
9878 	A9 a9;
9879 	A10 a10;
9880 	A11 a11;
9881 	A12 a12;
9882 	A13 a13;
9883 	A14 a14;
9884 	A15 a15;
9885 	A16 a16;
9886 	A17 a17;
9887 	A18 a18;
9888 	A19 a19;
9889 	A20 a20;
9890 	A21 a21;
9891 	A22 a22;
9892 	A23 a23;
9893 	A24 a24;
9894 	A25 a25;
9895 };
9896 
9897 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
9898 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> {
9899 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> value_type;
tuplemsgpack::type::tuple9900 	tuple() {}
tuplemsgpack::type::tuple9901 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26) :
9902 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26) {}
tuplemsgpack::type::tuple9903 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9904 	template <int N> typename tuple_element<value_type, N>::reference get()
9905 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9906 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9907 		{ return const_tuple_element<value_type, N>(*this).get(); }
9908 
9909 	A0 a0;
9910 	A1 a1;
9911 	A2 a2;
9912 	A3 a3;
9913 	A4 a4;
9914 	A5 a5;
9915 	A6 a6;
9916 	A7 a7;
9917 	A8 a8;
9918 	A9 a9;
9919 	A10 a10;
9920 	A11 a11;
9921 	A12 a12;
9922 	A13 a13;
9923 	A14 a14;
9924 	A15 a15;
9925 	A16 a16;
9926 	A17 a17;
9927 	A18 a18;
9928 	A19 a19;
9929 	A20 a20;
9930 	A21 a21;
9931 	A22 a22;
9932 	A23 a23;
9933 	A24 a24;
9934 	A25 a25;
9935 	A26 a26;
9936 };
9937 
9938 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
9939 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> {
9940 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> value_type;
tuplemsgpack::type::tuple9941 	tuple() {}
tuplemsgpack::type::tuple9942 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27) :
9943 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {}
tuplemsgpack::type::tuple9944 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9945 	template <int N> typename tuple_element<value_type, N>::reference get()
9946 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9947 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9948 		{ return const_tuple_element<value_type, N>(*this).get(); }
9949 
9950 	A0 a0;
9951 	A1 a1;
9952 	A2 a2;
9953 	A3 a3;
9954 	A4 a4;
9955 	A5 a5;
9956 	A6 a6;
9957 	A7 a7;
9958 	A8 a8;
9959 	A9 a9;
9960 	A10 a10;
9961 	A11 a11;
9962 	A12 a12;
9963 	A13 a13;
9964 	A14 a14;
9965 	A15 a15;
9966 	A16 a16;
9967 	A17 a17;
9968 	A18 a18;
9969 	A19 a19;
9970 	A20 a20;
9971 	A21 a21;
9972 	A22 a22;
9973 	A23 a23;
9974 	A24 a24;
9975 	A25 a25;
9976 	A26 a26;
9977 	A27 a27;
9978 };
9979 
9980 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
9981 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> {
9982 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> value_type;
tuplemsgpack::type::tuple9983 	tuple() {}
tuplemsgpack::type::tuple9984 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28) :
9985 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28) {}
tuplemsgpack::type::tuple9986 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple9987 	template <int N> typename tuple_element<value_type, N>::reference get()
9988 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple9989 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
9990 		{ return const_tuple_element<value_type, N>(*this).get(); }
9991 
9992 	A0 a0;
9993 	A1 a1;
9994 	A2 a2;
9995 	A3 a3;
9996 	A4 a4;
9997 	A5 a5;
9998 	A6 a6;
9999 	A7 a7;
10000 	A8 a8;
10001 	A9 a9;
10002 	A10 a10;
10003 	A11 a11;
10004 	A12 a12;
10005 	A13 a13;
10006 	A14 a14;
10007 	A15 a15;
10008 	A16 a16;
10009 	A17 a17;
10010 	A18 a18;
10011 	A19 a19;
10012 	A20 a20;
10013 	A21 a21;
10014 	A22 a22;
10015 	A23 a23;
10016 	A24 a24;
10017 	A25 a25;
10018 	A26 a26;
10019 	A27 a27;
10020 	A28 a28;
10021 };
10022 
10023 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
10024 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> {
10025 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> value_type;
tuplemsgpack::type::tuple10026 	tuple() {}
tuplemsgpack::type::tuple10027 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28, typename tuple_type<A29>::transparent_reference _a29) :
10028 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {}
tuplemsgpack::type::tuple10029 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple10030 	template <int N> typename tuple_element<value_type, N>::reference get()
10031 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple10032 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
10033 		{ return const_tuple_element<value_type, N>(*this).get(); }
10034 
10035 	A0 a0;
10036 	A1 a1;
10037 	A2 a2;
10038 	A3 a3;
10039 	A4 a4;
10040 	A5 a5;
10041 	A6 a6;
10042 	A7 a7;
10043 	A8 a8;
10044 	A9 a9;
10045 	A10 a10;
10046 	A11 a11;
10047 	A12 a12;
10048 	A13 a13;
10049 	A14 a14;
10050 	A15 a15;
10051 	A16 a16;
10052 	A17 a17;
10053 	A18 a18;
10054 	A19 a19;
10055 	A20 a20;
10056 	A21 a21;
10057 	A22 a22;
10058 	A23 a23;
10059 	A24 a24;
10060 	A25 a25;
10061 	A26 a26;
10062 	A27 a27;
10063 	A28 a28;
10064 	A29 a29;
10065 };
10066 
10067 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
10068 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> {
10069 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> value_type;
tuplemsgpack::type::tuple10070 	tuple() {}
tuplemsgpack::type::tuple10071 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28, typename tuple_type<A29>::transparent_reference _a29, typename tuple_type<A30>::transparent_reference _a30) :
10072 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30) {}
tuplemsgpack::type::tuple10073 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple10074 	template <int N> typename tuple_element<value_type, N>::reference get()
10075 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple10076 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
10077 		{ return const_tuple_element<value_type, N>(*this).get(); }
10078 
10079 	A0 a0;
10080 	A1 a1;
10081 	A2 a2;
10082 	A3 a3;
10083 	A4 a4;
10084 	A5 a5;
10085 	A6 a6;
10086 	A7 a7;
10087 	A8 a8;
10088 	A9 a9;
10089 	A10 a10;
10090 	A11 a11;
10091 	A12 a12;
10092 	A13 a13;
10093 	A14 a14;
10094 	A15 a15;
10095 	A16 a16;
10096 	A17 a17;
10097 	A18 a18;
10098 	A19 a19;
10099 	A20 a20;
10100 	A21 a21;
10101 	A22 a22;
10102 	A23 a23;
10103 	A24 a24;
10104 	A25 a25;
10105 	A26 a26;
10106 	A27 a27;
10107 	A28 a28;
10108 	A29 a29;
10109 	A30 a30;
10110 };
10111 
10112 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
10113 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> {
10114 	typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> value_type;
tuplemsgpack::type::tuple10115 	tuple() {}
tuplemsgpack::type::tuple10116 	tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28, typename tuple_type<A29>::transparent_reference _a29, typename tuple_type<A30>::transparent_reference _a30, typename tuple_type<A31>::transparent_reference _a31) :
10117 		a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {}
tuplemsgpack::type::tuple10118 	tuple(object o) { o.convert(this); }
getmsgpack::type::tuple10119 	template <int N> typename tuple_element<value_type, N>::reference get()
10120 		{ return tuple_element<value_type, N>(*this).get(); }
getmsgpack::type::tuple10121 	template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
10122 		{ return const_tuple_element<value_type, N>(*this).get(); }
10123 
10124 	A0 a0;
10125 	A1 a1;
10126 	A2 a2;
10127 	A3 a3;
10128 	A4 a4;
10129 	A5 a5;
10130 	A6 a6;
10131 	A7 a7;
10132 	A8 a8;
10133 	A9 a9;
10134 	A10 a10;
10135 	A11 a11;
10136 	A12 a12;
10137 	A13 a13;
10138 	A14 a14;
10139 	A15 a15;
10140 	A16 a16;
10141 	A17 a17;
10142 	A18 a18;
10143 	A19 a19;
10144 	A20 a20;
10145 	A21 a21;
10146 	A22 a22;
10147 	A23 a23;
10148 	A24 a24;
10149 	A25 a25;
10150 	A26 a26;
10151 	A27 a27;
10152 	A28 a28;
10153 	A29 a29;
10154 	A30 a30;
10155 	A31 a31;
10156 };
10157 
10158 
make_tuple()10159 inline tuple<> make_tuple()
10160 {
10161 	return tuple<>();
10162 }
10163 
10164 template <typename A0>
make_tuple(typename tuple_type<A0>::transparent_reference a0)10165 tuple<A0> make_tuple(typename tuple_type<A0>::transparent_reference a0)
10166 {
10167 	return tuple<A0>(a0);
10168 }
10169 
10170 template <typename A0, typename A1>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1)10171 tuple<A0, A1> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1)
10172 {
10173 	return tuple<A0, A1>(a0, a1);
10174 }
10175 
10176 template <typename A0, typename A1, typename A2>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2)10177 tuple<A0, A1, A2> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2)
10178 {
10179 	return tuple<A0, A1, A2>(a0, a1, a2);
10180 }
10181 
10182 template <typename A0, typename A1, typename A2, typename A3>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3)10183 tuple<A0, A1, A2, A3> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3)
10184 {
10185 	return tuple<A0, A1, A2, A3>(a0, a1, a2, a3);
10186 }
10187 
10188 template <typename A0, typename A1, typename A2, typename A3, typename A4>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4)10189 tuple<A0, A1, A2, A3, A4> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4)
10190 {
10191 	return tuple<A0, A1, A2, A3, A4>(a0, a1, a2, a3, a4);
10192 }
10193 
10194 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5)10195 tuple<A0, A1, A2, A3, A4, A5> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5)
10196 {
10197 	return tuple<A0, A1, A2, A3, A4, A5>(a0, a1, a2, a3, a4, a5);
10198 }
10199 
10200 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6)10201 tuple<A0, A1, A2, A3, A4, A5, A6> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6)
10202 {
10203 	return tuple<A0, A1, A2, A3, A4, A5, A6>(a0, a1, a2, a3, a4, a5, a6);
10204 }
10205 
10206 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7)10207 tuple<A0, A1, A2, A3, A4, A5, A6, A7> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7)
10208 {
10209 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7>(a0, a1, a2, a3, a4, a5, a6, a7);
10210 }
10211 
10212 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8)10213 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8)
10214 {
10215 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>(a0, a1, a2, a3, a4, a5, a6, a7, a8);
10216 }
10217 
10218 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9)10219 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9)
10220 {
10221 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
10222 }
10223 
10224 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10)10225 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10)
10226 {
10227 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
10228 }
10229 
10230 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11)10231 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11)
10232 {
10233 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
10234 }
10235 
10236 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12)10237 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12)
10238 {
10239 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
10240 }
10241 
10242 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13)10243 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13)
10244 {
10245 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
10246 }
10247 
10248 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14)10249 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14)
10250 {
10251 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
10252 }
10253 
10254 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15)10255 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15)
10256 {
10257 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
10258 }
10259 
10260 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16)10261 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16)
10262 {
10263 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
10264 }
10265 
10266 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17)10267 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17)
10268 {
10269 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
10270 }
10271 
10272 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18)10273 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18)
10274 {
10275 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18);
10276 }
10277 
10278 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19)10279 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19)
10280 {
10281 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
10282 }
10283 
10284 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20)10285 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20)
10286 {
10287 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
10288 }
10289 
10290 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21)10291 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21)
10292 {
10293 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21);
10294 }
10295 
10296 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22)10297 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22)
10298 {
10299 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22);
10300 }
10301 
10302 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22,typename tuple_type<A23>::transparent_reference a23)10303 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23)
10304 {
10305 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
10306 }
10307 
10308 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22,typename tuple_type<A23>::transparent_reference a23,typename tuple_type<A24>::transparent_reference a24)10309 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24)
10310 {
10311 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24);
10312 }
10313 
10314 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22,typename tuple_type<A23>::transparent_reference a23,typename tuple_type<A24>::transparent_reference a24,typename tuple_type<A25>::transparent_reference a25)10315 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25)
10316 {
10317 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25);
10318 }
10319 
10320 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22,typename tuple_type<A23>::transparent_reference a23,typename tuple_type<A24>::transparent_reference a24,typename tuple_type<A25>::transparent_reference a25,typename tuple_type<A26>::transparent_reference a26)10321 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26)
10322 {
10323 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26);
10324 }
10325 
10326 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22,typename tuple_type<A23>::transparent_reference a23,typename tuple_type<A24>::transparent_reference a24,typename tuple_type<A25>::transparent_reference a25,typename tuple_type<A26>::transparent_reference a26,typename tuple_type<A27>::transparent_reference a27)10327 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27)
10328 {
10329 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27);
10330 }
10331 
10332 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22,typename tuple_type<A23>::transparent_reference a23,typename tuple_type<A24>::transparent_reference a24,typename tuple_type<A25>::transparent_reference a25,typename tuple_type<A26>::transparent_reference a26,typename tuple_type<A27>::transparent_reference a27,typename tuple_type<A28>::transparent_reference a28)10333 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28)
10334 {
10335 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
10336 }
10337 
10338 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22,typename tuple_type<A23>::transparent_reference a23,typename tuple_type<A24>::transparent_reference a24,typename tuple_type<A25>::transparent_reference a25,typename tuple_type<A26>::transparent_reference a26,typename tuple_type<A27>::transparent_reference a27,typename tuple_type<A28>::transparent_reference a28,typename tuple_type<A29>::transparent_reference a29)10339 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28, typename tuple_type<A29>::transparent_reference a29)
10340 {
10341 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
10342 }
10343 
10344 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22,typename tuple_type<A23>::transparent_reference a23,typename tuple_type<A24>::transparent_reference a24,typename tuple_type<A25>::transparent_reference a25,typename tuple_type<A26>::transparent_reference a26,typename tuple_type<A27>::transparent_reference a27,typename tuple_type<A28>::transparent_reference a28,typename tuple_type<A29>::transparent_reference a29,typename tuple_type<A30>::transparent_reference a30)10345 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28, typename tuple_type<A29>::transparent_reference a29, typename tuple_type<A30>::transparent_reference a30)
10346 {
10347 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30);
10348 }
10349 
10350 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
make_tuple(typename tuple_type<A0>::transparent_reference a0,typename tuple_type<A1>::transparent_reference a1,typename tuple_type<A2>::transparent_reference a2,typename tuple_type<A3>::transparent_reference a3,typename tuple_type<A4>::transparent_reference a4,typename tuple_type<A5>::transparent_reference a5,typename tuple_type<A6>::transparent_reference a6,typename tuple_type<A7>::transparent_reference a7,typename tuple_type<A8>::transparent_reference a8,typename tuple_type<A9>::transparent_reference a9,typename tuple_type<A10>::transparent_reference a10,typename tuple_type<A11>::transparent_reference a11,typename tuple_type<A12>::transparent_reference a12,typename tuple_type<A13>::transparent_reference a13,typename tuple_type<A14>::transparent_reference a14,typename tuple_type<A15>::transparent_reference a15,typename tuple_type<A16>::transparent_reference a16,typename tuple_type<A17>::transparent_reference a17,typename tuple_type<A18>::transparent_reference a18,typename tuple_type<A19>::transparent_reference a19,typename tuple_type<A20>::transparent_reference a20,typename tuple_type<A21>::transparent_reference a21,typename tuple_type<A22>::transparent_reference a22,typename tuple_type<A23>::transparent_reference a23,typename tuple_type<A24>::transparent_reference a24,typename tuple_type<A25>::transparent_reference a25,typename tuple_type<A26>::transparent_reference a26,typename tuple_type<A27>::transparent_reference a27,typename tuple_type<A28>::transparent_reference a28,typename tuple_type<A29>::transparent_reference a29,typename tuple_type<A30>::transparent_reference a30,typename tuple_type<A31>::transparent_reference a31)10351 tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28, typename tuple_type<A29>::transparent_reference a29, typename tuple_type<A30>::transparent_reference a30, typename tuple_type<A31>::transparent_reference a31)
10352 {
10353 	return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31);
10354 }
10355 
10356 
10357 }  // namespace type
10358 
10359 
operator >>(object o,type::tuple<> & v)10360 inline type::tuple<>& operator>> (
10361 		object o,
10362 		type::tuple<>& v) {
10363 	if(o.type != type::ARRAY) { throw type_error(); }
10364 	return v;
10365 }
10366 
10367 template <typename A0>
operator >>(object o,type::tuple<A0> & v)10368 type::tuple<A0>& operator>> (
10369 		object o,
10370 		type::tuple<A0>& v) {
10371 	if(o.type != type::ARRAY) { throw type_error(); }
10372 	if(o.via.array.size < 1) { throw type_error(); }
10373 
10374 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10375 	return v;
10376 }
10377 
10378 template <typename A0, typename A1>
operator >>(object o,type::tuple<A0,A1> & v)10379 type::tuple<A0, A1>& operator>> (
10380 		object o,
10381 		type::tuple<A0, A1>& v) {
10382 	if(o.type != type::ARRAY) { throw type_error(); }
10383 	if(o.via.array.size < 2) { throw type_error(); }
10384 
10385 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10386 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10387 	return v;
10388 }
10389 
10390 template <typename A0, typename A1, typename A2>
operator >>(object o,type::tuple<A0,A1,A2> & v)10391 type::tuple<A0, A1, A2>& operator>> (
10392 		object o,
10393 		type::tuple<A0, A1, A2>& v) {
10394 	if(o.type != type::ARRAY) { throw type_error(); }
10395 	if(o.via.array.size < 3) { throw type_error(); }
10396 
10397 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10398 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10399 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10400 	return v;
10401 }
10402 
10403 template <typename A0, typename A1, typename A2, typename A3>
operator >>(object o,type::tuple<A0,A1,A2,A3> & v)10404 type::tuple<A0, A1, A2, A3>& operator>> (
10405 		object o,
10406 		type::tuple<A0, A1, A2, A3>& v) {
10407 	if(o.type != type::ARRAY) { throw type_error(); }
10408 	if(o.via.array.size < 4) { throw type_error(); }
10409 
10410 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10411 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10412 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10413 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10414 	return v;
10415 }
10416 
10417 template <typename A0, typename A1, typename A2, typename A3, typename A4>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4> & v)10418 type::tuple<A0, A1, A2, A3, A4>& operator>> (
10419 		object o,
10420 		type::tuple<A0, A1, A2, A3, A4>& v) {
10421 	if(o.type != type::ARRAY) { throw type_error(); }
10422 	if(o.via.array.size < 5) { throw type_error(); }
10423 
10424 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10425 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10426 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10427 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10428 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10429 	return v;
10430 }
10431 
10432 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5> & v)10433 type::tuple<A0, A1, A2, A3, A4, A5>& operator>> (
10434 		object o,
10435 		type::tuple<A0, A1, A2, A3, A4, A5>& v) {
10436 	if(o.type != type::ARRAY) { throw type_error(); }
10437 	if(o.via.array.size < 6) { throw type_error(); }
10438 
10439 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10440 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10441 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10442 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10443 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10444 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10445 	return v;
10446 }
10447 
10448 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6> & v)10449 type::tuple<A0, A1, A2, A3, A4, A5, A6>& operator>> (
10450 		object o,
10451 		type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) {
10452 	if(o.type != type::ARRAY) { throw type_error(); }
10453 	if(o.via.array.size < 7) { throw type_error(); }
10454 
10455 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10456 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10457 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10458 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10459 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10460 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10461 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10462 	return v;
10463 }
10464 
10465 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7> & v)10466 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& operator>> (
10467 		object o,
10468 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) {
10469 	if(o.type != type::ARRAY) { throw type_error(); }
10470 	if(o.via.array.size < 8) { throw type_error(); }
10471 
10472 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10473 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10474 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10475 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10476 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10477 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10478 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10479 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10480 	return v;
10481 }
10482 
10483 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8> & v)10484 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& operator>> (
10485 		object o,
10486 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) {
10487 	if(o.type != type::ARRAY) { throw type_error(); }
10488 	if(o.via.array.size < 9) { throw type_error(); }
10489 
10490 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10491 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10492 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10493 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10494 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10495 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10496 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10497 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10498 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10499 	return v;
10500 }
10501 
10502 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9> & v)10503 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& operator>> (
10504 		object o,
10505 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) {
10506 	if(o.type != type::ARRAY) { throw type_error(); }
10507 	if(o.via.array.size < 10) { throw type_error(); }
10508 
10509 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10510 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10511 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10512 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10513 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10514 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10515 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10516 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10517 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10518 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10519 	return v;
10520 }
10521 
10522 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10> & v)10523 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& operator>> (
10524 		object o,
10525 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) {
10526 	if(o.type != type::ARRAY) { throw type_error(); }
10527 	if(o.via.array.size < 11) { throw type_error(); }
10528 
10529 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10530 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10531 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10532 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10533 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10534 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10535 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10536 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10537 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10538 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10539 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10540 	return v;
10541 }
10542 
10543 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11> & v)10544 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& operator>> (
10545 		object o,
10546 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) {
10547 	if(o.type != type::ARRAY) { throw type_error(); }
10548 	if(o.via.array.size < 12) { throw type_error(); }
10549 
10550 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10551 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10552 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10553 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10554 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10555 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10556 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10557 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10558 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10559 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10560 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10561 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10562 	return v;
10563 }
10564 
10565 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12> & v)10566 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& operator>> (
10567 		object o,
10568 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) {
10569 	if(o.type != type::ARRAY) { throw type_error(); }
10570 	if(o.via.array.size < 13) { throw type_error(); }
10571 
10572 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10573 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10574 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10575 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10576 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10577 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10578 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10579 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10580 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10581 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10582 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10583 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10584 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10585 	return v;
10586 }
10587 
10588 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13> & v)10589 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& operator>> (
10590 		object o,
10591 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) {
10592 	if(o.type != type::ARRAY) { throw type_error(); }
10593 	if(o.via.array.size < 14) { throw type_error(); }
10594 
10595 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10596 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10597 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10598 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10599 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10600 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10601 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10602 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10603 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10604 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10605 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10606 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10607 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10608 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10609 	return v;
10610 }
10611 
10612 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14> & v)10613 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& operator>> (
10614 		object o,
10615 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) {
10616 	if(o.type != type::ARRAY) { throw type_error(); }
10617 	if(o.via.array.size < 15) { throw type_error(); }
10618 
10619 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10620 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10621 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10622 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10623 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10624 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10625 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10626 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10627 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10628 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10629 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10630 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10631 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10632 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10633 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10634 	return v;
10635 }
10636 
10637 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15> & v)10638 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& operator>> (
10639 		object o,
10640 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) {
10641 	if(o.type != type::ARRAY) { throw type_error(); }
10642 	if(o.via.array.size < 16) { throw type_error(); }
10643 
10644 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10645 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10646 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10647 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10648 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10649 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10650 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10651 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10652 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10653 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10654 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10655 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10656 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10657 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10658 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10659 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10660 	return v;
10661 }
10662 
10663 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16> & v)10664 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& operator>> (
10665 		object o,
10666 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) {
10667 	if(o.type != type::ARRAY) { throw type_error(); }
10668 	if(o.via.array.size < 17) { throw type_error(); }
10669 
10670 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10671 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10672 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10673 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10674 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10675 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10676 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10677 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10678 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10679 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10680 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10681 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10682 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10683 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10684 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10685 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10686 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10687 	return v;
10688 }
10689 
10690 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17> & v)10691 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& operator>> (
10692 		object o,
10693 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) {
10694 	if(o.type != type::ARRAY) { throw type_error(); }
10695 	if(o.via.array.size < 18) { throw type_error(); }
10696 
10697 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10698 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10699 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10700 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10701 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10702 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10703 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10704 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10705 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10706 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10707 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10708 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10709 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10710 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10711 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10712 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10713 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10714 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
10715 	return v;
10716 }
10717 
10718 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18> & v)10719 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& operator>> (
10720 		object o,
10721 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) {
10722 	if(o.type != type::ARRAY) { throw type_error(); }
10723 	if(o.via.array.size < 19) { throw type_error(); }
10724 
10725 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10726 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10727 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10728 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10729 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10730 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10731 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10732 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10733 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10734 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10735 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10736 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10737 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10738 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10739 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10740 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10741 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10742 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
10743 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
10744 	return v;
10745 }
10746 
10747 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19> & v)10748 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& operator>> (
10749 		object o,
10750 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) {
10751 	if(o.type != type::ARRAY) { throw type_error(); }
10752 	if(o.via.array.size < 20) { throw type_error(); }
10753 
10754 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10755 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10756 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10757 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10758 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10759 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10760 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10761 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10762 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10763 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10764 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10765 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10766 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10767 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10768 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10769 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10770 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10771 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
10772 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
10773 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
10774 	return v;
10775 }
10776 
10777 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20> & v)10778 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& operator>> (
10779 		object o,
10780 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) {
10781 	if(o.type != type::ARRAY) { throw type_error(); }
10782 	if(o.via.array.size < 21) { throw type_error(); }
10783 
10784 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10785 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10786 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10787 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10788 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10789 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10790 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10791 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10792 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10793 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10794 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10795 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10796 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10797 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10798 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10799 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10800 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10801 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
10802 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
10803 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
10804 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
10805 	return v;
10806 }
10807 
10808 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21> & v)10809 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& operator>> (
10810 		object o,
10811 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) {
10812 	if(o.type != type::ARRAY) { throw type_error(); }
10813 	if(o.via.array.size < 22) { throw type_error(); }
10814 
10815 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10816 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10817 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10818 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10819 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10820 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10821 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10822 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10823 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10824 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10825 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10826 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10827 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10828 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10829 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10830 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10831 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10832 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
10833 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
10834 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
10835 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
10836 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
10837 	return v;
10838 }
10839 
10840 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22> & v)10841 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& operator>> (
10842 		object o,
10843 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) {
10844 	if(o.type != type::ARRAY) { throw type_error(); }
10845 	if(o.via.array.size < 23) { throw type_error(); }
10846 
10847 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10848 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10849 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10850 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10851 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10852 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10853 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10854 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10855 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10856 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10857 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10858 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10859 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10860 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10861 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10862 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10863 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10864 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
10865 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
10866 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
10867 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
10868 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
10869 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
10870 	return v;
10871 }
10872 
10873 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23> & v)10874 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& operator>> (
10875 		object o,
10876 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) {
10877 	if(o.type != type::ARRAY) { throw type_error(); }
10878 	if(o.via.array.size < 24) { throw type_error(); }
10879 
10880 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10881 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10882 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10883 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10884 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10885 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10886 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10887 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10888 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10889 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10890 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10891 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10892 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10893 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10894 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10895 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10896 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10897 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
10898 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
10899 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
10900 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
10901 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
10902 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
10903 	o.via.array.ptr[23].convert<typename type::tuple_type<A23>::type>(&v.template get<23>());
10904 	return v;
10905 }
10906 
10907 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24> & v)10908 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& operator>> (
10909 		object o,
10910 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) {
10911 	if(o.type != type::ARRAY) { throw type_error(); }
10912 	if(o.via.array.size < 25) { throw type_error(); }
10913 
10914 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10915 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10916 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10917 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10918 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10919 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10920 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10921 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10922 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10923 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10924 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10925 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10926 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10927 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10928 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10929 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10930 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10931 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
10932 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
10933 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
10934 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
10935 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
10936 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
10937 	o.via.array.ptr[23].convert<typename type::tuple_type<A23>::type>(&v.template get<23>());
10938 	o.via.array.ptr[24].convert<typename type::tuple_type<A24>::type>(&v.template get<24>());
10939 	return v;
10940 }
10941 
10942 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25> & v)10943 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& operator>> (
10944 		object o,
10945 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) {
10946 	if(o.type != type::ARRAY) { throw type_error(); }
10947 	if(o.via.array.size < 26) { throw type_error(); }
10948 
10949 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10950 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10951 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10952 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10953 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10954 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10955 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10956 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10957 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10958 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10959 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10960 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10961 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10962 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10963 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
10964 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
10965 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
10966 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
10967 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
10968 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
10969 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
10970 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
10971 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
10972 	o.via.array.ptr[23].convert<typename type::tuple_type<A23>::type>(&v.template get<23>());
10973 	o.via.array.ptr[24].convert<typename type::tuple_type<A24>::type>(&v.template get<24>());
10974 	o.via.array.ptr[25].convert<typename type::tuple_type<A25>::type>(&v.template get<25>());
10975 	return v;
10976 }
10977 
10978 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26> & v)10979 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& operator>> (
10980 		object o,
10981 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) {
10982 	if(o.type != type::ARRAY) { throw type_error(); }
10983 	if(o.via.array.size < 27) { throw type_error(); }
10984 
10985 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
10986 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
10987 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
10988 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
10989 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
10990 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
10991 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
10992 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
10993 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
10994 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
10995 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
10996 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
10997 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
10998 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
10999 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
11000 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
11001 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
11002 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
11003 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
11004 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
11005 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
11006 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
11007 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
11008 	o.via.array.ptr[23].convert<typename type::tuple_type<A23>::type>(&v.template get<23>());
11009 	o.via.array.ptr[24].convert<typename type::tuple_type<A24>::type>(&v.template get<24>());
11010 	o.via.array.ptr[25].convert<typename type::tuple_type<A25>::type>(&v.template get<25>());
11011 	o.via.array.ptr[26].convert<typename type::tuple_type<A26>::type>(&v.template get<26>());
11012 	return v;
11013 }
11014 
11015 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27> & v)11016 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& operator>> (
11017 		object o,
11018 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) {
11019 	if(o.type != type::ARRAY) { throw type_error(); }
11020 	if(o.via.array.size < 28) { throw type_error(); }
11021 
11022 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
11023 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
11024 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
11025 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
11026 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
11027 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
11028 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
11029 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
11030 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
11031 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
11032 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
11033 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
11034 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
11035 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
11036 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
11037 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
11038 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
11039 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
11040 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
11041 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
11042 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
11043 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
11044 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
11045 	o.via.array.ptr[23].convert<typename type::tuple_type<A23>::type>(&v.template get<23>());
11046 	o.via.array.ptr[24].convert<typename type::tuple_type<A24>::type>(&v.template get<24>());
11047 	o.via.array.ptr[25].convert<typename type::tuple_type<A25>::type>(&v.template get<25>());
11048 	o.via.array.ptr[26].convert<typename type::tuple_type<A26>::type>(&v.template get<26>());
11049 	o.via.array.ptr[27].convert<typename type::tuple_type<A27>::type>(&v.template get<27>());
11050 	return v;
11051 }
11052 
11053 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28> & v)11054 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& operator>> (
11055 		object o,
11056 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) {
11057 	if(o.type != type::ARRAY) { throw type_error(); }
11058 	if(o.via.array.size < 29) { throw type_error(); }
11059 
11060 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
11061 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
11062 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
11063 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
11064 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
11065 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
11066 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
11067 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
11068 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
11069 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
11070 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
11071 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
11072 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
11073 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
11074 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
11075 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
11076 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
11077 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
11078 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
11079 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
11080 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
11081 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
11082 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
11083 	o.via.array.ptr[23].convert<typename type::tuple_type<A23>::type>(&v.template get<23>());
11084 	o.via.array.ptr[24].convert<typename type::tuple_type<A24>::type>(&v.template get<24>());
11085 	o.via.array.ptr[25].convert<typename type::tuple_type<A25>::type>(&v.template get<25>());
11086 	o.via.array.ptr[26].convert<typename type::tuple_type<A26>::type>(&v.template get<26>());
11087 	o.via.array.ptr[27].convert<typename type::tuple_type<A27>::type>(&v.template get<27>());
11088 	o.via.array.ptr[28].convert<typename type::tuple_type<A28>::type>(&v.template get<28>());
11089 	return v;
11090 }
11091 
11092 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29> & v)11093 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& operator>> (
11094 		object o,
11095 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) {
11096 	if(o.type != type::ARRAY) { throw type_error(); }
11097 	if(o.via.array.size < 30) { throw type_error(); }
11098 
11099 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
11100 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
11101 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
11102 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
11103 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
11104 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
11105 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
11106 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
11107 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
11108 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
11109 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
11110 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
11111 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
11112 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
11113 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
11114 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
11115 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
11116 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
11117 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
11118 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
11119 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
11120 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
11121 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
11122 	o.via.array.ptr[23].convert<typename type::tuple_type<A23>::type>(&v.template get<23>());
11123 	o.via.array.ptr[24].convert<typename type::tuple_type<A24>::type>(&v.template get<24>());
11124 	o.via.array.ptr[25].convert<typename type::tuple_type<A25>::type>(&v.template get<25>());
11125 	o.via.array.ptr[26].convert<typename type::tuple_type<A26>::type>(&v.template get<26>());
11126 	o.via.array.ptr[27].convert<typename type::tuple_type<A27>::type>(&v.template get<27>());
11127 	o.via.array.ptr[28].convert<typename type::tuple_type<A28>::type>(&v.template get<28>());
11128 	o.via.array.ptr[29].convert<typename type::tuple_type<A29>::type>(&v.template get<29>());
11129 	return v;
11130 }
11131 
11132 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30> & v)11133 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& operator>> (
11134 		object o,
11135 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) {
11136 	if(o.type != type::ARRAY) { throw type_error(); }
11137 	if(o.via.array.size < 31) { throw type_error(); }
11138 
11139 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
11140 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
11141 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
11142 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
11143 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
11144 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
11145 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
11146 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
11147 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
11148 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
11149 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
11150 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
11151 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
11152 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
11153 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
11154 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
11155 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
11156 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
11157 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
11158 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
11159 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
11160 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
11161 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
11162 	o.via.array.ptr[23].convert<typename type::tuple_type<A23>::type>(&v.template get<23>());
11163 	o.via.array.ptr[24].convert<typename type::tuple_type<A24>::type>(&v.template get<24>());
11164 	o.via.array.ptr[25].convert<typename type::tuple_type<A25>::type>(&v.template get<25>());
11165 	o.via.array.ptr[26].convert<typename type::tuple_type<A26>::type>(&v.template get<26>());
11166 	o.via.array.ptr[27].convert<typename type::tuple_type<A27>::type>(&v.template get<27>());
11167 	o.via.array.ptr[28].convert<typename type::tuple_type<A28>::type>(&v.template get<28>());
11168 	o.via.array.ptr[29].convert<typename type::tuple_type<A29>::type>(&v.template get<29>());
11169 	o.via.array.ptr[30].convert<typename type::tuple_type<A30>::type>(&v.template get<30>());
11170 	return v;
11171 }
11172 
11173 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
operator >>(object o,type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31> & v)11174 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& operator>> (
11175 		object o,
11176 		type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) {
11177 	if(o.type != type::ARRAY) { throw type_error(); }
11178 	if(o.via.array.size < 32) { throw type_error(); }
11179 
11180 	o.via.array.ptr[0].convert<typename type::tuple_type<A0>::type>(&v.template get<0>());
11181 	o.via.array.ptr[1].convert<typename type::tuple_type<A1>::type>(&v.template get<1>());
11182 	o.via.array.ptr[2].convert<typename type::tuple_type<A2>::type>(&v.template get<2>());
11183 	o.via.array.ptr[3].convert<typename type::tuple_type<A3>::type>(&v.template get<3>());
11184 	o.via.array.ptr[4].convert<typename type::tuple_type<A4>::type>(&v.template get<4>());
11185 	o.via.array.ptr[5].convert<typename type::tuple_type<A5>::type>(&v.template get<5>());
11186 	o.via.array.ptr[6].convert<typename type::tuple_type<A6>::type>(&v.template get<6>());
11187 	o.via.array.ptr[7].convert<typename type::tuple_type<A7>::type>(&v.template get<7>());
11188 	o.via.array.ptr[8].convert<typename type::tuple_type<A8>::type>(&v.template get<8>());
11189 	o.via.array.ptr[9].convert<typename type::tuple_type<A9>::type>(&v.template get<9>());
11190 	o.via.array.ptr[10].convert<typename type::tuple_type<A10>::type>(&v.template get<10>());
11191 	o.via.array.ptr[11].convert<typename type::tuple_type<A11>::type>(&v.template get<11>());
11192 	o.via.array.ptr[12].convert<typename type::tuple_type<A12>::type>(&v.template get<12>());
11193 	o.via.array.ptr[13].convert<typename type::tuple_type<A13>::type>(&v.template get<13>());
11194 	o.via.array.ptr[14].convert<typename type::tuple_type<A14>::type>(&v.template get<14>());
11195 	o.via.array.ptr[15].convert<typename type::tuple_type<A15>::type>(&v.template get<15>());
11196 	o.via.array.ptr[16].convert<typename type::tuple_type<A16>::type>(&v.template get<16>());
11197 	o.via.array.ptr[17].convert<typename type::tuple_type<A17>::type>(&v.template get<17>());
11198 	o.via.array.ptr[18].convert<typename type::tuple_type<A18>::type>(&v.template get<18>());
11199 	o.via.array.ptr[19].convert<typename type::tuple_type<A19>::type>(&v.template get<19>());
11200 	o.via.array.ptr[20].convert<typename type::tuple_type<A20>::type>(&v.template get<20>());
11201 	o.via.array.ptr[21].convert<typename type::tuple_type<A21>::type>(&v.template get<21>());
11202 	o.via.array.ptr[22].convert<typename type::tuple_type<A22>::type>(&v.template get<22>());
11203 	o.via.array.ptr[23].convert<typename type::tuple_type<A23>::type>(&v.template get<23>());
11204 	o.via.array.ptr[24].convert<typename type::tuple_type<A24>::type>(&v.template get<24>());
11205 	o.via.array.ptr[25].convert<typename type::tuple_type<A25>::type>(&v.template get<25>());
11206 	o.via.array.ptr[26].convert<typename type::tuple_type<A26>::type>(&v.template get<26>());
11207 	o.via.array.ptr[27].convert<typename type::tuple_type<A27>::type>(&v.template get<27>());
11208 	o.via.array.ptr[28].convert<typename type::tuple_type<A28>::type>(&v.template get<28>());
11209 	o.via.array.ptr[29].convert<typename type::tuple_type<A29>::type>(&v.template get<29>());
11210 	o.via.array.ptr[30].convert<typename type::tuple_type<A30>::type>(&v.template get<30>());
11211 	o.via.array.ptr[31].convert<typename type::tuple_type<A31>::type>(&v.template get<31>());
11212 	return v;
11213 }
11214 
11215 
11216 template <typename Stream>
operator <<(packer<Stream> & o,const type::tuple<> & v)11217 const packer<Stream>& operator<< (
11218 		packer<Stream>& o,
11219 		const type::tuple<>& v) {
11220 	o.pack_array(0);
11221 	return o;
11222 }
11223 
11224 template <typename Stream, typename A0>
operator <<(packer<Stream> & o,const type::tuple<A0> & v)11225 const packer<Stream>& operator<< (
11226 		packer<Stream>& o,
11227 		const type::tuple<A0>& v) {
11228 	o.pack_array(1);
11229 
11230 	o.pack(v.template get<0>());
11231 	return o;
11232 }
11233 
11234 template <typename Stream, typename A0, typename A1>
operator <<(packer<Stream> & o,const type::tuple<A0,A1> & v)11235 const packer<Stream>& operator<< (
11236 		packer<Stream>& o,
11237 		const type::tuple<A0, A1>& v) {
11238 	o.pack_array(2);
11239 
11240 	o.pack(v.template get<0>());
11241 	o.pack(v.template get<1>());
11242 	return o;
11243 }
11244 
11245 template <typename Stream, typename A0, typename A1, typename A2>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2> & v)11246 const packer<Stream>& operator<< (
11247 		packer<Stream>& o,
11248 		const type::tuple<A0, A1, A2>& v) {
11249 	o.pack_array(3);
11250 
11251 	o.pack(v.template get<0>());
11252 	o.pack(v.template get<1>());
11253 	o.pack(v.template get<2>());
11254 	return o;
11255 }
11256 
11257 template <typename Stream, typename A0, typename A1, typename A2, typename A3>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3> & v)11258 const packer<Stream>& operator<< (
11259 		packer<Stream>& o,
11260 		const type::tuple<A0, A1, A2, A3>& v) {
11261 	o.pack_array(4);
11262 
11263 	o.pack(v.template get<0>());
11264 	o.pack(v.template get<1>());
11265 	o.pack(v.template get<2>());
11266 	o.pack(v.template get<3>());
11267 	return o;
11268 }
11269 
11270 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4> & v)11271 const packer<Stream>& operator<< (
11272 		packer<Stream>& o,
11273 		const type::tuple<A0, A1, A2, A3, A4>& v) {
11274 	o.pack_array(5);
11275 
11276 	o.pack(v.template get<0>());
11277 	o.pack(v.template get<1>());
11278 	o.pack(v.template get<2>());
11279 	o.pack(v.template get<3>());
11280 	o.pack(v.template get<4>());
11281 	return o;
11282 }
11283 
11284 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5> & v)11285 const packer<Stream>& operator<< (
11286 		packer<Stream>& o,
11287 		const type::tuple<A0, A1, A2, A3, A4, A5>& v) {
11288 	o.pack_array(6);
11289 
11290 	o.pack(v.template get<0>());
11291 	o.pack(v.template get<1>());
11292 	o.pack(v.template get<2>());
11293 	o.pack(v.template get<3>());
11294 	o.pack(v.template get<4>());
11295 	o.pack(v.template get<5>());
11296 	return o;
11297 }
11298 
11299 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6> & v)11300 const packer<Stream>& operator<< (
11301 		packer<Stream>& o,
11302 		const type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) {
11303 	o.pack_array(7);
11304 
11305 	o.pack(v.template get<0>());
11306 	o.pack(v.template get<1>());
11307 	o.pack(v.template get<2>());
11308 	o.pack(v.template get<3>());
11309 	o.pack(v.template get<4>());
11310 	o.pack(v.template get<5>());
11311 	o.pack(v.template get<6>());
11312 	return o;
11313 }
11314 
11315 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7> & v)11316 const packer<Stream>& operator<< (
11317 		packer<Stream>& o,
11318 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) {
11319 	o.pack_array(8);
11320 
11321 	o.pack(v.template get<0>());
11322 	o.pack(v.template get<1>());
11323 	o.pack(v.template get<2>());
11324 	o.pack(v.template get<3>());
11325 	o.pack(v.template get<4>());
11326 	o.pack(v.template get<5>());
11327 	o.pack(v.template get<6>());
11328 	o.pack(v.template get<7>());
11329 	return o;
11330 }
11331 
11332 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8> & v)11333 const packer<Stream>& operator<< (
11334 		packer<Stream>& o,
11335 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) {
11336 	o.pack_array(9);
11337 
11338 	o.pack(v.template get<0>());
11339 	o.pack(v.template get<1>());
11340 	o.pack(v.template get<2>());
11341 	o.pack(v.template get<3>());
11342 	o.pack(v.template get<4>());
11343 	o.pack(v.template get<5>());
11344 	o.pack(v.template get<6>());
11345 	o.pack(v.template get<7>());
11346 	o.pack(v.template get<8>());
11347 	return o;
11348 }
11349 
11350 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9> & v)11351 const packer<Stream>& operator<< (
11352 		packer<Stream>& o,
11353 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) {
11354 	o.pack_array(10);
11355 
11356 	o.pack(v.template get<0>());
11357 	o.pack(v.template get<1>());
11358 	o.pack(v.template get<2>());
11359 	o.pack(v.template get<3>());
11360 	o.pack(v.template get<4>());
11361 	o.pack(v.template get<5>());
11362 	o.pack(v.template get<6>());
11363 	o.pack(v.template get<7>());
11364 	o.pack(v.template get<8>());
11365 	o.pack(v.template get<9>());
11366 	return o;
11367 }
11368 
11369 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10> & v)11370 const packer<Stream>& operator<< (
11371 		packer<Stream>& o,
11372 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) {
11373 	o.pack_array(11);
11374 
11375 	o.pack(v.template get<0>());
11376 	o.pack(v.template get<1>());
11377 	o.pack(v.template get<2>());
11378 	o.pack(v.template get<3>());
11379 	o.pack(v.template get<4>());
11380 	o.pack(v.template get<5>());
11381 	o.pack(v.template get<6>());
11382 	o.pack(v.template get<7>());
11383 	o.pack(v.template get<8>());
11384 	o.pack(v.template get<9>());
11385 	o.pack(v.template get<10>());
11386 	return o;
11387 }
11388 
11389 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11> & v)11390 const packer<Stream>& operator<< (
11391 		packer<Stream>& o,
11392 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) {
11393 	o.pack_array(12);
11394 
11395 	o.pack(v.template get<0>());
11396 	o.pack(v.template get<1>());
11397 	o.pack(v.template get<2>());
11398 	o.pack(v.template get<3>());
11399 	o.pack(v.template get<4>());
11400 	o.pack(v.template get<5>());
11401 	o.pack(v.template get<6>());
11402 	o.pack(v.template get<7>());
11403 	o.pack(v.template get<8>());
11404 	o.pack(v.template get<9>());
11405 	o.pack(v.template get<10>());
11406 	o.pack(v.template get<11>());
11407 	return o;
11408 }
11409 
11410 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12> & v)11411 const packer<Stream>& operator<< (
11412 		packer<Stream>& o,
11413 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) {
11414 	o.pack_array(13);
11415 
11416 	o.pack(v.template get<0>());
11417 	o.pack(v.template get<1>());
11418 	o.pack(v.template get<2>());
11419 	o.pack(v.template get<3>());
11420 	o.pack(v.template get<4>());
11421 	o.pack(v.template get<5>());
11422 	o.pack(v.template get<6>());
11423 	o.pack(v.template get<7>());
11424 	o.pack(v.template get<8>());
11425 	o.pack(v.template get<9>());
11426 	o.pack(v.template get<10>());
11427 	o.pack(v.template get<11>());
11428 	o.pack(v.template get<12>());
11429 	return o;
11430 }
11431 
11432 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13> & v)11433 const packer<Stream>& operator<< (
11434 		packer<Stream>& o,
11435 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) {
11436 	o.pack_array(14);
11437 
11438 	o.pack(v.template get<0>());
11439 	o.pack(v.template get<1>());
11440 	o.pack(v.template get<2>());
11441 	o.pack(v.template get<3>());
11442 	o.pack(v.template get<4>());
11443 	o.pack(v.template get<5>());
11444 	o.pack(v.template get<6>());
11445 	o.pack(v.template get<7>());
11446 	o.pack(v.template get<8>());
11447 	o.pack(v.template get<9>());
11448 	o.pack(v.template get<10>());
11449 	o.pack(v.template get<11>());
11450 	o.pack(v.template get<12>());
11451 	o.pack(v.template get<13>());
11452 	return o;
11453 }
11454 
11455 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14> & v)11456 const packer<Stream>& operator<< (
11457 		packer<Stream>& o,
11458 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) {
11459 	o.pack_array(15);
11460 
11461 	o.pack(v.template get<0>());
11462 	o.pack(v.template get<1>());
11463 	o.pack(v.template get<2>());
11464 	o.pack(v.template get<3>());
11465 	o.pack(v.template get<4>());
11466 	o.pack(v.template get<5>());
11467 	o.pack(v.template get<6>());
11468 	o.pack(v.template get<7>());
11469 	o.pack(v.template get<8>());
11470 	o.pack(v.template get<9>());
11471 	o.pack(v.template get<10>());
11472 	o.pack(v.template get<11>());
11473 	o.pack(v.template get<12>());
11474 	o.pack(v.template get<13>());
11475 	o.pack(v.template get<14>());
11476 	return o;
11477 }
11478 
11479 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15> & v)11480 const packer<Stream>& operator<< (
11481 		packer<Stream>& o,
11482 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) {
11483 	o.pack_array(16);
11484 
11485 	o.pack(v.template get<0>());
11486 	o.pack(v.template get<1>());
11487 	o.pack(v.template get<2>());
11488 	o.pack(v.template get<3>());
11489 	o.pack(v.template get<4>());
11490 	o.pack(v.template get<5>());
11491 	o.pack(v.template get<6>());
11492 	o.pack(v.template get<7>());
11493 	o.pack(v.template get<8>());
11494 	o.pack(v.template get<9>());
11495 	o.pack(v.template get<10>());
11496 	o.pack(v.template get<11>());
11497 	o.pack(v.template get<12>());
11498 	o.pack(v.template get<13>());
11499 	o.pack(v.template get<14>());
11500 	o.pack(v.template get<15>());
11501 	return o;
11502 }
11503 
11504 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16> & v)11505 const packer<Stream>& operator<< (
11506 		packer<Stream>& o,
11507 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) {
11508 	o.pack_array(17);
11509 
11510 	o.pack(v.template get<0>());
11511 	o.pack(v.template get<1>());
11512 	o.pack(v.template get<2>());
11513 	o.pack(v.template get<3>());
11514 	o.pack(v.template get<4>());
11515 	o.pack(v.template get<5>());
11516 	o.pack(v.template get<6>());
11517 	o.pack(v.template get<7>());
11518 	o.pack(v.template get<8>());
11519 	o.pack(v.template get<9>());
11520 	o.pack(v.template get<10>());
11521 	o.pack(v.template get<11>());
11522 	o.pack(v.template get<12>());
11523 	o.pack(v.template get<13>());
11524 	o.pack(v.template get<14>());
11525 	o.pack(v.template get<15>());
11526 	o.pack(v.template get<16>());
11527 	return o;
11528 }
11529 
11530 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17> & v)11531 const packer<Stream>& operator<< (
11532 		packer<Stream>& o,
11533 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) {
11534 	o.pack_array(18);
11535 
11536 	o.pack(v.template get<0>());
11537 	o.pack(v.template get<1>());
11538 	o.pack(v.template get<2>());
11539 	o.pack(v.template get<3>());
11540 	o.pack(v.template get<4>());
11541 	o.pack(v.template get<5>());
11542 	o.pack(v.template get<6>());
11543 	o.pack(v.template get<7>());
11544 	o.pack(v.template get<8>());
11545 	o.pack(v.template get<9>());
11546 	o.pack(v.template get<10>());
11547 	o.pack(v.template get<11>());
11548 	o.pack(v.template get<12>());
11549 	o.pack(v.template get<13>());
11550 	o.pack(v.template get<14>());
11551 	o.pack(v.template get<15>());
11552 	o.pack(v.template get<16>());
11553 	o.pack(v.template get<17>());
11554 	return o;
11555 }
11556 
11557 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18> & v)11558 const packer<Stream>& operator<< (
11559 		packer<Stream>& o,
11560 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) {
11561 	o.pack_array(19);
11562 
11563 	o.pack(v.template get<0>());
11564 	o.pack(v.template get<1>());
11565 	o.pack(v.template get<2>());
11566 	o.pack(v.template get<3>());
11567 	o.pack(v.template get<4>());
11568 	o.pack(v.template get<5>());
11569 	o.pack(v.template get<6>());
11570 	o.pack(v.template get<7>());
11571 	o.pack(v.template get<8>());
11572 	o.pack(v.template get<9>());
11573 	o.pack(v.template get<10>());
11574 	o.pack(v.template get<11>());
11575 	o.pack(v.template get<12>());
11576 	o.pack(v.template get<13>());
11577 	o.pack(v.template get<14>());
11578 	o.pack(v.template get<15>());
11579 	o.pack(v.template get<16>());
11580 	o.pack(v.template get<17>());
11581 	o.pack(v.template get<18>());
11582 	return o;
11583 }
11584 
11585 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19> & v)11586 const packer<Stream>& operator<< (
11587 		packer<Stream>& o,
11588 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) {
11589 	o.pack_array(20);
11590 
11591 	o.pack(v.template get<0>());
11592 	o.pack(v.template get<1>());
11593 	o.pack(v.template get<2>());
11594 	o.pack(v.template get<3>());
11595 	o.pack(v.template get<4>());
11596 	o.pack(v.template get<5>());
11597 	o.pack(v.template get<6>());
11598 	o.pack(v.template get<7>());
11599 	o.pack(v.template get<8>());
11600 	o.pack(v.template get<9>());
11601 	o.pack(v.template get<10>());
11602 	o.pack(v.template get<11>());
11603 	o.pack(v.template get<12>());
11604 	o.pack(v.template get<13>());
11605 	o.pack(v.template get<14>());
11606 	o.pack(v.template get<15>());
11607 	o.pack(v.template get<16>());
11608 	o.pack(v.template get<17>());
11609 	o.pack(v.template get<18>());
11610 	o.pack(v.template get<19>());
11611 	return o;
11612 }
11613 
11614 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20> & v)11615 const packer<Stream>& operator<< (
11616 		packer<Stream>& o,
11617 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) {
11618 	o.pack_array(21);
11619 
11620 	o.pack(v.template get<0>());
11621 	o.pack(v.template get<1>());
11622 	o.pack(v.template get<2>());
11623 	o.pack(v.template get<3>());
11624 	o.pack(v.template get<4>());
11625 	o.pack(v.template get<5>());
11626 	o.pack(v.template get<6>());
11627 	o.pack(v.template get<7>());
11628 	o.pack(v.template get<8>());
11629 	o.pack(v.template get<9>());
11630 	o.pack(v.template get<10>());
11631 	o.pack(v.template get<11>());
11632 	o.pack(v.template get<12>());
11633 	o.pack(v.template get<13>());
11634 	o.pack(v.template get<14>());
11635 	o.pack(v.template get<15>());
11636 	o.pack(v.template get<16>());
11637 	o.pack(v.template get<17>());
11638 	o.pack(v.template get<18>());
11639 	o.pack(v.template get<19>());
11640 	o.pack(v.template get<20>());
11641 	return o;
11642 }
11643 
11644 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21> & v)11645 const packer<Stream>& operator<< (
11646 		packer<Stream>& o,
11647 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) {
11648 	o.pack_array(22);
11649 
11650 	o.pack(v.template get<0>());
11651 	o.pack(v.template get<1>());
11652 	o.pack(v.template get<2>());
11653 	o.pack(v.template get<3>());
11654 	o.pack(v.template get<4>());
11655 	o.pack(v.template get<5>());
11656 	o.pack(v.template get<6>());
11657 	o.pack(v.template get<7>());
11658 	o.pack(v.template get<8>());
11659 	o.pack(v.template get<9>());
11660 	o.pack(v.template get<10>());
11661 	o.pack(v.template get<11>());
11662 	o.pack(v.template get<12>());
11663 	o.pack(v.template get<13>());
11664 	o.pack(v.template get<14>());
11665 	o.pack(v.template get<15>());
11666 	o.pack(v.template get<16>());
11667 	o.pack(v.template get<17>());
11668 	o.pack(v.template get<18>());
11669 	o.pack(v.template get<19>());
11670 	o.pack(v.template get<20>());
11671 	o.pack(v.template get<21>());
11672 	return o;
11673 }
11674 
11675 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22> & v)11676 const packer<Stream>& operator<< (
11677 		packer<Stream>& o,
11678 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) {
11679 	o.pack_array(23);
11680 
11681 	o.pack(v.template get<0>());
11682 	o.pack(v.template get<1>());
11683 	o.pack(v.template get<2>());
11684 	o.pack(v.template get<3>());
11685 	o.pack(v.template get<4>());
11686 	o.pack(v.template get<5>());
11687 	o.pack(v.template get<6>());
11688 	o.pack(v.template get<7>());
11689 	o.pack(v.template get<8>());
11690 	o.pack(v.template get<9>());
11691 	o.pack(v.template get<10>());
11692 	o.pack(v.template get<11>());
11693 	o.pack(v.template get<12>());
11694 	o.pack(v.template get<13>());
11695 	o.pack(v.template get<14>());
11696 	o.pack(v.template get<15>());
11697 	o.pack(v.template get<16>());
11698 	o.pack(v.template get<17>());
11699 	o.pack(v.template get<18>());
11700 	o.pack(v.template get<19>());
11701 	o.pack(v.template get<20>());
11702 	o.pack(v.template get<21>());
11703 	o.pack(v.template get<22>());
11704 	return o;
11705 }
11706 
11707 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23> & v)11708 const packer<Stream>& operator<< (
11709 		packer<Stream>& o,
11710 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) {
11711 	o.pack_array(24);
11712 
11713 	o.pack(v.template get<0>());
11714 	o.pack(v.template get<1>());
11715 	o.pack(v.template get<2>());
11716 	o.pack(v.template get<3>());
11717 	o.pack(v.template get<4>());
11718 	o.pack(v.template get<5>());
11719 	o.pack(v.template get<6>());
11720 	o.pack(v.template get<7>());
11721 	o.pack(v.template get<8>());
11722 	o.pack(v.template get<9>());
11723 	o.pack(v.template get<10>());
11724 	o.pack(v.template get<11>());
11725 	o.pack(v.template get<12>());
11726 	o.pack(v.template get<13>());
11727 	o.pack(v.template get<14>());
11728 	o.pack(v.template get<15>());
11729 	o.pack(v.template get<16>());
11730 	o.pack(v.template get<17>());
11731 	o.pack(v.template get<18>());
11732 	o.pack(v.template get<19>());
11733 	o.pack(v.template get<20>());
11734 	o.pack(v.template get<21>());
11735 	o.pack(v.template get<22>());
11736 	o.pack(v.template get<23>());
11737 	return o;
11738 }
11739 
11740 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24> & v)11741 const packer<Stream>& operator<< (
11742 		packer<Stream>& o,
11743 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) {
11744 	o.pack_array(25);
11745 
11746 	o.pack(v.template get<0>());
11747 	o.pack(v.template get<1>());
11748 	o.pack(v.template get<2>());
11749 	o.pack(v.template get<3>());
11750 	o.pack(v.template get<4>());
11751 	o.pack(v.template get<5>());
11752 	o.pack(v.template get<6>());
11753 	o.pack(v.template get<7>());
11754 	o.pack(v.template get<8>());
11755 	o.pack(v.template get<9>());
11756 	o.pack(v.template get<10>());
11757 	o.pack(v.template get<11>());
11758 	o.pack(v.template get<12>());
11759 	o.pack(v.template get<13>());
11760 	o.pack(v.template get<14>());
11761 	o.pack(v.template get<15>());
11762 	o.pack(v.template get<16>());
11763 	o.pack(v.template get<17>());
11764 	o.pack(v.template get<18>());
11765 	o.pack(v.template get<19>());
11766 	o.pack(v.template get<20>());
11767 	o.pack(v.template get<21>());
11768 	o.pack(v.template get<22>());
11769 	o.pack(v.template get<23>());
11770 	o.pack(v.template get<24>());
11771 	return o;
11772 }
11773 
11774 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25> & v)11775 const packer<Stream>& operator<< (
11776 		packer<Stream>& o,
11777 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) {
11778 	o.pack_array(26);
11779 
11780 	o.pack(v.template get<0>());
11781 	o.pack(v.template get<1>());
11782 	o.pack(v.template get<2>());
11783 	o.pack(v.template get<3>());
11784 	o.pack(v.template get<4>());
11785 	o.pack(v.template get<5>());
11786 	o.pack(v.template get<6>());
11787 	o.pack(v.template get<7>());
11788 	o.pack(v.template get<8>());
11789 	o.pack(v.template get<9>());
11790 	o.pack(v.template get<10>());
11791 	o.pack(v.template get<11>());
11792 	o.pack(v.template get<12>());
11793 	o.pack(v.template get<13>());
11794 	o.pack(v.template get<14>());
11795 	o.pack(v.template get<15>());
11796 	o.pack(v.template get<16>());
11797 	o.pack(v.template get<17>());
11798 	o.pack(v.template get<18>());
11799 	o.pack(v.template get<19>());
11800 	o.pack(v.template get<20>());
11801 	o.pack(v.template get<21>());
11802 	o.pack(v.template get<22>());
11803 	o.pack(v.template get<23>());
11804 	o.pack(v.template get<24>());
11805 	o.pack(v.template get<25>());
11806 	return o;
11807 }
11808 
11809 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26> & v)11810 const packer<Stream>& operator<< (
11811 		packer<Stream>& o,
11812 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) {
11813 	o.pack_array(27);
11814 
11815 	o.pack(v.template get<0>());
11816 	o.pack(v.template get<1>());
11817 	o.pack(v.template get<2>());
11818 	o.pack(v.template get<3>());
11819 	o.pack(v.template get<4>());
11820 	o.pack(v.template get<5>());
11821 	o.pack(v.template get<6>());
11822 	o.pack(v.template get<7>());
11823 	o.pack(v.template get<8>());
11824 	o.pack(v.template get<9>());
11825 	o.pack(v.template get<10>());
11826 	o.pack(v.template get<11>());
11827 	o.pack(v.template get<12>());
11828 	o.pack(v.template get<13>());
11829 	o.pack(v.template get<14>());
11830 	o.pack(v.template get<15>());
11831 	o.pack(v.template get<16>());
11832 	o.pack(v.template get<17>());
11833 	o.pack(v.template get<18>());
11834 	o.pack(v.template get<19>());
11835 	o.pack(v.template get<20>());
11836 	o.pack(v.template get<21>());
11837 	o.pack(v.template get<22>());
11838 	o.pack(v.template get<23>());
11839 	o.pack(v.template get<24>());
11840 	o.pack(v.template get<25>());
11841 	o.pack(v.template get<26>());
11842 	return o;
11843 }
11844 
11845 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27> & v)11846 const packer<Stream>& operator<< (
11847 		packer<Stream>& o,
11848 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) {
11849 	o.pack_array(28);
11850 
11851 	o.pack(v.template get<0>());
11852 	o.pack(v.template get<1>());
11853 	o.pack(v.template get<2>());
11854 	o.pack(v.template get<3>());
11855 	o.pack(v.template get<4>());
11856 	o.pack(v.template get<5>());
11857 	o.pack(v.template get<6>());
11858 	o.pack(v.template get<7>());
11859 	o.pack(v.template get<8>());
11860 	o.pack(v.template get<9>());
11861 	o.pack(v.template get<10>());
11862 	o.pack(v.template get<11>());
11863 	o.pack(v.template get<12>());
11864 	o.pack(v.template get<13>());
11865 	o.pack(v.template get<14>());
11866 	o.pack(v.template get<15>());
11867 	o.pack(v.template get<16>());
11868 	o.pack(v.template get<17>());
11869 	o.pack(v.template get<18>());
11870 	o.pack(v.template get<19>());
11871 	o.pack(v.template get<20>());
11872 	o.pack(v.template get<21>());
11873 	o.pack(v.template get<22>());
11874 	o.pack(v.template get<23>());
11875 	o.pack(v.template get<24>());
11876 	o.pack(v.template get<25>());
11877 	o.pack(v.template get<26>());
11878 	o.pack(v.template get<27>());
11879 	return o;
11880 }
11881 
11882 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28> & v)11883 const packer<Stream>& operator<< (
11884 		packer<Stream>& o,
11885 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) {
11886 	o.pack_array(29);
11887 
11888 	o.pack(v.template get<0>());
11889 	o.pack(v.template get<1>());
11890 	o.pack(v.template get<2>());
11891 	o.pack(v.template get<3>());
11892 	o.pack(v.template get<4>());
11893 	o.pack(v.template get<5>());
11894 	o.pack(v.template get<6>());
11895 	o.pack(v.template get<7>());
11896 	o.pack(v.template get<8>());
11897 	o.pack(v.template get<9>());
11898 	o.pack(v.template get<10>());
11899 	o.pack(v.template get<11>());
11900 	o.pack(v.template get<12>());
11901 	o.pack(v.template get<13>());
11902 	o.pack(v.template get<14>());
11903 	o.pack(v.template get<15>());
11904 	o.pack(v.template get<16>());
11905 	o.pack(v.template get<17>());
11906 	o.pack(v.template get<18>());
11907 	o.pack(v.template get<19>());
11908 	o.pack(v.template get<20>());
11909 	o.pack(v.template get<21>());
11910 	o.pack(v.template get<22>());
11911 	o.pack(v.template get<23>());
11912 	o.pack(v.template get<24>());
11913 	o.pack(v.template get<25>());
11914 	o.pack(v.template get<26>());
11915 	o.pack(v.template get<27>());
11916 	o.pack(v.template get<28>());
11917 	return o;
11918 }
11919 
11920 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29> & v)11921 const packer<Stream>& operator<< (
11922 		packer<Stream>& o,
11923 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) {
11924 	o.pack_array(30);
11925 
11926 	o.pack(v.template get<0>());
11927 	o.pack(v.template get<1>());
11928 	o.pack(v.template get<2>());
11929 	o.pack(v.template get<3>());
11930 	o.pack(v.template get<4>());
11931 	o.pack(v.template get<5>());
11932 	o.pack(v.template get<6>());
11933 	o.pack(v.template get<7>());
11934 	o.pack(v.template get<8>());
11935 	o.pack(v.template get<9>());
11936 	o.pack(v.template get<10>());
11937 	o.pack(v.template get<11>());
11938 	o.pack(v.template get<12>());
11939 	o.pack(v.template get<13>());
11940 	o.pack(v.template get<14>());
11941 	o.pack(v.template get<15>());
11942 	o.pack(v.template get<16>());
11943 	o.pack(v.template get<17>());
11944 	o.pack(v.template get<18>());
11945 	o.pack(v.template get<19>());
11946 	o.pack(v.template get<20>());
11947 	o.pack(v.template get<21>());
11948 	o.pack(v.template get<22>());
11949 	o.pack(v.template get<23>());
11950 	o.pack(v.template get<24>());
11951 	o.pack(v.template get<25>());
11952 	o.pack(v.template get<26>());
11953 	o.pack(v.template get<27>());
11954 	o.pack(v.template get<28>());
11955 	o.pack(v.template get<29>());
11956 	return o;
11957 }
11958 
11959 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30> & v)11960 const packer<Stream>& operator<< (
11961 		packer<Stream>& o,
11962 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) {
11963 	o.pack_array(31);
11964 
11965 	o.pack(v.template get<0>());
11966 	o.pack(v.template get<1>());
11967 	o.pack(v.template get<2>());
11968 	o.pack(v.template get<3>());
11969 	o.pack(v.template get<4>());
11970 	o.pack(v.template get<5>());
11971 	o.pack(v.template get<6>());
11972 	o.pack(v.template get<7>());
11973 	o.pack(v.template get<8>());
11974 	o.pack(v.template get<9>());
11975 	o.pack(v.template get<10>());
11976 	o.pack(v.template get<11>());
11977 	o.pack(v.template get<12>());
11978 	o.pack(v.template get<13>());
11979 	o.pack(v.template get<14>());
11980 	o.pack(v.template get<15>());
11981 	o.pack(v.template get<16>());
11982 	o.pack(v.template get<17>());
11983 	o.pack(v.template get<18>());
11984 	o.pack(v.template get<19>());
11985 	o.pack(v.template get<20>());
11986 	o.pack(v.template get<21>());
11987 	o.pack(v.template get<22>());
11988 	o.pack(v.template get<23>());
11989 	o.pack(v.template get<24>());
11990 	o.pack(v.template get<25>());
11991 	o.pack(v.template get<26>());
11992 	o.pack(v.template get<27>());
11993 	o.pack(v.template get<28>());
11994 	o.pack(v.template get<29>());
11995 	o.pack(v.template get<30>());
11996 	return o;
11997 }
11998 
11999 template <typename Stream, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
operator <<(packer<Stream> & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31> & v)12000 const packer<Stream>& operator<< (
12001 		packer<Stream>& o,
12002 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) {
12003 	o.pack_array(32);
12004 
12005 	o.pack(v.template get<0>());
12006 	o.pack(v.template get<1>());
12007 	o.pack(v.template get<2>());
12008 	o.pack(v.template get<3>());
12009 	o.pack(v.template get<4>());
12010 	o.pack(v.template get<5>());
12011 	o.pack(v.template get<6>());
12012 	o.pack(v.template get<7>());
12013 	o.pack(v.template get<8>());
12014 	o.pack(v.template get<9>());
12015 	o.pack(v.template get<10>());
12016 	o.pack(v.template get<11>());
12017 	o.pack(v.template get<12>());
12018 	o.pack(v.template get<13>());
12019 	o.pack(v.template get<14>());
12020 	o.pack(v.template get<15>());
12021 	o.pack(v.template get<16>());
12022 	o.pack(v.template get<17>());
12023 	o.pack(v.template get<18>());
12024 	o.pack(v.template get<19>());
12025 	o.pack(v.template get<20>());
12026 	o.pack(v.template get<21>());
12027 	o.pack(v.template get<22>());
12028 	o.pack(v.template get<23>());
12029 	o.pack(v.template get<24>());
12030 	o.pack(v.template get<25>());
12031 	o.pack(v.template get<26>());
12032 	o.pack(v.template get<27>());
12033 	o.pack(v.template get<28>());
12034 	o.pack(v.template get<29>());
12035 	o.pack(v.template get<30>());
12036 	o.pack(v.template get<31>());
12037 	return o;
12038 }
12039 
12040 
operator <<(object::with_zone & o,const type::tuple<> & v)12041 inline void operator<< (
12042 		object::with_zone& o,
12043 		const type::tuple<>& v) {
12044 	o.type = type::ARRAY;
12045 	o.via.array.ptr = NULL;
12046 	o.via.array.size = 0;
12047 }
12048 
12049 template <typename A0>
operator <<(object::with_zone & o,const type::tuple<A0> & v)12050 inline void operator<< (
12051 		object::with_zone& o,
12052 		const type::tuple<A0>& v) {
12053 	o.type = type::ARRAY;
12054 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*1);
12055 	o.via.array.size = 1;
12056 
12057 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12058 }
12059 
12060 template <typename A0, typename A1>
operator <<(object::with_zone & o,const type::tuple<A0,A1> & v)12061 inline void operator<< (
12062 		object::with_zone& o,
12063 		const type::tuple<A0, A1>& v) {
12064 	o.type = type::ARRAY;
12065 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*2);
12066 	o.via.array.size = 2;
12067 
12068 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12069 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12070 }
12071 
12072 template <typename A0, typename A1, typename A2>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2> & v)12073 inline void operator<< (
12074 		object::with_zone& o,
12075 		const type::tuple<A0, A1, A2>& v) {
12076 	o.type = type::ARRAY;
12077 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*3);
12078 	o.via.array.size = 3;
12079 
12080 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12081 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12082 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12083 }
12084 
12085 template <typename A0, typename A1, typename A2, typename A3>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3> & v)12086 inline void operator<< (
12087 		object::with_zone& o,
12088 		const type::tuple<A0, A1, A2, A3>& v) {
12089 	o.type = type::ARRAY;
12090 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*4);
12091 	o.via.array.size = 4;
12092 
12093 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12094 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12095 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12096 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12097 }
12098 
12099 template <typename A0, typename A1, typename A2, typename A3, typename A4>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4> & v)12100 inline void operator<< (
12101 		object::with_zone& o,
12102 		const type::tuple<A0, A1, A2, A3, A4>& v) {
12103 	o.type = type::ARRAY;
12104 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*5);
12105 	o.via.array.size = 5;
12106 
12107 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12108 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12109 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12110 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12111 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12112 }
12113 
12114 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5> & v)12115 inline void operator<< (
12116 		object::with_zone& o,
12117 		const type::tuple<A0, A1, A2, A3, A4, A5>& v) {
12118 	o.type = type::ARRAY;
12119 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*6);
12120 	o.via.array.size = 6;
12121 
12122 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12123 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12124 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12125 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12126 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12127 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12128 }
12129 
12130 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6> & v)12131 inline void operator<< (
12132 		object::with_zone& o,
12133 		const type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) {
12134 	o.type = type::ARRAY;
12135 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*7);
12136 	o.via.array.size = 7;
12137 
12138 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12139 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12140 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12141 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12142 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12143 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12144 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12145 }
12146 
12147 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7> & v)12148 inline void operator<< (
12149 		object::with_zone& o,
12150 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) {
12151 	o.type = type::ARRAY;
12152 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*8);
12153 	o.via.array.size = 8;
12154 
12155 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12156 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12157 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12158 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12159 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12160 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12161 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12162 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12163 }
12164 
12165 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8> & v)12166 inline void operator<< (
12167 		object::with_zone& o,
12168 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) {
12169 	o.type = type::ARRAY;
12170 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*9);
12171 	o.via.array.size = 9;
12172 
12173 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12174 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12175 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12176 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12177 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12178 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12179 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12180 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12181 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12182 }
12183 
12184 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9> & v)12185 inline void operator<< (
12186 		object::with_zone& o,
12187 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) {
12188 	o.type = type::ARRAY;
12189 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*10);
12190 	o.via.array.size = 10;
12191 
12192 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12193 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12194 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12195 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12196 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12197 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12198 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12199 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12200 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12201 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12202 }
12203 
12204 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10> & v)12205 inline void operator<< (
12206 		object::with_zone& o,
12207 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) {
12208 	o.type = type::ARRAY;
12209 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*11);
12210 	o.via.array.size = 11;
12211 
12212 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12213 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12214 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12215 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12216 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12217 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12218 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12219 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12220 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12221 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12222 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12223 }
12224 
12225 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11> & v)12226 inline void operator<< (
12227 		object::with_zone& o,
12228 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) {
12229 	o.type = type::ARRAY;
12230 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*12);
12231 	o.via.array.size = 12;
12232 
12233 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12234 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12235 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12236 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12237 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12238 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12239 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12240 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12241 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12242 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12243 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12244 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12245 }
12246 
12247 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12> & v)12248 inline void operator<< (
12249 		object::with_zone& o,
12250 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) {
12251 	o.type = type::ARRAY;
12252 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*13);
12253 	o.via.array.size = 13;
12254 
12255 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12256 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12257 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12258 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12259 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12260 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12261 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12262 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12263 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12264 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12265 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12266 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12267 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12268 }
12269 
12270 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13> & v)12271 inline void operator<< (
12272 		object::with_zone& o,
12273 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) {
12274 	o.type = type::ARRAY;
12275 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*14);
12276 	o.via.array.size = 14;
12277 
12278 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12279 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12280 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12281 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12282 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12283 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12284 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12285 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12286 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12287 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12288 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12289 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12290 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12291 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12292 }
12293 
12294 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14> & v)12295 inline void operator<< (
12296 		object::with_zone& o,
12297 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) {
12298 	o.type = type::ARRAY;
12299 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*15);
12300 	o.via.array.size = 15;
12301 
12302 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12303 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12304 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12305 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12306 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12307 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12308 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12309 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12310 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12311 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12312 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12313 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12314 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12315 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12316 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12317 }
12318 
12319 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15> & v)12320 inline void operator<< (
12321 		object::with_zone& o,
12322 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) {
12323 	o.type = type::ARRAY;
12324 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*16);
12325 	o.via.array.size = 16;
12326 
12327 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12328 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12329 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12330 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12331 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12332 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12333 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12334 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12335 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12336 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12337 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12338 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12339 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12340 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12341 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12342 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12343 }
12344 
12345 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16> & v)12346 inline void operator<< (
12347 		object::with_zone& o,
12348 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) {
12349 	o.type = type::ARRAY;
12350 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*17);
12351 	o.via.array.size = 17;
12352 
12353 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12354 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12355 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12356 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12357 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12358 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12359 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12360 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12361 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12362 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12363 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12364 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12365 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12366 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12367 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12368 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12369 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12370 }
12371 
12372 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17> & v)12373 inline void operator<< (
12374 		object::with_zone& o,
12375 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) {
12376 	o.type = type::ARRAY;
12377 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*18);
12378 	o.via.array.size = 18;
12379 
12380 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12381 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12382 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12383 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12384 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12385 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12386 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12387 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12388 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12389 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12390 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12391 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12392 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12393 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12394 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12395 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12396 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12397 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12398 }
12399 
12400 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18> & v)12401 inline void operator<< (
12402 		object::with_zone& o,
12403 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) {
12404 	o.type = type::ARRAY;
12405 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*19);
12406 	o.via.array.size = 19;
12407 
12408 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12409 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12410 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12411 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12412 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12413 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12414 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12415 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12416 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12417 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12418 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12419 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12420 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12421 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12422 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12423 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12424 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12425 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12426 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12427 }
12428 
12429 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19> & v)12430 inline void operator<< (
12431 		object::with_zone& o,
12432 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) {
12433 	o.type = type::ARRAY;
12434 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*20);
12435 	o.via.array.size = 20;
12436 
12437 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12438 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12439 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12440 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12441 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12442 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12443 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12444 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12445 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12446 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12447 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12448 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12449 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12450 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12451 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12452 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12453 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12454 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12455 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12456 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12457 }
12458 
12459 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20> & v)12460 inline void operator<< (
12461 		object::with_zone& o,
12462 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) {
12463 	o.type = type::ARRAY;
12464 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*21);
12465 	o.via.array.size = 21;
12466 
12467 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12468 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12469 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12470 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12471 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12472 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12473 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12474 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12475 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12476 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12477 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12478 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12479 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12480 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12481 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12482 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12483 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12484 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12485 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12486 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12487 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12488 }
12489 
12490 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21> & v)12491 inline void operator<< (
12492 		object::with_zone& o,
12493 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) {
12494 	o.type = type::ARRAY;
12495 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*22);
12496 	o.via.array.size = 22;
12497 
12498 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12499 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12500 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12501 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12502 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12503 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12504 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12505 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12506 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12507 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12508 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12509 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12510 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12511 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12512 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12513 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12514 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12515 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12516 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12517 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12518 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12519 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12520 }
12521 
12522 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22> & v)12523 inline void operator<< (
12524 		object::with_zone& o,
12525 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) {
12526 	o.type = type::ARRAY;
12527 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*23);
12528 	o.via.array.size = 23;
12529 
12530 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12531 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12532 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12533 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12534 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12535 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12536 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12537 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12538 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12539 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12540 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12541 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12542 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12543 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12544 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12545 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12546 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12547 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12548 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12549 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12550 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12551 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12552 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12553 }
12554 
12555 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23> & v)12556 inline void operator<< (
12557 		object::with_zone& o,
12558 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) {
12559 	o.type = type::ARRAY;
12560 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*24);
12561 	o.via.array.size = 24;
12562 
12563 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12564 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12565 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12566 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12567 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12568 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12569 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12570 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12571 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12572 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12573 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12574 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12575 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12576 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12577 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12578 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12579 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12580 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12581 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12582 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12583 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12584 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12585 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12586 	o.via.array.ptr[23] = object(v.template get<23>(), o.zone);
12587 }
12588 
12589 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24> & v)12590 inline void operator<< (
12591 		object::with_zone& o,
12592 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) {
12593 	o.type = type::ARRAY;
12594 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*25);
12595 	o.via.array.size = 25;
12596 
12597 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12598 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12599 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12600 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12601 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12602 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12603 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12604 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12605 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12606 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12607 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12608 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12609 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12610 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12611 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12612 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12613 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12614 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12615 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12616 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12617 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12618 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12619 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12620 	o.via.array.ptr[23] = object(v.template get<23>(), o.zone);
12621 	o.via.array.ptr[24] = object(v.template get<24>(), o.zone);
12622 }
12623 
12624 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25> & v)12625 inline void operator<< (
12626 		object::with_zone& o,
12627 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) {
12628 	o.type = type::ARRAY;
12629 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*26);
12630 	o.via.array.size = 26;
12631 
12632 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12633 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12634 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12635 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12636 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12637 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12638 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12639 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12640 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12641 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12642 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12643 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12644 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12645 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12646 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12647 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12648 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12649 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12650 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12651 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12652 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12653 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12654 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12655 	o.via.array.ptr[23] = object(v.template get<23>(), o.zone);
12656 	o.via.array.ptr[24] = object(v.template get<24>(), o.zone);
12657 	o.via.array.ptr[25] = object(v.template get<25>(), o.zone);
12658 }
12659 
12660 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26> & v)12661 inline void operator<< (
12662 		object::with_zone& o,
12663 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) {
12664 	o.type = type::ARRAY;
12665 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*27);
12666 	o.via.array.size = 27;
12667 
12668 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12669 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12670 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12671 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12672 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12673 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12674 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12675 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12676 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12677 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12678 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12679 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12680 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12681 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12682 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12683 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12684 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12685 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12686 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12687 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12688 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12689 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12690 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12691 	o.via.array.ptr[23] = object(v.template get<23>(), o.zone);
12692 	o.via.array.ptr[24] = object(v.template get<24>(), o.zone);
12693 	o.via.array.ptr[25] = object(v.template get<25>(), o.zone);
12694 	o.via.array.ptr[26] = object(v.template get<26>(), o.zone);
12695 }
12696 
12697 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27> & v)12698 inline void operator<< (
12699 		object::with_zone& o,
12700 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) {
12701 	o.type = type::ARRAY;
12702 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*28);
12703 	o.via.array.size = 28;
12704 
12705 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12706 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12707 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12708 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12709 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12710 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12711 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12712 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12713 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12714 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12715 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12716 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12717 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12718 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12719 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12720 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12721 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12722 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12723 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12724 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12725 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12726 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12727 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12728 	o.via.array.ptr[23] = object(v.template get<23>(), o.zone);
12729 	o.via.array.ptr[24] = object(v.template get<24>(), o.zone);
12730 	o.via.array.ptr[25] = object(v.template get<25>(), o.zone);
12731 	o.via.array.ptr[26] = object(v.template get<26>(), o.zone);
12732 	o.via.array.ptr[27] = object(v.template get<27>(), o.zone);
12733 }
12734 
12735 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28> & v)12736 inline void operator<< (
12737 		object::with_zone& o,
12738 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) {
12739 	o.type = type::ARRAY;
12740 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*29);
12741 	o.via.array.size = 29;
12742 
12743 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12744 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12745 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12746 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12747 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12748 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12749 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12750 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12751 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12752 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12753 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12754 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12755 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12756 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12757 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12758 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12759 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12760 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12761 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12762 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12763 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12764 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12765 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12766 	o.via.array.ptr[23] = object(v.template get<23>(), o.zone);
12767 	o.via.array.ptr[24] = object(v.template get<24>(), o.zone);
12768 	o.via.array.ptr[25] = object(v.template get<25>(), o.zone);
12769 	o.via.array.ptr[26] = object(v.template get<26>(), o.zone);
12770 	o.via.array.ptr[27] = object(v.template get<27>(), o.zone);
12771 	o.via.array.ptr[28] = object(v.template get<28>(), o.zone);
12772 }
12773 
12774 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29> & v)12775 inline void operator<< (
12776 		object::with_zone& o,
12777 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) {
12778 	o.type = type::ARRAY;
12779 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*30);
12780 	o.via.array.size = 30;
12781 
12782 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12783 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12784 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12785 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12786 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12787 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12788 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12789 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12790 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12791 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12792 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12793 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12794 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12795 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12796 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12797 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12798 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12799 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12800 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12801 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12802 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12803 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12804 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12805 	o.via.array.ptr[23] = object(v.template get<23>(), o.zone);
12806 	o.via.array.ptr[24] = object(v.template get<24>(), o.zone);
12807 	o.via.array.ptr[25] = object(v.template get<25>(), o.zone);
12808 	o.via.array.ptr[26] = object(v.template get<26>(), o.zone);
12809 	o.via.array.ptr[27] = object(v.template get<27>(), o.zone);
12810 	o.via.array.ptr[28] = object(v.template get<28>(), o.zone);
12811 	o.via.array.ptr[29] = object(v.template get<29>(), o.zone);
12812 }
12813 
12814 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30> & v)12815 inline void operator<< (
12816 		object::with_zone& o,
12817 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) {
12818 	o.type = type::ARRAY;
12819 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*31);
12820 	o.via.array.size = 31;
12821 
12822 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12823 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12824 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12825 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12826 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12827 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12828 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12829 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12830 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12831 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12832 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12833 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12834 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12835 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12836 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12837 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12838 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12839 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12840 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12841 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12842 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12843 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12844 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12845 	o.via.array.ptr[23] = object(v.template get<23>(), o.zone);
12846 	o.via.array.ptr[24] = object(v.template get<24>(), o.zone);
12847 	o.via.array.ptr[25] = object(v.template get<25>(), o.zone);
12848 	o.via.array.ptr[26] = object(v.template get<26>(), o.zone);
12849 	o.via.array.ptr[27] = object(v.template get<27>(), o.zone);
12850 	o.via.array.ptr[28] = object(v.template get<28>(), o.zone);
12851 	o.via.array.ptr[29] = object(v.template get<29>(), o.zone);
12852 	o.via.array.ptr[30] = object(v.template get<30>(), o.zone);
12853 }
12854 
12855 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
operator <<(object::with_zone & o,const type::tuple<A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31> & v)12856 inline void operator<< (
12857 		object::with_zone& o,
12858 		const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) {
12859 	o.type = type::ARRAY;
12860 	o.via.array.ptr = (object*)o.zone->malloc(sizeof(object)*32);
12861 	o.via.array.size = 32;
12862 
12863 	o.via.array.ptr[0] = object(v.template get<0>(), o.zone);
12864 	o.via.array.ptr[1] = object(v.template get<1>(), o.zone);
12865 	o.via.array.ptr[2] = object(v.template get<2>(), o.zone);
12866 	o.via.array.ptr[3] = object(v.template get<3>(), o.zone);
12867 	o.via.array.ptr[4] = object(v.template get<4>(), o.zone);
12868 	o.via.array.ptr[5] = object(v.template get<5>(), o.zone);
12869 	o.via.array.ptr[6] = object(v.template get<6>(), o.zone);
12870 	o.via.array.ptr[7] = object(v.template get<7>(), o.zone);
12871 	o.via.array.ptr[8] = object(v.template get<8>(), o.zone);
12872 	o.via.array.ptr[9] = object(v.template get<9>(), o.zone);
12873 	o.via.array.ptr[10] = object(v.template get<10>(), o.zone);
12874 	o.via.array.ptr[11] = object(v.template get<11>(), o.zone);
12875 	o.via.array.ptr[12] = object(v.template get<12>(), o.zone);
12876 	o.via.array.ptr[13] = object(v.template get<13>(), o.zone);
12877 	o.via.array.ptr[14] = object(v.template get<14>(), o.zone);
12878 	o.via.array.ptr[15] = object(v.template get<15>(), o.zone);
12879 	o.via.array.ptr[16] = object(v.template get<16>(), o.zone);
12880 	o.via.array.ptr[17] = object(v.template get<17>(), o.zone);
12881 	o.via.array.ptr[18] = object(v.template get<18>(), o.zone);
12882 	o.via.array.ptr[19] = object(v.template get<19>(), o.zone);
12883 	o.via.array.ptr[20] = object(v.template get<20>(), o.zone);
12884 	o.via.array.ptr[21] = object(v.template get<21>(), o.zone);
12885 	o.via.array.ptr[22] = object(v.template get<22>(), o.zone);
12886 	o.via.array.ptr[23] = object(v.template get<23>(), o.zone);
12887 	o.via.array.ptr[24] = object(v.template get<24>(), o.zone);
12888 	o.via.array.ptr[25] = object(v.template get<25>(), o.zone);
12889 	o.via.array.ptr[26] = object(v.template get<26>(), o.zone);
12890 	o.via.array.ptr[27] = object(v.template get<27>(), o.zone);
12891 	o.via.array.ptr[28] = object(v.template get<28>(), o.zone);
12892 	o.via.array.ptr[29] = object(v.template get<29>(), o.zone);
12893 	o.via.array.ptr[30] = object(v.template get<30>(), o.zone);
12894 	o.via.array.ptr[31] = object(v.template get<31>(), o.zone);
12895 }
12896 
12897 
12898 }  // namespace msgpack
12899 
12900 
12901 //inline std::ostream& operator<< (std::ostream& o, const msgpack::type::tuple<>& v) {
12902 //  return o << "[]";
12903 //}
12904 //
12905 //template <typename A0>
12906 //inline std::ostream& operator<< (std::ostream& o,
12907 //		const msgpack::type::tuple<A0>& v) {
12908 //	return o << "["
12909 //
12910 //	<< v.template get<0>()
12911 //	<< "]";
12912 //}
12913 //
12914 //template <typename A0, typename A1>
12915 //inline std::ostream& operator<< (std::ostream& o,
12916 //		const msgpack::type::tuple<A0, A1>& v) {
12917 //	return o << "["
12918 //
12919 //	<< v.template get<0>()
12920 //	<< ", " << v.template get<1>()
12921 //	<< "]";
12922 //}
12923 //
12924 //template <typename A0, typename A1, typename A2>
12925 //inline std::ostream& operator<< (std::ostream& o,
12926 //		const msgpack::type::tuple<A0, A1, A2>& v) {
12927 //	return o << "["
12928 //
12929 //	<< v.template get<0>()
12930 //	<< ", " << v.template get<1>()
12931 //	<< ", " << v.template get<2>()
12932 //	<< "]";
12933 //}
12934 //
12935 //template <typename A0, typename A1, typename A2, typename A3>
12936 //inline std::ostream& operator<< (std::ostream& o,
12937 //		const msgpack::type::tuple<A0, A1, A2, A3>& v) {
12938 //	return o << "["
12939 //
12940 //	<< v.template get<0>()
12941 //	<< ", " << v.template get<1>()
12942 //	<< ", " << v.template get<2>()
12943 //	<< ", " << v.template get<3>()
12944 //	<< "]";
12945 //}
12946 //
12947 //template <typename A0, typename A1, typename A2, typename A3, typename A4>
12948 //inline std::ostream& operator<< (std::ostream& o,
12949 //		const msgpack::type::tuple<A0, A1, A2, A3, A4>& v) {
12950 //	return o << "["
12951 //
12952 //	<< v.template get<0>()
12953 //	<< ", " << v.template get<1>()
12954 //	<< ", " << v.template get<2>()
12955 //	<< ", " << v.template get<3>()
12956 //	<< ", " << v.template get<4>()
12957 //	<< "]";
12958 //}
12959 //
12960 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
12961 //inline std::ostream& operator<< (std::ostream& o,
12962 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5>& v) {
12963 //	return o << "["
12964 //
12965 //	<< v.template get<0>()
12966 //	<< ", " << v.template get<1>()
12967 //	<< ", " << v.template get<2>()
12968 //	<< ", " << v.template get<3>()
12969 //	<< ", " << v.template get<4>()
12970 //	<< ", " << v.template get<5>()
12971 //	<< "]";
12972 //}
12973 //
12974 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
12975 //inline std::ostream& operator<< (std::ostream& o,
12976 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) {
12977 //	return o << "["
12978 //
12979 //	<< v.template get<0>()
12980 //	<< ", " << v.template get<1>()
12981 //	<< ", " << v.template get<2>()
12982 //	<< ", " << v.template get<3>()
12983 //	<< ", " << v.template get<4>()
12984 //	<< ", " << v.template get<5>()
12985 //	<< ", " << v.template get<6>()
12986 //	<< "]";
12987 //}
12988 //
12989 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
12990 //inline std::ostream& operator<< (std::ostream& o,
12991 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) {
12992 //	return o << "["
12993 //
12994 //	<< v.template get<0>()
12995 //	<< ", " << v.template get<1>()
12996 //	<< ", " << v.template get<2>()
12997 //	<< ", " << v.template get<3>()
12998 //	<< ", " << v.template get<4>()
12999 //	<< ", " << v.template get<5>()
13000 //	<< ", " << v.template get<6>()
13001 //	<< ", " << v.template get<7>()
13002 //	<< "]";
13003 //}
13004 //
13005 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
13006 //inline std::ostream& operator<< (std::ostream& o,
13007 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) {
13008 //	return o << "["
13009 //
13010 //	<< v.template get<0>()
13011 //	<< ", " << v.template get<1>()
13012 //	<< ", " << v.template get<2>()
13013 //	<< ", " << v.template get<3>()
13014 //	<< ", " << v.template get<4>()
13015 //	<< ", " << v.template get<5>()
13016 //	<< ", " << v.template get<6>()
13017 //	<< ", " << v.template get<7>()
13018 //	<< ", " << v.template get<8>()
13019 //	<< "]";
13020 //}
13021 //
13022 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
13023 //inline std::ostream& operator<< (std::ostream& o,
13024 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) {
13025 //	return o << "["
13026 //
13027 //	<< v.template get<0>()
13028 //	<< ", " << v.template get<1>()
13029 //	<< ", " << v.template get<2>()
13030 //	<< ", " << v.template get<3>()
13031 //	<< ", " << v.template get<4>()
13032 //	<< ", " << v.template get<5>()
13033 //	<< ", " << v.template get<6>()
13034 //	<< ", " << v.template get<7>()
13035 //	<< ", " << v.template get<8>()
13036 //	<< ", " << v.template get<9>()
13037 //	<< "]";
13038 //}
13039 //
13040 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
13041 //inline std::ostream& operator<< (std::ostream& o,
13042 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) {
13043 //	return o << "["
13044 //
13045 //	<< v.template get<0>()
13046 //	<< ", " << v.template get<1>()
13047 //	<< ", " << v.template get<2>()
13048 //	<< ", " << v.template get<3>()
13049 //	<< ", " << v.template get<4>()
13050 //	<< ", " << v.template get<5>()
13051 //	<< ", " << v.template get<6>()
13052 //	<< ", " << v.template get<7>()
13053 //	<< ", " << v.template get<8>()
13054 //	<< ", " << v.template get<9>()
13055 //	<< ", " << v.template get<10>()
13056 //	<< "]";
13057 //}
13058 //
13059 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
13060 //inline std::ostream& operator<< (std::ostream& o,
13061 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) {
13062 //	return o << "["
13063 //
13064 //	<< v.template get<0>()
13065 //	<< ", " << v.template get<1>()
13066 //	<< ", " << v.template get<2>()
13067 //	<< ", " << v.template get<3>()
13068 //	<< ", " << v.template get<4>()
13069 //	<< ", " << v.template get<5>()
13070 //	<< ", " << v.template get<6>()
13071 //	<< ", " << v.template get<7>()
13072 //	<< ", " << v.template get<8>()
13073 //	<< ", " << v.template get<9>()
13074 //	<< ", " << v.template get<10>()
13075 //	<< ", " << v.template get<11>()
13076 //	<< "]";
13077 //}
13078 //
13079 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
13080 //inline std::ostream& operator<< (std::ostream& o,
13081 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) {
13082 //	return o << "["
13083 //
13084 //	<< v.template get<0>()
13085 //	<< ", " << v.template get<1>()
13086 //	<< ", " << v.template get<2>()
13087 //	<< ", " << v.template get<3>()
13088 //	<< ", " << v.template get<4>()
13089 //	<< ", " << v.template get<5>()
13090 //	<< ", " << v.template get<6>()
13091 //	<< ", " << v.template get<7>()
13092 //	<< ", " << v.template get<8>()
13093 //	<< ", " << v.template get<9>()
13094 //	<< ", " << v.template get<10>()
13095 //	<< ", " << v.template get<11>()
13096 //	<< ", " << v.template get<12>()
13097 //	<< "]";
13098 //}
13099 //
13100 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
13101 //inline std::ostream& operator<< (std::ostream& o,
13102 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) {
13103 //	return o << "["
13104 //
13105 //	<< v.template get<0>()
13106 //	<< ", " << v.template get<1>()
13107 //	<< ", " << v.template get<2>()
13108 //	<< ", " << v.template get<3>()
13109 //	<< ", " << v.template get<4>()
13110 //	<< ", " << v.template get<5>()
13111 //	<< ", " << v.template get<6>()
13112 //	<< ", " << v.template get<7>()
13113 //	<< ", " << v.template get<8>()
13114 //	<< ", " << v.template get<9>()
13115 //	<< ", " << v.template get<10>()
13116 //	<< ", " << v.template get<11>()
13117 //	<< ", " << v.template get<12>()
13118 //	<< ", " << v.template get<13>()
13119 //	<< "]";
13120 //}
13121 //
13122 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
13123 //inline std::ostream& operator<< (std::ostream& o,
13124 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) {
13125 //	return o << "["
13126 //
13127 //	<< v.template get<0>()
13128 //	<< ", " << v.template get<1>()
13129 //	<< ", " << v.template get<2>()
13130 //	<< ", " << v.template get<3>()
13131 //	<< ", " << v.template get<4>()
13132 //	<< ", " << v.template get<5>()
13133 //	<< ", " << v.template get<6>()
13134 //	<< ", " << v.template get<7>()
13135 //	<< ", " << v.template get<8>()
13136 //	<< ", " << v.template get<9>()
13137 //	<< ", " << v.template get<10>()
13138 //	<< ", " << v.template get<11>()
13139 //	<< ", " << v.template get<12>()
13140 //	<< ", " << v.template get<13>()
13141 //	<< ", " << v.template get<14>()
13142 //	<< "]";
13143 //}
13144 //
13145 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
13146 //inline std::ostream& operator<< (std::ostream& o,
13147 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) {
13148 //	return o << "["
13149 //
13150 //	<< v.template get<0>()
13151 //	<< ", " << v.template get<1>()
13152 //	<< ", " << v.template get<2>()
13153 //	<< ", " << v.template get<3>()
13154 //	<< ", " << v.template get<4>()
13155 //	<< ", " << v.template get<5>()
13156 //	<< ", " << v.template get<6>()
13157 //	<< ", " << v.template get<7>()
13158 //	<< ", " << v.template get<8>()
13159 //	<< ", " << v.template get<9>()
13160 //	<< ", " << v.template get<10>()
13161 //	<< ", " << v.template get<11>()
13162 //	<< ", " << v.template get<12>()
13163 //	<< ", " << v.template get<13>()
13164 //	<< ", " << v.template get<14>()
13165 //	<< ", " << v.template get<15>()
13166 //	<< "]";
13167 //}
13168 //
13169 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
13170 //inline std::ostream& operator<< (std::ostream& o,
13171 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) {
13172 //	return o << "["
13173 //
13174 //	<< v.template get<0>()
13175 //	<< ", " << v.template get<1>()
13176 //	<< ", " << v.template get<2>()
13177 //	<< ", " << v.template get<3>()
13178 //	<< ", " << v.template get<4>()
13179 //	<< ", " << v.template get<5>()
13180 //	<< ", " << v.template get<6>()
13181 //	<< ", " << v.template get<7>()
13182 //	<< ", " << v.template get<8>()
13183 //	<< ", " << v.template get<9>()
13184 //	<< ", " << v.template get<10>()
13185 //	<< ", " << v.template get<11>()
13186 //	<< ", " << v.template get<12>()
13187 //	<< ", " << v.template get<13>()
13188 //	<< ", " << v.template get<14>()
13189 //	<< ", " << v.template get<15>()
13190 //	<< ", " << v.template get<16>()
13191 //	<< "]";
13192 //}
13193 //
13194 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
13195 //inline std::ostream& operator<< (std::ostream& o,
13196 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) {
13197 //	return o << "["
13198 //
13199 //	<< v.template get<0>()
13200 //	<< ", " << v.template get<1>()
13201 //	<< ", " << v.template get<2>()
13202 //	<< ", " << v.template get<3>()
13203 //	<< ", " << v.template get<4>()
13204 //	<< ", " << v.template get<5>()
13205 //	<< ", " << v.template get<6>()
13206 //	<< ", " << v.template get<7>()
13207 //	<< ", " << v.template get<8>()
13208 //	<< ", " << v.template get<9>()
13209 //	<< ", " << v.template get<10>()
13210 //	<< ", " << v.template get<11>()
13211 //	<< ", " << v.template get<12>()
13212 //	<< ", " << v.template get<13>()
13213 //	<< ", " << v.template get<14>()
13214 //	<< ", " << v.template get<15>()
13215 //	<< ", " << v.template get<16>()
13216 //	<< ", " << v.template get<17>()
13217 //	<< "]";
13218 //}
13219 //
13220 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
13221 //inline std::ostream& operator<< (std::ostream& o,
13222 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) {
13223 //	return o << "["
13224 //
13225 //	<< v.template get<0>()
13226 //	<< ", " << v.template get<1>()
13227 //	<< ", " << v.template get<2>()
13228 //	<< ", " << v.template get<3>()
13229 //	<< ", " << v.template get<4>()
13230 //	<< ", " << v.template get<5>()
13231 //	<< ", " << v.template get<6>()
13232 //	<< ", " << v.template get<7>()
13233 //	<< ", " << v.template get<8>()
13234 //	<< ", " << v.template get<9>()
13235 //	<< ", " << v.template get<10>()
13236 //	<< ", " << v.template get<11>()
13237 //	<< ", " << v.template get<12>()
13238 //	<< ", " << v.template get<13>()
13239 //	<< ", " << v.template get<14>()
13240 //	<< ", " << v.template get<15>()
13241 //	<< ", " << v.template get<16>()
13242 //	<< ", " << v.template get<17>()
13243 //	<< ", " << v.template get<18>()
13244 //	<< "]";
13245 //}
13246 //
13247 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
13248 //inline std::ostream& operator<< (std::ostream& o,
13249 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) {
13250 //	return o << "["
13251 //
13252 //	<< v.template get<0>()
13253 //	<< ", " << v.template get<1>()
13254 //	<< ", " << v.template get<2>()
13255 //	<< ", " << v.template get<3>()
13256 //	<< ", " << v.template get<4>()
13257 //	<< ", " << v.template get<5>()
13258 //	<< ", " << v.template get<6>()
13259 //	<< ", " << v.template get<7>()
13260 //	<< ", " << v.template get<8>()
13261 //	<< ", " << v.template get<9>()
13262 //	<< ", " << v.template get<10>()
13263 //	<< ", " << v.template get<11>()
13264 //	<< ", " << v.template get<12>()
13265 //	<< ", " << v.template get<13>()
13266 //	<< ", " << v.template get<14>()
13267 //	<< ", " << v.template get<15>()
13268 //	<< ", " << v.template get<16>()
13269 //	<< ", " << v.template get<17>()
13270 //	<< ", " << v.template get<18>()
13271 //	<< ", " << v.template get<19>()
13272 //	<< "]";
13273 //}
13274 //
13275 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
13276 //inline std::ostream& operator<< (std::ostream& o,
13277 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) {
13278 //	return o << "["
13279 //
13280 //	<< v.template get<0>()
13281 //	<< ", " << v.template get<1>()
13282 //	<< ", " << v.template get<2>()
13283 //	<< ", " << v.template get<3>()
13284 //	<< ", " << v.template get<4>()
13285 //	<< ", " << v.template get<5>()
13286 //	<< ", " << v.template get<6>()
13287 //	<< ", " << v.template get<7>()
13288 //	<< ", " << v.template get<8>()
13289 //	<< ", " << v.template get<9>()
13290 //	<< ", " << v.template get<10>()
13291 //	<< ", " << v.template get<11>()
13292 //	<< ", " << v.template get<12>()
13293 //	<< ", " << v.template get<13>()
13294 //	<< ", " << v.template get<14>()
13295 //	<< ", " << v.template get<15>()
13296 //	<< ", " << v.template get<16>()
13297 //	<< ", " << v.template get<17>()
13298 //	<< ", " << v.template get<18>()
13299 //	<< ", " << v.template get<19>()
13300 //	<< ", " << v.template get<20>()
13301 //	<< "]";
13302 //}
13303 //
13304 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
13305 //inline std::ostream& operator<< (std::ostream& o,
13306 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) {
13307 //	return o << "["
13308 //
13309 //	<< v.template get<0>()
13310 //	<< ", " << v.template get<1>()
13311 //	<< ", " << v.template get<2>()
13312 //	<< ", " << v.template get<3>()
13313 //	<< ", " << v.template get<4>()
13314 //	<< ", " << v.template get<5>()
13315 //	<< ", " << v.template get<6>()
13316 //	<< ", " << v.template get<7>()
13317 //	<< ", " << v.template get<8>()
13318 //	<< ", " << v.template get<9>()
13319 //	<< ", " << v.template get<10>()
13320 //	<< ", " << v.template get<11>()
13321 //	<< ", " << v.template get<12>()
13322 //	<< ", " << v.template get<13>()
13323 //	<< ", " << v.template get<14>()
13324 //	<< ", " << v.template get<15>()
13325 //	<< ", " << v.template get<16>()
13326 //	<< ", " << v.template get<17>()
13327 //	<< ", " << v.template get<18>()
13328 //	<< ", " << v.template get<19>()
13329 //	<< ", " << v.template get<20>()
13330 //	<< ", " << v.template get<21>()
13331 //	<< "]";
13332 //}
13333 //
13334 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
13335 //inline std::ostream& operator<< (std::ostream& o,
13336 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) {
13337 //	return o << "["
13338 //
13339 //	<< v.template get<0>()
13340 //	<< ", " << v.template get<1>()
13341 //	<< ", " << v.template get<2>()
13342 //	<< ", " << v.template get<3>()
13343 //	<< ", " << v.template get<4>()
13344 //	<< ", " << v.template get<5>()
13345 //	<< ", " << v.template get<6>()
13346 //	<< ", " << v.template get<7>()
13347 //	<< ", " << v.template get<8>()
13348 //	<< ", " << v.template get<9>()
13349 //	<< ", " << v.template get<10>()
13350 //	<< ", " << v.template get<11>()
13351 //	<< ", " << v.template get<12>()
13352 //	<< ", " << v.template get<13>()
13353 //	<< ", " << v.template get<14>()
13354 //	<< ", " << v.template get<15>()
13355 //	<< ", " << v.template get<16>()
13356 //	<< ", " << v.template get<17>()
13357 //	<< ", " << v.template get<18>()
13358 //	<< ", " << v.template get<19>()
13359 //	<< ", " << v.template get<20>()
13360 //	<< ", " << v.template get<21>()
13361 //	<< ", " << v.template get<22>()
13362 //	<< "]";
13363 //}
13364 //
13365 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
13366 //inline std::ostream& operator<< (std::ostream& o,
13367 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) {
13368 //	return o << "["
13369 //
13370 //	<< v.template get<0>()
13371 //	<< ", " << v.template get<1>()
13372 //	<< ", " << v.template get<2>()
13373 //	<< ", " << v.template get<3>()
13374 //	<< ", " << v.template get<4>()
13375 //	<< ", " << v.template get<5>()
13376 //	<< ", " << v.template get<6>()
13377 //	<< ", " << v.template get<7>()
13378 //	<< ", " << v.template get<8>()
13379 //	<< ", " << v.template get<9>()
13380 //	<< ", " << v.template get<10>()
13381 //	<< ", " << v.template get<11>()
13382 //	<< ", " << v.template get<12>()
13383 //	<< ", " << v.template get<13>()
13384 //	<< ", " << v.template get<14>()
13385 //	<< ", " << v.template get<15>()
13386 //	<< ", " << v.template get<16>()
13387 //	<< ", " << v.template get<17>()
13388 //	<< ", " << v.template get<18>()
13389 //	<< ", " << v.template get<19>()
13390 //	<< ", " << v.template get<20>()
13391 //	<< ", " << v.template get<21>()
13392 //	<< ", " << v.template get<22>()
13393 //	<< ", " << v.template get<23>()
13394 //	<< "]";
13395 //}
13396 //
13397 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
13398 //inline std::ostream& operator<< (std::ostream& o,
13399 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) {
13400 //	return o << "["
13401 //
13402 //	<< v.template get<0>()
13403 //	<< ", " << v.template get<1>()
13404 //	<< ", " << v.template get<2>()
13405 //	<< ", " << v.template get<3>()
13406 //	<< ", " << v.template get<4>()
13407 //	<< ", " << v.template get<5>()
13408 //	<< ", " << v.template get<6>()
13409 //	<< ", " << v.template get<7>()
13410 //	<< ", " << v.template get<8>()
13411 //	<< ", " << v.template get<9>()
13412 //	<< ", " << v.template get<10>()
13413 //	<< ", " << v.template get<11>()
13414 //	<< ", " << v.template get<12>()
13415 //	<< ", " << v.template get<13>()
13416 //	<< ", " << v.template get<14>()
13417 //	<< ", " << v.template get<15>()
13418 //	<< ", " << v.template get<16>()
13419 //	<< ", " << v.template get<17>()
13420 //	<< ", " << v.template get<18>()
13421 //	<< ", " << v.template get<19>()
13422 //	<< ", " << v.template get<20>()
13423 //	<< ", " << v.template get<21>()
13424 //	<< ", " << v.template get<22>()
13425 //	<< ", " << v.template get<23>()
13426 //	<< ", " << v.template get<24>()
13427 //	<< "]";
13428 //}
13429 //
13430 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
13431 //inline std::ostream& operator<< (std::ostream& o,
13432 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) {
13433 //	return o << "["
13434 //
13435 //	<< v.template get<0>()
13436 //	<< ", " << v.template get<1>()
13437 //	<< ", " << v.template get<2>()
13438 //	<< ", " << v.template get<3>()
13439 //	<< ", " << v.template get<4>()
13440 //	<< ", " << v.template get<5>()
13441 //	<< ", " << v.template get<6>()
13442 //	<< ", " << v.template get<7>()
13443 //	<< ", " << v.template get<8>()
13444 //	<< ", " << v.template get<9>()
13445 //	<< ", " << v.template get<10>()
13446 //	<< ", " << v.template get<11>()
13447 //	<< ", " << v.template get<12>()
13448 //	<< ", " << v.template get<13>()
13449 //	<< ", " << v.template get<14>()
13450 //	<< ", " << v.template get<15>()
13451 //	<< ", " << v.template get<16>()
13452 //	<< ", " << v.template get<17>()
13453 //	<< ", " << v.template get<18>()
13454 //	<< ", " << v.template get<19>()
13455 //	<< ", " << v.template get<20>()
13456 //	<< ", " << v.template get<21>()
13457 //	<< ", " << v.template get<22>()
13458 //	<< ", " << v.template get<23>()
13459 //	<< ", " << v.template get<24>()
13460 //	<< ", " << v.template get<25>()
13461 //	<< "]";
13462 //}
13463 //
13464 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
13465 //inline std::ostream& operator<< (std::ostream& o,
13466 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) {
13467 //	return o << "["
13468 //
13469 //	<< v.template get<0>()
13470 //	<< ", " << v.template get<1>()
13471 //	<< ", " << v.template get<2>()
13472 //	<< ", " << v.template get<3>()
13473 //	<< ", " << v.template get<4>()
13474 //	<< ", " << v.template get<5>()
13475 //	<< ", " << v.template get<6>()
13476 //	<< ", " << v.template get<7>()
13477 //	<< ", " << v.template get<8>()
13478 //	<< ", " << v.template get<9>()
13479 //	<< ", " << v.template get<10>()
13480 //	<< ", " << v.template get<11>()
13481 //	<< ", " << v.template get<12>()
13482 //	<< ", " << v.template get<13>()
13483 //	<< ", " << v.template get<14>()
13484 //	<< ", " << v.template get<15>()
13485 //	<< ", " << v.template get<16>()
13486 //	<< ", " << v.template get<17>()
13487 //	<< ", " << v.template get<18>()
13488 //	<< ", " << v.template get<19>()
13489 //	<< ", " << v.template get<20>()
13490 //	<< ", " << v.template get<21>()
13491 //	<< ", " << v.template get<22>()
13492 //	<< ", " << v.template get<23>()
13493 //	<< ", " << v.template get<24>()
13494 //	<< ", " << v.template get<25>()
13495 //	<< ", " << v.template get<26>()
13496 //	<< "]";
13497 //}
13498 //
13499 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
13500 //inline std::ostream& operator<< (std::ostream& o,
13501 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) {
13502 //	return o << "["
13503 //
13504 //	<< v.template get<0>()
13505 //	<< ", " << v.template get<1>()
13506 //	<< ", " << v.template get<2>()
13507 //	<< ", " << v.template get<3>()
13508 //	<< ", " << v.template get<4>()
13509 //	<< ", " << v.template get<5>()
13510 //	<< ", " << v.template get<6>()
13511 //	<< ", " << v.template get<7>()
13512 //	<< ", " << v.template get<8>()
13513 //	<< ", " << v.template get<9>()
13514 //	<< ", " << v.template get<10>()
13515 //	<< ", " << v.template get<11>()
13516 //	<< ", " << v.template get<12>()
13517 //	<< ", " << v.template get<13>()
13518 //	<< ", " << v.template get<14>()
13519 //	<< ", " << v.template get<15>()
13520 //	<< ", " << v.template get<16>()
13521 //	<< ", " << v.template get<17>()
13522 //	<< ", " << v.template get<18>()
13523 //	<< ", " << v.template get<19>()
13524 //	<< ", " << v.template get<20>()
13525 //	<< ", " << v.template get<21>()
13526 //	<< ", " << v.template get<22>()
13527 //	<< ", " << v.template get<23>()
13528 //	<< ", " << v.template get<24>()
13529 //	<< ", " << v.template get<25>()
13530 //	<< ", " << v.template get<26>()
13531 //	<< ", " << v.template get<27>()
13532 //	<< "]";
13533 //}
13534 //
13535 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
13536 //inline std::ostream& operator<< (std::ostream& o,
13537 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) {
13538 //	return o << "["
13539 //
13540 //	<< v.template get<0>()
13541 //	<< ", " << v.template get<1>()
13542 //	<< ", " << v.template get<2>()
13543 //	<< ", " << v.template get<3>()
13544 //	<< ", " << v.template get<4>()
13545 //	<< ", " << v.template get<5>()
13546 //	<< ", " << v.template get<6>()
13547 //	<< ", " << v.template get<7>()
13548 //	<< ", " << v.template get<8>()
13549 //	<< ", " << v.template get<9>()
13550 //	<< ", " << v.template get<10>()
13551 //	<< ", " << v.template get<11>()
13552 //	<< ", " << v.template get<12>()
13553 //	<< ", " << v.template get<13>()
13554 //	<< ", " << v.template get<14>()
13555 //	<< ", " << v.template get<15>()
13556 //	<< ", " << v.template get<16>()
13557 //	<< ", " << v.template get<17>()
13558 //	<< ", " << v.template get<18>()
13559 //	<< ", " << v.template get<19>()
13560 //	<< ", " << v.template get<20>()
13561 //	<< ", " << v.template get<21>()
13562 //	<< ", " << v.template get<22>()
13563 //	<< ", " << v.template get<23>()
13564 //	<< ", " << v.template get<24>()
13565 //	<< ", " << v.template get<25>()
13566 //	<< ", " << v.template get<26>()
13567 //	<< ", " << v.template get<27>()
13568 //	<< ", " << v.template get<28>()
13569 //	<< "]";
13570 //}
13571 //
13572 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
13573 //inline std::ostream& operator<< (std::ostream& o,
13574 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) {
13575 //	return o << "["
13576 //
13577 //	<< v.template get<0>()
13578 //	<< ", " << v.template get<1>()
13579 //	<< ", " << v.template get<2>()
13580 //	<< ", " << v.template get<3>()
13581 //	<< ", " << v.template get<4>()
13582 //	<< ", " << v.template get<5>()
13583 //	<< ", " << v.template get<6>()
13584 //	<< ", " << v.template get<7>()
13585 //	<< ", " << v.template get<8>()
13586 //	<< ", " << v.template get<9>()
13587 //	<< ", " << v.template get<10>()
13588 //	<< ", " << v.template get<11>()
13589 //	<< ", " << v.template get<12>()
13590 //	<< ", " << v.template get<13>()
13591 //	<< ", " << v.template get<14>()
13592 //	<< ", " << v.template get<15>()
13593 //	<< ", " << v.template get<16>()
13594 //	<< ", " << v.template get<17>()
13595 //	<< ", " << v.template get<18>()
13596 //	<< ", " << v.template get<19>()
13597 //	<< ", " << v.template get<20>()
13598 //	<< ", " << v.template get<21>()
13599 //	<< ", " << v.template get<22>()
13600 //	<< ", " << v.template get<23>()
13601 //	<< ", " << v.template get<24>()
13602 //	<< ", " << v.template get<25>()
13603 //	<< ", " << v.template get<26>()
13604 //	<< ", " << v.template get<27>()
13605 //	<< ", " << v.template get<28>()
13606 //	<< ", " << v.template get<29>()
13607 //	<< "]";
13608 //}
13609 //
13610 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
13611 //inline std::ostream& operator<< (std::ostream& o,
13612 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) {
13613 //	return o << "["
13614 //
13615 //	<< v.template get<0>()
13616 //	<< ", " << v.template get<1>()
13617 //	<< ", " << v.template get<2>()
13618 //	<< ", " << v.template get<3>()
13619 //	<< ", " << v.template get<4>()
13620 //	<< ", " << v.template get<5>()
13621 //	<< ", " << v.template get<6>()
13622 //	<< ", " << v.template get<7>()
13623 //	<< ", " << v.template get<8>()
13624 //	<< ", " << v.template get<9>()
13625 //	<< ", " << v.template get<10>()
13626 //	<< ", " << v.template get<11>()
13627 //	<< ", " << v.template get<12>()
13628 //	<< ", " << v.template get<13>()
13629 //	<< ", " << v.template get<14>()
13630 //	<< ", " << v.template get<15>()
13631 //	<< ", " << v.template get<16>()
13632 //	<< ", " << v.template get<17>()
13633 //	<< ", " << v.template get<18>()
13634 //	<< ", " << v.template get<19>()
13635 //	<< ", " << v.template get<20>()
13636 //	<< ", " << v.template get<21>()
13637 //	<< ", " << v.template get<22>()
13638 //	<< ", " << v.template get<23>()
13639 //	<< ", " << v.template get<24>()
13640 //	<< ", " << v.template get<25>()
13641 //	<< ", " << v.template get<26>()
13642 //	<< ", " << v.template get<27>()
13643 //	<< ", " << v.template get<28>()
13644 //	<< ", " << v.template get<29>()
13645 //	<< ", " << v.template get<30>()
13646 //	<< "]";
13647 //}
13648 //
13649 //template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
13650 //inline std::ostream& operator<< (std::ostream& o,
13651 //		const msgpack::type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) {
13652 //	return o << "["
13653 //
13654 //	<< v.template get<0>()
13655 //	<< ", " << v.template get<1>()
13656 //	<< ", " << v.template get<2>()
13657 //	<< ", " << v.template get<3>()
13658 //	<< ", " << v.template get<4>()
13659 //	<< ", " << v.template get<5>()
13660 //	<< ", " << v.template get<6>()
13661 //	<< ", " << v.template get<7>()
13662 //	<< ", " << v.template get<8>()
13663 //	<< ", " << v.template get<9>()
13664 //	<< ", " << v.template get<10>()
13665 //	<< ", " << v.template get<11>()
13666 //	<< ", " << v.template get<12>()
13667 //	<< ", " << v.template get<13>()
13668 //	<< ", " << v.template get<14>()
13669 //	<< ", " << v.template get<15>()
13670 //	<< ", " << v.template get<16>()
13671 //	<< ", " << v.template get<17>()
13672 //	<< ", " << v.template get<18>()
13673 //	<< ", " << v.template get<19>()
13674 //	<< ", " << v.template get<20>()
13675 //	<< ", " << v.template get<21>()
13676 //	<< ", " << v.template get<22>()
13677 //	<< ", " << v.template get<23>()
13678 //	<< ", " << v.template get<24>()
13679 //	<< ", " << v.template get<25>()
13680 //	<< ", " << v.template get<26>()
13681 //	<< ", " << v.template get<27>()
13682 //	<< ", " << v.template get<28>()
13683 //	<< ", " << v.template get<29>()
13684 //	<< ", " << v.template get<30>()
13685 //	<< ", " << v.template get<31>()
13686 //	<< "]";
13687 //}
13688 //
13689 
13690 #endif /* msgpack/type/tuple.hpp */
13691 
13692