
Received: from smtp.netlab.hut.fi (keskus.netlab.hut.fi [130.233.154.176]) by maillists.intel-research.net (8.13.8/8.13.7) with ESMTP id m4TDm6sk022213 for <dtn-users@mailman.dtnrg.org>; Thu, 29 May 2008 06:48:07 -0700
Received: from localhost (webserver.netlab.hut.fi [130.233.154.187]) by smtp.netlab.hut.fi (Postfix) with ESMTP id E28C9C50E7 for <dtn-users@mailman.dtnrg.org>; Thu, 29 May 2008 17:00:55 +0300 (EET DST)
X-Virus-Scanned: Debian amavisd-new at TKK Netlab
Received: from smtp.netlab.hut.fi ([130.233.154.176]) by localhost (webserver.netlab.hut.fi [130.233.154.187]) (amavisd-new, port 10024) with ESMTP id QDQlLuiDfVcZ for <dtn-users@mailman.dtnrg.org>; Thu, 29 May 2008 17:00:45 +0300 (EEST)
Received: from mailsrv.netlab.hut.fi (mailsrv.netlab.hut.fi [130.233.154.190]) by smtp.netlab.hut.fi (Postfix) with ESMTP id 3E6D5C50E5 for <dtn-users@mailman.dtnrg.org>; Thu, 29 May 2008 17:00:45 +0300 (EET DST)
Received: from [130.233.154.20] (pc20.netlab.hut.fi [130.233.154.20]) by mailsrv.netlab.hut.fi (Postfix) with ESMTP id 2014D120050 for <dtn-users@mailman.dtnrg.org>; Thu, 29 May 2008 17:00:45 +0300 (EEST)
From: Tarikul Islam <mtislam@netlab.tkk.fi>
To: dtn-users@mailman.dtnrg.org
Content-Type: text/plain
Date: Thu, 29 May 2008 17:00:25 +0300
Message-Id: <1212069625.23307.13.camel@pc20.ad.netlab.hut.fi>
Mime-Version: 1.0
X-Mailer: Evolution 2.12.1 
Content-Transfer-Encoding: 7bit
Subject: [dtn-users] Bundle expiration time issue
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: dtn-users mailing list <dtn-users.mailman.dtnrg.org>
List-Unsubscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Archive: <http://maillists.intel-research.net/pipermail/dtn-users>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
X-List-Received-Date: Thu, 29 May 2008 13:48:08 -0000

Hi all!

The default expiration time used in dtnsend application of the DTN2
latest release is one hour. Typically, the receiver's watch running
later one hour more than the sender's watch cannot receive bundle
according to theory and reports BUNDLE_EXPIRED info in the receiver dtnd
side. That looks okay. But the thing that makes me surprise that if the
the receiver's watch running earlier even one hour more than the
sender's watch can successfully receive the bundle without showing any
warning or error. Why is it so? How to fix it?

Thanks in advance.

Regards
Tarikul



Received: from gateway0.EECS.Berkeley.EDU (gateway0.EECS.Berkeley.EDU [169.229.60.93]) by maillists.intel-research.net (8.13.8/8.13.7) with ESMTP id m4JFb4wo022183 for <dtn-users@mailman.dtnrg.org>; Mon, 19 May 2008 08:37:04 -0700
Received: from [10.0.1.6] (adsl-75-6-246-31.dsl.pltn13.sbcglobal.net [75.6.246.31]) (authenticated bits=0) by gateway0.EECS.Berkeley.EDU (8.14.3/8.13.5) with ESMTP id m4JFmkFr008311 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Mon, 19 May 2008 08:48:48 -0700 (PDT)
From: Michael Demmer <demmer@cs.berkeley.edu>
To: Tarikul Islam <mtislam@netlab.tkk.fi>
In-Reply-To: <48317FF4.8090404@netlab.tkk.fi>
References: <1211202441.15273.6.camel@pc20.ad.netlab.hut.fi> <48317FF4.8090404@netlab.tkk.fi>
Message-Id: <495BEAE6-5B52-4A93-9767-1A13F8E6371D@cs.berkeley.edu>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit
X-Applemailsentby: demmer
Mime-Version: 1.0 (Apple Message framework v919.2)
Date: Mon, 19 May 2008 08:48:45 -0700
X-Mailer: Apple Mail (2.919.2)
Cc: dtn-users mailing list <dtn-users@mailman.dtnrg.org>
Subject: Re: [dtn-users] Query about storage type
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: dtn-users mailing list <dtn-users.mailman.dtnrg.org>
List-Unsubscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Archive: <http://maillists.intel-research.net/pipermail/dtn-users>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
X-List-Received-Date: Mon, 19 May 2008 15:37:05 -0000

> Tarikul Islam wrote:
>> What exact parameters do I need to configure filesystem storage  
>> type to
>> get the DTN2 work?
>
> I believe the magic words you're looking for are:
> storage set type filesysdb

Yep, that's correct.

If you want memory-only storage, it's:
storage set type memorydb

-mike




Received: from smtp.netlab.hut.fi (keskus.netlab.hut.fi [130.233.154.176]) by maillists.intel-research.net (8.13.8/8.13.7) with ESMTP id m4JDEZtV013769 for <dtn-users@mailman.dtnrg.org>; Mon, 19 May 2008 06:14:36 -0700
Received: from localhost (webserver.netlab.hut.fi [130.233.154.187]) by smtp.netlab.hut.fi (Postfix) with ESMTP id 3E011C50F1 for <dtn-users@mailman.dtnrg.org>; Mon, 19 May 2008 16:26:21 +0300 (EET DST)
X-Virus-Scanned: Debian amavisd-new at TKK Netlab
Received: from smtp.netlab.hut.fi ([130.233.154.176]) by localhost (webserver.netlab.hut.fi [130.233.154.187]) (amavisd-new, port 10024) with ESMTP id Amn0zbEOFJvm; Mon, 19 May 2008 16:26:12 +0300 (EEST)
Received: from [130.233.154.131] (vivaldi-1.netlab.hut.fi [130.233.154.131]) by smtp.netlab.hut.fi (Postfix) with ESMTP id 0152BC50E2; Mon, 19 May 2008 16:26:11 +0300 (EET DST)
Message-ID: <48317FF4.8090404@netlab.tkk.fi>
Date: Mon, 19 May 2008 16:26:12 +0300
From: Teemu <teemuk@netlab.tkk.fi>
User-Agent: Thunderbird 2.0.0.14 (X11/20080502)
MIME-Version: 1.0
To: Tarikul Islam <mtislam@netlab.tkk.fi>
References: <1211202441.15273.6.camel@pc20.ad.netlab.hut.fi>
In-Reply-To: <1211202441.15273.6.camel@pc20.ad.netlab.hut.fi>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Cc: dtn-users@mailman.dtnrg.org
Subject: Re: [dtn-users] Query about storage type
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: dtn-users mailing list <dtn-users.mailman.dtnrg.org>
List-Unsubscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Archive: <http://maillists.intel-research.net/pipermail/dtn-users>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
X-List-Received-Date: Mon, 19 May 2008 13:14:37 -0000

Hi,

Tarikul Islam wrote:
> What exact parameters do I need to configure filesystem storage type to
> get the DTN2 work?

I believe the magic words you're looking for are:
storage set type filesysdb

Cheers,
-Teemu


Received: from smtp.netlab.hut.fi (keskus.netlab.hut.fi [130.233.154.176]) by maillists.intel-research.net (8.13.8/8.13.7) with ESMTP id m4JCu6Mh012650 for <dtn-users@mailman.dtnrg.org>; Mon, 19 May 2008 05:56:06 -0700
Received: from localhost (webserver.netlab.hut.fi [130.233.154.187]) by smtp.netlab.hut.fi (Postfix) with ESMTP id 410EDC50ED for <dtn-users@mailman.dtnrg.org>; Mon, 19 May 2008 16:07:50 +0300 (EET DST)
X-Virus-Scanned: Debian amavisd-new at TKK Netlab
Received: from smtp.netlab.hut.fi ([130.233.154.176]) by localhost (webserver.netlab.hut.fi [130.233.154.187]) (amavisd-new, port 10024) with ESMTP id ZH8XRUCo5qMX for <dtn-users@mailman.dtnrg.org>; Mon, 19 May 2008 16:07:40 +0300 (EEST)
Received: from mailsrv.netlab.hut.fi (mailsrv.netlab.hut.fi [130.233.154.190]) by smtp.netlab.hut.fi (Postfix) with ESMTP id D12E4C50E2 for <dtn-users@mailman.dtnrg.org>; Mon, 19 May 2008 16:07:40 +0300 (EET DST)
Received: from [130.233.154.20] (pc20.netlab.hut.fi [130.233.154.20]) by mailsrv.netlab.hut.fi (Postfix) with ESMTP id C2E26120050 for <dtn-users@mailman.dtnrg.org>; Mon, 19 May 2008 16:07:40 +0300 (EEST)
From: Tarikul Islam <mtislam@netlab.tkk.fi>
To: dtn-users@mailman.dtnrg.org
Content-Type: text/plain
Date: Mon, 19 May 2008 16:07:20 +0300
Message-Id: <1211202441.15273.6.camel@pc20.ad.netlab.hut.fi>
Mime-Version: 1.0
X-Mailer: Evolution 2.12.1 
Content-Transfer-Encoding: 7bit
Subject: [dtn-users] Query about storage type
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: dtn-users mailing list <dtn-users.mailman.dtnrg.org>
List-Unsubscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Archive: <http://maillists.intel-research.net/pipermail/dtn-users>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
X-List-Received-Date: Mon, 19 May 2008 12:56:07 -0000

Hi all!

I have been playing around with DTN stuff for couple of months. I need
to know one thing about storage type. Is it possible to use filesystem
or memory based storage type in the DTN2 latest version other than
Berkeley DB. I think filesystem and memory based storage type support
have been implemented already in the latest DTN2 as I have investigated
source files regarding those in ../oasys/storage sub-directory. Perhaps
I don't know how to configure it. I have also taken a look over
README.cross_compile file in the project top directory and it is noted
that DTN2 can be compiled using "--without-db" argument in the DTN2
configure invocation. Then I compile DTN2 wihtout any db and get it
work. But when I instantiate dtnd, it still asks for Berkeley DB
installation and fails to run. And also there is no parameter in
"storage set type [ berkeleydb | postgres | mysql  | external ]" line of
the default configuration file to tell the dtnd about filesystem storage
type.

What exact parameters do I need to configure filesystem storage type to
get the DTN2 work?

Thanks in advance.

Regards 
Tarikul



Received: from gateway0.EECS.Berkeley.EDU (gateway0.EECS.Berkeley.EDU [169.229.60.93]) by maillists.intel-research.net (8.13.8/8.13.7) with ESMTP id m42KD8Li025912 for <dtn-users@mailman.dtnrg.org>; Fri, 2 May 2008 13:13:08 -0700
Received: from [192.168.1.46] (pool-72-65-189-198.prvdri.east.verizon.net [72.65.189.198]) (authenticated bits=0) by gateway0.EECS.Berkeley.EDU (8.14.2/8.13.5) with ESMTP id m42KMtSq029985 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Fri, 2 May 2008 13:22:58 -0700 (PDT)
From: Michael Demmer <demmer@cs.berkeley.edu>
To: =?UTF-8?Q?=EB=B0=A9=EC=98=81=EC=B2=A0_=28Youngchul_Bang=29?= <youngchul@gmail.com>
In-Reply-To: <ae4314c50805011858x461f6860m69f8471a9c300a8e@mail.gmail.com>
References: <8bd31fd70804231109n7c3eb193y132e6bb669c133f0@mail.gmail.com> <ae4314c50804300623t277cd534m178c93df66fdf8dc@mail.gmail.com> <14DC789C-8F8E-48E7-9910-398AC567E790@cs.berkeley.edu> <ae4314c50805011858x461f6860m69f8471a9c300a8e@mail.gmail.com>
Message-Id: <CF108954-3AFE-4938-8538-FC3C46F052D8@cs.berkeley.edu>
Content-Type: multipart/mixed; boundary=Apple-Mail-4--477164429
X-Applemailsentby: demmer
Mime-Version: 1.0 (Apple Message framework v919.2)
Date: Fri, 2 May 2008 15:57:49 -0400
X-Mailer: Apple Mail (2.919.2)
Cc: dtn-users mailing list <dtn-users@mailman.dtnrg.org>, Michael Demmer <demmer@EECS.Berkeley.EDU>
Subject: Re: [dtn-users] Error message during make
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: dtn-users mailing list <dtn-users.mailman.dtnrg.org>
List-Unsubscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Archive: <http://maillists.intel-research.net/pipermail/dtn-users>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
X-List-Received-Date: Fri, 02 May 2008 20:13:09 -0000

--Apple-Mail-4--477164429
Content-Type: text/plain;
	charset=UTF-8;
	format=flowed;
	delsp=yes
Content-Transfer-Encoding: quoted-printable

Strange. For some reason, when your configure script runs the test =20
that checks whether the -Wno-long-double option, it works fine, yet =20
obviously it doesn't work when it tries to compule using that flag.

I don't actually think that the -Wno-long-double option is needed any =20=

more on any platform so I'll get rid of the tests from the autoconf =20
scripts for the future.

In the meantime, you can just manually remove the option from CFLAGS =20
in the generated Makefile.

-mike

On May 1, 2008, at 9:58 PM, =EB=B0=A9=EC=98=81=EC=B2=A0 (Youngchul Bang) =
wrote:

> Hi Michael,
>
> Here is the output of configure and the config.log files are attached.
>
> Regards,
> Youngchul
>
>
> -----with-gcc-4.2.3-----
> $ ./configure -C
> [...]
> DTN2 configure state:
>  TARGET is: native
>  CC is: gcc (version 4.2.3)
>  CXX is: g++
>
> Options:
>  CPPFLAGS: -I$(SRCDIR)/servlib -I$(SRCDIR)/oasys  -Wno-long-double
> -I/usr/include/tcl8.4
>  LDFLAGS:  -L.
>  LIBS:     -lz -ldl -lm -lpthread
>
> External packages:
>  OASYS_CPPFLAGS:  -Wno-long-double -I/usr/include/tcl8.4
>  OASYS_LDFLAGS:
>  OASYS_LIBS:      -ltcl8.4 -lxerces-c -ldb-4.5
>
> -----with-gcc-4.1.3-----
> $ CC=3Dgcc-4.1 ./configure -C
> [...]
> DTN2 configure state:
>  TARGET is: native
>  CC is: gcc-4.1 (version 4.1.3)
>  CXX is: g++-4.1
>
> Options:
>  CPPFLAGS: -I$(SRCDIR)/servlib -I$(SRCDIR)/oasys  -I/usr/include/=20
> tcl8.4
>  LDFLAGS:  -L.
>  LIBS:     -lz -ldl -lm -lpthread
>
> External packages:
>  OASYS_CPPFLAGS:  -I/usr/include/tcl8.4
>  OASYS_LDFLAGS:
>  OASYS_LIBS:      -ltcl8.4 -lxerces-c -ldb-4.5
>
>
> On Fri, May 2, 2008 at 12:16 AM, Michael Demmer =
<demmer@cs.berkeley.edu=20
> > wrote:
>> The autoconf scripts should be running a test to determine whether =20=

>> or not
>> gcc accepts the -Wno-long-double argument, so apparently something =20=

>> in that
>> test isn't working.
>>
>> Can you post the output of configure and the generated config.log =20
>> file to
>> the list, or mail them to me personally, so I can take a look?
>>
>> -m
>>
>>
>>
>> On Apr 30, 2008, at 9:23 AM, =EB=B0=A9=EC=98=81=EC=B2=A0 (Youngchul =
Bang) wrote:
>>
>>
>>> Which version of gcc did you use?  I've compiled the DTN 2.5.0 =20
>>> with gcc
>> 4.1.3.
>>>
>>> If using gcc 4.2.3, option "-Wno-long-double" is added to CPPFLAGS =20=

>>> and
>>> OASYS_CPPFLAGS, which causes the compile error.
>>>
>>>
>>> 2008/4/24 EunKyung Lee <ssinji79@gmail.com>:
>>>
>>>> Can anybody solve this compile problem?
>>>> I cannot install DTN 2.5.0 because of the error below:
>>>>
>>>> debug/FatalSignals.cc: In static member function ?tatic void
>>>> oasys::FatalSignals::handler(int)?
>>>> debug/FatalSignals.cc:69: warning: deprecated conversion from =20
>>>> string
>>>> constant to ?har*?
>>>> debug/FatalSignals.cc:73: warning: deprecated conversion from =20
>>>> string
>>>> constant to ?har*?
>>>> debug/FatalSignals.cc:74: warning: deprecated conversion from =20
>>>> string
>>>> constant to ?har*?
>>>> debug/FatalSignals.cc:75: warning: deprecated conversion from =20
>>>> string
>>>> constant to ?har*?
>>>> debug/FatalSignals.cc:76: warning: deprecated conversion from =20
>>>> string
>>>> constant to ?har*?
>>>> debug/FatalSignals.cc:77: warning: deprecated conversion from =20
>>>> string
>>>> constant to ?har*?
>>>> debug/FatalSignals.cc:78: warning: deprecated conversion from =20
>>>> string
>>>> constant to ?har*?
>>>> At global scope:
>>>> cc1plus: error: unrecognized command line option "-Wno-long-double"
>>>> make[1]: *** [debug/FatalSignals.o] Error 1
>>>> make[1]: Leaving directory `/root/dtn-2.5.0/oasys'
>>>> make: *** [oasys] Error 2
>>>>
>>>> Any suggestion or comment will be very appreciated. :)
>>>> _______________________________________________
>>>> dtn-users mailing list
>>>> dtn-users@mailman.dtnrg.org
>>>> http://maillists.intel-research.net/mailman/listinfo/dtn-users
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> dtn-users mailing list
>>> dtn-users@mailman.dtnrg.org
>>> http://maillists.intel-research.net/mailman/listinfo/dtn-users
>>>
>>
>>

--Apple-Mail-4--477164429
Content-Disposition: attachment;
	filename=config.log-4.2.3
Content-Type: application/octet-stream; x-unix-mode=0666;
	name="config.log-4.2.3"
Content-Transfer-Encoding: 7bit

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.61.  Invocation command line was

  $ ./configure -C

## --------- ##
## Platform. ##
## --------- ##

hostname = deb
uname -m = i686
uname -r = 2.6.24-1-686
uname -s = Linux
uname -v = #1 SMP Thu Mar 27 17:45:04 UTC 2008

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /home/bang/local/bin
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/games
PATH: /opt/msp430/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:1732: creating cache config.cache
configure:1872: checking location of source directory
configure:1875: result: "/home/bang/dtn-2.5.0"
configure:1880: checking location of build directory
configure:1882: result: "/home/bang/dtn-2.5.0"
configure:1985: checking for a C compiler (trying gcc gcc-4.1 gcc-4.0 gcc-3.4 gcc-3.3)
configure:1987: result: 
configure:2043: checking for gcc
configure:2059: found /usr/bin/gcc
configure:2070: result: gcc
configure:2106: checking for C compiler version
configure:2113: gcc --version >&5
gcc (GCC) 4.2.3 (Debian 4.2.3-3)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2116: $? = 0
configure:2123: gcc -v >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --disable-libmudflap --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.2.3 (Debian 4.2.3-3)
configure:2126: $? = 0
configure:2133: gcc -V >&5
gcc: '-V' option must have argument
configure:2136: $? = 1
configure:2159: checking for C compiler default output file name
configure:2186: gcc    conftest.c  >&5
configure:2189: $? = 0
configure:2227: result: a.out
configure:2244: checking whether the C compiler works
configure:2254: ./a.out
configure:2257: $? = 0
configure:2274: result: yes
configure:2281: checking whether we are cross compiling
configure:2283: result: no
configure:2286: checking for suffix of executables
configure:2293: gcc -o conftest    conftest.c  >&5
configure:2296: $? = 0
configure:2320: result: 
configure:2326: checking for suffix of object files
configure:2352: gcc -c   conftest.c >&5
configure:2355: $? = 0
configure:2378: result: o
configure:2382: checking whether we are using the GNU C compiler
configure:2411: gcc -c   conftest.c >&5
configure:2417: $? = 0
configure:2434: result: yes
configure:2439: checking whether gcc accepts -g
configure:2469: gcc -c -g  conftest.c >&5
configure:2475: $? = 0
configure:2574: result: yes
configure:2591: checking for gcc option to accept ISO C89
configure:2665: gcc  -c -g -O2  conftest.c >&5
configure:2671: $? = 0
configure:2694: result: none needed
configure:2713: checking for a C++ compiler (trying g++ g++-4.0 g++-4.0 g++-3.4 g++-3.3)
configure:2715: result: 
configure:2775: checking for g++
configure:2791: found /usr/bin/g++
configure:2802: result: g++
configure:2833: checking for C++ compiler version
configure:2840: g++ --version >&5
g++ (GCC) 4.2.3 (Debian 4.2.3-3)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2843: $? = 0
configure:2850: g++ -v >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --disable-libmudflap --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.2.3 (Debian 4.2.3-3)
configure:2853: $? = 0
configure:2860: g++ -V >&5
g++: '-V' option must have argument
configure:2863: $? = 1
configure:2866: checking whether we are using the GNU C++ compiler
configure:2895: g++ -c   conftest.cpp >&5
configure:2901: $? = 0
configure:2918: result: yes
configure:2923: checking whether g++ accepts -g
configure:2953: g++ -c -g  conftest.cpp >&5
configure:2959: $? = 0
configure:3058: result: yes
configure:3082: checking whether the C++ compiler works
configure:3111: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:3117: $? = 0
configure:3123: result: yes
configure:3152: checking how to run the C preprocessor
configure:3192: gcc -E  conftest.c
configure:3198: $? = 0
configure:3229: gcc -E  conftest.c
conftest.c:11:28: error: ac_nonexistent.h: No such file or directory
configure:3235: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3268: result: gcc -E
configure:3297: gcc -E  conftest.c
configure:3303: $? = 0
configure:3334: gcc -E  conftest.c
conftest.c:11:28: error: ac_nonexistent.h: No such file or directory
configure:3340: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3378: checking for the version of the GNU C compiler
configure:3389: result: 4.2.3
configure:3392: checking for the version of the GNU C++ compiler
configure:3403: result: 4.2.3
configure:3488: checking for ar
configure:3504: found /usr/bin/ar
configure:3515: result: ar
configure:3584: checking for ranlib
configure:3600: found /usr/bin/ranlib
configure:3611: result: ranlib
configure:3653: checking whether to compile with debugging
configure:3655: result: yes
configure:3674: checking whether to compile with memory debugging
configure:3676: result: no
configure:3695: checking whether to compile with lock debugging (default yes)
configure:3697: result: yes
configure:3717: checking whether to compile with optimization
configure:3719: result: no
configure:3740: checking whether to compile with profiling
configure:3742: result: no
configure:3760: checking whether to link statically
configure:3762: result: no
configure:3773: checking whether to link using static external libraries
configure:3775: result: no
configure:3787: checking whether to try to build shared libraries
configure:3802: result: yes
configure:3813: checking whether the compiler supports -fPIC
configure:3824: gcc -c -fPIC -DPIC -g -O2 -Werror  conftest.c >&5
configure:3830: $? = 0
configure:3844: result: yes
configure:3850: checking whether the compiler can link a dynamic library with -shared
configure:3862: gcc -o conftest -fPIC -DPIC -g -O2 -Werror  -shared  conftest.c  >&5
configure:3868: $? = 0
configure:3884: result: yes
configure:3892: checking extension for dynamic libraries
configure:3904: result: so
configure:3907: checking if the compiler supports -Wl,--rpath=.
configure:3919: gcc -o conftest -fPIC -DPIC -g -O2 -Werror  -shared  -Wl,-rpath=/foo conftest.c  >&5
configure:3925: $? = 0
configure:3941: result: yes
configure:3980: checking whether gcc accepts -Wno-long-double (Apple OSX only)
configure:4010: gcc -o conftest -g -O2  -Wno-long-double  conftest.c  >&5
configure:4016: $? = 0
configure:4039: result: yes
configure:4073: checking for gawk
configure:4103: result: no
configure:4073: checking for mawk
configure:4089: found /usr/bin/mawk
configure:4100: result: mawk
configure:4124: checking for a BSD-compatible install
configure:4180: result: /usr/bin/install -c
configure:4191: checking whether make sets $(MAKE)
configure:4212: result: yes
configure:4264: checking for ranlib
configure:4291: result: ranlib
configure:4319: checking for library containing pthread_create
configure:4360: gcc -o conftest -g   conftest.c  >&5
/tmp/ccoPelQv.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:23: undefined reference to `pthread_create'
collect2: ld returned 1 exit status
configure:4366: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char pthread_create ();
| int
| main ()
| {
| return pthread_create ();
|   ;
|   return 0;
| }
configure:4360: gcc -o conftest -g   conftest.c -lpthread   >&5
configure:4366: $? = 0
configure:4394: result: -lpthread
configure:4406: checking for pthread_yield
configure:4462: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:4468: $? = 0
configure:4485: result: yes
configure:4579: checking for library containing pthread_setspecific
configure:4620: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:4626: $? = 0
configure:4654: result: none required
configure:4666: checking for library containing socket
configure:4707: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:4713: $? = 0
configure:4741: result: none required
configure:4753: checking for library containing gethostbyname
configure:4794: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:4800: $? = 0
configure:4828: result: none required
configure:4840: checking for library containing xdr_int
configure:4881: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:4887: $? = 0
configure:4915: result: none required
configure:4929: checking for grep that handles long lines and -e
configure:5003: result: /bin/grep
configure:5008: checking for egrep
configure:5086: result: /bin/grep -E
configure:5105: checking for sys/types.h
configure:5126: gcc -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for sys/stat.h
configure:5126: gcc -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for stdlib.h
configure:5126: gcc -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for string.h
configure:5126: gcc -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for memory.h
configure:5126: gcc -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for strings.h
configure:5126: gcc -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for inttypes.h
configure:5126: gcc -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for stdint.h
configure:5126: gcc -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for unistd.h
configure:5126: gcc -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5161: checking for ANSI C header files
configure:5191: gcc -c -g  conftest.c >&5
configure:5197: $? = 0
configure:5296: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:5299: $? = 0
configure:5305: ./conftest
configure:5308: $? = 0
configure:5325: result: yes
configure:5356: checking err.h usability
configure:5373: gcc -c -g  conftest.c >&5
configure:5379: $? = 0
configure:5393: result: yes
configure:5397: checking err.h presence
configure:5412: gcc -E  conftest.c
configure:5418: $? = 0
configure:5432: result: yes
configure:5460: checking for err.h
configure:5468: result: yes
configure:5356: checking execinfo.h usability
configure:5373: gcc -c -g  conftest.c >&5
configure:5379: $? = 0
configure:5393: result: yes
configure:5397: checking execinfo.h presence
configure:5412: gcc -E  conftest.c
configure:5418: $? = 0
configure:5432: result: yes
configure:5460: checking for execinfo.h
configure:5468: result: yes
configure:5346: checking for stdint.h
configure:5352: result: yes
configure:5346: checking for string.h
configure:5352: result: yes
configure:5356: checking synch.h usability
configure:5373: gcc -c -g  conftest.c >&5
conftest.c:60:19: error: synch.h: No such file or directory
configure:5379: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <synch.h>
configure:5393: result: no
configure:5397: checking synch.h presence
configure:5412: gcc -E  conftest.c
conftest.c:27:19: error: synch.h: No such file or directory
configure:5418: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| /* end confdefs.h.  */
| #include <synch.h>
configure:5432: result: no
configure:5460: checking for synch.h
configure:5468: result: no
configure:5356: checking sys/cdefs.h usability
configure:5373: gcc -c -g  conftest.c >&5
configure:5379: $? = 0
configure:5393: result: yes
configure:5397: checking sys/cdefs.h presence
configure:5412: gcc -E  conftest.c
configure:5418: $? = 0
configure:5432: result: yes
configure:5460: checking for sys/cdefs.h
configure:5468: result: yes
configure:5346: checking for sys/types.h
configure:5352: result: yes
configure:5483: checking for an ANSI C-conforming const
configure:5558: gcc -c -g  conftest.c >&5
configure:5564: $? = 0
configure:5579: result: yes
configure:5589: checking for inline
configure:5615: gcc -c -g  conftest.c >&5
configure:5621: $? = 0
configure:5639: result: inline
configure:5658: checking for working volatile
configure:5687: gcc -c -g  conftest.c >&5
configure:5693: $? = 0
configure:5708: result: yes
configure:5718: checking for mode_t
configure:5748: gcc -c -g  conftest.c >&5
configure:5754: $? = 0
configure:5769: result: yes
configure:5781: checking value for _FILE_OFFSET_BITS preprocessor symbol
configure:5790: result: 64
configure:5800: checking for off_t
configure:5830: gcc -c -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c >&5
configure:5836: $? = 0
configure:5851: result: yes
configure:5858: checking size of off_t
configure:6160: gcc -o conftest -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64   conftest.c -lpthread  >&5
configure:6163: $? = 0
configure:6169: ./conftest
configure:6172: $? = 0
configure:6195: result: 8
configure:6206: checking return type of signal handlers
configure:6234: gcc -c -g  conftest.c >&5
conftest.c: In function 'main':
conftest.c:36: error: void value not ignored as it ought to be
configure:6240: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| /* end confdefs.h.  */
| #include <sys/types.h>
| #include <signal.h>
| 
| int
| main ()
| {
| return *(signal (0, 0)) (0) == 1;
|   ;
|   return 0;
| }
configure:6255: result: void
configure:6263: checking for size_t
configure:6293: gcc -c -g  conftest.c >&5
configure:6299: $? = 0
configure:6314: result: yes
configure:6326: checking for ptrdiff_t
configure:6356: gcc -c -g  conftest.c >&5
configure:6362: $? = 0
configure:6377: result: yes
configure:6388: checking for uint32_t
configure:6418: gcc -c -g  conftest.c >&5
configure:6424: $? = 0
configure:6439: result: yes
configure:6450: checking for u_int32_t
configure:6480: gcc -c -g  conftest.c >&5
configure:6486: $? = 0
configure:6501: result: yes
configure:6516: checking whether math.h defines fpclassify
configure:6551: gcc -c -g  conftest.c >&5
configure:6557: $? = 0
configure:6580: result: yes
configure:6599: checking for fdatasync
configure:6655: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for getaddrinfo
configure:6655: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for gethostbyname
configure:6655: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for gethostbyname_r
configure:6655: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for getopt_long
configure:6655: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for inet_aton
configure:6655: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for inet_pton
configure:6655: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for pthread_yield
configure:6679: result: yes
configure:6599: checking for sched_yield
configure:6655: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6699: checking whether to compile with non-atomic "atomic" routines
configure:6701: result: no
configure:6727: checking whether to compile with assembly-based atomic functions
configure:6729: result: yes
configure:6758: checking sys/file.h usability
configure:6775: gcc -c -g  conftest.c >&5
configure:6781: $? = 0
configure:6795: result: yes
configure:6799: checking sys/file.h presence
configure:6814: gcc -E  conftest.c
configure:6820: $? = 0
configure:6834: result: yes
configure:6862: checking for sys/file.h
configure:6870: result: yes
configure:6758: checking termios.h usability
configure:6775: gcc -c -g  conftest.c >&5
configure:6781: $? = 0
configure:6795: result: yes
configure:6799: checking termios.h presence
configure:6814: gcc -E  conftest.c
configure:6820: $? = 0
configure:6834: result: yes
configure:6862: checking for termios.h
configure:6870: result: yes
configure:6888: checking for select
configure:6944: gcc -o conftest -g   conftest.c -lpthread  >&5
configure:6950: $? = 0
configure:6968: result: yes
configure:6888: checking for strpbrk
configure:6944: gcc -o conftest -g   conftest.c -lpthread  >&5
conftest.c:70: warning: conflicting types for built-in function 'strpbrk'
configure:6950: $? = 0
configure:6968: result: yes
configure:6994: checking sys/select.h usability
configure:7011: gcc -c -g  conftest.c >&5
configure:7017: $? = 0
configure:7031: result: yes
configure:7035: checking sys/select.h presence
configure:7050: gcc -E  conftest.c
configure:7056: $? = 0
configure:7070: result: yes
configure:7098: checking for sys/select.h
configure:7106: result: yes
configure:6994: checking sys/socket.h usability
configure:7011: gcc -c -g  conftest.c >&5
configure:7017: $? = 0
configure:7031: result: yes
configure:7035: checking sys/socket.h presence
configure:7050: gcc -E  conftest.c
configure:7056: $? = 0
configure:7070: result: yes
configure:7098: checking for sys/socket.h
configure:7106: result: yes
configure:7119: checking types of arguments for select
configure:7157: gcc -c -g  conftest.c >&5
configure:7163: $? = 0
configure:7184: result: int,fd_set *,struct timeval *
configure:7207: checking whether byte ordering is bigendian
configure:7240: gcc -c -g  conftest.c >&5
configure:7246: $? = 0
configure:7278: gcc -c -g  conftest.c >&5
conftest.c: In function 'main':
conftest.c:60: error: 'not' undeclared (first use in this function)
conftest.c:60: error: (Each undeclared identifier is reported only once
conftest.c:60: error: for each function it appears in.)
conftest.c:60: error: expected ';' before 'big'
configure:7284: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| #include <sys/types.h>
| #include <sys/param.h>
| 
| int
| main ()
| {
| #if BYTE_ORDER != BIG_ENDIAN
|  not big endian
| #endif
| 
|   ;
|   return 0;
| }
configure:7424: result: no
configure:7511: updating cache config.cache
configure:7555: checking for library containing pow
configure:7596: gcc -o conftest -g   conftest.c -lpthread  >&5
conftest.c:60: warning: conflicting types for built-in function 'pow'
/tmp/ccWVMPwY.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:64: undefined reference to `pow'
collect2: ld returned 1 exit status
configure:7602: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char pow ();
| int
| main ()
| {
| return pow ();
|   ;
|   return 0;
| }
configure:7596: gcc -o conftest -g   conftest.c -lm  -lpthread  >&5
conftest.c:60: warning: conflicting types for built-in function 'pow'
configure:7602: $? = 0
configure:7630: result: -lm
configure:7642: checking for library containing dlopen
configure:7683: gcc -o conftest -g   conftest.c -lm -lpthread  >&5
/tmp/ccUPN9X5.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:64: undefined reference to `dlopen'
collect2: ld returned 1 exit status
configure:7689: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char dlopen ();
| int
| main ()
| {
| return dlopen ();
|   ;
|   return 0;
| }
configure:7683: gcc -o conftest -g   conftest.c -ldl  -lm -lpthread  >&5
configure:7689: $? = 0
configure:7717: result: -ldl
configure:7755: checking for tcl installation (version 8.4)
configure:7766: checking for tcl.h (version 8.4) in /usr/include
configure:7798: gcc -o conftest -g  -I/usr/include  conftest.c -ldl -lm -lpthread  >&5
conftest.c:54:33: error: tcl.h: No such file or directory
conftest.c:57:18: error: #error "incorrect version"
configure:7804: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| 
|                 #include <tcl.h>
| 
|                 #if (TCL_MAJOR_VERSION != 8) ||                     (TCL_MINOR_VERSION != 4)
|                 #error "incorrect version"
|                 #endif
| 
| int
| main ()
| {
| 
| 
|   ;
|   return 0;
| }
configure:7819: result: no
configure:7766: checking for tcl.h (version 8.4) in /usr/local/include
configure:7798: gcc -o conftest -g  -I/usr/local/include  conftest.c -ldl -lm -lpthread  >&5
conftest.c:54:33: error: tcl.h: No such file or directory
conftest.c:57:18: error: #error "incorrect version"
configure:7804: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| 
|                 #include <tcl.h>
| 
|                 #if (TCL_MAJOR_VERSION != 8) ||                     (TCL_MINOR_VERSION != 4)
|                 #error "incorrect version"
|                 #endif
| 
| int
| main ()
| {
| 
| 
|   ;
|   return 0;
| }
configure:7819: result: no
configure:7766: checking for tcl.h (version 8.4) in /usr/include/tcl8.4
configure:7798: gcc -o conftest -g  -I/usr/include/tcl8.4  conftest.c -ldl -lm -lpthread  >&5
configure:7804: $? = 0
configure:7811: result: yes
configure:7839: checking for tcl library in /usr/lib: -ltcl8.4 -ldl -lm -lpthread 
configure:7872: gcc -o conftest -g  -I/usr/include/tcl8.4  -L/usr/lib conftest.c -ltcl8.4 -ldl -lm -lpthread  >&5
configure:7878: $? = 0
configure:7885: result: yes
configure:7961: checking whether to compile with google profiling
configure:7963: result: no
configure:8219: checking whether bluetooth support should be enabled
configure:8227: result: try
configure:8230: checking for library containing baswap
configure:8271: gcc -o conftest -g   conftest.c -ldl -lm -lpthread  >&5
/tmp/ccgiarCK.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:65: undefined reference to `baswap'
collect2: ld returned 1 exit status
configure:8277: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char baswap ();
| int
| main ()
| {
| return baswap ();
|   ;
|   return 0;
| }
configure:8271: gcc -o conftest -g   conftest.c -lbluetooth  -ldl -lm -lpthread  >&5
/usr/bin/ld: cannot find -lbluetooth
collect2: ld returned 1 exit status
configure:8277: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char baswap ();
| int
| main ()
| {
| return baswap ();
|   ;
|   return 0;
| }
configure:8305: result: no
configure:8329: checking bluetooth/bluetooth.h usability
configure:8346: gcc -c -g  conftest.c >&5
conftest.c:87:33: error: bluetooth/bluetooth.h: No such file or directory
configure:8352: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <bluetooth/bluetooth.h>
configure:8366: result: no
configure:8370: checking bluetooth/bluetooth.h presence
configure:8385: gcc -E  conftest.c
conftest.c:54:33: error: bluetooth/bluetooth.h: No such file or directory
configure:8391: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| #include <bluetooth/bluetooth.h>
configure:8405: result: no
configure:8433: checking for bluetooth/bluetooth.h
configure:8441: result: no
configure:8455: checking whether bluetooth support was found
configure:8468: result: no
configure:8492: checking whether bonjour support should be enabled
configure:8500: result: try
configure:8503: checking for library containing DNSServiceRegister
configure:8544: gcc -o conftest -g   conftest.c -ldl -lm -lpthread  >&5
/tmp/ccE460l0.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:65: undefined reference to `DNSServiceRegister'
collect2: ld returned 1 exit status
configure:8550: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char DNSServiceRegister ();
| int
| main ()
| {
| return DNSServiceRegister ();
|   ;
|   return 0;
| }
configure:8544: gcc -o conftest -g   conftest.c -ldns_sd  -ldl -lm -lpthread  >&5
/usr/bin/ld: cannot find -ldns_sd
collect2: ld returned 1 exit status
configure:8550: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char DNSServiceRegister ();
| int
| main ()
| {
| return DNSServiceRegister ();
|   ;
|   return 0;
| }
configure:8578: result: no
configure:8601: checking dns_sd.h usability
configure:8618: gcc -c -g  conftest.c >&5
conftest.c:87:20: error: dns_sd.h: No such file or directory
configure:8624: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <dns_sd.h>
configure:8638: result: no
configure:8642: checking dns_sd.h presence
configure:8657: gcc -E  conftest.c
conftest.c:54:20: error: dns_sd.h: No such file or directory
configure:8663: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| #include <dns_sd.h>
configure:8677: result: no
configure:8705: checking for dns_sd.h
configure:8713: result: no
configure:8727: checking whether bonjour support was found
configure:8739: result: no
configure:8759: checking whether expat support should be enabled
configure:8769: result: try
configure:8815: checking for expat in /usr/include, /usr/lib, -lexpat
configure:8843: gcc -o conftest -g  -I/usr/include  -L/usr/lib conftest.c -lexpat -ldl -lm -lpthread  >&5
conftest.c:55:35: error: expat.h: No such file or directory
conftest.c: In function 'main':
conftest.c:61: error: 'XML_Parser' undeclared (first use in this function)
conftest.c:61: error: (Each undeclared identifier is reported only once
conftest.c:61: error: for each function it appears in.)
conftest.c:61: error: expected ';' before 'parser'
conftest.c:62: error: 'parser' undeclared (first use in this function)
conftest.c:62: error: 'NULL' undeclared (first use in this function)
configure:8849: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
|                 #include <expat.h>
| 
| int
| main ()
| {
| 
| 		XML_Parser parser;
| 		parser = XML_ParserCreate(NULL);
| 
|   ;
|   return 0;
| }
configure:8868: result: no
configure:8815: checking for expat in /usr/include, /usr/local/lib, -lexpat
configure:8843: gcc -o conftest -g  -I/usr/include  -L/usr/local/lib conftest.c -lexpat -ldl -lm -lpthread  >&5
conftest.c:55:35: error: expat.h: No such file or directory
conftest.c: In function 'main':
conftest.c:61: error: 'XML_Parser' undeclared (first use in this function)
conftest.c:61: error: (Each undeclared identifier is reported only once
conftest.c:61: error: for each function it appears in.)
conftest.c:61: error: expected ';' before 'parser'
conftest.c:62: error: 'parser' undeclared (first use in this function)
conftest.c:62: error: 'NULL' undeclared (first use in this function)
configure:8849: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
|                 #include <expat.h>
| 
| int
| main ()
| {
| 
| 		XML_Parser parser;
| 		parser = XML_ParserCreate(NULL);
| 
|   ;
|   return 0;
| }
configure:8868: result: no
configure:8815: checking for expat in /usr/local/include, /usr/lib, -lexpat
configure:8843: gcc -o conftest -g  -I/usr/local/include  -L/usr/lib conftest.c -lexpat -ldl -lm -lpthread  >&5
conftest.c:55:35: error: expat.h: No such file or directory
conftest.c: In function 'main':
conftest.c:61: error: 'XML_Parser' undeclared (first use in this function)
conftest.c:61: error: (Each undeclared identifier is reported only once
conftest.c:61: error: for each function it appears in.)
conftest.c:61: error: expected ';' before 'parser'
conftest.c:62: error: 'parser' undeclared (first use in this function)
conftest.c:62: error: 'NULL' undeclared (first use in this function)
configure:8849: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
|                 #include <expat.h>
| 
| int
| main ()
| {
| 
| 		XML_Parser parser;
| 		parser = XML_ParserCreate(NULL);
| 
|   ;
|   return 0;
| }
configure:8868: result: no
configure:8815: checking for expat in /usr/local/include, /usr/local/lib, -lexpat
configure:8843: gcc -o conftest -g  -I/usr/local/include  -L/usr/local/lib conftest.c -lexpat -ldl -lm -lpthread  >&5
conftest.c:55:35: error: expat.h: No such file or directory
conftest.c: In function 'main':
conftest.c:61: error: 'XML_Parser' undeclared (first use in this function)
conftest.c:61: error: (Each undeclared identifier is reported only once
conftest.c:61: error: for each function it appears in.)
conftest.c:61: error: expected ';' before 'parser'
conftest.c:62: error: 'parser' undeclared (first use in this function)
conftest.c:62: error: 'NULL' undeclared (first use in this function)
configure:8849: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
|                 #include <expat.h>
| 
| int
| main ()
| {
| 
| 		XML_Parser parser;
| 		parser = XML_ParserCreate(NULL);
| 
|   ;
|   return 0;
| }
configure:8868: result: no
configure:8885: checking whether libexpat was found
configure:8891: result: no
configure:8934: checking whether xerces-c support should be enabled
configure:8946: result: try
configure:8959: checking whether xerces-c (>= v2.6.0) was found
configure:9016: g++ -o conftest -g -I/usr/include -L/usr/lib conftest.cpp -lxerces-c >&5
configure:9022: $? = 0
configure:9059: result: yes
configure:9086: checking whether tclreadline support should be enabled
configure:9097: result: try
configure:9107: checking for library containing readline
configure:9148: g++ -o conftest -g   conftest.cpp -ldl -lm -lpthread  >&5
/tmp/ccykHt8F.o: In function `main':
/home/bang/dtn-2.5.0/conftest.cpp:66: undefined reference to `readline'
collect2: ld returned 1 exit status
configure:9154: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char readline ();
| int
| main ()
| {
| return readline ();
|   ;
|   return 0;
| }
configure:9148: g++ -o conftest -g   conftest.cpp -lreadline  -ldl -lm -lpthread  >&5
/usr/bin/ld: cannot find -lreadline
collect2: ld returned 1 exit status
configure:9154: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char readline ();
| int
| main ()
| {
| return readline ();
|   ;
|   return 0;
| }
configure:9182: result: no
configure:9266: checking whether tclreadline support was found
configure:9268: result: no
configure:9291: checking whether zlib support should be enabled
configure:9299: result: try
configure:9302: checking for library containing compress
configure:9343: g++ -o conftest -g   conftest.cpp -ldl -lm -lpthread  >&5
/tmp/ccydfN6Q.o: In function `main':
/home/bang/dtn-2.5.0/conftest.cpp:67: undefined reference to `compress'
collect2: ld returned 1 exit status
configure:9349: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| #define TCLREADLINE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char compress ();
| int
| main ()
| {
| return compress ();
|   ;
|   return 0;
| }
configure:9343: g++ -o conftest -g   conftest.cpp -lz  -ldl -lm -lpthread  >&5
configure:9349: $? = 0
configure:9377: result: -lz
configure:9386: checking whether zlib support was found
configure:9395: result: yes
configure:9462: checking for xsd
configure:9492: result: no
configure:9516: Cannot find a working xsd tool
configure:9518:    You will not be able to regenerate XML schema bindings
configure:9520:    if you make changes to the .xsd file
configure:9522:    Use --with-xsd-tool=(name) to specify the location of this tool
configure:9602: checking for Berkeley DB header (version 4.5) in /usr/include
configure:9633: g++ -o conftest -g  -I/usr/include  conftest.cpp -lz -ldl -lm -lpthread  >&5
configure:9639: $? = 0
configure:9646: result: yes
configure:9673: checking for Berkeley DB library in /usr/lib, -ldb-4.5
configure:9701: g++ -o conftest -g  -I/usr/include  -L/usr/lib conftest.cpp -ldb-4.5 -lz -ldl -lm -lpthread  >&5
configure:9707: $? = 0
configure:9714: result: yes
configure:10626: checking for --with-python
configure:10642: result: no
configure:10653: checking for python
configure:10671: found /usr/bin/python
configure:10684: result: /usr/bin/python
configure:10700: checking whether python distutils can build an extension module
configure:10728: running /usr/bin/python conftest.py build -b conftest_build... output:
running build
running build_ext
building '_conftest' extension
creating conftest_build
creating conftest_build/temp.linux-i686-2.4
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.4 -c conftest.c -o conftest_build/temp.linux-i686-2.4/conftest.o
conftest.c: In function 'main':
conftest.c:7: warning: control reaches end of non-void function
creating conftest_build/lib.linux-i686-2.4
gcc -pthread -shared conftest_build/temp.linux-i686-2.4/conftest.o -o conftest_build/lib.linux-i686-2.4/_conftest.so
configure:10733: result: yes
configure:10825: checking how to run the C++ preprocessor
configure:10861: g++ -E  conftest.cpp
configure:10867: $? = 0
configure:10898: g++ -E  conftest.cpp
conftest.cpp:61:28: error: ac_nonexistent.h: No such file or directory
configure:10904: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| #define TCLREADLINE_ENABLED 0
| #define OASYS_ZLIB_ENABLED 1
| #define LIBDB_ENABLED 1
| #define BERKELEY_DB_VERSION 4.5
| #define EXTERNAL_CL_ENABLED 1
| #define EXTERNAL_DP_ENABLED 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:10937: result: g++ -E
configure:10966: g++ -E  conftest.cpp
configure:10972: $? = 0
configure:11003: g++ -E  conftest.cpp
conftest.cpp:61:28: error: ac_nonexistent.h: No such file or directory
configure:11009: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| #define TCLREADLINE_ENABLED 0
| #define OASYS_ZLIB_ENABLED 1
| #define LIBDB_ENABLED 1
| #define BERKELEY_DB_VERSION 4.5
| #define EXTERNAL_CL_ENABLED 1
| #define EXTERNAL_DP_ENABLED 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:11501: updating cache config.cache
configure:11537: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by config.status, which was
generated by GNU Autoconf 2.61.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on deb

config.status:634: creating Rules.make
config.status:634: creating config.h
configure:12638: === configuring in oasys (/home/bang/dtn-2.5.0/oasys)
configure:12741: running /bin/sh ./configure '--prefix=/usr'  --cache-file=../config.cache --srcdir=.

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_c_bigendian=no
ac_cv_c_compiler_gnu=yes
ac_cv_c_const=yes
ac_cv_c_inline=inline
ac_cv_c_volatile=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_PYTHON_set=
ac_cv_env_PYTHON_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_func_fdatasync=yes
ac_cv_func_getaddrinfo=yes
ac_cv_func_gethostbyname=yes
ac_cv_func_gethostbyname_r=yes
ac_cv_func_getopt_long=yes
ac_cv_func_inet_aton=yes
ac_cv_func_inet_pton=yes
ac_cv_func_pthread_yield=yes
ac_cv_func_sched_yield=yes
ac_cv_func_select=yes
ac_cv_func_select_args='int,fd_set *,struct timeval *'
ac_cv_func_strpbrk=yes
ac_cv_header_bluetooth_bluetooth_h=no
ac_cv_header_dns_sd_h=no
ac_cv_header_err_h=yes
ac_cv_header_execinfo_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_synch_h=no
ac_cv_header_sys_cdefs_h=yes
ac_cv_header_sys_file_h=yes
ac_cv_header_sys_select_h=yes
ac_cv_header_sys_socket_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_termios_h=yes
ac_cv_header_unistd_h=yes
ac_cv_objext=o
ac_cv_path_EGREP='/bin/grep -E'
ac_cv_path_GREP=/bin/grep
ac_cv_path_PYTHON=/usr/bin/python
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AWK=mawk
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_CXXCPP='g++ -E'
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_prog_make_make_set=yes
ac_cv_search_DNSServiceRegister=no
ac_cv_search_baswap=no
ac_cv_search_compress=-lz
ac_cv_search_dlopen=-ldl
ac_cv_search_gethostbyname='none required'
ac_cv_search_pow=-lm
ac_cv_search_pthread_create=-lpthread
ac_cv_search_pthread_setspecific='none required'
ac_cv_search_readline=no
ac_cv_search_socket='none required'
ac_cv_search_xdr_int='none required'
ac_cv_sizeof_off_t=8
ac_cv_type_mode_t=yes
ac_cv_type_off_t=yes
ac_cv_type_ptrdiff_t=yes
ac_cv_type_signal=void
ac_cv_type_size_t=yes
ac_cv_type_u_int32_t=yes
ac_cv_type_uint32_t=yes
oasys_cv_db_incpath=/usr/include
oasys_cv_db_lib=db-4.5
oasys_cv_db_libpath=/usr/lib
oasys_cv_func_fpclassify=1
oasys_cv_lib_expat=
oasys_cv_lib_tcl=tcl8.4
oasys_cv_path_expat_h=
oasys_cv_path_expat_lib=
oasys_cv_path_tcl_h=/usr/include/tcl8.4
oasys_cv_path_tcl_lib=/usr/lib
oasys_cv_path_xerces_c=/usr
oasys_cv_prog_gcc_w_no_long_double=yes
oasys_cv_prog_gccver=4.2.3
oasys_cv_prog_gxxver=4.2.3

## ----------------- ##
## Output variables. ##
## ----------------- ##

AR='ar'
AWK='mawk'
BUILDDIR='/home/bang/dtn-2.5.0'
BUILD_SYSTEM='Linux'
CC='gcc'
CFLAGS='-g'
CPP='gcc -E'
CPPFLAGS='-I$(SRCDIR)/servlib -I$(SRCDIR)/oasys  -Wno-long-double -I/usr/include/tcl8.4  '
CXX='g++'
CXXCPP='g++ -E'
CXXFLAGS='-g'
DEBUG='-g -fno-inline'
DEFS='-DHAVE_CONFIG_H'
DEPFLAGS='-MMD -MP -MT "$*.o $*.E $*.po"'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/bin/grep -E'
EXEEXT=''
EXTRA_CFLAGS=''
EXTRA_LDFLAGS=''
GREP='/bin/grep'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LDFLAGS='-L.   '
LDFLAGS_SHLIB='-shared -fPIC -DPIC'
LFSDEFS='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
LIBOBJS=''
LIBS='-lz -ldl -lm -lpthread '
LTLIBOBJS=''
OASYS_LIBS=' -ltcl8.4 -lxerces-c -ldb-4.5'
OBJEXT='o'
OPTIMIZE=''
OPTIMIZE_WARN=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
PICFLAGS='-fPIC -DPIC'
PROFILE=''
PYTHON='/usr/bin/python'
PYTHON_BUILD_EXT='yes'
RANLIB='ranlib'
RPATH='-Wl,-rpath=. -Wl,-rpath=$(prefix)/lib'
SET_MAKE=''
SHELL='/bin/sh'
SHLIBS='yes'
SHLIB_EXT='so'
SRCDIR='/home/bang/dtn-2.5.0'
STATIC='no'
TARGET='native'
TCL_LDFLAGS=' -ltcl8.4'
XSD_TOOL=''
ac_ct_CC='gcc'
ac_ct_CXX='g++'
bindir='${exec_prefix}/bin'
build_alias=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host_alias=''
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
subdirs=' oasys'
sysconfdir='/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define HAVE_CONFIG_STATE 1
#define INSTALL_SYSCONFDIR "/etc"
#define INSTALL_LOCALSTATEDIR "/var"
#define OASYS_DEBUG_LOCKING_ENABLED 1
#define HAVE_PTHREAD_SETSPECIFIC 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define STDC_HEADERS 1
#define HAVE_ERR_H 1
#define HAVE_EXECINFO_H 1
#define HAVE_STDINT_H 1
#define HAVE_STRING_H 1
#define HAVE_SYS_CDEFS_H 1
#define HAVE_SYS_TYPES_H 1
#define SIZEOF_OFF_T 8
#define RETSIGTYPE void
#define HAVE_PTRDIFF_T 1
#define HAVE_UINT32_T 1
#define HAVE_U_INT32_T 1
#define HAVE_FPCLASSIFY
#define HAVE_FDATASYNC 1
#define HAVE_GETADDRINFO 1
#define HAVE_GETHOSTBYNAME 1
#define HAVE_GETHOSTBYNAME_R 1
#define HAVE_GETOPT_LONG 1
#define HAVE_INET_ATON 1
#define HAVE_INET_PTON 1
#define HAVE_PTHREAD_YIELD 1
#define HAVE_SCHED_YIELD 1
#define HAVE_SYS_FILE_H 1
#define HAVE_TERMIOS_H 1
#define HAVE_SELECT 1
#define HAVE_STRPBRK 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_SYS_SOCKET_H 1
#define SELECT_TYPE_ARG1 int
#define SELECT_TYPE_ARG234 (fd_set *)
#define SELECT_TYPE_ARG5 (struct timeval *)
#define GOOGLE_PROFILE_ENABLED 0
#define XERCES_C_ENABLED 1
#define TCLREADLINE_ENABLED 0
#define OASYS_ZLIB_ENABLED 1
#define LIBDB_ENABLED 1
#define BERKELEY_DB_VERSION 4.5
#define EXTERNAL_CL_ENABLED 1
#define EXTERNAL_DP_ENABLED 1

configure: exit 0

--Apple-Mail-4--477164429
Content-Disposition: attachment;
	filename=config.log-4.1.3
Content-Type: application/octet-stream; x-unix-mode=0666;
	name="config.log-4.1.3"
Content-Transfer-Encoding: 7bit

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.61.  Invocation command line was

  $ ./configure -C

## --------- ##
## Platform. ##
## --------- ##

hostname = deb
uname -m = i686
uname -r = 2.6.24-1-686
uname -s = Linux
uname -v = #1 SMP Thu Mar 27 17:45:04 UTC 2008

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /home/bang/local/bin
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/games
PATH: /opt/msp430/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:1732: creating cache config.cache
configure:1872: checking location of source directory
configure:1875: result: "/home/bang/dtn-2.5.0"
configure:1880: checking location of build directory
configure:1882: result: "/home/bang/dtn-2.5.0"
configure:1975: inferring C++ compiler 'g++-4.1' from C compiler setting
configure:1985: checking for a C compiler (trying gcc-4.1)
configure:1987: result: 
configure:2106: checking for C compiler version
configure:2113: gcc-4.1 --version >&5
gcc-4.1 (GCC) 4.1.3 20080114 (prerelease) (Debian 4.1.2-19)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2116: $? = 0
configure:2123: gcc-4.1 -v >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.1.3 --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.3 20080114 (prerelease) (Debian 4.1.2-19)
configure:2126: $? = 0
configure:2133: gcc-4.1 -V >&5
gcc-4.1: '-V' option must have argument
configure:2136: $? = 1
configure:2159: checking for C compiler default output file name
configure:2186: gcc-4.1    conftest.c  >&5
configure:2189: $? = 0
configure:2227: result: a.out
configure:2244: checking whether the C compiler works
configure:2254: ./a.out
configure:2257: $? = 0
configure:2274: result: yes
configure:2281: checking whether we are cross compiling
configure:2283: result: no
configure:2286: checking for suffix of executables
configure:2293: gcc-4.1 -o conftest    conftest.c  >&5
configure:2296: $? = 0
configure:2320: result: 
configure:2326: checking for suffix of object files
configure:2352: gcc-4.1 -c   conftest.c >&5
configure:2355: $? = 0
configure:2378: result: o
configure:2382: checking whether we are using the GNU C compiler
configure:2411: gcc-4.1 -c   conftest.c >&5
configure:2417: $? = 0
configure:2434: result: yes
configure:2439: checking whether gcc-4.1 accepts -g
configure:2469: gcc-4.1 -c -g  conftest.c >&5
configure:2475: $? = 0
configure:2574: result: yes
configure:2591: checking for gcc-4.1 option to accept ISO C89
configure:2665: gcc-4.1  -c -g -O2  conftest.c >&5
configure:2671: $? = 0
configure:2694: result: none needed
configure:2713: checking for a C++ compiler (trying g++-4.1)
configure:2715: result: 
configure:2833: checking for C++ compiler version
configure:2840: g++-4.1 --version >&5
g++-4.1 (GCC) 4.1.3 20080114 (prerelease) (Debian 4.1.2-19)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2843: $? = 0
configure:2850: g++-4.1 -v >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.1.3 --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.3 20080114 (prerelease) (Debian 4.1.2-19)
configure:2853: $? = 0
configure:2860: g++-4.1 -V >&5
g++-4.1: '-V' option must have argument
configure:2863: $? = 1
configure:2866: checking whether we are using the GNU C++ compiler
configure:2895: g++-4.1 -c   conftest.cpp >&5
configure:2901: $? = 0
configure:2918: result: yes
configure:2923: checking whether g++-4.1 accepts -g
configure:2953: g++-4.1 -c -g  conftest.cpp >&5
configure:2959: $? = 0
configure:3058: result: yes
configure:3082: checking whether the C++ compiler works
configure:3111: g++-4.1 -o conftest -g -O2   conftest.cpp  >&5
configure:3117: $? = 0
configure:3123: result: yes
configure:3152: checking how to run the C preprocessor
configure:3192: gcc-4.1 -E  conftest.c
configure:3198: $? = 0
configure:3229: gcc-4.1 -E  conftest.c
conftest.c:11:28: error: ac_nonexistent.h: No such file or directory
configure:3235: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3268: result: gcc-4.1 -E
configure:3297: gcc-4.1 -E  conftest.c
configure:3303: $? = 0
configure:3334: gcc-4.1 -E  conftest.c
conftest.c:11:28: error: ac_nonexistent.h: No such file or directory
configure:3340: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3378: checking for the version of the GNU C compiler
configure:3389: result: 4.1.3
configure:3392: checking for the version of the GNU C++ compiler
configure:3403: result: 4.1.3
configure:3488: checking for ar
configure:3504: found /usr/bin/ar
configure:3515: result: ar
configure:3584: checking for ranlib
configure:3600: found /usr/bin/ranlib
configure:3611: result: ranlib
configure:3653: checking whether to compile with debugging
configure:3655: result: yes
configure:3674: checking whether to compile with memory debugging
configure:3676: result: no
configure:3695: checking whether to compile with lock debugging (default yes)
configure:3697: result: yes
configure:3717: checking whether to compile with optimization
configure:3719: result: no
configure:3740: checking whether to compile with profiling
configure:3742: result: no
configure:3760: checking whether to link statically
configure:3762: result: no
configure:3773: checking whether to link using static external libraries
configure:3775: result: no
configure:3787: checking whether to try to build shared libraries
configure:3802: result: yes
configure:3813: checking whether the compiler supports -fPIC
configure:3824: gcc-4.1 -c -fPIC -DPIC -g -O2 -Werror  conftest.c >&5
configure:3830: $? = 0
configure:3844: result: yes
configure:3850: checking whether the compiler can link a dynamic library with -shared
configure:3862: gcc-4.1 -o conftest -fPIC -DPIC -g -O2 -Werror  -shared  conftest.c  >&5
configure:3868: $? = 0
configure:3884: result: yes
configure:3892: checking extension for dynamic libraries
configure:3904: result: so
configure:3907: checking if the compiler supports -Wl,--rpath=.
configure:3919: gcc-4.1 -o conftest -fPIC -DPIC -g -O2 -Werror  -shared  -Wl,-rpath=/foo conftest.c  >&5
configure:3925: $? = 0
configure:3941: result: yes
configure:3980: checking whether gcc accepts -Wno-long-double (Apple OSX only)
configure:4010: gcc-4.1 -o conftest -g -O2  -Wno-long-double  conftest.c  >&5
cc1: error: unrecognized command line option "-Wno-long-double"
configure:4016: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| /* nothing */
| 
|   ;
|   return 0;
| }
configure:4039: result: no
configure:4073: checking for gawk
configure:4103: result: no
configure:4073: checking for mawk
configure:4089: found /usr/bin/mawk
configure:4100: result: mawk
configure:4124: checking for a BSD-compatible install
configure:4180: result: /usr/bin/install -c
configure:4191: checking whether make sets $(MAKE)
configure:4212: result: yes
configure:4264: checking for ranlib
configure:4291: result: ranlib
configure:4319: checking for library containing pthread_create
configure:4360: gcc-4.1 -o conftest -g   conftest.c  >&5
/tmp/ccWKosQ9.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:23: undefined reference to `pthread_create'
collect2: ld returned 1 exit status
configure:4366: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char pthread_create ();
| int
| main ()
| {
| return pthread_create ();
|   ;
|   return 0;
| }
configure:4360: gcc-4.1 -o conftest -g   conftest.c -lpthread   >&5
configure:4366: $? = 0
configure:4394: result: -lpthread
configure:4406: checking for pthread_yield
configure:4462: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:4468: $? = 0
configure:4485: result: yes
configure:4579: checking for library containing pthread_setspecific
configure:4620: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:4626: $? = 0
configure:4654: result: none required
configure:4666: checking for library containing socket
configure:4707: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:4713: $? = 0
configure:4741: result: none required
configure:4753: checking for library containing gethostbyname
configure:4794: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:4800: $? = 0
configure:4828: result: none required
configure:4840: checking for library containing xdr_int
configure:4881: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:4887: $? = 0
configure:4915: result: none required
configure:4929: checking for grep that handles long lines and -e
configure:5003: result: /bin/grep
configure:5008: checking for egrep
configure:5086: result: /bin/grep -E
configure:5105: checking for sys/types.h
configure:5126: gcc-4.1 -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for sys/stat.h
configure:5126: gcc-4.1 -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for stdlib.h
configure:5126: gcc-4.1 -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for string.h
configure:5126: gcc-4.1 -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for memory.h
configure:5126: gcc-4.1 -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for strings.h
configure:5126: gcc-4.1 -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for inttypes.h
configure:5126: gcc-4.1 -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for stdint.h
configure:5126: gcc-4.1 -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5105: checking for unistd.h
configure:5126: gcc-4.1 -c -g  conftest.c >&5
configure:5132: $? = 0
configure:5148: result: yes
configure:5161: checking for ANSI C header files
configure:5191: gcc-4.1 -c -g  conftest.c >&5
configure:5197: $? = 0
configure:5296: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:5299: $? = 0
configure:5305: ./conftest
configure:5308: $? = 0
configure:5325: result: yes
configure:5356: checking err.h usability
configure:5373: gcc-4.1 -c -g  conftest.c >&5
configure:5379: $? = 0
configure:5393: result: yes
configure:5397: checking err.h presence
configure:5412: gcc-4.1 -E  conftest.c
configure:5418: $? = 0
configure:5432: result: yes
configure:5460: checking for err.h
configure:5468: result: yes
configure:5356: checking execinfo.h usability
configure:5373: gcc-4.1 -c -g  conftest.c >&5
configure:5379: $? = 0
configure:5393: result: yes
configure:5397: checking execinfo.h presence
configure:5412: gcc-4.1 -E  conftest.c
configure:5418: $? = 0
configure:5432: result: yes
configure:5460: checking for execinfo.h
configure:5468: result: yes
configure:5346: checking for stdint.h
configure:5352: result: yes
configure:5346: checking for string.h
configure:5352: result: yes
configure:5356: checking synch.h usability
configure:5373: gcc-4.1 -c -g  conftest.c >&5
conftest.c:60:19: error: synch.h: No such file or directory
configure:5379: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <synch.h>
configure:5393: result: no
configure:5397: checking synch.h presence
configure:5412: gcc-4.1 -E  conftest.c
conftest.c:27:19: error: synch.h: No such file or directory
configure:5418: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| /* end confdefs.h.  */
| #include <synch.h>
configure:5432: result: no
configure:5460: checking for synch.h
configure:5468: result: no
configure:5356: checking sys/cdefs.h usability
configure:5373: gcc-4.1 -c -g  conftest.c >&5
configure:5379: $? = 0
configure:5393: result: yes
configure:5397: checking sys/cdefs.h presence
configure:5412: gcc-4.1 -E  conftest.c
configure:5418: $? = 0
configure:5432: result: yes
configure:5460: checking for sys/cdefs.h
configure:5468: result: yes
configure:5346: checking for sys/types.h
configure:5352: result: yes
configure:5483: checking for an ANSI C-conforming const
configure:5558: gcc-4.1 -c -g  conftest.c >&5
configure:5564: $? = 0
configure:5579: result: yes
configure:5589: checking for inline
configure:5615: gcc-4.1 -c -g  conftest.c >&5
configure:5621: $? = 0
configure:5639: result: inline
configure:5658: checking for working volatile
configure:5687: gcc-4.1 -c -g  conftest.c >&5
configure:5693: $? = 0
configure:5708: result: yes
configure:5718: checking for mode_t
configure:5748: gcc-4.1 -c -g  conftest.c >&5
configure:5754: $? = 0
configure:5769: result: yes
configure:5781: checking value for _FILE_OFFSET_BITS preprocessor symbol
configure:5790: result: 64
configure:5800: checking for off_t
configure:5830: gcc-4.1 -c -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c >&5
configure:5836: $? = 0
configure:5851: result: yes
configure:5858: checking size of off_t
configure:6160: gcc-4.1 -o conftest -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64   conftest.c -lpthread  >&5
configure:6163: $? = 0
configure:6169: ./conftest
configure:6172: $? = 0
configure:6195: result: 8
configure:6206: checking return type of signal handlers
configure:6234: gcc-4.1 -c -g  conftest.c >&5
conftest.c: In function 'main':
conftest.c:36: error: void value not ignored as it ought to be
configure:6240: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| /* end confdefs.h.  */
| #include <sys/types.h>
| #include <signal.h>
| 
| int
| main ()
| {
| return *(signal (0, 0)) (0) == 1;
|   ;
|   return 0;
| }
configure:6255: result: void
configure:6263: checking for size_t
configure:6293: gcc-4.1 -c -g  conftest.c >&5
configure:6299: $? = 0
configure:6314: result: yes
configure:6326: checking for ptrdiff_t
configure:6356: gcc-4.1 -c -g  conftest.c >&5
configure:6362: $? = 0
configure:6377: result: yes
configure:6388: checking for uint32_t
configure:6418: gcc-4.1 -c -g  conftest.c >&5
configure:6424: $? = 0
configure:6439: result: yes
configure:6450: checking for u_int32_t
configure:6480: gcc-4.1 -c -g  conftest.c >&5
configure:6486: $? = 0
configure:6501: result: yes
configure:6516: checking whether math.h defines fpclassify
configure:6551: gcc-4.1 -c -g  conftest.c >&5
configure:6557: $? = 0
configure:6580: result: yes
configure:6599: checking for fdatasync
configure:6655: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for getaddrinfo
configure:6655: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for gethostbyname
configure:6655: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for gethostbyname_r
configure:6655: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for getopt_long
configure:6655: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for inet_aton
configure:6655: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for inet_pton
configure:6655: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6599: checking for pthread_yield
configure:6679: result: yes
configure:6599: checking for sched_yield
configure:6655: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:6661: $? = 0
configure:6679: result: yes
configure:6699: checking whether to compile with non-atomic "atomic" routines
configure:6701: result: no
configure:6727: checking whether to compile with assembly-based atomic functions
configure:6729: result: yes
configure:6758: checking sys/file.h usability
configure:6775: gcc-4.1 -c -g  conftest.c >&5
configure:6781: $? = 0
configure:6795: result: yes
configure:6799: checking sys/file.h presence
configure:6814: gcc-4.1 -E  conftest.c
configure:6820: $? = 0
configure:6834: result: yes
configure:6862: checking for sys/file.h
configure:6870: result: yes
configure:6758: checking termios.h usability
configure:6775: gcc-4.1 -c -g  conftest.c >&5
configure:6781: $? = 0
configure:6795: result: yes
configure:6799: checking termios.h presence
configure:6814: gcc-4.1 -E  conftest.c
configure:6820: $? = 0
configure:6834: result: yes
configure:6862: checking for termios.h
configure:6870: result: yes
configure:6888: checking for select
configure:6944: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
configure:6950: $? = 0
configure:6968: result: yes
configure:6888: checking for strpbrk
configure:6944: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
conftest.c:70: warning: conflicting types for built-in function 'strpbrk'
configure:6950: $? = 0
configure:6968: result: yes
configure:6994: checking sys/select.h usability
configure:7011: gcc-4.1 -c -g  conftest.c >&5
configure:7017: $? = 0
configure:7031: result: yes
configure:7035: checking sys/select.h presence
configure:7050: gcc-4.1 -E  conftest.c
configure:7056: $? = 0
configure:7070: result: yes
configure:7098: checking for sys/select.h
configure:7106: result: yes
configure:6994: checking sys/socket.h usability
configure:7011: gcc-4.1 -c -g  conftest.c >&5
configure:7017: $? = 0
configure:7031: result: yes
configure:7035: checking sys/socket.h presence
configure:7050: gcc-4.1 -E  conftest.c
configure:7056: $? = 0
configure:7070: result: yes
configure:7098: checking for sys/socket.h
configure:7106: result: yes
configure:7119: checking types of arguments for select
configure:7157: gcc-4.1 -c -g  conftest.c >&5
configure:7163: $? = 0
configure:7184: result: int,fd_set *,struct timeval *
configure:7207: checking whether byte ordering is bigendian
configure:7240: gcc-4.1 -c -g  conftest.c >&5
configure:7246: $? = 0
configure:7278: gcc-4.1 -c -g  conftest.c >&5
conftest.c: In function 'main':
conftest.c:60: error: 'not' undeclared (first use in this function)
conftest.c:60: error: (Each undeclared identifier is reported only once
conftest.c:60: error: for each function it appears in.)
conftest.c:60: error: expected ';' before 'big'
configure:7284: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| #include <sys/types.h>
| #include <sys/param.h>
| 
| int
| main ()
| {
| #if BYTE_ORDER != BIG_ENDIAN
|  not big endian
| #endif
| 
|   ;
|   return 0;
| }
configure:7424: result: no
configure:7511: updating cache config.cache
configure:7555: checking for library containing pow
configure:7596: gcc-4.1 -o conftest -g   conftest.c -lpthread  >&5
conftest.c:60: warning: conflicting types for built-in function 'pow'
/tmp/ccGhtSAU.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:64: undefined reference to `pow'
collect2: ld returned 1 exit status
configure:7602: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char pow ();
| int
| main ()
| {
| return pow ();
|   ;
|   return 0;
| }
configure:7596: gcc-4.1 -o conftest -g   conftest.c -lm  -lpthread  >&5
conftest.c:60: warning: conflicting types for built-in function 'pow'
configure:7602: $? = 0
configure:7630: result: -lm
configure:7642: checking for library containing dlopen
configure:7683: gcc-4.1 -o conftest -g   conftest.c -lm -lpthread  >&5
/tmp/ccUDuBl4.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:64: undefined reference to `dlopen'
collect2: ld returned 1 exit status
configure:7689: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char dlopen ();
| int
| main ()
| {
| return dlopen ();
|   ;
|   return 0;
| }
configure:7683: gcc-4.1 -o conftest -g   conftest.c -ldl  -lm -lpthread  >&5
configure:7689: $? = 0
configure:7717: result: -ldl
configure:7755: checking for tcl installation (version 8.4)
configure:7766: checking for tcl.h (version 8.4) in /usr/include
configure:7798: gcc-4.1 -o conftest -g  -I/usr/include  conftest.c -ldl -lm -lpthread  >&5
conftest.c:54:33: error: tcl.h: No such file or directory
conftest.c:57:18: error: #error "incorrect version"
configure:7804: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| 
|                 #include <tcl.h>
| 
|                 #if (TCL_MAJOR_VERSION != 8) ||                     (TCL_MINOR_VERSION != 4)
|                 #error "incorrect version"
|                 #endif
| 
| int
| main ()
| {
| 
| 
|   ;
|   return 0;
| }
configure:7819: result: no
configure:7766: checking for tcl.h (version 8.4) in /usr/local/include
configure:7798: gcc-4.1 -o conftest -g  -I/usr/local/include  conftest.c -ldl -lm -lpthread  >&5
conftest.c:54:33: error: tcl.h: No such file or directory
conftest.c:57:18: error: #error "incorrect version"
configure:7804: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| /* end confdefs.h.  */
| 
|                 #include <tcl.h>
| 
|                 #if (TCL_MAJOR_VERSION != 8) ||                     (TCL_MINOR_VERSION != 4)
|                 #error "incorrect version"
|                 #endif
| 
| int
| main ()
| {
| 
| 
|   ;
|   return 0;
| }
configure:7819: result: no
configure:7766: checking for tcl.h (version 8.4) in /usr/include/tcl8.4
configure:7798: gcc-4.1 -o conftest -g  -I/usr/include/tcl8.4  conftest.c -ldl -lm -lpthread  >&5
configure:7804: $? = 0
configure:7811: result: yes
configure:7839: checking for tcl library in /usr/lib: -ltcl8.4 -ldl -lm -lpthread 
configure:7872: gcc-4.1 -o conftest -g  -I/usr/include/tcl8.4  -L/usr/lib conftest.c -ltcl8.4 -ldl -lm -lpthread  >&5
configure:7878: $? = 0
configure:7885: result: yes
configure:7961: checking whether to compile with google profiling
configure:7963: result: no
configure:8219: checking whether bluetooth support should be enabled
configure:8227: result: try
configure:8230: checking for library containing baswap
configure:8271: gcc-4.1 -o conftest -g   conftest.c -ldl -lm -lpthread  >&5
/tmp/ccw1Ntes.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:65: undefined reference to `baswap'
collect2: ld returned 1 exit status
configure:8277: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char baswap ();
| int
| main ()
| {
| return baswap ();
|   ;
|   return 0;
| }
configure:8271: gcc-4.1 -o conftest -g   conftest.c -lbluetooth  -ldl -lm -lpthread  >&5
/usr/bin/ld: cannot find -lbluetooth
collect2: ld returned 1 exit status
configure:8277: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char baswap ();
| int
| main ()
| {
| return baswap ();
|   ;
|   return 0;
| }
configure:8305: result: no
configure:8329: checking bluetooth/bluetooth.h usability
configure:8346: gcc-4.1 -c -g  conftest.c >&5
conftest.c:87:33: error: bluetooth/bluetooth.h: No such file or directory
configure:8352: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <bluetooth/bluetooth.h>
configure:8366: result: no
configure:8370: checking bluetooth/bluetooth.h presence
configure:8385: gcc-4.1 -E  conftest.c
conftest.c:54:33: error: bluetooth/bluetooth.h: No such file or directory
configure:8391: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| #include <bluetooth/bluetooth.h>
configure:8405: result: no
configure:8433: checking for bluetooth/bluetooth.h
configure:8441: result: no
configure:8455: checking whether bluetooth support was found
configure:8468: result: no
configure:8492: checking whether bonjour support should be enabled
configure:8500: result: try
configure:8503: checking for library containing DNSServiceRegister
configure:8544: gcc-4.1 -o conftest -g   conftest.c -ldl -lm -lpthread  >&5
/tmp/ccAiDHqG.o: In function `main':
/home/bang/dtn-2.5.0/conftest.c:65: undefined reference to `DNSServiceRegister'
collect2: ld returned 1 exit status
configure:8550: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char DNSServiceRegister ();
| int
| main ()
| {
| return DNSServiceRegister ();
|   ;
|   return 0;
| }
configure:8544: gcc-4.1 -o conftest -g   conftest.c -ldns_sd  -ldl -lm -lpthread  >&5
/usr/bin/ld: cannot find -ldns_sd
collect2: ld returned 1 exit status
configure:8550: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char DNSServiceRegister ();
| int
| main ()
| {
| return DNSServiceRegister ();
|   ;
|   return 0;
| }
configure:8578: result: no
configure:8601: checking dns_sd.h usability
configure:8618: gcc-4.1 -c -g  conftest.c >&5
conftest.c:87:20: error: dns_sd.h: No such file or directory
configure:8624: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <dns_sd.h>
configure:8638: result: no
configure:8642: checking dns_sd.h presence
configure:8657: gcc-4.1 -E  conftest.c
conftest.c:54:20: error: dns_sd.h: No such file or directory
configure:8663: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| #include <dns_sd.h>
configure:8677: result: no
configure:8705: checking for dns_sd.h
configure:8713: result: no
configure:8727: checking whether bonjour support was found
configure:8739: result: no
configure:8759: checking whether expat support should be enabled
configure:8769: result: try
configure:8815: checking for expat in /usr/include, /usr/lib, -lexpat
configure:8843: gcc-4.1 -o conftest -g  -I/usr/include  -L/usr/lib conftest.c -lexpat -ldl -lm -lpthread  >&5
conftest.c:55:35: error: expat.h: No such file or directory
conftest.c: In function 'main':
conftest.c:61: error: 'XML_Parser' undeclared (first use in this function)
conftest.c:61: error: (Each undeclared identifier is reported only once
conftest.c:61: error: for each function it appears in.)
conftest.c:61: error: expected ';' before 'parser'
conftest.c:62: error: 'parser' undeclared (first use in this function)
conftest.c:62: error: 'NULL' undeclared (first use in this function)
configure:8849: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
|                 #include <expat.h>
| 
| int
| main ()
| {
| 
| 		XML_Parser parser;
| 		parser = XML_ParserCreate(NULL);
| 
|   ;
|   return 0;
| }
configure:8868: result: no
configure:8815: checking for expat in /usr/include, /usr/local/lib, -lexpat
configure:8843: gcc-4.1 -o conftest -g  -I/usr/include  -L/usr/local/lib conftest.c -lexpat -ldl -lm -lpthread  >&5
conftest.c:55:35: error: expat.h: No such file or directory
conftest.c: In function 'main':
conftest.c:61: error: 'XML_Parser' undeclared (first use in this function)
conftest.c:61: error: (Each undeclared identifier is reported only once
conftest.c:61: error: for each function it appears in.)
conftest.c:61: error: expected ';' before 'parser'
conftest.c:62: error: 'parser' undeclared (first use in this function)
conftest.c:62: error: 'NULL' undeclared (first use in this function)
configure:8849: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
|                 #include <expat.h>
| 
| int
| main ()
| {
| 
| 		XML_Parser parser;
| 		parser = XML_ParserCreate(NULL);
| 
|   ;
|   return 0;
| }
configure:8868: result: no
configure:8815: checking for expat in /usr/local/include, /usr/lib, -lexpat
configure:8843: gcc-4.1 -o conftest -g  -I/usr/local/include  -L/usr/lib conftest.c -lexpat -ldl -lm -lpthread  >&5
conftest.c:55:35: error: expat.h: No such file or directory
conftest.c: In function 'main':
conftest.c:61: error: 'XML_Parser' undeclared (first use in this function)
conftest.c:61: error: (Each undeclared identifier is reported only once
conftest.c:61: error: for each function it appears in.)
conftest.c:61: error: expected ';' before 'parser'
conftest.c:62: error: 'parser' undeclared (first use in this function)
conftest.c:62: error: 'NULL' undeclared (first use in this function)
configure:8849: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
|                 #include <expat.h>
| 
| int
| main ()
| {
| 
| 		XML_Parser parser;
| 		parser = XML_ParserCreate(NULL);
| 
|   ;
|   return 0;
| }
configure:8868: result: no
configure:8815: checking for expat in /usr/local/include, /usr/local/lib, -lexpat
configure:8843: gcc-4.1 -o conftest -g  -I/usr/local/include  -L/usr/local/lib conftest.c -lexpat -ldl -lm -lpthread  >&5
conftest.c:55:35: error: expat.h: No such file or directory
conftest.c: In function 'main':
conftest.c:61: error: 'XML_Parser' undeclared (first use in this function)
conftest.c:61: error: (Each undeclared identifier is reported only once
conftest.c:61: error: for each function it appears in.)
conftest.c:61: error: expected ';' before 'parser'
conftest.c:62: error: 'parser' undeclared (first use in this function)
conftest.c:62: error: 'NULL' undeclared (first use in this function)
configure:8849: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| /* end confdefs.h.  */
| 
|                 #include <expat.h>
| 
| int
| main ()
| {
| 
| 		XML_Parser parser;
| 		parser = XML_ParserCreate(NULL);
| 
|   ;
|   return 0;
| }
configure:8868: result: no
configure:8885: checking whether libexpat was found
configure:8891: result: no
configure:8934: checking whether xerces-c support should be enabled
configure:8946: result: try
configure:8959: checking whether xerces-c (>= v2.6.0) was found
configure:9016: g++-4.1 -o conftest -g -I/usr/include -L/usr/lib conftest.cpp -lxerces-c >&5
configure:9022: $? = 0
configure:9059: result: yes
configure:9086: checking whether tclreadline support should be enabled
configure:9097: result: try
configure:9107: checking for library containing readline
configure:9148: g++-4.1 -o conftest -g   conftest.cpp -ldl -lm -lpthread  >&5
/tmp/ccsXRz9K.o: In function `main':
/home/bang/dtn-2.5.0/conftest.cpp:66: undefined reference to `readline'
collect2: ld returned 1 exit status
configure:9154: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char readline ();
| int
| main ()
| {
| return readline ();
|   ;
|   return 0;
| }
configure:9148: g++-4.1 -o conftest -g   conftest.cpp -lreadline  -ldl -lm -lpthread  >&5
/usr/bin/ld: cannot find -lreadline
collect2: ld returned 1 exit status
configure:9154: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char readline ();
| int
| main ()
| {
| return readline ();
|   ;
|   return 0;
| }
configure:9182: result: no
configure:9266: checking whether tclreadline support was found
configure:9268: result: no
configure:9291: checking whether zlib support should be enabled
configure:9299: result: try
configure:9302: checking for library containing compress
configure:9343: g++-4.1 -o conftest -g   conftest.cpp -ldl -lm -lpthread  >&5
/tmp/ccSlF7vV.o: In function `main':
/home/bang/dtn-2.5.0/conftest.cpp:67: undefined reference to `compress'
collect2: ld returned 1 exit status
configure:9349: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| #define TCLREADLINE_ENABLED 0
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char compress ();
| int
| main ()
| {
| return compress ();
|   ;
|   return 0;
| }
configure:9343: g++-4.1 -o conftest -g   conftest.cpp -lz  -ldl -lm -lpthread  >&5
configure:9349: $? = 0
configure:9377: result: -lz
configure:9386: checking whether zlib support was found
configure:9395: result: yes
configure:9462: checking for xsd
configure:9492: result: no
configure:9516: Cannot find a working xsd tool
configure:9518:    You will not be able to regenerate XML schema bindings
configure:9520:    if you make changes to the .xsd file
configure:9522:    Use --with-xsd-tool=(name) to specify the location of this tool
configure:9602: checking for Berkeley DB header (version 4.5) in /usr/include
configure:9633: g++-4.1 -o conftest -g  -I/usr/include  conftest.cpp -lz -ldl -lm -lpthread  >&5
configure:9639: $? = 0
configure:9646: result: yes
configure:9673: checking for Berkeley DB library in /usr/lib, -ldb-4.5
configure:9701: g++-4.1 -o conftest -g  -I/usr/include  -L/usr/lib conftest.cpp -ldb-4.5 -lz -ldl -lm -lpthread  >&5
configure:9707: $? = 0
configure:9714: result: yes
configure:10626: checking for --with-python
configure:10642: result: no
configure:10653: checking for python
configure:10671: found /usr/bin/python
configure:10684: result: /usr/bin/python
configure:10700: checking whether python distutils can build an extension module
configure:10728: running /usr/bin/python conftest.py build -b conftest_build... output:
running build
running build_ext
building '_conftest' extension
creating conftest_build
creating conftest_build/temp.linux-i686-2.4
gcc-4.1 -fno-strict-aliasing -DNDEBUG -g -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.4 -c conftest.c -o conftest_build/temp.linux-i686-2.4/conftest.o
conftest.c: In function 'main':
conftest.c:7: warning: control reaches end of non-void function
creating conftest_build/lib.linux-i686-2.4
gcc -pthread -shared conftest_build/temp.linux-i686-2.4/conftest.o -o conftest_build/lib.linux-i686-2.4/_conftest.so
configure:10733: result: yes
configure:10825: checking how to run the C++ preprocessor
configure:10861: g++-4.1 -E  conftest.cpp
configure:10867: $? = 0
configure:10898: g++-4.1 -E  conftest.cpp
conftest.cpp:61:28: error: ac_nonexistent.h: No such file or directory
configure:10904: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| #define TCLREADLINE_ENABLED 0
| #define OASYS_ZLIB_ENABLED 1
| #define LIBDB_ENABLED 1
| #define BERKELEY_DB_VERSION 4.5
| #define EXTERNAL_CL_ENABLED 1
| #define EXTERNAL_DP_ENABLED 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:10937: result: g++-4.1 -E
configure:10966: g++-4.1 -E  conftest.cpp
configure:10972: $? = 0
configure:11003: g++-4.1 -E  conftest.cpp
conftest.cpp:61:28: error: ac_nonexistent.h: No such file or directory
configure:11009: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_CONFIG_STATE 1
| #define INSTALL_SYSCONFDIR "/etc"
| #define INSTALL_LOCALSTATEDIR "/var"
| #define OASYS_DEBUG_LOCKING_ENABLED 1
| #define HAVE_PTHREAD_SETSPECIFIC 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_ERR_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRING_H 1
| #define HAVE_SYS_CDEFS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define SIZEOF_OFF_T 8
| #define RETSIGTYPE void
| #define HAVE_PTRDIFF_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_U_INT32_T 1
| #define HAVE_FPCLASSIFY
| #define HAVE_FDATASYNC 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_INET_ATON 1
| #define HAVE_INET_PTON 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_SCHED_YIELD 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_SELECT 1
| #define HAVE_STRPBRK 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define SELECT_TYPE_ARG1 int
| #define SELECT_TYPE_ARG234 (fd_set *)
| #define SELECT_TYPE_ARG5 (struct timeval *)
| #define GOOGLE_PROFILE_ENABLED 0
| #define XERCES_C_ENABLED 1
| #define TCLREADLINE_ENABLED 0
| #define OASYS_ZLIB_ENABLED 1
| #define LIBDB_ENABLED 1
| #define BERKELEY_DB_VERSION 4.5
| #define EXTERNAL_CL_ENABLED 1
| #define EXTERNAL_DP_ENABLED 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:11501: updating cache config.cache
configure:11537: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by config.status, which was
generated by GNU Autoconf 2.61.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on deb

config.status:634: creating Rules.make
config.status:634: creating config.h
configure:12638: === configuring in oasys (/home/bang/dtn-2.5.0/oasys)
configure:12741: running /bin/sh ./configure '--prefix=/usr'  'CC=gcc-4.1' --cache-file=../config.cache --srcdir=.

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_c_bigendian=no
ac_cv_c_compiler_gnu=yes
ac_cv_c_const=yes
ac_cv_c_inline=inline
ac_cv_c_volatile=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=set
ac_cv_env_CC_value=gcc-4.1
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_PYTHON_set=
ac_cv_env_PYTHON_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_func_fdatasync=yes
ac_cv_func_getaddrinfo=yes
ac_cv_func_gethostbyname=yes
ac_cv_func_gethostbyname_r=yes
ac_cv_func_getopt_long=yes
ac_cv_func_inet_aton=yes
ac_cv_func_inet_pton=yes
ac_cv_func_pthread_yield=yes
ac_cv_func_sched_yield=yes
ac_cv_func_select=yes
ac_cv_func_select_args='int,fd_set *,struct timeval *'
ac_cv_func_strpbrk=yes
ac_cv_header_bluetooth_bluetooth_h=no
ac_cv_header_dns_sd_h=no
ac_cv_header_err_h=yes
ac_cv_header_execinfo_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_synch_h=no
ac_cv_header_sys_cdefs_h=yes
ac_cv_header_sys_file_h=yes
ac_cv_header_sys_select_h=yes
ac_cv_header_sys_socket_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_termios_h=yes
ac_cv_header_unistd_h=yes
ac_cv_objext=o
ac_cv_path_EGREP='/bin/grep -E'
ac_cv_path_GREP=/bin/grep
ac_cv_path_PYTHON=/usr/bin/python
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AWK=mawk
ac_cv_prog_CPP='gcc-4.1 -E'
ac_cv_prog_CXXCPP='g++-4.1 -E'
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_prog_make_make_set=yes
ac_cv_search_DNSServiceRegister=no
ac_cv_search_baswap=no
ac_cv_search_compress=-lz
ac_cv_search_dlopen=-ldl
ac_cv_search_gethostbyname='none required'
ac_cv_search_pow=-lm
ac_cv_search_pthread_create=-lpthread
ac_cv_search_pthread_setspecific='none required'
ac_cv_search_readline=no
ac_cv_search_socket='none required'
ac_cv_search_xdr_int='none required'
ac_cv_sizeof_off_t=8
ac_cv_type_mode_t=yes
ac_cv_type_off_t=yes
ac_cv_type_ptrdiff_t=yes
ac_cv_type_signal=void
ac_cv_type_size_t=yes
ac_cv_type_u_int32_t=yes
ac_cv_type_uint32_t=yes
oasys_cv_db_incpath=/usr/include
oasys_cv_db_lib=db-4.5
oasys_cv_db_libpath=/usr/lib
oasys_cv_func_fpclassify=1
oasys_cv_lib_expat=
oasys_cv_lib_tcl=tcl8.4
oasys_cv_path_expat_h=
oasys_cv_path_expat_lib=
oasys_cv_path_tcl_h=/usr/include/tcl8.4
oasys_cv_path_tcl_lib=/usr/lib
oasys_cv_path_xerces_c=/usr
oasys_cv_prog_gcc_w_no_long_double=no
oasys_cv_prog_gccver=4.1.3
oasys_cv_prog_gxxver=4.1.3

## ----------------- ##
## Output variables. ##
## ----------------- ##

AR='ar'
AWK='mawk'
BUILDDIR='/home/bang/dtn-2.5.0'
BUILD_SYSTEM='Linux'
CC='gcc-4.1'
CFLAGS='-g'
CPP='gcc-4.1 -E'
CPPFLAGS='-I$(SRCDIR)/servlib -I$(SRCDIR)/oasys  -I/usr/include/tcl8.4  '
CXX='g++-4.1'
CXXCPP='g++-4.1 -E'
CXXFLAGS='-g'
DEBUG='-g -fno-inline'
DEFS='-DHAVE_CONFIG_H'
DEPFLAGS='-MMD -MP -MT "$*.o $*.E $*.po"'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/bin/grep -E'
EXEEXT=''
EXTRA_CFLAGS=''
EXTRA_LDFLAGS=''
GREP='/bin/grep'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LDFLAGS='-L.   '
LDFLAGS_SHLIB='-shared -fPIC -DPIC'
LFSDEFS='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
LIBOBJS=''
LIBS='-lz -ldl -lm -lpthread '
LTLIBOBJS=''
OASYS_LIBS=' -ltcl8.4 -lxerces-c -ldb-4.5'
OBJEXT='o'
OPTIMIZE=''
OPTIMIZE_WARN=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
PICFLAGS='-fPIC -DPIC'
PROFILE=''
PYTHON='/usr/bin/python'
PYTHON_BUILD_EXT='yes'
RANLIB='ranlib'
RPATH='-Wl,-rpath=. -Wl,-rpath=$(prefix)/lib'
SET_MAKE=''
SHELL='/bin/sh'
SHLIBS='yes'
SHLIB_EXT='so'
SRCDIR='/home/bang/dtn-2.5.0'
STATIC='no'
TARGET='native'
TCL_LDFLAGS=' -ltcl8.4'
XSD_TOOL=''
ac_ct_CC=''
ac_ct_CXX=''
bindir='${exec_prefix}/bin'
build_alias=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host_alias=''
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
subdirs=' oasys'
sysconfdir='/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define HAVE_CONFIG_STATE 1
#define INSTALL_SYSCONFDIR "/etc"
#define INSTALL_LOCALSTATEDIR "/var"
#define OASYS_DEBUG_LOCKING_ENABLED 1
#define HAVE_PTHREAD_SETSPECIFIC 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define STDC_HEADERS 1
#define HAVE_ERR_H 1
#define HAVE_EXECINFO_H 1
#define HAVE_STDINT_H 1
#define HAVE_STRING_H 1
#define HAVE_SYS_CDEFS_H 1
#define HAVE_SYS_TYPES_H 1
#define SIZEOF_OFF_T 8
#define RETSIGTYPE void
#define HAVE_PTRDIFF_T 1
#define HAVE_UINT32_T 1
#define HAVE_U_INT32_T 1
#define HAVE_FPCLASSIFY
#define HAVE_FDATASYNC 1
#define HAVE_GETADDRINFO 1
#define HAVE_GETHOSTBYNAME 1
#define HAVE_GETHOSTBYNAME_R 1
#define HAVE_GETOPT_LONG 1
#define HAVE_INET_ATON 1
#define HAVE_INET_PTON 1
#define HAVE_PTHREAD_YIELD 1
#define HAVE_SCHED_YIELD 1
#define HAVE_SYS_FILE_H 1
#define HAVE_TERMIOS_H 1
#define HAVE_SELECT 1
#define HAVE_STRPBRK 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_SYS_SOCKET_H 1
#define SELECT_TYPE_ARG1 int
#define SELECT_TYPE_ARG234 (fd_set *)
#define SELECT_TYPE_ARG5 (struct timeval *)
#define GOOGLE_PROFILE_ENABLED 0
#define XERCES_C_ENABLED 1
#define TCLREADLINE_ENABLED 0
#define OASYS_ZLIB_ENABLED 1
#define LIBDB_ENABLED 1
#define BERKELEY_DB_VERSION 4.5
#define EXTERNAL_CL_ENABLED 1
#define EXTERNAL_DP_ENABLED 1

configure: exit 0

--Apple-Mail-4--477164429
Content-Type: text/plain;
	charset=US-ASCII;
	format=flowed
Content-Transfer-Encoding: 7bit



--Apple-Mail-4--477164429--


Received: from as4.cineca.com (as4.cineca.com [130.186.84.251]) by maillists.intel-research.net (8.13.8/8.13.7) with ESMTP id m428gBkv016671 for <dtn-users@mailman.dtnrg.org>; Fri, 2 May 2008 01:42:12 -0700
Received: from localhost (localhost.localdomain [127.0.0.1]) by as4.cineca.com (Postfix) with ESMTP id A6BF034A for <dtn-users@mailman.dtnrg.org>; Fri,  2 May 2008 10:52:04 +0200 (CEST)
Received: from unibo.mm.cineca.it (unibo.mm.cineca.it [130.186.10.202]) by as4.cineca.com (Postfix) with ESMTP id 93D9A415 for <dtn-users@mailman.dtnrg.org>; Fri,  2 May 2008 10:51:52 +0200 (CEST)
Received: from localhost (unibo.mm.cineca.it [130.186.10.202]) as user anonymous by unibo.mm.cineca.it (Postfix) with ESMTP id B4724E6B2E2 for <dtn-users@mailman.dtnrg.org>; Fri,  2 May 2008 10:51:51 +0200 (MEST)
Received: from 83.104.156.210 ( [83.104.156.210]) as user piero.cornice@studio.unibo.it@posta.studio.unibo.it by posta.studio.unibo.it with HTTP; Fri,  2 May 2008 10:51:51 +0200
Message-ID: <1209718311.481ad6275ae69@posta.studio.unibo.it>
Date: Fri,  2 May 2008 10:51:51 +0200
From: Piero Cornice <piero.cornice@studio.unibo.it>
To: dtn-users@mailman.dtnrg.org
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
User-Agent: Internet Messaging Program (IMP) 3.1
X-Originating-IP: 83.104.156.210
X-Virus-Scanned: Cineca AppOs 0.99 at as4.cineca.com
Subject: [dtn-users] Bug fixed in DTNPerf
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: dtn-users mailing list <dtn-users.mailman.dtnrg.org>
List-Unsubscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Archive: <http://maillists.intel-research.net/pipermail/dtn-users>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
X-List-Received-Date: Fri, 02 May 2008 08:42:13 -0000

Hi,

   Anuj Agarwal fixed a bug in DTNPerf.

By this bug, when using Data Mode, if the specified size was larger than 50K,
the actual bundle size was always set to 1MB.

Below there is the diff to fix it: just remove the (use_file) and (!use_file)
conditions in dtnperf-client.c:486.

486,495c486,489
<         if (!use_file) {
<             buffer = malloc( (data_qty < bundle_payload) ? data_qty :
bundle_payload );
<             memset(buffer, 0, (data_qty < bundle_payload) ? data_qty :
bundle_payload );
<             pattern(buffer, (data_qty < bundle_payload) ? data_qty :
bundle_payload );
<         }
<         if (use_file) {
<             buffer = malloc(data_qty);
<             memset(buffer, 0, data_qty);
<             pattern(buffer, data_qty);
<         }
---
>         
>         buffer = malloc( (data_qty < bundle_payload) ? data_qty :
bundle_payload );
>         memset(buffer, 0, (data_qty < bundle_payload) ? data_qty :
bundle_payload );
>         pattern(buffer, (data_qty < bundle_payload) ? data_qty : bundle_payload );
496a491
>   

The latest DTNPerf version (2.0beta) is not affected by this bug. You can
download it from https://tatpa.deis.unibo.it/auth/home.php

Feel free to contact me for any problem concerning DTNPerf :)

Piero Cornice

---
piero[dot]cornice[at]gmail[dot]com
http://www[dot]pieroland[dot]net




Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.225]) by maillists.intel-research.net (8.13.8/8.13.7) with ESMTP id m421mI22024641 for <dtn-users@mailman.dtnrg.org>; Thu, 1 May 2008 18:48:19 -0700
Received: by rv-out-0506.google.com with SMTP id b25so593394rvf.49 for <dtn-users@mailman.dtnrg.org>; Thu, 01 May 2008 18:58:11 -0700 (PDT)
Received: by 10.141.74.17 with SMTP id b17mr1126045rvl.113.1209693490962; Thu, 01 May 2008 18:58:10 -0700 (PDT)
Received: by 10.141.185.13 with HTTP; Thu, 1 May 2008 18:58:10 -0700 (PDT)
Message-ID: <ae4314c50805011858x461f6860m69f8471a9c300a8e@mail.gmail.com>
Date: Fri, 2 May 2008 10:58:10 +0900
From: "=?UTF-8?Q?=EB=B0=A9=EC=98=81=EC=B2=A0_(Youngchul_Bang)?=" <youngchul@gmail.com>
To: "Michael Demmer" <demmer@cs.berkeley.edu>
In-Reply-To: <14DC789C-8F8E-48E7-9910-398AC567E790@cs.berkeley.edu>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_5098_159873.1209693490952"
References: <8bd31fd70804231109n7c3eb193y132e6bb669c133f0@mail.gmail.com> <ae4314c50804300623t277cd534m178c93df66fdf8dc@mail.gmail.com> <14DC789C-8F8E-48E7-9910-398AC567E790@cs.berkeley.edu>
Cc: dtn-users mailing list <dtn-users@mailman.dtnrg.org>
Subject: Re: [dtn-users] Error message during make
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: dtn-users mailing list <dtn-users.mailman.dtnrg.org>
List-Unsubscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Archive: <http://maillists.intel-research.net/pipermail/dtn-users>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
X-List-Received-Date: Fri, 02 May 2008 01:48:19 -0000

------=_Part_5098_159873.1209693490952
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: inline

SGkgTWljaGFlbCwKCkhlcmUgaXMgdGhlIG91dHB1dCBvZiBjb25maWd1cmUgYW5kIHRoZSBjb25m
aWcubG9nIGZpbGVzIGFyZSBhdHRhY2hlZC4KClJlZ2FyZHMsCllvdW5nY2h1bAoKCi0tLS0td2l0
aC1nY2MtNC4yLjMtLS0tLQokIC4vY29uZmlndXJlIC1DClsuLi5dCkRUTjIgY29uZmlndXJlIHN0
YXRlOgogIFRBUkdFVCBpczogbmF0aXZlCiAgQ0MgaXM6IGdjYyAodmVyc2lvbiA0LjIuMykKICBD
WFggaXM6IGcrKwoKT3B0aW9uczoKICBDUFBGTEFHUzogLUkkKFNSQ0RJUikvc2VydmxpYiAtSSQo
U1JDRElSKS9vYXN5cyAgLVduby1sb25nLWRvdWJsZQotSS91c3IvaW5jbHVkZS90Y2w4LjQKICBM
REZMQUdTOiAgLUwuCiAgTElCUzogICAgIC1seiAtbGRsIC1sbSAtbHB0aHJlYWQKCkV4dGVybmFs
IHBhY2thZ2VzOgogIE9BU1lTX0NQUEZMQUdTOiAgLVduby1sb25nLWRvdWJsZSAtSS91c3IvaW5j
bHVkZS90Y2w4LjQKICBPQVNZU19MREZMQUdTOgogIE9BU1lTX0xJQlM6ICAgICAgLWx0Y2w4LjQg
LWx4ZXJjZXMtYyAtbGRiLTQuNQoKLS0tLS13aXRoLWdjYy00LjEuMy0tLS0tCiQgQ0M9Z2NjLTQu
MSAuL2NvbmZpZ3VyZSAtQwpbLi4uXQpEVE4yIGNvbmZpZ3VyZSBzdGF0ZToKICBUQVJHRVQgaXM6
IG5hdGl2ZQogIENDIGlzOiBnY2MtNC4xICh2ZXJzaW9uIDQuMS4zKQogIENYWCBpczogZysrLTQu
MQoKT3B0aW9uczoKICBDUFBGTEFHUzogLUkkKFNSQ0RJUikvc2VydmxpYiAtSSQoU1JDRElSKS9v
YXN5cyAgLUkvdXNyL2luY2x1ZGUvdGNsOC40CiAgTERGTEFHUzogIC1MLgogIExJQlM6ICAgICAt
bHogLWxkbCAtbG0gLWxwdGhyZWFkCgpFeHRlcm5hbCBwYWNrYWdlczoKICBPQVNZU19DUFBGTEFH
UzogIC1JL3Vzci9pbmNsdWRlL3RjbDguNAogIE9BU1lTX0xERkxBR1M6CiAgT0FTWVNfTElCUzog
ICAgICAtbHRjbDguNCAtbHhlcmNlcy1jIC1sZGItNC41CgoKT24gRnJpLCBNYXkgMiwgMjAwOCBh
dCAxMjoxNiBBTSwgTWljaGFlbCBEZW1tZXIgPGRlbW1lckBjcy5iZXJrZWxleS5lZHU+IHdyb3Rl
Ogo+IFRoZSBhdXRvY29uZiBzY3JpcHRzIHNob3VsZCBiZSBydW5uaW5nIGEgdGVzdCB0byBkZXRl
cm1pbmUgd2hldGhlciBvciBub3QKPiBnY2MgYWNjZXB0cyB0aGUgLVduby1sb25nLWRvdWJsZSBh
cmd1bWVudCwgc28gYXBwYXJlbnRseSBzb21ldGhpbmcgaW4gdGhhdAo+IHRlc3QgaXNuJ3Qgd29y
a2luZy4KPgo+ICBDYW4geW91IHBvc3QgdGhlIG91dHB1dCBvZiBjb25maWd1cmUgYW5kIHRoZSBn
ZW5lcmF0ZWQgY29uZmlnLmxvZyBmaWxlIHRvCj4gdGhlIGxpc3QsIG9yIG1haWwgdGhlbSB0byBt
ZSBwZXJzb25hbGx5LCBzbyBJIGNhbiB0YWtlIGEgbG9vaz8KPgo+ICAtbQo+Cj4KPgo+ICBPbiBB
cHIgMzAsIDIwMDgsIGF0IDk6MjMgQU0sIOuwqeyYgeyyoCAoWW91bmdjaHVsIEJhbmcpIHdyb3Rl
Ogo+Cj4KPiA+IFdoaWNoIHZlcnNpb24gb2YgZ2NjIGRpZCB5b3UgdXNlPyAgSSd2ZSBjb21waWxl
ZCB0aGUgRFROIDIuNS4wIHdpdGggZ2NjCj4gNC4xLjMuCj4gPgo+ID4gSWYgdXNpbmcgZ2NjIDQu
Mi4zLCBvcHRpb24gIi1Xbm8tbG9uZy1kb3VibGUiIGlzIGFkZGVkIHRvIENQUEZMQUdTIGFuZAo+
ID4gT0FTWVNfQ1BQRkxBR1MsIHdoaWNoIGNhdXNlcyB0aGUgY29tcGlsZSBlcnJvci4KPiA+Cj4g
Pgo+ID4gMjAwOC80LzI0IEV1bkt5dW5nIExlZSA8c3NpbmppNzlAZ21haWwuY29tPjoKPiA+Cj4g
PiA+IENhbiBhbnlib2R5IHNvbHZlIHRoaXMgY29tcGlsZSBwcm9ibGVtPwo+ID4gPiBJIGNhbm5v
dCBpbnN0YWxsIERUTiAyLjUuMCBiZWNhdXNlIG9mIHRoZSBlcnJvciBiZWxvdzoKPiA+ID4KPiA+
ID4gZGVidWcvRmF0YWxTaWduYWxzLmNjOiBJbiBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9uID90YXRp
YyB2b2lkCj4gPiA+IG9hc3lzOjpGYXRhbFNpZ25hbHM6OmhhbmRsZXIoaW50KT8KPiA+ID4gZGVi
dWcvRmF0YWxTaWduYWxzLmNjOjY5OiB3YXJuaW5nOiBkZXByZWNhdGVkIGNvbnZlcnNpb24gZnJv
bSBzdHJpbmcKPiA+ID4gY29uc3RhbnQgdG8gP2hhcio/Cj4gPiA+IGRlYnVnL0ZhdGFsU2lnbmFs
cy5jYzo3Mzogd2FybmluZzogZGVwcmVjYXRlZCBjb252ZXJzaW9uIGZyb20gc3RyaW5nCj4gPiA+
IGNvbnN0YW50IHRvID9oYXIqPwo+ID4gPiBkZWJ1Zy9GYXRhbFNpZ25hbHMuY2M6NzQ6IHdhcm5p
bmc6IGRlcHJlY2F0ZWQgY29udmVyc2lvbiBmcm9tIHN0cmluZwo+ID4gPiBjb25zdGFudCB0byA/
aGFyKj8KPiA+ID4gZGVidWcvRmF0YWxTaWduYWxzLmNjOjc1OiB3YXJuaW5nOiBkZXByZWNhdGVk
IGNvbnZlcnNpb24gZnJvbSBzdHJpbmcKPiA+ID4gY29uc3RhbnQgdG8gP2hhcio/Cj4gPiA+IGRl
YnVnL0ZhdGFsU2lnbmFscy5jYzo3Njogd2FybmluZzogZGVwcmVjYXRlZCBjb252ZXJzaW9uIGZy
b20gc3RyaW5nCj4gPiA+IGNvbnN0YW50IHRvID9oYXIqPwo+ID4gPiBkZWJ1Zy9GYXRhbFNpZ25h
bHMuY2M6Nzc6IHdhcm5pbmc6IGRlcHJlY2F0ZWQgY29udmVyc2lvbiBmcm9tIHN0cmluZwo+ID4g
PiBjb25zdGFudCB0byA/aGFyKj8KPiA+ID4gZGVidWcvRmF0YWxTaWduYWxzLmNjOjc4OiB3YXJu
aW5nOiBkZXByZWNhdGVkIGNvbnZlcnNpb24gZnJvbSBzdHJpbmcKPiA+ID4gY29uc3RhbnQgdG8g
P2hhcio/Cj4gPiA+IEF0IGdsb2JhbCBzY29wZToKPiA+ID4gY2MxcGx1czogZXJyb3I6IHVucmVj
b2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItV25vLWxvbmctZG91YmxlIgo+ID4gPiBtYWtl
WzFdOiAqKiogW2RlYnVnL0ZhdGFsU2lnbmFscy5vXSBFcnJvciAxCj4gPiA+IG1ha2VbMV06IExl
YXZpbmcgZGlyZWN0b3J5IGAvcm9vdC9kdG4tMi41LjAvb2FzeXMnCj4gPiA+IG1ha2U6ICoqKiBb
b2FzeXNdIEVycm9yIDIKPiA+ID4KPiA+ID4gQW55IHN1Z2dlc3Rpb24gb3IgY29tbWVudCB3aWxs
IGJlIHZlcnkgYXBwcmVjaWF0ZWQuIDopCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCj4gPiA+IGR0bi11c2VycyBtYWlsaW5nIGxpc3QKPiA+ID4g
ZHRuLXVzZXJzQG1haWxtYW4uZHRucmcub3JnCj4gPiA+IGh0dHA6Ly9tYWlsbGlzdHMuaW50ZWwt
cmVzZWFyY2gubmV0L21haWxtYW4vbGlzdGluZm8vZHRuLXVzZXJzCj4gPiA+Cj4gPiA+Cj4gPiA+
Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4g
ZHRuLXVzZXJzIG1haWxpbmcgbGlzdAo+ID4gZHRuLXVzZXJzQG1haWxtYW4uZHRucmcub3JnCj4g
PiBodHRwOi8vbWFpbGxpc3RzLmludGVsLXJlc2VhcmNoLm5ldC9tYWlsbWFuL2xpc3RpbmZvL2R0
bi11c2Vycwo+ID4KPgo+Cg==
------=_Part_5098_159873.1209693490952
Content-Type: application/octet-stream; name=config.log-4.2.3
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ffq411720
Content-Disposition: attachment; filename=config.log-4.2.3

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IGNvbmZpZ3VyZSwgd2hpY2ggd2FzCmdlbmVy
YXRlZCBieSBHTlUgQXV0b2NvbmYgMi42MS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwoK
ICAkIC4vY29uZmlndXJlIC1DCgojIyAtLS0tLS0tLS0gIyMKIyMgUGxhdGZvcm0uICMjCiMjIC0t
LS0tLS0tLSAjIwoKaG9zdG5hbWUgPSBkZWIKdW5hbWUgLW0gPSBpNjg2CnVuYW1lIC1yID0gMi42
LjI0LTEtNjg2CnVuYW1lIC1zID0gTGludXgKdW5hbWUgLXYgPSAjMSBTTVAgVGh1IE1hciAyNyAx
Nzo0NTowNCBVVEMgMjAwOAoKL3Vzci9iaW4vdW5hbWUgLXAgPSB1bmtub3duCi9iaW4vdW5hbWUg
LVggICAgID0gdW5rbm93bgoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9IHVua25vd24KL3Vzci9i
aW4vYXJjaCAtayAgICAgICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IHVua25v
d24KL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IHVua25vd24KL2Jpbi9tYWNoaW5lICAgICAgICAg
ICA9IHVua25vd24KL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25vd24KL2Jpbi91bml2ZXJz
ZSAgICAgICAgICA9IHVua25vd24KClBBVEg6IC9ob21lL2JhbmcvbG9jYWwvYmluClBBVEg6IC91
c3IvbG9jYWwvYmluClBBVEg6IC91c3IvYmluClBBVEg6IC9iaW4KUEFUSDogL3Vzci9nYW1lcwpQ
QVRIOiAvb3B0L21zcDQzMC9iaW4KCgojIyAtLS0tLS0tLS0tLSAjIwojIyBDb3JlIHRlc3RzLiAj
IwojIyAtLS0tLS0tLS0tLSAjIwoKY29uZmlndXJlOjE3MzI6IGNyZWF0aW5nIGNhY2hlIGNvbmZp
Zy5jYWNoZQpjb25maWd1cmU6MTg3MjogY2hlY2tpbmcgbG9jYXRpb24gb2Ygc291cmNlIGRpcmVj
dG9yeQpjb25maWd1cmU6MTg3NTogcmVzdWx0OiAiL2hvbWUvYmFuZy9kdG4tMi41LjAiCmNvbmZp
Z3VyZToxODgwOiBjaGVja2luZyBsb2NhdGlvbiBvZiBidWlsZCBkaXJlY3RvcnkKY29uZmlndXJl
OjE4ODI6IHJlc3VsdDogIi9ob21lL2JhbmcvZHRuLTIuNS4wIgpjb25maWd1cmU6MTk4NTogY2hl
Y2tpbmcgZm9yIGEgQyBjb21waWxlciAodHJ5aW5nIGdjYyBnY2MtNC4xIGdjYy00LjAgZ2NjLTMu
NCBnY2MtMy4zKQpjb25maWd1cmU6MTk4NzogcmVzdWx0OiAKY29uZmlndXJlOjIwNDM6IGNoZWNr
aW5nIGZvciBnY2MKY29uZmlndXJlOjIwNTk6IGZvdW5kIC91c3IvYmluL2djYwpjb25maWd1cmU6
MjA3MDogcmVzdWx0OiBnY2MKY29uZmlndXJlOjIxMDY6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVy
IHZlcnNpb24KY29uZmlndXJlOjIxMTM6IGdjYyAtLXZlcnNpb24gPiY1CmdjYyAoR0NDKSA0LjIu
MyAoRGViaWFuIDQuMi4zLTMpCkNvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4KVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29w
eWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8Kd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCgpjb25maWd1
cmU6MjExNjogJD8gPSAwCmNvbmZpZ3VyZToyMTIzOiBnY2MgLXYgPiY1ClVzaW5nIGJ1aWx0LWlu
IHNwZWNzLgpUYXJnZXQ6IGk0ODYtbGludXgtZ251CkNvbmZpZ3VyZWQgd2l0aDogLi4vc3JjL2Nv
bmZpZ3VyZSAtdiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxjKyssZm9ydHJhbixvYmpjLG9iai1jKysg
LS1wcmVmaXg9L3VzciAtLWVuYWJsZS1zaGFyZWQgLS13aXRoLXN5c3RlbS16bGliIC0tbGliZXhl
Y2Rpcj0vdXNyL2xpYiAtLXdpdGhvdXQtaW5jbHVkZWQtZ2V0dGV4dCAtLWVuYWJsZS10aHJlYWRz
PXBvc2l4IC0tZW5hYmxlLW5scyAtLXdpdGgtZ3h4LWluY2x1ZGUtZGlyPS91c3IvaW5jbHVkZS9j
KysvNC4yIC0tcHJvZ3JhbS1zdWZmaXg9LTQuMiAtLWVuYWJsZS1jbG9jYWxlPWdudSAtLWVuYWJs
ZS1saWJzdGRjeHgtZGVidWcgLS1lbmFibGUtb2JqYy1nYyAtLWVuYWJsZS1tcGZyIC0tZGlzYWJs
ZS1saWJtdWRmbGFwIC0tZW5hYmxlLXRhcmdldHM9YWxsIC0tZW5hYmxlLWNoZWNraW5nPXJlbGVh
c2UgLS1idWlsZD1pNDg2LWxpbnV4LWdudSAtLWhvc3Q9aTQ4Ni1saW51eC1nbnUgLS10YXJnZXQ9
aTQ4Ni1saW51eC1nbnUKVGhyZWFkIG1vZGVsOiBwb3NpeApnY2MgdmVyc2lvbiA0LjIuMyAoRGVi
aWFuIDQuMi4zLTMpCmNvbmZpZ3VyZToyMTI2OiAkPyA9IDAKY29uZmlndXJlOjIxMzM6IGdjYyAt
ViA+JjUKZ2NjOiAnLVYnIG9wdGlvbiBtdXN0IGhhdmUgYXJndW1lbnQKY29uZmlndXJlOjIxMzY6
ICQ/ID0gMQpjb25maWd1cmU6MjE1OTogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBv
dXRwdXQgZmlsZSBuYW1lCmNvbmZpZ3VyZToyMTg2OiBnY2MgICAgY29uZnRlc3QuYyAgPiY1CmNv
bmZpZ3VyZToyMTg5OiAkPyA9IDAKY29uZmlndXJlOjIyMjc6IHJlc3VsdDogYS5vdXQKY29uZmln
dXJlOjIyNDQ6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MKY29uZmlndXJl
OjIyNTQ6IC4vYS5vdXQKY29uZmlndXJlOjIyNTc6ICQ/ID0gMApjb25maWd1cmU6MjI3NDogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjIyODE6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNv
bXBpbGluZwpjb25maWd1cmU6MjI4MzogcmVzdWx0OiBubwpjb25maWd1cmU6MjI4NjogY2hlY2tp
bmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcwpjb25maWd1cmU6MjI5MzogZ2NjIC1vIGNvbmZ0
ZXN0ICAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6MjI5NjogJD8gPSAwCmNvbmZpZ3VyZToy
MzIwOiByZXN1bHQ6IApjb25maWd1cmU6MjMyNjogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmpl
Y3QgZmlsZXMKY29uZmlndXJlOjIzNTI6IGdjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy
ZToyMzU1OiAkPyA9IDAKY29uZmlndXJlOjIzNzg6IHJlc3VsdDogbwpjb25maWd1cmU6MjM4Mjog
Y2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyCmNvbmZpZ3Vy
ZToyNDExOiBnY2MgLWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MjQxNzogJD8gPSAwCmNv
bmZpZ3VyZToyNDM0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjQzOTogY2hlY2tpbmcgd2hldGhl
ciBnY2MgYWNjZXB0cyAtZwpjb25maWd1cmU6MjQ2OTogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4m
NQpjb25maWd1cmU6MjQ3NTogJD8gPSAwCmNvbmZpZ3VyZToyNTc0OiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6MjU5MTogY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkKY29u
ZmlndXJlOjI2NjU6IGdjYyAgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MjY3
MTogJD8gPSAwCmNvbmZpZ3VyZToyNjk0OiByZXN1bHQ6IG5vbmUgbmVlZGVkCmNvbmZpZ3VyZToy
NzEzOiBjaGVja2luZyBmb3IgYSBDKysgY29tcGlsZXIgKHRyeWluZyBnKysgZysrLTQuMCBnKyst
NC4wIGcrKy0zLjQgZysrLTMuMykKY29uZmlndXJlOjI3MTU6IHJlc3VsdDogCmNvbmZpZ3VyZToy
Nzc1OiBjaGVja2luZyBmb3IgZysrCmNvbmZpZ3VyZToyNzkxOiBmb3VuZCAvdXNyL2Jpbi9nKysK
Y29uZmlndXJlOjI4MDI6IHJlc3VsdDogZysrCmNvbmZpZ3VyZToyODMzOiBjaGVja2luZyBmb3Ig
QysrIGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjI4NDA6IGcrKyAtLXZlcnNpb24gPiY1Cmcr
KyAoR0NDKSA0LjIuMyAoRGViaWFuIDQuMi4zLTMpCkNvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNv
dXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8Kd2FycmFudHk7IG5vdCBl
dmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuCgpjb25maWd1cmU6Mjg0MzogJD8gPSAwCmNvbmZpZ3VyZToyODUwOiBnKysgLXYgPiY1ClVz
aW5nIGJ1aWx0LWluIHNwZWNzLgpUYXJnZXQ6IGk0ODYtbGludXgtZ251CkNvbmZpZ3VyZWQgd2l0
aDogLi4vc3JjL2NvbmZpZ3VyZSAtdiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxjKyssZm9ydHJhbixv
YmpjLG9iai1jKysgLS1wcmVmaXg9L3VzciAtLWVuYWJsZS1zaGFyZWQgLS13aXRoLXN5c3RlbS16
bGliIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiAtLXdpdGhvdXQtaW5jbHVkZWQtZ2V0dGV4dCAtLWVu
YWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLW5scyAtLXdpdGgtZ3h4LWluY2x1ZGUtZGlyPS91
c3IvaW5jbHVkZS9jKysvNC4yIC0tcHJvZ3JhbS1zdWZmaXg9LTQuMiAtLWVuYWJsZS1jbG9jYWxl
PWdudSAtLWVuYWJsZS1saWJzdGRjeHgtZGVidWcgLS1lbmFibGUtb2JqYy1nYyAtLWVuYWJsZS1t
cGZyIC0tZGlzYWJsZS1saWJtdWRmbGFwIC0tZW5hYmxlLXRhcmdldHM9YWxsIC0tZW5hYmxlLWNo
ZWNraW5nPXJlbGVhc2UgLS1idWlsZD1pNDg2LWxpbnV4LWdudSAtLWhvc3Q9aTQ4Ni1saW51eC1n
bnUgLS10YXJnZXQ9aTQ4Ni1saW51eC1nbnUKVGhyZWFkIG1vZGVsOiBwb3NpeApnY2MgdmVyc2lv
biA0LjIuMyAoRGViaWFuIDQuMi4zLTMpCmNvbmZpZ3VyZToyODUzOiAkPyA9IDAKY29uZmlndXJl
OjI4NjA6IGcrKyAtViA+JjUKZysrOiAnLVYnIG9wdGlvbiBtdXN0IGhhdmUgYXJndW1lbnQKY29u
ZmlndXJlOjI4NjM6ICQ/ID0gMQpjb25maWd1cmU6Mjg2NjogY2hlY2tpbmcgd2hldGhlciB3ZSBh
cmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIKY29uZmlndXJlOjI4OTU6IGcrKyAtYyAgIGNv
bmZ0ZXN0LmNwcCA+JjUKY29uZmlndXJlOjI5MDE6ICQ/ID0gMApjb25maWd1cmU6MjkxODogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjI5MjM6IGNoZWNraW5nIHdoZXRoZXIgZysrIGFjY2VwdHMgLWcK
Y29uZmlndXJlOjI5NTM6IGcrKyAtYyAtZyAgY29uZnRlc3QuY3BwID4mNQpjb25maWd1cmU6Mjk1
OTogJD8gPSAwCmNvbmZpZ3VyZTozMDU4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzA4MjogY2hl
Y2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIHdvcmtzCmNvbmZpZ3VyZTozMTExOiBnKysg
LW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuY3BwICA+JjUKY29uZmlndXJlOjMxMTc6ICQ/
ID0gMApjb25maWd1cmU6MzEyMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMxNTI6IGNoZWNraW5n
IGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTozMTkyOiBnY2MgLUUgIGNv
bmZ0ZXN0LmMKY29uZmlndXJlOjMxOTg6ICQ/ID0gMApjb25maWd1cmU6MzIyOTogZ2NjIC1FICBj
b25mdGVzdC5jCmNvbmZ0ZXN0LmM6MTE6Mjg6IGVycm9yOiBhY19ub25leGlzdGVudC5oOiBObyBz
dWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTozMjM1OiAkPyA9IDEKY29uZmlndXJlOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdF
X05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9C
VUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RB
TExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3Zh
ciIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+
CmNvbmZpZ3VyZTozMjY4OiByZXN1bHQ6IGdjYyAtRQpjb25maWd1cmU6MzI5NzogZ2NjIC1FICBj
b25mdGVzdC5jCmNvbmZpZ3VyZTozMzAzOiAkPyA9IDAKY29uZmlndXJlOjMzMzQ6IGdjYyAtRSAg
Y29uZnRlc3QuYwpjb25mdGVzdC5jOjExOjI4OiBlcnJvcjogYWNfbm9uZXhpc3RlbnQuaDogTm8g
c3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6MzM0MDogJD8gPSAxCmNvbmZpZ3VyZTog
ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FH
RV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
QlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJTlNU
QUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92
YXIiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5o
Pgpjb25maWd1cmU6MzM3ODogY2hlY2tpbmcgZm9yIHRoZSB2ZXJzaW9uIG9mIHRoZSBHTlUgQyBj
b21waWxlcgpjb25maWd1cmU6MzM4OTogcmVzdWx0OiA0LjIuMwpjb25maWd1cmU6MzM5MjogY2hl
Y2tpbmcgZm9yIHRoZSB2ZXJzaW9uIG9mIHRoZSBHTlUgQysrIGNvbXBpbGVyCmNvbmZpZ3VyZToz
NDAzOiByZXN1bHQ6IDQuMi4zCmNvbmZpZ3VyZTozNDg4OiBjaGVja2luZyBmb3IgYXIKY29uZmln
dXJlOjM1MDQ6IGZvdW5kIC91c3IvYmluL2FyCmNvbmZpZ3VyZTozNTE1OiByZXN1bHQ6IGFyCmNv
bmZpZ3VyZTozNTg0OiBjaGVja2luZyBmb3IgcmFubGliCmNvbmZpZ3VyZTozNjAwOiBmb3VuZCAv
dXNyL2Jpbi9yYW5saWIKY29uZmlndXJlOjM2MTE6IHJlc3VsdDogcmFubGliCmNvbmZpZ3VyZToz
NjUzOiBjaGVja2luZyB3aGV0aGVyIHRvIGNvbXBpbGUgd2l0aCBkZWJ1Z2dpbmcKY29uZmlndXJl
OjM2NTU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozNjc0OiBjaGVja2luZyB3aGV0aGVyIHRvIGNv
bXBpbGUgd2l0aCBtZW1vcnkgZGVidWdnaW5nCmNvbmZpZ3VyZTozNjc2OiByZXN1bHQ6IG5vCmNv
bmZpZ3VyZTozNjk1OiBjaGVja2luZyB3aGV0aGVyIHRvIGNvbXBpbGUgd2l0aCBsb2NrIGRlYnVn
Z2luZyAoZGVmYXVsdCB5ZXMpCmNvbmZpZ3VyZTozNjk3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6
MzcxNzogY2hlY2tpbmcgd2hldGhlciB0byBjb21waWxlIHdpdGggb3B0aW1pemF0aW9uCmNvbmZp
Z3VyZTozNzE5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNzQwOiBjaGVja2luZyB3aGV0aGVyIHRv
IGNvbXBpbGUgd2l0aCBwcm9maWxpbmcKY29uZmlndXJlOjM3NDI6IHJlc3VsdDogbm8KY29uZmln
dXJlOjM3NjA6IGNoZWNraW5nIHdoZXRoZXIgdG8gbGluayBzdGF0aWNhbGx5CmNvbmZpZ3VyZToz
NzYyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNzczOiBjaGVja2luZyB3aGV0aGVyIHRvIGxpbmsg
dXNpbmcgc3RhdGljIGV4dGVybmFsIGxpYnJhcmllcwpjb25maWd1cmU6Mzc3NTogcmVzdWx0OiBu
bwpjb25maWd1cmU6Mzc4NzogY2hlY2tpbmcgd2hldGhlciB0byB0cnkgdG8gYnVpbGQgc2hhcmVk
IGxpYnJhcmllcwpjb25maWd1cmU6MzgwMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM4MTM6IGNo
ZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIC1mUElDCmNvbmZpZ3VyZTozODI0
OiBnY2MgLWMgLWZQSUMgLURQSUMgLWcgLU8yIC1XZXJyb3IgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp
Z3VyZTozODMwOiAkPyA9IDAKY29uZmlndXJlOjM4NDQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToz
ODUwOiBjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBjYW4gbGluayBhIGR5bmFtaWMgbGli
cmFyeSB3aXRoIC1zaGFyZWQKY29uZmlndXJlOjM4NjI6IGdjYyAtbyBjb25mdGVzdCAtZlBJQyAt
RFBJQyAtZyAtTzIgLVdlcnJvciAgLXNoYXJlZCAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZToz
ODY4OiAkPyA9IDAKY29uZmlndXJlOjM4ODQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozODkyOiBj
aGVja2luZyBleHRlbnNpb24gZm9yIGR5bmFtaWMgbGlicmFyaWVzCmNvbmZpZ3VyZTozOTA0OiBy
ZXN1bHQ6IHNvCmNvbmZpZ3VyZTozOTA3OiBjaGVja2luZyBpZiB0aGUgY29tcGlsZXIgc3VwcG9y
dHMgLVdsLC0tcnBhdGg9Lgpjb25maWd1cmU6MzkxOTogZ2NjIC1vIGNvbmZ0ZXN0IC1mUElDIC1E
UElDIC1nIC1PMiAtV2Vycm9yICAtc2hhcmVkICAtV2wsLXJwYXRoPS9mb28gY29uZnRlc3QuYyAg
PiY1CmNvbmZpZ3VyZTozOTI1OiAkPyA9IDAKY29uZmlndXJlOjM5NDE6IHJlc3VsdDogeWVzCmNv
bmZpZ3VyZTozOTgwOiBjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1Xbm8tbG9uZy1kb3Vi
bGUgKEFwcGxlIE9TWCBvbmx5KQpjb25maWd1cmU6NDAxMDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1P
MiAgLVduby1sb25nLWRvdWJsZSAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo0MDE2OiAkPyA9
IDAKY29uZmlndXJlOjQwMzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0MDczOiBjaGVja2luZyBm
b3IgZ2F3awpjb25maWd1cmU6NDEwMzogcmVzdWx0OiBubwpjb25maWd1cmU6NDA3MzogY2hlY2tp
bmcgZm9yIG1hd2sKY29uZmlndXJlOjQwODk6IGZvdW5kIC91c3IvYmluL21hd2sKY29uZmlndXJl
OjQxMDA6IHJlc3VsdDogbWF3awpjb25maWd1cmU6NDEyNDogY2hlY2tpbmcgZm9yIGEgQlNELWNv
bXBhdGlibGUgaW5zdGFsbApjb25maWd1cmU6NDE4MDogcmVzdWx0OiAvdXNyL2Jpbi9pbnN0YWxs
IC1jCmNvbmZpZ3VyZTo0MTkxOiBjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpCmNv
bmZpZ3VyZTo0MjEyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDI2NDogY2hlY2tpbmcgZm9yIHJh
bmxpYgpjb25maWd1cmU6NDI5MTogcmVzdWx0OiByYW5saWIKY29uZmlndXJlOjQzMTk6IGNoZWNr
aW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgcHRocmVhZF9jcmVhdGUKY29uZmlndXJlOjQzNjA6
IGdjYyAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgID4mNQovdG1wL2Njb1BlbFF2Lm86IElu
IGZ1bmN0aW9uIGBtYWluJzoKL2hvbWUvYmFuZy9kdG4tMi41LjAvY29uZnRlc3QuYzoyMzogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgcHRocmVhZF9jcmVhdGUnCmNvbGxlY3QyOiBsZCByZXR1cm5l
ZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo0MzY2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg
IiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O
ICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP
UlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lT
Q09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAj
ZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk
IGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1
cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv
dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJu
ICJDIgp8ICNlbmRpZgp8IGNoYXIgcHRocmVhZF9jcmVhdGUgKCk7CnwgaW50CnwgbWFpbiAoKQp8
IHsKfCByZXR1cm4gcHRocmVhZF9jcmVhdGUgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv
bmZpZ3VyZTo0MzYwOiBnY2MgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAg
ID4mNQpjb25maWd1cmU6NDM2NjogJD8gPSAwCmNvbmZpZ3VyZTo0Mzk0OiByZXN1bHQ6IC1scHRo
cmVhZApjb25maWd1cmU6NDQwNjogY2hlY2tpbmcgZm9yIHB0aHJlYWRfeWllbGQKY29uZmlndXJl
OjQ0NjI6IGdjYyAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+JjUKY29u
ZmlndXJlOjQ0Njg6ICQ/ID0gMApjb25maWd1cmU6NDQ4NTogcmVzdWx0OiB5ZXMKY29uZmlndXJl
OjQ1Nzk6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgcHRocmVhZF9zZXRzcGVjaWZp
Ywpjb25maWd1cmU6NDYyMDogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbHB0aHJl
YWQgID4mNQpjb25maWd1cmU6NDYyNjogJD8gPSAwCmNvbmZpZ3VyZTo0NjU0OiByZXN1bHQ6IG5v
bmUgcmVxdWlyZWQKY29uZmlndXJlOjQ2NjY6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5p
bmcgc29ja2V0CmNvbmZpZ3VyZTo0NzA3OiBnY2MgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5j
IC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo0NzEzOiAkPyA9IDAKY29uZmlndXJlOjQ3NDE6IHJl
c3VsdDogbm9uZSByZXF1aXJlZApjb25maWd1cmU6NDc1MzogY2hlY2tpbmcgZm9yIGxpYnJhcnkg
Y29udGFpbmluZyBnZXRob3N0YnluYW1lCmNvbmZpZ3VyZTo0Nzk0OiBnY2MgLW8gY29uZnRlc3Qg
LWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo0ODAwOiAkPyA9IDAKY29u
ZmlndXJlOjQ4Mjg6IHJlc3VsdDogbm9uZSByZXF1aXJlZApjb25maWd1cmU6NDg0MDogY2hlY2tp
bmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyB4ZHJfaW50CmNvbmZpZ3VyZTo0ODgxOiBnY2MgLW8g
Y29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo0ODg3OiAk
PyA9IDAKY29uZmlndXJlOjQ5MTU6IHJlc3VsdDogbm9uZSByZXF1aXJlZApjb25maWd1cmU6NDky
OTogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lCmNvbmZp
Z3VyZTo1MDAzOiByZXN1bHQ6IC9iaW4vZ3JlcApjb25maWd1cmU6NTAwODogY2hlY2tpbmcgZm9y
IGVncmVwCmNvbmZpZ3VyZTo1MDg2OiByZXN1bHQ6IC9iaW4vZ3JlcCAtRQpjb25maWd1cmU6NTEw
NTogY2hlY2tpbmcgZm9yIHN5cy90eXBlcy5oCmNvbmZpZ3VyZTo1MTI2OiBnY2MgLWMgLWcgIGNv
bmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1MTMyOiAkPyA9IDAKY29uZmlndXJlOjUxNDg6IHJlc3Vs
dDogeWVzCmNvbmZpZ3VyZTo1MTA1OiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaApjb25maWd1cmU6
NTEyNjogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTEzMjogJD8gPSAwCmNv
bmZpZ3VyZTo1MTQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEwNTogY2hlY2tpbmcgZm9yIHN0
ZGxpYi5oCmNvbmZpZ3VyZTo1MTI2OiBnY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy
ZTo1MTMyOiAkPyA9IDAKY29uZmlndXJlOjUxNDg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1MTA1
OiBjaGVja2luZyBmb3Igc3RyaW5nLmgKY29uZmlndXJlOjUxMjY6IGdjYyAtYyAtZyAgY29uZnRl
c3QuYyA+JjUKY29uZmlndXJlOjUxMzI6ICQ/ID0gMApjb25maWd1cmU6NTE0ODogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjUxMDU6IGNoZWNraW5nIGZvciBtZW1vcnkuaApjb25maWd1cmU6NTEyNjog
Z2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTEzMjogJD8gPSAwCmNvbmZpZ3Vy
ZTo1MTQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEwNTogY2hlY2tpbmcgZm9yIHN0cmluZ3Mu
aApjb25maWd1cmU6NTEyNjogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTEz
MjogJD8gPSAwCmNvbmZpZ3VyZTo1MTQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEwNTogY2hl
Y2tpbmcgZm9yIGludHR5cGVzLmgKY29uZmlndXJlOjUxMjY6IGdjYyAtYyAtZyAgY29uZnRlc3Qu
YyA+JjUKY29uZmlndXJlOjUxMzI6ICQ/ID0gMApjb25maWd1cmU6NTE0ODogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjUxMDU6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6NTEyNjogZ2Nj
IC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTEzMjogJD8gPSAwCmNvbmZpZ3VyZTo1
MTQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEwNTogY2hlY2tpbmcgZm9yIHVuaXN0ZC5oCmNv
bmZpZ3VyZTo1MTI2OiBnY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1MTMyOiAk
PyA9IDAKY29uZmlndXJlOjUxNDg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1MTYxOiBjaGVja2lu
ZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcwpjb25maWd1cmU6NTE5MTogZ2NjIC1jIC1nICBjb25m
dGVzdC5jID4mNQpjb25maWd1cmU6NTE5NzogJD8gPSAwCmNvbmZpZ3VyZTo1Mjk2OiBnY2MgLW8g
Y29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo1Mjk5OiAk
PyA9IDAKY29uZmlndXJlOjUzMDU6IC4vY29uZnRlc3QKY29uZmlndXJlOjUzMDg6ICQ/ID0gMApj
b25maWd1cmU6NTMyNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzNTY6IGNoZWNraW5nIGVyci5o
IHVzYWJpbGl0eQpjb25maWd1cmU6NTM3MzogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25m
aWd1cmU6NTM3OTogJD8gPSAwCmNvbmZpZ3VyZTo1MzkzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6
NTM5NzogY2hlY2tpbmcgZXJyLmggcHJlc2VuY2UKY29uZmlndXJlOjU0MTI6IGdjYyAtRSAgY29u
ZnRlc3QuYwpjb25maWd1cmU6NTQxODogJD8gPSAwCmNvbmZpZ3VyZTo1NDMyOiByZXN1bHQ6IHll
cwpjb25maWd1cmU6NTQ2MDogY2hlY2tpbmcgZm9yIGVyci5oCmNvbmZpZ3VyZTo1NDY4OiByZXN1
bHQ6IHllcwpjb25maWd1cmU6NTM1NjogY2hlY2tpbmcgZXhlY2luZm8uaCB1c2FiaWxpdHkKY29u
ZmlndXJlOjUzNzM6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjUzNzk6ICQ/
ID0gMApjb25maWd1cmU6NTM5MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzOTc6IGNoZWNraW5n
IGV4ZWNpbmZvLmggcHJlc2VuY2UKY29uZmlndXJlOjU0MTI6IGdjYyAtRSAgY29uZnRlc3QuYwpj
b25maWd1cmU6NTQxODogJD8gPSAwCmNvbmZpZ3VyZTo1NDMyOiByZXN1bHQ6IHllcwpjb25maWd1
cmU6NTQ2MDogY2hlY2tpbmcgZm9yIGV4ZWNpbmZvLmgKY29uZmlndXJlOjU0Njg6IHJlc3VsdDog
eWVzCmNvbmZpZ3VyZTo1MzQ2OiBjaGVja2luZyBmb3Igc3RkaW50LmgKY29uZmlndXJlOjUzNTI6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1MzQ2OiBjaGVja2luZyBmb3Igc3RyaW5nLmgKY29uZmln
dXJlOjUzNTI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1MzU2OiBjaGVja2luZyBzeW5jaC5oIHVz
YWJpbGl0eQpjb25maWd1cmU6NTM3MzogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25mdGVz
dC5jOjYwOjE5OiBlcnJvcjogc3luY2guaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25m
aWd1cmU6NTM3OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv
bmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdF
X1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FH
RV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZF
X0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2Rl
ZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19M
T0NLSU5HX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu
ZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB
VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf
VU5JU1REX0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0gg
MQp8ICNkZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs
dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv
dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz
eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0
ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE
TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm
IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB
VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl
IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg
PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl
IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl
IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8
dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPHN5bmNoLmg+CmNvbmZpZ3VyZTo1MzkzOiBy
ZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1Mzk3OiBjaGVja2luZyBzeW5jaC5oIHByZXNlbmNlCmNvbmZp
Z3VyZTo1NDEyOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoyNzoxOTogZXJyb3I6IHN5
bmNoLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOjU0MTg6ICQ/ID0gMQpj
b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVm
aW5lIFBBQ0tBR0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIiCnwgI2RlZmlu
ZSBQQUNLQUdFX1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIiCnwgI2RlZmlu
ZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUgMQp8ICNk
ZWZpbmUgSU5TVEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFMTF9MT0NBTFNU
QVRFRElSICIvdmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVEIDEKfCAj
ZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRTUEVDSUZJQyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF
U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I
IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg
I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l
IFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfRVhF
Q0lORk9fSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H
X0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3luY2guaD4KY29uZmln
dXJlOjU0MzI6IHJlc3VsdDogbm8KY29uZmlndXJlOjU0NjA6IGNoZWNraW5nIGZvciBzeW5jaC5o
CmNvbmZpZ3VyZTo1NDY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1MzU2OiBjaGVja2luZyBzeXMv
Y2RlZnMuaCB1c2FiaWxpdHkKY29uZmlndXJlOjUzNzM6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+
JjUKY29uZmlndXJlOjUzNzk6ICQ/ID0gMApjb25maWd1cmU6NTM5MzogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjUzOTc6IGNoZWNraW5nIHN5cy9jZGVmcy5oIHByZXNlbmNlCmNvbmZpZ3VyZTo1NDEy
OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjU0MTg6ICQ/ID0gMApjb25maWd1cmU6NTQz
MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU0NjA6IGNoZWNraW5nIGZvciBzeXMvY2RlZnMuaApj
b25maWd1cmU6NTQ2ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzNDY6IGNoZWNraW5nIGZvciBz
eXMvdHlwZXMuaApjb25maWd1cmU6NTM1MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU0ODM6IGNo
ZWNraW5nIGZvciBhbiBBTlNJIEMtY29uZm9ybWluZyBjb25zdApjb25maWd1cmU6NTU1ODogZ2Nj
IC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTU2NDogJD8gPSAwCmNvbmZpZ3VyZTo1
NTc5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTU4OTogY2hlY2tpbmcgZm9yIGlubGluZQpjb25m
aWd1cmU6NTYxNTogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTYyMTogJD8g
PSAwCmNvbmZpZ3VyZTo1NjM5OiByZXN1bHQ6IGlubGluZQpjb25maWd1cmU6NTY1ODogY2hlY2tp
bmcgZm9yIHdvcmtpbmcgdm9sYXRpbGUKY29uZmlndXJlOjU2ODc6IGdjYyAtYyAtZyAgY29uZnRl
c3QuYyA+JjUKY29uZmlndXJlOjU2OTM6ICQ/ID0gMApjb25maWd1cmU6NTcwODogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjU3MTg6IGNoZWNraW5nIGZvciBtb2RlX3QKY29uZmlndXJlOjU3NDg6IGdj
YyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjU3NTQ6ICQ/ID0gMApjb25maWd1cmU6
NTc2OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU3ODE6IGNoZWNraW5nIHZhbHVlIGZvciBfRklM
RV9PRkZTRVRfQklUUyBwcmVwcm9jZXNzb3Igc3ltYm9sCmNvbmZpZ3VyZTo1NzkwOiByZXN1bHQ6
IDY0CmNvbmZpZ3VyZTo1ODAwOiBjaGVja2luZyBmb3Igb2ZmX3QKY29uZmlndXJlOjU4MzA6IGdj
YyAtYyAtZyAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgIGNvbmZ0
ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1ODM2OiAkPyA9IDAKY29uZmlndXJlOjU4NTE6IHJlc3VsdDog
eWVzCmNvbmZpZ3VyZTo1ODU4OiBjaGVja2luZyBzaXplIG9mIG9mZl90CmNvbmZpZ3VyZTo2MTYw
OiBnY2MgLW8gY29uZnRlc3QgLWcgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9C
SVRTPTY0ICAgY29uZnRlc3QuYyAtbHB0aHJlYWQgID4mNQpjb25maWd1cmU6NjE2MzogJD8gPSAw
CmNvbmZpZ3VyZTo2MTY5OiAuL2NvbmZ0ZXN0CmNvbmZpZ3VyZTo2MTcyOiAkPyA9IDAKY29uZmln
dXJlOjYxOTU6IHJlc3VsdDogOApjb25maWd1cmU6NjIwNjogY2hlY2tpbmcgcmV0dXJuIHR5cGUg
b2Ygc2lnbmFsIGhhbmRsZXJzCmNvbmZpZ3VyZTo2MjM0OiBnY2MgLWMgLWcgIGNvbmZ0ZXN0LmMg
PiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzozNjogZXJyb3I6
IHZvaWQgdmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUKY29uZmlndXJlOjYyNDA6
ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAg
Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIi
CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIi
CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RB
VEUgMQp8ICNkZWZpbmUgSU5TVEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFM
TF9MT0NBTFNUQVRFRElSICIvdmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFC
TEVEIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRTUEVDSUZJQyAxCnwgI2RlZmluZSBIQVZF
X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF
X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P
UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK
fCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5l
IEhBVkVfRVhFQ0lORk9fSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB
VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZF
X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIFNJWkVPRl9PRkZfVCA4CnwgLyogZW5kIGNvbmZkZWZz
LmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVkZSA8c2lnbmFsLmg+Cnwg
CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gKihzaWduYWwgKDAsIDApKSAoMCkgPT0gMTsK
fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjYyNTU6IHJlc3VsdDogdm9pZApjb25m
aWd1cmU6NjI2MzogY2hlY2tpbmcgZm9yIHNpemVfdApjb25maWd1cmU6NjI5MzogZ2NjIC1jIC1n
ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjI5OTogJD8gPSAwCmNvbmZpZ3VyZTo2MzE0OiBy
ZXN1bHQ6IHllcwpjb25maWd1cmU6NjMyNjogY2hlY2tpbmcgZm9yIHB0cmRpZmZfdApjb25maWd1
cmU6NjM1NjogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjM2MjogJD8gPSAw
CmNvbmZpZ3VyZTo2Mzc3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjM4ODogY2hlY2tpbmcgZm9y
IHVpbnQzMl90CmNvbmZpZ3VyZTo2NDE4OiBnY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp
Z3VyZTo2NDI0OiAkPyA9IDAKY29uZmlndXJlOjY0Mzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2
NDUwOiBjaGVja2luZyBmb3IgdV9pbnQzMl90CmNvbmZpZ3VyZTo2NDgwOiBnY2MgLWMgLWcgIGNv
bmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2NDg2OiAkPyA9IDAKY29uZmlndXJlOjY1MDE6IHJlc3Vs
dDogeWVzCmNvbmZpZ3VyZTo2NTE2OiBjaGVja2luZyB3aGV0aGVyIG1hdGguaCBkZWZpbmVzIGZw
Y2xhc3NpZnkKY29uZmlndXJlOjY1NTE6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmln
dXJlOjY1NTc6ICQ/ID0gMApjb25maWd1cmU6NjU4MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY1
OTk6IGNoZWNraW5nIGZvciBmZGF0YXN5bmMKY29uZmlndXJlOjY2NTU6IGdjYyAtbyBjb25mdGVz
dCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+JjUKY29uZmlndXJlOjY2NjE6ICQ/ID0gMApj
b25maWd1cmU6NjY3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY1OTk6IGNoZWNraW5nIGZvciBn
ZXRhZGRyaW5mbwpjb25maWd1cmU6NjY1NTogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3Qu
YyAtbHB0aHJlYWQgID4mNQpjb25maWd1cmU6NjY2MTogJD8gPSAwCmNvbmZpZ3VyZTo2Njc5OiBy
ZXN1bHQ6IHllcwpjb25maWd1cmU6NjU5OTogY2hlY2tpbmcgZm9yIGdldGhvc3RieW5hbWUKY29u
ZmlndXJlOjY2NTU6IGdjYyAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+
JjUKY29uZmlndXJlOjY2NjE6ICQ/ID0gMApjb25maWd1cmU6NjY3OTogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjY1OTk6IGNoZWNraW5nIGZvciBnZXRob3N0YnluYW1lX3IKY29uZmlndXJlOjY2NTU6
IGdjYyAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+JjUKY29uZmlndXJl
OjY2NjE6ICQ/ID0gMApjb25maWd1cmU6NjY3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY1OTk6
IGNoZWNraW5nIGZvciBnZXRvcHRfbG9uZwpjb25maWd1cmU6NjY1NTogZ2NjIC1vIGNvbmZ0ZXN0
IC1nICAgY29uZnRlc3QuYyAtbHB0aHJlYWQgID4mNQpjb25maWd1cmU6NjY2MTogJD8gPSAwCmNv
bmZpZ3VyZTo2Njc5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjU5OTogY2hlY2tpbmcgZm9yIGlu
ZXRfYXRvbgpjb25maWd1cmU6NjY1NTogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAt
bHB0aHJlYWQgID4mNQpjb25maWd1cmU6NjY2MTogJD8gPSAwCmNvbmZpZ3VyZTo2Njc5OiByZXN1
bHQ6IHllcwpjb25maWd1cmU6NjU5OTogY2hlY2tpbmcgZm9yIGluZXRfcHRvbgpjb25maWd1cmU6
NjY1NTogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbHB0aHJlYWQgID4mNQpjb25m
aWd1cmU6NjY2MTogJD8gPSAwCmNvbmZpZ3VyZTo2Njc5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6
NjU5OTogY2hlY2tpbmcgZm9yIHB0aHJlYWRfeWllbGQKY29uZmlndXJlOjY2Nzk6IHJlc3VsdDog
eWVzCmNvbmZpZ3VyZTo2NTk5OiBjaGVja2luZyBmb3Igc2NoZWRfeWllbGQKY29uZmlndXJlOjY2
NTU6IGdjYyAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+JjUKY29uZmln
dXJlOjY2NjE6ICQ/ID0gMApjb25maWd1cmU6NjY3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY2
OTk6IGNoZWNraW5nIHdoZXRoZXIgdG8gY29tcGlsZSB3aXRoIG5vbi1hdG9taWMgImF0b21pYyIg
cm91dGluZXMKY29uZmlndXJlOjY3MDE6IHJlc3VsdDogbm8KY29uZmlndXJlOjY3Mjc6IGNoZWNr
aW5nIHdoZXRoZXIgdG8gY29tcGlsZSB3aXRoIGFzc2VtYmx5LWJhc2VkIGF0b21pYyBmdW5jdGlv
bnMKY29uZmlndXJlOjY3Mjk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2NzU4OiBjaGVja2luZyBz
eXMvZmlsZS5oIHVzYWJpbGl0eQpjb25maWd1cmU6Njc3NTogZ2NjIC1jIC1nICBjb25mdGVzdC5j
ID4mNQpjb25maWd1cmU6Njc4MTogJD8gPSAwCmNvbmZpZ3VyZTo2Nzk1OiByZXN1bHQ6IHllcwpj
b25maWd1cmU6Njc5OTogY2hlY2tpbmcgc3lzL2ZpbGUuaCBwcmVzZW5jZQpjb25maWd1cmU6Njgx
NDogZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2ODIwOiAkPyA9IDAKY29uZmlndXJlOjY4
MzQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2ODYyOiBjaGVja2luZyBmb3Igc3lzL2ZpbGUuaApj
b25maWd1cmU6Njg3MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY3NTg6IGNoZWNraW5nIHRlcm1p
b3MuaCB1c2FiaWxpdHkKY29uZmlndXJlOjY3NzU6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUK
Y29uZmlndXJlOjY3ODE6ICQ/ID0gMApjb25maWd1cmU6Njc5NTogcmVzdWx0OiB5ZXMKY29uZmln
dXJlOjY3OTk6IGNoZWNraW5nIHRlcm1pb3MuaCBwcmVzZW5jZQpjb25maWd1cmU6NjgxNDogZ2Nj
IC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2ODIwOiAkPyA9IDAKY29uZmlndXJlOjY4MzQ6IHJl
c3VsdDogeWVzCmNvbmZpZ3VyZTo2ODYyOiBjaGVja2luZyBmb3IgdGVybWlvcy5oCmNvbmZpZ3Vy
ZTo2ODcwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6Njg4ODogY2hlY2tpbmcgZm9yIHNlbGVjdApj
b25maWd1cmU6Njk0NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbHB0aHJlYWQg
ID4mNQpjb25maWd1cmU6Njk1MDogJD8gPSAwCmNvbmZpZ3VyZTo2OTY4OiByZXN1bHQ6IHllcwpj
b25maWd1cmU6Njg4ODogY2hlY2tpbmcgZm9yIHN0cnBicmsKY29uZmlndXJlOjY5NDQ6IGdjYyAt
byBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+JjUKY29uZnRlc3QuYzo3MDog
d2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdzdHJwYnJr
Jwpjb25maWd1cmU6Njk1MDogJD8gPSAwCmNvbmZpZ3VyZTo2OTY4OiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6Njk5NDogY2hlY2tpbmcgc3lzL3NlbGVjdC5oIHVzYWJpbGl0eQpjb25maWd1cmU6NzAx
MTogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NzAxNzogJD8gPSAwCmNvbmZp
Z3VyZTo3MDMxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NzAzNTogY2hlY2tpbmcgc3lzL3NlbGVj
dC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo3MDUwOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJl
OjcwNTY6ICQ/ID0gMApjb25maWd1cmU6NzA3MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjcwOTg6
IGNoZWNraW5nIGZvciBzeXMvc2VsZWN0LmgKY29uZmlndXJlOjcxMDY6IHJlc3VsdDogeWVzCmNv
bmZpZ3VyZTo2OTk0OiBjaGVja2luZyBzeXMvc29ja2V0LmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo3
MDExOiBnY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3MDE3OiAkPyA9IDAKY29u
ZmlndXJlOjcwMzE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3MDM1OiBjaGVja2luZyBzeXMvc29j
a2V0LmggcHJlc2VuY2UKY29uZmlndXJlOjcwNTA6IGdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1
cmU6NzA1NjogJD8gPSAwCmNvbmZpZ3VyZTo3MDcwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NzA5
ODogY2hlY2tpbmcgZm9yIHN5cy9zb2NrZXQuaApjb25maWd1cmU6NzEwNjogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjcxMTk6IGNoZWNraW5nIHR5cGVzIG9mIGFyZ3VtZW50cyBmb3Igc2VsZWN0CmNv
bmZpZ3VyZTo3MTU3OiBnY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3MTYzOiAk
PyA9IDAKY29uZmlndXJlOjcxODQ6IHJlc3VsdDogaW50LGZkX3NldCAqLHN0cnVjdCB0aW1ldmFs
ICoKY29uZmlndXJlOjcyMDc6IGNoZWNraW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdl
bmRpYW4KY29uZmlndXJlOjcyNDA6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl
OjcyNDY6ICQ/ID0gMApjb25maWd1cmU6NzI3ODogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpj
b25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6NjA6IGVycm9yOiAnbm90
JyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKY29uZnRlc3QuYzo2MDog
ZXJyb3I6IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UK
Y29uZnRlc3QuYzo2MDogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQpj
b25mdGVzdC5jOjYwOiBlcnJvcjogZXhwZWN0ZWQgJzsnIGJlZm9yZSAnYmlnJwpjb25maWd1cmU6
NzI4NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz
LmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B
TUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ
TkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJ
R19TVEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJ
TlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5H
X0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5l
IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l
IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF
X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U
VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE
X0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNk
ZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp
bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5l
IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJF
VFNJR1RZUEUgdm9pZAp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9V
SU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xB
U1NJRlkKfCAjZGVmaW5lIEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklO
Rk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9T
VEJZTkFNRV9SIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9J
TkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhS
RUFEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9T
WVNfRklMRV9IIDEKfCAjZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VM
RUNUIDEKfCAjZGVmaW5lIEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1Rf
SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9B
UkcxIGludAp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5l
IFNFTEVDVF9UWVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFsICopCnwgLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+Cnwg
CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWYgQllURV9PUkRFUiAhPSBCSUdfRU5ESUFOCnwgIG5v
dCBiaWcgZW5kaWFuCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy
ZTo3NDI0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo3NTExOiB1cGRhdGluZyBjYWNoZSBjb25maWcu
Y2FjaGUKY29uZmlndXJlOjc1NTU6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgcG93
CmNvbmZpZ3VyZTo3NTk2OiBnY2MgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1scHRocmVh
ZCAgPiY1CmNvbmZ0ZXN0LmM6NjA6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWls
dC1pbiBmdW5jdGlvbiAncG93JwovdG1wL2NjV1ZNUHdZLm86IEluIGZ1bmN0aW9uIGBtYWluJzoK
L2hvbWUvYmFuZy9kdG4tMi41LjAvY29uZnRlc3QuYzo2NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0
byBgcG93Jwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6NzYw
MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgu
ICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg
IiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg
IiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19T
VEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNU
QUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VO
QUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhB
VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB
VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01F
TU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ
RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg
MQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZp
bmUgSEFWRV9FWEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg
SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhB
VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJ
R1RZUEUgdm9pZAp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5U
MzJfVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJ
RlkKfCAjZGVmaW5lIEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8g
MQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZ
TkFNRV9SIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVU
X0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE
X1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNf
RklMRV9IIDEKfCAjZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNU
IDEKfCAjZGVmaW5lIEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAx
CnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcx
IGludAp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNF
TEVDVF9UWVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFsICopCnwgLyogZW5kIGNvbmZkZWZzLmguICAq
Lwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFu
IGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g
dHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlw
ZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJD
Igp8ICNlbmRpZgp8IGNoYXIgcG93ICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHBv
dyAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjc1OTY6IGdjYyAtbyBjb25m
dGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxtICAtbHB0aHJlYWQgID4mNQpjb25mdGVzdC5jOjYwOiB3
YXJuaW5nOiBjb25mbGljdGluZyB0eXBlcyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gJ3BvdycKY29u
ZmlndXJlOjc2MDI6ICQ/ID0gMApjb25maWd1cmU6NzYzMDogcmVzdWx0OiAtbG0KY29uZmlndXJl
Ojc2NDI6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgZGxvcGVuCmNvbmZpZ3VyZTo3
NjgzOiBnY2MgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1sbSAtbHB0aHJlYWQgID4mNQov
dG1wL2NjVVBOOVg1Lm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL2hvbWUvYmFuZy9kdG4tMi41LjAv
Y29uZnRlc3QuYzo2NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZGxvcGVuJwpjb2xsZWN0Mjog
bGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6NzY4OTogJD8gPSAxCmNvbmZpZ3Vy
ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFD
S0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tB
R0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tB
R0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJ
TlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIg
Ii92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8ICNkZWZpbmUg
SEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8
ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l
IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI
QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgU1REQ19I
RUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9FWEVDSU5GT19I
IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg
I2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8
ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAp8ICNkZWZp
bmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwgI2RlZmluZSBI
QVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVmaW5lIEhBVkVf
RkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9H
RVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEKfCAjZGVmaW5l
IEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUg
SEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEKfCAjZGVmaW5l
IEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEKfCAjZGVmaW5l
IEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVf
U1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNkZWZpbmUgU0VM
RUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzUgKHN0
cnVjdCB0aW1ldmFsICopCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRl
IGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBj
aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAg
IGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBs
eS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIg
ZGxvcGVuICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGRsb3BlbiAoKTsKfCAgIDsK
fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjc2ODM6IGdjYyAtbyBjb25mdGVzdCAtZyAgIGNv
bmZ0ZXN0LmMgLWxkbCAgLWxtIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo3Njg5OiAkPyA9IDAK
Y29uZmlndXJlOjc3MTc6IHJlc3VsdDogLWxkbApjb25maWd1cmU6Nzc1NTogY2hlY2tpbmcgZm9y
IHRjbCBpbnN0YWxsYXRpb24gKHZlcnNpb24gOC40KQpjb25maWd1cmU6Nzc2NjogY2hlY2tpbmcg
Zm9yIHRjbC5oICh2ZXJzaW9uIDguNCkgaW4gL3Vzci9pbmNsdWRlCmNvbmZpZ3VyZTo3Nzk4OiBn
Y2MgLW8gY29uZnRlc3QgLWcgIC1JL3Vzci9pbmNsdWRlICBjb25mdGVzdC5jIC1sZGwgLWxtIC1s
cHRocmVhZCAgPiY1CmNvbmZ0ZXN0LmM6NTQ6MzM6IGVycm9yOiB0Y2wuaDogTm8gc3VjaCBmaWxl
IG9yIGRpcmVjdG9yeQpjb25mdGVzdC5jOjU3OjE4OiBlcnJvcjogI2Vycm9yICJpbmNvcnJlY3Qg
dmVyc2lvbiIKY29uZmlndXJlOjc4MDQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt
IHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiIgp8ICNk
ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiIKfCAj
ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8
ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUgMQp8ICNkZWZpbmUgSU5TVEFMTF9TWVNDT05GRElS
ICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFMTF9MT0NBTFNUQVRFRElSICIvdmFyIgp8ICNkZWZpbmUg
T0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRT
UEVDSUZJQyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H
X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx
CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg
I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmlu
ZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfRVhFQ0lORk9fSCAxCnwgI2RlZmluZSBIQVZF
X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf
Q0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIFNJWkVPRl9P
RkZfVCA4CnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9U
IDEKfCAjZGVmaW5lIEhBVkVfVUlOVDMyX1QgMQp8ICNkZWZpbmUgSEFWRV9VX0lOVDMyX1QgMQp8
ICNkZWZpbmUgSEFWRV9GUENMQVNTSUZZCnwgI2RlZmluZSBIQVZFX0ZEQVRBU1lOQyAxCnwgI2Rl
ZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRSAxCnwg
I2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUVfUiAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9MT05H
IDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9QVE9OIDEK
fCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NDSEVEX1lJRUxE
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0ZJTEVfSCAxCnwgI2RlZmluZSBIQVZFX1RFUk1JT1NfSCAx
CnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX1NUUlBCUksgMQp8ICNkZWZp
bmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNk
ZWZpbmUgU0VMRUNUX1RZUEVfQVJHMSBpbnQKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzIzNCAo
ZmRfc2V0ICopCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkc1IChzdHJ1Y3QgdGltZXZhbCAqKQp8
IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAgICAgICAgICAgICAgICAgI2luY2x1ZGUgPHRj
bC5oPgp8IAp8ICAgICAgICAgICAgICAgICAjaWYgKFRDTF9NQUpPUl9WRVJTSU9OICE9IDgpIHx8
ICAgICAgICAgICAgICAgICAgICAgKFRDTF9NSU5PUl9WRVJTSU9OICE9IDQpCnwgICAgICAgICAg
ICAgICAgICNlcnJvciAiaW5jb3JyZWN0IHZlcnNpb24iCnwgICAgICAgICAgICAgICAgICNlbmRp
Zgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv
bmZpZ3VyZTo3ODE5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo3NzY2OiBjaGVja2luZyBmb3IgdGNs
LmggKHZlcnNpb24gOC40KSBpbiAvdXNyL2xvY2FsL2luY2x1ZGUKY29uZmlndXJlOjc3OTg6IGdj
YyAtbyBjb25mdGVzdCAtZyAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIGNvbmZ0ZXN0LmMgLWxkbCAt
bG0gLWxwdGhyZWFkICA+JjUKY29uZnRlc3QuYzo1NDozMzogZXJyb3I6IHRjbC5oOiBObyBzdWNo
IGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZ0ZXN0LmM6NTc6MTg6IGVycm9yOiAjZXJyb3IgImluY29y
cmVjdCB2ZXJzaW9uIgpjb25maWd1cmU6NzgwNDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy
b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIi
CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi
Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU
ICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NP
TkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2Rl
ZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE
X1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW
RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T
VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H
U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I
IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAj
ZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKfCAjZGVmaW5l
IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF
X1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgU0la
RU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAp8ICNkZWZpbmUgSEFWRV9QVFJE
SUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UMzJf
VCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVmaW5lIEhBVkVfRkRBVEFTWU5DIDEK
fCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1F
IDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BU
X0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX1BU
T04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURf
WUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEKfCAjZGVmaW5lIEhBVkVfVEVSTUlP
U19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfU1RSUEJSSyAxCnwg
I2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAx
CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJH
MjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFs
ICopCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgICAgICAgICAgICAgICAjaW5jbHVk
ZSA8dGNsLmg+CnwgCnwgICAgICAgICAgICAgICAgICNpZiAoVENMX01BSk9SX1ZFUlNJT04gIT0g
OCkgfHwgICAgICAgICAgICAgICAgICAgICAoVENMX01JTk9SX1ZFUlNJT04gIT0gNCkKfCAgICAg
ICAgICAgICAgICAgI2Vycm9yICJpbmNvcnJlY3QgdmVyc2lvbiIKfCAgICAgICAgICAgICAgICAg
I2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8
IH0KY29uZmlndXJlOjc4MTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjc3NjY6IGNoZWNraW5nIGZv
ciB0Y2wuaCAodmVyc2lvbiA4LjQpIGluIC91c3IvaW5jbHVkZS90Y2w4LjQKY29uZmlndXJlOjc3
OTg6IGdjYyAtbyBjb25mdGVzdCAtZyAgLUkvdXNyL2luY2x1ZGUvdGNsOC40ICBjb25mdGVzdC5j
IC1sZGwgLWxtIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo3ODA0OiAkPyA9IDAKY29uZmlndXJl
Ojc4MTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3ODM5OiBjaGVja2luZyBmb3IgdGNsIGxpYnJh
cnkgaW4gL3Vzci9saWI6IC1sdGNsOC40IC1sZGwgLWxtIC1scHRocmVhZCAKY29uZmlndXJlOjc4
NzI6IGdjYyAtbyBjb25mdGVzdCAtZyAgLUkvdXNyL2luY2x1ZGUvdGNsOC40ICAtTC91c3IvbGli
IGNvbmZ0ZXN0LmMgLWx0Y2w4LjQgLWxkbCAtbG0gLWxwdGhyZWFkICA+JjUKY29uZmlndXJlOjc4
Nzg6ICQ/ID0gMApjb25maWd1cmU6Nzg4NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjc5NjE6IGNo
ZWNraW5nIHdoZXRoZXIgdG8gY29tcGlsZSB3aXRoIGdvb2dsZSBwcm9maWxpbmcKY29uZmlndXJl
Ojc5NjM6IHJlc3VsdDogbm8KY29uZmlndXJlOjgyMTk6IGNoZWNraW5nIHdoZXRoZXIgYmx1ZXRv
b3RoIHN1cHBvcnQgc2hvdWxkIGJlIGVuYWJsZWQKY29uZmlndXJlOjgyMjc6IHJlc3VsdDogdHJ5
CmNvbmZpZ3VyZTo4MjMwOiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIGJhc3dhcApj
b25maWd1cmU6ODI3MTogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbGRsIC1sbSAt
bHB0aHJlYWQgID4mNQovdG1wL2NjZ2lhckNLLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL2hvbWUv
YmFuZy9kdG4tMi41LjAvY29uZnRlc3QuYzo2NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgYmFz
d2FwJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6ODI3Nzog
JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAq
Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIK
fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIK
fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFU
RSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxM
X0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJM
RUQgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf
U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S
WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf
SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8
ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUg
SEFWRV9FWEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZ
UEUgdm9pZAp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJf
VCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkK
fCAjZGVmaW5lIEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8
ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFN
RV9SIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FU
T04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJ
RUxEIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklM
RV9IIDEKfCAjZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEK
fCAjZGVmaW5lIEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwg
I2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGlu
dAp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVD
VF9UWVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFsICopCnwgI2RlZmluZSBHT09HTEVfUFJPRklMRV9F
TkFCTEVEIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdD
QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVj
YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRp
biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K
fCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBiYXN3YXAg
KCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gYmFzd2FwICgpOwp8ICAgOwp8ICAgcmV0
dXJuIDA7CnwgfQpjb25maWd1cmU6ODI3MTogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3Qu
YyAtbGJsdWV0b290aCAgLWxkbCAtbG0gLWxwdGhyZWFkICA+JjUKL3Vzci9iaW4vbGQ6IGNhbm5v
dCBmaW5kIC1sYmx1ZXRvb3RoCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNv
bmZpZ3VyZTo4Mjc3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog
Y29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tB
R0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNL
QUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhB
VkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAj
ZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVH
X0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8
ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm
aW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUg
SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW
RV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJf
SCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx
CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8
ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNk
ZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmlu
ZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhB
VkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9H
RVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFW
RV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmlu
ZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBI
QVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmlu
ZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUg
SEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVD
VF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8
ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdP
T0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBP
dmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAg
ICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBH
Q0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp
bGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYK
fCBjaGFyIGJhc3dhcCAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBiYXN3YXAgKCk7
CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4MzA1OiByZXN1bHQ6IG5vCmNvbmZp
Z3VyZTo4MzI5OiBjaGVja2luZyBibHVldG9vdGgvYmx1ZXRvb3RoLmggdXNhYmlsaXR5CmNvbmZp
Z3VyZTo4MzQ2OiBnY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6ODc6MzM6IGVy
cm9yOiBibHVldG9vdGgvYmx1ZXRvb3RoLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29u
ZmlndXJlOjgzNTI6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj
b25mZGVmcy5oLiAgKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FH
RV9UQVJOQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tB
R0VfU1RSSU5HICIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFW
RV9DT05GSUdfU1RBVEUgMQp8ICNkZWZpbmUgSU5TVEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNk
ZWZpbmUgSU5TVEFMTF9MT0NBTFNUQVRFRElSICIvdmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdf
TE9DS0lOR19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRTUEVDSUZJQyAxCnwg
I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg
I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp
bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI
QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF
X1VOSVNURF9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0VSUl9I
IDEKfCAjZGVmaW5lIEhBVkVfRVhFQ0lORk9fSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK
fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwg
I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIFNJWkVPRl9PRkZfVCA4CnwgI2Rl
ZmluZSBSRVRTSUdUWVBFIHZvaWQKfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDEKfCAjZGVmaW5l
IEhBVkVfVUlOVDMyX1QgMQp8ICNkZWZpbmUgSEFWRV9VX0lOVDMyX1QgMQp8ICNkZWZpbmUgSEFW
RV9GUENMQVNTSUZZCnwgI2RlZmluZSBIQVZFX0ZEQVRBU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dF
VEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRSAxCnwgI2RlZmluZSBIQVZF
X0dFVEhPU1RCWU5BTUVfUiAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9MT05HIDEKfCAjZGVmaW5l
IEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9QVE9OIDEKfCAjZGVmaW5lIEhB
VkVfUFRIUkVBRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NDSEVEX1lJRUxEIDEKfCAjZGVmaW5l
IEhBVkVfU1lTX0ZJTEVfSCAxCnwgI2RlZmluZSBIQVZFX1RFUk1JT1NfSCAxCnwgI2RlZmluZSBI
QVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX1NUUlBCUksgMQp8ICNkZWZpbmUgSEFWRV9TWVNf
U0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgU0VMRUNU
X1RZUEVfQVJHMSBpbnQKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzIzNCAoZmRfc2V0ICopCnwg
I2RlZmluZSBTRUxFQ1RfVFlQRV9BUkc1IChzdHJ1Y3QgdGltZXZhbCAqKQp8ICNkZWZpbmUgR09P
R0xFX1BST0ZJTEVfRU5BQkxFRCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl
IDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlw
ZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMv
c3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxp
Yi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElC
X0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhB
VkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVf
TUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxz
dHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0
cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxp
bnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxz
dGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5p
c3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPGJsdWV0b290aC9ibHVldG9vdGguaD4KY29uZmln
dXJlOjgzNjY6IHJlc3VsdDogbm8KY29uZmlndXJlOjgzNzA6IGNoZWNraW5nIGJsdWV0b290aC9i
bHVldG9vdGguaCBwcmVzZW5jZQpjb25maWd1cmU6ODM4NTogZ2NjIC1FICBjb25mdGVzdC5jCmNv
bmZ0ZXN0LmM6NTQ6MzM6IGVycm9yOiBibHVldG9vdGgvYmx1ZXRvb3RoLmg6IE5vIHN1Y2ggZmls
ZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOjgzOTE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw
cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi
Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g
IiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S
VCAiIgp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUgMQp8ICNkZWZpbmUgSU5TVEFMTF9TWVND
T05GRElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFMTF9MT0NBTFNUQVRFRElSICIvdmFyIgp8ICNk
ZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB
RF9TRVRTUEVDSUZJQyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhB
VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf
U1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO
R1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf
SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwg
I2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfRVhFQ0lORk9fSCAxCnwgI2RlZmlu
ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFW
RV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIFNJ
WkVPRl9PRkZfVCA4CnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKfCAjZGVmaW5lIEhBVkVfUFRS
RElGRl9UIDEKfCAjZGVmaW5lIEhBVkVfVUlOVDMyX1QgMQp8ICNkZWZpbmUgSEFWRV9VX0lOVDMy
X1QgMQp8ICNkZWZpbmUgSEFWRV9GUENMQVNTSUZZCnwgI2RlZmluZSBIQVZFX0ZEQVRBU1lOQyAx
CnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFN
RSAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUVfUiAxCnwgI2RlZmluZSBIQVZFX0dFVE9Q
VF9MT05HIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9Q
VE9OIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NDSEVE
X1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0ZJTEVfSCAxCnwgI2RlZmluZSBIQVZFX1RFUk1J
T1NfSCAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX1NUUlBCUksgMQp8
ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0gg
MQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMSBpbnQKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FS
RzIzNCAoZmRfc2V0ICopCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkc1IChzdHJ1Y3QgdGltZXZh
bCAqKQp8ICNkZWZpbmUgR09PR0xFX1BST0ZJTEVfRU5BQkxFRCAwCnwgLyogZW5kIGNvbmZkZWZz
LmguICAqLwp8ICNpbmNsdWRlIDxibHVldG9vdGgvYmx1ZXRvb3RoLmg+CmNvbmZpZ3VyZTo4NDA1
OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4NDMzOiBjaGVja2luZyBmb3IgYmx1ZXRvb3RoL2JsdWV0
b290aC5oCmNvbmZpZ3VyZTo4NDQxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4NDU1OiBjaGVja2lu
ZyB3aGV0aGVyIGJsdWV0b290aCBzdXBwb3J0IHdhcyBmb3VuZApjb25maWd1cmU6ODQ2ODogcmVz
dWx0OiBubwpjb25maWd1cmU6ODQ5MjogY2hlY2tpbmcgd2hldGhlciBib25qb3VyIHN1cHBvcnQg
c2hvdWxkIGJlIGVuYWJsZWQKY29uZmlndXJlOjg1MDA6IHJlc3VsdDogdHJ5CmNvbmZpZ3VyZTo4
NTAzOiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIEROU1NlcnZpY2VSZWdpc3Rlcgpj
b25maWd1cmU6ODU0NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbGRsIC1sbSAt
bHB0aHJlYWQgID4mNQovdG1wL2NjRTQ2MGwwLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL2hvbWUv
YmFuZy9kdG4tMi41LjAvY29uZnRlc3QuYzo2NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRE5T
U2VydmljZVJlZ2lzdGVyJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25m
aWd1cmU6ODU1MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv
bmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdF
X1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FH
RV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZF
X0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2Rl
ZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19M
T0NLSU5HX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu
ZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB
VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf
VU5JU1REX0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0gg
MQp8ICNkZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVm
aW5lIFJFVFNJR1RZUEUgdm9pZAp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUg
SEFWRV9VSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZF
X0ZQQ0xBU1NJRlkKfCAjZGVmaW5lIEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VU
QUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVf
R0VUSE9TVEJZTkFNRV9SIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUg
SEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFW
RV9QVEhSRUFEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUg
SEFWRV9TWVNfRklMRV9IIDEKfCAjZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhB
VkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19T
RUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1Rf
VFlQRV9BUkcxIGludAp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAj
ZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFsICopCnwgI2RlZmluZSBHT09H
TEVfUFJPRklMRV9FTkFCTEVEIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3Zl
cnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAg
VXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0ND
CnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs
IGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwg
Y2hhciBETlNTZXJ2aWNlUmVnaXN0ZXIgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4g
RE5TU2VydmljZVJlZ2lzdGVyICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6
ODU0NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbGRuc19zZCAgLWxkbCAtbG0g
LWxwdGhyZWFkICA+JjUKL3Vzci9iaW4vbGQ6IGNhbm5vdCBmaW5kIC1sZG5zX3NkCmNvbGxlY3Qy
OiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo4NTUwOiAkPyA9IDEKY29uZmln
dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQ
QUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFD
S0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFD
S0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5l
IElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJ
UiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmlu
ZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx
CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg
I2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZp
bmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l
IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERD
X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZP
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK
fCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx
CnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2Rl
ZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5l
IEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFW
RV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZF
X0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZp
bmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmlu
ZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZp
bmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZp
bmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFW
RV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBT
RUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAo
c3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8IC8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy
b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo
dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0
cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2Nw
bHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIEROU1NlcnZpY2VSZWdpc3RlciAo
KTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBETlNTZXJ2aWNlUmVnaXN0ZXIgKCk7Cnwg
ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4NTc4OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy
ZTo4NjAxOiBjaGVja2luZyBkbnNfc2QuaCB1c2FiaWxpdHkKY29uZmlndXJlOjg2MTg6IGdjYyAt
YyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzo4NzoyMDogZXJyb3I6IGRuc19zZC5oOiBO
byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTo4NjI0OiAkPyA9IDEKY29uZmlndXJl
OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNL
QUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FH
RV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FH
RV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElO
U1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAi
L3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBI
QVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwg
I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUg
SEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhB
VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hF
QURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwg
I2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmlu
ZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhB
VkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9G
REFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dF
VEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUg
SEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBI
QVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUg
SEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUg
SEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9T
VFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxF
Q1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3Ry
dWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8IC8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNf
VFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf
U1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1RE
Q19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8
ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cnwg
IyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBT
VERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5
Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB
VkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB
VkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYg
SEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB
VkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxk
bnNfc2QuaD4KY29uZmlndXJlOjg2Mzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2NDI6IGNoZWNr
aW5nIGRuc19zZC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo4NjU3OiBnY2MgLUUgIGNvbmZ0ZXN0LmMK
Y29uZnRlc3QuYzo1NDoyMDogZXJyb3I6IGRuc19zZC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0
b3J5CmNvbmZpZ3VyZTo4NjYzOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmlu
ZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVm
aW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0
YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lT
X0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lG
SUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK
fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp
bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW
RV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ
TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZT
X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1Qg
OAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwg
I2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVm
aW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUg
SEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZp
bmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwg
I2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2Rl
ZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwg
I2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhB
VkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5l
IFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3Nl
dCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVm
aW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj
aW5jbHVkZSA8ZG5zX3NkLmg+CmNvbmZpZ3VyZTo4Njc3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4
NzA1OiBjaGVja2luZyBmb3IgZG5zX3NkLmgKY29uZmlndXJlOjg3MTM6IHJlc3VsdDogbm8KY29u
ZmlndXJlOjg3Mjc6IGNoZWNraW5nIHdoZXRoZXIgYm9uam91ciBzdXBwb3J0IHdhcyBmb3VuZApj
b25maWd1cmU6ODczOTogcmVzdWx0OiBubwpjb25maWd1cmU6ODc1OTogY2hlY2tpbmcgd2hldGhl
ciBleHBhdCBzdXBwb3J0IHNob3VsZCBiZSBlbmFibGVkCmNvbmZpZ3VyZTo4NzY5OiByZXN1bHQ6
IHRyeQpjb25maWd1cmU6ODgxNTogY2hlY2tpbmcgZm9yIGV4cGF0IGluIC91c3IvaW5jbHVkZSwg
L3Vzci9saWIsIC1sZXhwYXQKY29uZmlndXJlOjg4NDM6IGdjYyAtbyBjb25mdGVzdCAtZyAgLUkv
dXNyL2luY2x1ZGUgIC1ML3Vzci9saWIgY29uZnRlc3QuYyAtbGV4cGF0IC1sZGwgLWxtIC1scHRo
cmVhZCAgPiY1CmNvbmZ0ZXN0LmM6NTU6MzU6IGVycm9yOiBleHBhdC5oOiBObyBzdWNoIGZpbGUg
b3IgZGlyZWN0b3J5CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzo2
MTogZXJyb3I6ICdYTUxfUGFyc2VyJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j
dGlvbikKY29uZnRlc3QuYzo2MTogZXJyb3I6IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBp
cyByZXBvcnRlZCBvbmx5IG9uY2UKY29uZnRlc3QuYzo2MTogZXJyb3I6IGZvciBlYWNoIGZ1bmN0
aW9uIGl0IGFwcGVhcnMgaW4uKQpjb25mdGVzdC5jOjYxOiBlcnJvcjogZXhwZWN0ZWQgJzsnIGJl
Zm9yZSAncGFyc2VyJwpjb25mdGVzdC5jOjYyOiBlcnJvcjogJ3BhcnNlcicgdW5kZWNsYXJlZCAo
Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNvbmZ0ZXN0LmM6NjI6IGVycm9yOiAnTlVMTCcg
dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNvbmZpZ3VyZTo4ODQ5OiAk
PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICov
CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8
ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8
ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRF
IDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExf
TE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxF
RCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9T
WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T
VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZ
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I
IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg
I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBI
QVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF
X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9T
WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQ
RSB2b2lkCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9U
IDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8
ICNkZWZpbmUgSEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwg
I2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1F
X1IgMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRP
TiAxCnwgI2RlZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlF
TEQgMQp8ICNkZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxF
X0ggMQp8ICNkZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8
ICNkZWZpbmUgSEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50
CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNU
X1RZUEVfQVJHNSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxFX0VO
QUJMRUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAgICAgICAgICAgICAgICAgI2lu
Y2x1ZGUgPGV4cGF0Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAJCVhNTF9QYXJzZXIg
cGFyc2VyOwp8IAkJcGFyc2VyID0gWE1MX1BhcnNlckNyZWF0ZShOVUxMKTsKfCAKfCAgIDsKfCAg
IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg4Njg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg4MTU6
IGNoZWNraW5nIGZvciBleHBhdCBpbiAvdXNyL2luY2x1ZGUsIC91c3IvbG9jYWwvbGliLCAtbGV4
cGF0CmNvbmZpZ3VyZTo4ODQzOiBnY2MgLW8gY29uZnRlc3QgLWcgIC1JL3Vzci9pbmNsdWRlICAt
TC91c3IvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgLWxleHBhdCAtbGRsIC1sbSAtbHB0aHJlYWQgID4m
NQpjb25mdGVzdC5jOjU1OjM1OiBlcnJvcjogZXhwYXQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVj
dG9yeQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6NjE6IGVycm9y
OiAnWE1MX1BhcnNlcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNv
bmZ0ZXN0LmM6NjE6IGVycm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0
ZWQgb25seSBvbmNlCmNvbmZ0ZXN0LmM6NjE6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlvbiBpdCBh
cHBlYXJzIGluLikKY29uZnRlc3QuYzo2MTogZXJyb3I6IGV4cGVjdGVkICc7JyBiZWZvcmUgJ3Bh
cnNlcicKY29uZnRlc3QuYzo2MjogZXJyb3I6ICdwYXJzZXInIHVuZGVjbGFyZWQgKGZpcnN0IHVz
ZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25mdGVzdC5jOjYyOiBlcnJvcjogJ05VTEwnIHVuZGVjbGFy
ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25maWd1cmU6ODg0OTogJD8gPSAxCmNv
bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZp
bmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5l
IFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2Rl
ZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RB
VEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8ICNk
ZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT
X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg
U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9FWEVD
SU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf
SCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT
X0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAp8
ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwgI2Rl
ZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVmaW5l
IEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUg
SEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEKfCAj
ZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNk
ZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEKfCAj
ZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEKfCAj
ZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5l
IEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBI
QVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNkZWZp
bmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FS
RzUgKHN0cnVjdCB0aW1ldmFsICopCnwgI2RlZmluZSBHT09HTEVfUFJPRklMRV9FTkFCTEVEIDAK
fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxl
eHBhdC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgCQlYTUxfUGFyc2VyIHBhcnNlcjsK
fCAJCXBhcnNlciA9IFhNTF9QYXJzZXJDcmVhdGUoTlVMTCk7CnwgCnwgICA7CnwgICByZXR1cm4g
MDsKfCB9CmNvbmZpZ3VyZTo4ODY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4ODE1OiBjaGVja2lu
ZyBmb3IgZXhwYXQgaW4gL3Vzci9sb2NhbC9pbmNsdWRlLCAvdXNyL2xpYiwgLWxleHBhdApjb25m
aWd1cmU6ODg0MzogZ2NjIC1vIGNvbmZ0ZXN0IC1nICAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLUwv
dXNyL2xpYiBjb25mdGVzdC5jIC1sZXhwYXQgLWxkbCAtbG0gLWxwdGhyZWFkICA+JjUKY29uZnRl
c3QuYzo1NTozNTogZXJyb3I6IGV4cGF0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29u
ZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjYxOiBlcnJvcjogJ1hNTF9Q
YXJzZXInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25mdGVzdC5j
OjYxOiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkg
b25jZQpjb25mdGVzdC5jOjYxOiBlcnJvcjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBp
bi4pCmNvbmZ0ZXN0LmM6NjE6IGVycm9yOiBleHBlY3RlZCAnOycgYmVmb3JlICdwYXJzZXInCmNv
bmZ0ZXN0LmM6NjI6IGVycm9yOiAncGFyc2VyJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp
cyBmdW5jdGlvbikKY29uZnRlc3QuYzo2MjogZXJyb3I6ICdOVUxMJyB1bmRlY2xhcmVkIChmaXJz
dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKY29uZmlndXJlOjg4NDk6ICQ/ID0gMQpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVmaW5lIFBBQ0tB
R0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIiCnwgI2RlZmluZSBQQUNLQUdF
X1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIiCnwgI2RlZmluZSBQQUNLQUdF
X0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUgMQp8ICNkZWZpbmUgSU5T
VEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFMTF9MT0NBTFNUQVRFRElSICIv
dmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVEIDEKfCAjZGVmaW5lIEhB
VkVfUFRIUkVBRF9TRVRTUEVDSUZJQyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm
aW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBI
QVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIFNURENfSEVB
REVSUyAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfRVhFQ0lORk9fSCAx
CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAj
ZGVmaW5lIFNJWkVPRl9PRkZfVCA4CnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKfCAjZGVmaW5l
IEhBVkVfUFRSRElGRl9UIDEKfCAjZGVmaW5lIEhBVkVfVUlOVDMyX1QgMQp8ICNkZWZpbmUgSEFW
RV9VX0lOVDMyX1QgMQp8ICNkZWZpbmUgSEFWRV9GUENMQVNTSUZZCnwgI2RlZmluZSBIQVZFX0ZE
QVRBU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VU
SE9TVEJZTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUVfUiAxCnwgI2RlZmluZSBI
QVZFX0dFVE9QVF9MT05HIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhB
VkVfSU5FVF9QVE9OIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9ZSUVMRCAxCnwgI2RlZmluZSBI
QVZFX1NDSEVEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0ZJTEVfSCAxCnwgI2RlZmluZSBI
QVZFX1RFUk1JT1NfSCAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX1NU
UlBCUksgMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf
U09DS0VUX0ggMQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMSBpbnQKfCAjZGVmaW5lIFNFTEVD
VF9UWVBFX0FSRzIzNCAoZmRfc2V0ICopCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkc1IChzdHJ1
Y3QgdGltZXZhbCAqKQp8ICNkZWZpbmUgR09PR0xFX1BST0ZJTEVfRU5BQkxFRCAwCnwgLyogZW5k
IGNvbmZkZWZzLmguICAqLwp8IAp8ICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8ZXhwYXQuaD4K
fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8IAkJWE1MX1BhcnNlciBwYXJzZXI7CnwgCQlwYXJz
ZXIgPSBYTUxfUGFyc2VyQ3JlYXRlKE5VTEwpOwp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj
b25maWd1cmU6ODg2ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODgxNTogY2hlY2tpbmcgZm9yIGV4
cGF0IGluIC91c3IvbG9jYWwvaW5jbHVkZSwgL3Vzci9sb2NhbC9saWIsIC1sZXhwYXQKY29uZmln
dXJlOjg4NDM6IGdjYyAtbyBjb25mdGVzdCAtZyAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1ML3Vz
ci9sb2NhbC9saWIgY29uZnRlc3QuYyAtbGV4cGF0IC1sZGwgLWxtIC1scHRocmVhZCAgPiY1CmNv
bmZ0ZXN0LmM6NTU6MzU6IGVycm9yOiBleHBhdC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5
CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzo2MTogZXJyb3I6ICdY
TUxfUGFyc2VyJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKY29uZnRl
c3QuYzo2MTogZXJyb3I6IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBv
bmx5IG9uY2UKY29uZnRlc3QuYzo2MTogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVh
cnMgaW4uKQpjb25mdGVzdC5jOjYxOiBlcnJvcjogZXhwZWN0ZWQgJzsnIGJlZm9yZSAncGFyc2Vy
Jwpjb25mdGVzdC5jOjYyOiBlcnJvcjogJ3BhcnNlcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu
IHRoaXMgZnVuY3Rpb24pCmNvbmZ0ZXN0LmM6NjI6IGVycm9yOiAnTlVMTCcgdW5kZWNsYXJlZCAo
Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNvbmZpZ3VyZTo4ODQ5OiAkPyA9IDEKY29uZmln
dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQ
QUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFD
S0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFD
S0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5l
IElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJ
UiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmlu
ZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx
CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg
I2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZp
bmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l
IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERD
X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZP
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK
fCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx
CnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2Rl
ZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5l
IEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFW
RV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZF
X0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZp
bmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmlu
ZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZp
bmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZp
bmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFW
RV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBT
RUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAo
c3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8IC8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAgICAgICAgICAgICAgICAgI2luY2x1ZGUgPGV4cGF0
Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAJCVhNTF9QYXJzZXIgcGFyc2VyOwp8IAkJ
cGFyc2VyID0gWE1MX1BhcnNlckNyZWF0ZShOVUxMKTsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8
IH0KY29uZmlndXJlOjg4Njg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg4ODU6IGNoZWNraW5nIHdo
ZXRoZXIgbGliZXhwYXQgd2FzIGZvdW5kCmNvbmZpZ3VyZTo4ODkxOiByZXN1bHQ6IG5vCmNvbmZp
Z3VyZTo4OTM0OiBjaGVja2luZyB3aGV0aGVyIHhlcmNlcy1jIHN1cHBvcnQgc2hvdWxkIGJlIGVu
YWJsZWQKY29uZmlndXJlOjg5NDY6IHJlc3VsdDogdHJ5CmNvbmZpZ3VyZTo4OTU5OiBjaGVja2lu
ZyB3aGV0aGVyIHhlcmNlcy1jICg+PSB2Mi42LjApIHdhcyBmb3VuZApjb25maWd1cmU6OTAxNjog
ZysrIC1vIGNvbmZ0ZXN0IC1nIC1JL3Vzci9pbmNsdWRlIC1ML3Vzci9saWIgY29uZnRlc3QuY3Bw
IC1seGVyY2VzLWMgPiY1CmNvbmZpZ3VyZTo5MDIyOiAkPyA9IDAKY29uZmlndXJlOjkwNTk6IHJl
c3VsdDogeWVzCmNvbmZpZ3VyZTo5MDg2OiBjaGVja2luZyB3aGV0aGVyIHRjbHJlYWRsaW5lIHN1
cHBvcnQgc2hvdWxkIGJlIGVuYWJsZWQKY29uZmlndXJlOjkwOTc6IHJlc3VsdDogdHJ5CmNvbmZp
Z3VyZTo5MTA3OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIHJlYWRsaW5lCmNvbmZp
Z3VyZTo5MTQ4OiBnKysgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jcHAgLWxkbCAtbG0gLWxw
dGhyZWFkICA+JjUKL3RtcC9jY3lrSHQ4Ri5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci9ob21lL2Jh
bmcvZHRuLTIuNS4wL2NvbmZ0ZXN0LmNwcDo2NjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgcmVh
ZGxpbmUnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo5MTU0
OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4g
ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi
Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi
Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NU
QVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RB
TExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5B
QkxFRCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFW
RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN
T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF
U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx
CnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmlu
ZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI
QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFW
RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lH
VFlQRSB2b2lkCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQz
Ml9UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lG
WQp8ICNkZWZpbmUgSEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAx
CnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllO
QU1FX1IgMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRf
QVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURf
WUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19G
SUxFX0ggMQp8ICNkZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1Qg
MQp8ICNkZWZpbmUgSEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEK
fCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEg
aW50CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VM
RUNUX1RZUEVfQVJHNSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxF
X0VOQUJMRUQgMAp8ICNkZWZpbmUgWEVSQ0VTX0NfRU5BQkxFRCAxCnwgLyogZW5kIGNvbmZkZWZz
LmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2
b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy
ZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy
b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0
ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgcmVhZGxpbmUgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsK
fCByZXR1cm4gcmVhZGxpbmUgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo5
MTQ4OiBnKysgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jcHAgLWxyZWFkbGluZSAgLWxkbCAt
bG0gLWxwdGhyZWFkICA+JjUKL3Vzci9iaW4vbGQ6IGNhbm5vdCBmaW5kIC1scmVhZGxpbmUKY29s
bGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjkxNTQ6ICQ/ID0gMQpj
b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVm
aW5lIFBBQ0tBR0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIiCnwgI2RlZmlu
ZSBQQUNLQUdFX1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIiCnwgI2RlZmlu
ZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUgMQp8ICNk
ZWZpbmUgSU5TVEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFMTF9MT0NBTFNU
QVRFRElSICIvdmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVEIDEKfCAj
ZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRTUEVDSUZJQyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF
U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I
IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg
I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l
IFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfRVhF
Q0lORk9fSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H
X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF
U19IIDEKfCAjZGVmaW5lIFNJWkVPRl9PRkZfVCA4CnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQK
fCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDEKfCAjZGVmaW5lIEhBVkVfVUlOVDMyX1QgMQp8ICNk
ZWZpbmUgSEFWRV9VX0lOVDMyX1QgMQp8ICNkZWZpbmUgSEFWRV9GUENMQVNTSUZZCnwgI2RlZmlu
ZSBIQVZFX0ZEQVRBU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5l
IEhBVkVfR0VUSE9TVEJZTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUVfUiAxCnwg
I2RlZmluZSBIQVZFX0dFVE9QVF9MT05HIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAj
ZGVmaW5lIEhBVkVfSU5FVF9QVE9OIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9ZSUVMRCAxCnwg
I2RlZmluZSBIQVZFX1NDSEVEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0ZJTEVfSCAxCnwg
I2RlZmluZSBIQVZFX1RFUk1JT1NfSCAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmlu
ZSBIQVZFX1NUUlBCUksgMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUg
SEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMSBpbnQKfCAjZGVm
aW5lIFNFTEVDVF9UWVBFX0FSRzIzNCAoZmRfc2V0ICopCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9B
Ukc1IChzdHJ1Y3QgdGltZXZhbCAqKQp8ICNkZWZpbmUgR09PR0xFX1BST0ZJTEVfRU5BQkxFRCAw
CnwgI2RlZmluZSBYRVJDRVNfQ19FTkFCTEVEIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg
CnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy
b3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBl
IG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdv
dWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwg
I2VuZGlmCnwgY2hhciByZWFkbGluZSAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBy
ZWFkbGluZSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjkxODI6IHJlc3Vs
dDogbm8KY29uZmlndXJlOjkyNjY6IGNoZWNraW5nIHdoZXRoZXIgdGNscmVhZGxpbmUgc3VwcG9y
dCB3YXMgZm91bmQKY29uZmlndXJlOjkyNjg6IHJlc3VsdDogbm8KY29uZmlndXJlOjkyOTE6IGNo
ZWNraW5nIHdoZXRoZXIgemxpYiBzdXBwb3J0IHNob3VsZCBiZSBlbmFibGVkCmNvbmZpZ3VyZTo5
Mjk5OiByZXN1bHQ6IHRyeQpjb25maWd1cmU6OTMwMjogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29u
dGFpbmluZyBjb21wcmVzcwpjb25maWd1cmU6OTM0MzogZysrIC1vIGNvbmZ0ZXN0IC1nICAgY29u
ZnRlc3QuY3BwIC1sZGwgLWxtIC1scHRocmVhZCAgPiY1Ci90bXAvY2N5ZGZONlEubzogSW4gZnVu
Y3Rpb24gYG1haW4nOgovaG9tZS9iYW5nL2R0bi0yLjUuMC9jb25mdGVzdC5jcHA6Njc6IHVuZGVm
aW5lZCByZWZlcmVuY2UgdG8gYGNvbXByZXNzJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0
IHN0YXR1cwpjb25maWd1cmU6OTM0OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g
d2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2Rl
ZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNk
ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwg
I2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIg
Ii9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBP
QVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQ
RUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf
U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf
SCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK
fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj
ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l
IEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVf
U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19D
REVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgU0laRU9GX09G
Rl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1Qg
MQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwg
I2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVmaW5lIEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVm
aW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FIDEKfCAj
ZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcg
MQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8
ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQg
MQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEKfCAjZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEK
fCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfU1RSUEJSSyAxCnwgI2RlZmlu
ZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2Rl
ZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMjM0IChm
ZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFsICopCnwg
I2RlZmluZSBHT09HTEVfUFJPRklMRV9FTkFCTEVEIDAKfCAjZGVmaW5lIFhFUkNFU19DX0VOQUJM
RUQgMQp8ICNkZWZpbmUgVENMUkVBRExJTkVfRU5BQkxFRCAwCnwgLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk
IGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1
cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv
dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJu
ICJDIgp8ICNlbmRpZgp8IGNoYXIgY29tcHJlc3MgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBy
ZXR1cm4gY29tcHJlc3MgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo5MzQz
OiBnKysgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jcHAgLWx6ICAtbGRsIC1sbSAtbHB0aHJl
YWQgID4mNQpjb25maWd1cmU6OTM0OTogJD8gPSAwCmNvbmZpZ3VyZTo5Mzc3OiByZXN1bHQ6IC1s
egpjb25maWd1cmU6OTM4NjogY2hlY2tpbmcgd2hldGhlciB6bGliIHN1cHBvcnQgd2FzIGZvdW5k
CmNvbmZpZ3VyZTo5Mzk1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTQ2MjogY2hlY2tpbmcgZm9y
IHhzZApjb25maWd1cmU6OTQ5MjogcmVzdWx0OiBubwpjb25maWd1cmU6OTUxNjogQ2Fubm90IGZp
bmQgYSB3b3JraW5nIHhzZCB0b29sCmNvbmZpZ3VyZTo5NTE4OiAgICBZb3Ugd2lsbCBub3QgYmUg
YWJsZSB0byByZWdlbmVyYXRlIFhNTCBzY2hlbWEgYmluZGluZ3MKY29uZmlndXJlOjk1MjA6ICAg
IGlmIHlvdSBtYWtlIGNoYW5nZXMgdG8gdGhlIC54c2QgZmlsZQpjb25maWd1cmU6OTUyMjogICAg
VXNlIC0td2l0aC14c2QtdG9vbD0obmFtZSkgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgdGhp
cyB0b29sCmNvbmZpZ3VyZTo5NjAyOiBjaGVja2luZyBmb3IgQmVya2VsZXkgREIgaGVhZGVyICh2
ZXJzaW9uIDQuNSkgaW4gL3Vzci9pbmNsdWRlCmNvbmZpZ3VyZTo5NjMzOiBnKysgLW8gY29uZnRl
c3QgLWcgIC1JL3Vzci9pbmNsdWRlICBjb25mdGVzdC5jcHAgLWx6IC1sZGwgLWxtIC1scHRocmVh
ZCAgPiY1CmNvbmZpZ3VyZTo5NjM5OiAkPyA9IDAKY29uZmlndXJlOjk2NDY6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZTo5NjczOiBjaGVja2luZyBmb3IgQmVya2VsZXkgREIgbGlicmFyeSBpbiAvdXNy
L2xpYiwgLWxkYi00LjUKY29uZmlndXJlOjk3MDE6IGcrKyAtbyBjb25mdGVzdCAtZyAgLUkvdXNy
L2luY2x1ZGUgIC1ML3Vzci9saWIgY29uZnRlc3QuY3BwIC1sZGItNC41IC1seiAtbGRsIC1sbSAt
bHB0aHJlYWQgID4mNQpjb25maWd1cmU6OTcwNzogJD8gPSAwCmNvbmZpZ3VyZTo5NzE0OiByZXN1
bHQ6IHllcwpjb25maWd1cmU6MTA2MjY6IGNoZWNraW5nIGZvciAtLXdpdGgtcHl0aG9uCmNvbmZp
Z3VyZToxMDY0MjogcmVzdWx0OiBubwpjb25maWd1cmU6MTA2NTM6IGNoZWNraW5nIGZvciBweXRo
b24KY29uZmlndXJlOjEwNjcxOiBmb3VuZCAvdXNyL2Jpbi9weXRob24KY29uZmlndXJlOjEwNjg0
OiByZXN1bHQ6IC91c3IvYmluL3B5dGhvbgpjb25maWd1cmU6MTA3MDA6IGNoZWNraW5nIHdoZXRo
ZXIgcHl0aG9uIGRpc3R1dGlscyBjYW4gYnVpbGQgYW4gZXh0ZW5zaW9uIG1vZHVsZQpjb25maWd1
cmU6MTA3Mjg6IHJ1bm5pbmcgL3Vzci9iaW4vcHl0aG9uIGNvbmZ0ZXN0LnB5IGJ1aWxkIC1iIGNv
bmZ0ZXN0X2J1aWxkLi4uIG91dHB1dDoKcnVubmluZyBidWlsZApydW5uaW5nIGJ1aWxkX2V4dApi
dWlsZGluZyAnX2NvbmZ0ZXN0JyBleHRlbnNpb24KY3JlYXRpbmcgY29uZnRlc3RfYnVpbGQKY3Jl
YXRpbmcgY29uZnRlc3RfYnVpbGQvdGVtcC5saW51eC1pNjg2LTIuNApnY2MgLXB0aHJlYWQgLWZu
by1zdHJpY3QtYWxpYXNpbmcgLUROREVCVUcgLWcgLU8yIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlw
ZXMgLWZQSUMgLUkvdXNyL2luY2x1ZGUvcHl0aG9uMi40IC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRl
c3RfYnVpbGQvdGVtcC5saW51eC1pNjg2LTIuNC9jb25mdGVzdC5vCmNvbmZ0ZXN0LmM6IEluIGZ1
bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzo3OiB3YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5k
IG9mIG5vbi12b2lkIGZ1bmN0aW9uCmNyZWF0aW5nIGNvbmZ0ZXN0X2J1aWxkL2xpYi5saW51eC1p
Njg2LTIuNApnY2MgLXB0aHJlYWQgLXNoYXJlZCBjb25mdGVzdF9idWlsZC90ZW1wLmxpbnV4LWk2
ODYtMi40L2NvbmZ0ZXN0Lm8gLW8gY29uZnRlc3RfYnVpbGQvbGliLmxpbnV4LWk2ODYtMi40L19j
b25mdGVzdC5zbwpjb25maWd1cmU6MTA3MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDgyNTog
Y2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3Nvcgpjb25maWd1cmU6MTA4NjE6
IGcrKyAtRSAgY29uZnRlc3QuY3BwCmNvbmZpZ3VyZToxMDg2NzogJD8gPSAwCmNvbmZpZ3VyZTox
MDg5ODogZysrIC1FICBjb25mdGVzdC5jcHAKY29uZnRlc3QuY3BwOjYxOjI4OiBlcnJvcjogYWNf
bm9uZXhpc3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6MTA5MDQ6
ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAg
Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIi
CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIi
CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RB
VEUgMQp8ICNkZWZpbmUgSU5TVEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFM
TF9MT0NBTFNUQVRFRElSICIvdmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFC
TEVEIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRTUEVDSUZJQyAxCnwgI2RlZmluZSBIQVZF
X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF
X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P
UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK
fCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5l
IEhBVkVfRVhFQ0lORk9fSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB
VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZF
X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIFNJWkVPRl9PRkZfVCA4CnwgI2RlZmluZSBSRVRTSUdU
WVBFIHZvaWQKfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDEKfCAjZGVmaW5lIEhBVkVfVUlOVDMy
X1QgMQp8ICNkZWZpbmUgSEFWRV9VX0lOVDMyX1QgMQp8ICNkZWZpbmUgSEFWRV9GUENMQVNTSUZZ
CnwgI2RlZmluZSBIQVZFX0ZEQVRBU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEK
fCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5B
TUVfUiAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9MT05HIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9B
VE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9QVE9OIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9Z
SUVMRCAxCnwgI2RlZmluZSBIQVZFX1NDSEVEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0ZJ
TEVfSCAxCnwgI2RlZmluZSBIQVZFX1RFUk1JT1NfSCAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAx
CnwgI2RlZmluZSBIQVZFX1NUUlBCUksgMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8
ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMSBp
bnQKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzIzNCAoZmRfc2V0ICopCnwgI2RlZmluZSBTRUxF
Q1RfVFlQRV9BUkc1IChzdHJ1Y3QgdGltZXZhbCAqKQp8ICNkZWZpbmUgR09PR0xFX1BST0ZJTEVf
RU5BQkxFRCAwCnwgI2RlZmluZSBYRVJDRVNfQ19FTkFCTEVEIDEKfCAjZGVmaW5lIFRDTFJFQURM
SU5FX0VOQUJMRUQgMAp8ICNkZWZpbmUgT0FTWVNfWkxJQl9FTkFCTEVEIDEKfCAjZGVmaW5lIExJ
QkRCX0VOQUJMRUQgMQp8ICNkZWZpbmUgQkVSS0VMRVlfREJfVkVSU0lPTiA0LjUKfCAjZGVmaW5l
IEVYVEVSTkFMX0NMX0VOQUJMRUQgMQp8ICNkZWZpbmUgRVhURVJOQUxfRFBfRU5BQkxFRCAxCnwg
LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgpjb25m
aWd1cmU6MTA5Mzc6IHJlc3VsdDogZysrIC1FCmNvbmZpZ3VyZToxMDk2NjogZysrIC1FICBjb25m
dGVzdC5jcHAKY29uZmlndXJlOjEwOTcyOiAkPyA9IDAKY29uZmlndXJlOjExMDAzOiBnKysgLUUg
IGNvbmZ0ZXN0LmNwcApjb25mdGVzdC5jcHA6NjE6Mjg6IGVycm9yOiBhY19ub25leGlzdGVudC5o
OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZToxMTAwOTogJD8gPSAxCmNvbmZp
Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZpbmUg
UEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBB
Q0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBB
Q0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2RlZmlu
ZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVE
SVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8ICNkZWZp
bmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg
MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVm
aW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgU1RE
Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9FWEVDSU5G
T19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx
CnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg
MQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAp8ICNk
ZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwgI2RlZmlu
ZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVmaW5lIEhB
VkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFW
RV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEKfCAjZGVm
aW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZp
bmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEKfCAjZGVm
aW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEKfCAjZGVm
aW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhB
VkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZF
X1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNkZWZpbmUg
U0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzUg
KHN0cnVjdCB0aW1ldmFsICopCnwgI2RlZmluZSBHT09HTEVfUFJPRklMRV9FTkFCTEVEIDAKfCAj
ZGVmaW5lIFhFUkNFU19DX0VOQUJMRUQgMQp8ICNkZWZpbmUgVENMUkVBRExJTkVfRU5BQkxFRCAw
CnwgI2RlZmluZSBPQVNZU19aTElCX0VOQUJMRUQgMQp8ICNkZWZpbmUgTElCREJfRU5BQkxFRCAx
CnwgI2RlZmluZSBCRVJLRUxFWV9EQl9WRVJTSU9OIDQuNQp8ICNkZWZpbmUgRVhURVJOQUxfQ0xf
RU5BQkxFRCAxCnwgI2RlZmluZSBFWFRFUk5BTF9EUF9FTkFCTEVEIDEKfCAvKiBlbmQgY29uZmRl
ZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZToxMTUwMTog
dXBkYXRpbmcgY2FjaGUgY29uZmlnLmNhY2hlCmNvbmZpZ3VyZToxMTUzNzogY3JlYXRpbmcgLi9j
b25maWcuc3RhdHVzCgojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFJ1bm5pbmcgY29u
ZmlnLnN0YXR1cy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKVGhpcyBmaWxlIHdh
cyBleHRlbmRlZCBieSBjb25maWcuc3RhdHVzLCB3aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBB
dXRvY29uZiAyLjYxLiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCgogIENPTkZJR19GSUxF
UyAgICA9IAogIENPTkZJR19IRUFERVJTICA9IAogIENPTkZJR19MSU5LUyAgICA9IAogIENPTkZJ
R19DT01NQU5EUyA9IAogICQgLi9jb25maWcuc3RhdHVzIAoKb24gZGViCgpjb25maWcuc3RhdHVz
OjYzNDogY3JlYXRpbmcgUnVsZXMubWFrZQpjb25maWcuc3RhdHVzOjYzNDogY3JlYXRpbmcgY29u
ZmlnLmgKY29uZmlndXJlOjEyNjM4OiA9PT0gY29uZmlndXJpbmcgaW4gb2FzeXMgKC9ob21lL2Jh
bmcvZHRuLTIuNS4wL29hc3lzKQpjb25maWd1cmU6MTI3NDE6IHJ1bm5pbmcgL2Jpbi9zaCAuL2Nv
bmZpZ3VyZSAnLS1wcmVmaXg9L3VzcicgIC0tY2FjaGUtZmlsZT0uLi9jb25maWcuY2FjaGUgLS1z
cmNkaXI9LgoKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBDYWNoZSB2YXJpYWJsZXMuICMjCiMj
IC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFjX2N2X2NfYmlnZW5kaWFuPW5vCmFjX2N2X2NfY29tcGls
ZXJfZ251PXllcwphY19jdl9jX2NvbnN0PXllcwphY19jdl9jX2lubGluZT1pbmxpbmUKYWNfY3Zf
Y192b2xhdGlsZT15ZXMKYWNfY3ZfY3h4X2NvbXBpbGVyX2dudT15ZXMKYWNfY3ZfZW52X0NDQ19z
ZXQ9CmFjX2N2X2Vudl9DQ0NfdmFsdWU9CmFjX2N2X2Vudl9DQ19zZXQ9CmFjX2N2X2Vudl9DQ192
YWx1ZT0KYWNfY3ZfZW52X0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9CmFjX2N2
X2Vudl9DUFBGTEFHU19zZXQ9CmFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0NQ
UF9zZXQ9CmFjX2N2X2Vudl9DUFBfdmFsdWU9CmFjX2N2X2Vudl9DWFhDUFBfc2V0PQphY19jdl9l
bnZfQ1hYQ1BQX3ZhbHVlPQphY19jdl9lbnZfQ1hYRkxBR1Nfc2V0PQphY19jdl9lbnZfQ1hYRkxB
R1NfdmFsdWU9CmFjX2N2X2Vudl9DWFhfc2V0PQphY19jdl9lbnZfQ1hYX3ZhbHVlPQphY19jdl9l
bnZfTERGTEFHU19zZXQ9CmFjX2N2X2Vudl9MREZMQUdTX3ZhbHVlPQphY19jdl9lbnZfTElCU19z
ZXQ9CmFjX2N2X2Vudl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfUFlUSE9OX3NldD0KYWNfY3ZfZW52
X1BZVEhPTl92YWx1ZT0KYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3NldD0KYWNfY3ZfZW52X2J1aWxk
X2FsaWFzX3ZhbHVlPQphY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9CmFjX2N2X2Vudl9ob3N0X2Fs
aWFzX3ZhbHVlPQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0KYWNfY3ZfZW52X3RhcmdldF9h
bGlhc192YWx1ZT0KYWNfY3ZfZnVuY19mZGF0YXN5bmM9eWVzCmFjX2N2X2Z1bmNfZ2V0YWRkcmlu
Zm89eWVzCmFjX2N2X2Z1bmNfZ2V0aG9zdGJ5bmFtZT15ZXMKYWNfY3ZfZnVuY19nZXRob3N0Ynlu
YW1lX3I9eWVzCmFjX2N2X2Z1bmNfZ2V0b3B0X2xvbmc9eWVzCmFjX2N2X2Z1bmNfaW5ldF9hdG9u
PXllcwphY19jdl9mdW5jX2luZXRfcHRvbj15ZXMKYWNfY3ZfZnVuY19wdGhyZWFkX3lpZWxkPXll
cwphY19jdl9mdW5jX3NjaGVkX3lpZWxkPXllcwphY19jdl9mdW5jX3NlbGVjdD15ZXMKYWNfY3Zf
ZnVuY19zZWxlY3RfYXJncz0naW50LGZkX3NldCAqLHN0cnVjdCB0aW1ldmFsIConCmFjX2N2X2Z1
bmNfc3RycGJyaz15ZXMKYWNfY3ZfaGVhZGVyX2JsdWV0b290aF9ibHVldG9vdGhfaD1ubwphY19j
dl9oZWFkZXJfZG5zX3NkX2g9bm8KYWNfY3ZfaGVhZGVyX2Vycl9oPXllcwphY19jdl9oZWFkZXJf
ZXhlY2luZm9faD15ZXMKYWNfY3ZfaGVhZGVyX2ludHR5cGVzX2g9eWVzCmFjX2N2X2hlYWRlcl9t
ZW1vcnlfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCmFjX2N2X2hlYWRlcl9zdGRpbnRfaD15
ZXMKYWNfY3ZfaGVhZGVyX3N0ZGxpYl9oPXllcwphY19jdl9oZWFkZXJfc3RyaW5nX2g9eWVzCmFj
X2N2X2hlYWRlcl9zdHJpbmdzX2g9eWVzCmFjX2N2X2hlYWRlcl9zeW5jaF9oPW5vCmFjX2N2X2hl
YWRlcl9zeXNfY2RlZnNfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19maWxlX2g9eWVzCmFjX2N2X2hl
YWRlcl9zeXNfc2VsZWN0X2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfc29ja2V0X2g9eWVzCmFjX2N2
X2hlYWRlcl9zeXNfc3RhdF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3R5cGVzX2g9eWVzCmFjX2N2
X2hlYWRlcl90ZXJtaW9zX2g9eWVzCmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKYWNfY3Zfb2Jq
ZXh0PW8KYWNfY3ZfcGF0aF9FR1JFUD0nL2Jpbi9ncmVwIC1FJwphY19jdl9wYXRoX0dSRVA9L2Jp
bi9ncmVwCmFjX2N2X3BhdGhfUFlUSE9OPS91c3IvYmluL3B5dGhvbgphY19jdl9wYXRoX2luc3Rh
bGw9Jy91c3IvYmluL2luc3RhbGwgLWMnCmFjX2N2X3Byb2dfQVdLPW1hd2sKYWNfY3ZfcHJvZ19D
UFA9J2djYyAtRScKYWNfY3ZfcHJvZ19DWFhDUFA9J2crKyAtRScKYWNfY3ZfcHJvZ19hY19jdF9B
Uj1hcgphY19jdl9wcm9nX2FjX2N0X0NDPWdjYwphY19jdl9wcm9nX2FjX2N0X0NYWD1nKysKYWNf
Y3ZfcHJvZ19hY19jdF9SQU5MSUI9cmFubGliCmFjX2N2X3Byb2dfY2NfYzg5PQphY19jdl9wcm9n
X2NjX2c9eWVzCmFjX2N2X3Byb2dfY3h4X2c9eWVzCmFjX2N2X3Byb2dfbWFrZV9tYWtlX3NldD15
ZXMKYWNfY3Zfc2VhcmNoX0ROU1NlcnZpY2VSZWdpc3Rlcj1ubwphY19jdl9zZWFyY2hfYmFzd2Fw
PW5vCmFjX2N2X3NlYXJjaF9jb21wcmVzcz0tbHoKYWNfY3Zfc2VhcmNoX2Rsb3Blbj0tbGRsCmFj
X2N2X3NlYXJjaF9nZXRob3N0YnluYW1lPSdub25lIHJlcXVpcmVkJwphY19jdl9zZWFyY2hfcG93
PS1sbQphY19jdl9zZWFyY2hfcHRocmVhZF9jcmVhdGU9LWxwdGhyZWFkCmFjX2N2X3NlYXJjaF9w
dGhyZWFkX3NldHNwZWNpZmljPSdub25lIHJlcXVpcmVkJwphY19jdl9zZWFyY2hfcmVhZGxpbmU9
bm8KYWNfY3Zfc2VhcmNoX3NvY2tldD0nbm9uZSByZXF1aXJlZCcKYWNfY3Zfc2VhcmNoX3hkcl9p
bnQ9J25vbmUgcmVxdWlyZWQnCmFjX2N2X3NpemVvZl9vZmZfdD04CmFjX2N2X3R5cGVfbW9kZV90
PXllcwphY19jdl90eXBlX29mZl90PXllcwphY19jdl90eXBlX3B0cmRpZmZfdD15ZXMKYWNfY3Zf
dHlwZV9zaWduYWw9dm9pZAphY19jdl90eXBlX3NpemVfdD15ZXMKYWNfY3ZfdHlwZV91X2ludDMy
X3Q9eWVzCmFjX2N2X3R5cGVfdWludDMyX3Q9eWVzCm9hc3lzX2N2X2RiX2luY3BhdGg9L3Vzci9p
bmNsdWRlCm9hc3lzX2N2X2RiX2xpYj1kYi00LjUKb2FzeXNfY3ZfZGJfbGlicGF0aD0vdXNyL2xp
YgpvYXN5c19jdl9mdW5jX2ZwY2xhc3NpZnk9MQpvYXN5c19jdl9saWJfZXhwYXQ9Cm9hc3lzX2N2
X2xpYl90Y2w9dGNsOC40Cm9hc3lzX2N2X3BhdGhfZXhwYXRfaD0Kb2FzeXNfY3ZfcGF0aF9leHBh
dF9saWI9Cm9hc3lzX2N2X3BhdGhfdGNsX2g9L3Vzci9pbmNsdWRlL3RjbDguNApvYXN5c19jdl9w
YXRoX3RjbF9saWI9L3Vzci9saWIKb2FzeXNfY3ZfcGF0aF94ZXJjZXNfYz0vdXNyCm9hc3lzX2N2
X3Byb2dfZ2NjX3dfbm9fbG9uZ19kb3VibGU9eWVzCm9hc3lzX2N2X3Byb2dfZ2NjdmVyPTQuMi4z
Cm9hc3lzX2N2X3Byb2dfZ3h4dmVyPTQuMi4zCgojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBP
dXRwdXQgdmFyaWFibGVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwoKQVI9J2FyJwpBV0s9
J21hd2snCkJVSUxERElSPScvaG9tZS9iYW5nL2R0bi0yLjUuMCcKQlVJTERfU1lTVEVNPSdMaW51
eCcKQ0M9J2djYycKQ0ZMQUdTPSctZycKQ1BQPSdnY2MgLUUnCkNQUEZMQUdTPSctSSQoU1JDRElS
KS9zZXJ2bGliIC1JJChTUkNESVIpL29hc3lzICAtV25vLWxvbmctZG91YmxlIC1JL3Vzci9pbmNs
dWRlL3RjbDguNCAgJwpDWFg9J2crKycKQ1hYQ1BQPSdnKysgLUUnCkNYWEZMQUdTPSctZycKREVC
VUc9Jy1nIC1mbm8taW5saW5lJwpERUZTPSctREhBVkVfQ09ORklHX0gnCkRFUEZMQUdTPSctTU1E
IC1NUCAtTVQgIiQqLm8gJCouRSAkKi5wbyInCkVDSE9fQz0nJwpFQ0hPX049Jy1uJwpFQ0hPX1Q9
JycKRUdSRVA9Jy9iaW4vZ3JlcCAtRScKRVhFRVhUPScnCkVYVFJBX0NGTEFHUz0nJwpFWFRSQV9M
REZMQUdTPScnCkdSRVA9Jy9iaW4vZ3JlcCcKSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0
NCcKSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JwpJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxM
fScKTERGTEFHUz0nLUwuICAgJwpMREZMQUdTX1NITElCPSctc2hhcmVkIC1mUElDIC1EUElDJwpM
RlNERUZTPSctRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQnCkxJQk9C
SlM9JycKTElCUz0nLWx6IC1sZGwgLWxtIC1scHRocmVhZCAnCkxUTElCT0JKUz0nJwpPQVNZU19M
SUJTPScgLWx0Y2w4LjQgLWx4ZXJjZXMtYyAtbGRiLTQuNScKT0JKRVhUPSdvJwpPUFRJTUlaRT0n
JwpPUFRJTUlaRV9XQVJOPScnClBBQ0tBR0VfQlVHUkVQT1JUPScnClBBQ0tBR0VfTkFNRT0nJwpQ
QUNLQUdFX1NUUklORz0nJwpQQUNLQUdFX1RBUk5BTUU9JycKUEFDS0FHRV9WRVJTSU9OPScnClBB
VEhfU0VQQVJBVE9SPSc6JwpQSUNGTEFHUz0nLWZQSUMgLURQSUMnClBST0ZJTEU9JycKUFlUSE9O
PScvdXNyL2Jpbi9weXRob24nClBZVEhPTl9CVUlMRF9FWFQ9J3llcycKUkFOTElCPSdyYW5saWIn
ClJQQVRIPSctV2wsLXJwYXRoPS4gLVdsLC1ycGF0aD0kKHByZWZpeCkvbGliJwpTRVRfTUFLRT0n
JwpTSEVMTD0nL2Jpbi9zaCcKU0hMSUJTPSd5ZXMnClNITElCX0VYVD0nc28nClNSQ0RJUj0nL2hv
bWUvYmFuZy9kdG4tMi41LjAnClNUQVRJQz0nbm8nClRBUkdFVD0nbmF0aXZlJwpUQ0xfTERGTEFH
Uz0nIC1sdGNsOC40JwpYU0RfVE9PTD0nJwphY19jdF9DQz0nZ2NjJwphY19jdF9DWFg9J2crKycK
YmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCmJ1aWxkX2FsaWFzPScnCmRhdGFkaXI9JyR7ZGF0
YXJvb3RkaXJ9JwpkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwpkb2NkaXI9JyR7ZGF0YXJv
b3RkaXJ9L2RvYy8ke1BBQ0tBR0V9JwpkdmlkaXI9JyR7ZG9jZGlyfScKZXhlY19wcmVmaXg9JyR7
cHJlZml4fScKaG9zdF9hbGlhcz0nJwpodG1sZGlyPScke2RvY2Rpcn0nCmluY2x1ZGVkaXI9JyR7
cHJlZml4fS9pbmNsdWRlJwppbmZvZGlyPScke2RhdGFyb290ZGlyfS9pbmZvJwpsaWJkaXI9JyR7
ZXhlY19wcmVmaXh9L2xpYicKbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKbG9j
YWxlZGlyPScke2RhdGFyb290ZGlyfS9sb2NhbGUnCmxvY2Fsc3RhdGVkaXI9Jy92YXInCm1hbmRp
cj0nJHtkYXRhcm9vdGRpcn0vbWFuJwpvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUnCnBkZmRp
cj0nJHtkb2NkaXJ9JwpwcmVmaXg9Jy91c3InCnByb2dyYW1fdHJhbnNmb3JtX25hbWU9J3MseCx4
LCcKcHNkaXI9JyR7ZG9jZGlyfScKc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKc2hhcmVk
c3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCnN1YmRpcnM9JyBvYXN5cycKc3lzY29uZmRpcj0nL2V0
YycKdGFyZ2V0X2FsaWFzPScnCgojIyAtLS0tLS0tLS0tLSAjIwojIyBjb25mZGVmcy5oLiAjIwoj
IyAtLS0tLS0tLS0tLSAjIwoKI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKI2RlZmluZSBQQUNLQUdF
X1RBUk5BTUUgIiIKI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiIKI2RlZmluZSBQQUNLQUdFX1NU
UklORyAiIgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCiNkZWZpbmUgSEFWRV9DT05GSUdf
U1RBVEUgMQojZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKI2RlZmluZSBJTlNUQUxM
X0xPQ0FMU1RBVEVESVIgIi92YXIiCiNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVE
IDEKI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQojZGVmaW5lIEhBVkVfU1lTX1RZ
UEVTX0ggMQojZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCiNkZWZpbmUgSEFWRV9TVERMSUJfSCAx
CiNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCiNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCiNkZWZpbmUg
SEFWRV9TVFJJTkdTX0ggMQojZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9T
VERJTlRfSCAxCiNkZWZpbmUgSEFWRV9VTklTVERfSCAxCiNkZWZpbmUgU1REQ19IRUFERVJTIDEK
I2RlZmluZSBIQVZFX0VSUl9IIDEKI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQojZGVmaW5lIEhB
VkVfU1RESU5UX0ggMQojZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQojZGVmaW5lIEhBVkVfU1lTX0NE
RUZTX0ggMQojZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQojZGVmaW5lIFNJWkVPRl9PRkZfVCA4
CiNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCiNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQojZGVmaW5l
IEhBVkVfVUlOVDMyX1QgMQojZGVmaW5lIEhBVkVfVV9JTlQzMl9UIDEKI2RlZmluZSBIQVZFX0ZQ
Q0xBU1NJRlkKI2RlZmluZSBIQVZFX0ZEQVRBU1lOQyAxCiNkZWZpbmUgSEFWRV9HRVRBRERSSU5G
TyAxCiNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FIDEKI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5B
TUVfUiAxCiNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCiNkZWZpbmUgSEFWRV9JTkVUX0FUT04g
MQojZGVmaW5lIEhBVkVfSU5FVF9QVE9OIDEKI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQoj
ZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQojZGVmaW5lIEhBVkVfU1lTX0ZJTEVfSCAxCiNkZWZp
bmUgSEFWRV9URVJNSU9TX0ggMQojZGVmaW5lIEhBVkVfU0VMRUNUIDEKI2RlZmluZSBIQVZFX1NU
UlBCUksgMQojZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKI2RlZmluZSBIQVZFX1NZU19TT0NL
RVRfSCAxCiNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMSBpbnQKI2RlZmluZSBTRUxFQ1RfVFlQRV9B
UkcyMzQgKGZkX3NldCAqKQojZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFs
ICopCiNkZWZpbmUgR09PR0xFX1BST0ZJTEVfRU5BQkxFRCAwCiNkZWZpbmUgWEVSQ0VTX0NfRU5B
QkxFRCAxCiNkZWZpbmUgVENMUkVBRExJTkVfRU5BQkxFRCAwCiNkZWZpbmUgT0FTWVNfWkxJQl9F
TkFCTEVEIDEKI2RlZmluZSBMSUJEQl9FTkFCTEVEIDEKI2RlZmluZSBCRVJLRUxFWV9EQl9WRVJT
SU9OIDQuNQojZGVmaW5lIEVYVEVSTkFMX0NMX0VOQUJMRUQgMQojZGVmaW5lIEVYVEVSTkFMX0RQ
X0VOQUJMRUQgMQoKY29uZmlndXJlOiBleGl0IDAK
------=_Part_5098_159873.1209693490952
Content-Type: application/octet-stream; name=config.log-4.1.3
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ffq418s41
Content-Disposition: attachment; filename=config.log-4.1.3

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IGNvbmZpZ3VyZSwgd2hpY2ggd2FzCmdlbmVy
YXRlZCBieSBHTlUgQXV0b2NvbmYgMi42MS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwoK
ICAkIC4vY29uZmlndXJlIC1DCgojIyAtLS0tLS0tLS0gIyMKIyMgUGxhdGZvcm0uICMjCiMjIC0t
LS0tLS0tLSAjIwoKaG9zdG5hbWUgPSBkZWIKdW5hbWUgLW0gPSBpNjg2CnVuYW1lIC1yID0gMi42
LjI0LTEtNjg2CnVuYW1lIC1zID0gTGludXgKdW5hbWUgLXYgPSAjMSBTTVAgVGh1IE1hciAyNyAx
Nzo0NTowNCBVVEMgMjAwOAoKL3Vzci9iaW4vdW5hbWUgLXAgPSB1bmtub3duCi9iaW4vdW5hbWUg
LVggICAgID0gdW5rbm93bgoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9IHVua25vd24KL3Vzci9i
aW4vYXJjaCAtayAgICAgICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IHVua25v
d24KL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IHVua25vd24KL2Jpbi9tYWNoaW5lICAgICAgICAg
ICA9IHVua25vd24KL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25vd24KL2Jpbi91bml2ZXJz
ZSAgICAgICAgICA9IHVua25vd24KClBBVEg6IC9ob21lL2JhbmcvbG9jYWwvYmluClBBVEg6IC91
c3IvbG9jYWwvYmluClBBVEg6IC91c3IvYmluClBBVEg6IC9iaW4KUEFUSDogL3Vzci9nYW1lcwpQ
QVRIOiAvb3B0L21zcDQzMC9iaW4KCgojIyAtLS0tLS0tLS0tLSAjIwojIyBDb3JlIHRlc3RzLiAj
IwojIyAtLS0tLS0tLS0tLSAjIwoKY29uZmlndXJlOjE3MzI6IGNyZWF0aW5nIGNhY2hlIGNvbmZp
Zy5jYWNoZQpjb25maWd1cmU6MTg3MjogY2hlY2tpbmcgbG9jYXRpb24gb2Ygc291cmNlIGRpcmVj
dG9yeQpjb25maWd1cmU6MTg3NTogcmVzdWx0OiAiL2hvbWUvYmFuZy9kdG4tMi41LjAiCmNvbmZp
Z3VyZToxODgwOiBjaGVja2luZyBsb2NhdGlvbiBvZiBidWlsZCBkaXJlY3RvcnkKY29uZmlndXJl
OjE4ODI6IHJlc3VsdDogIi9ob21lL2JhbmcvZHRuLTIuNS4wIgpjb25maWd1cmU6MTk3NTogaW5m
ZXJyaW5nIEMrKyBjb21waWxlciAnZysrLTQuMScgZnJvbSBDIGNvbXBpbGVyIHNldHRpbmcKY29u
ZmlndXJlOjE5ODU6IGNoZWNraW5nIGZvciBhIEMgY29tcGlsZXIgKHRyeWluZyBnY2MtNC4xKQpj
b25maWd1cmU6MTk4NzogcmVzdWx0OiAKY29uZmlndXJlOjIxMDY6IGNoZWNraW5nIGZvciBDIGNv
bXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjIxMTM6IGdjYy00LjEgLS12ZXJzaW9uID4mNQpnY2Mt
NC4xIChHQ0MpIDQuMS4zIDIwMDgwMTE0IChwcmVyZWxlYXNlKSAoRGViaWFuIDQuMS4yLTE5KQpD
b3B5cmlnaHQgKEMpIDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgaXMg
ZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRo
ZXJlIGlzIE5PCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgoKY29uZmlndXJlOjIxMTY6ICQ/ID0gMApjb25m
aWd1cmU6MjEyMzogZ2NjLTQuMSAtdiA+JjUKVXNpbmcgYnVpbHQtaW4gc3BlY3MuClRhcmdldDog
aTQ4Ni1saW51eC1nbnUKQ29uZmlndXJlZCB3aXRoOiAuLi9zcmMvY29uZmlndXJlIC12IC0tZW5h
YmxlLWxhbmd1YWdlcz1jLGMrKyxmb3J0cmFuLG9iamMsb2JqLWMrKyx0cmVlbGFuZyAtLXByZWZp
eD0vdXNyIC0tZW5hYmxlLXNoYXJlZCAtLXdpdGgtc3lzdGVtLXpsaWIgLS1saWJleGVjZGlyPS91
c3IvbGliIC0td2l0aG91dC1pbmNsdWRlZC1nZXR0ZXh0IC0tZW5hYmxlLXRocmVhZHM9cG9zaXgg
LS1lbmFibGUtbmxzIC0td2l0aC1neHgtaW5jbHVkZS1kaXI9L3Vzci9pbmNsdWRlL2MrKy80LjEu
MyAtLXByb2dyYW0tc3VmZml4PS00LjEgLS1lbmFibGUtX19jeGFfYXRleGl0IC0tZW5hYmxlLWNs
b2NhbGU9Z251IC0tZW5hYmxlLWxpYnN0ZGN4eC1kZWJ1ZyAtLWVuYWJsZS1tcGZyIC0tZW5hYmxl
LWNoZWNraW5nPXJlbGVhc2UgaTQ4Ni1saW51eC1nbnUKVGhyZWFkIG1vZGVsOiBwb3NpeApnY2Mg
dmVyc2lvbiA0LjEuMyAyMDA4MDExNCAocHJlcmVsZWFzZSkgKERlYmlhbiA0LjEuMi0xOSkKY29u
ZmlndXJlOjIxMjY6ICQ/ID0gMApjb25maWd1cmU6MjEzMzogZ2NjLTQuMSAtViA+JjUKZ2NjLTQu
MTogJy1WJyBvcHRpb24gbXVzdCBoYXZlIGFyZ3VtZW50CmNvbmZpZ3VyZToyMTM2OiAkPyA9IDEK
Y29uZmlndXJlOjIxNTk6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZp
bGUgbmFtZQpjb25maWd1cmU6MjE4NjogZ2NjLTQuMSAgICBjb25mdGVzdC5jICA+JjUKY29uZmln
dXJlOjIxODk6ICQ/ID0gMApjb25maWd1cmU6MjIyNzogcmVzdWx0OiBhLm91dApjb25maWd1cmU6
MjI0NDogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcwpjb25maWd1cmU6MjI1
NDogLi9hLm91dApjb25maWd1cmU6MjI1NzogJD8gPSAwCmNvbmZpZ3VyZToyMjc0OiByZXN1bHQ6
IHllcwpjb25maWd1cmU6MjI4MTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGls
aW5nCmNvbmZpZ3VyZToyMjgzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMjg2OiBjaGVja2luZyBm
b3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzCmNvbmZpZ3VyZToyMjkzOiBnY2MtNC4xIC1vIGNvbmZ0
ZXN0ICAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6MjI5NjogJD8gPSAwCmNvbmZpZ3VyZToy
MzIwOiByZXN1bHQ6IApjb25maWd1cmU6MjMyNjogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmpl
Y3QgZmlsZXMKY29uZmlndXJlOjIzNTI6IGdjYy00LjEgLWMgICBjb25mdGVzdC5jID4mNQpjb25m
aWd1cmU6MjM1NTogJD8gPSAwCmNvbmZpZ3VyZToyMzc4OiByZXN1bHQ6IG8KY29uZmlndXJlOjIz
ODI6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcgpjb25m
aWd1cmU6MjQxMTogZ2NjLTQuMSAtYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToyNDE3OiAk
PyA9IDAKY29uZmlndXJlOjI0MzQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyNDM5OiBjaGVja2lu
ZyB3aGV0aGVyIGdjYy00LjEgYWNjZXB0cyAtZwpjb25maWd1cmU6MjQ2OTogZ2NjLTQuMSAtYyAt
ZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjI0NzU6ICQ/ID0gMApjb25maWd1cmU6MjU3NDog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjI1OTE6IGNoZWNraW5nIGZvciBnY2MtNC4xIG9wdGlvbiB0
byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6MjY2NTogZ2NjLTQuMSAgLWMgLWcgLU8yICBjb25m
dGVzdC5jID4mNQpjb25maWd1cmU6MjY3MTogJD8gPSAwCmNvbmZpZ3VyZToyNjk0OiByZXN1bHQ6
IG5vbmUgbmVlZGVkCmNvbmZpZ3VyZToyNzEzOiBjaGVja2luZyBmb3IgYSBDKysgY29tcGlsZXIg
KHRyeWluZyBnKystNC4xKQpjb25maWd1cmU6MjcxNTogcmVzdWx0OiAKY29uZmlndXJlOjI4MzM6
IGNoZWNraW5nIGZvciBDKysgY29tcGlsZXIgdmVyc2lvbgpjb25maWd1cmU6Mjg0MDogZysrLTQu
MSAtLXZlcnNpb24gPiY1CmcrKy00LjEgKEdDQykgNC4xLjMgMjAwODAxMTQgKHByZXJlbGVhc2Up
IChEZWJpYW4gNC4xLjItMTkpCkNvcHlyaWdodCAoQykgMjAwNiBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4KVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29w
eWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8Kd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCgpjb25maWd1
cmU6Mjg0MzogJD8gPSAwCmNvbmZpZ3VyZToyODUwOiBnKystNC4xIC12ID4mNQpVc2luZyBidWls
dC1pbiBzcGVjcy4KVGFyZ2V0OiBpNDg2LWxpbnV4LWdudQpDb25maWd1cmVkIHdpdGg6IC4uL3Ny
Yy9jb25maWd1cmUgLXYgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrLGZvcnRyYW4sb2JqYyxvYmot
YysrLHRyZWVsYW5nIC0tcHJlZml4PS91c3IgLS1lbmFibGUtc2hhcmVkIC0td2l0aC1zeXN0ZW0t
emxpYiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIgLS13aXRob3V0LWluY2x1ZGVkLWdldHRleHQgLS1l
bmFibGUtdGhyZWFkcz1wb3NpeCAtLWVuYWJsZS1ubHMgLS13aXRoLWd4eC1pbmNsdWRlLWRpcj0v
dXNyL2luY2x1ZGUvYysrLzQuMS4zIC0tcHJvZ3JhbS1zdWZmaXg9LTQuMSAtLWVuYWJsZS1fX2N4
YV9hdGV4aXQgLS1lbmFibGUtY2xvY2FsZT1nbnUgLS1lbmFibGUtbGlic3RkY3h4LWRlYnVnIC0t
ZW5hYmxlLW1wZnIgLS1lbmFibGUtY2hlY2tpbmc9cmVsZWFzZSBpNDg2LWxpbnV4LWdudQpUaHJl
YWQgbW9kZWw6IHBvc2l4CmdjYyB2ZXJzaW9uIDQuMS4zIDIwMDgwMTE0IChwcmVyZWxlYXNlKSAo
RGViaWFuIDQuMS4yLTE5KQpjb25maWd1cmU6Mjg1MzogJD8gPSAwCmNvbmZpZ3VyZToyODYwOiBn
KystNC4xIC1WID4mNQpnKystNC4xOiAnLVYnIG9wdGlvbiBtdXN0IGhhdmUgYXJndW1lbnQKY29u
ZmlndXJlOjI4NjM6ICQ/ID0gMQpjb25maWd1cmU6Mjg2NjogY2hlY2tpbmcgd2hldGhlciB3ZSBh
cmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIKY29uZmlndXJlOjI4OTU6IGcrKy00LjEgLWMg
ICBjb25mdGVzdC5jcHAgPiY1CmNvbmZpZ3VyZToyOTAxOiAkPyA9IDAKY29uZmlndXJlOjI5MTg6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyOTIzOiBjaGVja2luZyB3aGV0aGVyIGcrKy00LjEgYWNj
ZXB0cyAtZwpjb25maWd1cmU6Mjk1MzogZysrLTQuMSAtYyAtZyAgY29uZnRlc3QuY3BwID4mNQpj
b25maWd1cmU6Mjk1OTogJD8gPSAwCmNvbmZpZ3VyZTozMDU4OiByZXN1bHQ6IHllcwpjb25maWd1
cmU6MzA4MjogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIHdvcmtzCmNvbmZpZ3Vy
ZTozMTExOiBnKystNC4xIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmNwcCAgPiY1CmNv
bmZpZ3VyZTozMTE3OiAkPyA9IDAKY29uZmlndXJlOjMxMjM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy
ZTozMTUyOiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvcgpjb25maWd1cmU6
MzE5MjogZ2NjLTQuMSAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6MzE5ODogJD8gPSAwCmNvbmZp
Z3VyZTozMjI5OiBnY2MtNC4xIC1FICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6MTE6Mjg6IGVycm9y
OiBhY19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZToz
MjM1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu
aC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN
RSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO
RyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklH
X1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElO
U1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu
Y2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZTozMjY4OiByZXN1bHQ6IGdjYy00LjEg
LUUKY29uZmlndXJlOjMyOTc6IGdjYy00LjEgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjMzMDM6
ICQ/ID0gMApjb25maWd1cmU6MzMzNDogZ2NjLTQuMSAtRSAgY29uZnRlc3QuYwpjb25mdGVzdC5j
OjExOjI4OiBlcnJvcjogYWNfbm9uZXhpc3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y
eQpjb25maWd1cmU6MzM0MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8
IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQ
QUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUg
UEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmlu
ZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMi
CnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgLyogZW5kIGNvbmZkZWZz
LmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgpjb25maWd1cmU6MzM3ODogY2hl
Y2tpbmcgZm9yIHRoZSB2ZXJzaW9uIG9mIHRoZSBHTlUgQyBjb21waWxlcgpjb25maWd1cmU6MzM4
OTogcmVzdWx0OiA0LjEuMwpjb25maWd1cmU6MzM5MjogY2hlY2tpbmcgZm9yIHRoZSB2ZXJzaW9u
IG9mIHRoZSBHTlUgQysrIGNvbXBpbGVyCmNvbmZpZ3VyZTozNDAzOiByZXN1bHQ6IDQuMS4zCmNv
bmZpZ3VyZTozNDg4OiBjaGVja2luZyBmb3IgYXIKY29uZmlndXJlOjM1MDQ6IGZvdW5kIC91c3Iv
YmluL2FyCmNvbmZpZ3VyZTozNTE1OiByZXN1bHQ6IGFyCmNvbmZpZ3VyZTozNTg0OiBjaGVja2lu
ZyBmb3IgcmFubGliCmNvbmZpZ3VyZTozNjAwOiBmb3VuZCAvdXNyL2Jpbi9yYW5saWIKY29uZmln
dXJlOjM2MTE6IHJlc3VsdDogcmFubGliCmNvbmZpZ3VyZTozNjUzOiBjaGVja2luZyB3aGV0aGVy
IHRvIGNvbXBpbGUgd2l0aCBkZWJ1Z2dpbmcKY29uZmlndXJlOjM2NTU6IHJlc3VsdDogeWVzCmNv
bmZpZ3VyZTozNjc0OiBjaGVja2luZyB3aGV0aGVyIHRvIGNvbXBpbGUgd2l0aCBtZW1vcnkgZGVi
dWdnaW5nCmNvbmZpZ3VyZTozNjc2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNjk1OiBjaGVja2lu
ZyB3aGV0aGVyIHRvIGNvbXBpbGUgd2l0aCBsb2NrIGRlYnVnZ2luZyAoZGVmYXVsdCB5ZXMpCmNv
bmZpZ3VyZTozNjk3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzcxNzogY2hlY2tpbmcgd2hldGhl
ciB0byBjb21waWxlIHdpdGggb3B0aW1pemF0aW9uCmNvbmZpZ3VyZTozNzE5OiByZXN1bHQ6IG5v
CmNvbmZpZ3VyZTozNzQwOiBjaGVja2luZyB3aGV0aGVyIHRvIGNvbXBpbGUgd2l0aCBwcm9maWxp
bmcKY29uZmlndXJlOjM3NDI6IHJlc3VsdDogbm8KY29uZmlndXJlOjM3NjA6IGNoZWNraW5nIHdo
ZXRoZXIgdG8gbGluayBzdGF0aWNhbGx5CmNvbmZpZ3VyZTozNzYyOiByZXN1bHQ6IG5vCmNvbmZp
Z3VyZTozNzczOiBjaGVja2luZyB3aGV0aGVyIHRvIGxpbmsgdXNpbmcgc3RhdGljIGV4dGVybmFs
IGxpYnJhcmllcwpjb25maWd1cmU6Mzc3NTogcmVzdWx0OiBubwpjb25maWd1cmU6Mzc4NzogY2hl
Y2tpbmcgd2hldGhlciB0byB0cnkgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcwpjb25maWd1cmU6
MzgwMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM4MTM6IGNoZWNraW5nIHdoZXRoZXIgdGhlIGNv
bXBpbGVyIHN1cHBvcnRzIC1mUElDCmNvbmZpZ3VyZTozODI0OiBnY2MtNC4xIC1jIC1mUElDIC1E
UElDIC1nIC1PMiAtV2Vycm9yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MzgzMDogJD8gPSAw
CmNvbmZpZ3VyZTozODQ0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6Mzg1MDogY2hlY2tpbmcgd2hl
dGhlciB0aGUgY29tcGlsZXIgY2FuIGxpbmsgYSBkeW5hbWljIGxpYnJhcnkgd2l0aCAtc2hhcmVk
CmNvbmZpZ3VyZTozODYyOiBnY2MtNC4xIC1vIGNvbmZ0ZXN0IC1mUElDIC1EUElDIC1nIC1PMiAt
V2Vycm9yICAtc2hhcmVkICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjM4Njg6ICQ/ID0gMApj
b25maWd1cmU6Mzg4NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM4OTI6IGNoZWNraW5nIGV4dGVu
c2lvbiBmb3IgZHluYW1pYyBsaWJyYXJpZXMKY29uZmlndXJlOjM5MDQ6IHJlc3VsdDogc28KY29u
ZmlndXJlOjM5MDc6IGNoZWNraW5nIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyAtV2wsLS1ycGF0
aD0uCmNvbmZpZ3VyZTozOTE5OiBnY2MtNC4xIC1vIGNvbmZ0ZXN0IC1mUElDIC1EUElDIC1nIC1P
MiAtV2Vycm9yICAtc2hhcmVkICAtV2wsLXJwYXRoPS9mb28gY29uZnRlc3QuYyAgPiY1CmNvbmZp
Z3VyZTozOTI1OiAkPyA9IDAKY29uZmlndXJlOjM5NDE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToz
OTgwOiBjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1Xbm8tbG9uZy1kb3VibGUgKEFwcGxl
IE9TWCBvbmx5KQpjb25maWd1cmU6NDAxMDogZ2NjLTQuMSAtbyBjb25mdGVzdCAtZyAtTzIgIC1X
bm8tbG9uZy1kb3VibGUgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg
Y29tbWFuZCBsaW5lIG9wdGlvbiAiLVduby1sb25nLWRvdWJsZSIKY29uZmlndXJlOjQwMTY6ICQ/
ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8K
fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIiCnwg
I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIiCnwg
I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUg
MQp8ICNkZWZpbmUgSU5TVEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFMTF9M
T0NBTFNUQVRFRElSICIvdmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVE
IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAvKiBu
b3RoaW5nICovCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo0MDM5OiByZXN1
bHQ6IG5vCmNvbmZpZ3VyZTo0MDczOiBjaGVja2luZyBmb3IgZ2F3awpjb25maWd1cmU6NDEwMzog
cmVzdWx0OiBubwpjb25maWd1cmU6NDA3MzogY2hlY2tpbmcgZm9yIG1hd2sKY29uZmlndXJlOjQw
ODk6IGZvdW5kIC91c3IvYmluL21hd2sKY29uZmlndXJlOjQxMDA6IHJlc3VsdDogbWF3awpjb25m
aWd1cmU6NDEyNDogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbApjb25maWd1
cmU6NDE4MDogcmVzdWx0OiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNvbmZpZ3VyZTo0MTkxOiBjaGVj
a2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpCmNvbmZpZ3VyZTo0MjEyOiByZXN1bHQ6IHll
cwpjb25maWd1cmU6NDI2NDogY2hlY2tpbmcgZm9yIHJhbmxpYgpjb25maWd1cmU6NDI5MTogcmVz
dWx0OiByYW5saWIKY29uZmlndXJlOjQzMTk6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5p
bmcgcHRocmVhZF9jcmVhdGUKY29uZmlndXJlOjQzNjA6IGdjYy00LjEgLW8gY29uZnRlc3QgLWcg
ICBjb25mdGVzdC5jICA+JjUKL3RtcC9jY1dLb3NROS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci9o
b21lL2JhbmcvZHRuLTIuNS4wL2NvbmZ0ZXN0LmM6MjM6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YHB0aHJlYWRfY3JlYXRlJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25m
aWd1cmU6NDM2NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv
bmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdF
X1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FH
RV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZF
X0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2Rl
ZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19M
T0NLSU5HX0VOQUJMRUQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlk
ZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2Ug
Y2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAg
ICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBw
bHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFy
IHB0aHJlYWRfY3JlYXRlICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHB0aHJlYWRf
Y3JlYXRlICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NDM2MDogZ2NjLTQu
MSAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICAgPiY1CmNvbmZpZ3VyZTo0
MzY2OiAkPyA9IDAKY29uZmlndXJlOjQzOTQ6IHJlc3VsdDogLWxwdGhyZWFkCmNvbmZpZ3VyZTo0
NDA2OiBjaGVja2luZyBmb3IgcHRocmVhZF95aWVsZApjb25maWd1cmU6NDQ2MjogZ2NjLTQuMSAt
byBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+JjUKY29uZmlndXJlOjQ0Njg6
ICQ/ID0gMApjb25maWd1cmU6NDQ4NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ1Nzk6IGNoZWNr
aW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgcHRocmVhZF9zZXRzcGVjaWZpYwpjb25maWd1cmU6
NDYyMDogZ2NjLTQuMSAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+JjUK
Y29uZmlndXJlOjQ2MjY6ICQ/ID0gMApjb25maWd1cmU6NDY1NDogcmVzdWx0OiBub25lIHJlcXVp
cmVkCmNvbmZpZ3VyZTo0NjY2OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIHNvY2tl
dApjb25maWd1cmU6NDcwNzogZ2NjLTQuMSAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxw
dGhyZWFkICA+JjUKY29uZmlndXJlOjQ3MTM6ICQ/ID0gMApjb25maWd1cmU6NDc0MTogcmVzdWx0
OiBub25lIHJlcXVpcmVkCmNvbmZpZ3VyZTo0NzUzOiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250
YWluaW5nIGdldGhvc3RieW5hbWUKY29uZmlndXJlOjQ3OTQ6IGdjYy00LjEgLW8gY29uZnRlc3Qg
LWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo0ODAwOiAkPyA9IDAKY29u
ZmlndXJlOjQ4Mjg6IHJlc3VsdDogbm9uZSByZXF1aXJlZApjb25maWd1cmU6NDg0MDogY2hlY2tp
bmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyB4ZHJfaW50CmNvbmZpZ3VyZTo0ODgxOiBnY2MtNC4x
IC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbHB0aHJlYWQgID4mNQpjb25maWd1cmU6NDg4
NzogJD8gPSAwCmNvbmZpZ3VyZTo0OTE1OiByZXN1bHQ6IG5vbmUgcmVxdWlyZWQKY29uZmlndXJl
OjQ5Mjk6IGNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZQpj
b25maWd1cmU6NTAwMzogcmVzdWx0OiAvYmluL2dyZXAKY29uZmlndXJlOjUwMDg6IGNoZWNraW5n
IGZvciBlZ3JlcApjb25maWd1cmU6NTA4NjogcmVzdWx0OiAvYmluL2dyZXAgLUUKY29uZmlndXJl
OjUxMDU6IGNoZWNraW5nIGZvciBzeXMvdHlwZXMuaApjb25maWd1cmU6NTEyNjogZ2NjLTQuMSAt
YyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjUxMzI6ICQ/ID0gMApjb25maWd1cmU6NTE0
ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUxMDU6IGNoZWNraW5nIGZvciBzeXMvc3RhdC5oCmNv
bmZpZ3VyZTo1MTI2OiBnY2MtNC4xIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTEz
MjogJD8gPSAwCmNvbmZpZ3VyZTo1MTQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEwNTogY2hl
Y2tpbmcgZm9yIHN0ZGxpYi5oCmNvbmZpZ3VyZTo1MTI2OiBnY2MtNC4xIC1jIC1nICBjb25mdGVz
dC5jID4mNQpjb25maWd1cmU6NTEzMjogJD8gPSAwCmNvbmZpZ3VyZTo1MTQ4OiByZXN1bHQ6IHll
cwpjb25maWd1cmU6NTEwNTogY2hlY2tpbmcgZm9yIHN0cmluZy5oCmNvbmZpZ3VyZTo1MTI2OiBn
Y2MtNC4xIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTEzMjogJD8gPSAwCmNvbmZp
Z3VyZTo1MTQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEwNTogY2hlY2tpbmcgZm9yIG1lbW9y
eS5oCmNvbmZpZ3VyZTo1MTI2OiBnY2MtNC4xIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1
cmU6NTEzMjogJD8gPSAwCmNvbmZpZ3VyZTo1MTQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEw
NTogY2hlY2tpbmcgZm9yIHN0cmluZ3MuaApjb25maWd1cmU6NTEyNjogZ2NjLTQuMSAtYyAtZyAg
Y29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjUxMzI6ICQ/ID0gMApjb25maWd1cmU6NTE0ODogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjUxMDU6IGNoZWNraW5nIGZvciBpbnR0eXBlcy5oCmNvbmZpZ3Vy
ZTo1MTI2OiBnY2MtNC4xIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTEzMjogJD8g
PSAwCmNvbmZpZ3VyZTo1MTQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEwNTogY2hlY2tpbmcg
Zm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo1MTI2OiBnY2MtNC4xIC1jIC1nICBjb25mdGVzdC5jID4m
NQpjb25maWd1cmU6NTEzMjogJD8gPSAwCmNvbmZpZ3VyZTo1MTQ4OiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6NTEwNTogY2hlY2tpbmcgZm9yIHVuaXN0ZC5oCmNvbmZpZ3VyZTo1MTI2OiBnY2MtNC4x
IC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTEzMjogJD8gPSAwCmNvbmZpZ3VyZTo1
MTQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTE2MTogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFk
ZXIgZmlsZXMKY29uZmlndXJlOjUxOTE6IGdjYy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNv
bmZpZ3VyZTo1MTk3OiAkPyA9IDAKY29uZmlndXJlOjUyOTY6IGdjYy00LjEgLW8gY29uZnRlc3Qg
LWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo1Mjk5OiAkPyA9IDAKY29u
ZmlndXJlOjUzMDU6IC4vY29uZnRlc3QKY29uZmlndXJlOjUzMDg6ICQ/ID0gMApjb25maWd1cmU6
NTMyNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzNTY6IGNoZWNraW5nIGVyci5oIHVzYWJpbGl0
eQpjb25maWd1cmU6NTM3MzogZ2NjLTQuMSAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl
OjUzNzk6ICQ/ID0gMApjb25maWd1cmU6NTM5MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzOTc6
IGNoZWNraW5nIGVyci5oIHByZXNlbmNlCmNvbmZpZ3VyZTo1NDEyOiBnY2MtNC4xIC1FICBjb25m
dGVzdC5jCmNvbmZpZ3VyZTo1NDE4OiAkPyA9IDAKY29uZmlndXJlOjU0MzI6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZTo1NDYwOiBjaGVja2luZyBmb3IgZXJyLmgKY29uZmlndXJlOjU0Njg6IHJlc3Vs
dDogeWVzCmNvbmZpZ3VyZTo1MzU2OiBjaGVja2luZyBleGVjaW5mby5oIHVzYWJpbGl0eQpjb25m
aWd1cmU6NTM3MzogZ2NjLTQuMSAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjUzNzk6
ICQ/ID0gMApjb25maWd1cmU6NTM5MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzOTc6IGNoZWNr
aW5nIGV4ZWNpbmZvLmggcHJlc2VuY2UKY29uZmlndXJlOjU0MTI6IGdjYy00LjEgLUUgIGNvbmZ0
ZXN0LmMKY29uZmlndXJlOjU0MTg6ICQ/ID0gMApjb25maWd1cmU6NTQzMjogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjU0NjA6IGNoZWNraW5nIGZvciBleGVjaW5mby5oCmNvbmZpZ3VyZTo1NDY4OiBy
ZXN1bHQ6IHllcwpjb25maWd1cmU6NTM0NjogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3Vy
ZTo1MzUyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTM0NjogY2hlY2tpbmcgZm9yIHN0cmluZy5o
CmNvbmZpZ3VyZTo1MzUyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTM1NjogY2hlY2tpbmcgc3lu
Y2guaCB1c2FiaWxpdHkKY29uZmlndXJlOjUzNzM6IGdjYy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMg
PiY1CmNvbmZ0ZXN0LmM6NjA6MTk6IGVycm9yOiBzeW5jaC5oOiBObyBzdWNoIGZpbGUgb3IgZGly
ZWN0b3J5CmNvbmZpZ3VyZTo1Mzc5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVm
aW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2Rl
ZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAj
ZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAi
L2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVmaW5lIE9B
U1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BF
Q0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T
VEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I
IDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8
ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNk
ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUg
SEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9T
VERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g
ICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGlu
Y2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAj
IGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMg
aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZk
ZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5k
aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYm
IGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYK
fCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8
ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gK
fCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gK
fCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwg
IyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8c3luY2guaD4KY29uZmln
dXJlOjUzOTM6IHJlc3VsdDogbm8KY29uZmlndXJlOjUzOTc6IGNoZWNraW5nIHN5bmNoLmggcHJl
c2VuY2UKY29uZmlndXJlOjU0MTI6IGdjYy00LjEgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoy
NzoxOTogZXJyb3I6IHN5bmNoLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJl
OjU0MTg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm
cy5oLiAgKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO
QU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS
SU5HICIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFWRV9DT05G
SUdfU1RBVEUgMQp8ICNkZWZpbmUgSU5TVEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNkZWZpbmUg
SU5TVEFMTF9MT0NBTFNUQVRFRElSICIvdmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lO
R19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRTUEVDSUZJQyAxCnwgI2RlZmlu
ZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFW
RV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lO
VFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNU
RF9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAj
ZGVmaW5lIEhBVkVfRVhFQ0lORk9fSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVm
aW5lIEhBVkVfU1RSSU5HX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8
c3luY2guaD4KY29uZmlndXJlOjU0MzI6IHJlc3VsdDogbm8KY29uZmlndXJlOjU0NjA6IGNoZWNr
aW5nIGZvciBzeW5jaC5oCmNvbmZpZ3VyZTo1NDY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1MzU2
OiBjaGVja2luZyBzeXMvY2RlZnMuaCB1c2FiaWxpdHkKY29uZmlndXJlOjUzNzM6IGdjYy00LjEg
LWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1Mzc5OiAkPyA9IDAKY29uZmlndXJlOjUz
OTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1Mzk3OiBjaGVja2luZyBzeXMvY2RlZnMuaCBwcmVz
ZW5jZQpjb25maWd1cmU6NTQxMjogZ2NjLTQuMSAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NTQx
ODogJD8gPSAwCmNvbmZpZ3VyZTo1NDMyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTQ2MDogY2hl
Y2tpbmcgZm9yIHN5cy9jZGVmcy5oCmNvbmZpZ3VyZTo1NDY4OiByZXN1bHQ6IHllcwpjb25maWd1
cmU6NTM0NjogY2hlY2tpbmcgZm9yIHN5cy90eXBlcy5oCmNvbmZpZ3VyZTo1MzUyOiByZXN1bHQ6
IHllcwpjb25maWd1cmU6NTQ4MzogY2hlY2tpbmcgZm9yIGFuIEFOU0kgQy1jb25mb3JtaW5nIGNv
bnN0CmNvbmZpZ3VyZTo1NTU4OiBnY2MtNC4xIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1
cmU6NTU2NDogJD8gPSAwCmNvbmZpZ3VyZTo1NTc5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTU4
OTogY2hlY2tpbmcgZm9yIGlubGluZQpjb25maWd1cmU6NTYxNTogZ2NjLTQuMSAtYyAtZyAgY29u
ZnRlc3QuYyA+JjUKY29uZmlndXJlOjU2MjE6ICQ/ID0gMApjb25maWd1cmU6NTYzOTogcmVzdWx0
OiBpbmxpbmUKY29uZmlndXJlOjU2NTg6IGNoZWNraW5nIGZvciB3b3JraW5nIHZvbGF0aWxlCmNv
bmZpZ3VyZTo1Njg3OiBnY2MtNC4xIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTY5
MzogJD8gPSAwCmNvbmZpZ3VyZTo1NzA4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTcxODogY2hl
Y2tpbmcgZm9yIG1vZGVfdApjb25maWd1cmU6NTc0ODogZ2NjLTQuMSAtYyAtZyAgY29uZnRlc3Qu
YyA+JjUKY29uZmlndXJlOjU3NTQ6ICQ/ID0gMApjb25maWd1cmU6NTc2OTogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjU3ODE6IGNoZWNraW5nIHZhbHVlIGZvciBfRklMRV9PRkZTRVRfQklUUyBwcmVw
cm9jZXNzb3Igc3ltYm9sCmNvbmZpZ3VyZTo1NzkwOiByZXN1bHQ6IDY0CmNvbmZpZ3VyZTo1ODAw
OiBjaGVja2luZyBmb3Igb2ZmX3QKY29uZmlndXJlOjU4MzA6IGdjYy00LjEgLWMgLWcgLURfTEFS
R0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0ICBjb25mdGVzdC5jID4mNQpjb25m
aWd1cmU6NTgzNjogJD8gPSAwCmNvbmZpZ3VyZTo1ODUxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6
NTg1ODogY2hlY2tpbmcgc2l6ZSBvZiBvZmZfdApjb25maWd1cmU6NjE2MDogZ2NjLTQuMSAtbyBj
b25mdGVzdCAtZyAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgICBj
b25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo2MTYzOiAkPyA9IDAKY29uZmlndXJl
OjYxNjk6IC4vY29uZnRlc3QKY29uZmlndXJlOjYxNzI6ICQ/ID0gMApjb25maWd1cmU6NjE5NTog
cmVzdWx0OiA4CmNvbmZpZ3VyZTo2MjA2OiBjaGVja2luZyByZXR1cm4gdHlwZSBvZiBzaWduYWwg
aGFuZGxlcnMKY29uZmlndXJlOjYyMzQ6IGdjYy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNv
bmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzozNjogZXJyb3I6IHZvaWQg
dmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUKY29uZmlndXJlOjYyNDA6ICQ/ID0g
MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAj
ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIiCnwgI2Rl
ZmluZSBQQUNLQUdFX1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIiCnwgI2Rl
ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUgMQp8
ICNkZWZpbmUgSU5TVEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFMTF9MT0NB
TFNUQVRFRElSICIvdmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVEIDEK
fCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRTUEVDSUZJQyAxCnwgI2RlZmluZSBIQVZFX1NZU19U
WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ
Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx
CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm
aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVf
RVhFQ0lORk9fSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS
SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19U
WVBFU19IIDEKfCAjZGVmaW5lIFNJWkVPRl9PRkZfVCA4CnwgLyogZW5kIGNvbmZkZWZzLmguICAq
Lwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVkZSA8c2lnbmFsLmg+CnwgCnwgaW50
CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gKihzaWduYWwgKDAsIDApKSAoMCkgPT0gMTsKfCAgIDsK
fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjYyNTU6IHJlc3VsdDogdm9pZApjb25maWd1cmU6
NjI2MzogY2hlY2tpbmcgZm9yIHNpemVfdApjb25maWd1cmU6NjI5MzogZ2NjLTQuMSAtYyAtZyAg
Y29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYyOTk6ICQ/ID0gMApjb25maWd1cmU6NjMxNDogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjYzMjY6IGNoZWNraW5nIGZvciBwdHJkaWZmX3QKY29uZmlndXJl
OjYzNTY6IGdjYy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2MzYyOiAkPyA9
IDAKY29uZmlndXJlOjYzNzc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2Mzg4OiBjaGVja2luZyBm
b3IgdWludDMyX3QKY29uZmlndXJlOjY0MTg6IGdjYy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1
CmNvbmZpZ3VyZTo2NDI0OiAkPyA9IDAKY29uZmlndXJlOjY0Mzk6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZTo2NDUwOiBjaGVja2luZyBmb3IgdV9pbnQzMl90CmNvbmZpZ3VyZTo2NDgwOiBnY2MtNC4x
IC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjQ4NjogJD8gPSAwCmNvbmZpZ3VyZTo2
NTAxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjUxNjogY2hlY2tpbmcgd2hldGhlciBtYXRoLmgg
ZGVmaW5lcyBmcGNsYXNzaWZ5CmNvbmZpZ3VyZTo2NTUxOiBnY2MtNC4xIC1jIC1nICBjb25mdGVz
dC5jID4mNQpjb25maWd1cmU6NjU1NzogJD8gPSAwCmNvbmZpZ3VyZTo2NTgwOiByZXN1bHQ6IHll
cwpjb25maWd1cmU6NjU5OTogY2hlY2tpbmcgZm9yIGZkYXRhc3luYwpjb25maWd1cmU6NjY1NTog
Z2NjLTQuMSAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+JjUKY29uZmln
dXJlOjY2NjE6ICQ/ID0gMApjb25maWd1cmU6NjY3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY1
OTk6IGNoZWNraW5nIGZvciBnZXRhZGRyaW5mbwpjb25maWd1cmU6NjY1NTogZ2NjLTQuMSAtbyBj
b25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkICA+JjUKY29uZmlndXJlOjY2NjE6ICQ/
ID0gMApjb25maWd1cmU6NjY3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY1OTk6IGNoZWNraW5n
IGZvciBnZXRob3N0YnluYW1lCmNvbmZpZ3VyZTo2NjU1OiBnY2MtNC4xIC1vIGNvbmZ0ZXN0IC1n
ICAgY29uZnRlc3QuYyAtbHB0aHJlYWQgID4mNQpjb25maWd1cmU6NjY2MTogJD8gPSAwCmNvbmZp
Z3VyZTo2Njc5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjU5OTogY2hlY2tpbmcgZm9yIGdldGhv
c3RieW5hbWVfcgpjb25maWd1cmU6NjY1NTogZ2NjLTQuMSAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0
ZXN0LmMgLWxwdGhyZWFkICA+JjUKY29uZmlndXJlOjY2NjE6ICQ/ID0gMApjb25maWd1cmU6NjY3
OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY1OTk6IGNoZWNraW5nIGZvciBnZXRvcHRfbG9uZwpj
b25maWd1cmU6NjY1NTogZ2NjLTQuMSAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxwdGhy
ZWFkICA+JjUKY29uZmlndXJlOjY2NjE6ICQ/ID0gMApjb25maWd1cmU6NjY3OTogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjY1OTk6IGNoZWNraW5nIGZvciBpbmV0X2F0b24KY29uZmlndXJlOjY2NTU6
IGdjYy00LjEgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNvbmZp
Z3VyZTo2NjYxOiAkPyA9IDAKY29uZmlndXJlOjY2Nzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2
NTk5OiBjaGVja2luZyBmb3IgaW5ldF9wdG9uCmNvbmZpZ3VyZTo2NjU1OiBnY2MtNC4xIC1vIGNv
bmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbHB0aHJlYWQgID4mNQpjb25maWd1cmU6NjY2MTogJD8g
PSAwCmNvbmZpZ3VyZTo2Njc5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjU5OTogY2hlY2tpbmcg
Zm9yIHB0aHJlYWRfeWllbGQKY29uZmlndXJlOjY2Nzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2
NTk5OiBjaGVja2luZyBmb3Igc2NoZWRfeWllbGQKY29uZmlndXJlOjY2NTU6IGdjYy00LjEgLW8g
Y29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo2NjYxOiAk
PyA9IDAKY29uZmlndXJlOjY2Nzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2Njk5OiBjaGVja2lu
ZyB3aGV0aGVyIHRvIGNvbXBpbGUgd2l0aCBub24tYXRvbWljICJhdG9taWMiIHJvdXRpbmVzCmNv
bmZpZ3VyZTo2NzAxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2NzI3OiBjaGVja2luZyB3aGV0aGVy
IHRvIGNvbXBpbGUgd2l0aCBhc3NlbWJseS1iYXNlZCBhdG9taWMgZnVuY3Rpb25zCmNvbmZpZ3Vy
ZTo2NzI5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6Njc1ODogY2hlY2tpbmcgc3lzL2ZpbGUuaCB1
c2FiaWxpdHkKY29uZmlndXJlOjY3NzU6IGdjYy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNv
bmZpZ3VyZTo2NzgxOiAkPyA9IDAKY29uZmlndXJlOjY3OTU6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy
ZTo2Nzk5OiBjaGVja2luZyBzeXMvZmlsZS5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2ODE0OiBnY2Mt
NC4xIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2ODIwOiAkPyA9IDAKY29uZmlndXJlOjY4MzQ6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2ODYyOiBjaGVja2luZyBmb3Igc3lzL2ZpbGUuaApjb25m
aWd1cmU6Njg3MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY3NTg6IGNoZWNraW5nIHRlcm1pb3Mu
aCB1c2FiaWxpdHkKY29uZmlndXJlOjY3NzU6IGdjYy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1
CmNvbmZpZ3VyZTo2NzgxOiAkPyA9IDAKY29uZmlndXJlOjY3OTU6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZTo2Nzk5OiBjaGVja2luZyB0ZXJtaW9zLmggcHJlc2VuY2UKY29uZmlndXJlOjY4MTQ6IGdj
Yy00LjEgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjY4MjA6ICQ/ID0gMApjb25maWd1cmU6Njgz
NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY4NjI6IGNoZWNraW5nIGZvciB0ZXJtaW9zLmgKY29u
ZmlndXJlOjY4NzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2ODg4OiBjaGVja2luZyBmb3Igc2Vs
ZWN0CmNvbmZpZ3VyZTo2OTQ0OiBnY2MtNC4xIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAt
bHB0aHJlYWQgID4mNQpjb25maWd1cmU6Njk1MDogJD8gPSAwCmNvbmZpZ3VyZTo2OTY4OiByZXN1
bHQ6IHllcwpjb25maWd1cmU6Njg4ODogY2hlY2tpbmcgZm9yIHN0cnBicmsKY29uZmlndXJlOjY5
NDQ6IGdjYy00LjEgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNv
bmZ0ZXN0LmM6NzA6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1pbiBmdW5j
dGlvbiAnc3RycGJyaycKY29uZmlndXJlOjY5NTA6ICQ/ID0gMApjb25maWd1cmU6Njk2ODogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjY5OTQ6IGNoZWNraW5nIHN5cy9zZWxlY3QuaCB1c2FiaWxpdHkK
Y29uZmlndXJlOjcwMTE6IGdjYy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3
MDE3OiAkPyA9IDAKY29uZmlndXJlOjcwMzE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3MDM1OiBj
aGVja2luZyBzeXMvc2VsZWN0LmggcHJlc2VuY2UKY29uZmlndXJlOjcwNTA6IGdjYy00LjEgLUUg
IGNvbmZ0ZXN0LmMKY29uZmlndXJlOjcwNTY6ICQ/ID0gMApjb25maWd1cmU6NzA3MDogcmVzdWx0
OiB5ZXMKY29uZmlndXJlOjcwOTg6IGNoZWNraW5nIGZvciBzeXMvc2VsZWN0LmgKY29uZmlndXJl
OjcxMDY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2OTk0OiBjaGVja2luZyBzeXMvc29ja2V0Lmgg
dXNhYmlsaXR5CmNvbmZpZ3VyZTo3MDExOiBnY2MtNC4xIC1jIC1nICBjb25mdGVzdC5jID4mNQpj
b25maWd1cmU6NzAxNzogJD8gPSAwCmNvbmZpZ3VyZTo3MDMxOiByZXN1bHQ6IHllcwpjb25maWd1
cmU6NzAzNTogY2hlY2tpbmcgc3lzL3NvY2tldC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo3MDUwOiBn
Y2MtNC4xIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo3MDU2OiAkPyA9IDAKY29uZmlndXJlOjcw
NzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3MDk4OiBjaGVja2luZyBmb3Igc3lzL3NvY2tldC5o
CmNvbmZpZ3VyZTo3MTA2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NzExOTogY2hlY2tpbmcgdHlw
ZXMgb2YgYXJndW1lbnRzIGZvciBzZWxlY3QKY29uZmlndXJlOjcxNTc6IGdjYy00LjEgLWMgLWcg
IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3MTYzOiAkPyA9IDAKY29uZmlndXJlOjcxODQ6IHJl
c3VsdDogaW50LGZkX3NldCAqLHN0cnVjdCB0aW1ldmFsICoKY29uZmlndXJlOjcyMDc6IGNoZWNr
aW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4KY29uZmlndXJlOjcyNDA6IGdj
Yy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3MjQ2OiAkPyA9IDAKY29uZmln
dXJlOjcyNzg6IGdjYy00LjEgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1
bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzo2MDogZXJyb3I6ICdub3QnIHVuZGVjbGFyZWQgKGZp
cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25mdGVzdC5jOjYwOiBlcnJvcjogKEVhY2ggdW5k
ZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQpjb25mdGVzdC5jOjYwOiBl
cnJvcjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pCmNvbmZ0ZXN0LmM6NjA6IGVy
cm9yOiBleHBlY3RlZCAnOycgYmVmb3JlICdiaWcnCmNvbmZpZ3VyZTo3Mjg0OiAkPyA9IDEKY29u
ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmlu
ZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUg
UEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUg
UEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVm
aW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFU
RURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2Rl
ZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf
SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx
CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm
aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBT
VERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJ
TkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf
SCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwg
I2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVm
aW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUg
SEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBI
QVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNk
ZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2Rl
ZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNk
ZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNk
ZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUg
SEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhB
VkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmlu
ZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJH
NSAoc3RydWN0IHRpbWV2YWwgKikKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg
PHN5cy90eXBlcy5oPgp8ICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KfCAKfCBpbnQKfCBtYWluICgp
Cnwgewp8ICNpZiBCWVRFX09SREVSICE9IEJJR19FTkRJQU4KfCAgbm90IGJpZyBlbmRpYW4KfCAj
ZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjc0MjQ6IHJlc3VsdDog
bm8KY29uZmlndXJlOjc1MTE6IHVwZGF0aW5nIGNhY2hlIGNvbmZpZy5jYWNoZQpjb25maWd1cmU6
NzU1NTogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBwb3cKY29uZmlndXJlOjc1OTY6
IGdjYy00LjEgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1scHRocmVhZCAgPiY1CmNvbmZ0
ZXN0LmM6NjA6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1pbiBmdW5jdGlv
biAncG93JwovdG1wL2NjR2h0U0FVLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL2hvbWUvYmFuZy9k
dG4tMi41LjAvY29uZnRlc3QuYzo2NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgcG93Jwpjb2xs
ZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6NzYwMjogJD8gPSAxCmNv
bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZp
bmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5l
IFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2Rl
ZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RB
VEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8ICNk
ZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT
X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg
U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9FWEVD
SU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf
SCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT
X0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAp8
ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwgI2Rl
ZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVmaW5l
IEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUg
SEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEKfCAj
ZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNk
ZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEKfCAj
ZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEKfCAj
ZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5l
IEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBI
QVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNkZWZp
bmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FS
RzUgKHN0cnVjdCB0aW1ldmFsICopCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92
ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAg
IFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdD
Qwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls
bCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8
IGNoYXIgcG93ICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHBvdyAoKTsKfCAgIDsK
fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjc1OTY6IGdjYy00LjEgLW8gY29uZnRlc3QgLWcg
ICBjb25mdGVzdC5jIC1sbSAgLWxwdGhyZWFkICA+JjUKY29uZnRlc3QuYzo2MDogd2FybmluZzog
Y29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdwb3cnCmNvbmZpZ3VyZTo3
NjAyOiAkPyA9IDAKY29uZmlndXJlOjc2MzA6IHJlc3VsdDogLWxtCmNvbmZpZ3VyZTo3NjQyOiBj
aGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIGRsb3Blbgpjb25maWd1cmU6NzY4MzogZ2Nj
LTQuMSAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxtIC1scHRocmVhZCAgPiY1Ci90bXAv
Y2NVRHVCbDQubzogSW4gZnVuY3Rpb24gYG1haW4nOgovaG9tZS9iYW5nL2R0bi0yLjUuMC9jb25m
dGVzdC5jOjY0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBkbG9wZW4nCmNvbGxlY3QyOiBsZCBy
ZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo3Njg5OiAkPyA9IDEKY29uZmlndXJlOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdF
X05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9C
VUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RB
TExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3Zh
ciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZF
X1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURF
UlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm
aW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl
ZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBI
QVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVf
VV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFU
QVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhP
U1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFW
RV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZF
X0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFW
RV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFW
RV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQ
QlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP
Q0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1Rf
VFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0
IHRpbWV2YWwgKikKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55
IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIg
YmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVp
bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg
Ki8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBkbG9w
ZW4gKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZGxvcGVuICgpOwp8ICAgOwp8ICAg
cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NzY4MzogZ2NjLTQuMSAtbyBjb25mdGVzdCAtZyAgIGNv
bmZ0ZXN0LmMgLWxkbCAgLWxtIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo3Njg5OiAkPyA9IDAK
Y29uZmlndXJlOjc3MTc6IHJlc3VsdDogLWxkbApjb25maWd1cmU6Nzc1NTogY2hlY2tpbmcgZm9y
IHRjbCBpbnN0YWxsYXRpb24gKHZlcnNpb24gOC40KQpjb25maWd1cmU6Nzc2NjogY2hlY2tpbmcg
Zm9yIHRjbC5oICh2ZXJzaW9uIDguNCkgaW4gL3Vzci9pbmNsdWRlCmNvbmZpZ3VyZTo3Nzk4OiBn
Y2MtNC4xIC1vIGNvbmZ0ZXN0IC1nICAtSS91c3IvaW5jbHVkZSAgY29uZnRlc3QuYyAtbGRsIC1s
bSAtbHB0aHJlYWQgID4mNQpjb25mdGVzdC5jOjU0OjMzOiBlcnJvcjogdGNsLmg6IE5vIHN1Y2gg
ZmlsZSBvciBkaXJlY3RvcnkKY29uZnRlc3QuYzo1NzoxODogZXJyb3I6ICNlcnJvciAiaW5jb3Jy
ZWN0IHZlcnNpb24iCmNvbmZpZ3VyZTo3ODA0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIK
fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIi
CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg
IiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09O
RkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVm
aW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURf
U0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF
X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NU
UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdT
X0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg
MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNk
ZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUg
SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBTSVpF
T0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBIQVZFX1BUUkRJ
RkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQzMl9U
IDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFUQVNZTkMgMQp8
ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUUg
MQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRf
TE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfUFRP
TiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TQ0hFRF9Z
SUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFWRV9URVJNSU9T
X0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQQlJLIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEK
fCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcy
MzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0IHRpbWV2YWwg
KikKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAgICAgICAgICAgICAgICNpbmNsdWRl
IDx0Y2wuaD4KfCAKfCAgICAgICAgICAgICAgICAgI2lmIChUQ0xfTUFKT1JfVkVSU0lPTiAhPSA4
KSB8fCAgICAgICAgICAgICAgICAgICAgIChUQ0xfTUlOT1JfVkVSU0lPTiAhPSA0KQp8ICAgICAg
ICAgICAgICAgICAjZXJyb3IgImluY29ycmVjdCB2ZXJzaW9uIgp8ICAgICAgICAgICAgICAgICAj
ZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg
fQpjb25maWd1cmU6NzgxOTogcmVzdWx0OiBubwpjb25maWd1cmU6Nzc2NjogY2hlY2tpbmcgZm9y
IHRjbC5oICh2ZXJzaW9uIDguNCkgaW4gL3Vzci9sb2NhbC9pbmNsdWRlCmNvbmZpZ3VyZTo3Nzk4
OiBnY2MtNC4xIC1vIGNvbmZ0ZXN0IC1nICAtSS91c3IvbG9jYWwvaW5jbHVkZSAgY29uZnRlc3Qu
YyAtbGRsIC1sbSAtbHB0aHJlYWQgID4mNQpjb25mdGVzdC5jOjU0OjMzOiBlcnJvcjogdGNsLmg6
IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZnRlc3QuYzo1NzoxODogZXJyb3I6ICNlcnJv
ciAiaW5jb3JyZWN0IHZlcnNpb24iCmNvbmZpZ3VyZTo3ODA0OiAkPyA9IDEKY29uZmlndXJlOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdF
X05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9C
VUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RB
TExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3Zh
ciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZF
X1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURF
UlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm
aW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl
ZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBI
QVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVf
VV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFU
QVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhP
U1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFW
RV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZF
X0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFW
RV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFW
RV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQ
QlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP
Q0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1Rf
VFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0
IHRpbWV2YWwgKikKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAgICAgICAgICAgICAg
ICNpbmNsdWRlIDx0Y2wuaD4KfCAKfCAgICAgICAgICAgICAgICAgI2lmIChUQ0xfTUFKT1JfVkVS
U0lPTiAhPSA4KSB8fCAgICAgICAgICAgICAgICAgICAgIChUQ0xfTUlOT1JfVkVSU0lPTiAhPSA0
KQp8ICAgICAgICAgICAgICAgICAjZXJyb3IgImluY29ycmVjdCB2ZXJzaW9uIgp8ICAgICAgICAg
ICAgICAgICAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8IAp8ICAgOwp8ICAgcmV0
dXJuIDA7CnwgfQpjb25maWd1cmU6NzgxOTogcmVzdWx0OiBubwpjb25maWd1cmU6Nzc2NjogY2hl
Y2tpbmcgZm9yIHRjbC5oICh2ZXJzaW9uIDguNCkgaW4gL3Vzci9pbmNsdWRlL3RjbDguNApjb25m
aWd1cmU6Nzc5ODogZ2NjLTQuMSAtbyBjb25mdGVzdCAtZyAgLUkvdXNyL2luY2x1ZGUvdGNsOC40
ICBjb25mdGVzdC5jIC1sZGwgLWxtIC1scHRocmVhZCAgPiY1CmNvbmZpZ3VyZTo3ODA0OiAkPyA9
IDAKY29uZmlndXJlOjc4MTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3ODM5OiBjaGVja2luZyBm
b3IgdGNsIGxpYnJhcnkgaW4gL3Vzci9saWI6IC1sdGNsOC40IC1sZGwgLWxtIC1scHRocmVhZCAK
Y29uZmlndXJlOjc4NzI6IGdjYy00LjEgLW8gY29uZnRlc3QgLWcgIC1JL3Vzci9pbmNsdWRlL3Rj
bDguNCAgLUwvdXNyL2xpYiBjb25mdGVzdC5jIC1sdGNsOC40IC1sZGwgLWxtIC1scHRocmVhZCAg
PiY1CmNvbmZpZ3VyZTo3ODc4OiAkPyA9IDAKY29uZmlndXJlOjc4ODU6IHJlc3VsdDogeWVzCmNv
bmZpZ3VyZTo3OTYxOiBjaGVja2luZyB3aGV0aGVyIHRvIGNvbXBpbGUgd2l0aCBnb29nbGUgcHJv
ZmlsaW5nCmNvbmZpZ3VyZTo3OTYzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MjE5OiBjaGVja2lu
ZyB3aGV0aGVyIGJsdWV0b290aCBzdXBwb3J0IHNob3VsZCBiZSBlbmFibGVkCmNvbmZpZ3VyZTo4
MjI3OiByZXN1bHQ6IHRyeQpjb25maWd1cmU6ODIzMDogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29u
dGFpbmluZyBiYXN3YXAKY29uZmlndXJlOjgyNzE6IGdjYy00LjEgLW8gY29uZnRlc3QgLWcgICBj
b25mdGVzdC5jIC1sZGwgLWxtIC1scHRocmVhZCAgPiY1Ci90bXAvY2N3MU50ZXMubzogSW4gZnVu
Y3Rpb24gYG1haW4nOgovaG9tZS9iYW5nL2R0bi0yLjUuMC9jb25mdGVzdC5jOjY1OiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGBiYXN3YXAnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3Rh
dHVzCmNvbmZpZ3VyZTo4Mjc3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmlu
ZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVm
aW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0
YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lT
X0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lG
SUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK
fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp
bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW
RV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ
TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZT
X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1Qg
OAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwg
I2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVm
aW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUg
SEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZp
bmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwg
I2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2Rl
ZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwg
I2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhB
VkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5l
IFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3Nl
dCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVm
aW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAK
fCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv
ci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUg
b2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291
bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAj
ZW5kaWYKfCBjaGFyIGJhc3dhcCAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBiYXN3
YXAgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4MjcxOiBnY2MtNC4xIC1v
IGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbGJsdWV0b290aCAgLWxkbCAtbG0gLWxwdGhyZWFk
ICA+JjUKL3Vzci9iaW4vbGQ6IGNhbm5vdCBmaW5kIC1sYmx1ZXRvb3RoCmNvbGxlY3QyOiBsZCBy
ZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo4Mjc3OiAkPyA9IDEKY29uZmlndXJlOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdF
X05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9C
VUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RB
TExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3Zh
ciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZF
X1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURF
UlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm
aW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl
ZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBI
QVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVf
VV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFU
QVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhP
U1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFW
RV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZF
X0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFW
RV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFW
RV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQ
QlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP
Q0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1Rf
VFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0
IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8IC8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlw
ZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj
aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1
bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1
cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGJhc3dhcCAoKTsKfCBpbnQKfCBtYWluICgp
Cnwgewp8IHJldHVybiBiYXN3YXAgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy
ZTo4MzA1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MzI5OiBjaGVja2luZyBibHVldG9vdGgvYmx1
ZXRvb3RoLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo4MzQ2OiBnY2MtNC4xIC1jIC1nICBjb25mdGVz
dC5jID4mNQpjb25mdGVzdC5jOjg3OjMzOiBlcnJvcjogYmx1ZXRvb3RoL2JsdWV0b290aC5oOiBO
byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTo4MzUyOiAkPyA9IDEKY29uZmlndXJl
OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNL
QUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FH
RV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FH
RV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElO
U1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAi
L3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBI
QVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwg
I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUg
SEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhB
VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hF
QURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwg
I2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmlu
ZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhB
VkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9G
REFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dF
VEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUg
SEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBI
QVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUg
SEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUg
SEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9T
VFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxF
Q1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3Ry
dWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8IC8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNf
VFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf
U1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1RE
Q19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8
ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cnwg
IyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBT
VERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5
Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB
VkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB
VkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYg
SEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB
VkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxi
bHVldG9vdGgvYmx1ZXRvb3RoLmg+CmNvbmZpZ3VyZTo4MzY2OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy
ZTo4MzcwOiBjaGVja2luZyBibHVldG9vdGgvYmx1ZXRvb3RoLmggcHJlc2VuY2UKY29uZmlndXJl
OjgzODU6IGdjYy00LjEgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzo1NDozMzogZXJyb3I6IGJs
dWV0b290aC9ibHVldG9vdGguaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6
ODM5MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz
LmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B
TUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ
TkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJ
R19TVEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJ
TlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5H
X0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5l
IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l
IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF
X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U
VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE
X0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNk
ZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp
bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5l
IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJF
VFNJR1RZUEUgdm9pZAp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9V
SU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xB
U1NJRlkKfCAjZGVmaW5lIEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklO
Rk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9T
VEJZTkFNRV9SIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9J
TkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhS
RUFEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9T
WVNfRklMRV9IIDEKfCAjZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VM
RUNUIDEKfCAjZGVmaW5lIEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1Rf
SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9B
UkcxIGludAp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5l
IFNFTEVDVF9UWVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFsICopCnwgI2RlZmluZSBHT09HTEVfUFJP
RklMRV9FTkFCTEVEIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGJsdWV0
b290aC9ibHVldG9vdGguaD4KY29uZmlndXJlOjg0MDU6IHJlc3VsdDogbm8KY29uZmlndXJlOjg0
MzM6IGNoZWNraW5nIGZvciBibHVldG9vdGgvYmx1ZXRvb3RoLmgKY29uZmlndXJlOjg0NDE6IHJl
c3VsdDogbm8KY29uZmlndXJlOjg0NTU6IGNoZWNraW5nIHdoZXRoZXIgYmx1ZXRvb3RoIHN1cHBv
cnQgd2FzIGZvdW5kCmNvbmZpZ3VyZTo4NDY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4NDkyOiBj
aGVja2luZyB3aGV0aGVyIGJvbmpvdXIgc3VwcG9ydCBzaG91bGQgYmUgZW5hYmxlZApjb25maWd1
cmU6ODUwMDogcmVzdWx0OiB0cnkKY29uZmlndXJlOjg1MDM6IGNoZWNraW5nIGZvciBsaWJyYXJ5
IGNvbnRhaW5pbmcgRE5TU2VydmljZVJlZ2lzdGVyCmNvbmZpZ3VyZTo4NTQ0OiBnY2MtNC4xIC1v
IGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbGRsIC1sbSAtbHB0aHJlYWQgID4mNQovdG1wL2Nj
QWlESHFHLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL2hvbWUvYmFuZy9kdG4tMi41LjAvY29uZnRl
c3QuYzo2NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgRE5TU2VydmljZVJlZ2lzdGVyJwpjb2xs
ZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6ODU1MDogJD8gPSAxCmNv
bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZp
bmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5l
IFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2Rl
ZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RB
VEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8ICNk
ZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT
X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg
U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9FWEVD
SU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf
SCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT
X0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAp8
ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwgI2Rl
ZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVmaW5l
IEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUg
SEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEKfCAj
ZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNk
ZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEKfCAj
ZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEKfCAj
ZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5l
IEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBI
QVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNkZWZp
bmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FS
RzUgKHN0cnVjdCB0aW1ldmFsICopCnwgI2RlZmluZSBHT09HTEVfUFJPRklMRV9FTkFCTEVEIDAK
fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5h
bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg
bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhl
biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYg
X19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBETlNTZXJ2aWNlUmVnaXN0
ZXIgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gRE5TU2VydmljZVJlZ2lzdGVyICgp
Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODU0NDogZ2NjLTQuMSAtbyBjb25m
dGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxkbnNfc2QgIC1sZGwgLWxtIC1scHRocmVhZCAgPiY1Ci91
c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbGRuc19zZApjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBl
eGl0IHN0YXR1cwpjb25maWd1cmU6ODU1MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy
YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwg
I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8
ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIi
CnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJTlNUQUxMX1NZU0NPTkZE
SVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCnwgI2RlZmlu
ZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NF
VFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T
WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ
TkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I
IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK
fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm
aW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKfCAjZGVmaW5lIEhB
VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgU0laRU9G
X09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAp8ICNkZWZpbmUgSEFWRV9QVFJESUZG
X1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UMzJfVCAx
CnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVmaW5lIEhBVkVfRkRBVEFTWU5DIDEKfCAj
ZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FIDEK
fCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0xP
TkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX1BUT04g
MQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfWUlF
TEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEKfCAjZGVmaW5lIEhBVkVfVEVSTUlPU19I
IDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfU1RSUEJSSyAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwg
I2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMjM0
IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFsICop
CnwgI2RlZmluZSBHT09HTEVfUFJPRklMRV9FTkFCTEVEIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4g
ICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg
YW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy
biB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90
eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4g
IkMiCnwgI2VuZGlmCnwgY2hhciBETlNTZXJ2aWNlUmVnaXN0ZXIgKCk7CnwgaW50CnwgbWFpbiAo
KQp8IHsKfCByZXR1cm4gRE5TU2VydmljZVJlZ2lzdGVyICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7
CnwgfQpjb25maWd1cmU6ODU3ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODYwMTogY2hlY2tpbmcg
ZG5zX3NkLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo4NjE4OiBnY2MtNC4xIC1jIC1nICBjb25mdGVz
dC5jID4mNQpjb25mdGVzdC5jOjg3OjIwOiBlcnJvcjogZG5zX3NkLmg6IE5vIHN1Y2ggZmlsZSBv
ciBkaXJlY3RvcnkKY29uZmlndXJlOjg2MjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n
cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiIgp8
ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiIK
fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi
Igp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUgMQp8ICNkZWZpbmUgSU5TVEFMTF9TWVNDT05G
RElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFMTF9MT0NBTFNUQVRFRElSICIvdmFyIgp8ICNkZWZp
bmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T
RVRTUEVDSUZJQyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS
SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf
SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx
CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2Rl
ZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfRVhFQ0lORk9fSCAxCnwgI2RlZmluZSBI
QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9T
WVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIFNJWkVP
Rl9PRkZfVCA4CnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKfCAjZGVmaW5lIEhBVkVfUFRSRElG
Rl9UIDEKfCAjZGVmaW5lIEhBVkVfVUlOVDMyX1QgMQp8ICNkZWZpbmUgSEFWRV9VX0lOVDMyX1Qg
MQp8ICNkZWZpbmUgSEFWRV9GUENMQVNTSUZZCnwgI2RlZmluZSBIQVZFX0ZEQVRBU1lOQyAxCnwg
I2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRSAx
CnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUVfUiAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9M
T05HIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9QVE9O
IDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NDSEVEX1lJ
RUxEIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0ZJTEVfSCAxCnwgI2RlZmluZSBIQVZFX1RFUk1JT1Nf
SCAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX1NUUlBCUksgMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8
ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMSBpbnQKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzIz
NCAoZmRfc2V0ICopCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkc1IChzdHJ1Y3QgdGltZXZhbCAq
KQp8ICNkZWZpbmUgR09PR0xFX1BST0ZJTEVfRU5BQkxFRCAwCnwgLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBp
bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwg
IyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAj
IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlm
ZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2Vu
ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAm
JiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlm
CnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gK
fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19I
CnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9I
CnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8
ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPGRuc19zZC5oPgpjb25m
aWd1cmU6ODYzODogcmVzdWx0OiBubwpjb25maWd1cmU6ODY0MjogY2hlY2tpbmcgZG5zX3NkLmgg
cHJlc2VuY2UKY29uZmlndXJlOjg2NTc6IGdjYy00LjEgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3Qu
Yzo1NDoyMDogZXJyb3I6IGRuc19zZC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZp
Z3VyZTo4NjYzOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u
ZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdF
X1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVf
Q09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVm
aW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xP
Q0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l
IEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFW
RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V
TklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAx
CnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg
I2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZp
bmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBI
QVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVf
RlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRB
RERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9H
RVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBI
QVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZF
X1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBI
QVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFW
RV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NF
TEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9U
WVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNk
ZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dM
RV9QUk9GSUxFX0VOQUJMRUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8
ZG5zX3NkLmg+CmNvbmZpZ3VyZTo4Njc3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4NzA1OiBjaGVj
a2luZyBmb3IgZG5zX3NkLmgKY29uZmlndXJlOjg3MTM6IHJlc3VsdDogbm8KY29uZmlndXJlOjg3
Mjc6IGNoZWNraW5nIHdoZXRoZXIgYm9uam91ciBzdXBwb3J0IHdhcyBmb3VuZApjb25maWd1cmU6
ODczOTogcmVzdWx0OiBubwpjb25maWd1cmU6ODc1OTogY2hlY2tpbmcgd2hldGhlciBleHBhdCBz
dXBwb3J0IHNob3VsZCBiZSBlbmFibGVkCmNvbmZpZ3VyZTo4NzY5OiByZXN1bHQ6IHRyeQpjb25m
aWd1cmU6ODgxNTogY2hlY2tpbmcgZm9yIGV4cGF0IGluIC91c3IvaW5jbHVkZSwgL3Vzci9saWIs
IC1sZXhwYXQKY29uZmlndXJlOjg4NDM6IGdjYy00LjEgLW8gY29uZnRlc3QgLWcgIC1JL3Vzci9p
bmNsdWRlICAtTC91c3IvbGliIGNvbmZ0ZXN0LmMgLWxleHBhdCAtbGRsIC1sbSAtbHB0aHJlYWQg
ID4mNQpjb25mdGVzdC5jOjU1OjM1OiBlcnJvcjogZXhwYXQuaDogTm8gc3VjaCBmaWxlIG9yIGRp
cmVjdG9yeQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6NjE6IGVy
cm9yOiAnWE1MX1BhcnNlcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p
CmNvbmZ0ZXN0LmM6NjE6IGVycm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVw
b3J0ZWQgb25seSBvbmNlCmNvbmZ0ZXN0LmM6NjE6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlvbiBp
dCBhcHBlYXJzIGluLikKY29uZnRlc3QuYzo2MTogZXJyb3I6IGV4cGVjdGVkICc7JyBiZWZvcmUg
J3BhcnNlcicKY29uZnRlc3QuYzo2MjogZXJyb3I6ICdwYXJzZXInIHVuZGVjbGFyZWQgKGZpcnN0
IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25mdGVzdC5jOjYyOiBlcnJvcjogJ05VTEwnIHVuZGVj
bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25maWd1cmU6ODg0OTogJD8gPSAx
CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNk
ZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVm
aW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVm
aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwg
I2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FM
U1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8
ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ
UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK
fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg
I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp
bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9F
WEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ
TkdfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ
UEVTX0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9p
ZAp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwg
I2RlZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVm
aW5lIEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZp
bmUgSEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEK
fCAjZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8
ICNkZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEK
fCAjZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEK
fCAjZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVm
aW5lIEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNk
ZWZpbmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBF
X0FSRzUgKHN0cnVjdCB0aW1ldmFsICopCnwgI2RlZmluZSBHT09HTEVfUFJPRklMRV9FTkFCTEVE
IDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAgICAgICAgICAgICAgICNpbmNsdWRl
IDxleHBhdC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgCQlYTUxfUGFyc2VyIHBhcnNl
cjsKfCAJCXBhcnNlciA9IFhNTF9QYXJzZXJDcmVhdGUoTlVMTCk7CnwgCnwgICA7CnwgICByZXR1
cm4gMDsKfCB9CmNvbmZpZ3VyZTo4ODY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4ODE1OiBjaGVj
a2luZyBmb3IgZXhwYXQgaW4gL3Vzci9pbmNsdWRlLCAvdXNyL2xvY2FsL2xpYiwgLWxleHBhdApj
b25maWd1cmU6ODg0MzogZ2NjLTQuMSAtbyBjb25mdGVzdCAtZyAgLUkvdXNyL2luY2x1ZGUgIC1M
L3Vzci9sb2NhbC9saWIgY29uZnRlc3QuYyAtbGV4cGF0IC1sZGwgLWxtIC1scHRocmVhZCAgPiY1
CmNvbmZ0ZXN0LmM6NTU6MzU6IGVycm9yOiBleHBhdC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0
b3J5CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzo2MTogZXJyb3I6
ICdYTUxfUGFyc2VyJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKY29u
ZnRlc3QuYzo2MTogZXJyb3I6IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRl
ZCBvbmx5IG9uY2UKY29uZnRlc3QuYzo2MTogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFw
cGVhcnMgaW4uKQpjb25mdGVzdC5jOjYxOiBlcnJvcjogZXhwZWN0ZWQgJzsnIGJlZm9yZSAncGFy
c2VyJwpjb25mdGVzdC5jOjYyOiBlcnJvcjogJ3BhcnNlcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNl
IGluIHRoaXMgZnVuY3Rpb24pCmNvbmZ0ZXN0LmM6NjI6IGVycm9yOiAnTlVMTCcgdW5kZWNsYXJl
ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNvbmZpZ3VyZTo4ODQ5OiAkPyA9IDEKY29u
ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmlu
ZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUg
UEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUg
UEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVm
aW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFU
RURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2Rl
ZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf
SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx
CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm
aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBT
VERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJ
TkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf
SCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwg
I2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVm
aW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUg
SEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBI
QVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNk
ZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2Rl
ZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNk
ZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNk
ZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUg
SEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhB
VkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmlu
ZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJH
NSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8
IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAgICAgICAgICAgICAgICAgI2luY2x1ZGUgPGV4
cGF0Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAJCVhNTF9QYXJzZXIgcGFyc2VyOwp8
IAkJcGFyc2VyID0gWE1MX1BhcnNlckNyZWF0ZShOVUxMKTsKfCAKfCAgIDsKfCAgIHJldHVybiAw
Owp8IH0KY29uZmlndXJlOjg4Njg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg4MTU6IGNoZWNraW5n
IGZvciBleHBhdCBpbiAvdXNyL2xvY2FsL2luY2x1ZGUsIC91c3IvbGliLCAtbGV4cGF0CmNvbmZp
Z3VyZTo4ODQzOiBnY2MtNC4xIC1vIGNvbmZ0ZXN0IC1nICAtSS91c3IvbG9jYWwvaW5jbHVkZSAg
LUwvdXNyL2xpYiBjb25mdGVzdC5jIC1sZXhwYXQgLWxkbCAtbG0gLWxwdGhyZWFkICA+JjUKY29u
ZnRlc3QuYzo1NTozNTogZXJyb3I6IGV4cGF0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkK
Y29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjYxOiBlcnJvcjogJ1hN
TF9QYXJzZXInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25mdGVz
dC5jOjYxOiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9u
bHkgb25jZQpjb25mdGVzdC5jOjYxOiBlcnJvcjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFy
cyBpbi4pCmNvbmZ0ZXN0LmM6NjE6IGVycm9yOiBleHBlY3RlZCAnOycgYmVmb3JlICdwYXJzZXIn
CmNvbmZ0ZXN0LmM6NjI6IGVycm9yOiAncGFyc2VyJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g
dGhpcyBmdW5jdGlvbikKY29uZnRlc3QuYzo2MjogZXJyb3I6ICdOVUxMJyB1bmRlY2xhcmVkIChm
aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKY29uZmlndXJlOjg4NDk6ICQ/ID0gMQpjb25maWd1
cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVmaW5lIFBB
Q0tBR0VfTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIiCnwgI2RlZmluZSBQQUNL
QUdFX1ZFUlNJT04gIiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIiCnwgI2RlZmluZSBQQUNL
QUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUgMQp8ICNkZWZpbmUg
SU5TVEFMTF9TWVNDT05GRElSICIvZXRjIgp8ICNkZWZpbmUgSU5TVEFMTF9MT0NBTFNUQVRFRElS
ICIvdmFyIgp8ICNkZWZpbmUgT0FTWVNfREVCVUdfTE9DS0lOR19FTkFCTEVEIDEKfCAjZGVmaW5l
IEhBVkVfUFRIUkVBRF9TRVRTUEVDSUZJQyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK
fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg
SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIFNURENf
SEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfRVhFQ0lORk9f
SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8
ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK
fCAjZGVmaW5lIFNJWkVPRl9PRkZfVCA4CnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKfCAjZGVm
aW5lIEhBVkVfUFRSRElGRl9UIDEKfCAjZGVmaW5lIEhBVkVfVUlOVDMyX1QgMQp8ICNkZWZpbmUg
SEFWRV9VX0lOVDMyX1QgMQp8ICNkZWZpbmUgSEFWRV9GUENMQVNTSUZZCnwgI2RlZmluZSBIQVZF
X0ZEQVRBU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVf
R0VUSE9TVEJZTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUVfUiAxCnwgI2RlZmlu
ZSBIQVZFX0dFVE9QVF9MT05HIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5l
IEhBVkVfSU5FVF9QVE9OIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9ZSUVMRCAxCnwgI2RlZmlu
ZSBIQVZFX1NDSEVEX1lJRUxEIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0ZJTEVfSCAxCnwgI2RlZmlu
ZSBIQVZFX1RFUk1JT1NfSCAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZF
X1NUUlBCUksgMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9T
WVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMSBpbnQKfCAjZGVmaW5lIFNF
TEVDVF9UWVBFX0FSRzIzNCAoZmRfc2V0ICopCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkc1IChz
dHJ1Y3QgdGltZXZhbCAqKQp8ICNkZWZpbmUgR09PR0xFX1BST0ZJTEVfRU5BQkxFRCAwCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8ZXhwYXQu
aD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8IAkJWE1MX1BhcnNlciBwYXJzZXI7CnwgCQlw
YXJzZXIgPSBYTUxfUGFyc2VyQ3JlYXRlKE5VTEwpOwp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg
fQpjb25maWd1cmU6ODg2ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODgxNTogY2hlY2tpbmcgZm9y
IGV4cGF0IGluIC91c3IvbG9jYWwvaW5jbHVkZSwgL3Vzci9sb2NhbC9saWIsIC1sZXhwYXQKY29u
ZmlndXJlOjg4NDM6IGdjYy00LjEgLW8gY29uZnRlc3QgLWcgIC1JL3Vzci9sb2NhbC9pbmNsdWRl
ICAtTC91c3IvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgLWxleHBhdCAtbGRsIC1sbSAtbHB0aHJlYWQg
ID4mNQpjb25mdGVzdC5jOjU1OjM1OiBlcnJvcjogZXhwYXQuaDogTm8gc3VjaCBmaWxlIG9yIGRp
cmVjdG9yeQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6NjE6IGVy
cm9yOiAnWE1MX1BhcnNlcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p
CmNvbmZ0ZXN0LmM6NjE6IGVycm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVw
b3J0ZWQgb25seSBvbmNlCmNvbmZ0ZXN0LmM6NjE6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlvbiBp
dCBhcHBlYXJzIGluLikKY29uZnRlc3QuYzo2MTogZXJyb3I6IGV4cGVjdGVkICc7JyBiZWZvcmUg
J3BhcnNlcicKY29uZnRlc3QuYzo2MjogZXJyb3I6ICdwYXJzZXInIHVuZGVjbGFyZWQgKGZpcnN0
IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25mdGVzdC5jOjYyOiBlcnJvcjogJ05VTEwnIHVuZGVj
bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25maWd1cmU6ODg0OTogJD8gPSAx
CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNk
ZWZpbmUgUEFDS0FHRV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVm
aW5lIFBBQ0tBR0VfVkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVm
aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwg
I2RlZmluZSBJTlNUQUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FM
U1RBVEVESVIgIi92YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8
ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ
UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK
fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg
I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp
bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9F
WEVDSU5GT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ
TkdfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ
UEVTX0ggMQp8ICNkZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9p
ZAp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwg
I2RlZmluZSBIQVZFX1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVm
aW5lIEhBVkVfRkRBVEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZp
bmUgSEFWRV9HRVRIT1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEK
fCAjZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8
ICNkZWZpbmUgSEFWRV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEK
fCAjZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEK
fCAjZGVmaW5lIEhBVkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVm
aW5lIEhBVkVfU1RSUEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNk
ZWZpbmUgU0VMRUNUX1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBF
X0FSRzUgKHN0cnVjdCB0aW1ldmFsICopCnwgI2RlZmluZSBHT09HTEVfUFJPRklMRV9FTkFCTEVE
IDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAgICAgICAgICAgICAgICNpbmNsdWRl
IDxleHBhdC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgCQlYTUxfUGFyc2VyIHBhcnNl
cjsKfCAJCXBhcnNlciA9IFhNTF9QYXJzZXJDcmVhdGUoTlVMTCk7CnwgCnwgICA7CnwgICByZXR1
cm4gMDsKfCB9CmNvbmZpZ3VyZTo4ODY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4ODg1OiBjaGVj
a2luZyB3aGV0aGVyIGxpYmV4cGF0IHdhcyBmb3VuZApjb25maWd1cmU6ODg5MTogcmVzdWx0OiBu
bwpjb25maWd1cmU6ODkzNDogY2hlY2tpbmcgd2hldGhlciB4ZXJjZXMtYyBzdXBwb3J0IHNob3Vs
ZCBiZSBlbmFibGVkCmNvbmZpZ3VyZTo4OTQ2OiByZXN1bHQ6IHRyeQpjb25maWd1cmU6ODk1OTog
Y2hlY2tpbmcgd2hldGhlciB4ZXJjZXMtYyAoPj0gdjIuNi4wKSB3YXMgZm91bmQKY29uZmlndXJl
OjkwMTY6IGcrKy00LjEgLW8gY29uZnRlc3QgLWcgLUkvdXNyL2luY2x1ZGUgLUwvdXNyL2xpYiBj
b25mdGVzdC5jcHAgLWx4ZXJjZXMtYyA+JjUKY29uZmlndXJlOjkwMjI6ICQ/ID0gMApjb25maWd1
cmU6OTA1OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjkwODY6IGNoZWNraW5nIHdoZXRoZXIgdGNs
cmVhZGxpbmUgc3VwcG9ydCBzaG91bGQgYmUgZW5hYmxlZApjb25maWd1cmU6OTA5NzogcmVzdWx0
OiB0cnkKY29uZmlndXJlOjkxMDc6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgcmVh
ZGxpbmUKY29uZmlndXJlOjkxNDg6IGcrKy00LjEgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5j
cHAgLWxkbCAtbG0gLWxwdGhyZWFkICA+JjUKL3RtcC9jY3NYUno5Sy5vOiBJbiBmdW5jdGlvbiBg
bWFpbic6Ci9ob21lL2JhbmcvZHRuLTIuNS4wL2NvbmZ0ZXN0LmNwcDo2NjogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgcmVhZGxpbmUnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz
CmNvbmZpZ3VyZTo5MTU0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg
LyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBB
Q0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQ
QUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5l
IEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIK
fCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RF
QlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMg
MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj
ZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZp
bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg
SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9F
UlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf
SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0gg
MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8
ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2Rl
ZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5l
IEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFW
RV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUg
SEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2Rl
ZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmlu
ZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZp
bmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNF
TEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAq
KQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5l
IEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8ICNkZWZpbmUgWEVSQ0VTX0NfRU5BQkxFRCAxCnwg
LyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwg
cHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1p
Z2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4g
aXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9f
Y3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgcmVhZGxpbmUgKCk7CnwgaW50
CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gcmVhZGxpbmUgKCk7CnwgICA7CnwgICByZXR1cm4gMDsK
fCB9CmNvbmZpZ3VyZTo5MTQ4OiBnKystNC4xIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuY3Bw
IC1scmVhZGxpbmUgIC1sZGwgLWxtIC1scHRocmVhZCAgPiY1Ci91c3IvYmluL2xkOiBjYW5ub3Qg
ZmluZCAtbHJlYWRsaW5lCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp
Z3VyZTo5MTU0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u
ZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdF
X1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVf
Q09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVm
aW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xP
Q0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l
IEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFW
RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V
TklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAx
CnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg
I2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZp
bmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBI
QVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVf
RlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRB
RERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9H
RVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBI
QVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZF
X1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBI
QVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFW
RV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NF
TEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9U
WVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNk
ZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dM
RV9QUk9GSUxFX0VOQUJMRUQgMAp8ICNkZWZpbmUgWEVSQ0VTX0NfRU5BQkxFRCAxCnwgLyogZW5k
IGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90
eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h
dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy
Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNw
bHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgcmVhZGxpbmUgKCk7CnwgaW50CnwgbWFp
biAoKQp8IHsKfCByZXR1cm4gcmVhZGxpbmUgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv
bmZpZ3VyZTo5MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo5MjY2OiBjaGVja2luZyB3aGV0aGVy
IHRjbHJlYWRsaW5lIHN1cHBvcnQgd2FzIGZvdW5kCmNvbmZpZ3VyZTo5MjY4OiByZXN1bHQ6IG5v
CmNvbmZpZ3VyZTo5MjkxOiBjaGVja2luZyB3aGV0aGVyIHpsaWIgc3VwcG9ydCBzaG91bGQgYmUg
ZW5hYmxlZApjb25maWd1cmU6OTI5OTogcmVzdWx0OiB0cnkKY29uZmlndXJlOjkzMDI6IGNoZWNr
aW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgY29tcHJlc3MKY29uZmlndXJlOjkzNDM6IGcrKy00
LjEgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jcHAgLWxkbCAtbG0gLWxwdGhyZWFkICA+JjUK
L3RtcC9jY1NsRjd2Vi5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci9ob21lL2JhbmcvZHRuLTIuNS4w
L2NvbmZ0ZXN0LmNwcDo2NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgY29tcHJlc3MnCmNvbGxl
Y3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo5MzQ5OiAkPyA9IDEKY29u
ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmlu
ZSBQQUNLQUdFX05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUg
UEFDS0FHRV9WRVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUg
UEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVm
aW5lIElOU1RBTExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFU
RURJUiAiL3ZhciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2Rl
ZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf
SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx
CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm
aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBT
VERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJ
TkZPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf
SCAxCnwgI2RlZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwg
I2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVm
aW5lIEhBVkVfVV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUg
SEFWRV9GREFUQVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBI
QVZFX0dFVEhPU1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNk
ZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2Rl
ZmluZSBIQVZFX0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNk
ZWZpbmUgSEFWRV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNk
ZWZpbmUgSEFWRV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUg
SEFWRV9TVFJQQlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhB
VkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmlu
ZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJH
NSAoc3RydWN0IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8
ICNkZWZpbmUgWEVSQ0VTX0NfRU5BQkxFRCAxCnwgI2RlZmluZSBUQ0xSRUFETElORV9FTkFCTEVE
IDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRl
cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBp
bnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQg
dGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZk
ZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBjb21wcmVzcyAoKTsK
fCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBjb21wcmVzcyAoKTsKfCAgIDsKfCAgIHJldHVy
biAwOwp8IH0KY29uZmlndXJlOjkzNDM6IGcrKy00LjEgLW8gY29uZnRlc3QgLWcgICBjb25mdGVz
dC5jcHAgLWx6ICAtbGRsIC1sbSAtbHB0aHJlYWQgID4mNQpjb25maWd1cmU6OTM0OTogJD8gPSAw
CmNvbmZpZ3VyZTo5Mzc3OiByZXN1bHQ6IC1segpjb25maWd1cmU6OTM4NjogY2hlY2tpbmcgd2hl
dGhlciB6bGliIHN1cHBvcnQgd2FzIGZvdW5kCmNvbmZpZ3VyZTo5Mzk1OiByZXN1bHQ6IHllcwpj
b25maWd1cmU6OTQ2MjogY2hlY2tpbmcgZm9yIHhzZApjb25maWd1cmU6OTQ5MjogcmVzdWx0OiBu
bwpjb25maWd1cmU6OTUxNjogQ2Fubm90IGZpbmQgYSB3b3JraW5nIHhzZCB0b29sCmNvbmZpZ3Vy
ZTo5NTE4OiAgICBZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byByZWdlbmVyYXRlIFhNTCBzY2hlbWEg
YmluZGluZ3MKY29uZmlndXJlOjk1MjA6ICAgIGlmIHlvdSBtYWtlIGNoYW5nZXMgdG8gdGhlIC54
c2QgZmlsZQpjb25maWd1cmU6OTUyMjogICAgVXNlIC0td2l0aC14c2QtdG9vbD0obmFtZSkgdG8g
c3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgdGhpcyB0b29sCmNvbmZpZ3VyZTo5NjAyOiBjaGVja2lu
ZyBmb3IgQmVya2VsZXkgREIgaGVhZGVyICh2ZXJzaW9uIDQuNSkgaW4gL3Vzci9pbmNsdWRlCmNv
bmZpZ3VyZTo5NjMzOiBnKystNC4xIC1vIGNvbmZ0ZXN0IC1nICAtSS91c3IvaW5jbHVkZSAgY29u
ZnRlc3QuY3BwIC1seiAtbGRsIC1sbSAtbHB0aHJlYWQgID4mNQpjb25maWd1cmU6OTYzOTogJD8g
PSAwCmNvbmZpZ3VyZTo5NjQ2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTY3MzogY2hlY2tpbmcg
Zm9yIEJlcmtlbGV5IERCIGxpYnJhcnkgaW4gL3Vzci9saWIsIC1sZGItNC41CmNvbmZpZ3VyZTo5
NzAxOiBnKystNC4xIC1vIGNvbmZ0ZXN0IC1nICAtSS91c3IvaW5jbHVkZSAgLUwvdXNyL2xpYiBj
b25mdGVzdC5jcHAgLWxkYi00LjUgLWx6IC1sZGwgLWxtIC1scHRocmVhZCAgPiY1CmNvbmZpZ3Vy
ZTo5NzA3OiAkPyA9IDAKY29uZmlndXJlOjk3MTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDYy
NjogY2hlY2tpbmcgZm9yIC0td2l0aC1weXRob24KY29uZmlndXJlOjEwNjQyOiByZXN1bHQ6IG5v
CmNvbmZpZ3VyZToxMDY1MzogY2hlY2tpbmcgZm9yIHB5dGhvbgpjb25maWd1cmU6MTA2NzE6IGZv
dW5kIC91c3IvYmluL3B5dGhvbgpjb25maWd1cmU6MTA2ODQ6IHJlc3VsdDogL3Vzci9iaW4vcHl0
aG9uCmNvbmZpZ3VyZToxMDcwMDogY2hlY2tpbmcgd2hldGhlciBweXRob24gZGlzdHV0aWxzIGNh
biBidWlsZCBhbiBleHRlbnNpb24gbW9kdWxlCmNvbmZpZ3VyZToxMDcyODogcnVubmluZyAvdXNy
L2Jpbi9weXRob24gY29uZnRlc3QucHkgYnVpbGQgLWIgY29uZnRlc3RfYnVpbGQuLi4gb3V0cHV0
OgpydW5uaW5nIGJ1aWxkCnJ1bm5pbmcgYnVpbGRfZXh0CmJ1aWxkaW5nICdfY29uZnRlc3QnIGV4
dGVuc2lvbgpjcmVhdGluZyBjb25mdGVzdF9idWlsZApjcmVhdGluZyBjb25mdGVzdF9idWlsZC90
ZW1wLmxpbnV4LWk2ODYtMi40CmdjYy00LjEgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUROREVCVUcg
LWcgLU8yIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLWZQSUMgLUkvdXNyL2luY2x1ZGUvcHl0
aG9uMi40IC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3RfYnVpbGQvdGVtcC5saW51eC1pNjg2LTIu
NC9jb25mdGVzdC5vCmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzo3
OiB3YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uCmNyZWF0
aW5nIGNvbmZ0ZXN0X2J1aWxkL2xpYi5saW51eC1pNjg2LTIuNApnY2MgLXB0aHJlYWQgLXNoYXJl
ZCBjb25mdGVzdF9idWlsZC90ZW1wLmxpbnV4LWk2ODYtMi40L2NvbmZ0ZXN0Lm8gLW8gY29uZnRl
c3RfYnVpbGQvbGliLmxpbnV4LWk2ODYtMi40L19jb25mdGVzdC5zbwpjb25maWd1cmU6MTA3MzM6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDgyNTogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysr
IHByZXByb2Nlc3Nvcgpjb25maWd1cmU6MTA4NjE6IGcrKy00LjEgLUUgIGNvbmZ0ZXN0LmNwcApj
b25maWd1cmU6MTA4Njc6ICQ/ID0gMApjb25maWd1cmU6MTA4OTg6IGcrKy00LjEgLUUgIGNvbmZ0
ZXN0LmNwcApjb25mdGVzdC5jcHA6NjE6Mjg6IGVycm9yOiBhY19ub25leGlzdGVudC5oOiBObyBz
dWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZToxMDkwNDogJD8gPSAxCmNvbmZpZ3VyZTog
ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FH
RV9OQU1FICIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VkVSU0lPTiAiIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
QlVHUkVQT1JUICIiCnwgI2RlZmluZSBIQVZFX0NPTkZJR19TVEFURSAxCnwgI2RlZmluZSBJTlNU
QUxMX1NZU0NPTkZESVIgIi9ldGMiCnwgI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92
YXIiCnwgI2RlZmluZSBPQVNZU19ERUJVR19MT0NLSU5HX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFW
RV9QVEhSRUFEX1NFVFNQRUNJRklDIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp
bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB
VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF
X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgU1REQ19IRUFE
RVJTIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEK
fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk
ZWZpbmUgU0laRU9GX09GRl9UIDgKfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAp8ICNkZWZpbmUg
SEFWRV9QVFJESUZGX1QgMQp8ICNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZF
X1VfSU5UMzJfVCAxCnwgI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKfCAjZGVmaW5lIEhBVkVfRkRB
VEFTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRI
T1NUQllOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SIDEKfCAjZGVmaW5lIEhB
VkVfR0VUT1BUX0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFW
RV9JTkVUX1BUT04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1lJRUxEIDEKfCAjZGVmaW5lIEhB
VkVfU0NIRURfWUlFTEQgMQp8ICNkZWZpbmUgSEFWRV9TWVNfRklMRV9IIDEKfCAjZGVmaW5lIEhB
VkVfVEVSTUlPU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfU1RS
UEJSSyAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T
T0NLRVRfSCAxCnwgI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcxIGludAp8ICNkZWZpbmUgU0VMRUNU
X1RZUEVfQVJHMjM0IChmZF9zZXQgKikKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzUgKHN0cnVj
dCB0aW1ldmFsICopCnwgI2RlZmluZSBHT09HTEVfUFJPRklMRV9FTkFCTEVEIDAKfCAjZGVmaW5l
IFhFUkNFU19DX0VOQUJMRUQgMQp8ICNkZWZpbmUgVENMUkVBRExJTkVfRU5BQkxFRCAwCnwgI2Rl
ZmluZSBPQVNZU19aTElCX0VOQUJMRUQgMQp8ICNkZWZpbmUgTElCREJfRU5BQkxFRCAxCnwgI2Rl
ZmluZSBCRVJLRUxFWV9EQl9WRVJTSU9OIDQuNQp8ICNkZWZpbmUgRVhURVJOQUxfQ0xfRU5BQkxF
RCAxCnwgI2RlZmluZSBFWFRFUk5BTF9EUF9FTkFCTEVEIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g
ICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZToxMDkzNzogcmVzdWx0
OiBnKystNC4xIC1FCmNvbmZpZ3VyZToxMDk2NjogZysrLTQuMSAtRSAgY29uZnRlc3QuY3BwCmNv
bmZpZ3VyZToxMDk3MjogJD8gPSAwCmNvbmZpZ3VyZToxMTAwMzogZysrLTQuMSAtRSAgY29uZnRl
c3QuY3BwCmNvbmZ0ZXN0LmNwcDo2MToyODogZXJyb3I6IGFjX25vbmV4aXN0ZW50Lmg6IE5vIHN1
Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOjExMDA5OiAkPyA9IDEKY29uZmlndXJlOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBQQUNLQUdF
X05BTUUgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiIgp8ICNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgp8ICNkZWZpbmUgUEFDS0FHRV9C
VUdSRVBPUlQgIiIKfCAjZGVmaW5lIEhBVkVfQ09ORklHX1NUQVRFIDEKfCAjZGVmaW5lIElOU1RB
TExfU1lTQ09ORkRJUiAiL2V0YyIKfCAjZGVmaW5lIElOU1RBTExfTE9DQUxTVEFURURJUiAiL3Zh
ciIKfCAjZGVmaW5lIE9BU1lTX0RFQlVHX0xPQ0tJTkdfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZF
X1BUSFJFQURfU0VUU1BFQ0lGSUMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBTVERDX0hFQURF
UlMgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm
aW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl
ZmluZSBTSVpFT0ZfT0ZGX1QgOAp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCnwgI2RlZmluZSBI
QVZFX1BUUkRJRkZfVCAxCnwgI2RlZmluZSBIQVZFX1VJTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVf
VV9JTlQzMl9UIDEKfCAjZGVmaW5lIEhBVkVfRlBDTEFTU0lGWQp8ICNkZWZpbmUgSEFWRV9GREFU
QVNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVEhP
U1RCWU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1IgMQp8ICNkZWZpbmUgSEFW
RV9HRVRPUFRfTE9ORyAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZF
X0lORVRfUFRPTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfWUlFTEQgMQp8ICNkZWZpbmUgSEFW
RV9TQ0hFRF9ZSUVMRCAxCnwgI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQp8ICNkZWZpbmUgSEFW
RV9URVJNSU9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9TVFJQ
QlJLIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP
Q0tFVF9IIDEKfCAjZGVmaW5lIFNFTEVDVF9UWVBFX0FSRzEgaW50CnwgI2RlZmluZSBTRUxFQ1Rf
VFlQRV9BUkcyMzQgKGZkX3NldCAqKQp8ICNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHNSAoc3RydWN0
IHRpbWV2YWwgKikKfCAjZGVmaW5lIEdPT0dMRV9QUk9GSUxFX0VOQUJMRUQgMAp8ICNkZWZpbmUg
WEVSQ0VTX0NfRU5BQkxFRCAxCnwgI2RlZmluZSBUQ0xSRUFETElORV9FTkFCTEVEIDAKfCAjZGVm
aW5lIE9BU1lTX1pMSUJfRU5BQkxFRCAxCnwgI2RlZmluZSBMSUJEQl9FTkFCTEVEIDEKfCAjZGVm
aW5lIEJFUktFTEVZX0RCX1ZFUlNJT04gNC41CnwgI2RlZmluZSBFWFRFUk5BTF9DTF9FTkFCTEVE
IDEKfCAjZGVmaW5lIEVYVEVSTkFMX0RQX0VOQUJMRUQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAg
Ki8KfCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KY29uZmlndXJlOjExNTAxOiB1cGRhdGlu
ZyBjYWNoZSBjb25maWcuY2FjaGUKY29uZmlndXJlOjExNTM3OiBjcmVhdGluZyAuL2NvbmZpZy5z
dGF0dXMKCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgUnVubmluZyBjb25maWcuc3Rh
dHVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCgpUaGlzIGZpbGUgd2FzIGV4dGVu
ZGVkIGJ5IGNvbmZpZy5zdGF0dXMsIHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25m
IDIuNjEuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKCiAgQ09ORklHX0ZJTEVTICAgID0g
CiAgQ09ORklHX0hFQURFUlMgID0gCiAgQ09ORklHX0xJTktTICAgID0gCiAgQ09ORklHX0NPTU1B
TkRTID0gCiAgJCAuL2NvbmZpZy5zdGF0dXMgCgpvbiBkZWIKCmNvbmZpZy5zdGF0dXM6NjM0OiBj
cmVhdGluZyBSdWxlcy5tYWtlCmNvbmZpZy5zdGF0dXM6NjM0OiBjcmVhdGluZyBjb25maWcuaApj
b25maWd1cmU6MTI2Mzg6ID09PSBjb25maWd1cmluZyBpbiBvYXN5cyAoL2hvbWUvYmFuZy9kdG4t
Mi41LjAvb2FzeXMpCmNvbmZpZ3VyZToxMjc0MTogcnVubmluZyAvYmluL3NoIC4vY29uZmlndXJl
ICctLXByZWZpeD0vdXNyJyAgJ0NDPWdjYy00LjEnIC0tY2FjaGUtZmlsZT0uLi9jb25maWcuY2Fj
aGUgLS1zcmNkaXI9LgoKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBDYWNoZSB2YXJpYWJsZXMu
ICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFjX2N2X2NfYmlnZW5kaWFuPW5vCmFjX2N2X2Nf
Y29tcGlsZXJfZ251PXllcwphY19jdl9jX2NvbnN0PXllcwphY19jdl9jX2lubGluZT1pbmxpbmUK
YWNfY3ZfY192b2xhdGlsZT15ZXMKYWNfY3ZfY3h4X2NvbXBpbGVyX2dudT15ZXMKYWNfY3ZfZW52
X0NDQ19zZXQ9CmFjX2N2X2Vudl9DQ0NfdmFsdWU9CmFjX2N2X2Vudl9DQ19zZXQ9c2V0CmFjX2N2
X2Vudl9DQ192YWx1ZT1nY2MtNC4xCmFjX2N2X2Vudl9DRkxBR1Nfc2V0PQphY19jdl9lbnZfQ0ZM
QUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQRkxBR1Nfc2V0PQphY19jdl9lbnZfQ1BQRkxBR1NfdmFs
dWU9CmFjX2N2X2Vudl9DUFBfc2V0PQphY19jdl9lbnZfQ1BQX3ZhbHVlPQphY19jdl9lbnZfQ1hY
Q1BQX3NldD0KYWNfY3ZfZW52X0NYWENQUF92YWx1ZT0KYWNfY3ZfZW52X0NYWEZMQUdTX3NldD0K
YWNfY3ZfZW52X0NYWEZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQ1hYX3NldD0KYWNfY3ZfZW52X0NY
WF92YWx1ZT0KYWNfY3ZfZW52X0xERkxBR1Nfc2V0PQphY19jdl9lbnZfTERGTEFHU192YWx1ZT0K
YWNfY3ZfZW52X0xJQlNfc2V0PQphY19jdl9lbnZfTElCU192YWx1ZT0KYWNfY3ZfZW52X1BZVEhP
Tl9zZXQ9CmFjX2N2X2Vudl9QWVRIT05fdmFsdWU9CmFjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9
CmFjX2N2X2Vudl9idWlsZF9hbGlhc192YWx1ZT0KYWNfY3ZfZW52X2hvc3RfYWxpYXNfc2V0PQph
Y19jdl9lbnZfaG9zdF9hbGlhc192YWx1ZT0KYWNfY3ZfZW52X3RhcmdldF9hbGlhc19zZXQ9CmFj
X2N2X2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9CmFjX2N2X2Z1bmNfZmRhdGFzeW5jPXllcwphY19j
dl9mdW5jX2dldGFkZHJpbmZvPXllcwphY19jdl9mdW5jX2dldGhvc3RieW5hbWU9eWVzCmFjX2N2
X2Z1bmNfZ2V0aG9zdGJ5bmFtZV9yPXllcwphY19jdl9mdW5jX2dldG9wdF9sb25nPXllcwphY19j
dl9mdW5jX2luZXRfYXRvbj15ZXMKYWNfY3ZfZnVuY19pbmV0X3B0b249eWVzCmFjX2N2X2Z1bmNf
cHRocmVhZF95aWVsZD15ZXMKYWNfY3ZfZnVuY19zY2hlZF95aWVsZD15ZXMKYWNfY3ZfZnVuY19z
ZWxlY3Q9eWVzCmFjX2N2X2Z1bmNfc2VsZWN0X2FyZ3M9J2ludCxmZF9zZXQgKixzdHJ1Y3QgdGlt
ZXZhbCAqJwphY19jdl9mdW5jX3N0cnBicms9eWVzCmFjX2N2X2hlYWRlcl9ibHVldG9vdGhfYmx1
ZXRvb3RoX2g9bm8KYWNfY3ZfaGVhZGVyX2Ruc19zZF9oPW5vCmFjX2N2X2hlYWRlcl9lcnJfaD15
ZXMKYWNfY3ZfaGVhZGVyX2V4ZWNpbmZvX2g9eWVzCmFjX2N2X2hlYWRlcl9pbnR0eXBlc19oPXll
cwphY19jdl9oZWFkZXJfbWVtb3J5X2g9eWVzCmFjX2N2X2hlYWRlcl9zdGRjPXllcwphY19jdl9o
ZWFkZXJfc3RkaW50X2g9eWVzCmFjX2N2X2hlYWRlcl9zdGRsaWJfaD15ZXMKYWNfY3ZfaGVhZGVy
X3N0cmluZ19oPXllcwphY19jdl9oZWFkZXJfc3RyaW5nc19oPXllcwphY19jdl9oZWFkZXJfc3lu
Y2hfaD1ubwphY19jdl9oZWFkZXJfc3lzX2NkZWZzX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfZmls
ZV9oPXllcwphY19jdl9oZWFkZXJfc3lzX3NlbGVjdF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3Nv
Y2tldF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3N0YXRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c190
eXBlc19oPXllcwphY19jdl9oZWFkZXJfdGVybWlvc19oPXllcwphY19jdl9oZWFkZXJfdW5pc3Rk
X2g9eWVzCmFjX2N2X29iamV4dD1vCmFjX2N2X3BhdGhfRUdSRVA9Jy9iaW4vZ3JlcCAtRScKYWNf
Y3ZfcGF0aF9HUkVQPS9iaW4vZ3JlcAphY19jdl9wYXRoX1BZVEhPTj0vdXNyL2Jpbi9weXRob24K
YWNfY3ZfcGF0aF9pbnN0YWxsPScvdXNyL2Jpbi9pbnN0YWxsIC1jJwphY19jdl9wcm9nX0FXSz1t
YXdrCmFjX2N2X3Byb2dfQ1BQPSdnY2MtNC4xIC1FJwphY19jdl9wcm9nX0NYWENQUD0nZysrLTQu
MSAtRScKYWNfY3ZfcHJvZ19hY19jdF9BUj1hcgphY19jdl9wcm9nX2FjX2N0X1JBTkxJQj1yYW5s
aWIKYWNfY3ZfcHJvZ19jY19jODk9CmFjX2N2X3Byb2dfY2NfZz15ZXMKYWNfY3ZfcHJvZ19jeHhf
Zz15ZXMKYWNfY3ZfcHJvZ19tYWtlX21ha2Vfc2V0PXllcwphY19jdl9zZWFyY2hfRE5TU2Vydmlj
ZVJlZ2lzdGVyPW5vCmFjX2N2X3NlYXJjaF9iYXN3YXA9bm8KYWNfY3Zfc2VhcmNoX2NvbXByZXNz
PS1segphY19jdl9zZWFyY2hfZGxvcGVuPS1sZGwKYWNfY3Zfc2VhcmNoX2dldGhvc3RieW5hbWU9
J25vbmUgcmVxdWlyZWQnCmFjX2N2X3NlYXJjaF9wb3c9LWxtCmFjX2N2X3NlYXJjaF9wdGhyZWFk
X2NyZWF0ZT0tbHB0aHJlYWQKYWNfY3Zfc2VhcmNoX3B0aHJlYWRfc2V0c3BlY2lmaWM9J25vbmUg
cmVxdWlyZWQnCmFjX2N2X3NlYXJjaF9yZWFkbGluZT1ubwphY19jdl9zZWFyY2hfc29ja2V0PSdu
b25lIHJlcXVpcmVkJwphY19jdl9zZWFyY2hfeGRyX2ludD0nbm9uZSByZXF1aXJlZCcKYWNfY3Zf
c2l6ZW9mX29mZl90PTgKYWNfY3ZfdHlwZV9tb2RlX3Q9eWVzCmFjX2N2X3R5cGVfb2ZmX3Q9eWVz
CmFjX2N2X3R5cGVfcHRyZGlmZl90PXllcwphY19jdl90eXBlX3NpZ25hbD12b2lkCmFjX2N2X3R5
cGVfc2l6ZV90PXllcwphY19jdl90eXBlX3VfaW50MzJfdD15ZXMKYWNfY3ZfdHlwZV91aW50MzJf
dD15ZXMKb2FzeXNfY3ZfZGJfaW5jcGF0aD0vdXNyL2luY2x1ZGUKb2FzeXNfY3ZfZGJfbGliPWRi
LTQuNQpvYXN5c19jdl9kYl9saWJwYXRoPS91c3IvbGliCm9hc3lzX2N2X2Z1bmNfZnBjbGFzc2lm
eT0xCm9hc3lzX2N2X2xpYl9leHBhdD0Kb2FzeXNfY3ZfbGliX3RjbD10Y2w4LjQKb2FzeXNfY3Zf
cGF0aF9leHBhdF9oPQpvYXN5c19jdl9wYXRoX2V4cGF0X2xpYj0Kb2FzeXNfY3ZfcGF0aF90Y2xf
aD0vdXNyL2luY2x1ZGUvdGNsOC40Cm9hc3lzX2N2X3BhdGhfdGNsX2xpYj0vdXNyL2xpYgpvYXN5
c19jdl9wYXRoX3hlcmNlc19jPS91c3IKb2FzeXNfY3ZfcHJvZ19nY2Nfd19ub19sb25nX2RvdWJs
ZT1ubwpvYXN5c19jdl9wcm9nX2djY3Zlcj00LjEuMwpvYXN5c19jdl9wcm9nX2d4eHZlcj00LjEu
MwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKIyMgLS0t
LS0tLS0tLS0tLS0tLS0gIyMKCkFSPSdhcicKQVdLPSdtYXdrJwpCVUlMRERJUj0nL2hvbWUvYmFu
Zy9kdG4tMi41LjAnCkJVSUxEX1NZU1RFTT0nTGludXgnCkNDPSdnY2MtNC4xJwpDRkxBR1M9Jy1n
JwpDUFA9J2djYy00LjEgLUUnCkNQUEZMQUdTPSctSSQoU1JDRElSKS9zZXJ2bGliIC1JJChTUkNE
SVIpL29hc3lzICAtSS91c3IvaW5jbHVkZS90Y2w4LjQgICcKQ1hYPSdnKystNC4xJwpDWFhDUFA9
J2crKy00LjEgLUUnCkNYWEZMQUdTPSctZycKREVCVUc9Jy1nIC1mbm8taW5saW5lJwpERUZTPSct
REhBVkVfQ09ORklHX0gnCkRFUEZMQUdTPSctTU1EIC1NUCAtTVQgIiQqLm8gJCouRSAkKi5wbyIn
CkVDSE9fQz0nJwpFQ0hPX049Jy1uJwpFQ0hPX1Q9JycKRUdSRVA9Jy9iaW4vZ3JlcCAtRScKRVhF
RVhUPScnCkVYVFJBX0NGTEFHUz0nJwpFWFRSQV9MREZMQUdTPScnCkdSRVA9Jy9iaW4vZ3JlcCcK
SU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKSU5TVEFMTF9QUk9HUkFNPScke0lOU1RB
TEx9JwpJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKTERGTEFHUz0nLUwuICAgJwpMREZMQUdT
X1NITElCPSctc2hhcmVkIC1mUElDIC1EUElDJwpMRlNERUZTPSctRF9MQVJHRUZJTEVfU09VUkNF
IC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQnCkxJQk9CSlM9JycKTElCUz0nLWx6IC1sZGwgLWxtIC1s
cHRocmVhZCAnCkxUTElCT0JKUz0nJwpPQVNZU19MSUJTPScgLWx0Y2w4LjQgLWx4ZXJjZXMtYyAt
bGRiLTQuNScKT0JKRVhUPSdvJwpPUFRJTUlaRT0nJwpPUFRJTUlaRV9XQVJOPScnClBBQ0tBR0Vf
QlVHUkVQT1JUPScnClBBQ0tBR0VfTkFNRT0nJwpQQUNLQUdFX1NUUklORz0nJwpQQUNLQUdFX1RB
Uk5BTUU9JycKUEFDS0FHRV9WRVJTSU9OPScnClBBVEhfU0VQQVJBVE9SPSc6JwpQSUNGTEFHUz0n
LWZQSUMgLURQSUMnClBST0ZJTEU9JycKUFlUSE9OPScvdXNyL2Jpbi9weXRob24nClBZVEhPTl9C
VUlMRF9FWFQ9J3llcycKUkFOTElCPSdyYW5saWInClJQQVRIPSctV2wsLXJwYXRoPS4gLVdsLC1y
cGF0aD0kKHByZWZpeCkvbGliJwpTRVRfTUFLRT0nJwpTSEVMTD0nL2Jpbi9zaCcKU0hMSUJTPSd5
ZXMnClNITElCX0VYVD0nc28nClNSQ0RJUj0nL2hvbWUvYmFuZy9kdG4tMi41LjAnClNUQVRJQz0n
bm8nClRBUkdFVD0nbmF0aXZlJwpUQ0xfTERGTEFHUz0nIC1sdGNsOC40JwpYU0RfVE9PTD0nJwph
Y19jdF9DQz0nJwphY19jdF9DWFg9JycKYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCmJ1aWxk
X2FsaWFzPScnCmRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9JwpkYXRhcm9vdGRpcj0nJHtwcmVmaXh9
L3NoYXJlJwpkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tBR0V9JwpkdmlkaXI9JyR7
ZG9jZGlyfScKZXhlY19wcmVmaXg9JyR7cHJlZml4fScKaG9zdF9hbGlhcz0nJwpodG1sZGlyPSck
e2RvY2Rpcn0nCmluY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJwppbmZvZGlyPScke2RhdGFy
b290ZGlyfS9pbmZvJwpsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKbGliZXhlY2Rpcj0nJHtl
eGVjX3ByZWZpeH0vbGliZXhlYycKbG9jYWxlZGlyPScke2RhdGFyb290ZGlyfS9sb2NhbGUnCmxv
Y2Fsc3RhdGVkaXI9Jy92YXInCm1hbmRpcj0nJHtkYXRhcm9vdGRpcn0vbWFuJwpvbGRpbmNsdWRl
ZGlyPScvdXNyL2luY2x1ZGUnCnBkZmRpcj0nJHtkb2NkaXJ9JwpwcmVmaXg9Jy91c3InCnByb2dy
YW1fdHJhbnNmb3JtX25hbWU9J3MseCx4LCcKcHNkaXI9JyR7ZG9jZGlyfScKc2JpbmRpcj0nJHtl
eGVjX3ByZWZpeH0vc2JpbicKc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCnN1YmRpcnM9
JyBvYXN5cycKc3lzY29uZmRpcj0nL2V0YycKdGFyZ2V0X2FsaWFzPScnCgojIyAtLS0tLS0tLS0t
LSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKI2RlZmluZSBQQUNLQUdF
X05BTUUgIiIKI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiIKI2RlZmluZSBQQUNLQUdFX1ZFUlNJ
T04gIiIKI2RlZmluZSBQQUNLQUdFX1NUUklORyAiIgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU
ICIiCiNkZWZpbmUgSEFWRV9DT05GSUdfU1RBVEUgMQojZGVmaW5lIElOU1RBTExfU1lTQ09ORkRJ
UiAiL2V0YyIKI2RlZmluZSBJTlNUQUxMX0xPQ0FMU1RBVEVESVIgIi92YXIiCiNkZWZpbmUgT0FT
WVNfREVCVUdfTE9DS0lOR19FTkFCTEVEIDEKI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU1BFQ0lG
SUMgMQojZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQojZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx
CiNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCiNkZWZpbmUg
SEFWRV9NRU1PUllfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQojZGVmaW5lIEhBVkVfSU5U
VFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCiNkZWZpbmUgSEFWRV9VTklTVERfSCAx
CiNkZWZpbmUgU1REQ19IRUFERVJTIDEKI2RlZmluZSBIQVZFX0VSUl9IIDEKI2RlZmluZSBIQVZF
X0VYRUNJTkZPX0ggMQojZGVmaW5lIEhBVkVfU1RESU5UX0ggMQojZGVmaW5lIEhBVkVfU1RSSU5H
X0ggMQojZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQojZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg
MQojZGVmaW5lIFNJWkVPRl9PRkZfVCA4CiNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCiNkZWZpbmUg
SEFWRV9QVFJESUZGX1QgMQojZGVmaW5lIEhBVkVfVUlOVDMyX1QgMQojZGVmaW5lIEhBVkVfVV9J
TlQzMl9UIDEKI2RlZmluZSBIQVZFX0ZQQ0xBU1NJRlkKI2RlZmluZSBIQVZFX0ZEQVRBU1lOQyAx
CiNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCiNkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FIDEK
I2RlZmluZSBIQVZFX0dFVEhPU1RCWU5BTUVfUiAxCiNkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORyAx
CiNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQojZGVmaW5lIEhBVkVfSU5FVF9QVE9OIDEKI2RlZmlu
ZSBIQVZFX1BUSFJFQURfWUlFTEQgMQojZGVmaW5lIEhBVkVfU0NIRURfWUlFTEQgMQojZGVmaW5l
IEhBVkVfU1lTX0ZJTEVfSCAxCiNkZWZpbmUgSEFWRV9URVJNSU9TX0ggMQojZGVmaW5lIEhBVkVf
U0VMRUNUIDEKI2RlZmluZSBIQVZFX1NUUlBCUksgMQojZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9I
IDEKI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCiNkZWZpbmUgU0VMRUNUX1RZUEVfQVJHMSBp
bnQKI2RlZmluZSBTRUxFQ1RfVFlQRV9BUkcyMzQgKGZkX3NldCAqKQojZGVmaW5lIFNFTEVDVF9U
WVBFX0FSRzUgKHN0cnVjdCB0aW1ldmFsICopCiNkZWZpbmUgR09PR0xFX1BST0ZJTEVfRU5BQkxF
RCAwCiNkZWZpbmUgWEVSQ0VTX0NfRU5BQkxFRCAxCiNkZWZpbmUgVENMUkVBRExJTkVfRU5BQkxF
RCAwCiNkZWZpbmUgT0FTWVNfWkxJQl9FTkFCTEVEIDEKI2RlZmluZSBMSUJEQl9FTkFCTEVEIDEK
I2RlZmluZSBCRVJLRUxFWV9EQl9WRVJTSU9OIDQuNQojZGVmaW5lIEVYVEVSTkFMX0NMX0VOQUJM
RUQgMQojZGVmaW5lIEVYVEVSTkFMX0RQX0VOQUJMRUQgMQoKY29uZmlndXJlOiBleGl0IDAK
------=_Part_5098_159873.1209693490952--


Received: from gateway0.EECS.Berkeley.EDU (gateway0.EECS.Berkeley.EDU [169.229.60.93]) by maillists.intel-research.net (8.13.8/8.13.7) with ESMTP id m41F7iN6018873 for <dtn-users@mailman.dtnrg.org>; Thu, 1 May 2008 08:07:44 -0700
Received: from [192.168.0.12] (c-75-67-87-212.hsd1.nh.comcast.net [75.67.87.212]) (authenticated bits=0) by gateway0.EECS.Berkeley.EDU (8.14.2/8.13.5) with ESMTP id m41FGhg3002873 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Thu, 1 May 2008 08:17:32 -0700 (PDT)
From: Michael Demmer <demmer@cs.berkeley.edu>
To: =?UTF-8?Q?=EB=B0=A9=EC=98=81=EC=B2=A0_=28Youngchul_Bang=29?= <youngchul@gmail.com>
In-Reply-To: <ae4314c50804280053y4cd63d08qc38195be5a1ebc11@mail.gmail.com>
References: <ae4314c50804280053y4cd63d08qc38195be5a1ebc11@mail.gmail.com>
Message-Id: <ED9F582E-BCA2-4B98-A83C-7C95C7050A57@cs.berkeley.edu>
Content-Type: text/plain; charset=UTF-8; format=flowed; delsp=yes
X-Applemailsentby: demmer
Mime-Version: 1.0 (Apple Message framework v919.2)
Date: Thu, 1 May 2008 11:17:31 -0400
X-Mailer: Apple Mail (2.919.2)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by maillists.intel-research.net id m41F7iN6018873
Cc: dtn-users@mailman.dtnrg.org
Subject: Re: [dtn-users] Scheduled links and dtnsim
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: dtn-users mailing list <dtn-users.mailman.dtnrg.org>
List-Unsubscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Archive: <http://maillists.intel-research.net/pipermail/dtn-users>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
X-List-Received-Date: Thu, 01 May 2008 15:07:45 -0000

Unfortunately there isn't really any documentation on dtnsim. It's on  
my regrettably long list of things to do but I doubt I'll get to it  
anytime soon.

Your best bet is to look at the example config files and read the code  
to fighure out what all is implemented and how to get it to work.

-m

On Apr 28, 2008, at 3:53 AM, 방영철 (Youngchul Bang) wrote:

> Hi,
>
> I want to turn on and off the radio such as 802.11 according to
> scheduled future contact information.  Is there a reference related to
> that?
>
> I know that no support for scheduled links is yet implemented in
> version 2.5.0 of the DTN2 reference implementation.  Before
> implementing scheduled links, I want to know configuration and
> features of other types of links, such as always on, on demand, and
> opportunistic links, via simulation with dtnsim included with the
> reference implementation.  How can I do that?  Is there a manual or
> document about the dtnsim?
>
> Regards,
> Youngchul
> _______________________________________________
> dtn-users mailing list
> dtn-users@mailman.dtnrg.org
> http://maillists.intel-research.net/mailman/listinfo/dtn-users




Received: from gateway0.EECS.Berkeley.EDU (gateway0.EECS.Berkeley.EDU [169.229.60.93]) by maillists.intel-research.net (8.13.8/8.13.7) with ESMTP id m41F6v84018815 for <dtn-users@mailman.dtnrg.org>; Thu, 1 May 2008 08:06:57 -0700
Received: from [192.168.0.12] (c-75-67-87-212.hsd1.nh.comcast.net [75.67.87.212]) (authenticated bits=0) by gateway0.EECS.Berkeley.EDU (8.14.2/8.13.5) with ESMTP id m41FGhg2002873 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Thu, 1 May 2008 08:16:45 -0700 (PDT)
From: Michael Demmer <demmer@cs.berkeley.edu>
To: EunKyung Lee <ssinji79@gmail.com>
In-Reply-To: <ae4314c50804300623t277cd534m178c93df66fdf8dc@mail.gmail.com>
References: <8bd31fd70804231109n7c3eb193y132e6bb669c133f0@mail.gmail.com> <ae4314c50804300623t277cd534m178c93df66fdf8dc@mail.gmail.com>
Message-Id: <14DC789C-8F8E-48E7-9910-398AC567E790@cs.berkeley.edu>
Content-Type: text/plain; charset=UTF-8; format=flowed; delsp=yes
X-Applemailsentby: demmer
Mime-Version: 1.0 (Apple Message framework v919.2)
Date: Thu, 1 May 2008 11:16:37 -0400
X-Mailer: Apple Mail (2.919.2)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by maillists.intel-research.net id m41F6v84018815
Cc: dtn-users mailing list <dtn-users@mailman.dtnrg.org>
Subject: Re: [dtn-users] Error message during make
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: dtn-users mailing list <dtn-users.mailman.dtnrg.org>
List-Unsubscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Archive: <http://maillists.intel-research.net/pipermail/dtn-users>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://maillists.intel-research.net/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
X-List-Received-Date: Thu, 01 May 2008 15:06:58 -0000

The autoconf scripts should be running a test to determine whether or  
not gcc accepts the -Wno-long-double argument, so apparently something  
in that test isn't working.

Can you post the output of configure and the generated config.log file  
to the list, or mail them to me personally, so I can take a look?

-m

On Apr 30, 2008, at 9:23 AM, 방영철 (Youngchul Bang) wrote:

> Which version of gcc did you use?  I've compiled the DTN 2.5.0 with  
> gcc 4.1.3.
>
> If using gcc 4.2.3, option "-Wno-long-double" is added to CPPFLAGS and
> OASYS_CPPFLAGS, which causes the compile error.
>
>
> 2008/4/24 EunKyung Lee <ssinji79@gmail.com>:
>> Can anybody solve this compile problem?
>> I cannot install DTN 2.5.0 because of the error below:
>>
>> debug/FatalSignals.cc: In static member function ?tatic void
>> oasys::FatalSignals::handler(int)?
>> debug/FatalSignals.cc:69: warning: deprecated conversion from string
>> constant to ?har*?
>> debug/FatalSignals.cc:73: warning: deprecated conversion from string
>> constant to ?har*?
>> debug/FatalSignals.cc:74: warning: deprecated conversion from string
>> constant to ?har*?
>> debug/FatalSignals.cc:75: warning: deprecated conversion from string
>> constant to ?har*?
>> debug/FatalSignals.cc:76: warning: deprecated conversion from string
>> constant to ?har*?
>> debug/FatalSignals.cc:77: warning: deprecated conversion from string
>> constant to ?har*?
>> debug/FatalSignals.cc:78: warning: deprecated conversion from string
>> constant to ?har*?
>> At global scope:
>> cc1plus: error: unrecognized command line option "-Wno-long-double"
>> make[1]: *** [debug/FatalSignals.o] Error 1
>> make[1]: Leaving directory `/root/dtn-2.5.0/oasys'
>> make: *** [oasys] Error 2
>>
>> Any suggestion or comment will be very appreciated. :)
>> _______________________________________________
>> dtn-users mailing list
>> dtn-users@mailman.dtnrg.org
>> http://maillists.intel-research.net/mailman/listinfo/dtn-users
>>
>>
> _______________________________________________
> dtn-users mailing list
> dtn-users@mailman.dtnrg.org
> http://maillists.intel-research.net/mailman/listinfo/dtn-users



