public inbox for libstdc++-prs@sourceware.org
help / color / mirror / Atom feed
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/43: Sun compile error on line 446 of locale.cc (includes ctype.cc)
Date: Sun, 19 Mar 2000 19:07:00 -0000	[thread overview]
Message-ID: <20000320030700.24582.qmail@sourceware.cygnus.com> (raw)

The following reply was made to PR libstdc++/43; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: kmcwhirter@magellan.com
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/43: Sun compile error on line 446 of locale.cc (includes ctype.cc)
Date: Sun, 19 Mar 2000 18:57:31 -0800 (PST)

 this was fixed shortly after the 2.90.7 release. As we are within a week 
 of a new release, I suggest you check out the candidates for the next 
 shapshot:
 
 
 ftp://sourceware.cygnus.com/pub/libstdc++/libstdc++-2.90.8pre2.tar.gz
 
 
>From bkoz@cygnus.com Mon Mar 20 11:57:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/43
Date: Mon, 20 Mar 2000 11:57:00 -0000
Message-id: <20000320195701.12735.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00031.html
Content-length: 797

The following reply was made to PR libstdc++/43; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, kmcwhirter@magellan.com,
  libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/43
Date: 20 Mar 2000 19:48:45 -0000

 Synopsis: Sun compile error on line 446 of locale.cc (includes ctype.cc)
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 11:48:45 2000
 Responsible-Changed-Why:
     replied to it
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 11:48:45 2000
 State-Changed-Why:
     Fixed after release, fixed in new snapshots.
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=43&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:17:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/42
Date: Mon, 20 Mar 2000 12:17:00 -0000
Message-id: <20000320201700.20597.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00032.html
Content-length: 854

The following reply was made to PR libstdc++/42; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com, mikes@nilenet.com,
  nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/42
Date: 20 Mar 2000 20:11:49 -0000

 Synopsis: vector<>::at()  doesn't throw out_of_range
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:11:48 2000
 Responsible-Changed-Why:
     bkoz
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:11:48 2000
 State-Changed-Why:
     This is fixed in the upcoming 2.90.8 series. Please try
     ftp://sourceware.cygnus.com/pub/libstdc++/libstdc++-2.90.8pre2.tar.gz
     
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=42&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:17:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/18
Date: Mon, 20 Mar 2000 12:17:00 -0000
Message-id: <20000320201701.20604.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00033.html
Content-length: 761

The following reply was made to PR libstdc++/18; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com, vladimir.kondratiev@intel.com
Cc:  
Subject: Re: libstdc++/18
Date: 20 Mar 2000 20:16:42 -0000

 Synopsis: 2.90.7 release announced but not uploaded to FTP server
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:16:42 2000
 Responsible-Changed-Why:
     fixed
 State-Changed-From-To: open->closed
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:16:42 2000
 State-Changed-Why:
     It's up now. 
     
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=18&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:27:00 2000
From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com, Dos-Reis@cmla.ens-cachan.fr
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/34
Date: Mon, 20 Mar 2000 12:27:00 -0000
Message-id: <20000320202701.25579.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00034.html
Content-length: 852

The following reply was made to PR libstdc++/34; it has been noted by GNATS.

From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com,
  Dos-Reis@cmla.ens-cachan.fr, jsk29@cornell.edu,
  libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/34
Date: 20 Mar 2000 20:19:21 -0000

 Synopsis: Segmentation fault when resizing a valarry.
 
 Responsible-Changed-From-To: unassigned->gdr
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:19:21 2000
 Responsible-Changed-Why:
     26_numerics
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:19:21 2000
 State-Changed-Why:
     this no longer seems to be a bug in the 2.0.8.x series.
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=34&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:27:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/28
Date: Mon, 20 Mar 2000 12:27:00 -0000
Message-id: <20000320202701.25587.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00035.html
Content-length: 916

The following reply was made to PR libstdc++/28; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com, whall@primextrading.com
Cc:  
Subject: Re: libstdc++/28
Date: 20 Mar 2000 20:21:32 -0000

 Synopsis: solaris/bits/ctype_base.h  incompatible with /usr/include/ctype.h, Solaris 7, SC5.0
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:21:32 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:21:32 2000
 State-Changed-Why:
     Have you tried the post-2.90.7 releases, specifically the 2.90.8.pre2 release? I believe this problem is fixed, and that this bug report can be closed.
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=28&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:37:00 2000
From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com, Dos-Reis@cmla.ens-cachan.fr
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/2
Date: Mon, 20 Mar 2000 12:37:00 -0000
Message-id: <20000320203700.28740.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00039.html
Content-length: 803

The following reply was made to PR libstdc++/2; it has been noted by GNATS.

From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com,
  Dos-Reis@cmla.ens-cachan.fr, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com, rob@geonexuscorp.com
Cc:  
Subject: Re: libstdc++/2
Date: 20 Mar 2000 20:29:46 -0000

 Synopsis: valarray assignment operators don't resize
 
 Responsible-Changed-From-To: unassigned->gdr
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:29:46 2000
 Responsible-Changed-Why:
     26_numerics. 
 State-Changed-From-To: open->closed
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:29:46 2000
 State-Changed-Why:
     See log
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=2&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:37:00 2000
From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com, Dos-Reis@cmla.ens-cachan.fr
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/10
Date: Mon, 20 Mar 2000 12:37:00 -0000
Message-id: <20000320203700.28735.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00038.html
Content-length: 674

The following reply was made to PR libstdc++/10; it has been noted by GNATS.

From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com,
  Dos-Reis@cmla.ens-cachan.fr, Roman.Kagan@itep.ru,
  libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/10
Date: 20 Mar 2000 20:28:32 -0000

 Synopsis: _Expr<>.sum() in bits/valarray_meta.h doesn't compile
 
 Responsible-Changed-From-To: unassigned->gdr
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:28:32 2000
 Responsible-Changed-Why:
     26_numerics
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=10&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:37:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/16
Date: Mon, 20 Mar 2000 12:37:00 -0000
Message-id: <20000320203700.28732.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00036.html
Content-length: 831

The following reply was made to PR libstdc++/16; it has been noted by GNATS.

From: bkoz@cygnus.com
To: Chad_Gibbons@bmc.com, bkoz@cygnus.com,
  libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/16
Date: 20 Mar 2000 20:27:26 -0000

 Synopsis: ios initialization bug
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:27:26 2000
 Responsible-Changed-Why:
     have been dealing with this
 State-Changed-From-To: open->analyzed
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:27:26 2000
 State-Changed-Why:
     Chad, what is the status with this bug and the current CVS snapshots, in particular the 2.90.8.pre2 series?
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=16&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:37:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/9
Date: Mon, 20 Mar 2000 12:37:00 -0000
Message-id: <20000320203701.28761.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00037.html
Content-length: 604

The following reply was made to PR libstdc++/9; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  mjollnir@citysearch.com
Cc:  
Subject: Re: libstdc++/9
Date: 20 Mar 2000 20:31:31 -0000

 Synopsis: libstdc++.2.9.0.6 does NOT build on Solaris2.6 with gcc2.95 or native CC
 
 State-Changed-From-To: feedback->closed
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:31:31 2000
 State-Changed-Why:
     Fixed with upcoming 2.90.8 series. No feedback
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=9&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:37:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/7
Date: Mon, 20 Mar 2000 12:37:00 -0000
Message-id: <20000320203701.28809.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00040.html
Content-length: 855

The following reply was made to PR libstdc++/7; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com, tphillips@iee.org
Cc:  
Subject: Re: libstdc++/7
Date: 20 Mar 2000 20:35:31 -0000

 Synopsis: Build fails on Intel/Solaris 2.7
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:35:31 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:35:31 2000
 State-Changed-Why:
     Can you test this with the 2.90.8pre2 tarball up on sourceware please? I do not have access to a an intel/solarix box
     
     thanks,
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=7&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:37:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/3
Date: Mon, 20 Mar 2000 12:37:00 -0000
Message-id: <20000320203701.28831.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00042.html
Content-length: 662

The following reply was made to PR libstdc++/3; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, bmosher@csc.com, libstdc++-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/3
Date: 20 Mar 2000 20:36:59 -0000

 Synopsis: Segmentation Faults in substr() and string()
 
 State-Changed-From-To: feedback->closed
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:36:59 2000
 State-Changed-Why:
     Did not get feedback. In addition, gcc-2.95 is a prerequisite. Please try the 2.90.8.pre2 release on sourceware and see if this is still a bug
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=3&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:37:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/35
Date: Mon, 20 Mar 2000 12:37:00 -0000
Message-id: <20000320203701.28777.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00041.html
Content-length: 891

The following reply was made to PR libstdc++/35; it has been noted by GNATS.

From: bkoz@cygnus.com
To: amc@to.gd-es.com, bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/35
Date: 20 Mar 2000 20:34:03 -0000

 Synopsis: make error for Digital Unix 4.0D
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:34:03 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:34:03 2000
 State-Changed-Why:
     I don't have access to any digital unix systems. Can you test with the 2.90.8.pre2.tar.gz file up on the libstdc++ site and see if this is still a bug?
     
     thanks,
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=35&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:47:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/13
Date: Mon, 20 Mar 2000 12:47:00 -0000
Message-id: <20000320204701.1794.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00048.html
Content-length: 814

The following reply was made to PR libstdc++/13; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  michaelv@edifecs.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/13
Date: 20 Mar 2000 20:44:07 -0000

 Synopsis: make install does not work on Solaris 2.6
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:44:07 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:44:07 2000
 State-Changed-Why:
     Are you able to reproduce this problem with the 2.90.8 release candidates?
     
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=13&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:47:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/12
Date: Mon, 20 Mar 2000 12:47:00 -0000
Message-id: <20000320204701.1766.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00047.html
Content-length: 800

The following reply was made to PR libstdc++/12; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  michaelv@edifecs.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/12
Date: 20 Mar 2000 20:43:11 -0000

 Synopsis: libstdc++ 2.90.6 doesn't build on FreeBSD 3.1
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:43:11 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:43:11 2000
 State-Changed-Why:
     Can you please try the pre-2.90.8 releases?
     
     thanks,
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=12&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:47:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/11
Date: Mon, 20 Mar 2000 12:47:00 -0000
Message-id: <20000320204700.1756.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00046.html
Content-length: 903

The following reply was made to PR libstdc++/11; it has been noted by GNATS.

From: bkoz@cygnus.com
To: aschmidt@lynet.de, bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/11
Date: 20 Mar 2000 20:41:59 -0000

 Synopsis: invalid type for default argument
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Mon Mar 20 12:41:59 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:41:59 2000
 State-Changed-Why:
     Awaiting feedback. Also, please use current sources when giving more info about this bug. The current sources can be found on sourceware.cygnus.com/pub/libstdc++
     
     thanks,
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=11&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:47:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/5
Date: Mon, 20 Mar 2000 12:47:00 -0000
Message-id: <20000320204700.1733.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00045.html
Content-length: 543

The following reply was made to PR libstdc++/5; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, hob@scali.com, libstdc++-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/5
Date: 20 Mar 2000 20:38:46 -0000

 Synopsis: libstdc++ is not transparent to -malign-double egcs switch
 
 State-Changed-From-To: feedback->closed
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:38:46 2000
 State-Changed-Why:
     No response
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=5&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:47:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/4
Date: Mon, 20 Mar 2000 12:47:00 -0000
Message-id: <20000320204700.1726.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00043.html
Content-length: 511

The following reply was made to PR libstdc++/4; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, jihem@math.ucdavis.edu,
  libstdc++-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/4
Date: 20 Mar 2000 20:37:44 -0000

 Synopsis: Floats in std_cmath.h
 
 State-Changed-From-To: feedback->closed
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:37:44 2000
 State-Changed-Why:
     Fixed
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=4&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 12:47:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/8
Date: Mon, 20 Mar 2000 12:47:00 -0000
Message-id: <20000320204700.1740.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00044.html
Content-length: 542

The following reply was made to PR libstdc++/8; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, dek@cgl.ucsf.edu, libstdc++-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/8
Date: 20 Mar 2000 20:39:40 -0000

 Synopsis: writing large strings to an ofstream causes stream to go bad
 
 State-Changed-From-To: feedback->closed
 State-Changed-By: bkoz
 State-Changed-When: Mon Mar 20 12:39:40 2000
 State-Changed-Why:
     Fixed
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=8&database=libstdc++
>From bkoz@cygnus.com Mon Mar 20 13:07:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: RE: libstdc++/16
Date: Mon, 20 Mar 2000 13:07:00 -0000
Message-id: <20000320210700.9935.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00049.html
Content-length: 1212

The following reply was made to PR libstdc++/16; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: "Gibbons, Chad" <Chad_Gibbons@bmc.com>
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: RE: libstdc++/16
Date: Mon, 20 Mar 2000 12:57:48 -0800 (PST)

 I guess you have not convinced me that it is a bug, unless I can reproduce
 it. Furthermore, I believe keeping that initializer in the header is
 necessary to conform to c++ static initializer rules. 
 
 I have, however, run across some weird solaris initializer problems when I
 was fixing other parts of the library. First off, you need to use GNU ld.
 Second, it looks like g++ on solaris is putting stuff into .bss instead of
 .data:
 
 http://gcc.gnu.org/ml/gcc-bugs/2000-03/msg00274.html
 
 Unfortunately, you'll need to come up with a testcase before this can go
 much further.
 
 -benjamin
 
 
 > A quick look at today's CVS archives shows the code with the bug hasn't been
 > modified.
 > 
 > The problem only manifests itself in very large projects, so it's difficult
 > to reproduce. I have a patch available, but I don't think anyone was
 > comfortable with the change unless there is a small test case to reproduce
 > it.
 
>From bkoz@cygnus.com Mon Mar 20 16:17:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: RE: libstdc++/16
Date: Mon, 20 Mar 2000 16:17:00 -0000
Message-id: <20000321001700.24778.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00050.html
Content-length: 1666

The following reply was made to PR libstdc++/16; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: "Gibbons, Chad" <Chad_Gibbons@bmc.com>
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: RE: libstdc++/16
Date: Mon, 20 Mar 2000 16:16:48 -0800 (PST)

 > Yes, I agree a testcase would be extremely useful on this one. :)
 
 Yep. I'll close it in a bit if I don't have something to reproduce it
 with.
 
 > The only thing I can really say without producing a test case is to look at
 > what *can* happen:
 > 1) some code includes iostream.h, which causes the ios_base::Init __ioinit
 > object to be created in that module. That object initializes the file
 > buffers used by all the standard I/O objects.
 
 Yes. Due to c++ static init rules, objects are initialized in a first-seen
 first-initialized order. Therefore, iostream should be included before
 user-code that also has static initializers.
 
 
 > 2) because order of initialization isn't guaranteed, that code's module is
 > initialized by the linker before the creation of cout, cerr, etc.
 
 ? 
 
 look at ios_base::Init::Init in src/ios.cc: you'll see that elaborate
 steps are taken to only initialize once.
 
 > 3) when cout, cerr, etc. actually do initialize, they reset the buffers
 > created in step 1) and the streams are fubared.
 
 seems unlikely.
 
 > I'll make sure this happens on a non-Solaris platform to make sure it wasn't
 > a Solaris specific gcc/ld problem. Beyond that, though, I'm not sure I can
 > do too much. I'd probably then just file this as "something to keep an eye
 > out for." 
 
 
 I'll keep in the back of my head going forward. Thanks,
 benjamin
 
>From bkoz@spitfire.cygnus.com Mon Mar 20 20:07:00 2000
From: Benjamin Kosnik <bkoz@spitfire.cygnus.com>
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/8 
Date: Mon, 20 Mar 2000 20:07:00 -0000
Message-id: <20000321040701.4249.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00051.html
Content-length: 1223

The following reply was made to PR libstdc++/8; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@spitfire.cygnus.com>
To: David Konerding <dek@konerding.com>
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/8 
Date: Mon, 20 Mar 2000 20:00:25 -0800 (PST)

 > Got a question for ya-  we are trying to compile libstdc++ cvs on our
 > Alpha (Tru64/Digital Unix 5.0).  There is a problem with complex math,
 > since the cygnus libstdc++ does not put complex math headers in the
 > std namespace.  This is interfering with the complex math stuff
 > in math.h.  I never had any problems under Linux, we've only noticed
 > this on the Alpha.  Any ideas on what we woudl need to do (other than making
 > sure complex math went into namespace std?)
 
 David. Have you tried a new snapshot (2.90.8.pre2) and
 --enable-namespaces? Please read the install/configure docs on the web:
 they now explain how to enable namespaces.
 
 (bits/std_complex.h does put complex into std::)
 
 
 namespace std
 {
     // Forward declarations
     template<typename _Tp> class complex;
     template<> class complex<float>;
     template<> class complex<double>;
     template<> class complex<long double>;
 
 
 --benjamin
 
>From bkoz@cygnus.com Tue Mar 21 00:07:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/14
Date: Tue, 21 Mar 2000 00:07:00 -0000
Message-id: <20000321080700.12051.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00052.html
Content-length: 728

The following reply was made to PR libstdc++/14; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  michaelv@edifecs.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/14
Date: 21 Mar 2000 08:04:07 -0000

 Synopsis: Cannot link if std::stringstream is used
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:04:07 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->closed
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:04:07 2000
 State-Changed-Why:
     per request
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=14&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:17:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/23
Date: Tue, 21 Mar 2000 00:17:00 -0000
Message-id: <20000321081700.13400.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00056.html
Content-length: 1032

The following reply was made to PR libstdc++/23; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  mooney@dogbert.cc.ndsu.nodak.edu, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/23
Date: 21 Mar 2000 08:12:50 -0000

 Synopsis: alpha-dec-osf4.0f: math/mycabsf.c "hard register" compile failure
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:12:50 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:12:50 2000
 State-Changed-Why:
     I too had been seeing this with 2.95.2. This has nothing to do with the library, but instead has to do with the particular backend's support for complex numbers. Richard Henderson has fixed the alpha backend in the CVS gcc sources. I suggest you try that.
     
     -benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=23&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:17:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/21
Date: Tue, 21 Mar 2000 00:17:00 -0000
Message-id: <20000321081700.13413.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00054.html
Content-length: 944

The following reply was made to PR libstdc++/21; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, dirk_aust@gmx.de, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/21
Date: 21 Mar 2000 08:15:28 -0000

 Synopsis: libstdc++
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:15:28 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:15:28 2000
 State-Changed-Why:
     Hi Dirk. Have you been able to reproduce this problem with the CVS sources or the 2.90.8pre2 tarball up on sourceware? If so, can you send me detailed information as to how you configure and set up the source/build directories?
     
     thanks,
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=21&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:17:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/25
Date: Tue, 21 Mar 2000 00:17:00 -0000
Message-id: <20000321081700.13394.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00055.html
Content-length: 884

The following reply was made to PR libstdc++/25; it has been noted by GNATS.

From: bkoz@cygnus.com
To: Nicholas.Walker@desy.de, bkoz@cygnus.com,
  libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/25
Date: 21 Mar 2000 08:10:29 -0000

 Synopsis: all (istream) input causes segmentation fault
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:10:29 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:10:29 2000
 State-Changed-Why:
     This is fixed in the upcoming release. If you'd like to try it, please try 2.90.8.pre2 on sourceware's libstdc++ ftp site.
     
     thanks,
     benjamin  
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=25&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:17:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/27
Date: Tue, 21 Mar 2000 00:17:00 -0000
Message-id: <20000321081700.13391.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00053.html
Content-length: 762

The following reply was made to PR libstdc++/27; it has been noted by GNATS.

From: bkoz@cygnus.com
To: arysin@yahoo.com, bkoz@cygnus.com, bothner@cygnus.com,
  libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/27
Date: 21 Mar 2000 08:07:39 -0000

 Synopsis: 'mode' argument in fstream/ofstream constructor
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:07:39 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->closed
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:07:39 2000
 State-Changed-Why:
     Fixed, see 2.90.8.pre2
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=27&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:17:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/20
Date: Tue, 21 Mar 2000 00:17:00 -0000
Message-id: <20000321081701.13425.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00057.html
Content-length: 746

The following reply was made to PR libstdc++/20; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com, vakatov@ncbi.nlm.nih.gov
Cc:  
Subject: Re: libstdc++/20
Date: 21 Mar 2000 08:16:09 -0000

 Synopsis: basic_[io]stringstream::str() - extra "return" in void func?
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:16:09 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->closed
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:16:09 2000
 State-Changed-Why:
     fixed
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=20&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:27:00 2000
From: bkoz@cygnus.com
To: ncm@zembu.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/36
Date: Tue, 21 Mar 2000 00:27:00 -0000
Message-id: <20000321082701.14520.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00059.html
Content-length: 849

The following reply was made to PR libstdc++/36; it has been noted by GNATS.

From: bkoz@cygnus.com
To: libstdc++-gnats@sourceware.cygnus.com, ncm@zembu.com,
  nobody@sourceware.cygnus.com, ori@extent.com, yl@extent.com
Cc:  
Subject: Re: libstdc++/36
Date: 21 Mar 2000 08:24:29 -0000

 Synopsis: A bug in STRING
 
 Responsible-Changed-From-To: unassigned->ncm
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:24:29 2000
 Responsible-Changed-Why:
     strings are for you...
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:24:29 2000
 State-Changed-Why:
     The libstdc++-v3 string implementation is now re-entrant. 
     If you use 2.90.8.pre2 and later, you will find a MT safe solution.
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=36&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:27:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/17
Date: Tue, 21 Mar 2000 00:27:00 -0000
Message-id: <20000321082700.14487.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00058.html
Content-length: 847

The following reply was made to PR libstdc++/17; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com, pbd@op.net
Cc:  
Subject: Re: libstdc++/17
Date: 21 Mar 2000 08:17:48 -0000

 Synopsis: cout is not a real ostream; dynamic_cast SEGV's as a result
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:17:48 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:17:48 2000
 State-Changed-Why:
     Please try to use libstdc++-v3. You can find more information about it here:
     
     sourceware.cygnus.com/libstdc++
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=17&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:27:00 2000
From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com, Dos-Reis@cmla.ens-cachan.fr
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/19
Date: Tue, 21 Mar 2000 00:27:00 -0000
Message-id: <20000321082700.14490.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00060.html
Content-length: 752

The following reply was made to PR libstdc++/19; it has been noted by GNATS.

From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com,
  Dos-Reis@cmla.ens-cachan.fr, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com, tomoaki@biol.s.u-tokyo.ac.jp
Cc:  
Subject: Re: libstdc++/19
Date: 21 Mar 2000 08:21:10 -0000

 Synopsis: _T name colision to ctype.h in FreeBSD
 
 Responsible-Changed-From-To: unassigned->gdr
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:21:10 2000
 Responsible-Changed-Why:
     Looks like this is still a bug. It's pretty harmless to make this change, so we might as well..
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=19&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:27:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/33
Date: Tue, 21 Mar 2000 00:27:00 -0000
Message-id: <20000321082700.14506.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00061.html
Content-length: 869

The following reply was made to PR libstdc++/33; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, jeremy.day@perth.wni.com,
  libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/33
Date: 21 Mar 2000 08:22:44 -0000

 Synopsis: Is <sstream> supported in particular stringstream?
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:22:44 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:22:44 2000
 State-Changed-Why:
     Please use libstdc++-v3, which does include <sstream>
     
     See
     
     sourceware.cygnus.com/libstdc++
     
     for more info
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=33&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:37:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/32
Date: Tue, 21 Mar 2000 00:37:00 -0000
Message-id: <20000321083700.17289.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00064.html
Content-length: 1032

The following reply was made to PR libstdc++/32; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com, steffend@lamar.colostate.edu
Cc:  
Subject: Re: libstdc++/32
Date: 21 Mar 2000 08:31:23 -0000

 Synopsis: Install of libstdc++-2.90.7 fails; no header files copied
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:31:23 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->analyzed
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:31:23 2000
 State-Changed-Why:
     Hi. I've not seen anything like this: can you try using the pre-release snapshot, 2.90.8.pre2?
     
     In particular, can you let me know what pathnames you are using for the builddir, sourcedir, and installdir, as per the libstdc++ installation guide?
     
     thanks,
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=32&database=libstdc++
>From bkoz@cygnus.com Tue Mar 21 00:37:00 2000
From: bkoz@cygnus.com
To: ncm@zembu.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/29
Date: Tue, 21 Mar 2000 00:37:00 -0000
Message-id: <20000321083700.17272.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00062.html
Content-length: 933

The following reply was made to PR libstdc++/29; it has been noted by GNATS.

From: bkoz@cygnus.com
To: libstdc++-gnats@sourceware.cygnus.com, ncm@zembu.com,
  nobody@sourceware.cygnus.com, rbsmithz@prodigy.net
Cc:  
Subject: Re: libstdc++/29
Date: 21 Mar 2000 08:27:20 -0000

 Synopsis: seg fault in global basic_string construction
 
 Responsible-Changed-From-To: unassigned->ncm
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Tue Mar 21 00:27:20 2000
 Responsible-Changed-Why:
     strings
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Tue Mar 21 00:27:20 2000
 State-Changed-Why:
     This bug tracking database is for the libstdc++-v3 project: you are using libstdc++-v2. If you'd like to use libstdc++-v3, please see
     
     sourceware.cygnus.com/libstdc++
     
     thanks,
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=29&database=libstdc++
>From Gabriel.Dos-Reis@cmla.ens-cachan.fr Tue Mar 21 00:37:00 2000
From: Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com, Dos-Reis@cmla.ens-cachan.fr
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/34
Date: Tue, 21 Mar 2000 00:37:00 -0000
Message-id: <20000321083700.17278.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00063.html
Content-length: 1460

The following reply was made to PR libstdc++/34; it has been noted by GNATS.

From: Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
To: bkoz@cygnus.com
Cc: gdr@sourceware.cygnus.com, libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/34
Date: 21 Mar 2000 09:20:26 +0100

 [ Oops, this bounced ]
 
 Hi Benjamin,
 
 I saw you're doing a great job the the bug reports.  Thanks a lot.
 
 bkoz@cygnus.com writes:
 
 | The following reply was made to PR libstdc++/34; it has been noted by GNATS.
 | 
 | From: bkoz@cygnus.com
 | To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com,
 |   Dos-Reis@cmla.ens-cachan.fr, jsk29@cornell.edu,
 |   libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
 | Cc:  
 | Subject: Re: libstdc++/34
 | Date: 20 Mar 2000 20:19:21 -0000
 | 
 |  Synopsis: Segmentation fault when resizing a valarry.
 |  
 |  Responsible-Changed-From-To: unassigned->gdr
 |  Responsible-Changed-By: bkoz
 |  Responsible-Changed-When: Mon Mar 20 12:19:21 2000
 |  Responsible-Changed-Why:
 |      26_numerics
 |  State-Changed-From-To: open->feedback
 |  State-Changed-By: bkoz
 |  State-Changed-When: Mon Mar 20 12:19:21 2000
 |  State-Changed-Why:
 |      this no longer seems to be a bug in the 2.0.8.x series.
 
 Yes, the recent changes in valarray were designed specifically to
 allow reasonable behaviour when resizing valarrays on some types.  I
 know testsuites arre missing though.
 
 Thanks,
 
 -- Gaby
 
>From bkoz@cygnus.com Tue Mar 21 00:47:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com, Dos-Reis@cmla.ens-cachan.fr
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/34
Date: Tue, 21 Mar 2000 00:47:00 -0000
Message-id: <20000321084700.19028.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00065.html
Content-length: 507

The following reply was made to PR libstdc++/34; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/34
Date: Tue, 21 Mar 2000 00:38:48 -0800 (PST)

 hey gaby!
 
 yeah, most of the bugs are crusty and don't apply. I think you have 3
 numerics ones assigned, but only one that is still applicable. (that woud
 be changing _T to _Tp in slice-array.h)
 
 -benjamin
 
 
>From Gabriel.Dos-Reis@cmla.ens-cachan.fr Tue Mar 21 01:07:00 2000
From: Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com, Dos-Reis@cmla.ens-cachan.fr
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/34
Date: Tue, 21 Mar 2000 01:07:00 -0000
Message-id: <20000321090700.25982.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00066.html
Content-length: 945

The following reply was made to PR libstdc++/34; it has been noted by GNATS.

From: Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
To: Benjamin Kosnik <bkoz@cygnus.com>
Cc: Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>,
        libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/34
Date: 21 Mar 2000 10:01:41 +0100

 Benjamin Kosnik <bkoz@cygnus.com> writes:
 
 | hey gaby!
 | 
 | yeah, most of the bugs are crusty and don't apply. I think you have 3
 | numerics ones assigned, but only one that is still applicable. (that woud
 | be changing _T to _Tp in slice-array.h)
 
 Thank you.  I went through the *_array.h files and discovered, the same
 change was needed in mask_array.h as well.  Fixed with this
 
 2000-03-21  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
 
         * bits/slice_array.h: Rename generic type template parameter name
         '_T' to '_Tp'. 
         * bits/mask_array.h: Ditto
 
 -- Gaby
>From bkoz@cygnus.com Wed Mar 22 00:17:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 00:17:00 -0000
Message-id: <20000322081700.30676.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00067.html
Content-length: 979

The following reply was made to PR libstdc++/39; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, jbednar@cs.utexas.edu,
  libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/39
Date: 22 Mar 2000 08:13:08 -0000

 Synopsis: allocator::address declared twice
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Wed Mar 22 00:13:08 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Wed Mar 22 00:13:08 2000
 State-Changed-Why:
     You're not using the v-3 headers, instead you are picking up the v-2 headers from your compiler install. 
     
     You can tell this from your include path:
     
     include/g++-3
     
     instead of
     
     include/g++-v3
     
     go horns!
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=39&database=libstdc++
>From bkoz@cygnus.com Wed Mar 22 00:27:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/38
Date: Wed, 22 Mar 2000 00:27:00 -0000
Message-id: <20000322082700.31650.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00068.html
Content-length: 1003

The following reply was made to PR libstdc++/38; it has been noted by GNATS.

From: bkoz@cygnus.com
To: badger@prtr-13.ucsc.edu, bkoz@cygnus.com,
  libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/38
Date: 22 Mar 2000 08:22:30 -0000

 Synopsis: Bug in global map variables
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Wed Mar 22 00:22:29 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->analyzed
 State-Changed-By: bkoz
 State-Changed-When: Wed Mar 22 00:22:29 2000
 State-Changed-Why:
     This example program is pretty huge. Can you please narrow this down to a short short, small, mini, tiny example that will fit into one file, and provide relevant comments in your bug report as to what output you are expecting, what output you are getting, etc?
     
     thanks,
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=38&database=libstdc++
>From bkoz@cygnus.com Wed Mar 22 00:27:00 2000
From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com, Dos-Reis@cmla.ens-cachan.fr
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/19
Date: Wed, 22 Mar 2000 00:27:00 -0000
Message-id: <20000322082700.31655.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00069.html
Content-length: 625

The following reply was made to PR libstdc++/19; it has been noted by GNATS.

From: bkoz@cygnus.com
To: Gabriel@sourceware.cygnus.com, dot@sourceware.cygnus.com,
  Dos-Reis@cmla.ens-cachan.fr, libstdc++-gnats@sourceware.cygnus.com,
  tomoaki@biol.s.u-tokyo.ac.jp
Cc:  
Subject: Re: libstdc++/19
Date: 22 Mar 2000 08:23:16 -0000

 Synopsis: _T name colision to ctype.h in FreeBSD
 
 State-Changed-From-To: open->closed
 State-Changed-By: bkoz
 State-Changed-When: Wed Mar 22 00:23:16 2000
 State-Changed-Why:
     Gaby fixed this yesterday
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=19&database=libstdc++
>From bkoz@cygnus.com Wed Mar 22 00:37:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/30
Date: Wed, 22 Mar 2000 00:37:00 -0000
Message-id: <20000322083700.32638.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00071.html
Content-length: 864

The following reply was made to PR libstdc++/30; it has been noted by GNATS.

From: bkoz@cygnus.com
To: bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  michael.reed@ft.com, nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/30
Date: 22 Mar 2000 08:32:23 -0000

 Synopsis: SUN 32bit apps using 64bit file offsets
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Wed Mar 22 00:32:23 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->feedback
 State-Changed-By: bkoz
 State-Changed-When: Wed Mar 22 00:32:23 2000
 State-Changed-Why:
     Michael:
     Are you using libstdc++-v3? Or is this in reference to libstdc++-v2, which comes with gcc-2.95.2...
     
     ??
     
     benjamin
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=30&database=libstdc++
>From bkoz@cygnus.com Wed Mar 22 00:37:00 2000
From: bkoz@cygnus.com
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/40
Date: Wed, 22 Mar 2000 00:37:00 -0000
Message-id: <20000322083700.32633.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00070.html
Content-length: 771

The following reply was made to PR libstdc++/40; it has been noted by GNATS.

From: bkoz@cygnus.com
To: anders@ieee.org, bkoz@cygnus.com, libstdc++-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/40
Date: 22 Mar 2000 08:30:10 -0000

 Synopsis: bitset::operator<<= and >>= incorrect for multiples of 32
 
 Responsible-Changed-From-To: unassigned->bkoz
 Responsible-Changed-By: bkoz
 Responsible-Changed-When: Wed Mar 22 00:30:10 2000
 Responsible-Changed-Why:
     mine
 State-Changed-From-To: open->analyzed
 State-Changed-By: bkoz
 State-Changed-When: Wed Mar 22 00:30:10 2000
 State-Changed-Why:
     Can you please send in a patch for this?
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=40&database=libstdc++
>From jbednar@cs.utexas.edu Wed Mar 22 10:57:00 2000
From: "James A. Bednar" <jbednar@cs.utexas.edu>
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 10:57:00 -0000
Message-id: <20000322185700.17159.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00072.html
Content-length: 2113

The following reply was made to PR libstdc++/39; it has been noted by GNATS.

From: "James A. Bednar" <jbednar@cs.utexas.edu>
To: bkoz@cygnus.com
Cc: libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 12:50:11 -0600 (CST)

 |  Date: 22 Mar 2000 08:13:08 -0000
 |  From: bkoz@cygnus.com
 |  
 |  Synopsis: allocator::address declared twice
 |  
 |  Responsible-Changed-From-To: unassigned->bkoz
 |  Responsible-Changed-By: bkoz
 |  Responsible-Changed-When: Wed Mar 22 00:13:08 2000
 |  Responsible-Changed-Why: mine
 |  State-Changed-From-To: open->feedback
 |  State-Changed-By: bkoz
 |  State-Changed-When: Wed Mar 22 00:13:08 2000
 |  State-Changed-Why:
 |      You're not using the v-3 headers, instead you are picking up the v-2 headers from your compiler install. 
 |      
 |      You can tell this from your include path:
 |      
 |      include/g++-3
 |      
 |      instead of
 |      
 |      include/g++-v3
 |      
 |      go horns!
 
 :-)
 
 |      benjamin
 
 I'm not sure what you mean.  The v3 headers were indeed located in
 /usr/include/g++-3:
 
   pale:~> rpm -qlp /p/arc/gcc-c++-2.95.1-3.i386.rpm | grep vector
   /usr/include/g++-3/bvector.h
   /usr/include/g++-3/stl_bvector.h
   /usr/include/g++-3/stl_vector.h
   /usr/include/g++-3/vector
   /usr/include/g++-3/vector.h
 
 On some of my systems there are v-2 headers are in /usr/include/g++-2
 or /usr/include/g++, depending on the compiler version, but none have 
 an include/g++-v3 directory.
 
 |  http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=39&database=libstdc++
 
 By the way, this link didn't work properly in my copy of Netscape 4.7.
 After typing password and user "guest" as suggested, it says "hold
 on...redirecting" and then just spits me back to the password prompt.
 The database wasn't automatically selected, either, even though I can
 see it in the URL.  I was eventually able to get to the page by
 logging in, failing, then going directly to the address 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl by hand.
 
 Thanks,
 
 Jim
 
>From bkoz@cygnus.com Wed Mar 22 11:07:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/40
Date: Wed, 22 Mar 2000 11:07:00 -0000
Message-id: <20000322190700.20134.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00073.html
Content-length: 414

The following reply was made to PR libstdc++/40; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: Anders Johnson <anders@broadcom.com>
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/40
Date: Wed, 22 Mar 2000 11:05:11 -0800 (PST)

 No, I did not get your patch. Can you please resend, and cc 
 libstdc++-gnats? That way it gets logged in the database.
 
 thanks,
 benjamin
>From anders@broadcom.com Wed Mar 22 11:17:00 2000
From: anders@broadcom.com (Anders Johnson)
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/40
Date: Wed, 22 Mar 2000 11:17:00 -0000
Message-id: <20000322191700.22663.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00075.html
Content-length: 4859

The following reply was made to PR libstdc++/40; it has been noted by GNATS.

From: anders@broadcom.com (Anders Johnson)
To: bkoz@cygnus.com
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/40
Date: Wed, 22 Mar 2000 11:13:14 -0800

 ----- Begin Included Message -----
 
 From anders Fri Mar 10 16:23:54 2000
 To: bkoz@cygnus.com
 Subject: Re: libstdc++/40: bitset::operator<<= and >>= incorrect for multiples
  of 32
 
 > can you please send me a patch and change log entry?
 
 I'm new at this, so please bear with me.
 
 The problem was actually observed on gcc/2.95.2/5.6/include/g++-3, because
 I can't build libstdc++-2.90.7 on my system because "wmemcmp.c" doesn't
 compile because 'wint_t' is not defined in either "string.h" or "stddef.h".
 However, the code in libstdc++-2.90.7 looks the same.
 
 Here is the patch:
 
 ----- Begin Included File -----
 
 diff -c3pr libstdc++-2.90.7-1/stl/bits/std_bitset.h libstdc++-2.90.7/stl/bits/std_bitset.h
 *** libstdc++-2.90.7/stl/bits/std_bitset.h	Tue Dec 21 21:07:58 1999
 --- NEW/stl/bits/std_bitset.h	Fri Mar 10 14:50:36 2000
 *************** void _Base_bitset<_Nw, _WordT>::_M_do_le
 *** 196,204 ****
       const size_t __offset = __shift % __BITS_PER_WORDT(_WordT);
       const size_t __sub_offset = __BITS_PER_WORDT(_WordT) - __offset;
       size_t __n = _Nw - 1;
 !     for ( ; __n > __wshift; --__n)
 !       _M_w[__n] = (_M_w[__n - __wshift] << __offset) |
 !                 (_M_w[__n - __wshift - 1] >> __sub_offset);
       if (__n == __wshift)
         _M_w[__n] = _M_w[0] << __offset;
       for (size_t __n1 = 0; __n1 < __n; ++__n1)
 --- 196,206 ----
       const size_t __offset = __shift % __BITS_PER_WORDT(_WordT);
       const size_t __sub_offset = __BITS_PER_WORDT(_WordT) - __offset;
       size_t __n = _Nw - 1;
 !     for ( ; __n > __wshift; --__n) {
 !       _M_w[__n] = (_M_w[__n - __wshift] << __offset);
 !       if(__offset)
 !         _M_w[__n] |= _M_w[__n - __wshift - 1] >> __sub_offset;
 !     }
       if (__n == __wshift)
         _M_w[__n] = _M_w[0] << __offset;
       for (size_t __n1 = 0; __n1 < __n; ++__n1)
 *************** void _Base_bitset<_Nw, _WordT>::_M_do_ri
 *** 215,223 ****
       const size_t __sub_offset = __BITS_PER_WORDT(_WordT) - __offset;
       const size_t __limit = _Nw - __wshift - 1;
       size_t __n = 0;
 !     for ( ; __n < __limit; ++__n)
 !       _M_w[__n] = (_M_w[__n + __wshift] >> __offset) |
 !                   (_M_w[__n + __wshift + 1] << __sub_offset);
       _M_w[__limit] = _M_w[_Nw-1] >> __offset;
       for (size_t __n1 = __limit + 1; __n1 < _Nw; ++__n1)
         _M_w[__n1] = static_cast<_WordT>(0);
 --- 217,227 ----
       const size_t __sub_offset = __BITS_PER_WORDT(_WordT) - __offset;
       const size_t __limit = _Nw - __wshift - 1;
       size_t __n = 0;
 !     for ( ; __n < __limit; ++__n) {
 !       _M_w[__n] = (_M_w[__n + __wshift] >> __offset);
 !       if(__offset)
 !         _M_w[__n] |= _M_w[__n + __wshift + 1] << __sub_offset;
 !     }
       _M_w[__limit] = _M_w[_Nw-1] >> __offset;
       for (size_t __n1 = __limit + 1; __n1 < _Nw; ++__n1)
         _M_w[__n1] = static_cast<_WordT>(0);
 
 ----- End Included File -----
 
 Here is a ChangeLog entry (not sure about the format):
 
 ----- Begin Included File -----
 
 - Fri Mar 10 16:12:00 PST 2000 stl/bits/std_bitset.h: Modified
 _M_do_left_shift and _M_do_right_shift not to rely on the behavior
 of _WordT << __BITS_PER_WORDT(_WordT), which is undefined according
 to the C standard, and does the wrong thing on Sparc.
 
 ----- End Included File -----
 
 Here is a test case:
 
 ----- Begin Included File -----
 
 #include <climits>
 #include <algobase.h>
 #include <bitset>
 #include <iostream>
 
 int main() {
 	bitset<66> b(1);
 	cout << b << endl;
 	b<<=32;
 	cout << b << endl;
 	b |= bitset<66>(1)<<65;
 	cout << b << endl;
 	b>>=32;
 	cout << b << endl;
 	return 0;
 }
 
 ----- End Included File -----
 
 The expected output is:
 000000000000000000000000000000000000000000000000000000000000000001
 000000000000000000000000000000000100000000000000000000000000000000
 100000000000000000000000000000000100000000000000000000000000000000
 000000000000000000000000000000001000000000000000000000000000000001
 
 The actual output on SunOS 5.5.1 sun4u sparc is:
 000000000000000000000000000000000000000000000000000000000000000001
 010000000000000000000000000000000100000000000000000000000000000000
 110000000000000000000000000000000100000000000000000000000000000000
 000000000000000000000000000000001100000000000000000000000000000011
 
 Please let me know if you need anything else.
 
 Thanks,
 --
  n  _   _ _    Anders Johnson        ``The ultimate test of all
  X /_)|' (_`   Broadcom Corporation    knowledge is experiment.''
 (_X\_,|  ._)   anders(at)ieee(dot)org         -- Richard Feynman
 
 
 
 ----- End Included Message -----
 
>From bkoz@cygnus.com Wed Mar 22 11:17:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 11:17:00 -0000
Message-id: <20000322191700.22658.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00074.html
Content-length: 2048

The following reply was made to PR libstdc++/39; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: "James A. Bednar" <jbednar@cs.utexas.edu>
Cc: libstdc++-gnats@sourceware.cygnus.com, pme@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 11:09:51 -0800 (PST)

 Phil, it looks like other people are running into the same bug: any word 
 from the GNATS people?
 
 > |      You're not using the v-3 headers, instead you are picking up the v-2 headers from your compiler install. 
 > |      
 > |      You can tell this from your include path:
 > |      
 > |      include/g++-3
 > |      
 > |      instead of
 > |      
 > |      include/g++-v3
 > |      
 > |      go horns!
 > 
 > :-)
 > 
 > |      benjamin
 > 
 > I'm not sure what you mean.  The v3 headers were indeed located in
 > /usr/include/g++-3:
 
 No. libstdc++-v3 is a separate package than gcc-2.95.2.
 
 Please see:
 
 http://sourceware.cygnus.com/libstdc++
 
 >   pale:~> rpm -qlp /p/arc/gcc-c++-2.95.1-3.i386.rpm | grep vector
 
 Please try using the tarball, I have no idea what this rpm is up to.
 
 >   /usr/include/g++-3/bvector.h
 >   /usr/include/g++-3/stl_bvector.h
 >   /usr/include/g++-3/stl_vector.h
 >   /usr/include/g++-3/vector
 >   /usr/include/g++-3/vector.h
 
 libstdc++-v2, which comes with gcc-2.95.x, puts the c++ includes in
 
 include/g++-3
 
 libstdc++-v3, which you will have to build yourself, puts the c++ 
 includes in
 
 include/g++-v3
 
 confusing, I know, but I didn't make these decisions
 
 > By the way, this link didn't work properly in my copy of Netscape 4.7.
 > After typing password and user "guest" as suggested, it says "hold
 > on...redirecting" and then just spits me back to the password prompt.
 > The database wasn't automatically selected, either, even though I can
 > see it in the URL.  I was eventually able to get to the page by
 > logging in, failing, then going directly to the address 
 > http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl by hand.
 
 Phil is working on this
 
 -benjamin
>From bkoz@cygnus.com Wed Mar 22 11:27:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 11:27:00 -0000
Message-id: <20000322192700.24316.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00076.html
Content-length: 903

The following reply was made to PR libstdc++/39; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: "James A. Bednar" <jbednar@cs.utexas.edu>
Cc: pme@sourceware.cygnus.comm, libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 11:23:24 -0800 (PST)

 > That's very strange; I assumed that when GCC suddenly started putting
 > things in g++-3 instead of g++-2 it signified a change from version 2
 > to version 3, but I suppose that was silly of me :-).  All it means,
 > though, is that the bug is in the version 2 includes and not the
 > version 3 ones.  And that as a result I need to report it to gcc-bugs
 > instead?  (Or I can just give up on it :-).
 
 Yeah. I know, the numerology makes no sense.
 
 I strongly suggest using the 2.90.8 release. You'll be able to DL it on 
 friday from
 
 sourceware.cygnus.com/libstdc++
 
 best,
 -benjamin
>From pedwards@jaj.com Wed Mar 22 12:17:00 2000
From: Phil Edwards <pedwards@jaj.com>
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 12:17:00 -0000
Message-id: <20000322201701.1788.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00077.html
Content-length: 1259

The following reply was made to PR libstdc++/39; it has been noted by GNATS.

From: Phil Edwards <pedwards@jaj.com>
To: bkoz@cygnus.com, jbednar@cs.utexas.edu
Cc: libstdc++-gnats@sourceware.cygnus.com, pme@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 15:27:45 -0500

 > Phil, it looks like other people are running into the same bug: any word 
 > from the GNATS people?
 [snip]
 >
 > > By the way, this link didn't work properly in my copy of Netscape 4.7.
 > > After typing password and user "guest" as suggested, it says "hold
 > > on...redirecting" and then just spits me back to the password prompt.
 > > The database wasn't automatically selected, either, even though I can
 > > see it in the URL.  I was eventually able to get to the page by
 > > logging in, failing, then going directly to the address 
 > > http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl by hand.
 
 Apparently the version of gnatsweb being used is slightly buggy.
 There is a report that the beta release of the next version does
 not have this problem.  That's all I've been able to gather so far.
 Hopefully I'll have something more by tomorrow.
 
 Phil
 P.S.- Will responding to a -prs or -gnats list message enter something
       into the database?
 
>From bkoz@cygnus.com Wed Mar 22 12:27:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: bkoz@cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 12:27:00 -0000
Message-id: <20000322202701.3372.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00078.html
Content-length: 799

The following reply was made to PR libstdc++/39; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: Phil Edwards <pedwards@jaj.com>
Cc: jbednar@cs.utexas.edu, libstdc++-gnats@sourceware.cygnus.com,
        pme@sourceware.cygnus.com
Subject: Re: libstdc++/39
Date: Wed, 22 Mar 2000 12:18:19 -0800 (PST)

 > Apparently the version of gnatsweb being used is slightly buggy.
 > There is a report that the beta release of the next version does
 > not have this problem.  That's all I've been able to gather so far.
 > Hopefully I'll have something more by tomorrow.
 
 cool... thanks for looking into it.
 
 > P.S.- Will responding to a -prs or -gnats list message enter something
 >       into the database?
 
 ccing libstdc++-gnats will make things be entered auto-magically.
 
 
>From loreti@pd.infn.it Thu Mar 23 01:17:00 2000
From: loreti@pd.infn.it
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/44: Couldn't compile libstdc++ 2.90.8pre2 with gcc-2.95.2
Date: Thu, 23 Mar 2000 01:17:00 -0000
Message-id: <20000323091426.5775.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00079.html
Content-length: 8232

>Number:         44
>Category:       libstdc++
>Synopsis:       Couldn't compile libstdc++ 2.90.8pre2 with gcc-2.95.2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 23 01:17:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     loreti@pd.infn.it
>Release:        2.90.8pre2
>Organization:
>Environment:
gcc 2.95.2
linux 2.2.10-20 (RedHat 6.1)
>Description:
Unpacked gcc distribution, removed libio and libstdc++;
unpacked 2.90.8pre2, name changed to libstdc++.
make bootstrap successfully built the compilers (3 stages).
When compiling libstdc++ I had a fatal error (see attached
log file).
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="make.log"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="make.log"

bWFrZVszXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS9sb3JldGkvd29yay9vYmpkaXIvaTY4
Ni1wYy1saW51eC1nbnUvbGlic3RkYysrL3NyYycKL2Jpbi9zaCAuLi9saWJ0b29sIC0tbW9kZT1j
b21waWxlIC9ob21lL2xvcmV0aS93b3JrL29iamRpci9nY2MveGdjYyAtQi9ob21lL2xvcmV0aS93
b3JrL29iamRpci9nY2MvIC1CL3Vzci9sb2NhbC9nY2MvaTY4Ni1wYy1saW51eC1nbnUvYmluLyAt
REhBVkVfQ09ORklHX0ggLUkuIC1JLi4vLi4vLi4vLi4vZ2NjLTIuOTUuMi9saWJzdGRjKysvc3Jj
IC1JLi4gLW5vc3RkaW5jKysgLUkuLi8uLi8uLi8uLi9nY2MtMi45NS4yL2xpYnN0ZGMrKyAtSS4u
Ly4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL3N0bCAtSS4uLy4uLy4uLy4uL2djYy0yLjk1
LjIvbGlic3RkYysrL2xpYmlvICAtSS4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL2Nv
bmZpZy9jcHUvaTM4NiAtSS4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL2NvbmZpZy9n
bnUtbGludXggLUkvdXNyL2xvY2FsL2djYy9pbmNsdWRlCSAgIC1EX0dOVV9TT1VSQ0UgLWZuby1p
bXBsaWNpdC10ZW1wbGF0ZXMgLVdhbGwgLVduby1mb3JtYXQgLVcgLVd3cml0ZS1zdHJpbmdzIC1X
aW5saW5lIC1XZXJyb3IgLWcgLWZob25vci1zdGQgIC1nIC1PMiAtZnZ0YWJsZS10aHVua3MgLURf
R05VX1NPVVJDRSAtYyAuLi8uLi8uLi8uLi9nY2MtMi45NS4yL2xpYnN0ZGMrKy9zcmMvc3RyaW5n
TUFJTi5jYwpybSAtZiAubGlicy9zdHJpbmdNQUlOLmxvCi9ob21lL2xvcmV0aS93b3JrL29iamRp
ci9nY2MveGdjYyAtQi9ob21lL2xvcmV0aS93b3JrL29iamRpci9nY2MvIC1CL3Vzci9sb2NhbC9n
Y2MvaTY4Ni1wYy1saW51eC1nbnUvYmluLyAtREhBVkVfQ09ORklHX0ggLUkuIC1JLi4vLi4vLi4v
Li4vZ2NjLTIuOTUuMi9saWJzdGRjKysvc3JjIC1JLi4gLW5vc3RkaW5jKysgLUkuLi8uLi8uLi8u
Li9nY2MtMi45NS4yL2xpYnN0ZGMrKyAtSS4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysr
L3N0bCAtSS4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL2xpYmlvIC1JLi4vLi4vLi4v
Li4vZ2NjLTIuOTUuMi9saWJzdGRjKysvY29uZmlnL2NwdS9pMzg2IC1JLi4vLi4vLi4vLi4vZ2Nj
LTIuOTUuMi9saWJzdGRjKysvY29uZmlnL2dudS1saW51eCAtSS91c3IvbG9jYWwvZ2NjL2luY2x1
ZGUgLURfR05VX1NPVVJDRSAtZm5vLWltcGxpY2l0LXRlbXBsYXRlcyAtV2FsbCAtV25vLWZvcm1h
dCAtVyAtV3dyaXRlLXN0cmluZ3MgLVdpbmxpbmUgLVdlcnJvciAtZyAtZmhvbm9yLXN0ZCAtZyAt
TzIgLWZ2dGFibGUtdGh1bmtzIC1EX0dOVV9TT1VSQ0UgLWMgIC1mUElDIC1EUElDIC4uLy4uLy4u
Ly4uL2djYy0yLjk1LjIvbGlic3RkYysrL3NyYy9zdHJpbmdNQUlOLmNjIC1vIC5saWJzL3N0cmlu
Z01BSU4ubG8KY2MxcGx1czogd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKLi4vLi4v
Li4vLi4vZ2NjLTIuOTUuMi9saWJzdGRjKysvYml0cy9zdHJpbmcudGNjOiBJbiBtZXRob2QgYHN0
ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRv
cjxjaGFyPiA+OjpiYXNpY19zdHJpbmcoY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6
OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiwgdW5zaWduZWQgaW50
LCB1bnNpZ25lZCBpbnQgPSBzdGQ6OmJhc2ljX3N0cmluZzxfQ2hhclQsX1RyYWl0cyxfQWxsb2M+
OjpucG9zKSc6Ci4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL3NyYy9zdHJpbmctaW5z
dC5jYzo2NDogICBpbnN0YW50aWF0ZWQgZnJvbSBoZXJlCi4uLy4uLy4uLy4uL2djYy0yLjk1LjIv
bGlic3RkYysrL2JpdHMvYmFzaWNfc3RyaW5nLmg6NzEyOiB3YXJuaW5nOiBjYW4ndCBpbmxpbmUg
Y2FsbCB0byBgc3RhdGljIGNoYXIgKiBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90
cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X1NfY29uc3RydWN0PHN0ZDo6X19u
b3JtYWxfaXRlcmF0b3I8Y2hhciAqLHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3Ry
YWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ID4gPihzdGQ6Ol9fbm9ybWFsX2l0ZXJh
dG9yPGNoYXIgKixzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4s
c3RkOjphbGxvY2F0b3I8Y2hhcj4gPiA+LCBzdGQ6Ol9fbm9ybWFsX2l0ZXJhdG9yPGNoYXIgKixz
dGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0
b3I8Y2hhcj4gPiA+LCBjb25zdCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiAmKScKLi4vLi4vLi4vLi4v
Z2NjLTIuOTUuMi9saWJzdGRjKysvYml0cy9zdHJpbmcudGNjOjE4NDogd2FybmluZzogY2FsbGVk
IGZyb20gaGVyZQouLi8uLi8uLi8uLi9nY2MtMi45NS4yL2xpYnN0ZGMrKy9iaXRzL2Jhc2ljX3N0
cmluZy5oOiBJbiBtZXRob2QgYGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFy
X3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgc3RkOjpiYXNpY19zdHJpbmc8
Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFwcGVu
ZChjb25zdCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3Rk
OjphbGxvY2F0b3I8Y2hhcj4gPiAmKSc6Ci4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysr
L2JpdHMvYmFzaWNfc3RyaW5nLmg6NDUxOiAgIGluc3RhbnRpYXRlZCBmcm9tIGBzdGQ6OmJhc2lj
X3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4g
Pjo6b3BlcmF0b3IgKz0oY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJh
aXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiknCi4uLy4uLy4uLy4uL2djYy0yLjk1
LjIvbGlic3RkYysrL3NyYy9zdHJpbmctaW5zdC5jYzo2NDogICBpbnN0YW50aWF0ZWQgZnJvbSBo
ZXJlCi4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL2JpdHMvYmFzaWNfc3RyaW5nLmg6
Njc1OiB3YXJuaW5nOiBjYW4ndCBpbmxpbmUgY2FsbCB0byBgY2xhc3Mgc3RkOjpiYXNpY19zdHJp
bmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBz
dGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0
b3I8Y2hhcj4gPjo6cmVwbGFjZTxzdGQ6Ol9fbm9ybWFsX2l0ZXJhdG9yPGNoYXIgKixzdGQ6OmJh
c2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hh
cj4gPiA+ID4oc3RkOjpfX25vcm1hbF9pdGVyYXRvcjxjaGFyICosc3RkOjpiYXNpY19zdHJpbmc8
Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gPiwgc3Rk
OjpfX25vcm1hbF9pdGVyYXRvcjxjaGFyICosc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNo
YXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gPiwgc3RkOjpfX25vcm1hbF9p
dGVyYXRvcjxjaGFyICosc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNo
YXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gPiwgc3RkOjpfX25vcm1hbF9pdGVyYXRvcjxjaGFy
ICosc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxs
b2NhdG9yPGNoYXI+ID4gPiknCi4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL2JpdHMv
YmFzaWNfc3RyaW5nLmg6NDcwOiB3YXJuaW5nOiBjYWxsZWQgZnJvbSBoZXJlCi4uLy4uLy4uLy4u
L2djYy0yLjk1LjIvbGlic3RkYysrL2JpdHMvYmFzaWNfc3RyaW5nLmg6IEluIG1ldGhvZCBgY2xh
c3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxs
b2NhdG9yPGNoYXI+ID4gJiBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8
Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKGNvbnN0IHN0ZDo6YmFzaWNfc3Ry
aW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYs
IHVuc2lnbmVkIGludCwgdW5zaWduZWQgaW50KSc6Ci4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGli
c3RkYysrL3NyYy9zdHJpbmctaW5zdC5jYzo2NDogICBpbnN0YW50aWF0ZWQgZnJvbSBoZXJlCi4u
Ly4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL2JpdHMvYmFzaWNfc3RyaW5nLmg6NTQxOiB3
YXJuaW5nOiBjYW4ndCBpbmxpbmUgY2FsbCB0byBgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hh
cixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBzdGQ6OmJh
c2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hh
cj4gPjo6YXNzaWduPHN0ZDo6X19ub3JtYWxfaXRlcmF0b3I8Y2hhciAqLHN0ZDo6YmFzaWNfc3Ry
aW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ID4g
PihzdGQ6Ol9fbm9ybWFsX2l0ZXJhdG9yPGNoYXIgKixzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0
ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiA+LCBzdGQ6Ol9fbm9y
bWFsX2l0ZXJhdG9yPGNoYXIgKixzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFp
dHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiA+KScKLi4vLi4vLi4vLi4vZ2NjLTIuOTUu
Mi9saWJzdGRjKysvYml0cy9iYXNpY19zdHJpbmcuaDo1MjM6IHdhcm5pbmc6IGNhbGxlZCBmcm9t
IGhlcmUKbWFrZVszXTogKioqIFtzdHJpbmdNQUlOLmxvXSBFcnJvciAxCm1ha2VbM106IExlYXZp
bmcgZGlyZWN0b3J5IGAvaG9tZS9sb3JldGkvd29yay9vYmpkaXIvaTY4Ni1wYy1saW51eC1nbnUv
bGlic3RkYysrL3NyYycKbWFrZVsyXTogKioqIFthbGwtcmVjdXJzaXZlXSBFcnJvciAxCm1ha2Vb
Ml06IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9sb3JldGkvd29yay9vYmpkaXIvaTY4Ni1wYy1s
aW51eC1nbnUvbGlic3RkYysrJwptYWtlWzFdOiAqKiogW2FsbC1yZWN1cnNpdmUtYW1dIEVycm9y
IDIKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgYC9ob21lL2xvcmV0aS93b3JrL29iamRpci9p
Njg2LXBjLWxpbnV4LWdudS9saWJzdGRjKysnCm1ha2U6ICoqKiBbYWxsLXRhcmdldC1saWJzdGRj
KytdIEVycm9yIDIK
>From ehmann@cs.unc.edu Fri Mar 24 12:57:00 2000
From: ehmann@cs.unc.edu
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/45: building libstdc++ along with gcc-2.95.2 fails while compiling libstdc++ because of warnings
Date: Fri, 24 Mar 2000 12:57:00 -0000
Message-id: <20000324205211.20242.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00080.html
Content-length: 5510

>Number:         45
>Category:       libstdc++
>Synopsis:       building libstdc++ along with gcc-2.95.2 fails while compiling libstdc++ because of warnings
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 24 12:57:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     stephen ehmann
>Release:        2.90.8
>Organization:
>Environment:
Mandrake Linux PIII 450 96 Mb mem.  gcc-2.95.2 already
installed
>Description:
Compiling libstdc++ fails when compiling with gcc from scratch.

/usr/local/gcc-build/gcc/xgcc -B/usr/local/gcc-build/gcc/ -B/usr/local/gcc/i686-pc-linux-gnu/bin/ -DHAVE_CONFIG_H -I. -I/usr/local/gcc-2.95.2/libstdc++/src -I.. -nostdinc++ -I/usr/local/gcc-2.95.2/libstdc++ -I/usr/local/gcc-2.95.2/libstdc++/stl -I/usr/local/gcc-2.95.2/libstdc++/libio -I/usr/local/gcc-2.95.2/libstdc++/config/cpu/i386 -I/usr/local/gcc-2.95.2/libstdc++/config/gnu-linux -I/usr/local/gcc/include -D_GNU_SOURCE -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -Werror -g -fhonor-std -g -O2 -fvtable-thunks -D_GNU_SOURCE -c  -fPIC -DPIC /usr/local/gcc-2.95.2/libstdc++/src/stringMAIN.cc -o .libs/stringMAIN.lo
cc1plus: warnings being treated as errors
/usr/local/gcc-2.95.2/libstdc++/bits/string.tcc: In method `std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &, unsigned int, unsigned int = std::basic_string<_CharT,_Traits,_Alloc>::npos)':
/usr/local/gcc-2.95.2/libstdc++/src/string-inst.cc:64:   instantiated from here
/usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:712: warning: can't inline call to `static char * std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_S_construct<std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, const std::allocator<char> &)'
/usr/local/gcc-2.95.2/libstdc++/bits/string.tcc:184: warning: called from here
/usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h: In method `class std::basic_string<char,std::char_traits<char>,std::allocator<char> > & std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &)':
/usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:451:   instantiated from `std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator +=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &)'
/usr/local/gcc-2.95.2/libstdc++/src/string-inst.cc:64:   instantiated from here
/usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:675: warning: can't inline call to `class std::basic_string<char,std::char_traits<char>,std::allocator<char> > & std::basic_string<char,std::char_traits<char>,std::allocator<char> >::replace<std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >)'
/usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:470: warning: called from here
/usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h: In method `class std::basic_string<char,std::char_traits<char>,std::allocator<char> > & std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &, unsigned int, unsigned int)':
/usr/local/gcc-2.95.2/libstdc++/src/string-inst.cc:64:   instantiated from here
/usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:541: warning: can't inline call to `class std::basic_string<char,std::char_traits<char>,std::allocator<char> > & std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign<std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >)'
/usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:523: warning: called from here
make[4]: *** [stringMAIN.lo] Error 1
make[4]: Leaving directory `/usr/local/gcc-build/i686-pc-linux-gnu/libstdc++/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/usr/local/gcc-build/i686-pc-linux-gnu/libstdc++'
make[2]: *** [all-recursive-am] Error 2
make[2]: Leaving directory `/usr/local/gcc-build/i686-pc-linux-gnu/libstdc++'
make[1]: *** [all-target-libstdc++] Error 2
make[1]: Leaving directory `/usr/local/gcc-build'
make: *** [bootstrap] Error 2
>How-To-Repeat:
copy the libstdc++ source to the gcc directory as specified
in the docs
configure
make bootstrap
>Fix:
Comment out WERROR in the Makefile in 
buildir/i686-pc-linux-gnu/libstdc++/src
>Release-Note:
>Audit-Trail:
>Unformatted:
>From bkoz@cygnus.com Fri Mar 24 13:37:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/45: building libstdc++ along with gcc-2.95.2 failswhile compiling libstdc++ because of warnings
Date: Fri, 24 Mar 2000 13:37:00 -0000
Message-id: <20000324213700.4007.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00081.html
Content-length: 4799

The following reply was made to PR libstdc++/45; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: ehmann@cs.unc.edu
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/45: building libstdc++ along with gcc-2.95.2 fails
 while compiling libstdc++ because of warnings
Date: Fri, 24 Mar 2000 13:27:53 -0800 (PST)

 > Compiling libstdc++ fails when compiling with gcc from scratch.
 > 
 > /usr/local/gcc-build/gcc/xgcc -B/usr/local/gcc-build/gcc/ -B/usr/local/gcc/i686-pc-linux-gnu/bin/ -DHAVE_CONFIG_H -I. -I/usr/local/gcc-2.95.2/libstdc++/src -I.. -nostdinc++ -I/usr/local/gcc-2.95.2/libstdc++ -I/usr/local/gcc-2.95.2/libstdc++/stl -I/usr/local/gcc-2.95.2/libstdc++/libio -I/usr/local/gcc-2.95.2/libstdc++/config/cpu/i386 -I/usr/local/gcc-2.95.2/libstdc++/config/gnu-linux -I/usr/local/gcc/include -D_GNU_SOURCE -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -Werror -g -fh onor-std -g -O2 -fvtable-thunks -D_GNU_SOURCE -c  -fPIC -DPIC /usr/local/gcc-2.95.2/libstdc++/src/stringMAIN.cc -o .libs/stringMAIN.lo
 > cc1plus: warnings being treated as errors
 > /usr/local/gcc-2.95.2/libstdc++/bits/string.tcc: In method `std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &, unsigned int, unsigned int = std::basic_string<_CharT,_Traits,_Alloc>::npos)':
 > /usr/local/gcc-2.95.2/libstdc++/src/string-inst.cc:64:   instantiated from here
 > /usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:712: warning: can't inline call to `static char * std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_S_construct<std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, const std::alloca tor<char> &)'
 > /usr/local/gcc-2.95.2/libstdc++/bits/string.tcc:184: warning: called from here
 > /usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h: In method `class std::basic_string<char,std::char_traits<char>,std::allocator<char> > & std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &)':
 > /usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:451:   instantiated from `std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator +=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &)'
 > /usr/local/gcc-2.95.2/libstdc++/src/string-inst.cc:64:   instantiated from here
 > /usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:675: warning: can't inline call to `class std::basic_string<char,std::char_traits<char>,std::allocator<char> > & std::basic_string<char,std::char_traits<char>,std::allocator<char> >::replace<std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::cha r_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >)'
 > /usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:470: warning: called from here
 > /usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h: In method `class std::basic_string<char,std::char_traits<char>,std::allocator<char> > & std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &, unsigned int, unsigned int)':
 > /usr/local/gcc-2.95.2/libstdc++/src/string-inst.cc:64:   instantiated from here
 > /usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:541: warning: can't inline call to `class std::basic_string<char,std::char_traits<char>,std::allocator<char> > & std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign<std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >(std::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, std::__normal_iterator<char *,std::basic_string<char,std::char _traits<char>,std::allocator<char> > >)'
 > /usr/local/gcc-2.95.2/libstdc++/bits/basic_string.h:523: warning: called from here
 
 You need to remove either -Werror or -O2 when compiling with gcc-2.95.2
 
 this is covered here:
 http://sourceware.cygnus.com/ml/libstdc++/2000-q1/msg00406.html
 
 
>From harinath@cs.umn.edu Sat Mar 25 15:47:00 2000
From: Raja R Harinath <harinath@cs.umn.edu>
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/46: bad c++config.h in CVS
Date: Sat, 25 Mar 2000 15:47:00 -0000
Message-id: <20000325233940.32063.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00082.html
Content-length: 734

>Number:         46
>Category:       libstdc++
>Synopsis:       bad c++config.h in CVS
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 25 15:47:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Raja R Harinath <harinath@cs.umn.edu>
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
Hi,

The file `bits/c++config.h' in the CVS repostory is broken.
It probably should be removed, anyway, since it is generated
during the configure process.

- Hari
>How-To-Repeat:

>Fix:
Remove bits/c++config.h from the CVS repository.
>Release-Note:
>Audit-Trail:
>Unformatted:
>From anthony_w.geo@yahoo.com Tue Mar 28 03:27:00 2000
From: anthony_w.geo@yahoo.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/47: Build of testsuite fails to compile bits/ios_base.h - exception not declared
Date: Tue, 28 Mar 2000 03:27:00 -0000
Message-id: <20000328112503.16880.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00083.html
Content-length: 2531

>Number:         47
>Category:       libstdc++
>Synopsis:       Build of testsuite fails to compile bits/ios_base.h - exception not declared
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Mar 28 03:27:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Anthony Williams
>Release:        2.90.8
>Organization:
>Environment:
Sparc-solaris-2.7
gcc-2.95.2
>Description:
I have tried building a new copy of gcc 2.95.2 with libstdc++ from the 2.90.8 snapshot, using gcc-2.95.2

It configures and builds OK, but when I run

make check

I get compilation erros on lots of the modules, huge reams of errors and warnings, starting with:

In file included from ../../../gcc-2.95.2/libstdc++/bits/std_ios.h:43,
                 from ../../../gcc-2.95.2/libstdc++/bits/std_istream.h:37,
                 from ../../../gcc-2.95.2/libstdc++/bits/std_fstream.h:37,
                 from ../../../gcc-2.95.2/libstdc++/std/fstream:2,
                 from ../../../gcc-2.95.2/libstdc++/testsuite/17_intro/header_fstream.cc:23:
../../../gcc-2.95.2/libstdc++/bits/ios_base.h:144: parse error before `{'
../../../gcc-2.95.2/libstdc++/bits/ios_base.h:152: destructor `failure' must match class name `ios_base'
../../../gcc-2.95.2/libstdc++/bits/ios_base.h:226: parse error before `protected'
../../../gcc-2.95.2/libstdc++/bits/ios_base.h:239: syntax error before `;'
../../../gcc-2.95.2/libstdc++/bits/ios_base.h:243: parse error before `,'
../../../gcc-2.95.2/libstdc++/bits/ios_base.h:245: missing ';' before right brace

I checked bits/ios_base.h, and it uses namespace std, whilst std_exception uses __STL_BEGIN_NAMESPACE

There are many headers that use each - shouldn't this be consistent across the source?

However, it appears the cause is the __GNUG__ macro - in std_exception.h we do #include<exception> if __GNUG__ is defined, otherwise we declare the exception class.

Fine, except that <exception> just does #include <bits/std_exception.h> - circular reference, and exception never gets declared.

It doesn't make any difference whether or not I specify --enable-namespaces or --disable-namespaces on the configure line
>How-To-Repeat:
Build + install binutils + gcc2.95.2 (normal) on sparc-solaris-2.7

rebuild gcc using libstdc++-2.90.8 as drop-in replacement for v2 libraries

make check
>Fix:
Remove the #ifdef __GNUG__ from bits/std_exception.h
?
>Release-Note:
>Audit-Trail:
>Unformatted:
>From bkoz@cygnus.com Tue Mar 28 15:47:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/47: Build of testsuite fails to compile bits/ios_base.h - exception not declared
Date: Tue, 28 Mar 2000 15:47:00 -0000
Message-id: <20000328234700.7507.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00084.html
Content-length: 2645

The following reply was made to PR libstdc++/47; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: anthony_w.geo@yahoo.com
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/47: Build of testsuite fails to compile bits/ios_base.h - exception not declared
Date: Tue, 28 Mar 2000 15:38:17 -0800 (PST)

 this is from "mkcheck" including the new headers twice. Here's some mail 
 on the subject:
 
 http://sourceware.cygnus.com/ml/libstdc++/2000-q1/msg00452.html
 
 > I have tried building a new copy of gcc 2.95.2 with libstdc++ from the 2.90.8 snapshot, using gcc-2.95.2
 > 
 > It configures and builds OK, but when I run
 > 
 > make check
 > 
 > I get compilation erros on lots of the modules, huge reams of errors and warnings, starting with:
 > 
 > In file included from ../../../gcc-2.95.2/libstdc++/bits/std_ios.h:43,
 >                  from ../../../gcc-2.95.2/libstdc++/bits/std_istream.h:37,
 >                  from ../../../gcc-2.95.2/libstdc++/bits/std_fstream.h:37,
 >                  from ../../../gcc-2.95.2/libstdc++/std/fstream:2,
 >                  from ../../../gcc-2.95.2/libstdc++/testsuite/17_intro/header_fstream.cc:23:
 > ../../../gcc-2.95.2/libstdc++/bits/ios_base.h:144: parse error before `{'
 > ../../../gcc-2.95.2/libstdc++/bits/ios_base.h:152: destructor `failure' must match class name `ios_base'
 > ../../../gcc-2.95.2/libstdc++/bits/ios_base.h:226: parse error before `protected'
 > ../../../gcc-2.95.2/libstdc++/bits/ios_base.h:239: syntax error before `;'
 > ../../../gcc-2.95.2/libstdc++/bits/ios_base.h:243: parse error before `,'
 > ../../../gcc-2.95.2/libstdc++/bits/ios_base.h:245: missing ';' before right brace
 > 
 > I checked bits/ios_base.h, and it uses namespace std, whilst std_exception uses __STL_BEGIN_NAMESPACE
 > 
 > There are many headers that use each - shouldn't this be consistent across the source?
 > 
 > However, it appears the cause is the __GNUG__ macro - in std_exception.h we do #include<exception> if __GNUG__ is defined, otherwise we declare the exception class.
 > 
 > Fine, except that <exception> just does #include <bits/std_exception.h> - circular reference, and exception never gets declared.
 > 
 > It doesn't make any difference whether or not I specify --enable-namespaces or --disable-namespaces on the configure line
 > >How-To-Repeat:
 > Build + install binutils + gcc2.95.2 (normal) on sparc-solaris-2.7
 > 
 > rebuild gcc using libstdc++-2.90.8 as drop-in replacement for v2 libraries
 > 
 > make check
 > >Fix:
 > Remove the #ifdef __GNUG__ from bits/std_exception.h
 > ?
 > >Release-Note:
 > >Audit-Trail:
 > >Unformatted:
 > 
>From allmaier@caramail.com Wed Mar 29 01:27:00 2000
From: allmaier@caramail.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/48: the 9th snapshot doesn't compile!
Date: Wed, 29 Mar 2000 01:27:00 -0000
Message-id: <20000329092218.16977.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00085.html
Content-length: 848

>Number:         48
>Category:       libstdc++
>Synopsis:       the 9th snapshot doesn't compile!
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          mistaken
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 29 01:27:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     -
>Release:        libstdc++ latest release (9th)
>Organization:
>Environment:
--
>Description:
Didn't you realize that in the latest package files are missing
and that the configure script is pointing to the subdirectory
instead of the source directory?

for example:
sources in
/sources/libstdc++/
the script searches for install.sh and other not existing files
in
/sources !
>How-To-Repeat:
get the package and ran configure, man!
>Fix:
--------
>Release-Note:
>Audit-Trail:
>Unformatted:
>From bkoz@cygnus.com Wed Mar 29 01:47:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/48: the 9th snapshot doesn't compile!
Date: Wed, 29 Mar 2000 01:47:00 -0000
Message-id: <20000329094700.20377.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00086.html
Content-length: 847

The following reply was made to PR libstdc++/48; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: allmaier@caramail.com
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/48: the 9th snapshot doesn't compile!
Date: Wed, 29 Mar 2000 01:44:00 -0800 (PST)

 read the install docs, man
 
 http://sourceware.cygnus.com/libstdc++/documentation.html
 
 and in particular:
 
 http://sourceware.cygnus.com/libstdc++/install.html
 
 -benjamin
 
 > Didn't you realize that in the latest package files are missing
 > and that the configure script is pointing to the subdirectory
 > instead of the source directory?
 > 
 > for example:
 > sources in
 > /sources/libstdc++/
 > the script searches for install.sh and other not existing files
 > in
 > /sources !
 > >How-To-Repeat:
 > get the package and ran configure, man!
>From anthony_w.geo@yahoo.com Wed Mar 29 05:37:00 2000
From: anthony_w.geo@yahoo.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/49: Test suite does not use std:: everywhere it should
Date: Wed, 29 Mar 2000 05:37:00 -0000
Message-id: <20000329133316.24775.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00087.html
Content-length: 833

>Number:         49
>Category:       libstdc++
>Synopsis:       Test suite does not use std:: everywhere it should
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 29 05:37:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Anthony Williams
>Release:        unknown-1.0
>Organization:
>Environment:
libstdc++-2.90.8
gcc 2.95.2
sparc-solaris-2.7
>Description:
In many places the testsuite programs fail to compile due to "unknown symbol" errors, since std:: is not used
>How-To-Repeat:
make check
or 
make check-install

when configured with --enable-namespaces
>Fix:
Use std:: where appropriate (I can provide fixed source files if required)
>Release-Note:
>Audit-Trail:
>Unformatted:
>From bennett@oneworld.com Wed Mar 29 11:47:00 2000
From: bennett@oneworld.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/50: won't configure
Date: Wed, 29 Mar 2000 11:47:00 -0000
Message-id: <20000329193935.20268.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00088.html
Content-length: 587

>Number:         50
>Category:       libstdc++
>Synopsis:       won't configure
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 29 11:47:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     bennett@oneworld.com
>Release:        2.90.8
>Organization:
>Environment:
Solaris 7 (SPARC)
>Description:
It looks like many of the auto conf files were left out of the
distribution.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From pedwards@jaj.com Wed Mar 29 12:07:00 2000
From: Phil Edwards <pedwards@jaj.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/50: won't configure
Date: Wed, 29 Mar 2000 12:07:00 -0000
Message-id: <20000329200701.31511.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00089.html
Content-length: 547

The following reply was made to PR libstdc++/50; it has been noted by GNATS.

From: Phil Edwards <pedwards@jaj.com>
To: bennett@oneworld.com
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/50: won't configure
Date: Wed, 29 Mar 2000 15:15:19 -0500

 The library will no longer configure on its own.  It must be placed
 inside the compiler.  Please see
 
  <URL: http://sourceware.cygnus.com/libstdc++/documentation.html >
  
 and in particular:
  
  <URL: http://sourceware.cygnus.com/libstdc++/install.html >
 
 
 Luck++;
 Phil
 
>From rj45@comset.net Wed Mar 29 13:37:00 2000
From: rj45@comset.net
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/51: build problem
Date: Wed, 29 Mar 2000 13:37:00 -0000
Message-id: <20000329212704.23162.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00090.html
Content-length: 609

>Number:         51
>Category:       libstdc++
>Synopsis:       build problem
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 29 13:37:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     rj45@comset.net
>Release:        libstdc++-2.90.8
>Organization:
>Environment:

>Description:
does not build
>How-To-Repeat:
try running configure (I mean the package which is placed
on your ftp)
>Fix:
sorry, do not have one ... :(
>Release-Note:
>Audit-Trail:
>Unformatted:
>From bkoz@cygnus.com Wed Mar 29 13:57:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/51: build problem
Date: Wed, 29 Mar 2000 13:57:00 -0000
Message-id: <20000329215701.29325.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00091.html
Content-length: 601

The following reply was made to PR libstdc++/51; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: rj45@comset.net
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/51: build problem
Date: Wed, 29 Mar 2000 13:47:15 -0800 (PST)

 > try running configure (I mean the package which is placed
 > on your ftp)
 
 ummmm. Can you please provide details on your host machine?
 
 uname -a output would be sufficient.
 
 Did you read the build/configure/install docs? They've changed for this 
 snapshot:
 
 http://sourceware.cygnus.com/libstdc++/install.html
 
 -benjamin
>From bkoz@cygnus.com Wed Mar 29 19:47:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/49: Test suite does not use std:: everywhere it should
Date: Wed, 29 Mar 2000 19:47:00 -0000
Message-id: <20000330034700.32345.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00092.html
Content-length: 1995

The following reply was made to PR libstdc++/49; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: anthony_w.geo@yahoo.com
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/49: Test suite does not use std:: everywhere it should
Date: Wed, 29 Mar 2000 19:40:02 -0800 (PST)

 this was fixed shortly after the release.
 
 See this patch in the CVS repository:
 2000-03-27  Russell Davidson  <russell@ehess.cnrs-mrs.fr>
 
 	* testsuite/23_containers/multiset.cc (main): Clean up for namespaces.
 	* testsuite/22_locale/ctype_char_members.cc: And here.
 	* testsuite/27_io/streambuf.cc (streambuf): And here.
 	* testsuite/27_io/ostream_inserter_char.cc (test06): And here.
 	* testsuite/27_io/istream_unformatted.cc (test05): And here.
 	* testsuite/27_io/istream_extractor_arith.cc: And here.
 	* testsuite/27_io/ios_manip_basefield.cc (test02): And here.
 	* testsuite/27_io/ios_base_members_static.cc: And here.
 	* bits/std_climits.h (_CPP_CLIMITS): Fix typo.
 
 
 
 
 On 29 Mar 2000 anthony_w.geo@yahoo.com wrote:
 
 > 
 > >Number:         49
 > >Category:       libstdc++
 > >Synopsis:       Test suite does not use std:: everywhere it should
 > >Confidential:   no
 > >Severity:       serious
 > >Priority:       medium
 > >Responsible:    unassigned
 > >State:          open
 > >Class:          sw-bug
 > >Submitter-Id:   net
 > >Arrival-Date:   Wed Mar 29 05:37:00 PST 2000
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     Anthony Williams
 > >Release:        unknown-1.0
 > >Organization:
 > >Environment:
 > libstdc++-2.90.8
 > gcc 2.95.2
 > sparc-solaris-2.7
 > >Description:
 > In many places the testsuite programs fail to compile due to "unknown symbol" errors, since std:: is not used
 > >How-To-Repeat:
 > make check
 > or 
 > make check-install
 > 
 > when configured with --enable-namespaces
 > >Fix:
 > Use std:: where appropriate (I can provide fixed source files if required)
 > >Release-Note:
 > >Audit-Trail:
 > >Unformatted:
 > 
>From ben@valinux.com Thu Mar 30 12:27:00 2000
From: ben@valinux.com
To: libstdc++-gnats@sourceware.cygnus.com
Cc: chip@valinux.com
Subject: libstdc++/52: can't call c_str() from a basic_string<unsigned char>
Date: Thu, 30 Mar 2000 12:27:00 -0000
Message-id: <20000330202615.27684.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00093.html
Content-length: 1323

>Number:         52
>Category:       libstdc++
>Synopsis:       can't call c_str() from a basic_string<unsigned char>
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 30 12:27:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     debian frozen
>Release:        ibstdc++2.10-dev    2.95.2-8
>Organization:
>Environment:
debian frozen
>Description:
The problem is that "" is a signed char * and so when it is 
assigned to charT* there is no problem as long as charT* 
is a signed char. The problem is if instantiate a basic 
string with an unsigned char rather than a char this doesn't
work. I don't know how this will behave with multibyte 
characters.
>How-To-Repeat:

>Fix:
RCS file: RCS/bastring.h,v
retrieving revision 1.1
diff -u -r1.1 bastring.h
--- bastring.h	2000/03/30 00:44:05	1.1
+++ bastring.h	2000/03/30 00:46:05
@@ -335,7 +335,7 @@
 
 public:
   const charT* c_str () const
-    { const charT* null_str = ""; 
+    { const charT* null_str = reinterpret_cast<const charT*>(""); 
       if (length () == 0) return null_str; terminate (); return data (); }
   void resize (size_type n, charT c);
   void resize (size_type n)
>Release-Note:
>Audit-Trail:
>Unformatted:
>From bkoz@cygnus.com Fri Mar 31 11:47:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/52: can't call c_str() from a basic_string<unsigned char> (fwd)
Date: Fri, 31 Mar 2000 11:47:00 -0000
Message-id: <20000331194701.26593.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00094.html
Content-length: 2130

The following reply was made to PR libstdc++/52; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: libstdc++-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: libstdc++/52: can't call c_str() from a basic_string<unsigned char> (fwd)
Date: Fri, 31 Mar 2000 11:39:43 -0800 (PST)

 ---------- Forwarded message ----------
 Date: Thu, 30 Mar 2000 14:35:27 -0800
 From: ncm@zembu.com
 To: bkoz@cygnus.com
 Subject: Re: libstdc++/52: can't call c_str() from a basic_string<unsigned char>
 
 > >Number:         52
 > >Category:       libstdc++
 > >Synopsis:       can't call c_str() from a basic_string<unsigned char>
 > >Confidential:   no
 > >Severity:       serious
 > >Priority:       medium
 > >Responsible:    unassigned
 > >State:          open
 > >Class:          sw-bug
 > >Submitter-Id:   net
 > >Arrival-Date:   Thu Mar 30 12:27:00 PST 2000
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     debian frozen
 > >Release:        ibstdc++2.10-dev    2.95.2-8
 > >Organization:
 > >Environment:
 > debian frozen
 > >Description:
 > The problem is that "" is a signed char * and so when it is 
 > assigned to charT* there is no problem as long as charT* 
 > is a signed char. The problem is if instantiate a basic 
 > string with an unsigned char rather than a char this doesn't
 > work. I don't know how this will behave with multibyte 
 > characters.
 > >How-To-Repeat:
 > 
 > >Fix:
 > RCS file: RCS/bastring.h,v
 > retrieving revision 1.1
 > diff -u -r1.1 bastring.h
 > --- bastring.h	2000/03/30 00:44:05	1.1
 > +++ bastring.h	2000/03/30 00:46:05
 > @@ -335,7 +335,7 @@
 >  
 >  public:
 >    const charT* c_str () const
 > -    { const charT* null_str = ""; 
 > +    { const charT* null_str = reinterpret_cast<const charT*>(""); 
 >        if (length () == 0) return null_str; terminate (); return data (); }
 >    void resize (size_type n, charT c);
 >    void resize (size_type n)
 
 I don't agree with this change.  A better fix would be:
 
 > +    { static const charT null_str[] = { charT() };
 
 Of course, since this is the old, dead libstdc++, I don't care what
 happens there.
 
 Nathan
 ncm
 
>From peter.guarino@gs.com Thu Apr 06 06:57:00 2000
From: peter.guarino@gs.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/54: Failed to rebuild
Date: Thu, 06 Apr 2000 06:57:00 -0000
Message-id: <20000406135415.19140.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00000.html
Content-length: 2145

>Number:         54
>Category:       libstdc++
>Synopsis:       Failed to rebuild
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Apr 06 06:57:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     peter.guarino@gs.com
>Release:        libstdc++-2.90.8
>Organization:
>Environment:
1) SunOS 5.6 Generic_105181-14 sun4u sparc SUNW,Ultra-2
2) gcc version 2.95.2
3) GNU Make version 3.78.1, by Richard Stallman and Roland McGrath.
Built for sparc-sun-solaris2.6

>Description:
Attempting to do a full rebuild of gcc with libstdc++ v3.
I configured the build as given in the "licstdc++-v3 Install"
document on your website.
The build process fails when entering the library source tree:
make[2]: Leaving directory `/export/home2/guarip/build_gcc/build/sparc-sun-solaris2.6/libiberty'
make[1]: Leaving directory `/export/home2/guarip/build_gcc/build/sparc-sun-solaris2.6/libiberty'
make[1]: Entering directory `/export/home2/guarip/build_gcc/build/sparc-sun-solaris2.6/libstdc++'
make  all-recursive
make[2]: Entering directory `/export/home2/guarip/build_gcc/build/sparc-sun-solaris2.6/libstdc++'
Making all in math
make[3]: Entering directory `/export/home2/guarip/build_gcc/build/sparc-sun-solaris2.6/libstdc++/math'
/bin/sh ../libtool --mode=compile (CC_FOR_TARGET) -DHAVE_CONFIG_H -I. -I/home/guarip/build_gcc/gcc-2.95.2/libstdc++/math -I..     (CFLAGS_FOR_TARGET) -c /home/guarip/build_gcc/gcc-2.95.2/libstdc++/math/signbit.c
/bin/sh: syntax error at line 1: `(' unexpected
make[3]: *** [signbit.lo] Error 2
make[3]: Leaving directory `/export/home2/guarip/build_gcc/build/sparc-sun-solaris2.6/libstdc++/math'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/export/home2/guarip/build_gcc/build/sparc-sun-solaris2.6/libstdc++'
make[1]: *** [all-recursive-am] Error 2
make[1]: Leaving directory `/export/home2/guarip/build_gcc/build/sparc-sun-solaris2.6/libstdc++'
make: *** [all-target-libstdc++] Error 2
>How-To-Repeat:
Run make.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From anthony_w.geo@yahoo.com Mon Apr 10 06:07:00 2000
From: anthony_w.geo@yahoo.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/55: libstdc++ not initialised when linked as shared library on sparc-solaris-2.7
Date: Mon, 10 Apr 2000 06:07:00 -0000
Message-id: <20000410125935.20266.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00001.html
Content-length: 882

>Number:         55
>Category:       libstdc++
>Synopsis:       libstdc++ not initialised when linked as shared library on sparc-solaris-2.7
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Apr 10 06:07:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Anthony Williams
>Release:        unknown-1.0
>Organization:
>Environment:
sparc-solaris-2.7
libstdc++ 2.90.8 snapshot
gcc 2.95.2
>Description:
cout and cerr are not initialised properly when libstdc++ is linked as a shared library - the following sample produces a core dump:

#include <iostream>

int main()
{
    std::cout<<"hello"<<std::endl;
    return 0;
}

If I use -static with gcc, then the program runs OK.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From dda_dream@mail.ru Tue May 02 13:47:00 2000
From: dda_dream@mail.ru
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/56: it is not compiling on SUSE 6.3
Date: Tue, 02 May 2000 13:47:00 -0000
Message-id: <20000502204434.20643.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00002.html
Content-length: 564

>Number:         56
>Category:       libstdc++
>Synopsis:       it is not compiling on SUSE 6.3
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 02 13:47:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     dmitry
>Release:        libstdc++-2.90.*
>Organization:
>Environment:
Suse 6.3	
>Description:
this library not completed compiling on my system.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From pedwards@jaj.com Tue May 02 14:07:00 2000
From: Phil Edwards <pedwards@jaj.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/56: it is not compiling on SUSE 6.3
Date: Tue, 02 May 2000 14:07:00 -0000
Message-id: <20000502210701.29186.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00003.html
Content-length: 485

The following reply was made to PR libstdc++/56; it has been noted by GNATS.

From: Phil Edwards <pedwards@jaj.com>
To: dda_dream@mail.ru
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/56: it is not compiling on SUSE 6.3
Date: Tue, 2 May 2000 17:16:07 -0400

 > >Description:
 > this library not completed compiling on my system.
 
 This doesn't give us much information to go on.  Could you paste in the
 error messages you get when you try to compile it?
 
 Phil
 
>From pedwards@jaj.com Tue May 02 14:27:00 2000
From: Phil Edwards <pedwards@jaj.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/56: it is not compiling on SUSE 6.3
Date: Tue, 02 May 2000 14:27:00 -0000
Message-id: <20000502212700.395.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00004.html
Content-length: 933

The following reply was made to PR libstdc++/56; it has been noted by GNATS.

From: Phil Edwards <pedwards@jaj.com>
To: dda_dream@mail.ru
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/56: it is not compiling on SUSE 6.3
Date: Tue, 2 May 2000 17:37:56 -0400

 Your bug report says
 
 > >Release:        libstdc++-2.90.*
 
 but the errors you mailed to me say
 
   make[2]: *** [misc-inst.lo] Error 1
   make[2]: Leaving directory `/soft/libstdc++-2.90.6.1/src'
   make[1]: *** [all-recursive] Error 1
   make[1]: Leaving directory `/soft/libstdc++-2.90.6.1'
                                               ^^^^^^^^
 
 That's hardly the same as 2.90.*...
 
 The .6 snapshot is now nine months out-of-date and two revisions behind.
 Please try compiling with the latest snapshot.  Note that you will need
 the latest compiler (gcc 2.95.2), as well as source for that compiler;
 see the instructions pages.
 
 
 Phil
 
>From albert@ravel.mpg.uni-rostock.de Mon May 08 15:07:00 2000
From: albert@ravel.mpg.uni-rostock.de
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/57: can't build last gcc snapshot on alphaev5-unknown-linux-gnu
Date: Mon, 08 May 2000 15:07:00 -0000
Message-id: <20000508220121.10041.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00005.html
Content-length: 137703

>Number:         57
>Category:       libstdc++
>Synopsis:       can't build last gcc snapshot on alphaev5-unknown-linux-gnu
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 08 15:07:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     libstdc++-v3/src/complex_io.cc
>Release:        egcs-20000501
>Organization:
>Environment:
Alpha 21164, RedHat Linux 5.1 (kernel 2.0.34), gcc-2.95.2
>Description:
All was as usually:

1.  cd  /tmp/egcs-build
2.  ../egcs-20000501/configure --prefix=/home/albert/local --enable-libstdc++-v3
3.  make  bootstrap-lean

... and building was broken at this point:

/tmp/egcs-build/gcc/g++ -B/tmp/egcs-build/gcc/ -B/home/albert/local/alphaev5-unknown-linux-gnu/bin/ -DHAVE_CONFIG_H -I. -I../../../../egcs-20000501/libstdc++-v3/src -I.. -nostdinc++ -I../../../../egcs-20000501/libstdc++-v3 -I../../../../egcs-20000501/libstdc++-v3/libio -I../../../../egcs-20000501/libstdc++-v3/config/cpu/alpha -I../../../../egcs-20000501/libstdc++-v3/config/gnu-linux -I/home/albert/local/include -g -O2 -fvtable-thunks -D_GNU_SOURCE -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -Werror -g -c -fPIC -DPIC ../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc -o .libs/complex_io.lo

../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc: In function 'std::basic_istream < _CharT,
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc: _Traits > & std::operator
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc: ( std::basic_istream < _CharT, _Traits > & ,
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc: std::complex < _Tp > & ) [with _Tp = float,
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc: _CharT = char, _Traits =
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc: std::char_traits < char > ]':
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc:97: instantiated from here
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc:76: Internal compiler error.
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc:76: Please submit a full bug report.
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc:76: See
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc:76: < URL: http://www.gnu.org/software/gcc/bugs.html >
../../../../egcs-20000501/libstdc++-v3/src/complex_io.cc:76: for instructions.
make[4]: *** [complex_io.lo] Error 1
make[4]: Leaving directory '/tmp/egcs-build/alphaev5-unknown-linux-gnu/libstdc++-v3/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/tmp/egcs-build/alphaev5-unknown-linux-gnu/libstdc++-v3'
make[2]: *** [all-recursive-am] Error 2
make[2]: Leaving directory '/tmp/egcs-build/alphaev5-unknown-linux-gnu/libstdc++-v3'
make[1]: *** [all-target-libstdc++-v3] Error 2
make[1]: Leaving directory '/tmp/egcs-build'
make: *** [bootstrap-lean] Error 2

Attachment is config.log from /tmp/egcs-build/alphaev5-unknown-linux-gnu/libstdc++-v3

Regards,
Albert Zhykhar
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="config.log"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="config.log"

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCmNvbmZpZ3VyZTo2MDQ6IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUKY29u
ZmlndXJlOjYyNTogY2hlY2tpbmcgdGFyZ2V0IHN5c3RlbSB0eXBlCmNvbmZpZ3VyZTo2NDM6IGNo
ZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlCmNvbmZpZ3VyZTo2OTI6IGNoZWNraW5nIGZvciBhIEJT
RCBjb21wYXRpYmxlIGluc3RhbGwKY29uZmlndXJlOjc0NTogY2hlY2tpbmcgd2hldGhlciBidWls
ZCBlbnZpcm9ubWVudCBpcyBzYW5lCmNvbmZpZ3VyZTo4MDI6IGNoZWNraW5nIHdoZXRoZXIgbWFr
ZSBzZXRzICR7TUFLRX0KY29uZmlndXJlOjgzNTogY2hlY2tpbmcgZm9yIEN5Z3dpbiBlbnZpcm9u
bWVudApjb25maWd1cmU6ODUxOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3Mt
YnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdu
dS9iaW4vIC1jIC1nIC1PMiAgY29uZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24g
YG1haW4nOgpjb25maWd1cmU6ODQ3OiBgX19DWUdXSU4zMl9fJyB1bmRlY2xhcmVkIChmaXJzdCB1
c2UgaW4gdGhpcyBmdW5jdGlvbikKY29uZmlndXJlOjg0NzogKEVhY2ggdW5kZWNsYXJlZCBpZGVu
dGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQpjb25maWd1cmU6ODQ3OiBmb3IgZWFjaCBmdW5j
dGlvbiBpdCBhcHBlYXJzIGluLikKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5l
IDg0MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCmludCBtYWluKCkgewoKI2lm
bmRlZiBfX0NZR1dJTl9fCiNkZWZpbmUgX19DWUdXSU5fXyBfX0NZR1dJTjMyX18KI2VuZGlmCnJl
dHVybiBfX0NZR1dJTl9fOwo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTo4Njg6IGNoZWNraW5nIGZv
ciBtaW5ndzMyIGVudmlyb25tZW50CmNvbmZpZ3VyZTo4ODA6IC90bXAvZWdjcy1idWlsZC9nY2Mv
eGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1
LXVua25vd24tbGludXgtZ251L2Jpbi8gLWMgLWcgLU8yICBjb25mdGVzdC5jIDE+JjUKY29uZmln
dXJlOiBJbiBmdW5jdGlvbiBgbWFpbic6CmNvbmZpZ3VyZTo4NzY6IGBfX01JTkdXMzJfXycgdW5k
ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNvbmZpZ3VyZTo4NzY6IChFYWNo
IHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UKY29uZmlndXJlOjg3
NjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pCmNvbmZpZ3VyZTogZmFpbGVkIHBy
b2dyYW0gd2FzOgojbGluZSA4NzMgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCgpp
bnQgbWFpbigpIHsKcmV0dXJuIF9fTUlOR1czMl9fOwo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTo5
Mjc6IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUKY29uZmlndXJlOjk2ODogY2hlY2tpbmcgZm9y
IHdvcmtpbmcgYWNsb2NhbApjb25maWd1cmU6OTgxOiBjaGVja2luZyBmb3Igd29ya2luZyBhdXRv
Y29uZgpjb25maWd1cmU6OTk0OiBjaGVja2luZyBmb3Igd29ya2luZyBhdXRvbWFrZQpjb25maWd1
cmU6MTAwNzogY2hlY2tpbmcgZm9yIHdvcmtpbmcgYXV0b2hlYWRlcgpjb25maWd1cmU6MTAyMDog
Y2hlY2tpbmcgZm9yIHdvcmtpbmcgbWFrZWluZm8KY29uZmlndXJlOjEwNDY6IGNoZWNraW5nIGZv
ciBnY2MKY29uZmlndXJlOjExMjU6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIEdOVSBD
CmNvbmZpZ3VyZToxMTM0OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVp
bGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9i
aW4vIC1FIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjExNDk6IGNoZWNraW5nIHdoZXRoZXIgL3RtcC9l
Z2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQv
bG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyBhY2NlcHRzIC1nCmNvbmZpZ3Vy
ZToxMTg2OiBjaGVja2luZyBmb3IgYysrCmNvbmZpZ3VyZToxMjE5OiBjaGVja2luZyB3aGV0aGVy
IHdlIGFyZSB1c2luZyBHTlUgQysrCmNvbmZpZ3VyZToxMjI4OiAvdG1wL2VnY3MtYnVpbGQvZ2Nj
L2crKyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1
LXVua25vd24tbGludXgtZ251L2Jpbi8gLUUgY29uZnRlc3QuQwpjb25maWd1cmU6MTI0MzogY2hl
Y2tpbmcgd2hldGhlciAvdG1wL2VnY3MtYnVpbGQvZ2NjL2crKyAtQi90bXAvZWdjcy1idWlsZC9n
Y2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8g
YWNjZXB0cyAtZwpjb25maWd1cmU6MTI3NjogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUKY29u
ZmlndXJlOjEyOTc6IGNoZWNraW5nIGZvciBhcwpjb25maWd1cmU6MTMyOTogY2hlY2tpbmcgZm9y
IGFyCmNvbmZpZ3VyZToxMzYxOiBjaGVja2luZyBmb3IgcmFubGliCmNvbmZpZ3VyZToxNDM4OiBj
aGVja2luZyBmb3IgYSBCU0QgY29tcGF0aWJsZSBpbnN0YWxsCmNvbmZpZ3VyZToxNDkyOiBjaGVj
a2luZyB3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1h
a2VmaWxlcwpjb25maWd1cmU6MTY1MDogY2hlY2tpbmcgZm9yIHJhbmxpYgpjb25maWd1cmU6MTY4
OTogY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgR0NDCmNvbmZpZ3VyZToxNzUxOiBjaGVja2luZyBp
ZiB0aGUgbGlua2VyIChsZCkgaXMgR05VIGxkCkdOVSBsZCB2ZXJzaW9uIDIuOS41ICh3aXRoIEJG
RCAyLjkuNS4wLjMyKQpjb25maWd1cmU6MTc2NzogY2hlY2tpbmcgZm9yIEJTRC1jb21wYXRpYmxl
IG5tCmNvbmZpZ3VyZToxODAzOiBjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzCmx0Y29uZmln
OjU4NjogY2hlY2tpbmcgZm9yIG9iamVjdCBzdWZmaXgKbHRjb25maWc6NTg3OiAvdG1wL2VnY3Mt
YnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2Nh
bC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1jIC1nIC1PMiAgY29uZnRlc3QuYyAx
PiY1Cmx0Y29uZmlnOjcxNzogY2hlY2tpbmcgaWYgL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIFBJ
QyBmbGFnIC1mUElDIHdvcmtzCmx0Y29uZmlnOjcxODogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2Nj
IC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5r
bm93bi1saW51eC1nbnUvYmluLyAtYyAtZyAtTzIgLWZQSUMgLURQSUMgIGNvbmZ0ZXN0LmMgMT4m
NQpsdGNvbmZpZzo3NjA6IGNoZWNraW5nIGlmIC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyBzdXBw
b3J0cyAtYyAtbyBmaWxlLm8KbHRjb25maWc6NzYxOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2Mg
LUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtu
b3duLWxpbnV4LWdudS9iaW4vIC1jIC1nIC1PMiAtYyAtbyBjb25mdGVzdDIubyAgY29uZnRlc3Qu
YyAxPiY1Cmx0Y29uZmlnOjc4ODogY2hlY2tpbmcgaWYgL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2Nj
IHN1cHBvcnRzIC1jIC1vIGZpbGUubG8KbHRjb25maWc6Nzg5OiAvdG1wL2VnY3MtYnVpbGQvZ2Nj
L3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2
NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1jIC1nIC1PMiAtYyAtbyBjb25mdGVzdC5sbyAgY29u
ZnRlc3QuYyAxPiY1Cmx0Y29uZmlnOjg0MDogY2hlY2tpbmcgaWYgL3RtcC9lZ2NzLWJ1aWxkL2dj
Yy94Z2NjIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMKbHRjb25maWc6ODQxOiAv
dG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2Fs
YmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1jIC1nIC1PMiAtZm5v
LXJ0dGkgLWZuby1leGNlcHRpb25zIC1jIGNvbmZ0ZXN0LmMgIGNvbmZ0ZXN0LmMgMT4mNQpsdGNv
bmZpZzo4ODQ6IGNoZWNraW5nIGlmIC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyBzdGF0aWMgZmxh
ZyAtc3RhdGljIHdvcmtzCmx0Y29uZmlnOjg4NTogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1C
L3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93
bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICAtc3RhdGljIGNvbmZ0ZXN0LmMg
IDE+JjUKR05VIGxkIHZlcnNpb24gMi45LjUgKHdpdGggQkZEIDIuOS41LjAuMzIpCmx0Y29uZmln
OjE0NDc6IGNoZWNraW5nIGlmIGdsb2JhbF9zeW1ib2xfcGlwZSB3b3JrcwpsdGNvbmZpZzoxNDQ4
OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21l
L2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1jIC1nIC1PMiAg
Y29uZnRlc3QuYyAxPiY1Cmx0Y29uZmlnOjE0NTE6IGV2YWwgIm5tIGNvbmZ0ZXN0Lm8gfCBzZWQg
LW4gLWUgJ3MvXi4qWyAJXVwoW0FCQ0RHSVNUV11cKVsgCV1bIAldKlwoXClcKFtfQS1aYS16XVtf
QS1aYS16MC05XSpcKSQvXDEgXDJcMyBcMy9wJyA+IGNvbmZ0ZXN0Lm5tIgpsdGNvbmZpZzoxNTAz
OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21l
L2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0
IC1nIC1PMiAtZm5vLWJ1aWx0aW4gLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyAgIGNvbmZ0ZXN0
LmMgY29uZnRlc3RtLm8gMT4mNQpsdGNvbmZpZzoxOTc3OiBjaGVja2luZyBmb3IgZGxvcGVuCmx0
Y29uZmlnOjIwMDQ6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9n
Y2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8g
LW8gY29uZnRlc3QgLWcgLU8yIC1mbm8tYnVpbHRpbiAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25z
ICAgY29uZnRlc3QuYyAgMT4mNQovdG1wL2NjdXlEczZpLm86IEluIGZ1bmN0aW9uIGBtYWluJzoK
L3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9s
dGNvbmZpZzoxOTk4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBkbG9wZW4nCi90bXAvZWdjcy1i
dWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvbHRjb25maWc6MTk5
ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZGxvcGVuJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQg
MSBleGl0IHN0YXR1cwpsdGNvbmZpZzogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAxOTgyICJs
dGNvbmZpZyIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9w
ZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBk
bG9wZW4oKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBn
Y2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBj
aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAg
IGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBs
eS4gICovCmNoYXIgZGxvcGVuKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5
IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFs
d2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVk
CiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFu
IGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9kbG9wZW4pIHx8IGRlZmluZWQgKF9fc3R1
Yl9fX2Rsb3BlbikKY2hva2UgbWUKI2Vsc2UKZGxvcGVuKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsg
fQpsdGNvbmZpZzoyMDIyOiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwKbHRjb25maWc6MjA0
MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9t
ZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVz
dCAtZyAtTzIgLWZuby1idWlsdGluIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMgICBjb25mdGVz
dC5jIC1sZGwgICAxPiY1Cmx0Y29uZmlnOjIyMTA6IGNoZWNraW5nIGZvciBkbGZjbi5oCmx0Y29u
ZmlnOjIyMjA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2Mv
IC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLWMg
LWcgLU8yIC1mbm8tYnVpbHRpbiAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zICBjb25mdGVzdC5j
IDE+JjUgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0Cmx0Y29uZmlnOjIyNDg6
IGNoZWNraW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmCmx0Y29uZmlnOjIz
MDI6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hv
bWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRl
c3QgLWcgLU8yIC1mbm8tYnVpbHRpbiAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zICAtREhBVkVf
RExGQ05fSCAgLVdsLC0tZXhwb3J0LWR5bmFtaWMgY29uZnRlc3QuYyAtbGRsICAxPiY1Cmx0Y29u
ZmlnOjIzMjE6IGNoZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNh
biBkbG9wZW4gaXRzZWxmCmx0Y29uZmlnOjIzNzU6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAt
Qi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25v
d24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yIC1mbm8tYnVpbHRpbiAtZm5vLXJ0
dGkgLWZuby1leGNlcHRpb25zICAtREhBVkVfRExGQ05fSCAgLVdsLC0tZXhwb3J0LWR5bmFtaWMg
LXN0YXRpYyBjb25mdGVzdC5jIC1sZGwgIDE+JjUKbHRjb25maWc6IGZhaWxlZCBwcm9ncmFtIHdh
czoKI2xpbmUgMjMyOSAibHRjb25maWciCgojaWYgSEFWRV9ETEZDTl9ICiNpbmNsdWRlIDxkbGZj
bi5oPgojZW5kaWYKCiNpbmNsdWRlIDxzdGRpby5oPgoKI2lmZGVmIFJUTERfR0xPQkFMCiMgZGVm
aW5lIExURExfR0xPQkFMCVJUTERfR0xPQkFMCiNlbHNlCiMgaWZkZWYgRExfR0xPQkFMCiMgIGRl
ZmluZSBMVERMX0dMT0JBTAlETF9HTE9CQUwKIyBlbHNlCiMgIGRlZmluZSBMVERMX0dMT0JBTAkw
CiMgZW5kaWYKI2VuZGlmCgovKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRETF9MQVpZX09SX05P
VyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCiAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsg
aW4gc29tZSBwbGF0Zm9ybS4gKi8KI2lmbmRlZiBMVERMX0xBWllfT1JfTk9XCiMgaWZkZWYgUlRM
RF9MQVpZCiMgIGRlZmluZSBMVERMX0xBWllfT1JfTk9XCVJUTERfTEFaWQojIGVsc2UKIyAgaWZk
ZWYgRExfTEFaWQojICAgZGVmaW5lIExURExfTEFaWV9PUl9OT1cJRExfTEFaWQojICBlbHNlCiMg
ICBpZmRlZiBSVExEX05PVwojICAgIGRlZmluZSBMVERMX0xBWllfT1JfTk9XCVJUTERfTk9XCiMg
ICBlbHNlCiMgICAgaWZkZWYgRExfTk9XCiMgICAgIGRlZmluZSBMVERMX0xBWllfT1JfTk9XCURM
X05PVwojICAgIGVsc2UKIyAgICAgZGVmaW5lIExURExfTEFaWV9PUl9OT1cJMAojICAgIGVuZGlm
CiMgICBlbmRpZgojICBlbmRpZgojIGVuZGlmCiNlbmRpZgoKZm5vcmQoKSB7IGludCBpPTQyO30K
bWFpbigpIHsgdm9pZCAqc2VsZiwgKnB0cjEsICpwdHIyOyBzZWxmPWRsb3BlbigwLExURExfR0xP
QkFMfExURExfTEFaWV9PUl9OT1cpOwogICAgaWYoc2VsZikgeyBwdHIxPWRsc3ltKHNlbGYsImZu
b3JkIik7IHB0cjI9ZGxzeW0oc2VsZiwiX2Zub3JkIik7CiAgICBpZihwdHIxIHx8IHB0cjIpIGV4
aXQoMCk7IH0gZXhpdCgxKTsgfSAKCmNvbmZpZ3VyZToxOTkzOiBjaGVja2luZyBob3cgdG8gcnVu
IHRoZSBDIHByZXByb2Nlc3Nvcgpjb25maWd1cmU6MjAxNDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94
Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUt
dW5rbm93bi1saW51eC1nbnUvYmluLyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRl
c3Qub3V0CmNvbmZpZ3VyZToyMDc0OiBjaGVja2luZyBmb3IgZysrIHRoYXQgd2lsbCBzdWNjZXNz
ZnVsbGx5IGNvbXBpbGUgdGhpcyBjb2RlCmNvbmZpZ3VyZToyMDk3OiBjaGVja2luZyBmb3IgZysr
IHRoYXQgc3VwcG9ydHMgbmV3IGlubGluaW5nIG1lY2hhbmlzbQpjb25maWd1cmU6MjEzMTogY2hl
Y2tpbmcgZm9yIGNwdSBwcmltaXRpdmVzIGRpcmVjdG9yeQpjb25maWd1cmU6MjE5MDogY2hlY2tp
bmcgZm9yIGNzdGRpbyB0byB1c2UKY29uZmlndXJlOjIyMTQ6IGNoZWNraW5nIGZvciBsaWJpby5o
CmNvbmZpZ3VyZToyMjI0OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVp
bGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9i
aW4vIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjIy
NTk6IGNoZWNraW5nIGZvciBfR19jb25maWcuaApjb25maWd1cmU6MjI2OTogL3RtcC9lZ2NzLWJ1
aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwv
YWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxs
IDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToyMzQ4OiBjaGVja2luZyBmb3IgdGhyZWFkcyBwYWNr
YWdlIHRvIHVzZQpjb25maWd1cmU6MjU4NTogY2hlY2tpbmcgZm9yIG5hbi5oCmNvbmZpZ3VyZToy
NTk1OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9o
b21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1FICBjb25m
dGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjI1ODU6IGNoZWNraW5n
IGZvciBpZWVlZnAuaApjb25maWd1cmU6MjU5NTogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1C
L3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93
bi1saW51eC1nbnUvYmluLyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0
CmNvbmZpZ3VyZToyNTkxOjE5OiBpZWVlZnAuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpj
b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjU5MCAiY29uZmlndXJlIgojaW5j
bHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPGllZWVmcC5oPgpjb25maWd1cmU6MjU4NTogY2hl
Y2tpbmcgZm9yIGVuZGlhbi5oCmNvbmZpZ3VyZToyNTk1OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hn
Y2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11
bmtub3duLWxpbnV4LWdudS9iaW4vIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVz
dC5vdXQKY29uZmlndXJlOjI1ODU6IGNoZWNraW5nIGZvciBzeXMvaXNhX2RlZnMuaApjb25maWd1
cmU6MjU5NTogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8g
LUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtRSAg
Y29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToyNTkxOjI1OiBz
eXMvaXNhX2RlZnMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoKI2xpbmUgMjU5MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMu
aCIKI2luY2x1ZGUgPHN5cy9pc2FfZGVmcy5oPgpjb25maWd1cmU6MjU4NTogY2hlY2tpbmcgZm9y
IG1hY2hpbmUvZW5kaWFuLmgKY29uZmlndXJlOjI1OTU6IC90bXAvZWdjcy1idWlsZC9nY2MveGdj
YyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVu
a25vd24tbGludXgtZ251L2Jpbi8gLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0
Lm91dApjb25maWd1cmU6MjU5MToyNzogbWFjaGluZS9lbmRpYW4uaDogTm8gc3VjaCBmaWxlIG9y
IGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjU5MCAiY29u
ZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPG1hY2hpbmUvZW5kaWFuLmg+
CmNvbmZpZ3VyZToyNTg1OiBjaGVja2luZyBmb3IgbWFjaGluZS9wYXJhbS5oCmNvbmZpZ3VyZToy
NTk1OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9o
b21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1FICBjb25m
dGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjI1OTE6MjY6IG1hY2hp
bmUvcGFyYW0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBw
cm9ncmFtIHdhczoKI2xpbmUgMjU5MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIK
I2luY2x1ZGUgPG1hY2hpbmUvcGFyYW0uaD4KY29uZmlndXJlOjI1ODU6IGNoZWNraW5nIGZvciBz
eXMvbWFjaGluZS5oCmNvbmZpZ3VyZToyNTk1OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIv
dG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3du
LWxpbnV4LWdudS9iaW4vIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQK
Y29uZmlndXJlOjI1OTE6MjQ6IHN5cy9tYWNoaW5lLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv
cnkKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI1OTAgImNvbmZpZ3VyZSIK
I2luY2x1ZGUgImNvbmZkZWZzLmgiCiNpbmNsdWRlIDxzeXMvbWFjaGluZS5oPgpjb25maWd1cmU6
MjU4NTogY2hlY2tpbmcgZm9yIGZwLmgKY29uZmlndXJlOjI1OTU6IC90bXAvZWdjcy1idWlsZC9n
Y2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhh
ZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNv
bmZ0ZXN0Lm91dApjb25maWd1cmU6MjU5MToxNTogZnAuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVj
dG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjU5MCAiY29uZmlndXJl
IgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPGZwLmg+CmNvbmZpZ3VyZToyNTg1OiBj
aGVja2luZyBmb3IgbG9jYWxlLmgKY29uZmlndXJlOjI1OTU6IC90bXAvZWdjcy1idWlsZC9nY2Mv
eGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1
LXVua25vd24tbGludXgtZ251L2Jpbi8gLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0
ZXN0Lm91dApjb25maWd1cmU6MjU4NTogY2hlY2tpbmcgZm9yIGZsb2F0LmgKY29uZmlndXJlOjI1
OTU6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hv
bWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLUUgIGNvbmZ0
ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MjU4NTogY2hlY2tpbmcg
Zm9yIGludHR5cGVzLmgKY29uZmlndXJlOjI1OTU6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAt
Qi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25v
d24tbGludXgtZ251L2Jpbi8gLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91
dApjb25maWd1cmU6MjU5MToyMTogaW50dHlwZXMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y
eQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjU5MCAiY29uZmlndXJlIgoj
aW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPGludHR5cGVzLmg+CmNvbmZpZ3VyZToyNjI1
OiBjaGVja2luZyBmb3IgR05VIEMrKyBfX2NvbXBsZXhfXyBzdXBwb3J0CmNvbmZpZ3VyZToyNjQ4
OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL2crKyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUv
YWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLWMgLWcgLU8yIC1m
dnRhYmxlLXRodW5rcyAtRF9HTlVfU09VUkNFICBjb25mdGVzdC5DIDE+JjUKY29uZmlndXJlOjI2
ODA6IGNoZWNraW5nIGZvciBHTlUgQysrIF9fY29tcGxleF9fIGZsb2F0IHN1cHBvcnQKY29uZmln
dXJlOjI3MjA6IC90bXAvZWdjcy1idWlsZC9nY2MvZysrIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8g
LUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtYyAt
ZyAtTzIgLWZ2dGFibGUtdGh1bmtzIC1EX0dOVV9TT1VSQ0UgIGNvbmZ0ZXN0LkMgMT4mNQpjb25m
aWd1cmU6Mjc1MTogY2hlY2tpbmcgZm9yIF9fYnVpbHRpbl9zaW5mCmNvbmZpZ3VyZToyNzYwOiAv
dG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2Fs
YmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1jIC1nIC1PMiAgY29u
ZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZToyNzc5OiBjaGVja2luZyBmb3IgX19idWlsdGluX2Nvc2YK
Y29uZmlndXJlOjI3ODg6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWls
ZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jp
bi8gLWMgLWcgLU8yICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjI4MDc6IGNoZWNraW5nIGZv
ciBfX2J1aWx0aW5fZmFic2YKY29uZmlndXJlOjI4MTY6IC90bXAvZWdjcy1idWlsZC9nY2MveGdj
YyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVu
a25vd24tbGludXgtZ251L2Jpbi8gLWMgLWcgLU8yICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJl
OjI4MzU6IGNoZWNraW5nIGZvciBfX2J1aWx0aW5fc3FydGYKY29uZmlndXJlOjI4NDQ6IC90bXAv
ZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0
L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLWMgLWcgLU8yICBjb25mdGVz
dC5jIDE+JjUKY29uZmlndXJlOjI4NjQ6IGNoZWNraW5nIGZvciBzaW4gaW4gLWxtCmNvbmZpZ3Vy
ZToyODgzOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAt
Qi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNv
bmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgLWxtICAgMT4mNQpjb25maWd1cmU6Mjg3Njogd2Fy
bmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uIGBzaW4nCmNvbmZp
Z3VyZToyOTEwOiBjaGVja2luZyBmb3IgY29tcGxleC5oCmNvbmZpZ3VyZToyOTIwOiAvdG1wL2Vn
Y3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9s
b2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1FICBjb25mdGVzdC5jID4vZGV2
L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjI5MTY6MjA6IGNvbXBsZXguaDogTm8gc3Vj
aCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUg
MjkxNSAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPGNvbXBsZXgu
aD4KY29uZmlndXJlOjI5NTI6IGNoZWNraW5nIGZvciBjY29zCmNvbmZpZ3VyZToyOTgwOiAvdG1w
L2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVy
dC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1P
MiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2M2a0k4T08ubzogSW4gZnVuY3Rpb24gYG1h
aW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysr
LXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjY29zJwovdG1wL2Vn
Y3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3Vy
ZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjY29zJwpjb2xsZWN0MjogbGQgcmV0dXJu
ZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjk1
NyAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBk
ZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hp
Y2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBjY29zKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFz
c2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg
YW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg
cmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw
cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIGNjb3MoKTsKCmludCBtYWluKCkg
ewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2gg
aXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0
aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFu
ZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2Nj
b3MpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX2Njb3MpCmNob2tlIG1lCiNlbHNlCmNjb3MoKTsKI2Vu
ZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY2Nvc2YKY29u
ZmlndXJlOjI5ODA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9n
Y2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8g
LW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY3dCUU15ci5v
OiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxp
bnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYGNjb3NmJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGli
c3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjY29zZicK
Y29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8q
IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg
cHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY2Nvc2YoKTsgYmVs
b3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFs
IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2Ug
aW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5k
IHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIg
Y2Nvc2YoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlz
IGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0
aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGlu
ZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwoj
aWYgZGVmaW5lZCAoX19zdHViX2Njb3NmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jY29zZikKY2hv
a2UgbWUKI2Vsc2UKY2Nvc2YoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToyOTUy
OiBjaGVja2luZyBmb3IgY2Nvc2gKY29uZmlndXJlOjI5ODA6IC90bXAvZWdjcy1idWlsZC9nY2Mv
eGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1
LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAg
LWxtIDE+JjUKL3RtcC9jY1lNMzlnNC5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1i
dWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjI5
NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNjb3NoJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFl
djUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGBjY29zaCcKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0
dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIK
I2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt
YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGlj
dCB3aXRoIGNoYXIgY2Nvc2goKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92
ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICov
Ci8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv
ZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs
ZCBzdGlsbCBhcHBseS4gICovCmNoYXIgY2Nvc2goKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdO
VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50
cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0
dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFs
IG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2Njb3NoKSB8fCBkZWZp
bmVkIChfX3N0dWJfX19jY29zaCkKY2hva2UgbWUKI2Vsc2UKY2Nvc2goKTsKI2VuZGlmCgo7IHJl
dHVybiAwOyB9CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY2Nvc2hmCmNvbmZpZ3VyZToy
OTgwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9o
b21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0
ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NnNU01MEcubzogSW4gZnVu
Y3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUv
bGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjY29z
aGYnCi90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKyst
djMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNjb3NoZicKY29sbGVj
dDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3Rl
bSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90
eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY2Nvc2hmKCk7IGJlbG93LiAg
Ki8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90
b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBt
aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVu
IGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIGNjb3No
ZigpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9y
IGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVO
T1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0
YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBk
ZWZpbmVkIChfX3N0dWJfY2Nvc2hmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jY29zaGYpCmNob2tl
IG1lCiNlbHNlCmNjb3NoZigpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjI5NTI6
IGNoZWNraW5nIGZvciBjZXhwCmNvbmZpZ3VyZToyOTgwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hn
Y2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11
bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1s
bSAxPiY1Ci90bXAvY2NrOGxaT2oubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVp
bGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjZXhwJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUt
dW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBjZXhwJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpj
b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjk1NyAiY29uZmlndXJlIgojaW5j
bHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3Jv
cyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdp
dGggY2hhciBjZXhwKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlk
ZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBX
ZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBn
Y2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp
bGwgYXBwbHkuICAqLwpjaGFyIGNleHAoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxp
YnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAg
dG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkg
bmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUg
aXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2NleHApIHx8IGRlZmluZWQgKF9f
c3R1Yl9fX2NleHApCmNob2tlIG1lCiNlbHNlCmNleHAoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9
CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY2V4cGYKY29uZmlndXJlOjI5ODA6IC90bXAv
ZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0
L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8y
ICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY3o2THVTdC5vOiBJbiBmdW5jdGlvbiBgbWFp
bic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKyst
djMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNleHBmJwovdG1wL2Vn
Y3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3Vy
ZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjZXhwZicKY29sbGVjdDI6IGxkIHJldHVy
bmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI5
NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8g
ZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdo
aWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY2V4cGYoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8
YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p
ZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo
ZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50
IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgY2V4cGYoKTsKCmludCBtYWlu
KCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hp
Y2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1
bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9f
IGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHVi
X2NleHBmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jZXhwZikKY2hva2UgbWUKI2Vsc2UKY2V4cGYo
KTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY19s
b2cKY29uZmlndXJlOjI5ODA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1i
dWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251
L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY3Bt
S0RyNi5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtu
b3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYGNfbG9nJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1n
bnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBj
X2xvZycKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWls
ZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZz
LmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxs
eSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY19sb2co
KTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGlu
dGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJl
Y2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0
aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICov
CmNoYXIgY19sb2coKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5l
cyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZh
aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNv
bWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMu
ICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2NfbG9nKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jX2xv
ZykKY2hva2UgbWUKI2Vsc2UKY19sb2coKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3Vy
ZToyOTUyOiBjaGVja2luZyBmb3IgY19sb2dmCmNvbmZpZ3VyZToyOTgwOiAvdG1wL2VnY3MtYnVp
bGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9h
bHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0
ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NkWkNwTkoubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1w
L2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZp
Z3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjX2xvZ2YnCi90bXAvZWdjcy1idWls
ZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjI5NzQ6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNfbG9nZicKY29sbGVjdDI6IGxkIHJldHVybmVkIDEg
ZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI5NTcgImNv
bmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5l
IF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNh
biBjb25mbGljdCB3aXRoIGNoYXIgY19sb2dmKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2Vy
dC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4g
ZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0
dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90
b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIGNfbG9nZigpOwoKaW50IG1haW4oKSB7
CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp
dCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rp
b25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5k
IHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfY19s
b2dmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jX2xvZ2YpCmNob2tlIG1lCiNlbHNlCmNfbG9nZigp
OwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjI5NTI6IGNoZWNraW5nIGZvciBjbG9n
MTAKY29uZmlndXJlOjI5ODA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1i
dWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251
L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY3pY
TE0yai5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtu
b3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYGNsb2cxMCcKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgt
Z251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6Mjk3NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
Y2xvZzEwJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZh
aWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjk1NyAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRl
ZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1
bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBjbG9n
MTAoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2My
IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFy
IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1
aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g
ICovCmNoYXIgY2xvZzEwKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRl
ZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5
cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAg
ICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFs
aWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9jbG9nMTApIHx8IGRlZmluZWQgKF9fc3R1Yl9f
X2Nsb2cxMCkKY2hva2UgbWUKI2Vsc2UKY2xvZzEwKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpj
b25maWd1cmU6Mjk1MjogY2hlY2tpbmcgZm9yIGNsb2cxMGYKY29uZmlndXJlOjI5ODA6IC90bXAv
ZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0
L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8y
ICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jYzFPWmcxVy5vOiBJbiBmdW5jdGlvbiBgbWFp
bic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKyst
djMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNsb2cxMGYnCi90bXAv
ZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmln
dXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNsb2cxMGYnCmNvbGxlY3QyOiBsZCBy
ZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGlu
ZSAyOTU3ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVy
IHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAg
ICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGNsb2cxMGYoKTsgYmVsb3cuICAqLwojaW5j
bHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0
byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h
dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy
Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgY2xvZzEwZigpOwoK
aW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0
aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4g
IFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5n
IHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVk
IChfX3N0dWJfY2xvZzEwZikgfHwgZGVmaW5lZCAoX19zdHViX19fY2xvZzEwZikKY2hva2UgbWUK
I2Vsc2UKY2xvZzEwZigpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjI5NTI6IGNo
ZWNraW5nIGZvciBjcG93CmNvbmZpZ3VyZToyOTgwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2Mg
LUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtu
b3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAx
PiY1Ci90bXAvY2NRbVJaQXEubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQv
YWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjcG93JwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5r
bm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBjcG93Jwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25m
aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjk1NyAiY29uZmlndXJlIgojaW5jbHVk
ZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBh
bmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGgg
Y2hhciBjcG93KCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBh
bnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1
c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2My
CiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg
YXBwbHkuICAqLwpjaGFyIGNwb3coKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJh
cnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8g
YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt
ZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMg
YW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2Nwb3cpIHx8IGRlZmluZWQgKF9fc3R1
Yl9fX2Nwb3cpCmNob2tlIG1lCiNlbHNlCmNwb3coKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNv
bmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY3Bvd2YKY29uZmlndXJlOjI5ODA6IC90bXAvZWdj
cy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xv
Y2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAg
Y29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY2lYTFdVSi5vOiBJbiBmdW5jdGlvbiBgbWFpbic6
Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMv
Y29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNwb3dmJwovdG1wL2VnY3Mt
YnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToy
OTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjcG93ZicKY29sbGVjdDI6IGxkIHJldHVybmVk
IDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI5NTcg
ImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm
aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNo
IGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY3Bvd2YoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNz
ZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh
biBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy
ZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy
b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgY3Bvd2YoKTsKCmludCBtYWluKCkg
ewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2gg
aXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0
aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFu
ZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2Nw
b3dmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jcG93ZikKY2hva2UgbWUKI2Vsc2UKY3Bvd2YoKTsK
I2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY3Npbgpj
b25maWd1cmU6Mjk4MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxk
L2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmlu
LyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQovdG1wL2NjRUp1WFpt
Lm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24t
bGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6Mjk3NDogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgY3NpbicKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xp
YnN0ZGMrKy12My9jb25maWd1cmU6Mjk3NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgY3NpbicK
Y29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8q
IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg
cHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY3NpbigpOyBiZWxv
dy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwg
cHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBp
bnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQg
dGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBj
c2luKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBm
b3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGgg
RU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcg
c3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lm
IGRlZmluZWQgKF9fc3R1Yl9jc2luKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jc2luKQpjaG9rZSBt
ZQojZWxzZQpjc2luKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6Mjk1MjogY2hl
Y2tpbmcgZm9yIGNzaW5mCmNvbmZpZ3VyZToyOTgwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2Mg
LUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtu
b3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAx
PiY1Ci90bXAvY2NNaVViSVoubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQv
YWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjc2luZicKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVu
a25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6Mjk3NDogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgY3NpbmYnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNv
bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAyOTU3ICJjb25maWd1cmUiCiNpbmNs
dWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9z
IGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0
aCBjaGFyIGNzaW5mKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlk
ZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBX
ZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBn
Y2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp
bGwgYXBwbHkuICAqLwpjaGFyIGNzaW5mKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBs
aWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAg
IHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5
IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1l
IGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9jc2luZikgfHwgZGVmaW5lZCAo
X19zdHViX19fY3NpbmYpCmNob2tlIG1lCiNlbHNlCmNzaW5mKCk7CiNlbmRpZgoKOyByZXR1cm4g
MDsgfQpjb25maWd1cmU6Mjk1MjogY2hlY2tpbmcgZm9yIGNzaW5oCmNvbmZpZ3VyZToyOTgwOiAv
dG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2Fs
YmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1n
IC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NjMUpkamYubzogSW4gZnVuY3Rpb24g
YG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3Rk
YysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjc2luaCcKL3Rt
cC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25m
aWd1cmU6Mjk3NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgY3NpbmgnCmNvbGxlY3QyOiBsZCBy
ZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGlu
ZSAyOTU3ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVy
IHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAg
ICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGNzaW5oKCk7IGJlbG93LiAgKi8KI2luY2x1
ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8g
YXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj
aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1
bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIGNzaW5oKCk7CgppbnQg
bWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25z
IHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29t
ZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0
aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9f
c3R1Yl9jc2luaCkgfHwgZGVmaW5lZCAoX19zdHViX19fY3NpbmgpCmNob2tlIG1lCiNlbHNlCmNz
aW5oKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6Mjk1MjogY2hlY2tpbmcgZm9y
IGNzaW5oZgpjb25maWd1cmU6Mjk4MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9l
Z2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51
eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQovdG1w
L2NjbnQ1YUNILm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1
LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6Mjk3NDogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgY3NpbmhmJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1s
aW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBjc2luaGYnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3Vy
ZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAyOTU3ICJjb25maWd1cmUiCiNpbmNsdWRlICJj
b25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBo
b3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFy
IGNzaW5oZigpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55
IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNl
IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgog
ICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw
cGx5LiAgKi8KY2hhciBjc2luaGYoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJh
cnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8g
YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt
ZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMg
YW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2NzaW5oZikgfHwgZGVmaW5lZCAoX19z
dHViX19fY3NpbmhmKQpjaG9rZSBtZQojZWxzZQpjc2luaGYoKTsKI2VuZGlmCgo7IHJldHVybiAw
OyB9CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY3NxcnQKY29uZmlndXJlOjI5ODA6IC90
bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxi
ZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcg
LU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY1hJT3Yzai5vOiBJbiBmdW5jdGlvbiBg
bWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRj
KystdjMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNzcXJ0JwovdG1w
L2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZp
Z3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjc3FydCcKY29sbGVjdDI6IGxkIHJl
dHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5l
IDI5NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIg
dG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAg
IHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY3NxcnQoKTsgYmVsb3cuICAqLwojaW5jbHVk
ZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBh
dm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo
IHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt
ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgY3NxcnQoKTsKCmludCBt
YWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMg
d2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21l
IGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRo
IF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19z
dHViX2NzcXJ0KSB8fCBkZWZpbmVkIChfX3N0dWJfX19jc3FydCkKY2hva2UgbWUKI2Vsc2UKY3Nx
cnQoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3Ig
Y3NxcnRmCmNvbmZpZ3VyZToyOTgwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2Vn
Y3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4
LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAv
Y2NYOXU5WVcubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUt
dW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBjc3FydGYnCi90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxp
bnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYGNzcXJ0ZicKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJl
OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNv
bmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhv
cGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIg
Y3NxcnRmKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkg
Z2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2Ug
Y2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAg
ICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBw
bHkuICAqLwpjaGFyIGNzcXJ0ZigpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFy
eSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBh
bHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1l
ZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBh
biBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfY3NxcnRmKSB8fCBkZWZpbmVkIChfX3N0
dWJfX19jc3FydGYpCmNob2tlIG1lCiNlbHNlCmNzcXJ0ZigpOwojZW5kaWYKCjsgcmV0dXJuIDA7
IH0KY29uZmlndXJlOjI5NTI6IGNoZWNraW5nIGZvciBjdGFuCmNvbmZpZ3VyZToyOTgwOiAvdG1w
L2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVy
dC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1P
MiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2MzSHBYdXoubzogSW4gZnVuY3Rpb24gYG1h
aW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysr
LXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjdGFuJwovdG1wL2Vn
Y3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3Vy
ZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjdGFuJwpjb2xsZWN0MjogbGQgcmV0dXJu
ZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjk1
NyAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBk
ZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hp
Y2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBjdGFuKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFz
c2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg
YW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg
cmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw
cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIGN0YW4oKTsKCmludCBtYWluKCkg
ewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2gg
aXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0
aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFu
ZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2N0
YW4pIHx8IGRlZmluZWQgKF9fc3R1Yl9fX2N0YW4pCmNob2tlIG1lCiNlbHNlCmN0YW4oKTsKI2Vu
ZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY3RhbmYKY29u
ZmlndXJlOjI5ODA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9n
Y2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8g
LW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY2hnMjA0Yi5v
OiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxp
bnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYGN0YW5mJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGli
c3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjdGFuZicK
Y29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8q
IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg
cHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY3RhbmYoKTsgYmVs
b3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFs
IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2Ug
aW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5k
IHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIg
Y3RhbmYoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlz
IGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0
aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGlu
ZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwoj
aWYgZGVmaW5lZCAoX19zdHViX2N0YW5mKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jdGFuZikKY2hv
a2UgbWUKI2Vsc2UKY3RhbmYoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToyOTUy
OiBjaGVja2luZyBmb3IgY3RhbmgKY29uZmlndXJlOjI5ODA6IC90bXAvZWdjcy1idWlsZC9nY2Mv
eGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1
LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAg
LWxtIDE+JjUKL3RtcC9jY2VOOVlPbC5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1i
dWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjI5
NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGN0YW5oJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFl
djUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGBjdGFuaCcKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0
dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIK
I2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt
YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGlj
dCB3aXRoIGNoYXIgY3RhbmgoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92
ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICov
Ci8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv
ZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs
ZCBzdGlsbCBhcHBseS4gICovCmNoYXIgY3RhbmgoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdO
VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50
cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0
dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFs
IG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2N0YW5oKSB8fCBkZWZp
bmVkIChfX3N0dWJfX19jdGFuaCkKY2hva2UgbWUKI2Vsc2UKY3RhbmgoKTsKI2VuZGlmCgo7IHJl
dHVybiAwOyB9CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY3RhbmhmCmNvbmZpZ3VyZToy
OTgwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9o
b21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0
ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NrbDRNa1kubzogSW4gZnVu
Y3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUv
bGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjdGFu
aGYnCi90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKyst
djMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGN0YW5oZicKY29sbGVj
dDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3Rl
bSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90
eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY3RhbmhmKCk7IGJlbG93LiAg
Ki8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90
b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBt
aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVu
IGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIGN0YW5o
ZigpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9y
IGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVO
T1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0
YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBk
ZWZpbmVkIChfX3N0dWJfY3RhbmhmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jdGFuaGYpCmNob2tl
IG1lCiNlbHNlCmN0YW5oZigpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjI5NTI6
IGNoZWNraW5nIGZvciBjYXJnCmNvbmZpZ3VyZToyOTgwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hn
Y2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11
bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1s
bSAxPiY1Ci90bXAvY2N3UzZOZUIubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVp
bGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjYXJnJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUt
dW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQg
cmVmZXJlbmNlIHRvIGBjYXJnJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpj
b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMjk1NyAiY29uZmlndXJlIgojaW5j
bHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3Jv
cyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdp
dGggY2hhciBjYXJnKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlk
ZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBX
ZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBn
Y2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp
bGwgYXBwbHkuICAqLwpjaGFyIGNhcmcoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxp
YnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAg
dG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkg
bmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUg
aXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2NhcmcpIHx8IGRlZmluZWQgKF9f
c3R1Yl9fX2NhcmcpCmNob2tlIG1lCiNlbHNlCmNhcmcoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9
CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgY2FyZ2YKY29uZmlndXJlOjI5ODA6IC90bXAv
ZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0
L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8y
ICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY21jUUpZZC5vOiBJbiBmdW5jdGlvbiBgbWFp
bic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKyst
djMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNhcmdmJwovdG1wL2Vn
Y3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3Vy
ZToyOTc0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjYXJnZicKY29sbGVjdDI6IGxkIHJldHVy
bmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDI5
NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8g
ZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdo
aWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY2FyZ2YoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8
YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p
ZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo
ZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50
IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgY2FyZ2YoKTsKCmludCBtYWlu
KCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hp
Y2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1
bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9f
IGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHVi
X2NhcmdmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19jYXJnZikKY2hva2UgbWUKI2Vsc2UKY2FyZ2Yo
KTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToyOTUyOiBjaGVja2luZyBmb3IgbmFu
CmNvbmZpZ3VyZToyOTgwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVp
bGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9i
aW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NzbVFZ
MVEubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93
bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToyOTc0OiB1bmRlZmluZWQgcmVmZXJl
bmNlIHRvIGBuYW4nCi90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9s
aWJzdGRjKystdjMvY29uZmlndXJlOjI5NzQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG5hbicK
Y29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6CiNsaW5lIDI5NTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8q
IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg
cHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbmFuKCk7IGJlbG93
LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBw
cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGlu
dCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0
aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIG5h
bigpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9y
IGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVO
T1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0
YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBk
ZWZpbmVkIChfX3N0dWJfbmFuKSB8fCBkZWZpbmVkIChfX3N0dWJfX19uYW4pCmNob2tlIG1lCiNl
bHNlCm5hbigpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjI5NTI6IGNoZWNraW5n
IGZvciBoeXBvdApjb25maWd1cmU6Mjk4MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3Rt
cC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1s
aW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQpj
b25maWd1cmU6Mjk1MjogY2hlY2tpbmcgZm9yIGh5cG90Zgpjb25maWd1cmU6Mjk4MDogL3RtcC9l
Z2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQv
bG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIg
ICBjb25mdGVzdC5jICAtbG0gMT4mNQpjb25maWd1cmU6Mjk1MjogY2hlY2tpbmcgZm9yIGF0YW4y
Zgpjb25maWd1cmU6Mjk4MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1
aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUv
YmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQpjb25maWd1cmU6
Mjk1MjogY2hlY2tpbmcgZm9yIGV4cGYKY29uZmlndXJlOjI5ODA6IC90bXAvZWdjcy1idWlsZC9n
Y2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhh
ZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3Qu
YyAgLWxtIDE+JjUKY29uZmlndXJlOjI5NTI6IGNoZWNraW5nIGZvciBjb3B5c2lnbmYKY29uZmln
dXJlOjI5ODA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2Mv
IC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8g
Y29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKY29uZmlndXJlOjMwMDk6IGNo
ZWNraW5nIGZvciBjb3B5c2lnbmwKY29uZmlndXJlOjMwMzc6IC90bXAvZWdjcy1idWlsZC9nY2Mv
eGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1
LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAg
LWxtIDE+JjUKL3RtcC9jY09RbFpPai5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1i
dWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMw
MzE6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNvcHlzaWdubCcKL3RtcC9lZ2NzLWJ1aWxkL2Fs
cGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzAzMTogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgY29weXNpZ25sJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBl
eGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMzAxNCAiY29u
ZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUg
X19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2Fu
IGNvbmZsaWN0IHdpdGggY2hhciBjb3B5c2lnbmwoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNz
ZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh
biBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy
ZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy
b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgY29weXNpZ25sKCk7CgppbnQgbWFp
bigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdo
aWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBm
dW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf
XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1
Yl9jb3B5c2lnbmwpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX2NvcHlzaWdubCkKY2hva2UgbWUKI2Vs
c2UKY29weXNpZ25sKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzEyMjogY2hl
Y2tpbmcgZm9yIG1vZGYKY29uZmlndXJlOjMxNTA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAt
Qi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25v
d24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+
JjUKY29uZmlndXJlOjMxMjI6IGNoZWNraW5nIGZvciBpc25hbgpjb25maWd1cmU6MzE1MDogL3Rt
cC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJl
cnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAt
TzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQpjb25maWd1cmU6MzEyMjogY2hlY2tpbmcgZm9yIGlz
bmFuZgpjb25maWd1cmU6MzE1MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2Nz
LWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1n
bnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQpjb25maWd1
cmU6MzEyMjogY2hlY2tpbmcgZm9yIGlzbmFubApjb25maWd1cmU6MzE1MDogL3RtcC9lZ2NzLWJ1
aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwv
YWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25m
dGVzdC5jICAtbG0gMT4mNQpjb25maWd1cmU6MzEyMjogY2hlY2tpbmcgZm9yIGlzaW5mCmNvbmZp
Z3VyZTozMTUwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2Nj
LyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1v
IGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1CmNvbmZpZ3VyZTozMTIyOiBj
aGVja2luZyBmb3IgaXNpbmZmCmNvbmZpZ3VyZTozMTUwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hn
Y2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11
bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1s
bSAxPiY1CmNvbmZpZ3VyZTozMTIyOiBjaGVja2luZyBmb3IgaXNpbmZsCmNvbmZpZ3VyZTozMTUw
OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21l
L2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0
IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1CmNvbmZpZ3VyZTozMTIyOiBjaGVja2luZyBm
b3IgY29weXNpZ24KY29uZmlndXJlOjMxNTA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90
bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24t
bGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUK
Y29uZmlndXJlOjMxMjI6IGNoZWNraW5nIGZvciBjb3B5c2lnbmwKY29uZmlndXJlOjMxMjI6IGNo
ZWNraW5nIGZvciBjb3NmCmNvbmZpZ3VyZTozMTUwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2Mg
LUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtu
b3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAx
PiY1CmNvbmZpZ3VyZTozMTM0OiB3YXJuaW5nOiBjb25mbGljdGluZyB0eXBlcyBmb3IgYnVpbHQt
aW4gZnVuY3Rpb24gYGNvc2YnCmNvbmZpZ3VyZTozMTIyOiBjaGVja2luZyBmb3IgY29zaGYKY29u
ZmlndXJlOjMxNTA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9n
Y2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8g
LW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKY29uZmlndXJlOjMxMjI6
IGNoZWNraW5nIGZvciBsb2dmCmNvbmZpZ3VyZTozMTUwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hn
Y2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11
bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1s
bSAxPiY1CmNvbmZpZ3VyZTozMTIyOiBjaGVja2luZyBmb3IgbG9nMTBmCmNvbmZpZ3VyZTozMTUw
OiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21l
L2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0
IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1CmNvbmZpZ3VyZTozMTIyOiBjaGVja2luZyBm
b3IgcG93Zgpjb25maWd1cmU6MzE1MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9l
Z2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51
eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQpjb25m
aWd1cmU6MzEyMjogY2hlY2tpbmcgZm9yIHNpbmYKY29uZmlndXJlOjMxNTA6IC90bXAvZWdjcy1i
dWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2Fs
L2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29u
ZnRlc3QuYyAgLWxtIDE+JjUKY29uZmlndXJlOjMxMzQ6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5
cGVzIGZvciBidWlsdC1pbiBmdW5jdGlvbiBgc2luZicKY29uZmlndXJlOjMxMjI6IGNoZWNraW5n
IGZvciBzaW5oZgpjb25maWd1cmU6MzE1MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3Rt
cC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1s
aW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQpj
b25maWd1cmU6MzEyMjogY2hlY2tpbmcgZm9yIHNxcnRmCmNvbmZpZ3VyZTozMTUwOiAvdG1wL2Vn
Y3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9s
b2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAg
IGNvbmZ0ZXN0LmMgIC1sbSAxPiY1CmNvbmZpZ3VyZTozMTM0OiB3YXJuaW5nOiBjb25mbGljdGlu
ZyB0eXBlcyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gYHNxcnRmJwpjb25maWd1cmU6MzEyMjogY2hl
Y2tpbmcgZm9yIHRhbmYKY29uZmlndXJlOjMxNTA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAt
Qi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25v
d24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+
JjUKY29uZmlndXJlOjMxMjI6IGNoZWNraW5nIGZvciB0YW5oZgpjb25maWd1cmU6MzE1MDogL3Rt
cC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJl
cnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAt
TzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQpjb25maWd1cmU6MzEyMjogY2hlY2tpbmcgZm9yIHN0
cnRvZgpjb25maWd1cmU6MzE1MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2Nz
LWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1n
bnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQpjb25maWd1
cmU6MzEyMjogY2hlY2tpbmcgZm9yIHN0cnRvbGQKY29uZmlndXJlOjMxNTA6IC90bXAvZWdjcy1i
dWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2Fs
L2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29u
ZnRlc3QuYyAgLWxtIDE+JjUKY29uZmlndXJlOjMxMjI6IGNoZWNraW5nIGZvciBmYWJzZgpjb25m
aWd1cmU6MzE1MDogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2dj
Yy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAt
byBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQpjb25maWd1cmU6MzEzNDog
d2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uIGBmYWJzZicK
Y29uZmlndXJlOjMxMjI6IGNoZWNraW5nIGZvciBzaW5jb3MKY29uZmlndXJlOjMxNTA6IC90bXAv
ZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0
L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8y
ICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY2FxUUNCMS5vOiBJbiBmdW5jdGlvbiBgbWFp
bic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKyst
djMvY29uZmlndXJlOjMxNDQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHNpbmNvcycKL3RtcC9l
Z2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1
cmU6MzE0NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc2luY29zJwpjb2xsZWN0MjogbGQgcmV0
dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUg
MzEyNyAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0
byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAg
d2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzaW5jb3MoKTsgYmVsb3cuICAqLwojaW5jbHVk
ZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBh
dm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo
IHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt
ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgc2luY29zKCk7CgppbnQg
bWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25z
IHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29t
ZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0
aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9f
c3R1Yl9zaW5jb3MpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3NpbmNvcykKY2hva2UgbWUKI2Vsc2UK
c2luY29zKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzEyMjogY2hlY2tpbmcg
Zm9yIHNpbmNvc2YKY29uZmlndXJlOjMxNTA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90
bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24t
bGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUK
L3RtcC9jY1NyRkpNRS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBo
YWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMxNDQ6IHVuZGVm
aW5lZCByZWZlcmVuY2UgdG8gYHNpbmNvc2YnCi90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtu
b3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMxNDQ6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYHNpbmNvc2YnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNv
bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTI3ICJjb25maWd1cmUiCiNpbmNs
dWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9z
IGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0
aCBjaGFyIHNpbmNvc2YoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJy
aWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8q
IFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBh
IGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz
dGlsbCBhcHBseS4gICovCmNoYXIgc2luY29zZigpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05V
IEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRz
CiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1
YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwg
bmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfc2luY29zZikgfHwgZGVm
aW5lZCAoX19zdHViX19fc2luY29zZikKY2hva2UgbWUKI2Vsc2UKc2luY29zZigpOwojZW5kaWYK
CjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjMxMjI6IGNoZWNraW5nIGZvciBzaW5jb3NsCmNvbmZp
Z3VyZTozMTUwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2Nj
LyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1v
IGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NzajdKbGgubzog
SW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51
eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMTQ0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBzaW5jb3NsJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGli
c3RkYysrLXYzL2NvbmZpZ3VyZTozMTQ0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBzaW5jb3Ns
Jwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBw
cm9ncmFtIHdhczoKI2xpbmUgMzEyNyAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIK
LyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZl
dyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzaW5jb3NsKCk7
IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRl
cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNh
dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGlu
IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpj
aGFyIHNpbmNvc2woKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5l
cyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZh
aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNv
bWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMu
ICAqLwojaWYgZGVmaW5lZCAoX19zdHViX3NpbmNvc2wpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3Np
bmNvc2wpCmNob2tlIG1lCiNlbHNlCnNpbmNvc2woKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNv
bmZpZ3VyZTozMTIyOiBjaGVja2luZyBmb3IgZmluaXRlCmNvbmZpZ3VyZTozMTUwOiAvdG1wL2Vn
Y3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9s
b2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAg
IGNvbmZ0ZXN0LmMgIC1sbSAxPiY1CmNvbmZpZ3VyZTozMTIyOiBjaGVja2luZyBmb3IgZmluaXRl
CmNvbmZpZ3VyZTozMTIyOiBjaGVja2luZyBmb3IgZnFmaW5pdGUKY29uZmlndXJlOjMxNTA6IC90
bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxi
ZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcg
LU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY0hiTUd6bS5vOiBJbiBmdW5jdGlvbiBg
bWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRj
KystdjMvY29uZmlndXJlOjMxNDQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGZxZmluaXRlJwov
dG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2Nv
bmZpZ3VyZTozMTQ0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBmcWZpbml0ZScKY29sbGVjdDI6
IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
CiNsaW5lIDMxMjcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBo
ZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBl
cywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZnFmaW5pdGUoKTsgYmVsb3cuICAq
LwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3Rv
dHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1p
Z2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4g
aXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgZnFmaW5p
dGUoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZv
ciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBF
Tk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBz
dGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYg
ZGVmaW5lZCAoX19zdHViX2ZxZmluaXRlKSB8fCBkZWZpbmVkIChfX3N0dWJfX19mcWZpbml0ZSkK
Y2hva2UgbWUKI2Vsc2UKZnFmaW5pdGUoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3Vy
ZTozMTIyOiBjaGVja2luZyBmb3IgZnBjbGFzcwpjb25maWd1cmU6MzE1MDogL3RtcC9lZ2NzLWJ1
aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwv
YWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25m
dGVzdC5jICAtbG0gMT4mNQovdG1wL2NjNnNKQ09TLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3Rt
cC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25m
aWd1cmU6MzE0NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZnBjbGFzcycKL3RtcC9lZ2NzLWJ1
aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzE0
NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZnBjbGFzcycKY29sbGVjdDI6IGxkIHJldHVybmVk
IDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDMxMjcg
ImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm
aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNo
IGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZnBjbGFzcygpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxh
c3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk
IGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhl
IHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg
cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBmcGNsYXNzKCk7CgppbnQgbWFp
bigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdo
aWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBm
dW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf
XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1
Yl9mcGNsYXNzKSB8fCBkZWZpbmVkIChfX3N0dWJfX19mcGNsYXNzKQpjaG9rZSBtZQojZWxzZQpm
cGNsYXNzKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzEyMjogY2hlY2tpbmcg
Zm9yIHFmcGNsYXNzCmNvbmZpZ3VyZTozMTUwOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIv
dG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3du
LWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1
Ci90bXAvY2NvYlE1ZXYubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxw
aGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMTQ0OiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBxZnBjbGFzcycKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVu
a25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzE0NDogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgcWZwY2xhc3MnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz
CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTI3ICJjb25maWd1cmUiCiNp
bmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFj
cm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qg
d2l0aCBjaGFyIHFmcGNsYXNzKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBP
dmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAq
LwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUg
b2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291
bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIHFmcGNsYXNzKCk7CgppbnQgbWFpbigpIHsKCi8qIFRo
ZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxl
bWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJl
IGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v
cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9xZnBjbGFzcykg
fHwgZGVmaW5lZCAoX19zdHViX19fcWZwY2xhc3MpCmNob2tlIG1lCiNlbHNlCnFmcGNsYXNzKCk7
CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzE4NTogY2hlY2tpbmcgZm9yIF9tb2Rm
CmNvbmZpZ3VyZTozMjEzOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVp
bGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9i
aW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NFS2Ft
RzcubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93
bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJl
bmNlIHRvIGBfbW9kZicKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251
L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX21v
ZGYnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVk
IHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5o
IgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkg
ZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF9tb2RmKCk7
IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRl
cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNh
dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGlu
IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpj
aGFyIF9tb2RmKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg
dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWls
IHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21l
dGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAg
Ki8KI2lmIGRlZmluZWQgKF9fc3R1Yl9fbW9kZikgfHwgZGVmaW5lZCAoX19zdHViX19fX21vZGYp
CmNob2tlIG1lCiNlbHNlCl9tb2RmKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6
MzE4NTogY2hlY2tpbmcgZm9yIF9pc25hbgpjb25maWd1cmU6MzIxMzogL3RtcC9lZ2NzLWJ1aWxk
L2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxw
aGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVz
dC5jICAtbG0gMT4mNQovdG1wL2NjOE1zQllKLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9l
Z2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1
cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX2lzbmFuJwovdG1wL2VnY3MtYnVpbGQv
YWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfaXNuYW4nCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4
aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJjb25m
aWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBf
X3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4g
Y29uZmxpY3Qgd2l0aCBjaGFyIF9pc25hbigpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxhc3NlcnQu
aD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVy
cm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy
biB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90
eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBfaXNuYW4oKTsKCmludCBtYWluKCkgewoK
LyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQg
aW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9u
cyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0
aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX19pc25h
bikgfHwgZGVmaW5lZCAoX19zdHViX19fX2lzbmFuKQpjaG9rZSBtZQojZWxzZQpfaXNuYW4oKTsK
I2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTozMTg1OiBjaGVja2luZyBmb3IgX2lzbmFu
Zgpjb25maWd1cmU6MzIxMzogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1
aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUv
YmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQovdG1wL2NjS1Ix
eHRtLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25v
d24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVy
ZW5jZSB0byBgX2lzbmFuZicKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgt
Z251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg
X2lzbmFuZicKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDMxOTAgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZk
ZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVm
dWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgX2lz
bmFuZigpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdj
YzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNo
YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAg
YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5
LiAgKi8KY2hhciBfaXNuYW5mKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5
IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFs
d2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVk
CiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFu
IGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9faXNuYW5mKSB8fCBkZWZpbmVkIChfX3N0
dWJfX19faXNuYW5mKQpjaG9rZSBtZQojZWxzZQpfaXNuYW5mKCk7CiNlbmRpZgoKOyByZXR1cm4g
MDsgfQpjb25maWd1cmU6MzE4NTogY2hlY2tpbmcgZm9yIF9pc25hbmwKY29uZmlndXJlOjMyMTM6
IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUv
YWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3Qg
LWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY1Ywa2phdy5vOiBJbiBmdW5jdGlv
biBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJz
dGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9pc25hbmwn
Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMv
Y29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9pc25hbmwnCmNvbGxlY3Qy
OiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz
OgojbGluZSAzMTkwICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0g
aGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlw
ZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF9pc25hbmwoKTsgYmVsb3cuICAq
LwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3Rv
dHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1p
Z2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4g
aXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgX2lzbmFu
bCgpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9y
IGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVO
T1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0
YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBk
ZWZpbmVkIChfX3N0dWJfX2lzbmFubCkgfHwgZGVmaW5lZCAoX19zdHViX19fX2lzbmFubCkKY2hv
a2UgbWUKI2Vsc2UKX2lzbmFubCgpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjMx
ODU6IGNoZWNraW5nIGZvciBfaXNpbmYKY29uZmlndXJlOjMyMTM6IC90bXAvZWdjcy1idWlsZC9n
Y2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhh
ZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3Qu
YyAgLWxtIDE+JjUKL3RtcC9jYzFNT2RHYS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdj
cy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJl
OjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9pc2luZicKL3RtcC9lZ2NzLWJ1aWxkL2Fs
cGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgX2lzaW5mJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0
IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMzE5MCAiY29uZmln
dXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z
dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNv
bmZsaWN0IHdpdGggY2hhciBfaXNpbmYoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+
Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv
ci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g
dHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlw
ZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgX2lzaW5mKCk7CgppbnQgbWFpbigpIHsKCi8q
IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt
cGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMg
YXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhl
IG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9faXNpbmYp
IHx8IGRlZmluZWQgKF9fc3R1Yl9fX19pc2luZikKY2hva2UgbWUKI2Vsc2UKX2lzaW5mKCk7CiNl
bmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzE4NTogY2hlY2tpbmcgZm9yIF9pc2luZmYK
Y29uZmlndXJlOjMyMTM6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWls
ZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jp
bi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY1Rsem1h
UC5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3du
LWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYF9pc2luZmYnCi90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdu
dS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9p
c2luZmYnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFp
bGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVm
cy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVs
bHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF9pc2lu
ZmYoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2My
IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFy
IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1
aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g
ICovCmNoYXIgX2lzaW5mZigpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBk
ZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdh
eXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAog
ICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBh
bGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfX2lzaW5mZikgfHwgZGVmaW5lZCAoX19zdHVi
X19fX2lzaW5mZikKY2hva2UgbWUKI2Vsc2UKX2lzaW5mZigpOwojZW5kaWYKCjsgcmV0dXJuIDA7
IH0KY29uZmlndXJlOjMxODU6IGNoZWNraW5nIGZvciBfaXNpbmZsCmNvbmZpZ3VyZTozMjEzOiAv
dG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2Fs
YmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1n
IC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NaRHRZQXIubzogSW4gZnVuY3Rpb24g
YG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3Rk
YysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfaXNpbmZsJwov
dG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2Nv
bmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfaXNpbmZsJwpjb2xsZWN0Mjog
bGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK
I2xpbmUgMzE5MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhl
YWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVz
LAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBfaXNpbmZsKCk7IGJlbG93LiAgKi8K
I2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5
cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdo
dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0
cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF9pc2luZmwo
KTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBm
dW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9T
WVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFy
dGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVm
aW5lZCAoX19zdHViX19pc2luZmwpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX19pc2luZmwpCmNob2tl
IG1lCiNlbHNlCl9pc2luZmwoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTozMTg1
OiBjaGVja2luZyBmb3IgX2NvcHlzaWduCmNvbmZpZ3VyZTozMjEzOiAvdG1wL2VnY3MtYnVpbGQv
Z2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBo
YWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0
LmMgIC1sbSAxPiY1Ci90bXAvY2NsMjhnVXcubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2Vn
Y3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3Vy
ZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfY29weXNpZ24nCi90bXAvZWdjcy1idWls
ZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9jb3B5c2lnbicKY29sbGVjdDI6IGxkIHJldHVybmVk
IDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDMxOTAg
ImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm
aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNo
IGNhbiBjb25mbGljdCB3aXRoIGNoYXIgX2NvcHlzaWduKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUg
PGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZv
aWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0
aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu
dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF9jb3B5c2lnbigpOwoKaW50
IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9u
cyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNv
bWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdp
dGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChf
X3N0dWJfX2NvcHlzaWduKSB8fCBkZWZpbmVkIChfX3N0dWJfX19fY29weXNpZ24pCmNob2tlIG1l
CiNlbHNlCl9jb3B5c2lnbigpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjMxODU6
IGNoZWNraW5nIGZvciBfY29weXNpZ25sCmNvbmZpZ3VyZTozMjEzOiAvdG1wL2VnY3MtYnVpbGQv
Z2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBo
YWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0
LmMgIC1sbSAxPiY1Ci90bXAvY2NXUTNITEcubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2Vn
Y3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3Vy
ZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfY29weXNpZ25sJwovdG1wL2VnY3MtYnVp
bGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3
OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfY29weXNpZ25sJwpjb2xsZWN0MjogbGQgcmV0dXJu
ZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMzE5
MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBk
ZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hp
Y2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBfY29weXNpZ25sKCk7IGJlbG93LiAgKi8KI2luY2x1
ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8g
YXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj
aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1
bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF9jb3B5c2lnbmwoKTsK
CmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5j
dGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMu
ICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGlu
ZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5l
ZCAoX19zdHViX19jb3B5c2lnbmwpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX19jb3B5c2lnbmwpCmNo
b2tlIG1lCiNlbHNlCl9jb3B5c2lnbmwoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3Vy
ZTozMTg1OiBjaGVja2luZyBmb3IgX2Nvc2YKY29uZmlndXJlOjMyMTM6IC90bXAvZWdjcy1idWls
ZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2Fs
cGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRl
c3QuYyAgLWxtIDE+JjUKL3RtcC9jY0lhNU1Fai5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAv
ZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmln
dXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9jb3NmJwovdG1wL2VnY3MtYnVpbGQv
YWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfY29zZicKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhp
dCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDMxOTAgImNvbmZp
Z3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9f
c3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBj
b25mbGljdCB3aXRoIGNoYXIgX2Nvc2YoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+
Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv
ci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g
dHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlw
ZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgX2Nvc2YoKTsKCmludCBtYWluKCkgewoKLyog
VGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1w
bGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBh
cmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUg
bm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX19jb3NmKSB8
fCBkZWZpbmVkIChfX3N0dWJfX19fY29zZikKY2hva2UgbWUKI2Vsc2UKX2Nvc2YoKTsKI2VuZGlm
Cgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTozMTg1OiBjaGVja2luZyBmb3IgX2Nvc2hmCmNvbmZp
Z3VyZTozMjEzOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2Nj
LyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1v
IGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NJelpsU1Yubzog
SW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51
eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBfY29zaGYnCi90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJz
dGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9jb3NoZicK
Y29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6CiNsaW5lIDMxOTAgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8q
IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg
cHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgX2Nvc2hmKCk7IGJl
bG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5h
bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNl
IGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFu
ZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFy
IF9jb3NoZigpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRo
aXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3
aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRo
aW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICov
CiNpZiBkZWZpbmVkIChfX3N0dWJfX2Nvc2hmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19fY29zaGYp
CmNob2tlIG1lCiNlbHNlCl9jb3NoZigpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJl
OjMxODU6IGNoZWNraW5nIGZvciBfbG9nZgpjb25maWd1cmU6MzIxMzogL3RtcC9lZ2NzLWJ1aWxk
L2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxw
aGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVz
dC5jICAtbG0gMT4mNQovdG1wL2NjUVM0SE55Lm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9l
Z2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1
cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX2xvZ2YnCi90bXAvZWdjcy1idWlsZC9h
bHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9sb2dmJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0
IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMzE5MCAiY29uZmln
dXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z
dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNv
bmZsaWN0IHdpdGggY2hhciBfbG9nZigpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4K
LyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y
LiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0
eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl
IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBfbG9nZigpOwoKaW50IG1haW4oKSB7CgovKiBU
aGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBs
ZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFy
ZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBu
b3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfX2xvZ2YpIHx8
IGRlZmluZWQgKF9fc3R1Yl9fX19sb2dmKQpjaG9rZSBtZQojZWxzZQpfbG9nZigpOwojZW5kaWYK
CjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjMxODU6IGNoZWNraW5nIGZvciBfbG9nMTBmCmNvbmZp
Z3VyZTozMjEzOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2Nj
LyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1v
IGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NTYTl4amQubzog
SW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51
eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBfbG9nMTBmJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGli
c3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfbG9nMTBm
Jwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBw
cm9ncmFtIHdhczoKI2xpbmUgMzE5MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIK
LyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZl
dyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBfbG9nMTBmKCk7
IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRl
cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNh
dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGlu
IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpj
aGFyIF9sb2cxMGYoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5l
cyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZh
aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNv
bWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMu
ICAqLwojaWYgZGVmaW5lZCAoX19zdHViX19sb2cxMGYpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX19s
b2cxMGYpCmNob2tlIG1lCiNlbHNlCl9sb2cxMGYoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNv
bmZpZ3VyZTozMTg1OiBjaGVja2luZyBmb3IgX3Bvd2YKY29uZmlndXJlOjMyMTM6IC90bXAvZWdj
cy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xv
Y2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAg
Y29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY05wOGxkcC5vOiBJbiBmdW5jdGlvbiBgbWFpbic6
Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMv
Y29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9wb3dmJwovdG1wL2VnY3Mt
YnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToz
MjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfcG93ZicKY29sbGVjdDI6IGxkIHJldHVybmVk
IDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDMxOTAg
ImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm
aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNo
IGNhbiBjb25mbGljdCB3aXRoIGNoYXIgX3Bvd2YoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNz
ZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh
biBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy
ZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy
b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgX3Bvd2YoKTsKCmludCBtYWluKCkg
ewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2gg
aXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0
aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFu
ZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX19w
b3dmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19fcG93ZikKY2hva2UgbWUKI2Vsc2UKX3Bvd2YoKTsK
I2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTozMTg1OiBjaGVja2luZyBmb3IgX3NpbmYK
Y29uZmlndXJlOjMyMTM6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWls
ZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jp
bi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jYzUxdW8x
MS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3du
LWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYF9zaW5mJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUv
bGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfc2lu
ZicKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6CiNsaW5lIDMxOTAgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgi
Ci8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBm
ZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgX3NpbmYoKTsg
YmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVy
bmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1
c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4g
YW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNo
YXIgX3NpbmYoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0
aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwg
d2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0
aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAq
LwojaWYgZGVmaW5lZCAoX19zdHViX19zaW5mKSB8fCBkZWZpbmVkIChfX3N0dWJfX19fc2luZikK
Y2hva2UgbWUKI2Vsc2UKX3NpbmYoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToz
MTg1OiBjaGVja2luZyBmb3IgX3NpbmhmCmNvbmZpZ3VyZTozMjEzOiAvdG1wL2VnY3MtYnVpbGQv
Z2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBo
YWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0
LmMgIC1sbSAxPiY1Ci90bXAvY2NKUGYyeUUubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2Vn
Y3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3Vy
ZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfc2luaGYnCi90bXAvZWdjcy1idWlsZC9h
bHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVu
ZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9zaW5oZicKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhp
dCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDMxOTAgImNvbmZp
Z3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9f
c3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBj
b25mbGljdCB3aXRoIGNoYXIgX3NpbmhmKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5o
PgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy
b3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu
IHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5
cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF9zaW5oZigpOwoKaW50IG1haW4oKSB7Cgov
KiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBp
bXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z
IGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRo
ZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfX3Npbmhm
KSB8fCBkZWZpbmVkIChfX3N0dWJfX19fc2luaGYpCmNob2tlIG1lCiNlbHNlCl9zaW5oZigpOwoj
ZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjMxODU6IGNoZWNraW5nIGZvciBfc3FydGYK
Y29uZmlndXJlOjMyMTM6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWls
ZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jp
bi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY0haZVo0
Zy5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3du
LWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYF9zcXJ0ZicKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251
L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3Nx
cnRmJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoKI2xpbmUgMzE5MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMu
aCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5
IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBfc3FydGYo
KTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGlu
dGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJl
Y2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0
aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICov
CmNoYXIgX3NxcnRmKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmlu
ZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBm
YWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBz
b21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFz
LiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9fc3FydGYpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX19z
cXJ0ZikKY2hva2UgbWUKI2Vsc2UKX3NxcnRmKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25m
aWd1cmU6MzE4NTogY2hlY2tpbmcgZm9yIF90YW5mCmNvbmZpZ3VyZTozMjEzOiAvdG1wL2VnY3Mt
YnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2Nh
bC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNv
bmZ0ZXN0LmMgIC1sbSAxPiY1Ci90bXAvY2NselcwVlQubzogSW4gZnVuY3Rpb24gYG1haW4nOgov
dG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2Nv
bmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfdGFuZicKL3RtcC9lZ2NzLWJ1
aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIw
NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3RhbmYnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAx
IGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJj
b25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmlu
ZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBj
YW4gY29uZmxpY3Qgd2l0aCBjaGFyIF90YW5mKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2Vy
dC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4g
ZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0
dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90
b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF90YW5mKCk7CgppbnQgbWFpbigpIHsK
Ci8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0
IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlv
bnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQg
dGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9fdGFu
ZikgfHwgZGVmaW5lZCAoX19zdHViX19fX3RhbmYpCmNob2tlIG1lCiNlbHNlCl90YW5mKCk7CiNl
bmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzE4NTogY2hlY2tpbmcgZm9yIF90YW5oZgpj
b25maWd1cmU6MzIxMzogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxk
L2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmlu
LyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQovdG1wL2NjTjg0bmZ3
Lm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24t
bGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5j
ZSB0byBgX3RhbmhmJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUv
bGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfdGFu
aGYnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVk
IHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5o
IgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkg
ZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF90YW5oZigp
OyBiZWxvdy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50
ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVj
YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRp
biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K
Y2hhciBfdGFuaGYoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5l
cyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZh
aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNv
bWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMu
ICAqLwojaWYgZGVmaW5lZCAoX19zdHViX190YW5oZikgfHwgZGVmaW5lZCAoX19zdHViX19fX3Rh
bmhmKQpjaG9rZSBtZQojZWxzZQpfdGFuaGYoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZp
Z3VyZTozMTg1OiBjaGVja2luZyBmb3IgX3N0cnRvZgpjb25maWd1cmU6MzIxMzogL3RtcC9lZ2Nz
LWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9j
YWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBj
b25mdGVzdC5jICAtbG0gMT4mNQovdG1wL2NjOFlxdWlJLm86IEluIGZ1bmN0aW9uIGBtYWluJzoK
L3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9j
b25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3N0cnRvZicKL3RtcC9lZ2Nz
LWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6
MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3N0cnRvZicKY29sbGVjdDI6IGxkIHJldHVy
bmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDMx
OTAgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8g
ZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdo
aWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgX3N0cnRvZigpOyBiZWxvdy4gICovCiNpbmNsdWRl
IDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2
b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2gg
dGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1l
bnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBfc3RydG9mKCk7CgppbnQg
bWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25z
IHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29t
ZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0
aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9f
c3R1Yl9fc3RydG9mKSB8fCBkZWZpbmVkIChfX3N0dWJfX19fc3RydG9mKQpjaG9rZSBtZQojZWxz
ZQpfc3RydG9mKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzE4NTogY2hlY2tp
bmcgZm9yIF9zdHJ0b2xkCmNvbmZpZ3VyZTozMjEzOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2Mg
LUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtu
b3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAx
PiY1Ci90bXAvY2M2SW5xRmsubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQv
YWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfc3RydG9sZCcKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1
LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVk
IHJlZmVyZW5jZSB0byBgX3N0cnRvbGQnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3Rh
dHVzCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJjb25maWd1cmUi
CiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIg
bWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxp
Y3Qgd2l0aCBjaGFyIF9zdHJ0b2xkKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgov
KiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu
ICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5
cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg
d291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF9zdHJ0b2xkKCk7CgppbnQgbWFpbigpIHsKCi8q
IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt
cGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMg
YXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhl
IG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9fc3RydG9s
ZCkgfHwgZGVmaW5lZCAoX19zdHViX19fX3N0cnRvbGQpCmNob2tlIG1lCiNlbHNlCl9zdHJ0b2xk
KCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzE4NTogY2hlY2tpbmcgZm9yIF9m
YWJzZgpjb25maWd1cmU6MzIxMzogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2Nz
LWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1n
bnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQovdG1wL2Nj
Y1BuYWtYLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVu
a25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgX2ZhYnNmJwovdG1wL2VnY3MtYnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51
eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv
IGBfZmFic2YnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTog
ZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25m
ZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3Bl
ZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF9m
YWJzZigpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdj
YzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNo
YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAg
YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5
LiAgKi8KY2hhciBfZmFic2YoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkg
ZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3
YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQK
ICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4g
YWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX19mYWJzZikgfHwgZGVmaW5lZCAoX19zdHVi
X19fX2ZhYnNmKQpjaG9rZSBtZQojZWxzZQpfZmFic2YoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9
CmNvbmZpZ3VyZTozMTg1OiBjaGVja2luZyBmb3IgX3NpbmNvcwpjb25maWd1cmU6MzIxMzogL3Rt
cC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJl
cnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAt
TzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQovdG1wL2Nja1VrcXp6Lm86IEluIGZ1bmN0aW9uIGBt
YWluJzoKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMr
Ky12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3NpbmNvcycKL3Rt
cC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25m
aWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3NpbmNvcycKY29sbGVjdDI6IGxk
IHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNs
aW5lIDMxOTAgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFk
ZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywK
ICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgX3NpbmNvcygpOyBiZWxvdy4gICovCiNp
bmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBl
IHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg
bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg
YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBfc2luY29zKCk7
CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVu
Y3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lT
LiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRp
bmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmlu
ZWQgKF9fc3R1Yl9fc2luY29zKSB8fCBkZWZpbmVkIChfX3N0dWJfX19fc2luY29zKQpjaG9rZSBt
ZQojZWxzZQpfc2luY29zKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzE4NTog
Y2hlY2tpbmcgZm9yIF9zaW5jb3NmCmNvbmZpZ3VyZTozMjEzOiAvdG1wL2VnY3MtYnVpbGQvZ2Nj
L3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2
NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMg
IC1sbSAxPiY1Ci90bXAvY2NtYU5aaWMubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3Mt
YnVpbGQvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZToz
MjA3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfc2luY29zZicKL3RtcC9lZ2NzLWJ1aWxkL2Fs
cGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5k
ZWZpbmVkIHJlZmVyZW5jZSB0byBgX3NpbmNvc2YnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4
aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJjb25m
aWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBf
X3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4g
Y29uZmxpY3Qgd2l0aCBjaGFyIF9zaW5jb3NmKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2Vy
dC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4g
ZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0
dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90
b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF9zaW5jb3NmKCk7CgppbnQgbWFpbigp
IHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNo
IGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j
dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBh
bmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9f
c2luY29zZikgfHwgZGVmaW5lZCAoX19zdHViX19fX3NpbmNvc2YpCmNob2tlIG1lCiNlbHNlCl9z
aW5jb3NmKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzE4NTogY2hlY2tpbmcg
Zm9yIF9zaW5jb3NsCmNvbmZpZ3VyZTozMjEzOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIv
dG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3du
LWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSAxPiY1
Ci90bXAvY2NmOE8xVGwubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL2VnY3MtYnVpbGQvYWxw
aGFldjUtdW5rbm93bi1saW51eC1nbnUvbGlic3RkYysrLXYzL2NvbmZpZ3VyZTozMjA3OiB1bmRl
ZmluZWQgcmVmZXJlbmNlIHRvIGBfc2luY29zbCcKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVu
a25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgX3NpbmNvc2wnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz
CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJjb25maWd1cmUiCiNp
bmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFj
cm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qg
d2l0aCBjaGFyIF9zaW5jb3NsKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBP
dmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAq
LwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUg
b2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291
bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIF9zaW5jb3NsKCk7CgppbnQgbWFpbigpIHsKCi8qIFRo
ZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxl
bWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJl
IGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v
cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9fc2luY29zbCkg
fHwgZGVmaW5lZCAoX19zdHViX19fX3NpbmNvc2wpCmNob2tlIG1lCiNlbHNlCl9zaW5jb3NsKCk7
CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzE4NTogY2hlY2tpbmcgZm9yIF9maW5p
dGUKY29uZmlndXJlOjMyMTM6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1i
dWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251
L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtIDE+JjUKL3RtcC9jY2RZ
b1pLWS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtu
b3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYF9maW5pdGUnCi90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4
LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g
YF9maW5pdGUnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTog
ZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzMTkwICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25m
ZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3Bl
ZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF9m
aW5pdGUoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBn
Y2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBj
aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAg
IGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBs
eS4gICovCmNoYXIgX2Zpbml0ZSgpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFy
eSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBh
bHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1l
ZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBh
biBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfX2Zpbml0ZSkgfHwgZGVmaW5lZCAoX19z
dHViX19fX2Zpbml0ZSkKY2hva2UgbWUKI2Vsc2UKX2Zpbml0ZSgpOwojZW5kaWYKCjsgcmV0dXJu
IDA7IH0KY29uZmlndXJlOjMxODU6IGNoZWNraW5nIGZvciBfZmluaXRlZgpjb25maWd1cmU6MzIx
MzogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9t
ZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVz
dCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0gMT4mNQovdG1wL2NjOWVKRXBCLm86IEluIGZ1bmN0
aW9uIGBtYWluJzoKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xp
YnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX2Zpbml0
ZWYnCi90bXAvZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKyst
djMvY29uZmlndXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9maW5pdGVmJwpjb2xs
ZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt
IHdhczoKI2xpbmUgMzE5MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lz
dGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90
b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBfZmluaXRlZigpOyBiZWxv
dy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwg
cHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBp
bnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQg
dGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBf
ZmluaXRlZigpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRo
aXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3
aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRo
aW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICov
CiNpZiBkZWZpbmVkIChfX3N0dWJfX2Zpbml0ZWYpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX19maW5p
dGVmKQpjaG9rZSBtZQojZWxzZQpfZmluaXRlZigpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29u
ZmlndXJlOjMxODU6IGNoZWNraW5nIGZvciBfcWZpbml0ZQpjb25maWd1cmU6MzIxMzogL3RtcC9l
Z2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQv
bG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIg
ICBjb25mdGVzdC5jICAtbG0gMT4mNQovdG1wL2NjUFJ1TEhkLm86IEluIGZ1bmN0aW9uIGBtYWlu
JzoKL3RtcC9lZ2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12
My9jb25maWd1cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3FmaW5pdGUnCi90bXAv
ZWdjcy1idWlsZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmln
dXJlOjMyMDc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9xZmluaXRlJwpjb2xsZWN0MjogbGQg
cmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xp
bmUgMzE5MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRl
ciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAog
ICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBfcWZpbml0ZSgpOyBiZWxvdy4gICovCiNp
bmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBl
IHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg
bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg
YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBfcWZpbml0ZSgp
OwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1
bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZ
Uy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0
aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZp
bmVkIChfX3N0dWJfX3FmaW5pdGUpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX19xZmluaXRlKQpjaG9r
ZSBtZQojZWxzZQpfcWZpbml0ZSgpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjMx
ODU6IGNoZWNraW5nIGZvciBfZnBjbGFzcwpjb25maWd1cmU6MzIxMzogL3RtcC9lZ2NzLWJ1aWxk
L2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxw
aGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVz
dC5jICAtbG0gMT4mNQovdG1wL2NjWjVweXZTLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9l
Z2NzLWJ1aWxkL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1
cmU6MzIwNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX2ZwY2xhc3MnCi90bXAvZWdjcy1idWls
ZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9mcGNsYXNzJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQg
MSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMzE5MCAi
Y29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZp
bmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2gg
Y2FuIGNvbmZsaWN0IHdpdGggY2hhciBfZnBjbGFzcygpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxh
c3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk
IGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhl
IHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg
cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBfZnBjbGFzcygpOwoKaW50IG1h
aW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3
aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUg
ZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGgg
X18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0
dWJfX2ZwY2xhc3MpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX19mcGNsYXNzKQpjaG9rZSBtZQojZWxz
ZQpfZnBjbGFzcygpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjMxODU6IGNoZWNr
aW5nIGZvciBfcWZwY2xhc3MKY29uZmlndXJlOjMyMTM6IC90bXAvZWdjcy1idWlsZC9nY2MveGdj
YyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVu
a25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxt
IDE+JjUKL3RtcC9jY2J4SGN6dy5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvZWdjcy1idWls
ZC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9saWJzdGRjKystdjMvY29uZmlndXJlOjMyMDc6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9xZnBjbGFzcycKL3RtcC9lZ2NzLWJ1aWxkL2FscGhh
ZXY1LXVua25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9jb25maWd1cmU6MzIwNzogdW5kZWZp
bmVkIHJlZmVyZW5jZSB0byBgX3FmcGNsYXNzJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0
IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMzE5MCAiY29uZmln
dXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z
dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNv
bmZsaWN0IHdpdGggY2hhciBfcWZwY2xhc3MoKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0
Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl
cnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1
cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv
dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgX3FmcGNsYXNzKCk7CgppbnQgbWFpbigp
IHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNo
IGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j
dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBh
bmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9f
cWZwY2xhc3MpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX19xZnBjbGFzcykKY2hva2UgbWUKI2Vsc2UK
X3FmcGNsYXNzKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzI0MzogY2hlY2tp
bmcgZm9yIHdjaGFyLmgKY29uZmlndXJlOjMyNTM6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAt
Qi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25v
d24tbGludXgtZ251L2Jpbi8gLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91
dApjb25maWd1cmU6MzI3MTogY2hlY2tpbmcgZm9yIG5hdGl2ZSBtYnN0YXRlX3QKY29uZmlndXJl
OjMyODA6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1C
L2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLWMgLWcg
LU8yICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjMyOTk6IGNoZWNraW5nIGZvciBXQ0hBUl9N
SU4gYW5kIFdDSEFSX01BWApjb25maWd1cmU6MzMwODogL3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2Nj
IC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxwaGFldjUtdW5r
bm93bi1saW51eC1nbnUvYmluLyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6
MzMyOTogY2hlY2tpbmcgZm9yIFdFT0YKY29uZmlndXJlOjMzNDA6IC90bXAvZWdjcy1idWlsZC9n
Y2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhh
ZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLWMgLWcgLU8yICBjb25mdGVzdC5jIDE+JjUKY29u
ZmlndXJlOjMzNTU6IGNoZWNraW5nIGZvciB3Y3NsZW4KY29uZmlndXJlOjMzODM6IC90bXAvZWdj
cy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xv
Y2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAg
Y29uZnRlc3QuYyAgMT4mNQpjb25maWd1cmU6MzM1NTogY2hlY2tpbmcgZm9yIHdtZW1jaHIKY29u
ZmlndXJlOjMzODM6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9n
Y2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8g
LW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgMT4mNQpjb25maWd1cmU6MzM1NTogY2hl
Y2tpbmcgZm9yIHdtZW1jbXAKY29uZmlndXJlOjMzODM6IC90bXAvZWdjcy1idWlsZC9nY2MveGdj
YyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVu
a25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgMT4m
NQpjb25maWd1cmU6MzM1NTogY2hlY2tpbmcgZm9yIHdtZW1jcHkKY29uZmlndXJlOjMzODM6IC90
bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxi
ZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jpbi8gLW8gY29uZnRlc3QgLWcg
LU8yICAgY29uZnRlc3QuYyAgMT4mNQpjb25maWd1cmU6MzM1NTogY2hlY2tpbmcgZm9yIHdtZW1t
b3ZlCmNvbmZpZ3VyZTozMzgzOiAvdG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3Mt
YnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdu
dS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIDE+JjUKY29uZmlndXJlOjMz
NTU6IGNoZWNraW5nIGZvciB3bWVtc2V0CmNvbmZpZ3VyZTozMzgzOiAvdG1wL2VnY3MtYnVpbGQv
Z2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2FsYmVydC9sb2NhbC9hbHBo
YWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0
LmMgIDE+JjUKY29uZmlndXJlOjM0MTI6IGNoZWNraW5nIGZvciB3aWRlIGNoYXJhY3RlciBzdXBw
b3J0CmNvbmZpZ3VyZTozNDQwOiBjaGVja2luZyBmb3IgY3R5cGUuaApjb25maWd1cmU6MzQ1MDog
L3RtcC9lZ2NzLWJ1aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9h
bGJlcnQvbG9jYWwvYWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtRSAgY29uZnRlc3Qu
YyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZTozNDcxOiBjaGVja2luZyBmb3Ig
Z251LWxpbnV4IDxjdHlwZT4KY29uZmlndXJlOjM0ODQ6IC90bXAvZWdjcy1idWlsZC9nY2MveGdj
YyAtQi90bXAvZWdjcy1idWlsZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVu
a25vd24tbGludXgtZ251L2Jpbi8gLWMgLWcgLU8yICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJl
OjM2OTA6IGNoZWNraW5nIGZvciB1bmlzdGQuaApjb25maWd1cmU6MzcwMDogL3RtcC9lZ2NzLWJ1
aWxkL2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwv
YWxwaGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxs
IDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZTozNzI5OiBjaGVja2luZyBmb3IgZ2V0cGFnZXNpemUK
Y29uZmlndXJlOjM3NTc6IC90bXAvZWdjcy1idWlsZC9nY2MveGdjYyAtQi90bXAvZWdjcy1idWls
ZC9nY2MvIC1CL2hvbWUvYWxiZXJ0L2xvY2FsL2FscGhhZXY1LXVua25vd24tbGludXgtZ251L2Jp
bi8gLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgMT4mNQpjb25maWd1cmU6Mzc4Mjog
Y2hlY2tpbmcgZm9yIHdvcmtpbmcgbW1hcApjb25maWd1cmU6MzkzMDogL3RtcC9lZ2NzLWJ1aWxk
L2djYy94Z2NjIC1CL3RtcC9lZ2NzLWJ1aWxkL2djYy8gLUIvaG9tZS9hbGJlcnQvbG9jYWwvYWxw
aGFldjUtdW5rbm93bi1saW51eC1nbnUvYmluLyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVz
dC5jICAxPiY1CmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24gYG1haW4nOgpjb25maWd1cmU6MzkwMDog
d2FybmluZzogY2FzdCBmcm9tIHBvaW50ZXIgdG8gaW50ZWdlciBvZiBkaWZmZXJlbnQgc2l6ZQpj
b25maWd1cmU6Mzk5MzogY2hlY2tpbmcgZm9yIExDX01FU1NBR0VTCmNvbmZpZ3VyZTo0MDA1OiAv
dG1wL2VnY3MtYnVpbGQvZ2NjL3hnY2MgLUIvdG1wL2VnY3MtYnVpbGQvZ2NjLyAtQi9ob21lL2Fs
YmVydC9sb2NhbC9hbHBoYWV2NS11bmtub3duLWxpbnV4LWdudS9iaW4vIC1vIGNvbmZ0ZXN0IC1n
IC1PMiAgIGNvbmZ0ZXN0LmMgIDE+JjUK
>From bkoz@cygnus.com Mon May 08 19:17:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/57: can't build last gcc snapshot on alphaev5-unknown-linux-gnu
Date: Mon, 08 May 2000 19:17:00 -0000
Message-id: <20000509021702.22985.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00006.html
Content-length: 1121

The following reply was made to PR libstdc++/57; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: albert@ravel.mpg.uni-rostock.de
Cc: libstdc++-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com,
        libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/57: can't build last gcc snapshot on alphaev5-unknown-linux-gnu
Date: Mon, 8 May 2000 18:21:17 -0700 (PDT)

 > >Synopsis:       can't build last gcc snapshot on alphaev5-unknown-linux-gnu
 > >Confidential:   no
 > >Severity:       critical
 > >Priority:       medium
 
 > Alpha 21164, RedHat Linux 5.1 (kernel 2.0.34), gcc-2.95.2
 > 2.  ../egcs-20000501/configure --prefix=/home/albert/local --enable-libstdc++-v3
 > 3.  make  bootstrap-lean
 
 this looks fine. 
 
 I just bootstrapped and ran the libstdc++-v3 testsuite on the following:
 
 alphaev6-unknown-linux-gnu
 
 Perhaps this is an ev5-specific bug, but for the compilers not the
 library. Moreover, I don't really have an ev5 machine around here anyway.
 
 You should probably submit this to gcc-bugs@gcc.gnu.org, not on the
 libstdc++ bug database.
 
 
 -benjamin
 
>From ericb@computer.org Thu May 11 22:47:00 2000
From: ericb@computer.org
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/59: compile trouble with 20000420 snapshot w/2.95.2
Date: Thu, 11 May 2000 22:47:00 -0000
Message-id: <20000512054246.25071.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00007.html
Content-length: 6735

>Number:         59
>Category:       libstdc++
>Synopsis:       compile trouble with 20000420 snapshot w/2.95.2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu May 11 22:47:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     ericb@computer.org
>Release:        20000420
>Organization:
>Environment:
i686-linux-gnu (RH 6.2)
>Description:
A full build of gcc 2.95.2 with the latest snapshot of libstdc++
swapped in for the one shipped with gcc fails to compile. I have
no trouble compiling 2.90.8, it's 20000420 which fails at the link
phase in stage 2:

stringCTORDUPAL.lo: In function `messages_base type_info function':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: multiple definition of `basic_string<char, char_traits<char>, allocator<char> >::basic_string(unsigned int, char, allocator<char> const &)'
stringCTORNC.lo:/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: first defined here
stringREPIIPP2.lo: In function `messages_base type_info function':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: multiple definition of `basic_string<char, char_traits<char>, allocator<char> > & basic_string<char, char_traits<char>, allocator<char> >::_M_replace<char *>(__normal_iterator<char *, basic_string<char, char_traits<char>, allocator<char> > >, __normal_iterator<char *, basic_string<char, char_traits<char>, allocator<char> > >, char *, char *, forward_iterator_tag)'
stringREPIIPP.lo:/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: first defined here
stringCONPPF2.lo: In function `messages_base type_info function':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: multiple definition of `char * basic_string<char, char_traits<char>, allocator<char> >::_S_construct<char *>(char *, char *, allocator<char> const &, forward_iterator_tag)'
stringCONPPF.lo:/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: first defined here
stringCOMPARE2.lo: In function `messages_base type_info function':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: multiple definition of `basic_string<char, char_traits<char>, allocator<char> >::compare(unsigned int, unsigned int, basic_string<char, char_trait
<char>, allocator<char> > const &) const'
stringCOMPARE.lo:/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: first defined here
stringCOMPAREP2.lo: In function `basic_string<char, char_traits<char>, allocator<char> >::compare(char const *) const':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc(.text+0x0): multiple definition of `basic_string<char, char_traits<char>, allocator<char> >::compare(char const *) const'
stringCOMPAREP.lo(.text+0x0):/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc: first defined here
wstringCTORDUPAL.lo: In function `messages_base type_info function':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: multiple definition of `basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >::basic_string(unsigned int, wchar_t, allocator<wchar_t> const &)'
wstringCTORNC.lo:/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: first defined here
wstringREPIIPP2.lo: In function `messages_base type_info function':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: multiple definition of `basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > & basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >::_M_replace<wchar_t *>(__normal_iterator<wchar_t *, basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > >, __normal_iterator<wchar_t *, basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > >, wchar_t *, wchar_t *, forward_iterator_tag)'
wstringREPIIPP.lo:/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: first defined here
wstringCONPPF2.lo: In function `messages_base type_info function':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: multiple definition of `wchar_t * basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >::_S_construct<wchar_t *>(wchar_t *, wchar_t *, allocator<wchar_t> const &, forward_iterator_tag)'
wstringCONPPF.lo:/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: first defined here
wstringCOMPARE2.lo: In function `messages_base type_info function':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: multiple definition of `basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >::compare(unsigned int, unsigned int, basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > const &) const'
wstringCOMPARE.lo:/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc:54: first defined here
wstringCOMPAREP2.lo: In function `basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >::compare(wchar_t const *) const':
/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc(.text+0x0): multiple definition of `basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >::compare(wchar_t const *) const'
wstringCOMPAREP.lo(.text+0x0):/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src/../../../../gcc-2.95.2/libstdc++/bits/string.tcc: first defined here
collect2: ld returned 1 exit status
make[4]: *** [libstdc++.la] Error 1
make[4]: Leaving directory `/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++'
make[2]: *** [all-recursive-am] Error 2
make[2]: Leaving directory `/home/ericb/tmp/gcc-bin/i686-pc-linux-gnu/libstdc++'
make[1]: *** [all-target-libstdc++] Error 2
make[1]: Leaving directory `/home/ericb/tmp/gcc-bin'
make: *** [bootstrap] Error 2


>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From niltsiar@neo.rr.com Mon May 15 20:07:00 2000
From: niltsiar@neo.rr.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/60: undefined references when linking a simple program
Date: Mon, 15 May 2000 20:07:00 -0000
Message-id: <20000516030000.14484.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00008.html
Content-length: 2882

>Number:         60
>Category:       libstdc++
>Synopsis:       undefined references when linking a simple program
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 15 20:07:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     niltsiar@neo.rr.com
>Release:        5/15/2000 snapshot
>Organization:
>Environment:
linux 2.2.15
gcc 2.95.2
libstdc++-v3 5/15/2000
>Description:
Using gcc 2.95.2 with the current cvs snapshot of libstdc-v3
(from the gcc CVS tree), when trying to compile a simple program(statically), I get the
following error messages:

:~/tmp$ c++ -static -g -Wall -o link link.cc 
/usr/lib/libstdc++.a(locale.o): In function `collate<wchar_t> type_info function':
/home/tsiar/src/cygnus/gcc/build/i686-pc-linux-gnu/libstdc++/src/../../../../libstdc++/src/locale.cc(.text+0x48): undefined reference to `__ne__H3ZPPQ26locale5facetZPPQ26locale5facetZt6vector2ZPQ26locale5facetZt9allocator1ZPQ26locale5facet_RCt17__normal_iterator2ZX01ZX21RCt17__normal_iterator2ZX11ZX21_b'
/usr/lib/libstdc++.a(locale.o): In function `locale::_Impl::_Impl(locale::_Impl const &, unsigned int)':
/home/tsiar/src/cygnus/gcc/build/i686-pc-linux-gnu/libstdc++/src/../../../../libstdc++/src/locale.cc:87: undefined reference to `__ne__H3ZPPQ26locale5facetZPPQ26locale5facetZt6vector2ZPQ26locale5facetZt9allocator1ZPQ26locale5facet_RCt17__normal_iterator2ZX01ZX21RCt17__normal_iterator2ZX11ZX21_b'
/usr/lib/libstdc++.a(localename.o): In function `locale::_Impl::_Impl(locale::_Impl const &, basic_string<char, char_traits<char>, allocator<char> > const &, int, unsigned int)':
/home/tsiar/src/cygnus/gcc/build/i686-pc-linux-gnu/libstdc++/src/../../../../libstdc++/src/localename.cc:85: undefined reference to `__ne__H3ZPPQ26locale5facetZPPQ26locale5facetZt6vector2ZPQ26locale5facetZt9allocator1ZPQ26locale5facet_RCt17__normal_iterator2ZX01ZX21RCt17__normal_iterator2ZX11ZX21_b'
/home/tsiar/src/cygnus/gcc/build/i686-pc-linux-gnu/libstdc++/src/../../../../libstdc++/src/localename.cc:106: undefined reference to `__ne__H3ZPPQ26locale5facetZPPQ26locale5facetZt6vector2ZPQ26locale5facetZt9allocator1ZPQ26locale5facet_RCt17__normal_iterator2ZX01ZX21RCt17__normal_iterator2ZX11ZX21_b'
collect2: ld returned 1 exit status


If I attempt to compile against the
shared library, I get the following:

:~/tmp$ c++ -g -Wall -o link link.cc 
/usr/lib/libstdc++.so: undefined reference to `__ne__H3ZPPQ26locale5facetZPPQ26locale5facetZt6vector2ZPQ26locale5facetZt9allocator1ZPQ26locale5facet_RCt17__normal_iterator2ZX01ZX21RCt17__normal_iterator2ZX11ZX21_b'
collect2: ld returned 1 exit status

>How-To-Repeat:
the simple program I use is:
--
#include <iostream>
int main(int argc, char** argv)
{
return 0;
}
--
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From dmeranda@medplus.com Thu May 18 08:37:00 2000
From: dmeranda@medplus.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/61: Conflicting types for nan() during installation
Date: Thu, 18 May 2000 08:37:00 -0000
Message-id: <20000518153126.11361.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00009.html
Content-length: 2088

>Number:         61
>Category:       libstdc++
>Synopsis:       Conflicting types for nan() during installation
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu May 18 08:37:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Deron Meranda
>Release:        2.90.8
>Organization:
>Environment:
HP-UX 11.0, gcc 2.95.2
>Description:
Trying to build/install libstdc++ fails under HP-UX 11.0.
During the compile of the file libstdc++/math/signbit.c,
the following error is output:

In file included from /opt2/src/gcc-2.95.2/libstdc++/math/mathconf.h:230,
                 from /opt2/src/gcc-2.95.2/libstdc++/math/signbit.c:32:
/opt2/src/gcc-2.95.2/libstdc++/math/complex-stub.h:85: conflicting types for `nan'
/opt2/src/gcc-build2/gcc/include/math.h:231: previous declaration of `nan'

The HP-UX 11.0 operating system declares the following
prototype for function nan() in /usr/include/math.h,

   extern double nan(const char*)

whereas libstdc++ 2.90.8 declares it as

   double nan(void)
>How-To-Repeat:
Install gcc 2.95.2 with libstdc++ 2.90.8 placed in the
libstdc++ subdirectory.  Using the HP-UX bundled cc
compiler.  Configured with options,

configure --prefix=/opt/gnu/gcc --with-gnu-as
--with-as=/opt/gnu/bin/gas --enable-haifa
--enable-threads=posix --enable-namespaces
--enable-languages=c,c++,java
hppa1.0-hp-hpux11.00
>Fix:
Changing the following files seems to appease the
compiler, but I'm not sure what the real solution
should be or what matches the language standard...

libstdc++-2.90.8/math/complex-stub.h
libstdc++-2.90.8/math/mathconf.h
libstdc++-2.90.8/math/nan.c

I modified the nan() function to take a const char*
argument to make it match the HP-UX declaration.
The macro NAN was defined to be (nan("")).  And the
nan() function was rewritten as,

double
nan (const char *n)
{
   if (n==NULL || ! n[0])
      return strtod ("nan", NULL);
   else
      return strtod (n, NULL);
}
>Release-Note:
>Audit-Trail:
>Unformatted:
>From bkoz@cygnus.com Thu May 18 10:17:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/61: Conflicting types for nan() during installation
Date: Thu, 18 May 2000 10:17:00 -0000
Message-id: <20000518171701.25002.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00010.html
Content-length: 3504

The following reply was made to PR libstdc++/61; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: dmeranda@medplus.com
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/61: Conflicting types for nan() during installation
Date: Thu, 18 May 2000 10:07:51 -0700 (PDT)

 i just did work on CVS libstdc++ specifically for HPUX11.
 
 2000-05-10  Benjamin Kosnik  <bkoz@redhat.com>
 
         * bits/std_cmath.h: Tweaks.
         * math/mathconf.h: Tweaks and fixes for HP-UX 11.
         (sqrtf): Define away iff !builtin and !in <math.h>. 
         (sinf): Same.
         (cosf): Same.
         (fabsf): Same.
         At some point this directory should be converted to c++, the
         autoconf tests should be run by the c++ compiler (not c), and
         <cmath> should be used instead of math.h.
         Move declaration of nan() here.
         * math/complex-stub.h (cabsl): Remove nan() declaration.
 
  
 You'll need to use CVS libstdc++. 
 
 FYI HPUX11 support is still "not there" due to problems with weak linking 
 and the native ld. I'll post to the list when I've got things working.
 
 -benjamin
 
 On 18 May 2000 dmeranda@medplus.com wrote:
 
 > 
 > >Number:         61
 > >Category:       libstdc++
 > >Synopsis:       Conflicting types for nan() during installation
 > >Confidential:   no
 > >Severity:       serious
 > >Priority:       high
 > >Responsible:    unassigned
 > >State:          open
 > >Class:          sw-bug
 > >Submitter-Id:   net
 > >Arrival-Date:   Thu May 18 08:37:00 PDT 2000
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     Deron Meranda
 > >Release:        2.90.8
 > >Organization:
 > >Environment:
 > HP-UX 11.0, gcc 2.95.2
 > >Description:
 > Trying to build/install libstdc++ fails under HP-UX 11.0.
 > During the compile of the file libstdc++/math/signbit.c,
 > the following error is output:
 > 
 > In file included from /opt2/src/gcc-2.95.2/libstdc++/math/mathconf.h:230,
 >                  from /opt2/src/gcc-2.95.2/libstdc++/math/signbit.c:32:
 > /opt2/src/gcc-2.95.2/libstdc++/math/complex-stub.h:85: conflicting types for `nan'
 > /opt2/src/gcc-build2/gcc/include/math.h:231: previous declaration of `nan'
 > 
 > The HP-UX 11.0 operating system declares the following
 > prototype for function nan() in /usr/include/math.h,
 > 
 >    extern double nan(const char*)
 > 
 > whereas libstdc++ 2.90.8 declares it as
 > 
 >    double nan(void)
 > >How-To-Repeat:
 > Install gcc 2.95.2 with libstdc++ 2.90.8 placed in the
 > libstdc++ subdirectory.  Using the HP-UX bundled cc
 > compiler.  Configured with options,
 > 
 > configure --prefix=/opt/gnu/gcc --with-gnu-as
 > --with-as=/opt/gnu/bin/gas --enable-haifa
 > --enable-threads=posix --enable-namespaces
 > --enable-languages=c,c++,java
 > hppa1.0-hp-hpux11.00
 > >Fix:
 > Changing the following files seems to appease the
 > compiler, but I'm not sure what the real solution
 > should be or what matches the language standard...
 > 
 > libstdc++-2.90.8/math/complex-stub.h
 > libstdc++-2.90.8/math/mathconf.h
 > libstdc++-2.90.8/math/nan.c
 > 
 > I modified the nan() function to take a const char*
 > argument to make it match the HP-UX declaration.
 > The macro NAN was defined to be (nan("")).  And the
 > nan() function was rewritten as,
 > 
 > double
 > nan (const char *n)
 > {
 >    if (n==NULL || ! n[0])
 >       return strtod ("nan", NULL);
 >    else
 >       return strtod (n, NULL);
 > }
 > >Release-Note:
 > >Audit-Trail:
 > >Unformatted:
 > 
>From pbd@op.net Tue May 30 10:17:00 2000
From: pbd@op.net
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/62: stl_rope.h has many mis-ordered initializers
Date: Tue, 30 May 2000 10:17:00 -0000
Message-id: <20000530171644.18002.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00011.html
Content-length: 6973

>Number:         62
>Category:       libstdc++
>Synopsis:       stl_rope.h has many mis-ordered initializers
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 30 10:17:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Paul Barton-Davis <pbd@op.net>
>Release:        unknown-1.0
>Organization:
>Environment:
irrelevant
>Description:
stl_rope.h is full of mis-ordered initializers. 
I include a patch as a "file attachment"
that fixes all of the mis-orderings
that I have come across to date.

BTW, the prescence of these problems suggests to me that
the libstdc++ developers do not compile with -Wall. 
It would be a good idea, I think.
>How-To-Repeat:
Run gcc with -Wall on a file that includes stl_rope.h
>Fix:
apply the patch enclosed.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="stl_patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="stl_patch"

LS0tIHN0bF9yb3BlLmgJV2VkIFNlcCAgMiAxMzoyNTowNSAxOTk4CisrKyAvdXNyL2xvY2FsL2lu
Y2x1ZGUvZysrLTMvc3RsX3JvcGUuaAlUdWUgTWF5IDMwIDEyOjA3OjI0IDIwMDAKQEAgLTM4Niw4
ICszODYsOSBAQAogICAgIHR5cGVkZWYgX1JvcGVfcmVwX2Jhc2U8X0NoYXJULF9BbGxvYz46OmFs
bG9jYXRvcl90eXBlIGFsbG9jYXRvcl90eXBlOwogICAgIF9Sb3BlX1JvcGVSZXAoX1RhZyBfX3Qs
IGludCBfX2QsIGJvb2wgX19iLCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAgICAgICAgYWxs
b2NhdG9yX3R5cGUgX19hKQotICAgICAgICA6IF9NX3RhZyhfX3QpLCBfTV9kZXB0aChfX2QpLCBf
TV9pc19iYWxhbmNlZChfX2IpLCBfTV9jX3N0cmluZygwKSwKLSAgICAgICAgICBfUm9wZV9yZXBf
YmFzZTxfQ2hhclQsX0FsbG9jPihfX3NpemUsIF9fYSkKKyAgICAgICAgOiBfUm9wZV9yZXBfYmFz
ZTxfQ2hhclQsX0FsbG9jPihfX3NpemUsIF9fYSksCisJICBfTV90YWcoX190KSwgX01faXNfYmFs
YW5jZWQoX19iKSwgX01fZGVwdGgoX19kKSwgX01fY19zdHJpbmcoMCkKKyAgICAgICAgICAKICAg
ICB7CiAjICAgICAgIGlmbmRlZiBfX0dDCiAgICAgICAgICAgICBfTV9yZWZjb3VudCA9IDE7CkBA
IC01NjIsOCArNTYzLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZG9l
c24ndCBtYXR0ZXIuICAgICAgICAgICAgICAgKi8KICAgICB0eXBlZGVmIF9Sb3BlX3JlcF9iYXNl
PF9DaGFyVCxfQWxsb2M+OjphbGxvY2F0b3JfdHlwZSBhbGxvY2F0b3JfdHlwZTsKICAgICBfUm9w
ZV9Sb3BlTGVhZihfX0dDX0NPTlNUIF9DaGFyVCogX19kLCBzaXplX3QgX19zaXplLCBhbGxvY2F0
b3JfdHlwZSBfX2EpCi0gICAgICAgIDogX01fZGF0YShfX2QpCi0gICAgICAgICwgX1JvcGVfUm9w
ZVJlcDxfQ2hhclQsX0FsbG9jPihfU19sZWFmLCAwLCB0cnVlLCBfX3NpemUsIF9fYSkKKyAgICAg
ICAgOiBfUm9wZV9Sb3BlUmVwPF9DaGFyVCxfQWxsb2M+KF9TX2xlYWYsIDAsIHRydWUsIF9fc2l6
ZSwgX19hKSwKKwkgIF9NX2RhdGEoX19kKQogICAgICAgICB7CiAgICAgICAgIF9fc3RsX2Fzc2Vy
dChfX3NpemUgPiAwKTsKICAgICAgICAgaWYgKF9TX2lzX2Jhc2ljX2NoYXJfdHlwZSgoX0NoYXJU
ICopMCkpIHsKQEAgLTU5MywxMCArNTk0LDEwIEBACiAgICAgX1JvcGVfUm9wZUNvbmNhdGVuYXRp
b24oX1JvcGVfUm9wZVJlcDxfQ2hhclQsX0FsbG9jPiogX19sLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfUm9wZV9Sb3BlUmVwPF9DaGFyVCxfQWxsb2M+KiBfX3IsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl90eXBlIF9fYSkKLSAgICAgIDogX01fbGVmdChf
X2wpLCBfTV9yaWdodChfX3IpCi0gICAgICAsIF9Sb3BlX1JvcGVSZXA8X0NoYXJULF9BbGxvYz4o
CisgICAgICA6IF9Sb3BlX1JvcGVSZXA8X0NoYXJULF9BbGxvYz4oCiAgICAgICAgICAgX1NfY29u
Y2F0LCBtYXgoX19sLT5fTV9kZXB0aCwgX19yLT5fTV9kZXB0aCkgKyAxLCBmYWxzZSwKLSAgICAg
ICAgICBfX2wtPl9NX3NpemUgKyBfX3ItPl9NX3NpemUsIF9fYSkKKyAgICAgICAgICBfX2wtPl9N
X3NpemUgKyBfX3ItPl9NX3NpemUsIF9fYSksCisgICAgICAgICBfTV9sZWZ0KF9fbCksIF9NX3Jp
Z2h0KF9fcikKICAgICAgIHt9CiAjIGlmbmRlZiBfX0dDCiAgICAgfl9Sb3BlX1JvcGVDb25jYXRl
bmF0aW9uKCkgewpAQCAtNjI5LDExICs2MzAsMTIgQEAKICAgICB0eXBlZGVmIF9Sb3BlX3JlcF9i
YXNlPF9DaGFyVCxfQWxsb2M+OjphbGxvY2F0b3JfdHlwZSBhbGxvY2F0b3JfdHlwZTsKICAgICBf
Um9wZV9Sb3BlRnVuY3Rpb24oY2hhcl9wcm9kdWNlcjxfQ2hhclQ+KiBfX2YsIHNpemVfdCBfX3Np
emUsCiAgICAgICAgICAgICAgICAgICAgICAgICBib29sIF9fZCwgYWxsb2NhdG9yX3R5cGUgX19h
KQotICAgICAgOiBfTV9mbihfX2YpCisgICAgICA6IF9Sb3BlX1JvcGVSZXA8X0NoYXJULF9BbGxv
Yz4oX1NfZnVuY3Rpb24sIDAsIHRydWUsIF9fc2l6ZSwgX19hKSwKKwlfTV9mbihfX2YpCiAjICAg
ICAgIGlmbmRlZiBfX0dDCiAgICAgICAsIF9NX2RlbGV0ZV93aGVuX2RvbmUoX19kKQogIyAgICAg
ICBlbmRpZgotICAgICAgLCBfUm9wZV9Sb3BlUmVwPF9DaGFyVCxfQWxsb2M+KF9TX2Z1bmN0aW9u
LCAwLCB0cnVlLCBfX3NpemUsIF9fYSkgeworICAgIHsgICAgCiAgICAgICAgIF9fc3RsX2Fzc2Vy
dChfX3NpemUgPiAwKTsKICMgICAgICAgaWZkZWYgX19HQwogICAgICAgICAgICAgaWYgKF9fZCkg
ewpAQCAtNjkzLDkgKzY5NSw5IEBACiAgICAgdHlwZWRlZiBfUm9wZV9yZXBfYmFzZTxfQ2hhclQs
X0FsbG9jPjo6YWxsb2NhdG9yX3R5cGUgYWxsb2NhdG9yX3R5cGU7CiAgICAgX1JvcGVfUm9wZVN1
YnN0cmluZyhfUm9wZV9Sb3BlUmVwPF9DaGFyVCxfQWxsb2M+KiBfX2IsIHNpemVfdCBfX3MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2wsIGFsbG9jYXRvcl90eXBlIF9fYSkK
LSAgICAgIDogX01fYmFzZShfX2IpCisgICAgICA6IF9Sb3BlX1JvcGVGdW5jdGlvbjxfQ2hhclQs
X0FsbG9jPih0aGlzLCBfX2wsIGZhbHNlLCBfX2EpIAorICAgICAgLAlfTV9iYXNlKF9fYikKICAg
ICAgICwgX01fc3RhcnQoX19zKQotICAgICAgLCBfUm9wZV9Sb3BlRnVuY3Rpb248X0NoYXJULF9B
bGxvYz4odGhpcywgX19sLCBmYWxzZSwgX19hKSAKICAgICB7CiAgICAgICAgIF9fc3RsX2Fzc2Vy
dChfX2wgPiAwKTsKICAgICAgICAgX19zdGxfYXNzZXJ0KF9fcyArIF9fbCA8PSBfX2ItPl9NX3Np
emUpOwpAQCAtNzY2LDE2ICs3NjgsMTYgQEAKICAgICBfTXlfcm9wZSogX01fcm9vdDsgICAgIC8v
IFRoZSB3aG9sZSByb3BlLgogICBwdWJsaWM6CiAgICAgX1JvcGVfY2hhcl9yZWZfcHJveHkoX015
X3JvcGUqIF9fciwgc2l6ZV90IF9fcCkgOgotICAgICAgICBfTV9wb3MoX19wKSwgX01fcm9vdChf
X3IpLCBfTV9jdXJyZW50X3ZhbGlkKGZhbHNlKSB7fQorICAgICAgICBfTV9wb3MoX19wKSwgX01f
Y3VycmVudF92YWxpZChmYWxzZSksIF9NX3Jvb3QoX19yKSB7fQogICAgIF9Sb3BlX2NoYXJfcmVm
X3Byb3h5KGNvbnN0IF9Sb3BlX2NoYXJfcmVmX3Byb3h5JiBfX3gpIDoKLSAgICAgICAgX01fcG9z
KF9feC5fTV9wb3MpLCBfTV9yb290KF9feC5fTV9yb290KSwgX01fY3VycmVudF92YWxpZChmYWxz
ZSkge30KKyAgICAgICAgX01fcG9zKF9feC5fTV9wb3MpLCAgX01fY3VycmVudF92YWxpZChmYWxz
ZSksIF9NX3Jvb3QoX194Ll9NX3Jvb3QpIHt9CiAgICAgICAgIC8vIERvbid0IHByZXNlcnZlIGNh
Y2hlIGlmIHRoZSByZWZlcmVuY2UgY2FuIG91dGxpdmUgdGhlCiAgICAgICAgIC8vIGV4cHJlc3Np
b24uICBXZSBjbGFpbSB0aGF0J3Mgbm90IHBvc3NpYmxlIHdpdGhvdXQgY2FsbGluZwogICAgICAg
ICAvLyBhIGNvcHkgY29uc3RydWN0b3Igb3IgZ2VuZXJhdGluZyByZWZlcmVuY2UgdG8gYSBwcm94
eQogICAgICAgICAvLyByZWZlcmVuY2UuICBXZSBkZWNsYXJlIHRoZSBsYXR0ZXIgdG8gaGF2ZSB1
bmRlZmluZWQgc2VtYW50aWNzLgogICAgIF9Sb3BlX2NoYXJfcmVmX3Byb3h5KF9NeV9yb3BlKiBf
X3IsIHNpemVfdCBfX3AsCiAgICAgICAgICAgICAgICAgICAgIF9DaGFyVCBfX2MpIDoKLSAgICAg
ICAgX01fcG9zKF9fcCksIF9NX3Jvb3QoX19yKSwgX01fY3VycmVudChfX2MpLCBfTV9jdXJyZW50
X3ZhbGlkKHRydWUpIHt9CisgICAgICAgIF9NX3BvcyhfX3ApLCBfTV9jdXJyZW50KF9fYyksIF9N
X2N1cnJlbnRfdmFsaWQodHJ1ZSksIF9NX3Jvb3QoX19yKSB7fQogICAgIGlubGluZSBvcGVyYXRv
ciBfQ2hhclQgKCkgY29uc3Q7CiAgICAgX1JvcGVfY2hhcl9yZWZfcHJveHkmIG9wZXJhdG9yPSAo
X0NoYXJUIF9fYyk7CiAgICAgX1JvcGVfY2hhcl9wdHJfcHJveHk8X0NoYXJULF9BbGxvYz4gb3Bl
cmF0b3ImICgpIGNvbnN0OwpAQCAtOTA4LDcgKzkxMCw3IEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gY2FjaGUgaXMgdmFsaWQgZm9yIHByZXZpb3VzIHBvc24u
CiAgICAgX1JvcGVfaXRlcmF0b3JfYmFzZSgpIHt9CiAgICAgX1JvcGVfaXRlcmF0b3JfYmFzZShf
Um9wZVJlcCogX19yb290LCBzaXplX3QgX19wb3MpCi0gICAgICA6IF9NX3Jvb3QoX19yb290KSwg
X01fY3VycmVudF9wb3MoX19wb3MpLCBfTV9idWZfcHRyKDApIHt9CisgICAgICA6IF9NX2N1cnJl
bnRfcG9zKF9fcG9zKSwgX01fcm9vdChfX3Jvb3QpLCBfTV9idWZfcHRyKDApIHt9CiAgICAgdm9p
ZCBfTV9pbmNyKHNpemVfdCBfX24pOwogICAgIHZvaWQgX01fZGVjcihzaXplX3QgX19uKTsKICAg
cHVibGljOgo=
>From jdao@dtinetworks.com Wed Jun 14 10:27:00 2000
From: jdao@dtinetworks.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/63: missing "install.sh" or "install-sh" in libstdc++-2.90.8.tar.gz
Date: Wed, 14 Jun 2000 10:27:00 -0000
Message-id: <20000614172136.3547.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00012.html
Content-length: 769

>Number:         63
>Category:       libstdc++
>Synopsis:       missing "install.sh" or "install-sh" in libstdc++-2.90.8.tar.gz
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jun 14 10:27:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Jack Dao
>Release:        libstdc++-2.90.8
>Organization:
>Environment:
Solaris-7 with GCC-2.95.2
>Description:
tsp3dev:root:/tmp/bld-libstdc++/> /tmp/libstdc++-2.90.8/configure --prefix=/usr/local/lib
loading cache ./config.cache
configure: error: can not find install-sh or install.sh in .. /tmp/libstdc++-2.90.8/..
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From bkoz@cygnus.com Wed Jun 14 10:57:00 2000
From: Benjamin Kosnik <bkoz@cygnus.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/63: missing "install.sh" or "install-sh" inlibstdc++-2.90.8.tar.gz
Date: Wed, 14 Jun 2000 10:57:00 -0000
Message-id: <20000614175701.17414.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00013.html
Content-length: 1387

The following reply was made to PR libstdc++/63; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@cygnus.com>
To: jdao@dtinetworks.com
Cc: libstdc++-gnats@sourceware.cygnus.com, libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/63: missing "install.sh" or "install-sh" in
 libstdc++-2.90.8.tar.gz
Date: Wed, 14 Jun 2000 10:47:49 -0700 (PDT)

 please read the install/configure pages. They are listed under the
 documentation part of the libstdc++ website.
 
 On 14 Jun 2000 jdao@dtinetworks.com wrote:
 
 > 
 > >Number:         63
 > >Category:       libstdc++
 > >Synopsis:       missing "install.sh" or "install-sh" in libstdc++-2.90.8.tar.gz
 > >Confidential:   no
 > >Severity:       critical
 > >Priority:       high
 > >Responsible:    unassigned
 > >State:          open
 > >Class:          sw-bug
 > >Submitter-Id:   net
 > >Arrival-Date:   Wed Jun 14 10:27:00 PDT 2000
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     Jack Dao
 > >Release:        libstdc++-2.90.8
 > >Organization:
 > >Environment:
 > Solaris-7 with GCC-2.95.2
 > >Description:
 > tsp3dev:root:/tmp/bld-libstdc++/> /tmp/libstdc++-2.90.8/configure --prefix=/usr/local/lib
 > loading cache ./config.cache
 > configure: error: can not find install-sh or install.sh in .. /tmp/libstdc++-2.90.8/..
 > >How-To-Repeat:
 > 
 > >Fix:
 > 
 > >Release-Note:
 > >Audit-Trail:
 > >Unformatted:
 > 
 
>From yxu@platform.com Tue Jun 20 13:27:00 2000
From: yxu@platform.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/64: CreateFile call failed with Error # 80 on Win2K;
Date: Tue, 20 Jun 2000 13:27:00 -0000
Message-id: <20000620202046.4747.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00014.html
Content-length: 908

>Number:         64
>Category:       libstdc++
>Synopsis:       CreateFile call failed with Error # 80 on Win2K;
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Tue Jun 20 13:27:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     yxu@platform.com
>Release:        6.1
>Organization:
>Environment:
WINNT4.0 as PDC, WIN2K Server without AD, and samba/RH6.1
>Description:
I tried to run a testing problem to create a file on the samba shared from the a WIN2K machine.

>From the log.<usre> file, I found the lib/utile.c:unix_clean_name(609) unix_clean_name[].  Then
smbd/open.c:open_file(508) Error opening file . (File exists) (flags=194)

And the WIN2K side is using UNC path \\<host>\path\..\filename.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From bkoz@redhat.com Fri Jun 23 11:07:00 2000
From: Benjamin Kosnik <bkoz@redhat.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/64: CreateFile call failed with Error # 80 on Win2K;
Date: Fri, 23 Jun 2000 11:07:00 -0000
Message-id: <20000623180700.763.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00015.html
Content-length: 390

The following reply was made to PR libstdc++/64; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@redhat.com>
To: yxu@platform.com
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/64: CreateFile call failed with Error # 80 on Win2K;
Date: Fri, 23 Jun 2000 11:01:14 -0700 (PDT)

 and how is this a libstdc++ bug? I suggest you look for help with the 
 samba folks...
>From benoit.sibaud@rd.francetelecom.fr Wed Jun 28 03:27:00 2000
From: benoit.sibaud@rd.francetelecom.fr
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/66: Uninitialized Memory Errors (UMR) with Purify [Ascii log]
Date: Wed, 28 Jun 2000 03:27:00 -0000
Message-id: <20000628102221.9821.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00017.html
Content-length: 31815

>Number:         66
>Category:       libstdc++
>Synopsis:       Uninitialized Memory Errors (UMR) with Purify [Ascii log]
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jun 28 03:27:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     benoit.sibaud@rd.francetelecom.fr
>Release:        unknown-1.0
>Organization:
>Environment:
SunOS XXXX 5.6 Generic_105181-17 sun4u sparc SUNW,Ultra-4
Reading specs from /opt/gnu/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)
libstdc++ 2.90.8 (full recompilation of gcc)
purify-4.5.1-solaris2

>Description:
I've got many UMR with Purify. I suspect it's due to libstdc++ 2.90.8, so I send to you the Purify report.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="Test_equDebugPure.plog"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Test_equDebugPure.plog"

KioqKiAgUHVyaWZ5IGluc3RydW1lbnRlZCAuL1Rlc3RfZXF1RGVidWdQdXJlIChwaWQgMjI2NTAg
YXQgV2VkIEp1biAyOCAxMTozMDozNSAyMDAwKQogICogUHVyaWZ5IDQuNS4xIFNvbGFyaXMgMiwg
Q29weXJpZ2h0IChDKSAxOTkyLTE5OTkgUmF0aW9uYWwgU29mdHdhcmUgQ29ycC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4gCiAgKiBGb3IgY29udGFjdCBpbmZvcm1hdGlvbiB0eXBlOiAicHVyaWZ5IC1o
ZWxwIgogICogRm9yIFRUWSBvdXRwdXQsIHVzZSB0aGUgb3B0aW9uICItd2luZG93cz1ubyIKICAq
IENvbW1hbmQtbGluZTogLi9UZXN0X2VxdURlYnVnUHVyZSAuLi8uLi8uLi9kYXRhL2VxdS9UZXN0
X2VxdV9vay50eHQgCiAgKiBPcHRpb25zIHNldHRpbmdzOiAtY2FjaGUtZGlyPS90bXAvcHVyaWZ5
IC1nKys9eWVzIC1wdXJpZnkgLWNhY2hlLWRpcj0vdG1wIFwKICAgIC1wdXJpZnktaG9tZT0vb3B0
L3B1cmlmeS9wdXJpZnktNC41LjEtc29sYXJpczIgCgoqKioqICBQdXJpZnkgaW5zdHJ1bWVudGVk
IC4vVGVzdF9lcXVEZWJ1Z1B1cmUgKHBpZCAyMjY1MCkgICoqKioKVU1SOiBVbmluaXRpYWxpemVk
IG1lbW9yeSByZWFkICgxMyB0aW1lcyk6CiAgKiBUaGlzIGlzIG9jY3VycmluZyB3aGlsZSBpbjoK
CWdldGxpbmVfX0gzWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3Ix
WmNfM3N0ZFJRMjNzdGR0MTNiYXNpY19pc3RyZWFtMlpYMDFaWDExUlEyM3N0ZHQxMmJhc2ljX3N0
cmluZzNaWDAxWlgxMVpYMjFYMDFfUlEyM3N0ZHQxM2Jhc2ljX2lzdHJlYW0yWlgwMVpYMTEgW2Jh
c2ljX3N0cmluZy5oOjY3Nl0KCWdldGxpbmVfX0gzWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNa
UTIzc3RkdDlhbGxvY2F0b3IxWmNfM3N0ZFJRMjNzdGR0MTNiYXNpY19pc3RyZWFtMlpYMDFaWDEx
UlEyM3N0ZHQxMmJhc2ljX3N0cmluZzNaWDAxWlgxMVpYMjFfUlEyM3N0ZHQxM2Jhc2ljX2lzdHJl
YW0yWlgwMVpYMTEgW2lzdHJlYW0udGNjOjExOTZdCglJbzo6SW9FcXVEcml2ZXI6OmdldChzdGQ6
OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPj4mLElvOjpJb0Jhc2VS
ZWFkZXIqKSBbSW9FcXVEcml2ZXIuY3BwOjM4XQoJSW86OklvUmVhZGVyPFRlc3RSZWNvcmQ+Ojpn
ZXQoKSBbSW9SZWFkZXIuaDo0Ml0KCXRlc3RfcmVjb3JkX19GR1EyM3N0ZHQxMmJhc2ljX3N0cmlu
ZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaYyBbVGVzdF9l
cXUuY3BwOjg1XQoJbWFpbiAgICAgICAgICAgW1Rlc3RfZXF1LmNwcDoxNDZdCiAgKiBSZWFkaW5n
IDQgYnl0ZXMgZnJvbSAweGVmZmZmNDgwIG9uIHRoZSBzdGFjay4KICAqIEFkZHJlc3MgMHhlZmZm
ZjQ4MCBpcyAgICAgIDMxNiBieXRlcyBwYXN0IHN0YXJ0IG9mIGxvY2FsIHZhcmlhYmxlICJfX2Nl
cmIiIGluIGZ1bmN0aW9uIGdldGxpbmVfX0gzWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIz
c3RkdDlhbGxvY2F0b3IxWmNfM3N0ZFJRMjNzdGR0MTNiYXNpY19pc3RyZWFtMlpYMDFaWDExUlEy
M3N0ZHQxMmJhc2ljX3N0cmluZzNaWDAxWlgxMVpYMjFYMDFfUlEyM3N0ZHQxM2Jhc2ljX2lzdHJl
YW0yWlgwMVpYMTEuCgoqKioqICBQdXJpZnkgaW5zdHJ1bWVudGVkIC4vVGVzdF9lcXVEZWJ1Z1B1
cmUgKHBpZCAyMjY1MCkgICoqKioKVU1SOiBVbmluaXRpYWxpemVkIG1lbW9yeSByZWFkICgxMiB0
aW1lcyk6CiAgKiBUaGlzIGlzIG9jY3VycmluZyB3aGlsZSBpbjoKCV9TX2NvbnN0cnVjdF9fSDFa
UTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBjWlEyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pR
MjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY19RMjNzdGR0MTJiYXNp
Y19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNY
MDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjR1EyM3N0ZDIwZm9yd2FyZF9pdGVyYXRvcl90YWdf
UGMgW3N0cmluZy50Y2M6MTI1XQoJX1NfY29uc3RydWN0X19IMVpRMjNzdGR0MTdfX25vcm1hbF9p
dGVyYXRvcjJaUGNaUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRz
MVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjX1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0
MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgwMFJDUTIzc3RkdDlhbGxv
Y2F0b3IxWmNfUGMgW2Jhc2ljX3N0cmluZy5oOjY5N10KCV9fSDFaUTIzc3RkdDE3X19ub3JtYWxf
aXRlcmF0b3IyWlBjWlEyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0
czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY19RMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3Rk
dDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNYMDBYMDBSQ1EyM3N0ZHQ5YWxs
b2NhdG9yMVpjIFtzdHJpbmcudGNjOjIxOF0KCUlvOjpJb0VxdURyaXZlcjo6Z2V0KHN0ZDo6YmFz
aWNfaWZzdHJlYW08Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+PiYsSW86OklvQmFzZVJlYWRl
ciopIFtJb0VxdURyaXZlci5jcHA6MzldCglJbzo6SW9SZWFkZXI8VGVzdFJlY29yZD46OmdldCgp
IFtJb1JlYWRlci5oOjQyXQoJdGVzdF9yZWNvcmRfX0ZHUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pj
WlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjIFtUZXN0X2VxdS5j
cHA6ODVdCiAgKiBSZWFkaW5nIDQgYnl0ZXMgZnJvbSAweGVmZmZmNDY4IG9uIHRoZSBzdGFjayAo
MSBieXRlIGF0IDB4ZWZmZmY0NjggdW5pbml0KS4KICAqIEFkZHJlc3MgMHhlZmZmZjQ2OCBpcyAg
ICAgIC00OCBieXRlcyBwYXN0IHN0YXJ0IG9mIGxvY2FsIHZhcmlhYmxlICJfVGFnIiBpbiBmdW5j
dGlvbiBfU19jb25zdHJ1Y3RfX0gxWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQY1pRMjNz
dGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxv
Y2F0b3IxWmNfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpj
WlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY19QYy4KCioq
KiogIFB1cmlmeSBpbnN0cnVtZW50ZWQgLi9UZXN0X2VxdURlYnVnUHVyZSAocGlkIDIyNjUwKSAg
KioqKgpVTVI6IFVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgKDEwIHRpbWVzKToKICAqIFRoaXMg
aXMgb2NjdXJyaW5nIHdoaWxlIGluOgoJZ2V0bGluZV9fSDNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0
czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY18zc3RkUlEyM3N0ZHQxM2Jhc2ljX2lzdHJlYW0yWlgw
MVpYMTFSUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pYMDFaWDExWlgyMVgwMV9SUTIzc3RkdDEzYmFz
aWNfaXN0cmVhbTJaWDAxWlgxMSBbYmFzaWNfc3RyaW5nLmg6Njc2XQoJSW86OklvRXF1RHJpdmVy
OjpwYXJzZUxpbmUoY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRz
PGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+PiYpIFtJb0VxdURyaXZlci5jcHA6NzddCglJbzo6
SW9FcXVEcml2ZXI6OmdldChzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RkOjpjaGFyX3RyYWl0
czxjaGFyPj4mLElvOjpJb0Jhc2VSZWFkZXIqKSBbSW9FcXVEcml2ZXIuY3BwOjQzXQoJSW86Oklv
UmVhZGVyPFRlc3RSZWNvcmQ+OjpnZXQoKSBbSW9SZWFkZXIuaDo0Ml0KCXRlc3RfcmVjb3JkX19G
R1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0
OWFsbG9jYXRvcjFaYyBbVGVzdF9lcXUuY3BwOjg1XQoJbWFpbiAgICAgICAgICAgW1Rlc3RfZXF1
LmNwcDoxNDZdCiAgKiBSZWFkaW5nIDQgYnl0ZXMgZnJvbSAweGVmZmZmMzYwIG9uIHRoZSBzdGFj
ay4KICAqIEFkZHJlc3MgMHhlZmZmZjM2MCBpcyAgICAgIDMxNiBieXRlcyBwYXN0IHN0YXJ0IG9m
IGxvY2FsIHZhcmlhYmxlICJfX2NlcmIiIGluIGZ1bmN0aW9uIGdldGxpbmVfX0gzWmNaUTIzc3Rk
dDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNfM3N0ZFJRMjNzdGR0MTNiYXNp
Y19pc3RyZWFtMlpYMDFaWDExUlEyM3N0ZHQxMmJhc2ljX3N0cmluZzNaWDAxWlgxMVpYMjFYMDFf
UlEyM3N0ZHQxM2Jhc2ljX2lzdHJlYW0yWlgwMVpYMTEuCgoqKioqICBQdXJpZnkgaW5zdHJ1bWVu
dGVkIC4vVGVzdF9lcXVEZWJ1Z1B1cmUgKHBpZCAyMjY1MCkgICoqKioKVU1SOiBVbmluaXRpYWxp
emVkIG1lbW9yeSByZWFkICgxMCB0aW1lcyk6CiAgKiBUaGlzIGlzIG9jY3VycmluZyB3aGlsZSBp
bjoKCV9TX2NvbnN0cnVjdF9fSDFaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBjWlEyM3N0
ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9j
YXRvcjFaY19RMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNa
UTIzc3RkdDlhbGxvY2F0b3IxWmNYMDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjR1EyM3N0ZDIw
Zm9yd2FyZF9pdGVyYXRvcl90YWdfUGMgW3N0cmluZy50Y2M6MTI1XQoJX1NfY29uc3RydWN0X19I
MVpRMjNzdGR0MTdfX25vcm1hbF9pdGVyYXRvcjJaUGNaUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pj
WlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjX1EyM3N0ZHQxMmJh
c2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFa
Y1gwMFgwMFJDUTIzc3RkdDlhbGxvY2F0b3IxWmNfUGMgW2Jhc2ljX3N0cmluZy5oOjY5N10KCV9f
SDFaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBjWlEyM3N0ZHQxMmJhc2ljX3N0cmluZzNa
Y1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY19RMjNzdGR0MTJi
YXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3Ix
WmNYMDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjIFtzdHJpbmcudGNjOjIxOF0KCUlvOjpJb0Vx
dURyaXZlcjo6cGFyc2VMaW5lKGNvbnN0IHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFy
X3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj4mKSBbSW9FcXVEcml2ZXIuY3BwOjgy
XQoJSW86OklvRXF1RHJpdmVyOjpnZXQoc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0ZDo6Y2hh
cl90cmFpdHM8Y2hhcj4+JixJbzo6SW9CYXNlUmVhZGVyKikgW0lvRXF1RHJpdmVyLmNwcDo0M10K
CUlvOjpJb1JlYWRlcjxUZXN0UmVjb3JkPjo6Z2V0KCkgW0lvUmVhZGVyLmg6NDJdCiAgKiBSZWFk
aW5nIDQgYnl0ZXMgZnJvbSAweGVmZmZmMmQ4IG9uIHRoZSBzdGFjayAoMSBieXRlIGF0IDB4ZWZm
ZmYyZDggdW5pbml0KS4KICAqIEFkZHJlc3MgMHhlZmZmZjJkOCBpcyAgICAgIC00OCBieXRlcyBw
YXN0IHN0YXJ0IG9mIGxvY2FsIHZhcmlhYmxlICJfVGFnIiBpbiBmdW5jdGlvbiBfU19jb25zdHJ1
Y3RfX0gxWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQY1pRMjNzdGR0MTJiYXNpY19zdHJp
bmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNfUTIzc3Rk
dDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2Nh
dG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY19QYy4KCioqKiogIFB1cmlmeSBpbnN0
cnVtZW50ZWQgLi9UZXN0X2VxdURlYnVnUHVyZSAocGlkIDIyNjUwKSAgKioqKgpVTVI6IFVuaW5p
dGlhbGl6ZWQgbWVtb3J5IHJlYWQgKDEwIHRpbWVzKToKICAqIFRoaXMgaXMgb2NjdXJyaW5nIHdo
aWxlIGluOgoJZ2V0bGluZV9fSDNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFs
bG9jYXRvcjFaY18zc3RkUlEyM3N0ZHQxM2Jhc2ljX2lzdHJlYW0yWlgwMVpYMTFSUTIzc3RkdDEy
YmFzaWNfc3RyaW5nM1pYMDFaWDExWlgyMVgwMV9SUTIzc3RkdDEzYmFzaWNfaXN0cmVhbTJaWDAx
WlgxMSBbYmFzaWNfc3RyaW5nLmg6Njc2XQoJSW86OklvRXF1RHJpdmVyOjpwYXJzZUxpbmUoY29u
c3Qgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxs
b2NhdG9yPGNoYXI+PiYpIFtJb0VxdURyaXZlci5jcHA6ODldCglJbzo6SW9FcXVEcml2ZXI6Omdl
dChzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPj4mLElvOjpJ
b0Jhc2VSZWFkZXIqKSBbSW9FcXVEcml2ZXIuY3BwOjQzXQoJSW86OklvUmVhZGVyPFRlc3RSZWNv
cmQ+OjpnZXQoKSBbSW9SZWFkZXIuaDo0Ml0KCXRlc3RfcmVjb3JkX19GR1EyM3N0ZHQxMmJhc2lj
X3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaYyBb
VGVzdF9lcXUuY3BwOjg1XQoJbWFpbiAgICAgICAgICAgW1Rlc3RfZXF1LmNwcDoxNDZdCiAgKiBS
ZWFkaW5nIDQgYnl0ZXMgZnJvbSAweGVmZmZmMzYwIG9uIHRoZSBzdGFjay4KICAqIEFkZHJlc3Mg
MHhlZmZmZjM2MCBpcyAgICAgIDMxNiBieXRlcyBwYXN0IHN0YXJ0IG9mIGxvY2FsIHZhcmlhYmxl
ICJfX2NlcmIiIGluIGZ1bmN0aW9uIGdldGxpbmVfX0gzWmNaUTIzc3RkdDExY2hhcl90cmFpdHMx
WmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNfM3N0ZFJRMjNzdGR0MTNiYXNpY19pc3RyZWFtMlpYMDFa
WDExUlEyM3N0ZHQxMmJhc2ljX3N0cmluZzNaWDAxWlgxMVpYMjFYMDFfUlEyM3N0ZHQxM2Jhc2lj
X2lzdHJlYW0yWlgwMVpYMTEuCgoqKioqICBQdXJpZnkgaW5zdHJ1bWVudGVkIC4vVGVzdF9lcXVE
ZWJ1Z1B1cmUgKHBpZCAyMjY1MCkgICoqKioKVU1SOiBVbmluaXRpYWxpemVkIG1lbW9yeSByZWFk
ICgxMCB0aW1lcyk6CiAgKiBUaGlzIGlzIG9jY3VycmluZyB3aGlsZSBpbjoKCV9TX2NvbnN0cnVj
dF9fSDFaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBjWlEyM3N0ZHQxMmJhc2ljX3N0cmlu
ZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY19RMjNzdGR0
MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0
b3IxWmNYMDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjR1EyM3N0ZDIwZm9yd2FyZF9pdGVyYXRv
cl90YWdfUGMgW3N0cmluZy50Y2M6MTI1XQoJX1NfY29uc3RydWN0X19IMVpRMjNzdGR0MTdfX25v
cm1hbF9pdGVyYXRvcjJaUGNaUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJf
dHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjX1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pR
MjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgwMFJDUTIzc3Rk
dDlhbGxvY2F0b3IxWmNfUGMgW2Jhc2ljX3N0cmluZy5oOjY5N10KCXN0ZDo6YmFzaWNfc3RyaW5n
PGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46OnN0ZDo6
YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxj
aGFyPj4oY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+
LHN0ZDo6YWxsb2NhdG9yPGNoYXI+PiYsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgW3N0cmlu
Zy50Y2M6MTg0XQoJc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+
LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pjo6c3Vic3RyKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQp
Y29uc3QgW2Jhc2ljX3N0cmluZy5oOjg0OF0KCUlvOjpJb0VxdURyaXZlcjo6cGFyc2VMaW5lKGNv
bnN0IHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFs
bG9jYXRvcjxjaGFyPj4mKSBbSW9FcXVEcml2ZXIuY3BwOjEwOF0KCUlvOjpJb0VxdURyaXZlcjo6
Z2V0KHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+PiYsSW86
OklvQmFzZVJlYWRlciopIFtJb0VxdURyaXZlci5jcHA6NDNdCiAgKiBSZWFkaW5nIDQgYnl0ZXMg
ZnJvbSAweGVmZmZmMjM4IG9uIHRoZSBzdGFjay4KICAqIEFkZHJlc3MgMHhlZmZmZjIzOCBpcyAg
ICAgIC00OCBieXRlcyBwYXN0IHN0YXJ0IG9mIGxvY2FsIHZhcmlhYmxlICJfVGFnIiBpbiBmdW5j
dGlvbiBfU19jb25zdHJ1Y3RfX0gxWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQY1pRMjNz
dGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxv
Y2F0b3IxWmNfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpj
WlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY19QYy4KCioq
KiogIFB1cmlmeSBpbnN0cnVtZW50ZWQgLi9UZXN0X2VxdURlYnVnUHVyZSAocGlkIDIyNjUwKSAg
KioqKgpVTVI6IFVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgKDQ4IHRpbWVzKToKICAqIFRoaXMg
aXMgb2NjdXJyaW5nIHdoaWxlIGluOgoJX1NfY29uc3RydWN0X19IMVpRMjNzdGR0MTdfX25vcm1h
bF9pdGVyYXRvcjJaUGNaUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJh
aXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjX1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNz
dGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgwMFJDUTIzc3RkdDlh
bGxvY2F0b3IxWmNHUTIzc3RkMjBmb3J3YXJkX2l0ZXJhdG9yX3RhZ19QYyBbc3RyaW5nLnRjYzox
MjVdCglfU19jb25zdHJ1Y3RfX0gxWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQY1pRMjNz
dGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxv
Y2F0b3IxWmNfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpj
WlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY19QYyBbYmFz
aWNfc3RyaW5nLmg6Njk3XQoJX19IMVpRMjNzdGR0MTdfX25vcm1hbF9pdGVyYXRvcjJaUGNaUTIz
c3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxs
b2NhdG9yMVpjX1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFa
Y1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgwMFJDUTIzc3RkdDlhbGxvY2F0b3IxWmMgW3N0cmlu
Zy50Y2M6MjE4XQoJSW86OklvRXF1RHJpdmVyOjpwYXJzZUxpbmUoY29uc3Qgc3RkOjpiYXNpY19z
dHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+PiYp
IFtJb0VxdURyaXZlci5jcHA6MTMzXQoJSW86OklvRXF1RHJpdmVyOjpnZXQoc3RkOjpiYXNpY19p
ZnN0cmVhbTxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4+JixJbzo6SW9CYXNlUmVhZGVyKikg
W0lvRXF1RHJpdmVyLmNwcDo0M10KCUlvOjpJb1JlYWRlcjxUZXN0UmVjb3JkPjo6Z2V0KCkgW0lv
UmVhZGVyLmg6NDJdCiAgKiBSZWFkaW5nIDQgYnl0ZXMgZnJvbSAweGVmZmZmMmQ4IG9uIHRoZSBz
dGFjayAoMSBieXRlIGF0IDB4ZWZmZmYyZDggdW5pbml0KS4KICAqIEFkZHJlc3MgMHhlZmZmZjJk
OCBpcyAgICAgIC00OCBieXRlcyBwYXN0IHN0YXJ0IG9mIGxvY2FsIHZhcmlhYmxlICJfVGFnIiBp
biBmdW5jdGlvbiBfU19jb25zdHJ1Y3RfX0gxWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQ
Y1pRMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3Rk
dDlhbGxvY2F0b3IxWmNfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJh
aXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY19Q
Yy4KCioqKiogIFB1cmlmeSBpbnN0cnVtZW50ZWQgLi9UZXN0X2VxdURlYnVnUHVyZSAocGlkIDIy
NjUwKSAgKioqKgpVTVI6IFVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgKDM4IHRpbWVzKToKICAq
IFRoaXMgaXMgb2NjdXJyaW5nIHdoaWxlIGluOgoJZ2V0bGluZV9fSDNaY1pRMjNzdGR0MTFjaGFy
X3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY18zc3RkUlEyM3N0ZHQxM2Jhc2ljX2lzdHJl
YW0yWlgwMVpYMTFSUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pYMDFaWDExWlgyMVgwMV9SUTIzc3Rk
dDEzYmFzaWNfaXN0cmVhbTJaWDAxWlgxMSBbYmFzaWNfc3RyaW5nLmg6Njc2XQoJSW86OklvRXF1
RHJpdmVyOjpwYXJzZUxpbmUoY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJf
dHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+PiYpIFtJb0VxdURyaXZlci5jcHA6MTM3
XQoJSW86OklvRXF1RHJpdmVyOjpnZXQoc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0ZDo6Y2hh
cl90cmFpdHM8Y2hhcj4+JixJbzo6SW9CYXNlUmVhZGVyKikgW0lvRXF1RHJpdmVyLmNwcDo0M10K
CUlvOjpJb1JlYWRlcjxUZXN0UmVjb3JkPjo6Z2V0KCkgW0lvUmVhZGVyLmg6NDJdCgl0ZXN0X3Jl
Y29yZF9fRkdRMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNa
UTIzc3RkdDlhbGxvY2F0b3IxWmMgW1Rlc3RfZXF1LmNwcDo4NV0KCW1haW4gICAgICAgICAgIFtU
ZXN0X2VxdS5jcHA6MTQ2XQogICogUmVhZGluZyA0IGJ5dGVzIGZyb20gMHhlZmZmZjM2MCBvbiB0
aGUgc3RhY2suCiAgKiBBZGRyZXNzIDB4ZWZmZmYzNjAgaXMgICAgICAzMTYgYnl0ZXMgcGFzdCBz
dGFydCBvZiBsb2NhbCB2YXJpYWJsZSAiX19jZXJiIiBpbiBmdW5jdGlvbiBnZXRsaW5lX19IM1pj
WlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjXzNzdGRSUTIzc3Rk
dDEzYmFzaWNfaXN0cmVhbTJaWDAxWlgxMVJRMjNzdGR0MTJiYXNpY19zdHJpbmczWlgwMVpYMTFa
WDIxWDAxX1JRMjNzdGR0MTNiYXNpY19pc3RyZWFtMlpYMDFaWDExLgoKKioqKiAgUHVyaWZ5IGlu
c3RydW1lbnRlZCAuL1Rlc3RfZXF1RGVidWdQdXJlIChwaWQgMjI2NTApICAqKioqClVNUjogVW5p
bml0aWFsaXplZCBtZW1vcnkgcmVhZCAoMzggdGltZXMpOgogICogVGhpcyBpcyBvY2N1cnJpbmcg
d2hpbGUgaW46CglfU19jb25zdHJ1Y3RfX0gxWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQ
Y1pRMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3Rk
dDlhbGxvY2F0b3IxWmNfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJh
aXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY0dR
MjNzdGQyMGZvcndhcmRfaXRlcmF0b3JfdGFnX1BjIFtzdHJpbmcudGNjOjEyNV0KCV9TX2NvbnN0
cnVjdF9fSDFaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBjWlEyM3N0ZHQxMmJhc2ljX3N0
cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY19RMjNz
dGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxv
Y2F0b3IxWmNYMDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjX1BjIFtiYXNpY19zdHJpbmcuaDo2
OTddCglzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjph
bGxvY2F0b3I8Y2hhcj4+OjpzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8
Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+KGNvbnN0IHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIs
c3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj4mLHVuc2lnbmVkIGlu
dCx1bnNpZ25lZCBpbnQpIFtzdHJpbmcudGNjOjE4NF0KCXN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIs
c3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46OnN1YnN0cih1bnNp
Z25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IFtiYXNpY19zdHJpbmcuaDo4NDhdCglJbzo6SW9F
cXVEcml2ZXI6OnBhcnNlTGluZShjb25zdCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hh
cl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+JikgW0lvRXF1RHJpdmVyLmNwcDox
MjBdCglJbzo6SW9FcXVEcml2ZXI6OmdldChzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RkOjpj
aGFyX3RyYWl0czxjaGFyPj4mLElvOjpJb0Jhc2VSZWFkZXIqKSBbSW9FcXVEcml2ZXIuY3BwOjQz
XQogICogUmVhZGluZyA0IGJ5dGVzIGZyb20gMHhlZmZmZjIzOCBvbiB0aGUgc3RhY2suCiAgKiBB
ZGRyZXNzIDB4ZWZmZmYyMzggaXMgICAgICAtNDggYnl0ZXMgcGFzdCBzdGFydCBvZiBsb2NhbCB2
YXJpYWJsZSAiX1RhZyIgaW4gZnVuY3Rpb24gX1NfY29uc3RydWN0X19IMVpRMjNzdGR0MTdfX25v
cm1hbF9pdGVyYXRvcjJaUGNaUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJf
dHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjX1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pR
MjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgwMFJDUTIzc3Rk
dDlhbGxvY2F0b3IxWmNfUGMuCgoqKioqICBQdXJpZnkgaW5zdHJ1bWVudGVkIC4vVGVzdF9lcXVE
ZWJ1Z1B1cmUgKHBpZCAyMjY1MCkgICoqKioKVU1SOiBVbmluaXRpYWxpemVkIG1lbW9yeSByZWFk
ICgzOCB0aW1lcyk6CiAgKiBUaGlzIGlzIG9jY3VycmluZyB3aGlsZSBpbjoKCV9TX2NvbnN0cnVj
dF9fSDFaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBjWlEyM3N0ZHQxMmJhc2ljX3N0cmlu
ZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY19RMjNzdGR0
MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0
b3IxWmNYMDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjR1EyM3N0ZDIwZm9yd2FyZF9pdGVyYXRv
cl90YWdfUGMgW3N0cmluZy50Y2M6MTI1XQoJX1NfY29uc3RydWN0X19IMVpRMjNzdGR0MTdfX25v
cm1hbF9pdGVyYXRvcjJaUGNaUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJf
dHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjX1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pR
MjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgwMFJDUTIzc3Rk
dDlhbGxvY2F0b3IxWmNfUGMgW2Jhc2ljX3N0cmluZy5oOjY5N10KCXN0ZDo6YmFzaWNfc3RyaW5n
PGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46OnN0ZDo6
YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxj
aGFyPj4oY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+
LHN0ZDo6YWxsb2NhdG9yPGNoYXI+PiYsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgW3N0cmlu
Zy50Y2M6MTg0XQoJc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+
LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pjo6c3Vic3RyKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQp
Y29uc3QgW2Jhc2ljX3N0cmluZy5oOjg0OF0KCUlvOjpJb0VxdURyaXZlcjo6cGFyc2VMaW5lKGNv
bnN0IHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFs
bG9jYXRvcjxjaGFyPj4mKSBbSW9FcXVEcml2ZXIuY3BwOjEyMV0KCUlvOjpJb0VxdURyaXZlcjo6
Z2V0KHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+PiYsSW86
OklvQmFzZVJlYWRlciopIFtJb0VxdURyaXZlci5jcHA6NDNdCiAgKiBSZWFkaW5nIDQgYnl0ZXMg
ZnJvbSAweGVmZmZmMjM4IG9uIHRoZSBzdGFjay4KICAqIEFkZHJlc3MgMHhlZmZmZjIzOCBpcyAg
ICAgIC00OCBieXRlcyBwYXN0IHN0YXJ0IG9mIGxvY2FsIHZhcmlhYmxlICJfVGFnIiBpbiBmdW5j
dGlvbiBfU19jb25zdHJ1Y3RfX0gxWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQY1pRMjNz
dGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxv
Y2F0b3IxWmNfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpj
WlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY19QYy4KCioq
KiogIFB1cmlmeSBpbnN0cnVtZW50ZWQgLi9UZXN0X2VxdURlYnVnUHVyZSAocGlkIDIyNjUwKSAg
KioqKgpVTVI6IFVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgKDEwIHRpbWVzKToKICAqIFRoaXMg
aXMgb2NjdXJyaW5nIHdoaWxlIGluOgoJX1NfY29uc3RydWN0X19IMVpRMjNzdGR0MTdfX25vcm1h
bF9pdGVyYXRvcjJaUGNaUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJh
aXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjX1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNz
dGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgwMFJDUTIzc3RkdDlh
bGxvY2F0b3IxWmNHUTIzc3RkMjBmb3J3YXJkX2l0ZXJhdG9yX3RhZ19QYyBbc3RyaW5nLnRjYzox
MjVdCglfU19jb25zdHJ1Y3RfX0gxWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQY1pRMjNz
dGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxv
Y2F0b3IxWmNfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpj
WlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY19QYyBbYmFz
aWNfc3RyaW5nLmg6Njk3XQoJc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRz
PGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pjo6c3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6
OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pihjb25zdCBzdGQ6OmJhc2lj
X3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+
Jix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBbc3RyaW5nLnRjYzoxODRdCglzdGQ6OmJhc2lj
X3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+
OjpzdWJzdHIodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCBbYmFzaWNfc3RyaW5nLmg6
ODQ4XQoJSW86OklvRXF1RHJpdmVyOjpwYXJzZUxpbmUoY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8
Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+PiYpIFtJb0Vx
dURyaXZlci5jcHA6MTU4XQoJSW86OklvRXF1RHJpdmVyOjpnZXQoc3RkOjpiYXNpY19pZnN0cmVh
bTxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4+JixJbzo6SW9CYXNlUmVhZGVyKikgW0lvRXF1
RHJpdmVyLmNwcDo0M10KICAqIFJlYWRpbmcgNCBieXRlcyBmcm9tIDB4ZWZmZmYyMzggb24gdGhl
IHN0YWNrLgogICogQWRkcmVzcyAweGVmZmZmMjM4IGlzICAgICAgLTQ4IGJ5dGVzIHBhc3Qgc3Rh
cnQgb2YgbG9jYWwgdmFyaWFibGUgIl9UYWciIGluIGZ1bmN0aW9uIF9TX2NvbnN0cnVjdF9fSDFa
UTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBjWlEyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pR
MjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY19RMjNzdGR0MTJiYXNp
Y19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNY
MDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjX1BjLgoKKioqKiAgUHVyaWZ5IGluc3RydW1lbnRl
ZCAuL1Rlc3RfZXF1RGVidWdQdXJlIChwaWQgMjI2NTApICAqKioqCkN1cnJlbnQgZmlsZSBkZXNj
cmlwdG9ycyBpbiB1c2U6IDUKRklVOiBmaWxlIGRlc2NyaXB0b3IgMDogPHN0ZGluPgpGSVU6IGZp
bGUgZGVzY3JpcHRvciAxOiA8c3Rkb3V0PgpGSVU6IGZpbGUgZGVzY3JpcHRvciAyOiA8c3RkZXJy
PgpGSVU6IGZpbGUgZGVzY3JpcHRvciAyNjogPHJlc2VydmVkIGZvciBQdXJpZnkgaW50ZXJuYWwg
dXNlPgpGSVU6IGZpbGUgZGVzY3JpcHRvciAyNzogPHJlc2VydmVkIGZvciBQdXJpZnkgaW50ZXJu
YWwgdXNlPgoKKioqKiAgUHVyaWZ5IGluc3RydW1lbnRlZCAuL1Rlc3RfZXF1RGVidWdQdXJlIChw
aWQgMjI2NTApICAqKioqClB1cmlmeTogU2VhcmNoaW5nIGZvciBhbGwgbWVtb3J5IGxlYWtzLi4u
CgpNZW1vcnkgbGVha2VkOiAyNjQgYnl0ZXMgKDM1LjMlKTsgcG90ZW50aWFsbHkgbGVha2VkOiA2
MyBieXRlcyAoOC40MyUpCgpNTEs6IDk2IGJ5dGVzIGxlYWtlZCBpbiAyIGJsb2NrcwogICogVGhp
cyBtZW1vcnkgd2FzIGFsbG9jYXRlZCBmcm9tOgoJbWFsbG9jICAgICAgICAgW3J0bGliLm9dCglf
X2JVaUx0SW5fbkV3ICBbbmV3MS5jYzo4NF0KCV9fYnVpbHRpbl9uZXcgIFtydGxpYi5vXQoJZW5y
b2xsX19IMVpkX1EyMklvNUlvTWFwUkNRMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDEx
Y2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNSWDAxX1JRMjJJb3Q3SW9WYWx1ZTFa
WDAxIFtJb01hcC5oOjU2XQoJVGVzdFJlY29yZDo6ZmlsbE1hcChJbzo6SW9NYXAmKSBbVGVzdF9l
cXUuY3BwOjI5XQoJSW86OklvV3JpdGVyPFRlc3RSZWNvcmQ+OjpJbzo6SW9Xcml0ZXI8VGVzdFJl
Y29yZD4oSW86OklvRHJpdmVyJikgW0lvV3JpdGVyLmg6MzFdCiAgKiBCbG9jayBvZiA0OCBieXRl
cyAoMiB0aW1lcyk7IGxhc3QgYmxvY2sgYXQgMHgxYTIwMTgKCk1MSzogOTYgYnl0ZXMgbGVha2Vk
IGluIDIgYmxvY2tzCiAgKiBUaGlzIG1lbW9yeSB3YXMgYWxsb2NhdGVkIGZyb206CgltYWxsb2Mg
ICAgICAgICBbcnRsaWIub10KCV9fYlVpTHRJbl9uRXcgIFtuZXcxLmNjOjg0XQoJX19idWlsdGlu
X25ldyAgW3J0bGliLm9dCgllbnJvbGxfX0gyWmRaZF9RMjJJbzVJb01hcFJDUTIzc3RkdDEyYmFz
aWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpj
UlgwMVJDWDExX1JRMjJJb3Q3SW9WYWx1ZTFaWDAxIFtJb01hcC5oOjc0XQoJVGVzdFJlY29yZDo6
ZmlsbE1hcChJbzo6SW9NYXAmKSBbVGVzdF9lcXUuY3BwOjI4XQoJSW86OklvV3JpdGVyPFRlc3RS
ZWNvcmQ+OjpJbzo6SW9Xcml0ZXI8VGVzdFJlY29yZD4oSW86OklvRHJpdmVyJikgW0lvV3JpdGVy
Lmg6MzFdCiAgKiBCbG9jayBvZiA0OCBieXRlcyAoMiB0aW1lcyk7IGxhc3QgYmxvY2sgYXQgMHgx
YTFmMjgKCk1MSzogMzggYnl0ZXMgbGVha2VkIGluIDIgYmxvY2tzCiAgKiBUaGlzIG1lbW9yeSB3
YXMgYWxsb2NhdGVkIGZyb206CgltYWxsb2MgICAgICAgICBbcnRsaWIub10KCXN0ZDo6YmFzaWNf
c3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46
Ol9SZXA6Ol9TX2NyZWF0ZSh1bnNpZ25lZCBpbnQsY29uc3Qgc3RkOjphbGxvY2F0b3I8Y2hhcj4m
KSBbc3RsX2FsbG9jLmg6MTI4XQoJX1NfY29uc3RydWN0X19IMVpQQ2NfUTIzc3RkdDEyYmFzaWNf
c3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAw
WDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY0dRMjNzdGQyMGZvcndhcmRfaXRlcmF0b3JfdGFnX1Bj
IFtzdHJpbmcudGNjOjEzMV0KCXN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0
czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46OnN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3Rk
OjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj4oY29uc3QgY2hhciosY29u
c3Qgc3RkOjphbGxvY2F0b3I8Y2hhcj4mKSBbYmFzaWNfc3RyaW5nLmg6Njk3XQoJVGVzdFJlY29y
ZDo6ZmlsbE1hcChJbzo6SW9NYXAmKSBbVGVzdF9lcXUuY3BwOjI5XQoJSW86OklvV3JpdGVyPFRl
c3RSZWNvcmQ+OjpJbzo6SW9Xcml0ZXI8VGVzdFJlY29yZD4oSW86OklvRHJpdmVyJikgW0lvV3Jp
dGVyLmg6MzFdCiAgKiBCbG9jayBvZiAxOSBieXRlcyAoMiB0aW1lcyk7IGxhc3QgYmxvY2sgYXQg
MHgxYTFmYjAKCk1MSzogMzQgYnl0ZXMgbGVha2VkIGluIDIgYmxvY2tzCiAgKiBUaGlzIG1lbW9y
eSB3YXMgYWxsb2NhdGVkIGZyb206CgltYWxsb2MgICAgICAgICBbcnRsaWIub10KCXN0ZDo6YmFz
aWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFy
Pj46Ol9SZXA6Ol9TX2NyZWF0ZSh1bnNpZ25lZCBpbnQsY29uc3Qgc3RkOjphbGxvY2F0b3I8Y2hh
cj4mKSBbc3RsX2FsbG9jLmg6MTI4XQoJX1NfY29uc3RydWN0X19IMVpQQ2NfUTIzc3RkdDEyYmFz
aWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpj
WDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY0dRMjNzdGQyMGZvcndhcmRfaXRlcmF0b3JfdGFn
X1BjIFtzdHJpbmcudGNjOjEzMV0KCXN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3Ry
YWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46OnN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIs
c3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj4oY29uc3QgY2hhcios
Y29uc3Qgc3RkOjphbGxvY2F0b3I8Y2hhcj4mKSBbYmFzaWNfc3RyaW5nLmg6Njk3XQoJVGVzdFJl
Y29yZDo6ZmlsbE1hcChJbzo6SW9NYXAmKSBbVGVzdF9lcXUuY3BwOjI4XQoJSW86OklvV3JpdGVy
PFRlc3RSZWNvcmQ+OjpJbzo6SW9Xcml0ZXI8VGVzdFJlY29yZD4oSW86OklvRHJpdmVyJikgW0lv
V3JpdGVyLmg6MzFdCiAgKiBCbG9jayBvZiAxNyBieXRlcyAoMiB0aW1lcyk7IGxhc3QgYmxvY2sg
YXQgMHgxYTFlYzAKClBMSzogMTggYnl0ZXMgcG90ZW50aWFsbHkgbGVha2VkIGF0IDB4MTlmNDY4
CiAgKiBUaGlzIG1lbW9yeSB3YXMgYWxsb2NhdGVkIGZyb206CgltYWxsb2MgICAgICAgICBbcnRs
aWIub10KCXN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6
OmFsbG9jYXRvcjxjaGFyPj46Ol9SZXA6Ol9TX2NyZWF0ZSh1bnNpZ25lZCBpbnQsY29uc3Qgc3Rk
OjphbGxvY2F0b3I8Y2hhcj4mKSBbc3RsX2FsbG9jLmg6MTI4XQoJX1NfY29uc3RydWN0X19IMVpQ
Q2NfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0
ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY0dRMjNzdGQyMGZvcndh
cmRfaXRlcmF0b3JfdGFnX1BjIFtzdHJpbmcudGNjOjEzMV0KCXN0ZDo6YmFzaWNfc3RyaW5nPGNo
YXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46OnN0ZDo6YmFz
aWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFy
Pj4oY29uc3QgY2hhciosY29uc3Qgc3RkOjphbGxvY2F0b3I8Y2hhcj4mKSBbYmFzaWNfc3RyaW5n
Lmg6Njk3XQoJc3RkOjpsb2NhbGU6OmNsYXNzaWMoKSBbbG9jYWxlX2ZhY2V0cy5oOjEyNTFdCglz
dGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Pjo6c3RkOjpiYXNp
Y19maWxlYnVmPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPj4oKSBbbG9jYWxlZndkLmg6MzAy
XQoKUExLOiAxNyBieXRlcyBwb3RlbnRpYWxseSBsZWFrZWQgYXQgMHgxOWY0ZDAKICAqIFRoaXMg
bWVtb3J5IHdhcyBhbGxvY2F0ZWQgZnJvbToKCW1hbGxvYyAgICAgICAgIFtydGxpYi5vXQoJc3Rk
OjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9y
PGNoYXI+Pjo6X1JlcDo6X1NfY3JlYXRlKHVuc2lnbmVkIGludCxjb25zdCBzdGQ6OmFsbG9jYXRv
cjxjaGFyPiYpIFtzdGxfYWxsb2MuaDoxMjhdCglfU19jb25zdHJ1Y3RfX0gxWlBDY19RMjNzdGR0
MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0
b3IxWmNYMDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjR1EyM3N0ZDIwZm9yd2FyZF9pdGVyYXRv
cl90YWdfUGMgW3N0cmluZy50Y2M6MTMxXQoJc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNo
YXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pjo6c3RkOjpiYXNpY19zdHJpbmc8
Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pihjb25zdCBj
aGFyKixjb25zdCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiYpIFtiYXNpY19zdHJpbmcuaDo2OTddCglz
dGQ6OmxvY2FsZTo6Y2xhc3NpYygpIFtsb2NhbGVfZmFjZXRzLmg6MTI1MV0KCXN0ZDo6YmFzaWNf
ZmlsZWJ1ZjxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4+OjpzdGQ6OmJhc2ljX2ZpbGVidWY8
Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+PigpIFtsb2NhbGVmd2QuaDozMDJdCgpQTEs6IDE0
IGJ5dGVzIHBvdGVudGlhbGx5IGxlYWtlZCBhdCAweDE5ZjAyOAogICogVGhpcyBtZW1vcnkgd2Fz
IGFsbG9jYXRlZCBmcm9tOgoJbWFsbG9jICAgICAgICAgW3J0bGliLm9dCglzdGQ6OmJhc2ljX3N0
cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+Ojpf
UmVwOjpfU19jcmVhdGUodW5zaWduZWQgaW50LGNvbnN0IHN0ZDo6YWxsb2NhdG9yPGNoYXI+Jikg
W3N0bF9hbGxvYy5oOjEyOF0KCV9TX2NvbnN0cnVjdF9fSDFaUENjX1EyM3N0ZHQxMmJhc2ljX3N0
cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgw
MFJDUTIzc3RkdDlhbGxvY2F0b3IxWmNHUTIzc3RkMjBmb3J3YXJkX2l0ZXJhdG9yX3RhZ19QYyBb
c3RyaW5nLnRjYzoxMzFdCglzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8
Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+OjpzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6
Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+KGNvbnN0IGNoYXIqLGNvbnN0
IHN0ZDo6YWxsb2NhdG9yPGNoYXI+JikgW2Jhc2ljX3N0cmluZy5oOjY5N10KCXN0ZDo6bG9jYWxl
OjpfSW1wbDo6c3RkOjpsb2NhbGU6Ol9JbXBsKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIFts
b2NhbGUuY2M6NjZdCglzdGQ6OmxvY2FsZTo6Y2xhc3NpYygpIFtsb2NhbGUuY2M6MzIzXQoKUExL
OiAxNCBieXRlcyBwb3RlbnRpYWxseSBsZWFrZWQgYXQgMHgxOWVlNDAKICAqIFRoaXMgbWVtb3J5
IHdhcyBhbGxvY2F0ZWQgZnJvbToKCW1hbGxvYyAgICAgICAgIFtydGxpYi5vXQoJc3RkOjpiYXNp
Y19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+
Pjo6X1JlcDo6X1NfY3JlYXRlKHVuc2lnbmVkIGludCxjb25zdCBzdGQ6OmFsbG9jYXRvcjxjaGFy
PiYpIFtzdGxfYWxsb2MuaDoxMjhdCglfU19jb25zdHJ1Y3RfX0gxWlBDY19RMjNzdGR0MTJiYXNp
Y19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNY
MDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjR1EyM3N0ZDIwZm9yd2FyZF9pdGVyYXRvcl90YWdf
UGMgW3N0cmluZy50Y2M6MTMxXQoJc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJh
aXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pjo6c3RkOjpiYXNpY19zdHJpbmc8Y2hhcixz
dGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pihjb25zdCBjaGFyKixj
b25zdCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiYpIFtiYXNpY19zdHJpbmcuaDo2OTddCglzdGQ6Omxv
Y2FsZTo6X0ltcGw6OnN0ZDo6bG9jYWxlOjpfSW1wbCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50
KSBbbG9jYWxlLmNjOjYwXQoJc3RkOjpsb2NhbGU6OmNsYXNzaWMoKSBbbG9jYWxlLmNjOjMyM10K
ClB1cmlmeSBIZWFwIEFuYWx5c2lzIChjb21iaW5pbmcgc3VwcHJlc3NlZCBhbmQgdW5zdXBwcmVz
c2VkIGJsb2NrcykKICAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrcyAgICAgICAgQnl0ZXMK
ICAgICAgICAgICAgICBMZWFrZWQgICAgICAgICAgOCAgICAgICAgICAyNjQKICBQb3RlbnRpYWxs
eSBMZWFrZWQgICAgICAgICAgNCAgICAgICAgICAgNjMKICAgICAgICAgICAgICBJbi1Vc2UgICAg
ICAgICAxOSAgICAgICAgICA0MjAKICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAgICAgVG90YWwgQWxsb2NhdGVkICAgICAgICAgMzEgICAgICAgICAgNzQ3CgoqKioq
ICBQdXJpZnkgaW5zdHJ1bWVudGVkIC4vVGVzdF9lcXVEZWJ1Z1B1cmUgKHBpZCAyMjY1MCkgICoq
KioKICAqIFByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIGNvZGUgMC4KICAqIDExIGFjY2VzcyBl
cnJvcnMsIDIzNyB0b3RhbCBvY2N1cnJlbmNlcy4KICAqIDI2NCBieXRlcyBsZWFrZWQuCiAgKiA2
MyBieXRlcyBwb3RlbnRpYWxseSBsZWFrZWQuCiAgKiBCYXNpYyBtZW1vcnkgdXNhZ2UgKGluY2x1
ZGluZyBQdXJpZnkgb3ZlcmhlYWQpOgogICAgMTMxOTUyOSBjb2RlCiAgICAyNDg0OTYgZGF0YS9i
c3MKICAgIDkwMTE2IGhlYXAgKHBlYWsgdXNlKQogICAgMTI3MiBzdGFjawoK
>From benoit.sibaud@rd.francetelecom.fr Wed Jun 28 03:27:00 2000
From: benoit.sibaud@rd.francetelecom.fr
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/65: Uninitialized Memory Errors (UMR) with Purify
Date: Wed, 28 Jun 2000 03:27:00 -0000
Message-id: <20000628101943.9655.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00016.html
Content-length: 64407

>Number:         65
>Category:       libstdc++
>Synopsis:       Uninitialized Memory Errors (UMR) with Purify
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jun 28 03:27:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     benoit.sibaud@rd.francetelecom.fr
>Release:        unknown-1.0
>Organization:
>Environment:
SunOS XXXX 5.6 Generic_105181-17 sun4u sparc SUNW,Ultra-4
Reading specs from /opt/gnu/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)
libstdc++ 2.90.8 (full recompilation of gcc)
purify-4.5.1-solaris2

>Description:
I've got many UMR with Purify. I suspect it's due to libstdc++ 2.90.8, so I send to you the Purify report.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="Test_equDebugPure.pv"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Test_equDebugPure.pv"

cHVyaWZ5IC12aWV3CgwAAAAAACM5WcVXAAAAWy9hcHBsaS9vdXRpbHMvbGliSW8vZXhhbXBsZXMv
VGVzdC9iaW4vc3BhcmMtc3VuLXNvbGFyaXMyLjYvMS4xLWRlYnVnLWcrKy9UZXN0X2VxdURlYnVn
UHVyZQAAAGD2AAAAOwAAAAAAAAAAAAAAAAEw+s4AAAABAAAxYi9vcHQvZ251L2djYy0yLjk1LjIv
bGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjYvMi45NS4yLy4uLy4uLy4uLy4uL2luY2x1
ZGUvZysrLXYzL2JpdHMvc3RsX3ZlY3Rvci5oAC9hcHBsaS9vdXRpbHMvbGliSW8vZXhhbXBsZXMv
VGVzdC9zcmMvVGVzdF9lcXUubwAvYXBwbGkvb3V0aWxzL2xpYklvL2V4YW1wbGVzL1Rlc3QvYmlu
L3NwYXJjLXN1bi1zb2xhcmlzMi42LzEuMS1kZWJ1Zy1nKysvVGVzdF9lcXVEZWJ1Z1B1cmUAX01f
aW5zZXJ0X2F1eF9fUTIzc3RkdDZ2ZWN0b3IyWlBRMjJJbzExSW9CYXNlVmFsdWVaUTIzc3RkdDlh
bGxvY2F0b3IxWlBRMjJJbzExSW9CYXNlVmFsdWVHUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3Iy
WlBQUTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0ZHQ2dmVjdG9yMlpQUTIySW8xMUlvQmFzZVZhbHVl
WlEyM3N0ZHQ5YWxsb2NhdG9yMVpQUTIySW8xMUlvQmFzZVZhbHVlUkNQUTIySW8xMUlvQmFzZVZh
bHVlAHB1c2hfYmFja19fUTIzc3RkdDZ2ZWN0b3IyWlBRMjJJbzExSW9CYXNlVmFsdWVaUTIzc3Rk
dDlhbGxvY2F0b3IxWlBRMjJJbzExSW9CYXNlVmFsdWVSQ1BRMjJJbzExSW9CYXNlVmFsdWUAc3Rk
Ojp2ZWN0b3I8SW86OklvQmFzZVZhbHVlKixzdGQ6OmFsbG9jYXRvcjxJbzo6SW9CYXNlVmFsdWUq
Pj46OnB1c2hfYmFjayhjb25zdCBJbzo6SW9CYXNlVmFsdWUqJikAL29wdC9nbnUvZ2NjLTIuOTUu
Mi9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNi8yLjk1LjIvLi4vLi4vLi4vLi4vaW5j
bHVkZS9nKystdjMvYml0cy9zdGxfdW5pbml0aWFsaXplZC5oAHVuaW5pdGlhbGl6ZWRfY29weV9f
SDJaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBQUTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0
ZHQ2dmVjdG9yMlpQUTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0ZHQ5YWxsb2NhdG9yMVpQUTIySW8x
MUlvQmFzZVZhbHVlWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQUFEyMklvMTFJb0Jhc2VW
YWx1ZVpRMjNzdGR0NnZlY3RvcjJaUFEyMklvMTFJb0Jhc2VWYWx1ZVpRMjNzdGR0OWFsbG9jYXRv
cjFaUFEyMgBfX3VuaW5pdGlhbGl6ZWRfY29weV9fSDNaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0
b3IyWlBQUTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0ZHQ2dmVjdG9yMlpQUTIySW8xMUlvQmFzZVZh
bHVlWlEyM3N0ZHQ5YWxsb2NhdG9yMVpQUTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0ZHQxN19fbm9y
bWFsX2l0ZXJhdG9yMlpQUFEyMklvMTFJb0Jhc2VWYWx1ZVpRMjNzdGR0NnZlY3RvcjJaUFEyMklv
MTFJb0Jhc2VWYWx1ZVpRMjNzdGR0OWFsbG9jYXRvcjFaUFEAX191bmluaXRpYWxpemVkX2NvcHlf
YXV4X19IMlpRMjNzdGR0MTdfX25vcm1hbF9pdGVyYXRvcjJaUFBRMjJJbzExSW9CYXNlVmFsdWVa
UTIzc3RkdDZ2ZWN0b3IyWlBRMjJJbzExSW9CYXNlVmFsdWVaUTIzc3RkdDlhbGxvY2F0b3IxWlBR
MjJJbzExSW9CYXNlVmFsdWVaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBQUTIySW8xMUlv
QmFzZVZhbHVlWlEyM3N0ZHQ2dmVjdG9yMlpQUTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0ZHQ5YWxs
b2NhdG9yAC9vcHQvZ251L2djYy0yLjk1LjIvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMy
LjYvMi45NS4yLy4uLy4uLy4uLy4uL2luY2x1ZGUvZysrLXYzL2JpdHMvc3RsX2FsZ29iYXNlLmgA
Y29weV9fSDJaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBQUTIySW8xMUlvQmFzZVZhbHVl
WlEyM3N0ZHQ2dmVjdG9yMlpQUTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0ZHQ5YWxsb2NhdG9yMVpQ
UTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQUFEyMklvMTFJ
b0Jhc2VWYWx1ZVpRMjNzdGR0NnZlY3RvcjJaUFEyMklvMTFJb0Jhc2VWYWx1ZVpRMjNzdGR0OWFs
bG9jYXRvcjFaUFEyMklvMTFJb0Jhc2VWYWx1AF9fY29weV9uaTFfX0gyWlEyM3N0ZHQxN19fbm9y
bWFsX2l0ZXJhdG9yMlpQUFEyMklvMTFJb0Jhc2VWYWx1ZVpRMjNzdGR0NnZlY3RvcjJaUFEyMklv
MTFJb0Jhc2VWYWx1ZVpRMjNzdGR0OWFsbG9jYXRvcjFaUFEyMklvMTFJb0Jhc2VWYWx1ZVpRMjNz
dGR0MTdfX25vcm1hbF9pdGVyYXRvcjJaUFBRMjJJbzExSW9CYXNlVmFsdWVaUTIzc3RkdDZ2ZWN0
b3IyWlBRMjJJbzExSW9CYXNlVmFsdWVaUTIzc3RkdDlhbGxvY2F0b3IxWlBRMjJJbzExSW9CYQAv
b3B0L2dudS9nY2MtMi45NS4yL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi42LzIuOTUu
Mi8uLi8uLi8uLi8uLi9pbmNsdWRlL2crKy12My9iaXRzL3N0bF9jb25zdHJ1Y3QuaABkZXN0cm95
X19IMVpRMjNzdGR0MTdfX25vcm1hbF9pdGVyYXRvcjJaUFBRMjJJbzExSW9CYXNlVmFsdWVaUTIz
c3RkdDZ2ZWN0b3IyWlBRMjJJbzExSW9CYXNlVmFsdWVaUTIzc3RkdDlhbGxvY2F0b3IxWlBRMjJJ
bzExSW9CYXNlVmFsdWVfM3N0ZFgwMVgwMV92AF9fZGVzdHJveV9fSDJaUTIzc3RkdDE3X19ub3Jt
YWxfaXRlcmF0b3IyWlBQUTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0ZHQ2dmVjdG9yMlpQUTIySW8x
MUlvQmFzZVZhbHVlWlEyM3N0ZHQ5YWxsb2NhdG9yMVpQUTIySW8xMUlvQmFzZVZhbHVlWlBRMjJJ
bzExSW9CYXNlVmFsdWVfM3N0ZFgwMVgwMVBYMTFfdgAvYXBwbGkvb3V0aWxzL2xpYklvL2V4YW1w
bGVzL1Rlc3Qvc3JjLy4uLy4uLy4uL2luY2x1ZGUvMS4xL0lvTWFwLmgAa2VlcE9ubHlTdG9yYWJs
ZV9fUTIySW81SW9NYXAASW86OklvTWFwOjprZWVwT25seVN0b3JhYmxlKCkAaQBlcmFzZV9fUTIz
c3RkdDZ2ZWN0b3IyWlBRMjJJbzExSW9CYXNlVmFsdWVaUTIzc3RkdDlhbGxvY2F0b3IxWlBRMjJJ
bzExSW9CYXNlVmFsdWVHUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBQUTIySW8xMUlvQmFz
ZVZhbHVlWlEyM3N0ZHQ2dmVjdG9yMlpQUTIySW8xMUlvQmFzZVZhbHVlWlEyM3N0ZHQ5YWxsb2Nh
dG9yMVpQUTIySW8xMUlvQmFzZVZhbHVlAC9mcmVlc3BhY2UvYmFja3VwL2djY2J1aWxkL3NwYXJj
LXN1bi1zb2xhcmlzMi42L2xpYnN0ZGMrKy9zcmMvLi4vLi4vLi4vLi4vZ2NjLTIuOTUuMi9saWJz
dGRjKysvYml0cy9iYXNpY19zdHJpbmcuaAAvb3B0L2dudS9nY2MtMi45NS4yL2xpYi9saWJzdGRj
KysuYQBfX2FzX19RMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMx
WmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNQQ2MAc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNo
YXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pjo6b3BlcmF0b3IgPShjb25zdCBj
aGFyKikAZ2V0bGluZV9fSDNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9j
YXRvcjFaY18zc3RkUlEyM3N0ZHQxM2Jhc2ljX2lzdHJlYW0yWlgwMVpYMTFSUTIzc3RkdDEyYmFz
aWNfc3RyaW5nM1pYMDFaWDExWlgyMVgwMV9SUTIzc3RkdDEzYmFzaWNfaXN0cmVhbTJaWDAxWlgx
MQBfX2NlcmIAL2ZyZWVzcGFjZS9iYWNrdXAvZ2NjYnVpbGQvc3BhcmMtc3VuLXNvbGFyaXMyLjYv
bGlic3RkYysrL3NyYy8uLi8uLi8uLi8uLi9nY2MtMi45NS4yL2xpYnN0ZGMrKy9iaXRzL2lzdHJl
YW0udGNjAGdldGxpbmVfX0gzWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxv
Y2F0b3IxWmNfM3N0ZFJRMjNzdGR0MTNiYXNpY19pc3RyZWFtMlpYMDFaWDExUlEyM3N0ZHQxMmJh
c2ljX3N0cmluZzNaWDAxWlgxMVpYMjFfUlEyM3N0ZHQxM2Jhc2ljX2lzdHJlYW0yWlgwMVpYMTEA
L2FwcGxpL291dGlscy9saWJJby9zcmMvSW9FcXVEcml2ZXIuY3BwAC9hcHBsaS9vdXRpbHMvbGli
SW8vbGliL3NwYXJjLXN1bi1zb2xhcmlzMi42LzEuMS1kZWJ1Zy1nKysvbGliSW9EZWJ1Zy5hAGdl
dF9fUTIySW8xMUlvRXF1RHJpdmVyUlEyM3N0ZHQxNGJhc2ljX2lmc3RyZWFtMlpjWlEyM3N0ZHQx
MWNoYXJfdHJhaXRzMVpjUFEyMklvMTJJb0Jhc2VSZWFkZXIASW86OklvRXF1RHJpdmVyOjpnZXQo
c3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4+JixJbzo6SW9C
YXNlUmVhZGVyKikAL2FwcGxpL291dGlscy9saWJJby9leGFtcGxlcy9UZXN0L3NyYy8uLi8uLi8u
Li9pbmNsdWRlLzEuMS9Jb1JlYWRlci5oAGdldF9fUTIySW90OElvUmVhZGVyMVoxMFRlc3RSZWNv
cmQASW86OklvUmVhZGVyPFRlc3RSZWNvcmQ+OjpnZXQoKQAvYXBwbGkvb3V0aWxzL2xpYklvL2V4
YW1wbGVzL1Rlc3Qvc3JjL1Rlc3RfZXF1LmNwcAB0ZXN0X3JlY29yZF9fRkdRMjNzdGR0MTJiYXNp
Y19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmMA
bWFpbgAvb3B0L2dudS9nY2MtMi45NS4yL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi42
LzIuOTUuMi8uLi8uLi8uLi8uLi9pbmNsdWRlL2crKy12My9iaXRzL3N0bF9hbGdvLmgAZmluZF9p
Zl9fSDJaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBjWlEyM3N0ZHQxMmJhc2ljX3N0cmlu
ZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1pRMjNzdGR0
MTJ1bmFyeV9uZWdhdGUxWlEzMklvMTFJb0VxdURyaXZlcjExU3BhY2VUZXN0ZXJfM3N0ZFgwMVgw
MVgxMV9YMDEAZmluZF9pZl9fSDJaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBjWlEyM3N0
ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9j
YXRvcjFaY1pRMjNzdGR0MTJ1bmFyeV9uZWdhdGUxWlEzMklvMTFJb0VxdURyaXZlcjExU3BhY2VU
ZXN0ZXJfM3N0ZFgwMVgwMVgxMUdRMjNzdGQyNnJhbmRvbV9hY2Nlc3NfaXRlcmF0b3JfdGFnX1gw
MQAvZnJlZXNwYWNlL2JhY2t1cC9nY2NidWlsZC9zcGFyYy1zdW4tc29sYXJpczIuNi9saWJzdGRj
Kysvc3JjLy4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL2JpdHMvc3RyaW5nLnRjYwBf
X0gxWlEyM3N0ZHQxN19fbm9ybWFsX2l0ZXJhdG9yMlpQY1pRMjNzdGR0MTJiYXNpY19zdHJpbmcz
WmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNfUTIzc3RkdDEy
YmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9y
MVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaYwBfU19jb25zdHJ1Y3RfX0gxWlEyM3N0ZHQx
N19fbm9ybWFsX2l0ZXJhdG9yMlpQY1pRMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDEx
Y2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNfUTIzc3RkdDEyYmFzaWNfc3RyaW5n
M1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNR
MjNzdGR0OWFsbG9jYXRvcjFaY19QYwBfU19jb25zdHJ1Y3RfX0gxWlEyM3N0ZHQxN19fbm9ybWFs
X2l0ZXJhdG9yMlpQY1pRMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFp
dHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmNfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0
ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFs
bG9jYXRvcjFaY0dRMjNzdGQyMGZvcndhcmRfaXRlcmF0b3JfdGFnX1BjAF9UYWcAcGFyc2VMaW5l
X19RMjJJbzExSW9FcXVEcml2ZXJSQ1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFj
aGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaYwBJbzo6SW9FcXVEcml2ZXI6OnBhcnNl
TGluZShjb25zdCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4s
c3RkOjphbGxvY2F0b3I8Y2hhcj4+JikAL2ZyZWVzcGFjZS9iYWNrdXAvZ2NjYnVpbGQvc3BhcmMt
c3VuLXNvbGFyaXMyLjYvbGlic3RkYysrL3NyYy8uLi8uLi8uLi8uLi9nY2MtMi45NS4yL2xpYnN0
ZGMrKy9zdGwvYml0cy9zdGxfaXRlcmF0b3IuaAByYmVnaW5fX0NRMjNzdGR0MTJiYXNpY19zdHJp
bmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3IxWmMAc3RkOjpi
YXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNo
YXI+Pjo6cmJlZ2luKCljb25zdAByZW5kX19DUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0
ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjAHN0ZDo6YmFzaWNfc3RyaW5n
PGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46OnJlbmQo
KWNvbnN0AC9vcHQvZ251L2djYy0yLjk1LjIvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMy
LjYvMi45NS4yLy4uLy4uLy4uLy4uL2luY2x1ZGUvZysrLXYzL2JpdHMvc3RsX2l0ZXJhdG9yLmgA
X19RMjNzdGR0MTZyZXZlcnNlX2l0ZXJhdG9yMVpRMjNzdGR0MTdfX25vcm1hbF9pdGVyYXRvcjJa
UENjWlEyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNz
dGR0OWFsbG9jYXRvcjFaY1JDUTIzc3RkdDE2cmV2ZXJzZV9pdGVyYXRvcjFaUTIzc3RkdDE3X19u
b3JtYWxfaXRlcmF0b3IyWlBDY1pRMjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hh
cl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0AHJiZWdpbgBwYXJzZVRva2VuX19RMjJJbzExSW9F
cXVEcml2ZXJSQ1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFa
Y1pRMjNzdGR0OWFsbG9jYXRvcjFaY1JVaU4yMgBJbzo6SW9FcXVEcml2ZXI6OnBhcnNlVG9rZW4o
Y29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6
YWxsb2NhdG9yPGNoYXI+PiYsdW5zaWduZWQgaW50Jix1bnNpZ25lZCBpbnQmLHVuc2lnbmVkIGlu
dCYpAGZpbmRfaWZfX0gyWlEyM3N0ZHQxNnJldmVyc2VfaXRlcmF0b3IxWlEyM3N0ZHQxN19fbm9y
bWFsX2l0ZXJhdG9yMlpQQ2NaUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJf
dHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjWlEyM3N0ZHQxMnVuYXJ5X25lZ2F0ZTFaUTMy
SW8xMUlvRXF1RHJpdmVyMTFTcGFjZVRlc3Rlcl8zc3RkWDAxWDAxWDExX1gwMQBiYXNlX19DUTIz
c3RkdDE2cmV2ZXJzZV9pdGVyYXRvcjFaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBDY1pR
MjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlh
bGxvY2F0b3IxWmMAc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPHN0ZDo6X19ub3JtYWxfaXRlcmF0b3I8
Y29uc3QgY2hhciosc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+
LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pj4+OjpiYXNlKCljb25zdABfX21sX19DUTIzc3RkdDE2cmV2
ZXJzZV9pdGVyYXRvcjFaUTIzc3RkdDE3X19ub3JtYWxfaXRlcmF0b3IyWlBDY1pRMjNzdGR0MTJi
YXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0b3Ix
WmMAc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPHN0ZDo6X19ub3JtYWxfaXRlcmF0b3I8Y29uc3QgY2hh
ciosc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxs
b2NhdG9yPGNoYXI+Pj4+OjpvcGVyYXRvciAqKCljb25zdABfX1EyM3N0ZHQxMmJhc2ljX3N0cmlu
ZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1JDUTIzc3Rk
dDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2Nh
dG9yMVpjVWlVaQBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4s
c3RkOjphbGxvY2F0b3I8Y2hhcj4+OjpzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90
cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+KGNvbnN0IHN0ZDo6YmFzaWNfc3RyaW5n
PGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj4mLHVuc2ln
bmVkIGludCx1bnNpZ25lZCBpbnQpAHN1YnN0cl9fQ1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pR
MjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1VpVWkAc3RkOjpiYXNp
Y19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+
Pjo6c3Vic3RyKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QAL2FwcGxpL291dGlscy9s
aWJJby9zcmMvLi4vaW5jbHVkZS8xLjEvSW9NYXAuaABnZXRWYWx1ZV9fQ1EyMklvNUlvTWFwUkNR
MjNzdGR0MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlh
bGxvY2F0b3IxWmMASW86OklvTWFwOjpnZXRWYWx1ZShjb25zdCBzdGQ6OmJhc2ljX3N0cmluZzxj
aGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+Jiljb25zdAAv
ZnJlZXNwYWNlL2JhY2t1cC9nY2NidWlsZC9zcGFyYy1zdW4tc29sYXJpczIuNi9saWJzdGRjKysv
c3JjLy4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL2JpdHMvbG9jYWxlX2ZhY2V0cy5o
AF9fcnNfX1EyM3N0ZHQxM2Jhc2ljX2lzdHJlYW0yWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNS
ZABzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Pjo6b3BlcmF0
b3IgPj4oZG91YmxlJikAL2ZyZWVzcGFjZS9iYWNrdXAvZ2NjYnVpbGQvc3BhcmMtc3VuLXNvbGFy
aXMyLjYvbGlic3RkYysrL3NyYy8uLi8uLi8uLi8uLi9nY2MtMi45NS4yL2xpYnN0ZGMrKy9iaXRz
L2xvY2FsZV9mYWNldHMudGNjAGRvX2dldF9fQ1EyM3N0ZHQ3bnVtX2dldDJaY1pRMjNzdGR0MTlp
c3RyZWFtYnVmX2l0ZXJhdG9yMlpjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjR1EyM3N0ZHQxOWlz
dHJlYW1idWZfaXRlcmF0b3IyWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNUMVJRMjNzdGQ4aW9z
X2Jhc2VSUTIzc3RkMTJfSW9zX0lvc3RhdGVSZAAvdXNyL2xpYi9saWJjLmEAZGVjaW1hbF90b19k
b3VibGUAcGFyc2VMYXN0VG9rZW5fX1EyMklvMTFJb0VxdURyaXZlclJDUTIzc3RkdDEyYmFzaWNf
c3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxsb2NhdG9yMVpjUlVp
AElvOjpJb0VxdURyaXZlcjo6cGFyc2VMYXN0VG9rZW4oY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8
Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+PiYsdW5zaWdu
ZWQgaW50JikAX19sc19fUTIzc3RkdDEzYmFzaWNfb3N0cmVhbTJaY1pRMjNzdGR0MTFjaGFyX3Ry
YWl0czFaY2IAZG9fcHV0X19DUTIzc3RkdDdudW1fcHV0MlpjWlEyM3N0ZHQxOW9zdHJlYW1idWZf
aXRlcmF0b3IyWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNHUTIzc3RkdDE5b3N0cmVhbWJ1Zl9p
dGVyYXRvcjJaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1JRMjNzdGQ4aW9zX2Jhc2VjYgBfU19m
b3JtYXRfX0gzWmNaUTIzc3RkdDE5b3N0cmVhbWJ1Zl9pdGVyYXRvcjJaY1pRMjNzdGR0MTFjaGFy
X3RyYWl0czFaY1pVbF8zc3RkWDExUlEyM3N0ZDhpb3NfYmFzZVgwMWJYMjFfWDExAC9mcmVlc3Bh
Y2UvYmFja3VwL2djY2J1aWxkL3NwYXJjLXN1bi1zb2xhcmlzMi42L2xpYnN0ZGMrKy9zcmMvLi4v
Li4vLi4vLi4vZ2NjLTIuOTUuMi9saWJzdGRjKysvc3RsL2JpdHMvc3RsX2FsZ29iYXNlLmgAX19s
c19fUTIzc3RkdDEzYmFzaWNfb3N0cmVhbTJaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY2QAc3Rk
OjpiYXNpY19vc3RyZWFtPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPj46Om9wZXJhdG9yIDw8
KGRvdWJsZSkAZG9fcHV0X19DUTIzc3RkdDdudW1fcHV0MlpjWlEyM3N0ZHQxOW9zdHJlYW1idWZf
aXRlcmF0b3IyWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNHUTIzc3RkdDE5b3N0cmVhbWJ1Zl9p
dGVyYXRvcjJaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1JRMjNzdGQ4aW9zX2Jhc2VjZABfU19v
dXRwdXRfZmxvYXRfX0gyWmNaUTIzc3RkdDE5b3N0cmVhbWJ1Zl9pdGVyYXRvcjJaY1pRMjNzdGR0
MTFjaGFyX3RyYWl0czFaY18zc3RkWDExUlEyM3N0ZDhpb3NfYmFzZVgwMVBDY1VpX1gxMQBfU19m
aWxsX19IM1pjWlEyM3N0ZHQxOW9zdHJlYW1idWZfaXRlcmF0b3IyWmNaUTIzc3RkdDExY2hhcl90
cmFpdHMxWmNaUTIzc3RkMTlvdXRwdXRfaXRlcmF0b3JfdGFnXzNzdGRYMTFYMDFpWDIxX1gxMQBf
X2xzX19RMjNzdGR0MTNiYXNpY19vc3RyZWFtMlpjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjbABz
dGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Pjo6b3BlcmF0b3Ig
PDwobG9uZykAZG9fcHV0X19DUTIzc3RkdDdudW1fcHV0MlpjWlEyM3N0ZHQxOW9zdHJlYW1idWZf
aXRlcmF0b3IyWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNHUTIzc3RkdDE5b3N0cmVhbWJ1Zl9p
dGVyYXRvcjJaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1JRMjNzdGQ4aW9zX2Jhc2VjbAAvYXBw
bGkvb3V0aWxzL2xpYklvL2V4YW1wbGVzL1Rlc3QvYmluL3NwYXJjLXN1bi1zb2xhcmlzMi42LzEu
MS1kZWJ1Zy1nKysvcnRsaWIubwBtZW1jcHkAX19wYWNrX2RvdWJsZQBfc3BsaXRfc2hvcnRlbgBf
X3VucGFja19kb3VibGVfdHdvAF9fa19kb3VibGVfdG9fZGVjaW1hbABfdW5wYWNrZWRfdG9fZGVj
aW1hbF90d28AbWFsbG9jAC9mcmVlc3BhY2UvYmFja3VwL2djY2J1aWxkL2djYy8uLi8uLi9nY2Mt
Mi45NS4yL2djYy9jcC9uZXcxLmNjAC9vcHQvZ251L2djYy0yLjk1LjIvbGliL2djYy1saWIvc3Bh
cmMtc3VuLXNvbGFyaXMyLjYvMi45NS4yL2xpYmdjYy5hAF9fYlVpTHRJbl9uRXcAX19idWlsdGlu
X25ldwBlbnJvbGxfX0gxWmRfUTIySW81SW9NYXBSQ1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pR
MjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1JYMDFfUlEyMklvdDdJ
b1ZhbHVlMVpYMDEAZmlsbE1hcF9fMTBUZXN0UmVjb3JkUlEyMklvNUlvTWFwAFRlc3RSZWNvcmQ6
OmZpbGxNYXAoSW86OklvTWFwJikAL2FwcGxpL291dGlscy9saWJJby9leGFtcGxlcy9UZXN0L3Ny
Yy8uLi8uLi8uLi9pbmNsdWRlLzEuMS9Jb1dyaXRlci5oAF9fUTIySW90OElvV3JpdGVyMVoxMFRl
c3RSZWNvcmRSUTIySW84SW9Ecml2ZXIASW86OklvV3JpdGVyPFRlc3RSZWNvcmQ+OjpJbzo6SW9X
cml0ZXI8VGVzdFJlY29yZD4oSW86OklvRHJpdmVyJikAZW5yb2xsX19IMlpkWmRfUTIySW81SW9N
YXBSQ1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNz
dGR0OWFsbG9jYXRvcjFaY1JYMDFSQ1gxMV9SUTIySW90N0lvVmFsdWUxWlgwMQAvZnJlZXNwYWNl
L2JhY2t1cC9nY2NidWlsZC9zcGFyYy1zdW4tc29sYXJpczIuNi9saWJzdGRjKysvc3JjLy4uLy4u
Ly4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL3N0bC9iaXRzL3N0bF9hbGxvYy5oAF9TX2NyZWF0
ZV9fUTMzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0
ZHQ5YWxsb2NhdG9yMVpjNF9SZXBVaVJDUTIzc3RkdDlhbGxvY2F0b3IxWmMAc3RkOjpiYXNpY19z
dHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pjo6
X1JlcDo6X1NfY3JlYXRlKHVuc2lnbmVkIGludCxjb25zdCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiYp
AF9TX2NvbnN0cnVjdF9fSDFaUENjX1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFj
aGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgwMFJDUTIzc3RkdDlhbGxvY2F0
b3IxWmNHUTIzc3RkMjBmb3J3YXJkX2l0ZXJhdG9yX3RhZ19QYwBfX1EyM3N0ZHQxMmJhc2ljX3N0
cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1BDY1JD
UTIzc3RkdDlhbGxvY2F0b3IxWmMAc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJh
aXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pjo6c3RkOjpiYXNpY19zdHJpbmc8Y2hhcixz
dGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pihjb25zdCBjaGFyKixj
b25zdCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiYpAGNsYXNzaWNfX1EyM3N0ZDZsb2NhbGUAc3RkOjps
b2NhbGU6OmNsYXNzaWMoKQAvZnJlZXNwYWNlL2JhY2t1cC9nY2NidWlsZC9zcGFyYy1zdW4tc29s
YXJpczIuNi9saWJzdGRjKysvc3JjLy4uLy4uLy4uLy4uL2djYy0yLjk1LjIvbGlic3RkYysrL2Jp
dHMvbG9jYWxlZndkLmgAX19RMjNzdGR0MTNiYXNpY19maWxlYnVmMlpjWlEyM3N0ZHQxMWNoYXJf
dHJhaXRzMVpjAHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4+
OjpzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+PigpAC9mcmVl
c3BhY2UvYmFja3VwL2djY2J1aWxkL3NwYXJjLXN1bi1zb2xhcmlzMi42L2xpYnN0ZGMrKy9zcmMv
Li4vLi4vLi4vLi4vZ2NjLTIuOTUuMi9saWJzdGRjKysvc3JjL2xvY2FsZS5jYwBfX1EzM3N0ZDZs
b2NhbGU1X0ltcGxVaVVpAHN0ZDo6bG9jYWxlOjpfSW1wbDo6c3RkOjpsb2NhbGU6Ol9JbXBsKHVu
c2lnbmVkIGludCx1bnNpZ25lZCBpbnQpAAAAAMkAEcwAAAAAAQAAAAEAAAo5/////wAAAGn/////
AAAAmgAAAAIAAAp8AAAKmgAACrgAAAq4AAAAAP/////////oAAAAAAARzAAAAAABAAAAAAAACjn/
////AAAAaf////8AAACaAAAAAgAACnwAAAqaABHLTAAAAIsAAAAAABB8AAAAAAEAAAAAAAAAAP//
//8AAABp/////wAAAJoAAAACAAAA9QAAAPUAEHlAAAACiAAAAAAABEQIAAAAAQAAAAEAAA6N////
/wAADrX/////AAAAmgAAAAIAAA79AAAPXP//////////AAAAAP////////+4AAAAAAAERAgAAAAB
AAAAAQAADo3/////AAAOtf////8AAACaAAAAAgAADv0AAA9c//////////8AAAAA/////////8AA
AAAAAARECAAAAAEAAAABAAAOjf////8AAA61/////wAAAJoAAAACAAAO/QAAD1z//////////wAA
AAD/////////yAAAAAAACWgQAAAAAQAAAAAAABLK/////wAAC/v/////AAAAmgAAAAIAABM5AAAT
OQAJZ1wAAADaAAAAAAAJaBAAAAABAAAAAQAAEsr/////AAAL+/////8AAACaAAAAAgAAEzkAABM5
//////////8AAAAA/////////+AAAAAAAAloEAAAAAEAAAABAAASyv////8AAAv7/////wAAAJoA
AAACAAATOQAAEzn//////////wAAAAD/////////6AAAAAAAEww4AAAAAQAAAAEAABDM/////wAA
DrX/////AAAAmgAAAAIAABEzAAARM///////////AAAAAP/////////gAAAAAAAESDwAAAABAAAA
AAAADo3/////AAAOtf////8AAACaAAAAAgAAFd0AABZCAARGlAAAAE0AAAAAABMMOAAAAAEAAAAB
AAAQzP////8AAA61/////wAAAJoAAAACAAARMwAAETP//////////wAAAAD/////////6AAAAAAA
EdxUAAAAAQAAAAAAABA//////wAAAGn/////AAAAmgAAAAIAACrgAAArAgAR2kAAAAAcAAAAAAAQ
fFAAAAABAAAAAQAAAAD/////AAAAaf////8AAACaAAAAAgAAAPUAAAD1//////////8AAAAA////
/////8AAAAAAABB8UAAAAAEAAAAAAAAAAP////8AAABp/////wAAAJoAAAACAAAA9QAAAPUAEHlA
AAACiAAAAAAAEHRYAAAAAQAAAAAAAAKu/////wAAAGn/////AAAAmgAAAAIAAAQeAAAEHgAQdCAA
AABJAAAAAAAERGAAAAABAAAAAAAADo3/////AAAOtf////8AAACaAAAAAgAADv0AAA9cAARCnAAA
ACcAAAAAAAREYAAAAAEAAAABAAAOjf////8AAA61/////wAAAJoAAAACAAAO/QAAD1z/////////
/wAAAAD/////////uAAAAAAABERgAAAAAQAAAAEAAA6N/////wAADrX/////AAAAmgAAAAIAAA79
AAAPXP//////////AAAAAP/////////QAAAAAAARzGAAAAABAAAAAQAACjn/////AAAAaf////8A
AACaAAAAAgAACnwAAAqa//////////8AAAAA/////////9gAAAAAABB4aAAAAAEAAAAAAAAIif//
//8AAABp/////wAAAJoAAAACAAAI9QAACPUAEHhMAAAATgAAAAAAEcx0AAAAAQAAAAEAAAo5////
/wAAAGn/////AAAAmgAAAAIAAAp8AAAKmv//////////AAAAAP/////////gAAAAAAARzHQAAAAB
AAAAAAAACjn/////AAAAaf////8AAACaAAAAAgAACnwAAAqaABHLTAAAAIsAAAAAABGAdAAAAAEA
AAAAAAAGHv////8AAABp/////wAAAJoAAAACAAAGiQAABokAEYBAAAAA2QAAAAAACTh8AAAAAQAA
AAAAAA15/////wAAC/v/////AAAAmgAAAAIAAA3pAAAN6QAJOFAAAASsAAAAAAAHPIQAAAABAAAA
AQAAIQf/////AAAL+/////8AAACaAAAAAgAAIXsAACG1AAANcgAADXIAAAAA/////////6AAAAEk
AAc8hAAAAAEAAAABAAAhB/////8AAAv7/////wAAAJoAAAACAAAhewAAIbUAAA1yAAANcgAAAAD/
////////sAAAATQACxCQAAAAAQAAAAH/////AAAAmgAAIyYAAACaAAAAmgAAAAYAACM2AAAjNv//
////////AAAAAP/////////wAAAAAAALEJAAAAABAAAAAP////8AAACaAAAjJgAAAJoAAACaAAAA
BgAAIzYAACM2AAsPzAAAAAAAAAAAAAlwlAAAAAEAAAAAAAASyv////8AAAv7/////wAAAJoAAAAC
AAAU4AAAFOAACW9cAAAAhQAAAAAAEdycAAAAAQAAAAAAABA//////wAAAGn/////AAAAmgAAAAIA
ACrgAAArAgAR2kAAAAAcAAAAAAAEOKQAAAABAAAAAAAAED//////AAAAaf////8AAACaAAAAAgAA
EMcAABDHAAQ4HAAAAJIAAAAAABB0qAAAAAEAAAAAAAACrv////8AAABp/////wAAAJoAAAACAAAE
HgAABB4AEHQgAAAASQAAAAAABGC0AAAAAQAAAAEAAA6N/////wAADrX/////AAAAmgAAAAIAABnS
AAAaPv//////////AAAAAP////////+4AAAAAAAEYLQAAAABAAAAAAAADo3/////AAAOtf////8A
AACaAAAAAgAAGdIAABo+AARdxAAAALYAAAAAABB8tAAAAAEAAAABAAAAAP////8AAABp/////wAA
AJoAAAACAAAA9QAAAPX//////////wAAAAD/////////oAAAAAAAEHy0AAAAAQAAAAEAAAAA////
/wAAAGn/////AAAAmgAAAAIAAAD1AAAA9f//////////AAAAAP////////+oAAAAAAAQfLQAAAAB
AAAAAQAAAAD/////AAAAaf////8AAACaAAAAAgAAAPUAAAD1//////////8AAAAA/////////+AA
AAAAAAsQuAAAAAEAAAAB/////wAAAJoAACMmAAAAmgAAAJoAAAAGAAAjNgAAIzb//////////wAA
AAD/////////8AAAAAAACxC4AAAAAQAAAAD/////AAAAmgAAIyYAAACaAAAAmgAAAAYAACM2AAAj
NgALD8wAAAAAAAAAAAAF5LwAAAABAAAAAQAAJXT/////AAAL+/////8AAACaAAAAAgAAJQYAACUG
//////////8AAAAA/////////3gAAAAAAAXkvAAAAAEAAAAAAAAldP////8AAAv7/////wAAAJoA
AAACAAAlBgAAJQYABd/gAAAAiQAAAAAABES8AAAAAQAAAAAAAA6N/////wAADrX/////AAAAmgAA
AAIAAA79AAAPXAAEQpwAAAArAAAAAAAQeLgAAAABAAAAAAAACIn/////AAAAaf////8AAACaAAAA
AgAACPUAAAj1ABB4TAAAAE4AAAAAABGAxAAAAAEAAAAAAAAGHv////8AAABp/////wAAAJoAAAAC
AAAGiQAABokAEYBAAAAA2QAAAAAAEZDIAAAAAQAAAAAAACsi/////wAAAGn/////AAAAmgAAAAIA
ACtoAAArlwARkHgAAAAfAAAAAAAS1MgAAAABAAAAAAAAEMz/////AAAOtf////8AAACaAAAAAgAA
Ee0AABHtABLQcAAAALMAAAAAABB8yAAAAAEAAAABAAAAAP////8AAABp/////wAAAJoAAAACAAAA
9QAAAPX//////////wAAAAD/////////2AAAAAAAEHzIAAAAAQAAAAAAAAAA/////wAAAGn/////
AAAAmgAAAAIAAAD1AAAA9QAQeUAAAAKIAAAAAAALZNgAAAABAAAAAf////8AAACaAAAjJgAAAJoA
AACaAAAABgAAKWAAAClg//////////8AAAAA//////////gAAAAAAAtk2AAAAAEAAAAA/////wAA
AJoAACMmAAAAmgAAAJoAAAAGAAApYAAAKWAAC1+cAAAAAAAAAAAACXDYAAAAAQAAAAAAABLK////
/wAAC/v/////AAAAmgAAAAIAABTgAAAU4AAJb1wAAACFAAAAAAASDOQAAAABAAAAAAAACjn/////
AAAAaf////8AAACaAAAAAgAAKmcAACpnABIL3AAAADgAAAAAABB0+AAAAAEAAAAAAAACrv////8A
AABp/////wAAAJoAAAACAAAEHgAABB4AEHQgAAAASQAAAAAAEtEAAAAAAQAAAAAAABDM/////wAA
DrX/////AAAAmgAAAAIAABHtAAAR7QAS0HAAAACeAAAAAAAIGQwAAAABAAAAAQAAIQf/////AAAL
+/////8AAACaAAAAAgAAJesAACYk//////////8AAAAA/////////7gAAAAAAAtlFAAAAAEAAAAB
/////wAAAJoAACMmAAAAmgAAAJoAAAAGAAApYAAAKWD//////////wAAAAD/////////+AAAAAAA
C2UUAAAAAQAAAAD/////AAAAmgAAIyYAAACaAAAAmgAAAAYAAClgAAApYAALX5wAAAAAAAAAAAAR
gRQAAAABAAAAAAAABh7/////AAAAaf////8AAACaAAAAAgAABokAAAaJABGAQAAAANkAAAAAAAlB
HAAAAAEAAAAAAAALiP////8AAAv7/////wAAAJoAAAACAAAuUQAALrIACUDwAAACuQAAAAAAB/Ec
AAAAAQAAAAEAACEH/////wAAC/v/////AAAAmgAAAAIAACfuAAAoJ///////////AAAAAP//////
///IAAAAAAAH8RwAAAABAAAAAAAAIQf/////AAAL+/////8AAACaAAAAAgAAJ+4AACgnAAfumAAA
BCUAAAAAAATlIAAAAAEAAAAAAAAwmf////8AAAv7/////wAAAJoAAAACAAAxBgAAMSAABOTEAAAA
PAAAAAAAEHkgAAAAAQAAAAEAAAiJ/////wAAAGn/////AAAAmgAAAAIAAAj1AAAI9f//////////
AAAAAP/////////gAAAAAAAQeSAAAAABAAAAAQAACIn/////AAAAaf////8AAACaAAAAAgAACPUA
AAj1//////////8AAAAA/////////+gAAAAAABLVLAAAAAEAAAAAAAAQzP////8AAA61/////wAA
AJoAAAACAAAR7QAAEe0AEtBwAAAAtwAAAAAAExE0AAAAAQAAAAAAABDM/////wAADrX/////AAAA
mgAAAAIAABrQAAAa0AATEOAAAADHAAAAAAAEMTgAAAABAAAAAAAAED//////AAAAaf////8AAACa
AAAAAgAAEHIAABByAAQuqAAAAFUAAAAAABLxQAAAAAEAAAAAAAAYYP////8AAA61/////wAAAJoA
AAACAAAcugAAHUIAEvEoAAABMQAAAAAAEd1MAAAAAQAAAAAAABA//////wAAAGn/////AAAAmgAA
AAIAACrgAAArAgAR2kAAAAAdAAAAAAAC1UgAAAABAAAAAP////8AAACaAAApCAAAAJoAAACaAAAA
BgAAKVkAAClZAALUwAAAAAAAAAAAAARRWAAAAAEAAAAAAAAOjf////8AAA61/////wAAAJoAAAAC
AAAV3QAAFkIABEaUAAAAhQAAAAAABE1cAAAAAQAAAAAAAA6N/////wAADrX/////AAAAmgAAAAIA
ABXdAAAWQgAERpQAAABsAAAAAAAQfVwAAAABAAAAAAAAAAD/////AAAAaf////8AAACaAAAAAgAA
APUAAAD1ABB5QAAAAowAAAAAABHdYAAAAAEAAAAAAAAQP/////8AAABp/////wAAAJoAAAACAAAq
4AAAKwIAEdpAAAAAHQAAAAAACYVsAAAAAQAAAAEAABap/////wAAC/v/////AAAAmgAAAAIAABcg
AAAXb///////////AAAAAP////////84AAAAAAAJhWwAAAABAAAAAAAAFqn/////AAAL+/////8A
AACaAAAAAgAAFyAAABdvAAmEoAAAASYAAAAAAAWhdAAAAAEAAAAAAAAh+/////8AAAv7/////wAA
AJoAAAACAAAicQAAInEABaCoAAAC5wAAAAAACTF0AAAAAQAAAAEAAAuI/////wAAC/v/////AAAA
mgAAAAIAAAzLAAAMywAADXIAAA1yAAAAAP/////////oAAABTAAJMXQAAAABAAAAAAAAC4j/////
AAAL+/////8AAACaAAAAAgAADMsAAAzLAAkwnAAAAqQAAAAAABB1dAAAAAEAAAABAAACrv////8A
AABp/////wAAAJoAAAACAAAEHgAABB7//////////wAAAAD/////////2AAAAAAAEHV0AAAAAQAA
AAEAAAKu/////wAAAGn/////AAAAmgAAAAIAAAQeAAAEHv//////////AAAAAP/////////gAAAA
AAAQdXQAAAABAAAAAQAAAq7/////AAAAaf////8AAACaAAAAAgAABB4AAAQe//////////8AAAAA
/////////+gAAAAAAAlBhAAAAAEAAAAAAAAsWf////8AAAv7/////wAAAJoAAAACAAAszQAALTsA
CUFIAAAAgAAAAAAABdWEAAAAAQAAAAAAACH7/////wAAC/v/////AAAAmgAAAAIAACd5AAAneQAF
1OwAAANuAAAAAAAS0YwAAAABAAAAAAAAEMz/////AAAOtf////8AAACaAAAAAgAAEe0AABHtABLQ
cAAAAKEAAAAAAAkxkAAAAAEAAAABAAALiP////8AAAv7/////wAAAJoAAAACAAAMywAADMsAAA1y
AAANcgAAAAD/////////2AAAATwACTGQAAAAAQAAAAAAAAuI/////wAAC/v/////AAAAmgAAAAIA
AAzLAAAMywAJMJwAAAKkAAAAAAARgZAAAAABAAAAAQAABh7/////AAAAaf////8AAACaAAAAAgAA
BokAAAaJ//////////8AAAAA/////////9gAAAAAABHBuAAAAAEAAAABAAAgFf////8AAABp////
/wAAAJoAAAACAAAgRAAAIKL//////////wAAAAD/////////4AAAAAAAEcG4AAAAAQAAAAAAACAV
/////wAAAGn/////AAAAmgAAAAIAACBEAAAgogARwWwAAABWAAAAAAATEbgAAAABAAAAAQAAEMz/
////AAAOtf////8AAACaAAAAAgAAGtAAABrQ//////////8AAAAA/////////+gAAAAAABB9vAAA
AAEAAAABAAAAAP////8AAABp/////wAAAJoAAAACAAAA9QAAAPX//////////wAAAAD/////////
0AAAAAAAEH28AAAAAQAAAAAAAAAA/////wAAAGn/////AAAAmgAAAAIAAAD1AAAA9QAQeUAAAAKM
AAAAAAAOecAAAAABAAAAAf////8AAACaAAAjJgAAAJoAAACaAAAABgAAKZEAACmR//////////8A
AAAA////////+74AAAAAAARJyAAAAAEAAAAAAAAOjf////8AAA61/////wAAAJoAAAACAAAV3QAA
FkIABEaUAAAAUgAAAAAADmXUAAAAAQAAAAD/////AAAAmgAAIyYAAACaAAAAmgAAAAYAACluAAAp
bgAOZZgAAAAAAAAAAAAQddAAAAABAAAAAAAAAq7/////AAAAaf////8AAACaAAAAAgAAAx4AAAMe
ABB1pAAAAFIAAAAAAA552AAAAAEAAAAA/////wAAAJoAACMmAAAAmgAAAJoAAAAGAAApkQAAKZEA
Dm+QAAAAAAAAAAAACmHgAAAAAQAAAAAAACnH/////wAAKgb/////AAAAmgAAAAIAACpLAAAqSwAK
YVQAAABUAAAAAAATDewAAAABAAAAAAAAGGD/////AAAOtf////8AAACaAAAAAgAAGMsAABjLABMN
0AAAASgAAAAAAAWx8AAAAAEAAAAAAAAh+/////8AAAv7/////wAAAJoAAAACAAAmaQAAJmkABbEU
AAAEvAAAAAAABaH8AAAAAQAAAAAAACH7/////wAAC/v/////AAAAmgAAAAIAACJxAAAicQAFoKgA
AALnAAAAAAAEVgAAAAABAAAAAAAADo3/////AAAOtf////8AAACaAAAAAgAAFd0AABZCAARGlAAA
AJ4AAAAAABGSBAAAAAEAAAAAAAAPtv////8AAABp/////wAAAJoAAAACAAAP/AAAEB8AEZF4AAAA
KgAAAAAAEtIYAAAAAQAAAAAAABDM/////wAADrX/////AAAAmgAAAAIAABHtAAAR7QAS0HAAAACk
AAAAAAAH8hwAAAABAAAAAQAAIQf/////AAAL+/////8AAACaAAAAAgAAJ+4AACgn//////////8A
AAAA/////////9gAAAAAABB2IAAAAAEAAAAAAAACrv////8AAABp/////wAAAJoAAAACAAADHgAA
Ax4AEHWkAAAAUgAAAAAADm40AAAAAQAAAAD/////AAAAmgAAIyYAAACaAAAAmgAAAAYAACl9AAAp
fQAObUgAAAAAAAAAAAAQfjQAAAABAAAAAQAAAAD/////AAAAaf////8AAACaAAAAAgAAAPUAAAD1
//////////8AAAAA/////////6AAAAAAABB+NAAAAAEAAAAAAAAAAP////8AAABp/////wAAAJoA
AAACAAAA9QAAAPUAEHlAAAACjAAAAAAABCI8AAAAAQAAAAD/////AAAAmgAAKQgAAACaAAAAmgAA
AAYAACpZAAAqWQAEIjgAAAAAAAAAAAABfjgAAAABAAAAAP////8AAACaAAApCAAAAJoAAACaAAAA
BgAAKcAAACnAAAF6EAAAAAAAAAAAAAWyPAAAAAEAAAABAAAh+/////8AAAv7/////wAAAJoAAAAC
AAAmaQAAJmn//////////wAAAAD/////////sAAAAAAABGJMAAAAAQAAAAEAAA6N/////wAADrX/
////AAAAmgAAAAIAACNIAAAjtf//////////AAAAAP/////////QAAAAAAAEYkwAAAABAAAAAAAA
Do3/////AAAOtf////8AAACaAAAAAgAAI0gAACO1AARhQAAAAMIAAAAAAA5ebAAAAAEAAAAB////
/wAAAJoAACMmAAAAmgAAAJoAAAAGAAAppwAAKaf//////////wAAAAD////////7/wAAAAAADl5s
AAAAAQAAAAD/////AAAAmgAAIyYAAACaAAAAmgAAAAYAACmnAAAppwAOWCAAAAAAAAAAAAAJSmgA
AAABAAAAAAAAEsr/////AAAL+/////8AAACaAAAAAgAAHdQAAB5nAAlJlAAAALgAAAAAAARebAAA
AAEAAAABAAAOjf////8AAA61/////wAAAJoAAAACAAAZ0gAAGj4AABnLAAAZywAAAAD/////////
6AAAAAAAE650AAAAAQAAAAAAACH7/////wAAC/v/////AAAAmgAAAAIAACcHAAAnBwATqAgAAASl
AAAAAAAQdnAAAAABAAAAAAAAAq7/////AAAAaf////8AAACaAAAAAgAAAx4AAAMeABB1pAAAAFIA
AAAAABHKeAAAAAEAAAAAAAAGHv////8AAABp/////wAAAJoAAAACAAAHiQAAB4kAEco8AAAAywAA
AAAABOagAAAAAQAAAAAAADCZ/////wAAC/v/////AAAAmgAAAAIAADEGAAAxIAAE5MQAAABCAAAA
AAAS0qQAAAABAAAAAAAAEMz/////AAAOtf////8AAACaAAAAAgAAEe0AABHtABLQcAAAAKcAAAAA
AAXirAAAAAEAAAAAAAAh+/////8AAAv7/////wAAAJoAAAACAAAlBgAAJQYABd/gAAAEDQAAAAAA
CbasAAAAAQAAAAAAAAuI/////wAAC/v/////AAAAmgAAAAIAAB9WAAAfqQAJtlgAAANQAAAAAAAI
CrwAAAABAAAAAQAAIQf/////AAAL+/////8AAACaAAAAAgAAJC8AACQv//////////8AAAAA////
/////8gAAAAAAAgKvAAAAAEAAAAAAAAhB/////8AAAv7/////wAAAJoAAAACAAAkLwAAJC8ACAng
AAAEIQAAAAAABFK4AAAAAQAAAAAAAA6N/////wAADrX/////AAAAmgAAAAIAABXdAAAWQgAERpQA
AACJAAAAAAAR+sQAAAABAAAAAAAAAAD/////AAAAaf////8AAACaAAAAAgAACroAAAq6ABH51AAA
AZ0AAAAAAAai0AAAAAEAAAAAAAAvkv////8AAAv7/////wAAAJoAAAACAAAwAgAAMDYABqIcAAAB
LgAAAAAABF7UAAAAAQAAAAEAAA6N/////wAADrX/////AAAAmgAAAAIAABnSAAAaPv//////////
AAAAAP////////+4AAAAAAAQftQAAAABAAAAAQAAAAD/////AAAAaf////8AAACaAAAAAgAAAPUA
AAD1//////////8AAAAA/////////6gAAAAAABB+1AAAAAEAAAABAAAAAP////8AAABp/////wAA
AJoAAAACAAAA9QAAAPX//////////wAAAAD/////////oAAAAAAAEg7cAAAAAQAAAAAAAAo5////
/wAAAGn/////AAAAmgAAAAIAACvZAAAr2QASDdAAAABKAAAAAAATquwAAAABAAAAAAAAIfv/////
AAAL+/////8AAACaAAAAAgAAJwcAACcHABOoCAAABJIAAAAAAARe6AAAAAEAAAABAAAOjf////8A
AA61/////wAAAJoAAAACAAAZ0gAAGj7//////////wAAAAD/////////0AAAAAAABF7oAAAAAQAA
AAAAAA6N/////wAADrX/////AAAAmgAAAAIAABnSAAAaPgAEXcQAAACwAAAAAAAQcugAAAABAAAA
AAAAAq7/////AAAAaf////8AAACaAAAAAgAABR4AAAUeABBypAAAADAAAAAAABB27AAAAAEAAAAB
AAACrv////8AAABp/////wAAAJoAAAACAAADHgAAAx7//////////wAAAAD/////////2AAAAAAA
EHbsAAAAAQAAAAEAAAKu/////wAAAGn/////AAAAmgAAAAIAAAMeAAADHv//////////AAAAAP//
///////gAAAAAAAQduwAAAABAAAAAQAAAq7/////AAAAaf////8AAACaAAAAAgAAAx4AAAMe////
//////8AAAAA/////////+gAAAAAAARK/AAAAAEAAAAAAAAOjf////8AAA61/////wAAAJoAAAAC
AAAV3QAAFkIABEaUAAAAWQAAAAAABE8AAAAAAQAAAAAAAA6N/////wAADrX/////AAAAmgAAAAIA
ABXdAAAWQgAERpQAAAB4AAAAAAAHOwwAAAABAAAAAQAAIQf/////AAAL+/////8AAACaAAAAAgAA
IXsAACG1AAANcgAADXIAAAAA/////////9AAAAFUAAc7DAAAAAEAAAAAAAAhB/////8AAAv7////
/wAAAJoAAAACAAAhewAAIbUABzo4AAADtAAAAAAACb8IAAAAAQAAAAAAAAuI/////wAAC/v/////
AAAAmgAAAAIAABQFAAAUBQAJvrQAAALKAAAAAAATCxQAAAABAAAAAAAAEMz/////AAAOtf////8A
AACaAAAAAgAAETMAABEzABMK6AAAAMcAAAAAAAm/HAAAAAEAAAAAAAALiP////8AAAv7/////wAA
AJoAAAACAAAUBQAAFAUACb60AAACygAAAAAABRMsAAAAAQAAAAAAACEH/////wAAC/v/////AAAA
mgAAAAIAAC9kAAAvewAFC0AAAATjAAAAAAAJhzwAAAABAAAAAQAAFqn/////AAAL+/////8AAACa
AAAAAgAAF8IAABgP//////////8AAAAA/////////zgAAAAAAAmHPAAAAAEAAAAAAAAWqf////8A
AAv7/////wAAAJoAAAACAAAXwgAAGA8ACYbUAAABJgAAAAAAEHM4AAAAAQAAAAAAAAKu/////wAA
AGn/////AAAAmgAAAAIAAAUeAAAFHgAQcqQAAAAwAAAAAAAFE0AAAAABAAAAAAAAIQf/////AAAL
+/////8AAACaAAAAAgAAL2QAAC97AAULQAAABOMAAAAAAARDVAAAAAEAAAAAAAAOjf////8AAA61
/////wAAAJoAAAACAAAO/QAAD1wABEKcAAAAJgAAAAAAEwtkAAAAAQAAAAAAABDM/////wAADrX/
////AAAAmgAAAAIAABEzAAARMwATCugAAADHAAAAAAAFq2wAAAABAAAAAAAAIfv/////AAAL+///
//8AAACaAAAAAgAAJGgAACRoAAWq4AAAA6gAAAAAAAc7aAAAAAEAAAABAAAhB/////8AAAv7////
/wAAAJoAAAACAAAhewAAIbUAAA1yAAANcgAAAAD/////////wAAAAUQABztoAAAAAQAAAAAAACEH
/////wAAC/v/////AAAAmgAAAAIAACF7AAAhtQAHOjgAAAO0AAAAAAAR+2wAAAABAAAAAAAAAAD/
////AAAAaf////8AAACaAAAAAgAACroAAAq6ABH51AAAAaAAAAAAABB3eAAAAAEAAAAAAAAIif//
//8AAABp/////wAAAJoAAAACAAAJigAACYoAEHdYAAAASQAAAAAABQuEAAAAAQAAAAAAADCZ////
/wAAC/v/////AAAAmgAAAAIAAC9kAAAvewAFC0AAAAFDAAAAAAAET4QAAAABAAAAAAAADo3/////
AAAOtf////8AAACaAAAAAgAAFd0AABZCAARGlAAAAHkAAAAAABBziAAAAAEAAAAAAAACrv////8A
AABp/////wAAAJoAAAACAAAFHgAABR4AEHKkAAAAMAAAAAAACXOYAAAAAQAAAAAAABLK/////wAA
C/v/////AAAAmgAAAAIAAC26AAAtugAJcxwAAACDAAAAAAAFo5gAAAABAAAAAAAAIfv/////AAAL
+/////8AAACaAAAAAgAAInEAACJxAAWgqAAAAvMAAAAAAAlvmAAAAAEAAAAAAAASyv////8AAAv7
/////wAAAJoAAAACAAAU4AAAFOAACW9cAAAAfQAAAAAACX+cAAAAAQAAAAEAAAuI/////wAAC/v/
////AAAAmgAAAAIAAAwfAAAMbv//////////AAAAAP/////////oAAAAAAAJf5wAAAABAAAAAAAA
C4j/////AAAL+/////8AAACaAAAAAgAADB8AAAxuAAl/VAAAAqQAAAAAABJDnAAAAAEAAAABAAAA
AP////8AAABp/////wAAAJoAAAACAAAB4AAAAkv//////////wAAAAD/////////6AAAAAAAEHuc
AAAAAQAAAAEAAAAA/////wAAAGn/////AAAAmgAAAAIAAAD1AAAA9f//////////AAAAAP//////
///AAAAAAAAQe5wAAAABAAAAAAAAAAD/////AAAAaf////8AAACaAAAAAgAAAPUAAAD1ABB5QAAA
AoUAAAAAABOrrAAAAAEAAAABAAAh+/////8AAAv7/////wAAAJoAAAACAAAnBwAAJwf/////////
/wAAAAD/////////2AAAAAAACWesAAAAAQAAAAAAABLK/////wAAC/v/////AAAAmgAAAAIAABM5
AAATOQAJZ1wAAADaAAAAAAAFr7QAAAABAAAAAAAAIfv/////AAAL+/////8AAACaAAAAAgAAKGoA
AChqAAWvMAAABCkAAAAAAAlvtAAAAAEAAAAAAAASyv////8AAAv7/////wAAAJoAAAACAAAU4AAA
FOAACW9cAAAAfQAAAAAAEwu0AAAAAQAAAAAAABDM/////wAADrX/////AAAAmgAAAAIAABEzAAAR
MwATCugAAADHAAAAAAAJf7QAAAABAAAAAQAAC4j/////AAAL+/////8AAACaAAAAAgAADB8AAAxu
//////////8AAAAA/////////+AAAAAAAAl/tAAAAAEAAAAAAAALiP////8AAAv7/////wAAAJoA
AAACAAAMHwAADG4ACX9UAAACpAAAAAAAC1+8AAAAAQAAAAH/////AAAAmgAAIyYAAACaAAAAmgAA
AAYAAClgAAApYP//////////AAAAAP/////////4AAAAAAALX7wAAAABAAAAAP////8AAACaAAAj
JgAAAJoAAACaAAAABgAAKWAAAClgAAtfnAAAAAAAAAAAAAWrvAAAAAEAAAABAAAh+/////8AAAv7
/////wAAAJoAAAACAAAkaAAAJGj//////////wAAAAD/////////4AAAAAAAE6vAAAAAAQAAAAEA
ACH7/////wAAC/v/////AAAAmgAAAAIAACcHAAAnB///////////AAAAAP////////+wAAAAAAAT
q8AAAAABAAAAAAAAIfv/////AAAL+/////8AAACaAAAAAgAAJwcAACcHABOoCAAABJIAAAAAAAgX
xAAAAAEAAAABAAAhB/////8AAAv7/////wAAAJoAAAACAAAl6wAAJiT//////////wAAAAD/////
////yAAAAAAACBfEAAAAAQAAAAAAACEH/////wAAC/v/////AAAAmgAAAAIAACXrAAAmJAAIFsAA
AAQ5AAAAAAAEX8AAAAABAAAAAQAADo3/////AAAOtf////8AAACaAAAAAgAAGdIAABo+////////
//8AAAAA/////////7gAAAAAAARfwAAAAAEAAAAAAAAOjf////8AAA61/////wAAAJoAAAACAAAZ
0gAAGj4ABF3EAAAAswAAAAAACb/IAAAAAQAAAAEAAAuI/////wAAC/v/////AAAAmgAAAAIAABQF
AAAUBQAAFdgAABXYAAAAAP/////////Q////0AAJv8gAAAABAAAAAAAAC4j/////AAAL+/////8A
AACaAAAAAgAAFAUAABQFAAm+tAAAArkAAAAAAAm/yAAAAAEAAAABAAALiP////8AAAv7/////wAA
AJoAAAACAAAUBQAAFAUAABXYAAAV2AAAAAD/////////2P///9gAEHfIAAAAAQAAAAAAAAiJ////
/wAAAGn/////AAAAmgAAAAIAAAmKAAAJigAQd1gAAABJAAAAAAAIC9AAAAABAAAAAQAAIQf/////
AAAL+/////8AAACaAAAAAgAAJC8AACQv//////////8AAAAA/////////7gAAAAAAAln1AAAAAEA
AAAAAAASyv////8AAAv7/////wAAAJoAAAACAAATOQAAEzkACWdcAAAA2gAAAAAAEx/oAAAAAQAA
AAAAABhg/////wAADrX/////AAAAmgAAAAIAABumAAAcLgATH8QAAAEvAAAAAAAQc/AAAAABAAAA
AQAAAq7/////AAAAaf////8AAACaAAAAAgAABR4AAAUe//////////8AAAAA/////////9gAAAAA
ABBz8AAAAAEAAAABAAACrv////8AAABp/////wAAAJoAAAACAAAFHgAABR7//////////wAAAAD/
////////4AAAAAAAEHPwAAAAAQAAAAEAAAKu/////wAAAGn/////AAAAmgAAAAIAAAUeAAAFHv//
////////AAAAAP/////////oAAAAAAALD/gAAAABAAAAAf////8AAACaAAAjJgAAAJoAAACaAAAA
BgAAIzYAACM2//////////8AAAAA//////////AAAAAAAAsP+AAAAAEAAAAA/////wAAAJoAACMm
AAAAmgAAAJoAAAAGAAAjNgAAIzYACw/MAAAAAAAAAAAAAAEQAAAAAQAAAAD////+AAAAAQAAACM5
WcW7AAEAeAAVIuEAFiLkABkjoAAZ7ZSmxrc6AABYegAAAAAAAAAaAAAAzCAtY2FjaGUtZGlyPS90
bXAvcHVyaWZ5ICAgLWcrKz15ZXMgICItcHVyaWZ5IiAiLWNhY2hlLWRpcj0vdG1wIiAtcHVyaWZ5
LWhvbWU9L29wdC9wdXJpZnkvcHVyaWZ5LTQuNS4xLXNvbGFyaXMyACAiLWNhY2hlLWRpcj0vdG1w
L3B1cmlmeSIAAAAAAAAAAAAnLi9UZXN0X2VxdURlYnVnUHVyZScgJy4uLy4uLy4uL2RhdGEvZXF1
L1Rlc3RfZXF1X29rLnR4dCcAAAAAANAAAAAlAAAAAAAAAAMAAAAM7//0EAAAAAQAAAAE7//0EAAA
AAYAAAABABB7nAAAAAAAEgskABHalAARj4gABC/cAAAABgAAAAHv//OI7//0UO//9Mjv//VY7//1
4O//9lAAAAAF7//0EAAAAAAAAAAAAAAAAAAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAB
ABB7nAASQ5wAEgskABHalAARj4gABC/cAAAABgAAAAHv//OI7//0UO//9Mjv//VY7//14O//9lAA
AADQAAAAJQAAAAAAAAAEAAAADO//9LAAAAAEAAAABO//9LAAAAAGAAAAAQAQfAAAAAAAABILJAAR
2pQAEY+IAAQv3AAAAAYAAAAB7//ziO//9FDv//TI7//1WO//9eDv//ZQAAAABe//9LAAAAAAAAAA
AAAAAAAAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAQfAAAEkOcABILJAAR2pQAEY+I
AAQv3AAAAAYAAAAB7//ziO//9FDv//TI7//1WO//9eDv//ZQAAAA0AAAACUAAAAAAAAABQAAAAzv
//QQAAAABAAAAATv//QQAAAABgAAAAEAEHxQAAAAAAASCyQAEdqUABGPiAAEL9wAAAAGAAAAAe//
84jv//RQ7//0yO//9Vjv//Xg7//2UAAAAAXv//QQAAAAAAAAAAAAAAAAAAAAJQAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAABgAAAAEAEHxQABJDnAASCyQAEdqUABGPiAAEL9wAAAAGAAAAAe//84jv//RQ
7//0yO//9Vjv//Xg7//2UAAAANAAAAAlAAAAAAAAAAYAAAAY7//0MAAAAAQAAAAE7//0MAAAAAYA
AAABABB10AAAAAAAEkOcABILJAAR2pQAEY+IAAAABgAAAAHv//MA7//ziO//9FDv//TI7//1WO//
9eAAAAAF7//0MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABABB1
0AAQfLQAEkOcABILJAAR2pQAEY+IAAAABgAAAAHv//MA7//ziO//9FDv//TI7//1WO//9eAAAADQ
AAAAJQAAAAAAAAAHAAAAGO//8/gAAAAEAAAABO//8/gAAAAGAAAAAQAQdiAAAAAAABJDnAASCyQA
EdqUABGPiAAAAAYAAAAB7//zAO//84jv//RQ7//0yO//9Vjv//XgAAAABe//8/gAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAQdiAAEHy0ABJDnAASCyQAEdqUABGP
iAAAAAYAAAAB7//zAO//84jv//RQ7//0yO//9Vjv//XgAAAA0AAAACUAAAAAAAAACAAAABjv//Pw
AAAABAAAAATv//PwAAAABgAAAAEAEHZwAAAAAAASQ5wAEgskABHalAARj4gAAAAGAAAAAe//8wDv
//OI7//0UO//9Mjv//VY7//14AAAAAXv//PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAABgAAAAEAEHZwABB8tAASQ5wAEgskABHalAARj4gAAAAGAAAAAe//8wDv//OI7//0
UO//9Mjv//VY7//14AAAANAAAAAlAAAAAAAAAAkAAAAY7//zcAAAAAQAAAAE7//zcAAAAAYAAAAB
ABB0WAAAAAAAEHy0ABJDnAASCyQAEdqUAAAABgAAAAHv//Jw7//zAO//84jv//RQ7//0yO//9VgA
AAAF7//zcAACShgAAAAAAAAAAAAAAAAAAAAAAAAACQAADEAAAAAAAAAAAAAAAAYAAAABABB0WAAQ
duwAEHy0ABJDnAASCyQAEdqUAAAABgAAAAHv//Jw7//zAO//84jv//RQ7//0yO//9VgAAADQAAAA
JQAAAAAAAAAKAAAAGO//82gAAAAEAAAABO//82gAAAAGAAAAAQAQdKgAAAAAABB8tAASQ5wAEgsk
ABHalAAAAAYAAAAB7//ycO//8wDv//OI7//0UO//9Mjv//VYAAAABe//82gAAkoYAAAAAAAAAAAA
AAAAAAAAAAAAAAkAAAxAAAAAAAAAAAAAAAAGAAAAAQAQdKgAEHbsABB8tAASQ5wAEgskABHalAAA
AAYAAAAB7//ycO//8wDv//OI7//0UO//9Mjv//VYAAAA0AAAACUAAAAAAAAACwAAABjv//NgAAAA
BAAAAATv//NgAAAABgAAAAEAEHT4AAAAAAAQfLQAEkOcABILJAAR2pQAAAAGAAAAAe//8nDv//MA
7//ziO//9FDv//TI7//1WAAAAAXv//NgAAJKGAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAMQAAAAAAA
AAAAAAAABgAAAAEAEHT4ABB27AAQfLQAEkOcABILJAAR2pQAAAAGAAAAAe//8nDv//MA7//ziO//
9FDv//TI7//1WAAAANAAAAAlAAAAAAAAAAwAAAAY7//y6AAAAAQAAAAE7//y6AAAAAYAAAABABBy
6AAAAAAAEHbsABB8tAASQ5wAEgskAAAABgAAAAHv//Ho7//ycO//8wDv//OI7//0UO//9MgAAAAF
7//y6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABABBy6AAQdXQA
EHbsABB8tAASQ5wAEgskAAAABgAAAAHv//Ho7//ycO//8wDv//OI7//0UO//9MgAAADQAAAAJQAA
AAAAAAANAAAAGO//8uAAAAAEAAAABO//8uAAAAAGAAAAAQAQczgAAAAAABB27AAQfLQAEkOcABIL
JAAAAAYAAAAB7//x6O//8nDv//MA7//ziO//9FDv//TIAAAABe//8uAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAQczgAEHV0ABB27AAQfLQAEkOcABILJAAAAAYA
AAAB7//x6O//8nDv//MA7//ziO//9FDv//TIAAAA0AAAACUAAAAAAAAADgAAABjv//LYAAAABAAA
AATv//LYAAAABgAAAAEAEHOIAAAAAAAQduwAEHy0ABJDnAASCyQAAAAGAAAAAe//8ejv//Jw7//z
AO//84jv//RQ7//0yAAAAAXv//LYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAABgAAAAEAEHOIABB1dAAQduwAEHy0ABJDnAASCyQAAAAGAAAAAe//8ejv//Jw7//zAO//84jv
//RQ7//0yAAAANAAAAAlAAAAAAAAAA8AAAAa7//yWAAAAAQAAAAE7//yWAAAAAYAAAABABGAdAAA
AAAAEHV0ABB27AAQfLQAEkOcAAAABgAAAAHv//FY7//x6O//8nDv//MA7//ziO//9FAAAAAF7//y
WAACShgAAAAAAAAAAAAAAAAAAAAALXB1cmlmeV8AAAAAAAAAAAAAAAYAAAABABGAdAAQc/AAEHV0
ABB27AAQfLQAEkOcAAAABgAAAAHv//FY7//x6O//8nDv//MA7//ziO//9FAAAADQAAAAJQAAAAAA
AAAQAAAAGu//8lAAAAAEAAAABO//8lAAAAAGAAAAAQARgMQAAAAAABB1dAAQduwAEHy0ABJDnAAA
AAYAAAAB7//xWO//8ejv//Jw7//zAO//84jv//RQAAAABe//8lAAAkoYAAAAAAAAAAAAAAAAAAAA
AC1wdXJpZnlfAAAAAAAAAAAAAAAGAAAAAQARgMQAEHPwABB1dAAQduwAEHy0ABJDnAAAAAYAAAAB
7//xWO//8ejv//Jw7//zAO//84jv//RQAAAA0AAAACUAAAAAAAAAEQAAABrv//JIAAAABAAAAATv
//JIAAAABgAAAAEAEYEUAAAAAAAQdXQAEHbsABB8tAASQ5wAAAAGAAAAAe//8Vjv//Ho7//ycO//
8wDv//OI7//0UAAAAAXv//JIAAJKGAAAAAAAAAAAAAAAAAAAAAAtcHVyaWZ5XwAAAAAAAAAAAAAA
BgAAAAEAEYEUABBz8AAQdXQAEHbsABB8tAASQ5wAAAAGAAAAAe//8Vjv//Ho7//ycO//8wDv//OI
7//0UAAAANAAAAAlAAAAAAAAABIAAAAa7//xwAAAAAQAAAAE7//xwAAAAAYAAAABABHKeAAAAAAA
EHPwABB1dAAQduwAEHy0AAAABgAAAAHv//DY7//xWO//8ejv//Jw7//zAO//84gAAAAF7//xwF81
MTM3AAAAAAAAAAAAAAAAAAAAAAAA0AAAACUAAAAAAAAAAAAAAAYAAAABABHKeAARgZAAEHPwABB1
dAAQduwAEHy0AAAABgAAAAHv//DY7//xWO//8ejv//Jw7//zAO//84gAAADQAAAAJQAAAAAAAAAT
AAAADO//9CgAAAAEAAAABO//9CgAAAAGAAAAAQAQfMgAAAAAABILJAAR2pQAEY+IAAQv3AAAAAYA
AAAB7//ziO//9FDv//TI7//1WO//9eDv//ZQAAAABe//9Cjv/+/YAAAAAQAAAADv//Dw7//xWAAD
79QAEcp4AAAAAAAAAAAAAAAGAAAAAQAQfMgAEkOcABILJAAR2pQAEY+IAAQv3AAAAAYAAAAB7//z
iO//9FDv//TI7//1WO//9eDv//ZQAAAA0AAAACUAAAAAAAAAFAAAAAzv//SwAAAABAAAAATv//Sw
AAAABgAAAAEAEH1cAAAAAAASCyQAEdqUABGPiAAEL9wAAAAGAAAAAe//84jv//RQ7//0yO//9Vjv
//Xg7//2UAAAAAXv//Sw7//v2AAAAAEAAAAA7//w8O//8VgAA+/UABHKeAAAAAAAAAAAAAAABgAA
AAEAEH1cABJDnAASCyQAEdqUABGPiAAEL9wAAAAGAAAAAe//84jv//RQ7//0yO//9Vjv//Xg7//2
UAAAANAAAAAlAAAAAAAAABUAAAAM7//0IAAAAAQAAAAE7//0IAAAAAYAAAABABB9vAAAAAAAEgsk
ABHalAARj4gABC/cAAAABgAAAAHv//OI7//0UO//9Mjv//VY7//14O//9lAAAAAF7//0IO//79gA
AAABAAAAAO//8PDv//FYAAPv1AARyngAAAAAAAAAAAAAAAYAAAABABB9vAASQ5wAEgskABHalAAR
j4gABC/cAAAABgAAAAHv//OI7//0UO//9Mjv//VY7//14O//9lAAAADQAAAAJQAAAAAAAAAWAAAA
DO//8/AAAAAEAAAABO//8/AAAAAGAAAAAQAQfjQAAAAAABILJAAR2pQAEY+IAAQv3AAAAAYAAAAB
7//ziO//9FDv//TI7//1WO//9eDv//ZQAAAABe//8/Dv/+/YAAAAAQAAAADv//Dw7//xWAAD79QA
Ecp4AAAAAAAAAAAAAAAGAAAAAQAQfjQAEkOcABILJAAR2pQAEY+IAAQv3AAAAAYAAAAB7//ziO//
9FDv//TI7//1WO//9eDv//ZQAAAA0AAAACUAAAAAAAAAFwAAAAzv//PwAAAABAAAAATv//PwAAAA
BgAAAAEAEHhoAAAAAAASQ5wAEgskABHalAARj4gAAAAGAAAAAe//8wjv//OI7//0UO//9Mjv//VY
7//14AAAAAXv//Pw7//vWAAAAAEAAAAI7//wcO//8NgAAADQAAAAJQAAAAAAAAAAAAAABgAAAAEA
EHhoABB+1AASQ5wAEgskABHalAARj4gAAAAGAAAAAe//8wjv//OI7//0UO//9Mjv//VY7//14AAA
ANAAAAAlAAAAAAAAABgAAAAM7//z+AAAAAQAAAAE7//z+AAAAAYAAAABABB4uAAAAAAAEkOcABIL
JAAR2pQAEY+IAAAABgAAAAHv//MI7//ziO//9FDv//TI7//1WO//9eAAAAAF7//z+O//71gAAAAB
AAAACO//8HDv//DYAAAA0AAAACUAAAAAAAAAAAAAAAYAAAABABB4uAAQftQAEkOcABILJAAR2pQA
EY+IAAAABgAAAAHv//MI7//ziO//9FDv//TI7//1WO//9eAAAADQAAAAJQAAAAAAAAAZAAAADO//
83AAAAAEAAAABO//83AAAAAGAAAAAQAQd3gAAAAAABB+1AASQ5wAEgskABHalAAAAAYAAAAB7//y
gO//8wjv//OI7//0UO//9Mjv//VYAAAABe//83AAAAAA7//u8AADv8gAAAAH7//xGAAAAAAAAAAA
AAAAAAAAAAAAAAAGAAAAAQAQd3gAEHkgABB+1AASQ5wAEgskABHalAAAAAYAAAAB7//ygO//8wjv
//OI7//0UO//9Mjv//VYAAAA0AAAACUAAAAAAAAAGgAAAAzv//NoAAAABAAAAATv//NoAAAABgAA
AAEAEHfIAAAAAAAQftQAEkOcABILJAAR2pQAAAAGAAAAAe//8oDv//MI7//ziO//9FDv//TI7//1
WAAAAAXv//NoAAAAAO//7vAAA7/IAAAAB+//8RgAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAEAEHfI
ABB5IAAQftQAEkOcABILJAAR2pQAAAAGAAAAAe//8oDv//MI7//ziO//9FDv//TI7//1WAAAANAA
AAAlAAAAAAAAABsAAAAE7//1yAAAAAQAAAAE7//1yAAAAAYAAAABABHMAAAAAAAABC/sAAQ4pAAB
APgAAAAAAAAABgAAAAHv//VY7//14O//9lDv//qA7//7CAAAAAAAAAAF7//1yO//8oAAAAAAVVVV
Ve//8dgAAYFIAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABABHMAAARkNgABC/sAAQ4pAABAPgAAAAA
AAAABgAAAAHv//VY7//14O//9lDv//qA7//7CAAAAAAAAADQAAAAJQAAAAAAAAAcAAAAAu//9bgA
AAAEAAAABO//9bgAAAAGAAAAAQAR+sQAAAAAABGQ2AAEL+wABDikAAEA+AAAAAYAAAAB7//0qO//
9Vjv//Xg7//2UO//+oDv//sIAAAABe//9bgAAAAAAAAAAO//9cgAAAAE7//0ZO//89z/////AAAA
AAAAAAAAAAAGAAAAAQAR+sQAEcxgABGQ2AAEL+wABDikAAEA+AAAAAYAAAAB7//0qO//9Vjv//Xg
7//2UO//+oDv//sIAAAA0AAAACUAAAAAAAAAHQAAAATv//W4AAAABAAAAATv//W4AAAABgAAAAEA
EftsAAAAAAARkNgABC/sAAQ4pAABAPgAAAAGAAAAAe//9Kjv//VY7//14O//9lDv//qA7//7CAAA
AAXv//W4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAEAEftsABHM
YAARkNgABC/sAAQ4pAABAPgAAAAGAAAAAe//9Kjv//VY7//14O//9lDv//qA7//7CAAAANAAAAAl
AAAAAAAAAB4AAAAE7//1wAAAAAQAAAAE7//1wAAAAAYAAAABABHMdAAAAAAABC/sAAQ4pAABAPgA
AAAAAAAABgAAAAHv//VY7//14O//9lDv//qA7//7CAAAAAAAAAAF7//1wO//9lDv//qA7//7CAAA
AAAAA798AAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABABHMdAARkNgABC/sAAQ4pAABAPgAAAAAAAAA
BgAAAAHv//VY7//14O//9lDv//qA7//7CAAAAAAAAADQAAAAJQAAAAAAAAAfAAAAEO//9bAAAAAE
AAAABO//9bAAAAAGAAAAAQAJf5wAAAAAAAQwPAAEOKQAAQD4AAAAAAAAAAYAAAAB7//1MO//9cjv
//ZQ7//6gO//+wgAAAAAAAAABe//9bAAAAAAAAAAAAAAAAAAAAAAAAAAAO//8sDv//RAAAAAAAAA
AAAAAAAGAAAAAQAJf5wAEYPAAAQwPAAEOKQAAQD4AAAAAAAAAAYAAAAB7//1MO//9cjv//ZQ7//6
gO//+wgAAAAAAAAA0AAAACUAAAAAAAAAIAAAABDv//WoAAAABAAAAATv//WoAAAABgAAAAEACX+0
AAAAAAAEMDwABDikAAEA+AAAAAAAAAAGAAAAAe//9TDv//XI7//2UO//+oDv//sIAAAAAAAAAAXv
//WoAAAAAAAAAAAAAAAAAAAAAAAAAADv//LA7//0QAAAAAAAAAAAAAAABgAAAAEACX+0ABGDwAAE
MDwABDikAAEA+AAAAAAAAAAGAAAAAe//9TDv//XI7//2UO//+oDv//sIAAAAAAAAANAAAAAlAAAA
AAAAACEAAABH7//0kAAAAAQAAAAE7//0kAAAAAYAAAABAAkxdAAAAAAABENUABGSBAAEMTgABDik
AAAABgAAAAHv//Lg7//0qO//9Rjv//XI7//2UO//+oAAAAAF7//0kAAWIuQAGfkIAAAACgAJx7jv
//AoAAAACFVVVVUAAAAAAAAAAAAAAAYAAAABAAkxdAAJOHwABENUABGSBAAEMTgABDikAAAABgAA
AAHv//Lg7//0qO//9Rjv//XI7//2UO//+oAAAADQAAAAJgAAAAAAAAAiAAAADe//9IAAAAAEAAAA
BO//9IAAAAAGAAAAAQAJMZAACTh8AARDVAARkgQABDE4AAQ4pAAAAAYAAAAB7//y4O//9Kjv//UY
7//1yO//9lDv//qAAAAABe//9IAAFiLkABn5CAAAAAoACce47//wKAAAAAhVVVVVAAAAAAAAAAAA
AAAGAAAAAQAJMZAACTh8AARDVAARkgQABDE4AAQ4pAAAAAYAAAAB7//y4O//9Kjv//UY7//1yO//
9lDv//qAAAAA0AAAACUAAAAAAAAAIwAAAEbv//WQAAAABAAAAATv//WQAAAABgAAAAEAEwsUAAAA
AAARkgQABDE4AAQ4pAABAPgAAAAGAAAAAe//9Ijv//UY7//1yO//9lDv//qA7//7CAAAAAXv//WQ
AAAAAO//8PgAA7/I7//xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAEAEwsUAARECAARkgQA
BDE4AAQ4pAABAPgAAAAGAAAAAe//9Ijv//UY7//1yO//9lDv//qA7//7CAAAANAAAAAlAAAAAAAA
ACQAAABG7//1iAAAAAQAAAAE7//1iAAAAAYAAAABABMLZAAAAAAAEZIEAAQxOAAEOKQAAQD4AAAA
BgAAAAHv//SI7//1GO//9cjv//ZQ7//6gO//+wgAAAAF7//1iAAAAADv//D4AAO/yO//8UAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABABMLZAAERAgAEZIEAAQxOAAEOKQAAQD4AAAABgAAAAHv
//SI7//1GO//9cjv//ZQ7//6gO//+wgAAADQAAAAJQAAAAAAAAAlAAAARu//9YAAAAABAAAAAe//
9YAAAAAGAAAAAQATC7QAAAAAABGSBAAEMTgABDikAAEA+AAAAAYAAAAB7//0iO//9Rjv//XI7//2
UO//+oDv//sIAAAABe//9YAAAAAA7//w+AADv8jv//FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG
AAAAAQATC7QABEQIABGSBAAEMTgABDikAAEA+AAAAAYAAAAB7//0iO//9Rjv//XI7//2UO//+oDv
//sIAAAA0AAAACUAAAAAAAAAJgAAAAHv//UAAAAABAAAAATv//UAAAAABgAAAAEAEtKkAAAAAAAE
RAgAEZIEAAQxOAAEOKQAAAAGAAAAAe//9BDv//SI7//1GO//9cjv//ZQ7//6gAAAAAXv//UAABqq
qAAaqtgAAABCAAAA0AAAACUAAAAAAAAAJQAAAAAAAAAAAAAABgAAAAEAEtKkABMMOAAERAgAEZIE
AAQxOAAEOKQAAAAGAAAAAe//9BDv//SI7//1GO//9cjv//ZQ7//6gAAAANAAAAAlAAAAAAAAACcA
AABG7//1mAAAAAQAAAAE7//1mAAAAAYAAAABAAlnrAAAAAAAEZIEAAQxOAAEOKQAAQD4AAAABgAA
AAHv//SY7//1GO//9cjv//ZQ7//6gO//+wgAAAAF7//1mAAAAAAAAAAAAAAAAAAAAAAAAAAA7//y
KO//86gAAAAAAAAAAAAAAAYAAAABAAlnrAAERGAAEZIEAAQxOAAEOKQAAQD4AAAABgAAAAHv//SY
7//1GO//9cjv//ZQ7//6gO//+wgAAADQAAAAJQAAAAAAAAAoAAAARu//9YAAAAAEAAAAAe//9YAA
AAAGAAAAAQAJZ9QAAAAAABGSBAAEMTgABDikAAEA+AAAAAYAAAAB7//0mO//9Rjv//XI7//2UO//
+oDv//sIAAAABe//9YAAAAAAAAAAAAAAAAAAAAAAAAAAAO//8ijv//OoAAAAAAAAAAAAAAAGAAAA
AQAJZ9QABERgABGSBAAEMTgABDikAAEA+AAAAAYAAAAB7//0mO//9Rjv//XI7//2UO//+oDv//sI
AAAA0AAAACUAAAAAAAAAKQAAAKbv//UAAAAABAAAAATv//UAAAAABgAAAAEACb8IAAAAAAAERGAA
EZIEAAQxOAAEOKQAAAAGAAAAAe//9ADv//SY7//1GO//9cjv//ZQ7//6gAAAAAXv//UAAAAAAO//
8bAAAkoY7//1AAAaqqgAGqrYAAAAQgAAAAAAAAAAAAAABgAAAAEACb8IAAloEAAERGAAEZIEAAQx
OAAEOKQAAAAGAAAAAe//9ADv//SY7//1GO//9cjv//ZQ7//6gAAAANAAAAAlAAAAAAAAACoAAACm
7//0+AAAAAQAAAAB7//0+AAAAAYAAAABAAm/HAAAAAAABERgABGSBAAEMTgABDikAAAABgAAAAHv
//QA7//0mO//9Rjv//XI7//2UO//+oAAAAAF7//0+AAAAADv//GwAAJKGO//9QAAGqqoABqq2AAA
AEIAAAAAAAAAAAAAAAYAAAABAAm/HAAJaBAABERgABGSBAAEMTgABDikAAAABgAAAAHv//QA7//0
mO//9Rjv//XI7//2UO//+oAAAADQAAAAJQAAAAAAAAArAAAApu//9HAAAAAEAAAABO//9HAAAAAG
AAAAAQAJb5gAAAAAAAloEAAERGAAEZIEAAQxOAAAAAYAAAAB7//zcO//9ADv//SY7//1GO//9cjv
//ZQAAAABe//9HAAAkoY7//ylAAAAADv//EoAAJKGFNUPTEuMiBMAAAAAAAAAAAAAAAGAAAAAQAJ
b5gACb/IAAloEAAERGAAEZIEAAQxOAAAAAYAAAAB7//zcO//9ADv//SY7//1GO//9cjv//ZQAAAA
0AAAACYAAAAAAAAALAAAAAzv//RoAAAABAAAAAHv//RoAAAABgAAAAEACW+0AAm/yAAJaBAABERg
ABGSBAAEMTgAAAAGAAAAAe//83Dv//QA7//0mO//9Rjv//XI7//2UAAAAAXv//RoAAJKGO//8pQA
AAAA7//xKAACShhTVD0xLjIgTAAAAAAAAAAAAAAABgAAAAEACW+0AAm/yAAJaBAABERgABGSBAAE
MTgAAAAGAAAAAe//83Dv//QA7//0mO//9Rjv//XI7//2UAAAANAAAAAlAAAAAAAAAC0AAACk7//0
cAAAAAQAAAAE7//0cAAAAAYAAAABAAlwlAAAAAAACWgQAAREYAARkgQABDE4AAAABgAAAAHv//Nw
7//0AO//9Jjv//UY7//1yO//9lAAAAAF7//0cAACShjv//KUAAAAAO//8SgAAkoYU1Q9MS4yIEwA
AAAAAAAAAAAAAAYAAAABAAlwlAAJv8gACWgQAAREYAARkgQABDE4AAAABgAAAAHv//Nw7//0AO//
9Jjv//UY7//1yO//9lAAAADQAAAAJQAAAAAAAAAuAAAApO//9GgAAAAEAAAAAe//9GgAAAAGAAAA
AQAJcNgAAAAAAAloEAAERGAAEZIEAAQxOAAAAAYAAAAB7//zcO//9ADv//SY7//1GO//9cjv//ZQ
AAAABe//9GgAAkoY7//ylAAAAADv//EoAAJKGFNUPTEuMiBMAAAAAAAAAAAAAAAGAAAAAQAJcNgA
Cb/IAAloEAAERGAAEZIEAAQxOAAAAAYAAAAB7//zcO//9ADv//SY7//1GO//9cjv//ZQAAAA0AAA
ACYAAAAAAAAALwAAAArv//NgAAAABAAAAATv//NgAAAABgAAAAEACTGQAARIPAAERLwAEZIEAAQx
OAAEOKQAAAAGAAAAAe//8cDv//OI7//1GO//9cjv//ZQ7//6gAAAAAXv//Ng7//uqO//71AAAAAB
/////wAAAAEAAAAeABqrfAAAAAAAAAAAAAAABgAAAAEACTGQAARIPAAERLwAEZIEAAQxOAAEOKQA
AAAGAAAAAe//8cDv//OI7//1GO//9cjv//ZQ7//6gAAAANAAAAAlAAAAAAAAADAAAAA47//zcAAA
AAQAAAAE7//zcAAAAAYAAAABABLRAAAAAAAABElwAAREvAARkgQABDE4AAAABgAAAAHv//KA7//y
+O//84jv//UY7//1yO//9lAAAAAF7//zcAAAAAAACckQABn5CO//7wgACMGgAAAAAQAAAAAAAAAA
AAAAAAAAAAYAAAABABLRAAATDDgABElwAAREvAARkgQABDE4AAAABgAAAAHv//KA7//y+O//84jv
//UY7//1yO//9lAAAADQAAAAJgAAAAAAAAAxAAAACu//8tgAAAAEAAAAAe//8tgAAAAGAAAAAQAJ
b7QACb/IAAloEAAEScgABES8ABGSBAAAAAYAAAAB7//x4O//8nDv//MI7//ziO//9Rjv//XIAAAA
Be//8tjv//GM7//xBAAAAADv/++YAAJKGAAERLwAEZIEAAAAAAAAAAAAAAAGAAAAAQAJb7QACb/I
AAloEAAEScgABES8ABGSBAAAAAYAAAAB7//x4O//8nDv//MI7//ziO//9Rjv//XIAAAA0AAAACYA
AAAAAAAAMgAAAArv//NgAAAABAAAAATv//NgAAAABgAAAAEACTGQAARK/AAERLwAEZIEAAQxOAAE
OKQAAAAGAAAAAe//8cDv//OI7//1GO//9cjv//ZQ7//6gAAAAAXv//Ng7//x4O//8nDv//MI7//z
iO//9Rjv//XIAAAABQAAAAAAAAAAAAAABgAAAAEACTGQAARK/AAERLwAEZIEAAQxOAAEOKQAAAAG
AAAAAe//8cDv//OI7//1GO//9cjv//ZQ7//6gAAAANAAAAAlAAAAAAAAADMAAAA67//ywAAAAAQA
AAAE7//ywAAAAAYAAAABAAmFbAAAAAAABES8ABGSBAAEMTgABDikAAAABgAAAAHv//Jg7//ziO//
9Rjv//XI7//2UO//+oAAAAAF7//ywAAAAAEAAAAAAAAAAAAAAB4AGrNEABn5CAAAIBQAAAAAAAAA
AAAAAAYAAAABAAmFbAAETRQABES8ABGSBAAEMTgABDikAAAABgAAAAHv//Jg7//ziO//9Rjv//XI
7//2UO//+oAAAADQAAAAJQAAAAAAAAA0AAAAOu//8sAAAAAEAAAABO//8sAAAAAGAAAAAQAJhzwA
AAAAAAREvAARkgQABDE4AAQ4pAAAAAYAAAAB7//yYO//84jv//UY7//1yO//9lDv//qAAAAABe//
8sAAAAABAAAAAAAAAAAAAAAeABqzRAAZ+QgAACAUAAAAAAAAAAAAAAAGAAAAAQAJhzwABE0UAARE
vAARkgQABDE4AAQ4pAAAAAYAAAAB7//yYO//84jv//UY7//1yO//9lDv//qAAAAA0AAAACUAAAAA
AAAANQAAAwLv//NwAAAABAAAAATv//NwAAAABgAAAAEAEw3sAAAAAAAETRQABES8ABGSBAAEMTgA
AAAGAAAAAe//8mjv//LY7//ziO//9Rjv//XI7//2UAAAAAXv//NwAAAAAAAAAB4AGrNEABn5CAAA
IBQAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAEAEw3sAARebAAETRQABES8ABGSBAAEMTgAAAAGAAAA
Ae//8mjv//LY7//ziO//9Rjv//XI7//2UAAAANAAAAAlAAAAAAAAADYAAABq7//zQAAAAAEAAAAB
7//zQAAAAAYAAAABABMRNAAAAAAABE0UAAREvAARkgQABDE4AAAABgAAAAHv//JI7//y2O//84jv
//UY7//1yO//9lAAAAAF7//zQAAAAADv/+/wAALqgO//9Rjv//XI7//2UAAAAAUAAAAAAAAAAAAA
AAYAAAABABMRNAAEXtQABE0UAAREvAARkgQABDE4AAAABgAAAAHv//JI7//y2O//84jv//UY7//1
yO//9lAAAADQAAAAJQAAAAAAAAA3AAACqO//8sAAAAAEAAAABO//8sAAAAAGAAAAAQATH+gAAAAA
ABLzQAATEbgABF7UAARNFAAAAAYAAAAB7//w4O//8VDv//HQ7//ySO//8tjv//OIAAAABe//8sAA
AAA67//uaAAAAAAAAAAAAAAAVe//7Zjv//NgAAAAAAAAAAAAAAAGAAAAAQATH+gAExIQABLzQAAT
EbgABF7UAARNFAAAAAYAAAAB7//w4O//8VDv//HQ7//ySO//8tjv//OIAAAA0AAAACUAAAAAAAAA
OAAAAcvv//LAAAAABAAAAATv//LAAAAABgAAAAEAEvFAAAAAAAATEbgABF7UAARNFAAERLwAAAAG
AAAAAe//8Vjv//HQ7//ySO//8tjv//OI7//1GAAAAAXv//LAAALqgAAAAAAAAAAyAAAAAe//82AA
AAAEAAAABAAAAAAAAAAAAAAABgAAAAEAEvFAABLzdAATEbgABF7UAARNFAAERLwAAAAGAAAAAe//
8Vjv//HQ7//ySO//8tjv//OI7//1GAAAANAAAAAlAAAAAAAAADkAAAAw7//zWAAAAAQAAAAE7//z
WAAAAAYAAAABAARe6AAAAAAABES8ABGSBAAEMTgABDikAAAABgAAAAHv//LY7//ziO//9Rjv//XI
7//2UO//+oAAAAAF7//zWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYA
AAABAARe6AAETRQABES8ABGSBAAEMTgABDikAAAABgAAAAHv//LY7//ziO//9Rjv//XI7//2UO//
+oAAAADQAAAAJQAAAAAAAAA6AAAAMO//80AAAAAEAAAABO//80AAAAAGAAAAAQAEX8AAAAAAAARE
vAARkgQABDE4AAQ4pAAAAAYAAAAB7//y2O//84jv//UY7//1yO//9lDv//qAAAAABe//80AAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAEX8AABE0UAAREvAARkgQA
BDE4AAQ4pAAAAAYAAAAB7//y2O//84jv//UY7//1yO//9lDv//qAAAAA0AAAACUAAAAAAAAAOwAA
ADDv//NAAAAABAAAAATv//NAAAAABgAAAAEABGC0AAAAAAAERLwAEZIEAAQxOAAEOKQAAAAGAAAA
Ae//8tjv//OI7//1GO//9cjv//ZQ7//6gAAAAAXv//NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAABgAAAAEABGC0AARNFAAERLwAEZIEAAQxOAAEOKQAAAAGAAAAAe//8tjv
//OI7//1GO//9cjv//ZQ7//6gAAAANAAAAAmAAAAAAAAADwAAAAK7//yOAAAAAQAAAAE7//yOAAA
AAYAAAABAAlvtAAJv8gACUpoAAm2rAAETVwABES8AAAABgAAAAHv//FA7//x0O//8mjv//MY7//z
iO//9RgAAAAF7//yOO//72AAAAAGAAAAAQAAAAAAAAAA7//u+AAC6oAAAAAAAAAAAAAAAAYAAAAB
AAlvtAAJv8gACUpoAAm2rAAETVwABES8AAAABgAAAAHv//FA7//x0O//8mjv//MY7//ziO//9RgA
AADQAAAAJgAAAAAAAAA9AAAAMO//8tgAAAAEAAAAAe//8tgAAAAGAAAAAQAJb7QACb/IAAloEAAE
UVgABES8ABGSBAAAAAYAAAAB7//x4O//8nDv//MI7//ziO//9Rjv//XIAAAABe//8tjv//DY7//x
QO//8dDv//Jo7//zGO//84jv//UYAAAAAAAAAAAAAAAGAAAAAQAJb7QACb/IAAloEAAEUVgABES8
ABGSBAAAAAYAAAAB7//x4O//8nDv//MI7//ziO//9Rjv//XIAAAA0AAAACYAAAAAAAAAPgAAACbv
//NgAAAABAAAAATv//NgAAAABgAAAAEACTGQAARSuAAERLwAEZIEAAQxOAAEOKQAAAAGAAAAAe//
8cDv//OI7//1GO//9cjv//ZQ7//6gAAAAAXv//Ng7//x4O//8nDv//MI7//ziO//9Rjv//XIAAAA
BQAAAAAAAAAAAAAABgAAAAEACTGQAARSuAAERLwAEZIEAAQxOAAEOKQAAAAGAAAAAe//8cDv//OI
7//1GO//9cjv//ZQ7//6gAAAANAAAAAmAAAAAAAAAD8AAAAm7//yOAAAAAQAAAAE7//yOAAAAAYA
AAABAAlvtAAJv8gACUpoAAm2rAAETwAABES8AAAABgAAAAHv//FA7//x0O//8mjv//MY7//ziO//
9RgAAAAF7//yOO//72AAAAAGAAAAAQAAAAAAAAAA7//u+AAC6oAAAAAAAAAAAAAAAAYAAAABAAlv
tAAJv8gACUpoAAm2rAAETwAABES8AAAABgAAAAHv//FA7//x0O//8mjv//MY7//ziO//9RgAAADQ
AAAAJgAAAAAAAABAAAAAJu//8jgAAAAEAAAABO//8jgAAAAGAAAAAQAJb7QACb/IAAlKaAAJtqwA
BE+EAAREvAAAAAYAAAAB7//xQO//8dDv//Jo7//zGO//84jv//UYAAAABe//8jjv/+9gAAAABgAA
AAEAAAAAAAAAAO//7vgAAuqAAAAAAAAAAAAAAAAGAAAAAQAJb7QACb/IAAlKaAAJtqwABE+EAARE
vAAAAAYAAAAB7//xQO//8dDv//Jo7//zGO//84jv//UYAAAA0AAAACUAAAAAAAAAQQAAADDv//LI
AAAABAAAAATv//LIAAAABgAAAAEAEcG4AAAAAAAEUDAABES8ABGSBAAEMTgAAAAGAAAAAe//8mjv
//Lo7//ziO//9Rjv//XI7//2UAAAAAXv//LIAAAAAP////8AGfnQAAAABwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAABgAAAAEAEcG4ABGh1AAEUDAABES8ABGSBAAEMTgAAAAGAAAAAe//8mjv//Lo7//z
iO//9Rjv//XI7//2UAAAANAAAAAlAAAAAAAAAEIAAAAm7//xuAAAAAQAAAAE7//xuAAAAAYAAAAB
AAc7DAAAAAAAEaTUAARQMAAERLwAEZIEAAAABgAAAAHv//AA7//x6O//8ujv//OI7//1GO//9cgA
AAAF7//xuAAAAAEAAABEABbamAAAAAAAAABVAAAAHu//7iAAAAAAAAAAAAAAAAYAAAABAAc7DAAS
b2AAEaTUAARQMAAERLwAEZIEAAAABgAAAAHv//AA7//x6O//8ujv//OI7//1GO//9cgAAADQAAAA
JQAAAAAAAABDAAAAJu//8agAAAAEAAAABO//8agAAAAGAAAAAQAHO2gAAAAAABGk1AAEUDAABES8
ABGSBAAAAAYAAAAB7//wAO//8ejv//Lo7//ziO//9Rjv//XIAAAABe//8agAAAABAAAARAAW2pgA
AAAAAAAAVQAAAB7v/+4gAAAAAAAAAAAAAAAGAAAAAQAHO2gAEm9gABGk1AAEUDAABES8ABGSBAAA
AAYAAAAB7//wAO//8ejv//Lo7//ziO//9Rjv//XIAAAA0AAAACUAAAAAAAAARAAAACbv//GYAAAA
BAAAAATv//GYAAAABgAAAAEABaF0AAAAAAASb2AAEaTUAARQMAAERLwAAAAGAAAAAe//70Dv//AA
7//x6O//8ujv//OI7//1GAAAAAXv//GYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAA7//xqAAAAAAA
AAAAAAAABgAAAAEABaF0AAc8hAASb2AAEaTUAARQMAAERLwAAAAGAAAAAe//70Dv//AA7//x6O//
8ujv//OI7//1GAAAANAAAAAlAAAAAAAAAEUAAAAm7//xiAAAAAQAAAAE7//xiAAAAAYAAAABAAWh
/AAAAAAAEm9gABGk1AAEUDAABES8AAAABgAAAAHv/+9A7//wAO//8ejv//Lo7//ziO//9RgAAAAF
7//xiAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAO//8agAAAAAAAAAAAAAAAYAAAABAAWh/AAHPIQA
Em9gABGk1AAEUDAABES8AAAABgAAAAHv/+9A7//wAO//8ejv//Lo7//ziO//9RgAAADQAAAAJQAA
AAAAAABGAAAAJu//7JgAAAABAAAAAe//7JgAAAAGAAAAAQALD/gAAAAAAAWi1AAHPIQAEm9gABGk
1AAAAAYAAAAB7//sGO//7Kjv/+9A7//wAO//8ejv//LoAAAABe//7Jjv/+iwAAAAQAAT9AAAFjAA
7//wTAAAAAQAATEUAAAAAAAAAAAAAAAGAAAAAQALD/gACpK8AAWi1AAHPIQAEm9gABGk1AAAAAYA
AAAB7//sGO//7Kjv/+9A7//wAO//8ejv//LoAAAA0AAAACUAAAAAAAAARwAAACbv//GYAAAABAAA
AATv//GYAAAABgAAAAEABaOYAAAAAAASb2AAEaTUAARQMAAERLwAAAAGAAAAAe//70Dv//AA7//x
6O//8ujv//OI7//1GAAAAAXv//GYAAAAIu9oAADvaAAAAAAAAAAAAFUAAAAeABSFuAAAAAAAAAAA
AAAABgAAAAEABaOYAAc8hAASb2AAEaTUAARQMAAERLwAAAAGAAAAAe//70Dv//AA7//x6O//8ujv
//OI7//1GAAAANAAAAAlAAAAAAAAAEgAAAAK7//zWAAAAAQAAAAE7//zWAAAAAYAAAABAARiTAAA
AAAABES8ABGSBAAEMTgABDikAAAABgAAAAHv//LY7//ziO//9Rjv//XI7//2UO//+oAAAAAF7//z
WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAARiTAAEVcwABES8
ABGSBAAEMTgABDikAAAABgAAAAHv//LY7//ziO//9Rjv//XI7//2UO//+oAAAADQAAAAJgAAAAAA
AABJAAAACu//8jgAAAAEAAAABO//8jgAAAAGAAAAAQAJb7QACb/IAAlKaAAJtqwABFYAAAREvAAA
AAYAAAAB7//xQO//8dDv//Jo7//zGO//84jv//UYAAAABe//8jjv/+9gAAAABgAAAAEAAAAAAAAA
AO//7vgAAuqAAAAAAAAAAAAAAAAGAAAAAQAJb7QACb/IAAlKaAAJtqwABFYAAAREvAAAAAYAAAAB
7//xQO//8dDv//Jo7//zGO//84jv//UYAAAA0AAAACUAAAAAAAAASgAAANzv//UIAAAABAAAAATv
//UIAAAABgAAAAEACAq8AAAAAAARkjQABDE4AAQ4pAABAPgAAAAGAAAAAe//83jv//VA7//1yO//
9lDv//qA7//7CAAAAAXv//UI7//wqAAAAAhVVVVV7//wAAAEIrgtMC4yAAAAAAAAAAAAAAAAAAAA
BgAAAAEACAq8ABHHcAARkjQABDE4AAQ4pAABAPgAAAAGAAAAAe//83jv//VA7//1yO//9lDv//qA
7//7CAAAANAAAAAlAAAAAAAAAEsAAADc7//0+AAAAAQAAAAE7//0+AAAAAYAAAABAAWrbAAAAAAA
EcdwABGSNAAEMTgABDikAAAABgAAAAHv//KY7//zeO//9UDv//XI7//2UO//+oAAAAAF7//0+O//
7zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAWrbAAIC9AAEcdwABGS
NAAEMTgABDikAAAABgAAAAHv//KY7//zeO//9UDv//XI7//2UO//+oAAAADQAAAAJQAAAAAAAABM
AAAA6O//81gAAAAEAAAABO//81gAAAAGAAAAAQAF4qwAAAAAAAgL0AARx3AAEZI0AAQxOAAAAAYA
AAAB7//xqO//8pjv//N47//1QO//9cjv//ZQAAAABe//81hVVVVV7//uKAAFeAjv/+4oAAV3sAAA
ABQAAAAAAAAAAAAAAAAAAAAGAAAAAQAF4qwABau8AAgL0AARx3AAEZI0AAQxOAAAAAYAAAAB7//x
qO//8pjv//N47//1QO//9cjv//ZQAAAA0AAAACUAAAAAAAAATQAAAOjv//IQAAAABAAAAATv//IQ
AAAABgAAAAEABeS8AAAAAAAIC9AAEcdwABGSNAAEMTgAAAAGAAAAAe//8ajv//KY7//zeO//9UDv
//XI7//2UAAAAAXv//IQVVVVVe//7igABXgI7//uKAAFd7AAAAAUAAAAAAAAAAAAAAAAAAAABgAA
AAEABeS8AAWrvAAIC9AAEcdwABGSNAAEMTgAAAAGAAAAAe//8ajv//KY7//zeO//9UDv//XI7//2
UAAAANAAAAAlAAAAAAAAAE4AAAB27//0AAAAAAQAAAAE7//0AAAAAAYAAAABAAgXxAAAAAAAEch4
ABGSNAAEMTgABDikAAAABgAAAAHv//Jw7//0OO//9UDv//XI7//2UO//+oAAAAAF7//0AAAKCUAA
AACZABbamO//9agAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAgXxAASgiAAEch4ABGSNAAE
MTgABDikAAAABgAAAAHv//Jw7//0OO//9UDv//XI7//2UO//+oAAAADQAAAAJQAAAAAAAABPAAAA
du//8/AAAAAEAAAABO//8/AAAAAGAAAAAQAFsfAAAAAAABKCIAARyHgAEZI0AAQxOAAAAAYAAAAB
7//xwO//8nDv//Q47//1QO//9cjv//ZQAAAABe//8/AAAAAAAAAAAO//9AAAAAAE7//xfO//8PT/
////AAAAAAAAAAAAAAAGAAAAAQAFsfAACBkMABKCIAARyHgAEZI0AAQxOAAAAAYAAAAB7//xwO//
8nDv//Q47//1QO//9cjv//ZQAAAA0AAAACUAAAAAAAAAUAAAAHbv//IgAAAABAAAAATv//IgAAAA
BgAAAAEAE6rsAAAAAAAIGQwAEoIgABHIeAARkjQAAAAGAAAAAe//8RDv//HA7//ycO//9Djv//VA
7//1yAAAAAXv//IgAAAAAAAAAADv//PwAAAABO//8Mzv//BEAAAAAAAAAAAAAAAAAAAABgAAAAEA
E6rsAAWyPAAIGQwAEoIgABHIeAARkjQAAAAGAAAAAe//8RDv//HA7//ycO//9Djv//VA7//1yAAA
ANAAAAAlAAAAAAAAAFEAAAB27//xmAAAAAQAAAAE7//xmAAAAAYAAAABAAXVhAAAAAAABbI8AAgZ
DAASgiAAEch4AAAABgAAAAHv//Cg7//xEO//8cDv//Jw7//0OO//9UAAAAAF7//xmO//7dgAAADQ
AAAAJQAAAAAAAABQAAAAAe//8iAAAAAAAAAAAAAAAAYAAAABAAXVhAATq6wABbI8AAgZDAASgiAA
Ech4AAAABgAAAAHv//Cg7//xEO//8cDv//Jw7//0OO//9UAAAADQAAAAJQAAAAAAAABSAAAAdu//
8XAAAAAEAAAABO//8XAAAAAGAAAAAQATq8AAAAAAAAgZDAASgiAAEch4ABGSNAAAAAYAAAAB7//x
EO//8cDv//Jw7//0OO//9UDv//XIAAAABe//8XAAAAAA7//uuAAC6oAAAAAE7//wzO//8EQAAAAA
AAAAAAAAAAAAAAAGAAAAAQATq8AABbI8AAgZDAASgiAAEch4ABGSNAAAAAYAAAAB7//xEO//8cDv
//Jw7//0OO//9UDv//XIAAAA0AAAACUAAAAAAAAAUwAAAHbv//IgAAAABAAAAATv//IgAAAABgAA
AAEAE650AAAAAAAIGQwAEoIgABHIeAARkjQAAAAGAAAAAe//8RDv//HA7//ycO//9Djv//VA7//1
yAAAAAXv//Ig7//tsAAAAAAAAAAAABYoAO//7cAAAABEAAAAAAAAAAAAAAAAAAAABgAAAAEAE650
AAWyPAAIGQwAEoIgABHIeAARkjQAAAAGAAAAAe//8RDv//HA7//ycO//9Djv//VA7//1yAAAANAA
AAAlAAAAAAAAAFQAAAAM7//1IAAAAAQAAAAE7//1IAAAAAYAAAABAAfxHAAAAAAAEZM4AAQxOAAE
OKQAAQD4AAAABgAAAAHv//OQ7//1WO//9cjv//ZQ7//6gO//+wgAAAAF7//1IAAAAAH/////AAAA
AAAAAB4AGpwUABn4IAAAADcAAAAAAAAAAAAAAAYAAAABAAfxHAAI3ZgAEZM4AAQxOAAEOKQAAQD4
AAAABgAAAAHv//OQ7//1WO//9cjv//ZQ7//6gO//+wgAAADQAAAAJQAAAAAAAABVAAAADO//9TAA
AAAEAAAABO//9TAAAAAGAAAAAQAFr7QAAAAAAAjdmAARkzgABDE4AAQ4pAAAAAYAAAAB7//zEO//
85Dv//VY7//1yO//9lDv//qAAAAABe//9TAAAAAAAAAAOAAAAAEAAAAAABbamAAAANAAAAAlAAAA
AAAAAAAAAAAGAAAAAQAFr7QAB/IcAAjdmAARkzgABDE4AAQ4pAAAAAYAAAAB7//zEO//85Dv//VY
7//1yO//9lDv//qAAAAA0AAAACUAAAAAAAAAVgAAAALv//NwAAAABAAAAATv//NwAAAABgAAAAEA
EtIYAAAAAAAEUQAABES8ABGSBAAEMTgAAAAGAAAAAe//8oDv//L47//ziO//9Rjv//XI7//2UAAA
AAXv//NwAAAAAAAAAAAAAAAA7//u+AADv3wAAAAwAAAACgAAAAAAAAAAAAAABgAAAAEAEtIYABMM
OAAEUQAABES8ABGSBAAEMTgAAAAGAAAAAe//8oDv//L47//ziO//9Rjv//XI7//2UAAAANAAAAAl
AAAAAAAAAFcAAAAI7//zcAAAAAQAAAAE7//zcAAAAAYAAAABABLRjAAAAAAABFEAAAREvAARkgQA
BDE4AAAABgAAAAHv//KA7//y+O//84jv//UY7//1yO//9lAAAAAF7//zcAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABABLRjAATDDgABFEAAAREvAARkgQABDE4AAAA
BgAAAAHv//KA7//y+O//84jv//UY7//1yO//9lAAAACxAAAAIAAAAAAAAABYAAAAAQAAAAAAAAAB
AAAAAQAAAAH/////AAAAIAAAAAYAAAABAALVSAAAAAAADpuEAArrbAAK8KwACxPEICAqIE92ZXJs
YXBwaW5nIGJsb2NrIGNvcHkgbWF5IHByb2R1Y2UgdW5leHBlY3RlZCByZXN1bHRzOgogICogbWVt
Y3B5KDB4ZWZmZmU1YTYsIDB4ZWZmZmU1YWEsIDB4MTApCgAAAADQAAAAJQAAAAAAAABZAAAAAe//
7BAAAAABAAAAAe//7BAAAAAGAAAAAQALX7wAAAAAAAqSvAAFotQABzyEABJvYAAAAAYAAAAB7//r
sO//7Bjv/+yo7//vQO//8ADv//HoAAAABe//7BAAEwAGAAAAEAAWKADv/+0YAAAEAAEAAAT/wwW4
AAAAAAAAAAAAAAAGAAAAAQALX7wACxQUAAqSvAAFotQABzyEABJvYAAAAAYAAAAB7//rsO//7Bjv
/+yo7//vQO//8ADv//HoAAAA0AAAACUAAAAAAAAAWgAAAAHv/+wQAAAAAgAAAAHv/+wRAAAABgAA
AAEAC2TYAAAAAAAKkrwABaLUAAc8hAASb2AAAAAGAAAAAe//67Dv/+wY7//sqO//70Dv//AA7//x
6AAAAAXv/+wQABMABgAAABAAFigA7//tGAAABAABAAAE/8MFuAAAAAAAAAAAAAAABgAAAAEAC2TY
AAsUFAAKkrwABaLUAAc8hAASb2AAAAAGAAAAAe//67Dv/+wY7//sqO//70Dv//AA7//x6AAAANAA
AAAlAAAAAAAAAFsAAAAB7//sEAAAAAQAAAAC7//sEgAAAAYAAAABAAtlFAAAAAAACpK8AAWi1AAH
PIQAEm9gAAAABgAAAAHv/+uw7//sGO//7Kjv/+9A7//wAO//8egAAAAF7//sEAATAAYAAAAQABYo
AO//7RgAAAQAAQAABP/DBbgAAAAAAAAAAAAAAAYAAAABAAtlFAALFBQACpK8AAWi1AAHPIQAEm9g
AAAABgAAAAHv/+uw7//sGO//7Kjv/+9A7//wAO//8egAAADQAAAAJQAAAAAAAABcAAAAAu//9PgA
AAAEAAAABO//9PgAAAAGAAAAAQAS1SwAAAAAAARECAARkgQABDE4AAQ4pAAAAAYAAAAB7//0EO//
9Ijv//UY7//1yO//9lDv//qAAAAABe//9PgAGqMwABqjYAAAAB8AAAAAVVVVVe//8RgAAX44AAAA
AAAAAAAAAAAGAAAAAQAS1SwAEww4AARECAARkgQABDE4AAQ4pAAAAAYAAAAB7//0EO//9Ijv//UY
7//1yO//9lDv//qAAAAA0AAAACUAAAAAAAAAXQAAAAHv//NwAAAABAAAAATv//NwAAAABgAAAAEA
EtTIAAAAAAAEUQAABES8ABGSBAAEMTgAAAAGAAAAAe//8oDv//L47//ziO//9Rjv//XI7//2UAAA
AAXv//NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAEAEtTIABMM
OAAEUQAABES8ABGSBAAEMTgAAAAGAAAAAe//8oDv//L47//ziO//9Rjv//XI7//2UAAAANAAAAAl
AAAAAAAAAF4AAAAC7//smAAAAAIAAAAB7//smQAAAAYAAAABAAsQkAAAAAAABaLUAAc8hAASb2AA
EaTUAAAABgAAAAHv/+wY7//sqO//70Dv//AA7//x6O//8ugAAAAF7//smAAAAAEAAAAAAAAAAAAA
AAQAATEUAAAAAAAW2pgAAAAAAAAAAAAAAAYAAAABAAsQkAAKkrwABaLUAAc8hAASb2AAEaTUAAAA
BgAAAAHv/+wY7//sqO//70Dv//AA7//x6O//8ugAAADQAAAAJQAAAAAAAABfAAAAAu//7JgAAAAE
AAAAAu//7JoAAAAGAAAAAQALELgAAAAAAAWi1AAHPIQAEm9gABGk1AAAAAYAAAAB7//sGO//7Kjv
/+9A7//wAO//8ejv//LoAAAABe//7JgAAAABAAAAAAAAAAAAAAAEAAExFAAAAAAAFtqYAAAAAAAA
AAAAAAAGAAAAAQALELgACpK8AAWi1AAHPIQAEm9gABGk1AAAAAYAAAAB7//sGO//7Kjv/+9A7//w
AO//8ejv//LoAAAA0AAAACYAAAAAAAAAYAAAAmjv/9zWAAAAAgAAAALv/9zWAAAABgAAAAEADmXU
AA5uNAAAAAAADnrQAA5FNAANqRwAAAAGAAAAAe//22jv/9vI7//cOO//4Rjv/+GI7//kGAAAAAXv
/9zWABbamAAAAAAAAAAAAAAAAAAAAADv/9mYAAAAAAAAAAAAAAAAAAAABgAAAAEADmXUAA5uNAAO
ecAADnrQAA5FNAANqRwAAAAGAAAAAe//22jv/9vI7//cOO//4Rjv/+GI7//kGAAAANAAAAAmAAAA
AAAAAGEAAAAF7//YNwAAAAEAAAAB7//YNwAAAAYAAAABAA5ebAAOedgAAAAAAA5FNAANqRwADX6U
AAAABgAAAAHv/9fA7//cOO//4Rjv/+GI7//kGO//8VAAAAAF7//YNwAgAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAA5ebAAOedgADnrQAA5FNAANqRwADX6UAAAABgAA
AAHv/9fA7//cOO//4Rjv/+GI7//kGO//8VAAAASjAAAAFQAAAAAAAABiAAAAAQAAAAUAAAAbAAAA
xAAAAAAAAAAAAQAAAAAAAAIAAAAAAIAAAAAAAAAAAAAAAAAAAAAAX5kAACGQAAAAAQAAFBEAAAAH
AGAAEAAAAAAAAAAAAAAAAAAAAAA5WcW5AAAAADlZxb0AAAAAOVm2UwAAAAAAACAAAAAAAHVmcwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATfz/////AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQEAAAAAAAACAAAACACAAAAAAAAAAAAA
AAAAAAAAAF+ZAAAhkAAAAAEAABQRAAAABwBgABAAAAAAAAAAAAAAAAAAAAAAOVnFuQAAAAA5WcW9
AAAAADlZtlMAAAAAAAAgAAAAAAB1ZnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAE38/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
AAIBAAAAAAAAAgAAABEAgAAAAAAAAAAAAAAAAAAAAABfmQAAIZAAAAABAAAUEQAAAAcAYAAQAAAA
AAAAAAAAAAAAAAAAADlZxbkAAAAAOVnFvQAAAAA5WbZTAAAAAAAAIAAAAAAAdWZzAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABN/P////8AAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAaAQAAAAAAAAMAAAA8AIAAAAAAAAAAAAAAAAAAAAAA
X5kAACGQAAAAAQAAFBEAAAAHAGAAEAAAAAAAAAAAAAAAAAAAAAA5WcW5AAAAADlZxb0AAAAAOVm2
UwAAAAAAACAAAAAAAHVmcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAATfz/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAGwEAAAAA
AAADAAAAPAKkAAAAAAAAAAAAAAAAAAAACWhDAAAQAAAAAAAAABQRAAAU+QAAAAAAAAAAAAAAAAAA
AAAAAAAAOVnFvQAAAAA5WcW9AAAAADlZxb0AAAAAAAAUAAAAAABmaWZvZnMAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAPHN0ZGluPgA8c3Rkb3V0PgA8c3RkZXJyPgA8dW5rbm93bj4APGluaGVyaXRl
ZCBmcm9tIHBhcmVudD4APHJlc2VydmVkIGZvciBQdXJpZnkgaW50ZXJuYWwgdXNlPgAiVGVzdF9v
dXRwdXRfZXF1LnR4dCIAIlRlc3Rfb3V0cHV0X3NlcC50eHQiACIuLi8uLi8uLi9kYXRhL2VxdS9U
ZXN0X2VxdV9vay50eHQiAAAAAE8AAAA3AAAAAAAAAGMAAAABAAAAAAAAAAAAAAAAAAAAAP////8A
AAAwU2VhcmNoaW5nIGZvciBhbGwgbWVtb3J5IGxlYWtzLi4uCgAAAAJkAAAAMAAAAAD////ZAAAA
AQAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAIAAAABAAAAaQAAAEI
AAAAPwAAAAAAGhZ4AAAAAAAAABEAAAAGAAAAAQABfjgACUGEAAlzmAAJQRwAEdxUABGQyAAaFuAA
AAAAAAAAMAAAAAYAAAABAAF+OAAKYeAABCI8ABIO3AAR3JwAEZDIABoXaAAAAAAAAAATAAAABgAA
AAEAAX44AAlBhAAJc5gACUEcABHdTAARkMgAGhfQAAAAAAAAADAAAAAGAAAAAQABfjgACmHgAAQi
PAASDOQAEd1gABGQyAAaHsAAAAAAAAAAEQAAAAYAAAABAAF+OAAJQYQACXOYAAlBHAAR3FQAEZDI
ABofKAAAAAAAAAAwAAAABgAAAAEAAX44AAph4AAEIjwAEg7cABHcnAARkMgAGh+wAAAAAAAAABMA
AAAGAAAAAQABfjgACUGEAAlzmAAJQRwAEd1MABGQyAAaIBgAAAAAAAAAMAAAAAYAAAABAAF+OAAK
YeAABCI8ABIM5AAR3WAAEZDIABnuQAAAAAAAAAAOAAAABgAAAAEAAX44AAlBhAAJc5gACUEcAATl
IAAFC4QAGfAoAAAAAAAAAA4AAAAGAAAAAQABfjgACUGEAAlzmAAJQRwABOagAAULhAAZ9GgAAAAA
AAAAEgAAAAYAAAABAAF+OAAJQYQACXOYAAlBHAAFEywABqLQABn00AAAAAAAAAARAAAABgAAAAEA
AX44AAlBhAAJc5gACUEcAAUTQAAGotAAAAAwAAAAOAAAAAAAAABkAAAAAQAZUhUAG02YAAAAAAAA
BPgAAAAAAAAAAAAAAAA=
>From benoit.sibaud@rd.francetelecom.fr Wed Jun 28 08:17:00 2000
From: benoit.sibaud@rd.francetelecom.fr
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/67: Uninitialized Memory Errors (UMR) with Purify [Short example]
Date: Wed, 28 Jun 2000 08:17:00 -0000
Message-id: <20000628150940.18348.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00018.html
Content-length: 9222

>Number:         67
>Category:       libstdc++
>Synopsis:       Uninitialized Memory Errors (UMR) with Purify [Short example]
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jun 28 08:17:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     benoit.sibaud@rd.francetelecom.fr
>Release:        libstdc++ 2.90.8
>Organization:
>Environment:
SunOS XXXX 5.6 Generic_105181-17 sun4u sparc SUNW,Ultra-4
Reading specs from /opt/gnu/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)
libstdc++ 2.90.8 (full recompilation of gcc)
purify-4.5.1-solaris2

>Description:
I've got many UMR with Purify. I suspect it's due to libstdc++ 2.90.8, so I send to you the Purify report.

#include <iostream>
#include <string>

class Blah
{
public:
  void get(std::string & str) { std::getline(std::cin, str, '\n'); }
};
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="a.out.plog"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="a.out.plog"

KioqKiAgUHVyaWZ5IGluc3RydW1lbnRlZCAuL2Eub3V0IChwaWQgMjM1OTEgYXQgV2VkIEp1biAy
OCAxMzo1MDo1OSAyMDAwKQogICogUHVyaWZ5IDQuNS4xIFNvbGFyaXMgMiwgQ29weXJpZ2h0IChD
KSAxOTkyLTE5OTkgUmF0aW9uYWwgU29mdHdhcmUgQ29ycC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
CiAgKiBGb3IgY29udGFjdCBpbmZvcm1hdGlvbiB0eXBlOiAicHVyaWZ5IC1oZWxwIgogICogRm9y
IFRUWSBvdXRwdXQsIHVzZSB0aGUgb3B0aW9uICItd2luZG93cz1ubyIKICAqIENvbW1hbmQtbGlu
ZTogLi9hLm91dCAKICAqIE9wdGlvbnMgc2V0dGluZ3M6IC1jYWNoZS1kaXI9L3RtcC9wdXJpZnkg
LWcrKz15ZXMgLXB1cmlmeSBcCiAgICAtcHVyaWZ5LWhvbWU9L29wdC9wdXJpZnkvcHVyaWZ5LTQu
NS4xLXNvbGFyaXMyIAoKKioqKiAgUHVyaWZ5IGluc3RydW1lbnRlZCAuL2Eub3V0IChwaWQgMjM1
OTEpICAqKioqClVNUjogVW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZDoKICAqIFRoaXMgaXMgb2Nj
dXJyaW5nIHdoaWxlIGluOgoJZ2V0bGluZV9fSDNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pR
MjNzdGR0OWFsbG9jYXRvcjFaY18zc3RkUlEyM3N0ZHQxM2Jhc2ljX2lzdHJlYW0yWlgwMVpYMTFS
UTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pYMDFaWDExWlgyMVgwMV9SUTIzc3RkdDEzYmFzaWNfaXN0
cmVhbTJaWDAxWlgxMSBbYmFzaWNfc3RyaW5nLmg6Njc2XQoJZ2V0bGluZV9fSDNaY1pRMjNzdGR0
MTFjaGFyX3RyYWl0czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY18zc3RkUlEyM3N0ZHQxM2Jhc2lj
X2lzdHJlYW0yWlgwMVpYMTFSUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pYMDFaWDExWlgyMV9SUTIz
c3RkdDEzYmFzaWNfaXN0cmVhbTJaWDAxWlgxMSBbaXN0cmVhbS50Y2M6MTE5Nl0KCW1haW4gICAg
ICAgICAgIFtjY3ptcnhpYy5vXQoJX3N0YXJ0ICAgICAgICAgW2NydDEub10KICAqIFJlYWRpbmcg
NCBieXRlcyBmcm9tIDB4ZWZmZmY5MjAgb24gdGhlIHN0YWNrLgogICogQWRkcmVzcyAweGVmZmZm
OTIwIGlzICAgICAgMzE2IGJ5dGVzIHBhc3Qgc3RhcnQgb2YgbG9jYWwgdmFyaWFibGUgIl9fY2Vy
YiIgaW4gZnVuY3Rpb24gZ2V0bGluZV9fSDNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0czFaY1pRMjNz
dGR0OWFsbG9jYXRvcjFaY18zc3RkUlEyM3N0ZHQxM2Jhc2ljX2lzdHJlYW0yWlgwMVpYMTFSUTIz
c3RkdDEyYmFzaWNfc3RyaW5nM1pYMDFaWDExWlgyMVgwMV9SUTIzc3RkdDEzYmFzaWNfaXN0cmVh
bTJaWDAxWlgxMS4KCioqKiogIFB1cmlmeSBpbnN0cnVtZW50ZWQgLi9hLm91dCAocGlkIDIzNTkx
KSAgKioqKgpDdXJyZW50IGZpbGUgZGVzY3JpcHRvcnMgaW4gdXNlOiA1CkZJVTogZmlsZSBkZXNj
cmlwdG9yIDA6IDxzdGRpbj4KRklVOiBmaWxlIGRlc2NyaXB0b3IgMTogPHN0ZG91dD4KRklVOiBm
aWxlIGRlc2NyaXB0b3IgMjogPHN0ZGVycj4KRklVOiBmaWxlIGRlc2NyaXB0b3IgMjY6IDxyZXNl
cnZlZCBmb3IgUHVyaWZ5IGludGVybmFsIHVzZT4KRklVOiBmaWxlIGRlc2NyaXB0b3IgMjc6IDxy
ZXNlcnZlZCBmb3IgUHVyaWZ5IGludGVybmFsIHVzZT4KCioqKiogIFB1cmlmeSBpbnN0cnVtZW50
ZWQgLi9hLm91dCAocGlkIDIzNTkxKSAgKioqKgpQdXJpZnk6IFNlYXJjaGluZyBmb3IgYWxsIG1l
bW9yeSBsZWFrcy4uLgoKTWVtb3J5IGxlYWtlZDogMCBieXRlcyAoMCUpOyBwb3RlbnRpYWxseSBs
ZWFrZWQ6IDYzIGJ5dGVzICgxMyUpCgpQTEs6IDE4IGJ5dGVzIHBvdGVudGlhbGx5IGxlYWtlZCBh
dCAweDE0MDRlOAogICogVGhpcyBtZW1vcnkgd2FzIGFsbG9jYXRlZCBmcm9tOgoJbWFsbG9jICAg
ICAgICAgW3J0bGliLm9dCglzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8
Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+OjpfUmVwOjpfU19jcmVhdGUodW5zaWduZWQgaW50
LGNvbnN0IHN0ZDo6YWxsb2NhdG9yPGNoYXI+JikgW3N0bF9hbGxvYy5oOjEyOF0KCV9TX2NvbnN0
cnVjdF9fSDFaUENjX1EyM3N0ZHQxMmJhc2ljX3N0cmluZzNaY1pRMjNzdGR0MTFjaGFyX3RyYWl0
czFaY1pRMjNzdGR0OWFsbG9jYXRvcjFaY1gwMFgwMFJDUTIzc3RkdDlhbGxvY2F0b3IxWmNHUTIz
c3RkMjBmb3J3YXJkX2l0ZXJhdG9yX3RhZ19QYyBbc3RyaW5nLnRjYzoxMzFdCglzdGQ6OmJhc2lj
X3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxvY2F0b3I8Y2hhcj4+
OjpzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sc3RkOjphbGxv
Y2F0b3I8Y2hhcj4+KGNvbnN0IGNoYXIqLGNvbnN0IHN0ZDo6YWxsb2NhdG9yPGNoYXI+JikgW2Jh
c2ljX3N0cmluZy5oOjY5N10KCXN0ZDo6bG9jYWxlOjpjbGFzc2ljKCkgW2xvY2FsZV9mYWNldHMu
aDoxMjUxXQoJc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPj46
OnN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4+KCkgW2xvY2Fs
ZWZ3ZC5oOjMwMl0KClBMSzogMTcgYnl0ZXMgcG90ZW50aWFsbHkgbGVha2VkIGF0IDB4MTQwNTUw
CiAgKiBUaGlzIG1lbW9yeSB3YXMgYWxsb2NhdGVkIGZyb206CgltYWxsb2MgICAgICAgICBbcnRs
aWIub10KCXN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6
OmFsbG9jYXRvcjxjaGFyPj46Ol9SZXA6Ol9TX2NyZWF0ZSh1bnNpZ25lZCBpbnQsY29uc3Qgc3Rk
OjphbGxvY2F0b3I8Y2hhcj4mKSBbc3RsX2FsbG9jLmg6MTI4XQoJX1NfY29uc3RydWN0X19IMVpQ
Q2NfUTIzc3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0
ZHQ5YWxsb2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY0dRMjNzdGQyMGZvcndh
cmRfaXRlcmF0b3JfdGFnX1BjIFtzdHJpbmcudGNjOjEzMV0KCXN0ZDo6YmFzaWNfc3RyaW5nPGNo
YXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46OnN0ZDo6YmFz
aWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFy
Pj4oY29uc3QgY2hhciosY29uc3Qgc3RkOjphbGxvY2F0b3I8Y2hhcj4mKSBbYmFzaWNfc3RyaW5n
Lmg6Njk3XQoJc3RkOjpsb2NhbGU6OmNsYXNzaWMoKSBbbG9jYWxlX2ZhY2V0cy5oOjEyNTFdCglz
dGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Pjo6c3RkOjpiYXNp
Y19maWxlYnVmPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPj4oKSBbbG9jYWxlZndkLmg6MzAy
XQoKUExLOiAxNCBieXRlcyBwb3RlbnRpYWxseSBsZWFrZWQgYXQgMHgxM2ZlYzAKICAqIFRoaXMg
bWVtb3J5IHdhcyBhbGxvY2F0ZWQgZnJvbToKCW1hbGxvYyAgICAgICAgIFtydGxpYi5vXQoJc3Rk
OjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9y
PGNoYXI+Pjo6X1JlcDo6X1NfY3JlYXRlKHVuc2lnbmVkIGludCxjb25zdCBzdGQ6OmFsbG9jYXRv
cjxjaGFyPiYpIFtzdGxfYWxsb2MuaDoxMjhdCglfU19jb25zdHJ1Y3RfX0gxWlBDY19RMjNzdGR0
MTJiYXNpY19zdHJpbmczWmNaUTIzc3RkdDExY2hhcl90cmFpdHMxWmNaUTIzc3RkdDlhbGxvY2F0
b3IxWmNYMDBYMDBSQ1EyM3N0ZHQ5YWxsb2NhdG9yMVpjR1EyM3N0ZDIwZm9yd2FyZF9pdGVyYXRv
cl90YWdfUGMgW3N0cmluZy50Y2M6MTMxXQoJc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdGQ6OmNo
YXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pjo6c3RkOjpiYXNpY19zdHJpbmc8
Y2hhcixzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LHN0ZDo6YWxsb2NhdG9yPGNoYXI+Pihjb25zdCBj
aGFyKixjb25zdCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiYpIFtiYXNpY19zdHJpbmcuaDo2OTddCglz
dGQ6OmxvY2FsZTo6X0ltcGw6OnN0ZDo6bG9jYWxlOjpfSW1wbCh1bnNpZ25lZCBpbnQsdW5zaWdu
ZWQgaW50KSBbbG9jYWxlLmNjOjYwXQoJc3RkOjpsb2NhbGU6OmNsYXNzaWMoKSBbbG9jYWxlLmNj
OjMyM10KClBMSzogMTQgYnl0ZXMgcG90ZW50aWFsbHkgbGVha2VkIGF0IDB4MTQwMGE4CiAgKiBU
aGlzIG1lbW9yeSB3YXMgYWxsb2NhdGVkIGZyb206CgltYWxsb2MgICAgICAgICBbcnRsaWIub10K
CXN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9j
YXRvcjxjaGFyPj46Ol9SZXA6Ol9TX2NyZWF0ZSh1bnNpZ25lZCBpbnQsY29uc3Qgc3RkOjphbGxv
Y2F0b3I8Y2hhcj4mKSBbc3RsX2FsbG9jLmg6MTI4XQoJX1NfY29uc3RydWN0X19IMVpQQ2NfUTIz
c3RkdDEyYmFzaWNfc3RyaW5nM1pjWlEyM3N0ZHQxMWNoYXJfdHJhaXRzMVpjWlEyM3N0ZHQ5YWxs
b2NhdG9yMVpjWDAwWDAwUkNRMjNzdGR0OWFsbG9jYXRvcjFaY0dRMjNzdGQyMGZvcndhcmRfaXRl
cmF0b3JfdGFnX1BjIFtzdHJpbmcudGNjOjEzMV0KCXN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3Rk
OjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj46OnN0ZDo6YmFzaWNfc3Ry
aW5nPGNoYXIsc3RkOjpjaGFyX3RyYWl0czxjaGFyPixzdGQ6OmFsbG9jYXRvcjxjaGFyPj4oY29u
c3QgY2hhciosY29uc3Qgc3RkOjphbGxvY2F0b3I8Y2hhcj4mKSBbYmFzaWNfc3RyaW5nLmg6Njk3
XQoJc3RkOjpsb2NhbGU6Ol9JbXBsOjpzdGQ6OmxvY2FsZTo6X0ltcGwodW5zaWduZWQgaW50LHVu
c2lnbmVkIGludCkgW2xvY2FsZS5jYzo2Nl0KCXN0ZDo6bG9jYWxlOjpjbGFzc2ljKCkgW2xvY2Fs
ZS5jYzozMjNdCgpQdXJpZnkgSGVhcCBBbmFseXNpcyAoY29tYmluaW5nIHN1cHByZXNzZWQgYW5k
IHVuc3VwcHJlc3NlZCBibG9ja3MpCiAgICAgICAgICAgICAgICAgICAgICAgICBCbG9ja3MgICAg
ICAgIEJ5dGVzCiAgICAgICAgICAgICAgTGVha2VkICAgICAgICAgIDAgICAgICAgICAgICAwCiAg
UG90ZW50aWFsbHkgTGVha2VkICAgICAgICAgIDQgICAgICAgICAgIDYzCiAgICAgICAgICAgICAg
SW4tVXNlICAgICAgICAgMTkgICAgICAgICAgNDIwCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogICAgIFRvdGFsIEFsbG9jYXRlZCAgICAgICAgIDIzICAgICAgICAg
IDQ4MwoKKioqKiAgUHVyaWZ5IGluc3RydW1lbnRlZCAuL2Eub3V0IChwaWQgMjM1OTEpICAqKioq
CiAgKiBQcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyBjb2RlIDAuCiAgKiAxIGFjY2VzcyBlcnJv
ciwgMSB0b3RhbCBvY2N1cnJlbmNlLgogICogMCBieXRlcyBsZWFrZWQuCiAgKiA2MyBieXRlcyBw
b3RlbnRpYWxseSBsZWFrZWQuCiAgKiBCYXNpYyBtZW1vcnkgdXNhZ2UgKGluY2x1ZGluZyBQdXJp
Znkgb3ZlcmhlYWQpOgogICAgMTAxNTA4NCBjb2RlCiAgICAxNjQwNzIgZGF0YS9ic3MKICAgIDE2
Mzg4IGhlYXAgKHBlYWsgdXNlKQogICAgMTMyOCBzdGFjawogICogU2hhcmVkIGxpYnJhcnkgbWVt
b3J5IHVzYWdlIChpbmNsdWRpbmcgUHVyaWZ5IG92ZXJoZWFkKToKICAgIDE0MDA5MyBsaWJtLnNv
LjFfcHVyZV9wM19jMF80NTFfNTYgKHNoYXJlZCBjb2RlKQogICAgMTMzMiBsaWJtLnNvLjFfcHVy
ZV9wM19jMF80NTFfNTYgKHByaXZhdGUgZGF0YSkKICAgIDk2MjMxNyBsaWJjLnNvLjFfcHVyZV9w
M19jMF80NTFfNTYgKHNoYXJlZCBjb2RlKQogICAgMzA5NjAgbGliYy5zby4xX3B1cmVfcDNfYzBf
NDUxXzU2IChwcml2YXRlIGRhdGEpCiAgICAyMDM2IGxpYmRsLnNvLjFfcHVyZV9wM19jMF80NTFf
NTYgKHNoYXJlZCBjb2RlKQogICAgNCBsaWJkbC5zby4xX3B1cmVfcDNfYzBfNDUxXzU2IChwcml2
YXRlIGRhdGEpCiAgICAxMTc2NiBsaWJpbnRlcm5hbF9zdHVicy5zby4xIChzaGFyZWQgY29kZSkK
ICAgIDgzMiBsaWJpbnRlcm5hbF9zdHVicy5zby4xIChwcml2YXRlIGRhdGEpCgo=
>From donnte@microsoft.com Fri Jun 30 17:47:00 2000
From: donnte@microsoft.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/68: Makefile non-portability
Date: Fri, 30 Jun 2000 17:47:00 -0000
Message-id: <20000701004404.29264.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00019.html
Content-length: 1392

>Number:         68
>Category:       libstdc++
>Synopsis:       Makefile non-portability
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jun 30 17:47:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     donnte@microsoft.com
>Release:        unknown-1.0
>Organization:
>Environment:
Interix
>Description:
I'm NOT quite sure that this qualifies as a bug because
it does work with gmake.  However, so far, it's the only
thing I've run across in building the whole compiler and
library suite that does:

On roughly line 130 of math/Makefile.in you'll find
libmath_la_LIBADD = \
        @LIBMATHOBJS@ \
        $(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE))

At least the openbsd make I use normally use doesn't
support nested $(), and from reading POSIX.2, this (quite
arguably... the standard is fuzzy) is not standard.  
(POSIX, P673, L467).  (The unanswered question is
are macros evaluated inside-outward or left to right;
if the latter it's illegal, if the former, it's legal,
and the standard doesn't make it clear.)

Anyway... is this something that should be fixed in
the name of portability?

Donn Terry
Speaking only for myself.
>How-To-Repeat:
Use the appropriate make, configure, and make.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From donnte@microsoft.com Fri Jun 30 17:57:00 2000
From: donnte@microsoft.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/69: configure non-portability (-ffunction-sections)
Date: Fri, 30 Jun 2000 17:57:00 -0000
Message-id: <20000701004815.31259.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q2/msg00020.html
Content-length: 1015

>Number:         69
>Category:       libstdc++
>Synopsis:       configure non-portability (-ffunction-sections)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jun 30 17:57:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     donnte@microsoft.com
>Release:        unknown-1.0
>Organization:
>Environment:
Interix
>Description:
configure wrongly concludes that -ffunction-sections is
supported when it is not.  Mostly, this is beningn because
in most places, it's only a warning anyway.  However, in
building one file, -Werror is set, and the warning that
-ffunction-sections is set becomes an error.

-Werror needs to be set in acinclude.m4, line 230, where
CXXFLAGS is set to -ffunction-sections...
>How-To-Repeat:
Use a version of gcc that doesn't support -ffunction-sections.
>Fix:
Add -Werror to set of CXXFLAGS at line 230.
>Release-Note:
>Audit-Trail:
>Unformatted:
>From brendan@zen.org Mon Jul 03 04:57:00 2000
From: brendan@zen.org
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/70: missing parens in bits/std_complex.h (operator==)
Date: Mon, 03 Jul 2000 04:57:00 -0000
Message-id: <20000703115155.14459.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00000.html
Content-length: 2192

>Number:         70
>Category:       libstdc++
>Synopsis:       missing parens in bits/std_complex.h (operator==)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jul 03 04:57:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     brendan@zen.org
>Release:        CVS tree
>Organization:
>Environment:
n/a
>Description:
In std_complex.h it defines an operator== to try to call
__x.imag(), but it's missing the parentheses for it.  The
line is

    operator==(const complex<_Tp>& __x, const complex<_Tp>& __y)
    { return __x.real() == __y.real() && __x.imag == __y.imag(); }

where it needs to be

    operator==(const complex<_Tp>& __x, const complex<_Tp>& __y)
    { return __x.real() == __y.real() && __x.imag() == __y.imag(); }
>How-To-Repeat:

>Fix:
Patch attached, change __x.imag to __x.imag().
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="diffs-complex-imag"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="diffs-complex-imag"

MjAwMC0wNi0yOSAgQnJlbmRhbiBLZWhvZSAgPGJyZW5kYW5AemVuLm9yZz4KCgkqIGJpdHMvc3Rk
X2NvbXBsZXguaCAob3BlcmF0b3I9PSk6IEZpeCBjYWxsIG9mIF9feC5pbWFnKCkgdG8gaGF2ZQoJ
aXRzIHBhcmVudGhlc2VzLgoKSW5kZXg6IGJpdHMvc3RkX2NvbXBsZXguaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL2djYy9lZ2NzL2xpYnN0ZGMrKy12My9iaXRzL3N0ZF9jb21wbGV4Lmgsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC11IC1wIC1yMS4xIHN0ZF9jb21wbGV4LmgKLS0t
IHN0ZF9jb21wbGV4LmgJMjAwMC8wNC8yMSAyMDozMzoyOAkxLjEKKysrIHN0ZF9jb21wbGV4LmgJ
MjAwMC8wNy8wMyAxMTo0ODoyMQpAQCAtODg4LDcgKzg4OCw3IEBAIG5hbWVzcGFjZSBzdGQKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CiAgICAgaW5saW5lIGJvb2wKICAgICBvcGVyYXRvcj09
KGNvbnN0IGNvbXBsZXg8X1RwPiYgX194LCBjb25zdCBjb21wbGV4PF9UcD4mIF9feSkKLSAgICB7
IHJldHVybiBfX3gucmVhbCgpID09IF9feS5yZWFsKCkgJiYgX194LmltYWcgPT0gX195LmltYWco
KTsgfQorICAgIHsgcmV0dXJuIF9feC5yZWFsKCkgPT0gX195LnJlYWwoKSAmJiBfX3guaW1hZygp
ID09IF9feS5pbWFnKCk7IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgICBpbmxp
bmUgYm9vbAo=
>From bkoz@redhat.com Mon Jul 03 18:17:00 2000
From: Benjamin Kosnik <bkoz@redhat.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/70: missing parens in bits/std_complex.h (operator==)
Date: Mon, 03 Jul 2000 18:17:00 -0000
Message-id: <20000704011701.17307.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00001.html
Content-length: 358

The following reply was made to PR libstdc++/70; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@redhat.com>
To: brendan@zen.org
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/70: missing parens in bits/std_complex.h (operator==)
Date: Mon, 3 Jul 2000 18:10:53 -0700 (PDT)

 thanks brendan! This is now fixed, thanks.
 
 -benjamin
>From schimmel@dkrz.de Wed Jul 05 13:27:00 2000
From: schimmel@dkrz.de
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/71: failed to build on x86-linux
Date: Wed, 05 Jul 2000 13:27:00 -0000
Message-id: <20000705202006.8874.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00002.html
Content-length: 3695

>Number:         71
>Category:       libstdc++
>Synopsis:       failed to build on x86-linux
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jul 05 13:27:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Frank Schimmel
>Release:        egcs-20000626
>Organization:
>Environment:
i686-pc-linux, gcc 2.95.2, binutils 2.9.1
>Description:
I tried building egcs-20000626 with gcc-2.95.2:

configure --enable-languages=c,c++ --enable-haifa \
 --with-cpu=i686 --enable-libstdcxx-v3 --enable-namespaces \
 --enable-threads=posix --enable-shared

File `libstdc++-v3/src/locale.cc' won't compile:

In file included from /space/frank/egcs-20000626/libstdc++-v3/src/locale.cc:41:
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswspace_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:65: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswprint_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:73: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswcntrl_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:81: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswupper_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:89: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswlower_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:97: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswalpha_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:105: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswdigit_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:113: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswpunct_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:121: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswxdigit_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:129: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswalnum_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:137: warning: comparison of unsigned
expression >= 0 is always true
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h: In function `int std::_S_iswgraph_helper
(unsigned int)':
/space/frank/egcs-20000626/libstdc++-v3/bits/std_cwctype.h:145: warning: comparison of unsigned
expression >= 0 is always true

Only warnings (not critical as far as I can tell),
but `-Werror' makes it fail...
>How-To-Repeat:

>Fix:
WERROR=""
(Not *really* elegant...)
>Release-Note:
>Audit-Trail:
>Unformatted:
>From kmb@eticomm.net Fri Jul 14 09:07:00 2000
From: kmb@eticomm.net
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/72: streambuf.h
Date: Fri, 14 Jul 2000 09:07:00 -0000
Message-id: <20000714160617.31859.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00003.html
Content-length: 2761

>Number:         72
>Category:       libstdc++
>Synopsis:       streambuf.h
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jul 14 09:07:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Kenneth M. Berry
>Release:        2.95.3
>Organization:
>Environment:
2.3.X or 2.4.X, glibc-2.1.91-2, K7/700Mhz AMD-751 VIA686A
>Description:
make[2]: Entering directory `/extra1/ALSA/alsa-conf'
c++ -DHAVE_CONFIG_H -I. -I. -I. -I./newt    -g -Wall -ftemplate-depth-20 -c Alloc.cc
In file included from /usr/lib/gcc-lib/i386-redhat-linux/2.95.3/../../../../include/g++-3/iostream.h:31,
                 from /usr/lib/gcc-lib/i386-redhat-linux/2.95.3/../../../../include/g++-3/iomanip.h:31,
                 from Alloc.cc:23:
/usr/lib/gcc-lib/i386-redhat-linux/2.95.3/../../../../include/g++-3/streambuf.h: In method `struct _IO_FILE *& streambuf::xchain()':
/usr/lib/gcc-lib/i386-redhat-linux/2.95.3/../../../../include/g++-3/streambuf.h:295: type `_IO_FILE' is not a base type for type `_IO_FILE_plus'
make[2]: *** [Alloc.o] Error 1
make[2]: Leaving directory `/extra1/ALSA/alsa-conf'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/extra1/ALSA/alsa-conf'
make: *** [all-recursive-am] Error 2
[root@localhost alsa-conf]# 

gmake[3]: Entering directory `/extra2/MOZILLA_CVS/mozilla/xpcom/tools/registry'
regxpcom.cpp
c++ -o regxpcom.o -c -DOSTYPE=\"Linux2.4\" -DOJI -DUSE_NSREG  -I../../../dist/include     -I/usr/X11R6/include   -fPIC  -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth -pedantic -Wno-long-long -pthread  -DDEBUG -DDEBUG_root -DTRACING -g -DMOZILLA_CLIENT -include ../../../config-defs.h -Wp,-MD,.deps/regxpcom.pp regxpcom.cpp
In file included from /usr/lib/gcc-lib/i386-redhat-linux/2.95.3/../../../../include/g++-3/iostream.h:31,
                 from regxpcom.cpp:24:
/usr/lib/gcc-lib/i386-redhat-linux/2.95.3/../../../../include/g++-3/streambuf.h: In method `struct _IO_FILE *& streambuf::xchain()':
/usr/lib/gcc-lib/i386-redhat-linux/2.95.3/../../../../include/g++-3/streambuf.h:295: type `_IO_FILE' is not a base type for type `_IO_FILE_plus'
gmake[3]: *** [regxpcom.o] Error 1
gmake[3]: Leaving directory `/extra2/MOZILLA_CVS/mozilla/xpcom/tools/registry'
gmake[2]: *** [install] Error 2
gmake[2]: Leaving directory `/extra2/MOZILLA_CVS/mozilla/xpcom/tools'
gmake[1]: *** [install] Error 2
gmake[1]: Leaving directory `/extra2/MOZILLA_CVS/mozilla/xpcom'
gmake: *** [install] Error 2
[root@localhost mozilla]# 
>How-To-Repeat:
Compile mozilla cvs or alsa-conf cvs.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From jfardo@laurelnetworks.com Fri Jul 14 11:17:00 2000
From: jfardo@laurelnetworks.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/73: libstdc++-v3 doesn't build for PowerPc cross compiler on x86
Date: Fri, 14 Jul 2000 11:17:00 -0000
Message-id: <20000714181208.8346.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00004.html
Content-length: 2249

>Number:         73
>Category:       libstdc++
>Synopsis:       libstdc++-v3 doesn't build for PowerPc cross compiler on x86
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jul 14 11:17:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     John Fardo
>Release:        gcc 2.95.2/libstdc++-2.90.8 (Also gcc 2.96 2000713)
>Organization:
>Environment:
Build platform - i686 Linux 2.2.14-6.1.1
Target platform - PowerPC 750
>Description:
The libstdc++-v3/gcc build fails for the PowerPC750 cross
compiler on a x86 PC host. I have tried with both the most
recent released version as well as the current CVS version.

The build fails with the following error message:

if [ x"-fPIC" != x ]; then \
  /compilers/BUILD/gcc-obj/gcc/xgcc -B/compilers/BUILD/gcc-obj/gcc/ -B/compilers/ppc/7xx/powerpc-linux/bin/ -c -DHAVE_CONFIG_H -g -O2 -I. -I../../../gcc/libiberty/../include  -W - Wall -Wtraditional -pedantic -fPIC ../../../gcc/libiberty/strerror.c -o pic/strerror.o; \
else true; fi
../../../gcc/libiberty/strerror.c:463: warning: static declaration for `sys_nerr
' follows non-static
../../../gcc/libiberty/strerror.c:464: conflicting types for `sys_errlist'
/u/jfardo/work/compilers/opt/hardhat/devkit/ppc/7xx/powerpc-linux/sys-include/st
dio.h:553: previous declaration of `sys_errlist'
>How-To-Repeat:
1. Following the instructions in the installation instructions,
   I renamed libstdc++ to libstdc++-v2 and libio to libio-v2.
2. I linked the libstdc++-v3 source to the libstdc++ directory
   at the top of the gcc source tree.
3. I have binutils 2.9.5.0.22 built for the powerpc on the x86.
4. I created a directory called gcc-obj and ran the 
   configure script from there :
       configure --host=i386-linux --target=powerpc-linux 
       --program-prefix=powerpc-linux- --with-cpu=750 
       --with-gnu-as --with-gnu-ld --enable-threads=posix 
       --enable-cross --enable-shared --enable-languages=c,c++
       --disable-libgcc-rebuild 
       --with-headers=<My dir containing the linux and glibc header files.>
       --with-newlib
5. Run make.

 
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From bkoz@redhat.com Fri Jul 14 11:27:00 2000
From: Benjamin Kosnik <bkoz@redhat.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/73: libstdc++-v3 doesn't build for PowerPc cross compiler on x86
Date: Fri, 14 Jul 2000 11:27:00 -0000
Message-id: <20000714182701.10868.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00005.html
Content-length: 538

The following reply was made to PR libstdc++/73; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@redhat.com>
To: jfardo@laurelnetworks.com
Cc: libstdc++-gnats@sourceware.cygnus.com
Subject: Re: libstdc++/73: libstdc++-v3 doesn't build for PowerPc cross compiler on x86
Date: Fri, 14 Jul 2000 11:19:32 -0700 (PDT)

 note that the cross fails in the "libiberty" folder, which is different 
 than the libstdc++ folder........this indicates a problem with either the 
 compiler, newlib, or libibery versions being used.
 
 -benjamin
>From pjviitas@flash.lakeheadu.ca Sat Jul 15 14:37:00 2000
From: pjviitas@flash.lakeheadu.ca
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/74: gcc make bootstrap fails with: /bin/sh: -c: line 1: syntax error near unexpected token `(C'
Date: Sat, 15 Jul 2000 14:37:00 -0000
Message-id: <20000715212942.13547.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00006.html
Content-length: 1469

>Number:         74
>Category:       libstdc++
>Synopsis:       gcc make bootstrap fails with: /bin/sh: -c: line 1: syntax error near unexpected token `(C'
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jul 15 14:37:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Peter Viitasaari
>Release:        2.90.6
>Organization:
>Environment:
gcc version: 2.95.2
machine: i586-pc-linux-gnu
directories used: gccsrcdir: /root/installs/gcc-2.95.2 
                  libsrcdir: /root/installs/gcc-                  2.95.2/libstdc++-2.90.6 
                  gccbuilddir: /root/installs/objdir 
                  libbuilddir: none needed
                  destdir: /usr

>Description:
gcc make bootstrap fails with: /bin/sh: -c: line 1: syntax error near unexpected token `(C'
>How-To-Repeat:
Starting in /root/installs/gcc-2.95.2 do this:
 
   mv libstdc++ libstdc++-v2
   mv libio libio-v2
 
   tar xzf ../libstdc++-2.90.6.tar.gz
 
   ln -s libstdc++-2.90.6 libstdc++
 
   cd ../objdir
   ../gcc-2.95.2/configure --prefix=/usr
   make bootstrap
 
Fails with script attached: (Reproduced with make check)
>Fix:
I am not too sure but it seems like some of the script variables are not being passed into the libstdc++ makefile.  Is the libstdc++ have to be made before gcc is bootstapped?
 
>Release-Note:
>Audit-Trail:
>Unformatted:
>From pjviitas@flash.lakeheadu.ca Sat Jul 15 14:37:00 2000
From: pjviitas@flash.lakeheadu.ca
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/75: gcc make bootstrap fails with: /bin/sh: -c: line 1: syntax error near unexpected token `(C'
Date: Sat, 15 Jul 2000 14:37:00 -0000
Message-id: <20000715213004.13598.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00007.html
Content-length: 8236

>Number:         75
>Category:       libstdc++
>Synopsis:       gcc make bootstrap fails with: /bin/sh: -c: line 1: syntax error near unexpected token `(C'
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jul 15 14:37:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Peter Viitasaari
>Release:        2.90.6
>Organization:
>Environment:
gcc version: 2.95.2
machine: i586-pc-linux-gnu
directories used: gccsrcdir: /root/installs/gcc-2.95.2 
                  libsrcdir: /root/installs/gcc-                  2.95.2/libstdc++-2.90.6 
                  gccbuilddir: /root/installs/objdir 
                  libbuilddir: none needed
                  destdir: /usr

>Description:
gcc make bootstrap fails with: /bin/sh: -c: line 1: syntax error near unexpected token `(C'
>How-To-Repeat:
Starting in /root/installs/gcc-2.95.2 do this:
 
   mv libstdc++ libstdc++-v2
   mv libio libio-v2
 
   tar xzf ../libstdc++-2.90.6.tar.gz
 
   ln -s libstdc++-2.90.6 libstdc++
 
   cd ../objdir
   ../gcc-2.95.2/configure --prefix=/usr
   make bootstrap
 
Fails with script attached: (Reproduced with make check)
>Fix:
I am not too sure but it seems like some of the script variables are not being passed into the libstdc++ makefile.  Is the libstdc++ have to be made before gcc is bootstapped?
 
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="Typescri"
Content-Disposition: inline; filename="Typescri"

Script started on Sat Jul 15 16:44:08 2000
[root@pjviitas objdir]# make check
make[1]: Entering directory `/root/installs/objdir/etc'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/root/installs/objdir/etc'
make[1]: Entering directory `/root/installs/objdir/libiberty'
make[2]: Entering directory `/root/installs/objdir/libiberty/testsuite'
/bin/sh ../../../gcc-2.95.2/libiberty/testsuite/regress-demangle ../../../gcc-2.95.2/libiberty/testsuite/demangle-expected
All 616 tests passed
make[2]: Leaving directory `/root/installs/objdir/libiberty/testsuite'
make[1]: Leaving directory `/root/installs/objdir/libiberty'
make[1]: Entering directory `/root/installs/objdir/texinfo'
make check-recursive
make[2]: Entering directory `/root/installs/objdir/texinfo'
Making check in intl
make[3]: Entering directory `/root/installs/objdir/texinfo/intl'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/root/installs/objdir/texinfo/intl'
Making check in lib
make[3]: Entering directory `/root/installs/objdir/texinfo/lib'
make
make[4]: Entering directory `/root/installs/objdir/texinfo/lib'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/root/installs/objdir/texinfo/lib'
make[3]: Leaving directory `/root/installs/objdir/texinfo/lib'
Making check in makeinfo
make[3]: Entering directory `/root/installs/objdir/texinfo/makeinfo'
make
make[4]: Entering directory `/root/installs/objdir/texinfo/makeinfo'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/root/installs/objdir/texinfo/makeinfo'
make[3]: Leaving directory `/root/installs/objdir/texinfo/makeinfo'
make[2]: Leaving directory `/root/installs/objdir/texinfo'
make[1]: Leaving directory `/root/installs/objdir/texinfo'
make[1]: Entering directory `/root/installs/objdir/libiberty'
make[2]: Entering directory `/root/installs/objdir/libiberty/testsuite'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/root/installs/objdir/libiberty/testsuite'
make[1]: Leaving directory `/root/installs/objdir/libiberty'
make[1]: Entering directory `/root/installs/objdir/texinfo'
make all-recursive
make[2]: Entering directory `/root/installs/objdir/texinfo'
Making all in intl
make[3]: Entering directory `/root/installs/objdir/texinfo/intl'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/installs/objdir/texinfo/intl'
Making all in lib
make[3]: Entering directory `/root/installs/objdir/texinfo/lib'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/installs/objdir/texinfo/lib'
Making all in makeinfo
make[3]: Entering directory `/root/installs/objdir/texinfo/makeinfo'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/installs/objdir/texinfo/makeinfo'
make[2]: Leaving directory `/root/installs/objdir/texinfo'
make[1]: Leaving directory `/root/installs/objdir/texinfo'
make[1]: Entering directory `/root/installs/objdir/gcc'
(cd intl && make all)
make[2]: Entering directory `/root/installs/objdir/gcc/intl'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/root/installs/objdir/gcc/intl'
if [ -f libgcc2.ready ] ; then \
	true; \
else \
	touch libgcc2.ready; \
fi
make[1]: Leaving directory `/root/installs/objdir/gcc'
make[1]: Entering directory `/root/installs/objdir/i586-pc-linux-gnu/libiberty'
make[2]: Entering directory `/root/installs/objdir/i586-pc-linux-gnu/libiberty/testsuite'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/root/installs/objdir/i586-pc-linux-gnu/libiberty/testsuite'
make[2]: Entering directory `/root/installs/objdir/i586-pc-linux-gnu/libiberty'
if [ -z "" ]; then \
  true; \
else \
  rootpre=`pwd`/; export rootpre; \
  srcrootpre=`cd ../../../gcc-2.95.2/libiberty; pwd`/; export srcrootpre; \
  lib=`echo ${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
  compiler="/root/installs/objdir/gcc/xgcc -B/root/installs/objdir/gcc/ -B/usr/i586-pc-linux-gnu/bin/"; \
  for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
    dir=`echo $i | sed -e 's/;.*$//'`; \
    if [ "${dir}" = "." ]; then \
      true; \
    else \
      if [ -d ../${dir}/${lib} ]; then \
	flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
	if (cd ../${dir}/${lib}; make "AR=ar" "AR_FLAGS=rc" "CC=/root/installs/objdir/gcc/xgcc -B/root/installs/objdir/gcc/ -B/usr/i586-pc-linux-gnu/bin/" "CFLAGS=-g -O2" "LIBCFLAGS=-g -O2" "EXTRA_OFILES=" "HDEFINES=" "INSTALL=/bin/sh /root/installs/gcc-2.95.2/install-sh -c" "INSTALL_DATA=/bin/sh /root/installs/gcc-2.95.2/install-sh -c -m 644" "INSTALL_PROGRAM=/bin/sh /root/installs/gcc-2.95.2/install-sh -c " "LDFLAGS=" "LOADLIBES=" "RANLIB=ranlib" "SHELL=/bin/sh" "prefix=/usr" "exec_prefix=/usr" "libdir=/usr/lib" "libsubdir=/usr/lib/gcc-lib/i586-pc-linux-gnu/2.95.2" "tooldir=/usr/i586-pc-linux-gnu" \
			CFLAGS="-g -O2 ${flags}" \
			CXXFLAGS="-g -O2 -fvtable-thunks -D_GNU_SOURCE ${flags}" \
			LIBCFLAGS="-g -O2 ${flags}" \
			LIBCXXFLAGS="-g -O2 -fvtable-thunks -D_GNU_SOURCE -fno-implicit-templates ${flags}" \
			LDFLAGS=" ${flags}" \
			all); then \
	  true; \
	else \
	  exit 1; \
	fi; \
      else true; \
      fi; \
    fi; \
  done; \
fi
make[2]: Leaving directory `/root/installs/objdir/i586-pc-linux-gnu/libiberty'
make[1]: Leaving directory `/root/installs/objdir/i586-pc-linux-gnu/libiberty'
make[1]: Entering directory `/root/installs/objdir/i586-pc-linux-gnu/libstdc++'
make  all-recursive
make[2]: Entering directory `/root/installs/objdir/i586-pc-linux-gnu/libstdc++'
Making all in math
make[3]: Entering directory `/root/installs/objdir/i586-pc-linux-gnu/libstdc++/math'
/bin/sh ../libtool --mode=compile (CC_FOR_TARGET) -DHAVE_CONFIG_H -I. -I../../../../gcc-2.95.2/libstdc++/math -I..     (CFLAGS_FOR_TARGET) -c ../../../../gcc-2.95.2/libstdc++/math/signbit.c
/bin/sh: -c: line 1: syntax error near unexpected token `(C'
/bin/sh: -c: line 1: `/bin/sh ../libtool --mode=compile (CC_FOR_TARGET) -DHAVE_CONFIG_H -I. -I../../../../gcc-2.95.2/libstdc++/math -I..     (CFLAGS_FOR_TARGET) -c ../../../../gcc-2.95.2/libstdc++/math/signbit.c'
make[3]: *** [signbit.lo] Error 2
make[3]: Leaving directory `/root/installs/objdir/i586-pc-linux-gnu/libstdc++/math'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/installs/objdir/i586-pc-linux-gnu/libstdc++'
make[1]: *** [all-recursive-am] Error 2
make[1]: Leaving directory `/root/installs/objdir/i586-pc-linux-gnu/libstdc++'
make: *** [all-target-libstdc++] Error 2
[root@pjviitas objdir]# exit

Script done on Sat Jul 15 16:44:45 2000
>From pedwards@disaster.jaj.com Mon Jul 17 09:37:00 2000
From: Phil Edwards <pedwards@disaster.jaj.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/68: Makefile non-portability
Date: Mon, 17 Jul 2000 09:37:00 -0000
Message-id: <20000717163701.30580.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00008.html
Content-length: 1682

The following reply was made to PR libstdc++/68; it has been noted by GNATS.

From: Phil Edwards <pedwards@disaster.jaj.com>
To: donnte@microsoft.com
Cc: libstdc++-gnats@sources.redhat.com
Subject: Re: libstdc++/68: Makefile non-portability
Date: Mon, 17 Jul 2000 12:32:26 -0400

 > I'm NOT quite sure that this qualifies as a bug because
 > it does work with gmake.
 
 Well, hmmmm.  On one hand, we do list gmake as a required tool to build
 the library.
 
 On the other hand, automake is supposed to generate super-portable Makefiles
 that don't require gmake.  Putting gmake-only code in the automake input
 file defeats the purpose.
 
 On the gripping hand, gmake is absolutely required in building GCC itself,
 and the library is being designed to be built as part of that process.
 So we've assumed that gmake will always be available.
 
 As soon as we get Solaris builds working again (those are the machines I
 have access to at the moment that also have spare diskspace), I will play
 with changing the syntax and report on this note.
 
 
 >         $(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE))
 >
 > At least the openbsd make I use normally use doesn't
 > support nested $(), and from reading POSIX.2, this (quite
 > arguably... the standard is fuzzy) is not standard.  
 > (POSIX, P673, L467).  (The unanswered question is
 > are macros evaluated inside-outward or left to right;
 > if the latter it's illegal, if the former, it's legal,
 > and the standard doesn't make it clear.)
 
 POSIX can be so fuzzy sometimes... I would argue that nested things should
 always be evaluated inside-outward rather than side-to-side, but as you say,
 it isn't mandated.
 
 Phil
 
>From pedwards@disaster.jaj.com Mon Jul 17 09:57:00 2000
From: Phil Edwards <pedwards@disaster.jaj.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/68: Makefile non-portability
Date: Mon, 17 Jul 2000 09:57:00 -0000
Message-id: <20000717165701.7502.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00009.html
Content-length: 641

The following reply was made to PR libstdc++/68; it has been noted by GNATS.

From: Phil Edwards <pedwards@disaster.jaj.com>
To: bkoz@redhat.com
Cc: libstdc++-gnats@sources.redhat.com
Subject: Re: libstdc++/68: Makefile non-portability
Date: Mon, 17 Jul 2000 12:48:39 -0400

 > gmake is going to be required. It's important to my own sanity that I 
 > don't have to worry about various make systems and limitations. At some 
 
 Ah, okay.  Keeping the maintainers sane is always a bonus.
 
 
 > point, the autoconf machinery will go in to enforce this. Perhaps sooner rather than later?
 
 Perhaps today or tomorrow; this should be easy.
 
 
>From bkoz@redhat.com Mon Jul 17 10:27:00 2000
From: Benjamin Kosnik <bkoz@redhat.com>
To: nobody@sourceware.cygnus.com
Cc: libstdc++-prs@sourceware.cygnus.com
Subject: Re: libstdc++/68: Makefile non-portability
Date: Mon, 17 Jul 2000 10:27:00 -0000
Message-id: <20000717172700.14557.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00010.html
Content-length: 811

The following reply was made to PR libstdc++/68; it has been noted by GNATS.

From: Benjamin Kosnik <bkoz@redhat.com>
To: Phil Edwards <pedwards@disaster.jaj.com>
Cc: libstdc++-gnats@sources.redhat.com
Subject: Re: libstdc++/68: Makefile non-portability
Date: Mon, 17 Jul 2000 10:18:35 -0700 (PDT)

 awesome, you're the best.
 
 > > point, the autoconf machinery will go in to enforce this. Perhaps sooner rather than later?
 > 
 > Perhaps today or tomorrow; this should be easy.
 
 
 if you get around to it, can you please emit info at the end of configure 
 that says something like:
 
 "please make sure you read the install information here:
 <URL>
 
 and the configure information here:
 <URL>
 
 before preceeding with make"
 
 I hope this might increase the number of people who actually read the docs.
>From thomasdr@us.ibm.com Mon Jul 17 13:37:00 2000
From: thomasdr@us.ibm.com
To: libstdc++-gnats@sourceware.cygnus.com
Subject: libstdc++/76: Segmentation fault on AIX on multi-threaded "Hello World"
Date: Mon, 17 Jul 2000 13:37:00 -0000
Message-id: <20000717203528.1613.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q3/msg00011.html
Content-length: 1488

>Number:         76
>Category:       libstdc++
>Synopsis:       Segmentation fault on AIX on multi-threaded "Hello World"
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jul 17 13:37:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Dave Thomas
>Release:        unknown-1.0
>Organization:
>Environment:
AIX
>Description:
We get segmentation faults on AIX whenever multiple
threads try to write to cout at the same time.  

We reduced the problem to a two thread application.
Each application does a :

     cout << "Hello World" << endl;

The application will eventually generate a segmentation fault.

Running the test program under a debugger revealed that one
of the thread is always in the C "write" runtime function.
We noticed that the source file that our debugger wants to
bring up for the line of code of "write" generating  the
segmentation fault is NOT source shipped with gcc, but 
appears to be the "native" AIX C runtime, probably shipped
with xlC.

1)  Is this a known problem? If so, is there a planned fix
    date?

2)  Is it normal for the gcc C++ runtime to use the C
    xlC runtime library?

  
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name=" "
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=" "


                 reply	other threads:[~2000-03-19 19:07 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20000320030700.24582.qmail@sourceware.cygnus.com \
    --to=bkoz@cygnus.com \
    --cc=libstdc++-prs@sourceware.cygnus.com \
    --cc=nobody@sourceware.cygnus.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).