asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T PKe[t@.. siginfo_t.hnu[#ifndef __siginfo_t_defined #define __siginfo_t_defined 1 #include #include #include #define __SI_MAX_SIZE 128 #if __WORDSIZE == 64 # define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) #else # define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3) #endif /* Some fields of siginfo_t have architecture-specific variations. */ #include #ifndef __SI_ALIGNMENT # define __SI_ALIGNMENT /* nothing */ #endif #ifndef __SI_BAND_TYPE # define __SI_BAND_TYPE long int #endif #ifndef __SI_CLOCK_T # define __SI_CLOCK_T __clock_t #endif #ifndef __SI_ERRNO_THEN_CODE # define __SI_ERRNO_THEN_CODE 1 #endif #ifndef __SI_HAVE_SIGSYS # define __SI_HAVE_SIGSYS 1 #endif #ifndef __SI_SIGFAULT_ADDL # define __SI_SIGFAULT_ADDL /* nothing */ #endif typedef struct { int si_signo; /* Signal number. */ #if __SI_ERRNO_THEN_CODE int si_errno; /* If non-zero, an errno value associated with this signal, as defined in . */ int si_code; /* Signal code. */ #else int si_code; int si_errno; #endif #if __WORDSIZE == 64 int __pad0; /* Explicit padding. */ #endif union { int _pad[__SI_PAD_SIZE]; /* kill(). */ struct { __pid_t si_pid; /* Sending process ID. */ __uid_t si_uid; /* Real user ID of sending process. */ } _kill; /* POSIX.1b timers. */ struct { int si_tid; /* Timer ID. */ int si_overrun; /* Overrun count. */ __sigval_t si_sigval; /* Signal value. */ } _timer; /* POSIX.1b signals. */ struct { __pid_t si_pid; /* Sending process ID. */ __uid_t si_uid; /* Real user ID of sending process. */ __sigval_t si_sigval; /* Signal value. */ } _rt; /* SIGCHLD. */ struct { __pid_t si_pid; /* Which child. */ __uid_t si_uid; /* Real user ID of sending process. */ int si_status; /* Exit value or signal. */ __SI_CLOCK_T si_utime; __SI_CLOCK_T si_stime; } _sigchld; /* SIGILL, SIGFPE, SIGSEGV, SIGBUS. */ struct { void *si_addr; /* Faulting insn/memory ref. */ __SI_SIGFAULT_ADDL short int si_addr_lsb; /* Valid LSB of the reported address. */ union { /* used when si_code=SEGV_BNDERR */ struct { void *_lower; void *_upper; } _addr_bnd; /* used when si_code=SEGV_PKUERR */ __uint32_t _pkey; } _bounds; } _sigfault; /* SIGPOLL. */ struct { long int si_band; /* Band event for SIGPOLL. */ int si_fd; } _sigpoll; /* SIGSYS. */ #if __SI_HAVE_SIGSYS struct { void *_call_addr; /* Calling user insn. */ int _syscall; /* Triggering system call number. */ unsigned int _arch; /* AUDIT_ARCH_* of syscall. */ } _sigsys; #endif } _sifields; } siginfo_t __SI_ALIGNMENT; /* X/Open requires some more fields with fixed names. */ #define si_pid _sifields._kill.si_pid #define si_uid _sifields._kill.si_uid #define si_timerid _sifields._timer.si_tid #define si_overrun _sifields._timer.si_overrun #define si_status _sifields._sigchld.si_status #define si_utime _sifields._sigchld.si_utime #define si_stime _sifields._sigchld.si_stime #define si_value _sifields._rt.si_sigval #define si_int _sifields._rt.si_sigval.sival_int #define si_ptr _sifields._rt.si_sigval.sival_ptr #define si_addr _sifields._sigfault.si_addr #define si_addr_lsb _sifields._sigfault.si_addr_lsb #define si_lower _sifields._sigfault._bounds._addr_bnd._lower #define si_upper _sifields._sigfault._bounds._addr_bnd._upper #define si_pkey _sifields._sigfault._bounds._pkey #define si_band _sifields._sigpoll.si_band #define si_fd _sifields._sigpoll.si_fd #if __SI_HAVE_SIGSYS # define si_call_addr _sifields._sigsys._call_addr # define si_syscall _sifields._sigsys._syscall # define si_arch _sifields._sigsys._arch #endif #endif PKe[O[5g struct_FILE.hnu[/* Copyright (C) 1991-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __struct_FILE_defined #define __struct_FILE_defined 1 /* Caution: The contents of this file are not part of the official stdio.h API. However, much of it is part of the official *binary* interface, and therefore cannot be changed. */ #if defined _IO_USE_OLD_IO_FILE && !defined _LIBC # error "_IO_USE_OLD_IO_FILE should only be defined when building libc itself" #endif #if defined _IO_lock_t_defined && !defined _LIBC # error "_IO_lock_t_defined should only be defined when building libc itself" #endif #include struct _IO_FILE; struct _IO_marker; struct _IO_codecvt; struct _IO_wide_data; /* During the build of glibc itself, _IO_lock_t will already have been defined by internal headers. */ #ifndef _IO_lock_t_defined typedef void _IO_lock_t; #endif /* The tag name of this struct is _IO_FILE to preserve historic C++ mangled names for functions taking FILE* arguments. That name should not be used in new code. */ struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ /* The following pointers correspond to the C++ streambuf protocol. */ char *_IO_read_ptr; /* Current read pointer */ char *_IO_read_end; /* End of get area. */ char *_IO_read_base; /* Start of putback+get area. */ char *_IO_write_base; /* Start of put area. */ char *_IO_write_ptr; /* Current put pointer. */ char *_IO_write_end; /* End of put area. */ char *_IO_buf_base; /* Start of reserve area. */ char *_IO_buf_end; /* End of reserve area. */ /* The following fields are used to support backing up and undo. */ char *_IO_save_base; /* Pointer to start of non-current get area. */ char *_IO_backup_base; /* Pointer to first valid character of backup area */ char *_IO_save_end; /* Pointer to end of non-current get area. */ struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; /* This used to be _offset but it's too small. */ /* 1+column number of pbase(); 0 is unknown. */ unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; #ifdef _IO_USE_OLD_IO_FILE }; struct _IO_FILE_complete { struct _IO_FILE _file; #endif __off64_t _offset; /* Wide character stream stuff. */ struct _IO_codecvt *_codecvt; struct _IO_wide_data *_wide_data; struct _IO_FILE *_freeres_list; void *_freeres_buf; size_t __pad5; int _mode; /* Make sure we don't get into trouble again. */ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; }; /* These macros are used by bits/stdio.h and internal headers. */ #define __getc_unlocked_body(_fp) \ (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) \ ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) #define __putc_unlocked_body(_ch, _fp) \ (__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) \ ? __overflow (_fp, (unsigned char) (_ch)) \ : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) #define _IO_EOF_SEEN 0x0010 #define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0) #define _IO_ERR_SEEN 0x0020 #define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0) #define _IO_USER_LOCK 0x8000 /* Many more flag bits are defined internally. */ #endif PKe[. */ #ifndef __error_t_defined # define __error_t_defined 1 typedef int error_t; #endif PKe[Q  locale_t.hnu[/* Definition of locale_t. Copyright (C) 2017-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_TYPES_LOCALE_T_H #define _BITS_TYPES_LOCALE_T_H 1 #include typedef __locale_t locale_t; #endif /* bits/types/locale_t.h */ PKe[%% stack_t.hnu[/* Define stack_t. Linux version. Copyright (C) 1998-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __stack_t_defined #define __stack_t_defined 1 #define __need_size_t #include /* Structure describing a signal stack. */ typedef struct { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; #endif PKe[Èstruct_statx_timestamp.hnu[/* Definition of the generic version of struct statx_timestamp. Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _SYS_STAT_H # error Never include directly, include instead. #endif #ifndef __statx_timestamp_defined #define __statx_timestamp_defined 1 struct statx_timestamp { __int64_t tv_sec; __uint32_t tv_nsec; __int32_t __statx_timestamp_pad1[1]; }; #endif /* __statx_timestamp_defined */ PKe['+m clockid_t.hnu[#ifndef __clockid_t_defined #define __clockid_t_defined 1 #include /* Clock ID used in clock and timer functions. */ typedef __clockid_t clockid_t; #endif PKe[ء6ߏ clock_t.hnu[#ifndef __clock_t_defined #define __clock_t_defined 1 #include /* Returned by `clock'. */ typedef __clock_t clock_t; #endif PKe[4Fstruct_osockaddr.hnu[#ifndef __osockaddr_defined #define __osockaddr_defined 1 /* This is the 4.3 BSD `struct sockaddr' format, which is used as wire format in the grotty old 4.3 `talk' protocol. */ struct osockaddr { unsigned short int sa_family; unsigned char sa_data[14]; }; #endif PKe['wint_t.hnu[#ifndef __wint_t_defined #define __wint_t_defined 1 /* Some versions of stddef.h provide wint_t, even though neither the C nor C++ standards, nor POSIX, specifies this. We assume that stddef.h will define the macro _WINT_T if and only if it provides wint_t, and conversely, that it will avoid providing wint_t if _WINT_T is already defined. */ #ifndef _WINT_T #define _WINT_T 1 /* Integral type unchanged by default argument promotions that can hold any value corresponding to members of the extended character set, as well as at least one value that does not correspond to any member of the extended character set. */ #ifndef __WINT_TYPE__ # define __WINT_TYPE__ unsigned int #endif typedef __WINT_TYPE__ wint_t; #endif /* _WINT_T */ #endif /* bits/types/wint_t.h */ PKe[J00struct_sched_param.hnu[/* Sched parameter structure. Generic version. Copyright (C) 1996-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_TYPES_STRUCT_SCHED_PARAM #define _BITS_TYPES_STRUCT_SCHED_PARAM 1 /* Data structure to describe a process' schedulability. */ struct sched_param { int sched_priority; }; #endif /* bits/types/struct_sched_param.h */ PKe[9xxstruct_timespec.hnu[/* NB: Include guard matches what uses. */ #ifndef _STRUCT_TIMESPEC #define _STRUCT_TIMESPEC 1 #include /* POSIX.1b structure for a time value. This is like a `struct timeval' but has nanoseconds instead of microseconds. */ struct timespec { __time_t tv_sec; /* Seconds. */ __syscall_slong_t tv_nsec; /* Nanoseconds. */ }; #endif PKe[!}} __fpos_t.hnu[#ifndef _____fpos_t_defined #define _____fpos_t_defined 1 #include #include /* The tag name of this struct is _G_fpos_t to preserve historic C++ mangled names for functions taking fpos_t arguments. That name should not be used in new code. */ typedef struct _G_fpos_t { __off_t __pos; __mbstate_t __state; } __fpos_t; #endif PKe[q {{ __sigval_t.hnu[/* Define __sigval_t. Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef ____sigval_t_defined #define ____sigval_t_defined /* Type for data associated with a signal. */ #ifdef __USE_POSIX199309 union sigval { int sival_int; void *sival_ptr; }; typedef union sigval __sigval_t; #else union __sigval { int __sival_int; void *__sival_ptr; }; typedef union __sigval __sigval_t; #endif #endif PKe[A]time_t.hnu[#ifndef __time_t_defined #define __time_t_defined 1 #include /* Returned by `time'. */ typedef __time_t time_t; #endif PKe[V/c struct_tm.hnu[#ifndef __struct_tm_defined #define __struct_tm_defined 1 #include /* ISO C `broken-down time' structure. */ struct tm { int tm_sec; /* Seconds. [0-60] (1 leap second) */ int tm_min; /* Minutes. [0-59] */ int tm_hour; /* Hours. [0-23] */ int tm_mday; /* Day. [1-31] */ int tm_mon; /* Month. [0-11] */ int tm_year; /* Year - 1900. */ int tm_wday; /* Day of week. [0-6] */ int tm_yday; /* Days in year.[0-365] */ int tm_isdst; /* DST. [-1/0/1]*/ # ifdef __USE_MISC long int tm_gmtoff; /* Seconds east of UTC. */ const char *tm_zone; /* Timezone abbreviation. */ # else long int __tm_gmtoff; /* Seconds east of UTC. */ const char *__tm_zone; /* Timezone abbreviation. */ # endif }; #endif PKe[|hhstruct_statx.hnu[/* Definition of the generic version of struct statx. Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _SYS_STAT_H # error Never include directly, include instead. #endif #ifndef __statx_defined #define __statx_defined 1 /* Warning: The kernel may add additional fields to this struct in the future. Only use this struct for calling the statx function, not for storing data. (Expansion will be controlled by the mask argument of the statx function.) */ struct statx { __uint32_t stx_mask; __uint32_t stx_blksize; __uint64_t stx_attributes; __uint32_t stx_nlink; __uint32_t stx_uid; __uint32_t stx_gid; __uint16_t stx_mode; __uint16_t __statx_pad1[1]; __uint64_t stx_ino; __uint64_t stx_size; __uint64_t stx_blocks; __uint64_t stx_attributes_mask; struct statx_timestamp stx_atime; struct statx_timestamp stx_btime; struct statx_timestamp stx_ctime; struct statx_timestamp stx_mtime; __uint32_t stx_rdev_major; __uint32_t stx_rdev_minor; __uint32_t stx_dev_major; __uint32_t stx_dev_minor; __uint64_t __statx_pad2[14]; }; #endif /* __statx_defined */ PKe[B;struct_timeval.hnu[#ifndef __timeval_defined #define __timeval_defined 1 #include /* A time value that is accurate to the nearest microsecond but also has a range of years. */ struct timeval { __time_t tv_sec; /* Seconds. */ __suseconds_t tv_usec; /* Microseconds. */ }; #endif PKe[hstruct_rusage.hnu[/* Define struct rusage. Copyright (C) 1994-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __rusage_defined #define __rusage_defined 1 #include #include /* Structure which says how much of each resource has been used. */ /* The purpose of all the unions is to have the kernel-compatible layout while keeping the API type as 'long int', and among machines where __syscall_slong_t is not 'long int', this only does the right thing for little-endian ones, like x32. */ struct rusage { /* Total amount of user time used. */ struct timeval ru_utime; /* Total amount of system time used. */ struct timeval ru_stime; /* Maximum resident set size (in kilobytes). */ __extension__ union { long int ru_maxrss; __syscall_slong_t __ru_maxrss_word; }; /* Amount of sharing of text segment memory with other processes (kilobyte-seconds). */ /* Maximum resident set size (in kilobytes). */ __extension__ union { long int ru_ixrss; __syscall_slong_t __ru_ixrss_word; }; /* Amount of data segment memory used (kilobyte-seconds). */ __extension__ union { long int ru_idrss; __syscall_slong_t __ru_idrss_word; }; /* Amount of stack memory used (kilobyte-seconds). */ __extension__ union { long int ru_isrss; __syscall_slong_t __ru_isrss_word; }; /* Number of soft page faults (i.e. those serviced by reclaiming a page from the list of pages awaiting reallocation. */ __extension__ union { long int ru_minflt; __syscall_slong_t __ru_minflt_word; }; /* Number of hard page faults (i.e. those that required I/O). */ __extension__ union { long int ru_majflt; __syscall_slong_t __ru_majflt_word; }; /* Number of times a process was swapped out of physical memory. */ __extension__ union { long int ru_nswap; __syscall_slong_t __ru_nswap_word; }; /* Number of input operations via the file system. Note: This and `ru_oublock' do not include operations with the cache. */ __extension__ union { long int ru_inblock; __syscall_slong_t __ru_inblock_word; }; /* Number of output operations via the file system. */ __extension__ union { long int ru_oublock; __syscall_slong_t __ru_oublock_word; }; /* Number of IPC messages sent. */ __extension__ union { long int ru_msgsnd; __syscall_slong_t __ru_msgsnd_word; }; /* Number of IPC messages received. */ __extension__ union { long int ru_msgrcv; __syscall_slong_t __ru_msgrcv_word; }; /* Number of signals delivered. */ __extension__ union { long int ru_nsignals; __syscall_slong_t __ru_nsignals_word; }; /* Number of voluntary context switches, i.e. because the process gave up the process before it had to (usually to wait for some resource to be available). */ __extension__ union { long int ru_nvcsw; __syscall_slong_t __ru_nvcsw_word; }; /* Number of involuntary context switches, i.e. a higher priority process became runnable or the current process used up its time slice. */ __extension__ union { long int ru_nivcsw; __syscall_slong_t __ru_nivcsw_word; }; }; #endif PKe[  __fpos64_t.hnu[#ifndef _____fpos64_t_defined #define _____fpos64_t_defined 1 #include #include /* The tag name of this struct is _G_fpos64_t to preserve historic C++ mangled names for functions taking fpos_t and/or fpos64_t arguments. That name should not be used in new code. */ typedef struct _G_fpos64_t { __off64_t __pos; __mbstate_t __state; } __fpos64_t; #endif PKe[ V$sig_atomic_t.hnu[#ifndef __sig_atomic_t_defined #define __sig_atomic_t_defined 1 #include /* An integral type that can be modified atomically, without the possibility of a signal arriving in the middle of the operation. */ typedef __sig_atomic_t sig_atomic_t; #endif PKe[R@  struct_itimerspec.hnu[#ifndef __itimerspec_defined #define __itimerspec_defined 1 #include #include /* POSIX.1b structure for timer start values and intervals. */ struct itimerspec { struct timespec it_interval; struct timespec it_value; }; #endif PKe[hP mbstate_t.hnu[#ifndef __mbstate_t_defined #define __mbstate_t_defined 1 #include typedef __mbstate_t mbstate_t; #endif PKe[v cookie_io_functions_t.hnu[/* Copyright (C) 1991-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __cookie_io_functions_t_defined #define __cookie_io_functions_t_defined 1 #include /* Functions to do I/O and file management for a stream. */ /* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF. Return number of bytes read. */ typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, size_t __nbytes); /* Write NBYTES bytes pointed to by BUF to COOKIE. Write all NBYTES bytes unless there is an error. Return number of bytes written. If there is an error, return 0 and do not write anything. If the file has been opened for append (__mode.__append set), then set the file pointer to the end of the file and then do the write; if not, just write at the current file pointer. */ typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, size_t __nbytes); /* Move COOKIE's file position to *POS bytes from the beginning of the file (if W is SEEK_SET), the current position (if W is SEEK_CUR), or the end of the file (if W is SEEK_END). Set *POS to the new file position. Returns zero if successful, nonzero if not. */ typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); /* Close COOKIE. */ typedef int cookie_close_function_t (void *__cookie); /* The structure with the cookie function pointers. The tag name of this struct is _IO_cookie_io_functions_t to preserve historic C++ mangled names for functions taking cookie_io_functions_t arguments. That name should not be used in new code. */ typedef struct _IO_cookie_io_functions_t { cookie_read_function_t *read; /* Read bytes. */ cookie_write_function_t *write; /* Write bytes. */ cookie_seek_function_t *seek; /* Seek/tell file position. */ cookie_close_function_t *close; /* Close file. */ } cookie_io_functions_t; #endif PKe[E __locale_t.hnu[/* Definition of struct __locale_struct and __locale_t. Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_TYPES___LOCALE_T_H #define _BITS_TYPES___LOCALE_T_H 1 /* POSIX.1-2008: the locale_t type, representing a locale context (implementation-namespace version). This type should be treated as opaque by applications; some details are exposed for the sake of efficiency in e.g. ctype functions. */ struct __locale_struct { /* Note: LC_ALL is not a valid index into this array. */ struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */ /* To increase the speed of this solution we add some special members. */ const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; /* Note: LC_ALL is not a valid index into this array. */ const char *__names[13]; }; typedef struct __locale_struct *__locale_t; #endif /* bits/types/__locale_t.h */ PKe[A00struct_sigstack.hnu[/* Define struct sigstack. Copyright (C) 1998-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __sigstack_defined #define __sigstack_defined 1 /* Structure describing a signal stack (obsolete). */ struct sigstack { void *ss_sp; /* Signal stack pointer. */ int ss_onstack; /* Nonzero if executing on this stack. */ }; #endif PKe[yh sigevent_t.hnu[#ifndef __sigevent_t_defined #define __sigevent_t_defined 1 #include #include #include #define __SIGEV_MAX_SIZE 64 #if __WORDSIZE == 64 # define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) #else # define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3) #endif /* Forward declaration. */ #ifndef __have_pthread_attr_t typedef union pthread_attr_t pthread_attr_t; # define __have_pthread_attr_t 1 #endif /* Structure to transport application-defined values with signals. */ typedef struct sigevent { __sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[__SIGEV_PAD_SIZE]; /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the thread to receive the signal. */ __pid_t _tid; struct { void (*_function) (__sigval_t); /* Function to start. */ pthread_attr_t *_attribute; /* Thread attributes. */ } _sigev_thread; } _sigev_un; } sigevent_t; /* POSIX names to access some of the members. */ #define sigev_notify_function _sigev_un._sigev_thread._function #define sigev_notify_attributes _sigev_un._sigev_thread._attribute #endif PKe[V res_state.hnu[#ifndef __res_state_defined #define __res_state_defined 1 #include #include /* res_state: the global state used by the resolver stub. */ #define MAXNS 3 /* max # name servers we'll track */ #define MAXDFLSRCH 3 /* # default domain levels to try */ #define MAXDNSRCH 6 /* max # domains in search path */ #define MAXRESOLVSORT 10 /* number of net to sort on */ struct __res_state { int retrans; /* retransmition time interval */ int retry; /* number of times to retransmit */ unsigned long options; /* option flags - see below. */ int nscount; /* number of name servers */ struct sockaddr_in nsaddr_list[MAXNS]; /* address of name server */ unsigned short id; /* current message id */ /* 2 byte hole here. */ char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ char defdname[256]; /* default domain (deprecated) */ unsigned long pfcode; /* RES_PRF_ flags - see below. */ unsigned ndots:4; /* threshold for initial abs. query */ unsigned nsort:4; /* number of elements in sort_list[] */ unsigned ipv6_unavail:1; /* connecting to IPv6 server failed */ unsigned unused:23; struct { struct in_addr addr; uint32_t mask; } sort_list[MAXRESOLVSORT]; /* 4 byte hole here on 64-bit architectures. */ void * __glibc_unused_qhook; void * __glibc_unused_rhook; int res_h_errno; /* last one set for this context */ int _vcsock; /* PRIVATE: for res_send VC i/o */ unsigned int _flags; /* PRIVATE: see below */ /* 4 byte hole here on 64-bit architectures. */ union { char pad[52]; /* On an i386 this means 512b total. */ struct { uint16_t nscount; uint16_t nsmap[MAXNS]; int nssocks[MAXNS]; uint16_t nscount6; uint16_t nsinit; struct sockaddr_in6 *nsaddrs[MAXNS]; #ifdef _LIBC unsigned long long int __glibc_extension_index __attribute__((packed)); #else unsigned int __glibc_reserved[2]; #endif } _ext; } _u; }; typedef struct __res_state *res_state; #endif /* __res_state_defined */ PKe[΅8WW sigval_t.hnu[#ifndef __sigval_t_defined #define __sigval_t_defined #include /* To avoid sigval_t (not a standard type name) having C++ name mangling depending on whether the selected standard includes union sigval, it should not be defined at all when using a standard for which the sigval name is not reserved; in that case, headers should not include and should use only the internal __sigval_t name. */ #ifndef __USE_POSIX199309 # error "sigval_t defined for standard not including union sigval" #endif typedef __sigval_t sigval_t; #endif PKe[D@~))struct_iovec.hnu[/* Define struct iovec. Copyright (C) 1996-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __iovec_defined #define __iovec_defined 1 #define __need_size_t #include /* Structure for scatter/gather I/O. */ struct iovec { void *iov_base; /* Pointer to data. */ size_t iov_len; /* Length of data. */ }; #endif PKe[,ߴFILE.hnu[#ifndef __FILE_defined #define __FILE_defined 1 struct _IO_FILE; /* The opaque type of streams. This is the definition used elsewhere. */ typedef struct _IO_FILE FILE; #endif PKe[tnn__FILE.hnu[#ifndef ____FILE_defined #define ____FILE_defined 1 struct _IO_FILE; typedef struct _IO_FILE __FILE; #endif PKe[<44 __mbstate_t.hnu[#ifndef ____mbstate_t_defined #define ____mbstate_t_defined 1 /* Integral type unchanged by default argument promotions that can hold any value corresponding to members of the extended character set, as well as at least one value that does not correspond to any member of the extended character set. */ #ifndef __WINT_TYPE__ # define __WINT_TYPE__ unsigned int #endif /* Conversion state information. */ typedef struct { int __count; union { __WINT_TYPE__ __wch; char __wchb[4]; } __value; /* Value so far. */ } __mbstate_t; #endif PKe[> sigset_t.hnu[#ifndef __sigset_t_defined #define __sigset_t_defined 1 #include /* A set of signals to be blocked, unblocked, or waited for. */ typedef __sigset_t sigset_t; #endif PKe[qؠ __sigset_t.hnu[#ifndef ____sigset_t_defined #define ____sigset_t_defined #define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) typedef struct { unsigned long int __val[_SIGSET_NWORDS]; } __sigset_t; #endif PKe[b}ǟ timer_t.hnu[#ifndef __timer_t_defined #define __timer_t_defined 1 #include /* Timer ID returned by `timer_create'. */ typedef __timer_t timer_t; #endif PKXf[z)  level5nu[partial default xkb_types "default" { // Defines a type with an eight-level shift, similar to the three-level // type used for iso9995, but it lets the Shift key behave "normally". virtual_modifiers LevelThree,ScrollLock,LevelFive; type "EIGHT_LEVEL" { modifiers = Shift+LevelThree+LevelFive; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[LevelFive] = Level5; map[Shift+LevelFive] = Level6; map[LevelThree+LevelFive] = Level7; map[Shift+LevelThree+LevelFive] = Level8; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; type "EIGHT_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree+LevelFive; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Lock+Shift+LevelThree] = Level3; map[LevelFive] = Level5; map[Shift+LevelFive] = Level6; map[Lock+LevelFive] = Level6; map[LevelThree+LevelFive] = Level7; map[Shift+LevelThree+LevelFive] = Level8; map[Lock+LevelThree+LevelFive] = Level8; map[Lock+Shift+LevelThree+LevelFive] = Level7; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" { // Level5-Lock is implemented by using NumLock, because a real modifier // is required. modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[LevelThree+Shift] = Level4; map[LevelFive] = Level5; map[LevelFive+Shift] = Level6; map[LevelFive+LevelThree] = Level7; map[LevelFive+LevelThree+Shift] = Level8; map[NumLock] = Level5; map[NumLock+Shift] = Level6; map[NumLock+LevelThree] = Level7; map[NumLock+LevelThree+Shift] = Level8; map[NumLock+LevelFive] = Level1; map[NumLock+LevelFive+Shift] = Level2; map[NumLock+LevelFive+LevelThree] = Level3; map[NumLock+LevelFive+LevelThree+Shift] = Level4; // Lock has no effect map[Lock] = Level1; map[Lock+Shift] = Level2; map[Lock+LevelThree] = Level3; map[Lock+LevelThree+Shift] = Level4; map[Lock+LevelFive] = Level5; map[Lock+LevelFive+Shift] = Level6; map[Lock+LevelFive+LevelThree] = Level7; map[Lock+LevelFive+LevelThree+Shift] = Level8; map[Lock+NumLock] = Level5; map[Lock+NumLock+Shift] = Level6; map[Lock+NumLock+LevelThree] = Level7; map[Lock+NumLock+LevelThree+Shift] = Level8; map[Lock+NumLock+LevelFive] = Level1; map[Lock+NumLock+LevelFive+Shift] = Level2; map[Lock+NumLock+LevelFive+LevelThree] = Level3; map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; preserve[LevelFive+Shift] = Shift; preserve[NumLock+Shift] = Shift; preserve[Lock+LevelFive+Shift] = Shift; preserve[Lock+NumLock+Shift] = Shift; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" { // Level5-Lock is implemented by using NumLock, because a real modifier // is required. modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[LevelThree+Shift] = Level4; map[LevelFive] = Level5; map[LevelFive+Shift] = Level6; map[LevelFive+LevelThree] = Level7; map[LevelFive+LevelThree+Shift] = Level8; map[NumLock] = Level5; map[NumLock+Shift] = Level6; map[NumLock+LevelThree] = Level7; map[NumLock+LevelThree+Shift] = Level8; map[NumLock+LevelFive] = Level1; map[NumLock+LevelFive+Shift] = Level2; map[NumLock+LevelFive+LevelThree] = Level3; map[NumLock+LevelFive+LevelThree+Shift] = Level4; // Lock interchanges Level1 and Level2 map[Lock] = Level2; map[Lock+Shift] = Level1; map[Lock+LevelThree] = Level3; map[Lock+LevelThree+Shift] = Level4; map[Lock+LevelFive] = Level5; map[Lock+LevelFive+Shift] = Level6; map[Lock+LevelFive+LevelThree] = Level7; map[Lock+LevelFive+LevelThree+Shift] = Level8; map[Lock+NumLock] = Level5; map[Lock+NumLock+Shift] = Level6; map[Lock+NumLock+LevelThree] = Level7; map[Lock+NumLock+LevelThree+Shift] = Level8; map[Lock+NumLock+LevelFive] = Level2; map[Lock+NumLock+LevelFive+Shift] = Level1; map[Lock+NumLock+LevelFive+LevelThree] = Level4; map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3; preserve[LevelFive+Shift] = Shift; preserve[NumLock+Shift] = Shift; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; type "EIGHT_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree+LevelFive; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; map[LevelFive] = Level5; map[Shift+LevelFive] = Level6; map[Lock+LevelFive] = Level6; map[Lock+Shift+LevelFive] = Level6; map[LevelThree+LevelFive] = Level7; map[Shift+LevelThree+LevelFive] = Level8; map[Lock+LevelThree+LevelFive] = Level7; map[Lock+Shift+LevelThree+LevelFive] = Level8; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; preserve[Lock+LevelFive] = Lock; preserve[Lock+Shift+LevelFive] = Lock; preserve[Lock+LevelThree+LevelFive] = Lock; preserve[Lock+Shift+LevelThree+LevelFive] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; }; PKXf[56k defaultnu[default xkb_types "default" { include "basic" include "pc" include "iso9995" include "extra" include "numpad" include "level5" include "mousekeys" }; PKXf[+v mousekeysnu[partial default xkb_types "default" { virtual_modifiers Alt; type "SHIFT+ALT" { modifiers = Shift+Alt; map[Shift+Alt] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Shift+Alt"; }; }; PKXf[]G..nokianu[partial default xkb_types "default" { // A type that is used by Nokia devices and keyboards. virtual_modifiers LevelThree; type "PC_FN_LEVEL2" { modifiers = LevelThree; map[None] = Level1; map[LevelThree] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Fn"; }; }; PKXf[\dnumpadnu[partial default xkb_types "pc" { type "KEYPAD" { modifiers = Shift+NumLock; map[None] = Level1; map[Shift] = Level2; map[NumLock] = Level2; map[Shift+NumLock] = Level1; level_name[Level1] = "Base"; level_name[Level2] = "Number"; }; include "extra(keypad)" }; // On Mac keypads, level 1 and 2 are swapped. partial xkb_types "mac" { type "KEYPAD" { modifiers = None; map[None] = Level2; level_name[Level2] = "Number"; }; include "extra(keypad)" }; partial xkb_types "microsoft" { type "KEYPAD" { modifiers = Shift+NumLock; map[None] = Level1; preserve[Shift] = Shift; map[NumLock] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Number"; }; include "extra(keypad)" }; // Swiss-German style numeric keypad: Shift and NumLock operate as // two independent modifiers; however, since we want shift state for // the cursor keys, only three levels are used from the key mappings. // Closest type is actually FOUR_LEVEL_X, but most numpad layouts use // FOUR_LEVEL_MIXED_KEYPAD, so that's the one we are going to override. partial xkb_types "shift3" { type "FOUR_LEVEL_MIXED_KEYPAD" { modifiers = Shift+NumLock+Control+Alt; // NumLock Off => navigate using cursor keys map[None] = Level1; // NumLock Off + Shift pressed => select using cursor keys preserve[Shift] = Shift; // NumLock On => decimal digits map[NumLock] = Level2; // NumLock On + Shift pressed => auxiliary symbols, // e.g. hexadecimal digits map[Shift+NumLock] = Level3; // Ctrl + Alt, regardless of NumLock and Shift => command keys map[Control+Alt] = Level4; // reverse map from levels to modifiers level_name[Level1] = "Base"; level_name[Level2] = "NumLock"; level_name[Level3] = "Shift+NumLock"; level_name[Level4] = "Ctrl+Alt"; }; }; PKXf[薪capsnu[// CapsLock uses internal capitalization rules, // Shift "pauses" CapsLock. partial xkb_types "internal" { type "ALPHABETIC" { modifiers = Shift+Lock; map[Shift] = Level2; preserve[Lock] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; preserve[Lock] = Lock; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level3; preserve[Lock+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; preserve[Lock] = Lock; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; }; // CapsLock uses internal capitalization rules, // Shift does not cancel CapsLock. partial xkb_types "internal_nocancel" { type "ALPHABETIC" { modifiers = Shift; map[Shift] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { // the same as FOUR_LEVEL_ALPHABETIC modifiers = Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; }; // CapsLock acts as Shift with locking, // Shift "pauses" CapsLock. partial xkb_types "shift" { type "ALPHABETIC" { modifiers = Shift+Lock; map[Shift] = Level2; map[Lock] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Shift+Lock+LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; }; // CapsLock acts as Shift with locking, // Shift does not cancel CapsLock. partial xkb_types "shift_nocancel" { type "ALPHABETIC" { modifiers = Shift+Lock; map[Shift] = Level2; map[Lock] = Level2; map[Shift+Lock] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[Shift+Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Shift+Lock+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[Shift+Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; }; PKXf[0 completenu[default xkb_types "complete" { include "basic" include "mousekeys" include "pc" include "iso9995" include "level5" include "extra" include "numpad" }; PKXf[>{.READMEnu[The types component of a keyboard mapping specifies the key types that can be associated with the various keyboard keys. The types component can optionally contain also real modifier bindings and symbolic names for one or more virtual modifiers. PKXf[6__basicnu[default xkb_types "basic" { // Fairly standard definitions for // three of the four required key types. // The fourth type "KEYPAD" is defined in the "numpad" file. virtual_modifiers NumLock; type "ONE_LEVEL" { modifiers = None; map[None] = Level1; level_name[Level1]= "Any"; }; type "TWO_LEVEL" { modifiers = Shift; map[Shift] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; }; type "ALPHABETIC" { modifiers = Shift+Lock; map[Shift] = Level2; map[Lock] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; }; PKXf[OJ==extranu[partial default xkb_types "default" { // Defines a type with a four-level shift, similar to the three-level // type used for iso9995, but it lets the Shift key behave "normally". virtual_modifiers LevelThree; type "FOUR_LEVEL" { modifiers = Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Lock+Shift+LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; // A four-level keypad variant. The first two levels are controlled by // NumLock (with active shifting like in KEYPAD). LevelThree overrides // this mode, with two additional shifted levels. type "FOUR_LEVEL_MIXED_KEYPAD" { modifiers = Shift+NumLock+LevelThree; map[None] = Level1; map[Shift+NumLock] = Level1; map[NumLock] = Level2; map[Shift] = Level2; map[LevelThree] = Level3; map[NumLock+LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Shift+NumLock+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Number"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; // Base level, two shifted LevelThree levels, one Ctrl+Alt command level. type "FOUR_LEVEL_X" { modifiers = Shift+LevelThree+Control+Alt; map[None] = Level1; map[LevelThree] = Level2; map[Shift+LevelThree] = Level3; map[Control+Alt] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Alt Base"; level_name[Level3] = "Shift Alt"; level_name[Level4] = "Ctrl+Alt"; }; // A special type for keys used in the Serbian Latin Unicode keymap. // It makes it possible to use all three forms of latin letters // present in Unicode that are made up of two separate letters // (forms like LJ, Lj, and lj; NJ, Nj, and nj; etcetera). type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level4; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level3; preserve[Lock]= Lock; preserve[Lock+LevelThree]= Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "AltGr Base"; level_name[Level4] = "Shift AltGr"; }; // A key type for the German ssharp (for example), which is capitalized as SS. // CHARACTERISTICS: // It is FOUR_LEVEL with the exception that the fifth level is mapped to the // Lock modifier. If other modifiers are used, the Lock state is ignored. // DETAILS ABOUT GERMAN: // The capital form of ssharp (called sharp s) only exists for completely // capitalized text, not for words at the beginning of sentences nor for // nouns (nouns in German normally start with a captial letter). // The ssharp key, to the right of the zero key, takes this into account // and has a questionmark mapped to Shift-ssharp since normally no capital // version is needed. // When typing with active CapsLock, this key type is needed to // output two capital letters S because this is the only German key // whose capital letter is not the same as the one typed with Shift. type "FOUR_LEVEL_PLUS_LOCK" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock] = Level5; map[Lock+Shift] = Level2; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "Lock"; }; }; // This enables the four-level shifting also for the keypad. partial xkb_types "keypad" { virtual_modifiers LevelThree; type "FOUR_LEVEL_KEYPAD" { modifiers = Shift+NumLock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[NumLock] = Level2; map[Shift+NumLock] = Level1; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[NumLock+LevelThree] = Level4; map[Shift+NumLock+LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Number"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Alt Number"; }; }; PKXf[2쒭iso9995nu[partial default xkb_types "default" { // A key type which can be used to implement // an ISO9995-style level-three shift. virtual_modifiers LevelThree; type "THREE_LEVEL" { modifiers = Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Level3"; }; }; PKXf[B}cancelnu[partial default xkb_types "Shift_Cancels_Caps" { override type "TWO_LEVEL" { modifiers = Shift+Lock; map[Shift] = Level2; preserve[Lock]= Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; }; }; PKXf[J  pcnu[partial default xkb_types "default" { // Some types that are necessary // for a full implementation of // a PC-compatible keyboard. virtual_modifiers Alt; virtual_modifiers LevelThree; virtual_modifiers LAlt; virtual_modifiers RAlt; virtual_modifiers RControl; virtual_modifiers LControl; type "PC_SUPER_LEVEL2" { modifiers = Mod4; map[None] = Level1; map[Mod4] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Super"; }; type "PC_CONTROL_LEVEL2" { modifiers = Control; map[None] = Level1; map[Control] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Control"; }; type "PC_LCONTROL_LEVEL2" { modifiers = LControl; map[None] = Level1; map[LControl] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "LControl"; }; type "PC_RCONTROL_LEVEL2" { modifiers = RControl; map[None] = Level1; map[RControl] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "RControl"; }; type "PC_ALT_LEVEL2" { modifiers = Alt; map[None] = Level1; map[Alt] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Alt"; }; type "PC_LALT_LEVEL2" { modifiers = LAlt; map[None] = Level1; map[LAlt] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "LAlt"; }; type "PC_RALT_LEVEL2" { modifiers = RAlt; map[None] = Level1; map[RAlt] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "RAlt"; }; type "CTRL+ALT" { modifiers = Control+Alt+Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Control+Alt] = Level5; preserve[Shift] = Shift; preserve[Shift+LevelThree] = Shift; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "Ctrl+Alt"; }; // Local eight level. // Needed when you want part of your layout eight-level but cannot use // LevelFive as modifier, as this will take over the right Ctrl by default // for the whole layout and is too invasive for the average four-level user. // Needed to fix bug #9529. // FIXME: Should really use RControl but it seems not to be enabled by // default and touching this requires a lot of testing. type "LOCAL_EIGHT_LEVEL" { modifiers = Shift+Lock+LevelThree+Control; map[None] = Level1; map[Lock+Shift] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Control] = Level5; map[Lock+Shift+Control] = Level5; map[Shift+Control] = Level6; map[Lock+Control] = Level6; map[LevelThree+Control] = Level7; map[Lock+Shift+LevelThree+Control] = Level7; map[Shift+LevelThree+Control] = Level8; map[Lock+LevelThree+Control] = Level8; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Level3"; level_name[Level4] = "Shift Level3"; level_name[Level5] = "Ctrl"; level_name[Level6] = "Shift Ctrl"; level_name[Level7] = "Level3 Ctrl"; level_name[Level8] = "Shift Level3 Ctrl"; }; }; PKe[t@.. siginfo_t.hnu[PKe[O[5g istruct_FILE.hnu[PKe[ zsigset_t.hnu[PKe[qؠ w__sigset_t.hnu[PKe[b}ǟ timer_t.hnu[PKXf[z)  Ylevel5nu[PKXf[56k defaultnu[PKXf[+v mousekeysnu[PKXf[]G..nokianu[PKXf[\dnumpadnu[PKXf[薪capsnu[PKXf[0 completenu[PKXf[>{.READMEnu[PKXf[6__basicnu[PKXf[OJ==gextranu[PKXf[2쒭iso9995nu[PKXf[B}cancelnu[PKXf[J  pcnu[PK11V%