From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8114 invoked by alias); 19 Jul 2009 17:21:25 -0000 Received: (qmail 8083 invoked by uid 22791); 19 Jul 2009 17:21:18 -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 wf-out-1314.google.com (HELO wf-out-1314.google.com) (209.85.200.171) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 19 Jul 2009 17:21:06 +0000 Received: by wf-out-1314.google.com with SMTP id 23so605110wfg.24 for ; Sun, 19 Jul 2009 10:21:04 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.223.20 with SMTP id v20mr886222wfg.316.1248024064104; Sun, 19 Jul 2009 10:21:04 -0700 (PDT) In-Reply-To: <4A6121FC.3030205@vmware.com> References: <4A5A8438.6030005@vmware.com> <4A6121FC.3030205@vmware.com> From: Hui Zhu Date: Sun, 19 Jul 2009 21:03:00 -0000 Message-ID: Subject: Re: [RFA/RFC Prec] Add Linux AMD64 process record support second version, (AMD64 Linux system call support) 3/3 To: Michael Snyder , Mark Kettenis Cc: gdb-patches ml Content-Type: multipart/mixed; boundary=000e0cd28d4a03188f046f123f9c 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/msg00456.txt.bz2 --000e0cd28d4a03188f046f123f9c Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 33188 On Sat, Jul 18, 2009 at 09:14, Michael Snyder wrote: > Hui Zhu wrote: > > >> + =A0/* Convert tmpulongest to number in record_linux_system_call. =A0*/ >> + =A0switch (tmpulongest) >> + =A0 =A0{ >> + =A0 =A0 =A0/* sys_read */ >> + =A0 =A0case 0: >> + =A0 =A0 =A0num =3D 3; >> + =A0 =A0 =A0break; >> + =A0 =A0 =A0/* sys_write */ >> + =A0 =A0case 1: >> + =A0 =A0 =A0num =3D 4; >> + =A0 =A0 =A0break; > > Hey Hui, > > This switch statement is over 1000 lines long! =A0;-) > > It's OK, there's no real rule against that, but it just > makes me think about whether shortening it might make it > any easier to read and maintain... > > I thought of suggesting a look-up table, but that would > actually make it harder to read and maintain, I think... > > What about this? =A0If you wrote it this way... > > =A0 =A0 =A0 =A0case 1: =A0 =A0 =A0 =A0 /* sys_write */ > > you'd save over 250 lines, and I think it would be more readable. > > And then, if you abstracted the switch statement out > into a separate function, you could code it like this... > > =A0 =A0 =A0 =A0case 1: =A0 =A0 =A0 =A0 /* sys_write */ > =A0 =A0 =A0 =A0 =A0return 4; > =A0 =A0 =A0 =A0case 2: =A0 =A0 =A0 =A0 /* sys_open */ > > and save another 250 lines, cutting the whole thing by half. > You'd have to special-case number 158, of course. > > I leave it up to you, you can decide. > > Other than that it looks fine. =A0Mark? > 2009-07-20 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 | 1295 ++++++++++++++++++++++++++++++++++++++++++++++++= +++++ 1 file changed, 1295 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 =3D -1; + ULONGEST tmpulongest; + + regcache_raw_read_unsigned (regcache, AMD64_RAX_REGNUM, &tmpulongest); + + /* Convert tmpulongest to number in record_linux_system_call. */ + switch (tmpulongest) + { + /* sys_read */ + case 0: + num =3D 3; + break; + /* sys_write */ + case 1: + num =3D 4; + break; + /* sys_open */ + case 2: + num =3D 5; + break; + /* sys_close */ + case 3: + num =3D 6; + break; + /* sys_newstat */ + case 4: + num =3D 106; + break; + /* sys_newfstat */ + case 5: + num =3D 108; + break; + /* sys_newlstat */ + case 6: + num =3D 107; + break; + /* sys_poll */ + case 7: + num =3D 168; + break; + /* sys_lseek */ + case 8: + num =3D 19; + break; + /* sys_mmap */ + case 9: + num =3D 192; + break; + /* sys_mprotect */ + case 10: + num =3D 125; + break; + /* sys_munmap */ + case 11: + num =3D 91; + break; + /* sys_brk */ + case 12: + num =3D 45; + break; + /* sys_rt_sigaction */ + case 13: + num =3D 174; + break; + /* sys_rt_sigprocmask */ + case 14: + num =3D 175; + break; + /* sys_rt_sigreturn */ + case 15: + num =3D 173; + break; + /* sys_ioctl */ + case 16: + num =3D 54; + break; + /* sys_pread64 */ + case 17: + num =3D 180; + break; + /* sys_pwrite64 */ + case 18: + num =3D 181; + break; + /* sys_readv */ + case 19: + num =3D 145; + break; + /* sys_writev */ + case 20: + num =3D 146; + break; + /* sys_access */ + case 21: + num =3D 33; + break; + /* sys_pipe */ + case 22: + num =3D 42; + break; + /* sys_select */ + case 23: + num =3D 142; + break; + /* sys_sched_yield */ + case 24: + num =3D 158; + break; + /* sys_mremap */ + case 25: + num =3D 163; + break; + /* sys_msync */ + case 26: + num =3D 144; + break; + /* sys_mincore */ + case 27: + num =3D 218; + break; + /* sys_madvise */ + case 28: + num =3D 219; + break; + /* sys_shmget */ + case 29: + num =3D 520; + break; + /* sys_shmat */ + case 30: + num =3D 521; + break; + /* sys_shmctl */ + case 31: + num =3D 522; + break; + /* sys_dup */ + case 32: + num =3D 41; + break; + /* sys_dup2 */ + case 33: + num =3D 63; + break; + /* sys_pause */ + case 34: + num =3D 29; + break; + /* sys_nanosleep */ + case 35: + num =3D 162; + break; + /* sys_getitimer */ + case 36: + num =3D 105; + break; + /* sys_alarm */ + case 37: + num =3D 27; + break; + /* sys_setitimer */ + case 38: + num =3D 104; + break; + /* sys_getpid */ + case 39: + num =3D 20; + break; + /* sys_sendfile64 */ + case 40: + num =3D 239; + break; + /* sys_socket */ + case 41: + num =3D 500; + break; + /* sys_connect */ + case 42: + num =3D 501; + break; + /* sys_accept */ + case 43: + num =3D 502; + break; + /* sys_sendto */ + case 44: + num =3D 503; + break; + /* sys_recvfrom */ + case 45: + num =3D 504; + break; + /* sys_sendmsg */ + case 46: + num =3D 505; + break; + /* sys_recvmsg */ + case 47: + num =3D 506; + break; + /* sys_shutdown */ + case 48: + num =3D 507; + break; + /* sys_bind */ + case 49: + num =3D 508; + break; + /* sys_listen */ + case 50: + num =3D 509; + break; + /* sys_getsockname */ + case 51: + num =3D 510; + break; + /* sys_getpeername */ + case 52: + num =3D 511; + break; + /* sys_socketpair */ + case 53: + num =3D 512; + break; + /* sys_setsockopt */ + case 54: + num =3D 513; + break; + /* sys_getsockopt */ + case 55: + num =3D 514; + break; + /* sys_clone */ + case 56: + num =3D 120; + break; + /* sys_fork */ + case 57: + num =3D 2; + break; + /* sys_vfork */ + case 58: + num =3D 190; + break; + /* sys_execve */ + case 59: + num =3D 11; + break; + /* sys_exit */ + case 60: + num =3D 1; + break; + /* sys_wait4 */ + case 61: + num =3D 114; + break; + /* sys_kill */ + case 62: + num =3D 37; + break; + /* sys_uname */ + case 63: + num =3D 109; + break; + /* sys_semget */ + case 64: + num =3D 523; + break; + /* sys_semop */ + case 65: + num =3D 524; + break; + /* sys_semctl */ + case 66: + num =3D 525; + break; + /* sys_shmdt */ + case 67: + num =3D 527; + break; + /* sys_msgget */ + case 68: + num =3D 528; + break; + /* sys_msgsnd */ + case 69: + num =3D 529; + break; + /* sys_msgrcv */ + case 70: + num =3D 530; + break; + /* sys_msgctl */ + case 71: + num =3D 531; + break; + /* sys_fcntl */ + case 72: + num =3D 55; + break; + /* sys_flock */ + case 73: + num =3D 143; + break; + /* sys_fsync */ + case 74: + num =3D 118; + break; + /* sys_fdatasync */ + case 75: + num =3D 148; + break; + /* sys_truncate */ + case 76: + num =3D 92; + break; + /* sys_ftruncate */ + case 77: + num =3D 93; + break; + /* sys_getdents */ + case 78: + num =3D 141; + break; + /* sys_getcwd */ + case 79: + num =3D 183; + break; + /* sys_chdir */ + case 80: + num =3D 12; + break; + /* sys_fchdir */ + case 81: + num =3D 133; + break; + /* sys_rename */ + case 82: + num =3D 38; + break; + /* sys_mkdir */ + case 83: + num =3D 39; + break; + /* sys_rmdir */ + case 84: + num =3D 40; + break; + /* sys_creat */ + case 85: + num =3D 8; + break; + /* sys_link */ + case 86: + num =3D 9; + break; + /* sys_unlink */ + case 87: + num =3D 10; + break; + /* sys_symlink */ + case 88: + num =3D 83; + break; + /* sys_readlink */ + case 89: + num =3D 85; + break; + /* sys_chmod */ + case 90: + num =3D 15; + break; + /* sys_fchmod */ + case 91: + num =3D 94; + break; + /* sys_chown */ + case 92: + num =3D 212; + break; + /* sys_fchown */ + case 93: + num =3D 207; + break; + /* sys_lchown */ + case 94: + num =3D 198; + break; + /* sys_umask */ + case 95: + num =3D 60; + break; + /* sys_gettimeofday */ + case 96: + num =3D 78; + break; + /* sys_getrlimit */ + case 97: + num =3D 191; + break; + /* sys_getrusage */ + case 98: + num =3D 77; + break; + /* sys_sysinfo */ + case 99: + num =3D 116; + break; + /* sys_times */ + case 100: + num =3D 43; + break; + /* sys_ptrace */ + case 101: + num =3D 26; + break; + /* sys_getuid */ + case 102: + num =3D 199; + break; + /* sys_syslog */ + case 103: + num =3D 103; + break; + /* sys_getgid */ + case 104: + num =3D 200; + break; + /* sys_setuid */ + case 105: + num =3D 213; + break; + /* sys_setgid */ + case 106: + num =3D 214; + break; + /* sys_geteuid */ + case 107: + num =3D 201; + break; + /* sys_getegid */ + case 108: + num =3D 202; + break; + /* sys_setpgid */ + case 109: + num =3D 57; + break; + /* sys_getppid */ + case 110: + num =3D 64; + break; + /* sys_getpgrp */ + case 111: + num =3D 65; + break; + /* sys_setsid */ + case 112: + num =3D 66; + break; + /* sys_setreuid */ + case 113: + num =3D 203; + break; + /* sys_setregid */ + case 114: + num =3D 204; + break; + /* sys_getgroups */ + case 115: + num =3D 205; + break; + /* sys_setgroups */ + case 116: + num =3D 206; + break; + /* sys_setresuid */ + case 117: + num =3D 208; + break; + /* sys_getresuid */ + case 118: + num =3D 209; + break; + /* sys_setresgid */ + case 119: + num =3D 210; + break; + /* sys_getresgid */ + case 120: + num =3D 211; + break; + /* sys_getpgid */ + case 121: + num =3D 132; + break; + /* sys_setfsuid */ + case 122: + num =3D 215; + break; + /* sys_setfsgid */ + case 123: + num =3D 216; + break; + /* sys_getsid */ + case 124: + num =3D 147; + break; + /* sys_capget */ + case 125: + num =3D 184; + break; + /* sys_capset */ + case 126: + num =3D 185; + break; + /* sys_rt_sigpending */ + case 127: + num =3D 176; + break; + /* sys_rt_sigtimedwait */ + case 128: + num =3D 177; + break; + /* sys_rt_sigqueueinfo */ + case 129: + num =3D 178; + break; + /* sys_rt_sigsuspend */ + case 130: + num =3D 179; + break; + /* sys_sigaltstack */ + case 131: + num =3D 186; + break; + /* sys_utime */ + case 132: + num =3D 30; + break; + /* sys_mknod */ + case 133: + num =3D 14; + break; + /* sys_personality */ + case 135: + num =3D 136; + break; + /* sys_ustat */ + case 136: + num =3D 62; + break; + /* sys_statfs */ + case 137: + num =3D 99; + break; + /* sys_fstatfs */ + case 138: + num =3D 100; + break; + /* sys_sysfs */ + case 139: + num =3D 135; + break; + /* sys_getpriority */ + case 140: + num =3D 96; + break; + /* sys_setpriority */ + case 141: + num =3D 97; + break; + /* sys_sched_setparam */ + case 142: + num =3D 154; + break; + /* sys_sched_getparam */ + case 143: + num =3D 155; + break; + /* sys_sched_setscheduler */ + case 144: + num =3D 156; + break; + /* sys_sched_getscheduler */ + case 145: + num =3D 157; + break; + /* sys_sched_get_priority_max */ + case 146: + num =3D 159; + break; + /* sys_sched_get_priority_min */ + case 147: + num =3D 160; + break; + /* sys_sched_rr_get_interval */ + case 148: + num =3D 161; + break; + /* sys_mlock */ + case 149: + num =3D 150; + break; + /* sys_munlock */ + case 150: + num =3D 151; + break; + /* sys_mlockall */ + case 151: + num =3D 152; + break; + /* sys_munlockall */ + case 152: + num =3D 153; + break; + /* sys_vhangup */ + case 153: + num =3D 111; + break; + /* sys_modify_ldt */ + case 154: + num =3D 123; + break; + /* sys_pivot_root */ + case 155: + num =3D 217; + break; + /* sys_sysctl */ + case 156: + num =3D 149; + break; + /* sys_prctl */ + case 157: + num =3D 172; + break; + /* sys_arch_prctl */ + case 158: + regcache_raw_read_unsigned (regcache, amd64_linux_record_tdep.arg3, + &tmpulongest); + if (tmpulongest =3D=3D RECORD_ARCH_GET_FS + || tmpulongest =3D=3D RECORD_ARCH_GET_GS) + { + regcache_raw_read_unsigned (regcache, amd64_linux_record_tdep.ar= g2, + &tmpulongest); + if (record_arch_list_add_mem ((CORE_ADDR) tmpulongest, + amd64_linux_record_tdep.size_ulong= )) + return -1; + } + break; + /* sys_adjtimex */ + case 159: + num =3D 124; + break; + /* sys_setrlimit */ + case 160: + num =3D 75; + break; + /* sys_chroot */ + case 161: + num =3D 61; + break; + /* sys_sync */ + case 162: + num =3D 36; + break; + /* sys_acct */ + case 163: + num =3D 51; + break; + /* sys_settimeofday */ + case 164: + num =3D 79; + break; + /* sys_mount */ + case 165: + num =3D 21; + break; + /* sys_umount */ + case 166: + num =3D 52; + break; + /* sys_swapon */ + case 167: + num =3D 87; + break; + /* sys_swapoff */ + case 168: + num =3D 115; + break; + /* sys_reboot */ + case 169: + num =3D 88; + break; + /* sys_sethostname */ + case 170: + num =3D 74; + break; + /* sys_setdomainname */ + case 171: + num =3D 121; + break; + /* sys_iopl */ + case 172: + num =3D 110; + break; + /* sys_ioperm */ + case 173: + num =3D 101; + break; + /* sys_init_module */ + case 175: + num =3D 128; + break; + /* sys_delete_module */ + case 176: + num =3D 129; + break; + /* sys_quotactl */ + case 179: + num =3D 131; + break; + /* sys_nfsservctl */ + case 180: + num =3D 169; + break; + /* sys_gettid */ + case 186: + num =3D 224; + break; + /* sys_readahead */ + case 187: + num =3D 225; + break; + /* sys_setxattr */ + case 188: + num =3D 226; + break; + /* sys_lsetxattr */ + case 189: + num =3D 227; + break; + /* sys_fsetxattr */ + case 190: + num =3D 228; + break; + /* sys_getxattr */ + case 191: + num =3D 229; + break; + /* sys_lgetxattr */ + case 192: + num =3D 230; + break; + /* sys_fgetxattr */ + case 193: + num =3D 231; + break; + /* sys_listxattr */ + case 194: + num =3D 232; + break; + /* sys_llistxattr */ + case 195: + num =3D 233; + break; + /* sys_flistxattr */ + case 196: + num =3D 234; + break; + /* sys_removexattr */ + case 197: + num =3D 235; + break; + /* sys_lremovexattr */ + case 198: + num =3D 236; + break; + /* sys_fremovexattr */ + case 199: + num =3D 237; + break; + /* sys_tkill */ + case 200: + num =3D 238; + break; + /* sys_time */ + case 201: + num =3D 13; + break; + /* sys_futex */ + case 202: + num =3D 240; + break; + /* sys_sched_setaffinity */ + case 203: + num =3D 241; + break; + /* sys_sched_getaffinity */ + case 204: + num =3D 242; + break; + /* sys_io_setup */ + case 206: + num =3D 245; + break; + /* sys_io_destroy */ + case 207: + num =3D 246; + break; + /* sys_io_getevents */ + case 208: + num =3D 247; + break; + /* sys_io_submit */ + case 209: + num =3D 248; + break; + /* sys_io_cancel */ + case 210: + num =3D 249; + break; + /* sys_lookup_dcookie */ + case 212: + num =3D 253; + break; + /* sys_epoll_create */ + case 213: + num =3D 254; + break; + /* sys_remap_file_pages */ + case 216: + num =3D 257; + break; + /* sys_getdents64 */ + case 217: + num =3D 220; + break; + /* sys_set_tid_address */ + case 218: + num =3D 258; + break; + /* sys_restart_syscall */ + case 219: + num =3D 0; + break; + /* sys_semtimedop */ + case 220: + num =3D 532; + break; + /* sys_fadvise64 */ + case 221: + num =3D 250; + break; + /* sys_timer_create */ + case 222: + num =3D 259; + break; + /* sys_timer_settime */ + case 223: + num =3D 260; + break; + /* sys_timer_gettime */ + case 224: + num =3D 261; + break; + /* sys_timer_getoverrun */ + case 225: + num =3D 262; + break; + /* sys_timer_delete */ + case 226: + num =3D 263; + break; + /* sys_clock_settime */ + case 227: + num =3D 264; + break; + /* sys_clock_gettime */ + case 228: + num =3D 265; + break; + /* sys_clock_getres */ + case 229: + num =3D 266; + break; + /* sys_clock_nanosleep */ + case 230: + num =3D 267; + break; + /* sys_exit_group */ + case 231: + num =3D 252; + break; + /* sys_epoll_wait */ + case 232: + num =3D 256; + break; + /* sys_epoll_ctl */ + case 233: + num =3D 255; + break; + /* sys_tgkill */ + case 234: + num =3D 270; + break; + /* sys_utimes */ + case 235: + num =3D 271; + break; + /* sys_mbind */ + case 237: + num =3D 274; + break; + /* sys_set_mempolicy */ + case 238: + num =3D 276; + break; + /* sys_get_mempolicy */ + case 239: + num =3D 275; + break; + /* sys_mq_open */ + case 240: + num =3D 277; + break; + /* sys_mq_unlink */ + case 241: + num =3D 278; + break; + /* sys_mq_timedsend */ + case 242: + num =3D 279; + break; + /* sys_mq_timedreceive */ + case 243: + num =3D 280; + break; + /* sys_mq_notify */ + case 244: + num =3D 281; + break; + /* sys_mq_getsetattr */ + case 245: + num =3D 282; + break; + /* sys_kexec_load */ + case 246: + num =3D 283; + break; + /* sys_waitid */ + case 247: + num =3D 284; + break; + /* sys_add_key */ + case 248: + num =3D 286; + break; + /* sys_request_key */ + case 249: + num =3D 287; + break; + /* sys_keyctl */ + case 250: + num =3D 288; + break; + /* sys_ioprio_set */ + case 251: + num =3D 289; + break; + /* sys_ioprio_get */ + case 252: + num =3D 290; + break; + /* sys_inotify_init */ + case 253: + num =3D 291; + break; + /* sys_inotify_add_watch */ + case 254: + num =3D 292; + break; + /* sys_inotify_rm_watch */ + case 255: + num =3D 293; + break; + /* sys_migrate_pages */ + case 256: + num =3D 294; + break; + /* sys_openat */ + case 257: + num =3D 295; + break; + /* sys_mkdirat */ + case 258: + num =3D 296; + break; + /* sys_mknodat */ + case 259: + num =3D 297; + break; + /* sys_fchownat */ + case 260: + num =3D 298; + break; + /* sys_futimesat */ + case 261: + num =3D 299; + break; + /* sys_newfstatat */ + case 262: + num =3D 540; + break; + /* sys_unlinkat */ + case 263: + num =3D 301; + break; + /* sys_renameat */ + case 264: + num =3D 302; + break; + /* sys_linkat */ + case 265: + num =3D 303; + break; + /* sys_symlinkat */ + case 266: + num =3D 304; + break; + /* sys_readlinkat */ + case 267: + num =3D 305; + break; + /* sys_fchmodat */ + case 268: + num =3D 306; + break; + /* sys_faccessat */ + case 269: + num =3D 307; + break; + /* sys_pselect6 */ + case 270: + num =3D 308; + break; + /* sys_ppoll */ + case 271: + num =3D 309; + break; + /* sys_unshare */ + case 272: + num =3D 310; + break; + /* sys_set_robust_list */ + case 273: + num =3D 311; + break; + /* sys_get_robust_list */ + case 274: + num =3D 312; + break; + /* sys_splice */ + case 275: + num =3D 313; + break; + /* sys_tee */ + case 276: + num =3D 315; + break; + /* sys_sync_file_range */ + case 277: + num =3D 314; + break; + /* sys_vmsplice */ + case 278: + num =3D 316; + break; + /* sys_move_pages */ + case 279: + num =3D 317; + break; + default: + printf_unfiltered (_("Process record and replay target doesn't " + "support syscall number %d\n"), (int) tmpulonge= st); + return -1; + break; + } + + if (num >=3D 0) + { + ret =3D 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,177 @@ 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 + =3D gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT; + amd64_linux_record_tdep.size__old_kernel_stat =3D 32; + amd64_linux_record_tdep.size_tms =3D 32; + amd64_linux_record_tdep.size_loff_t =3D 8; + amd64_linux_record_tdep.size_flock =3D 32; + amd64_linux_record_tdep.size_oldold_utsname =3D 45; + amd64_linux_record_tdep.size_ustat =3D 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 =3D 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 =3D 128; + amd64_linux_record_tdep.size_rlimit =3D 16; + amd64_linux_record_tdep.size_rusage =3D 144; + amd64_linux_record_tdep.size_timeval =3D 16; + amd64_linux_record_tdep.size_timezone =3D 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 =3D 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 =3D 2; + amd64_linux_record_tdep.size_fd_set =3D 128; + amd64_linux_record_tdep.size_dirent =3D 280; + amd64_linux_record_tdep.size_dirent64 =3D 280; + amd64_linux_record_tdep.size_statfs =3D 120; + amd64_linux_record_tdep.size_statfs64 =3D 120; + amd64_linux_record_tdep.size_sockaddr =3D 16; + amd64_linux_record_tdep.size_int + =3D gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT; + amd64_linux_record_tdep.size_long + =3D gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT; + amd64_linux_record_tdep.size_ulong + =3D gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT; + amd64_linux_record_tdep.size_msghdr =3D 56; + amd64_linux_record_tdep.size_itimerval =3D 32; + amd64_linux_record_tdep.size_stat =3D 144; + amd64_linux_record_tdep.size_old_utsname =3D 325; + amd64_linux_record_tdep.size_sysinfo =3D 112; + amd64_linux_record_tdep.size_msqid_ds =3D 120; + amd64_linux_record_tdep.size_shmid_ds =3D 112; + amd64_linux_record_tdep.size_new_utsname =3D 390; + amd64_linux_record_tdep.size_timex =3D 208; + amd64_linux_record_tdep.size_mem_dqinfo =3D 24; + amd64_linux_record_tdep.size_if_dqblk =3D 72; + amd64_linux_record_tdep.size_fs_quota_stat =3D 80; + amd64_linux_record_tdep.size_timespec =3D 16; + amd64_linux_record_tdep.size_pollfd =3D 8; + amd64_linux_record_tdep.size_NFS_FHSIZE =3D 32; + amd64_linux_record_tdep.size_knfsd_fh =3D 132; + amd64_linux_record_tdep.size_TASK_COMM_LEN =3D 16; + amd64_linux_record_tdep.size_sigaction =3D 152; + amd64_linux_record_tdep.size_sigset_t =3D 128; + amd64_linux_record_tdep.size_siginfo_t =3D 128; + amd64_linux_record_tdep.size_cap_user_data_t =3D 8; + amd64_linux_record_tdep.size_stack_t =3D 24; + amd64_linux_record_tdep.size_off_t =3D 8; + amd64_linux_record_tdep.size_stat64 =3D 144; + amd64_linux_record_tdep.size_gid_t =3D 4; + amd64_linux_record_tdep.size_uid_t =3D 4; + amd64_linux_record_tdep.size_PAGE_SIZE =3D 4096; + amd64_linux_record_tdep.size_flock64 =3D 32; + amd64_linux_record_tdep.size_user_desc =3D 16; + amd64_linux_record_tdep.size_io_event =3D 32; + amd64_linux_record_tdep.size_iocb =3D 64; + amd64_linux_record_tdep.size_epoll_event =3D 12; + amd64_linux_record_tdep.size_itimerspec =3D 32; + amd64_linux_record_tdep.size_mq_attr =3D 64; + amd64_linux_record_tdep.size_siginfo =3D 128; + amd64_linux_record_tdep.size_termios =3D 60; + amd64_linux_record_tdep.size_termios2 =3D 44; + amd64_linux_record_tdep.size_pid_t =3D 4; + amd64_linux_record_tdep.size_winsize =3D 8; + amd64_linux_record_tdep.size_serial_struct =3D 72; + amd64_linux_record_tdep.size_serial_icounter_struct =3D 80; + amd64_linux_record_tdep.size_hayes_esp_config =3D 12; + amd64_linux_record_tdep.size_size_t =3D 8; + amd64_linux_record_tdep.size_iovec =3D 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 =3D 0x5401; + amd64_linux_record_tdep.ioctl_TCSETS =3D 0x5402; + amd64_linux_record_tdep.ioctl_TCSETSW =3D 0x5403; + amd64_linux_record_tdep.ioctl_TCSETSF =3D 0x5404; + amd64_linux_record_tdep.ioctl_TCGETA =3D 0x5405; + amd64_linux_record_tdep.ioctl_TCSETA =3D 0x5406; + amd64_linux_record_tdep.ioctl_TCSETAW =3D 0x5407; + amd64_linux_record_tdep.ioctl_TCSETAF =3D 0x5408; + amd64_linux_record_tdep.ioctl_TCSBRK =3D 0x5409; + amd64_linux_record_tdep.ioctl_TCXONC =3D 0x540A; + amd64_linux_record_tdep.ioctl_TCFLSH =3D 0x540B; + amd64_linux_record_tdep.ioctl_TIOCEXCL =3D 0x540C; + amd64_linux_record_tdep.ioctl_TIOCNXCL =3D 0x540D; + amd64_linux_record_tdep.ioctl_TIOCSCTTY =3D 0x540E; + amd64_linux_record_tdep.ioctl_TIOCGPGRP =3D 0x540F; + amd64_linux_record_tdep.ioctl_TIOCSPGRP =3D 0x5410; + amd64_linux_record_tdep.ioctl_TIOCOUTQ =3D 0x5411; + amd64_linux_record_tdep.ioctl_TIOCSTI =3D 0x5412; + amd64_linux_record_tdep.ioctl_TIOCGWINSZ =3D 0x5413; + amd64_linux_record_tdep.ioctl_TIOCSWINSZ =3D 0x5414; + amd64_linux_record_tdep.ioctl_TIOCMGET =3D 0x5415; + amd64_linux_record_tdep.ioctl_TIOCMBIS =3D 0x5416; + amd64_linux_record_tdep.ioctl_TIOCMBIC =3D 0x5417; + amd64_linux_record_tdep.ioctl_TIOCMSET =3D 0x5418; + amd64_linux_record_tdep.ioctl_TIOCGSOFTCAR =3D 0x5419; + amd64_linux_record_tdep.ioctl_TIOCSSOFTCAR =3D 0x541A; + amd64_linux_record_tdep.ioctl_FIONREAD =3D 0x541B; + amd64_linux_record_tdep.ioctl_TIOCINQ + =3D amd64_linux_record_tdep.ioctl_FIONREAD; + amd64_linux_record_tdep.ioctl_TIOCLINUX =3D 0x541C; + amd64_linux_record_tdep.ioctl_TIOCCONS =3D 0x541D; + amd64_linux_record_tdep.ioctl_TIOCGSERIAL =3D 0x541E; + amd64_linux_record_tdep.ioctl_TIOCSSERIAL =3D 0x541F; + amd64_linux_record_tdep.ioctl_TIOCPKT =3D 0x5420; + amd64_linux_record_tdep.ioctl_FIONBIO =3D 0x5421; + amd64_linux_record_tdep.ioctl_TIOCNOTTY =3D 0x5422; + amd64_linux_record_tdep.ioctl_TIOCSETD =3D 0x5423; + amd64_linux_record_tdep.ioctl_TIOCGETD =3D 0x5424; + amd64_linux_record_tdep.ioctl_TCSBRKP =3D 0x5425; + amd64_linux_record_tdep.ioctl_TIOCTTYGSTRUCT =3D 0x5426; + amd64_linux_record_tdep.ioctl_TIOCSBRK =3D 0x5427; + amd64_linux_record_tdep.ioctl_TIOCCBRK =3D 0x5428; + amd64_linux_record_tdep.ioctl_TIOCGSID =3D 0x5429; + amd64_linux_record_tdep.ioctl_TCGETS2 =3D 0x802c542a; + amd64_linux_record_tdep.ioctl_TCSETS2 =3D 0x402c542b; + amd64_linux_record_tdep.ioctl_TCSETSW2 =3D 0x402c542c; + amd64_linux_record_tdep.ioctl_TCSETSF2 =3D 0x402c542d; + amd64_linux_record_tdep.ioctl_TIOCGPTN =3D 0x80045430; + amd64_linux_record_tdep.ioctl_TIOCSPTLCK =3D 0x40045431; + amd64_linux_record_tdep.ioctl_FIONCLEX =3D 0x5450; + amd64_linux_record_tdep.ioctl_FIOCLEX =3D 0x5451; + amd64_linux_record_tdep.ioctl_FIOASYNC =3D 0x5452; + amd64_linux_record_tdep.ioctl_TIOCSERCONFIG =3D 0x5453; + amd64_linux_record_tdep.ioctl_TIOCSERGWILD =3D 0x5454; + amd64_linux_record_tdep.ioctl_TIOCSERSWILD =3D 0x5455; + amd64_linux_record_tdep.ioctl_TIOCGLCKTRMIOS =3D 0x5456; + amd64_linux_record_tdep.ioctl_TIOCSLCKTRMIOS =3D 0x5457; + amd64_linux_record_tdep.ioctl_TIOCSERGSTRUCT =3D 0x5458; + amd64_linux_record_tdep.ioctl_TIOCSERGETLSR =3D 0x5459; + amd64_linux_record_tdep.ioctl_TIOCSERGETMULTI =3D 0x545A; + amd64_linux_record_tdep.ioctl_TIOCSERSETMULTI =3D 0x545B; + amd64_linux_record_tdep.ioctl_TIOCMIWAIT =3D 0x545C; + amd64_linux_record_tdep.ioctl_TIOCGICOUNT =3D 0x545D; + amd64_linux_record_tdep.ioctl_TIOCGHAYESESP =3D 0x545E; + amd64_linux_record_tdep.ioctl_TIOCSHAYESESP =3D 0x545F; + amd64_linux_record_tdep.ioctl_FIOQSIZE =3D 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 =3D 5; + amd64_linux_record_tdep.fcntl_F_GETLK64 =3D 12; + amd64_linux_record_tdep.fcntl_F_SETLK64 =3D 13; + amd64_linux_record_tdep.fcntl_F_SETLKW64 =3D 14; + + amd64_linux_record_tdep.arg1 =3D AMD64_RDI_REGNUM; + amd64_linux_record_tdep.arg2 =3D AMD64_RSI_REGNUM; + amd64_linux_record_tdep.arg3 =3D AMD64_RDX_REGNUM; + amd64_linux_record_tdep.arg4 =3D AMD64_R10_REGNUM; + amd64_linux_record_tdep.arg5 =3D AMD64_R8_REGNUM; + amd64_linux_record_tdep.arg6 =3D AMD64_R9_REGNUM; + + tdep->i386_syscall_record =3D amd64_linux_syscall_record; } --000e0cd28d4a03188f046f123f9c 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_fxc1a2of0 Content-length: 41277 LS0tCiBhbWQ2NC1saW51eC10ZGVwLmMgfCAxMjk1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMTI5NSBpbnNlcnRpb25zKCspCgotLS0gYS9hbWQ2NC1s aW51eC10ZGVwLmMKKysrIGIvYW1kNjQtbGludXgtdGRlcC5jCkBAIC0zNiw2 ICszNiw5IEBACiAjaW5jbHVkZSAiYW1kNjQtdGRlcC5oIgogI2luY2x1ZGUg InNvbGliLXN2cjQuaCIKIAorI2luY2x1ZGUgInJlY29yZC5oIgorI2luY2x1 ZGUgImxpbnV4LXJlY29yZC5oIgorCiAvKiBNYXBwaW5nIGJldHdlZW4gdGhl IGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgaW4gYHN0cnVjdCB1c2VyJwog ICAgZm9ybWF0IGFuZCBHREIncyByZWdpc3RlciBjYWNoZSBsYXlvdXQuICAq LwogCkBAIC0yNjAsNiArMjYzLDExMjcgQEAgYW1kNjRfbGludXhfd3JpdGVf cGMgKHN0cnVjdCByZWdjYWNoZSAqcgogICByZWdjYWNoZV9jb29rZWRfd3Jp dGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBBTUQ2NF9MSU5VWF9PUklHX1JBWF9S RUdOVU0sIC0xKTsKIH0KIAorLyogUGFyc2UgdGhlIGFyZ3VtZW50cyBvZiBj dXJyZW50IHN5c3RlbSBjYWxsIGluc3RydWN0aW9uIGFuZCByZWNvcmQKKyAg IHRoZSB2YWx1ZXMgb2YgdGhlIHJlZ2lzdGVycyBhbmQgbWVtb3J5IHRoYXQg d2lsbCBiZSBjaGFuZ2VkIGludG8KKyAgICJyZWNvcmRfYXJjaF9saXN0Ii4g IFRoaXMgaW5zdHJ1Y3Rpb24gaXMgInN5c2NhbGwiLgorCisgICBSZXR1cm4g LTEgaWYgc29tZXRoaW5nIHdyb25nLiAgKi8KKworc3RhdGljIHN0cnVjdCBs aW51eF9yZWNvcmRfdGRlcCBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcDsKKwor I2RlZmluZSBSRUNPUkRfQVJDSF9HRVRfRlMJMHgxMDAzCisjZGVmaW5lIFJF Q09SRF9BUkNIX0dFVF9HUwkweDEwMDQKKworc3RhdGljIGludAorYW1kNjRf bGludXhfc3lzY2FsbF9yZWNvcmQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUpCit7CisgIGludCByZXQsIG51bSA9IC0xOworICBVTE9OR0VTVCB0bXB1 bG9uZ2VzdDsKKworICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVn Y2FjaGUsIEFNRDY0X1JBWF9SRUdOVU0sICZ0bXB1bG9uZ2VzdCk7CisKKyAg LyogQ29udmVydCB0bXB1bG9uZ2VzdCB0byBudW1iZXIgaW4gcmVjb3JkX2xp bnV4X3N5c3RlbV9jYWxsLiAgKi8KKyAgc3dpdGNoICh0bXB1bG9uZ2VzdCkK KyAgICB7CisgICAgICAvKiBzeXNfcmVhZCAqLworICAgIGNhc2UgMDoKKyAg ICAgIG51bSA9IDM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c193cml0 ZSAqLworICAgIGNhc2UgMToKKyAgICAgIG51bSA9IDQ7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19vcGVuICovCisgICAgY2FzZSAyOgorICAgICAg bnVtID0gNTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2Nsb3NlICov CisgICAgY2FzZSAzOgorICAgICAgbnVtID0gNjsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX25ld3N0YXQgKi8KKyAgICBjYXNlIDQ6CisgICAgICBu dW0gPSAxMDY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19uZXdmc3Rh dCAqLworICAgIGNhc2UgNToKKyAgICAgIG51bSA9IDEwODsKKyAgICAgIGJy ZWFrOworICAgICAgLyogc3lzX25ld2xzdGF0ICovCisgICAgY2FzZSA2Ogor ICAgICAgbnVtID0gMTA3OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNf cG9sbCAqLworICAgIGNhc2UgNzoKKyAgICAgIG51bSA9IDE2ODsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX2xzZWVrICovCisgICAgY2FzZSA4Ogor ICAgICAgbnVtID0gMTk7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19t bWFwICovCisgICAgY2FzZSA5OgorICAgICAgbnVtID0gMTkyOworICAgICAg YnJlYWs7CisgICAgICAvKiBzeXNfbXByb3RlY3QgKi8KKyAgICBjYXNlIDEw OgorICAgICAgbnVtID0gMTI1OworICAgICAgYnJlYWs7CisgICAgICAvKiBz eXNfbXVubWFwICovCisgICAgY2FzZSAxMToKKyAgICAgIG51bSA9IDkxOwor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfYnJrICovCisgICAgY2FzZSAx MjoKKyAgICAgIG51bSA9IDQ1OworICAgICAgYnJlYWs7CisgICAgICAvKiBz eXNfcnRfc2lnYWN0aW9uICovCisgICAgY2FzZSAxMzoKKyAgICAgIG51bSA9 IDE3NDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3J0X3NpZ3Byb2Nt YXNrICovCisgICAgY2FzZSAxNDoKKyAgICAgIG51bSA9IDE3NTsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX3J0X3NpZ3JldHVybiAqLworICAgIGNh c2UgMTU6CisgICAgICBudW0gPSAxNzM7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19pb2N0bCAqLworICAgIGNhc2UgMTY6CisgICAgICBudW0gPSA1 NDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3ByZWFkNjQgKi8KKyAg ICBjYXNlIDE3OgorICAgICAgbnVtID0gMTgwOworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfcHdyaXRlNjQgKi8KKyAgICBjYXNlIDE4OgorICAgICAg bnVtID0gMTgxOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcmVhZHYg Ki8KKyAgICBjYXNlIDE5OgorICAgICAgbnVtID0gMTQ1OworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfd3JpdGV2ICovCisgICAgY2FzZSAyMDoKKyAg ICAgIG51bSA9IDE0NjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2Fj Y2VzcyAqLworICAgIGNhc2UgMjE6CisgICAgICBudW0gPSAzMzsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX3BpcGUgKi8KKyAgICBjYXNlIDIyOgor ICAgICAgbnVtID0gNDI7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19z ZWxlY3QgKi8KKyAgICBjYXNlIDIzOgorICAgICAgbnVtID0gMTQyOworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2NoZWRfeWllbGQgKi8KKyAgICBj YXNlIDI0OgorICAgICAgbnVtID0gMTU4OworICAgICAgYnJlYWs7CisgICAg ICAvKiBzeXNfbXJlbWFwICovCisgICAgY2FzZSAyNToKKyAgICAgIG51bSA9 IDE2MzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX21zeW5jICovCisg ICAgY2FzZSAyNjoKKyAgICAgIG51bSA9IDE0NDsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX21pbmNvcmUgKi8KKyAgICBjYXNlIDI3OgorICAgICAg bnVtID0gMjE4OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfbWFkdmlz ZSAqLworICAgIGNhc2UgMjg6CisgICAgICBudW0gPSAyMTk7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19zaG1nZXQgKi8KKyAgICBjYXNlIDI5Ogor ICAgICAgbnVtID0gNTIwOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNf c2htYXQgKi8KKyAgICBjYXNlIDMwOgorICAgICAgbnVtID0gNTIxOworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2htY3RsICovCisgICAgY2FzZSAz MToKKyAgICAgIG51bSA9IDUyMjsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX2R1cCAqLworICAgIGNhc2UgMzI6CisgICAgICBudW0gPSA0MTsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2R1cDIgKi8KKyAgICBjYXNlIDMz OgorICAgICAgbnVtID0gNjM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19wYXVzZSAqLworICAgIGNhc2UgMzQ6CisgICAgICBudW0gPSAyOTsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX25hbm9zbGVlcCAqLworICAgIGNh c2UgMzU6CisgICAgICBudW0gPSAxNjI7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19nZXRpdGltZXIgKi8KKyAgICBjYXNlIDM2OgorICAgICAgbnVt ID0gMTA1OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfYWxhcm0gKi8K KyAgICBjYXNlIDM3OgorICAgICAgbnVtID0gMjc7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19zZXRpdGltZXIgKi8KKyAgICBjYXNlIDM4OgorICAg ICAgbnVtID0gMTA0OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZ2V0 cGlkICovCisgICAgY2FzZSAzOToKKyAgICAgIG51bSA9IDIwOworICAgICAg YnJlYWs7CisgICAgICAvKiBzeXNfc2VuZGZpbGU2NCAqLworICAgIGNhc2Ug NDA6CisgICAgICBudW0gPSAyMzk7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19zb2NrZXQgKi8KKyAgICBjYXNlIDQxOgorICAgICAgbnVtID0gNTAw OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfY29ubmVjdCAqLworICAg IGNhc2UgNDI6CisgICAgICBudW0gPSA1MDE7CisgICAgICBicmVhazsKKyAg ICAgIC8qIHN5c19hY2NlcHQgKi8KKyAgICBjYXNlIDQzOgorICAgICAgbnVt ID0gNTAyOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2VuZHRvICov CisgICAgY2FzZSA0NDoKKyAgICAgIG51bSA9IDUwMzsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX3JlY3Zmcm9tICovCisgICAgY2FzZSA0NToKKyAg ICAgIG51bSA9IDUwNDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3Nl bmRtc2cgKi8KKyAgICBjYXNlIDQ2OgorICAgICAgbnVtID0gNTA1OworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfcmVjdm1zZyAqLworICAgIGNhc2Ug NDc6CisgICAgICBudW0gPSA1MDY7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19zaHV0ZG93biAqLworICAgIGNhc2UgNDg6CisgICAgICBudW0gPSA1 MDc7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19iaW5kICovCisgICAg Y2FzZSA0OToKKyAgICAgIG51bSA9IDUwODsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX2xpc3RlbiAqLworICAgIGNhc2UgNTA6CisgICAgICBudW0g PSA1MDk7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19nZXRzb2NrbmFt ZSAqLworICAgIGNhc2UgNTE6CisgICAgICBudW0gPSA1MTA7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19nZXRwZWVybmFtZSAqLworICAgIGNhc2Ug NTI6CisgICAgICBudW0gPSA1MTE7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19zb2NrZXRwYWlyICovCisgICAgY2FzZSA1MzoKKyAgICAgIG51bSA9 IDUxMjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3NldHNvY2tvcHQg Ki8KKyAgICBjYXNlIDU0OgorICAgICAgbnVtID0gNTEzOworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfZ2V0c29ja29wdCAqLworICAgIGNhc2UgNTU6 CisgICAgICBudW0gPSA1MTQ7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19jbG9uZSAqLworICAgIGNhc2UgNTY6CisgICAgICBudW0gPSAxMjA7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c19mb3JrICovCisgICAgY2FzZSA1 NzoKKyAgICAgIG51bSA9IDI7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c192Zm9yayAqLworICAgIGNhc2UgNTg6CisgICAgICBudW0gPSAxOTA7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c19leGVjdmUgKi8KKyAgICBjYXNl IDU5OgorICAgICAgbnVtID0gMTE7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19leGl0ICovCisgICAgY2FzZSA2MDoKKyAgICAgIG51bSA9IDE7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c193YWl0NCAqLworICAgIGNhc2Ug NjE6CisgICAgICBudW0gPSAxMTQ7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19raWxsICovCisgICAgY2FzZSA2MjoKKyAgICAgIG51bSA9IDM3Owor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfdW5hbWUgKi8KKyAgICBjYXNl IDYzOgorICAgICAgbnVtID0gMTA5OworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfc2VtZ2V0ICovCisgICAgY2FzZSA2NDoKKyAgICAgIG51bSA9IDUy MzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3NlbW9wICovCisgICAg Y2FzZSA2NToKKyAgICAgIG51bSA9IDUyNDsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX3NlbWN0bCAqLworICAgIGNhc2UgNjY6CisgICAgICBudW0g PSA1MjU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zaG1kdCAqLwor ICAgIGNhc2UgNjc6CisgICAgICBudW0gPSA1Mjc7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19tc2dnZXQgKi8KKyAgICBjYXNlIDY4OgorICAgICAg bnVtID0gNTI4OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfbXNnc25k ICovCisgICAgY2FzZSA2OToKKyAgICAgIG51bSA9IDUyOTsKKyAgICAgIGJy ZWFrOworICAgICAgLyogc3lzX21zZ3JjdiAqLworICAgIGNhc2UgNzA6Cisg ICAgICBudW0gPSA1MzA7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19t c2djdGwgKi8KKyAgICBjYXNlIDcxOgorICAgICAgbnVtID0gNTMxOworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfZmNudGwgKi8KKyAgICBjYXNlIDcy OgorICAgICAgbnVtID0gNTU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19mbG9jayAqLworICAgIGNhc2UgNzM6CisgICAgICBudW0gPSAxNDM7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c19mc3luYyAqLworICAgIGNhc2Ug NzQ6CisgICAgICBudW0gPSAxMTg7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19mZGF0YXN5bmMgKi8KKyAgICBjYXNlIDc1OgorICAgICAgbnVtID0g MTQ4OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfdHJ1bmNhdGUgKi8K KyAgICBjYXNlIDc2OgorICAgICAgbnVtID0gOTI7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19mdHJ1bmNhdGUgKi8KKyAgICBjYXNlIDc3OgorICAg ICAgbnVtID0gOTM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19nZXRk ZW50cyAqLworICAgIGNhc2UgNzg6CisgICAgICBudW0gPSAxNDE7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19nZXRjd2QgKi8KKyAgICBjYXNlIDc5 OgorICAgICAgbnVtID0gMTgzOworICAgICAgYnJlYWs7CisgICAgICAvKiBz eXNfY2hkaXIgKi8KKyAgICBjYXNlIDgwOgorICAgICAgbnVtID0gMTI7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c19mY2hkaXIgKi8KKyAgICBjYXNl IDgxOgorICAgICAgbnVtID0gMTMzOworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfcmVuYW1lICovCisgICAgY2FzZSA4MjoKKyAgICAgIG51bSA9IDM4 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfbWtkaXIgKi8KKyAgICBj YXNlIDgzOgorICAgICAgbnVtID0gMzk7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19ybWRpciAqLworICAgIGNhc2UgODQ6CisgICAgICBudW0gPSA0 MDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2NyZWF0ICovCisgICAg Y2FzZSA4NToKKyAgICAgIG51bSA9IDg7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19saW5rICovCisgICAgY2FzZSA4NjoKKyAgICAgIG51bSA9IDk7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c191bmxpbmsgKi8KKyAgICBj YXNlIDg3OgorICAgICAgbnVtID0gMTA7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19zeW1saW5rICovCisgICAgY2FzZSA4ODoKKyAgICAgIG51bSA9 IDgzOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcmVhZGxpbmsgKi8K KyAgICBjYXNlIDg5OgorICAgICAgbnVtID0gODU7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19jaG1vZCAqLworICAgIGNhc2UgOTA6CisgICAgICBu dW0gPSAxNTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2ZjaG1vZCAq LworICAgIGNhc2UgOTE6CisgICAgICBudW0gPSA5NDsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX2Nob3duICovCisgICAgY2FzZSA5MjoKKyAgICAg IG51bSA9IDIxMjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2ZjaG93 biAqLworICAgIGNhc2UgOTM6CisgICAgICBudW0gPSAyMDc7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19sY2hvd24gKi8KKyAgICBjYXNlIDk0Ogor ICAgICAgbnVtID0gMTk4OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNf dW1hc2sgKi8KKyAgICBjYXNlIDk1OgorICAgICAgbnVtID0gNjA7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19nZXR0aW1lb2ZkYXkgKi8KKyAgICBj YXNlIDk2OgorICAgICAgbnVtID0gNzg7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19nZXRybGltaXQgKi8KKyAgICBjYXNlIDk3OgorICAgICAgbnVt ID0gMTkxOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZ2V0cnVzYWdl ICovCisgICAgY2FzZSA5ODoKKyAgICAgIG51bSA9IDc3OworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfc3lzaW5mbyAqLworICAgIGNhc2UgOTk6Cisg ICAgICBudW0gPSAxMTY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c190 aW1lcyAqLworICAgIGNhc2UgMTAwOgorICAgICAgbnVtID0gNDM7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19wdHJhY2UgKi8KKyAgICBjYXNlIDEw MToKKyAgICAgIG51bSA9IDI2OworICAgICAgYnJlYWs7CisgICAgICAvKiBz eXNfZ2V0dWlkICovCisgICAgY2FzZSAxMDI6CisgICAgICBudW0gPSAxOTk7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zeXNsb2cgKi8KKyAgICBj YXNlIDEwMzoKKyAgICAgIG51bSA9IDEwMzsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX2dldGdpZCAqLworICAgIGNhc2UgMTA0OgorICAgICAgbnVt ID0gMjAwOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2V0dWlkICov CisgICAgY2FzZSAxMDU6CisgICAgICBudW0gPSAyMTM7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19zZXRnaWQgKi8KKyAgICBjYXNlIDEwNjoKKyAg ICAgIG51bSA9IDIxNDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2dl dGV1aWQgKi8KKyAgICBjYXNlIDEwNzoKKyAgICAgIG51bSA9IDIwMTsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2dldGVnaWQgKi8KKyAgICBjYXNl IDEwODoKKyAgICAgIG51bSA9IDIwMjsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX3NldHBnaWQgKi8KKyAgICBjYXNlIDEwOToKKyAgICAgIG51bSA9 IDU3OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZ2V0cHBpZCAqLwor ICAgIGNhc2UgMTEwOgorICAgICAgbnVtID0gNjQ7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19nZXRwZ3JwICovCisgICAgY2FzZSAxMTE6CisgICAg ICBudW0gPSA2NTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3NldHNp ZCAqLworICAgIGNhc2UgMTEyOgorICAgICAgbnVtID0gNjY7CisgICAgICBi cmVhazsKKyAgICAgIC8qIHN5c19zZXRyZXVpZCAqLworICAgIGNhc2UgMTEz OgorICAgICAgbnVtID0gMjAzOworICAgICAgYnJlYWs7CisgICAgICAvKiBz eXNfc2V0cmVnaWQgKi8KKyAgICBjYXNlIDExNDoKKyAgICAgIG51bSA9IDIw NDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2dldGdyb3VwcyAqLwor ICAgIGNhc2UgMTE1OgorICAgICAgbnVtID0gMjA1OworICAgICAgYnJlYWs7 CisgICAgICAvKiBzeXNfc2V0Z3JvdXBzICovCisgICAgY2FzZSAxMTY6Cisg ICAgICBudW0gPSAyMDY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19z ZXRyZXN1aWQgKi8KKyAgICBjYXNlIDExNzoKKyAgICAgIG51bSA9IDIwODsK KyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2dldHJlc3VpZCAqLworICAg IGNhc2UgMTE4OgorICAgICAgbnVtID0gMjA5OworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfc2V0cmVzZ2lkICovCisgICAgY2FzZSAxMTk6CisgICAg ICBudW0gPSAyMTA7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19nZXRy ZXNnaWQgKi8KKyAgICBjYXNlIDEyMDoKKyAgICAgIG51bSA9IDIxMTsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2dldHBnaWQgKi8KKyAgICBjYXNl IDEyMToKKyAgICAgIG51bSA9IDEzMjsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX3NldGZzdWlkICovCisgICAgY2FzZSAxMjI6CisgICAgICBudW0g PSAyMTU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zZXRmc2dpZCAq LworICAgIGNhc2UgMTIzOgorICAgICAgbnVtID0gMjE2OworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfZ2V0c2lkICovCisgICAgY2FzZSAxMjQ6Cisg ICAgICBudW0gPSAxNDc7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19j YXBnZXQgKi8KKyAgICBjYXNlIDEyNToKKyAgICAgIG51bSA9IDE4NDsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2NhcHNldCAqLworICAgIGNhc2Ug MTI2OgorICAgICAgbnVtID0gMTg1OworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfcnRfc2lncGVuZGluZyAqLworICAgIGNhc2UgMTI3OgorICAgICAg bnVtID0gMTc2OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcnRfc2ln dGltZWR3YWl0ICovCisgICAgY2FzZSAxMjg6CisgICAgICBudW0gPSAxNzc7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19ydF9zaWdxdWV1ZWluZm8g Ki8KKyAgICBjYXNlIDEyOToKKyAgICAgIG51bSA9IDE3ODsKKyAgICAgIGJy ZWFrOworICAgICAgLyogc3lzX3J0X3NpZ3N1c3BlbmQgKi8KKyAgICBjYXNl IDEzMDoKKyAgICAgIG51bSA9IDE3OTsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX3NpZ2FsdHN0YWNrICovCisgICAgY2FzZSAxMzE6CisgICAgICBu dW0gPSAxODY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c191dGltZSAq LworICAgIGNhc2UgMTMyOgorICAgICAgbnVtID0gMzA7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19ta25vZCAqLworICAgIGNhc2UgMTMzOgorICAg ICAgbnVtID0gMTQ7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19wZXJz b25hbGl0eSAqLworICAgIGNhc2UgMTM1OgorICAgICAgbnVtID0gMTM2Owor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfdXN0YXQgKi8KKyAgICBjYXNl IDEzNjoKKyAgICAgIG51bSA9IDYyOworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfc3RhdGZzICovCisgICAgY2FzZSAxMzc6CisgICAgICBudW0gPSA5 OTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2ZzdGF0ZnMgKi8KKyAg ICBjYXNlIDEzODoKKyAgICAgIG51bSA9IDEwMDsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX3N5c2ZzICovCisgICAgY2FzZSAxMzk6CisgICAgICBu dW0gPSAxMzU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19nZXRwcmlv cml0eSAqLworICAgIGNhc2UgMTQwOgorICAgICAgbnVtID0gOTY7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19zZXRwcmlvcml0eSAqLworICAgIGNh c2UgMTQxOgorICAgICAgbnVtID0gOTc7CisgICAgICBicmVhazsKKyAgICAg IC8qIHN5c19zY2hlZF9zZXRwYXJhbSAqLworICAgIGNhc2UgMTQyOgorICAg ICAgbnVtID0gMTU0OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2No ZWRfZ2V0cGFyYW0gKi8KKyAgICBjYXNlIDE0MzoKKyAgICAgIG51bSA9IDE1 NTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3NjaGVkX3NldHNjaGVk dWxlciAqLworICAgIGNhc2UgMTQ0OgorICAgICAgbnVtID0gMTU2OworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyICov CisgICAgY2FzZSAxNDU6CisgICAgICBudW0gPSAxNTc7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4ICovCisg ICAgY2FzZSAxNDY6CisgICAgICBudW0gPSAxNTk7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluICovCisgICAg Y2FzZSAxNDc6CisgICAgICBudW0gPSAxNjA7CisgICAgICBicmVhazsKKyAg ICAgIC8qIHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgKi8KKyAgICBjYXNl IDE0ODoKKyAgICAgIG51bSA9IDE2MTsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX21sb2NrICovCisgICAgY2FzZSAxNDk6CisgICAgICBudW0gPSAx NTA7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19tdW5sb2NrICovCisg ICAgY2FzZSAxNTA6CisgICAgICBudW0gPSAxNTE7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19tbG9ja2FsbCAqLworICAgIGNhc2UgMTUxOgorICAg ICAgbnVtID0gMTUyOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfbXVu bG9ja2FsbCAqLworICAgIGNhc2UgMTUyOgorICAgICAgbnVtID0gMTUzOwor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfdmhhbmd1cCAqLworICAgIGNh c2UgMTUzOgorICAgICAgbnVtID0gMTExOworICAgICAgYnJlYWs7CisgICAg ICAvKiBzeXNfbW9kaWZ5X2xkdCAqLworICAgIGNhc2UgMTU0OgorICAgICAg bnVtID0gMTIzOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcGl2b3Rf cm9vdCAqLworICAgIGNhc2UgMTU1OgorICAgICAgbnVtID0gMjE3OworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfc3lzY3RsICovCisgICAgY2FzZSAx NTY6CisgICAgICBudW0gPSAxNDk7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19wcmN0bCAqLworICAgIGNhc2UgMTU3OgorICAgICAgbnVtID0gMTcy OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfYXJjaF9wcmN0bCAqLwor ICAgIGNhc2UgMTU4OgorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWdu ZWQgKHJlZ2NhY2hlLCBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5hcmczLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0bXB1bG9uZ2Vz dCk7CisgICAgICBpZiAodG1wdWxvbmdlc3QgPT0gUkVDT1JEX0FSQ0hfR0VU X0ZTCisgICAgICAgICAgfHwgdG1wdWxvbmdlc3QgPT0gUkVDT1JEX0FSQ0hf R0VUX0dTKQorICAgICAgICB7CisgICAgICAgICAgcmVnY2FjaGVfcmF3X3Jl YWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBhbWQ2NF9saW51eF9yZWNvcmRfdGRl cC5hcmcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmdG1wdWxvbmdlc3QpOworICAgICAgICAgIGlmIChyZWNvcmRfYXJjaF9s aXN0X2FkZF9tZW0gKChDT1JFX0FERFIpIHRtcHVsb25nZXN0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLnNpemVfdWxvbmcpKQorICAgICAgICAgICAgcmV0dXJu IC0xOworICAgICAgICB9CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19h ZGp0aW1leCAqLworICAgIGNhc2UgMTU5OgorICAgICAgbnVtID0gMTI0Owor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2V0cmxpbWl0ICovCisgICAg Y2FzZSAxNjA6CisgICAgICBudW0gPSA3NTsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX2Nocm9vdCAqLworICAgIGNhc2UgMTYxOgorICAgICAgbnVt ID0gNjE7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zeW5jICovCisg ICAgY2FzZSAxNjI6CisgICAgICBudW0gPSAzNjsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX2FjY3QgKi8KKyAgICBjYXNlIDE2MzoKKyAgICAgIG51 bSA9IDUxOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2V0dGltZW9m ZGF5ICovCisgICAgY2FzZSAxNjQ6CisgICAgICBudW0gPSA3OTsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX21vdW50ICovCisgICAgY2FzZSAxNjU6 CisgICAgICBudW0gPSAyMTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lz X3Vtb3VudCAqLworICAgIGNhc2UgMTY2OgorICAgICAgbnVtID0gNTI7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zd2Fwb24gKi8KKyAgICBjYXNl IDE2NzoKKyAgICAgIG51bSA9IDg3OworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfc3dhcG9mZiAqLworICAgIGNhc2UgMTY4OgorICAgICAgbnVtID0g MTE1OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcmVib290ICovCisg ICAgY2FzZSAxNjk6CisgICAgICBudW0gPSA4ODsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX3NldGhvc3RuYW1lICovCisgICAgY2FzZSAxNzA6Cisg ICAgICBudW0gPSA3NDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3Nl dGRvbWFpbm5hbWUgKi8KKyAgICBjYXNlIDE3MToKKyAgICAgIG51bSA9IDEy MTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2lvcGwgKi8KKyAgICBj YXNlIDE3MjoKKyAgICAgIG51bSA9IDExMDsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX2lvcGVybSAqLworICAgIGNhc2UgMTczOgorICAgICAgbnVt ID0gMTAxOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfaW5pdF9tb2R1 bGUgKi8KKyAgICBjYXNlIDE3NToKKyAgICAgIG51bSA9IDEyODsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX2RlbGV0ZV9tb2R1bGUgKi8KKyAgICBj YXNlIDE3NjoKKyAgICAgIG51bSA9IDEyOTsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX3F1b3RhY3RsICovCisgICAgY2FzZSAxNzk6CisgICAgICBu dW0gPSAxMzE7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19uZnNzZXJ2 Y3RsICovCisgICAgY2FzZSAxODA6CisgICAgICBudW0gPSAxNjk7CisgICAg ICBicmVhazsKKyAgICAgIC8qIHN5c19nZXR0aWQgKi8KKyAgICBjYXNlIDE4 NjoKKyAgICAgIG51bSA9IDIyNDsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3JlYWRhaGVhZCAqLworICAgIGNhc2UgMTg3OgorICAgICAgbnVtID0g MjI1OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfc2V0eGF0dHIgKi8K KyAgICBjYXNlIDE4ODoKKyAgICAgIG51bSA9IDIyNjsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX2xzZXR4YXR0ciAqLworICAgIGNhc2UgMTg5Ogor ICAgICAgbnVtID0gMjI3OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNf ZnNldHhhdHRyICovCisgICAgY2FzZSAxOTA6CisgICAgICBudW0gPSAyMjg7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19nZXR4YXR0ciAqLworICAg IGNhc2UgMTkxOgorICAgICAgbnVtID0gMjI5OworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfbGdldHhhdHRyICovCisgICAgY2FzZSAxOTI6CisgICAg ICBudW0gPSAyMzA7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19mZ2V0 eGF0dHIgKi8KKyAgICBjYXNlIDE5MzoKKyAgICAgIG51bSA9IDIzMTsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2xpc3R4YXR0ciAqLworICAgIGNh c2UgMTk0OgorICAgICAgbnVtID0gMjMyOworICAgICAgYnJlYWs7CisgICAg ICAvKiBzeXNfbGxpc3R4YXR0ciAqLworICAgIGNhc2UgMTk1OgorICAgICAg bnVtID0gMjMzOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZmxpc3R4 YXR0ciAqLworICAgIGNhc2UgMTk2OgorICAgICAgbnVtID0gMjM0OworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfcmVtb3ZleGF0dHIgKi8KKyAgICBj YXNlIDE5NzoKKyAgICAgIG51bSA9IDIzNTsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX2xyZW1vdmV4YXR0ciAqLworICAgIGNhc2UgMTk4OgorICAg ICAgbnVtID0gMjM2OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZnJl bW92ZXhhdHRyICovCisgICAgY2FzZSAxOTk6CisgICAgICBudW0gPSAyMzc7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c190a2lsbCAqLworICAgIGNh c2UgMjAwOgorICAgICAgbnVtID0gMjM4OworICAgICAgYnJlYWs7CisgICAg ICAvKiBzeXNfdGltZSAqLworICAgIGNhc2UgMjAxOgorICAgICAgbnVtID0g MTM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19mdXRleCAqLworICAg IGNhc2UgMjAyOgorICAgICAgbnVtID0gMjQwOworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfc2NoZWRfc2V0YWZmaW5pdHkgKi8KKyAgICBjYXNlIDIw MzoKKyAgICAgIG51bSA9IDI0MTsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3NjaGVkX2dldGFmZmluaXR5ICovCisgICAgY2FzZSAyMDQ6CisgICAg ICBudW0gPSAyNDI7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19pb19z ZXR1cCAqLworICAgIGNhc2UgMjA2OgorICAgICAgbnVtID0gMjQ1OworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfaW9fZGVzdHJveSAqLworICAgIGNh c2UgMjA3OgorICAgICAgbnVtID0gMjQ2OworICAgICAgYnJlYWs7CisgICAg ICAvKiBzeXNfaW9fZ2V0ZXZlbnRzICovCisgICAgY2FzZSAyMDg6CisgICAg ICBudW0gPSAyNDc7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19pb19z dWJtaXQgKi8KKyAgICBjYXNlIDIwOToKKyAgICAgIG51bSA9IDI0ODsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX2lvX2NhbmNlbCAqLworICAgIGNh c2UgMjEwOgorICAgICAgbnVtID0gMjQ5OworICAgICAgYnJlYWs7CisgICAg ICAvKiBzeXNfbG9va3VwX2Rjb29raWUgKi8KKyAgICBjYXNlIDIxMjoKKyAg ICAgIG51bSA9IDI1MzsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2Vw b2xsX2NyZWF0ZSAqLworICAgIGNhc2UgMjEzOgorICAgICAgbnVtID0gMjU0 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfcmVtYXBfZmlsZV9wYWdl cyAqLworICAgIGNhc2UgMjE2OgorICAgICAgbnVtID0gMjU3OworICAgICAg YnJlYWs7CisgICAgICAvKiBzeXNfZ2V0ZGVudHM2NCAqLworICAgIGNhc2Ug MjE3OgorICAgICAgbnVtID0gMjIwOworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfc2V0X3RpZF9hZGRyZXNzICovCisgICAgY2FzZSAyMTg6CisgICAg ICBudW0gPSAyNTg7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19yZXN0 YXJ0X3N5c2NhbGwgKi8KKyAgICBjYXNlIDIxOToKKyAgICAgIG51bSA9IDA7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zZW10aW1lZG9wICovCisg ICAgY2FzZSAyMjA6CisgICAgICBudW0gPSA1MzI7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19mYWR2aXNlNjQgKi8KKyAgICBjYXNlIDIyMToKKyAg ICAgIG51bSA9IDI1MDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3Rp bWVyX2NyZWF0ZSAqLworICAgIGNhc2UgMjIyOgorICAgICAgbnVtID0gMjU5 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfdGltZXJfc2V0dGltZSAq LworICAgIGNhc2UgMjIzOgorICAgICAgbnVtID0gMjYwOworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfdGltZXJfZ2V0dGltZSAqLworICAgIGNhc2Ug MjI0OgorICAgICAgbnVtID0gMjYxOworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfdGltZXJfZ2V0b3ZlcnJ1biAqLworICAgIGNhc2UgMjI1OgorICAg ICAgbnVtID0gMjYyOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfdGlt ZXJfZGVsZXRlICovCisgICAgY2FzZSAyMjY6CisgICAgICBudW0gPSAyNjM7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19jbG9ja19zZXR0aW1lICov CisgICAgY2FzZSAyMjc6CisgICAgICBudW0gPSAyNjQ7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19jbG9ja19nZXR0aW1lICovCisgICAgY2FzZSAy Mjg6CisgICAgICBudW0gPSAyNjU7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19jbG9ja19nZXRyZXMgKi8KKyAgICBjYXNlIDIyOToKKyAgICAgIG51 bSA9IDI2NjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX2Nsb2NrX25h bm9zbGVlcCAqLworICAgIGNhc2UgMjMwOgorICAgICAgbnVtID0gMjY3Owor ICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZXhpdF9ncm91cCAqLworICAg IGNhc2UgMjMxOgorICAgICAgbnVtID0gMjUyOworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfZXBvbGxfd2FpdCAqLworICAgIGNhc2UgMjMyOgorICAg ICAgbnVtID0gMjU2OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfZXBv bGxfY3RsICovCisgICAgY2FzZSAyMzM6CisgICAgICBudW0gPSAyNTU7Cisg ICAgICBicmVhazsKKyAgICAgIC8qIHN5c190Z2tpbGwgKi8KKyAgICBjYXNl IDIzNDoKKyAgICAgIG51bSA9IDI3MDsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX3V0aW1lcyAqLworICAgIGNhc2UgMjM1OgorICAgICAgbnVtID0g MjcxOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfbWJpbmQgKi8KKyAg ICBjYXNlIDIzNzoKKyAgICAgIG51bSA9IDI3NDsKKyAgICAgIGJyZWFrOwor ICAgICAgLyogc3lzX3NldF9tZW1wb2xpY3kgKi8KKyAgICBjYXNlIDIzODoK KyAgICAgIG51bSA9IDI3NjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lz X2dldF9tZW1wb2xpY3kgKi8KKyAgICBjYXNlIDIzOToKKyAgICAgIG51bSA9 IDI3NTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX21xX29wZW4gKi8K KyAgICBjYXNlIDI0MDoKKyAgICAgIG51bSA9IDI3NzsKKyAgICAgIGJyZWFr OworICAgICAgLyogc3lzX21xX3VubGluayAqLworICAgIGNhc2UgMjQxOgor ICAgICAgbnVtID0gMjc4OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNf bXFfdGltZWRzZW5kICovCisgICAgY2FzZSAyNDI6CisgICAgICBudW0gPSAy Nzk7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19tcV90aW1lZHJlY2Vp dmUgKi8KKyAgICBjYXNlIDI0MzoKKyAgICAgIG51bSA9IDI4MDsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX21xX25vdGlmeSAqLworICAgIGNhc2Ug MjQ0OgorICAgICAgbnVtID0gMjgxOworICAgICAgYnJlYWs7CisgICAgICAv KiBzeXNfbXFfZ2V0c2V0YXR0ciAqLworICAgIGNhc2UgMjQ1OgorICAgICAg bnVtID0gMjgyOworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfa2V4ZWNf bG9hZCAqLworICAgIGNhc2UgMjQ2OgorICAgICAgbnVtID0gMjgzOworICAg ICAgYnJlYWs7CisgICAgICAvKiBzeXNfd2FpdGlkICovCisgICAgY2FzZSAy NDc6CisgICAgICBudW0gPSAyODQ7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19hZGRfa2V5ICovCisgICAgY2FzZSAyNDg6CisgICAgICBudW0gPSAy ODY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19yZXF1ZXN0X2tleSAq LworICAgIGNhc2UgMjQ5OgorICAgICAgbnVtID0gMjg3OworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfa2V5Y3RsICovCisgICAgY2FzZSAyNTA6Cisg ICAgICBudW0gPSAyODg7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19p b3ByaW9fc2V0ICovCisgICAgY2FzZSAyNTE6CisgICAgICBudW0gPSAyODk7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19pb3ByaW9fZ2V0ICovCisg ICAgY2FzZSAyNTI6CisgICAgICBudW0gPSAyOTA7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19pbm90aWZ5X2luaXQgKi8KKyAgICBjYXNlIDI1MzoK KyAgICAgIG51bSA9IDI5MTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lz X2lub3RpZnlfYWRkX3dhdGNoICovCisgICAgY2FzZSAyNTQ6CisgICAgICBu dW0gPSAyOTI7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19pbm90aWZ5 X3JtX3dhdGNoICovCisgICAgY2FzZSAyNTU6CisgICAgICBudW0gPSAyOTM7 CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19taWdyYXRlX3BhZ2VzICov CisgICAgY2FzZSAyNTY6CisgICAgICBudW0gPSAyOTQ7CisgICAgICBicmVh azsKKyAgICAgIC8qIHN5c19vcGVuYXQgKi8KKyAgICBjYXNlIDI1NzoKKyAg ICAgIG51bSA9IDI5NTsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX21r ZGlyYXQgKi8KKyAgICBjYXNlIDI1ODoKKyAgICAgIG51bSA9IDI5NjsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX21rbm9kYXQgKi8KKyAgICBjYXNl IDI1OToKKyAgICAgIG51bSA9IDI5NzsKKyAgICAgIGJyZWFrOworICAgICAg Lyogc3lzX2ZjaG93bmF0ICovCisgICAgY2FzZSAyNjA6CisgICAgICBudW0g PSAyOTg7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19mdXRpbWVzYXQg Ki8KKyAgICBjYXNlIDI2MToKKyAgICAgIG51bSA9IDI5OTsKKyAgICAgIGJy ZWFrOworICAgICAgLyogc3lzX25ld2ZzdGF0YXQgKi8KKyAgICBjYXNlIDI2 MjoKKyAgICAgIG51bSA9IDU0MDsKKyAgICAgIGJyZWFrOworICAgICAgLyog c3lzX3VubGlua2F0ICovCisgICAgY2FzZSAyNjM6CisgICAgICBudW0gPSAz MDE7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19yZW5hbWVhdCAqLwor ICAgIGNhc2UgMjY0OgorICAgICAgbnVtID0gMzAyOworICAgICAgYnJlYWs7 CisgICAgICAvKiBzeXNfbGlua2F0ICovCisgICAgY2FzZSAyNjU6CisgICAg ICBudW0gPSAzMDM7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zeW1s aW5rYXQgKi8KKyAgICBjYXNlIDI2NjoKKyAgICAgIG51bSA9IDMwNDsKKyAg ICAgIGJyZWFrOworICAgICAgLyogc3lzX3JlYWRsaW5rYXQgKi8KKyAgICBj YXNlIDI2NzoKKyAgICAgIG51bSA9IDMwNTsKKyAgICAgIGJyZWFrOworICAg ICAgLyogc3lzX2ZjaG1vZGF0ICovCisgICAgY2FzZSAyNjg6CisgICAgICBu dW0gPSAzMDY7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19mYWNjZXNz YXQgKi8KKyAgICBjYXNlIDI2OToKKyAgICAgIG51bSA9IDMwNzsKKyAgICAg IGJyZWFrOworICAgICAgLyogc3lzX3BzZWxlY3Q2ICovCisgICAgY2FzZSAy NzA6CisgICAgICBudW0gPSAzMDg7CisgICAgICBicmVhazsKKyAgICAgIC8q IHN5c19wcG9sbCAqLworICAgIGNhc2UgMjcxOgorICAgICAgbnVtID0gMzA5 OworICAgICAgYnJlYWs7CisgICAgICAvKiBzeXNfdW5zaGFyZSAqLworICAg IGNhc2UgMjcyOgorICAgICAgbnVtID0gMzEwOworICAgICAgYnJlYWs7Cisg ICAgICAvKiBzeXNfc2V0X3JvYnVzdF9saXN0ICovCisgICAgY2FzZSAyNzM6 CisgICAgICBudW0gPSAzMTE7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5 c19nZXRfcm9idXN0X2xpc3QgKi8KKyAgICBjYXNlIDI3NDoKKyAgICAgIG51 bSA9IDMxMjsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3NwbGljZSAq LworICAgIGNhc2UgMjc1OgorICAgICAgbnVtID0gMzEzOworICAgICAgYnJl YWs7CisgICAgICAvKiBzeXNfdGVlICovCisgICAgY2FzZSAyNzY6CisgICAg ICBudW0gPSAzMTU7CisgICAgICBicmVhazsKKyAgICAgIC8qIHN5c19zeW5j X2ZpbGVfcmFuZ2UgKi8KKyAgICBjYXNlIDI3NzoKKyAgICAgIG51bSA9IDMx NDsKKyAgICAgIGJyZWFrOworICAgICAgLyogc3lzX3Ztc3BsaWNlICovCisg ICAgY2FzZSAyNzg6CisgICAgICBudW0gPSAzMTY7CisgICAgICBicmVhazsK KyAgICAgIC8qIHN5c19tb3ZlX3BhZ2VzICovCisgICAgY2FzZSAyNzk6Cisg ICAgICBudW0gPSAzMTc7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor ICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIlByb2Nlc3MgcmVjb3JkIGFu ZCByZXBsYXkgdGFyZ2V0IGRvZXNuJ3QgIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgInN1cHBvcnQgc3lzY2FsbCBudW1iZXIgJWRcbiIpLCAoaW50 KSB0bXB1bG9uZ2VzdCk7CisgICAgICByZXR1cm4gLTE7CisgICAgICBicmVh azsKKyAgICB9CisKKyAgaWYgKG51bSA+PSAwKQorICAgIHsKKyAgICAgIHJl dCA9IHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAobnVtLCByZWdjYWNoZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFtZDY0 X2xpbnV4X3JlY29yZF90ZGVwKTsKKyAgICAgIGlmIChyZXQpCisgICAgICAg IHJldHVybiByZXQ7CisgICAgfQorCisgIC8qIFJlY29yZCB0aGUgcmV0dXJu IHZhbHVlIG9mIHRoZSBzeXN0ZW0gY2FsbC4gICovCisgIGlmIChyZWNvcmRf YXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SQ1hfUkVHTlVN KSkKKyAgICByZXR1cm4gLTE7CisgIGlmIChyZWNvcmRfYXJjaF9saXN0X2Fk ZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SMTFfUkVHTlVNKSkKKyAgICByZXR1 cm4gLTE7CisKKworICByZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQKIGFt ZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8s IHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQogewpAQCAtMzAxLDYgKzE0MjUs MTc3IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9p bmYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp c3BsYWNlZF9zdGVwX2F0X2VudHJ5X3BvaW50KTsKIAogICBzZXRfZ2RiYXJj aF9nZXRfc2lnaW5mb190eXBlIChnZGJhcmNoLCBsaW51eF9nZXRfc2lnaW5m b190eXBlKTsKKworICBzZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZCAoZ2Ri YXJjaCwgaTM4Nl9wcm9jZXNzX3JlY29yZCk7CisKKyAgLyogSW5pdGlhbGl6 ZSB0aGUgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuICAqLworICAvKiBUaGVz ZSB2YWx1ZXMgYXJlIHRoZSBzaXplIG9mIHRoZSB0eXBlIHRoYXQgd2lsbCBi ZSB1c2VkIGluIGEgc3lzdGVtCisgICAgIGNhbGwuICBUaGV5IGFyZSBvYnRh aW5lZCBmcm9tIExpbnV4IEtlcm5lbCBzb3VyY2UuICAqLworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5zaXplX3BvaW50ZXIKKyAgICA9IGdkYmFyY2hf cHRyX2JpdCAoZ2RiYXJjaCkgLyBUQVJHRVRfQ0hBUl9CSVQ7CisgIGFtZDY0 X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfX29sZF9rZXJuZWxfc3RhdCA9IDMy OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3RtcyA9IDMyOwor ICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX2xvZmZfdCA9IDg7Cisg IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfZmxvY2sgPSAzMjsKKyAg YW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9vbGRvbGRfdXRzbmFtZSA9 IDQ1OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3VzdGF0ID0g MzI7CisgIC8qIEFETTY0IGRvZXNuJ3QgbmVlZCB0aGlzIHNpemUgYmVjYXVz ZSBpdCBkb2Vzbid0IGhhdmUgc3lzX3NpZ2FjdGlvbgorICAgICBidXQgc3lz X3J0X3NpZ2FjdGlvbi4gICovCisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LnNpemVfb2xkX3NpZ2FjdGlvbiA9IDE1MjsKKyAgLyogQURNNjQgZG9lc24n dCBuZWVkIHRoaXMgc2l6ZSBiZWNhdXNlIGl0IGRvZXNuJ3QgaGF2ZSBzeXNf c2lncGVuZGluZworICAgICBidXQgc3lzX3J0X3NpZ3BlbmRpbmcuICAqLwor ICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX29sZF9zaWdzZXRfdCA9 IDEyODsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9ybGltaXQg PSAxNjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9ydXNhZ2Ug PSAxNDQ7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfdGltZXZh bCA9IDE2OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3RpbWV6 b25lID0gODsKKyAgLyogQURNNjQgZG9lc24ndCBuZWVkIHRoaXMgc2l6ZSBi ZWNhdXNlIGl0IGRvZXNuJ3QgaGF2ZSBzeXNfZ2V0Z3JvdXBzMTYKKyAgICAg YnV0IHN5c19nZXRncm91cHMuICAqLworICBhbWQ2NF9saW51eF9yZWNvcmRf dGRlcC5zaXplX29sZF9naWRfdCA9IDI7CisgIC8qIEFETTY0IGRvZXNuJ3Qg bmVlZCB0aGlzIHNpemUgYmVjYXVzZSBpdCBkb2Vzbid0IGhhdmUgc3lzX2dl dHJlc3VpZDE2CisgICAgIGJ1dCBzeXNfZ2V0cmVzdWlkLiAgKi8KKyAgYW1k NjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9vbGRfdWlkX3QgPSAyOworICBh bWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX2ZkX3NldCA9IDEyODsKKyAg YW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9kaXJlbnQgPSAyODA7Cisg IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfZGlyZW50NjQgPSAyODA7 CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfc3RhdGZzID0gMTIw OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3N0YXRmczY0ID0g MTIwOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3NvY2thZGRy ID0gMTY7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfaW50Cisg ICAgPSBnZGJhcmNoX2ludF9iaXQgKGdkYmFyY2gpIC8gVEFSR0VUX0NIQVJf QklUOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX2xvbmcKKyAg ICA9IGdkYmFyY2hfbG9uZ19iaXQgKGdkYmFyY2gpIC8gVEFSR0VUX0NIQVJf QklUOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3Vsb25nCisg ICAgPSBnZGJhcmNoX2xvbmdfYml0IChnZGJhcmNoKSAvIFRBUkdFVF9DSEFS X0JJVDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9tc2doZHIg PSA1NjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9pdGltZXJ2 YWwgPSAzMjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zdGF0 ID0gMTQ0OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX29sZF91 dHNuYW1lID0gMzI1OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXpl X3N5c2luZm8gPSAxMTI7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNp emVfbXNxaWRfZHMgPSAxMjA7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LnNpemVfc2htaWRfZHMgPSAxMTI7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90 ZGVwLnNpemVfbmV3X3V0c25hbWUgPSAzOTA7CisgIGFtZDY0X2xpbnV4X3Jl Y29yZF90ZGVwLnNpemVfdGltZXggPSAyMDg7CisgIGFtZDY0X2xpbnV4X3Jl Y29yZF90ZGVwLnNpemVfbWVtX2RxaW5mbyA9IDI0OworICBhbWQ2NF9saW51 eF9yZWNvcmRfdGRlcC5zaXplX2lmX2RxYmxrID0gNzI7CisgIGFtZDY0X2xp bnV4X3JlY29yZF90ZGVwLnNpemVfZnNfcXVvdGFfc3RhdCA9IDgwOworICBh bWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3RpbWVzcGVjID0gMTY7Cisg IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfcG9sbGZkID0gODsKKyAg YW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9ORlNfRkhTSVpFID0gMzI7 CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfa25mc2RfZmggPSAx MzI7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfVEFTS19DT01N X0xFTiA9IDE2OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3Np Z2FjdGlvbiA9IDE1MjsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6 ZV9zaWdzZXRfdCA9IDEyODsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAu c2l6ZV9zaWdpbmZvX3QgPSAxMjg7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90 ZGVwLnNpemVfY2FwX3VzZXJfZGF0YV90ID0gODsKKyAgYW1kNjRfbGludXhf cmVjb3JkX3RkZXAuc2l6ZV9zdGFja190ID0gMjQ7CisgIGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLnNpemVfb2ZmX3QgPSA4OworICBhbWQ2NF9saW51eF9y ZWNvcmRfdGRlcC5zaXplX3N0YXQ2NCA9IDE0NDsKKyAgYW1kNjRfbGludXhf cmVjb3JkX3RkZXAuc2l6ZV9naWRfdCA9IDQ7CisgIGFtZDY0X2xpbnV4X3Jl Y29yZF90ZGVwLnNpemVfdWlkX3QgPSA0OworICBhbWQ2NF9saW51eF9yZWNv cmRfdGRlcC5zaXplX1BBR0VfU0laRSA9IDQwOTY7CisgIGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLnNpemVfZmxvY2s2NCA9IDMyOworICBhbWQ2NF9saW51 eF9yZWNvcmRfdGRlcC5zaXplX3VzZXJfZGVzYyA9IDE2OworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5zaXplX2lvX2V2ZW50ID0gMzI7CisgIGFtZDY0 X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfaW9jYiA9IDY0OworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5zaXplX2Vwb2xsX2V2ZW50ID0gMTI7CisgIGFt ZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfaXRpbWVyc3BlYyA9IDMyOwor ICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX21xX2F0dHIgPSA2NDsK KyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zaWdpbmZvID0gMTI4 OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3Rlcm1pb3MgPSA2 MDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV90ZXJtaW9zMiA9 IDQ0OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5zaXplX3BpZF90ID0g NDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV93aW5zaXplID0g ODsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zZXJpYWxfc3Ry dWN0ID0gNzI7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfc2Vy aWFsX2ljb3VudGVyX3N0cnVjdCA9IDgwOworICBhbWQ2NF9saW51eF9yZWNv cmRfdGRlcC5zaXplX2hheWVzX2VzcF9jb25maWcgPSAxMjsKKyAgYW1kNjRf bGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zaXplX3QgPSA4OworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5zaXplX2lvdmVjID0gMTY7CisKKyAgLyogVGhl c2UgdmFsdWVzIGFyZSB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHN5c3RlbSBj YWxsICJzeXNfaW9jdGwiLgorICAgICBUaGV5IGFyZSBvYnRhaW5lZCBmcm9t IExpbnV4IEtlcm5lbCBzb3VyY2UuICAqLworICBhbWQ2NF9saW51eF9yZWNv cmRfdGRlcC5pb2N0bF9UQ0dFVFMgPSAweDU0MDE7CisgIGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLmlvY3RsX1RDU0VUUyA9IDB4NTQwMjsKKyAgYW1kNjRf bGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVENTRVRTVyA9IDB4NTQwMzsKKyAg YW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVENTRVRTRiA9IDB4NTQw NDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVENHRVRBID0g MHg1NDA1OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9UQ1NF VEEgPSAweDU0MDY7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3Rs X1RDU0VUQVcgPSAweDU0MDc7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LmlvY3RsX1RDU0VUQUYgPSAweDU0MDg7CisgIGFtZDY0X2xpbnV4X3JlY29y ZF90ZGVwLmlvY3RsX1RDU0JSSyA9IDB4NTQwOTsKKyAgYW1kNjRfbGludXhf cmVjb3JkX3RkZXAuaW9jdGxfVENYT05DID0gMHg1NDBBOworICBhbWQ2NF9s aW51eF9yZWNvcmRfdGRlcC5pb2N0bF9UQ0ZMU0ggPSAweDU0MEI7CisgIGFt ZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NFWENMID0gMHg1NDBD OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DTlhDTCA9 IDB4NTQwRDsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElP Q1NDVFRZID0gMHg1NDBFOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5p b2N0bF9USU9DR1BHUlAgPSAweDU0MEY7CisgIGFtZDY0X2xpbnV4X3JlY29y ZF90ZGVwLmlvY3RsX1RJT0NTUEdSUCA9IDB4NTQxMDsKKyAgYW1kNjRfbGlu dXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ09VVFEgPSAweDU0MTE7CisgIGFt ZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NTVEkgPSAweDU0MTI7 CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NHV0lOU1og PSAweDU0MTM7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJ T0NTV0lOU1ogPSAweDU0MTQ7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LmlvY3RsX1RJT0NNR0VUID0gMHg1NDE1OworICBhbWQ2NF9saW51eF9yZWNv cmRfdGRlcC5pb2N0bF9USU9DTUJJUyA9IDB4NTQxNjsKKyAgYW1kNjRfbGlu dXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ01CSUMgPSAweDU0MTc7CisgIGFt ZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NNU0VUID0gMHg1NDE4 OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DR1NPRlRD QVIgPSAweDU0MTk7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3Rs X1RJT0NTU09GVENBUiA9IDB4NTQxQTsKKyAgYW1kNjRfbGludXhfcmVjb3Jk X3RkZXAuaW9jdGxfRklPTlJFQUQgPSAweDU0MUI7CisgIGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NJTlEKKyAgICA9IGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLmlvY3RsX0ZJT05SRUFEOworICBhbWQ2NF9saW51eF9y ZWNvcmRfdGRlcC5pb2N0bF9USU9DTElOVVggPSAweDU0MUM7CisgIGFtZDY0 X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NDT05TID0gMHg1NDFEOwor ICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DR1NFUklBTCA9 IDB4NTQxRTsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElP Q1NTRVJJQUwgPSAweDU0MUY7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LmlvY3RsX1RJT0NQS1QgPSAweDU0MjA7CisgIGFtZDY0X2xpbnV4X3JlY29y ZF90ZGVwLmlvY3RsX0ZJT05CSU8gPSAweDU0MjE7CisgIGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NOT1RUWSA9IDB4NTQyMjsKKyAgYW1k NjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ1NFVEQgPSAweDU0MjM7 CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NHRVREID0g MHg1NDI0OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9UQ1NC UktQID0gMHg1NDI1OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0 bF9USU9DVFRZR1NUUlVDVCA9IDB4NTQyNjsKKyAgYW1kNjRfbGludXhfcmVj b3JkX3RkZXAuaW9jdGxfVElPQ1NCUksgPSAweDU0Mjc7CisgIGFtZDY0X2xp bnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NDQlJLID0gMHg1NDI4OworICBh bWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DR1NJRCA9IDB4NTQy OTsKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVENHRVRTMiA9 IDB4ODAyYzU0MmE7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3Rs X1RDU0VUUzIgPSAweDQwMmM1NDJiOworICBhbWQ2NF9saW51eF9yZWNvcmRf dGRlcC5pb2N0bF9UQ1NFVFNXMiA9IDB4NDAyYzU0MmM7CisgIGFtZDY0X2xp bnV4X3JlY29yZF90ZGVwLmlvY3RsX1RDU0VUU0YyID0gMHg0MDJjNTQyZDsK KyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ0dQVE4gPSAw eDgwMDQ1NDMwOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9U SU9DU1BUTENLID0gMHg0MDA0NTQzMTsKKyAgYW1kNjRfbGludXhfcmVjb3Jk X3RkZXAuaW9jdGxfRklPTkNMRVggPSAweDU0NTA7CisgIGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLmlvY3RsX0ZJT0NMRVggPSAweDU0NTE7CisgIGFtZDY0 X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX0ZJT0FTWU5DID0gMHg1NDUyOwor ICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DU0VSQ09ORklH ID0gMHg1NDUzOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9U SU9DU0VSR1dJTEQgPSAweDU0NTQ7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90 ZGVwLmlvY3RsX1RJT0NTRVJTV0lMRCA9IDB4NTQ1NTsKKyAgYW1kNjRfbGlu dXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ0dMQ0tUUk1JT1MgPSAweDU0NTY7 CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NTTENLVFJN SU9TID0gMHg1NDU3OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0 bF9USU9DU0VSR1NUUlVDVCA9IDB4NTQ1ODsKKyAgYW1kNjRfbGludXhfcmVj b3JkX3RkZXAuaW9jdGxfVElPQ1NFUkdFVExTUiA9IDB4NTQ1OTsKKyAgYW1k NjRfbGludXhfcmVjb3JkX3RkZXAuaW9jdGxfVElPQ1NFUkdFVE1VTFRJID0g MHg1NDVBOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9D U0VSU0VUTVVMVEkgPSAweDU0NUI7CisgIGFtZDY0X2xpbnV4X3JlY29yZF90 ZGVwLmlvY3RsX1RJT0NNSVdBSVQgPSAweDU0NUM7CisgIGFtZDY0X2xpbnV4 X3JlY29yZF90ZGVwLmlvY3RsX1RJT0NHSUNPVU5UID0gMHg1NDVEOworICBh bWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9DR0hBWUVTRVNQID0g MHg1NDVFOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5pb2N0bF9USU9D U0hBWUVTRVNQID0gMHg1NDVGOworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRl cC5pb2N0bF9GSU9RU0laRSA9IDB4NTQ2MDsKKworICAvKiBUaGVzZSB2YWx1 ZXMgYXJlIHRoZSBzZWNvbmQgYXJndW1lbnQgb2Ygc3lzdGVtIGNhbGwgInN5 c19mY250bCIKKyAgICAgYW5kICJzeXNfZmNudGw2NCIuICBUaGV5IGFyZSBv YnRhaW5lZCBmcm9tIExpbnV4IEtlcm5lbCBzb3VyY2UuICAqLworICBhbWQ2 NF9saW51eF9yZWNvcmRfdGRlcC5mY250bF9GX0dFVExLID0gNTsKKyAgYW1k NjRfbGludXhfcmVjb3JkX3RkZXAuZmNudGxfRl9HRVRMSzY0ID0gMTI7Cisg IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmZjbnRsX0ZfU0VUTEs2NCA9IDEz OworICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5mY250bF9GX1NFVExLVzY0 ID0gMTQ7CisKKyAgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuYXJnMSA9IEFN RDY0X1JESV9SRUdOVU07CisgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmFy ZzIgPSBBTUQ2NF9SU0lfUkVHTlVNOworICBhbWQ2NF9saW51eF9yZWNvcmRf dGRlcC5hcmczID0gQU1ENjRfUkRYX1JFR05VTTsKKyAgYW1kNjRfbGludXhf cmVjb3JkX3RkZXAuYXJnNCA9IEFNRDY0X1IxMF9SRUdOVU07CisgIGFtZDY0 X2xpbnV4X3JlY29yZF90ZGVwLmFyZzUgPSBBTUQ2NF9SOF9SRUdOVU07Cisg IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLmFyZzYgPSBBTUQ2NF9SOV9SRUdO VU07CisKKyAgdGRlcC0+aTM4Nl9zeXNjYWxsX3JlY29yZCA9IGFtZDY0X2xp bnV4X3N5c2NhbGxfcmVjb3JkOwogfQogDAogCg== --000e0cd28d4a03188f046f123f9c--