Ticket #63645: remove-untranslated.ii

File remove-untranslated.ii, 992.3 KB (added by cooljeanius (Eric Gallager), 15 months ago)

preprocessed source causing the assembler crash

Line 
1# 1 "remove-untranslated.cc"
2# 1 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_libqalculate/libqalculate/work/libqalculate-3.21.0/po-defs//"
3# 1 "<built-in>"
4# 1 "<command-line>"
5# 1 "remove-untranslated.cc"
6# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 1 3 4
7# 71 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 3 4
8# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h" 1 3 4
9# 27 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h" 3 4
10# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h" 1 3 4
11# 32 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h" 3 4
12# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h" 1 3 4
13# 649 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h" 3 4
14# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h" 1 3 4
15# 650 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h" 2 3 4
16# 715 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h" 3 4
17# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h" 1 3 4
18# 716 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h" 2 3 4
19# 33 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h" 2 3 4
20# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h" 1 3 4
21# 32 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h" 3 4
22# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h" 1 3 4
23# 37 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h" 3 4
24
25# 37 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h" 3 4
26typedef signed char __int8_t;
27
28
29
30typedef unsigned char __uint8_t;
31typedef short __int16_t;
32typedef unsigned short __uint16_t;
33typedef int __int32_t;
34typedef unsigned int __uint32_t;
35typedef long long __int64_t;
36typedef unsigned long long __uint64_t;
37
38typedef long __darwin_intptr_t;
39typedef unsigned int __darwin_natural_t;
40# 70 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/_types.h" 3 4
41typedef int __darwin_ct_rune_t;
42
43
44
45
46
47typedef union {
48 char __mbstate8[128];
49 long long _mbstateL;
50} __mbstate_t;
51
52typedef __mbstate_t __darwin_mbstate_t;
53
54
55typedef long int __darwin_ptrdiff_t;
56
57
58
59
60
61
62
63typedef long unsigned int __darwin_size_t;
64
65
66
67
68
69typedef __builtin_va_list __darwin_va_list;
70
71
72
73
74
75typedef int __darwin_wchar_t;
76
77
78
79
80typedef __darwin_wchar_t __darwin_rune_t;
81
82
83typedef int __darwin_wint_t;
84
85
86
87
88typedef unsigned long __darwin_clock_t;
89typedef __uint32_t __darwin_socklen_t;
90typedef long __darwin_ssize_t;
91typedef long __darwin_time_t;
92# 33 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h" 2 3 4
93# 34 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h" 2 3 4
94# 55 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h" 3 4
95typedef __int64_t __darwin_blkcnt_t;
96typedef __int32_t __darwin_blksize_t;
97typedef __int32_t __darwin_dev_t;
98typedef unsigned int __darwin_fsblkcnt_t;
99typedef unsigned int __darwin_fsfilcnt_t;
100typedef __uint32_t __darwin_gid_t;
101typedef __uint32_t __darwin_id_t;
102typedef __uint64_t __darwin_ino64_t;
103
104typedef __darwin_ino64_t __darwin_ino_t;
105
106
107
108typedef __darwin_natural_t __darwin_mach_port_name_t;
109typedef __darwin_mach_port_name_t __darwin_mach_port_t;
110typedef __uint16_t __darwin_mode_t;
111typedef __int64_t __darwin_off_t;
112typedef __int32_t __darwin_pid_t;
113typedef __uint32_t __darwin_sigset_t;
114typedef __int32_t __darwin_suseconds_t;
115typedef __uint32_t __darwin_uid_t;
116typedef __uint32_t __darwin_useconds_t;
117typedef unsigned char __darwin_uuid_t[16];
118typedef char __darwin_uuid_string_t[37];
119
120# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h" 1 3 4
121# 57 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h" 3 4
122struct __darwin_pthread_handler_rec {
123 void (*__routine)(void *);
124 void *__arg;
125 struct __darwin_pthread_handler_rec *__next;
126};
127
128struct _opaque_pthread_attr_t {
129 long __sig;
130 char __opaque[56];
131};
132
133struct _opaque_pthread_cond_t {
134 long __sig;
135 char __opaque[40];
136};
137
138struct _opaque_pthread_condattr_t {
139 long __sig;
140 char __opaque[8];
141};
142
143struct _opaque_pthread_mutex_t {
144 long __sig;
145 char __opaque[56];
146};
147
148struct _opaque_pthread_mutexattr_t {
149 long __sig;
150 char __opaque[8];
151};
152
153struct _opaque_pthread_once_t {
154 long __sig;
155 char __opaque[8];
156};
157
158struct _opaque_pthread_rwlock_t {
159 long __sig;
160 char __opaque[192];
161};
162
163struct _opaque_pthread_rwlockattr_t {
164 long __sig;
165 char __opaque[16];
166};
167
168struct _opaque_pthread_t {
169 long __sig;
170 struct __darwin_pthread_handler_rec *__cleanup_stack;
171 char __opaque[8176];
172};
173
174typedef struct _opaque_pthread_attr_t __darwin_pthread_attr_t;
175typedef struct _opaque_pthread_cond_t __darwin_pthread_cond_t;
176typedef struct _opaque_pthread_condattr_t __darwin_pthread_condattr_t;
177typedef unsigned long __darwin_pthread_key_t;
178typedef struct _opaque_pthread_mutex_t __darwin_pthread_mutex_t;
179typedef struct _opaque_pthread_mutexattr_t __darwin_pthread_mutexattr_t;
180typedef struct _opaque_pthread_once_t __darwin_pthread_once_t;
181typedef struct _opaque_pthread_rwlock_t __darwin_pthread_rwlock_t;
182typedef struct _opaque_pthread_rwlockattr_t __darwin_pthread_rwlockattr_t;
183typedef struct _opaque_pthread_t *__darwin_pthread_t;
184# 81 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h" 2 3 4
185# 28 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h" 2 3 4
186# 40 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h" 3 4
187typedef int __darwin_nl_item;
188typedef int __darwin_wctrans_t;
189
190typedef __uint32_t __darwin_wctype_t;
191# 72 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
192# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 1 3 4
193# 84 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 3 4
194# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h" 1 3 4
195# 85 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 2 3 4
196# 122 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 3 4
197# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h" 1 3 4
198# 123 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 2 3 4
199# 132 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 3 4
200struct accessx_descriptor {
201 unsigned int ad_name_offset;
202 int ad_flags;
203 int ad_pad[2];
204};
205# 180 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 3 4
206# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h" 1 3 4
207# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h" 3 4
208typedef __darwin_size_t size_t;
209# 181 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 2 3 4
210# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h" 1 3 4
211# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h" 3 4
212typedef unsigned long long uint64_t;
213# 182 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 2 3 4
214# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h" 1 3 4
215# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h" 3 4
216typedef unsigned int uint32_t;
217# 183 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 2 3 4
218# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h" 1 3 4
219# 135 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h" 3 4
220# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/AvailabilityVersions.h" 1 3 4
221# 136 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h" 2 3 4
222# 1 "/opt/local/lib/gcc10/gcc/x86_64-apple-darwin20/10.3.0/include-fixed/AvailabilityInternal.h" 1 3 4
223# 137 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h" 2 3 4
224# 184 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 2 3 4
225
226extern "C" {
227
228int getattrlistbulk(int, void *, void *, size_t, uint64_t) ;
229int getattrlistat(int, const char *, void *, void *, size_t, unsigned long) ;
230int setattrlistat(int, const char *, void *, void *, size_t, uint32_t) ;
231
232}
233
234
235
236
237
238
239
240# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h" 1 3 4
241# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h" 3 4
242# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h" 1 3 4
243# 35 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h" 3 4
244# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 1 3 4
245# 76 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 3 4
246# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h" 1 3 4
247# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h" 3 4
248typedef signed char int8_t;
249# 77 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
250# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h" 1 3 4
251# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h" 3 4
252typedef short int16_t;
253# 78 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
254# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h" 1 3 4
255# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h" 3 4
256typedef int int32_t;
257# 79 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
258# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h" 1 3 4
259# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h" 3 4
260typedef long long int64_t;
261# 80 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
262
263# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h" 1 3 4
264# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h" 3 4
265typedef unsigned char u_int8_t;
266# 82 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
267# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h" 1 3 4
268# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h" 3 4
269typedef unsigned short u_int16_t;
270# 83 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
271# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h" 1 3 4
272# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h" 3 4
273typedef unsigned int u_int32_t;
274# 84 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
275# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h" 1 3 4
276# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h" 3 4
277typedef unsigned long long u_int64_t;
278# 85 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
279
280
281typedef int64_t register_t;
282
283
284
285
286# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h" 1 3 4
287# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h" 3 4
288# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h" 1 3 4
289# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h" 2 3 4
290
291typedef __darwin_intptr_t intptr_t;
292# 93 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
293# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h" 1 3 4
294# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h" 3 4
295typedef unsigned long uintptr_t;
296# 94 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/types.h" 2 3 4
297
298
299
300typedef u_int64_t user_addr_t;
301typedef u_int64_t user_size_t;
302typedef int64_t user_ssize_t;
303typedef int64_t user_long_t;
304typedef u_int64_t user_ulong_t;
305typedef int64_t user_time_t;
306typedef int64_t user_off_t;
307
308
309
310
311
312
313
314typedef u_int64_t syscall_arg_t;
315# 36 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h" 2 3 4
316# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h" 2 3 4
317typedef __darwin_ssize_t ssize_t;
318# 200 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 2 3 4
319
320# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h" 1 3 4
321# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h" 3 4
322typedef __darwin_uid_t uid_t;
323# 202 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 2 3 4
324# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h" 1 3 4
325# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h" 3 4
326typedef __darwin_gid_t gid_t;
327# 203 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/unistd.h" 2 3 4
328
329
330extern "C" {
331
332int faccessat(int, const char *, int, int) ;
333int fchownat(int, const char *, uid_t, gid_t, int) ;
334int linkat(int, const char *, int, const char *, int) ;
335ssize_t readlinkat(int, const char *, char *, size_t) ;
336int symlinkat(const char *, int, const char *) ;
337int unlinkat(int, const char *, int) ;
338
339}
340# 73 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
341
342
343
344# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h" 1 3 4
345# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h" 3 4
346typedef __darwin_off_t off_t;
347# 77 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
348# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h" 1 3 4
349# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h" 3 4
350typedef __darwin_pid_t pid_t;
351# 78 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
352
353
354
355
356
357# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h" 1 3 4
358# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h" 3 4
359typedef __darwin_useconds_t useconds_t;
360# 84 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
361# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h" 1 3 4
362# 85 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
363# 429 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 3 4
364extern "C" {
365void _exit(int) __attribute__((__noreturn__));
366int access(const char *, int);
367unsigned int
368  alarm(unsigned int);
369int chdir(const char *);
370int chown(const char *, uid_t, gid_t);
371
372int close(int) __asm("_" "close" );
373
374int dup(int);
375int dup2(int, int);
376int execl(const char * __path, const char * __arg0, ...) ;
377int execle(const char * __path, const char * __arg0, ...) ;
378int execlp(const char * __file, const char * __arg0, ...) ;
379int execv(const char * __path, char * const * __argv) ;
380int execve(const char * __file, char * const * __argv, char * const * __envp) ;
381int execvp(const char * __file, char * const * __argv) ;
382pid_t fork(void) ;
383long fpathconf(int, int);
384char *getcwd(char *, size_t);
385gid_t getegid(void);
386uid_t geteuid(void);
387gid_t getgid(void);
388
389
390
391int getgroups(int, gid_t []);
392
393char *getlogin(void);
394pid_t getpgrp(void);
395pid_t getpid(void);
396pid_t getppid(void);
397uid_t getuid(void);
398int isatty(int);
399int link(const char *, const char *);
400off_t lseek(int, off_t, int);
401long pathconf(const char *, int);
402
403int pause(void) __asm("_" "pause" );
404
405int pipe(int [2]);
406
407ssize_t read(int, void *, size_t) __asm("_" "read" );
408
409int rmdir(const char *);
410int setgid(gid_t);
411int setpgid(pid_t, pid_t);
412pid_t setsid(void);
413int setuid(uid_t);
414
415unsigned int
416  sleep(unsigned int) __asm("_" "sleep" );
417
418long sysconf(int);
419pid_t tcgetpgrp(int);
420int tcsetpgrp(int, pid_t);
421char *ttyname(int);
422
423
424int ttyname_r(int, char *, size_t) __asm("_" "ttyname_r" );
425
426
427
428
429int unlink(const char *);
430
431ssize_t write(int __fd, const void * __buf, size_t __nbyte) __asm("_" "write" );
432}
433# 506 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 3 4
434extern "C" {
435size_t confstr(int, char *, size_t) __asm("_" "confstr" );
436
437int getopt(int, char * const [], const char *) __asm("_" "getopt" );
438
439extern char *optarg;
440extern int optind, opterr, optopt;
441}
442# 525 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 3 4
443# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_ctermid.h" 1 3 4
444# 29 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_ctermid.h" 3 4
445extern "C" {
446
447char *ctermid(char *);
448
449}
450# 526 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
451
452
453
454
455
456
457 extern "C" {
458
459
460
461
462
463__attribute__((__deprecated__))
464
465void *brk(const void *);
466int chroot(const char *) ;
467
468
469char *crypt(const char *, const char *);
470
471void encrypt(char *, int) __asm("_" "encrypt" );
472
473
474
475int fchdir(int);
476long gethostid(void);
477pid_t getpgid(pid_t);
478pid_t getsid(pid_t);
479
480
481
482int getdtablesize(void) ;
483int getpagesize(void) __attribute__((__const__)) ;
484char *getpass(const char *) ;
485
486
487
488
489char *getwd(char *) ;
490
491
492int lchown(const char *, uid_t, gid_t) __asm("_" "lchown" );
493
494int lockf(int, int, off_t) __asm("_" "lockf" );
495
496int nice(int) __asm("_" "nice" );
497
498ssize_t pread(int __fd, void * __buf, size_t __nbyte, off_t __offset) __asm("_" "pread" );
499
500ssize_t pwrite(int __fd, const void * __buf, size_t __nbyte, off_t __offset) __asm("_" "pwrite" );
501
502
503
504
505
506
507__attribute__((__deprecated__))
508
509void *sbrk(int);
510
511
512
513pid_t setpgrp(void) __asm("_" "setpgrp" );
514
515
516
517
518int setregid(gid_t, gid_t) __asm("_" "setregid" );
519
520int setreuid(uid_t, uid_t) __asm("_" "setreuid" );
521
522void swab(const void * , void * , ssize_t);
523void sync(void);
524int truncate(const char *, off_t);
525useconds_t ualarm(useconds_t, useconds_t);
526int usleep(useconds_t) __asm("_" "usleep" );
527pid_t vfork(void) ;
528
529
530int fsync(int) __asm("_" "fsync" );
531
532int ftruncate(int, off_t);
533int getlogin_r(char *, size_t);
534}
535# 620 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 3 4
536extern "C" {
537int fchown(int, uid_t, gid_t);
538int gethostname(char *, size_t);
539ssize_t readlink(const char * , char * , size_t);
540int setegid(gid_t);
541int seteuid(uid_t);
542int symlink(const char *, const char *);
543}
544
545
546
547
548
549
550
551# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 1 3 4
552# 66 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 3 4
553# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h" 1 3 4
554# 67 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
555# 75 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 3 4
556# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h" 1 3 4
557# 49 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h" 3 4
558extern "C" {
559typedef struct fd_set {
560 __int32_t fds_bits[((((1024) % ((sizeof(__int32_t) * 8))) == 0) ? ((1024) / ((sizeof(__int32_t) * 8))) : (((1024) / ((sizeof(__int32_t) * 8))) + 1))];
561} fd_set;
562
563int __darwin_check_fd_set_overflow(int, const void *, int) ;
564}
565
566inline __attribute__ ((__always_inline__)) int
567__darwin_check_fd_set(int _a, const void *_b)
568{
569
570
571
572
573 if ((uintptr_t)&__darwin_check_fd_set_overflow != (uintptr_t) 0) {
574
575
576
577  return __darwin_check_fd_set_overflow(_a, _b, 0);
578
579 } else {
580  return 1;
581 }
582
583
584
585}
586
587
588inline __attribute__ ((__always_inline__)) int
589__darwin_fd_isset(int _fd, const struct fd_set *_p)
590{
591 if (__darwin_check_fd_set(_fd, (const void *) _p)) {
592  return _p->fds_bits[(unsigned long)_fd / (sizeof(__int32_t) * 8)] & ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % (sizeof(__int32_t) * 8))));
593 }
594
595 return 0;
596}
597
598inline __attribute__ ((__always_inline__)) void
599__darwin_fd_set(int _fd, struct fd_set *const _p)
600{
601 if (__darwin_check_fd_set(_fd, (const void *) _p)) {
602  (_p->fds_bits[(unsigned long)_fd / (sizeof(__int32_t) * 8)] |= ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % (sizeof(__int32_t) * 8)))));
603 }
604}
605
606inline __attribute__ ((__always_inline__)) void
607__darwin_fd_clr(int _fd, struct fd_set *const _p)
608{
609 if (__darwin_check_fd_set(_fd, (const void *) _p)) {
610  (_p->fds_bits[(unsigned long)_fd / (sizeof(__int32_t) * 8)] &= ~((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % (sizeof(__int32_t) * 8)))));
611 }
612}
613# 76 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
614# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h" 1 3 4
615# 33 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h" 3 4
616struct timespec
617{
618 __darwin_time_t tv_sec;
619 long tv_nsec;
620};
621# 77 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
622# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h" 1 3 4
623# 34 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h" 3 4
624struct timeval
625{
626 __darwin_time_t tv_sec;
627 __darwin_suseconds_t tv_usec;
628};
629# 78 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
630
631
632
633
634
635
636# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h" 1 3 4
637# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h" 3 4
638typedef __darwin_time_t time_t;
639# 85 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
640# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h" 1 3 4
641# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h" 3 4
642typedef __darwin_suseconds_t suseconds_t;
643# 86 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
644# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h" 1 3 4
645# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h" 3 4
646typedef __darwin_sigset_t sigset_t;
647# 87 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
648# 100 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 3 4
649# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h" 1 3 4
650# 101 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
651# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h" 1 3 4
652# 102 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
653# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h" 1 3 4
654# 103 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
655# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h" 1 3 4
656# 104 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
657# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h" 1 3 4
658# 105 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
659
660
661# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h" 1 3 4
662# 108 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
663
664
665
666extern "C" {
667
668
669int pselect(int, fd_set * , fd_set * ,
670    fd_set * , const struct timespec * ,
671    const sigset_t * )
672
673
674
675
676__asm("_" "pselect" "$1050")
677
678
679
680
681;
682
683
684# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h" 1 3 4
685# 43 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_select.h" 3 4
686int select(int, fd_set * , fd_set * ,
687    fd_set * , struct timeval * )
688
689
690
691
692
693__asm("_" "select" "$1050")
694
695
696
697
698;
699# 130 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/select.h" 2 3 4
700
701}
702# 636 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
703
704# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h" 1 3 4
705# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h" 3 4
706typedef __darwin_dev_t dev_t;
707# 638 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
708# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h" 1 3 4
709# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h" 3 4
710typedef __darwin_mode_t mode_t;
711# 639 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
712# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h" 1 3 4
713# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h" 3 4
714typedef __darwin_uuid_t uuid_t;
715# 640 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
716
717extern "C" {
718void _Exit(int) __attribute__((__noreturn__));
719int accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t);
720int acct(const char *);
721int add_profil(char *, size_t, unsigned long, unsigned int) ;
722void endusershell(void);
723int execvP(const char * __file, const char * __searchpath, char * const * __argv) ;
724char *fflagstostr(unsigned long);
725int getdomainname(char *, int);
726int getgrouplist(const char *, int, int *, int *);
727
728
729
730
731# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h" 1 3 4
732# 39 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/gethostuuid.h" 3 4
733int gethostuuid(uuid_t, const struct timespec *) ;
734# 656 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 2 3 4
735
736
737
738
739mode_t getmode(const void *, mode_t);
740int getpeereid(int, uid_t *, gid_t *);
741int getsgroups_np(int *, uuid_t);
742char *getusershell(void);
743int getwgroups_np(int *, uuid_t);
744int initgroups(const char *, int);
745int issetugid(void);
746char *mkdtemp(char *);
747int mknod(const char *, mode_t, dev_t);
748int mkpath_np(const char *path, mode_t omode) ;
749int mkpathat_np(int dfd, const char *path, mode_t omode)
750 
751  ;
752int mkstemp(char *);
753int mkstemps(char *, int);
754char *mktemp(char *);
755int mkostemp(char *path, int oflags)
756 
757  ;
758int mkostemps(char *path, int slen, int oflags)
759 
760  ;
761
762int mkstemp_dprotected_np(char *path, int dpclass, int dpflags)
763 
764  ;
765char *mkdtempat_np(int dfd, char *path)
766 
767  ;
768int mkstempsat_np(int dfd, char *path, int slen)
769 
770  ;
771int mkostempsat_np(int dfd, char *path, int slen, int oflags)
772 
773  ;
774int nfssvc(int, void *);
775int profil(char *, size_t, unsigned long, unsigned int);
776
777__attribute__((__deprecated__("Use of per-thread security contexts is error-prone and discouraged.")))
778int pthread_setugid_np(uid_t, gid_t);
779int pthread_getugid_np( uid_t *, gid_t *);
780
781int reboot(int);
782int revoke(const char *);
783
784__attribute__((__deprecated__)) int rcmd(char **, int, const char *, const char *, const char *, int *);
785__attribute__((__deprecated__)) int rcmd_af(char **, int, const char *, const char *, const char *, int *,
786  int);
787__attribute__((__deprecated__)) int rresvport(int *);
788__attribute__((__deprecated__)) int rresvport_af(int *, int);
789__attribute__((__deprecated__)) int iruserok(unsigned long, int, const char *, const char *);
790__attribute__((__deprecated__)) int iruserok_sa(const void *, int, int, const char *, const char *);
791__attribute__((__deprecated__)) int ruserok(const char *, int, const char *, const char *);
792
793int setdomainname(const char *, int);
794int setgroups(int, const gid_t *);
795void sethostid(long);
796int sethostname(const char *, int);
797
798void setkey(const char *) __asm("_" "setkey" );
799
800
801
802int setlogin(const char *);
803void *setmode(const char *) __asm("_" "setmode" );
804int setrgid(gid_t);
805int setruid(uid_t);
806int setsgroups_np(int, const uuid_t);
807void setusershell(void);
808int setwgroups_np(int, const uuid_t);
809int strtofflags(char **, unsigned long *, unsigned long *);
810int swapon(const char *);
811int ttyslot(void);
812int undelete(const char *);
813int unwhiteout(const char *);
814void *valloc(size_t);
815
816
817
818
819
820
821int syscall(int, ...);
822
823extern char *suboptarg;
824int getsubopt(char **, char * const *, char **);
825
826
827
828int fgetattrlist(int,void*,void*,size_t,unsigned int) ;
829int fsetattrlist(int,void*,void*,size_t,unsigned int) ;
830int getattrlist(const char*,void*,void*,size_t,unsigned int) __asm("_" "getattrlist" );
831int setattrlist(const char*,void*,void*,size_t,unsigned int) __asm("_" "setattrlist" );
832int exchangedata(const char*,const char*,unsigned int) ;
833int getdirentriesattr(int,void*,void*,size_t,unsigned int*,unsigned int*,unsigned int*,unsigned int) ;
834# 769 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h" 3 4
835struct fssearchblock;
836struct searchstate;
837
838int searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *) ;
839int fsctl(const char *,unsigned long,void*,unsigned int);
840int ffsctl(int,unsigned long,void*,unsigned int) ;
841
842
843
844
845int fsync_volume_np(int, int) ;
846int sync_volume_np(const char *, int) ;
847
848extern int optreset;
849
850}
851# 2 "remove-untranslated.cc" 2
852# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h" 1 3 4
853# 69 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h" 3 4
854# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h" 1 3 4
855# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h" 3 4
856typedef __darwin_clock_t clock_t;
857# 70 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h" 2 3 4
858
859
860
861
862
863struct tm {
864 int tm_sec;
865 int tm_min;
866 int tm_hour;
867 int tm_mday;
868 int tm_mon;
869 int tm_year;
870 int tm_wday;
871 int tm_yday;
872 int tm_isdst;
873 long tm_gmtoff;
874 char *tm_zone;
875};
876# 98 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h" 3 4
877extern char *tzname[];
878
879
880extern int getdate_err;
881
882extern long timezone __asm("_" "timezone" );
883
884extern int daylight;
885
886extern "C" {
887char *asctime(const struct tm *);
888clock_t clock(void) __asm("_" "clock" );
889char *ctime(const time_t *);
890double difftime(time_t, time_t);
891struct tm *getdate(const char *);
892struct tm *gmtime(const time_t *);
893struct tm *localtime(const time_t *);
894time_t mktime(struct tm *) __asm("_" "mktime" );
895size_t strftime(char * , size_t, const char * , const struct tm * ) __asm("_" "strftime" );
896char *strptime(const char * , const char * , struct tm * ) __asm("_" "strptime" );
897time_t time(time_t *);
898
899
900void tzset(void);
901
902
903
904char *asctime_r(const struct tm * , char * );
905char *ctime_r(const time_t *, char *);
906struct tm *gmtime_r(const time_t * , struct tm * );
907struct tm *localtime_r(const time_t * , struct tm * );
908
909
910time_t posix2time(time_t);
911
912
913
914void tzsetwall(void);
915time_t time2posix(time_t);
916time_t timelocal(struct tm * const);
917time_t timegm(struct tm * const);
918
919
920
921int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp) __asm("_" "nanosleep" );
922# 153 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h" 3 4
923typedef enum {
924_CLOCK_REALTIME = 0,
925
926_CLOCK_MONOTONIC = 6,
927
928
929_CLOCK_MONOTONIC_RAW = 4,
930
931_CLOCK_MONOTONIC_RAW_APPROX = 5,
932
933_CLOCK_UPTIME_RAW = 8,
934
935_CLOCK_UPTIME_RAW_APPROX = 9,
936
937
938_CLOCK_PROCESS_CPUTIME_ID = 12,
939
940_CLOCK_THREAD_CPUTIME_ID = 16
941
942} clockid_t;
943
944
945int clock_getres(clockid_t __clock_id, struct timespec *__res);
946
947
948int clock_gettime(clockid_t __clock_id, struct timespec *__tp);
949
950
951
952__uint64_t clock_gettime_nsec_np(clockid_t __clock_id);
953
954
955
956
957int clock_settime(clockid_t __clock_id, const struct timespec *__tp);
958# 198 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h" 3 4
959
960int timespec_get(struct timespec *ts, int base);
961
962
963}
964# 3 "remove-untranslated.cc" 2
965# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/utime.h" 1 3 4
966# 64 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/utime.h" 3 4
967struct utimbuf {
968 time_t actime;
969 time_t modtime;
970};
971
972
973
974extern "C" {
975int utime(const char *, const struct utimbuf *);
976}
977# 4 "remove-untranslated.cc" 2
978# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h" 1 3 4
979# 23 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h" 3 4
980# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h" 1 3 4
981# 76 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h" 3 4
982# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h" 1 3 4
983# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h" 3 4
984typedef int errno_t;
985# 77 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h" 2 3 4
986
987
988extern "C" {
989extern int * __error(void);
990
991}
992# 24 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h" 2 3 4
993# 5 "remove-untranslated.cc" 2
994# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 1 3 4
995# 81 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 3 4
996# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h" 1 3 4
997# 35 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h" 3 4
998# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h" 1 3 4
999# 99 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h" 3 4
1000# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h" 1 3 4
1001# 130 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h" 3 4
1002# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h" 1 3 4
1003# 76 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h" 3 4
1004# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h" 1 3 4
1005# 44 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h" 3 4
1006static inline
1007__uint16_t
1008_OSSwapInt16(
1009 __uint16_t _data
1010 )
1011{
1012 return (__uint16_t)((_data << 8) | (_data >> 8));
1013}
1014
1015static inline
1016__uint32_t
1017_OSSwapInt32(
1018 __uint32_t _data
1019 )
1020{
1021
1022
1023
1024 __asm__ ("bswap   %0" : "+r" (_data));
1025 return _data;
1026
1027}
1028# 91 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/i386/_OSByteOrder.h" 3 4
1029static inline
1030__uint64_t
1031_OSSwapInt64(
1032 __uint64_t _data
1033 )
1034{
1035 __asm__ ("bswap   %0" : "+r" (_data));
1036 return _data;
1037}
1038# 77 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h" 2 3 4
1039# 131 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h" 2 3 4
1040# 100 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h" 2 3 4
1041# 36 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h" 2 3 4
1042# 82 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1043
1044
1045# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h" 1 3 4
1046# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h" 3 4
1047typedef unsigned char u_char;
1048# 85 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1049# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h" 1 3 4
1050# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h" 3 4
1051typedef unsigned short u_short;
1052# 86 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1053# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h" 1 3 4
1054# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h" 3 4
1055typedef unsigned int u_int;
1056# 87 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1057
1058typedef unsigned long u_long;
1059
1060
1061typedef unsigned short ushort;
1062typedef unsigned int uint;
1063
1064
1065typedef u_int64_t u_quad_t;
1066typedef int64_t quad_t;
1067typedef quad_t * qaddr_t;
1068
1069# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h" 1 3 4
1070# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h" 3 4
1071typedef char * caddr_t;
1072# 100 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1073
1074typedef int32_t daddr_t;
1075
1076
1077
1078typedef u_int32_t fixpt_t;
1079
1080# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h" 1 3 4
1081# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h" 3 4
1082typedef __darwin_blkcnt_t blkcnt_t;
1083# 108 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1084# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h" 1 3 4
1085# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h" 3 4
1086typedef __darwin_blksize_t blksize_t;
1087# 109 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1088
1089# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h" 1 3 4
1090# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h" 3 4
1091typedef __uint32_t in_addr_t;
1092# 111 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1093# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h" 1 3 4
1094# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h" 3 4
1095typedef __uint16_t in_port_t;
1096# 112 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1097# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h" 1 3 4
1098# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h" 3 4
1099typedef __darwin_ino_t ino_t;
1100# 113 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1101
1102
1103# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h" 1 3 4
1104# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h" 3 4
1105typedef __darwin_ino64_t ino64_t;
1106# 116 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1107
1108
1109# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h" 1 3 4
1110# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h" 3 4
1111typedef __int32_t key_t;
1112# 119 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1113
1114# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h" 1 3 4
1115# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h" 3 4
1116typedef __uint16_t nlink_t;
1117# 121 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1118# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h" 1 3 4
1119# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h" 3 4
1120typedef __darwin_id_t id_t;
1121# 122 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1122
1123
1124
1125typedef int32_t segsz_t;
1126typedef int32_t swblk_t;
1127# 138 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 3 4
1128static inline __int32_t
1129major(__uint32_t _x)
1130{
1131 return (__int32_t)(((__uint32_t)_x >> 24) & 0xff);
1132}
1133
1134static inline __int32_t
1135minor(__uint32_t _x)
1136{
1137 return (__int32_t)((_x) & 0xffffff);
1138}
1139
1140static inline dev_t
1141makedev(__uint32_t _major, __uint32_t _minor)
1142{
1143 return (dev_t)(((_major) << 24) | (_minor));
1144}
1145# 174 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 3 4
1146# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h" 1 3 4
1147# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h" 3 4
1148typedef __darwin_size_t rsize_t;
1149# 175 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1150# 189 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 3 4
1151typedef __int32_t fd_mask;
1152# 215 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 3 4
1153# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h" 1 3 4
1154# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h" 3 4
1155typedef __darwin_pthread_attr_t pthread_attr_t;
1156# 216 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1157# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h" 1 3 4
1158# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h" 3 4
1159typedef __darwin_pthread_cond_t pthread_cond_t;
1160# 217 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1161# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h" 1 3 4
1162# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h" 3 4
1163typedef __darwin_pthread_condattr_t pthread_condattr_t;
1164# 218 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1165# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h" 1 3 4
1166# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h" 3 4
1167typedef __darwin_pthread_mutex_t pthread_mutex_t;
1168# 219 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1169# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h" 1 3 4
1170# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h" 3 4
1171typedef __darwin_pthread_mutexattr_t pthread_mutexattr_t;
1172# 220 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1173# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h" 1 3 4
1174# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h" 3 4
1175typedef __darwin_pthread_once_t pthread_once_t;
1176# 221 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1177# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h" 1 3 4
1178# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h" 3 4
1179typedef __darwin_pthread_rwlock_t pthread_rwlock_t;
1180# 222 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1181# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h" 1 3 4
1182# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h" 3 4
1183typedef __darwin_pthread_rwlockattr_t pthread_rwlockattr_t;
1184# 223 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1185# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h" 1 3 4
1186# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h" 3 4
1187typedef __darwin_pthread_t pthread_t;
1188# 224 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1189
1190
1191
1192# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h" 1 3 4
1193# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h" 3 4
1194typedef __darwin_pthread_key_t pthread_key_t;
1195# 228 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1196
1197
1198
1199
1200# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h" 1 3 4
1201# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h" 3 4
1202typedef __darwin_fsblkcnt_t fsblkcnt_t;
1203# 233 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1204# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h" 1 3 4
1205# 31 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h" 3 4
1206typedef __darwin_fsfilcnt_t fsfilcnt_t;
1207# 234 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h" 2 3 4
1208# 6 "remove-untranslated.cc" 2
1209# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h" 1 3 4
1210# 110 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h" 3 4
1211struct ostat {
1212 __uint16_t st_dev;
1213 ino_t st_ino;
1214 mode_t st_mode;
1215 nlink_t st_nlink;
1216 __uint16_t st_uid;
1217 __uint16_t st_gid;
1218 __uint16_t st_rdev;
1219 __int32_t st_size;
1220 struct timespec st_atimespec;
1221 struct timespec st_mtimespec;
1222 struct timespec st_ctimespec;
1223 __int32_t st_blksize;
1224 __int32_t st_blocks;
1225 __uint32_t st_flags;
1226 __uint32_t st_gen;
1227};
1228# 182 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h" 3 4
1229struct stat { dev_t st_dev; mode_t st_mode; nlink_t st_nlink; __darwin_ino64_t st_ino; uid_t st_uid; gid_t st_gid; dev_t st_rdev; struct timespec st_atimespec; struct timespec st_mtimespec; struct timespec st_ctimespec; struct timespec st_birthtimespec; off_t st_size; blkcnt_t st_blocks; blksize_t st_blksize; __uint32_t st_flags; __uint32_t st_gen; __int32_t st_lspare; __int64_t st_qspare[2]; };
1230# 221 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h" 3 4
1231struct stat64 { dev_t st_dev; mode_t st_mode; nlink_t st_nlink; __darwin_ino64_t st_ino; uid_t st_uid; gid_t st_gid; dev_t st_rdev; struct timespec st_atimespec; struct timespec st_mtimespec; struct timespec st_ctimespec; struct timespec st_birthtimespec; off_t st_size; blkcnt_t st_blocks; blksize_t st_blksize; __uint32_t st_flags; __uint32_t st_gen; __int32_t st_lspare; __int64_t st_qspare[2]; };
1232# 241 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h" 3 4
1233# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h" 1 3 4
1234# 242 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h" 2 3 4
1235# 378 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h" 3 4
1236extern "C" {
1237
1238int chmod(const char *, mode_t) __asm("_" "chmod" );
1239int fchmod(int, mode_t) __asm("_" "fchmod" );
1240int fstat(int, struct stat *) __asm("_" "fstat" "$INODE64");
1241int lstat(const char *, struct stat *) __asm("_" "lstat" "$INODE64");
1242int mkdir(const char *, mode_t);
1243int mkfifo(const char *, mode_t);
1244int stat(const char *, struct stat *) __asm("_" "stat" "$INODE64");
1245int mknod(const char *, mode_t, dev_t);
1246mode_t umask(mode_t);
1247
1248
1249int fchmodat(int, const char *, mode_t, int) ;
1250int fstatat(int, const char *, struct stat *, int) __asm("_" "fstatat" "$INODE64") ;
1251int mkdirat(int, const char *, mode_t) ;
1252
1253
1254
1255
1256int futimens(int __fd, const struct timespec __times[2]) ;
1257int utimensat(int __fd, const char *__path, const struct timespec __times[2],
1258    int __flag) ;
1259
1260
1261
1262
1263# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h" 1 3 4
1264# 30 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h" 3 4
1265struct _filesec;
1266typedef struct _filesec *filesec_t;
1267# 406 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h" 2 3 4
1268
1269int chflags(const char *, __uint32_t);
1270int chmodx_np(const char *, filesec_t);
1271int fchflags(int, __uint32_t);
1272int fchmodx_np(int, filesec_t);
1273int fstatx_np(int, struct stat *, filesec_t) __asm("_" "fstatx_np" "$INODE64");
1274int lchflags(const char *, __uint32_t) ;
1275int lchmod(const char *, mode_t) ;
1276int lstatx_np(const char *, struct stat *, filesec_t) __asm("_" "lstatx_np" "$INODE64");
1277int mkdirx_np(const char *, filesec_t);
1278int mkfifox_np(const char *, filesec_t);
1279int statx_np(const char *, struct stat *, filesec_t) __asm("_" "statx_np" "$INODE64");
1280int umaskx_np(filesec_t) ;
1281
1282
1283
1284int fstatx64_np(int, struct stat64 *, filesec_t) ;
1285int lstatx64_np(const char *, struct stat64 *, filesec_t) ;
1286int statx64_np(const char *, struct stat64 *, filesec_t) ;
1287int fstat64(int, struct stat64 *) ;
1288int lstat64(const char *, struct stat64 *) ;
1289int stat64(const char *, struct stat64 *) ;
1290
1291
1292
1293}
1294# 7 "remove-untranslated.cc" 2
1295# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/dirent.h" 1 3 4
1296# 65 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/dirent.h" 3 4
1297# 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/dirent.h" 1 3 4
1298# 86 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/dirent.h" 3 4
1299#pragma pack(4)
1300# 98 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/dirent.h" 3 4
1301#pragma pack()
1302# 112 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/dirent.h" 3 4
1303struct dirent { __uint64_t d_ino; __uint64_t d_seekoff; __uint16_t d_reclen; __uint16_t d_namlen; __uint8_t d_type; char d_name[1024]; };
1304# 66 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/dirent.h" 2 3 4
1305
1306
1307
1308
1309struct _telldir;
1310
1311
1312typedef struct {
1313 int __dd_fd;
1314 long __dd_loc;
1315 long __dd_size;
1316 char *__dd_buf;
1317 int __dd_len;
1318 long __dd_seek;
1319 __attribute__((__unused__)) long __padding;
1320 int __dd_flags;
1321 __darwin_pthread_mutex_t __dd_lock;
1322 struct _telldir *__dd_td;
1323} DIR;
1324# 103 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/dirent.h" 3 4
1325extern "C" {
1326
1327int closedir(DIR *) __asm("_" "closedir" );
1328
1329DIR *opendir(const char *) __asm("_" "opendir" "$INODE64" );
1330
1331struct dirent *readdir(DIR *) __asm("_" "readdir" "$INODE64");
1332int readdir_r(DIR *, struct dirent *, struct dirent **) __asm("_" "readdir_r" "$INODE64");
1333
1334void rewinddir(DIR *) __asm("_" "rewinddir" "$INODE64" );
1335
1336void seekdir(DIR *, long) __asm("_" "seekdir" "$INODE64" );
1337
1338long telldir(DIR *) __asm("_" "telldir" "$INODE64" );
1339
1340}
1341
1342
1343
1344
1345
1346
1347
1348extern "C" {
1349
1350
1351DIR *fdopendir(int) __asm("_" "fdopendir" "$INODE64" );
1352
1353int alphasort(const struct dirent **, const struct dirent **) __asm("_" "alphasort" "$INODE64");
1354# 146 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/dirent.h" 3 4
1355int dirfd(DIR *dirp) ;
1356
1357
1358int scandir(const char *, struct dirent ***,
1359    int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **)) __asm("_" "scandir" "$INODE64");
1360# 164 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/dirent.h" 3 4
1361}
1362
1363
1364
1365
1366extern "C" {
1367
1368int getdirentries(int, char *, int, long *)
1369
1370
1371
1372
1373
1374
1375      __asm("_getdirentries_is_not_available_when_64_bit_inodes_are_in_effect")
1376
1377
1378
1379;
1380
1381DIR *__opendir2(const char *, int) __asm("_" "__opendir2" "$INODE64" );
1382
1383}
1384# 8 "remove-untranslated.cc" 2
1385# 1 "/opt/local/include/gcc10/c++/queue" 1 3
1386# 58 "/opt/local/include/gcc10/c++/queue" 3
1387       
1388# 59 "/opt/local/include/gcc10/c++/queue" 3
1389
1390# 1 "/opt/local/include/gcc10/c++/deque" 1 3
1391# 58 "/opt/local/include/gcc10/c++/deque" 3
1392       
1393# 59 "/opt/local/include/gcc10/c++/deque" 3
1394
1395# 1 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 1 3
1396# 59 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
1397# 1 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++config.h" 1 3
1398# 262 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++config.h" 3
1399namespace std
1400{
1401  typedef long unsigned int size_t;
1402  typedef long int ptrdiff_t;
1403
1404
1405  typedef decltype(nullptr) nullptr_t;
1406
1407}
1408# 284 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++config.h" 3
1409namespace std
1410{
1411  inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
1412}
1413namespace __gnu_cxx
1414{
1415  inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
1416}
1417# 522 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++config.h" 3
1418# 1 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/os_defines.h" 1 3
1419# 523 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++config.h" 2 3
1420
1421
1422# 1 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/cpu_defines.h" 1 3
1423# 526 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++config.h" 2 3
1424# 60 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
1425# 1 "/opt/local/include/gcc10/c++/bits/functexcept.h" 1 3
1426# 40 "/opt/local/include/gcc10/c++/bits/functexcept.h" 3
1427# 1 "/opt/local/include/gcc10/c++/bits/exception_defines.h" 1 3
1428# 41 "/opt/local/include/gcc10/c++/bits/functexcept.h" 2 3
1429
1430namespace std __attribute__ ((__visibility__ ("default")))
1431{
1432
1433
1434
1435  void
1436  __throw_bad_exception(void) __attribute__((__noreturn__));
1437
1438
1439  void
1440  __throw_bad_alloc(void) __attribute__((__noreturn__));
1441
1442
1443  void
1444  __throw_bad_cast(void) __attribute__((__noreturn__));
1445
1446  void
1447  __throw_bad_typeid(void) __attribute__((__noreturn__));
1448
1449
1450  void
1451  __throw_logic_error(const char*) __attribute__((__noreturn__));
1452
1453  void
1454  __throw_domain_error(const char*) __attribute__((__noreturn__));
1455
1456  void
1457  __throw_invalid_argument(const char*) __attribute__((__noreturn__));
1458
1459  void
1460  __throw_length_error(const char*) __attribute__((__noreturn__));
1461
1462  void
1463  __throw_out_of_range(const char*) __attribute__((__noreturn__));
1464
1465  void
1466  __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__))
1467    __attribute__((__format__(__gnu_printf__, 1, 2)));
1468
1469  void
1470  __throw_runtime_error(const char*) __attribute__((__noreturn__));
1471
1472  void
1473  __throw_range_error(const char*) __attribute__((__noreturn__));
1474
1475  void
1476  __throw_overflow_error(const char*) __attribute__((__noreturn__));
1477
1478  void
1479  __throw_underflow_error(const char*) __attribute__((__noreturn__));
1480
1481
1482  void
1483  __throw_ios_failure(const char*) __attribute__((__noreturn__));
1484
1485  void
1486  __throw_ios_failure(const char*, int) __attribute__((__noreturn__));
1487
1488
1489  void
1490  __throw_system_error(int) __attribute__((__noreturn__));
1491
1492
1493  void
1494  __throw_future_error(int) __attribute__((__noreturn__));
1495
1496
1497  void
1498  __throw_bad_function_call() __attribute__((__noreturn__));
1499
1500
1501}
1502# 61 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
1503# 1 "/opt/local/include/gcc10/c++/bits/cpp_type_traits.h" 1 3
1504# 35 "/opt/local/include/gcc10/c++/bits/cpp_type_traits.h" 3
1505       
1506# 36 "/opt/local/include/gcc10/c++/bits/cpp_type_traits.h" 3
1507# 67 "/opt/local/include/gcc10/c++/bits/cpp_type_traits.h" 3
1508extern "C++" {
1509
1510namespace std __attribute__ ((__visibility__ ("default")))
1511{
1512
1513
1514  struct __true_type { };
1515  struct __false_type { };
1516
1517  template<bool>
1518    struct __truth_type
1519    { typedef __false_type __type; };
1520
1521  template<>
1522    struct __truth_type<true>
1523    { typedef __true_type __type; };
1524
1525
1526
1527  template<class _Sp, class _Tp>
1528    struct __traitor
1529    {
1530      enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
1531      typedef typename __truth_type<__value>::__type __type;
1532    };
1533
1534
1535  template<typename, typename>
1536    struct __are_same
1537    {
1538      enum { __value = 0 };
1539      typedef __false_type __type;
1540    };
1541
1542  template<typename _Tp>
1543    struct __are_same<_Tp, _Tp>
1544    {
1545      enum { __value = 1 };
1546      typedef __true_type __type;
1547    };
1548
1549
1550  template<typename _Tp>
1551    struct __is_void
1552    {
1553      enum { __value = 0 };
1554      typedef __false_type __type;
1555    };
1556
1557  template<>
1558    struct __is_void<void>
1559    {
1560      enum { __value = 1 };
1561      typedef __true_type __type;
1562    };
1563
1564
1565
1566
1567  template<typename _Tp>
1568    struct __is_integer
1569    {
1570      enum { __value = 0 };
1571      typedef __false_type __type;
1572    };
1573
1574
1575
1576
1577
1578  template<>
1579    struct __is_integer<bool>
1580    {
1581      enum { __value = 1 };
1582      typedef __true_type __type;
1583    };
1584
1585  template<>
1586    struct __is_integer<char>
1587    {
1588      enum { __value = 1 };
1589      typedef __true_type __type;
1590    };
1591
1592  template<>
1593    struct __is_integer<signed char>
1594    {
1595      enum { __value = 1 };
1596      typedef __true_type __type;
1597    };
1598
1599  template<>
1600    struct __is_integer<unsigned char>
1601    {
1602      enum { __value = 1 };
1603      typedef __true_type __type;
1604    };
1605
1606
1607  template<>
1608    struct __is_integer<wchar_t>
1609    {
1610      enum { __value = 1 };
1611      typedef __true_type __type;
1612    };
1613# 184 "/opt/local/include/gcc10/c++/bits/cpp_type_traits.h" 3
1614  template<>
1615    struct __is_integer<char16_t>
1616    {
1617      enum { __value = 1 };
1618      typedef __true_type __type;
1619    };
1620
1621  template<>
1622    struct __is_integer<char32_t>
1623    {
1624      enum { __value = 1 };
1625      typedef __true_type __type;
1626    };
1627
1628
1629  template<>
1630    struct __is_integer<short>
1631    {
1632      enum { __value = 1 };
1633      typedef __true_type __type;
1634    };
1635
1636  template<>
1637    struct __is_integer<unsigned short>
1638    {
1639      enum { __value = 1 };
1640      typedef __true_type __type;
1641    };
1642
1643  template<>
1644    struct __is_integer<int>
1645    {
1646      enum { __value = 1 };
1647      typedef __true_type __type;
1648    };
1649
1650  template<>
1651    struct __is_integer<unsigned int>
1652    {
1653      enum { __value = 1 };
1654      typedef __true_type __type;
1655    };
1656
1657  template<>
1658    struct __is_integer<long>
1659    {
1660      enum { __value = 1 };
1661      typedef __true_type __type;
1662    };
1663
1664  template<>
1665    struct __is_integer<unsigned long>
1666    {
1667      enum { __value = 1 };
1668      typedef __true_type __type;
1669    };
1670
1671  template<>
1672    struct __is_integer<long long>
1673    {
1674      enum { __value = 1 };
1675      typedef __true_type __type;
1676    };
1677
1678  template<>
1679    struct __is_integer<unsigned long long>
1680    {
1681      enum { __value = 1 };
1682      typedef __true_type __type;
1683    };
1684# 270 "/opt/local/include/gcc10/c++/bits/cpp_type_traits.h" 3
1685template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer<unsigned __int128> { enum { __value = 1 }; typedef __true_type __type; };
1686# 287 "/opt/local/include/gcc10/c++/bits/cpp_type_traits.h" 3
1687  template<typename _Tp>
1688    struct __is_floating
1689    {
1690      enum { __value = 0 };
1691      typedef __false_type __type;
1692    };
1693
1694
1695  template<>
1696    struct __is_floating<float>
1697    {
1698      enum { __value = 1 };
1699      typedef __true_type __type;
1700    };
1701
1702  template<>
1703    struct __is_floating<double>
1704    {
1705      enum { __value = 1 };
1706      typedef __true_type __type;
1707    };
1708
1709  template<>
1710    struct __is_floating<long double>
1711    {
1712      enum { __value = 1 };
1713      typedef __true_type __type;
1714    };
1715
1716
1717
1718
1719  template<typename _Tp>
1720    struct __is_pointer
1721    {
1722      enum { __value = 0 };
1723      typedef __false_type __type;
1724    };
1725
1726  template<typename _Tp>
1727    struct __is_pointer<_Tp*>
1728    {
1729      enum { __value = 1 };
1730      typedef __true_type __type;
1731    };
1732
1733
1734
1735
1736  template<typename _Tp>
1737    struct __is_arithmetic
1738    : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
1739    { };
1740
1741
1742
1743
1744  template<typename _Tp>
1745    struct __is_scalar
1746    : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
1747    { };
1748
1749
1750
1751
1752  template<typename _Tp>
1753    struct __is_char
1754    {
1755      enum { __value = 0 };
1756      typedef __false_type __type;
1757    };
1758
1759  template<>
1760    struct __is_char<char>
1761    {
1762      enum { __value = 1 };
1763      typedef __true_type __type;
1764    };
1765
1766
1767  template<>
1768    struct __is_char<wchar_t>
1769    {
1770      enum { __value = 1 };
1771      typedef __true_type __type;
1772    };
1773
1774
1775  template<typename _Tp>
1776    struct __is_byte
1777    {
1778      enum { __value = 0 };
1779      typedef __false_type __type;
1780    };
1781
1782  template<>
1783    struct __is_byte<char>
1784    {
1785      enum { __value = 1 };
1786      typedef __true_type __type;
1787    };
1788
1789  template<>
1790    struct __is_byte<signed char>
1791    {
1792      enum { __value = 1 };
1793      typedef __true_type __type;
1794    };
1795
1796  template<>
1797    struct __is_byte<unsigned char>
1798    {
1799      enum { __value = 1 };
1800      typedef __true_type __type;
1801    };
1802# 423 "/opt/local/include/gcc10/c++/bits/cpp_type_traits.h" 3
1803  template<typename> struct iterator_traits;
1804
1805
1806  template<typename _Tp>
1807    struct __is_nonvolatile_trivially_copyable
1808    {
1809      enum { __value = __is_trivially_copyable(_Tp) };
1810    };
1811
1812
1813
1814
1815  template<typename _Tp>
1816    struct __is_nonvolatile_trivially_copyable<volatile _Tp>
1817    {
1818      enum { __value = 0 };
1819    };
1820
1821
1822  template<typename _OutputIter, typename _InputIter>
1823    struct __memcpyable
1824    {
1825      enum { __value = 0 };
1826    };
1827
1828  template<typename _Tp>
1829    struct __memcpyable<_Tp*, _Tp*>
1830    : __is_nonvolatile_trivially_copyable<_Tp>
1831    { };
1832
1833  template<typename _Tp>
1834    struct __memcpyable<_Tp*, const _Tp*>
1835    : __is_nonvolatile_trivially_copyable<_Tp>
1836    { };
1837
1838
1839
1840
1841
1842
1843  template<typename _Iter1, typename _Iter2>
1844    struct __memcmpable
1845    {
1846      enum { __value = 0 };
1847    };
1848
1849
1850  template<typename _Tp>
1851    struct __memcmpable<_Tp*, _Tp*>
1852    : __is_nonvolatile_trivially_copyable<_Tp>
1853    { };
1854
1855  template<typename _Tp>
1856    struct __memcmpable<const _Tp*, _Tp*>
1857    : __is_nonvolatile_trivially_copyable<_Tp>
1858    { };
1859
1860  template<typename _Tp>
1861    struct __memcmpable<_Tp*, const _Tp*>
1862    : __is_nonvolatile_trivially_copyable<_Tp>
1863    { };
1864
1865
1866
1867
1868  template<typename _Tp, bool _TreatAsBytes = __is_byte<_Tp>::__value>
1869    struct __is_memcmp_ordered
1870    {
1871      static const bool __value = _Tp(-1) > _Tp(1);
1872    };
1873
1874  template<typename _Tp>
1875    struct __is_memcmp_ordered<_Tp, false>
1876    {
1877      static const bool __value = false;
1878    };
1879
1880
1881  template<typename _Tp, typename _Up, bool = sizeof(_Tp) == sizeof(_Up)>
1882    struct __is_memcmp_ordered_with
1883    {
1884      static const bool __value = __is_memcmp_ordered<_Tp>::__value
1885 && __is_memcmp_ordered<_Up>::__value;
1886    };
1887
1888  template<typename _Tp, typename _Up>
1889    struct __is_memcmp_ordered_with<_Tp, _Up, false>
1890    {
1891      static const bool __value = false;
1892    };
1893# 532 "/opt/local/include/gcc10/c++/bits/cpp_type_traits.h" 3
1894  template<typename _Tp>
1895    struct __is_move_iterator
1896    {
1897      enum { __value = 0 };
1898      typedef __false_type __type;
1899    };
1900
1901
1902
1903  template<typename _Iterator>
1904   
1905    inline _Iterator
1906    __miter_base(_Iterator __it)
1907    { return __it; }
1908
1909
1910}
1911}
1912# 62 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
1913# 1 "/opt/local/include/gcc10/c++/ext/type_traits.h" 1 3
1914# 32 "/opt/local/include/gcc10/c++/ext/type_traits.h" 3
1915       
1916# 33 "/opt/local/include/gcc10/c++/ext/type_traits.h" 3
1917
1918
1919
1920
1921extern "C++" {
1922
1923namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
1924{
1925
1926
1927
1928  template<bool, typename>
1929    struct __enable_if
1930    { };
1931
1932  template<typename _Tp>
1933    struct __enable_if<true, _Tp>
1934    { typedef _Tp __type; };
1935
1936
1937
1938  template<bool _Cond, typename _Iftrue, typename _Iffalse>
1939    struct __conditional_type
1940    { typedef _Iftrue __type; };
1941
1942  template<typename _Iftrue, typename _Iffalse>
1943    struct __conditional_type<false, _Iftrue, _Iffalse>
1944    { typedef _Iffalse __type; };
1945
1946
1947
1948  template<typename _Tp>
1949    struct __add_unsigned
1950    {
1951    private:
1952      typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
1953
1954    public:
1955      typedef typename __if_type::__type __type;
1956    };
1957
1958  template<>
1959    struct __add_unsigned<char>
1960    { typedef unsigned char __type; };
1961
1962  template<>
1963    struct __add_unsigned<signed char>
1964    { typedef unsigned char __type; };
1965
1966  template<>
1967    struct __add_unsigned<short>
1968    { typedef unsigned short __type; };
1969
1970  template<>
1971    struct __add_unsigned<int>
1972    { typedef unsigned int __type; };
1973
1974  template<>
1975    struct __add_unsigned<long>
1976    { typedef unsigned long __type; };
1977
1978  template<>
1979    struct __add_unsigned<long long>
1980    { typedef unsigned long long __type; };
1981
1982
1983  template<>
1984    struct __add_unsigned<bool>;
1985
1986  template<>
1987    struct __add_unsigned<wchar_t>;
1988
1989
1990
1991  template<typename _Tp>
1992    struct __remove_unsigned
1993    {
1994    private:
1995      typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
1996
1997    public:
1998      typedef typename __if_type::__type __type;
1999    };
2000
2001  template<>
2002    struct __remove_unsigned<char>
2003    { typedef signed char __type; };
2004
2005  template<>
2006    struct __remove_unsigned<unsigned char>
2007    { typedef signed char __type; };
2008
2009  template<>
2010    struct __remove_unsigned<unsigned short>
2011    { typedef short __type; };
2012
2013  template<>
2014    struct __remove_unsigned<unsigned int>
2015    { typedef int __type; };
2016
2017  template<>
2018    struct __remove_unsigned<unsigned long>
2019    { typedef long __type; };
2020
2021  template<>
2022    struct __remove_unsigned<unsigned long long>
2023    { typedef long long __type; };
2024
2025
2026  template<>
2027    struct __remove_unsigned<bool>;
2028
2029  template<>
2030    struct __remove_unsigned<wchar_t>;
2031
2032
2033
2034  template<typename _Type>
2035    inline bool
2036    __is_null_pointer(_Type* __ptr)
2037    { return __ptr == 0; }
2038
2039  template<typename _Type>
2040    inline bool
2041    __is_null_pointer(_Type)
2042    { return false; }
2043
2044
2045  inline bool
2046  __is_null_pointer(std::nullptr_t)
2047  { return true; }
2048
2049
2050
2051  template<typename _Tp, bool = std::__is_integer<_Tp>::__value>
2052    struct __promote
2053    { typedef double __type; };
2054
2055
2056
2057
2058  template<typename _Tp>
2059    struct __promote<_Tp, false>
2060    { };
2061
2062  template<>
2063    struct __promote<long double>
2064    { typedef long double __type; };
2065
2066  template<>
2067    struct __promote<double>
2068    { typedef double __type; };
2069
2070  template<>
2071    struct __promote<float>
2072    { typedef float __type; };
2073
2074  template<typename _Tp, typename _Up,
2075           typename _Tp2 = typename __promote<_Tp>::__type,
2076           typename _Up2 = typename __promote<_Up>::__type>
2077    struct __promote_2
2078    {
2079      typedef __typeof__(_Tp2() + _Up2()) __type;
2080    };
2081
2082  template<typename _Tp, typename _Up, typename _Vp,
2083           typename _Tp2 = typename __promote<_Tp>::__type,
2084           typename _Up2 = typename __promote<_Up>::__type,
2085           typename _Vp2 = typename __promote<_Vp>::__type>
2086    struct __promote_3
2087    {
2088      typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type;
2089    };
2090
2091  template<typename _Tp, typename _Up, typename _Vp, typename _Wp,
2092           typename _Tp2 = typename __promote<_Tp>::__type,
2093           typename _Up2 = typename __promote<_Up>::__type,
2094           typename _Vp2 = typename __promote<_Vp>::__type,
2095           typename _Wp2 = typename __promote<_Wp>::__type>
2096    struct __promote_4
2097    {
2098      typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type;
2099    };
2100
2101
2102}
2103}
2104# 63 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
2105# 1 "/opt/local/include/gcc10/c++/ext/numeric_traits.h" 1 3
2106# 32 "/opt/local/include/gcc10/c++/ext/numeric_traits.h" 3
2107       
2108# 33 "/opt/local/include/gcc10/c++/ext/numeric_traits.h" 3
2109
2110
2111
2112
2113namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
2114{
2115
2116# 50 "/opt/local/include/gcc10/c++/ext/numeric_traits.h" 3
2117  template<typename _Tp>
2118    struct __is_integer_nonstrict
2119    : public std::__is_integer<_Tp>
2120    {
2121      using std::__is_integer<_Tp>::__value;
2122
2123
2124      enum { __width = __value ? sizeof(_Tp) * 8 : 0 };
2125    };
2126
2127  template<typename _Value>
2128    struct __numeric_traits_integer
2129    {
2130
2131      static_assert(__is_integer_nonstrict<_Value>::__value,
2132      "invalid specialization");
2133
2134
2135
2136
2137      static const bool __is_signed = (_Value)(-1) < 0;
2138      static const int __digits
2139 = __is_integer_nonstrict<_Value>::__width - __is_signed;
2140
2141
2142      static const _Value __max = __is_signed
2143 ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1)
2144 : ~(_Value)0;
2145      static const _Value __min = __is_signed ? -__max - 1 : (_Value)0;
2146    };
2147
2148  template<typename _Value>
2149    const _Value __numeric_traits_integer<_Value>::__min;
2150
2151  template<typename _Value>
2152    const _Value __numeric_traits_integer<_Value>::__max;
2153
2154  template<typename _Value>
2155    const bool __numeric_traits_integer<_Value>::__is_signed;
2156
2157  template<typename _Value>
2158    const int __numeric_traits_integer<_Value>::__digits;
2159# 135 "/opt/local/include/gcc10/c++/ext/numeric_traits.h" 3
2160  template<typename _Tp>
2161    using __int_traits = __numeric_traits_integer<_Tp>;
2162# 155 "/opt/local/include/gcc10/c++/ext/numeric_traits.h" 3
2163  template<typename _Value>
2164    struct __numeric_traits_floating
2165    {
2166
2167      static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136);
2168
2169
2170      static const bool __is_signed = true;
2171      static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18);
2172      static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932);
2173    };
2174
2175  template<typename _Value>
2176    const int __numeric_traits_floating<_Value>::__max_digits10;
2177
2178  template<typename _Value>
2179    const bool __numeric_traits_floating<_Value>::__is_signed;
2180
2181  template<typename _Value>
2182    const int __numeric_traits_floating<_Value>::__digits10;
2183
2184  template<typename _Value>
2185    const int __numeric_traits_floating<_Value>::__max_exponent10;
2186
2187  template<typename _Value>
2188    struct __numeric_traits
2189    : public __conditional_type<__is_integer_nonstrict<_Value>::__value,
2190    __numeric_traits_integer<_Value>,
2191    __numeric_traits_floating<_Value> >::__type
2192    { };
2193
2194
2195}
2196# 64 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
2197# 1 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 1 3
2198# 59 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
2199# 1 "/opt/local/include/gcc10/c++/bits/move.h" 1 3
2200# 38 "/opt/local/include/gcc10/c++/bits/move.h" 3
2201namespace std __attribute__ ((__visibility__ ("default")))
2202{
2203
2204
2205
2206
2207
2208
2209
2210  template<typename _Tp>
2211    inline constexpr _Tp*
2212    __addressof(_Tp& __r) noexcept
2213    { return __builtin_addressof(__r); }
2214
2215
2216
2217
2218}
2219
2220# 1 "/opt/local/include/gcc10/c++/type_traits" 1 3
2221# 32 "/opt/local/include/gcc10/c++/type_traits" 3
2222       
2223# 33 "/opt/local/include/gcc10/c++/type_traits" 3
2224
2225
2226
2227
2228
2229
2230
2231namespace std __attribute__ ((__visibility__ ("default")))
2232{
2233
2234# 56 "/opt/local/include/gcc10/c++/type_traits" 3
2235  template<typename _Tp, _Tp __v>
2236    struct integral_constant
2237    {
2238      static constexpr _Tp value = __v;
2239      typedef _Tp value_type;
2240      typedef integral_constant<_Tp, __v> type;
2241      constexpr operator value_type() const noexcept { return value; }
2242
2243
2244
2245
2246      constexpr value_type operator()() const noexcept { return value; }
2247
2248    };
2249
2250  template<typename _Tp, _Tp __v>
2251    constexpr _Tp integral_constant<_Tp, __v>::value;
2252
2253
2254  typedef integral_constant<bool, true> true_type;
2255
2256
2257  typedef integral_constant<bool, false> false_type;
2258
2259  template<bool __v>
2260    using __bool_constant = integral_constant<bool, __v>;
2261# 91 "/opt/local/include/gcc10/c++/type_traits" 3
2262  template<bool, typename, typename>
2263    struct conditional;
2264
2265  template <typename _Type>
2266    struct __type_identity
2267    { using type = _Type; };
2268
2269  template<typename _Tp>
2270    using __type_identity_t = typename __type_identity<_Tp>::type;
2271
2272  template<typename...>
2273    struct __or_;
2274
2275  template<>
2276    struct __or_<>
2277    : public false_type
2278    { };
2279
2280  template<typename _B1>
2281    struct __or_<_B1>
2282    : public _B1
2283    { };
2284
2285  template<typename _B1, typename _B2>
2286    struct __or_<_B1, _B2>
2287    : public conditional<_B1::value, _B1, _B2>::type
2288    { };
2289
2290  template<typename _B1, typename _B2, typename _B3, typename... _Bn>
2291    struct __or_<_B1, _B2, _B3, _Bn...>
2292    : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type
2293    { };
2294
2295  template<typename...>
2296    struct __and_;
2297
2298  template<>
2299    struct __and_<>
2300    : public true_type
2301    { };
2302
2303  template<typename _B1>
2304    struct __and_<_B1>
2305    : public _B1
2306    { };
2307
2308  template<typename _B1, typename _B2>
2309    struct __and_<_B1, _B2>
2310    : public conditional<_B1::value, _B2, _B1>::type
2311    { };
2312
2313  template<typename _B1, typename _B2, typename _B3, typename... _Bn>
2314    struct __and_<_B1, _B2, _B3, _Bn...>
2315    : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
2316    { };
2317
2318  template<typename _Pp>
2319    struct __not_
2320    : public __bool_constant<!bool(_Pp::value)>
2321    { };
2322# 188 "/opt/local/include/gcc10/c++/type_traits" 3
2323  template<typename>
2324    struct is_reference;
2325  template<typename>
2326    struct is_function;
2327  template<typename>
2328    struct is_void;
2329  template<typename>
2330    struct __is_array_unknown_bounds;
2331
2332
2333
2334
2335  template <typename _Tp, size_t = sizeof(_Tp)>
2336    constexpr true_type __is_complete_or_unbounded(__type_identity<_Tp>)
2337    { return {}; }
2338
2339  template <typename _TypeIdentity,
2340      typename _NestedType = typename _TypeIdentity::type>
2341    constexpr typename __or_<
2342      is_reference<_NestedType>,
2343      is_function<_NestedType>,
2344      is_void<_NestedType>,
2345      __is_array_unknown_bounds<_NestedType>
2346    >::type __is_complete_or_unbounded(_TypeIdentity)
2347    { return {}; }
2348
2349
2350
2351
2352
2353
2354  template<typename _Tp>
2355    struct __success_type
2356    { typedef _Tp type; };
2357
2358  struct __failure_type
2359  { };
2360
2361  template<typename>
2362    struct remove_cv;
2363
2364
2365  template<typename _Tp>
2366    using __remove_cv_t = typename remove_cv<_Tp>::type;
2367
2368  template<typename>
2369    struct is_const;
2370
2371
2372
2373  template<typename>
2374    struct __is_void_helper
2375    : public false_type { };
2376
2377  template<>
2378    struct __is_void_helper<void>
2379    : public true_type { };
2380
2381
2382  template<typename _Tp>
2383    struct is_void
2384    : public __is_void_helper<__remove_cv_t<_Tp>>::type
2385    { };
2386
2387  template<typename>
2388    struct __is_integral_helper
2389    : public false_type { };
2390
2391  template<>
2392    struct __is_integral_helper<bool>
2393    : public true_type { };
2394
2395  template<>
2396    struct __is_integral_helper<char>
2397    : public true_type { };
2398
2399  template<>
2400    struct __is_integral_helper<signed char>
2401    : public true_type { };
2402
2403  template<>
2404    struct __is_integral_helper<unsigned char>
2405    : public true_type { };
2406
2407
2408  template<>
2409    struct __is_integral_helper<wchar_t>
2410    : public true_type { };
2411# 284 "/opt/local/include/gcc10/c++/type_traits" 3
2412  template<>
2413    struct __is_integral_helper<char16_t>
2414    : public true_type { };
2415
2416  template<>
2417    struct __is_integral_helper<char32_t>
2418    : public true_type { };
2419
2420  template<>
2421    struct __is_integral_helper<short>
2422    : public true_type { };
2423
2424  template<>
2425    struct __is_integral_helper<unsigned short>
2426    : public true_type { };
2427
2428  template<>
2429    struct __is_integral_helper<int>
2430    : public true_type { };
2431
2432  template<>
2433    struct __is_integral_helper<unsigned int>
2434    : public true_type { };
2435
2436  template<>
2437    struct __is_integral_helper<long>
2438    : public true_type { };
2439
2440  template<>
2441    struct __is_integral_helper<unsigned long>
2442    : public true_type { };
2443
2444  template<>
2445    struct __is_integral_helper<long long>
2446    : public true_type { };
2447
2448  template<>
2449    struct __is_integral_helper<unsigned long long>
2450    : public true_type { };
2451
2452
2453
2454
2455  template<>
2456    struct __is_integral_helper<__int128>
2457    : public true_type { };
2458
2459  template<>
2460    struct __is_integral_helper<unsigned __int128>
2461    : public true_type { };
2462# 364 "/opt/local/include/gcc10/c++/type_traits" 3
2463  template<typename _Tp>
2464    struct is_integral
2465    : public __is_integral_helper<__remove_cv_t<_Tp>>::type
2466    { };
2467
2468  template<typename>
2469    struct __is_floating_point_helper
2470    : public false_type { };
2471
2472  template<>
2473    struct __is_floating_point_helper<float>
2474    : public true_type { };
2475
2476  template<>
2477    struct __is_floating_point_helper<double>
2478    : public true_type { };
2479
2480  template<>
2481    struct __is_floating_point_helper<long double>
2482    : public true_type { };
2483
2484
2485  template<>
2486    struct __is_floating_point_helper<__float128>
2487    : public true_type { };
2488
2489
2490
2491  template<typename _Tp>
2492    struct is_floating_point
2493    : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type
2494    { };
2495
2496
2497  template<typename>
2498    struct is_array
2499    : public false_type { };
2500
2501  template<typename _Tp, std::size_t _Size>
2502    struct is_array<_Tp[_Size]>
2503    : public true_type { };
2504
2505  template<typename _Tp>
2506    struct is_array<_Tp[]>
2507    : public true_type { };
2508
2509  template<typename>
2510    struct __is_pointer_helper
2511    : public false_type { };
2512
2513  template<typename _Tp>
2514    struct __is_pointer_helper<_Tp*>
2515    : public true_type { };
2516
2517
2518  template<typename _Tp>
2519    struct is_pointer
2520    : public __is_pointer_helper<__remove_cv_t<_Tp>>::type
2521    { };
2522
2523
2524  template<typename>
2525    struct is_lvalue_reference
2526    : public false_type { };
2527
2528  template<typename _Tp>
2529    struct is_lvalue_reference<_Tp&>
2530    : public true_type { };
2531
2532
2533  template<typename>
2534    struct is_rvalue_reference
2535    : public false_type { };
2536
2537  template<typename _Tp>
2538    struct is_rvalue_reference<_Tp&&>
2539    : public true_type { };
2540
2541  template<typename>
2542    struct __is_member_object_pointer_helper
2543    : public false_type { };
2544
2545  template<typename _Tp, typename _Cp>
2546    struct __is_member_object_pointer_helper<_Tp _Cp::*>
2547    : public __not_<is_function<_Tp>>::type { };
2548
2549
2550  template<typename _Tp>
2551    struct is_member_object_pointer
2552    : public __is_member_object_pointer_helper<__remove_cv_t<_Tp>>::type
2553    { };
2554
2555  template<typename>
2556    struct __is_member_function_pointer_helper
2557    : public false_type { };
2558
2559  template<typename _Tp, typename _Cp>
2560    struct __is_member_function_pointer_helper<_Tp _Cp::*>
2561    : public is_function<_Tp>::type { };
2562
2563
2564  template<typename _Tp>
2565    struct is_member_function_pointer
2566    : public __is_member_function_pointer_helper<__remove_cv_t<_Tp>>::type
2567    { };
2568
2569
2570  template<typename _Tp>
2571    struct is_enum
2572    : public integral_constant<bool, __is_enum(_Tp)>
2573    { };
2574
2575
2576  template<typename _Tp>
2577    struct is_union
2578    : public integral_constant<bool, __is_union(_Tp)>
2579    { };
2580
2581
2582  template<typename _Tp>
2583    struct is_class
2584    : public integral_constant<bool, __is_class(_Tp)>
2585    { };
2586
2587
2588  template<typename _Tp>
2589    struct is_function
2590    : public __bool_constant<!is_const<const _Tp>::value> { };
2591
2592  template<typename _Tp>
2593    struct is_function<_Tp&>
2594    : public false_type { };
2595
2596  template<typename _Tp>
2597    struct is_function<_Tp&&>
2598    : public false_type { };
2599
2600
2601
2602  template<typename>
2603    struct __is_null_pointer_helper
2604    : public false_type { };
2605
2606  template<>
2607    struct __is_null_pointer_helper<std::nullptr_t>
2608    : public true_type { };
2609
2610
2611  template<typename _Tp>
2612    struct is_null_pointer
2613    : public __is_null_pointer_helper<__remove_cv_t<_Tp>>::type
2614    { };
2615
2616
2617  template<typename _Tp>
2618    struct __is_nullptr_t
2619    : public is_null_pointer<_Tp>
2620    { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead")));
2621
2622
2623
2624
2625  template<typename _Tp>
2626    struct is_reference
2627    : public __or_<is_lvalue_reference<_Tp>,
2628                   is_rvalue_reference<_Tp>>::type
2629    { };
2630
2631
2632  template<typename _Tp>
2633    struct is_arithmetic
2634    : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
2635    { };
2636
2637
2638  template<typename _Tp>
2639    struct is_fundamental
2640    : public __or_<is_arithmetic<_Tp>, is_void<_Tp>,
2641     is_null_pointer<_Tp>>::type
2642    { };
2643
2644
2645  template<typename _Tp>
2646    struct is_object
2647    : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
2648                          is_void<_Tp>>>::type
2649    { };
2650
2651  template<typename>
2652    struct is_member_pointer;
2653
2654
2655  template<typename _Tp>
2656    struct is_scalar
2657    : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
2658                   is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
2659    { };
2660
2661
2662  template<typename _Tp>
2663    struct is_compound
2664    : public __not_<is_fundamental<_Tp>>::type { };
2665
2666  template<typename _Tp>
2667    struct __is_member_pointer_helper
2668    : public false_type { };
2669
2670  template<typename _Tp, typename _Cp>
2671    struct __is_member_pointer_helper<_Tp _Cp::*>
2672    : public true_type { };
2673
2674
2675  template<typename _Tp>
2676    struct is_member_pointer
2677    : public __is_member_pointer_helper<__remove_cv_t<_Tp>>::type
2678    { };
2679
2680  template<typename, typename>
2681    struct is_same;
2682
2683  template<typename _Tp, typename... _Types>
2684    using __is_one_of = __or_<is_same<_Tp, _Types>...>;
2685
2686
2687  template<typename _Tp>
2688    using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>,
2689   signed char, signed short, signed int, signed long,
2690   signed long long
2691
2692   , signed __int128
2693# 604 "/opt/local/include/gcc10/c++/type_traits" 3
2694   >;
2695
2696
2697  template<typename _Tp>
2698    using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>,
2699   unsigned char, unsigned short, unsigned int, unsigned long,
2700   unsigned long long
2701
2702   , unsigned __int128
2703# 623 "/opt/local/include/gcc10/c++/type_traits" 3
2704   >;
2705
2706
2707  template<typename _Tp>
2708    using __is_standard_integer
2709      = __or_<__is_signed_integer<_Tp>, __is_unsigned_integer<_Tp>>;
2710
2711
2712  template<typename...> using __void_t = void;
2713
2714
2715
2716  template<typename _Tp, typename = void>
2717    struct __is_referenceable
2718    : public false_type
2719    { };
2720
2721  template<typename _Tp>
2722    struct __is_referenceable<_Tp, __void_t<_Tp&>>
2723    : public true_type
2724    { };
2725
2726
2727
2728
2729  template<typename>
2730    struct is_const
2731    : public false_type { };
2732
2733  template<typename _Tp>
2734    struct is_const<_Tp const>
2735    : public true_type { };
2736
2737
2738  template<typename>
2739    struct is_volatile
2740    : public false_type { };
2741
2742  template<typename _Tp>
2743    struct is_volatile<_Tp volatile>
2744    : public true_type { };
2745
2746
2747  template<typename _Tp>
2748    struct is_trivial
2749    : public integral_constant<bool, __is_trivial(_Tp)>
2750    {
2751      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
2752 "template argument must be a complete class or an unbounded array");
2753    };
2754
2755
2756  template<typename _Tp>
2757    struct is_trivially_copyable
2758    : public integral_constant<bool, __is_trivially_copyable(_Tp)>
2759    {
2760      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
2761 "template argument must be a complete class or an unbounded array");
2762    };
2763
2764
2765  template<typename _Tp>
2766    struct is_standard_layout
2767    : public integral_constant<bool, __is_standard_layout(_Tp)>
2768    {
2769      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
2770 "template argument must be a complete class or an unbounded array");
2771    };
2772
2773
2774
2775  template<typename _Tp>
2776    struct
2777   
2778    is_pod
2779    : public integral_constant<bool, __is_pod(_Tp)>
2780    {
2781      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
2782 "template argument must be a complete class or an unbounded array");
2783    };
2784
2785
2786  template<typename _Tp>
2787    struct is_literal_type
2788    : public integral_constant<bool, __is_literal_type(_Tp)>
2789    {
2790      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
2791 "template argument must be a complete class or an unbounded array");
2792    };
2793
2794
2795  template<typename _Tp>
2796    struct is_empty
2797    : public integral_constant<bool, __is_empty(_Tp)>
2798    { };
2799
2800
2801  template<typename _Tp>
2802    struct is_polymorphic
2803    : public integral_constant<bool, __is_polymorphic(_Tp)>
2804    { };
2805
2806
2807
2808
2809  template<typename _Tp>
2810    struct is_final
2811    : public integral_constant<bool, __is_final(_Tp)>
2812    { };
2813
2814
2815
2816  template<typename _Tp>
2817    struct is_abstract
2818    : public integral_constant<bool, __is_abstract(_Tp)>
2819    { };
2820
2821  template<typename _Tp,
2822    bool = is_arithmetic<_Tp>::value>
2823    struct __is_signed_helper
2824    : public false_type { };
2825
2826  template<typename _Tp>
2827    struct __is_signed_helper<_Tp, true>
2828    : public integral_constant<bool, _Tp(-1) < _Tp(0)>
2829    { };
2830
2831
2832  template<typename _Tp>
2833    struct is_signed
2834    : public __is_signed_helper<_Tp>::type
2835    { };
2836
2837
2838  template<typename _Tp>
2839    struct is_unsigned
2840    : public __and_<is_arithmetic<_Tp>, __not_<is_signed<_Tp>>>
2841    { };
2842# 770 "/opt/local/include/gcc10/c++/type_traits" 3
2843  template<typename _Tp, typename _Up = _Tp&&>
2844    _Up
2845    __declval(int);
2846
2847  template<typename _Tp>
2848    _Tp
2849    __declval(long);
2850
2851  template<typename _Tp>
2852    auto declval() noexcept -> decltype(__declval<_Tp>(0));
2853
2854  template<typename, unsigned = 0>
2855    struct extent;
2856
2857  template<typename>
2858    struct remove_all_extents;
2859
2860  template<typename _Tp>
2861    struct __is_array_known_bounds
2862    : public integral_constant<bool, (extent<_Tp>::value > 0)>
2863    { };
2864
2865  template<typename _Tp>
2866    struct __is_array_unknown_bounds
2867    : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
2868    { };
2869
2870
2871
2872
2873
2874
2875  struct __do_is_destructible_impl
2876  {
2877    template<typename _Tp, typename = decltype(declval<_Tp&>().~_Tp())>
2878      static true_type __test(int);
2879
2880    template<typename>
2881      static false_type __test(...);
2882  };
2883
2884  template<typename _Tp>
2885    struct __is_destructible_impl
2886    : public __do_is_destructible_impl
2887    {
2888      typedef decltype(__test<_Tp>(0)) type;
2889    };
2890
2891  template<typename _Tp,
2892           bool = __or_<is_void<_Tp>,
2893                        __is_array_unknown_bounds<_Tp>,
2894                        is_function<_Tp>>::value,
2895           bool = __or_<is_reference<_Tp>, is_scalar<_Tp>>::value>
2896    struct __is_destructible_safe;
2897
2898  template<typename _Tp>
2899    struct __is_destructible_safe<_Tp, false, false>
2900    : public __is_destructible_impl<typename
2901               remove_all_extents<_Tp>::type>::type
2902    { };
2903
2904  template<typename _Tp>
2905    struct __is_destructible_safe<_Tp, true, false>
2906    : public false_type { };
2907
2908  template<typename _Tp>
2909    struct __is_destructible_safe<_Tp, false, true>
2910    : public true_type { };
2911
2912
2913  template<typename _Tp>
2914    struct is_destructible
2915    : public __is_destructible_safe<_Tp>::type
2916    {
2917      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
2918 "template argument must be a complete class or an unbounded array");
2919    };
2920
2921
2922
2923
2924
2925  struct __do_is_nt_destructible_impl
2926  {
2927    template<typename _Tp>
2928      static __bool_constant<noexcept(declval<_Tp&>().~_Tp())>
2929      __test(int);
2930
2931    template<typename>
2932      static false_type __test(...);
2933  };
2934
2935  template<typename _Tp>
2936    struct __is_nt_destructible_impl
2937    : public __do_is_nt_destructible_impl
2938    {
2939      typedef decltype(__test<_Tp>(0)) type;
2940    };
2941
2942  template<typename _Tp,
2943           bool = __or_<is_void<_Tp>,
2944                        __is_array_unknown_bounds<_Tp>,
2945                        is_function<_Tp>>::value,
2946           bool = __or_<is_reference<_Tp>, is_scalar<_Tp>>::value>
2947    struct __is_nt_destructible_safe;
2948
2949  template<typename _Tp>
2950    struct __is_nt_destructible_safe<_Tp, false, false>
2951    : public __is_nt_destructible_impl<typename
2952               remove_all_extents<_Tp>::type>::type
2953    { };
2954
2955  template<typename _Tp>
2956    struct __is_nt_destructible_safe<_Tp, true, false>
2957    : public false_type { };
2958
2959  template<typename _Tp>
2960    struct __is_nt_destructible_safe<_Tp, false, true>
2961    : public true_type { };
2962
2963
2964  template<typename _Tp>
2965    struct is_nothrow_destructible
2966    : public __is_nt_destructible_safe<_Tp>::type
2967    {
2968      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
2969 "template argument must be a complete class or an unbounded array");
2970    };
2971
2972  template<typename _Tp, typename... _Args>
2973    struct __is_constructible_impl
2974    : public __bool_constant<__is_constructible(_Tp, _Args...)>
2975    { };
2976
2977
2978  template<typename _Tp, typename... _Args>
2979    struct is_constructible
2980      : public __is_constructible_impl<_Tp, _Args...>
2981    {
2982      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
2983 "template argument must be a complete class or an unbounded array");
2984    };
2985
2986
2987  template<typename _Tp>
2988    struct is_default_constructible
2989    : public __is_constructible_impl<_Tp>::type
2990    {
2991      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
2992 "template argument must be a complete class or an unbounded array");
2993    };
2994
2995  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
2996    struct __is_copy_constructible_impl;
2997
2998  template<typename _Tp>
2999    struct __is_copy_constructible_impl<_Tp, false>
3000    : public false_type { };
3001
3002  template<typename _Tp>
3003    struct __is_copy_constructible_impl<_Tp, true>
3004    : public __is_constructible_impl<_Tp, const _Tp&>
3005    { };
3006
3007
3008  template<typename _Tp>
3009    struct is_copy_constructible
3010    : public __is_copy_constructible_impl<_Tp>
3011    {
3012      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3013 "template argument must be a complete class or an unbounded array");
3014    };
3015
3016  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3017    struct __is_move_constructible_impl;
3018
3019  template<typename _Tp>
3020    struct __is_move_constructible_impl<_Tp, false>
3021    : public false_type { };
3022
3023  template<typename _Tp>
3024    struct __is_move_constructible_impl<_Tp, true>
3025    : public __is_constructible_impl<_Tp, _Tp&&>
3026    { };
3027
3028
3029  template<typename _Tp>
3030    struct is_move_constructible
3031    : public __is_move_constructible_impl<_Tp>
3032    {
3033      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3034 "template argument must be a complete class or an unbounded array");
3035    };
3036
3037  template<bool, typename _Tp, typename... _Args>
3038    struct __is_nt_constructible_impl
3039    : public false_type
3040    { };
3041
3042  template<typename _Tp, typename... _Args>
3043    struct __is_nt_constructible_impl<true, _Tp, _Args...>
3044    : public __bool_constant<noexcept(_Tp(std::declval<_Args>()...))>
3045    { };
3046
3047  template<typename _Tp, typename _Arg>
3048    struct __is_nt_constructible_impl<true, _Tp, _Arg>
3049    : public __bool_constant<noexcept(static_cast<_Tp>(std::declval<_Arg>()))>
3050    { };
3051
3052  template<typename _Tp>
3053    struct __is_nt_constructible_impl<true, _Tp>
3054    : public __bool_constant<noexcept(_Tp())>
3055    { };
3056
3057  template<typename _Tp, size_t _Num>
3058    struct __is_nt_constructible_impl<true, _Tp[_Num]>
3059    : public __bool_constant<noexcept(typename remove_all_extents<_Tp>::type())>
3060    { };
3061# 1001 "/opt/local/include/gcc10/c++/type_traits" 3
3062  template<typename _Tp, typename... _Args>
3063    using __is_nothrow_constructible_impl
3064      = __is_nt_constructible_impl<__is_constructible(_Tp, _Args...),
3065       _Tp, _Args...>;
3066
3067
3068  template<typename _Tp, typename... _Args>
3069    struct is_nothrow_constructible
3070    : public __is_nothrow_constructible_impl<_Tp, _Args...>::type
3071    {
3072      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3073 "template argument must be a complete class or an unbounded array");
3074    };
3075
3076
3077  template<typename _Tp>
3078    struct is_nothrow_default_constructible
3079    : public __is_nothrow_constructible_impl<_Tp>::type
3080    {
3081      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3082 "template argument must be a complete class or an unbounded array");
3083    };
3084
3085
3086  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3087    struct __is_nothrow_copy_constructible_impl;
3088
3089  template<typename _Tp>
3090    struct __is_nothrow_copy_constructible_impl<_Tp, false>
3091    : public false_type { };
3092
3093  template<typename _Tp>
3094    struct __is_nothrow_copy_constructible_impl<_Tp, true>
3095    : public __is_nothrow_constructible_impl<_Tp, const _Tp&>
3096    { };
3097
3098
3099  template<typename _Tp>
3100    struct is_nothrow_copy_constructible
3101    : public __is_nothrow_copy_constructible_impl<_Tp>::type
3102    {
3103      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3104 "template argument must be a complete class or an unbounded array");
3105    };
3106
3107  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3108    struct __is_nothrow_move_constructible_impl;
3109
3110  template<typename _Tp>
3111    struct __is_nothrow_move_constructible_impl<_Tp, false>
3112    : public false_type { };
3113
3114  template<typename _Tp>
3115    struct __is_nothrow_move_constructible_impl<_Tp, true>
3116    : public __is_nothrow_constructible_impl<_Tp, _Tp&&>
3117    { };
3118
3119
3120  template<typename _Tp>
3121    struct is_nothrow_move_constructible
3122    : public __is_nothrow_move_constructible_impl<_Tp>::type
3123    {
3124      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3125 "template argument must be a complete class or an unbounded array");
3126    };
3127
3128
3129  template<typename _Tp, typename _Up>
3130    struct is_assignable
3131    : public __bool_constant<__is_assignable(_Tp, _Up)>
3132    {
3133      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3134 "template argument must be a complete class or an unbounded array");
3135    };
3136
3137  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3138    struct __is_copy_assignable_impl;
3139
3140  template<typename _Tp>
3141    struct __is_copy_assignable_impl<_Tp, false>
3142    : public false_type { };
3143
3144  template<typename _Tp>
3145    struct __is_copy_assignable_impl<_Tp, true>
3146    : public __bool_constant<__is_assignable(_Tp&, const _Tp&)>
3147    { };
3148
3149
3150  template<typename _Tp>
3151    struct is_copy_assignable
3152    : public __is_copy_assignable_impl<_Tp>::type
3153    {
3154      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3155 "template argument must be a complete class or an unbounded array");
3156    };
3157
3158  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3159    struct __is_move_assignable_impl;
3160
3161  template<typename _Tp>
3162    struct __is_move_assignable_impl<_Tp, false>
3163    : public false_type { };
3164
3165  template<typename _Tp>
3166    struct __is_move_assignable_impl<_Tp, true>
3167    : public __bool_constant<__is_assignable(_Tp&, _Tp&&)>
3168    { };
3169
3170
3171  template<typename _Tp>
3172    struct is_move_assignable
3173    : public __is_move_assignable_impl<_Tp>::type
3174    {
3175      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3176 "template argument must be a complete class or an unbounded array");
3177    };
3178
3179  template<typename _Tp, typename _Up>
3180    struct __is_nt_assignable_impl
3181    : public integral_constant<bool, noexcept(declval<_Tp>() = declval<_Up>())>
3182    { };
3183
3184  template<typename _Tp, typename _Up>
3185    struct __is_nothrow_assignable_impl
3186    : public __and_<__bool_constant<__is_assignable(_Tp, _Up)>,
3187      __is_nt_assignable_impl<_Tp, _Up>>
3188    { };
3189
3190
3191  template<typename _Tp, typename _Up>
3192    struct is_nothrow_assignable
3193    : public __is_nothrow_assignable_impl<_Tp, _Up>
3194    {
3195      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3196 "template argument must be a complete class or an unbounded array");
3197    };
3198
3199  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3200    struct __is_nt_copy_assignable_impl;
3201
3202  template<typename _Tp>
3203    struct __is_nt_copy_assignable_impl<_Tp, false>
3204    : public false_type { };
3205
3206  template<typename _Tp>
3207    struct __is_nt_copy_assignable_impl<_Tp, true>
3208    : public __is_nothrow_assignable_impl<_Tp&, const _Tp&>
3209    { };
3210
3211
3212  template<typename _Tp>
3213    struct is_nothrow_copy_assignable
3214    : public __is_nt_copy_assignable_impl<_Tp>
3215    {
3216      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3217 "template argument must be a complete class or an unbounded array");
3218    };
3219
3220  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3221    struct __is_nt_move_assignable_impl;
3222
3223  template<typename _Tp>
3224    struct __is_nt_move_assignable_impl<_Tp, false>
3225    : public false_type { };
3226
3227  template<typename _Tp>
3228    struct __is_nt_move_assignable_impl<_Tp, true>
3229    : public __is_nothrow_assignable_impl<_Tp&, _Tp&&>
3230    { };
3231
3232
3233  template<typename _Tp>
3234    struct is_nothrow_move_assignable
3235    : public __is_nt_move_assignable_impl<_Tp>
3236    {
3237      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3238 "template argument must be a complete class or an unbounded array");
3239    };
3240
3241
3242  template<typename _Tp, typename... _Args>
3243    struct is_trivially_constructible
3244    : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)>
3245    {
3246      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3247 "template argument must be a complete class or an unbounded array");
3248    };
3249
3250
3251  template<typename _Tp>
3252    struct is_trivially_default_constructible
3253    : public __bool_constant<__is_trivially_constructible(_Tp)>
3254    {
3255      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3256 "template argument must be a complete class or an unbounded array");
3257    };
3258
3259  struct __do_is_implicitly_default_constructible_impl
3260  {
3261    template <typename _Tp>
3262    static void __helper(const _Tp&);
3263
3264    template <typename _Tp>
3265    static true_type __test(const _Tp&,
3266                            decltype(__helper<const _Tp&>({}))* = 0);
3267
3268    static false_type __test(...);
3269  };
3270
3271  template<typename _Tp>
3272    struct __is_implicitly_default_constructible_impl
3273    : public __do_is_implicitly_default_constructible_impl
3274    {
3275      typedef decltype(__test(declval<_Tp>())) type;
3276    };
3277
3278  template<typename _Tp>
3279    struct __is_implicitly_default_constructible_safe
3280    : public __is_implicitly_default_constructible_impl<_Tp>::type
3281    { };
3282
3283  template <typename _Tp>
3284    struct __is_implicitly_default_constructible
3285    : public __and_<__is_constructible_impl<_Tp>,
3286      __is_implicitly_default_constructible_safe<_Tp>>
3287    { };
3288
3289  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3290    struct __is_trivially_copy_constructible_impl;
3291
3292  template<typename _Tp>
3293    struct __is_trivially_copy_constructible_impl<_Tp, false>
3294    : public false_type { };
3295
3296  template<typename _Tp>
3297    struct __is_trivially_copy_constructible_impl<_Tp, true>
3298    : public __and_<__is_copy_constructible_impl<_Tp>,
3299      integral_constant<bool,
3300   __is_trivially_constructible(_Tp, const _Tp&)>>
3301    { };
3302
3303
3304  template<typename _Tp>
3305    struct is_trivially_copy_constructible
3306    : public __is_trivially_copy_constructible_impl<_Tp>
3307    {
3308      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3309 "template argument must be a complete class or an unbounded array");
3310    };
3311
3312  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3313    struct __is_trivially_move_constructible_impl;
3314
3315  template<typename _Tp>
3316    struct __is_trivially_move_constructible_impl<_Tp, false>
3317    : public false_type { };
3318
3319  template<typename _Tp>
3320    struct __is_trivially_move_constructible_impl<_Tp, true>
3321    : public __and_<__is_move_constructible_impl<_Tp>,
3322      integral_constant<bool,
3323   __is_trivially_constructible(_Tp, _Tp&&)>>
3324    { };
3325
3326
3327  template<typename _Tp>
3328    struct is_trivially_move_constructible
3329    : public __is_trivially_move_constructible_impl<_Tp>
3330    {
3331      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3332 "template argument must be a complete class or an unbounded array");
3333    };
3334
3335
3336  template<typename _Tp, typename _Up>
3337    struct is_trivially_assignable
3338    : public __bool_constant<__is_trivially_assignable(_Tp, _Up)>
3339    {
3340      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3341 "template argument must be a complete class or an unbounded array");
3342    };
3343
3344  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3345    struct __is_trivially_copy_assignable_impl;
3346
3347  template<typename _Tp>
3348    struct __is_trivially_copy_assignable_impl<_Tp, false>
3349    : public false_type { };
3350
3351  template<typename _Tp>
3352    struct __is_trivially_copy_assignable_impl<_Tp, true>
3353    : public __bool_constant<__is_trivially_assignable(_Tp&, const _Tp&)>
3354    { };
3355
3356
3357  template<typename _Tp>
3358    struct is_trivially_copy_assignable
3359    : public __is_trivially_copy_assignable_impl<_Tp>
3360    {
3361      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3362 "template argument must be a complete class or an unbounded array");
3363    };
3364
3365  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3366    struct __is_trivially_move_assignable_impl;
3367
3368  template<typename _Tp>
3369    struct __is_trivially_move_assignable_impl<_Tp, false>
3370    : public false_type { };
3371
3372  template<typename _Tp>
3373    struct __is_trivially_move_assignable_impl<_Tp, true>
3374    : public __bool_constant<__is_trivially_assignable(_Tp&, _Tp&&)>
3375    { };
3376
3377
3378  template<typename _Tp>
3379    struct is_trivially_move_assignable
3380    : public __is_trivially_move_assignable_impl<_Tp>
3381    {
3382      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3383 "template argument must be a complete class or an unbounded array");
3384    };
3385
3386
3387  template<typename _Tp>
3388    struct is_trivially_destructible
3389    : public __and_<__is_destructible_safe<_Tp>,
3390      __bool_constant<__has_trivial_destructor(_Tp)>>
3391    {
3392      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3393 "template argument must be a complete class or an unbounded array");
3394    };
3395
3396
3397
3398  template<typename _Tp>
3399    struct has_virtual_destructor
3400    : public integral_constant<bool, __has_virtual_destructor(_Tp)>
3401    {
3402      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3403 "template argument must be a complete class or an unbounded array");
3404    };
3405
3406
3407
3408
3409
3410  template<typename _Tp>
3411    struct alignment_of
3412    : public integral_constant<std::size_t, alignof(_Tp)>
3413    {
3414      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
3415 "template argument must be a complete class or an unbounded array");
3416    };
3417
3418
3419  template<typename>
3420    struct rank
3421    : public integral_constant<std::size_t, 0> { };
3422
3423  template<typename _Tp, std::size_t _Size>
3424    struct rank<_Tp[_Size]>
3425    : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
3426
3427  template<typename _Tp>
3428    struct rank<_Tp[]>
3429    : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
3430
3431
3432  template<typename, unsigned _Uint>
3433    struct extent
3434    : public integral_constant<std::size_t, 0> { };
3435
3436  template<typename _Tp, unsigned _Uint, std::size_t _Size>
3437    struct extent<_Tp[_Size], _Uint>
3438    : public integral_constant<std::size_t,
3439          _Uint == 0 ? _Size : extent<_Tp,
3440          _Uint - 1>::value>
3441    { };
3442
3443  template<typename _Tp, unsigned _Uint>
3444    struct extent<_Tp[], _Uint>
3445    : public integral_constant<std::size_t,
3446          _Uint == 0 ? 0 : extent<_Tp,
3447             _Uint - 1>::value>
3448    { };
3449
3450
3451
3452
3453
3454  template<typename _Tp, typename _Up>
3455    struct is_same
3456
3457    : public integral_constant<bool, __is_same_as(_Tp, _Up)>
3458
3459
3460
3461    { };
3462# 1410 "/opt/local/include/gcc10/c++/type_traits" 3
3463  template<typename _Base, typename _Derived>
3464    struct is_base_of
3465    : public integral_constant<bool, __is_base_of(_Base, _Derived)>
3466    { };
3467
3468  template<typename _From, typename _To,
3469           bool = __or_<is_void<_From>, is_function<_To>,
3470                        is_array<_To>>::value>
3471    struct __is_convertible_helper
3472    {
3473      typedef typename is_void<_To>::type type;
3474    };
3475
3476#pragma GCC diagnostic push
3477#pragma GCC diagnostic ignored "-Wctor-dtor-privacy"
3478  template<typename _From, typename _To>
3479    class __is_convertible_helper<_From, _To, false>
3480    {
3481      template<typename _To1>
3482 static void __test_aux(_To1) noexcept;
3483
3484      template<typename _From1, typename _To1,
3485        typename = decltype(__test_aux<_To1>(std::declval<_From1>()))>
3486 static true_type
3487 __test(int);
3488
3489      template<typename, typename>
3490 static false_type
3491 __test(...);
3492
3493    public:
3494      typedef decltype(__test<_From, _To>(0)) type;
3495    };
3496#pragma GCC diagnostic pop
3497
3498
3499  template<typename _From, typename _To>
3500    struct is_convertible
3501    : public __is_convertible_helper<_From, _To>::type
3502    { };
3503
3504
3505  template<typename _ToElementType, typename _FromElementType>
3506    using __is_array_convertible
3507      = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>;
3508
3509  template<typename _From, typename _To,
3510           bool = __or_<is_void<_From>, is_function<_To>,
3511                        is_array<_To>>::value>
3512    struct __is_nt_convertible_helper
3513    : is_void<_To>
3514    { };
3515
3516#pragma GCC diagnostic push
3517#pragma GCC diagnostic ignored "-Wctor-dtor-privacy"
3518  template<typename _From, typename _To>
3519    class __is_nt_convertible_helper<_From, _To, false>
3520    {
3521      template<typename _To1>
3522 static void __test_aux(_To1) noexcept;
3523
3524      template<typename _From1, typename _To1>
3525 static
3526 __bool_constant<noexcept(__test_aux<_To1>(std::declval<_From1>()))>
3527 __test(int);
3528
3529      template<typename, typename>
3530 static false_type
3531 __test(...);
3532
3533    public:
3534      using type = decltype(__test<_From, _To>(0));
3535    };
3536#pragma GCC diagnostic pop
3537
3538
3539  template<typename _From, typename _To>
3540    struct __is_nothrow_convertible
3541    : public __is_nt_convertible_helper<_From, _To>::type
3542    { };
3543# 1508 "/opt/local/include/gcc10/c++/type_traits" 3
3544  template<typename _Tp>
3545    struct remove_const
3546    { typedef _Tp type; };
3547
3548  template<typename _Tp>
3549    struct remove_const<_Tp const>
3550    { typedef _Tp type; };
3551
3552
3553  template<typename _Tp>
3554    struct remove_volatile
3555    { typedef _Tp type; };
3556
3557  template<typename _Tp>
3558    struct remove_volatile<_Tp volatile>
3559    { typedef _Tp type; };
3560
3561
3562  template<typename _Tp>
3563    struct remove_cv
3564    { using type = _Tp; };
3565
3566  template<typename _Tp>
3567    struct remove_cv<const _Tp>
3568    { using type = _Tp; };
3569
3570  template<typename _Tp>
3571    struct remove_cv<volatile _Tp>
3572    { using type = _Tp; };
3573
3574  template<typename _Tp>
3575    struct remove_cv<const volatile _Tp>
3576    { using type = _Tp; };
3577
3578
3579  template<typename _Tp>
3580    struct add_const
3581    { typedef _Tp const type; };
3582
3583
3584  template<typename _Tp>
3585    struct add_volatile
3586    { typedef _Tp volatile type; };
3587
3588
3589  template<typename _Tp>
3590    struct add_cv
3591    {
3592      typedef typename
3593      add_const<typename add_volatile<_Tp>::type>::type type;
3594    };
3595
3596
3597
3598
3599
3600
3601  template<typename _Tp>
3602    using remove_const_t = typename remove_const<_Tp>::type;
3603
3604
3605  template<typename _Tp>
3606    using remove_volatile_t = typename remove_volatile<_Tp>::type;
3607
3608
3609  template<typename _Tp>
3610    using remove_cv_t = typename remove_cv<_Tp>::type;
3611
3612
3613  template<typename _Tp>
3614    using add_const_t = typename add_const<_Tp>::type;
3615
3616
3617  template<typename _Tp>
3618    using add_volatile_t = typename add_volatile<_Tp>::type;
3619
3620
3621  template<typename _Tp>
3622    using add_cv_t = typename add_cv<_Tp>::type;
3623
3624
3625
3626
3627
3628  template<typename _Tp>
3629    struct remove_reference
3630    { typedef _Tp type; };
3631
3632  template<typename _Tp>
3633    struct remove_reference<_Tp&>
3634    { typedef _Tp type; };
3635
3636  template<typename _Tp>
3637    struct remove_reference<_Tp&&>
3638    { typedef _Tp type; };
3639
3640  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3641    struct __add_lvalue_reference_helper
3642    { typedef _Tp type; };
3643
3644  template<typename _Tp>
3645    struct __add_lvalue_reference_helper<_Tp, true>
3646    { typedef _Tp& type; };
3647
3648
3649  template<typename _Tp>
3650    struct add_lvalue_reference
3651    : public __add_lvalue_reference_helper<_Tp>
3652    { };
3653
3654  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
3655    struct __add_rvalue_reference_helper
3656    { typedef _Tp type; };
3657
3658  template<typename _Tp>
3659    struct __add_rvalue_reference_helper<_Tp, true>
3660    { typedef _Tp&& type; };
3661
3662
3663  template<typename _Tp>
3664    struct add_rvalue_reference
3665    : public __add_rvalue_reference_helper<_Tp>
3666    { };
3667
3668
3669
3670  template<typename _Tp>
3671    using remove_reference_t = typename remove_reference<_Tp>::type;
3672
3673
3674  template<typename _Tp>
3675    using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type;
3676
3677
3678  template<typename _Tp>
3679    using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type;
3680
3681
3682
3683
3684
3685  template<typename _Unqualified, bool _IsConst, bool _IsVol>
3686    struct __cv_selector;
3687
3688  template<typename _Unqualified>
3689    struct __cv_selector<_Unqualified, false, false>
3690    { typedef _Unqualified __type; };
3691
3692  template<typename _Unqualified>
3693    struct __cv_selector<_Unqualified, false, true>
3694    { typedef volatile _Unqualified __type; };
3695
3696  template<typename _Unqualified>
3697    struct __cv_selector<_Unqualified, true, false>
3698    { typedef const _Unqualified __type; };
3699
3700  template<typename _Unqualified>
3701    struct __cv_selector<_Unqualified, true, true>
3702    { typedef const volatile _Unqualified __type; };
3703
3704  template<typename _Qualified, typename _Unqualified,
3705    bool _IsConst = is_const<_Qualified>::value,
3706    bool _IsVol = is_volatile<_Qualified>::value>
3707    class __match_cv_qualifiers
3708    {
3709      typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match;
3710
3711    public:
3712      typedef typename __match::__type __type;
3713    };
3714
3715
3716  template<typename _Tp>
3717    struct __make_unsigned
3718    { typedef _Tp __type; };
3719
3720  template<>
3721    struct __make_unsigned<char>
3722    { typedef unsigned char __type; };
3723
3724  template<>
3725    struct __make_unsigned<signed char>
3726    { typedef unsigned char __type; };
3727
3728  template<>
3729    struct __make_unsigned<short>
3730    { typedef unsigned short __type; };
3731
3732  template<>
3733    struct __make_unsigned<int>
3734    { typedef unsigned int __type; };
3735
3736  template<>
3737    struct __make_unsigned<long>
3738    { typedef unsigned long __type; };
3739
3740  template<>
3741    struct __make_unsigned<long long>
3742    { typedef unsigned long long __type; };
3743
3744
3745  template<>
3746    struct __make_unsigned<__int128>
3747    { typedef unsigned __int128 __type; };
3748# 1730 "/opt/local/include/gcc10/c++/type_traits" 3
3749  template<typename _Tp,
3750    bool _IsInt = is_integral<_Tp>::value,
3751    bool _IsEnum = is_enum<_Tp>::value>
3752    class __make_unsigned_selector;
3753
3754  template<typename _Tp>
3755    class __make_unsigned_selector<_Tp, true, false>
3756    {
3757      using __unsigned_type
3758 = typename __make_unsigned<__remove_cv_t<_Tp>>::__type;
3759
3760    public:
3761      using __type
3762 = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type;
3763    };
3764
3765  class __make_unsigned_selector_base
3766  {
3767  protected:
3768    template<typename...> struct _List { };
3769
3770    template<typename _Tp, typename... _Up>
3771      struct _List<_Tp, _Up...> : _List<_Up...>
3772      { static constexpr size_t __size = sizeof(_Tp); };
3773
3774    template<size_t _Sz, typename _Tp, bool = (_Sz <= _Tp::__size)>
3775      struct __select;
3776
3777    template<size_t _Sz, typename _Uint, typename... _UInts>
3778      struct __select<_Sz, _List<_Uint, _UInts...>, true>
3779      { using __type = _Uint; };
3780
3781    template<size_t _Sz, typename _Uint, typename... _UInts>
3782      struct __select<_Sz, _List<_Uint, _UInts...>, false>
3783      : __select<_Sz, _List<_UInts...>>
3784      { };
3785  };
3786
3787
3788  template<typename _Tp>
3789    class __make_unsigned_selector<_Tp, false, true>
3790    : __make_unsigned_selector_base
3791    {
3792
3793      using _UInts = _List<unsigned char, unsigned short, unsigned int,
3794      unsigned long, unsigned long long>;
3795
3796      using __unsigned_type = typename __select<sizeof(_Tp), _UInts>::__type;
3797
3798    public:
3799      using __type
3800 = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type;
3801    };
3802
3803
3804
3805
3806
3807
3808  template<>
3809    struct __make_unsigned<wchar_t>
3810    {
3811      using __type
3812 = typename __make_unsigned_selector<wchar_t, false, true>::__type;
3813    };
3814# 1806 "/opt/local/include/gcc10/c++/type_traits" 3
3815  template<>
3816    struct __make_unsigned<char16_t>
3817    {
3818      using __type
3819 = typename __make_unsigned_selector<char16_t, false, true>::__type;
3820    };
3821
3822  template<>
3823    struct __make_unsigned<char32_t>
3824    {
3825      using __type
3826 = typename __make_unsigned_selector<char32_t, false, true>::__type;
3827    };
3828
3829
3830
3831
3832
3833  template<typename _Tp>
3834    struct make_unsigned
3835    { typedef typename __make_unsigned_selector<_Tp>::__type type; };
3836
3837
3838  template<>
3839    struct make_unsigned<bool>;
3840
3841
3842
3843  template<typename _Tp>
3844    struct __make_signed
3845    { typedef _Tp __type; };
3846
3847  template<>
3848    struct __make_signed<char>
3849    { typedef signed char __type; };
3850
3851  template<>
3852    struct __make_signed<unsigned char>
3853    { typedef signed char __type; };
3854
3855  template<>
3856    struct __make_signed<unsigned short>
3857    { typedef signed short __type; };
3858
3859  template<>
3860    struct __make_signed<unsigned int>
3861    { typedef signed int __type; };
3862
3863  template<>
3864    struct __make_signed<unsigned long>
3865    { typedef signed long __type; };
3866
3867  template<>
3868    struct __make_signed<unsigned long long>
3869    { typedef signed long long __type; };
3870
3871
3872  template<>
3873    struct __make_signed<unsigned __int128>
3874    { typedef __int128 __type; };
3875# 1884 "/opt/local/include/gcc10/c++/type_traits" 3
3876  template<typename _Tp,
3877    bool _IsInt = is_integral<_Tp>::value,
3878    bool _IsEnum = is_enum<_Tp>::value>
3879    class __make_signed_selector;
3880
3881  template<typename _Tp>
3882    class __make_signed_selector<_Tp, true, false>
3883    {
3884      using __signed_type
3885 = typename __make_signed<__remove_cv_t<_Tp>>::__type;
3886
3887    public:
3888      using __type
3889 = typename __match_cv_qualifiers<_Tp, __signed_type>::__type;
3890    };
3891
3892
3893  template<typename _Tp>
3894    class __make_signed_selector<_Tp, false, true>
3895    {
3896      typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type;
3897
3898    public:
3899      typedef typename __make_signed_selector<__unsigned_type>::__type __type;
3900    };
3901
3902
3903
3904
3905
3906
3907  template<>
3908    struct __make_signed<wchar_t>
3909    {
3910      using __type
3911 = typename __make_signed_selector<wchar_t, false, true>::__type;
3912    };
3913# 1932 "/opt/local/include/gcc10/c++/type_traits" 3
3914  template<>
3915    struct __make_signed<char16_t>
3916    {
3917      using __type
3918 = typename __make_signed_selector<char16_t, false, true>::__type;
3919    };
3920
3921  template<>
3922    struct __make_signed<char32_t>
3923    {
3924      using __type
3925 = typename __make_signed_selector<char32_t, false, true>::__type;
3926    };
3927
3928
3929
3930
3931
3932  template<typename _Tp>
3933    struct make_signed
3934    { typedef typename __make_signed_selector<_Tp>::__type type; };
3935
3936
3937  template<>
3938    struct make_signed<bool>;
3939
3940
3941
3942  template<typename _Tp>
3943    using make_signed_t = typename make_signed<_Tp>::type;
3944
3945
3946  template<typename _Tp>
3947    using make_unsigned_t = typename make_unsigned<_Tp>::type;
3948
3949
3950
3951
3952
3953  template<typename _Tp>
3954    struct remove_extent
3955    { typedef _Tp type; };
3956
3957  template<typename _Tp, std::size_t _Size>
3958    struct remove_extent<_Tp[_Size]>
3959    { typedef _Tp type; };
3960
3961  template<typename _Tp>
3962    struct remove_extent<_Tp[]>
3963    { typedef _Tp type; };
3964
3965
3966  template<typename _Tp>
3967    struct remove_all_extents
3968    { typedef _Tp type; };
3969
3970  template<typename _Tp, std::size_t _Size>
3971    struct remove_all_extents<_Tp[_Size]>
3972    { typedef typename remove_all_extents<_Tp>::type type; };
3973
3974  template<typename _Tp>
3975    struct remove_all_extents<_Tp[]>
3976    { typedef typename remove_all_extents<_Tp>::type type; };
3977
3978
3979
3980  template<typename _Tp>
3981    using remove_extent_t = typename remove_extent<_Tp>::type;
3982
3983
3984  template<typename _Tp>
3985    using remove_all_extents_t = typename remove_all_extents<_Tp>::type;
3986
3987
3988
3989
3990  template<typename _Tp, typename>
3991    struct __remove_pointer_helper
3992    { typedef _Tp type; };
3993
3994  template<typename _Tp, typename _Up>
3995    struct __remove_pointer_helper<_Tp, _Up*>
3996    { typedef _Up type; };
3997
3998
3999  template<typename _Tp>
4000    struct remove_pointer
4001    : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>>
4002    { };
4003
4004
4005  template<typename _Tp, bool = __or_<__is_referenceable<_Tp>,
4006          is_void<_Tp>>::value>
4007    struct __add_pointer_helper
4008    { typedef _Tp type; };
4009
4010  template<typename _Tp>
4011    struct __add_pointer_helper<_Tp, true>
4012    { typedef typename remove_reference<_Tp>::type* type; };
4013
4014  template<typename _Tp>
4015    struct add_pointer
4016    : public __add_pointer_helper<_Tp>
4017    { };
4018
4019
4020
4021  template<typename _Tp>
4022    using remove_pointer_t = typename remove_pointer<_Tp>::type;
4023
4024
4025  template<typename _Tp>
4026    using add_pointer_t = typename add_pointer<_Tp>::type;
4027
4028
4029  template<std::size_t _Len>
4030    struct __aligned_storage_msa
4031    {
4032      union __type
4033      {
4034 unsigned char __data[_Len];
4035 struct __attribute__((__aligned__)) { } __align;
4036      };
4037    };
4038# 2067 "/opt/local/include/gcc10/c++/type_traits" 3
4039  template<std::size_t _Len, std::size_t _Align =
4040    __alignof__(typename __aligned_storage_msa<_Len>::__type)>
4041    struct aligned_storage
4042    {
4043      union type
4044      {
4045 unsigned char __data[_Len];
4046 struct __attribute__((__aligned__((_Align)))) { } __align;
4047      };
4048    };
4049
4050  template <typename... _Types>
4051    struct __strictest_alignment
4052    {
4053      static const size_t _S_alignment = 0;
4054      static const size_t _S_size = 0;
4055    };
4056
4057  template <typename _Tp, typename... _Types>
4058    struct __strictest_alignment<_Tp, _Types...>
4059    {
4060      static const size_t _S_alignment =
4061        alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment
4062 ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment;
4063      static const size_t _S_size =
4064        sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size
4065 ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size;
4066    };
4067# 2106 "/opt/local/include/gcc10/c++/type_traits" 3
4068  template <size_t _Len, typename... _Types>
4069    struct aligned_union
4070    {
4071    private:
4072      static_assert(sizeof...(_Types) != 0, "At least one type is required");
4073
4074      using __strictest = __strictest_alignment<_Types...>;
4075      static const size_t _S_len = _Len > __strictest::_S_size
4076 ? _Len : __strictest::_S_size;
4077    public:
4078
4079      static const size_t alignment_value = __strictest::_S_alignment;
4080
4081      typedef typename aligned_storage<_S_len, alignment_value>::type type;
4082    };
4083
4084  template <size_t _Len, typename... _Types>
4085    const size_t aligned_union<_Len, _Types...>::alignment_value;
4086
4087
4088
4089  template<typename _Up,
4090    bool _IsArray = is_array<_Up>::value,
4091    bool _IsFunction = is_function<_Up>::value>
4092    struct __decay_selector;
4093
4094
4095  template<typename _Up>
4096    struct __decay_selector<_Up, false, false>
4097    { typedef __remove_cv_t<_Up> __type; };
4098
4099  template<typename _Up>
4100    struct __decay_selector<_Up, true, false>
4101    { typedef typename remove_extent<_Up>::type* __type; };
4102
4103  template<typename _Up>
4104    struct __decay_selector<_Up, false, true>
4105    { typedef typename add_pointer<_Up>::type __type; };
4106
4107
4108  template<typename _Tp>
4109    class decay
4110    {
4111      typedef typename remove_reference<_Tp>::type __remove_type;
4112
4113    public:
4114      typedef typename __decay_selector<__remove_type>::__type type;
4115    };
4116
4117
4118  template<typename _Tp>
4119    using __decay_t = typename decay<_Tp>::type;
4120
4121  template<typename _Tp>
4122    class reference_wrapper;
4123
4124
4125  template<typename _Tp>
4126    struct __strip_reference_wrapper
4127    {
4128      typedef _Tp __type;
4129    };
4130
4131  template<typename _Tp>
4132    struct __strip_reference_wrapper<reference_wrapper<_Tp> >
4133    {
4134      typedef _Tp& __type;
4135    };
4136
4137  template<typename _Tp>
4138    using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>;
4139
4140
4141
4142
4143  template<bool, typename _Tp = void>
4144    struct enable_if
4145    { };
4146
4147
4148  template<typename _Tp>
4149    struct enable_if<true, _Tp>
4150    { typedef _Tp type; };
4151
4152
4153  template<bool _Cond, typename _Tp = void>
4154    using __enable_if_t = typename enable_if<_Cond, _Tp>::type;
4155
4156  template<typename... _Cond>
4157    using _Require = __enable_if_t<__and_<_Cond...>::value>;
4158
4159
4160
4161  template<bool _Cond, typename _Iftrue, typename _Iffalse>
4162    struct conditional
4163    { typedef _Iftrue type; };
4164
4165
4166  template<typename _Iftrue, typename _Iffalse>
4167    struct conditional<false, _Iftrue, _Iffalse>
4168    { typedef _Iffalse type; };
4169
4170
4171  template<typename _Tp>
4172    using __remove_cvref_t
4173     = typename remove_cv<typename remove_reference<_Tp>::type>::type;
4174
4175
4176  template<typename... _Tp>
4177    struct common_type;
4178
4179
4180
4181  struct __do_common_type_impl
4182  {
4183    template<typename _Tp, typename _Up>
4184      using __cond_t
4185 = decltype(true ? std::declval<_Tp>() : std::declval<_Up>());
4186
4187
4188
4189    template<typename _Tp, typename _Up>
4190      static __success_type<__decay_t<__cond_t<_Tp, _Up>>>
4191      _S_test(int);
4192# 2239 "/opt/local/include/gcc10/c++/type_traits" 3
4193    template<typename, typename>
4194      static __failure_type
4195      _S_test_2(...);
4196
4197    template<typename _Tp, typename _Up>
4198      static decltype(_S_test_2<_Tp, _Up>(0))
4199      _S_test(...);
4200  };
4201
4202
4203  template<>
4204    struct common_type<>
4205    { };
4206
4207
4208  template<typename _Tp0>
4209    struct common_type<_Tp0>
4210    : public common_type<_Tp0, _Tp0>
4211    { };
4212
4213
4214  template<typename _Tp1, typename _Tp2,
4215    typename _Dp1 = __decay_t<_Tp1>, typename _Dp2 = __decay_t<_Tp2>>
4216    struct __common_type_impl
4217    {
4218
4219
4220      using type = common_type<_Dp1, _Dp2>;
4221    };
4222
4223  template<typename _Tp1, typename _Tp2>
4224    struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2>
4225    : private __do_common_type_impl
4226    {
4227
4228
4229      using type = decltype(_S_test<_Tp1, _Tp2>(0));
4230    };
4231
4232
4233  template<typename _Tp1, typename _Tp2>
4234    struct common_type<_Tp1, _Tp2>
4235    : public __common_type_impl<_Tp1, _Tp2>::type
4236    { };
4237
4238  template<typename...>
4239    struct __common_type_pack
4240    { };
4241
4242  template<typename, typename, typename = void>
4243    struct __common_type_fold;
4244
4245
4246  template<typename _Tp1, typename _Tp2, typename... _Rp>
4247    struct common_type<_Tp1, _Tp2, _Rp...>
4248    : public __common_type_fold<common_type<_Tp1, _Tp2>,
4249    __common_type_pack<_Rp...>>
4250    { };
4251
4252
4253
4254
4255  template<typename _CTp, typename... _Rp>
4256    struct __common_type_fold<_CTp, __common_type_pack<_Rp...>,
4257         __void_t<typename _CTp::type>>
4258    : public common_type<typename _CTp::type, _Rp...>
4259    { };
4260
4261
4262  template<typename _CTp, typename _Rp>
4263    struct __common_type_fold<_CTp, _Rp, void>
4264    { };
4265
4266  template<typename _Tp, bool = is_enum<_Tp>::value>
4267    struct __underlying_type_impl
4268    {
4269      using type = __underlying_type(_Tp);
4270    };
4271
4272  template<typename _Tp>
4273    struct __underlying_type_impl<_Tp, false>
4274    { };
4275
4276
4277  template<typename _Tp>
4278    struct underlying_type
4279    : public __underlying_type_impl<_Tp>
4280    { };
4281
4282  template<typename _Tp>
4283    struct __declval_protector
4284    {
4285      static const bool __stop = false;
4286    };
4287
4288  template<typename _Tp>
4289    auto declval() noexcept -> decltype(__declval<_Tp>(0))
4290    {
4291      static_assert(__declval_protector<_Tp>::__stop,
4292      "declval() must not be used!");
4293      return __declval<_Tp>(0);
4294    }
4295
4296
4297  template<typename _Signature>
4298    class result_of;
4299
4300
4301
4302
4303
4304  struct __invoke_memfun_ref { };
4305  struct __invoke_memfun_deref { };
4306  struct __invoke_memobj_ref { };
4307  struct __invoke_memobj_deref { };
4308  struct __invoke_other { };
4309
4310
4311  template<typename _Tp, typename _Tag>
4312    struct __result_of_success : __success_type<_Tp>
4313    { using __invoke_type = _Tag; };
4314
4315
4316  struct __result_of_memfun_ref_impl
4317  {
4318    template<typename _Fp, typename _Tp1, typename... _Args>
4319      static __result_of_success<decltype(
4320      (std::declval<_Tp1>().*std::declval<_Fp>())(std::declval<_Args>()...)
4321      ), __invoke_memfun_ref> _S_test(int);
4322
4323    template<typename...>
4324      static __failure_type _S_test(...);
4325  };
4326
4327  template<typename _MemPtr, typename _Arg, typename... _Args>
4328    struct __result_of_memfun_ref
4329    : private __result_of_memfun_ref_impl
4330    {
4331      typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type;
4332    };
4333
4334
4335  struct __result_of_memfun_deref_impl
4336  {
4337    template<typename _Fp, typename _Tp1, typename... _Args>
4338      static __result_of_success<decltype(
4339      ((*std::declval<_Tp1>()).*std::declval<_Fp>())(std::declval<_Args>()...)
4340      ), __invoke_memfun_deref> _S_test(int);
4341
4342    template<typename...>
4343      static __failure_type _S_test(...);
4344  };
4345
4346  template<typename _MemPtr, typename _Arg, typename... _Args>
4347    struct __result_of_memfun_deref
4348    : private __result_of_memfun_deref_impl
4349    {
4350      typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type;
4351    };
4352
4353
4354  struct __result_of_memobj_ref_impl
4355  {
4356    template<typename _Fp, typename _Tp1>
4357      static __result_of_success<decltype(
4358      std::declval<_Tp1>().*std::declval<_Fp>()
4359      ), __invoke_memobj_ref> _S_test(int);
4360
4361    template<typename, typename>
4362      static __failure_type _S_test(...);
4363  };
4364
4365  template<typename _MemPtr, typename _Arg>
4366    struct __result_of_memobj_ref
4367    : private __result_of_memobj_ref_impl
4368    {
4369      typedef decltype(_S_test<_MemPtr, _Arg>(0)) type;
4370    };
4371
4372
4373  struct __result_of_memobj_deref_impl
4374  {
4375    template<typename _Fp, typename _Tp1>
4376      static __result_of_success<decltype(
4377      (*std::declval<_Tp1>()).*std::declval<_Fp>()
4378      ), __invoke_memobj_deref> _S_test(int);
4379
4380    template<typename, typename>
4381      static __failure_type _S_test(...);
4382  };
4383
4384  template<typename _MemPtr, typename _Arg>
4385    struct __result_of_memobj_deref
4386    : private __result_of_memobj_deref_impl
4387    {
4388      typedef decltype(_S_test<_MemPtr, _Arg>(0)) type;
4389    };
4390
4391  template<typename _MemPtr, typename _Arg>
4392    struct __result_of_memobj;
4393
4394  template<typename _Res, typename _Class, typename _Arg>
4395    struct __result_of_memobj<_Res _Class::*, _Arg>
4396    {
4397      typedef __remove_cvref_t<_Arg> _Argval;
4398      typedef _Res _Class::* _MemPtr;
4399      typedef typename conditional<__or_<is_same<_Argval, _Class>,
4400        is_base_of<_Class, _Argval>>::value,
4401        __result_of_memobj_ref<_MemPtr, _Arg>,
4402        __result_of_memobj_deref<_MemPtr, _Arg>
4403      >::type::type type;
4404    };
4405
4406  template<typename _MemPtr, typename _Arg, typename... _Args>
4407    struct __result_of_memfun;
4408
4409  template<typename _Res, typename _Class, typename _Arg, typename... _Args>
4410    struct __result_of_memfun<_Res _Class::*, _Arg, _Args...>
4411    {
4412      typedef typename remove_reference<_Arg>::type _Argval;
4413      typedef _Res _Class::* _MemPtr;
4414      typedef typename conditional<is_base_of<_Class, _Argval>::value,
4415        __result_of_memfun_ref<_MemPtr, _Arg, _Args...>,
4416        __result_of_memfun_deref<_MemPtr, _Arg, _Args...>
4417      >::type::type type;
4418    };
4419
4420
4421
4422
4423
4424
4425  template<typename _Tp, typename _Up = __remove_cvref_t<_Tp>>
4426    struct __inv_unwrap
4427    {
4428      using type = _Tp;
4429    };
4430
4431  template<typename _Tp, typename _Up>
4432    struct __inv_unwrap<_Tp, reference_wrapper<_Up>>
4433    {
4434      using type = _Up&;
4435    };
4436
4437  template<bool, bool, typename _Functor, typename... _ArgTypes>
4438    struct __result_of_impl
4439    {
4440      typedef __failure_type type;
4441    };
4442
4443  template<typename _MemPtr, typename _Arg>
4444    struct __result_of_impl<true, false, _MemPtr, _Arg>
4445    : public __result_of_memobj<__decay_t<_MemPtr>,
4446    typename __inv_unwrap<_Arg>::type>
4447    { };
4448
4449  template<typename _MemPtr, typename _Arg, typename... _Args>
4450    struct __result_of_impl<false, true, _MemPtr, _Arg, _Args...>
4451    : public __result_of_memfun<__decay_t<_MemPtr>,
4452    typename __inv_unwrap<_Arg>::type, _Args...>
4453    { };
4454
4455
4456  struct __result_of_other_impl
4457  {
4458    template<typename _Fn, typename... _Args>
4459      static __result_of_success<decltype(
4460      std::declval<_Fn>()(std::declval<_Args>()...)
4461      ), __invoke_other> _S_test(int);
4462
4463    template<typename...>
4464      static __failure_type _S_test(...);
4465  };
4466
4467  template<typename _Functor, typename... _ArgTypes>
4468    struct __result_of_impl<false, false, _Functor, _ArgTypes...>
4469    : private __result_of_other_impl
4470    {
4471      typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
4472    };
4473
4474
4475  template<typename _Functor, typename... _ArgTypes>
4476    struct __invoke_result
4477    : public __result_of_impl<
4478        is_member_object_pointer<
4479          typename remove_reference<_Functor>::type
4480        >::value,
4481        is_member_function_pointer<
4482          typename remove_reference<_Functor>::type
4483        >::value,
4484 _Functor, _ArgTypes...
4485      >::type
4486    { };
4487
4488  template<typename _Functor, typename... _ArgTypes>
4489    struct result_of<_Functor(_ArgTypes...)>
4490    : public __invoke_result<_Functor, _ArgTypes...>
4491    { };
4492
4493
4494
4495  template<size_t _Len, size_t _Align =
4496     __alignof__(typename __aligned_storage_msa<_Len>::__type)>
4497    using aligned_storage_t = typename aligned_storage<_Len, _Align>::type;
4498
4499  template <size_t _Len, typename... _Types>
4500    using aligned_union_t = typename aligned_union<_Len, _Types...>::type;
4501
4502
4503  template<typename _Tp>
4504    using decay_t = typename decay<_Tp>::type;
4505
4506
4507  template<bool _Cond, typename _Tp = void>
4508    using enable_if_t = typename enable_if<_Cond, _Tp>::type;
4509
4510
4511  template<bool _Cond, typename _Iftrue, typename _Iffalse>
4512    using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type;
4513
4514
4515  template<typename... _Tp>
4516    using common_type_t = typename common_type<_Tp...>::type;
4517
4518
4519  template<typename _Tp>
4520    using underlying_type_t = typename underlying_type<_Tp>::type;
4521
4522
4523  template<typename _Tp>
4524    using result_of_t = typename result_of<_Tp>::type;
4525
4526
4527
4528
4529
4530  template<typename...> using void_t = void;
4531
4532
4533
4534  template<typename _Default, typename _AlwaysVoid,
4535    template<typename...> class _Op, typename... _Args>
4536    struct __detector
4537    {
4538      using value_t = false_type;
4539      using type = _Default;
4540    };
4541
4542
4543  template<typename _Default, template<typename...> class _Op,
4544     typename... _Args>
4545    struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...>
4546    {
4547      using value_t = true_type;
4548      using type = _Op<_Args...>;
4549    };
4550
4551
4552  template<typename _Default, template<typename...> class _Op,
4553    typename... _Args>
4554    using __detected_or = __detector<_Default, void, _Op, _Args...>;
4555
4556
4557  template<typename _Default, template<typename...> class _Op,
4558    typename... _Args>
4559    using __detected_or_t
4560      = typename __detected_or<_Default, _Op, _Args...>::type;
4561# 2624 "/opt/local/include/gcc10/c++/type_traits" 3
4562  template <typename _Tp>
4563    struct __is_swappable;
4564
4565  template <typename _Tp>
4566    struct __is_nothrow_swappable;
4567
4568  template<typename... _Elements>
4569    class tuple;
4570
4571  template<typename>
4572    struct __is_tuple_like_impl : false_type
4573    { };
4574
4575  template<typename... _Tps>
4576    struct __is_tuple_like_impl<tuple<_Tps...>> : true_type
4577    { };
4578
4579
4580  template<typename _Tp>
4581    struct __is_tuple_like
4582    : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type
4583    { };
4584
4585  template<typename _Tp>
4586   
4587    inline
4588    _Require<__not_<__is_tuple_like<_Tp>>,
4589      is_move_constructible<_Tp>,
4590      is_move_assignable<_Tp>>
4591    swap(_Tp&, _Tp&)
4592    noexcept(__and_<is_nothrow_move_constructible<_Tp>,
4593             is_nothrow_move_assignable<_Tp>>::value);
4594
4595  template<typename _Tp, size_t _Nm>
4596   
4597    inline
4598    __enable_if_t<__is_swappable<_Tp>::value>
4599    swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
4600    noexcept(__is_nothrow_swappable<_Tp>::value);
4601
4602  namespace __swappable_details {
4603    using std::swap;
4604
4605    struct __do_is_swappable_impl
4606    {
4607      template<typename _Tp, typename
4608               = decltype(swap(std::declval<_Tp&>(), std::declval<_Tp&>()))>
4609        static true_type __test(int);
4610
4611      template<typename>
4612        static false_type __test(...);
4613    };
4614
4615    struct __do_is_nothrow_swappable_impl
4616    {
4617      template<typename _Tp>
4618        static __bool_constant<
4619          noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>()))
4620        > __test(int);
4621
4622      template<typename>
4623        static false_type __test(...);
4624    };
4625
4626  }
4627
4628  template<typename _Tp>
4629    struct __is_swappable_impl
4630    : public __swappable_details::__do_is_swappable_impl
4631    {
4632      typedef decltype(__test<_Tp>(0)) type;
4633    };
4634
4635  template<typename _Tp>
4636    struct __is_nothrow_swappable_impl
4637    : public __swappable_details::__do_is_nothrow_swappable_impl
4638    {
4639      typedef decltype(__test<_Tp>(0)) type;
4640    };
4641
4642  template<typename _Tp>
4643    struct __is_swappable
4644    : public __is_swappable_impl<_Tp>::type
4645    { };
4646
4647  template<typename _Tp>
4648    struct __is_nothrow_swappable
4649    : public __is_nothrow_swappable_impl<_Tp>::type
4650    { };
4651
4652
4653
4654
4655
4656
4657  template<typename _Tp>
4658    struct is_swappable
4659    : public __is_swappable_impl<_Tp>::type
4660    {
4661      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
4662 "template argument must be a complete class or an unbounded array");
4663    };
4664
4665
4666  template<typename _Tp>
4667    struct is_nothrow_swappable
4668    : public __is_nothrow_swappable_impl<_Tp>::type
4669    {
4670      static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
4671 "template argument must be a complete class or an unbounded array");
4672    };
4673
4674
4675
4676  template<typename _Tp>
4677    constexpr bool is_swappable_v =
4678      is_swappable<_Tp>::value;
4679
4680
4681  template<typename _Tp>
4682    constexpr bool is_nothrow_swappable_v =
4683      is_nothrow_swappable<_Tp>::value;
4684
4685
4686  namespace __swappable_with_details {
4687    using std::swap;
4688
4689    struct __do_is_swappable_with_impl
4690    {
4691      template<typename _Tp, typename _Up, typename
4692               = decltype(swap(std::declval<_Tp>(), std::declval<_Up>())),
4693               typename
4694               = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))>
4695        static true_type __test(int);
4696
4697      template<typename, typename>
4698        static false_type __test(...);
4699    };
4700
4701    struct __do_is_nothrow_swappable_with_impl
4702    {
4703      template<typename _Tp, typename _Up>
4704        static __bool_constant<
4705          noexcept(swap(std::declval<_Tp>(), std::declval<_Up>()))
4706          &&
4707          noexcept(swap(std::declval<_Up>(), std::declval<_Tp>()))
4708        > __test(int);
4709
4710      template<typename, typename>
4711        static false_type __test(...);
4712    };
4713
4714  }
4715
4716  template<typename _Tp, typename _Up>
4717    struct __is_swappable_with_impl
4718    : public __swappable_with_details::__do_is_swappable_with_impl
4719    {
4720      typedef decltype(__test<_Tp, _Up>(0)) type;
4721    };
4722
4723
4724  template<typename _Tp>
4725    struct __is_swappable_with_impl<_Tp&, _Tp&>
4726    : public __swappable_details::__do_is_swappable_impl
4727    {
4728      typedef decltype(__test<_Tp&>(0)) type;
4729    };
4730
4731  template<typename _Tp, typename _Up>
4732    struct __is_nothrow_swappable_with_impl
4733    : public __swappable_with_details::__do_is_nothrow_swappable_with_impl
4734    {
4735      typedef decltype(__test<_Tp, _Up>(0)) type;
4736    };
4737
4738
4739  template<typename _Tp>
4740    struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&>
4741    : public __swappable_details::__do_is_nothrow_swappable_impl
4742    {
4743      typedef decltype(__test<_Tp&>(0)) type;
4744    };
4745
4746
4747  template<typename _Tp, typename _Up>
4748    struct is_swappable_with
4749    : public __is_swappable_with_impl<_Tp, _Up>::type
4750    { };
4751
4752
4753  template<typename _Tp, typename _Up>
4754    struct is_nothrow_swappable_with
4755    : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type
4756    { };
4757
4758
4759
4760  template<typename _Tp, typename _Up>
4761    constexpr bool is_swappable_with_v =
4762      is_swappable_with<_Tp, _Up>::value;
4763
4764
4765  template<typename _Tp, typename _Up>
4766    constexpr bool is_nothrow_swappable_with_v =
4767      is_nothrow_swappable_with<_Tp, _Up>::value;
4768
4769
4770
4771
4772
4773
4774
4775  template<typename _Result, typename _Ret,
4776    bool = is_void<_Ret>::value, typename = void>
4777    struct __is_invocable_impl : false_type { };
4778
4779
4780  template<typename _Result, typename _Ret>
4781    struct __is_invocable_impl<_Result, _Ret,
4782                                true,
4783          __void_t<typename _Result::type>>
4784    : true_type
4785    { };
4786
4787#pragma GCC diagnostic push
4788#pragma GCC diagnostic ignored "-Wctor-dtor-privacy"
4789
4790  template<typename _Result, typename _Ret>
4791    struct __is_invocable_impl<_Result, _Ret,
4792                                false,
4793          __void_t<typename _Result::type>>
4794    {
4795    private:
4796
4797
4798      static typename _Result::type _S_get();
4799
4800      template<typename _Tp>
4801 static void _S_conv(_Tp);
4802
4803
4804      template<typename _Tp, typename = decltype(_S_conv<_Tp>(_S_get()))>
4805 static true_type
4806 _S_test(int);
4807
4808      template<typename _Tp>
4809 static false_type
4810 _S_test(...);
4811
4812    public:
4813      using type = decltype(_S_test<_Ret>(1));
4814    };
4815#pragma GCC diagnostic pop
4816
4817  template<typename _Fn, typename... _ArgTypes>
4818    struct __is_invocable
4819    : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type
4820    { };
4821
4822  template<typename _Fn, typename _Tp, typename... _Args>
4823    constexpr bool __call_is_nt(__invoke_memfun_ref)
4824    {
4825      using _Up = typename __inv_unwrap<_Tp>::type;
4826      return noexcept((std::declval<_Up>().*std::declval<_Fn>())(
4827     std::declval<_Args>()...));
4828    }
4829
4830  template<typename _Fn, typename _Tp, typename... _Args>
4831    constexpr bool __call_is_nt(__invoke_memfun_deref)
4832    {
4833      return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())(
4834     std::declval<_Args>()...));
4835    }
4836
4837  template<typename _Fn, typename _Tp>
4838    constexpr bool __call_is_nt(__invoke_memobj_ref)
4839    {
4840      using _Up = typename __inv_unwrap<_Tp>::type;
4841      return noexcept(std::declval<_Up>().*std::declval<_Fn>());
4842    }
4843
4844  template<typename _Fn, typename _Tp>
4845    constexpr bool __call_is_nt(__invoke_memobj_deref)
4846    {
4847      return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>());
4848    }
4849
4850  template<typename _Fn, typename... _Args>
4851    constexpr bool __call_is_nt(__invoke_other)
4852    {
4853      return noexcept(std::declval<_Fn>()(std::declval<_Args>()...));
4854    }
4855
4856  template<typename _Result, typename _Fn, typename... _Args>
4857    struct __call_is_nothrow
4858    : __bool_constant<
4859 std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{})
4860      >
4861    { };
4862
4863  template<typename _Fn, typename... _Args>
4864    using __call_is_nothrow_
4865      = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>;
4866
4867
4868  template<typename _Fn, typename... _Args>
4869    struct __is_nothrow_invocable
4870    : __and_<__is_invocable<_Fn, _Args...>,
4871             __call_is_nothrow_<_Fn, _Args...>>::type
4872    { };
4873
4874#pragma GCC diagnostic push
4875#pragma GCC diagnostic ignored "-Wctor-dtor-privacy"
4876  struct __nonesuchbase {};
4877  struct __nonesuch : private __nonesuchbase {
4878    ~__nonesuch() = delete;
4879    __nonesuch(__nonesuch const&) = delete;
4880    void operator=(__nonesuch const&) = delete;
4881  };
4882#pragma GCC diagnostic pop
4883# 3455 "/opt/local/include/gcc10/c++/type_traits" 3
4884
4885}
4886# 58 "/opt/local/include/gcc10/c++/bits/move.h" 2 3
4887
4888namespace std __attribute__ ((__visibility__ ("default")))
4889{
4890
4891# 74 "/opt/local/include/gcc10/c++/bits/move.h" 3
4892  template<typename _Tp>
4893    constexpr _Tp&&
4894    forward(typename std::remove_reference<_Tp>::type& __t) noexcept
4895    { return static_cast<_Tp&&>(__t); }
4896
4897
4898
4899
4900
4901
4902
4903  template<typename _Tp>
4904    constexpr _Tp&&
4905    forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
4906    {
4907      static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument"
4908      " substituting _Tp is an lvalue reference type");
4909      return static_cast<_Tp&&>(__t);
4910    }
4911
4912
4913
4914
4915
4916
4917  template<typename _Tp>
4918    constexpr typename std::remove_reference<_Tp>::type&&
4919    move(_Tp&& __t) noexcept
4920    { return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); }
4921
4922
4923  template<typename _Tp>
4924    struct __move_if_noexcept_cond
4925    : public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
4926                    is_copy_constructible<_Tp>>::type { };
4927# 118 "/opt/local/include/gcc10/c++/bits/move.h" 3
4928  template<typename _Tp>
4929    constexpr typename
4930    conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type
4931    move_if_noexcept(_Tp& __x) noexcept
4932    { return std::move(__x); }
4933# 138 "/opt/local/include/gcc10/c++/bits/move.h" 3
4934  template<typename _Tp>
4935    inline _Tp*
4936    addressof(_Tp& __r) noexcept
4937    { return std::__addressof(__r); }
4938
4939
4940
4941  template<typename _Tp>
4942    const _Tp* addressof(const _Tp&&) = delete;
4943
4944
4945  template <typename _Tp, typename _Up = _Tp>
4946   
4947    inline _Tp
4948    __exchange(_Tp& __obj, _Up&& __new_val)
4949    {
4950      _Tp __old_val = std::move(__obj);
4951      __obj = std::forward<_Up>(__new_val);
4952      return __old_val;
4953    }
4954# 179 "/opt/local/include/gcc10/c++/bits/move.h" 3
4955  template<typename _Tp>
4956   
4957    inline
4958
4959    typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>,
4960         is_move_constructible<_Tp>,
4961         is_move_assignable<_Tp>>::value>::type
4962
4963
4964
4965    swap(_Tp& __a, _Tp& __b)
4966    noexcept(__and_<is_nothrow_move_constructible<_Tp>, is_nothrow_move_assignable<_Tp>>::value)
4967
4968    {
4969
4970
4971
4972
4973      _Tp __tmp = std::move(__a);
4974      __a = std::move(__b);
4975      __b = std::move(__tmp);
4976    }
4977
4978
4979
4980
4981  template<typename _Tp, size_t _Nm>
4982   
4983    inline
4984
4985    typename enable_if<__is_swappable<_Tp>::value>::type
4986
4987
4988
4989    swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
4990    noexcept(__is_nothrow_swappable<_Tp>::value)
4991    {
4992      for (size_t __n = 0; __n < _Nm; ++__n)
4993 swap(__a[__n], __b[__n]);
4994    }
4995
4996
4997
4998}
4999# 60 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 2 3
5000# 69 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5001namespace std __attribute__ ((__visibility__ ("default")))
5002{
5003
5004# 80 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5005  struct piecewise_construct_t { explicit piecewise_construct_t() = default; };
5006
5007
5008  constexpr piecewise_construct_t piecewise_construct =
5009    piecewise_construct_t();
5010
5011
5012
5013
5014  template<typename...>
5015    class tuple;
5016
5017  template<std::size_t...>
5018    struct _Index_tuple;
5019
5020
5021
5022
5023
5024
5025  template <bool, typename _T1, typename _T2>
5026    struct _PCC
5027    {
5028      template <typename _U1, typename _U2>
5029      static constexpr bool _ConstructiblePair()
5030      {
5031 return __and_<is_constructible<_T1, const _U1&>,
5032        is_constructible<_T2, const _U2&>>::value;
5033      }
5034
5035      template <typename _U1, typename _U2>
5036      static constexpr bool _ImplicitlyConvertiblePair()
5037      {
5038 return __and_<is_convertible<const _U1&, _T1>,
5039        is_convertible<const _U2&, _T2>>::value;
5040      }
5041
5042      template <typename _U1, typename _U2>
5043      static constexpr bool _MoveConstructiblePair()
5044      {
5045 return __and_<is_constructible<_T1, _U1&&>,
5046        is_constructible<_T2, _U2&&>>::value;
5047      }
5048
5049      template <typename _U1, typename _U2>
5050      static constexpr bool _ImplicitlyMoveConvertiblePair()
5051      {
5052 return __and_<is_convertible<_U1&&, _T1>,
5053        is_convertible<_U2&&, _T2>>::value;
5054      }
5055
5056      template <bool __implicit, typename _U1, typename _U2>
5057      static constexpr bool _CopyMovePair()
5058      {
5059 using __do_converts = __and_<is_convertible<const _U1&, _T1>,
5060      is_convertible<_U2&&, _T2>>;
5061 using __converts = typename conditional<__implicit,
5062           __do_converts,
5063           __not_<__do_converts>>::type;
5064 return __and_<is_constructible<_T1, const _U1&>,
5065        is_constructible<_T2, _U2&&>,
5066        __converts
5067        >::value;
5068      }
5069
5070      template <bool __implicit, typename _U1, typename _U2>
5071      static constexpr bool _MoveCopyPair()
5072      {
5073 using __do_converts = __and_<is_convertible<_U1&&, _T1>,
5074      is_convertible<const _U2&, _T2>>;
5075 using __converts = typename conditional<__implicit,
5076           __do_converts,
5077           __not_<__do_converts>>::type;
5078 return __and_<is_constructible<_T1, _U1&&>,
5079        is_constructible<_T2, const _U2&&>,
5080        __converts
5081        >::value;
5082      }
5083  };
5084
5085  template <typename _T1, typename _T2>
5086    struct _PCC<false, _T1, _T2>
5087    {
5088      template <typename _U1, typename _U2>
5089      static constexpr bool _ConstructiblePair()
5090      {
5091 return false;
5092      }
5093
5094      template <typename _U1, typename _U2>
5095      static constexpr bool _ImplicitlyConvertiblePair()
5096      {
5097 return false;
5098      }
5099
5100      template <typename _U1, typename _U2>
5101      static constexpr bool _MoveConstructiblePair()
5102      {
5103 return false;
5104      }
5105
5106      template <typename _U1, typename _U2>
5107      static constexpr bool _ImplicitlyMoveConvertiblePair()
5108      {
5109 return false;
5110      }
5111  };
5112
5113
5114  template<typename _U1, typename _U2> class __pair_base
5115  {
5116
5117    template<typename _T1, typename _T2> friend struct pair;
5118    __pair_base() = default;
5119    ~__pair_base() = default;
5120    __pair_base(const __pair_base&) = default;
5121    __pair_base& operator=(const __pair_base&) = delete;
5122
5123  };
5124# 210 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5125  template<typename _T1, typename _T2>
5126    struct pair
5127    : private __pair_base<_T1, _T2>
5128    {
5129      typedef _T1 first_type;
5130      typedef _T2 second_type;
5131
5132      _T1 first;
5133      _T2 second;
5134
5135
5136
5137
5138
5139
5140      template <typename _U1 = _T1,
5141                typename _U2 = _T2,
5142                typename enable_if<__and_<
5143                                     __is_implicitly_default_constructible<_U1>,
5144                                     __is_implicitly_default_constructible<_U2>>
5145                                   ::value, bool>::type = true>
5146
5147      constexpr pair()
5148      : first(), second() { }
5149
5150
5151      template <typename _U1 = _T1,
5152                typename _U2 = _T2,
5153                typename enable_if<__and_<
5154                       is_default_constructible<_U1>,
5155                       is_default_constructible<_U2>,
5156                       __not_<
5157                         __and_<__is_implicitly_default_constructible<_U1>,
5158                                __is_implicitly_default_constructible<_U2>>>>
5159                                   ::value, bool>::type = false>
5160      explicit constexpr pair()
5161      : first(), second() { }
5162# 256 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5163      using _PCCP = _PCC<true, _T1, _T2>;
5164
5165
5166
5167      template<typename _U1 = _T1, typename _U2=_T2, typename
5168        enable_if<_PCCP::template
5169      _ConstructiblePair<_U1, _U2>()
5170                  && _PCCP::template
5171      _ImplicitlyConvertiblePair<_U1, _U2>(),
5172                         bool>::type=true>
5173      constexpr pair(const _T1& __a, const _T2& __b)
5174      : first(__a), second(__b) { }
5175
5176
5177       template<typename _U1 = _T1, typename _U2=_T2, typename
5178  enable_if<_PCCP::template
5179       _ConstructiblePair<_U1, _U2>()
5180                   && !_PCCP::template
5181       _ImplicitlyConvertiblePair<_U1, _U2>(),
5182                         bool>::type=false>
5183      explicit constexpr pair(const _T1& __a, const _T2& __b)
5184      : first(__a), second(__b) { }
5185# 288 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5186      template <typename _U1, typename _U2>
5187        using _PCCFP = _PCC<!is_same<_T1, _U1>::value
5188       || !is_same<_T2, _U2>::value,
5189       _T1, _T2>;
5190
5191
5192      template<typename _U1, typename _U2, typename
5193        enable_if<_PCCFP<_U1, _U2>::template
5194      _ConstructiblePair<_U1, _U2>()
5195                  && _PCCFP<_U1, _U2>::template
5196      _ImplicitlyConvertiblePair<_U1, _U2>(),
5197     bool>::type=true>
5198        constexpr pair(const pair<_U1, _U2>& __p)
5199        : first(__p.first), second(__p.second) { }
5200
5201      template<typename _U1, typename _U2, typename
5202        enable_if<_PCCFP<_U1, _U2>::template
5203      _ConstructiblePair<_U1, _U2>()
5204    && !_PCCFP<_U1, _U2>::template
5205      _ImplicitlyConvertiblePair<_U1, _U2>(),
5206                         bool>::type=false>
5207 explicit constexpr pair(const pair<_U1, _U2>& __p)
5208 : first(__p.first), second(__p.second) { }
5209
5210
5211
5212      constexpr pair(const pair&) = default;
5213      constexpr pair(pair&&) = default;
5214
5215
5216      template<typename _U1, typename
5217        enable_if<_PCCP::template
5218      _MoveCopyPair<true, _U1, _T2>(),
5219                         bool>::type=true>
5220       constexpr pair(_U1&& __x, const _T2& __y)
5221       : first(std::forward<_U1>(__x)), second(__y) { }
5222
5223      template<typename _U1, typename
5224        enable_if<_PCCP::template
5225      _MoveCopyPair<false, _U1, _T2>(),
5226                         bool>::type=false>
5227       explicit constexpr pair(_U1&& __x, const _T2& __y)
5228       : first(std::forward<_U1>(__x)), second(__y) { }
5229
5230      template<typename _U2, typename
5231        enable_if<_PCCP::template
5232      _CopyMovePair<true, _T1, _U2>(),
5233                         bool>::type=true>
5234       constexpr pair(const _T1& __x, _U2&& __y)
5235       : first(__x), second(std::forward<_U2>(__y)) { }
5236
5237      template<typename _U2, typename
5238        enable_if<_PCCP::template
5239      _CopyMovePair<false, _T1, _U2>(),
5240                         bool>::type=false>
5241       explicit pair(const _T1& __x, _U2&& __y)
5242       : first(__x), second(std::forward<_U2>(__y)) { }
5243
5244      template<typename _U1, typename _U2, typename
5245        enable_if<_PCCP::template
5246      _MoveConstructiblePair<_U1, _U2>()
5247     && _PCCP::template
5248      _ImplicitlyMoveConvertiblePair<_U1, _U2>(),
5249                         bool>::type=true>
5250 constexpr pair(_U1&& __x, _U2&& __y)
5251 : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
5252
5253      template<typename _U1, typename _U2, typename
5254        enable_if<_PCCP::template
5255      _MoveConstructiblePair<_U1, _U2>()
5256     && !_PCCP::template
5257      _ImplicitlyMoveConvertiblePair<_U1, _U2>(),
5258                         bool>::type=false>
5259 explicit constexpr pair(_U1&& __x, _U2&& __y)
5260 : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
5261
5262
5263      template<typename _U1, typename _U2, typename
5264        enable_if<_PCCFP<_U1, _U2>::template
5265      _MoveConstructiblePair<_U1, _U2>()
5266     && _PCCFP<_U1, _U2>::template
5267      _ImplicitlyMoveConvertiblePair<_U1, _U2>(),
5268                         bool>::type=true>
5269 constexpr pair(pair<_U1, _U2>&& __p)
5270 : first(std::forward<_U1>(__p.first)),
5271   second(std::forward<_U2>(__p.second)) { }
5272
5273      template<typename _U1, typename _U2, typename
5274        enable_if<_PCCFP<_U1, _U2>::template
5275      _MoveConstructiblePair<_U1, _U2>()
5276     && !_PCCFP<_U1, _U2>::template
5277      _ImplicitlyMoveConvertiblePair<_U1, _U2>(),
5278                         bool>::type=false>
5279 explicit constexpr pair(pair<_U1, _U2>&& __p)
5280 : first(std::forward<_U1>(__p.first)),
5281   second(std::forward<_U2>(__p.second)) { }
5282
5283      template<typename... _Args1, typename... _Args2>
5284
5285        pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>);
5286
5287      pair&
5288      operator=(typename conditional<
5289  __and_<is_copy_assignable<_T1>,
5290         is_copy_assignable<_T2>>::value,
5291  const pair&, const __nonesuch&>::type __p)
5292      {
5293 first = __p.first;
5294 second = __p.second;
5295 return *this;
5296      }
5297
5298      pair&
5299      operator=(typename conditional<
5300  __and_<is_move_assignable<_T1>,
5301         is_move_assignable<_T2>>::value,
5302  pair&&, __nonesuch&&>::type __p)
5303      noexcept(__and_<is_nothrow_move_assignable<_T1>,
5304        is_nothrow_move_assignable<_T2>>::value)
5305      {
5306 first = std::forward<first_type>(__p.first);
5307 second = std::forward<second_type>(__p.second);
5308 return *this;
5309      }
5310
5311      template<typename _U1, typename _U2>
5312
5313 typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
5314      is_assignable<_T2&, const _U2&>>::value,
5315      pair&>::type
5316 operator=(const pair<_U1, _U2>& __p)
5317 {
5318   first = __p.first;
5319   second = __p.second;
5320   return *this;
5321 }
5322
5323      template<typename _U1, typename _U2>
5324
5325 typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
5326      is_assignable<_T2&, _U2&&>>::value,
5327      pair&>::type
5328 operator=(pair<_U1, _U2>&& __p)
5329 {
5330   first = std::forward<_U1>(__p.first);
5331   second = std::forward<_U2>(__p.second);
5332   return *this;
5333 }
5334
5335
5336      void
5337      swap(pair& __p)
5338      noexcept(__and_<__is_nothrow_swappable<_T1>,
5339                      __is_nothrow_swappable<_T2>>::value)
5340      {
5341 using std::swap;
5342 swap(first, __p.first);
5343 swap(second, __p.second);
5344      }
5345
5346    private:
5347      template<typename... _Args1, std::size_t... _Indexes1,
5348               typename... _Args2, std::size_t... _Indexes2>
5349
5350        pair(tuple<_Args1...>&, tuple<_Args2...>&,
5351             _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>);
5352
5353    };
5354# 464 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5355  template<typename _T1, typename _T2>
5356    inline constexpr bool
5357    operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5358    { return __x.first == __y.first && __x.second == __y.second; }
5359# 487 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5360  template<typename _T1, typename _T2>
5361    inline constexpr bool
5362    operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5363    { return __x.first < __y.first
5364      || (!(__y.first < __x.first) && __x.second < __y.second); }
5365
5366
5367  template<typename _T1, typename _T2>
5368    inline constexpr bool
5369    operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5370    { return !(__x == __y); }
5371
5372
5373  template<typename _T1, typename _T2>
5374    inline constexpr bool
5375    operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5376    { return __y < __x; }
5377
5378
5379  template<typename _T1, typename _T2>
5380    inline constexpr bool
5381    operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5382    { return !(__y < __x); }
5383
5384
5385  template<typename _T1, typename _T2>
5386    inline constexpr bool
5387    operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5388    { return !(__x < __y); }
5389# 524 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5390  template<typename _T1, typename _T2>
5391    inline
5392
5393
5394    typename enable_if<__and_<__is_swappable<_T1>,
5395                              __is_swappable<_T2>>::value>::type
5396
5397
5398
5399    swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
5400    noexcept(noexcept(__x.swap(__y)))
5401    { __x.swap(__y); }
5402
5403
5404  template<typename _T1, typename _T2>
5405    typename enable_if<!__and_<__is_swappable<_T1>,
5406          __is_swappable<_T2>>::value>::type
5407    swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete;
5408# 564 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5409  template<typename _T1, typename _T2>
5410    constexpr pair<typename __decay_and_strip<_T1>::__type,
5411                   typename __decay_and_strip<_T2>::__type>
5412    make_pair(_T1&& __x, _T2&& __y)
5413    {
5414      typedef typename __decay_and_strip<_T1>::__type __ds_type1;
5415      typedef typename __decay_and_strip<_T2>::__type __ds_type2;
5416      typedef pair<__ds_type1, __ds_type2> __pair_type;
5417      return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
5418    }
5419# 583 "/opt/local/include/gcc10/c++/bits/stl_pair.h" 3
5420
5421}
5422# 65 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
5423# 1 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_types.h" 1 3
5424# 62 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_types.h" 3
5425       
5426# 63 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_types.h" 3
5427# 74 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_types.h" 3
5428namespace std __attribute__ ((__visibility__ ("default")))
5429{
5430
5431# 93 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_types.h" 3
5432  struct input_iterator_tag { };
5433
5434
5435  struct output_iterator_tag { };
5436
5437
5438  struct forward_iterator_tag : public input_iterator_tag { };
5439
5440
5441
5442  struct bidirectional_iterator_tag : public forward_iterator_tag { };
5443
5444
5445
5446  struct random_access_iterator_tag : public bidirectional_iterator_tag { };
5447# 125 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_types.h" 3
5448  template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
5449           typename _Pointer = _Tp*, typename _Reference = _Tp&>
5450    struct iterator
5451    {
5452
5453      typedef _Category iterator_category;
5454
5455      typedef _Tp value_type;
5456
5457      typedef _Distance difference_type;
5458
5459      typedef _Pointer pointer;
5460
5461      typedef _Reference reference;
5462    };
5463# 149 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_types.h" 3
5464  template<typename _Iterator>
5465    struct iterator_traits;
5466
5467
5468
5469
5470  template<typename _Iterator, typename = __void_t<>>
5471    struct __iterator_traits { };
5472
5473
5474
5475  template<typename _Iterator>
5476    struct __iterator_traits<_Iterator,
5477        __void_t<typename _Iterator::iterator_category,
5478          typename _Iterator::value_type,
5479          typename _Iterator::difference_type,
5480          typename _Iterator::pointer,
5481          typename _Iterator::reference>>
5482    {
5483      typedef typename _Iterator::iterator_category iterator_category;
5484      typedef typename _Iterator::value_type value_type;
5485      typedef typename _Iterator::difference_type difference_type;
5486      typedef typename _Iterator::pointer pointer;
5487      typedef typename _Iterator::reference reference;
5488    };
5489
5490
5491  template<typename _Iterator>
5492    struct iterator_traits
5493    : public __iterator_traits<_Iterator> { };
5494# 209 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_types.h" 3
5495  template<typename _Tp>
5496    struct iterator_traits<_Tp*>
5497    {
5498      typedef random_access_iterator_tag iterator_category;
5499      typedef _Tp value_type;
5500      typedef ptrdiff_t difference_type;
5501      typedef _Tp* pointer;
5502      typedef _Tp& reference;
5503    };
5504
5505
5506  template<typename _Tp>
5507    struct iterator_traits<const _Tp*>
5508    {
5509      typedef random_access_iterator_tag iterator_category;
5510      typedef _Tp value_type;
5511      typedef ptrdiff_t difference_type;
5512      typedef const _Tp* pointer;
5513      typedef const _Tp& reference;
5514    };
5515
5516
5517
5518
5519
5520
5521  template<typename _Iter>
5522    inline constexpr
5523    typename iterator_traits<_Iter>::iterator_category
5524    __iterator_category(const _Iter&)
5525    { return typename iterator_traits<_Iter>::iterator_category(); }
5526
5527
5528
5529
5530  template<typename _Iter>
5531    using __iterator_category_t
5532      = typename iterator_traits<_Iter>::iterator_category;
5533
5534  template<typename _InIter>
5535    using _RequireInputIter =
5536      __enable_if_t<is_convertible<__iterator_category_t<_InIter>,
5537       input_iterator_tag>::value>;
5538
5539  template<typename _It,
5540    typename _Cat = __iterator_category_t<_It>>
5541    struct __is_random_access_iter
5542      : is_base_of<random_access_iterator_tag, _Cat>
5543    {
5544      typedef is_base_of<random_access_iterator_tag, _Cat> _Base;
5545      enum { __value = _Base::value };
5546    };
5547
5548
5549
5550
5551
5552
5553
5554
5555}
5556# 66 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
5557# 1 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_funcs.h" 1 3
5558# 62 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_funcs.h" 3
5559       
5560# 63 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_funcs.h" 3
5561
5562# 1 "/opt/local/include/gcc10/c++/bits/concept_check.h" 1 3
5563# 33 "/opt/local/include/gcc10/c++/bits/concept_check.h" 3
5564       
5565# 34 "/opt/local/include/gcc10/c++/bits/concept_check.h" 3
5566# 65 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_funcs.h" 2 3
5567# 1 "/opt/local/include/gcc10/c++/debug/assertions.h" 1 3
5568# 66 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_funcs.h" 2 3
5569
5570namespace std __attribute__ ((__visibility__ ("default")))
5571{
5572
5573
5574
5575
5576  template <typename> struct _List_iterator;
5577  template <typename> struct _List_const_iterator;
5578
5579
5580  template<typename _InputIterator>
5581    inline constexpr
5582    typename iterator_traits<_InputIterator>::difference_type
5583    __distance(_InputIterator __first, _InputIterator __last,
5584               input_iterator_tag)
5585    {
5586
5587     
5588
5589      typename iterator_traits<_InputIterator>::difference_type __n = 0;
5590      while (__first != __last)
5591 {
5592   ++__first;
5593   ++__n;
5594 }
5595      return __n;
5596    }
5597
5598  template<typename _RandomAccessIterator>
5599    inline constexpr
5600    typename iterator_traits<_RandomAccessIterator>::difference_type
5601    __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
5602               random_access_iterator_tag)
5603    {
5604
5605     
5606
5607      return __last - __first;
5608    }
5609
5610
5611
5612  template<typename _Tp>
5613    ptrdiff_t
5614    __distance(std::_List_iterator<_Tp>,
5615        std::_List_iterator<_Tp>,
5616        input_iterator_tag);
5617
5618  template<typename _Tp>
5619    ptrdiff_t
5620    __distance(std::_List_const_iterator<_Tp>,
5621        std::_List_const_iterator<_Tp>,
5622        input_iterator_tag);
5623# 135 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_funcs.h" 3
5624  template<typename _InputIterator>
5625    inline
5626    typename iterator_traits<_InputIterator>::difference_type
5627    distance(_InputIterator __first, _InputIterator __last)
5628    {
5629
5630      return std::__distance(__first, __last,
5631        std::__iterator_category(__first));
5632    }
5633
5634  template<typename _InputIterator, typename _Distance>
5635    inline constexpr void
5636    __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
5637    {
5638
5639     
5640      ;
5641      while (__n--)
5642 ++__i;
5643    }
5644
5645  template<typename _BidirectionalIterator, typename _Distance>
5646    inline constexpr void
5647    __advance(_BidirectionalIterator& __i, _Distance __n,
5648       bidirectional_iterator_tag)
5649    {
5650
5651     
5652
5653      if (__n > 0)
5654        while (__n--)
5655   ++__i;
5656      else
5657        while (__n++)
5658   --__i;
5659    }
5660
5661  template<typename _RandomAccessIterator, typename _Distance>
5662    inline constexpr void
5663    __advance(_RandomAccessIterator& __i, _Distance __n,
5664              random_access_iterator_tag)
5665    {
5666
5667     
5668
5669      if (__builtin_constant_p(__n) && __n == 1)
5670 ++__i;
5671      else if (__builtin_constant_p(__n) && __n == -1)
5672 --__i;
5673      else
5674 __i += __n;
5675    }
5676# 200 "/opt/local/include/gcc10/c++/bits/stl_iterator_base_funcs.h" 3
5677  template<typename _InputIterator, typename _Distance>
5678    inline void
5679    advance(_InputIterator& __i, _Distance __n)
5680    {
5681
5682      typename iterator_traits<_InputIterator>::difference_type __d = __n;
5683      std::__advance(__i, __d, std::__iterator_category(__i));
5684    }
5685
5686
5687
5688  template<typename _InputIterator>
5689    inline _InputIterator
5690    next(_InputIterator __x, typename
5691  iterator_traits<_InputIterator>::difference_type __n = 1)
5692    {
5693
5694     
5695      std::advance(__x, __n);
5696      return __x;
5697    }
5698
5699  template<typename _BidirectionalIterator>
5700    inline _BidirectionalIterator
5701    prev(_BidirectionalIterator __x, typename
5702  iterator_traits<_BidirectionalIterator>::difference_type __n = 1)
5703    {
5704
5705     
5706
5707      std::advance(__x, -__n);
5708      return __x;
5709    }
5710
5711
5712
5713
5714}
5715# 67 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
5716# 1 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 1 3
5717# 66 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
5718# 1 "/opt/local/include/gcc10/c++/bits/ptr_traits.h" 1 3
5719# 42 "/opt/local/include/gcc10/c++/bits/ptr_traits.h" 3
5720namespace std __attribute__ ((__visibility__ ("default")))
5721{
5722
5723
5724  class __undefined;
5725
5726
5727  template<typename _Tp>
5728    struct __get_first_arg
5729    { using type = __undefined; };
5730
5731  template<template<typename, typename...> class _Template, typename _Tp,
5732           typename... _Types>
5733    struct __get_first_arg<_Template<_Tp, _Types...>>
5734    { using type = _Tp; };
5735
5736  template<typename _Tp>
5737    using __get_first_arg_t = typename __get_first_arg<_Tp>::type;
5738
5739
5740  template<typename _Tp, typename _Up>
5741    struct __replace_first_arg
5742    { };
5743
5744  template<template<typename, typename...> class _Template, typename _Up,
5745           typename _Tp, typename... _Types>
5746    struct __replace_first_arg<_Template<_Tp, _Types...>, _Up>
5747    { using type = _Template<_Up, _Types...>; };
5748
5749  template<typename _Tp, typename _Up>
5750    using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type;
5751
5752  template<typename _Tp>
5753    using __make_not_void
5754      = typename conditional<is_void<_Tp>::value, __undefined, _Tp>::type;
5755
5756
5757
5758
5759
5760  template<typename _Ptr>
5761    struct pointer_traits
5762    {
5763    private:
5764      template<typename _Tp>
5765 using __element_type = typename _Tp::element_type;
5766
5767      template<typename _Tp>
5768 using __difference_type = typename _Tp::difference_type;
5769
5770      template<typename _Tp, typename _Up, typename = void>
5771 struct __rebind : __replace_first_arg<_Tp, _Up> { };
5772
5773      template<typename _Tp, typename _Up>
5774 struct __rebind<_Tp, _Up, __void_t<typename _Tp::template rebind<_Up>>>
5775 { using type = typename _Tp::template rebind<_Up>; };
5776
5777    public:
5778
5779      using pointer = _Ptr;
5780
5781
5782      using element_type
5783 = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>;
5784
5785
5786      using difference_type
5787 = __detected_or_t<ptrdiff_t, __difference_type, _Ptr>;
5788
5789
5790      template<typename _Up>
5791        using rebind = typename __rebind<_Ptr, _Up>::type;
5792
5793      static _Ptr
5794      pointer_to(__make_not_void<element_type>& __e)
5795      { return _Ptr::pointer_to(__e); }
5796
5797      static_assert(!is_same<element_type, __undefined>::value,
5798   "pointer type defines element_type or is like SomePointer<T, Args>");
5799    };
5800
5801
5802
5803
5804
5805  template<typename _Tp>
5806    struct pointer_traits<_Tp*>
5807    {
5808
5809      typedef _Tp* pointer;
5810
5811      typedef _Tp element_type;
5812
5813      typedef ptrdiff_t difference_type;
5814
5815      template<typename _Up>
5816        using rebind = _Up*;
5817
5818
5819
5820
5821
5822
5823      static pointer
5824      pointer_to(__make_not_void<element_type>& __r) noexcept
5825      { return std::addressof(__r); }
5826    };
5827
5828
5829  template<typename _Ptr, typename _Tp>
5830    using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>;
5831
5832  template<typename _Tp>
5833    constexpr _Tp*
5834    __to_address(_Tp* __ptr) noexcept
5835    {
5836      static_assert(!std::is_function<_Tp>::value, "not a function pointer");
5837      return __ptr;
5838    }
5839
5840
5841  template<typename _Ptr>
5842    constexpr typename std::pointer_traits<_Ptr>::element_type*
5843    __to_address(const _Ptr& __ptr)
5844    { return std::__to_address(__ptr.operator->()); }
5845# 210 "/opt/local/include/gcc10/c++/bits/ptr_traits.h" 3
5846
5847}
5848# 67 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 2 3
5849# 85 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
5850namespace std __attribute__ ((__visibility__ ("default")))
5851{
5852
5853# 124 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
5854  template<typename _Iterator>
5855    class reverse_iterator
5856    : public iterator<typename iterator_traits<_Iterator>::iterator_category,
5857        typename iterator_traits<_Iterator>::value_type,
5858        typename iterator_traits<_Iterator>::difference_type,
5859        typename iterator_traits<_Iterator>::pointer,
5860                      typename iterator_traits<_Iterator>::reference>
5861    {
5862    protected:
5863      _Iterator current;
5864
5865      typedef iterator_traits<_Iterator> __traits_type;
5866
5867    public:
5868      typedef _Iterator iterator_type;
5869      typedef typename __traits_type::difference_type difference_type;
5870      typedef typename __traits_type::pointer pointer;
5871      typedef typename __traits_type::reference reference;
5872# 160 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
5873     
5874      reverse_iterator() : current() { }
5875
5876
5877
5878
5879      explicit
5880      reverse_iterator(iterator_type __x) : current(__x) { }
5881
5882
5883
5884
5885     
5886      reverse_iterator(const reverse_iterator& __x)
5887      : current(__x.current) { }
5888
5889
5890      reverse_iterator& operator=(const reverse_iterator&) = default;
5891
5892
5893
5894
5895
5896
5897      template<typename _Iter>
5898
5899        reverse_iterator(const reverse_iterator<_Iter>& __x)
5900 : current(__x.base()) { }
5901
5902
5903
5904
5905      iterator_type
5906      base() const
5907      { return current; }
5908# 206 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
5909      reference
5910      operator*() const
5911      {
5912 _Iterator __tmp = current;
5913 return *--__tmp;
5914      }
5915
5916
5917
5918
5919
5920
5921      pointer
5922      operator->() const
5923
5924
5925
5926
5927      {
5928
5929
5930 _Iterator __tmp = current;
5931 --__tmp;
5932 return _S_to_pointer(__tmp);
5933      }
5934
5935
5936
5937
5938
5939
5940      reverse_iterator&
5941      operator++()
5942      {
5943 --current;
5944 return *this;
5945      }
5946
5947
5948
5949
5950
5951
5952      reverse_iterator
5953      operator++(int)
5954      {
5955 reverse_iterator __tmp = *this;
5956 --current;
5957 return __tmp;
5958      }
5959
5960
5961
5962
5963
5964
5965      reverse_iterator&
5966      operator--()
5967      {
5968 ++current;
5969 return *this;
5970      }
5971
5972
5973
5974
5975
5976
5977      reverse_iterator
5978      operator--(int)
5979      {
5980 reverse_iterator __tmp = *this;
5981 ++current;
5982 return __tmp;
5983      }
5984
5985
5986
5987
5988
5989
5990      reverse_iterator
5991      operator+(difference_type __n) const
5992      { return reverse_iterator(current - __n); }
5993
5994
5995
5996
5997
5998
5999
6000      reverse_iterator&
6001      operator+=(difference_type __n)
6002      {
6003 current -= __n;
6004 return *this;
6005      }
6006
6007
6008
6009
6010
6011
6012      reverse_iterator
6013      operator-(difference_type __n) const
6014      { return reverse_iterator(current + __n); }
6015
6016
6017
6018
6019
6020
6021
6022      reverse_iterator&
6023      operator-=(difference_type __n)
6024      {
6025 current += __n;
6026 return *this;
6027      }
6028
6029
6030
6031
6032
6033
6034      reference
6035      operator[](difference_type __n) const
6036      { return *(*this + __n); }
6037# 360 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6038    private:
6039      template<typename _Tp>
6040 static _Tp*
6041 _S_to_pointer(_Tp* __p)
6042        { return __p; }
6043
6044      template<typename _Tp>
6045 static pointer
6046 _S_to_pointer(_Tp __t)
6047        { return __t.operator->(); }
6048    };
6049# 383 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6050  template<typename _Iterator>
6051    inline bool
6052    operator==(const reverse_iterator<_Iterator>& __x,
6053        const reverse_iterator<_Iterator>& __y)
6054    { return __x.base() == __y.base(); }
6055
6056  template<typename _Iterator>
6057    inline bool
6058    operator<(const reverse_iterator<_Iterator>& __x,
6059       const reverse_iterator<_Iterator>& __y)
6060    { return __y.base() < __x.base(); }
6061
6062  template<typename _Iterator>
6063    inline bool
6064    operator!=(const reverse_iterator<_Iterator>& __x,
6065        const reverse_iterator<_Iterator>& __y)
6066    { return !(__x == __y); }
6067
6068  template<typename _Iterator>
6069    inline bool
6070    operator>(const reverse_iterator<_Iterator>& __x,
6071       const reverse_iterator<_Iterator>& __y)
6072    { return __y < __x; }
6073
6074  template<typename _Iterator>
6075    inline bool
6076    operator<=(const reverse_iterator<_Iterator>& __x,
6077        const reverse_iterator<_Iterator>& __y)
6078    { return !(__y < __x); }
6079
6080  template<typename _Iterator>
6081    inline bool
6082    operator>=(const reverse_iterator<_Iterator>& __x,
6083        const reverse_iterator<_Iterator>& __y)
6084    { return !(__x < __y); }
6085
6086
6087
6088  template<typename _IteratorL, typename _IteratorR>
6089    inline bool
6090    operator==(const reverse_iterator<_IteratorL>& __x,
6091        const reverse_iterator<_IteratorR>& __y)
6092    { return __x.base() == __y.base(); }
6093
6094  template<typename _IteratorL, typename _IteratorR>
6095    inline bool
6096    operator<(const reverse_iterator<_IteratorL>& __x,
6097       const reverse_iterator<_IteratorR>& __y)
6098    { return __y.base() < __x.base(); }
6099
6100  template<typename _IteratorL, typename _IteratorR>
6101    inline bool
6102    operator!=(const reverse_iterator<_IteratorL>& __x,
6103        const reverse_iterator<_IteratorR>& __y)
6104    { return !(__x == __y); }
6105
6106  template<typename _IteratorL, typename _IteratorR>
6107    inline bool
6108    operator>(const reverse_iterator<_IteratorL>& __x,
6109       const reverse_iterator<_IteratorR>& __y)
6110    { return __y < __x; }
6111
6112  template<typename _IteratorL, typename _IteratorR>
6113    inline bool
6114    operator<=(const reverse_iterator<_IteratorL>& __x,
6115        const reverse_iterator<_IteratorR>& __y)
6116    { return !(__y < __x); }
6117
6118  template<typename _IteratorL, typename _IteratorR>
6119    inline bool
6120    operator>=(const reverse_iterator<_IteratorL>& __x,
6121        const reverse_iterator<_IteratorR>& __y)
6122    { return !(__x < __y); }
6123# 523 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6124  template<typename _IteratorL, typename _IteratorR>
6125    inline auto
6126    operator-(const reverse_iterator<_IteratorL>& __x,
6127       const reverse_iterator<_IteratorR>& __y)
6128    -> decltype(__y.base() - __x.base())
6129    { return __y.base() - __x.base(); }
6130
6131
6132  template<typename _Iterator>
6133    inline reverse_iterator<_Iterator>
6134    operator+(typename reverse_iterator<_Iterator>::difference_type __n,
6135       const reverse_iterator<_Iterator>& __x)
6136    { return reverse_iterator<_Iterator>(__x.base() - __n); }
6137
6138
6139
6140  template<typename _Iterator>
6141    inline reverse_iterator<_Iterator>
6142    __make_reverse_iterator(_Iterator __i)
6143    { return reverse_iterator<_Iterator>(__i); }
6144
6145
6146
6147
6148
6149
6150
6151  template<typename _Iterator>
6152    inline reverse_iterator<_Iterator>
6153    make_reverse_iterator(_Iterator __i)
6154    { return reverse_iterator<_Iterator>(__i); }
6155# 564 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6156  template<typename _Iterator>
6157   
6158    auto
6159    __niter_base(reverse_iterator<_Iterator> __it)
6160    -> decltype(__make_reverse_iterator(__niter_base(__it.base())))
6161    { return __make_reverse_iterator(__niter_base(__it.base())); }
6162
6163  template<typename _Iterator>
6164    struct __is_move_iterator<reverse_iterator<_Iterator> >
6165      : __is_move_iterator<_Iterator>
6166    { };
6167
6168  template<typename _Iterator>
6169   
6170    auto
6171    __miter_base(reverse_iterator<_Iterator> __it)
6172    -> decltype(__make_reverse_iterator(__miter_base(__it.base())))
6173    { return __make_reverse_iterator(__miter_base(__it.base())); }
6174# 595 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6175  template<typename _Container>
6176    class back_insert_iterator
6177    : public iterator<output_iterator_tag, void, void, void, void>
6178    {
6179    protected:
6180      _Container* container;
6181
6182    public:
6183
6184      typedef _Container container_type;
6185
6186
6187
6188
6189
6190
6191
6192      explicit
6193      back_insert_iterator(_Container& __x)
6194      : container(std::__addressof(__x)) { }
6195# 635 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6196     
6197      back_insert_iterator&
6198      operator=(const typename _Container::value_type& __value)
6199      {
6200 container->push_back(__value);
6201 return *this;
6202      }
6203
6204     
6205      back_insert_iterator&
6206      operator=(typename _Container::value_type&& __value)
6207      {
6208 container->push_back(std::move(__value));
6209 return *this;
6210      }
6211
6212
6213
6214     
6215      back_insert_iterator&
6216      operator*()
6217      { return *this; }
6218
6219
6220     
6221      back_insert_iterator&
6222      operator++()
6223      { return *this; }
6224
6225
6226     
6227      back_insert_iterator
6228      operator++(int)
6229      { return *this; }
6230    };
6231# 682 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6232  template<typename _Container>
6233   
6234    inline back_insert_iterator<_Container>
6235    back_inserter(_Container& __x)
6236    { return back_insert_iterator<_Container>(__x); }
6237# 698 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6238  template<typename _Container>
6239    class front_insert_iterator
6240    : public iterator<output_iterator_tag, void, void, void, void>
6241    {
6242    protected:
6243      _Container* container;
6244
6245    public:
6246
6247      typedef _Container container_type;
6248
6249
6250
6251
6252
6253
6254
6255      explicit
6256      front_insert_iterator(_Container& __x)
6257      : container(std::__addressof(__x)) { }
6258# 738 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6259     
6260      front_insert_iterator&
6261      operator=(const typename _Container::value_type& __value)
6262      {
6263 container->push_front(__value);
6264 return *this;
6265      }
6266
6267     
6268      front_insert_iterator&
6269      operator=(typename _Container::value_type&& __value)
6270      {
6271 container->push_front(std::move(__value));
6272 return *this;
6273      }
6274
6275
6276
6277     
6278      front_insert_iterator&
6279      operator*()
6280      { return *this; }
6281
6282
6283     
6284      front_insert_iterator&
6285      operator++()
6286      { return *this; }
6287
6288
6289     
6290      front_insert_iterator
6291      operator++(int)
6292      { return *this; }
6293    };
6294# 785 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6295  template<typename _Container>
6296   
6297    inline front_insert_iterator<_Container>
6298    front_inserter(_Container& __x)
6299    { return front_insert_iterator<_Container>(__x); }
6300# 805 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6301  template<typename _Container>
6302    class insert_iterator
6303    : public iterator<output_iterator_tag, void, void, void, void>
6304    {
6305
6306
6307
6308
6309
6310
6311
6312      typedef typename _Container::iterator _Iter;
6313
6314    protected:
6315      _Container* container;
6316      _Iter iter;
6317
6318
6319    public:
6320
6321      typedef _Container container_type;
6322# 837 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6323     
6324      insert_iterator(_Container& __x, _Iter __i)
6325      : container(std::__addressof(__x)), iter(__i) {}
6326# 873 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6327     
6328      insert_iterator&
6329      operator=(const typename _Container::value_type& __value)
6330      {
6331 iter = container->insert(iter, __value);
6332 ++iter;
6333 return *this;
6334      }
6335
6336     
6337      insert_iterator&
6338      operator=(typename _Container::value_type&& __value)
6339      {
6340 iter = container->insert(iter, std::move(__value));
6341 ++iter;
6342 return *this;
6343      }
6344
6345
6346
6347     
6348      insert_iterator&
6349      operator*()
6350      { return *this; }
6351
6352
6353     
6354      insert_iterator&
6355      operator++()
6356      { return *this; }
6357
6358
6359     
6360      insert_iterator&
6361      operator++(int)
6362      { return *this; }
6363    };
6364# 929 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6365  template<typename _Container>
6366    inline insert_iterator<_Container>
6367    inserter(_Container& __x, typename _Container::iterator __i)
6368    { return insert_iterator<_Container>(__x, __i); }
6369
6370
6371
6372
6373
6374}
6375
6376namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
6377{
6378
6379# 951 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6380  template<typename _Iterator, typename _Container>
6381    class __normal_iterator
6382    {
6383    protected:
6384      _Iterator _M_current;
6385
6386      typedef std::iterator_traits<_Iterator> __traits_type;
6387
6388    public:
6389      typedef _Iterator iterator_type;
6390      typedef typename __traits_type::iterator_category iterator_category;
6391      typedef typename __traits_type::value_type value_type;
6392      typedef typename __traits_type::difference_type difference_type;
6393      typedef typename __traits_type::reference reference;
6394      typedef typename __traits_type::pointer pointer;
6395
6396
6397
6398
6399
6400      constexpr __normal_iterator() noexcept
6401      : _M_current(_Iterator()) { }
6402
6403      explicit
6404      __normal_iterator(const _Iterator& __i) noexcept
6405      : _M_current(__i) { }
6406
6407
6408      template<typename _Iter>
6409       
6410        __normal_iterator(const __normal_iterator<_Iter,
6411     typename __enable_if<
6412              (std::__are_same<_Iter, typename _Container::pointer>::__value),
6413        _Container>::__type>& __i) noexcept
6414        : _M_current(__i.base()) { }
6415
6416
6417     
6418      reference
6419      operator*() const noexcept
6420      { return *_M_current; }
6421
6422     
6423      pointer
6424      operator->() const noexcept
6425      { return _M_current; }
6426
6427     
6428      __normal_iterator&
6429      operator++() noexcept
6430      {
6431 ++_M_current;
6432 return *this;
6433      }
6434
6435     
6436      __normal_iterator
6437      operator++(int) noexcept
6438      { return __normal_iterator(_M_current++); }
6439
6440
6441     
6442      __normal_iterator&
6443      operator--() noexcept
6444      {
6445 --_M_current;
6446 return *this;
6447      }
6448
6449     
6450      __normal_iterator
6451      operator--(int) noexcept
6452      { return __normal_iterator(_M_current--); }
6453
6454
6455     
6456      reference
6457      operator[](difference_type __n) const noexcept
6458      { return _M_current[__n]; }
6459
6460     
6461      __normal_iterator&
6462      operator+=(difference_type __n) noexcept
6463      { _M_current += __n; return *this; }
6464
6465     
6466      __normal_iterator
6467      operator+(difference_type __n) const noexcept
6468      { return __normal_iterator(_M_current + __n); }
6469
6470     
6471      __normal_iterator&
6472      operator-=(difference_type __n) noexcept
6473      { _M_current -= __n; return *this; }
6474
6475     
6476      __normal_iterator
6477      operator-(difference_type __n) const noexcept
6478      { return __normal_iterator(_M_current - __n); }
6479
6480     
6481      const _Iterator&
6482      base() const noexcept
6483      { return _M_current; }
6484    };
6485# 1083 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6486  template<typename _IteratorL, typename _IteratorR, typename _Container>
6487   
6488    inline bool
6489    operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
6490        const __normal_iterator<_IteratorR, _Container>& __rhs)
6491    noexcept
6492    { return __lhs.base() == __rhs.base(); }
6493
6494  template<typename _Iterator, typename _Container>
6495   
6496    inline bool
6497    operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
6498        const __normal_iterator<_Iterator, _Container>& __rhs)
6499    noexcept
6500    { return __lhs.base() == __rhs.base(); }
6501
6502  template<typename _IteratorL, typename _IteratorR, typename _Container>
6503   
6504    inline bool
6505    operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
6506        const __normal_iterator<_IteratorR, _Container>& __rhs)
6507    noexcept
6508    { return __lhs.base() != __rhs.base(); }
6509
6510  template<typename _Iterator, typename _Container>
6511   
6512    inline bool
6513    operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
6514        const __normal_iterator<_Iterator, _Container>& __rhs)
6515    noexcept
6516    { return __lhs.base() != __rhs.base(); }
6517
6518
6519  template<typename _IteratorL, typename _IteratorR, typename _Container>
6520    inline bool
6521    operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
6522       const __normal_iterator<_IteratorR, _Container>& __rhs)
6523    noexcept
6524    { return __lhs.base() < __rhs.base(); }
6525
6526  template<typename _Iterator, typename _Container>
6527   
6528    inline bool
6529    operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
6530       const __normal_iterator<_Iterator, _Container>& __rhs)
6531    noexcept
6532    { return __lhs.base() < __rhs.base(); }
6533
6534  template<typename _IteratorL, typename _IteratorR, typename _Container>
6535    inline bool
6536    operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
6537       const __normal_iterator<_IteratorR, _Container>& __rhs)
6538    noexcept
6539    { return __lhs.base() > __rhs.base(); }
6540
6541  template<typename _Iterator, typename _Container>
6542   
6543    inline bool
6544    operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
6545       const __normal_iterator<_Iterator, _Container>& __rhs)
6546    noexcept
6547    { return __lhs.base() > __rhs.base(); }
6548
6549  template<typename _IteratorL, typename _IteratorR, typename _Container>
6550    inline bool
6551    operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
6552        const __normal_iterator<_IteratorR, _Container>& __rhs)
6553    noexcept
6554    { return __lhs.base() <= __rhs.base(); }
6555
6556  template<typename _Iterator, typename _Container>
6557   
6558    inline bool
6559    operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
6560        const __normal_iterator<_Iterator, _Container>& __rhs)
6561    noexcept
6562    { return __lhs.base() <= __rhs.base(); }
6563
6564  template<typename _IteratorL, typename _IteratorR, typename _Container>
6565    inline bool
6566    operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
6567        const __normal_iterator<_IteratorR, _Container>& __rhs)
6568    noexcept
6569    { return __lhs.base() >= __rhs.base(); }
6570
6571  template<typename _Iterator, typename _Container>
6572   
6573    inline bool
6574    operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
6575        const __normal_iterator<_Iterator, _Container>& __rhs)
6576    noexcept
6577    { return __lhs.base() >= __rhs.base(); }
6578
6579
6580
6581
6582
6583
6584  template<typename _IteratorL, typename _IteratorR, typename _Container>
6585
6586
6587   
6588    inline auto
6589    operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
6590       const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept
6591    -> decltype(__lhs.base() - __rhs.base())
6592
6593
6594
6595
6596
6597    { return __lhs.base() - __rhs.base(); }
6598
6599  template<typename _Iterator, typename _Container>
6600   
6601    inline typename __normal_iterator<_Iterator, _Container>::difference_type
6602    operator-(const __normal_iterator<_Iterator, _Container>& __lhs,
6603       const __normal_iterator<_Iterator, _Container>& __rhs)
6604    noexcept
6605    { return __lhs.base() - __rhs.base(); }
6606
6607  template<typename _Iterator, typename _Container>
6608   
6609    inline __normal_iterator<_Iterator, _Container>
6610    operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
6611       __n, const __normal_iterator<_Iterator, _Container>& __i)
6612    noexcept
6613    { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
6614
6615
6616}
6617
6618namespace std __attribute__ ((__visibility__ ("default")))
6619{
6620
6621
6622  template<typename _Iterator, typename _Container>
6623   
6624    _Iterator
6625    __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it)
6626    noexcept(std::is_nothrow_copy_constructible<_Iterator>::value)
6627    { return __it.base(); }
6628# 1282 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6629  template<typename _Iterator>
6630    class move_iterator
6631    {
6632      _Iterator _M_current;
6633
6634      using __traits_type = iterator_traits<_Iterator>;
6635
6636
6637
6638      using __base_ref = typename __traits_type::reference;
6639
6640
6641    public:
6642      using iterator_type = _Iterator;
6643# 1306 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6644      typedef typename __traits_type::iterator_category iterator_category;
6645      typedef typename __traits_type::value_type value_type;
6646      typedef typename __traits_type::difference_type difference_type;
6647
6648      typedef _Iterator pointer;
6649
6650
6651      typedef typename conditional<is_reference<__base_ref>::value,
6652    typename remove_reference<__base_ref>::type&&,
6653    __base_ref>::type reference;
6654
6655
6656     
6657      move_iterator()
6658      : _M_current() { }
6659
6660      explicit
6661      move_iterator(iterator_type __i)
6662      : _M_current(std::move(__i)) { }
6663
6664      template<typename _Iter>
6665
6666 move_iterator(const move_iterator<_Iter>& __i)
6667 : _M_current(__i.base()) { }
6668
6669      template<typename _Iter>
6670
6671 move_iterator& operator=(const move_iterator<_Iter>& __i)
6672 {
6673   _M_current = __i.base();
6674   return *this;
6675 }
6676
6677
6678      iterator_type
6679      base() const
6680      { return _M_current; }
6681# 1356 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6682      reference
6683      operator*() const
6684
6685
6686
6687      { return static_cast<reference>(*_M_current); }
6688
6689
6690      pointer
6691      operator->() const
6692      { return _M_current; }
6693
6694      move_iterator&
6695      operator++()
6696      {
6697 ++_M_current;
6698 return *this;
6699      }
6700
6701      move_iterator
6702      operator++(int)
6703      {
6704 move_iterator __tmp = *this;
6705 ++_M_current;
6706 return __tmp;
6707      }
6708
6709
6710
6711
6712
6713
6714
6715      move_iterator&
6716      operator--()
6717      {
6718 --_M_current;
6719 return *this;
6720      }
6721
6722      move_iterator
6723      operator--(int)
6724      {
6725 move_iterator __tmp = *this;
6726 --_M_current;
6727 return __tmp;
6728      }
6729
6730      move_iterator
6731      operator+(difference_type __n) const
6732      { return move_iterator(_M_current + __n); }
6733
6734      move_iterator&
6735      operator+=(difference_type __n)
6736      {
6737 _M_current += __n;
6738 return *this;
6739      }
6740
6741      move_iterator
6742      operator-(difference_type __n) const
6743      { return move_iterator(_M_current - __n); }
6744
6745      move_iterator&
6746      operator-=(difference_type __n)
6747      {
6748 _M_current -= __n;
6749 return *this;
6750      }
6751
6752      reference
6753      operator[](difference_type __n) const
6754
6755
6756
6757      { return std::move(_M_current[__n]); }
6758# 1461 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6759    };
6760
6761  template<typename _IteratorL, typename _IteratorR>
6762    inline bool
6763    operator==(const move_iterator<_IteratorL>& __x,
6764        const move_iterator<_IteratorR>& __y)
6765
6766
6767
6768    { return __x.base() == __y.base(); }
6769# 1480 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6770  template<typename _IteratorL, typename _IteratorR>
6771    inline bool
6772    operator!=(const move_iterator<_IteratorL>& __x,
6773        const move_iterator<_IteratorR>& __y)
6774    { return !(__x == __y); }
6775
6776
6777  template<typename _IteratorL, typename _IteratorR>
6778    inline bool
6779    operator<(const move_iterator<_IteratorL>& __x,
6780       const move_iterator<_IteratorR>& __y)
6781
6782
6783
6784    { return __x.base() < __y.base(); }
6785
6786  template<typename _IteratorL, typename _IteratorR>
6787    inline bool
6788    operator<=(const move_iterator<_IteratorL>& __x,
6789        const move_iterator<_IteratorR>& __y)
6790
6791
6792
6793    { return !(__y < __x); }
6794
6795  template<typename _IteratorL, typename _IteratorR>
6796    inline bool
6797    operator>(const move_iterator<_IteratorL>& __x,
6798       const move_iterator<_IteratorR>& __y)
6799
6800
6801
6802    { return __y < __x; }
6803
6804  template<typename _IteratorL, typename _IteratorR>
6805    inline bool
6806    operator>=(const move_iterator<_IteratorL>& __x,
6807        const move_iterator<_IteratorR>& __y)
6808
6809
6810
6811    { return !(__x < __y); }
6812# 1531 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6813  template<typename _Iterator>
6814    inline bool
6815    operator==(const move_iterator<_Iterator>& __x,
6816        const move_iterator<_Iterator>& __y)
6817    { return __x.base() == __y.base(); }
6818
6819  template<typename _Iterator>
6820    inline bool
6821    operator!=(const move_iterator<_Iterator>& __x,
6822        const move_iterator<_Iterator>& __y)
6823    { return !(__x == __y); }
6824
6825  template<typename _Iterator>
6826    inline bool
6827    operator<(const move_iterator<_Iterator>& __x,
6828       const move_iterator<_Iterator>& __y)
6829    { return __x.base() < __y.base(); }
6830
6831  template<typename _Iterator>
6832    inline bool
6833    operator<=(const move_iterator<_Iterator>& __x,
6834        const move_iterator<_Iterator>& __y)
6835    { return !(__y < __x); }
6836
6837  template<typename _Iterator>
6838    inline bool
6839    operator>(const move_iterator<_Iterator>& __x,
6840       const move_iterator<_Iterator>& __y)
6841    { return __y < __x; }
6842
6843  template<typename _Iterator>
6844    inline bool
6845    operator>=(const move_iterator<_Iterator>& __x,
6846        const move_iterator<_Iterator>& __y)
6847    { return !(__x < __y); }
6848
6849
6850
6851  template<typename _IteratorL, typename _IteratorR>
6852    inline auto
6853    operator-(const move_iterator<_IteratorL>& __x,
6854       const move_iterator<_IteratorR>& __y)
6855    -> decltype(__x.base() - __y.base())
6856    { return __x.base() - __y.base(); }
6857
6858  template<typename _Iterator>
6859    inline move_iterator<_Iterator>
6860    operator+(typename move_iterator<_Iterator>::difference_type __n,
6861       const move_iterator<_Iterator>& __x)
6862    { return __x + __n; }
6863
6864  template<typename _Iterator>
6865    inline move_iterator<_Iterator>
6866    make_move_iterator(_Iterator __i)
6867    { return move_iterator<_Iterator>(std::move(__i)); }
6868
6869  template<typename _Iterator, typename _ReturnType
6870    = typename conditional<__move_if_noexcept_cond
6871      <typename iterator_traits<_Iterator>::value_type>::value,
6872                _Iterator, move_iterator<_Iterator>>::type>
6873    inline _ReturnType
6874    __make_move_if_noexcept_iterator(_Iterator __i)
6875    { return _ReturnType(__i); }
6876
6877
6878
6879  template<typename _Tp, typename _ReturnType
6880    = typename conditional<__move_if_noexcept_cond<_Tp>::value,
6881      const _Tp*, move_iterator<_Tp*>>::type>
6882    inline _ReturnType
6883    __make_move_if_noexcept_iterator(_Tp* __i)
6884    { return _ReturnType(__i); }
6885# 2188 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6886  template<typename _Iterator>
6887    auto
6888    __niter_base(move_iterator<_Iterator> __it)
6889    -> decltype(make_move_iterator(__niter_base(__it.base())))
6890    { return make_move_iterator(__niter_base(__it.base())); }
6891
6892  template<typename _Iterator>
6893    struct __is_move_iterator<move_iterator<_Iterator> >
6894    {
6895      enum { __value = 1 };
6896      typedef __true_type __type;
6897    };
6898
6899  template<typename _Iterator>
6900    auto
6901    __miter_base(move_iterator<_Iterator> __it)
6902    -> decltype(__miter_base(__it.base()))
6903    { return __miter_base(__it.base()); }
6904# 2235 "/opt/local/include/gcc10/c++/bits/stl_iterator.h" 3
6905
6906}
6907# 68 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
6908
6909# 1 "/opt/local/include/gcc10/c++/debug/debug.h" 1 3
6910# 48 "/opt/local/include/gcc10/c++/debug/debug.h" 3
6911namespace std
6912{
6913  namespace __debug { }
6914}
6915
6916
6917
6918
6919namespace __gnu_debug
6920{
6921  using namespace std::__debug;
6922
6923  template<typename _Ite, typename _Seq, typename _Cat>
6924    struct _Safe_iterator;
6925}
6926# 70 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
6927
6928# 1 "/opt/local/include/gcc10/c++/bits/predefined_ops.h" 1 3
6929# 33 "/opt/local/include/gcc10/c++/bits/predefined_ops.h" 3
6930namespace __gnu_cxx
6931{
6932namespace __ops
6933{
6934  struct _Iter_less_iter
6935  {
6936    template<typename _Iterator1, typename _Iterator2>
6937      constexpr
6938      bool
6939      operator()(_Iterator1 __it1, _Iterator2 __it2) const
6940      { return *__it1 < *__it2; }
6941  };
6942
6943  constexpr
6944  inline _Iter_less_iter
6945  __iter_less_iter()
6946  { return _Iter_less_iter(); }
6947
6948  struct _Iter_less_val
6949  {
6950
6951    constexpr _Iter_less_val() = default;
6952
6953
6954
6955
6956   
6957    explicit
6958    _Iter_less_val(_Iter_less_iter) { }
6959
6960    template<typename _Iterator, typename _Value>
6961     
6962      bool
6963      operator()(_Iterator __it, _Value& __val) const
6964      { return *__it < __val; }
6965  };
6966
6967 
6968  inline _Iter_less_val
6969  __iter_less_val()
6970  { return _Iter_less_val(); }
6971
6972 
6973  inline _Iter_less_val
6974  __iter_comp_val(_Iter_less_iter)
6975  { return _Iter_less_val(); }
6976
6977  struct _Val_less_iter
6978  {
6979
6980    constexpr _Val_less_iter() = default;
6981
6982
6983
6984
6985   
6986    explicit
6987    _Val_less_iter(_Iter_less_iter) { }
6988
6989    template<typename _Value, typename _Iterator>
6990     
6991      bool
6992      operator()(_Value& __val, _Iterator __it) const
6993      { return __val < *__it; }
6994  };
6995
6996 
6997  inline _Val_less_iter
6998  __val_less_iter()
6999  { return _Val_less_iter(); }
7000
7001 
7002  inline _Val_less_iter
7003  __val_comp_iter(_Iter_less_iter)
7004  { return _Val_less_iter(); }
7005
7006  struct _Iter_equal_to_iter
7007  {
7008    template<typename _Iterator1, typename _Iterator2>
7009     
7010      bool
7011      operator()(_Iterator1 __it1, _Iterator2 __it2) const
7012      { return *__it1 == *__it2; }
7013  };
7014
7015 
7016  inline _Iter_equal_to_iter
7017  __iter_equal_to_iter()
7018  { return _Iter_equal_to_iter(); }
7019
7020  struct _Iter_equal_to_val
7021  {
7022    template<typename _Iterator, typename _Value>
7023     
7024      bool
7025      operator()(_Iterator __it, _Value& __val) const
7026      { return *__it == __val; }
7027  };
7028
7029 
7030  inline _Iter_equal_to_val
7031  __iter_equal_to_val()
7032  { return _Iter_equal_to_val(); }
7033
7034 
7035  inline _Iter_equal_to_val
7036  __iter_comp_val(_Iter_equal_to_iter)
7037  { return _Iter_equal_to_val(); }
7038
7039  template<typename _Compare>
7040    struct _Iter_comp_iter
7041    {
7042      _Compare _M_comp;
7043
7044      explicit constexpr
7045      _Iter_comp_iter(_Compare __comp)
7046 : _M_comp(std::move(__comp))
7047      { }
7048
7049      template<typename _Iterator1, typename _Iterator2>
7050        constexpr
7051        bool
7052        operator()(_Iterator1 __it1, _Iterator2 __it2)
7053        { return bool(_M_comp(*__it1, *__it2)); }
7054    };
7055
7056  template<typename _Compare>
7057    constexpr
7058    inline _Iter_comp_iter<_Compare>
7059    __iter_comp_iter(_Compare __comp)
7060    { return _Iter_comp_iter<_Compare>(std::move(__comp)); }
7061
7062  template<typename _Compare>
7063    struct _Iter_comp_val
7064    {
7065      _Compare _M_comp;
7066
7067     
7068      explicit
7069      _Iter_comp_val(_Compare __comp)
7070 : _M_comp(std::move(__comp))
7071      { }
7072
7073     
7074      explicit
7075      _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp)
7076 : _M_comp(__comp._M_comp)
7077      { }
7078
7079
7080     
7081      explicit
7082      _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp)
7083 : _M_comp(std::move(__comp._M_comp))
7084      { }
7085
7086
7087      template<typename _Iterator, typename _Value>
7088
7089 bool
7090 operator()(_Iterator __it, _Value& __val)
7091 { return bool(_M_comp(*__it, __val)); }
7092    };
7093
7094  template<typename _Compare>
7095   
7096    inline _Iter_comp_val<_Compare>
7097    __iter_comp_val(_Compare __comp)
7098    { return _Iter_comp_val<_Compare>(std::move(__comp)); }
7099
7100  template<typename _Compare>
7101   
7102    inline _Iter_comp_val<_Compare>
7103    __iter_comp_val(_Iter_comp_iter<_Compare> __comp)
7104    { return _Iter_comp_val<_Compare>(std::move(__comp)); }
7105
7106  template<typename _Compare>
7107    struct _Val_comp_iter
7108    {
7109      _Compare _M_comp;
7110
7111     
7112      explicit
7113      _Val_comp_iter(_Compare __comp)
7114 : _M_comp(std::move(__comp))
7115      { }
7116
7117     
7118      explicit
7119      _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp)
7120 : _M_comp(__comp._M_comp)
7121      { }
7122
7123
7124     
7125      explicit
7126      _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp)
7127 : _M_comp(std::move(__comp._M_comp))
7128      { }
7129
7130
7131      template<typename _Value, typename _Iterator>
7132
7133 bool
7134 operator()(_Value& __val, _Iterator __it)
7135 { return bool(_M_comp(__val, *__it)); }
7136    };
7137
7138  template<typename _Compare>
7139   
7140    inline _Val_comp_iter<_Compare>
7141    __val_comp_iter(_Compare __comp)
7142    { return _Val_comp_iter<_Compare>(std::move(__comp)); }
7143
7144  template<typename _Compare>
7145   
7146    inline _Val_comp_iter<_Compare>
7147    __val_comp_iter(_Iter_comp_iter<_Compare> __comp)
7148    { return _Val_comp_iter<_Compare>(std::move(__comp)); }
7149
7150  template<typename _Value>
7151    struct _Iter_equals_val
7152    {
7153      _Value& _M_value;
7154
7155     
7156      explicit
7157      _Iter_equals_val(_Value& __value)
7158 : _M_value(__value)
7159      { }
7160
7161      template<typename _Iterator>
7162
7163 bool
7164 operator()(_Iterator __it)
7165 { return *__it == _M_value; }
7166    };
7167
7168  template<typename _Value>
7169   
7170    inline _Iter_equals_val<_Value>
7171    __iter_equals_val(_Value& __val)
7172    { return _Iter_equals_val<_Value>(__val); }
7173
7174  template<typename _Iterator1>
7175    struct _Iter_equals_iter
7176    {
7177      _Iterator1 _M_it1;
7178
7179     
7180      explicit
7181      _Iter_equals_iter(_Iterator1 __it1)
7182 : _M_it1(__it1)
7183      { }
7184
7185      template<typename _Iterator2>
7186
7187 bool
7188 operator()(_Iterator2 __it2)
7189 { return *__it2 == *_M_it1; }
7190    };
7191
7192  template<typename _Iterator>
7193   
7194    inline _Iter_equals_iter<_Iterator>
7195    __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it)
7196    { return _Iter_equals_iter<_Iterator>(__it); }
7197
7198  template<typename _Predicate>
7199    struct _Iter_pred
7200    {
7201      _Predicate _M_pred;
7202
7203     
7204      explicit
7205      _Iter_pred(_Predicate __pred)
7206 : _M_pred(std::move(__pred))
7207      { }
7208
7209      template<typename _Iterator>
7210
7211 bool
7212 operator()(_Iterator __it)
7213 { return bool(_M_pred(*__it)); }
7214    };
7215
7216  template<typename _Predicate>
7217   
7218    inline _Iter_pred<_Predicate>
7219    __pred_iter(_Predicate __pred)
7220    { return _Iter_pred<_Predicate>(std::move(__pred)); }
7221
7222  template<typename _Compare, typename _Value>
7223    struct _Iter_comp_to_val
7224    {
7225      _Compare _M_comp;
7226      _Value& _M_value;
7227
7228     
7229      _Iter_comp_to_val(_Compare __comp, _Value& __value)
7230 : _M_comp(std::move(__comp)), _M_value(__value)
7231      { }
7232
7233      template<typename _Iterator>
7234
7235 bool
7236 operator()(_Iterator __it)
7237 { return bool(_M_comp(*__it, _M_value)); }
7238    };
7239
7240  template<typename _Compare, typename _Value>
7241    _Iter_comp_to_val<_Compare, _Value>
7242   
7243    __iter_comp_val(_Compare __comp, _Value &__val)
7244    {
7245      return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val);
7246    }
7247
7248  template<typename _Compare, typename _Iterator1>
7249    struct _Iter_comp_to_iter
7250    {
7251      _Compare _M_comp;
7252      _Iterator1 _M_it1;
7253
7254     
7255      _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1)
7256 : _M_comp(std::move(__comp)), _M_it1(__it1)
7257      { }
7258
7259      template<typename _Iterator2>
7260
7261 bool
7262 operator()(_Iterator2 __it2)
7263 { return bool(_M_comp(*__it2, *_M_it1)); }
7264    };
7265
7266  template<typename _Compare, typename _Iterator>
7267   
7268    inline _Iter_comp_to_iter<_Compare, _Iterator>
7269    __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it)
7270    {
7271      return _Iter_comp_to_iter<_Compare, _Iterator>(
7272   std::move(__comp._M_comp), __it);
7273    }
7274
7275  template<typename _Predicate>
7276    struct _Iter_negate
7277    {
7278      _Predicate _M_pred;
7279
7280     
7281      explicit
7282      _Iter_negate(_Predicate __pred)
7283 : _M_pred(std::move(__pred))
7284      { }
7285
7286      template<typename _Iterator>
7287
7288 bool
7289 operator()(_Iterator __it)
7290 { return !bool(_M_pred(*__it)); }
7291    };
7292
7293  template<typename _Predicate>
7294   
7295    inline _Iter_negate<_Predicate>
7296    __negate(_Iter_pred<_Predicate> __pred)
7297    { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); }
7298
7299}
7300}
7301# 72 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 2 3
7302
7303
7304
7305
7306
7307
7308
7309namespace std __attribute__ ((__visibility__ ("default")))
7310{
7311
7312
7313
7314
7315
7316
7317  template<typename _Tp, typename _Up>
7318    constexpr
7319    inline int
7320    __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num)
7321    {
7322
7323      static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp");
7324# 105 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7325 return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num);
7326    }
7327# 149 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7328  template<typename _ForwardIterator1, typename _ForwardIterator2>
7329   
7330    inline void
7331    iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
7332    {
7333
7334     
7335
7336     
7337# 182 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7338      swap(*__a, *__b);
7339
7340    }
7341# 198 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7342  template<typename _ForwardIterator1, typename _ForwardIterator2>
7343   
7344    _ForwardIterator2
7345    swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
7346  _ForwardIterator2 __first2)
7347    {
7348
7349     
7350
7351     
7352
7353      ;
7354
7355      for (; __first1 != __last1; ++__first1, (void)++__first2)
7356 std::iter_swap(__first1, __first2);
7357      return __first2;
7358    }
7359# 227 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7360  template<typename _Tp>
7361    constexpr
7362    inline const _Tp&
7363    min(const _Tp& __a, const _Tp& __b)
7364    {
7365
7366     
7367
7368      if (__b < __a)
7369 return __b;
7370      return __a;
7371    }
7372# 251 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7373  template<typename _Tp>
7374    constexpr
7375    inline const _Tp&
7376    max(const _Tp& __a, const _Tp& __b)
7377    {
7378
7379     
7380
7381      if (__a < __b)
7382 return __b;
7383      return __a;
7384    }
7385# 275 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7386  template<typename _Tp, typename _Compare>
7387    constexpr
7388    inline const _Tp&
7389    min(const _Tp& __a, const _Tp& __b, _Compare __comp)
7390    {
7391
7392      if (__comp(__b, __a))
7393 return __b;
7394      return __a;
7395    }
7396# 297 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7397  template<typename _Tp, typename _Compare>
7398    constexpr
7399    inline const _Tp&
7400    max(const _Tp& __a, const _Tp& __b, _Compare __comp)
7401    {
7402
7403      if (__comp(__a, __b))
7404 return __b;
7405      return __a;
7406    }
7407
7408
7409
7410  template<typename _Iterator>
7411   
7412    inline _Iterator
7413    __niter_base(_Iterator __it)
7414    noexcept(std::is_nothrow_copy_constructible<_Iterator>::value)
7415    { return __it; }
7416
7417
7418
7419
7420  template<typename _From, typename _To>
7421   
7422    inline _From
7423    __niter_wrap(_From __from, _To __res)
7424    { return __from + (__res - std::__niter_base(__from)); }
7425
7426
7427  template<typename _Iterator>
7428   
7429    inline _Iterator
7430    __niter_wrap(const _Iterator&, _Iterator __res)
7431    { return __res; }
7432
7433
7434
7435
7436
7437
7438
7439  template<bool _IsMove, bool _IsSimple, typename _Category>
7440    struct __copy_move
7441    {
7442      template<typename _II, typename _OI>
7443
7444 static _OI
7445 __copy_m(_II __first, _II __last, _OI __result)
7446 {
7447   for (; __first != __last; ++__result, (void)++__first)
7448     *__result = *__first;
7449   return __result;
7450 }
7451    };
7452
7453
7454  template<typename _Category>
7455    struct __copy_move<true, false, _Category>
7456    {
7457      template<typename _II, typename _OI>
7458
7459 static _OI
7460 __copy_m(_II __first, _II __last, _OI __result)
7461 {
7462   for (; __first != __last; ++__result, (void)++__first)
7463     *__result = std::move(*__first);
7464   return __result;
7465 }
7466    };
7467
7468
7469  template<>
7470    struct __copy_move<false, false, random_access_iterator_tag>
7471    {
7472      template<typename _II, typename _OI>
7473
7474 static _OI
7475 __copy_m(_II __first, _II __last, _OI __result)
7476 {
7477   typedef typename iterator_traits<_II>::difference_type _Distance;
7478   for(_Distance __n = __last - __first; __n > 0; --__n)
7479     {
7480       *__result = *__first;
7481       ++__first;
7482       ++__result;
7483     }
7484   return __result;
7485 }
7486    };
7487
7488
7489  template<>
7490    struct __copy_move<true, false, random_access_iterator_tag>
7491    {
7492      template<typename _II, typename _OI>
7493
7494 static _OI
7495 __copy_m(_II __first, _II __last, _OI __result)
7496 {
7497   typedef typename iterator_traits<_II>::difference_type _Distance;
7498   for(_Distance __n = __last - __first; __n > 0; --__n)
7499     {
7500       *__result = std::move(*__first);
7501       ++__first;
7502       ++__result;
7503     }
7504   return __result;
7505 }
7506    };
7507
7508
7509  template<bool _IsMove>
7510    struct __copy_move<_IsMove, true, random_access_iterator_tag>
7511    {
7512      template<typename _Tp>
7513
7514 static _Tp*
7515 __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
7516 {
7517
7518   using __assignable = conditional<_IsMove,
7519        is_move_assignable<_Tp>,
7520        is_copy_assignable<_Tp>>;
7521
7522   static_assert( __assignable::type::value, "type is not assignable" );
7523
7524   const ptrdiff_t _Num = __last - __first;
7525   if (_Num)
7526     __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
7527   return __result + _Num;
7528 }
7529    };
7530
7531
7532
7533  template<typename _CharT>
7534    struct char_traits;
7535
7536  template<typename _CharT, typename _Traits>
7537    class istreambuf_iterator;
7538
7539  template<typename _CharT, typename _Traits>
7540    class ostreambuf_iterator;
7541
7542  template<bool _IsMove, typename _CharT>
7543    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
7544      ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
7545    __copy_move_a2(_CharT*, _CharT*,
7546     ostreambuf_iterator<_CharT, char_traits<_CharT> >);
7547
7548  template<bool _IsMove, typename _CharT>
7549    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
7550      ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
7551    __copy_move_a2(const _CharT*, const _CharT*,
7552     ostreambuf_iterator<_CharT, char_traits<_CharT> >);
7553
7554  template<bool _IsMove, typename _CharT>
7555    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
7556        _CharT*>::__type
7557    __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >,
7558     istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*);
7559
7560  template<bool _IsMove, typename _II, typename _OI>
7561   
7562    inline _OI
7563    __copy_move_a2(_II __first, _II __last, _OI __result)
7564    {
7565      typedef typename iterator_traits<_II>::iterator_category _Category;
7566
7567
7568
7569
7570
7571      return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value,
7572         _Category>::__copy_m(__first, __last, __result);
7573    }
7574
7575
7576
7577  template<typename _Tp, typename _Ref, typename _Ptr>
7578    struct _Deque_iterator;
7579
7580
7581
7582  template<bool _IsMove,
7583    typename _Tp, typename _Ref, typename _Ptr, typename _OI>
7584    _OI
7585    __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>,
7586     std::_Deque_iterator<_Tp, _Ref, _Ptr>,
7587     _OI);
7588
7589  template<bool _IsMove,
7590    typename _ITp, typename _IRef, typename _IPtr, typename _OTp>
7591    std::_Deque_iterator<_OTp, _OTp&, _OTp*>
7592    __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>,
7593     std::_Deque_iterator<_ITp, _IRef, _IPtr>,
7594     std::_Deque_iterator<_OTp, _OTp&, _OTp*>);
7595
7596  template<bool _IsMove, typename _II, typename _Tp>
7597    typename __gnu_cxx::__enable_if<
7598      __is_random_access_iter<_II>::__value,
7599      std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type
7600    __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>);
7601
7602  template<bool _IsMove, typename _II, typename _OI>
7603   
7604    inline _OI
7605    __copy_move_a1(_II __first, _II __last, _OI __result)
7606    { return std::__copy_move_a2<_IsMove>(__first, __last, __result); }
7607
7608  template<bool _IsMove, typename _II, typename _OI>
7609   
7610    inline _OI
7611    __copy_move_a(_II __first, _II __last, _OI __result)
7612    {
7613      return std::__niter_wrap(__result,
7614  std::__copy_move_a1<_IsMove>(std::__niter_base(__first),
7615          std::__niter_base(__last),
7616          std::__niter_base(__result)));
7617    }
7618
7619  template<bool _IsMove,
7620    typename _Ite, typename _Seq, typename _Cat, typename _OI>
7621    _OI
7622    __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&,
7623    const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&,
7624    _OI);
7625
7626  template<bool _IsMove,
7627    typename _II, typename _Ite, typename _Seq, typename _Cat>
7628    __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>
7629    __copy_move_a(_II, _II,
7630    const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&);
7631
7632  template<bool _IsMove,
7633    typename _IIte, typename _ISeq, typename _ICat,
7634    typename _OIte, typename _OSeq, typename _OCat>
7635    ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>
7636    __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&,
7637    const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&,
7638    const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&);
7639# 557 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7640  template<typename _II, typename _OI>
7641   
7642    inline _OI
7643    copy(_II __first, _II __last, _OI __result)
7644    {
7645
7646     
7647     
7648
7649      ;
7650
7651      return std::__copy_move_a<__is_move_iterator<_II>::__value>
7652      (std::__miter_base(__first), std::__miter_base(__last), __result);
7653    }
7654# 590 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7655  template<typename _II, typename _OI>
7656   
7657    inline _OI
7658    move(_II __first, _II __last, _OI __result)
7659    {
7660
7661     
7662     
7663
7664      ;
7665
7666      return std::__copy_move_a<true>(std::__miter_base(__first),
7667          std::__miter_base(__last), __result);
7668    }
7669
7670
7671
7672
7673
7674
7675  template<bool _IsMove, bool _IsSimple, typename _Category>
7676    struct __copy_move_backward
7677    {
7678      template<typename _BI1, typename _BI2>
7679
7680 static _BI2
7681 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
7682 {
7683   while (__first != __last)
7684     *--__result = *--__last;
7685   return __result;
7686 }
7687    };
7688
7689
7690  template<typename _Category>
7691    struct __copy_move_backward<true, false, _Category>
7692    {
7693      template<typename _BI1, typename _BI2>
7694
7695 static _BI2
7696 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
7697 {
7698   while (__first != __last)
7699     *--__result = std::move(*--__last);
7700   return __result;
7701 }
7702    };
7703
7704
7705  template<>
7706    struct __copy_move_backward<false, false, random_access_iterator_tag>
7707    {
7708      template<typename _BI1, typename _BI2>
7709
7710 static _BI2
7711 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
7712 {
7713   typename iterator_traits<_BI1>::difference_type
7714     __n = __last - __first;
7715   for (; __n > 0; --__n)
7716     *--__result = *--__last;
7717   return __result;
7718 }
7719    };
7720
7721
7722  template<>
7723    struct __copy_move_backward<true, false, random_access_iterator_tag>
7724    {
7725      template<typename _BI1, typename _BI2>
7726
7727 static _BI2
7728 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
7729 {
7730   typename iterator_traits<_BI1>::difference_type
7731     __n = __last - __first;
7732   for (; __n > 0; --__n)
7733     *--__result = std::move(*--__last);
7734   return __result;
7735 }
7736    };
7737
7738
7739  template<bool _IsMove>
7740    struct __copy_move_backward<_IsMove, true, random_access_iterator_tag>
7741    {
7742      template<typename _Tp>
7743
7744 static _Tp*
7745 __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
7746 {
7747
7748   using __assignable = conditional<_IsMove,
7749        is_move_assignable<_Tp>,
7750        is_copy_assignable<_Tp>>;
7751
7752   static_assert( __assignable::type::value, "type is not assignable" );
7753
7754   const ptrdiff_t _Num = __last - __first;
7755   if (_Num)
7756     __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
7757   return __result - _Num;
7758 }
7759    };
7760
7761  template<bool _IsMove, typename _BI1, typename _BI2>
7762   
7763    inline _BI2
7764    __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result)
7765    {
7766      typedef typename iterator_traits<_BI1>::iterator_category _Category;
7767
7768
7769
7770
7771
7772      return std::__copy_move_backward<_IsMove,
7773           __memcpyable<_BI2, _BI1>::__value,
7774           _Category>::__copy_move_b(__first,
7775         __last,
7776         __result);
7777    }
7778
7779  template<bool _IsMove, typename _BI1, typename _BI2>
7780   
7781    inline _BI2
7782    __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result)
7783    { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); }
7784
7785  template<bool _IsMove,
7786    typename _Tp, typename _Ref, typename _Ptr, typename _OI>
7787    _OI
7788    __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>,
7789       std::_Deque_iterator<_Tp, _Ref, _Ptr>,
7790       _OI);
7791
7792  template<bool _IsMove,
7793    typename _ITp, typename _IRef, typename _IPtr, typename _OTp>
7794    std::_Deque_iterator<_OTp, _OTp&, _OTp*>
7795    __copy_move_backward_a1(
7796   std::_Deque_iterator<_ITp, _IRef, _IPtr>,
7797   std::_Deque_iterator<_ITp, _IRef, _IPtr>,
7798   std::_Deque_iterator<_OTp, _OTp&, _OTp*>);
7799
7800  template<bool _IsMove, typename _II, typename _Tp>
7801    typename __gnu_cxx::__enable_if<
7802      __is_random_access_iter<_II>::__value,
7803      std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type
7804    __copy_move_backward_a1(_II, _II,
7805       std::_Deque_iterator<_Tp, _Tp&, _Tp*>);
7806
7807  template<bool _IsMove, typename _II, typename _OI>
7808   
7809    inline _OI
7810    __copy_move_backward_a(_II __first, _II __last, _OI __result)
7811    {
7812      return std::__niter_wrap(__result,
7813  std::__copy_move_backward_a1<_IsMove>
7814    (std::__niter_base(__first), std::__niter_base(__last),
7815     std::__niter_base(__result)));
7816    }
7817
7818  template<bool _IsMove,
7819    typename _Ite, typename _Seq, typename _Cat, typename _OI>
7820    _OI
7821    __copy_move_backward_a(
7822  const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&,
7823  const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&,
7824  _OI);
7825
7826  template<bool _IsMove,
7827    typename _II, typename _Ite, typename _Seq, typename _Cat>
7828    __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>
7829    __copy_move_backward_a(_II, _II,
7830  const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&);
7831
7832  template<bool _IsMove,
7833    typename _IIte, typename _ISeq, typename _ICat,
7834    typename _OIte, typename _OSeq, typename _OCat>
7835    ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>
7836    __copy_move_backward_a(
7837  const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&,
7838  const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&,
7839  const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&);
7840# 794 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7841  template<typename _BI1, typename _BI2>
7842   
7843    inline _BI2
7844    copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
7845    {
7846
7847     
7848     
7849     
7850
7851
7852      ;
7853
7854      return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value>
7855      (std::__miter_base(__first), std::__miter_base(__last), __result);
7856    }
7857# 830 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7858  template<typename _BI1, typename _BI2>
7859   
7860    inline _BI2
7861    move_backward(_BI1 __first, _BI1 __last, _BI2 __result)
7862    {
7863
7864     
7865     
7866     
7867
7868
7869      ;
7870
7871      return std::__copy_move_backward_a<true>(std::__miter_base(__first),
7872            std::__miter_base(__last),
7873            __result);
7874    }
7875
7876
7877
7878
7879
7880
7881  template<typename _ForwardIterator, typename _Tp>
7882   
7883    inline typename
7884    __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, void>::__type
7885    __fill_a1(_ForwardIterator __first, _ForwardIterator __last,
7886       const _Tp& __value)
7887    {
7888      for (; __first != __last; ++__first)
7889 *__first = __value;
7890    }
7891
7892  template<typename _ForwardIterator, typename _Tp>
7893   
7894    inline typename
7895    __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type
7896    __fill_a1(_ForwardIterator __first, _ForwardIterator __last,
7897       const _Tp& __value)
7898    {
7899      const _Tp __tmp = __value;
7900      for (; __first != __last; ++__first)
7901 *__first = __tmp;
7902    }
7903
7904
7905  template<typename _Tp>
7906   
7907    inline typename
7908    __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type
7909    __fill_a1(_Tp* __first, _Tp* __last, const _Tp& __c)
7910    {
7911      const _Tp __tmp = __c;
7912# 892 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7913      if (const size_t __len = __last - __first)
7914 __builtin_memset(__first, static_cast<unsigned char>(__tmp), __len);
7915    }
7916
7917  template<typename _Ite, typename _Cont, typename _Tp>
7918   
7919    inline void
7920    __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first,
7921       ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last,
7922       const _Tp& __value)
7923    { std::__fill_a1(__first.base(), __last.base(), __value); }
7924
7925  template<typename _Tp, typename _VTp>
7926    void
7927    __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&,
7928       const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&,
7929       const _VTp&);
7930
7931  template<typename _FIte, typename _Tp>
7932   
7933    inline void
7934    __fill_a(_FIte __first, _FIte __last, const _Tp& __value)
7935    { std::__fill_a1(__first, __last, __value); }
7936
7937  template<typename _Ite, typename _Seq, typename _Cat, typename _Tp>
7938    void
7939    __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&,
7940      const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&,
7941      const _Tp&);
7942# 934 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7943  template<typename _ForwardIterator, typename _Tp>
7944   
7945    inline void
7946    fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
7947    {
7948
7949     
7950
7951      ;
7952
7953      std::__fill_a(__first, __last, __value);
7954    }
7955
7956
7957  inline constexpr int
7958  __size_to_integer(int __n) { return __n; }
7959  inline constexpr unsigned
7960  __size_to_integer(unsigned __n) { return __n; }
7961  inline constexpr long
7962  __size_to_integer(long __n) { return __n; }
7963  inline constexpr unsigned long
7964  __size_to_integer(unsigned long __n) { return __n; }
7965  inline constexpr long long
7966  __size_to_integer(long long __n) { return __n; }
7967  inline constexpr unsigned long long
7968  __size_to_integer(unsigned long long __n) { return __n; }
7969
7970
7971  inline constexpr __int128
7972  __size_to_integer(__int128 __n) { return __n; }
7973  inline constexpr unsigned __int128
7974  __size_to_integer(unsigned __int128 __n) { return __n; }
7975# 986 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
7976  inline constexpr long long
7977  __size_to_integer(float __n) { return (long long)__n; }
7978  inline constexpr long long
7979  __size_to_integer(double __n) { return (long long)__n; }
7980  inline constexpr long long
7981  __size_to_integer(long double __n) { return (long long)__n; }
7982
7983  inline constexpr long long
7984  __size_to_integer(__float128 __n) { return (long long)__n; }
7985
7986
7987  template<typename _OutputIterator, typename _Size, typename _Tp>
7988   
7989    inline typename
7990    __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, _OutputIterator>::__type
7991    __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value)
7992    {
7993      for (; __n > 0; --__n, (void) ++__first)
7994 *__first = __value;
7995      return __first;
7996    }
7997
7998  template<typename _OutputIterator, typename _Size, typename _Tp>
7999   
8000    inline typename
8001    __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type
8002    __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value)
8003    {
8004      const _Tp __tmp = __value;
8005      for (; __n > 0; --__n, (void) ++__first)
8006 *__first = __tmp;
8007      return __first;
8008    }
8009
8010  template<typename _Ite, typename _Seq, typename _Cat, typename _Size,
8011    typename _Tp>
8012    ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>
8013    __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first,
8014        _Size __n, const _Tp& __value,
8015        std::input_iterator_tag);
8016
8017  template<typename _OutputIterator, typename _Size, typename _Tp>
8018   
8019    inline _OutputIterator
8020    __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value,
8021        std::output_iterator_tag)
8022    {
8023
8024      static_assert(is_integral<_Size>{}, "fill_n must pass integral size");
8025
8026      return __fill_n_a1(__first, __n, __value);
8027    }
8028
8029  template<typename _OutputIterator, typename _Size, typename _Tp>
8030   
8031    inline _OutputIterator
8032    __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value,
8033        std::input_iterator_tag)
8034    {
8035
8036      static_assert(is_integral<_Size>{}, "fill_n must pass integral size");
8037
8038      return __fill_n_a1(__first, __n, __value);
8039    }
8040
8041  template<typename _OutputIterator, typename _Size, typename _Tp>
8042   
8043    inline _OutputIterator
8044    __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value,
8045        std::random_access_iterator_tag)
8046    {
8047
8048      static_assert(is_integral<_Size>{}, "fill_n must pass integral size");
8049
8050      if (__n <= 0)
8051 return __first;
8052
8053      ;
8054
8055      std::__fill_a(__first, __first + __n, __value);
8056      return __first + __n;
8057    }
8058# 1086 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8059  template<typename _OI, typename _Size, typename _Tp>
8060   
8061    inline _OI
8062    fill_n(_OI __first, _Size __n, const _Tp& __value)
8063    {
8064
8065     
8066
8067      return std::__fill_n_a(__first, std::__size_to_integer(__n), __value,
8068          std::__iterator_category(__first));
8069    }
8070
8071  template<bool _BoolType>
8072    struct __equal
8073    {
8074      template<typename _II1, typename _II2>
8075
8076 static bool
8077 equal(_II1 __first1, _II1 __last1, _II2 __first2)
8078 {
8079   for (; __first1 != __last1; ++__first1, (void) ++__first2)
8080     if (!(*__first1 == *__first2))
8081       return false;
8082   return true;
8083 }
8084    };
8085
8086  template<>
8087    struct __equal<true>
8088    {
8089      template<typename _Tp>
8090
8091 static bool
8092 equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2)
8093 {
8094   if (const size_t __len = (__last1 - __first1))
8095     return !std::__memcmp(__first1, __first2, __len);
8096   return true;
8097 }
8098    };
8099
8100  template<typename _Tp, typename _Ref, typename _Ptr, typename _II>
8101    typename __gnu_cxx::__enable_if<
8102      __is_random_access_iter<_II>::__value, bool>::__type
8103    __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>,
8104   std::_Deque_iterator<_Tp, _Ref, _Ptr>,
8105   _II);
8106
8107  template<typename _Tp1, typename _Ref1, typename _Ptr1,
8108    typename _Tp2, typename _Ref2, typename _Ptr2>
8109    bool
8110    __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>,
8111   std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>,
8112   std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>);
8113
8114  template<typename _II, typename _Tp, typename _Ref, typename _Ptr>
8115    typename __gnu_cxx::__enable_if<
8116      __is_random_access_iter<_II>::__value, bool>::__type
8117    __equal_aux1(_II, _II,
8118  std::_Deque_iterator<_Tp, _Ref, _Ptr>);
8119
8120  template<typename _II1, typename _II2>
8121   
8122    inline bool
8123    __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2)
8124    {
8125      typedef typename iterator_traits<_II1>::value_type _ValueType1;
8126      const bool __simple = ((__is_integer<_ValueType1>::__value
8127         || __is_pointer<_ValueType1>::__value)
8128        && __memcmpable<_II1, _II2>::__value);
8129      return std::__equal<__simple>::equal(__first1, __last1, __first2);
8130    }
8131
8132  template<typename _II1, typename _II2>
8133   
8134    inline bool
8135    __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2)
8136    {
8137      return std::__equal_aux1(std::__niter_base(__first1),
8138          std::__niter_base(__last1),
8139          std::__niter_base(__first2));
8140    }
8141
8142  template<typename _II1, typename _Seq1, typename _Cat1, typename _II2>
8143    bool
8144    __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&,
8145  const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&,
8146  _II2);
8147
8148  template<typename _II1, typename _II2, typename _Seq2, typename _Cat2>
8149    bool
8150    __equal_aux(_II1, _II1,
8151  const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&);
8152
8153  template<typename _II1, typename _Seq1, typename _Cat1,
8154    typename _II2, typename _Seq2, typename _Cat2>
8155    bool
8156    __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&,
8157  const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&,
8158  const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&);
8159
8160  template<typename, typename>
8161    struct __lc_rai
8162    {
8163      template<typename _II1, typename _II2>
8164
8165 static _II1
8166 __newlast1(_II1, _II1 __last1, _II2, _II2)
8167 { return __last1; }
8168
8169      template<typename _II>
8170
8171 static bool
8172 __cnd2(_II __first, _II __last)
8173 { return __first != __last; }
8174    };
8175
8176  template<>
8177    struct __lc_rai<random_access_iterator_tag, random_access_iterator_tag>
8178    {
8179      template<typename _RAI1, typename _RAI2>
8180
8181 static _RAI1
8182 __newlast1(_RAI1 __first1, _RAI1 __last1,
8183     _RAI2 __first2, _RAI2 __last2)
8184 {
8185   const typename iterator_traits<_RAI1>::difference_type
8186     __diff1 = __last1 - __first1;
8187   const typename iterator_traits<_RAI2>::difference_type
8188     __diff2 = __last2 - __first2;
8189   return __diff2 < __diff1 ? __first1 + __diff2 : __last1;
8190 }
8191
8192      template<typename _RAI>
8193 static bool
8194 __cnd2(_RAI, _RAI)
8195 { return true; }
8196    };
8197
8198  template<typename _II1, typename _II2, typename _Compare>
8199   
8200    bool
8201    __lexicographical_compare_impl(_II1 __first1, _II1 __last1,
8202       _II2 __first2, _II2 __last2,
8203       _Compare __comp)
8204    {
8205      typedef typename iterator_traits<_II1>::iterator_category _Category1;
8206      typedef typename iterator_traits<_II2>::iterator_category _Category2;
8207      typedef std::__lc_rai<_Category1, _Category2> __rai_type;
8208
8209      __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2);
8210      for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2);
8211    ++__first1, (void)++__first2)
8212 {
8213   if (__comp(__first1, __first2))
8214     return true;
8215   if (__comp(__first2, __first1))
8216     return false;
8217 }
8218      return __first1 == __last1 && __first2 != __last2;
8219    }
8220
8221  template<bool _BoolType>
8222    struct __lexicographical_compare
8223    {
8224      template<typename _II1, typename _II2>
8225
8226 static bool
8227 __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
8228 {
8229   using __gnu_cxx::__ops::__iter_less_iter;
8230   return std::__lexicographical_compare_impl(__first1, __last1,
8231           __first2, __last2,
8232           __iter_less_iter());
8233 }
8234    };
8235
8236  template<>
8237    struct __lexicographical_compare<true>
8238    {
8239      template<typename _Tp, typename _Up>
8240
8241 static bool
8242 __lc(const _Tp* __first1, const _Tp* __last1,
8243      const _Up* __first2, const _Up* __last2)
8244 {
8245   const size_t __len1 = __last1 - __first1;
8246   const size_t __len2 = __last2 - __first2;
8247   if (const size_t __len = std::min(__len1, __len2))
8248     if (int __result = std::__memcmp(__first1, __first2, __len))
8249       return __result < 0;
8250   return __len1 < __len2;
8251 }
8252    };
8253
8254  template<typename _II1, typename _II2>
8255   
8256    inline bool
8257    __lexicographical_compare_aux(_II1 __first1, _II1 __last1,
8258      _II2 __first2, _II2 __last2)
8259    {
8260      typedef typename iterator_traits<_II1>::value_type _ValueType1;
8261      typedef typename iterator_traits<_II2>::value_type _ValueType2;
8262      const bool __simple =
8263 (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value
8264  && __is_pointer<_II1>::__value
8265  && __is_pointer<_II2>::__value
8266
8267
8268
8269
8270
8271
8272
8273  );
8274
8275      return std::__lexicographical_compare<__simple>::__lc(__first1, __last1,
8276           __first2, __last2);
8277    }
8278
8279  template<typename _ForwardIterator, typename _Tp, typename _Compare>
8280   
8281    _ForwardIterator
8282    __lower_bound(_ForwardIterator __first, _ForwardIterator __last,
8283    const _Tp& __val, _Compare __comp)
8284    {
8285      typedef typename iterator_traits<_ForwardIterator>::difference_type
8286 _DistanceType;
8287
8288      _DistanceType __len = std::distance(__first, __last);
8289
8290      while (__len > 0)
8291 {
8292   _DistanceType __half = __len >> 1;
8293   _ForwardIterator __middle = __first;
8294   std::advance(__middle, __half);
8295   if (__comp(__middle, __val))
8296     {
8297       __first = __middle;
8298       ++__first;
8299       __len = __len - __half - 1;
8300     }
8301   else
8302     __len = __half;
8303 }
8304      return __first;
8305    }
8306# 1345 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8307  template<typename _ForwardIterator, typename _Tp>
8308   
8309    inline _ForwardIterator
8310    lower_bound(_ForwardIterator __first, _ForwardIterator __last,
8311  const _Tp& __val)
8312    {
8313
8314     
8315     
8316
8317      ;
8318
8319      return std::__lower_bound(__first, __last, __val,
8320    __gnu_cxx::__ops::__iter_less_val());
8321    }
8322
8323
8324
8325  inline constexpr int
8326  __lg(int __n)
8327  { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); }
8328
8329  inline constexpr unsigned
8330  __lg(unsigned __n)
8331  { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); }
8332
8333  inline constexpr long
8334  __lg(long __n)
8335  { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
8336
8337  inline constexpr unsigned long
8338  __lg(unsigned long __n)
8339  { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
8340
8341  inline constexpr long long
8342  __lg(long long __n)
8343  { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
8344
8345  inline constexpr unsigned long long
8346  __lg(unsigned long long __n)
8347  { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
8348
8349
8350# 1401 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8351  template<typename _II1, typename _II2>
8352   
8353    inline bool
8354    equal(_II1 __first1, _II1 __last1, _II2 __first2)
8355    {
8356
8357     
8358     
8359     
8360
8361
8362      ;
8363
8364      return std::__equal_aux(__first1, __last1, __first2);
8365    }
8366# 1432 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8367  template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
8368   
8369    inline bool
8370    equal(_IIter1 __first1, _IIter1 __last1,
8371   _IIter2 __first2, _BinaryPredicate __binary_pred)
8372    {
8373
8374     
8375     
8376      ;
8377
8378      for (; __first1 != __last1; ++__first1, (void)++__first2)
8379 if (!bool(__binary_pred(*__first1, *__first2)))
8380   return false;
8381      return true;
8382    }
8383
8384
8385
8386  template<typename _II1, typename _II2>
8387   
8388    inline bool
8389    __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
8390    {
8391      using _RATag = random_access_iterator_tag;
8392      using _Cat1 = typename iterator_traits<_II1>::iterator_category;
8393      using _Cat2 = typename iterator_traits<_II2>::iterator_category;
8394      using _RAIters = __and_<is_same<_Cat1, _RATag>, is_same<_Cat2, _RATag>>;
8395      if (_RAIters())
8396 {
8397   auto __d1 = std::distance(__first1, __last1);
8398   auto __d2 = std::distance(__first2, __last2);
8399   if (__d1 != __d2)
8400     return false;
8401   return std::equal(__first1, __last1, __first2);
8402 }
8403
8404      for (; __first1 != __last1 && __first2 != __last2;
8405   ++__first1, (void)++__first2)
8406 if (!(*__first1 == *__first2))
8407   return false;
8408      return __first1 == __last1 && __first2 == __last2;
8409    }
8410
8411
8412  template<typename _II1, typename _II2, typename _BinaryPredicate>
8413   
8414    inline bool
8415    __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2,
8416      _BinaryPredicate __binary_pred)
8417    {
8418      using _RATag = random_access_iterator_tag;
8419      using _Cat1 = typename iterator_traits<_II1>::iterator_category;
8420      using _Cat2 = typename iterator_traits<_II2>::iterator_category;
8421      using _RAIters = __and_<is_same<_Cat1, _RATag>, is_same<_Cat2, _RATag>>;
8422      if (_RAIters())
8423 {
8424   auto __d1 = std::distance(__first1, __last1);
8425   auto __d2 = std::distance(__first2, __last2);
8426   if (__d1 != __d2)
8427     return false;
8428   return std::equal(__first1, __last1, __first2,
8429           __binary_pred);
8430 }
8431
8432      for (; __first1 != __last1 && __first2 != __last2;
8433   ++__first1, (void)++__first2)
8434 if (!bool(__binary_pred(*__first1, *__first2)))
8435   return false;
8436      return __first1 == __last1 && __first2 == __last2;
8437    }
8438# 1522 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8439  template<typename _II1, typename _II2>
8440   
8441    inline bool
8442    equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
8443    {
8444
8445     
8446     
8447     
8448
8449
8450      ;
8451      ;
8452
8453      return std::__equal4(__first1, __last1, __first2, __last2);
8454    }
8455# 1555 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8456  template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
8457   
8458    inline bool
8459    equal(_IIter1 __first1, _IIter1 __last1,
8460   _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred)
8461    {
8462
8463     
8464     
8465      ;
8466      ;
8467
8468      return std::__equal4(__first1, __last1, __first2, __last2,
8469          __binary_pred);
8470    }
8471# 1587 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8472  template<typename _II1, typename _II2>
8473   
8474    inline bool
8475    lexicographical_compare(_II1 __first1, _II1 __last1,
8476       _II2 __first2, _II2 __last2)
8477    {
8478
8479
8480
8481
8482
8483     
8484     
8485     
8486     
8487      ;
8488      ;
8489
8490      return std::__lexicographical_compare_aux(std::__niter_base(__first1),
8491      std::__niter_base(__last1),
8492      std::__niter_base(__first2),
8493      std::__niter_base(__last2));
8494    }
8495# 1624 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8496  template<typename _II1, typename _II2, typename _Compare>
8497   
8498    inline bool
8499    lexicographical_compare(_II1 __first1, _II1 __last1,
8500       _II2 __first2, _II2 __last2, _Compare __comp)
8501    {
8502
8503     
8504     
8505      ;
8506      ;
8507
8508      return std::__lexicographical_compare_impl
8509 (__first1, __last1, __first2, __last2,
8510  __gnu_cxx::__ops::__iter_comp_iter(__comp));
8511    }
8512# 1737 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8513  template<typename _InputIterator1, typename _InputIterator2,
8514    typename _BinaryPredicate>
8515   
8516    pair<_InputIterator1, _InputIterator2>
8517    __mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
8518        _InputIterator2 __first2, _BinaryPredicate __binary_pred)
8519    {
8520      while (__first1 != __last1 && __binary_pred(__first1, __first2))
8521 {
8522   ++__first1;
8523   ++__first2;
8524 }
8525      return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
8526    }
8527# 1765 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8528  template<typename _InputIterator1, typename _InputIterator2>
8529   
8530    inline pair<_InputIterator1, _InputIterator2>
8531    mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
8532      _InputIterator2 __first2)
8533    {
8534
8535     
8536     
8537     
8538
8539
8540      ;
8541
8542      return std::__mismatch(__first1, __last1, __first2,
8543        __gnu_cxx::__ops::__iter_equal_to_iter());
8544    }
8545# 1799 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8546  template<typename _InputIterator1, typename _InputIterator2,
8547    typename _BinaryPredicate>
8548   
8549    inline pair<_InputIterator1, _InputIterator2>
8550    mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
8551      _InputIterator2 __first2, _BinaryPredicate __binary_pred)
8552    {
8553
8554     
8555     
8556      ;
8557
8558      return std::__mismatch(__first1, __last1, __first2,
8559 __gnu_cxx::__ops::__iter_comp_iter(__binary_pred));
8560    }
8561
8562
8563
8564  template<typename _InputIterator1, typename _InputIterator2,
8565    typename _BinaryPredicate>
8566   
8567    pair<_InputIterator1, _InputIterator2>
8568    __mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
8569        _InputIterator2 __first2, _InputIterator2 __last2,
8570        _BinaryPredicate __binary_pred)
8571    {
8572      while (__first1 != __last1 && __first2 != __last2
8573      && __binary_pred(__first1, __first2))
8574 {
8575   ++__first1;
8576   ++__first2;
8577 }
8578      return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
8579    }
8580# 1848 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8581  template<typename _InputIterator1, typename _InputIterator2>
8582   
8583    inline pair<_InputIterator1, _InputIterator2>
8584    mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
8585      _InputIterator2 __first2, _InputIterator2 __last2)
8586    {
8587
8588     
8589     
8590     
8591
8592
8593      ;
8594      ;
8595
8596      return std::__mismatch(__first1, __last1, __first2, __last2,
8597        __gnu_cxx::__ops::__iter_equal_to_iter());
8598    }
8599# 1884 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8600  template<typename _InputIterator1, typename _InputIterator2,
8601    typename _BinaryPredicate>
8602   
8603    inline pair<_InputIterator1, _InputIterator2>
8604    mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
8605      _InputIterator2 __first2, _InputIterator2 __last2,
8606      _BinaryPredicate __binary_pred)
8607    {
8608
8609     
8610     
8611      ;
8612      ;
8613
8614      return std::__mismatch(__first1, __last1, __first2, __last2,
8615        __gnu_cxx::__ops::__iter_comp_iter(__binary_pred));
8616    }
8617
8618
8619
8620
8621
8622  template<typename _InputIterator, typename _Predicate>
8623   
8624    inline _InputIterator
8625    __find_if(_InputIterator __first, _InputIterator __last,
8626       _Predicate __pred, input_iterator_tag)
8627    {
8628      while (__first != __last && !__pred(__first))
8629 ++__first;
8630      return __first;
8631    }
8632
8633
8634  template<typename _RandomAccessIterator, typename _Predicate>
8635   
8636    _RandomAccessIterator
8637    __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
8638       _Predicate __pred, random_access_iterator_tag)
8639    {
8640      typename iterator_traits<_RandomAccessIterator>::difference_type
8641 __trip_count = (__last - __first) >> 2;
8642
8643      for (; __trip_count > 0; --__trip_count)
8644 {
8645   if (__pred(__first))
8646     return __first;
8647   ++__first;
8648
8649   if (__pred(__first))
8650     return __first;
8651   ++__first;
8652
8653   if (__pred(__first))
8654     return __first;
8655   ++__first;
8656
8657   if (__pred(__first))
8658     return __first;
8659   ++__first;
8660 }
8661
8662      switch (__last - __first)
8663 {
8664 case 3:
8665   if (__pred(__first))
8666     return __first;
8667   ++__first;
8668
8669 case 2:
8670   if (__pred(__first))
8671     return __first;
8672   ++__first;
8673
8674 case 1:
8675   if (__pred(__first))
8676     return __first;
8677   ++__first;
8678
8679 case 0:
8680 default:
8681   return __last;
8682 }
8683    }
8684
8685  template<typename _Iterator, typename _Predicate>
8686   
8687    inline _Iterator
8688    __find_if(_Iterator __first, _Iterator __last, _Predicate __pred)
8689    {
8690      return __find_if(__first, __last, __pred,
8691         std::__iterator_category(__first));
8692    }
8693
8694  template<typename _InputIterator, typename _Predicate>
8695   
8696    typename iterator_traits<_InputIterator>::difference_type
8697    __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
8698    {
8699      typename iterator_traits<_InputIterator>::difference_type __n = 0;
8700      for (; __first != __last; ++__first)
8701 if (__pred(__first))
8702   ++__n;
8703      return __n;
8704    }
8705
8706
8707  template<typename _ForwardIterator1, typename _ForwardIterator2,
8708    typename _BinaryPredicate>
8709   
8710    bool
8711    __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
8712       _ForwardIterator2 __first2, _BinaryPredicate __pred)
8713    {
8714
8715
8716      for (; __first1 != __last1; ++__first1, (void)++__first2)
8717 if (!__pred(__first1, __first2))
8718   break;
8719
8720      if (__first1 == __last1)
8721 return true;
8722
8723
8724
8725      _ForwardIterator2 __last2 = __first2;
8726      std::advance(__last2, std::distance(__first1, __last1));
8727      for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan)
8728 {
8729   if (__scan != std::__find_if(__first1, __scan,
8730     __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)))
8731     continue;
8732
8733   auto __matches
8734     = std::__count_if(__first2, __last2,
8735   __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan));
8736   if (0 == __matches ||
8737       std::__count_if(__scan, __last1,
8738   __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))
8739       != __matches)
8740     return false;
8741 }
8742      return true;
8743    }
8744# 2041 "/opt/local/include/gcc10/c++/bits/stl_algobase.h" 3
8745  template<typename _ForwardIterator1, typename _ForwardIterator2>
8746   
8747    inline bool
8748    is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
8749     _ForwardIterator2 __first2)
8750    {
8751
8752     
8753     
8754     
8755
8756
8757      ;
8758
8759      return std::__is_permutation(__first1, __last1, __first2,
8760       __gnu_cxx::__ops::__iter_equal_to_iter());
8761    }
8762
8763
8764
8765}
8766# 61 "/opt/local/include/gcc10/c++/deque" 2 3
8767
8768
8769
8770# 1 "/opt/local/include/gcc10/c++/bits/allocator.h" 1 3
8771# 46 "/opt/local/include/gcc10/c++/bits/allocator.h" 3
8772# 1 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++allocator.h" 1 3
8773# 33 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++allocator.h" 3
8774# 1 "/opt/local/include/gcc10/c++/ext/new_allocator.h" 1 3
8775# 33 "/opt/local/include/gcc10/c++/ext/new_allocator.h" 3
8776# 1 "/opt/local/include/gcc10/c++/new" 1 3
8777# 38 "/opt/local/include/gcc10/c++/new" 3
8778       
8779# 39 "/opt/local/include/gcc10/c++/new" 3
8780
8781
8782# 1 "/opt/local/include/gcc10/c++/exception" 1 3
8783# 33 "/opt/local/include/gcc10/c++/exception" 3
8784       
8785# 34 "/opt/local/include/gcc10/c++/exception" 3
8786
8787#pragma GCC visibility push(default)
8788
8789
8790# 1 "/opt/local/include/gcc10/c++/bits/exception.h" 1 3
8791# 34 "/opt/local/include/gcc10/c++/bits/exception.h" 3
8792       
8793# 35 "/opt/local/include/gcc10/c++/bits/exception.h" 3
8794
8795#pragma GCC visibility push(default)
8796
8797
8798
8799extern "C++" {
8800
8801namespace std
8802{
8803# 60 "/opt/local/include/gcc10/c++/bits/exception.h" 3
8804  class exception
8805  {
8806  public:
8807    exception() noexcept { }
8808    virtual ~exception() noexcept;
8809
8810    exception(const exception&) = default;
8811    exception& operator=(const exception&) = default;
8812    exception(exception&&) = default;
8813    exception& operator=(exception&&) = default;
8814
8815
8816
8817
8818    virtual const char*
8819    what() const noexcept;
8820  };
8821
8822}
8823
8824}
8825
8826#pragma GCC visibility pop
8827# 39 "/opt/local/include/gcc10/c++/exception" 2 3
8828
8829extern "C++" {
8830
8831namespace std
8832{
8833
8834
8835
8836
8837
8838
8839  class bad_exception : public exception
8840  {
8841  public:
8842    bad_exception() noexcept { }
8843
8844
8845
8846    virtual ~bad_exception() noexcept;
8847
8848
8849    virtual const char*
8850    what() const noexcept;
8851  };
8852
8853
8854  typedef void (*terminate_handler) ();
8855
8856
8857  typedef void (*unexpected_handler) ();
8858
8859
8860  terminate_handler set_terminate(terminate_handler) noexcept;
8861
8862
8863
8864  terminate_handler get_terminate() noexcept;
8865
8866
8867
8868
8869  void terminate() noexcept __attribute__ ((__noreturn__));
8870
8871
8872  unexpected_handler set_unexpected(unexpected_handler) noexcept;
8873
8874
8875
8876  unexpected_handler get_unexpected() noexcept;
8877
8878
8879
8880
8881  void unexpected() __attribute__ ((__noreturn__));
8882# 105 "/opt/local/include/gcc10/c++/exception" 3
8883 
8884  bool uncaught_exception() noexcept __attribute__ ((__pure__));
8885
8886
8887
8888
8889  int uncaught_exceptions() noexcept __attribute__ ((__pure__));
8890
8891
8892
8893}
8894
8895namespace __gnu_cxx
8896{
8897
8898# 137 "/opt/local/include/gcc10/c++/exception" 3
8899  void __verbose_terminate_handler();
8900
8901
8902}
8903
8904}
8905
8906#pragma GCC visibility pop
8907
8908
8909# 1 "/opt/local/include/gcc10/c++/bits/exception_ptr.h" 1 3
8910# 34 "/opt/local/include/gcc10/c++/bits/exception_ptr.h" 3
8911#pragma GCC visibility push(default)
8912
8913
8914
8915# 1 "/opt/local/include/gcc10/c++/bits/cxxabi_init_exception.h" 1 3
8916# 34 "/opt/local/include/gcc10/c++/bits/cxxabi_init_exception.h" 3
8917       
8918# 35 "/opt/local/include/gcc10/c++/bits/cxxabi_init_exception.h" 3
8919
8920#pragma GCC visibility push(default)
8921
8922# 1 "/opt/local/lib/gcc10/gcc/x86_64-apple-darwin20/10.3.0/include/stddef.h" 1 3 4
8923# 143 "/opt/local/lib/gcc10/gcc/x86_64-apple-darwin20/10.3.0/include/stddef.h" 3 4
8924typedef long int ptrdiff_t;
8925# 415 "/opt/local/lib/gcc10/gcc/x86_64-apple-darwin20/10.3.0/include/stddef.h" 3 4
8926typedef struct {
8927  long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
8928  long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
8929# 426 "/opt/local/lib/gcc10/gcc/x86_64-apple-darwin20/10.3.0/include/stddef.h" 3 4
8930} max_align_t;
8931
8932
8933
8934
8935
8936
8937  typedef decltype(nullptr) nullptr_t;
8938# 39 "/opt/local/include/gcc10/c++/bits/cxxabi_init_exception.h" 2 3
8939# 50 "/opt/local/include/gcc10/c++/bits/cxxabi_init_exception.h" 3
8940namespace std
8941{
8942  class type_info;
8943}
8944
8945namespace __cxxabiv1
8946{
8947  struct __cxa_refcounted_exception;
8948
8949  extern "C"
8950    {
8951
8952      void*
8953      __cxa_allocate_exception(size_t) noexcept;
8954
8955      void
8956      __cxa_free_exception(void*) noexcept;
8957
8958
8959      __cxa_refcounted_exception*
8960      __cxa_init_primary_exception(void *object, std::type_info *tinfo,
8961                void ( *dest) (void *)) noexcept;
8962
8963    }
8964}
8965
8966
8967
8968#pragma GCC visibility pop
8969# 39 "/opt/local/include/gcc10/c++/bits/exception_ptr.h" 2 3
8970# 1 "/opt/local/include/gcc10/c++/typeinfo" 1 3
8971# 32 "/opt/local/include/gcc10/c++/typeinfo" 3
8972       
8973# 33 "/opt/local/include/gcc10/c++/typeinfo" 3
8974
8975
8976
8977# 1 "/opt/local/include/gcc10/c++/bits/hash_bytes.h" 1 3
8978# 33 "/opt/local/include/gcc10/c++/bits/hash_bytes.h" 3
8979       
8980# 34 "/opt/local/include/gcc10/c++/bits/hash_bytes.h" 3
8981
8982
8983
8984namespace std
8985{
8986
8987
8988
8989
8990
8991
8992
8993  size_t
8994  _Hash_bytes(const void* __ptr, size_t __len, size_t __seed);
8995
8996
8997
8998
8999
9000  size_t
9001  _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed);
9002
9003
9004}
9005# 37 "/opt/local/include/gcc10/c++/typeinfo" 2 3
9006
9007
9008#pragma GCC visibility push(default)
9009
9010extern "C++" {
9011
9012namespace __cxxabiv1
9013{
9014  class __class_type_info;
9015}
9016# 80 "/opt/local/include/gcc10/c++/typeinfo" 3
9017namespace std
9018{
9019
9020
9021
9022
9023
9024
9025  class type_info
9026  {
9027  public:
9028
9029
9030
9031
9032    virtual ~type_info();
9033
9034
9035
9036    const char* name() const noexcept
9037    { return __name[0] == '*' ? __name + 1 : __name; }
9038# 115 "/opt/local/include/gcc10/c++/typeinfo" 3
9039    bool before(const type_info& __arg) const noexcept
9040    { return (__name[0] == '*' && __arg.__name[0] == '*')
9041 ? __name < __arg.__name
9042 : __builtin_strcmp (__name, __arg.__name) < 0; }
9043
9044    bool operator==(const type_info& __arg) const noexcept
9045    {
9046      return ((__name == __arg.__name)
9047       || (__name[0] != '*' &&
9048    __builtin_strcmp (__name, __arg.__name) == 0));
9049    }
9050# 138 "/opt/local/include/gcc10/c++/typeinfo" 3
9051    bool operator!=(const type_info& __arg) const noexcept
9052    { return !operator==(__arg); }
9053
9054
9055
9056    size_t hash_code() const noexcept
9057    {
9058
9059      return _Hash_bytes(name(), __builtin_strlen(name()),
9060    static_cast<size_t>(0xc70f6907UL));
9061
9062
9063
9064    }
9065
9066
9067
9068    virtual bool __is_pointer_p() const;
9069
9070
9071    virtual bool __is_function_p() const;
9072
9073
9074
9075
9076
9077
9078
9079    virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj,
9080       unsigned __outer) const;
9081
9082
9083    virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target,
9084        void **__obj_ptr) const;
9085
9086  protected:
9087    const char *__name;
9088
9089    explicit type_info(const char *__n): __name(__n) { }
9090
9091  private:
9092
9093    type_info& operator=(const type_info&);
9094    type_info(const type_info&);
9095  };
9096
9097
9098
9099
9100
9101
9102
9103  class bad_cast : public exception
9104  {
9105  public:
9106    bad_cast() noexcept { }
9107
9108
9109
9110    virtual ~bad_cast() noexcept;
9111
9112
9113    virtual const char* what() const noexcept;
9114  };
9115
9116
9117
9118
9119
9120  class bad_typeid : public exception
9121  {
9122  public:
9123    bad_typeid () noexcept { }
9124
9125
9126
9127    virtual ~bad_typeid() noexcept;
9128
9129
9130    virtual const char* what() const noexcept;
9131  };
9132}
9133
9134}
9135
9136#pragma GCC visibility pop
9137# 40 "/opt/local/include/gcc10/c++/bits/exception_ptr.h" 2 3
9138# 1 "/opt/local/include/gcc10/c++/new" 1 3
9139# 41 "/opt/local/include/gcc10/c++/bits/exception_ptr.h" 2 3
9140
9141extern "C++" {
9142
9143namespace std
9144{
9145  class type_info;
9146
9147
9148
9149
9150
9151
9152  namespace __exception_ptr
9153  {
9154    class exception_ptr;
9155  }
9156
9157  using __exception_ptr::exception_ptr;
9158
9159
9160
9161
9162
9163  exception_ptr current_exception() noexcept;
9164
9165  template<typename _Ex>
9166  exception_ptr make_exception_ptr(_Ex) noexcept;
9167
9168
9169  void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__));
9170
9171  namespace __exception_ptr
9172  {
9173    using std::rethrow_exception;
9174
9175
9176
9177
9178
9179    class exception_ptr
9180    {
9181      void* _M_exception_object;
9182
9183      explicit exception_ptr(void* __e) noexcept;
9184
9185      void _M_addref() noexcept;
9186      void _M_release() noexcept;
9187
9188      void *_M_get() const noexcept __attribute__ ((__pure__));
9189
9190      friend exception_ptr std::current_exception() noexcept;
9191      friend void std::rethrow_exception(exception_ptr);
9192      template<typename _Ex>
9193      friend exception_ptr std::make_exception_ptr(_Ex) noexcept;
9194
9195    public:
9196      exception_ptr() noexcept;
9197
9198      exception_ptr(const exception_ptr&) noexcept;
9199
9200
9201      exception_ptr(nullptr_t) noexcept
9202      : _M_exception_object(0)
9203      { }
9204
9205      exception_ptr(exception_ptr&& __o) noexcept
9206      : _M_exception_object(__o._M_exception_object)
9207      { __o._M_exception_object = 0; }
9208# 118 "/opt/local/include/gcc10/c++/bits/exception_ptr.h" 3
9209      exception_ptr&
9210      operator=(const exception_ptr&) noexcept;
9211
9212
9213      exception_ptr&
9214      operator=(exception_ptr&& __o) noexcept
9215      {
9216        exception_ptr(static_cast<exception_ptr&&>(__o)).swap(*this);
9217        return *this;
9218      }
9219
9220
9221      ~exception_ptr() noexcept;
9222
9223      void
9224      swap(exception_ptr&) noexcept;
9225# 145 "/opt/local/include/gcc10/c++/bits/exception_ptr.h" 3
9226      explicit operator bool() const
9227      { return _M_exception_object; }
9228
9229
9230      friend bool
9231      operator==(const exception_ptr&, const exception_ptr&)
9232 noexcept __attribute__ ((__pure__));
9233
9234      const class std::type_info*
9235      __cxa_exception_type() const noexcept
9236 __attribute__ ((__pure__));
9237    };
9238
9239
9240
9241    bool
9242    operator==(const exception_ptr&, const exception_ptr&)
9243      noexcept __attribute__ ((__pure__));
9244
9245    bool
9246    operator!=(const exception_ptr&, const exception_ptr&)
9247      noexcept __attribute__ ((__pure__));
9248
9249    inline void
9250    swap(exception_ptr& __lhs, exception_ptr& __rhs)
9251    { __lhs.swap(__rhs); }
9252
9253
9254
9255
9256    template<typename _Ex>
9257      inline void
9258      __dest_thunk(void* __x)
9259      { static_cast<_Ex*>(__x)->~_Ex(); }
9260
9261
9262  }
9263
9264
9265  template<typename _Ex>
9266    exception_ptr
9267    make_exception_ptr(_Ex __ex) noexcept
9268    {
9269
9270      void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex));
9271      (void) __cxxabiv1::__cxa_init_primary_exception(
9272   __e, const_cast<std::type_info*>(&typeid(__ex)),
9273   __exception_ptr::__dest_thunk<_Ex>);
9274      try
9275 {
9276          ::new (__e) _Ex(__ex);
9277          return exception_ptr(__e);
9278 }
9279      catch(...)
9280 {
9281   __cxxabiv1::__cxa_free_exception(__e);
9282   return current_exception();
9283 }
9284# 215 "/opt/local/include/gcc10/c++/bits/exception_ptr.h" 3
9285    }
9286
9287
9288}
9289
9290}
9291
9292#pragma GCC visibility pop
9293# 148 "/opt/local/include/gcc10/c++/exception" 2 3
9294# 1 "/opt/local/include/gcc10/c++/bits/nested_exception.h" 1 3
9295# 33 "/opt/local/include/gcc10/c++/bits/nested_exception.h" 3
9296#pragma GCC visibility push(default)
9297# 42 "/opt/local/include/gcc10/c++/bits/nested_exception.h" 3
9298extern "C++" {
9299
9300namespace std
9301{
9302
9303
9304
9305
9306
9307
9308  class nested_exception
9309  {
9310    exception_ptr _M_ptr;
9311
9312  public:
9313    nested_exception() noexcept : _M_ptr(current_exception()) { }
9314
9315    nested_exception(const nested_exception&) noexcept = default;
9316
9317    nested_exception& operator=(const nested_exception&) noexcept = default;
9318
9319    virtual ~nested_exception() noexcept;
9320
9321    [[noreturn]]
9322    void
9323    rethrow_nested() const
9324    {
9325      if (_M_ptr)
9326 rethrow_exception(_M_ptr);
9327      std::terminate();
9328    }
9329
9330    exception_ptr
9331    nested_ptr() const noexcept
9332    { return _M_ptr; }
9333  };
9334
9335
9336
9337  template<typename _Except>
9338    struct _Nested_exception : public _Except, public nested_exception
9339    {
9340      explicit _Nested_exception(const _Except& __ex)
9341      : _Except(__ex)
9342      { }
9343
9344      explicit _Nested_exception(_Except&& __ex)
9345      : _Except(static_cast<_Except&&>(__ex))
9346      { }
9347    };
9348
9349
9350
9351
9352  template<typename _Tp>
9353    [[noreturn]]
9354    inline void
9355    __throw_with_nested_impl(_Tp&& __t, true_type)
9356    {
9357      using _Up = typename remove_reference<_Tp>::type;
9358      throw _Nested_exception<_Up>{std::forward<_Tp>(__t)};
9359    }
9360
9361  template<typename _Tp>
9362    [[noreturn]]
9363    inline void
9364    __throw_with_nested_impl(_Tp&& __t, false_type)
9365    { throw std::forward<_Tp>(__t); }
9366
9367
9368
9369
9370
9371  template<typename _Tp>
9372    [[noreturn]]
9373    inline void
9374    throw_with_nested(_Tp&& __t)
9375    {
9376      using _Up = typename decay<_Tp>::type;
9377      using _CopyConstructible
9378 = __and_<is_copy_constructible<_Up>, is_move_constructible<_Up>>;
9379      static_assert(_CopyConstructible::value,
9380   "throw_with_nested argument must be CopyConstructible");
9381      using __nest = __and_<is_class<_Up>, __bool_constant<!__is_final(_Up)>,
9382       __not_<is_base_of<nested_exception, _Up>>>;
9383      std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{});
9384    }
9385
9386
9387
9388
9389  template<typename _Tp>
9390    using __rethrow_if_nested_cond = typename enable_if<
9391      __and_<is_polymorphic<_Tp>,
9392      __or_<__not_<is_base_of<nested_exception, _Tp>>,
9393     is_convertible<_Tp*, nested_exception*>>>::value
9394    >::type;
9395
9396
9397  template<typename _Ex>
9398    inline __rethrow_if_nested_cond<_Ex>
9399    __rethrow_if_nested_impl(const _Ex* __ptr)
9400    {
9401      if (auto __ne_ptr = dynamic_cast<const nested_exception*>(__ptr))
9402 __ne_ptr->rethrow_nested();
9403    }
9404
9405
9406  inline void
9407  __rethrow_if_nested_impl(const void*)
9408  { }
9409
9410
9411
9412
9413  template<typename _Ex>
9414    inline void
9415    rethrow_if_nested(const _Ex& __ex)
9416    { std::__rethrow_if_nested_impl(std::__addressof(__ex)); }
9417
9418
9419}
9420
9421}
9422
9423
9424
9425#pragma GCC visibility pop
9426# 149 "/opt/local/include/gcc10/c++/exception" 2 3
9427# 42 "/opt/local/include/gcc10/c++/new" 2 3
9428
9429#pragma GCC visibility push(default)
9430
9431extern "C++" {
9432
9433namespace std
9434{
9435
9436
9437
9438
9439
9440
9441  class bad_alloc : public exception
9442  {
9443  public:
9444    bad_alloc() throw() { }
9445
9446
9447    bad_alloc(const bad_alloc&) = default;
9448    bad_alloc& operator=(const bad_alloc&) = default;
9449
9450
9451
9452
9453    virtual ~bad_alloc() throw();
9454
9455
9456    virtual const char* what() const throw();
9457  };
9458
9459
9460  class bad_array_new_length : public bad_alloc
9461  {
9462  public:
9463    bad_array_new_length() throw() { }
9464
9465
9466
9467    virtual ~bad_array_new_length() throw();
9468
9469
9470    virtual const char* what() const throw();
9471  };
9472
9473
9474
9475
9476
9477
9478  struct nothrow_t
9479  {
9480
9481    explicit nothrow_t() = default;
9482
9483  };
9484
9485  extern const nothrow_t nothrow;
9486
9487
9488
9489  typedef void (*new_handler)();
9490
9491
9492
9493  new_handler set_new_handler(new_handler) throw();
9494
9495
9496
9497  new_handler get_new_handler() noexcept;
9498
9499}
9500# 126 "/opt/local/include/gcc10/c++/new" 3
9501 void* operator new(std::size_t)
9502  __attribute__((__externally_visible__));
9503 void* operator new[](std::size_t)
9504  __attribute__((__externally_visible__));
9505void operator delete(void*) noexcept
9506  __attribute__((__externally_visible__));
9507void operator delete[](void*) noexcept
9508  __attribute__((__externally_visible__));
9509
9510void operator delete(void*, std::size_t) noexcept
9511  __attribute__((__externally_visible__));
9512void operator delete[](void*, std::size_t) noexcept
9513  __attribute__((__externally_visible__));
9514
9515 void* operator new(std::size_t, const std::nothrow_t&) noexcept
9516  __attribute__((__externally_visible__, __malloc__));
9517 void* operator new[](std::size_t, const std::nothrow_t&) noexcept
9518  __attribute__((__externally_visible__, __malloc__));
9519void operator delete(void*, const std::nothrow_t&) noexcept
9520  __attribute__((__externally_visible__));
9521void operator delete[](void*, const std::nothrow_t&) noexcept
9522  __attribute__((__externally_visible__));
9523# 174 "/opt/local/include/gcc10/c++/new" 3
9524 inline void* operator new(std::size_t, void* __p) noexcept
9525{ return __p; }
9526 inline void* operator new[](std::size_t, void* __p) noexcept
9527{ return __p; }
9528
9529
9530inline void operator delete (void*, void*) noexcept { }
9531inline void operator delete[](void*, void*) noexcept { }
9532
9533}
9534# 230 "/opt/local/include/gcc10/c++/new" 3
9535#pragma GCC visibility pop
9536# 34 "/opt/local/include/gcc10/c++/ext/new_allocator.h" 2 3
9537
9538
9539
9540
9541
9542
9543namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
9544{
9545
9546# 54 "/opt/local/include/gcc10/c++/ext/new_allocator.h" 3
9547  template<typename _Tp>
9548    class new_allocator
9549    {
9550    public:
9551      typedef _Tp value_type;
9552      typedef std::size_t size_type;
9553      typedef std::ptrdiff_t difference_type;
9554
9555      typedef _Tp* pointer;
9556      typedef const _Tp* const_pointer;
9557      typedef _Tp& reference;
9558      typedef const _Tp& const_reference;
9559
9560      template<typename _Tp1>
9561 struct rebind
9562 { typedef new_allocator<_Tp1> other; };
9563
9564
9565
9566
9567
9568      typedef std::true_type propagate_on_container_move_assignment;
9569
9570
9571     
9572      new_allocator() noexcept { }
9573
9574     
9575      new_allocator(const new_allocator&) noexcept { }
9576
9577      template<typename _Tp1>
9578
9579 new_allocator(const new_allocator<_Tp1>&) noexcept { }
9580
9581
9582      ~new_allocator() noexcept { }
9583
9584      pointer
9585      address(reference __x) const noexcept
9586      { return std::__addressof(__x); }
9587
9588      const_pointer
9589      address(const_reference __x) const noexcept
9590      { return std::__addressof(__x); }
9591
9592
9593
9594
9595      _Tp*
9596      allocate(size_type __n, const void* = static_cast<const void*>(0))
9597      {
9598 if (__n > this->_M_max_size())
9599   std::__throw_bad_alloc();
9600# 115 "/opt/local/include/gcc10/c++/ext/new_allocator.h" 3
9601 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
9602      }
9603
9604
9605      void
9606      deallocate(_Tp* __p, size_type __t)
9607      {
9608# 133 "/opt/local/include/gcc10/c++/ext/new_allocator.h" 3
9609 ::operator delete(__p
9610
9611     , __t * sizeof(_Tp)
9612
9613    );
9614      }
9615
9616
9617      size_type
9618      max_size() const noexcept
9619      { return _M_max_size(); }
9620
9621
9622      template<typename _Up, typename... _Args>
9623 void
9624 construct(_Up* __p, _Args&&... __args)
9625 noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
9626 { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
9627
9628      template<typename _Up>
9629 void
9630 destroy(_Up* __p)
9631 noexcept(std::is_nothrow_destructible<_Up>::value)
9632 { __p->~_Up(); }
9633# 169 "/opt/local/include/gcc10/c++/ext/new_allocator.h" 3
9634      template<typename _Up>
9635 friend bool
9636 operator==(const new_allocator&, const new_allocator<_Up>&)
9637 noexcept
9638 { return true; }
9639
9640
9641      template<typename _Up>
9642 friend bool
9643 operator!=(const new_allocator&, const new_allocator<_Up>&)
9644 noexcept
9645 { return false; }
9646
9647
9648    private:
9649      constexpr size_type
9650      _M_max_size() const noexcept
9651      {
9652
9653 return std::size_t(0x7fffffffffffffffL) / sizeof(_Tp);
9654
9655
9656
9657      }
9658    };
9659
9660
9661}
9662# 34 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++allocator.h" 2 3
9663
9664
9665namespace std
9666{
9667# 47 "/opt/local/include/gcc10/c++/x86_64-apple-darwin20/bits/c++allocator.h" 3
9668  template<typename _Tp>
9669    using __allocator_base = __gnu_cxx::new_allocator<_Tp>;
9670}
9671# 47 "/opt/local/include/gcc10/c++/bits/allocator.h" 2 3
9672# 1 "/opt/local/include/gcc10/c++/bits/memoryfwd.h" 1 3
9673# 46 "/opt/local/include/gcc10/c++/bits/memoryfwd.h" 3
9674       
9675# 47 "/opt/local/include/gcc10/c++/bits/memoryfwd.h" 3
9676
9677
9678
9679namespace std __attribute__ ((__visibility__ ("default")))
9680{
9681
9682# 63 "/opt/local/include/gcc10/c++/bits/memoryfwd.h" 3
9683  template<typename>
9684    class allocator;
9685
9686
9687  template<>
9688    class allocator<void>;
9689
9690
9691
9692
9693  template<typename, typename>
9694    struct uses_allocator;
9695
9696
9697
9698
9699
9700}
9701# 48 "/opt/local/include/gcc10/c++/bits/allocator.h" 2 3
9702
9703
9704
9705
9706
9707
9708namespace std __attribute__ ((__visibility__ ("default")))
9709{
9710
9711
9712
9713
9714
9715
9716
9717
9718  template<>
9719    class allocator<void>
9720    {
9721    public:
9722      typedef void value_type;
9723      typedef size_t size_type;
9724      typedef ptrdiff_t difference_type;
9725
9726      typedef void* pointer;
9727      typedef const void* const_pointer;
9728
9729      template<typename _Tp1>
9730 struct rebind
9731 { typedef allocator<_Tp1> other; };
9732# 89 "/opt/local/include/gcc10/c++/bits/allocator.h" 3
9733      typedef true_type propagate_on_container_move_assignment;
9734
9735      typedef true_type is_always_equal;
9736
9737      template<typename _Up, typename... _Args>
9738 void
9739 construct(_Up* __p, _Args&&... __args)
9740 noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
9741 { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
9742
9743      template<typename _Up>
9744 void
9745 destroy(_Up* __p)
9746 noexcept(std::is_nothrow_destructible<_Up>::value)
9747 { __p->~_Up(); }
9748
9749    };
9750# 115 "/opt/local/include/gcc10/c++/bits/allocator.h" 3
9751  template<typename _Tp>
9752    class allocator : public __allocator_base<_Tp>
9753    {
9754    public:
9755      typedef _Tp value_type;
9756      typedef size_t size_type;
9757      typedef ptrdiff_t difference_type;
9758
9759      typedef _Tp* pointer;
9760      typedef const _Tp* const_pointer;
9761      typedef _Tp& reference;
9762      typedef const _Tp& const_reference;
9763
9764      template<typename _Tp1>
9765 struct rebind
9766 { typedef allocator<_Tp1> other; };
9767
9768
9769
9770
9771
9772      typedef true_type propagate_on_container_move_assignment;
9773
9774      typedef true_type is_always_equal;
9775
9776
9777
9778
9779     
9780      allocator() noexcept { }
9781
9782     
9783      allocator(const allocator& __a) noexcept
9784      : __allocator_base<_Tp>(__a) { }
9785
9786
9787
9788      allocator& operator=(const allocator&) = default;
9789
9790
9791      template<typename _Tp1>
9792
9793 allocator(const allocator<_Tp1>&) noexcept { }
9794
9795
9796
9797
9798      ~allocator() noexcept { }
9799# 191 "/opt/local/include/gcc10/c++/bits/allocator.h" 3
9800      friend bool
9801      operator==(const allocator&, const allocator&) noexcept
9802      { return true; }
9803
9804
9805      friend bool
9806      operator!=(const allocator&, const allocator&) noexcept
9807      { return false; }
9808
9809
9810
9811    };
9812
9813  template<typename _T1, typename _T2>
9814    inline bool
9815    operator==(const allocator<_T1>&, const allocator<_T2>&)
9816    noexcept
9817    { return true; }
9818
9819
9820  template<typename _T1, typename _T2>
9821    inline bool
9822    operator!=(const allocator<_T1>&, const allocator<_T2>&)
9823    noexcept
9824    { return false; }
9825
9826
9827
9828
9829  template<typename _Tp>
9830    class allocator<const _Tp>
9831    {
9832    public:
9833      typedef _Tp value_type;
9834      template<typename _Up> allocator(const allocator<_Up>&) { }
9835    };
9836
9837  template<typename _Tp>
9838    class allocator<volatile _Tp>
9839    {
9840    public:
9841      typedef _Tp value_type;
9842      template<typename _Up> allocator(const allocator<_Up>&) { }
9843    };
9844
9845  template<typename _Tp>
9846    class allocator<const volatile _Tp>
9847    {
9848    public:
9849      typedef _Tp value_type;
9850      template<typename _Up> allocator(const allocator<_Up>&) { }
9851    };
9852
9853
9854
9855
9856
9857
9858  extern template class allocator<char>;
9859  extern template class allocator<wchar_t>;
9860
9861
9862
9863
9864
9865
9866  template<typename _Alloc, bool = __is_empty(_Alloc)>
9867    struct __alloc_swap
9868    { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } };
9869
9870  template<typename _Alloc>
9871    struct __alloc_swap<_Alloc, false>
9872    {
9873      static void
9874      _S_do_it(_Alloc& __one, _Alloc& __two) noexcept
9875      {
9876
9877 if (__one != __two)
9878   swap(__one, __two);
9879      }
9880    };
9881
9882
9883  template<typename _Alloc, bool = __is_empty(_Alloc)>
9884    struct __alloc_neq
9885    {
9886      static bool
9887      _S_do_it(const _Alloc&, const _Alloc&)
9888      { return false; }
9889    };
9890
9891  template<typename _Alloc>
9892    struct __alloc_neq<_Alloc, false>
9893    {
9894      static bool
9895      _S_do_it(const _Alloc& __one, const _Alloc& __two)
9896      { return __one != __two; }
9897    };
9898
9899
9900  template<typename _Tp, bool
9901    = __or_<is_copy_constructible<typename _Tp::value_type>,
9902            is_nothrow_move_constructible<typename _Tp::value_type>>::value>
9903    struct __shrink_to_fit_aux
9904    { static bool _S_do_it(_Tp&) noexcept { return false; } };
9905
9906  template<typename _Tp>
9907    struct __shrink_to_fit_aux<_Tp, true>
9908    {
9909      static bool
9910      _S_do_it(_Tp& __c) noexcept
9911      {
9912
9913 try
9914   {
9915     _Tp(__make_move_if_noexcept_iterator(__c.begin()),
9916  __make_move_if_noexcept_iterator(__c.end()),
9917  __c.get_allocator()).swap(__c);
9918     return true;
9919   }
9920 catch(...)
9921   { return false; }
9922
9923
9924
9925      }
9926    };
9927
9928
9929
9930}
9931# 65 "/opt/local/include/gcc10/c++/deque" 2 3
9932# 1 "/opt/local/include/gcc10/c++/bits/stl_construct.h" 1 3
9933# 73 "/opt/local/include/gcc10/c++/bits/stl_construct.h" 3
9934namespace std __attribute__ ((__visibility__ ("default")))
9935{
9936
9937# 106 "/opt/local/include/gcc10/c++/bits/stl_construct.h" 3
9938  template<typename _Tp, typename... _Args>
9939    inline void
9940    _Construct(_Tp* __p, _Args&&... __args)
9941    { ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...); }
9942# 121 "/opt/local/include/gcc10/c++/bits/stl_construct.h" 3
9943  template<typename _T1>
9944    inline void
9945    _Construct_novalue(_T1* __p)
9946    { ::new(static_cast<void*>(__p)) _T1; }
9947
9948  template<typename _ForwardIterator>
9949    void
9950    _Destroy(_ForwardIterator __first, _ForwardIterator __last);
9951
9952
9953
9954
9955  template<typename _Tp>
9956    constexpr inline void
9957    _Destroy(_Tp* __pointer)
9958    {
9959
9960
9961
9962      __pointer->~_Tp();
9963
9964    }
9965
9966  template<bool>
9967    struct _Destroy_aux
9968    {
9969      template<typename _ForwardIterator>
9970 static void
9971 __destroy(_ForwardIterator __first, _ForwardIterator __last)
9972 {
9973   for (; __first != __last; ++__first)
9974     std::_Destroy(std::__addressof(*__first));
9975 }
9976    };
9977
9978  template<>
9979    struct _Destroy_aux<true>
9980    {
9981      template<typename _ForwardIterator>
9982        static void
9983        __destroy(_ForwardIterator, _ForwardIterator) { }
9984    };
9985
9986
9987
9988
9989
9990
9991  template<typename _ForwardIterator>
9992    inline void
9993    _Destroy(_ForwardIterator __first, _ForwardIterator __last)
9994    {
9995      typedef typename iterator_traits<_ForwardIterator>::value_type
9996                       _Value_type;
9997
9998
9999      static_assert(is_destructible<_Value_type>::value,
10000      "value type is destructible");
10001
10002
10003
10004
10005
10006      std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
10007 __destroy(__first, __last);
10008    }
10009
10010  template<bool>
10011    struct _Destroy_n_aux
10012    {
10013      template<typename _ForwardIterator, typename _Size>
10014 static _ForwardIterator
10015 __destroy_n(_ForwardIterator __first, _Size __count)
10016 {
10017   for (; __count > 0; (void)++__first, --__count)
10018     std::_Destroy(std::__addressof(*__first));
10019   return __first;
10020 }
10021    };
10022
10023  template<>
10024    struct _Destroy_n_aux<true>
10025    {
10026      template<typename _ForwardIterator, typename _Size>
10027        static _ForwardIterator
10028        __destroy_n(_ForwardIterator __first, _Size __count)
10029 {
10030   std::advance(__first, __count);
10031   return __first;
10032 }
10033    };
10034
10035
10036
10037
10038
10039
10040  template<typename _ForwardIterator, typename _Size>
10041    inline _ForwardIterator
10042    _Destroy_n(_ForwardIterator __first, _Size __count)
10043    {
10044      typedef typename iterator_traits<_ForwardIterator>::value_type
10045                       _Value_type;
10046
10047
10048      static_assert(is_destructible<_Value_type>::value,
10049      "value type is destructible");
10050
10051
10052
10053
10054
10055      return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>::
10056 __destroy_n(__first, __count);
10057    }
10058# 253 "/opt/local/include/gcc10/c++/bits/stl_construct.h" 3
10059
10060}
10061# 66 "/opt/local/include/gcc10/c++/deque" 2 3
10062# 1 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 1 3
10063# 67 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 3
10064# 1 "/opt/local/include/gcc10/c++/ext/alloc_traits.h" 1 3
10065# 32 "/opt/local/include/gcc10/c++/ext/alloc_traits.h" 3
10066       
10067# 33 "/opt/local/include/gcc10/c++/ext/alloc_traits.h" 3
10068
10069# 1 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 1 3
10070# 41 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10071namespace std __attribute__ ((__visibility__ ("default")))
10072{
10073
10074
10075
10076
10077
10078  struct __allocator_traits_base
10079  {
10080    template<typename _Tp, typename _Up, typename = void>
10081      struct __rebind : __replace_first_arg<_Tp, _Up> { };
10082
10083    template<typename _Tp, typename _Up>
10084      struct __rebind<_Tp, _Up,
10085        __void_t<typename _Tp::template rebind<_Up>::other>>
10086      { using type = typename _Tp::template rebind<_Up>::other; };
10087
10088  protected:
10089    template<typename _Tp>
10090      using __pointer = typename _Tp::pointer;
10091    template<typename _Tp>
10092      using __c_pointer = typename _Tp::const_pointer;
10093    template<typename _Tp>
10094      using __v_pointer = typename _Tp::void_pointer;
10095    template<typename _Tp>
10096      using __cv_pointer = typename _Tp::const_void_pointer;
10097    template<typename _Tp>
10098      using __pocca = typename _Tp::propagate_on_container_copy_assignment;
10099    template<typename _Tp>
10100      using __pocma = typename _Tp::propagate_on_container_move_assignment;
10101    template<typename _Tp>
10102      using __pocs = typename _Tp::propagate_on_container_swap;
10103    template<typename _Tp>
10104      using __equal = typename _Tp::is_always_equal;
10105  };
10106
10107  template<typename _Alloc, typename _Up>
10108    using __alloc_rebind
10109      = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type;
10110
10111
10112
10113
10114
10115  template<typename _Alloc>
10116    struct allocator_traits : __allocator_traits_base
10117    {
10118
10119      typedef _Alloc allocator_type;
10120
10121      typedef typename _Alloc::value_type value_type;
10122
10123
10124
10125
10126
10127
10128      using pointer = __detected_or_t<value_type*, __pointer, _Alloc>;
10129
10130    private:
10131
10132      template<template<typename> class _Func, typename _Tp, typename = void>
10133 struct _Ptr
10134 {
10135   using type = typename pointer_traits<pointer>::template rebind<_Tp>;
10136 };
10137
10138      template<template<typename> class _Func, typename _Tp>
10139 struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>>
10140 {
10141   using type = _Func<_Alloc>;
10142 };
10143
10144
10145      template<typename _A2, typename _PtrT, typename = void>
10146 struct _Diff
10147 { using type = typename pointer_traits<_PtrT>::difference_type; };
10148
10149      template<typename _A2, typename _PtrT>
10150 struct _Diff<_A2, _PtrT, __void_t<typename _A2::difference_type>>
10151 { using type = typename _A2::difference_type; };
10152
10153
10154      template<typename _A2, typename _DiffT, typename = void>
10155 struct _Size : make_unsigned<_DiffT> { };
10156
10157      template<typename _A2, typename _DiffT>
10158 struct _Size<_A2, _DiffT, __void_t<typename _A2::size_type>>
10159 { using type = typename _A2::size_type; };
10160
10161    public:
10162
10163
10164
10165
10166
10167
10168      using const_pointer = typename _Ptr<__c_pointer, const value_type>::type;
10169
10170
10171
10172
10173
10174
10175
10176      using void_pointer = typename _Ptr<__v_pointer, void>::type;
10177
10178
10179
10180
10181
10182
10183
10184      using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type;
10185
10186
10187
10188
10189
10190
10191
10192      using difference_type = typename _Diff<_Alloc, pointer>::type;
10193
10194
10195
10196
10197
10198
10199
10200      using size_type = typename _Size<_Alloc, difference_type>::type;
10201
10202
10203
10204
10205
10206
10207
10208      using propagate_on_container_copy_assignment
10209 = __detected_or_t<false_type, __pocca, _Alloc>;
10210
10211
10212
10213
10214
10215
10216
10217      using propagate_on_container_move_assignment
10218 = __detected_or_t<false_type, __pocma, _Alloc>;
10219
10220
10221
10222
10223
10224
10225
10226      using propagate_on_container_swap
10227 = __detected_or_t<false_type, __pocs, _Alloc>;
10228
10229
10230
10231
10232
10233
10234
10235      using is_always_equal
10236 = __detected_or_t<typename is_empty<_Alloc>::type, __equal, _Alloc>;
10237
10238      template<typename _Tp>
10239 using rebind_alloc = __alloc_rebind<_Alloc, _Tp>;
10240      template<typename _Tp>
10241 using rebind_traits = allocator_traits<rebind_alloc<_Tp>>;
10242
10243    private:
10244      template<typename _Alloc2>
10245 static constexpr auto
10246 _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int)
10247 -> decltype(__a.allocate(__n, __hint))
10248 { return __a.allocate(__n, __hint); }
10249
10250      template<typename _Alloc2>
10251 static constexpr pointer
10252 _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...)
10253 { return __a.allocate(__n); }
10254
10255      template<typename _Tp, typename... _Args>
10256 struct __construct_helper
10257 {
10258   template<typename _Alloc2,
10259     typename = decltype(std::declval<_Alloc2*>()->construct(
10260    std::declval<_Tp*>(), std::declval<_Args>()...))>
10261     static true_type __test(int);
10262
10263   template<typename>
10264     static false_type __test(...);
10265
10266   using type = decltype(__test<_Alloc>(0));
10267 };
10268
10269      template<typename _Tp, typename... _Args>
10270 using __has_construct
10271   = typename __construct_helper<_Tp, _Args...>::type;
10272
10273      template<typename _Tp, typename... _Args>
10274 static constexpr _Require<__has_construct<_Tp, _Args...>>
10275 _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
10276 noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...)))
10277 { __a.construct(__p, std::forward<_Args>(__args)...); }
10278
10279      template<typename _Tp, typename... _Args>
10280 static constexpr
10281 _Require<__and_<__not_<__has_construct<_Tp, _Args...>>,
10282          is_constructible<_Tp, _Args...>>>
10283 _S_construct(_Alloc&, _Tp* __p, _Args&&... __args)
10284 noexcept(std::is_nothrow_constructible<_Tp, _Args...>::value)
10285 {
10286
10287   ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
10288
10289
10290
10291 }
10292
10293      template<typename _Alloc2, typename _Tp>
10294 static constexpr auto
10295 _S_destroy(_Alloc2& __a, _Tp* __p, int)
10296 noexcept(noexcept(__a.destroy(__p)))
10297 -> decltype(__a.destroy(__p))
10298 { __a.destroy(__p); }
10299
10300      template<typename _Alloc2, typename _Tp>
10301 static constexpr void
10302 _S_destroy(_Alloc2&, _Tp* __p, ...)
10303 noexcept(std::is_nothrow_destructible<_Tp>::value)
10304 { std::_Destroy(__p); }
10305
10306      template<typename _Alloc2>
10307 static constexpr auto
10308 _S_max_size(_Alloc2& __a, int)
10309 -> decltype(__a.max_size())
10310 { return __a.max_size(); }
10311
10312      template<typename _Alloc2>
10313 static constexpr size_type
10314 _S_max_size(_Alloc2&, ...)
10315 {
10316
10317
10318   return __gnu_cxx::__numeric_traits<size_type>::__max
10319     / sizeof(value_type);
10320 }
10321
10322      template<typename _Alloc2>
10323 static constexpr auto
10324 _S_select(_Alloc2& __a, int)
10325 -> decltype(__a.select_on_container_copy_construction())
10326 { return __a.select_on_container_copy_construction(); }
10327
10328      template<typename _Alloc2>
10329 static constexpr _Alloc2
10330 _S_select(_Alloc2& __a, ...)
10331 { return __a; }
10332
10333    public:
10334# 312 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10335      static pointer
10336      allocate(_Alloc& __a, size_type __n)
10337      { return __a.allocate(__n); }
10338# 327 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10339      static pointer
10340      allocate(_Alloc& __a, size_type __n, const_void_pointer __hint)
10341      { return _S_allocate(__a, __n, __hint, 0); }
10342# 339 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10343      static void
10344      deallocate(_Alloc& __a, pointer __p, size_type __n)
10345      { __a.deallocate(__p, __n); }
10346# 354 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10347      template<typename _Tp, typename... _Args>
10348 static auto
10349 construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
10350 noexcept(noexcept(_S_construct(__a, __p,
10351           std::forward<_Args>(__args)...)))
10352 -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...))
10353 { _S_construct(__a, __p, std::forward<_Args>(__args)...); }
10354# 370 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10355      template<typename _Tp>
10356 static void
10357 destroy(_Alloc& __a, _Tp* __p)
10358 noexcept(noexcept(_S_destroy(__a, __p, 0)))
10359 { _S_destroy(__a, __p, 0); }
10360# 384 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10361      static size_type
10362      max_size(const _Alloc& __a) noexcept
10363      { return _S_max_size(__a, 0); }
10364# 396 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10365      static _Alloc
10366      select_on_container_copy_construction(const _Alloc& __rhs)
10367      { return _S_select(__rhs, 0); }
10368    };
10369
10370
10371
10372
10373
10374
10375  template<typename _Tp>
10376    struct allocator_traits<allocator<_Tp>>
10377    {
10378
10379      using allocator_type = allocator<_Tp>;
10380
10381
10382      using value_type = _Tp;
10383
10384
10385      using pointer = _Tp*;
10386
10387
10388      using const_pointer = const _Tp*;
10389
10390
10391      using void_pointer = void*;
10392
10393
10394      using const_void_pointer = const void*;
10395
10396
10397      using difference_type = std::ptrdiff_t;
10398
10399
10400      using size_type = std::size_t;
10401
10402
10403      using propagate_on_container_copy_assignment = false_type;
10404
10405
10406      using propagate_on_container_move_assignment = true_type;
10407
10408
10409      using propagate_on_container_swap = false_type;
10410
10411
10412      using is_always_equal = true_type;
10413
10414      template<typename _Up>
10415 using rebind_alloc = allocator<_Up>;
10416
10417      template<typename _Up>
10418 using rebind_traits = allocator_traits<allocator<_Up>>;
10419# 458 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10420      static pointer
10421      allocate(allocator_type& __a, size_type __n)
10422      { return __a.allocate(__n); }
10423# 472 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10424      static pointer
10425      allocate(allocator_type& __a, size_type __n, const_void_pointer __hint)
10426      {
10427
10428 return __a.allocate(__n, __hint);
10429
10430
10431
10432      }
10433# 490 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10434      static void
10435      deallocate(allocator_type& __a, pointer __p, size_type __n)
10436      { __a.deallocate(__p, __n); }
10437# 505 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10438      template<typename _Up, typename... _Args>
10439 static void
10440 construct(allocator_type& __a __attribute__((__unused__)), _Up* __p,
10441    _Args&&... __args)
10442 noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
10443 {
10444
10445   __a.construct(__p, std::forward<_Args>(__args)...);
10446
10447
10448
10449 }
10450# 525 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10451      template<typename _Up>
10452 static void
10453 destroy(allocator_type& __a __attribute__((__unused__)), _Up* __p)
10454 noexcept(is_nothrow_destructible<_Up>::value)
10455 {
10456
10457   __a.destroy(__p);
10458
10459
10460
10461 }
10462
10463
10464
10465
10466
10467
10468      static size_type
10469      max_size(const allocator_type& __a __attribute__((__unused__))) noexcept
10470      {
10471
10472 return __a.max_size();
10473
10474
10475
10476      }
10477
10478
10479
10480
10481
10482
10483      static allocator_type
10484      select_on_container_copy_construction(const allocator_type& __rhs)
10485      { return __rhs; }
10486    };
10487
10488
10489  template<typename _Alloc>
10490    inline void
10491    __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type)
10492    { __one = __two; }
10493
10494  template<typename _Alloc>
10495    inline void
10496    __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type)
10497    { }
10498
10499
10500  template<typename _Alloc>
10501    constexpr inline void
10502    __alloc_on_copy(_Alloc& __one, const _Alloc& __two)
10503    {
10504      typedef allocator_traits<_Alloc> __traits;
10505      typedef typename __traits::propagate_on_container_copy_assignment __pocca;
10506
10507
10508
10509
10510      __do_alloc_on_copy(__one, __two, __pocca());
10511
10512    }
10513
10514  template<typename _Alloc>
10515    constexpr _Alloc
10516    __alloc_on_copy(const _Alloc& __a)
10517    {
10518      typedef allocator_traits<_Alloc> __traits;
10519      return __traits::select_on_container_copy_construction(__a);
10520    }
10521
10522
10523  template<typename _Alloc>
10524    inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type)
10525    { __one = std::move(__two); }
10526
10527  template<typename _Alloc>
10528    inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type)
10529    { }
10530
10531
10532  template<typename _Alloc>
10533    constexpr inline void
10534    __alloc_on_move(_Alloc& __one, _Alloc& __two)
10535    {
10536      typedef allocator_traits<_Alloc> __traits;
10537      typedef typename __traits::propagate_on_container_move_assignment __pocma;
10538
10539
10540
10541
10542      __do_alloc_on_move(__one, __two, __pocma());
10543
10544    }
10545
10546
10547  template<typename _Alloc>
10548    inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type)
10549    {
10550      using std::swap;
10551      swap(__one, __two);
10552    }
10553
10554  template<typename _Alloc>
10555    inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type)
10556    { }
10557
10558
10559  template<typename _Alloc>
10560    constexpr inline void
10561    __alloc_on_swap(_Alloc& __one, _Alloc& __two)
10562    {
10563      typedef allocator_traits<_Alloc> __traits;
10564      typedef typename __traits::propagate_on_container_swap __pocs;
10565
10566
10567
10568
10569
10570
10571
10572      __do_alloc_on_swap(__one, __two, __pocs());
10573
10574    }
10575
10576  template<typename _Alloc, typename _Tp,
10577    typename _ValueT = __remove_cvref_t<typename _Alloc::value_type>,
10578    typename = void>
10579    struct __is_alloc_insertable_impl
10580    : false_type
10581    { };
10582
10583  template<typename _Alloc, typename _Tp, typename _ValueT>
10584    struct __is_alloc_insertable_impl<_Alloc, _Tp, _ValueT,
10585      __void_t<decltype(allocator_traits<_Alloc>::construct(
10586     std::declval<_Alloc&>(), std::declval<_ValueT*>(),
10587     std::declval<_Tp>()))>>
10588    : true_type
10589    { };
10590
10591
10592
10593
10594  template<typename _Alloc>
10595    struct __is_copy_insertable
10596    : __is_alloc_insertable_impl<_Alloc,
10597     typename _Alloc::value_type const&>::type
10598    { };
10599
10600
10601  template<typename _Tp>
10602    struct __is_copy_insertable<allocator<_Tp>>
10603    : is_copy_constructible<_Tp>
10604    { };
10605
10606
10607
10608
10609  template<typename _Alloc>
10610    struct __is_move_insertable
10611    : __is_alloc_insertable_impl<_Alloc, typename _Alloc::value_type>::type
10612    { };
10613
10614
10615  template<typename _Tp>
10616    struct __is_move_insertable<allocator<_Tp>>
10617    : is_move_constructible<_Tp>
10618    { };
10619
10620
10621  template<typename _Alloc, typename = void>
10622    struct __is_allocator : false_type { };
10623
10624  template<typename _Alloc>
10625    struct __is_allocator<_Alloc,
10626      __void_t<typename _Alloc::value_type,
10627        decltype(std::declval<_Alloc&>().allocate(size_t{}))>>
10628    : true_type { };
10629
10630  template<typename _Alloc>
10631    using _RequireAllocator
10632      = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type;
10633
10634  template<typename _Alloc>
10635    using _RequireNotAllocator
10636      = typename enable_if<!__is_allocator<_Alloc>::value, _Alloc>::type;
10637# 719 "/opt/local/include/gcc10/c++/bits/alloc_traits.h" 3
10638  template<typename _ForwardIterator, typename _Allocator>
10639    void
10640    _Destroy(_ForwardIterator __first, _ForwardIterator __last,
10641      _Allocator& __alloc)
10642    {
10643      for (; __first != __last; ++__first)
10644
10645
10646
10647 allocator_traits<_Allocator>::destroy(__alloc,
10648           std::__addressof(*__first));
10649
10650    }
10651
10652  template<typename _ForwardIterator, typename _Tp>
10653    inline void
10654    _Destroy(_ForwardIterator __first, _ForwardIterator __last,
10655      allocator<_Tp>&)
10656    {
10657      _Destroy(__first, __last);
10658    }
10659
10660
10661}
10662# 35 "/opt/local/include/gcc10/c++/ext/alloc_traits.h" 2 3
10663
10664
10665
10666
10667namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
10668{
10669
10670
10671
10672
10673
10674
10675template<typename _Alloc, typename = typename _Alloc::value_type>
10676  struct __alloc_traits
10677
10678  : std::allocator_traits<_Alloc>
10679
10680  {
10681    typedef _Alloc allocator_type;
10682
10683    typedef std::allocator_traits<_Alloc> _Base_type;
10684    typedef typename _Base_type::value_type value_type;
10685    typedef typename _Base_type::pointer pointer;
10686    typedef typename _Base_type::const_pointer const_pointer;
10687    typedef typename _Base_type::size_type size_type;
10688    typedef typename _Base_type::difference_type difference_type;
10689
10690    typedef value_type& reference;
10691    typedef const value_type& const_reference;
10692    using _Base_type::allocate;
10693    using _Base_type::deallocate;
10694    using _Base_type::construct;
10695    using _Base_type::destroy;
10696    using _Base_type::max_size;
10697
10698  private:
10699    template<typename _Ptr>
10700      using __is_custom_pointer
10701 = std::__and_<std::is_same<pointer, _Ptr>,
10702        std::__not_<std::is_pointer<_Ptr>>>;
10703
10704  public:
10705
10706    template<typename _Ptr, typename... _Args>
10707      static constexpr
10708      std::__enable_if_t<__is_custom_pointer<_Ptr>::value>
10709      construct(_Alloc& __a, _Ptr __p, _Args&&... __args)
10710      noexcept(noexcept(_Base_type::construct(__a, std::__to_address(__p),
10711           std::forward<_Args>(__args)...)))
10712      {
10713 _Base_type::construct(__a, std::__to_address(__p),
10714         std::forward<_Args>(__args)...);
10715      }
10716
10717
10718    template<typename _Ptr>
10719      static constexpr
10720      std::__enable_if_t<__is_custom_pointer<_Ptr>::value>
10721      destroy(_Alloc& __a, _Ptr __p)
10722      noexcept(noexcept(_Base_type::destroy(__a, std::__to_address(__p))))
10723      { _Base_type::destroy(__a, std::__to_address(__p)); }
10724
10725    static constexpr _Alloc _S_select_on_copy(const _Alloc& __a)
10726    { return _Base_type::select_on_container_copy_construction(__a); }
10727
10728    static constexpr void _S_on_swap(_Alloc& __a, _Alloc& __b)
10729    { std::__alloc_on_swap(__a, __b); }
10730
10731    static constexpr bool _S_propagate_on_copy_assign()
10732    { return _Base_type::propagate_on_container_copy_assignment::value; }
10733
10734    static constexpr bool _S_propagate_on_move_assign()
10735    { return _Base_type::propagate_on_container_move_assignment::value; }
10736
10737    static constexpr bool _S_propagate_on_swap()
10738    { return _Base_type::propagate_on_container_swap::value; }
10739
10740    static constexpr bool _S_always_equal()
10741    { return _Base_type::is_always_equal::value; }
10742
10743    static constexpr bool _S_nothrow_move()
10744    { return _S_propagate_on_move_assign() || _S_always_equal(); }
10745
10746    template<typename _Tp>
10747      struct rebind
10748      { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
10749# 166 "/opt/local/include/gcc10/c++/ext/alloc_traits.h" 3
10750  };
10751
10752
10753}
10754# 68 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 2 3
10755
10756namespace std __attribute__ ((__visibility__ ("default")))
10757{
10758
10759
10760
10761
10762
10763
10764
10765
10766  template<bool _TrivialValueTypes>
10767    struct __uninitialized_copy
10768    {
10769      template<typename _InputIterator, typename _ForwardIterator>
10770        static _ForwardIterator
10771        __uninit_copy(_InputIterator __first, _InputIterator __last,
10772        _ForwardIterator __result)
10773        {
10774   _ForwardIterator __cur = __result;
10775   try
10776     {
10777       for (; __first != __last; ++__first, (void)++__cur)
10778  std::_Construct(std::__addressof(*__cur), *__first);
10779       return __cur;
10780     }
10781   catch(...)
10782     {
10783       std::_Destroy(__result, __cur);
10784       throw;
10785     }
10786 }
10787    };
10788
10789  template<>
10790    struct __uninitialized_copy<true>
10791    {
10792      template<typename _InputIterator, typename _ForwardIterator>
10793        static _ForwardIterator
10794        __uninit_copy(_InputIterator __first, _InputIterator __last,
10795        _ForwardIterator __result)
10796        { return std::copy(__first, __last, __result); }
10797    };
10798# 123 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 3
10799  template<typename _InputIterator, typename _ForwardIterator>
10800    inline _ForwardIterator
10801    uninitialized_copy(_InputIterator __first, _InputIterator __last,
10802         _ForwardIterator __result)
10803    {
10804      typedef typename iterator_traits<_InputIterator>::value_type
10805 _ValueType1;
10806      typedef typename iterator_traits<_ForwardIterator>::value_type
10807 _ValueType2;
10808
10809
10810
10811
10812
10813      static_assert(is_constructible<_ValueType2, decltype(*__first)>::value,
10814   "result type must be constructible from value type of input range");
10815
10816      typedef typename iterator_traits<_InputIterator>::reference _RefType1;
10817      typedef typename iterator_traits<_ForwardIterator>::reference _RefType2;
10818
10819
10820      const bool __assignable = is_assignable<_RefType2, _RefType1>::value;
10821
10822
10823      return std::__uninitialized_copy<__is_trivial(_ValueType1)
10824           && __is_trivial(_ValueType2)
10825           && __assignable>::
10826 __uninit_copy(__first, __last, __result);
10827    }
10828
10829
10830
10831  template<bool _TrivialValueType>
10832    struct __uninitialized_fill
10833    {
10834      template<typename _ForwardIterator, typename _Tp>
10835        static void
10836        __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
10837        const _Tp& __x)
10838        {
10839   _ForwardIterator __cur = __first;
10840   try
10841     {
10842       for (; __cur != __last; ++__cur)
10843  std::_Construct(std::__addressof(*__cur), __x);
10844     }
10845   catch(...)
10846     {
10847       std::_Destroy(__first, __cur);
10848       throw;
10849     }
10850 }
10851    };
10852
10853  template<>
10854    struct __uninitialized_fill<true>
10855    {
10856      template<typename _ForwardIterator, typename _Tp>
10857        static void
10858        __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
10859        const _Tp& __x)
10860        { std::fill(__first, __last, __x); }
10861    };
10862# 198 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 3
10863  template<typename _ForwardIterator, typename _Tp>
10864    inline void
10865    uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
10866         const _Tp& __x)
10867    {
10868      typedef typename iterator_traits<_ForwardIterator>::value_type
10869 _ValueType;
10870
10871
10872
10873
10874
10875      static_assert(is_constructible<_ValueType, const _Tp&>::value,
10876   "result type must be constructible from input type");
10877
10878
10879
10880      const bool __assignable = is_copy_assignable<_ValueType>::value;
10881
10882
10883      std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>::
10884 __uninit_fill(__first, __last, __x);
10885    }
10886
10887
10888
10889  template<bool _TrivialValueType>
10890    struct __uninitialized_fill_n
10891    {
10892      template<typename _ForwardIterator, typename _Size, typename _Tp>
10893        static _ForwardIterator
10894        __uninit_fill_n(_ForwardIterator __first, _Size __n,
10895   const _Tp& __x)
10896        {
10897   _ForwardIterator __cur = __first;
10898   try
10899     {
10900       for (; __n > 0; --__n, (void) ++__cur)
10901  std::_Construct(std::__addressof(*__cur), __x);
10902       return __cur;
10903     }
10904   catch(...)
10905     {
10906       std::_Destroy(__first, __cur);
10907       throw;
10908     }
10909 }
10910    };
10911
10912  template<>
10913    struct __uninitialized_fill_n<true>
10914    {
10915      template<typename _ForwardIterator, typename _Size, typename _Tp>
10916        static _ForwardIterator
10917        __uninit_fill_n(_ForwardIterator __first, _Size __n,
10918   const _Tp& __x)
10919        { return std::fill_n(__first, __n, __x); }
10920    };
10921# 270 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 3
10922  template<typename _ForwardIterator, typename _Size, typename _Tp>
10923    inline _ForwardIterator
10924    uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
10925    {
10926      typedef typename iterator_traits<_ForwardIterator>::value_type
10927 _ValueType;
10928
10929
10930
10931
10932
10933      static_assert(is_constructible<_ValueType, const _Tp&>::value,
10934   "result type must be constructible from input type");
10935
10936
10937
10938      const bool __assignable = is_copy_assignable<_ValueType>::value;
10939
10940      return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>::
10941 __uninit_fill_n(__first, __n, __x);
10942    }
10943# 300 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 3
10944  template<typename _InputIterator, typename _ForwardIterator,
10945    typename _Allocator>
10946    _ForwardIterator
10947    __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
10948      _ForwardIterator __result, _Allocator& __alloc)
10949    {
10950      _ForwardIterator __cur = __result;
10951      try
10952 {
10953   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
10954   for (; __first != __last; ++__first, (void)++__cur)
10955     __traits::construct(__alloc, std::__addressof(*__cur), *__first);
10956   return __cur;
10957 }
10958      catch(...)
10959 {
10960   std::_Destroy(__result, __cur, __alloc);
10961   throw;
10962 }
10963    }
10964
10965  template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
10966    inline _ForwardIterator
10967    __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
10968      _ForwardIterator __result, allocator<_Tp>&)
10969    { return std::uninitialized_copy(__first, __last, __result); }
10970
10971  template<typename _InputIterator, typename _ForwardIterator,
10972    typename _Allocator>
10973    inline _ForwardIterator
10974    __uninitialized_move_a(_InputIterator __first, _InputIterator __last,
10975      _ForwardIterator __result, _Allocator& __alloc)
10976    {
10977      return std::__uninitialized_copy_a(std::make_move_iterator(__first),
10978      std::make_move_iterator(__last),
10979      __result, __alloc);
10980    }
10981
10982  template<typename _InputIterator, typename _ForwardIterator,
10983    typename _Allocator>
10984    inline _ForwardIterator
10985    __uninitialized_move_if_noexcept_a(_InputIterator __first,
10986           _InputIterator __last,
10987           _ForwardIterator __result,
10988           _Allocator& __alloc)
10989    {
10990      return std::__uninitialized_copy_a
10991 (std::__make_move_if_noexcept_iterator(__first),
10992  std::__make_move_if_noexcept_iterator(__last), __result, __alloc);
10993    }
10994
10995  template<typename _ForwardIterator, typename _Tp, typename _Allocator>
10996    void
10997    __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
10998      const _Tp& __x, _Allocator& __alloc)
10999    {
11000      _ForwardIterator __cur = __first;
11001      try
11002 {
11003   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
11004   for (; __cur != __last; ++__cur)
11005     __traits::construct(__alloc, std::__addressof(*__cur), __x);
11006 }
11007      catch(...)
11008 {
11009   std::_Destroy(__first, __cur, __alloc);
11010   throw;
11011 }
11012    }
11013
11014  template<typename _ForwardIterator, typename _Tp, typename _Tp2>
11015    inline void
11016    __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
11017      const _Tp& __x, allocator<_Tp2>&)
11018    { std::uninitialized_fill(__first, __last, __x); }
11019
11020  template<typename _ForwardIterator, typename _Size, typename _Tp,
11021    typename _Allocator>
11022    _ForwardIterator
11023    __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
11024        const _Tp& __x, _Allocator& __alloc)
11025    {
11026      _ForwardIterator __cur = __first;
11027      try
11028 {
11029   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
11030   for (; __n > 0; --__n, (void) ++__cur)
11031     __traits::construct(__alloc, std::__addressof(*__cur), __x);
11032   return __cur;
11033 }
11034      catch(...)
11035 {
11036   std::_Destroy(__first, __cur, __alloc);
11037   throw;
11038 }
11039    }
11040
11041  template<typename _ForwardIterator, typename _Size, typename _Tp,
11042    typename _Tp2>
11043    inline _ForwardIterator
11044    __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
11045        const _Tp& __x, allocator<_Tp2>&)
11046    { return std::uninitialized_fill_n(__first, __n, __x); }
11047# 414 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 3
11048  template<typename _InputIterator1, typename _InputIterator2,
11049    typename _ForwardIterator, typename _Allocator>
11050    inline _ForwardIterator
11051    __uninitialized_copy_move(_InputIterator1 __first1,
11052         _InputIterator1 __last1,
11053         _InputIterator2 __first2,
11054         _InputIterator2 __last2,
11055         _ForwardIterator __result,
11056         _Allocator& __alloc)
11057    {
11058      _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
11059          __result,
11060          __alloc);
11061      try
11062 {
11063   return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc);
11064 }
11065      catch(...)
11066 {
11067   std::_Destroy(__result, __mid, __alloc);
11068   throw;
11069 }
11070    }
11071
11072
11073
11074
11075
11076  template<typename _InputIterator1, typename _InputIterator2,
11077    typename _ForwardIterator, typename _Allocator>
11078    inline _ForwardIterator
11079    __uninitialized_move_copy(_InputIterator1 __first1,
11080         _InputIterator1 __last1,
11081         _InputIterator2 __first2,
11082         _InputIterator2 __last2,
11083         _ForwardIterator __result,
11084         _Allocator& __alloc)
11085    {
11086      _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1,
11087          __result,
11088          __alloc);
11089      try
11090 {
11091   return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
11092 }
11093      catch(...)
11094 {
11095   std::_Destroy(__result, __mid, __alloc);
11096   throw;
11097 }
11098    }
11099
11100
11101
11102
11103  template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
11104    typename _Allocator>
11105    inline _ForwardIterator
11106    __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid,
11107         const _Tp& __x, _InputIterator __first,
11108         _InputIterator __last, _Allocator& __alloc)
11109    {
11110      std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
11111      try
11112 {
11113   return std::__uninitialized_move_a(__first, __last, __mid, __alloc);
11114 }
11115      catch(...)
11116 {
11117   std::_Destroy(__result, __mid, __alloc);
11118   throw;
11119 }
11120    }
11121
11122
11123
11124
11125  template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
11126    typename _Allocator>
11127    inline void
11128    __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1,
11129         _ForwardIterator __first2,
11130         _ForwardIterator __last2, const _Tp& __x,
11131         _Allocator& __alloc)
11132    {
11133      _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1,
11134           __first2,
11135           __alloc);
11136      try
11137 {
11138   std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
11139 }
11140      catch(...)
11141 {
11142   std::_Destroy(__first2, __mid2, __alloc);
11143   throw;
11144 }
11145    }
11146# 521 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 3
11147  template<bool _TrivialValueType>
11148    struct __uninitialized_default_1
11149    {
11150      template<typename _ForwardIterator>
11151        static void
11152        __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
11153        {
11154   _ForwardIterator __cur = __first;
11155   try
11156     {
11157       for (; __cur != __last; ++__cur)
11158  std::_Construct(std::__addressof(*__cur));
11159     }
11160   catch(...)
11161     {
11162       std::_Destroy(__first, __cur);
11163       throw;
11164     }
11165 }
11166    };
11167
11168  template<>
11169    struct __uninitialized_default_1<true>
11170    {
11171      template<typename _ForwardIterator>
11172        static void
11173        __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
11174        {
11175   typedef typename iterator_traits<_ForwardIterator>::value_type
11176     _ValueType;
11177
11178   std::fill(__first, __last, _ValueType());
11179 }
11180    };
11181
11182  template<bool _TrivialValueType>
11183    struct __uninitialized_default_n_1
11184    {
11185      template<typename _ForwardIterator, typename _Size>
11186        static _ForwardIterator
11187        __uninit_default_n(_ForwardIterator __first, _Size __n)
11188        {
11189   _ForwardIterator __cur = __first;
11190   try
11191     {
11192       for (; __n > 0; --__n, (void) ++__cur)
11193  std::_Construct(std::__addressof(*__cur));
11194       return __cur;
11195     }
11196   catch(...)
11197     {
11198       std::_Destroy(__first, __cur);
11199       throw;
11200     }
11201 }
11202    };
11203
11204  template<>
11205    struct __uninitialized_default_n_1<true>
11206    {
11207      template<typename _ForwardIterator, typename _Size>
11208        static _ForwardIterator
11209        __uninit_default_n(_ForwardIterator __first, _Size __n)
11210        {
11211   typedef typename iterator_traits<_ForwardIterator>::value_type
11212     _ValueType;
11213
11214   return std::fill_n(__first, __n, _ValueType());
11215 }
11216    };
11217
11218
11219
11220
11221  template<typename _ForwardIterator>
11222    inline void
11223    __uninitialized_default(_ForwardIterator __first,
11224       _ForwardIterator __last)
11225    {
11226      typedef typename iterator_traits<_ForwardIterator>::value_type
11227 _ValueType;
11228
11229      const bool __assignable = is_copy_assignable<_ValueType>::value;
11230
11231      std::__uninitialized_default_1<__is_trivial(_ValueType)
11232         && __assignable>::
11233 __uninit_default(__first, __last);
11234    }
11235
11236
11237
11238  template<typename _ForwardIterator, typename _Size>
11239    inline _ForwardIterator
11240    __uninitialized_default_n(_ForwardIterator __first, _Size __n)
11241    {
11242      typedef typename iterator_traits<_ForwardIterator>::value_type
11243 _ValueType;
11244
11245      const bool __assignable = is_copy_assignable<_ValueType>::value;
11246
11247      return __uninitialized_default_n_1<__is_trivial(_ValueType)
11248           && __assignable>::
11249 __uninit_default_n(__first, __n);
11250    }
11251
11252
11253
11254
11255
11256  template<typename _ForwardIterator, typename _Allocator>
11257    void
11258    __uninitialized_default_a(_ForwardIterator __first,
11259         _ForwardIterator __last,
11260         _Allocator& __alloc)
11261    {
11262      _ForwardIterator __cur = __first;
11263      try
11264 {
11265   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
11266   for (; __cur != __last; ++__cur)
11267     __traits::construct(__alloc, std::__addressof(*__cur));
11268 }
11269      catch(...)
11270 {
11271   std::_Destroy(__first, __cur, __alloc);
11272   throw;
11273 }
11274    }
11275
11276  template<typename _ForwardIterator, typename _Tp>
11277    inline void
11278    __uninitialized_default_a(_ForwardIterator __first,
11279         _ForwardIterator __last,
11280         allocator<_Tp>&)
11281    { std::__uninitialized_default(__first, __last); }
11282
11283
11284
11285
11286
11287  template<typename _ForwardIterator, typename _Size, typename _Allocator>
11288    _ForwardIterator
11289    __uninitialized_default_n_a(_ForwardIterator __first, _Size __n,
11290    _Allocator& __alloc)
11291    {
11292      _ForwardIterator __cur = __first;
11293      try
11294 {
11295   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
11296   for (; __n > 0; --__n, (void) ++__cur)
11297     __traits::construct(__alloc, std::__addressof(*__cur));
11298   return __cur;
11299 }
11300      catch(...)
11301 {
11302   std::_Destroy(__first, __cur, __alloc);
11303   throw;
11304 }
11305    }
11306
11307  template<typename _ForwardIterator, typename _Size, typename _Tp>
11308    inline _ForwardIterator
11309    __uninitialized_default_n_a(_ForwardIterator __first, _Size __n,
11310    allocator<_Tp>&)
11311    { return std::__uninitialized_default_n(__first, __n); }
11312
11313  template<bool _TrivialValueType>
11314    struct __uninitialized_default_novalue_1
11315    {
11316      template<typename _ForwardIterator>
11317 static void
11318 __uninit_default_novalue(_ForwardIterator __first,
11319     _ForwardIterator __last)
11320 {
11321   _ForwardIterator __cur = __first;
11322   try
11323     {
11324       for (; __cur != __last; ++__cur)
11325  std::_Construct_novalue(std::__addressof(*__cur));
11326     }
11327   catch(...)
11328     {
11329       std::_Destroy(__first, __cur);
11330       throw;
11331     }
11332 }
11333    };
11334
11335  template<>
11336    struct __uninitialized_default_novalue_1<true>
11337    {
11338      template<typename _ForwardIterator>
11339        static void
11340        __uninit_default_novalue(_ForwardIterator __first,
11341     _ForwardIterator __last)
11342 {
11343 }
11344    };
11345
11346  template<bool _TrivialValueType>
11347    struct __uninitialized_default_novalue_n_1
11348    {
11349      template<typename _ForwardIterator, typename _Size>
11350 static _ForwardIterator
11351 __uninit_default_novalue_n(_ForwardIterator __first, _Size __n)
11352 {
11353   _ForwardIterator __cur = __first;
11354   try
11355     {
11356       for (; __n > 0; --__n, (void) ++__cur)
11357  std::_Construct_novalue(std::__addressof(*__cur));
11358       return __cur;
11359     }
11360   catch(...)
11361     {
11362       std::_Destroy(__first, __cur);
11363       throw;
11364     }
11365 }
11366    };
11367
11368  template<>
11369    struct __uninitialized_default_novalue_n_1<true>
11370    {
11371      template<typename _ForwardIterator, typename _Size>
11372 static _ForwardIterator
11373 __uninit_default_novalue_n(_ForwardIterator __first, _Size __n)
11374 { return std::next(__first, __n); }
11375    };
11376
11377
11378
11379
11380  template<typename _ForwardIterator>
11381    inline void
11382    __uninitialized_default_novalue(_ForwardIterator __first,
11383        _ForwardIterator __last)
11384    {
11385      typedef typename iterator_traits<_ForwardIterator>::value_type
11386 _ValueType;
11387
11388      std::__uninitialized_default_novalue_1<
11389 is_trivially_default_constructible<_ValueType>::value>::
11390 __uninit_default_novalue(__first, __last);
11391    }
11392
11393
11394
11395  template<typename _ForwardIterator, typename _Size>
11396    inline _ForwardIterator
11397    __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n)
11398    {
11399      typedef typename iterator_traits<_ForwardIterator>::value_type
11400 _ValueType;
11401
11402      return __uninitialized_default_novalue_n_1<
11403 is_trivially_default_constructible<_ValueType>::value>::
11404 __uninit_default_novalue_n(__first, __n);
11405    }
11406
11407  template<typename _InputIterator, typename _Size,
11408    typename _ForwardIterator>
11409    _ForwardIterator
11410    __uninitialized_copy_n(_InputIterator __first, _Size __n,
11411      _ForwardIterator __result, input_iterator_tag)
11412    {
11413      _ForwardIterator __cur = __result;
11414      try
11415 {
11416   for (; __n > 0; --__n, (void) ++__first, ++__cur)
11417     std::_Construct(std::__addressof(*__cur), *__first);
11418   return __cur;
11419 }
11420      catch(...)
11421 {
11422   std::_Destroy(__result, __cur);
11423   throw;
11424 }
11425    }
11426
11427  template<typename _RandomAccessIterator, typename _Size,
11428    typename _ForwardIterator>
11429    inline _ForwardIterator
11430    __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n,
11431      _ForwardIterator __result,
11432      random_access_iterator_tag)
11433    { return std::uninitialized_copy(__first, __first + __n, __result); }
11434
11435  template<typename _InputIterator, typename _Size,
11436    typename _ForwardIterator>
11437    pair<_InputIterator, _ForwardIterator>
11438    __uninitialized_copy_n_pair(_InputIterator __first, _Size __n,
11439      _ForwardIterator __result, input_iterator_tag)
11440    {
11441      _ForwardIterator __cur = __result;
11442      try
11443 {
11444   for (; __n > 0; --__n, (void) ++__first, ++__cur)
11445     std::_Construct(std::__addressof(*__cur), *__first);
11446   return {__first, __cur};
11447 }
11448      catch(...)
11449 {
11450   std::_Destroy(__result, __cur);
11451   throw;
11452 }
11453    }
11454
11455  template<typename _RandomAccessIterator, typename _Size,
11456    typename _ForwardIterator>
11457    inline pair<_RandomAccessIterator, _ForwardIterator>
11458    __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n,
11459      _ForwardIterator __result,
11460      random_access_iterator_tag)
11461    {
11462      auto __second_res = uninitialized_copy(__first, __first + __n, __result);
11463      auto __first_res = std::next(__first, __n);
11464      return {__first_res, __second_res};
11465    }
11466# 852 "/opt/local/include/gcc10/c++/bits/stl_uninitialized.h" 3
11467  template<typename _InputIterator, typename _Size, typename _ForwardIterator>
11468    inline _ForwardIterator
11469    uninitialized_copy_n(_InputIterator __first, _Size __n,
11470    _ForwardIterator __result)