From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31011 invoked by alias); 7 Jul 2009 02:40:45 -0000 Received: (qmail 30982 invoked by uid 22791); 7 Jul 2009 02:40:38 -0000 X-SWARE-Spam-Status: No, hits=-0.4 required=5.0 tests=AWL,BAYES_50,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-pz0-f203.google.com (HELO mail-pz0-f203.google.com) (209.85.222.203) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 07 Jul 2009 02:40:26 +0000 Received: by pzk41 with SMTP id 41so3954041pzk.12 for ; Mon, 06 Jul 2009 19:40:23 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.43.19 with SMTP id q19mr1641757wfq.156.1246934423785; Mon, 06 Jul 2009 19:40:23 -0700 (PDT) Date: Tue, 07 Jul 2009 02:40:00 -0000 Message-ID: Subject: [RFA/RFC Prec] Add Linux AMD64 process record support second version, (AMD64 Linux system call support) 3/3 From: Hui Zhu To: gdb-patches ml , Michael Snyder Content-Type: multipart/mixed; boundary=000e0cd20cd6635375046e148bac X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-07/txt/msg00173.txt.bz2 --000e0cd20cd6635375046e148bac Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 30779 Add prec support like i386-linux-tdep.c. 2009-07-07 Hui Zhu Add Linux AMD64 process record support. * amd64-linux-tdep.c (amd64_linux_record_tdep): New variable. This struct has the argument for the function "record_linux_system_call". (amd64_linux_syscall_record): New function. Parse the system call instruction and call function "record_linux_system_call" to record execute log. (i386_linux_init_abi): Initialize "amd64_linux_record_tdep". Set "amd64_linux_syscall_record" to "i386_syscall_record". --- amd64-linux-tdep.c | 1290 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1290 insertions(+) --- a/amd64-linux-tdep.c +++ b/amd64-linux-tdep.c @@ -36,6 +36,9 @@ #include "amd64-tdep.h" #include "solib-svr4.h" +#include "record.h" +#include "linux-record.h" + /* Mapping between the general-purpose registers in `struct user' format and GDB's register cache layout. */ @@ -260,6 +263,1127 @@ amd64_linux_write_pc (struct regcache *r regcache_cooked_write_unsigned (regcache, AMD64_LINUX_ORIG_RAX_REGNUM, -1); } +/* Parse the arguments of current system call instruction and record + the values of the registers and memory that will be changed into + "record_arch_list". This instruction is "syscall". + + Return -1 if something wrong. */ + +static struct linux_record_tdep amd64_linux_record_tdep; + +#define RECORD_ARCH_GET_FS 0x1003 +#define RECORD_ARCH_GET_GS 0x1004 + +static int +amd64_linux_syscall_record (struct regcache *regcache) +{ + int ret, num = -1; + ULONGEST tmpulongest; + + regcache_raw_read_unsigned (regcache, AMD64_RAX_REGNUM, &tmpulongest); + + /* Covent tmpulongest to number in record_linux_system_call. */ + switch (tmpulongest) + { + /* sys_read */ + case 0: + num = 3; + break; + /* sys_write */ + case 1: + num = 4; + break; + /* sys_open */ + case 2: + num = 5; + break; + /* sys_close */ + case 3: + num = 6; + break; + /* sys_newstat */ + case 4: + num = 106; + break; + /* sys_newfstat */ + case 5: + num = 108; + break; + /* sys_newlstat */ + case 6: + num = 107; + break; + /* sys_poll */ + case 7: + num = 168; + break; + /* sys_lseek */ + case 8: + num = 19; + break; + /* sys_mmap */ + case 9: + num = 192; + break; + /* sys_mprotect */ + case 10: + num = 125; + break; + /* sys_munmap */ + case 11: + num = 91; + break; + /* sys_brk */ + case 12: + num = 45; + break; + /* sys_rt_sigaction */ + case 13: + num = 174; + break; + /* sys_rt_sigprocmask */ + case 14: + num = 175; + break; + /* sys_rt_sigreturn */ + case 15: + num = 173; + break; + /* sys_ioctl */ + case 16: + num = 54; + break; + /* sys_pread64 */ + case 17: + num = 180; + break; + /* sys_pwrite64 */ + case 18: + num = 181; + break; + /* sys_readv */ + case 19: + num = 145; + break; + /* sys_writev */ + case 20: + num = 146; + break; + /* sys_access */ + case 21: + num = 33; + break; + /* sys_pipe */ + case 22: + num = 42; + break; + /* sys_select */ + case 23: + num = 142; + break; + /* sys_sched_yield */ + case 24: + num = 158; + break; + /* sys_mremap */ + case 25: + num = 163; + break; + /* sys_msync */ + case 26: + num = 144; + break; + /* sys_mincore */ + case 27: + num = 218; + break; + /* sys_madvise */ + case 28: + num = 219; + break; + /* sys_shmget */ + case 29: + num = 520; + break; + /* sys_shmat */ + case 30: + num = 521; + break; + /* sys_shmctl */ + case 31: + num = 522; + break; + /* sys_dup */ + case 32: + num = 41; + break; + /* sys_dup2 */ + case 33: + num = 63; + break; + /* sys_pause */ + case 34: + num = 29; + break; + /* sys_nanosleep */ + case 35: + num = 162; + break; + /* sys_getitimer */ + case 36: + num = 105; + break; + /* sys_alarm */ + case 37: + num = 27; + break; + /* sys_setitimer */ + case 38: + num = 104; + break; + /* sys_getpid */ + case 39: + num = 20; + break; + /* sys_sendfile64 */ + case 40: + num = 239; + break; + /* sys_socket */ + case 41: + num = 500; + break; + /* sys_connect */ + case 42: + num = 501; + break; + /* sys_accept */ + case 43: + num = 502; + break; + /* sys_sendto */ + case 44: + num = 503; + break; + /* sys_recvfrom */ + case 45: + num = 504; + break; + /* sys_sendmsg */ + case 46: + num = 505; + break; + /* sys_recvmsg */ + case 47: + num = 506; + break; + /* sys_shutdown */ + case 48: + num = 507; + break; + /* sys_bind */ + case 49: + num = 508; + break; + /* sys_listen */ + case 50: + num = 509; + break; + /* sys_getsockname */ + case 51: + num = 510; + break; + /* sys_getpeername */ + case 52: + num = 511; + break; + /* sys_socketpair */ + case 53: + num = 512; + break; + /* sys_setsockopt */ + case 54: + num = 513; + break; + /* sys_getsockopt */ + case 55: + num = 514; + break; + /* sys_clone */ + case 56: + num = 120; + break; + /* sys_fork */ + case 57: + num = 2; + break; + /* sys_vfork */ + case 58: + num = 190; + break; + /* sys_execve */ + case 59: + num = 11; + break; + /* sys_exit */ + case 60: + num = 1; + break; + /* sys_wait4 */ + case 61: + num = 114; + break; + /* sys_kill */ + case 62: + num = 37; + break; + /* sys_uname */ + case 63: + num = 109; + break; + /* sys_semget */ + case 64: + num = 523; + break; + /* sys_semop */ + case 65: + num = 524; + break; + /* sys_semctl */ + case 66: + num = 525; + break; + /* sys_shmdt */ + case 67: + num = 527; + break; + /* sys_msgget */ + case 68: + num = 528; + break; + /* sys_msgsnd */ + case 69: + num = 529; + break; + /* sys_msgrcv */ + case 70: + num = 530; + break; + /* sys_msgctl */ + case 71: + num = 531; + break; + /* sys_fcntl */ + case 72: + num = 55; + break; + /* sys_flock */ + case 73: + num = 143; + break; + /* sys_fsync */ + case 74: + num = 118; + break; + /* sys_fdatasync */ + case 75: + num = 148; + break; + /* sys_truncate */ + case 76: + num = 92; + break; + /* sys_ftruncate */ + case 77: + num = 93; + break; + /* sys_getdents */ + case 78: + num = 141; + break; + /* sys_getcwd */ + case 79: + num = 183; + break; + /* sys_chdir */ + case 80: + num = 12; + break; + /* sys_fchdir */ + case 81: + num = 133; + break; + /* sys_rename */ + case 82: + num = 38; + break; + /* sys_mkdir */ + case 83: + num = 39; + break; + /* sys_rmdir */ + case 84: + num = 40; + break; + /* sys_creat */ + case 85: + num = 8; + break; + /* sys_link */ + case 86: + num = 9; + break; + /* sys_unlink */ + case 87: + num = 10; + break; + /* sys_symlink */ + case 88: + num = 83; + break; + /* sys_readlink */ + case 89: + num = 85; + break; + /* sys_chmod */ + case 90: + num = 15; + break; + /* sys_fchmod */ + case 91: + num = 94; + break; + /* sys_chown */ + case 92: + num = 212; + break; + /* sys_fchown */ + case 93: + num = 207; + break; + /* sys_lchown */ + case 94: + num = 198; + break; + /* sys_umask */ + case 95: + num = 60; + break; + /* sys_gettimeofday */ + case 96: + num = 78; + break; + /* sys_getrlimit */ + case 97: + num = 191; + break; + /* sys_getrusage */ + case 98: + num = 77; + break; + /* sys_sysinfo */ + case 99: + num = 116; + break; + /* sys_times */ + case 100: + num = 43; + break; + /* sys_ptrace */ + case 101: + num = 26; + break; + /* sys_getuid */ + case 102: + num = 199; + break; + /* sys_syslog */ + case 103: + num = 103; + break; + /* sys_getgid */ + case 104: + num = 200; + break; + /* sys_setuid */ + case 105: + num = 213; + break; + /* sys_setgid */ + case 106: + num = 214; + break; + /* sys_geteuid */ + case 107: + num = 201; + break; + /* sys_getegid */ + case 108: + num = 202; + break; + /* sys_setpgid */ + case 109: + num = 57; + break; + /* sys_getppid */ + case 110: + num = 64; + break; + /* sys_getpgrp */ + case 111: + num = 65; + break; + /* sys_setsid */ + case 112: + num = 66; + break; + /* sys_setreuid */ + case 113: + num = 203; + break; + /* sys_setregid */ + case 114: + num = 204; + break; + /* sys_getgroups */ + case 115: + num = 205; + break; + /* sys_setgroups */ + case 116: + num = 206; + break; + /* sys_setresuid */ + case 117: + num = 208; + break; + /* sys_getresuid */ + case 118: + num = 209; + break; + /* sys_setresgid */ + case 119: + num = 210; + break; + /* sys_getresgid */ + case 120: + num = 211; + break; + /* sys_getpgid */ + case 121: + num = 132; + break; + /* sys_setfsuid */ + case 122: + num = 215; + break; + /* sys_setfsgid */ + case 123: + num = 216; + break; + /* sys_getsid */ + case 124: + num = 147; + break; + /* sys_capget */ + case 125: + num = 184; + break; + /* sys_capset */ + case 126: + num = 185; + break; + /* sys_rt_sigpending */ + case 127: + num = 176; + break; + /* sys_rt_sigtimedwait */ + case 128: + num = 177; + break; + /* sys_rt_sigqueueinfo */ + case 129: + num = 178; + break; + /* sys_rt_sigsuspend */ + case 130: + num = 179; + break; + /* sys_sigaltstack */ + case 131: + num = 186; + break; + /* sys_utime */ + case 132: + num = 30; + break; + /* sys_mknod */ + case 133: + num = 14; + break; + /* sys_personality */ + case 135: + num = 136; + break; + /* sys_ustat */ + case 136: + num = 62; + break; + /* sys_statfs */ + case 137: + num = 99; + break; + /* sys_fstatfs */ + case 138: + num = 100; + break; + /* sys_sysfs */ + case 139: + num = 135; + break; + /* sys_getpriority */ + case 140: + num = 96; + break; + /* sys_setpriority */ + case 141: + num = 97; + break; + /* sys_sched_setparam */ + case 142: + num = 154; + break; + /* sys_sched_getparam */ + case 143: + num = 155; + break; + /* sys_sched_setscheduler */ + case 144: + num = 156; + break; + /* sys_sched_getscheduler */ + case 145: + num = 157; + break; + /* sys_sched_get_priority_max */ + case 146: + num = 159; + break; + /* sys_sched_get_priority_min */ + case 147: + num = 160; + break; + /* sys_sched_rr_get_interval */ + case 148: + num = 161; + break; + /* sys_mlock */ + case 149: + num = 150; + break; + /* sys_munlock */ + case 150: + num = 151; + break; + /* sys_mlockall */ + case 151: + num = 152; + break; + /* sys_munlockall */ + case 152: + num = 153; + break; + /* sys_vhangup */ + case 153: + num = 111; + break; + /* sys_modify_ldt */ + case 154: + num = 123; + break; + /* sys_pivot_root */ + case 155: + num = 217; + break; + /* sys_sysctl */ + case 156: + num = 149; + break; + /* sys_prctl */ + case 157: + num = 172; + break; + /* sys_arch_prctl */ + case 158: + regcache_raw_read_unsigned (regcache, amd64_linux_record_tdep.arg3, + &tmpulongest); + if (tmpulongest == RECORD_ARCH_GET_FS + || tmpulongest == RECORD_ARCH_GET_GS) + { + regcache_raw_read_unsigned (regcache, amd64_linux_record_tdep.arg2, + &tmpulongest); + if (record_arch_list_add_mem ((CORE_ADDR)tmpulongest, + amd64_linux_record_tdep.size_ulong)) + return -1; + } + break; + /* sys_adjtimex */ + case 159: + num = 124; + break; + /* sys_setrlimit */ + case 160: + num = 75; + break; + /* sys_chroot */ + case 161: + num = 61; + break; + /* sys_sync */ + case 162: + num = 36; + break; + /* sys_acct */ + case 163: + num = 51; + break; + /* sys_settimeofday */ + case 164: + num = 79; + break; + /* sys_mount */ + case 165: + num = 21; + break; + /* sys_umount */ + case 166: + num = 52; + break; + /* sys_swapon */ + case 167: + num = 87; + break; + /* sys_swapoff */ + case 168: + num = 115; + break; + /* sys_reboot */ + case 169: + num = 88; + break; + /* sys_sethostname */ + case 170: + num = 74; + break; + /* sys_setdomainname */ + case 171: + num = 121; + break; + /* sys_iopl */ + case 172: + num = 110; + break; + /* sys_ioperm */ + case 173: + num = 101; + break; + /* sys_init_module */ + case 175: + num = 128; + break; + /* sys_delete_module */ + case 176: + num = 129; + break; + /* sys_quotactl */ + case 179: + num = 131; + break; + /* sys_nfsservctl */ + case 180: + num = 169; + break; + /* sys_gettid */ + case 186: + num = 224; + break; + /* sys_readahead */ + case 187: + num = 225; + break; + /* sys_setxattr */ + case 188: + num = 226; + break; + /* sys_lsetxattr */ + case 189: + num = 227; + break; + /* sys_fsetxattr */ + case 190: + num = 228; + break; + /* sys_getxattr */ + case 191: + num = 229; + break; + /* sys_lgetxattr */ + case 192: + num = 230; + break; + /* sys_fgetxattr */ + case 193: + num = 231; + break; + /* sys_listxattr */ + case 194: + num = 232; + break; + /* sys_llistxattr */ + case 195: + num = 233; + break; + /* sys_flistxattr */ + case 196: + num = 234; + break; + /* sys_removexattr */ + case 197: + num = 235; + break; + /* sys_lremovexattr */ + case 198: + num = 236; + break; + /* sys_fremovexattr */ + case 199: + num = 237; + break; + /* sys_tkill */ + case 200: + num = 238; + break; + /* sys_time */ + case 201: + num = 13; + break; + /* sys_futex */ + case 202: + num = 240; + break; + /* sys_sched_setaffinity */ + case 203: + num = 241; + break; + /* sys_sched_getaffinity */ + case 204: + num = 242; + break; + /* sys_io_setup */ + case 206: + num = 245; + break; + /* sys_io_destroy */ + case 207: + num = 246; + break; + /* sys_io_getevents */ + case 208: + num = 247; + break; + /* sys_io_submit */ + case 209: + num = 248; + break; + /* sys_io_cancel */ + case 210: + num = 249; + break; + /* sys_lookup_dcookie */ + case 212: + num = 253; + break; + /* sys_epoll_create */ + case 213: + num = 254; + break; + /* sys_remap_file_pages */ + case 216: + num = 257; + break; + /* sys_getdents64 */ + case 217: + num = 220; + break; + /* sys_set_tid_address */ + case 218: + num = 258; + break; + /* sys_restart_syscall */ + case 219: + num = 0; + break; + /* sys_semtimedop */ + case 220: + num = 532; + break; + /* sys_fadvise64 */ + case 221: + num = 250; + break; + /* sys_timer_create */ + case 222: + num = 259; + break; + /* sys_timer_settime */ + case 223: + num = 260; + break; + /* sys_timer_gettime */ + case 224: + num = 261; + break; + /* sys_timer_getoverrun */ + case 225: + num = 262; + break; + /* sys_timer_delete */ + case 226: + num = 263; + break; + /* sys_clock_settime */ + case 227: + num = 264; + break; + /* sys_clock_gettime */ + case 228: + num = 265; + break; + /* sys_clock_getres */ + case 229: + num = 266; + break; + /* sys_clock_nanosleep */ + case 230: + num = 267; + break; + /* sys_exit_group */ + case 231: + num = 252; + break; + /* sys_epoll_wait */ + case 232: + num = 256; + break; + /* sys_epoll_ctl */ + case 233: + num = 255; + break; + /* sys_tgkill */ + case 234: + num = 270; + break; + /* sys_utimes */ + case 235: + num = 271; + break; + /* sys_mbind */ + case 237: + num = 274; + break; + /* sys_set_mempolicy */ + case 238: + num = 276; + break; + /* sys_get_mempolicy */ + case 239: + num = 275; + break; + /* sys_mq_open */ + case 240: + num = 277; + break; + /* sys_mq_unlink */ + case 241: + num = 278; + break; + /* sys_mq_timedsend */ + case 242: + num = 279; + break; + /* sys_mq_timedreceive */ + case 243: + num = 280; + break; + /* sys_mq_notify */ + case 244: + num = 281; + break; + /* sys_mq_getsetattr */ + case 245: + num = 282; + break; + /* sys_kexec_load */ + case 246: + num = 283; + break; + /* sys_waitid */ + case 247: + num = 284; + break; + /* sys_add_key */ + case 248: + num = 286; + break; + /* sys_request_key */ + case 249: + num = 287; + break; + /* sys_keyctl */ + case 250: + num = 288; + break; + /* sys_ioprio_set */ + case 251: + num = 289; + break; + /* sys_ioprio_get */ + case 252: + num = 290; + break; + /* sys_inotify_init */ + case 253: + num = 291; + break; + /* sys_inotify_add_watch */ + case 254: + num = 292; + break; + /* sys_inotify_rm_watch */ + case 255: + num = 293; + break; + /* sys_migrate_pages */ + case 256: + num = 294; + break; + /* sys_openat */ + case 257: + num = 295; + break; + /* sys_mkdirat */ + case 258: + num = 296; + break; + /* sys_mknodat */ + case 259: + num = 297; + break; + /* sys_fchownat */ + case 260: + num = 298; + break; + /* sys_futimesat */ + case 261: + num = 299; + break; + /* sys_newfstatat */ + case 262: + num = 540; + break; + /* sys_unlinkat */ + case 263: + num = 301; + break; + /* sys_renameat */ + case 264: + num = 302; + break; + /* sys_linkat */ + case 265: + num = 303; + break; + /* sys_symlinkat */ + case 266: + num = 304; + break; + /* sys_readlinkat */ + case 267: + num = 305; + break; + /* sys_fchmodat */ + case 268: + num = 306; + break; + /* sys_faccessat */ + case 269: + num = 307; + break; + /* sys_pselect6 */ + case 270: + num = 308; + break; + /* sys_ppoll */ + case 271: + num = 309; + break; + /* sys_unshare */ + case 272: + num = 310; + break; + /* sys_set_robust_list */ + case 273: + num = 311; + break; + /* sys_get_robust_list */ + case 274: + num = 312; + break; + /* sys_splice */ + case 275: + num = 313; + break; + /* sys_tee */ + case 276: + num = 315; + break; + /* sys_sync_file_range */ + case 277: + num = 314; + break; + /* sys_vmsplice */ + case 278: + num = 316; + break; + /* sys_move_pages */ + case 279: + num = 317; + break; + default: + printf_unfiltered (_("Process record and replay target doesn't " + "support syscall number %d\n"), (int)tmpulongest); + return -1; + break; + } + + if (num >= 0) + { + ret = record_linux_system_call (num, regcache, + &amd64_linux_record_tdep); + if (ret) + return ret; + } + + /* Record the return value of the system call. */ + if (record_arch_list_add_reg (regcache, AMD64_RCX_REGNUM)) + return -1; + if (record_arch_list_add_reg (regcache, AMD64_R11_REGNUM)) + return -1; + + + return 0; +} + static void amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { @@ -301,6 +1425,172 @@ amd64_linux_init_abi (struct gdbarch_inf displaced_step_at_entry_point); set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type); + + set_gdbarch_process_record (gdbarch, i386_process_record); + + /* Initialize the amd64_linux_record_tdep. */ + /* These values are the size of the type that will be used in a system + call. They are obtained from Linux Kernel source. */ + amd64_linux_record_tdep.size_pointer = 8; + amd64_linux_record_tdep.size__old_kernel_stat = 32; + amd64_linux_record_tdep.size_tms = 32; + amd64_linux_record_tdep.size_loff_t = 8; + amd64_linux_record_tdep.size_flock = 32; + amd64_linux_record_tdep.size_oldold_utsname = 45; + amd64_linux_record_tdep.size_ustat = 32; + /* ADM64 doesn't need this size because it doesn't have sys_sigaction + but sys_rt_sigaction. */ + amd64_linux_record_tdep.size_old_sigaction = 152; + /* ADM64 doesn't need this size because it doesn't have sys_sigpending + but sys_rt_sigpending. */ + amd64_linux_record_tdep.size_old_sigset_t = 128; + amd64_linux_record_tdep.size_rlimit = 16; + amd64_linux_record_tdep.size_rusage = 144; + amd64_linux_record_tdep.size_timeval = 16; + amd64_linux_record_tdep.size_timezone = 8; + /* ADM64 doesn't need this size because it doesn't have sys_getgroups16 + but sys_getgroups. */ + amd64_linux_record_tdep.size_old_gid_t = 2; + /* ADM64 doesn't need this size because it doesn't have sys_getresuid16 + but sys_getresuid. */ + amd64_linux_record_tdep.size_old_uid_t = 2; + amd64_linux_record_tdep.size_fd_set = 128; + amd64_linux_record_tdep.size_dirent = 280; + amd64_linux_record_tdep.size_dirent64 = 280; + amd64_linux_record_tdep.size_statfs = 120; + amd64_linux_record_tdep.size_statfs64 = 120; + amd64_linux_record_tdep.size_sockaddr = 16; + amd64_linux_record_tdep.size_int = 4; + amd64_linux_record_tdep.size_long = 8; + amd64_linux_record_tdep.size_ulong = 8; + amd64_linux_record_tdep.size_msghdr = 56; + amd64_linux_record_tdep.size_itimerval = 32; + amd64_linux_record_tdep.size_stat = 144; + amd64_linux_record_tdep.size_old_utsname = 325; + amd64_linux_record_tdep.size_sysinfo = 112; + amd64_linux_record_tdep.size_msqid_ds = 120; + amd64_linux_record_tdep.size_shmid_ds = 112; + amd64_linux_record_tdep.size_new_utsname = 390; + amd64_linux_record_tdep.size_timex = 208; + amd64_linux_record_tdep.size_mem_dqinfo = 24; + amd64_linux_record_tdep.size_if_dqblk = 72; + amd64_linux_record_tdep.size_fs_quota_stat = 80; + amd64_linux_record_tdep.size_timespec = 16; + amd64_linux_record_tdep.size_pollfd = 8; + amd64_linux_record_tdep.size_NFS_FHSIZE = 32; + amd64_linux_record_tdep.size_knfsd_fh = 132; + amd64_linux_record_tdep.size_TASK_COMM_LEN = 16; + amd64_linux_record_tdep.size_sigaction = 152; + amd64_linux_record_tdep.size_sigset_t = 128; + amd64_linux_record_tdep.size_siginfo_t = 128; + amd64_linux_record_tdep.size_cap_user_data_t = 8; + amd64_linux_record_tdep.size_stack_t = 24; + amd64_linux_record_tdep.size_off_t = 8; + amd64_linux_record_tdep.size_stat64 = 144; + amd64_linux_record_tdep.size_gid_t = 4; + amd64_linux_record_tdep.size_uid_t = 4; + amd64_linux_record_tdep.size_PAGE_SIZE = 4096; + amd64_linux_record_tdep.size_flock64 = 32; + amd64_linux_record_tdep.size_user_desc = 16; + amd64_linux_record_tdep.size_io_event = 32; + amd64_linux_record_tdep.size_iocb = 64; + amd64_linux_record_tdep.size_epoll_event = 12; + amd64_linux_record_tdep.size_itimerspec = 32; + amd64_linux_record_tdep.size_mq_attr = 64; + amd64_linux_record_tdep.size_siginfo = 128; + amd64_linux_record_tdep.size_termios = 60; + amd64_linux_record_tdep.size_termios2 = 44; + amd64_linux_record_tdep.size_pid_t = 4; + amd64_linux_record_tdep.size_winsize = 8; + amd64_linux_record_tdep.size_serial_struct = 72; + amd64_linux_record_tdep.size_serial_icounter_struct = 80; + amd64_linux_record_tdep.size_hayes_esp_config = 12; + amd64_linux_record_tdep.size_size_t = 8; + amd64_linux_record_tdep.size_iovec = 16; + + /* These values are the second argument of system call "sys_ioctl". + They are obtained from Linux Kernel source. */ + amd64_linux_record_tdep.ioctl_TCGETS = 0x5401; + amd64_linux_record_tdep.ioctl_TCSETS = 0x5402; + amd64_linux_record_tdep.ioctl_TCSETSW = 0x5403; + amd64_linux_record_tdep.ioctl_TCSETSF = 0x5404; + amd64_linux_record_tdep.ioctl_TCGETA = 0x5405; + amd64_linux_record_tdep.ioctl_TCSETA = 0x5406; + amd64_linux_record_tdep.ioctl_TCSETAW = 0x5407; + amd64_linux_record_tdep.ioctl_TCSETAF = 0x5408; + amd64_linux_record_tdep.ioctl_TCSBRK = 0x5409; + amd64_linux_record_tdep.ioctl_TCXONC = 0x540A; + amd64_linux_record_tdep.ioctl_TCFLSH = 0x540B; + amd64_linux_record_tdep.ioctl_TIOCEXCL = 0x540C; + amd64_linux_record_tdep.ioctl_TIOCNXCL = 0x540D; + amd64_linux_record_tdep.ioctl_TIOCSCTTY = 0x540E; + amd64_linux_record_tdep.ioctl_TIOCGPGRP = 0x540F; + amd64_linux_record_tdep.ioctl_TIOCSPGRP = 0x5410; + amd64_linux_record_tdep.ioctl_TIOCOUTQ = 0x5411; + amd64_linux_record_tdep.ioctl_TIOCSTI = 0x5412; + amd64_linux_record_tdep.ioctl_TIOCGWINSZ = 0x5413; + amd64_linux_record_tdep.ioctl_TIOCSWINSZ = 0x5414; + amd64_linux_record_tdep.ioctl_TIOCMGET = 0x5415; + amd64_linux_record_tdep.ioctl_TIOCMBIS = 0x5416; + amd64_linux_record_tdep.ioctl_TIOCMBIC = 0x5417; + amd64_linux_record_tdep.ioctl_TIOCMSET = 0x5418; + amd64_linux_record_tdep.ioctl_TIOCGSOFTCAR = 0x5419; + amd64_linux_record_tdep.ioctl_TIOCSSOFTCAR = 0x541A; + amd64_linux_record_tdep.ioctl_FIONREAD = 0x541B; + amd64_linux_record_tdep.ioctl_TIOCINQ = amd64_linux_record_tdep.ioctl_FIONREAD; + amd64_linux_record_tdep.ioctl_TIOCLINUX = 0x541C; + amd64_linux_record_tdep.ioctl_TIOCCONS = 0x541D; + amd64_linux_record_tdep.ioctl_TIOCGSERIAL = 0x541E; + amd64_linux_record_tdep.ioctl_TIOCSSERIAL = 0x541F; + amd64_linux_record_tdep.ioctl_TIOCPKT = 0x5420; + amd64_linux_record_tdep.ioctl_FIONBIO = 0x5421; + amd64_linux_record_tdep.ioctl_TIOCNOTTY = 0x5422; + amd64_linux_record_tdep.ioctl_TIOCSETD = 0x5423; + amd64_linux_record_tdep.ioctl_TIOCGETD = 0x5424; + amd64_linux_record_tdep.ioctl_TCSBRKP = 0x5425; + amd64_linux_record_tdep.ioctl_TIOCTTYGSTRUCT = 0x5426; + amd64_linux_record_tdep.ioctl_TIOCSBRK = 0x5427; + amd64_linux_record_tdep.ioctl_TIOCCBRK = 0x5428; + amd64_linux_record_tdep.ioctl_TIOCGSID = 0x5429; + amd64_linux_record_tdep.ioctl_TCGETS2 = 0x802c542a; + amd64_linux_record_tdep.ioctl_TCSETS2 = 0x402c542b; + amd64_linux_record_tdep.ioctl_TCSETSW2 = 0x402c542c; + amd64_linux_record_tdep.ioctl_TCSETSF2 = 0x402c542d; + amd64_linux_record_tdep.ioctl_TIOCGPTN = 0x80045430; + amd64_linux_record_tdep.ioctl_TIOCSPTLCK = 0x40045431; + amd64_linux_record_tdep.ioctl_FIONCLEX = 0x5450; + amd64_linux_record_tdep.ioctl_FIOCLEX = 0x5451; + amd64_linux_record_tdep.ioctl_FIOASYNC = 0x5452; + amd64_linux_record_tdep.ioctl_TIOCSERCONFIG = 0x5453; + amd64_linux_record_tdep.ioctl_TIOCSERGWILD = 0x5454; + amd64_linux_record_tdep.ioctl_TIOCSERSWILD = 0x5455; + amd64_linux_record_tdep.ioctl_TIOCGLCKTRMIOS = 0x5456; + amd64_linux_record_tdep.ioctl_TIOCSLCKTRMIOS = 0x5457; + amd64_linux_record_tdep.ioctl_TIOCSERGSTRUCT = 0x5458; + amd64_linux_record_tdep.ioctl_TIOCSERGETLSR = 0x5459; + amd64_linux_record_tdep.ioctl_TIOCSERGETMULTI = 0x545A; + amd64_linux_record_tdep.ioctl_TIOCSERSETMULTI = 0x545B; + amd64_linux_record_tdep.ioctl_TIOCMIWAIT = 0x545C; + amd64_linux_record_tdep.ioctl_TIOCGICOUNT = 0x545D; + amd64_linux_record_tdep.ioctl_TIOCGHAYESESP = 0x545E; + amd64_linux_record_tdep.ioctl_TIOCSHAYESESP = 0x545F; + amd64_linux_record_tdep.ioctl_FIOQSIZE = 0x5460; + + /* These values are the second argument of system call "sys_fcntl" + and "sys_fcntl64". They are obtained from Linux Kernel source. */ + amd64_linux_record_tdep.fcntl_F_GETLK = 5; + amd64_linux_record_tdep.fcntl_F_GETLK64 = 12; + amd64_linux_record_tdep.fcntl_F_SETLK64 = 13; + amd64_linux_record_tdep.fcntl_F_SETLKW64 = 14; + + amd64_linux_record_tdep.arg1 = AMD64_RDI_REGNUM; + amd64_linux_record_tdep.arg2 = AMD64_RSI_REGNUM; + amd64_linux_record_tdep.arg3 = AMD64_RDX_REGNUM; + amd64_linux_record_tdep.arg4 = AMD64_R10_REGNUM; + amd64_linux_record_tdep.arg5 = AMD64_R8_REGNUM; + amd64_linux_record_tdep.arg6 = AMD64_R9_REGNUM; + + tdep->i386_syscall_record = amd64_linux_syscall_record; } --000e0cd20cd6635375046e148bac Content-Type: text/plain; charset=US-ASCII; name="prec_amd64_syscall.txt" Content-Disposition: attachment; filename="prec_amd64_syscall.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fwu0nxfm0 Content-length: 41009 LS0tCiBhbWQ2NC1saW51eC10ZGVwLmMgfCAxMjkwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMTI5MCBpbnNlcnRpb25zKCspCgotLS0gYS9hbWQ2NC1s aW51eC10ZGVwLmMKKysrIGIvYW1kNjQtbGludXgtdGRlcC5jCkBAIC0zNiw2 ICszNiw5IEBACiAjaW5jbHVkZSAiYW1kNjQtdGRlcC5oIgogI2luY2x1ZGUg InNvbGliLXN2cjQuaCIKIAorI2luY2x1ZGUgInJlY29yZC5oIgorI2luY2x1 ZGUgImxpbnV4LXJlY29yZC5oIgorCiAvKiBNYXBwaW5nIGJldHdlZW4gdGhl IGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgaW4gYHN0cnVjdCB1c2VyJwog ICAgZm9ybWF0IGFuZCBHREIncyByZWdpc3RlciBjYWNoZSBsYXlvdXQuICAq LwogCkBAIC0yNjAsNiArMjYzLDExMjcgQEAgYW1kNjRfbGludXhfd3JpdGVf cGMgKHN0cnVjdCByZWdjYWNoZSAqcgogICByZWdjYWNoZV9jb29rZWRfd3Jp dGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBBTUQ2NF9MSU5VWF9PUklHX1JBWF9S RUdOVU0sIC0xKTsKIH0KIAorLyogUGFyc2UgdGhlIGFyZ3VtZW50cyBvZiBj dXJyZW50IHN5c3RlbSBjYWxsIGluc3RydWN0aW9uIGFuZCByZWNvcmQKKyAg IHRoZSB2YWx1ZXMgb2YgdGhlIHJlZ2lzdGVycyBhbmQgbWVtb3J5IHRoYXQg d2lsbCBiZSBjaGFuZ2VkIGludG8KKyAgICJyZWNvcmRfYXJjaF9saXN0Ii4g IFRoaXMgaW5zdHJ1Y3Rpb24gaXMgInN5c2NhbGwiLgorCisgICBSZXR1cm4g LTEgaWYgc29tZXRoaW5nIHdyb25nLiAgKi8KKworc3RhdGljIHN0cnVjdCBs aW51eF9yZWNvcmRfdGRlcCBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcDsKKwor I2RlZmluZSBSRUNPUkRfQVJDSF9HRVRfRlMJMHgxMDAzCisjZGVmaW5lIFJF Q09SRF9BUkNIX0dFVF9HUwkweDEwMDQKKworc3RhdGljIGludAorYW1kNjRf bGludXhfc3lzY2FsbF9yZWNvcmQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUpCit7CisgIGludCByZXQsIG51bSA9IC0xOworICBVTE9OR0VTVCB0bXB1 bG9uZ2VzdDsKKworICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVn Y2FjaGUsIEFNRDY0X1JBWF9SRUdOVU0sICZ0bXB1bG9uZ2VzdCk7CisKKyAg LyogQ292ZW50IHRtcHVsb25nZXN0IHRvIG51bWJlciBpbiByZWNvcmRfbGlu dXhfc3lzdGVtX2NhbGwuICAqLworICBzd2l0Y2ggKHRtcHVsb25nZXN0KQor ICAgIHsKKyAgICAgIC8qIHN5c19yZWFkICovCisgICAgY2FzZSAwOgorICAg ICAgbnVtID0gMzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3dyaXRl ICovCisgICAgY2FzZSAxOgorICAgICAgbnVtID0gNDsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX29wZW4gKi8KKyAgICBjYXNlIDI6CisgICAgICBu dW0gPSA1OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfY2xvc2UgKi8K KyAgICBjYXNlIDM6CisgICAgICBudW0gPSA2OworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfbmV3c3RhdCAqLworICAgIGNhc2UgNDoKKyAgICAgIG51 bSA9IDEwNjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX25ld2ZzdGF0 ICovCisgICAgY2FzZSA1OgorICAgICAgbnVtID0gMTA4OworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfbmV3bHN0YXQgKi8KKyAgICBjYXNlIDY6Cisg ICAgICBudW0gPSAxMDc7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19w b2xsICovCisgICAgY2FzZSA3OgorICAgICAgbnVtID0gMTY4OworICAgICAg YnJlYWs7CisgICAgICAvKiBzeXNfbHNlZWsgKi8KKyAgICBjYXNlIDg6Cisg ICAgICBudW0gPSAxOTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX21t YXAgKi8KKyAgICBjYXNlIDk6CisgICAgICBudW0gPSAxOTI7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19tcHJvdGVjdCAqLworICAgIGNhc2UgMTA6 CisgICAgICBudW0gPSAxMjU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19tdW5tYXAgKi8KKyAgICBjYXNlIDExOgorICAgICAgbnVtID0gOTE7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c19icmsgKi8KKyAgICBjYXNlIDEy OgorICAgICAgbnVtID0gNDU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19ydF9zaWdhY3Rpb24gKi8KKyAgICBjYXNlIDEzOgorICAgICAgbnVtID0g MTc0OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcnRfc2lncHJvY21h c2sgKi8KKyAgICBjYXNlIDE0OgorICAgICAgbnVtID0gMTc1OworICAgICAg YnJlYWs7CisgICAgICAvKiBzeXNfcnRfc2lncmV0dXJuICovCisgICAgY2Fz ZSAxNToKKyAgICAgIG51bSA9IDE3MzsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX2lvY3RsICovCisgICAgY2FzZSAxNjoKKyAgICAgIG51bSA9IDU0 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcHJlYWQ2NCAqLworICAg IGNhc2UgMTc6CisgICAgICBudW0gPSAxODA7CisgICAgICBicmVhazsKKyAg ICAgIC8qIHN5c19wd3JpdGU2NCAqLworICAgIGNhc2UgMTg6CisgICAgICBu dW0gPSAxODE7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19yZWFkdiAq LworICAgIGNhc2UgMTk6CisgICAgICBudW0gPSAxNDU7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c193cml0ZXYgKi8KKyAgICBjYXNlIDIwOgorICAg ICAgbnVtID0gMTQ2OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfYWNj ZXNzICovCisgICAgY2FzZSAyMToKKyAgICAgIG51bSA9IDMzOworICAgICAg YnJlYWs7CisgICAgICAvKiBzeXNfcGlwZSAqLworICAgIGNhc2UgMjI6Cisg ICAgICBudW0gPSA0MjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3Nl bGVjdCAqLworICAgIGNhc2UgMjM6CisgICAgICBudW0gPSAxNDI7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19zY2hlZF95aWVsZCAqLworICAgIGNh c2UgMjQ6CisgICAgICBudW0gPSAxNTg7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19tcmVtYXAgKi8KKyAgICBjYXNlIDI1OgorICAgICAgbnVtID0g MTYzOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfbXN5bmMgKi8KKyAg ICBjYXNlIDI2OgorICAgICAgbnVtID0gMTQ0OworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfbWluY29yZSAqLworICAgIGNhc2UgMjc6CisgICAgICBu dW0gPSAyMTg7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19tYWR2aXNl ICovCisgICAgY2FzZSAyODoKKyAgICAgIG51bSA9IDIxOTsKKyAgICAgIGJy ZWFrOworICAgICAgLyogc3lzX3NobWdldCAqLworICAgIGNhc2UgMjk6Cisg ICAgICBudW0gPSA1MjA7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19z aG1hdCAqLworICAgIGNhc2UgMzA6CisgICAgICBudW0gPSA1MjE7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19zaG1jdGwgKi8KKyAgICBjYXNlIDMx OgorICAgICAgbnVtID0gNTIyOworICAgICAgYnJlYWs7CisgICAgICAvKiBz eXNfZHVwICovCisgICAgY2FzZSAzMjoKKyAgICAgIG51bSA9IDQxOworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfZHVwMiAqLworICAgIGNhc2UgMzM6 CisgICAgICBudW0gPSA2MzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lz X3BhdXNlICovCisgICAgY2FzZSAzNDoKKyAgICAgIG51bSA9IDI5OworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfbmFub3NsZWVwICovCisgICAgY2Fz ZSAzNToKKyAgICAgIG51bSA9IDE2MjsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX2dldGl0aW1lciAqLworICAgIGNhc2UgMzY6CisgICAgICBudW0g PSAxMDU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19hbGFybSAqLwor ICAgIGNhc2UgMzc6CisgICAgICBudW0gPSAyNzsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX3NldGl0aW1lciAqLworICAgIGNhc2UgMzg6CisgICAg ICBudW0gPSAxMDQ7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19nZXRw aWQgKi8KKyAgICBjYXNlIDM5OgorICAgICAgbnVtID0gMjA7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19zZW5kZmlsZTY0ICovCisgICAgY2FzZSA0 MDoKKyAgICAgIG51bSA9IDIzOTsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3NvY2tldCAqLworICAgIGNhc2UgNDE6CisgICAgICBudW0gPSA1MDA7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19jb25uZWN0ICovCisgICAg Y2FzZSA0MjoKKyAgICAgIG51bSA9IDUwMTsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX2FjY2VwdCAqLworICAgIGNhc2UgNDM6CisgICAgICBudW0g PSA1MDI7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zZW5kdG8gKi8K KyAgICBjYXNlIDQ0OgorICAgICAgbnVtID0gNTAzOworICAgICAgYnJlYWs7 CisgICAgICAvKiBzeXNfcmVjdmZyb20gKi8KKyAgICBjYXNlIDQ1OgorICAg ICAgbnVtID0gNTA0OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2Vu ZG1zZyAqLworICAgIGNhc2UgNDY6CisgICAgICBudW0gPSA1MDU7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19yZWN2bXNnICovCisgICAgY2FzZSA0 NzoKKyAgICAgIG51bSA9IDUwNjsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3NodXRkb3duICovCisgICAgY2FzZSA0ODoKKyAgICAgIG51bSA9IDUw NzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2JpbmQgKi8KKyAgICBj YXNlIDQ5OgorICAgICAgbnVtID0gNTA4OworICAgICAgYnJlYWs7CisgICAg ICAvKiBzeXNfbGlzdGVuICovCisgICAgY2FzZSA1MDoKKyAgICAgIG51bSA9 IDUwOTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2dldHNvY2tuYW1l ICovCisgICAgY2FzZSA1MToKKyAgICAgIG51bSA9IDUxMDsKKyAgICAgIGJy ZWFrOworICAgICAgLyogc3lzX2dldHBlZXJuYW1lICovCisgICAgY2FzZSA1 MjoKKyAgICAgIG51bSA9IDUxMTsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3NvY2tldHBhaXIgKi8KKyAgICBjYXNlIDUzOgorICAgICAgbnVtID0g NTEyOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2V0c29ja29wdCAq LworICAgIGNhc2UgNTQ6CisgICAgICBudW0gPSA1MTM7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19nZXRzb2Nrb3B0ICovCisgICAgY2FzZSA1NToK KyAgICAgIG51bSA9IDUxNDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lz X2Nsb25lICovCisgICAgY2FzZSA1NjoKKyAgICAgIG51bSA9IDEyMDsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2ZvcmsgKi8KKyAgICBjYXNlIDU3 OgorICAgICAgbnVtID0gMjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lz X3Zmb3JrICovCisgICAgY2FzZSA1ODoKKyAgICAgIG51bSA9IDE5MDsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2V4ZWN2ZSAqLworICAgIGNhc2Ug NTk6CisgICAgICBudW0gPSAxMTsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX2V4aXQgKi8KKyAgICBjYXNlIDYwOgorICAgICAgbnVtID0gMTsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX3dhaXQ0ICovCisgICAgY2FzZSA2 MToKKyAgICAgIG51bSA9IDExNDsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX2tpbGwgKi8KKyAgICBjYXNlIDYyOgorICAgICAgbnVtID0gMzc7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c191bmFtZSAqLworICAgIGNhc2Ug NjM6CisgICAgICBudW0gPSAxMDk7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19zZW1nZXQgKi8KKyAgICBjYXNlIDY0OgorICAgICAgbnVtID0gNTIz OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2Vtb3AgKi8KKyAgICBj YXNlIDY1OgorICAgICAgbnVtID0gNTI0OworICAgICAgYnJlYWs7CisgICAg ICAvKiBzeXNfc2VtY3RsICovCisgICAgY2FzZSA2NjoKKyAgICAgIG51bSA9 IDUyNTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3NobWR0ICovCisg ICAgY2FzZSA2NzoKKyAgICAgIG51bSA9IDUyNzsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX21zZ2dldCAqLworICAgIGNhc2UgNjg6CisgICAgICBu dW0gPSA1Mjg7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19tc2dzbmQg Ki8KKyAgICBjYXNlIDY5OgorICAgICAgbnVtID0gNTI5OworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfbXNncmN2ICovCisgICAgY2FzZSA3MDoKKyAg ICAgIG51bSA9IDUzMDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX21z Z2N0bCAqLworICAgIGNhc2UgNzE6CisgICAgICBudW0gPSA1MzE7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19mY250bCAqLworICAgIGNhc2UgNzI6 CisgICAgICBudW0gPSA1NTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lz X2Zsb2NrICovCisgICAgY2FzZSA3MzoKKyAgICAgIG51bSA9IDE0MzsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2ZzeW5jICovCisgICAgY2FzZSA3 NDoKKyAgICAgIG51bSA9IDExODsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX2ZkYXRhc3luYyAqLworICAgIGNhc2UgNzU6CisgICAgICBudW0gPSAx NDg7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c190cnVuY2F0ZSAqLwor ICAgIGNhc2UgNzY6CisgICAgICBudW0gPSA5MjsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX2Z0cnVuY2F0ZSAqLworICAgIGNhc2UgNzc6CisgICAg ICBudW0gPSA5MzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2dldGRl bnRzICovCisgICAgY2FzZSA3ODoKKyAgICAgIG51bSA9IDE0MTsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX2dldGN3ZCAqLworICAgIGNhc2UgNzk6 CisgICAgICBudW0gPSAxODM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19jaGRpciAqLworICAgIGNhc2UgODA6CisgICAgICBudW0gPSAxMjsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2ZjaGRpciAqLworICAgIGNhc2Ug ODE6CisgICAgICBudW0gPSAxMzM7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19yZW5hbWUgKi8KKyAgICBjYXNlIDgyOgorICAgICAgbnVtID0gMzg7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19ta2RpciAqLworICAgIGNh c2UgODM6CisgICAgICBudW0gPSAzOTsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX3JtZGlyICovCisgICAgY2FzZSA4NDoKKyAgICAgIG51bSA9IDQw OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfY3JlYXQgKi8KKyAgICBj YXNlIDg1OgorICAgICAgbnVtID0gODsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX2xpbmsgKi8KKyAgICBjYXNlIDg2OgorICAgICAgbnVtID0gOTsK KyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3VubGluayAqLworICAgIGNh c2UgODc6CisgICAgICBudW0gPSAxMDsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX3N5bWxpbmsgKi8KKyAgICBjYXNlIDg4OgorICAgICAgbnVtID0g ODM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19yZWFkbGluayAqLwor ICAgIGNhc2UgODk6CisgICAgICBudW0gPSA4NTsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX2NobW9kICovCisgICAgY2FzZSA5MDoKKyAgICAgIG51 bSA9IDE1OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZmNobW9kICov CisgICAgY2FzZSA5MToKKyAgICAgIG51bSA9IDk0OworICAgICAgYnJlYWs7 CisgICAgICAvKiBzeXNfY2hvd24gKi8KKyAgICBjYXNlIDkyOgorICAgICAg bnVtID0gMjEyOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZmNob3du ICovCisgICAgY2FzZSA5MzoKKyAgICAgIG51bSA9IDIwNzsKKyAgICAgIGJy ZWFrOworICAgICAgLyogc3lzX2xjaG93biAqLworICAgIGNhc2UgOTQ6Cisg ICAgICBudW0gPSAxOTg7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c191 bWFzayAqLworICAgIGNhc2UgOTU6CisgICAgICBudW0gPSA2MDsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX2dldHRpbWVvZmRheSAqLworICAgIGNh c2UgOTY6CisgICAgICBudW0gPSA3ODsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX2dldHJsaW1pdCAqLworICAgIGNhc2UgOTc6CisgICAgICBudW0g PSAxOTE7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19nZXRydXNhZ2Ug Ki8KKyAgICBjYXNlIDk4OgorICAgICAgbnVtID0gNzc7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19zeXNpbmZvICovCisgICAgY2FzZSA5OToKKyAg ICAgIG51bSA9IDExNjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3Rp bWVzICovCisgICAgY2FzZSAxMDA6CisgICAgICBudW0gPSA0MzsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX3B0cmFjZSAqLworICAgIGNhc2UgMTAx OgorICAgICAgbnVtID0gMjY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19nZXR1aWQgKi8KKyAgICBjYXNlIDEwMjoKKyAgICAgIG51bSA9IDE5OTsK KyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3N5c2xvZyAqLworICAgIGNh c2UgMTAzOgorICAgICAgbnVtID0gMTAzOworICAgICAgYnJlYWs7CisgICAg ICAvKiBzeXNfZ2V0Z2lkICovCisgICAgY2FzZSAxMDQ6CisgICAgICBudW0g PSAyMDA7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zZXR1aWQgKi8K KyAgICBjYXNlIDEwNToKKyAgICAgIG51bSA9IDIxMzsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX3NldGdpZCAqLworICAgIGNhc2UgMTA2OgorICAg ICAgbnVtID0gMjE0OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZ2V0 ZXVpZCAqLworICAgIGNhc2UgMTA3OgorICAgICAgbnVtID0gMjAxOworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfZ2V0ZWdpZCAqLworICAgIGNhc2Ug MTA4OgorICAgICAgbnVtID0gMjAyOworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfc2V0cGdpZCAqLworICAgIGNhc2UgMTA5OgorICAgICAgbnVtID0g NTc7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19nZXRwcGlkICovCisg ICAgY2FzZSAxMTA6CisgICAgICBudW0gPSA2NDsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX2dldHBncnAgKi8KKyAgICBjYXNlIDExMToKKyAgICAg IG51bSA9IDY1OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2V0c2lk ICovCisgICAgY2FzZSAxMTI6CisgICAgICBudW0gPSA2NjsKKyAgICAgIGJy ZWFrOworICAgICAgLyogc3lzX3NldHJldWlkICovCisgICAgY2FzZSAxMTM6 CisgICAgICBudW0gPSAyMDM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19zZXRyZWdpZCAqLworICAgIGNhc2UgMTE0OgorICAgICAgbnVtID0gMjA0 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZ2V0Z3JvdXBzICovCisg ICAgY2FzZSAxMTU6CisgICAgICBudW0gPSAyMDU7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19zZXRncm91cHMgKi8KKyAgICBjYXNlIDExNjoKKyAg ICAgIG51bSA9IDIwNjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3Nl dHJlc3VpZCAqLworICAgIGNhc2UgMTE3OgorICAgICAgbnVtID0gMjA4Owor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZ2V0cmVzdWlkICovCisgICAg Y2FzZSAxMTg6CisgICAgICBudW0gPSAyMDk7CisgICAgICBicmVhazsKKyAg ICAgIC8qIHN5c19zZXRyZXNnaWQgKi8KKyAgICBjYXNlIDExOToKKyAgICAg IG51bSA9IDIxMDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2dldHJl c2dpZCAqLworICAgIGNhc2UgMTIwOgorICAgICAgbnVtID0gMjExOworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfZ2V0cGdpZCAqLworICAgIGNhc2Ug MTIxOgorICAgICAgbnVtID0gMTMyOworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfc2V0ZnN1aWQgKi8KKyAgICBjYXNlIDEyMjoKKyAgICAgIG51bSA9 IDIxNTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3NldGZzZ2lkICov CisgICAgY2FzZSAxMjM6CisgICAgICBudW0gPSAyMTY7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19nZXRzaWQgKi8KKyAgICBjYXNlIDEyNDoKKyAg ICAgIG51bSA9IDE0NzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2Nh cGdldCAqLworICAgIGNhc2UgMTI1OgorICAgICAgbnVtID0gMTg0OworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfY2Fwc2V0ICovCisgICAgY2FzZSAx MjY6CisgICAgICBudW0gPSAxODU7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19ydF9zaWdwZW5kaW5nICovCisgICAgY2FzZSAxMjc6CisgICAgICBu dW0gPSAxNzY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19ydF9zaWd0 aW1lZHdhaXQgKi8KKyAgICBjYXNlIDEyODoKKyAgICAgIG51bSA9IDE3NzsK KyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3J0X3NpZ3F1ZXVlaW5mbyAq LworICAgIGNhc2UgMTI5OgorICAgICAgbnVtID0gMTc4OworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfcnRfc2lnc3VzcGVuZCAqLworICAgIGNhc2Ug MTMwOgorICAgICAgbnVtID0gMTc5OworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfc2lnYWx0c3RhY2sgKi8KKyAgICBjYXNlIDEzMToKKyAgICAgIG51 bSA9IDE4NjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3V0aW1lICov CisgICAgY2FzZSAxMzI6CisgICAgICBudW0gPSAzMDsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX21rbm9kICovCisgICAgY2FzZSAxMzM6CisgICAg ICBudW0gPSAxNDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3BlcnNv bmFsaXR5ICovCisgICAgY2FzZSAxMzU6CisgICAgICBudW0gPSAxMzY7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c191c3RhdCAqLworICAgIGNhc2Ug MTM2OgorICAgICAgbnVtID0gNjI7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19zdGF0ZnMgKi8KKyAgICBjYXNlIDEzNzoKKyAgICAgIG51bSA9IDk5 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZnN0YXRmcyAqLworICAg IGNhc2UgMTM4OgorICAgICAgbnVtID0gMTAwOworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfc3lzZnMgKi8KKyAgICBjYXNlIDEzOToKKyAgICAgIG51 bSA9IDEzNTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2dldHByaW9y aXR5ICovCisgICAgY2FzZSAxNDA6CisgICAgICBudW0gPSA5NjsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX3NldHByaW9yaXR5ICovCisgICAgY2Fz ZSAxNDE6CisgICAgICBudW0gPSA5NzsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX3NjaGVkX3NldHBhcmFtICovCisgICAgY2FzZSAxNDI6CisgICAg ICBudW0gPSAxNTQ7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zY2hl ZF9nZXRwYXJhbSAqLworICAgIGNhc2UgMTQzOgorICAgICAgbnVtID0gMTU1 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2NoZWRfc2V0c2NoZWR1 bGVyICovCisgICAgY2FzZSAxNDQ6CisgICAgICBudW0gPSAxNTY7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19zY2hlZF9nZXRzY2hlZHVsZXIgKi8K KyAgICBjYXNlIDE0NToKKyAgICAgIG51bSA9IDE1NzsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXggKi8KKyAg ICBjYXNlIDE0NjoKKyAgICAgIG51bSA9IDE1OTsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4gKi8KKyAgICBj YXNlIDE0NzoKKyAgICAgIG51bSA9IDE2MDsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCAqLworICAgIGNhc2Ug MTQ4OgorICAgICAgbnVtID0gMTYxOworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfbWxvY2sgKi8KKyAgICBjYXNlIDE0OToKKyAgICAgIG51bSA9IDE1 MDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX211bmxvY2sgKi8KKyAg ICBjYXNlIDE1MDoKKyAgICAgIG51bSA9IDE1MTsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX21sb2NrYWxsICovCisgICAgY2FzZSAxNTE6CisgICAg ICBudW0gPSAxNTI7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19tdW5s b2NrYWxsICovCisgICAgY2FzZSAxNTI6CisgICAgICBudW0gPSAxNTM7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c192aGFuZ3VwICovCisgICAgY2Fz ZSAxNTM6CisgICAgICBudW0gPSAxMTE7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19tb2RpZnlfbGR0ICovCisgICAgY2FzZSAxNTQ6CisgICAgICBu dW0gPSAxMjM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19waXZvdF9y b290ICovCisgICAgY2FzZSAxNTU6CisgICAgICBudW0gPSAyMTc7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19zeXNjdGwgKi8KKyAgICBjYXNlIDE1 NjoKKyAgICAgIG51bSA9IDE0OTsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3ByY3RsICovCisgICAgY2FzZSAxNTc6CisgICAgICBudW0gPSAxNzI7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19hcmNoX3ByY3RsICovCisg ICAgY2FzZSAxNTg6CisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25l ZCAocmVnY2FjaGUsIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmFyZzMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRtcHVsb25nZXN0 KTsKKyAgICAgIGlmICh0bXB1bG9uZ2VzdCA9PSBSRUNPUkRfQVJDSF9HRVRf RlMKKyAgICAgICAgICB8fCB0bXB1bG9uZ2VzdCA9PSBSRUNPUkRfQVJDSF9H RVRfR1MpCisgICAgICAgIHsKKyAgICAgICAgICByZWdjYWNoZV9yYXdfcmVh ZF91bnNpZ25lZCAocmVnY2FjaGUsIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LmFyZzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZ0bXB1bG9uZ2VzdCk7CisgICAgICAgICAgaWYgKHJlY29yZF9hcmNoX2xp c3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWQ2NF9saW51eF9y ZWNvcmRfdGRlcC5zaXplX3Vsb25nKSkKKyAgICAgICAgICAgIHJldHVybiAt MTsKKyAgICAgICAgfQorICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfYWRq dGltZXggKi8KKyAgICBjYXNlIDE1OToKKyAgICAgIG51bSA9IDEyNDsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX3NldHJsaW1pdCAqLworICAgIGNh c2UgMTYwOgorICAgICAgbnVtID0gNzU7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19jaHJvb3QgKi8KKyAgICBjYXNlIDE2MToKKyAgICAgIG51bSA9 IDYxOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc3luYyAqLworICAg IGNhc2UgMTYyOgorICAgICAgbnVtID0gMzY7CisgICAgICBicmVhazsKKyAg ICAgIC8qIHN5c19hY2N0ICovCisgICAgY2FzZSAxNjM6CisgICAgICBudW0g PSA1MTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3NldHRpbWVvZmRh eSAqLworICAgIGNhc2UgMTY0OgorICAgICAgbnVtID0gNzk7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19tb3VudCAqLworICAgIGNhc2UgMTY1Ogor ICAgICAgbnVtID0gMjE7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c191 bW91bnQgKi8KKyAgICBjYXNlIDE2NjoKKyAgICAgIG51bSA9IDUyOworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfc3dhcG9uICovCisgICAgY2FzZSAx Njc6CisgICAgICBudW0gPSA4NzsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3N3YXBvZmYgKi8KKyAgICBjYXNlIDE2ODoKKyAgICAgIG51bSA9IDEx NTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3JlYm9vdCAqLworICAg IGNhc2UgMTY5OgorICAgICAgbnVtID0gODg7CisgICAgICBicmVhazsKKyAg ICAgIC8qIHN5c19zZXRob3N0bmFtZSAqLworICAgIGNhc2UgMTcwOgorICAg ICAgbnVtID0gNzQ7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zZXRk b21haW5uYW1lICovCisgICAgY2FzZSAxNzE6CisgICAgICBudW0gPSAxMjE7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19pb3BsICovCisgICAgY2Fz ZSAxNzI6CisgICAgICBudW0gPSAxMTA7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19pb3Blcm0gKi8KKyAgICBjYXNlIDE3MzoKKyAgICAgIG51bSA9 IDEwMTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2luaXRfbW9kdWxl ICovCisgICAgY2FzZSAxNzU6CisgICAgICBudW0gPSAxMjg7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19kZWxldGVfbW9kdWxlICovCisgICAgY2Fz ZSAxNzY6CisgICAgICBudW0gPSAxMjk7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19xdW90YWN0bCAqLworICAgIGNhc2UgMTc5OgorICAgICAgbnVt ID0gMTMxOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfbmZzc2VydmN0 bCAqLworICAgIGNhc2UgMTgwOgorICAgICAgbnVtID0gMTY5OworICAgICAg YnJlYWs7CisgICAgICAvKiBzeXNfZ2V0dGlkICovCisgICAgY2FzZSAxODY6 CisgICAgICBudW0gPSAyMjQ7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19yZWFkYWhlYWQgKi8KKyAgICBjYXNlIDE4NzoKKyAgICAgIG51bSA9IDIy NTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3NldHhhdHRyICovCisg ICAgY2FzZSAxODg6CisgICAgICBudW0gPSAyMjY7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19sc2V0eGF0dHIgKi8KKyAgICBjYXNlIDE4OToKKyAg ICAgIG51bSA9IDIyNzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2Zz ZXR4YXR0ciAqLworICAgIGNhc2UgMTkwOgorICAgICAgbnVtID0gMjI4Owor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZ2V0eGF0dHIgKi8KKyAgICBj YXNlIDE5MToKKyAgICAgIG51bSA9IDIyOTsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX2xnZXR4YXR0ciAqLworICAgIGNhc2UgMTkyOgorICAgICAg bnVtID0gMjMwOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZmdldHhh dHRyICovCisgICAgY2FzZSAxOTM6CisgICAgICBudW0gPSAyMzE7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19saXN0eGF0dHIgKi8KKyAgICBjYXNl IDE5NDoKKyAgICAgIG51bSA9IDIzMjsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX2xsaXN0eGF0dHIgKi8KKyAgICBjYXNlIDE5NToKKyAgICAgIG51 bSA9IDIzMzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2ZsaXN0eGF0 dHIgKi8KKyAgICBjYXNlIDE5NjoKKyAgICAgIG51bSA9IDIzNDsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX3JlbW92ZXhhdHRyICovCisgICAgY2Fz ZSAxOTc6CisgICAgICBudW0gPSAyMzU7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19scmVtb3ZleGF0dHIgKi8KKyAgICBjYXNlIDE5ODoKKyAgICAg IG51bSA9IDIzNjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2ZyZW1v dmV4YXR0ciAqLworICAgIGNhc2UgMTk5OgorICAgICAgbnVtID0gMjM3Owor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfdGtpbGwgKi8KKyAgICBjYXNl IDIwMDoKKyAgICAgIG51bSA9IDIzODsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX3RpbWUgKi8KKyAgICBjYXNlIDIwMToKKyAgICAgIG51bSA9IDEz OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZnV0ZXggKi8KKyAgICBj YXNlIDIwMjoKKyAgICAgIG51bSA9IDI0MDsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX3NjaGVkX3NldGFmZmluaXR5ICovCisgICAgY2FzZSAyMDM6 CisgICAgICBudW0gPSAyNDE7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19zY2hlZF9nZXRhZmZpbml0eSAqLworICAgIGNhc2UgMjA0OgorICAgICAg bnVtID0gMjQyOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfaW9fc2V0 dXAgKi8KKyAgICBjYXNlIDIwNjoKKyAgICAgIG51bSA9IDI0NTsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX2lvX2Rlc3Ryb3kgKi8KKyAgICBjYXNl IDIwNzoKKyAgICAgIG51bSA9IDI0NjsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX2lvX2dldGV2ZW50cyAqLworICAgIGNhc2UgMjA4OgorICAgICAg bnVtID0gMjQ3OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfaW9fc3Vi bWl0ICovCisgICAgY2FzZSAyMDk6CisgICAgICBudW0gPSAyNDg7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19pb19jYW5jZWwgKi8KKyAgICBjYXNl IDIxMDoKKyAgICAgIG51bSA9IDI0OTsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX2xvb2t1cF9kY29va2llICovCisgICAgY2FzZSAyMTI6CisgICAg ICBudW0gPSAyNTM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19lcG9s bF9jcmVhdGUgKi8KKyAgICBjYXNlIDIxMzoKKyAgICAgIG51bSA9IDI1NDsK KyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3JlbWFwX2ZpbGVfcGFnZXMg Ki8KKyAgICBjYXNlIDIxNjoKKyAgICAgIG51bSA9IDI1NzsKKyAgICAgIGJy ZWFrOworICAgICAgLyogc3lzX2dldGRlbnRzNjQgKi8KKyAgICBjYXNlIDIx NzoKKyAgICAgIG51bSA9IDIyMDsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3NldF90aWRfYWRkcmVzcyAqLworICAgIGNhc2UgMjE4OgorICAgICAg bnVtID0gMjU4OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcmVzdGFy dF9zeXNjYWxsICovCisgICAgY2FzZSAyMTk6CisgICAgICBudW0gPSAwOwor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2VtdGltZWRvcCAqLworICAg IGNhc2UgMjIwOgorICAgICAgbnVtID0gNTMyOworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfZmFkdmlzZTY0ICovCisgICAgY2FzZSAyMjE6CisgICAg ICBudW0gPSAyNTA7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c190aW1l cl9jcmVhdGUgKi8KKyAgICBjYXNlIDIyMjoKKyAgICAgIG51bSA9IDI1OTsK KyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3RpbWVyX3NldHRpbWUgKi8K KyAgICBjYXNlIDIyMzoKKyAgICAgIG51bSA9IDI2MDsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX3RpbWVyX2dldHRpbWUgKi8KKyAgICBjYXNlIDIy NDoKKyAgICAgIG51bSA9IDI2MTsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3RpbWVyX2dldG92ZXJydW4gKi8KKyAgICBjYXNlIDIyNToKKyAgICAg IG51bSA9IDI2MjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3RpbWVy X2RlbGV0ZSAqLworICAgIGNhc2UgMjI2OgorICAgICAgbnVtID0gMjYzOwor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfY2xvY2tfc2V0dGltZSAqLwor ICAgIGNhc2UgMjI3OgorICAgICAgbnVtID0gMjY0OworICAgICAgYnJlYWs7 CisgICAgICAvKiBzeXNfY2xvY2tfZ2V0dGltZSAqLworICAgIGNhc2UgMjI4 OgorICAgICAgbnVtID0gMjY1OworICAgICAgYnJlYWs7CisgICAgICAvKiBz eXNfY2xvY2tfZ2V0cmVzICovCisgICAgY2FzZSAyMjk6CisgICAgICBudW0g PSAyNjY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19jbG9ja19uYW5v c2xlZXAgKi8KKyAgICBjYXNlIDIzMDoKKyAgICAgIG51bSA9IDI2NzsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2V4aXRfZ3JvdXAgKi8KKyAgICBj YXNlIDIzMToKKyAgICAgIG51bSA9IDI1MjsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX2Vwb2xsX3dhaXQgKi8KKyAgICBjYXNlIDIzMjoKKyAgICAg IG51bSA9IDI1NjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2Vwb2xs X2N0bCAqLworICAgIGNhc2UgMjMzOgorICAgICAgbnVtID0gMjU1OworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfdGdraWxsICovCisgICAgY2FzZSAy MzQ6CisgICAgICBudW0gPSAyNzA7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c191dGltZXMgKi8KKyAgICBjYXNlIDIzNToKKyAgICAgIG51bSA9IDI3 MTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX21iaW5kICovCisgICAg Y2FzZSAyMzc6CisgICAgICBudW0gPSAyNzQ7CisgICAgICBicmVhazsKKyAg ICAgIC8qIHN5c19zZXRfbWVtcG9saWN5ICovCisgICAgY2FzZSAyMzg6Cisg ICAgICBudW0gPSAyNzY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19n ZXRfbWVtcG9saWN5ICovCisgICAgY2FzZSAyMzk6CisgICAgICBudW0gPSAy NzU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19tcV9vcGVuICovCisg ICAgY2FzZSAyNDA6CisgICAgICBudW0gPSAyNzc7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19tcV91bmxpbmsgKi8KKyAgICBjYXNlIDI0MToKKyAg ICAgIG51bSA9IDI3ODsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX21x X3RpbWVkc2VuZCAqLworICAgIGNhc2UgMjQyOgorICAgICAgbnVtID0gMjc5 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfbXFfdGltZWRyZWNlaXZl ICovCisgICAgY2FzZSAyNDM6CisgICAgICBudW0gPSAyODA7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19tcV9ub3RpZnkgKi8KKyAgICBjYXNlIDI0 NDoKKyAgICAgIG51bSA9IDI4MTsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX21xX2dldHNldGF0dHIgKi8KKyAgICBjYXNlIDI0NToKKyAgICAgIG51 bSA9IDI4MjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2tleGVjX2xv YWQgKi8KKyAgICBjYXNlIDI0NjoKKyAgICAgIG51bSA9IDI4MzsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX3dhaXRpZCAqLworICAgIGNhc2UgMjQ3 OgorICAgICAgbnVtID0gMjg0OworICAgICAgYnJlYWs7CisgICAgICAvKiBz eXNfYWRkX2tleSAqLworICAgIGNhc2UgMjQ4OgorICAgICAgbnVtID0gMjg2 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcmVxdWVzdF9rZXkgKi8K KyAgICBjYXNlIDI0OToKKyAgICAgIG51bSA9IDI4NzsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX2tleWN0bCAqLworICAgIGNhc2UgMjUwOgorICAg ICAgbnVtID0gMjg4OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfaW9w cmlvX3NldCAqLworICAgIGNhc2UgMjUxOgorICAgICAgbnVtID0gMjg5Owor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfaW9wcmlvX2dldCAqLworICAg IGNhc2UgMjUyOgorICAgICAgbnVtID0gMjkwOworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfaW5vdGlmeV9pbml0ICovCisgICAgY2FzZSAyNTM6Cisg ICAgICBudW0gPSAyOTE7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19p bm90aWZ5X2FkZF93YXRjaCAqLworICAgIGNhc2UgMjU0OgorICAgICAgbnVt ID0gMjkyOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfaW5vdGlmeV9y bV93YXRjaCAqLworICAgIGNhc2UgMjU1OgorICAgICAgbnVtID0gMjkzOwor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfbWlncmF0ZV9wYWdlcyAqLwor ICAgIGNhc2UgMjU2OgorICAgICAgbnVtID0gMjk0OworICAgICAgYnJlYWs7 CisgICAgICAvKiBzeXNfb3BlbmF0ICovCisgICAgY2FzZSAyNTc6CisgICAg ICBudW0gPSAyOTU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19ta2Rp cmF0ICovCisgICAgY2FzZSAyNTg6CisgICAgICBudW0gPSAyOTY7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19ta25vZGF0ICovCisgICAgY2FzZSAy NTk6CisgICAgICBudW0gPSAyOTc7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19mY2hvd25hdCAqLworICAgIGNhc2UgMjYwOgorICAgICAgbnVtID0g Mjk4OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZnV0aW1lc2F0ICov CisgICAgY2FzZSAyNjE6CisgICAgICBudW0gPSAyOTk7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19uZXdmc3RhdGF0ICovCisgICAgY2FzZSAyNjI6 CisgICAgICBudW0gPSA1NDA7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c191bmxpbmthdCAqLworICAgIGNhc2UgMjYzOgorICAgICAgbnVtID0gMzAx OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcmVuYW1lYXQgKi8KKyAg ICBjYXNlIDI2NDoKKyAgICAgIG51bSA9IDMwMjsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX2xpbmthdCAqLworICAgIGNhc2UgMjY1OgorICAgICAg bnVtID0gMzAzOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc3ltbGlu a2F0ICovCisgICAgY2FzZSAyNjY6CisgICAgICBudW0gPSAzMDQ7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19yZWFkbGlua2F0ICovCisgICAgY2Fz ZSAyNjc6CisgICAgICBudW0gPSAzMDU7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19mY2htb2RhdCAqLworICAgIGNhc2UgMjY4OgorICAgICAgbnVt ID0gMzA2OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZmFjY2Vzc2F0 ICovCisgICAgY2FzZSAyNjk6CisgICAgICBudW0gPSAzMDc7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19wc2VsZWN0NiAqLworICAgIGNhc2UgMjcw OgorICAgICAgbnVtID0gMzA4OworICAgICAgYnJlYWs7CisgICAgICAvKiBz eXNfcHBvbGwgKi8KKyAgICBjYXNlIDI3MToKKyAgICAgIG51bSA9IDMwOTsK KyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3Vuc2hhcmUgKi8KKyAgICBj YXNlIDI3MjoKKyAgICAgIG51bSA9IDMxMDsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX3NldF9yb2J1c3RfbGlzdCAqLworICAgIGNhc2UgMjczOgor ICAgICAgbnVtID0gMzExOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNf Z2V0X3JvYnVzdF9saXN0ICovCisgICAgY2FzZSAyNzQ6CisgICAgICBudW0g PSAzMTI7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zcGxpY2UgKi8K KyAgICBjYXNlIDI3NToKKyAgICAgIG51bSA9IDMxMzsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX3RlZSAqLworICAgIGNhc2UgMjc2OgorICAgICAg bnVtID0gMzE1OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc3luY19m aWxlX3JhbmdlICovCisgICAgY2FzZSAyNzc6CisgICAgICBudW0gPSAzMTQ7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c192bXNwbGljZSAqLworICAg IGNhc2UgMjc4OgorICAgICAgbnVtID0gMzE2OworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfbW92ZV9wYWdlcyAqLworICAgIGNhc2UgMjc5OgorICAg ICAgbnVtID0gMzE3OworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg ICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCJQcm9jZXNzIHJlY29yZCBhbmQg cmVwbGF5IHRhcmdldCBkb2Vzbid0ICIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICJzdXBwb3J0IHN5c2NhbGwgbnVtYmVyICVkXG4iKSwgKGludCl0 bXB1bG9uZ2VzdCk7CisgICAgICByZXR1cm4gLTE7CisgICAgICBicmVhazsK KyAgICB9CisKKyAgaWYgKG51bSA+PSAwKQorICAgIHsKKyAgICAgIHJldCA9 IHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAobnVtLCByZWdjYWNoZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFtZDY0X2xp bnV4X3JlY29yZF90ZGVwKTsKKyAgICAgIGlmIChyZXQpCisgICAgICAgIHJl dHVybiByZXQ7CisgICAgfQorCisgIC8qIFJlY29yZCB0aGUgcmV0dXJuIHZh bHVlIG9mIHRoZSBzeXN0ZW0gY2FsbC4gICovCisgIGlmIChyZWNvcmRfYXJj aF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SQ1hfUkVHTlVNKSkK KyAgICByZXR1cm4gLTE7CisgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9y ZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SMTFfUkVHTlVNKSkKKyAgICByZXR1cm4g LTE7CisKKworICByZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQKIGFtZDY0 X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoKQogewpAQCAtMzAxLDYgKzE0MjUsMTcy IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmYK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3Bs YWNlZF9zdGVwX2F0X2VudHJ5X3BvaW50KTsKIAogICBzZXRfZ2RiYXJjaF9n ZXRfc2lnaW5mb190eXBlIChnZGJhcmNoLCBsaW51eF9nZXRfc2lnaW5mb190 eXBlKTsKKworICBzZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZCAoZ2RiYXJj aCwgaTM4Nl9wcm9jZXNzX3JlY29yZCk7CisKKyAgLyogSW5pdGlhbGl6ZSB0 aGUgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuICAqLworICAvKiBUaGVzZSB2 YWx1ZXMgYXJlIHRoZSBzaXplIG9mIHRoZSB0eXBlIHRoYXQgd2lsbCBiZSB1 c2VkIGluIGEgc3lzdGVtCisgICAgIGNhbGwuICBUaGV5IGFyZSBvYnRhaW5l ZCBmcm9tIExpbnV4IEtlcm5lbCBzb3VyY2UuICAqLworICBhbWQ2NF9saW51 eF9yZWNvcmRfdGRlcC5zaXplX3BvaW50ZXIgPSA4OworICBhbWQ2NF9saW51 eF9yZWNvcmRfdGRlcC5zaXplX19vbGRfa2VybmVsX3N0YXQgPSAzMjsKKyAg YW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV90bXMgPSAzMjsKKyAgYW1k NjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9sb2ZmX3QgPSA4OworICBhbWQ2 NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX2Zsb2NrID0gMzI7CisgIGFtZDY0 X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfb2xkb2xkX3V0c25hbWUgPSA0NTsK KyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV91c3RhdCA9IDMyOwor ICAvKiBBRE02NCBkb2Vzbid0IG5lZWQgdGhpcyBzaXplIGJlY2F1c2UgaXQg ZG9lc24ndCBoYXZlIHN5c19zaWdhY3Rpb24KKyAgICAgYnV0IHN5c19ydF9z aWdhY3Rpb24uICAqLworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXpl X29sZF9zaWdhY3Rpb24gPSAxNTI7CisgIC8qIEFETTY0IGRvZXNuJ3QgbmVl ZCB0aGlzIHNpemUgYmVjYXVzZSBpdCBkb2Vzbid0IGhhdmUgc3lzX3NpZ3Bl bmRpbmcKKyAgICAgYnV0IHN5c19ydF9zaWdwZW5kaW5nLiAgKi8KKyAgYW1k NjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9vbGRfc2lnc2V0X3QgPSAxMjg7 CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfcmxpbWl0ID0gMTY7 CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfcnVzYWdlID0gMTQ0 OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3RpbWV2YWwgPSAx NjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV90aW1lem9uZSA9 IDg7CisgIC8qIEFETTY0IGRvZXNuJ3QgbmVlZCB0aGlzIHNpemUgYmVjYXVz ZSBpdCBkb2Vzbid0IGhhdmUgc3lzX2dldGdyb3VwczE2CisgICAgIGJ1dCBz eXNfZ2V0Z3JvdXBzLiAgKi8KKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAu c2l6ZV9vbGRfZ2lkX3QgPSAyOworICAvKiBBRE02NCBkb2Vzbid0IG5lZWQg dGhpcyBzaXplIGJlY2F1c2UgaXQgZG9lc24ndCBoYXZlIHN5c19nZXRyZXN1 aWQxNgorICAgICBidXQgc3lzX2dldHJlc3VpZC4gICovCisgIGFtZDY0X2xp bnV4X3JlY29yZF90ZGVwLnNpemVfb2xkX3VpZF90ID0gMjsKKyAgYW1kNjRf bGludXhfcmVjb3JkX3RkZXAuc2l6ZV9mZF9zZXQgPSAxMjg7CisgIGFtZDY0 X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfZGlyZW50ID0gMjgwOworICBhbWQ2 NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX2RpcmVudDY0ID0gMjgwOworICBh bWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3N0YXRmcyA9IDEyMDsKKyAg YW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zdGF0ZnM2NCA9IDEyMDsK KyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zb2NrYWRkciA9IDE2 OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX2ludCA9IDQ7Cisg IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfbG9uZyA9IDg7CisgIGFt ZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfdWxvbmcgPSA4OworICBhbWQ2 NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX21zZ2hkciA9IDU2OworICBhbWQ2 NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX2l0aW1lcnZhbCA9IDMyOworICBh bWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3N0YXQgPSAxNDQ7CisgIGFt ZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfb2xkX3V0c25hbWUgPSAzMjU7 CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfc3lzaW5mbyA9IDEx MjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9tc3FpZF9kcyA9 IDEyMDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zaG1pZF9k cyA9IDExMjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9uZXdf dXRzbmFtZSA9IDM5MDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6 ZV90aW1leCA9IDIwODsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6 ZV9tZW1fZHFpbmZvID0gMjQ7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LnNpemVfaWZfZHFibGsgPSA3MjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3Rk ZXAuc2l6ZV9mc19xdW90YV9zdGF0ID0gODA7CisgIGFtZDY0X2xpbnV4X3Jl Y29yZF90ZGVwLnNpemVfdGltZXNwZWMgPSAxNjsKKyAgYW1kNjRfbGludXhf cmVjb3JkX3RkZXAuc2l6ZV9wb2xsZmQgPSA4OworICBhbWQ2NF9saW51eF9y ZWNvcmRfdGRlcC5zaXplX05GU19GSFNJWkUgPSAzMjsKKyAgYW1kNjRfbGlu dXhfcmVjb3JkX3RkZXAuc2l6ZV9rbmZzZF9maCA9IDEzMjsKKyAgYW1kNjRf bGludXhfcmVjb3JkX3RkZXAuc2l6ZV9UQVNLX0NPTU1fTEVOID0gMTY7Cisg IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfc2lnYWN0aW9uID0gMTUy OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3NpZ3NldF90ID0g MTI4OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3NpZ2luZm9f dCA9IDEyODsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9jYXBf dXNlcl9kYXRhX3QgPSA4OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5z aXplX3N0YWNrX3QgPSAyNDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAu c2l6ZV9vZmZfdCA9IDg7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNp emVfc3RhdDY0ID0gMTQ0OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5z aXplX2dpZF90ID0gNDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6 ZV91aWRfdCA9IDQ7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVf UEFHRV9TSVpFID0gNDA5NjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAu c2l6ZV9mbG9jazY0ID0gMzI7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LnNpemVfdXNlcl9kZXNjID0gMTY7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90 ZGVwLnNpemVfaW9fZXZlbnQgPSAzMjsKKyAgYW1kNjRfbGludXhfcmVjb3Jk X3RkZXAuc2l6ZV9pb2NiID0gNjQ7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90 ZGVwLnNpemVfZXBvbGxfZXZlbnQgPSAxMjsKKyAgYW1kNjRfbGludXhfcmVj b3JkX3RkZXAuc2l6ZV9pdGltZXJzcGVjID0gMzI7CisgIGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLnNpemVfbXFfYXR0ciA9IDY0OworICBhbWQ2NF9saW51 eF9yZWNvcmRfdGRlcC5zaXplX3NpZ2luZm8gPSAxMjg7CisgIGFtZDY0X2xp bnV4X3JlY29yZF90ZGVwLnNpemVfdGVybWlvcyA9IDYwOworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5zaXplX3Rlcm1pb3MyID0gNDQ7CisgIGFtZDY0 X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfcGlkX3QgPSA0OworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5zaXplX3dpbnNpemUgPSA4OworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5zaXplX3NlcmlhbF9zdHJ1Y3QgPSA3MjsKKyAg YW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zZXJpYWxfaWNvdW50ZXJf c3RydWN0ID0gODA7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVf aGF5ZXNfZXNwX2NvbmZpZyA9IDEyOworICBhbWQ2NF9saW51eF9yZWNvcmRf dGRlcC5zaXplX3NpemVfdCA9IDg7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90 ZGVwLnNpemVfaW92ZWMgPSAxNjsKKworICAvKiBUaGVzZSB2YWx1ZXMgYXJl IHRoZSBzZWNvbmQgYXJndW1lbnQgb2Ygc3lzdGVtIGNhbGwgInN5c19pb2N0 bCIuCisgICAgIFRoZXkgYXJlIG9idGFpbmVkIGZyb20gTGludXggS2VybmVs IHNvdXJjZS4gICovCisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3Rs X1RDR0VUUyA9IDB4NTQwMTsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAu aW9jdGxfVENTRVRTID0gMHg1NDAyOworICBhbWQ2NF9saW51eF9yZWNvcmRf dGRlcC5pb2N0bF9UQ1NFVFNXID0gMHg1NDAzOworICBhbWQ2NF9saW51eF9y ZWNvcmRfdGRlcC5pb2N0bF9UQ1NFVFNGID0gMHg1NDA0OworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5pb2N0bF9UQ0dFVEEgPSAweDU0MDU7CisgIGFt ZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RDU0VUQSA9IDB4NTQwNjsK KyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVENTRVRBVyA9IDB4 NTQwNzsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVENTRVRB RiA9IDB4NTQwODsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxf VENTQlJLID0gMHg1NDA5OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5p b2N0bF9UQ1hPTkMgPSAweDU0MEE7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90 ZGVwLmlvY3RsX1RDRkxTSCA9IDB4NTQwQjsKKyAgYW1kNjRfbGludXhfcmVj b3JkX3RkZXAuaW9jdGxfVElPQ0VYQ0wgPSAweDU0MEM7CisgIGFtZDY0X2xp bnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NOWENMID0gMHg1NDBEOworICBh bWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DU0NUVFkgPSAweDU0 MEU7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NHUEdS UCA9IDB4NTQwRjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxf VElPQ1NQR1JQID0gMHg1NDEwOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRl cC5pb2N0bF9USU9DT1VUUSA9IDB4NTQxMTsKKyAgYW1kNjRfbGludXhfcmVj b3JkX3RkZXAuaW9jdGxfVElPQ1NUSSA9IDB4NTQxMjsKKyAgYW1kNjRfbGlu dXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ0dXSU5TWiA9IDB4NTQxMzsKKyAg YW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ1NXSU5TWiA9IDB4 NTQxNDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ01H RVQgPSAweDU0MTU7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3Rs X1RJT0NNQklTID0gMHg1NDE2OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRl cC5pb2N0bF9USU9DTUJJQyA9IDB4NTQxNzsKKyAgYW1kNjRfbGludXhfcmVj b3JkX3RkZXAuaW9jdGxfVElPQ01TRVQgPSAweDU0MTg7CisgIGFtZDY0X2xp bnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NHU09GVENBUiA9IDB4NTQxOTsK KyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ1NTT0ZUQ0FS ID0gMHg1NDFBOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9G SU9OUkVBRCA9IDB4NTQxQjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAu aW9jdGxfVElPQ0lOUSA9IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3Rs X0ZJT05SRUFEOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9U SU9DTElOVVggPSAweDU0MUM7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LmlvY3RsX1RJT0NDT05TID0gMHg1NDFEOworICBhbWQ2NF9saW51eF9yZWNv cmRfdGRlcC5pb2N0bF9USU9DR1NFUklBTCA9IDB4NTQxRTsKKyAgYW1kNjRf bGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ1NTRVJJQUwgPSAweDU0MUY7 CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NQS1QgPSAw eDU0MjA7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX0ZJT05C SU8gPSAweDU0MjE7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3Rs X1RJT0NOT1RUWSA9IDB4NTQyMjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3Rk ZXAuaW9jdGxfVElPQ1NFVEQgPSAweDU0MjM7CisgIGFtZDY0X2xpbnV4X3Jl Y29yZF90ZGVwLmlvY3RsX1RJT0NHRVREID0gMHg1NDI0OworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5pb2N0bF9UQ1NCUktQID0gMHg1NDI1OworICBh bWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DVFRZR1NUUlVDVCA9 IDB4NTQyNjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElP Q1NCUksgPSAweDU0Mjc7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlv Y3RsX1RJT0NDQlJLID0gMHg1NDI4OworICBhbWQ2NF9saW51eF9yZWNvcmRf dGRlcC5pb2N0bF9USU9DR1NJRCA9IDB4NTQyOTsKKyAgYW1kNjRfbGludXhf cmVjb3JkX3RkZXAuaW9jdGxfVENHRVRTMiA9IDB4ODAyYzU0MmE7CisgIGFt ZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RDU0VUUzIgPSAweDQwMmM1 NDJiOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9UQ1NFVFNX MiA9IDB4NDAyYzU0MmM7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlv Y3RsX1RDU0VUU0YyID0gMHg0MDJjNTQyZDsKKyAgYW1kNjRfbGludXhfcmVj b3JkX3RkZXAuaW9jdGxfVElPQ0dQVE4gPSAweDgwMDQ1NDMwOworICBhbWQ2 NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DU1BUTENLID0gMHg0MDA0 NTQzMTsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfRklPTkNM RVggPSAweDU0NTA7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3Rs X0ZJT0NMRVggPSAweDU0NTE7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LmlvY3RsX0ZJT0FTWU5DID0gMHg1NDUyOworICBhbWQ2NF9saW51eF9yZWNv cmRfdGRlcC5pb2N0bF9USU9DU0VSQ09ORklHID0gMHg1NDUzOworICBhbWQ2 NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DU0VSR1dJTEQgPSAweDU0 NTQ7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NTRVJT V0lMRCA9IDB4NTQ1NTsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9j dGxfVElPQ0dMQ0tUUk1JT1MgPSAweDU0NTY7CisgIGFtZDY0X2xpbnV4X3Jl Y29yZF90ZGVwLmlvY3RsX1RJT0NTTENLVFJNSU9TID0gMHg1NDU3OworICBh bWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DU0VSR1NUUlVDVCA9 IDB4NTQ1ODsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElP Q1NFUkdFVExTUiA9IDB4NTQ1OTsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3Rk ZXAuaW9jdGxfVElPQ1NFUkdFVE1VTFRJID0gMHg1NDVBOworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DU0VSU0VUTVVMVEkgPSAweDU0 NUI7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NNSVdB SVQgPSAweDU0NUM7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3Rs X1RJT0NHSUNPVU5UID0gMHg1NDVEOworICBhbWQ2NF9saW51eF9yZWNvcmRf dGRlcC5pb2N0bF9USU9DR0hBWUVTRVNQID0gMHg1NDVFOworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DU0hBWUVTRVNQID0gMHg1NDVG OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9GSU9RU0laRSA9 IDB4NTQ2MDsKKworICAvKiBUaGVzZSB2YWx1ZXMgYXJlIHRoZSBzZWNvbmQg YXJndW1lbnQgb2Ygc3lzdGVtIGNhbGwgInN5c19mY250bCIKKyAgICAgYW5k ICJzeXNfZmNudGw2NCIuICBUaGV5IGFyZSBvYnRhaW5lZCBmcm9tIExpbnV4 IEtlcm5lbCBzb3VyY2UuICAqLworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRl cC5mY250bF9GX0dFVExLID0gNTsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3Rk ZXAuZmNudGxfRl9HRVRMSzY0ID0gMTI7CisgIGFtZDY0X2xpbnV4X3JlY29y ZF90ZGVwLmZjbnRsX0ZfU0VUTEs2NCA9IDEzOworICBhbWQ2NF9saW51eF9y ZWNvcmRfdGRlcC5mY250bF9GX1NFVExLVzY0ID0gMTQ7CisKKyAgYW1kNjRf bGludXhfcmVjb3JkX3RkZXAuYXJnMSA9IEFNRDY0X1JESV9SRUdOVU07Cisg IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmFyZzIgPSBBTUQ2NF9SU0lfUkVH TlVNOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5hcmczID0gQU1ENjRf UkRYX1JFR05VTTsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuYXJnNCA9 IEFNRDY0X1IxMF9SRUdOVU07CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LmFyZzUgPSBBTUQ2NF9SOF9SRUdOVU07CisgIGFtZDY0X2xpbnV4X3JlY29y ZF90ZGVwLmFyZzYgPSBBTUQ2NF9SOV9SRUdOVU07CisKKyAgdGRlcC0+aTM4 Nl9zeXNjYWxsX3JlY29yZCA9IGFtZDY0X2xpbnV4X3N5c2NhbGxfcmVjb3Jk OwogfQogDAogCg== --000e0cd20cd6635375046e148bac--