<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>11934</bug_id>
          
          <creation_ts>2006-12-22 11:23:06 -0800</creation_ts>
          <short_desc>SVGPathSeg* JS bindings have live update issues</short_desc>
          <delta_ts>2006-12-22 11:53:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>eric</cc>
    
    <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>40520</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-12-22 11:23:06 -0800</bug_when>
    <thetext>Adding/removing SVGPathSeg* items to a SVGPathElement (through SVGPathSegList interface) has live updates problems, as the notifyAttributeChange() function isn&apos;t called anywhere. The context param is currently stored per SVGPathSeg, which is not needed - as it can be done using SVGPathSegList completely. It wastes memory, that is fixed. In order to get rid of the context param in SVGPathSeg, we need a way to map SVGPathSeg* objects to SVGStyledElement* objects (&quot;context element&quot;). That is done using a new HashMap in the SVGDocumentExtensions class.

Attaching patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40521</commentid>
    <comment_count>1</comment_count>
      <attachid>11970</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-12-22 11:25:23 -0800</bug_when>
    <thetext>Created attachment 11970
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40469</commentid>
    <comment_count>2</comment_count>
      <attachid>11970</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-12-22 11:52:30 -0800</bug_when>
    <thetext>Comment on attachment 11970
Initial patch

looks fine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40468</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-12-22 11:53:22 -0800</bug_when>
    <thetext>Landed in r18393.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11970</attachid>
            <date>2006-12-22 11:25:23 -0800</date>
            <delta_ts>2006-12-22 11:52:30 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>FixSVGPathSeg.diff</filename>
            <type>text/plain</type>
            <size>112593</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4MzkxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDYtMTItMjIgIE5pa29sYXMgWmltbWVybWFu
biAgPHppbW1lcm1hbm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworCUZpeGVzOiBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTkzNAorCisgICAgICAgIEZpeCBTVkcgRE9NIHBhdGggYmluZGluZ3MuIFBhdGggbW9kaWZjYXRp
b25zICYgcmVtb3ZhbCB0aHJvdWdoCisgICAgICAgIHRoZSBTVkdQYXRoU2VnTGlzdCBpbnRlcmZh
Y2UsIGFyZSBmdWxseSBzdXBwb3J0ZWQgbm93LgorCisgICAgICAgICogc3ZnL2N1c3RvbS9qcy11
cGRhdGUtcGF0aC1yZW1vdmFsLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvY3VzdG9tL2pzLXVwZGF0ZS1wYXRoLXJlbW92YWwtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvY3VzdG9tL2pzLXVwZGF0ZS1wYXRoLXJlbW92YWwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2pzLXVwZGF0ZS1wYXRoLXJlbW92YWwuc3ZnOiBB
ZGRlZC4KKwogMjAwNi0xMi0yMiAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgYXJvYmVuLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9q
cy11cGRhdGUtcGF0aC1yZW1vdmFsLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBhdGgtcmVtb3ZhbC1leHBlY3RlZC5jaGVj
a3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBh
dGgtcmVtb3ZhbC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAor
YTBjYWI4MzMyNDg5NzIxODA3ODU0MzhlZThjZTgzYmEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1wYXRoLXJlbW92YWwt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBk
YXRlLXBhdGgtcmVtb3ZhbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1wYXRoLXJlbW92YWwtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7c3Zn
fSBhdCAoNTAsMjQuNTApIHNpemUgMjAweDEwNgorICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDUwLDI0LjUwKSBzaXplIDIwMHgxMDYgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBD
MDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0yNTAu
MDAsMTMwLjAwQzE4NS4wMCwxMzAuMDAsMTUwLjAwLDgwLjAwLDE1MC4wMCw4MC4wMEMxNTAuMDAs
ODAuMDAsMTE1LjAwLDI1LjAwLDUwLjAwLDI1LjAwTTUwLjAwLDEzMC4wMEMxMTUuMDAsMTMwLjAw
LDE1MC4wMCw4MC4wMCwxNTAuMDAsODAuMDAiXQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9qcy11cGRhdGUtcGF0aC1yZW1vdmFsLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL2pzLXVwZGF0ZS1wYXRoLXJlbW92YWwuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcGF0aC1yZW1vdmFsLnN2ZwkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4
NTktMSIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RU
RCBTVkcgMjAwMTA5MDQvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMtU1ZHLTIw
MDEwOTA0L0RURC9zdmcxMC5kdGQiPgorPHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjQ1MCIgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworCit3aW5kb3cuc2V0VGltZW91dCgiY2xpY2tOb3coKSIsIDApOworCitmdW5jdGlv
biBjbGlja05vdygpIHsKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDE5MCwgNDUpOworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0K
KworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKworZnVuY3Rpb24gbW91c2VI
YW5kbGVyKGV2dCkKK3sKKyAgICB2YXIgcGF0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJw
YXRoIik7CisgICAgcGF0aC5wYXRoU2VnTGlzdC5yZW1vdmVJdGVtKHBhdGgucGF0aFNlZ0xpc3Qu
bnVtYmVyT2ZJdGVtcyAtIDEpOworfQorPC9zY3JpcHQ+CisKKzxwYXRoIGlkPSJwYXRoIiBvbmNs
aWNrPSJtb3VzZUhhbmRsZXIoZXZ0KSIgZmlsbD0iI0ZGMDAwMCIgc3Ryb2tlPSIjMDBDMDAwIiBk
PSJNIDI1MCAxMzAgQyAxODUgMTMwIDE1MCA4MCAxNTAgODAgUyAxMTUgMjUgNTAgMjUgbSAwIDEw
NSBjIDY1IDAgMTAwIC01MCAxMDAgLTUwIHMgMzUgLTU1IDEwMCAtNTUiLz4KKworPC9zdmc+Cklu
ZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwko
cmV2aXNpb24gMTgzOTEpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE3NSBAQAorMjAwNi0xMi0yMiAgTmlrb2xhcyBaaW1tZXJtYW5uICA8emltbWVybWFu
bkBrZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZpeGVzOiBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkzNAor
CisgICAgICAgIEFkZGluZy9yZW1vdmluZyBTVkdQYXRoU2VnKiBpdGVtcyB0byBhIFNWR1BhdGhF
bGVtZW50ICh0aHJvdWdoIFNWR1BhdGhTZWdMaXN0CisgICAgICAgIGludGVyZmFjZSkgaGFzIGxp
dmUgdXBkYXRlcyBwcm9ibGVtcywgYXMgdGhlIG5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpIGZ1bmN0
aW9uCisgICAgICAgIGlzbid0IGNhbGxlZCBhbnl3aGVyZS4gVGhlIGNvbnRleHQgcGFyYW0gaXMg
Y3VycmVudGx5IHN0b3JlZCBwZXIgU1ZHUGF0aFNlZywKKyAgICAgICAgd2hpY2ggaXMgbm90IG5l
ZWRlZCAtIGFzIGl0IGNhbiBiZSBkb25lIHVzaW5nIFNWR1BhdGhTZWdMaXN0IGNvbXBsZXRlbHku
IEl0CisgICAgICAgIHdhc3RlcyBtZW1vcnksIHRoYXQgaXMgZml4ZWQuIEluIG9yZGVyIHRvIGdl
dCByaWQgb2YgdGhlIGNvbnRleHQgcGFyYW0gaW4KKyAgICAgICAgU1ZHUGF0aFNlZywgd2UgbmVl
ZCBhIHdheSB0byBtYXAgU1ZHUGF0aFNlZyogb2JqZWN0cyB0byBTVkdTdHlsZWRFbGVtZW50Kgor
ICAgICAgICBvYmplY3RzICgiY29udGV4dCBlbGVtZW50IikuIFRoYXQgaXMgZG9uZSB1c2luZyBh
IG5ldyBIYXNoTWFwIGluIHRoZQorICAgICAgICBTVkdEb2N1bWVudEV4dGVuc2lvbnMgY2xhc3Mu
CisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnTGlzdEN1
c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlUGF0aFNlZ0NvbnRleHRN
YXApOgorICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlRnJvbVBhdGhTZWdDb250ZXh0TWFwKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTU1ZHUGF0aFNlZ0xpc3Q6OmdldEl0ZW0pOgorICAgICAgICAoV2Vi
Q29yZTo6SlNTVkdQYXRoU2VnTGlzdDo6aW5zZXJ0SXRlbUJlZm9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU1NWR1BhdGhTZWdMaXN0OjpyZXBsYWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpK
U1NWR1BhdGhTZWdMaXN0OjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUGF0
aFNlZ0xpc3Q6OmFwcGVuZEl0ZW0pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAqIGtzdmcyL21pc2MvU1ZHRG9jdW1lbnRFeHRlbnNpb25z
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnBhdGhTZWdDb250
ZXh0TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50RXh0ZW5zaW9uczo6cGF0aFNl
Z0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpzZXRQ
YXRoU2VnQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVuc2lvbnM6
OnJlbW92ZVBhdGhTZWdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50RXh0
ZW5zaW9uczo6aGFzUGF0aFNlZ0NvbnRleHQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0OjpnZXRGaXJzdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdMaXN0OjpnZXRMYXN0KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhT
ZWdNb3ZldG9BYnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNW
R1BhdGhTZWdNb3ZldG9SZWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmNy
ZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1l
bnQ6OmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljQWJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpjcmVhdGVT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
RWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0FyY0Ficyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsUmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQ
YXRoU2VnTGluZXRvVmVydGljYWxBYnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1l
bnQ6OmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aFJlbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6Y3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
UmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpzdmdNb3ZlVG8pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OnN2Z0xpbmVUbyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnTGluZVRvSG9yaXpvbnRhbCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnTGluZVRvVmVydGljYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEVsZW1lbnQ6OnN2Z0N1cnZlVG9DdWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoRWxlbWVudDo6c3ZnQ3VydmVUb0N1YmljU21vb3RoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdGhFbGVtZW50OjpzdmdDdXJ2ZVRvUXVhZHJhdGljKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdGhFbGVtZW50OjpzdmdDdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhdGhFbGVtZW50OjpzdmdBcmNUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoRWxlbWVudDo6cGF0aFNlZ0xpc3QpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoRWxl
bWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoU2VnLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZzo6U1ZHUGF0aFNlZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnOjp+U1ZHUGF0
aFNlZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnOjp0b1N0cmluZyk6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR1BhdGhTZWdBcmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZ0FyY0Ficzo6U1ZHUGF0aFNlZ0FyY0Ficyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnQXJjQWJzOjpzZXRYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdBcmNBYnM6OnNl
dFkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0FyY0Ficzo6c2V0UjEpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0FyY0Ficzo6c2V0UjIpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0FyY0Ficzo6c2V0QW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNl
Z0FyY0Ficzo6c2V0TGFyZ2VBcmNGbGFnKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdB
cmNBYnM6OnNldFN3ZWVwRmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnQXJjUmVs
OjpTVkdQYXRoU2VnQXJjUmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdBcmNSZWw6
OnNldFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0FyY1JlbDo6c2V0WSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnQXJjUmVsOjpzZXRSMSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnQXJjUmVsOjpzZXRSMik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
QXJjUmVsOjpzZXRBbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnQXJjUmVsOjpz
ZXRMYXJnZUFyY0ZsYWcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0FyY1JlbDo6c2V0
U3dlZXBGbGFnKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0FyYy5oOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcDoKKyAgICAgICAgKiBrc3ZnMi9z
dmcvU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoU2Vn
Q3VydmV0b0N1YmljLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNBYnM6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY0Ficzo6c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnQ3VydmV0b0N1YmljQWJzOjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNBYnM6OnNldFgxKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNBYnM6OnNldFkxKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNBYnM6OnNldFgyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNBYnM6OnNldFkyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNS
ZWw6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1JlbDo6c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljUmVsOjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNSZWw6OnNldFgxKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNSZWw6OnNldFkxKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNSZWw6OnNldFgyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNS
ZWw6OnNldFkyKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5o
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM6OlNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aEFiczo6c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnQ3VydmV0b0N1YmljU21vb3RoQWJzOjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM6OnNldFgyKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM6OnNldFkyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWw6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGhSZWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aFJlbDo6c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21v
b3RoUmVsOjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGhSZWw6OnNldFgyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGhSZWw6OnNldFkyKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y0Ficzo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM6OnNldFgpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM6OnNldFkpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM6OnNldFgxKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzOjpzZXRZMSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbDo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNSZWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWw6
OnNldFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWw6
OnNldFkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWw6
OnNldFgxKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVs
OjpzZXRZMSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
QWJzOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFiczo6c2V0WCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFiczo6c2V0WSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbDo6U1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWw6OnNldFgpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWw6OnNldFkpOgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aC5oOgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdQYXRoU2VnTGluZXRvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dGhTZWdMaW5ldG9BYnM6OlNWR1BhdGhTZWdMaW5ldG9BYnMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0xpbmV0b0Ficzo6c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGluZXRvQWJzOjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaW5ldG9SZWw6
OlNWR1BhdGhTZWdMaW5ldG9SZWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpbmV0
b1JlbDo6c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGluZXRvUmVsOjpzZXRZ
KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0by5oOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFiczo6U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250
YWxBYnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnM6
OnNldFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWw6
OlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsOjpzZXRYKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWwuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaW5ldG9W
ZXJ0aWNhbEFiczo6U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFiczo6c2V0WSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWw6OlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJl
bCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWw6OnNldFkp
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWwuaDoKKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aFNlZ0xpc3Q6OlNWR1BhdGhTZWdMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhT
ZWdMaXN0Ojpjb250ZXh0KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuaDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdQYXRoU2VnTW92ZXRvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdN
b3ZldG9BYnM6OlNWR1BhdGhTZWdNb3ZldG9BYnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZ01vdmV0b0Ficzo6c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTW92ZXRv
QWJzOjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdNb3ZldG9SZWw6OlNWR1Bh
dGhTZWdNb3ZldG9SZWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ01vdmV0b1JlbDo6
c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTW92ZXRvUmVsOjpzZXRZKToKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ01vdmV0by5oOgorCiAyMDA2LTEyLTIyICBKb2hu
IFN1bGxpdmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
dmluIERlY2tlcgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiAxODM5MSkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8J
KHdvcmtpbmcgY29weSkKQEAgLTgyNiwxMiArODI2LDEzIEBAIGNvbnRhaW5zKERFRklORVMsIFNW
R19TVVBQT1JUPTEpIHsKICMgVE9ETzogdGhpcy1vbmUtaXMtbm90LWF1dG8tYWRkZWQhIEZJWE1F
ISB0bXAvU1ZHRWxlbWVudEZhY3RvcnkuY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNTVkdF
bGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNTVkdNYXRy
aXhDdXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnQ3VzdG9tLmNw
cCBcCisgICAgICAgIGJpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwIFwKICAg
ICAgICAga3N2ZzIvY3NzL1NWR0NTU1BhcnNlci5jcHAgXAogICAgICAgICBrc3ZnMi9jc3MvU1ZH
UmVuZGVyU3R5bGVEZWZzLmNwcCBcCiAgICAgICAgIGtzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZS5j
cHAgXAogICAgICAgICBrc3ZnMi9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAgXAogICAgICAg
ICBrc3ZnMi9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuY3BwIFwKLSAgICAgICAga3N2ZzIvc3ZnL1NW
R1BhdGhTZWcuY3BwIFwKICAgICAgICAga3N2ZzIvc3ZnL1NWR0NvbG9yLmNwcCBcCiAgICAgICAg
IGtzdmcyL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcCBcCiAgICAgICAgIGtzdmcyL3N2Zy9TVkdG
RVRpbGVFbGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMTgzOTEpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk3Niw3ICsxOTc2LDYgQEAKIAkJ
QTg4QUQ0QjcwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg5OTA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaCAqLzsgfTsKIAkJ
QTg4QUQ0QjgwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21v
b3RoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGODlBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290
aC5jcHAgKi87IH07CiAJCUE4OEFENEI5MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1Ntb290aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY4OUIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljU21vb3RoLmggKi87IH07Ci0JCUE4OEFENEJBMDk1MjQ4RjAwMDFERDE5NiAvKiBT
VkdQYXRoU2VnLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGODlDMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnLmNwcCAqLzsgfTsKIAkJ
QTg4QUQ0QkIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODlEMDg5NzAxRjMwMEJBNTExNCAv
KiBTVkdQYXRoU2VnLmggKi87IH07CiAJCUE4OEFENEJDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg5RTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWwuY3BwICovOyB9OwogCQlBODhBRDRCRDA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODlGMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2Vn
TGluZXRvSG9yaXpvbnRhbC5oICovOyB9OwpAQCAtMjI3Nyw2ICsyMjc2LDcgQEAKIAkJQjI3NTM1
ODIwQjA1MzgxNDAwMkNFNjRGIC8qIFBlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1NTUwQjA1MzgxNDAwMkNFNjRGIC8qIFBlbi5oICovOyB9
OwogCQlCMjc1MzU4RTBCMDUzQTY2MDAyQ0U2NEYgLyogSWNvbk1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNzUzNThEMEIwNTNBNjYwMDJDRTY0
RiAvKiBJY29uTWFjLm1tICovOyB9OwogCQlCMjc3QjQwNDBCMjJGMzdDMDAwNEJFQzYgLyogR3Jh
cGhpY3NDb250ZXh0TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjI3N0I0MDMwQjIyRjM3QzAwMDRCRUM2IC8qIEdyYXBoaWNzQ29udGV4dE1hYy5t
bSAqLzsgfTsKKwkJQjI5N0JDNzAwQjNDMTRDRjAwNDVBNTkwIC8qIEpTU1ZHUGF0aFNlZ0xpc3RD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjI5N0JDNkYwQjNDMTRDRjAwNDVBNTkwIC8qIEpTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwICov
OyB9OwogCQlCMkEwMTVBODBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTAxNTkyMEFG
NkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuY3BwICovOyB9OwogCQlCMkEwMTVBOTBB
RjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkEwMTU5MzBBRjZDRDUzMDA2QkNFMEUgLyogR3Jh
cGhpY3NDb250ZXh0LmggKi87IH07CiAJCUIyQTAxNUFBMEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFw
aGljc1R5cGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQTAxNTk0MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmNwcCAqLzsgfTsK
QEAgLTQ5MzUsNyArNDkzNSw2IEBACiAJCUE4QzBGODk5MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjg5
QTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGguY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjg5QjA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGguaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1Ntb290aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4OUMwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdQYXRoU2VnLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGODlEMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2Vn
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
UGF0aFNlZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJQThDMEY4OUUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdMaW5ldG9I
b3Jpem9udGFsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4OUYwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CkBAIC01MjQ3LDYgKzUyNDYsNyBAQAogCQlCMjc1MzU1NTBCMDUzODE0MDAyQ0U2
NEYgLyogUGVuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1OEQwQjA1M0E2NjAwMkNFNjRGIC8qIElj
b25NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSWNvbk1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3N0I0MDMwQjIyRjM3QzAwMDRC
RUM2IC8qIEdyYXBoaWNzQ29udGV4dE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUIyOTdCQzZGMEIzQzE0Q0YwMDQ1QTU5MCAvKiBKU1NWR1BhdGhTZWdMaXN0Q3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR1BhdGhT
ZWdMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJBMDE1OTIw
QUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjJBMDE1OTMwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQTAxNTk0MEFGNkNENTMwMDZCQ0UwRSAv
KiBHcmFwaGljc1R5cGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc1R5cGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyOTQs
NyArODI5NCw2IEBACiAJCQkJQThDMEY4OEQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhFbGVt
ZW50LmggKi8sCiAJCQkJQThDMEY4OEUwODk3MDFGMzAwQkE1MTE0IC8qIHN2Z3BhdGhwYXJzZXIu
Y3BwICovLAogCQkJCUE4QzBGODhGMDg5NzAxRjMwMEJBNTExNCAvKiBzdmdwYXRocGFyc2VyLmgg
Ki8sCi0JCQkJQThDMEY4OUMwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWcuY3BwICovLAog
CQkJCUE4QzBGODlEMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnLmggKi8sCiAJCQkJQThD
MEY4OTAwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdBcmMuY3BwICovLAogCQkJCUE4QzBG
ODkxMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnQXJjLmggKi8sCkBAIC04NjY4LDYgKzg2
NjcsNyBAQAogCQkJCTg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFw
cGVyRmFjdG9yeS5oICovLAogCQkJCUIyNURGQUFFMEIyRTI5MjkwMDBFNjUxMCAvKiBKU1NWR01h
dHJpeEN1c3RvbS5jcHAgKi8sCiAJCQkJQjJDOTZEOEMwQjNBRjJCNzAwNUU4MEVDIC8qIEpTU1ZH
UGF0aFNlZ0N1c3RvbS5jcHAgKi8sCisJCQkJQjI5N0JDNkYwQjNDMTRDRjAwNDVBNTkwIC8qIEpT
U1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwICovLAogCQkJCUIyMTEyN0E1MEIzMTg2NzcwMDA5QkU1
MyAvKiBKU1NWR1BPRFR5cGVXcmFwcGVyLmggKi8sCiAJCQkJMUE3NTBFMzMwQTkwRjg5RjAwMEZG
MjE1IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi8sCiAJCQkJOTNCNzBENDEwOUVCMEM3QzAw
OUQ4NDY4IC8qIEpTWE1MSHR0cFJlcXVlc3QuY3BwICovLApAQCAtMTExMjMsNyArMTExMjMsNiBA
QAogCQkJCUE4OEFENEI0MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENEI2MDk1MjQ4RjAwMDFERDE5NiAv
KiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhB
RDRCODA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGgu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQ0QkEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1Bh
dGhTZWcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0QkMwOTUyNDhGMDAwMUREMTk2IC8q
IFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFE
NEJFMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRoU2VnTGluZXRvLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4OEFENEMwMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWwuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMjE3Nyw2ICsxMjE3Niw3IEBACiAJCQkJQjJBMTBC
OTQwQjM4MThENzAwMDk5QUE0IC8qIEltYWdlQnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjIzQkNDRTUwQjM4MjlDOTAwNUIyNDE1IC8qIEltYWdlQnVmZmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyQzk2RDhEMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NWR1BhdGhTZWdDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjI5N0JDNzAwQjNDMTRDRjAwNDVBNTkwIC8qIEpTU1ZH
UGF0aFNlZ0xpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNTVkdQYXRoU2VnTGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBOaWtvbGFzIFpp
bW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1B
IDAyMTExLTEzMDcsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZmRlZiBT
VkdfU1VQUE9SVAorI2luY2x1ZGUgIkpTU1ZHUGF0aFNlZ0xpc3QuaCIKKworI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU1NWR1BhdGhTZWcuaCIK
KyNpbmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKKyNpbmNsdWRlICJTVkdQYXRoU2Vn
TGlzdC5oIgorI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBLSlM7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RhdGljIHZvaWQgdXBkYXRlUGF0aFNlZ0NvbnRleHRNYXAoRXhlY1N0YXRlKiBleGVj
LCBTVkdQYXRoU2VnTGlzdCogbGlzdCwgU1ZHUGF0aFNlZyogb2JqKQoreworICAgIEFTU0VSVChl
eGVjICYmIGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpKTsKKyAgICBGcmFtZSogYWN0aXZlRnJh
bWUgPSBzdGF0aWNfY2FzdDxTY3JpcHRJbnRlcnByZXRlcio+KGV4ZWMtPmR5bmFtaWNJbnRlcnBy
ZXRlcigpKS0+ZnJhbWUoKTsKKyAgICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgICAgICByZXR1cm47
CisKKyAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gbGlzdC0+Y29udGV4dCgp
OworICAgIEFTU0VSVChjb250ZXh0KTsKKworICAgIC8vIFVwZGF0ZSB0aGUgU1ZHUGF0aFNlZyog
aGFzaG1hcCwgc28gdGhhdCB0aGUgSlNTVkdQYXRoU2VnKiB3cmFwcGVycywgY2FuIGFjY2VzcyB0
aGUgY29udGV4dCBlbGVtZW50CisgICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBleHRlbnNpb25z
ID0gKGFjdGl2ZUZyYW1lLT5kb2N1bWVudCgpID8gYWN0aXZlRnJhbWUtPmRvY3VtZW50KCktPmFj
Y2Vzc1NWR0V4dGVuc2lvbnMoKSA6IDApOworICAgIGlmIChleHRlbnNpb25zKSB7CisgICAgICAg
IGlmIChleHRlbnNpb25zLT5oYXNQYXRoU2VnQ29udGV4dChvYmopKSB7CisgICAgICAgICAgICBB
U1NFUlQoZXh0ZW5zaW9ucy0+cGF0aFNlZ0NvbnRleHQob2JqKSA9PSBjb250ZXh0KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGV4dGVuc2lvbnMtPnNldFBhdGhT
ZWdDb250ZXh0KG9iaiwgY29udGV4dCk7CisgICAgfQorCisgICAgY29udGV4dC0+bm90aWZ5QXR0
cmlidXRlQ2hhbmdlKCk7Cit9CisKKworc3RhdGljIHZvaWQgcmVtb3ZlRnJvbVBhdGhTZWdDb250
ZXh0TWFwKEV4ZWNTdGF0ZSogZXhlYywgU1ZHUGF0aFNlZ0xpc3QqIGxpc3QsIFNWR1BhdGhTZWcq
IG9iaikKK3sKKyAgICBBU1NFUlQoZXhlYyAmJiBleGVjLT5keW5hbWljSW50ZXJwcmV0ZXIoKSk7
CisgICAgRnJhbWUqIGFjdGl2ZUZyYW1lID0gc3RhdGljX2Nhc3Q8U2NyaXB0SW50ZXJwcmV0ZXIq
PihleGVjLT5keW5hbWljSW50ZXJwcmV0ZXIoKSktPmZyYW1lKCk7CisgICAgaWYgKCFhY3RpdmVG
cmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29u
dGV4dCA9IGxpc3QtPmNvbnRleHQoKTsKKyAgICBBU1NFUlQoY29udGV4dCk7CisKKyAgICBTVkdE
b2N1bWVudEV4dGVuc2lvbnMqIGV4dGVuc2lvbnMgPSAoYWN0aXZlRnJhbWUtPmRvY3VtZW50KCkg
PyBhY3RpdmVGcmFtZS0+ZG9jdW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpIDogMCk7Cisg
ICAgaWYgKGV4dGVuc2lvbnMpIHsKKyAgICAgICAgaWYgKGV4dGVuc2lvbnMtPmhhc1BhdGhTZWdD
b250ZXh0KG9iaikpCisgICAgICAgICAgICBleHRlbnNpb25zLT5yZW1vdmVQYXRoU2VnQ29udGV4
dChvYmopOworICAgIH0KKworICAgIGNvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwor
fQorCitKU1ZhbHVlKiBKU1NWR1BhdGhTZWdMaXN0OjpnZXRJdGVtKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgTGlzdCYgYXJncykKK3sKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKworICAgIGJv
b2wgaW5kZXhPazsKKyAgICB1bnNpZ25lZCBpbmRleCA9IGFyZ3NbMF0tPnRvSW50MzIoZXhlYywg
aW5kZXhPayk7CisgICAgaWYgKCFpbmRleE9rKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihl
eGVjLCBUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKworICAgIFNWR1BhdGhTZWdMaXN0KiBpbXAgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2Vn
TGlzdCo+KGltcGwoKSk7CisKKyAgICBTVkdQYXRoU2VnKiBvYmogPSBXVEY6OmdldFB0cihpbXAt
PmdldEl0ZW0oaW5kZXgsIGVjKSk7CisgICAgdXBkYXRlUGF0aFNlZ0NvbnRleHRNYXAoZXhlYywg
aW1wLCBvYmopOworCisgICAgS0pTOjpKU1ZhbHVlKiByZXN1bHQgPSB0b0pTKGV4ZWMsIG9iaik7
CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CitKU1ZhbHVlKiBKU1NWR1BhdGhTZWdMaXN0OjppbnNlcnRJdGVtQmVmb3JlKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgTGlzdCYgYXJncykKK3sKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAg
ICBTVkdQYXRoU2VnKiBuZXdJdGVtID0gdG9TVkdQYXRoU2VnKGFyZ3NbMF0pOworCisgICAgYm9v
bCBpbmRleE9rOworICAgIHVuc2lnbmVkIGluZGV4ID0gYXJnc1sxXS0+dG9JbnQzMihleGVjLCBp
bmRleE9rKTsKKyAgICBpZiAoIWluZGV4T2spIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgU1ZHUGF0aFNlZ0xpc3QqIGltcCA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdM
aXN0Kj4oaW1wbCgpKTsKKyAgICB1cGRhdGVQYXRoU2VnQ29udGV4dE1hcChleGVjLCBpbXAsIG5l
d0l0ZW0pOworCisgICAgS0pTOjpKU1ZhbHVlKiByZXN1bHQgPSB0b0pTKGV4ZWMsIFdURjo6Z2V0
UHRyKGltcC0+aW5zZXJ0SXRlbUJlZm9yZShuZXdJdGVtLCBpbmRleCwgZWMpKSk7CisgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVl
KiBKU1NWR1BhdGhTZWdMaXN0OjpyZXBsYWNlSXRlbShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IExp
c3QmIGFyZ3MpCit7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgU1ZHUGF0aFNlZyog
bmV3SXRlbSA9IHRvU1ZHUGF0aFNlZyhhcmdzWzBdKTsKKyAgICAKKyAgICBib29sIGluZGV4T2s7
CisgICAgdW5zaWduZWQgaW5kZXggPSBhcmdzWzFdLT50b0ludDMyKGV4ZWMsIGluZGV4T2spOwor
ICAgIGlmICghaW5kZXhPaykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9N
SVNNQVRDSF9FUlIpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAg
ICBTVkdQYXRoU2VnTGlzdCogaW1wID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3QqPihpbXBs
KCkpOworICAgIHVwZGF0ZVBhdGhTZWdDb250ZXh0TWFwKGV4ZWMsIGltcCwgbmV3SXRlbSk7CisK
KyAgICBLSlM6OkpTVmFsdWUqIHJlc3VsdCA9IHRvSlMoZXhlYywgV1RGOjpnZXRQdHIoaW1wLT5y
ZXBsYWNlSXRlbShuZXdJdGVtLCBpbmRleCwgZWMpKSk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIGVjKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlKiBKU1NWR1BhdGhTZWdM
aXN0OjpyZW1vdmVJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCYgYXJncykKK3sKKyAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAKKyAgICBib29sIGluZGV4T2s7CisgICAgdW5z
aWduZWQgaW5kZXggPSBhcmdzWzBdLT50b0ludDMyKGV4ZWMsIGluZGV4T2spOworICAgIGlmICgh
aW5kZXhPaykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9F
UlIpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBTVkdQYXRo
U2VnTGlzdCogaW1wID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3QqPihpbXBsKCkpOworCisg
ICAgUmVmUHRyPFNWR1BhdGhTZWc+IG9iaihpbXAtPnJlbW92ZUl0ZW0oaW5kZXgsIGVjKSk7Cisg
ICAgcmVtb3ZlRnJvbVBhdGhTZWdDb250ZXh0TWFwKGV4ZWMsIGltcCwgb2JqLmdldCgpKTsKKwor
ICAgIEtKUzo6SlNWYWx1ZSogcmVzdWx0ID0gdG9KUyhleGVjLCBvYmouZ2V0KCkpOworICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNWYWx1
ZSogSlNTVkdQYXRoU2VnTGlzdDo6YXBwZW5kSXRlbShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IExp
c3QmIGFyZ3MpCit7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgU1ZHUGF0aFNlZyog
bmV3SXRlbSA9IHRvU1ZHUGF0aFNlZyhhcmdzWzBdKTsKKworICAgIFNWR1BhdGhTZWdMaXN0KiBp
bXAgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdCo+KGltcGwoKSk7CisgICAgdXBkYXRlUGF0
aFNlZ0NvbnRleHRNYXAoZXhlYywgaW1wLCBuZXdJdGVtKTsKKworICAgIEtKUzo6SlNWYWx1ZSog
cmVzdWx0ID0gdG9KUyhleGVjLCBXVEY6OmdldFB0cihpbXAtPmFwcGVuZEl0ZW0obmV3SXRlbSwg
ZWMpKSk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCit9CisKKyNlbmRpZiAvLyBTVkdfU1VQUE9SVAorCisvLyB2aW06dHM9NDpub2V0Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlz
aW9uIDE4MzkxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQkod29ya2luZyBjb3B5KQpAQCAtNTEyLDYgKzUxMiwxMSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogCiAgICAgaWYgKCRjbGFzc05hbWUgPX4gL15KU1NWR0FuaW1hdGVkLykgewogICAg
ICAgICBBZGRJbmNsdWRlc0ZvclNWR0FuaW1hdGVkVHlwZSgkaW50ZXJmYWNlTmFtZSk7CisgICAg
fSBlbHNpZigkY2xhc3NOYW1lID1+IC9eSlNTVkdQYXRoU2VnLykgeworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudEhlYWRlciwgIiNpbmNsdWRlIFwiRG9jdW1lbnQuaFwiXG4iKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnRIZWFkZXIsICIjaW5jbHVkZSBcIkZyYW1lLmhcIlxuIik7CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2luY2x1ZGUgXCJTVkdEb2N1bWVudEV4dGVu
c2lvbnMuaFwiXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRIZWFkZXIsICIjaW5jbHVk
ZSBcIlNWR1N0eWxlZEVsZW1lbnQuaFwiXG4iKTsKICAgICB9CiAKICAgICBwdXNoKEBpbXBsQ29u
dGVudEhlYWRlciwgIiNpbmNsdWRlIFwiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oXCJcbiIpIGlmICgk
Y2xhc3NOYW1lID1+IC9TVkcvKTsKQEAgLTkwNSw3ICs5MTAsMTkgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IikgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIC8vIEZJWE1FOiBI
YWNrIHRvIHByZXZlbnQgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgLS0gcmVtb3ZlIG9uY2UgRE9N
V2luZG93IGluY2x1ZGVzIGEgc2V0dGFibGUgcHJvcGVydHlcbiIpOwogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICh2b2lkKWltcDtcbiIpOworICAgICAgICAgICAgfSBl
bHNpZiAoJGludGVyZmFjZU5hbWUgPX4gL15TVkdQYXRoU2VnLykgeworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVChleGVjICYmIGV4ZWMtPmR5bmFtaWNJbnRl
cnByZXRlcigpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IEZyYW1lKiBhY3RpdmVGcmFtZSA9IHN0YXRpY19jYXN0PFNjcmlwdEludGVycHJldGVyKj4oZXhl
Yy0+ZHluYW1pY0ludGVycHJldGVyKCkpLT5mcmFtZSgpO1xuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFhY3RpdmVGcmFtZSlcbiAgICAgICAgcmV0dXJu
O1xuXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBTVkdEb2N1
bWVudEV4dGVuc2lvbnMqIGV4dGVuc2lvbnMgPSAoYWN0aXZlRnJhbWUtPmRvY3VtZW50KCkgPyBh
Y3RpdmVGcmFtZS0+ZG9jdW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpIDogMCk7XG4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXh0ZW5zaW9ucyAm
JiBleHRlbnNpb25zLT5oYXNQYXRoU2VnQ29udGV4dChpbXApKSB7XG4iKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCog
Y29udGV4dCA9IGV4dGVuc2lvbnMtPnBhdGhTZWdDb250ZXh0KGltcCk7XG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgQVNTRVJUKGNvbnRleHQpO1xuXG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgY29udGV4dC0+
bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9XG5cbiIpOworICAgICAgICAgICAgICAgIHByaW50ICJJRkFDRTogJGlu
dGVyZmFjZU5hbWVcbiI7CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAifVxuXG4iKTsgIyBlbmQgZnVuY3Rpb24KICAgICAgICAgfQogICAgIH0KSW5kZXg6
IFdlYkNvcmUva3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL21pc2MvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgJKHJldmlzaW9uIDE4
MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9taXNjL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw2ICs0Miw4IEBAIGNsYXNzIE5vZGU7CiBjbGFzcyBTVkdFbGVtZW50
OwogY2xhc3MgU3RyaW5nOwogY2xhc3MgVGltZVNjaGVkdWxlcjsKK2NsYXNzIFNWR1BhdGhTZWc7
CitjbGFzcyBTVkdTdHlsZWRFbGVtZW50OwogY2xhc3MgU1ZHU1ZHRWxlbWVudDsKIAogY2xhc3Mg
U1ZHRG9jdW1lbnRFeHRlbnNpb25zIHsKQEAgLTcyLDcgKzc0LDE0IEBAIHByaXZhdGU6CiAgICAg
ICAgIHJldHVybiBzX3ZhbHVlVHlwZTsKICAgICB9CiAKKyAgICBIYXNoTWFwPGNvbnN0IFNWR1Bh
dGhTZWcqLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50Kj4gcGF0aFNlZ0NvbnRleHRNYXAoKSBjb25z
dAorICAgIHsKKyAgICAgICAgc3RhdGljIEhhc2hNYXA8Y29uc3QgU1ZHUGF0aFNlZyosIGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQqPiBzX3ZhbHVlVHlwZTsKKyAgICAgICAgcmV0dXJuIHNfdmFsdWVU
eXBlOworICAgIH0KKwogcHVibGljOgorICAgIC8vIFVzZWQgYnkgdGhlIEFOSU1BVEVEX1BST1BF
UlRZXyogbWFjcm9zCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlPgogICAgIFZhbHVl
VHlwZSBiYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudCogZWxlbWVudCwgY29uc3QgQXRvbWljU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpIGNvbnN0CiAgICAgewpAQCAtMTE0LDYgKzEyMywyNyBAQCBwdWJs
aWM6CiAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKworICAgIC8vIFVzZWQgYnkgU1ZH
UGF0aFNlZyogSlMgd3JhcHBlcnMKKyAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBwYXRoU2Vn
Q29udGV4dChjb25zdCBTVkdQYXRoU2VnKiBvYmopIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gcGF0aFNlZ0NvbnRleHRNYXAoKS5nZXQob2JqKTsKKyAgICB9CisKKyAgICB2b2lkIHNldFBh
dGhTZWdDb250ZXh0KGNvbnN0IFNWR1BhdGhTZWcqIG9iaiwgY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dCogY29udGV4dCkKKyAgICB7CisgICAgICAgIHBhdGhTZWdDb250ZXh0TWFwKCkuc2V0KG9iaiwg
Y29udGV4dCk7CisgICAgfQorCisgICAgdm9pZCByZW1vdmVQYXRoU2VnQ29udGV4dChjb25zdCBT
VkdQYXRoU2VnKiBvYmopCisgICAgeworICAgICAgICBwYXRoU2VnQ29udGV4dE1hcCgpLnJlbW92
ZShvYmopOworICAgIH0KKworICAgIGJvb2wgaGFzUGF0aFNlZ0NvbnRleHQoY29uc3QgU1ZHUGF0
aFNlZyogb2JqKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhdGhTZWdDb250ZXh0TWFwKCkuY29u
dGFpbnMob2JqKTsKKyAgICB9CiB9OwogCiAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBXZWJDb3Jl
OjpTdHJpbmcKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMaXN0LmgJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MywxOCArNjMsMTQgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIEl0ZW0gZ2V0Rmlyc3QoKSBjb25zdAogICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAobV92ZWN0b3IuaXNFbXB0eSgpKQotICAgICAgICAgICAg
ICAgIHJldHVybiBUeXBlT3BlcmF0aW9uczo6bnVsbEl0ZW0oKTsKLQotICAgICAgICAgICAgcmV0
dXJuIG1fdmVjdG9yLmZpcnN0KCk7CisgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KyAgICAgICAgICAgIHJldHVybiBnZXRJdGVtKDAsIGVjKTsKICAgICAgICAgfQogCiAgICAgICAg
IEl0ZW0gZ2V0TGFzdCgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX3ZlY3Rv
ci5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVPcGVyYXRpb25zOjpudWxs
SXRlbSgpOwotCi0gICAgICAgICAgICByZXR1cm4gbV92ZWN0b3IubGFzdCgpOworICAgICAgICAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAgICAgICByZXR1cm4gZ2V0SXRlbShtX3Zl
Y3Rvci5zaXplKCkgLSAxLCBlYyk7CiAgICAgICAgIH0KIAogICAgICAgICBJdGVtIGdldEl0ZW0o
dW5zaWduZWQgaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEyNiwxMSArMTIyLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgICAg
IH0KIAotICAgICAgICB2b2lkIHJlbW92ZUl0ZW0oY29uc3QgSXRlbSBpdGVtKQotICAgICAgICB7
Ci0gICAgICAgICAgICBtX3ZlY3Rvci5yZW1vdmUoaXRlbSk7Ci0gICAgICAgIH0KLQogICAgICAg
ICBJdGVtIGFwcGVuZEl0ZW0oSXRlbSBuZXdJdGVtLCBFeGNlcHRpb25Db2RlJikKICAgICAgICAg
ewogICAgICAgICAgICAgbV92ZWN0b3IuYXBwZW5kKG5ld0l0ZW0pOwpJbmRleDogV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gMTgzOTEpCisrKyBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAy
MDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIxLDYgKzIxLDcgQEAKICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUGF0aEVsZW1lbnQu
aCIKIApAQCAtODcsNDEgKzg4LDQxIEBAIFNWR1BhdGhTZWdDbG9zZVBhdGgqIFNWR1BhdGhFbGVt
ZW50OjpjcmUKICAgICByZXR1cm4gbmV3IFNWR1BhdGhTZWdDbG9zZVBhdGgoKTsKIH0KIAotU1ZH
UGF0aFNlZ01vdmV0b0FicyogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9B
YnMoZG91YmxlIHgsIGRvdWJsZSB5LCBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQor
U1ZHUGF0aFNlZ01vdmV0b0FicyogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdNb3Zl
dG9BYnMoZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIFNWR1BhdGhTZWdNb3ZldG9BYnMqIHRl
bXAgPSBuZXcgU1ZHUGF0aFNlZ01vdmV0b0Ficyhjb250ZXh0KTsKKyAgICBTVkdQYXRoU2VnTW92
ZXRvQWJzKiB0ZW1wID0gbmV3IFNWR1BhdGhTZWdNb3ZldG9BYnMoKTsKICAgICB0ZW1wLT5zZXRY
KHgpOwogICAgIHRlbXAtPnNldFkoeSk7CiAgICAgcmV0dXJuIHRlbXA7CiB9CiAKLVNWR1BhdGhT
ZWdNb3ZldG9SZWwqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsKGRv
dWJsZSB4LCBkb3VibGUgeSwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKK1NWR1Bh
dGhTZWdNb3ZldG9SZWwqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVs
KGRvdWJsZSB4LCBkb3VibGUgeSkKIHsKLSAgICBTVkdQYXRoU2VnTW92ZXRvUmVsKiB0ZW1wID0g
bmV3IFNWR1BhdGhTZWdNb3ZldG9SZWwoY29udGV4dCk7CisgICAgU1ZHUGF0aFNlZ01vdmV0b1Jl
bCogdGVtcCA9IG5ldyBTVkdQYXRoU2VnTW92ZXRvUmVsKCk7CiAgICAgdGVtcC0+c2V0WCh4KTsK
ICAgICB0ZW1wLT5zZXRZKHkpOwogICAgIHJldHVybiB0ZW1wOwogfQogCi1TVkdQYXRoU2VnTGlu
ZXRvQWJzKiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0Ficyhkb3VibGUg
eCwgZG91YmxlIHksIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQpCitTVkdQYXRoU2Vn
TGluZXRvQWJzKiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0Ficyhkb3Vi
bGUgeCwgZG91YmxlIHkpCiB7Ci0gICAgU1ZHUGF0aFNlZ0xpbmV0b0FicyogdGVtcCA9IG5ldyBT
VkdQYXRoU2VnTGluZXRvQWJzKGNvbnRleHQpOworICAgIFNWR1BhdGhTZWdMaW5ldG9BYnMqIHRl
bXAgPSBuZXcgU1ZHUGF0aFNlZ0xpbmV0b0FicygpOwogICAgIHRlbXAtPnNldFgoeCk7CiAgICAg
dGVtcC0+c2V0WSh5KTsKICAgICByZXR1cm4gdGVtcDsKIH0KIAotU1ZHUGF0aFNlZ0xpbmV0b1Jl
bCogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwoZG91YmxlIHgsIGRv
dWJsZSB5LCBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQorU1ZHUGF0aFNlZ0xpbmV0
b1JlbCogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwoZG91YmxlIHgs
IGRvdWJsZSB5KQogewotICAgIFNWR1BhdGhTZWdMaW5ldG9SZWwqIHRlbXAgPSBuZXcgU1ZHUGF0
aFNlZ0xpbmV0b1JlbChjb250ZXh0KTsKKyAgICBTVkdQYXRoU2VnTGluZXRvUmVsKiB0ZW1wID0g
bmV3IFNWR1BhdGhTZWdMaW5ldG9SZWwoKTsKICAgICB0ZW1wLT5zZXRYKHgpOwogICAgIHRlbXAt
PnNldFkoeSk7CiAgICAgcmV0dXJuIHRlbXA7CiB9CiAKLVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNB
YnMqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKGRvdWJs
ZSB4LCBkb3VibGUgeSwgZG91YmxlIHgxLCBkb3VibGUgeTEsIGRvdWJsZSB4MiwgZG91YmxlIHky
LCBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQorU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y0FicyogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMoZG91
YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeDEsIGRvdWJsZSB5MSwgZG91YmxlIHgyLCBkb3VibGUg
eTIpCiB7Ci0gICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicyogdGVtcCA9IG5ldyBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljQWJzKGNvbnRleHQpOworICAgIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNB
YnMqIHRlbXAgPSBuZXcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicygpOwogICAgIHRlbXAtPnNl
dFgoeCk7CiAgICAgdGVtcC0+c2V0WSh5KTsKICAgICB0ZW1wLT5zZXRYMSh4MSk7CkBAIC0xMzEs
OSArMTMyLDkgQEAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicyogU1ZHUGF0aEVsZW1lbgogICAg
IHJldHVybiB0ZW1wOwogfQogCi1TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKiBTVkdQYXRoRWxl
bWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbChkb3VibGUgeCwgZG91YmxlIHks
IGRvdWJsZSB4MSwgZG91YmxlIHkxLCBkb3VibGUgeDIsIGRvdWJsZSB5MiwgY29uc3QgU1ZHU3R5
bGVkRWxlbWVudCogY29udGV4dCkKK1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwqIFNWR1BhdGhF
bGVtZW50OjpjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKGRvdWJsZSB4LCBkb3VibGUg
eSwgZG91YmxlIHgxLCBkb3VibGUgeTEsIGRvdWJsZSB4MiwgZG91YmxlIHkyKQogewotICAgIFNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwqIHRlbXAgPSBuZXcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1JlbChjb250ZXh0KTsKKyAgICBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKiB0ZW1wID0gbmV3
IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwoKTsKICAgICB0ZW1wLT5zZXRYKHgpOwogICAgIHRl
bXAtPnNldFkoeSk7CiAgICAgdGVtcC0+c2V0WDEoeDEpOwpAQCAtMTQzLDkgKzE0NCw5IEBAIFNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwqIFNWR1BhdGhFbGVtZW4KICAgICByZXR1cm4gdGVtcDsK
IH0KIAotU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMqIFNWR1BhdGhFbGVtZW50OjpjcmVh
dGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficyhkb3VibGUgeCwgZG91YmxlIHksIGRvdWJs
ZSB4MSwgZG91YmxlIHkxLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQorU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY0Ficyhkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB4MSwgZG91Ymxl
IHkxKQogewotICAgIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKiB0ZW1wID0gbmV3IFNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKGNvbnRleHQpOworICAgIFNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljQWJzKiB0ZW1wID0gbmV3IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJz
KCk7CiAgICAgdGVtcC0+c2V0WCh4KTsKICAgICB0ZW1wLT5zZXRZKHkpOwogICAgIHRlbXAtPnNl
dFgxKHgxKTsKQEAgLTE1Myw5ICsxNTQsOSBAQCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fi
cyogU1ZHUGF0aEVsCiAgICAgcmV0dXJuIHRlbXA7CiB9CiAKLVNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljUmVsKiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNSZWwoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeDEsIGRvdWJsZSB5MSwgY29uc3QgU1ZH
U3R5bGVkRWxlbWVudCogY29udGV4dCkKK1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKiBT
VkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwoZG91Ymxl
IHgsIGRvdWJsZSB5LCBkb3VibGUgeDEsIGRvdWJsZSB5MSkKIHsKLSAgICBTVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1JlbCogdGVtcCA9IG5ldyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bChjb250ZXh0KTsKKyAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCogdGVtcCA9IG5l
dyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCgpOwogICAgIHRlbXAtPnNldFgoeCk7CiAg
ICAgdGVtcC0+c2V0WSh5KTsKICAgICB0ZW1wLT5zZXRYMSh4MSk7CkBAIC0xNjMsOSArMTY0LDkg
QEAgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwqIFNWR1BhdGhFbAogICAgIHJldHVybiB0
ZW1wOwogfQogCi1TVkdQYXRoU2VnQXJjQWJzKiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0
aFNlZ0FyY0Ficyhkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSByMSwgZG91YmxlIHIyLCBkb3Vi
bGUgYW5nbGUsIGJvb2wgbGFyZ2VBcmNGbGFnLCBib29sIHN3ZWVwRmxhZywgY29uc3QgU1ZHU3R5
bGVkRWxlbWVudCogY29udGV4dCkKK1NWR1BhdGhTZWdBcmNBYnMqIFNWR1BhdGhFbGVtZW50Ojpj
cmVhdGVTVkdQYXRoU2VnQXJjQWJzKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHIxLCBkb3Vi
bGUgcjIsIGRvdWJsZSBhbmdsZSwgYm9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnKQog
ewotICAgIFNWR1BhdGhTZWdBcmNBYnMqIHRlbXAgPSBuZXcgU1ZHUGF0aFNlZ0FyY0Ficyhjb250
ZXh0KTsKKyAgICBTVkdQYXRoU2VnQXJjQWJzKiB0ZW1wID0gbmV3IFNWR1BhdGhTZWdBcmNBYnMo
KTsKICAgICB0ZW1wLT5zZXRYKHgpOwogICAgIHRlbXAtPnNldFkoeSk7CiAgICAgdGVtcC0+c2V0
UjEocjEpOwpAQCAtMTc2LDkgKzE3Nyw5IEBAIFNWR1BhdGhTZWdBcmNBYnMqIFNWR1BhdGhFbGVt
ZW50OjpjcmVhdGUKICAgICByZXR1cm4gdGVtcDsKIH0KIAotU1ZHUGF0aFNlZ0FyY1JlbCogU1ZH
UGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdBcmNSZWwoZG91YmxlIHgsIGRvdWJsZSB5LCBk
b3VibGUgcjEsIGRvdWJsZSByMiwgZG91YmxlIGFuZ2xlLCBib29sIGxhcmdlQXJjRmxhZywgYm9v
bCBzd2VlcEZsYWcsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQpCitTVkdQYXRoU2Vn
QXJjUmVsKiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbChkb3VibGUgeCwg
ZG91YmxlIHksIGRvdWJsZSByMSwgZG91YmxlIHIyLCBkb3VibGUgYW5nbGUsIGJvb2wgbGFyZ2VB
cmNGbGFnLCBib29sIHN3ZWVwRmxhZykKIHsKLSAgICBTVkdQYXRoU2VnQXJjUmVsKiB0ZW1wID0g
bmV3IFNWR1BhdGhTZWdBcmNSZWwoY29udGV4dCk7CisgICAgU1ZHUGF0aFNlZ0FyY1JlbCogdGVt
cCA9IG5ldyBTVkdQYXRoU2VnQXJjUmVsKCk7CiAgICAgdGVtcC0+c2V0WCh4KTsKICAgICB0ZW1w
LT5zZXRZKHkpOwogICAgIHRlbXAtPnNldFIxKHIxKTsKQEAgLTE4OSwzNyArMTkwLDM3IEBAIFNW
R1BhdGhTZWdBcmNSZWwqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGUKICAgICByZXR1cm4gdGVtcDsK
IH0KIAotU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMqIFNWR1BhdGhFbGVtZW50OjpjcmVh
dGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyhkb3VibGUgeCwgY29uc3QgU1ZHU3R5bGVk
RWxlbWVudCogY29udGV4dCkKK1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKiBTVkdQYXRo
RWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMoZG91YmxlIHgpCiB7
Ci0gICAgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMqIHRlbXAgPSBuZXcgU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxBYnMoY29udGV4dCk7CisgICAgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6
b250YWxBYnMqIHRlbXAgPSBuZXcgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMoKTsKICAg
ICB0ZW1wLT5zZXRYKHgpOwogICAgIHJldHVybiB0ZW1wOwogfQogCi1TVkdQYXRoU2VnTGluZXRv
SG9yaXpvbnRhbFJlbCogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsUmVsKGRvdWJsZSB4LCBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQorU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbFJlbChkb3VibGUgeCkKIHsKLSAgICBTVkdQYXRoU2VnTGluZXRv
SG9yaXpvbnRhbFJlbCogdGVtcCA9IG5ldyBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbChj
b250ZXh0KTsKKyAgICBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCogdGVtcCA9IG5ldyBT
VkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCgpOwogICAgIHRlbXAtPnNldFgoeCk7CiAgICAg
cmV0dXJuIHRlbXA7CiB9CiAKLVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyogU1ZHUGF0aEVs
ZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyhkb3VibGUgeSwgY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKK1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyog
U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyhkb3VibGUg
eSkKIHsKLSAgICBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMqIHRlbXAgPSBuZXcgU1ZHUGF0
aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKGNvbnRleHQpOworICAgIFNWR1BhdGhTZWdMaW5ldG9WZXJ0
aWNhbEFicyogdGVtcCA9IG5ldyBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoKTsKICAgICB0
ZW1wLT5zZXRZKHkpOwogICAgIHJldHVybiB0ZW1wOwogfQogCi1TVkdQYXRoU2VnTGluZXRvVmVy
dGljYWxSZWwqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxS
ZWwoZG91YmxlIHksIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQpCitTVkdQYXRoU2Vn
TGluZXRvVmVydGljYWxSZWwqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRoU2VnTGluZXRv
VmVydGljYWxSZWwoZG91YmxlIHkpCiB7Ci0gICAgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
KiB0ZW1wID0gbmV3IFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbChjb250ZXh0KTsKKyAgICBT
VkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwqIHRlbXAgPSBuZXcgU1ZHUGF0aFNlZ0xpbmV0b1Zl
cnRpY2FsUmVsKCk7CiAgICAgdGVtcC0+c2V0WSh5KTsKICAgICByZXR1cm4gdGVtcDsKIH0KIAot
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUg
eDIsIGRvdWJsZSB5MiwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKK1NWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoQWJzKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHgyLCBkb3Vi
bGUgeTIpCiB7Ci0gICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyogdGVtcCA9IG5l
dyBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzKGNvbnRleHQpOworICAgIFNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMqIHRlbXAgPSBuZXcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aEFicygpOwogICAgIHRlbXAtPnNldFgoeCk7CiAgICAgdGVtcC0+c2V0WSh5KTsKICAg
ICB0ZW1wLT5zZXRYMih4Mik7CkBAIC0yMjcsOSArMjI4LDkgQEAgU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aEFicyogU1ZHUGF0aAogICAgIHJldHVybiB0ZW1wOwogfQogCi1TVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoUmVsKiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aFJlbChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB4MiwgZG91Ymxl
IHkyLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQorU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aFJlbCogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGhSZWwoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeDIsIGRvdWJsZSB5MikKIHsK
LSAgICBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKiB0ZW1wID0gbmV3IFNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwoY29udGV4dCk7CisgICAgU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aFJlbCogdGVtcCA9IG5ldyBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
KCk7CiAgICAgdGVtcC0+c2V0WCh4KTsKICAgICB0ZW1wLT5zZXRZKHkpOwogICAgIHRlbXAtPnNl
dFgyKHgyKTsKQEAgLTIzNywxNyArMjM4LDE3IEBAIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9v
dGhSZWwqIFNWR1BhdGgKICAgICByZXR1cm4gdGVtcDsKIH0KIAotU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNTbW9vdGhBYnMqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1Ntb290aEFicyhkb3VibGUgeCwgZG91YmxlIHksIGNvbnN0IFNWR1N0eWxlZEVs
ZW1lbnQqIGNvbnRleHQpCitTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyogU1ZH
UGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKGRv
dWJsZSB4LCBkb3VibGUgeSkKIHsKLSAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290
aEFicyogdGVtcCA9IG5ldyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyhjb250
ZXh0KTsKKyAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyogdGVtcCA9IG5l
dyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicygpOwogICAgIHRlbXAtPnNldFgo
eCk7CiAgICAgdGVtcC0+c2V0WSh5KTsKICAgICByZXR1cm4gdGVtcDsKIH0KIAotU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwqIFNWR1BhdGhFbGVtZW50OjpjcmVhdGVTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbChkb3VibGUgeCwgZG91YmxlIHksIGNvbnN0IFNW
R1N0eWxlZEVsZW1lbnQqIGNvbnRleHQpCitTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290
aFJlbCogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21v
b3RoUmVsKGRvdWJsZSB4LCBkb3VibGUgeSkKIHsKLSAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRy
YXRpY1Ntb290aFJlbCogdGVtcCA9IG5ldyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290
aFJlbChjb250ZXh0KTsKKyAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCog
dGVtcCA9IG5ldyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCgpOwogICAgIHRl
bXAtPnNldFgoeCk7CiAgICAgdGVtcC0+c2V0WSh5KTsKICAgICByZXR1cm4gdGVtcDsKQEAgLTI1
OCw5ICsyNTksOSBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpzdmdNb3ZlVG8oZG91YmxlIHgxCiAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAKICAgICBpZiAoYWJzKQotICAgICAgICBwYXRoU2Vn
TGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnMoeDEsIHkxLCB0aGlz
KSwgZWMpOworICAgICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhT
ZWdNb3ZldG9BYnMoeDEsIHkxKSwgZWMpOwogICAgIGVsc2UKLSAgICAgICAgcGF0aFNlZ0xpc3Qo
KS0+YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsKHgxLCB5MSwgdGhpcyksIGVj
KTsKKyAgICAgICAgcGF0aFNlZ0xpc3QoKS0+YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnTW92
ZXRvUmVsKHgxLCB5MSksIGVjKTsKIH0KIAogdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnTGluZVRv
KGRvdWJsZSB4MSwgZG91YmxlIHkxLCBib29sIGFicykKQEAgLTI2OCw5ICsyNjksOSBAQCB2b2lk
IFNWR1BhdGhFbGVtZW50OjpzdmdMaW5lVG8oZG91YmxlIHgxCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAKICAgICBpZiAoYWJzKQotICAgICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVt
KGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnMoeDEsIHkxLCB0aGlzKSwgZWMpOworICAgICAgICBw
YXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnMoeDEsIHkx
KSwgZWMpOwogICAgIGVsc2UKLSAgICAgICAgcGF0aFNlZ0xpc3QoKS0+YXBwZW5kSXRlbShjcmVh
dGVTVkdQYXRoU2VnTGluZXRvUmVsKHgxLCB5MSwgdGhpcyksIGVjKTsKKyAgICAgICAgcGF0aFNl
Z0xpc3QoKS0+YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnTGluZXRvUmVsKHgxLCB5MSksIGVj
KTsKIH0KIAogdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnTGluZVRvSG9yaXpvbnRhbChkb3VibGUg
eCwgYm9vbCBhYnMpCkBAIC0yNzgsOSArMjc5LDkgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3Zn
TGluZVRvSG9yaXpvbnRhbAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogCiAgICAgaWYgKGFi
cykKLSAgICAgICAgcGF0aFNlZ0xpc3QoKS0+YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbEFicyh4LCB0aGlzKSwgZWMpOworICAgICAgICBwYXRoU2VnTGlzdCgpLT5h
cHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKHgpLCBlYyk7CiAg
ICAgZWxzZQotICAgICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsUmVsKHgsIHRoaXMpLCBlYyk7CisgICAgICAgIHBhdGhTZWdMaXN0
KCktPmFwcGVuZEl0ZW0oY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoeCksIGVj
KTsKIH0KIAogdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnTGluZVRvVmVydGljYWwoZG91YmxlIHks
IGJvb2wgYWJzKQpAQCAtMjg4LDkgKzI4OSw5IEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN2Z0xp
bmVUb1ZlcnRpY2FsKGQKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKIAogICAgIGlmIChhYnMp
Ci0gICAgICAgIHBhdGhTZWdMaXN0KCktPmFwcGVuZEl0ZW0oY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0
b1ZlcnRpY2FsQWJzKHksIHRoaXMpLCBlYyk7CisgICAgICAgIHBhdGhTZWdMaXN0KCktPmFwcGVu
ZEl0ZW0oY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHkpLCBlYyk7CiAgICAgZWxz
ZQotICAgICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhTZWdMaW5l
dG9WZXJ0aWNhbFJlbCh5LCB0aGlzKSwgZWMpOworICAgICAgICBwYXRoU2VnTGlzdCgpLT5hcHBl
bmRJdGVtKGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5KSwgZWMpOwogfQogCiB2
b2lkIFNWR1BhdGhFbGVtZW50OjpzdmdDdXJ2ZVRvQ3ViaWMoZG91YmxlIHgxLCBkb3VibGUgeTEs
IGRvdWJsZSB4MiwgZG91YmxlIHkyLCBkb3VibGUgeCwgZG91YmxlIHksIGJvb2wgYWJzKQpAQCAt
Mjk4LDkgKzI5OSw5IEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN2Z0N1cnZlVG9DdWJpYyhkb3UK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKIAogICAgIGlmIChhYnMpCi0gICAgICAgIHBhdGhT
ZWdMaXN0KCktPmFwcGVuZEl0ZW0oY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyh4LCB5
LCB4MSwgeTEsIHgyLCB5MiwgdGhpcyksIGVjKTsKKyAgICAgICAgcGF0aFNlZ0xpc3QoKS0+YXBw
ZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKHgsIHksIHgxLCB5MSwgeDIs
IHkyKSwgZWMpOwogICAgIGVsc2UKLSAgICAgICAgcGF0aFNlZ0xpc3QoKS0+YXBwZW5kSXRlbShj
cmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKHgsIHksIHgxLCB5MSwgeDIsIHkyLCB0aGlz
KSwgZWMpOworICAgICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNSZWwoeCwgeSwgeDEsIHkxLCB4MiwgeTIpLCBlYyk7CiB9CiAKIHZvaWQg
U1ZHUGF0aEVsZW1lbnQ6OnN2Z0N1cnZlVG9DdWJpY1Ntb290aChkb3VibGUgeCwgZG91YmxlIHks
IGRvdWJsZSB4MiwgZG91YmxlIHkyLCBib29sIGFicykKQEAgLTMwOCw5ICszMDksOSBAQCB2b2lk
IFNWR1BhdGhFbGVtZW50OjpzdmdDdXJ2ZVRvQ3ViaWNTbW9vCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAKICAgICBpZiAoYWJzKQotICAgICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVt
KGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMoeDIsIHkyLCB4LCB5LCB0aGlz
KSwgZWMpOworICAgICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMoeDIsIHkyLCB4LCB5KSwgZWMpOwogICAgIGVsc2UKLSAg
ICAgICAgcGF0aFNlZ0xpc3QoKS0+YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoUmVsKHgyLCB5MiwgeCwgeSwgdGhpcyksIGVjKTsKKyAgICAgICAgcGF0aFNlZ0xp
c3QoKS0+YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHgy
LCB5MiwgeCwgeSksIGVjKTsKIH0KIAogdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnQ3VydmVUb1F1
YWRyYXRpYyhkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB4MSwgZG91YmxlIHkxLCBib29sIGFi
cykKQEAgLTMxOCw5ICszMTksOSBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpzdmdDdXJ2ZVRvUXVh
ZHJhdGljCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAKICAgICBpZiAoYWJzKQotICAgICAg
ICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljQWJzKHgxLCB5MSwgeCwgeSwgdGhpcyksIGVjKTsKKyAgICAgICAgcGF0aFNlZ0xpc3QoKS0+
YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficyh4MSwgeTEsIHgs
IHkpLCBlYyk7CiAgICAgZWxzZQotICAgICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNy
ZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKHgxLCB5MSwgeCwgeSwgdGhpcyksIGVj
KTsKKyAgICAgICAgcGF0aFNlZ0xpc3QoKS0+YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1JlbCh4MSwgeTEsIHgsIHkpLCBlYyk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVs
ZW1lbnQ6OnN2Z0N1cnZlVG9RdWFkcmF0aWNTbW9vdGgoZG91YmxlIHgsIGRvdWJsZSB5LCBib29s
IGFicykKQEAgLTMyOCw5ICszMjksOSBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpzdmdDdXJ2ZVRv
UXVhZHJhdGljCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAKICAgICBpZiAoYWJzKQotICAg
ICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoQWJzKHgsIHksIHRoaXMpLCBlYyk7CisgICAgICAgIHBhdGhTZWdMaXN0KCkt
PmFwcGVuZEl0ZW0oY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMoeCwg
eSksIGVjKTsKICAgICBlbHNlCi0gICAgICAgIHBhdGhTZWdMaXN0KCktPmFwcGVuZEl0ZW0oY3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwoeCwgeSwgdGhpcyksIGVjKTsK
KyAgICAgICAgcGF0aFNlZ0xpc3QoKS0+YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1Ntb290aFJlbCh4LCB5KSwgZWMpOwogfQogCiB2b2lkIFNWR1BhdGhFbGVtZW50
OjpzdmdBcmNUbyhkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSByMSwgZG91YmxlIHIyLCBkb3Vi
bGUgYW5nbGUsIGJvb2wgbGFyZ2VBcmNGbGFnLCBib29sIHN3ZWVwRmxhZywgYm9vbCBhYnMpCkBA
IC0zMzgsOSArMzM5LDkgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnQXJjVG8oZG91YmxlIHgs
IAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogCiAgICAgaWYgKGFicykKLSAgICAgICAgcGF0
aFNlZ0xpc3QoKS0+YXBwZW5kSXRlbShjcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHgsIHksIHIxLCBy
MiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnLCB0aGlzKSwgZWMpOworICAgICAgICBw
YXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhTZWdBcmNBYnMoeCwgeSwgcjEs
IHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcpLCBlYyk7CiAgICAgZWxzZQotICAg
ICAgICBwYXRoU2VnTGlzdCgpLT5hcHBlbmRJdGVtKGNyZWF0ZVNWR1BhdGhTZWdBcmNSZWwoeCwg
eSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIHRoaXMpLCBlYyk7Cisg
ICAgICAgIHBhdGhTZWdMaXN0KCktPmFwcGVuZEl0ZW0oY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh4
LCB5LCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZyksIGVjKTsKIH0KIAog
dm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnQ2xvc2VQYXRoKCkKQEAgLTM2Niw3ICszNjcsNyBAQCB2
b2lkIFNWR1BhdGhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0CiBTVkdQYXRoU2VnTGlzdCog
U1ZHUGF0aEVsZW1lbnQ6OnBhdGhTZWdMaXN0KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGF0aFNl
Z0xpc3QpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QgPSBuZXcgU1ZHUGF0aFNlZ0xpc3QoKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdCA9IG5ldyBTVkdQYXRoU2VnTGlzdCh0aGlzKTsKIAogICAgIHJl
dHVybiBtX3BhdGhTZWdMaXN0LmdldCgpOwogfQpAQCAtNDM1LDYgKzQzNiw2IEBAIFBhdGggU1ZH
UGF0aEVsZW1lbnQ6OnRvUGF0aERhdGEoKSBjb25zdAogCiB9CiAKLS8vIHZpbTp0cz00Om5vZXQK
ICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1BhdGhFbGVtZW50LmgJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHUGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsOCArMjAsOSBAQAogICAg
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR1BhdGhF
bGVtZW50SW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHUGF0aEVsZW1lbnRJbXBsX0gKKyNpZm5kZWYg
U1ZHUGF0aEVsZW1lbnRfSAorI2RlZmluZSBTVkdQYXRoRWxlbWVudF9ICisKICNpZmRlZiBTVkdf
U1VQUE9SVAogCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIgpAQCAtNzAsMjQgKzcx
LDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ2V0UGF0aFNl
Z0F0TGVuZ3RoKGRvdWJsZSBkaXN0YW5jZSk7CiAKICAgICAgICAgU1ZHUGF0aFNlZ0Nsb3NlUGF0
aCogY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aCgpOwotICAgICAgICBTVkdQYXRoU2VnTW92ZXRv
QWJzKiBjcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKGRvdWJsZSB4LCBkb3VibGUgeSwgY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCA9IDApOwotICAgICAgICBTVkdQYXRoU2VnTW92ZXRv
UmVsKiBjcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsKGRvdWJsZSB4LCBkb3VibGUgeSwgY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCA9IDApOwotICAgICAgICBTVkdQYXRoU2VnTGluZXRv
QWJzKiBjcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzKGRvdWJsZSB4LCBkb3VibGUgeSwgY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCA9IDApOwotICAgICAgICBTVkdQYXRoU2VnTGluZXRv
UmVsKiBjcmVhdGVTVkdQYXRoU2VnTGluZXRvUmVsKGRvdWJsZSB4LCBkb3VibGUgeSwgY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCA9IDApOwotICAgICAgICBTVkdQYXRoU2VnQ3VydmV0
b0N1YmljQWJzKiBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKGRvdWJsZSB4LCBkb3Vi
bGUgeSwgZG91YmxlIHgxLCBkb3VibGUgeTEsIGRvdWJsZSB4MiwgZG91YmxlIHkyLCBjb25zdCBT
VkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7Ci0gICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNSZWwqIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwoZG91YmxlIHgsIGRvdWJs
ZSB5LCBkb3VibGUgeDEsIGRvdWJsZSB5MSwgZG91YmxlIHgyLCBkb3VibGUgeTIsIGNvbnN0IFNW
R1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSAwKTsKLSAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNBYnMqIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKGRvdWJsZSB4
LCBkb3VibGUgeSwgZG91YmxlIHgxLCBkb3VibGUgeTEsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQq
IGNvbnRleHQgPSAwKTsKLSAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwqIGNy
ZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91
YmxlIHgxLCBkb3VibGUgeTEsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSAwKTsK
LSAgICAgICAgU1ZHUGF0aFNlZ0FyY0FicyogY3JlYXRlU1ZHUGF0aFNlZ0FyY0Ficyhkb3VibGUg
eCwgZG91YmxlIHksIGRvdWJsZSByMSwgZG91YmxlIHIyLCBkb3VibGUgYW5nbGUsIGJvb2wgbGFy
Z2VBcmNGbGFnLCBib29sIHN3ZWVwRmxhZywgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4
dCA9IDApOwotICAgICAgICBTVkdQYXRoU2VnQXJjUmVsKiBjcmVhdGVTVkdQYXRoU2VnQXJjUmVs
KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHIxLCBkb3VibGUgcjIsIGRvdWJsZSBhbmdsZSwg
Ym9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50
KiBjb250ZXh0ID0gMCk7Ci0gICAgICAgIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKiBj
cmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyhkb3VibGUgeCwgY29uc3QgU1ZHU3R5
bGVkRWxlbWVudCogY29udGV4dCA9IDApOwotICAgICAgICBTVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbFJlbCogY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoZG91YmxlIHgsIGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSAwKTsKLSAgICAgICAgU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsQWJzKiBjcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoZG91Ymxl
IHksIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSAwKTsKLSAgICAgICAgU1ZHUGF0
aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKiBjcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwo
ZG91YmxlIHksIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSAwKTsKLSAgICAgICAg
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyogY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aEFicyhkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB4MiwgZG91YmxlIHkyLCBj
b25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7Ci0gICAgICAgIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhSZWwqIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhS
ZWwoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeDIsIGRvdWJsZSB5MiwgY29uc3QgU1ZHU3R5
bGVkRWxlbWVudCogY29udGV4dCA9IDApOwotICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRy
YXRpY1Ntb290aEFicyogY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMo
ZG91YmxlIHgsIGRvdWJsZSB5LCBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7
Ci0gICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKiBjcmVhdGVTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbChkb3VibGUgeCwgZG91YmxlIHksIGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSAwKTsKKyAgICAgICAgU1ZHUGF0aFNlZ01vdmV0
b0FicyogY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0Ficyhkb3VibGUgeCwgZG91YmxlIHkpOworICAg
ICAgICBTVkdQYXRoU2VnTW92ZXRvUmVsKiBjcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsKGRvdWJs
ZSB4LCBkb3VibGUgeSk7CisgICAgICAgIFNWR1BhdGhTZWdMaW5ldG9BYnMqIGNyZWF0ZVNWR1Bh
dGhTZWdMaW5ldG9BYnMoZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAgICAgICAgU1ZHUGF0aFNlZ0xp
bmV0b1JlbCogY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbChkb3VibGUgeCwgZG91YmxlIHkpOwor
ICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKiBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0
b0N1YmljQWJzKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHgxLCBkb3VibGUgeTEsIGRvdWJs
ZSB4MiwgZG91YmxlIHkyKTsKKyAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCogY3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB4
MSwgZG91YmxlIHkxLCBkb3VibGUgeDIsIGRvdWJsZSB5Mik7CisgICAgICAgIFNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljQWJzKiBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficyhk
b3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB4MSwgZG91YmxlIHkxKTsKKyAgICAgICAgU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwqIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
UmVsKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHgxLCBkb3VibGUgeTEpOworICAgICAgICBT
VkdQYXRoU2VnQXJjQWJzKiBjcmVhdGVTVkdQYXRoU2VnQXJjQWJzKGRvdWJsZSB4LCBkb3VibGUg
eSwgZG91YmxlIHIxLCBkb3VibGUgcjIsIGRvdWJsZSBhbmdsZSwgYm9vbCBsYXJnZUFyY0ZsYWcs
IGJvb2wgc3dlZXBGbGFnKTsKKyAgICAgICAgU1ZHUGF0aFNlZ0FyY1JlbCogY3JlYXRlU1ZHUGF0
aFNlZ0FyY1JlbChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSByMSwgZG91YmxlIHIyLCBkb3Vi
bGUgYW5nbGUsIGJvb2wgbGFyZ2VBcmNGbGFnLCBib29sIHN3ZWVwRmxhZyk7CisgICAgICAgIFNW
R1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKiBjcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbEFicyhkb3VibGUgeCk7CisgICAgICAgIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVs
KiBjcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbChkb3VibGUgeCk7CisgICAgICAg
IFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyogY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsQWJzKGRvdWJsZSB5KTsKKyAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKiBj
cmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwoZG91YmxlIHkpOworICAgICAgICBTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzKiBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoQWJzKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHgyLCBkb3VibGUgeTIpOworICAg
ICAgICBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKiBjcmVhdGVTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljU21vb3RoUmVsKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHgyLCBkb3VibGUg
eTIpOworICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyogY3JlYXRl
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMoZG91YmxlIHgsIGRvdWJsZSB5KTsK
KyAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwqIGNyZWF0ZVNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKGRvdWJsZSB4LCBkb3VibGUgeSk7CiAKICAg
ICAgICAgLy8gRGVyaXZlZCBmcm9tOiAnU1ZHQW5pbWF0ZWRQYXRoRGF0YScKICAgICAgICAgdmly
dHVhbCBTVkdQYXRoU2VnTGlzdCogcGF0aFNlZ0xpc3QoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1BhdGhTZWcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1BhdGhTZWcuY3BwCShyZXZpc2lvbiAxODM5MSkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1BhdGhTZWcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3Jn
PgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgot
Ci0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdQYXRoU2VnLmgiCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotU1ZHUGF0aFNlZzo6U1ZHUGF0aFNlZyhjb25zdCBTVkdTdHls
ZWRFbGVtZW50KiBjb250ZXh0KQotICAgIDogU2hhcmVkPFNWR1BhdGhTZWc+KCkKLSAgICAsIG1f
Y29udGV4dChjb250ZXh0KQotewotfQotCi1TVkdQYXRoU2VnOjp+U1ZHUGF0aFNlZygpCi17Ci19
Ci0KLX0KLQotLy8gdmltOnRzPTQ6bm9ldAotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdQYXRoU2VnLmgJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHUGF0aFNlZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5v
cmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFu
biA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAw
NiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IEtERSBwcm9qZWN0CkBAIC0yMCwyMiArMjAsMjUgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEz
MDcsIFVTQS4KICovCiAKLSNpZm5kZWYgS1NWR19TVkdQYXRoU2VnSW1wbF9ICi0jZGVmaW5lIEtT
VkdfU1ZHUGF0aFNlZ0ltcGxfSAorI2lmbmRlZiBTVkdQYXRoU2VnX0gKKyNkZWZpbmUgU1ZHUGF0
aFNlZ19ICisKICNpZmRlZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJTaGFyZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKICAgICBjbGFz
cyBTVkdQYXRoRWxlbWVudDsKICAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50OworCiAgICAgY2xh
c3MgU1ZHUGF0aFNlZyA6IHB1YmxpYyBTaGFyZWQ8U1ZHUGF0aFNlZz4KICAgICB7CiAgICAgcHVi
bGljOgotICAgICAgICBTVkdQYXRoU2VnKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQg
PSAwKTsKLSAgICAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZygpOwotICAgICAgICAKKyAgICAgICAg
U1ZHUGF0aFNlZygpIHsgfQorICAgICAgICB2aXJ0dWFsIH5TVkdQYXRoU2VnKCkgeyB9CisKICAg
ICAgICAgZW51bSBTVkdQYXRoU2VnVHlwZSB7CiAgICAgICAgICAgICBQQVRIU0VHX1VOS05PV04g
ICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAogICAgICAgICAgICAgUEFUSFNFR19DTE9TRVBB
VEggICAgICAgICAgICAgICAgICAgICAgID0gMSwKQEAgLTYyLDkgKzY1LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUKICAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIFBBVEhTRUdfVU5LTk9XTjsgfQogICAgICAgICB2aXJ0dWFsIFN0cmluZyBw
YXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgeyByZXR1cm4gIiI7IH0KICAgICAgICAgdmlydHVh
bCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiAiIjsgfQotCi0gICAgcHJvdGVjdGVk
OgotICAgICAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBtX2NvbnRleHQ7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNl
Z0FyYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0FyYy5j
cHAJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0FyYy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5u
QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxi
dWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QK
QEAgLTIxLDYgKzIxLDcgQEAKICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNW
R19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ0FyYy5oIgogCkBAIC0yOCw4ICsyOSw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHUGF0aFNlZ0FyY0Ficzo6U1ZHUGF0aFNlZ0Fy
Y0Ficyhjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQotICAgIDogU1ZHUGF0aFNlZyhj
b250ZXh0KQorU1ZHUGF0aFNlZ0FyY0Ficzo6U1ZHUGF0aFNlZ0FyY0FicygpCisgICAgOiBTVkdQ
YXRoU2VnKCkKIHsKICAgICBtX3ggPSBtX3kgPSBtX3IxID0gbV9yMiA9IG1fYW5nbGUgPSAwLjA7
CiAgICAgbV9sYXJnZUFyY0ZsYWcgPSBtX3N3ZWVwRmxhZyA9IGZhbHNlOwpAQCAtNDIsOSArNDMs
NiBAQCBTVkdQYXRoU2VnQXJjQWJzOjp+U1ZHUGF0aFNlZ0FyY0FicygpCiB2b2lkIFNWR1BhdGhT
ZWdBcmNBYnM6OnNldFgoZG91YmxlIHgpCiB7CiAgICAgbV94ID0geDsKLQotICAgIGlmIChtX2Nv
bnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAK
IGRvdWJsZSBTVkdQYXRoU2VnQXJjQWJzOjp4KCkgY29uc3QKQEAgLTU1LDkgKzUzLDYgQEAgZG91
YmxlIFNWR1BhdGhTZWdBcmNBYnM6OngoKSBjb25zdAogdm9pZCBTVkdQYXRoU2VnQXJjQWJzOjpz
ZXRZKGRvdWJsZSB5KQogewogICAgIG1feSA9IHk7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAg
ICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZH
UGF0aFNlZ0FyY0Ficzo6eSgpIGNvbnN0CkBAIC02OCw5ICs2Myw2IEBAIGRvdWJsZSBTVkdQYXRo
U2VnQXJjQWJzOjp5KCkgY29uc3QKIHZvaWQgU1ZHUGF0aFNlZ0FyY0Ficzo6c2V0UjEoZG91Ymxl
IHIxKQogewogICAgIG1fcjEgPSByMTsKLQotICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1f
Y29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2Vn
QXJjQWJzOjpyMSgpIGNvbnN0CkBAIC04MSw5ICs3Myw2IEBAIGRvdWJsZSBTVkdQYXRoU2VnQXJj
QWJzOjpyMSgpIGNvbnN0CiB2b2lkIFNWR1BhdGhTZWdBcmNBYnM6OnNldFIyKGRvdWJsZSByMikK
IHsKICAgICBtX3IyID0gcjI7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRl
eHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0FyY0Fi
czo6cjIoKSBjb25zdApAQCAtOTQsOSArODMsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0FyY0Ficzo6
cjIoKSBjb25zdAogdm9pZCBTVkdQYXRoU2VnQXJjQWJzOjpzZXRBbmdsZShkb3VibGUgYW5nbGUp
CiB7CiAgICAgbV9hbmdsZSA9IGFuZ2xlOwotCi0gICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAg
bV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKIH0KIAogZG91YmxlIFNWR1BhdGhT
ZWdBcmNBYnM6OmFuZ2xlKCkgY29uc3QKQEAgLTEwNyw5ICs5Myw2IEBAIGRvdWJsZSBTVkdQYXRo
U2VnQXJjQWJzOjphbmdsZSgpIGNvbnN0CiB2b2lkIFNWR1BhdGhTZWdBcmNBYnM6OnNldExhcmdl
QXJjRmxhZyhib29sIGxhcmdlQXJjRmxhZykKIHsKICAgICBtX2xhcmdlQXJjRmxhZyA9IGxhcmdl
QXJjRmxhZzsKLQotICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5
QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGJvb2wgU1ZHUGF0aFNlZ0FyY0Ficzo6bGFyZ2VBcmNG
bGFnKCkgY29uc3QKQEAgLTEyMCw5ICsxMDMsNiBAQCBib29sIFNWR1BhdGhTZWdBcmNBYnM6Omxh
cmdlQXJjRmxhZygpIGNvCiB2b2lkIFNWR1BhdGhTZWdBcmNBYnM6OnNldFN3ZWVwRmxhZyhib29s
IHN3ZWVwRmxhZykKIHsKICAgICBtX3N3ZWVwRmxhZyA9IHN3ZWVwRmxhZzsKLQotICAgIGlmICht
X2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9
CiAKIGJvb2wgU1ZHUGF0aFNlZ0FyY0Ficzo6c3dlZXBGbGFnKCkgY29uc3QKQEAgLTEzMiw4ICsx
MTIsOCBAQCBib29sIFNWR1BhdGhTZWdBcmNBYnM6OnN3ZWVwRmxhZygpIGNvbnN0CiAKIAogCi1T
VkdQYXRoU2VnQXJjUmVsOjpTVkdQYXRoU2VnQXJjUmVsKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQq
IGNvbnRleHQpCi0gICAgOiBTVkdQYXRoU2VnKGNvbnRleHQpCitTVkdQYXRoU2VnQXJjUmVsOjpT
VkdQYXRoU2VnQXJjUmVsKCkKKyAgICA6IFNWR1BhdGhTZWcoKQogewogICAgIG1feCA9IG1feSA9
IG1fcjEgPSBtX3IyID0gbV9hbmdsZSA9IDAuMDsKICAgICBtX2xhcmdlQXJjRmxhZyA9IG1fc3dl
ZXBGbGFnID0gZmFsc2U7CkBAIC0xNDYsOSArMTI2LDYgQEAgU1ZHUGF0aFNlZ0FyY1JlbDo6flNW
R1BhdGhTZWdBcmNSZWwoKQogdm9pZCBTVkdQYXRoU2VnQXJjUmVsOjpzZXRYKGRvdWJsZSB4KQog
ewogICAgIG1feCA9IHg7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQt
Pm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0FyY1JlbDo6
eCgpIGNvbnN0CkBAIC0xNTksOSArMTM2LDYgQEAgZG91YmxlIFNWR1BhdGhTZWdBcmNSZWw6Ongo
KSBjb25zdAogdm9pZCBTVkdQYXRoU2VnQXJjUmVsOjpzZXRZKGRvdWJsZSB5KQogewogICAgIG1f
eSA9IHk7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0
dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0FyY1JlbDo6eSgpIGNvbnN0
CkBAIC0xNzIsOSArMTQ2LDYgQEAgZG91YmxlIFNWR1BhdGhTZWdBcmNSZWw6OnkoKSBjb25zdAog
dm9pZCBTVkdQYXRoU2VnQXJjUmVsOjpzZXRSMShkb3VibGUgcjEpCiB7CiAgICAgbV9yMSA9IHIx
OwotCi0gICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1
dGVDaGFuZ2UoKTsKIH0KIAogZG91YmxlIFNWR1BhdGhTZWdBcmNSZWw6OnIxKCkgY29uc3QKQEAg
LTE4NSw5ICsxNTYsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0FyY1JlbDo6cjEoKSBjb25zdAogdm9p
ZCBTVkdQYXRoU2VnQXJjUmVsOjpzZXRSMihkb3VibGUgcjIpCiB7CiAgICAgbV9yMiA9IHIyOwot
Ci0gICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVD
aGFuZ2UoKTsKIH0KIAogZG91YmxlIFNWR1BhdGhTZWdBcmNSZWw6OnIyKCkgY29uc3QKQEAgLTE5
OCw5ICsxNjYsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0FyY1JlbDo6cjIoKSBjb25zdAogdm9pZCBT
VkdQYXRoU2VnQXJjUmVsOjpzZXRBbmdsZShkb3VibGUgYW5nbGUpCiB7CiAgICAgbV9hbmdsZSA9
IGFuZ2xlOwotCi0gICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlB
dHRyaWJ1dGVDaGFuZ2UoKTsKIH0KIAogZG91YmxlIFNWR1BhdGhTZWdBcmNSZWw6OmFuZ2xlKCkg
Y29uc3QKQEAgLTIxMSw5ICsxNzYsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0FyY1JlbDo6YW5nbGUo
KSBjb25zdAogdm9pZCBTVkdQYXRoU2VnQXJjUmVsOjpzZXRMYXJnZUFyY0ZsYWcoYm9vbCBsYXJn
ZUFyY0ZsYWcpCiB7CiAgICAgbV9sYXJnZUFyY0ZsYWcgPSBsYXJnZUFyY0ZsYWc7Ci0KLSAgICBp
ZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgp
OwogfQogCiBib29sIFNWR1BhdGhTZWdBcmNSZWw6OmxhcmdlQXJjRmxhZygpIGNvbnN0CkBAIC0y
MjQsOSArMTg2LDYgQEAgYm9vbCBTVkdQYXRoU2VnQXJjUmVsOjpsYXJnZUFyY0ZsYWcoKSBjbwog
dm9pZCBTVkdQYXRoU2VnQXJjUmVsOjpzZXRTd2VlcEZsYWcoYm9vbCBzd2VlcEZsYWcpCiB7CiAg
ICAgbV9zd2VlcEZsYWcgPSBzd2VlcEZsYWc7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAg
ICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBib29sIFNWR1BhdGhT
ZWdBcmNSZWw6OnN3ZWVwRmxhZygpIGNvbnN0CkBAIC0yMzYsNiArMTk1LDYgQEAgYm9vbCBTVkdQ
YXRoU2VnQXJjUmVsOjpzd2VlcEZsYWcoKSBjb25zdAogCiB9CiAKLS8vIHZpbTp0cz00Om5vZXQK
ICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdQYXRoU2VnQXJjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHUGF0aFNlZ0FyYy5oCShyZXZpc2lvbiAxODM5MSkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1BhdGhTZWdBcmMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gICAg
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUu
b3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIw
MDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdApAQCAtMjAsOCArMjAsOSBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR1BhdGhTZWdBcmNJbXBsX0gKLSNkZWZpbmUg
S1NWR19TVkdQYXRoU2VnQXJjSW1wbF9ICisjaWZuZGVmIFNWR1BhdGhTZWdBcmNfSAorI2RlZmlu
ZSBTVkdQYXRoU2VnQXJjX0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJTVkdQ
YXRoU2VnLmgiCkBAIC0zMSw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAgY2xhc3Mg
U1ZHUGF0aFNlZ0FyY0FicyA6IHB1YmxpYyBTVkdQYXRoU2VnCiAgICAgewogICAgIHB1YmxpYzoK
LSAgICAgICAgU1ZHUGF0aFNlZ0FyY0Ficyhjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0
ID0gMCk7CisgICAgICAgIFNWR1BhdGhTZWdBcmNBYnMoKTsKICAgICAgICAgdmlydHVhbCB+U1ZH
UGF0aFNlZ0FyY0FicygpOwogCiAgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgcGF0aFNl
Z1R5cGUoKSBjb25zdCB7IHJldHVybiBQQVRIU0VHX0FSQ19BQlM7IH0KQEAgLTczLDcgKzc0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICBjbGFzcyBTVkdQYXRoU2VnQXJjUmVsIDogcHVibGlj
IFNWR1BhdGhTZWcKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdQYXRoU2VnQXJjUmVs
KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSAwKTsKKyAgICAgICAgU1ZHUGF0aFNl
Z0FyY1JlbCgpOwogICAgICAgICB2aXJ0dWFsIH5TVkdQYXRoU2VnQXJjUmVsKCk7CiAKICAgICAg
ICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBB
VEhTRUdfQVJDX1JFTDsgfQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0Nsb3Nl
UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0Nsb3Nl
UGF0aC5jcHAJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNl
Z0Nsb3NlUGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9y
Zz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5u
IDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg
S0RFIHByb2plY3QKQEAgLTIxLDYgKzIxLDcgQEAKICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
KwogI2lmZGVmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIgog
CkBAIC0zNyw2ICszOCw2IEBAIFNWR1BhdGhTZWdDbG9zZVBhdGg6On5TVkdQYXRoU2VnQ2xvc2VQ
YXQKIAogfQogCi0vLyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8g
dmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0Nsb3NlUGF0
aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGgu
aAkocmV2aXNpb24gMTgzOTEpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnQ2xvc2VQ
YXRoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKQEAgLTIwLDggKzIwLDkgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICov
CiAKLSNpZm5kZWYgS1NWR19TVkdQYXRoU2VnQ2xvc2VQYXRoSW1wbF9ICi0jZGVmaW5lIEtTVkdf
U1ZHUGF0aFNlZ0Nsb3NlUGF0aEltcGxfSAorI2lmbmRlZiBTVkdQYXRoU2VnQ2xvc2VQYXRoX0gK
KyNkZWZpbmUgU1ZHUGF0aFNlZ0Nsb3NlUGF0aF9ICisKICNpZmRlZiBTVkdfU1VQUE9SVAogCiAj
aW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpYy5jcHAJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4g
PHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAy
MDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUg
aXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIxLDYgKzIxLDcgQEAKICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpYy5oIgogCkBAIC0yOCw4ICsyOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficzo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Fi
cyhjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQotICAgIDogU1ZHUGF0aFNlZyhjb250
ZXh0KQorU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficzo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Fi
cygpCisgICAgOiBTVkdQYXRoU2VnKCkKIHsKICAgICBtX3ggPSBtX3kgPSBtX3gxID0gbV95MSA9
IG1feDIgPSBtX3kyID0gMC4wOwogfQpAQCAtNDEsOSArNDIsNiBAQCBTVkdQYXRoU2VnQ3VydmV0
b0N1YmljQWJzOjp+U1ZHUGF0aFNlZ0N1CiB2b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnM6
OnNldFgoZG91YmxlIHgpCiB7CiAgICAgbV94ID0geDsKLQotICAgIGlmIChtX2NvbnRleHQpCi0g
ICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBT
VkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzOjp4KCkgY29uc3QKQEAgLTU0LDkgKzUyLDYgQEAgZG91
YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnM6OngoKSBjbwogdm9pZCBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljQWJzOjpzZXRZKGRvdWJsZSB5KQogewogICAgIG1feSA9IHk7Ci0KLSAgICBpZiAo
bV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwog
fQogCiBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficzo6eSgpIGNvbnN0CkBAIC02Nyw5
ICs2Miw2IEBAIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzOjp5KCkgY28KIHZvaWQg
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficzo6c2V0WDEoZG91YmxlIHgxKQogewogICAgIG1feDEg
PSB4MTsKLQotICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0
cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzOjp4
MSgpIGNvbnN0CkBAIC04MCw5ICs3Miw2IEBAIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
QWJzOjp4MSgpIGMKIHZvaWQgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficzo6c2V0WTEoZG91Ymxl
IHkxKQogewogICAgIG1feTEgPSB5MTsKLQotICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1f
Y29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljQWJzOjp5MSgpIGNvbnN0CkBAIC05Myw5ICs4Miw2IEBAIGRvdWJsZSBTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljQWJzOjp5MSgpIGMKIHZvaWQgU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y0Ficzo6c2V0WDIoZG91YmxlIHgyKQogewogICAgIG1feDIgPSB4MjsKLQotICAgIGlmIChtX2Nv
bnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAK
IGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzOjp4MigpIGNvbnN0CkBAIC0xMDYsOSAr
OTIsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficzo6eDIoKSBjCiB2b2lkIFNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnM6OnNldFkyKGRvdWJsZSB5MikKIHsKICAgICBtX3kyID0g
eTI7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJp
YnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficzo6eTIo
KSBjb25zdApAQCAtMTE5LDggKzEwMiw4IEBAIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
QWJzOjp5MigpIGMKIAogCiAKLVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWw6OlNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNSZWwoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKLSAgICA6IFNW
R1BhdGhTZWcoY29udGV4dCkKK1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWw6OlNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNSZWwoKQorICAgIDogU1ZHUGF0aFNlZygpCiB7CiAgICAgbV94ID0gbV95ID0g
bV94MSA9IG1feTEgPSBtX3gyID0gbV95MiA9IDAuMDsKIH0KQEAgLTEzMiw5ICsxMTUsNiBAQCBT
VkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsOjp+U1ZHUGF0aFNlZ0N1CiB2b2lkIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNSZWw6OnNldFgoZG91YmxlIHgpCiB7CiAgICAgbV94ID0geDsKLQotICAgIGlm
IChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7
CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsOjp4KCkgY29uc3QKQEAgLTE0
NSw5ICsxMjUsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbDo6eCgpIGNvCiB2
b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWw6OnNldFkoZG91YmxlIHkpCiB7CiAgICAgbV95
ID0geTsKLQotICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0
cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsOjp5
KCkgY29uc3QKQEAgLTE1OCw5ICsxMzUsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1JlbDo6eSgpIGNvCiB2b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWw6OnNldFgxKGRvdWJs
ZSB4MSkKIHsKICAgICBtX3gxID0geDE7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBt
X2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1JlbDo6eDEoKSBjb25zdApAQCAtMTcxLDkgKzE0NSw2IEBAIGRvdWJsZSBT
VkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsOjp4MSgpIGMKIHZvaWQgU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1JlbDo6c2V0WTEoZG91YmxlIHkxKQogewogICAgIG1feTEgPSB5MTsKLQotICAgIGlmICht
X2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9
CiAKIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsOjp5MSgpIGNvbnN0CkBAIC0xODQs
OSArMTU1LDYgQEAgZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWw6OnkxKCkgYwogdm9p
ZCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsOjpzZXRYMihkb3VibGUgeDIpCiB7CiAgICAgbV94
MiA9IHgyOwotCi0gICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlB
dHRyaWJ1dGVDaGFuZ2UoKTsKIH0KIAogZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWw6
OngyKCkgY29uc3QKQEAgLTE5Nyw5ICsxNjUsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1JlbDo6eDIoKSBjCiB2b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWw6OnNldFkyKGRv
dWJsZSB5MikKIHsKICAgICBtX3kyID0geTI7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAg
ICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1JlbDo6eTIoKSBjb25zdApAQCAtMjA5LDYgKzE3NCw2IEBAIGRvdWJs
ZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsOjp5MigpIGMKIAogfQogCi0vLyB2aW06dHM9NDpu
b2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaAkocmV2aXNpb24gMTgzOTEp
CisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
ICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIwLDggKzIw
LDkgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICovCiAKLSNpZm5kZWYgS1NW
R19TVkdQYXRoU2VnQ3VydmV0b0N1YmljSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY0ltcGxfSAorI2lmbmRlZiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljX0gKKyNkZWZp
bmUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY19ICisKICNpZmRlZiBTVkdfU1VQUE9SVAogCiAjaW5j
bHVkZSAiU1ZHUGF0aFNlZy5oIgpAQCAtMzEsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZQog
ICAgIGNsYXNzIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMgOiBwdWJsaWMgU1ZHUGF0aFNlZyAK
ICAgICB7IAogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyhj
b25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNBYnMoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y0FicygpOwogCiAgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBj
b25zdCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTOyB9CkBAIC02OCw3ICs2OSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAgY2xhc3MgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Jl
bCA6IHB1YmxpYyBTVkdQYXRoU2VnIAogICAgIHsgCiAgICAgcHVibGljOgotICAgICAgICBTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljUmVsKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSAw
KTsKKyAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCgpOwogICAgICAgICB2aXJ0dWFs
IH5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKCk7CiAKICAgICAgICAgdmlydHVhbCB1bnNpZ25l
ZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJ
Q19SRUw7IH0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGguY3BwCShyZXZpc2lvbiAxODM5MSkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJt
YW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAg
ICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yOCw4ICsyOCw4IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFiczo6U1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyhjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0
KQotICAgIDogU1ZHUGF0aFNlZyhjb250ZXh0KQorU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aEFiczo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicygpCisgICAgOiBTVkdQYXRoU2Vn
KCkKIHsKICAgICBtX3ggPSBtX3kgPSBtX3gyID0gbV95MiA9IDAuMDsKIH0KQEAgLTQxLDkgKzQx
LDYgQEAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFiczo6flNWR1BhdAogdm9pZCBTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzOjpzZXRYKGRvdWJsZSB4KQogewogICAgIG1feCA9
IHg7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJp
YnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFi
czo6eCgpIGNvbnN0CkBAIC01NCw5ICs1MSw2IEBAIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoQWJzOjoKIHZvaWQgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFiczo6c2V0
WShkb3VibGUgeSkKIHsKICAgICBtX3kgPSB5OwotCi0gICAgaWYgKG1fY29udGV4dCkKLSAgICAg
ICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKIH0KIAogZG91YmxlIFNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM6OnkoKSBjb25zdApAQCAtNjcsOSArNjEsNiBAQCBk
b3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFiczo6CiB2b2lkIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhBYnM6OnNldFgyKGRvdWJsZSB4MikKIHsKICAgICBtX3gyID0geDI7
Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0
ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFiczo6
eDIoKSBjb25zdApAQCAtODAsOSArNzEsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aEFiczo6CiB2b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM6OnNldFky
KGRvdWJsZSB5MikKIHsKICAgICBtX3kyID0geTI7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAg
ICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFiczo6eTIoKSBjb25zdApAQCAtOTIsOCArODAsOCBA
QCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFiczo6CiAKIAogCi1TVkdQYXRo
U2VnQ3VydmV0b0N1YmljU21vb3RoUmVsOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQpCi0gICAgOiBTVkdQYXRoU2VnKGNvbnRl
eHQpCitTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsOjpTVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoUmVsKCkKKyAgICA6IFNWR1BhdGhTZWcoKQogewogICAgIG1feCA9IG1feSA9IG1f
eDIgPSBtX3kyID0gMC4wOwogfQpAQCAtMTA1LDkgKzkzLDYgQEAgU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aFJlbDo6flNWR1BhdAogdm9pZCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
UmVsOjpzZXRYKGRvdWJsZSB4KQogewogICAgIG1feCA9IHg7Ci0KLSAgICBpZiAobV9jb250ZXh0
KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3Vi
bGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbDo6eCgpIGNvbnN0CkBAIC0xMTgsOSAr
MTAzLDYgQEAgZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWw6Ogogdm9pZCBT
VkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsOjpzZXRZKGRvdWJsZSB5KQogewogICAgIG1f
eSA9IHk7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0
dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aFJlbDo6eSgpIGNvbnN0CkBAIC0xMzEsOSArMTEzLDYgQEAgZG91YmxlIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGhSZWw6Ogogdm9pZCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
OjpzZXRYMihkb3VibGUgeDIpCiB7CiAgICAgbV94MiA9IHgyOwotCi0gICAgaWYgKG1fY29udGV4
dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKIH0KIAogZG91
YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWw6OngyKCkgY29uc3QKQEAgLTE0NCw5
ICsxMjMsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbDo6CiB2b2lk
IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWw6OnNldFkyKGRvdWJsZSB5MikKIHsKICAg
ICBtX3kyID0geTI7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5v
dGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aFJlbDo6eTIoKSBjb25zdApAQCAtMTU2LDYgKzEzMiw2IEBAIGRvdWJsZSBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljU21vb3RoUmVsOjoKIAogfQogCi0vLyB2aW06dHM9NDpub2V0CiAjZW5k
aWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaAkocmV2aXNpb24gMTgz
OTEpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtk
ZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAg
LTIwLDggKzIwLDkgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICovCiAKLSNp
Zm5kZWYgS1NWR19TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoSW1wbF9ICi0jZGVmaW5lIEtT
VkdfU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEltcGxfSAorI2lmbmRlZiBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoX0gKKyNkZWZpbmUgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aF9ICisKICNpZmRlZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgpAQCAt
MzEsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZQogICAgIGNsYXNzIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGhBYnMgOiBwdWJsaWMgU1ZHUGF0aFNlZwogICAgIHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMoY29uc3QgU1ZHU3R5bGVk
RWxlbWVudCogY29udGV4dCA9IDApOworICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21v
b3RoQWJzKCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhB
YnMoKTsKIAogICAgICAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29u
c3QgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlM7IH0KQEAgLTYwLDcg
KzYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICBjbGFzcyBTVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoUmVsIDogcHVibGljIFNWR1BhdGhTZWcKICAgICB7IAogICAgIHB1YmxpYzoKLSAg
ICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbChjb25zdCBTVkdTdHlsZWRFbGVt
ZW50KiBjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhS
ZWwoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCgp
OwogCiAgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCB7
IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX1JFTDsgfQpJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmNwcAkocmV2aXNp
b24gMTgzOTEpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Yy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKQEAgLTIxLDYgKzIxLDcgQEAKICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVm
IFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaCIKIApA
QCAtMjgsOCArMjksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljQWJzOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficyhjb25zdCBTVkdT
dHlsZWRFbGVtZW50KiBjb250ZXh0KQotICAgIDogU1ZHUGF0aFNlZyhjb250ZXh0KQorU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM6OlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKCkK
KyAgICA6IFNWR1BhdGhTZWcoKQogewogICAgIG1feCA9IG1feSA9IG1feDEgPSBtX3kxID0gMC4w
OwogfQpAQCAtNDEsOSArNDIsNiBAQCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficzo6flNW
R1BhdGhTCiB2b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzOjpzZXRYKGRvdWJsZSB4
KQogewogICAgIG1feCA9IHg7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRl
eHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnM6OngoKSBjb25zdApAQCAtNTQsOSArNTIsNiBAQCBkb3VibGUgU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM6OngoCiB2b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljQWJzOjpzZXRZKGRvdWJsZSB5KQogewogICAgIG1feSA9IHk7Ci0KLSAgICBpZiAobV9jb250
ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBk
b3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM6OnkoKSBjb25zdApAQCAtNjcsOSAr
NjIsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM6OnkoCiB2b2lkIFNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzOjpzZXRYMShkb3VibGUgeDEpCiB7CiAgICAgbV94
MSA9IHgxOwotCi0gICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlB
dHRyaWJ1dGVDaGFuZ2UoKTsKIH0KIAogZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
QWJzOjp4MSgpIGNvbnN0CkBAIC04MCw5ICs3Miw2IEBAIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY0Ficzo6eDEKIHZvaWQgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM6OnNl
dFkxKGRvdWJsZSB5MSkKIHsKICAgICBtX3kxID0geTE7Ci0KLSAgICBpZiAobV9jb250ZXh0KQot
ICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUg
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM6OnkxKCkgY29uc3QKQEAgLTkzLDggKzgyLDgg
QEAgZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzOjp5MQogCiAKIAotU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWw6OlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQpCi0gICAgOiBTVkdQYXRoU2VnKGNvbnRleHQp
CitTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbDo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNSZWwoKQorICAgIDogU1ZHUGF0aFNlZygpCiB7CiAgICAgbV94ID0gbV95ID0gbV94MSA9IG1f
eTEgPSAwLjA7CiB9CkBAIC0xMDYsOSArOTUsNiBAQCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1JlbDo6flNWR1BhdGhTCiB2b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsOjpzZXRY
KGRvdWJsZSB4KQogewogICAgIG1feCA9IHg7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAg
ICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWw6OngoKSBjb25zdApAQCAtMTE5LDkgKzEwNSw2IEBAIGRv
dWJsZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbDo6eCgKIHZvaWQgU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNSZWw6OnNldFkoZG91YmxlIHkpCiB7CiAgICAgbV95ID0geTsKLQotICAg
IGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdl
KCk7CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbDo6eSgpIGNvbnN0
CkBAIC0xMzIsOSArMTE1LDYgQEAgZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVs
Ojp5KAogdm9pZCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbDo6c2V0WDEoZG91YmxlIHgx
KQogewogICAgIG1feDEgPSB4MTsKLQotICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1fY29u
dGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1JlbDo6eDEoKSBjb25zdApAQCAtMTQ1LDkgKzEyNSw2IEBAIGRvdWJsZSBT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbDo6eDEKIHZvaWQgU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNSZWw6OnNldFkxKGRvdWJsZSB5MSkKIHsKICAgICBtX3kxID0geTE7Ci0KLSAgICBp
ZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgp
OwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWw6OnkxKCkgY29uc3QK
QEAgLTE1Nyw2ICsxMzQsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWw6
OnkxCiAKIH0KIAotLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKKy8v
IHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWMuaAkocmV2aXNpb24gMTgzOTEpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3
aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IE5pa29s
YXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAw
NCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlz
IHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yMCw4ICsyMCw5IEBACiAgICAgQm9zdG9uLCBN
QSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNJbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0lt
cGxfSAorI2lmbmRlZiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY19ICisjZGVmaW5lIFNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljX0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRl
ICJTVkdQYXRoU2VnLmgiCkBAIC0zMSw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAg
Y2xhc3MgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMgOiBwdWJsaWMgU1ZHUGF0aFNlZwog
ICAgIHsgCiAgICAgcHVibGljOgotICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fi
cyhjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljQWJzKCk7CiAKICAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfQUJTOyB9
CkBAIC02MCw3ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAgY2xhc3MgU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNSZWwgOiBwdWJsaWMgU1ZHUGF0aFNlZyAKICAgICB7IAogICAgIHB1
YmxpYzoKLSAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwoY29uc3QgU1ZHU3R5
bGVkRWxlbWVudCogY29udGV4dCA9IDApOworICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRy
YXRpY1JlbCgpOwogICAgICAgICB2aXJ0dWFsIH5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bCgpOwogCiAgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25z
dCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTDsgfQpJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGguY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
LmNwcAkocmV2aXNpb24gMTgzOTEpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1Ntb290aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAy
MDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIxLDYgKzIxLDcgQEAKICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNTbW9vdGguaCIKIApAQCAtMjgsOCArMjksOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzOjpTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyhjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0
KQotICAgIDogU1ZHUGF0aFNlZyhjb250ZXh0KQorU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNT
bW9vdGhBYnM6OlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKCkKKyAgICA6IFNW
R1BhdGhTZWcoKQogewogICAgIG1feCA9IG1feSA9IDAuMDsKIH0KQEAgLTQxLDkgKzQyLDYgQEAg
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnM6On5TVgogdm9pZCBTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1Ntb290aEFiczo6c2V0WChkb3VibGUgeCkKIHsKICAgICBtX3ggPSB4
OwotCi0gICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1
dGVDaGFuZ2UoKTsKIH0KIAogZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
QWJzOjp4KCkgY29uc3QKQEAgLTU0LDkgKzUyLDYgQEAgZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljU21vb3RoQQogdm9pZCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFi
czo6c2V0WShkb3VibGUgeSkKIHsKICAgICBtX3kgPSB5OwotCi0gICAgaWYgKG1fY29udGV4dCkK
LSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKIH0KIAogZG91Ymxl
IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzOjp5KCkgY29uc3QKQEAgLTY2LDgg
KzYxLDggQEAgZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQQogCiAKIAot
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWw6OlNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoUmVsKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQpCi0gICAgOiBT
VkdQYXRoU2VnKGNvbnRleHQpCitTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbDo6
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwoKQorICAgIDogU1ZHUGF0aFNlZygp
CiB7CiAgICAgbV94ID0gbV95ID0gMC4wOwogfQpAQCAtNzksOSArNzQsNiBAQCBTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbDo6flNWCiB2b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoUmVsOjpzZXRYKGRvdWJsZSB4KQogewogICAgIG1feCA9IHg7Ci0KLSAgICBp
ZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgp
OwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWw6OngoKSBj
b25zdApAQCAtOTIsOSArODQsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNT
bW9vdGhSCiB2b2lkIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsOjpzZXRZKGRv
dWJsZSB5KQogewogICAgIG1feSA9IHk7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBt
X2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWw6OnkoKSBjb25zdApAQCAtMTA0LDYgKzkzLDYgQEAg
ZG91YmxlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUgogCiB9CiAKLS8vIHZpbTp0
cz00Om5vZXQKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogCisvLyB2aW06dHM9NDpub2V0CkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoLmgJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGguaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2ls
ZGZveEBrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBOaWtvbGFz
IFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQs
IDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBLREUgcHJvamVjdApAQCAtMjAsOCArMjAsOSBAQAogICAgIEJvc3RvbiwgTUEg
MDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNTbW9vdGhJbXBsX0gKKyNpZm5kZWYgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhf
SAorI2RlZmluZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aF9ICisKICNpZmRlZiBT
VkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgpAQCAtMzEsNyArMzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZQogICAgIGNsYXNzIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21v
b3RoQWJzIDogcHVibGljIFNWR1BhdGhTZWcKICAgICB7IAogICAgIHB1YmxpYzoKLSAgICAgICAg
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMoY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dCogY29udGV4dCA9IDApOworICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290
aEFicygpOwogICAgICAgICB2aXJ0dWFsIH5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290
aEFicygpOwogCiAgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBj
b25zdCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlM7IH0KQEAg
LTUyLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICBjbGFzcyBTVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1Ntb290aFJlbCA6IHB1YmxpYyBTVkdQYXRoU2VnIAogICAgIHsgCiAgICAg
cHVibGljOgotICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbChjb25z
dCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoUmVsKCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoUmVsKCk7CiAKICAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9y
dCBwYXRoU2VnVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNf
U01PT1RIX1JFTDsgfQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0by5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0by5jcHAJ
KHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0by5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5u
QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIx
LDYgKzIxLDcgQEAKICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQ
T1JUCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ0xpbmV0by5oIgogCkBAIC0yOCw4ICsyOSw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHUGF0aFNlZ0xpbmV0b0Ficzo6U1ZHUGF0aFNlZ0xp
bmV0b0Ficyhjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQotICAgIDogU1ZHUGF0aFNl
Zyhjb250ZXh0KQorU1ZHUGF0aFNlZ0xpbmV0b0Ficzo6U1ZHUGF0aFNlZ0xpbmV0b0FicygpCisg
ICAgOiBTVkdQYXRoU2VnKCkKIHsKICAgICBtX3ggPSBtX3kgPSAwLjA7CiB9CkBAIC00MSw5ICs0
Miw2IEBAIFNWR1BhdGhTZWdMaW5ldG9BYnM6On5TVkdQYXRoU2VnTGluZXRvQWIKIHZvaWQgU1ZH
UGF0aFNlZ0xpbmV0b0Ficzo6c2V0WChkb3VibGUgeCkKIHsKICAgICBtX3ggPSB4OwotCi0gICAg
aWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2Uo
KTsKIH0KIAogZG91YmxlIFNWR1BhdGhTZWdMaW5ldG9BYnM6OngoKSBjb25zdApAQCAtNTQsOSAr
NTIsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ0xpbmV0b0Ficzo6eCgpIGNvbnN0CiB2b2lkIFNWR1Bh
dGhTZWdMaW5ldG9BYnM6OnNldFkoZG91YmxlIHkpCiB7CiAgICAgbV95ID0geTsKLQotICAgIGlm
IChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7
CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2VnTGluZXRvQWJzOjp5KCkgY29uc3QKQEAgLTY0LDggKzU5
LDggQEAgZG91YmxlIFNWR1BhdGhTZWdMaW5ldG9BYnM6OnkoKSBjb25zdAogICAgIHJldHVybiBt
X3k7CiB9CiAKLVNWR1BhdGhTZWdMaW5ldG9SZWw6OlNWR1BhdGhTZWdMaW5ldG9SZWwoY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKLSAgICA6IFNWR1BhdGhTZWcoY29udGV4dCkKK1NW
R1BhdGhTZWdMaW5ldG9SZWw6OlNWR1BhdGhTZWdMaW5ldG9SZWwoKQorICAgIDogU1ZHUGF0aFNl
ZygpCiB7CiAgICAgbV94ID0gbV95ID0gMC4wOwogfQpAQCAtNzcsOSArNzIsNiBAQCBTVkdQYXRo
U2VnTGluZXRvUmVsOjp+U1ZHUGF0aFNlZ0xpbmV0b1JlCiB2b2lkIFNWR1BhdGhTZWdMaW5ldG9S
ZWw6OnNldFgoZG91YmxlIHgpCiB7CiAgICAgbV94ID0geDsKLQotICAgIGlmIChtX2NvbnRleHQp
Ci0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJs
ZSBTVkdQYXRoU2VnTGluZXRvUmVsOjp4KCkgY29uc3QKQEAgLTkwLDkgKzgyLDYgQEAgZG91Ymxl
IFNWR1BhdGhTZWdMaW5ldG9SZWw6OngoKSBjb25zdAogdm9pZCBTVkdQYXRoU2VnTGluZXRvUmVs
OjpzZXRZKGRvdWJsZSB5KQogewogICAgIG1feSA9IHk7Ci0KLSAgICBpZiAobV9jb250ZXh0KQot
ICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUg
U1ZHUGF0aFNlZ0xpbmV0b1JlbDo6eSgpIGNvbnN0CkBAIC0xMDIsNiArOTEsNiBAQCBkb3VibGUg
U1ZHUGF0aFNlZ0xpbmV0b1JlbDo6eSgpIGNvbnN0CiAKIH0KIAotLy8gdmltOnRzPTQ6bm9ldAog
I2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKKy8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaW5ldG8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdQYXRoU2VnTGluZXRvLmgJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUGF0aFNlZ0xpbmV0by5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxk
Zm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IE5pa29sYXMg
WmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwg
MjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yMCw4ICsyMCw5IEBACiAgICAgQm9zdG9uLCBNQSAw
MjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHUGF0aFNlZ0xpbmV0b0ltcGxf
SAotI2RlZmluZSBLU1ZHX1NWR1BhdGhTZWdMaW5ldG9JbXBsX0gKKyNpZm5kZWYgU1ZHUGF0aFNl
Z0xpbmV0b19ICisjZGVmaW5lIFNWR1BhdGhTZWdMaW5ldG9fSAorCiAjaWZkZWYgU1ZHX1NVUFBP
UlQKIAogI2luY2x1ZGUgIlNWR1BhdGhTZWcuaCIKQEAgLTMxLDcgKzMyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUKICAgICBjbGFzcyBTVkdQYXRoU2VnTGluZXRvQWJzIDogcHVibGljIFNWR1BhdGhT
ZWcKICAgICB7IAogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b0Ficyhjb25z
dCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1BhdGhTZWdMaW5l
dG9BYnMoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZ0xpbmV0b0FicygpOwogCiAgICAg
ICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCB7IHJldHVybiBQ
QVRIU0VHX0xJTkVUT19BQlM7IH0KQEAgLTUyLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUK
ICAgICBjbGFzcyBTVkdQYXRoU2VnTGluZXRvUmVsIDogcHVibGljIFNWR1BhdGhTZWcKICAgICB7
IAogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b1JlbChjb25zdCBTVkdTdHls
ZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1BhdGhTZWdMaW5ldG9SZWwoKTsK
ICAgICAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZ0xpbmV0b1JlbCgpOwogCiAgICAgICAgIHZpcnR1
YWwgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCB7IHJldHVybiBQQVRIU0VHX0xJ
TkVUT19SRUw7IH0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbC5jcHAJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5u
IDx3aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IE5p
a29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAg
MjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yMSw2ICsyMSw3IEBACiAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCisKICNpZmRlZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgIlNWR1BhdGhTZWdMaW5l
dG9Ib3Jpem9udGFsLmgiCiAKQEAgLTI4LDggKzI5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFiczo6U1ZHUGF0aFNlZ0xpbmV0b0hvcml6
b250YWxBYnMoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKLSAgICA6IFNWR1BhdGhT
ZWcoY29udGV4dCkKK1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzOjpTVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbEFicygpCisgICAgOiBTVkdQYXRoU2VnKCkKIHsKICAgICBtX3ggPSAwLjA7
CiB9CkBAIC00MSw5ICs0Miw2IEBAIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzOjp+U1ZH
UGF0aFMKIHZvaWQgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnM6OnNldFgoZG91YmxlIHgp
CiB7CiAgICAgbV94ID0geDsKLQotICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4
dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2VnTGluZXRv
SG9yaXpvbnRhbEFiczo6eCgpIGNvbnN0CkBAIC01Myw4ICs1MSw4IEBAIGRvdWJsZSBTVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbEFiczo6eCgKIAogCiAKLVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsUmVsOjpTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbChjb25zdCBTVkdTdHlsZWRFbGVt
ZW50KiBjb250ZXh0KQotICAgIDogU1ZHUGF0aFNlZyhjb250ZXh0KQorU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxSZWw6OlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKCkKKyAgICA6IFNW
R1BhdGhTZWcoKQogewogICAgIG1feCA9IDAuMDsKIH0KQEAgLTY2LDkgKzY0LDYgQEAgU1ZHUGF0
aFNlZ0xpbmV0b0hvcml6b250YWxSZWw6On5TVkdQYXRoUwogdm9pZCBTVkdQYXRoU2VnTGluZXRv
SG9yaXpvbnRhbFJlbDo6c2V0WChkb3VibGUgeCkKIHsKICAgICBtX3ggPSB4OwotCi0gICAgaWYg
KG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsK
IH0KIAogZG91YmxlIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsOjp4KCkgY29uc3QKQEAg
LTc4LDYgKzczLDYgQEAgZG91YmxlIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsOjp4KAog
CiB9CiAKLS8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogCisvLyB2aW06
dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaW5ldG9I
b3Jpem9udGFsLmgJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0
aFNlZ0xpbmV0b0hvcml6b250YWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZv
eEBrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBOaWtvbGFzIFpp
bW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIw
MDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBLREUgcHJvamVjdApAQCAtMjAsOCArMjAsOSBAQAogICAgIEJvc3RvbiwgTUEgMDIx
MTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxJbXBsX0gK
KyNpZm5kZWYgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxfSAorI2RlZmluZSBTVkdQYXRoU2Vn
TGluZXRvSG9yaXpvbnRhbF9ICisKICNpZmRlZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiU1ZH
UGF0aFNlZy5oIgpAQCAtMzEsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZQogICAgIGNsYXNz
IFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzIDogcHVibGljIFNWR1BhdGhTZWcKICAgICB7
CiAgICAgcHVibGljOgotICAgICAgICBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyhjb25z
dCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1BhdGhTZWdMaW5l
dG9Ib3Jpem9udGFsQWJzKCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzKCk7CiAKICAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfQUJTOyB9CkBAIC00
OCw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAgY2xhc3MgU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxSZWwgOiBwdWJsaWMgU1ZHUGF0aFNlZwogICAgIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKGNvbnN0IFNWR1N0eWxlZEVsZW1l
bnQqIGNvbnRleHQgPSAwKTsKKyAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwo
KTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoKTsKIAog
ICAgICAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgeyByZXR1
cm4gUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9SRUw7IH0KSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsLmNwcAkocmV2aXNpb24gMTgzOTEpCisr
KyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgog
ICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yMSw2ICsy
MSw3IEBACiAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpZmRlZiBTVkdfU1VQUE9SVAog
I2luY2x1ZGUgIlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbC5oIgogCkBAIC0yOCw4ICsyOSw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzOjpT
VkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4
dCkKLSAgICA6IFNWR1BhdGhTZWcoY29udGV4dCkKK1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFi
czo6U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKCkKKyAgICA6IFNWR1BhdGhTZWcoKQogewog
ICAgIG1feSA9IDAuMDsKIH0KQEAgLTQxLDkgKzQyLDYgQEAgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsQWJzOjp+U1ZHUGF0aFNlZwogdm9pZCBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnM6OnNl
dFkoZG91YmxlIHkpCiB7CiAgICAgbV95ID0geTsKLQotICAgIGlmIChtX2NvbnRleHQpCi0gICAg
ICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBTVkdQ
YXRoU2VnTGluZXRvVmVydGljYWxBYnM6OnkoKSBjb25zdApAQCAtNTQsOCArNTIsOCBAQCBkb3Vi
bGUgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzOjp5KCkgCiAKIAogCi1TVkdQYXRoU2VnTGlu
ZXRvVmVydGljYWxSZWw6OlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbChjb25zdCBTVkdTdHls
ZWRFbGVtZW50KiBjb250ZXh0KQotICAgIDogU1ZHUGF0aFNlZyhjb250ZXh0KQorU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsUmVsOjpTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwoKQorICAgIDog
U1ZHUGF0aFNlZygpCiB7CiAgICAgbV95ID0gMC4wOwogfQpAQCAtNjcsOSArNjUsNiBAQCBTVkdQ
YXRoU2VnTGluZXRvVmVydGljYWxSZWw6On5TVkdQYXRoU2VnCiB2b2lkIFNWR1BhdGhTZWdMaW5l
dG9WZXJ0aWNhbFJlbDo6c2V0WShkb3VibGUgeSkKIHsKICAgICBtX3kgPSB5OwotCi0gICAgaWYg
KG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsK
IH0KIAogZG91YmxlIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbDo6eSgpIGNvbnN0CkBAIC03
OSw2ICs3NCw2IEBAIGRvdWJsZSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWw6OnkoKSAKIAog
fQogCi0vLyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8gdmltOnRz
PTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2Fs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsLmgJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9y
Zz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5u
IDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg
S0RFIHByb2plY3QKQEAgLTIwLDggKzIwLDkgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcs
IFVTQS4KICovCiAKLSNpZm5kZWYgS1NWR19TVkdQYXRoU2VnTGluZXRvVmVydGljYWxJbXBsX0gK
LSNkZWZpbmUgS1NWR19TVkdQYXRoU2VnTGluZXRvVmVydGljYWxJbXBsX0gKKyNpZm5kZWYgU1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsX0gKKyNkZWZpbmUgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2Fs
X0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJTVkdQYXRoU2VnLmgiCkBAIC0z
MSw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAgY2xhc3MgU1ZHUGF0aFNlZ0xpbmV0
b1ZlcnRpY2FsQWJzIDogcHVibGljIFNWR1BhdGhTZWcKICAgICB7CiAgICAgcHVibGljOgotICAg
ICAgICBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCog
Y29udGV4dCA9IDApOworICAgICAgICBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoKTsKICAg
ICAgICAgdmlydHVhbH5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoKTsKIAogICAgICAgICB2
aXJ0dWFsIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgeyByZXR1cm4gUEFUSFNF
R19MSU5FVE9fVkVSVElDQUxfQUJTOyB9CkBAIC00OCw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlCiAgICAgY2xhc3MgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsIDogcHVibGljIFNWR1Bh
dGhTZWcKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWxSZWwoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCA9IDApOworICAgICAgICBTVkdQ
YXRoU2VnTGluZXRvVmVydGljYWxSZWwoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsKCk7CiAKICAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTDsgfQpJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAkocmV2aXNpb24gMTgzOTEpCisr
KyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFpp
bW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAg
ICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZp
bGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIwLDcgKzIwLDYgQEAKICAgICBCb3N0
b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICovCiAKLQogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAj
aWZkZWYgU1ZHX1NVUFBPUlQKQEAgLTI5LDggKzI4LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1TVkdQYXRoU2VnTGlzdDo6U1ZHUGF0aFNlZ0xpc3QoKQorU1ZHUGF0aFNlZ0xpc3Q6OlNW
R1BhdGhTZWdMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQpCiAgICAgOiBTVkdM
aXN0PFJlZlB0cjxTVkdQYXRoU2VnPiA+KCkKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQogewog
fQogCkBAIC0zOCw2ICszOCwxMSBAQCBTVkdQYXRoU2VnTGlzdDo6flNWR1BhdGhTZWdMaXN0KCkK
IHsKIH0KIAorY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogU1ZHUGF0aFNlZ0xpc3Q6OmNvbnRleHQo
KSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQ7Cit9CisKIH0KIAogI2VuZGlmIC8vIFNW
R19TVVBQT1JUCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHJldmlzaW9uIDE4
MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29s
YXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdApAQCAtMjAsOCArMjAsOCBAQAogICAg
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR1BhdGhT
ZWdMaXN0X0gKLSNkZWZpbmUgS1NWR19TVkdQYXRoU2VnTGlzdF9ICisjaWZuZGVmIFNWR1BhdGhT
ZWdMaXN0X0gKKyNkZWZpbmUgU1ZHUGF0aFNlZ0xpc3RfSAogCiAjaWZkZWYgU1ZHX1NVUFBPUlQK
IApAQCAtMzMsOCArMzMsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICBjbGFzcyBTVkdQYXRo
U2VnTGlzdCA6IHB1YmxpYyBTVkdMaXN0PFJlZlB0cjxTVkdQYXRoU2VnPiA+CiAgICAgewogICAg
IHB1YmxpYzoKLSAgICAgICAgU1ZHUGF0aFNlZ0xpc3QoKTsKKyAgICAgICAgU1ZHUGF0aFNlZ0xp
c3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCk7CiAgICAgICAgIHZpcnR1YWwgflNW
R1BhdGhTZWdMaXN0KCk7CisKKyAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4
dCgpIGNvbnN0OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dCogbV9jb250ZXh0OwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5pZGwJKHJldmlzaW9uIDE4MzkxKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNSAr
MzMsMTUgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgU1ZHUGF0aFNlZyBpbml0aWFsaXplKGluIFNWR1BhdGhTZWcgbmV3SXRlbSkKICAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbik7Ci0gICAgICAgIFNW
R1BhdGhTZWcgZ2V0SXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KQorICAgICAgICBbQ3VzdG9t
XSBTVkdQYXRoU2VnIGdldEl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKICAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBTVkdQYXRoU2VnIGluc2VydEl0ZW1CZWZv
cmUoaW4gU1ZHUGF0aFNlZyBuZXdJdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KQorICAgICAg
ICBbQ3VzdG9tXSBTVkdQYXRoU2VnIGluc2VydEl0ZW1CZWZvcmUoaW4gU1ZHUGF0aFNlZyBuZXdJ
dGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbiwgU1ZHRXhjZXB0aW9uKTsKLSAgICAgICAgU1ZHUGF0aFNlZyByZXBsYWNlSXRlbShpbiBT
VkdQYXRoU2VnIG5ld0l0ZW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgIFtDdXN0
b21dIFNWR1BhdGhTZWcgcmVwbGFjZUl0ZW0oaW4gU1ZHUGF0aFNlZyBuZXdJdGVtLCBpbiB1bnNp
Z25lZCBsb25nIGluZGV4KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbiwgU1ZHRXhj
ZXB0aW9uKTsKLSAgICAgICAgU1ZHUGF0aFNlZyByZW1vdmVJdGVtKGluIHVuc2lnbmVkIGxvbmcg
aW5kZXgpCisgICAgICAgIFtDdXN0b21dIFNWR1BhdGhTZWcgcmVtb3ZlSXRlbShpbiB1bnNpZ25l
ZCBsb25nIGluZGV4KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IFNWR1BhdGhTZWcgYXBwZW5kSXRlbShpbiBTVkdQYXRoU2VnIG5ld0l0ZW0pCisgICAgICAgIFtD
dXN0b21dIFNWR1BhdGhTZWcgYXBwZW5kSXRlbShpbiBTVkdQYXRoU2VnIG5ld0l0ZW0pCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24pOwogICAgIH07CiAKSW5k
ZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdNb3ZldG8uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdNb3ZldG8uY3BwCShyZXZpc2lvbiAxODM5MSkK
KysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdNb3ZldG8uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xh
cyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAg
ICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAg
ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yMSw2ICsyMSw3IEBA
CiAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpZmRlZiBTVkdfU1VQUE9SVAogI2luY2x1
ZGUgIlNWR1BhdGhTZWdNb3ZldG8uaCIKIApAQCAtMjgsOCArMjksOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVNWR1BhdGhTZWdNb3ZldG9BYnM6OlNWR1BhdGhTZWdNb3ZldG9BYnMoY29u
c3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKLSAgICA6IFNWR1BhdGhTZWcoY29udGV4dCkK
K1NWR1BhdGhTZWdNb3ZldG9BYnM6OlNWR1BhdGhTZWdNb3ZldG9BYnMoKQorICAgIDogU1ZHUGF0
aFNlZygpCiB7CiAgICAgbV94ID0gbV95ID0gMC4wOwogfQpAQCAtNDEsOSArNDIsNiBAQCBTVkdQ
YXRoU2VnTW92ZXRvQWJzOjp+U1ZHUGF0aFNlZ01vdmV0b0FiCiB2b2lkIFNWR1BhdGhTZWdNb3Zl
dG9BYnM6OnNldFgoZG91YmxlIHgpCiB7CiAgICAgbV94ID0geDsKLQotICAgIGlmIChtX2NvbnRl
eHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRv
dWJsZSBTVkdQYXRoU2VnTW92ZXRvQWJzOjp4KCkgY29uc3QKQEAgLTU0LDkgKzUyLDYgQEAgZG91
YmxlIFNWR1BhdGhTZWdNb3ZldG9BYnM6OngoKSBjb25zdAogdm9pZCBTVkdQYXRoU2VnTW92ZXRv
QWJzOjpzZXRZKGRvdWJsZSB5KQogewogICAgIG1feSA9IHk7Ci0KLSAgICBpZiAobV9jb250ZXh0
KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3Vi
bGUgU1ZHUGF0aFNlZ01vdmV0b0Ficzo6eSgpIGNvbnN0CkBAIC02Nyw4ICs2Miw4IEBAIGRvdWJs
ZSBTVkdQYXRoU2VnTW92ZXRvQWJzOjp5KCkgY29uc3QKIAogCiAKLVNWR1BhdGhTZWdNb3ZldG9S
ZWw6OlNWR1BhdGhTZWdNb3ZldG9SZWwoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkK
LSAgICA6IFNWR1BhdGhTZWcoY29udGV4dCkKK1NWR1BhdGhTZWdNb3ZldG9SZWw6OlNWR1BhdGhT
ZWdNb3ZldG9SZWwoKQorICAgIDogU1ZHUGF0aFNlZygpCiB7CiAgICAgbV94ID0gbV95ID0gMC4w
OwogfQpAQCAtODAsOSArNzUsNiBAQCBTVkdQYXRoU2VnTW92ZXRvUmVsOjp+U1ZHUGF0aFNlZ01v
dmV0b1JlCiB2b2lkIFNWR1BhdGhTZWdNb3ZldG9SZWw6OnNldFgoZG91YmxlIHgpCiB7CiAgICAg
bV94ID0geDsKLQotICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5
QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBTVkdQYXRoU2VnTW92ZXRvUmVsOjp4KCkg
Y29uc3QKQEAgLTkzLDkgKzg1LDYgQEAgZG91YmxlIFNWR1BhdGhTZWdNb3ZldG9SZWw6OngoKSBj
b25zdAogdm9pZCBTVkdQYXRoU2VnTW92ZXRvUmVsOjpzZXRZKGRvdWJsZSB5KQogewogICAgIG1f
eSA9IHk7Ci0KLSAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0
dHJpYnV0ZUNoYW5nZSgpOwogfQogCiBkb3VibGUgU1ZHUGF0aFNlZ01vdmV0b1JlbDo6eSgpIGNv
bnN0CkBAIC0xMDUsNiArOTQsNiBAQCBkb3VibGUgU1ZHUGF0aFNlZ01vdmV0b1JlbDo6eSgpIGNv
bnN0CiAKIH0KIAotLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKKy8v
IHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdNb3ZldG8u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTW92ZXRvLmgJKHJl
dmlzaW9uIDE4MzkxKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ01vdmV0by5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUu
b3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0Br
ZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0y
MCw4ICsyMCw5IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZu
ZGVmIEtTVkdfU1ZHUGF0aFNlZ01vdmV0b0ltcGxfSAotI2RlZmluZSBLU1ZHX1NWR1BhdGhTZWdN
b3ZldG9JbXBsX0gKKyNpZm5kZWYgU1ZHUGF0aFNlZ01vdmV0b19ICisjZGVmaW5lIFNWR1BhdGhT
ZWdNb3ZldG9fSAorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAogI2luY2x1ZGUgIlNWR1BhdGhTZWcu
aCIKQEAgLTMxLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICBjbGFzcyBTVkdQYXRo
U2VnTW92ZXRvQWJzIDogcHVibGljIFNWR1BhdGhTZWcKICAgICB7IAogICAgIHB1YmxpYzoKLSAg
ICAgICAgU1ZHUGF0aFNlZ01vdmV0b0Ficyhjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0
ID0gMCk7CisgICAgICAgIFNWR1BhdGhTZWdNb3ZldG9BYnMoKTsKICAgICAgICAgdmlydHVhbCB+
U1ZHUGF0aFNlZ01vdmV0b0FicygpOwogCiAgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQg
cGF0aFNlZ1R5cGUoKSBjb25zdCB7IHJldHVybiBQQVRIU0VHX01PVkVUT19BQlM7IH0KQEAgLTUy
LDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICBjbGFzcyBTVkdQYXRoU2VnTW92ZXRv
UmVsIDogcHVibGljIFNWR1BhdGhTZWcKICAgICB7IAogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZH
UGF0aFNlZ01vdmV0b1JlbChjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gMCk7Cisg
ICAgICAgIFNWR1BhdGhTZWdNb3ZldG9SZWwoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0aFNl
Z01vdmV0b1JlbCgpOwogCiAgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5
cGUoKSBjb25zdCB7IHJldHVybiBQQVRIU0VHX01PVkVUT19SRUw7IH0KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBhdGgtcmVtb3ZhbC1leHBlY3RlZC5wbmcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1p
bWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcGF0aC1yZW1vdmFsLWV4cGVjdGVkLnBu
ZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQWdB
RWxFUVZSNG5PM2RlWmpYZGIzMzhkY01NTU1NCklBcWlvWmJpaWtJaWJyaGhvbGFhcGNZNTVja2xL
L2M4bFo3TTFOeFNRMXRNVDZWWm1aN2NVdTl5UFo1T2k0WkxIVXZMTU9sV3d5WE4KU0UxTVpSc1E1
djVqanQxWnVRQy8zeHNZSGc4dkw3eGdmcC8zWjlRLzVubDl2a3RMZDNkM2R3QUFBQXEwTHUwTkFB
QUFLdzRCQWdBQQpsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxC
RWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSCklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FB
Q1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUEKQUVDWnZr
dDdBNDF5K21PbnA3MmxQZTJ0N1dscmJmdkxQNi9VWjZVTTdUYzBxL1piTmNQNkRjdktmVmRPUzFx
VzluWUJBR0NGMUdzQwpaTjRqdjgwTFA3MDFYVFArbUhudGZkTFYzcHF1L3EyWjFkbWFwMVpKL2pS
b1laN3UzNVdaL1Y3TTBBVURzbWJyYWxtM1k3Mk1XR1dUCnJMdlNSaG5SZjBUVzcxZy9JL3FQU0t1
RElRQUFhSXFXN3U3dTdxVzlpWWE2N3Jya3hCT1RxVlAvNFIrLzJEZVpNU2o1M2VySncyc2sKand4
UEhsNjNJNCtzM1phSFYxK1FKenU3TXJwMXZZd1pzbFhHckxwTk5odTRXVFlidUZrNld6dUx2eEVB
QU9oOWVsK0FKTW5DaGNubApseWVubkpJODhzZ2lmZlQ1QWNtOTZ5VlQxa3Vtak83SXIwZTJaY3J3
V1JuZHNtNTJXUDJ0MldIWXpoay9lSHlHOVJ2V3BNMERBRUR2CjFUc0Q1Q1h6NXlmZitFWnl4aG5K
OU9tTHZVeFhXL0x6a2NrZFkxcHl4M2FEY3NjR2M3Tm15N0RzTm56dnZHUDQzdGx4OEk1cGEybHIK
NE1ZQkFLQjM2dDBCOHBMWnM1Tnp6a25PUGp0NTl0a2xYcTY3SmZuVitzbE4yN2ZtdjNZZG1GOFBu
NXNKSGR2bW5ldnNtNG5ESm1iVgp2cXMyWU5NQUFORDdyQmdCOHBMbm5rdk9PaXY1OHBlVFdiTWF0
dXl6ZzVMdmI1M2N0TXVBWEwvMXZJeHJINXQ5MWo4a0UxZWRtQ0Y5Cmh6UnNEZ0FBTE85V3JBQjV5
Vk5QSlpNbUpSZGNrSFIxTlhUcHVlM0pUZHNrVjcxelFQNTc4L2taM3pFdUg5cmdZOWx6Nko3cDE5
S3YKb2JNQUFHQjVzMklHeUVzZWV5dzU2YVNlRzlZWExHajQ4clA3SjlmdmtIejlmWVB5bTNXUzk2
L3h3UnkwOWhFWjJUR3k0Yk1BQUdCNQpzR0lIeUVzZWVLQW5STDd6bmFSSi96cW1yWlY4YzY5KytZ
OTM5czFHQXpmT1VSdWZsRDJIN3VtZEl3QUFyRkFFeUYvNzVTK1Q0NDVMCmZ2akRwbzFZMENlNVpu
enl4UThOekpOcmRlYW85WS9QQjljNEtJUDZER3JhVEFBQVdGWUlrSC9rOXR0N1htWjQyMjFOSGZP
elRaSXYKZnFBelA5b2lPWHl0RCtmajZ4N3ZwblVBQUhvMUFmSnFicmloNTJXR3YvcFZVOGY4ZnJY
a2pFUDY1Nm9KeWFGckhwWlBySCtpUi9rQwpBTkFyQ1pEWDB0MmRmUHZieVdtbjlkd3Iwa1MvWHkw
NTY0UHQrZlpiVzNQUW1vZm1oQTFPemNwOVZtN3FUQUFBcUNSQVhxOEZDNUlMCkwwdys4NW5rOGNl
Yk91cVBRNU5UanVpZjcrN1Vtayt1ZjFJKytxYWowOTdTM3RTWkFBQlFRWUFzcXE2dW5oY1pmdTV6
eWROUE4zWFUKQTI5S2pqK3FNejhmMDU0elI1MmIvVmMvSUMxcGFlcE1BQUJvSmdHeXVHYk9URDcv
K2VUY2M1UG5uMi9xcUR0SEpVZC9jbUJhUm96SQplWnQ5SzJNSGptM3FQQUFBYUJZQnNxUm16T2k1
TE91clgwM216R25xcUl2MmFNbnhIMm5QM211OE4yZHVmSTRuWmdFQXNOenhGcndsCk5XUkljdmJa
eWJScHllR0hKLzM2TlczVWgyN3F6b1AvUERjZGwxeVZUVzVkSjVjOWVXblRaZ0VBUURNNEFXbTBo
eDlPUHZXcDVPcXIKazRVTG16Wm15dnJKZ1djTXlPcHJiNWF2ajcwOGE3ZXYzYlJaQUFEUUtFNUFH
bTNkZFhzZTJ6dGxTckxYWGswYk0yWmFjdmYrczdMegorWGRtOHpzMnpubVBmeW5kMFpJQUFDemJu
SUEwMjg5K2xuenlrOG10dHpadHhMUzFrdmQvWmtBR2JMQnBMdDdpNnF6VnRsYlRaZ0VBCndKSndB
dEpzNDhZbGt5Y25QL3BSc3ZYV1RSbXgvdStUT3o0NEt6dDk0NjVzZnZ2SVhQSGs1VTJaQXdBQVM4
b0pTTFhycmt0T1BER1oKT3JVcHk5K3pRWExBcEFIWmZOM2Q4dFhOdnBVQnJRT2FNZ2NBQUJhSEU1
QnFlKytkM0h0dmN2SEZ5WWdSRFY5KzdHK1RYKzQ3SzIzWAozNVN4dDIyWUtiT21OSHdHQUFBc0xp
Y2dTOVA4K2NrRkZ5Um5ucGxNbjk3dzViKzlhL0xSWXp2eW1ZM1B6cUZySGRIdzlRRUFZRkVKCmtH
WEJuRG5KT2VmMHZFOWt4b3lHTGoxdHJXVGlGd2RrcXczM3pIbWJYcFQrTGYwYnVqNEFBQ3dLQWJJ
c2VlNjU1TE9mVGI3ODVXVG0KeklZdE83YzlPZkMwamp5MDdkcjU3dGIvN1owaEFBQXNOUUprV2ZU
VVU4bWtTVDJYWjNWMU5XelpMNzZ2VHo1M1VHZSt1OVgzc3YxSwoyemRzWFFBQWVMMEV5TExzc2Nl
U2swOU9McnNzV2JDZ0lVdmV2RVd5ejVuOTg4WFJYODM3aDMrZ0lXc0NBTURySlVDV0J3ODhrSnh3
ClFuTHR0VWtEL25NOThLWms5eTkzWko4TkQ4K2trV2VuSlMwTjJDUUFBTHcyQWJJOHVlZWU1TGpq
a2gvOFlJbVhtckZTc3ZlNUE3TFcKcHJ2bVB6YS9PbTB0YlEzWUlBQUF2RHJ2QVZtZWpCMmJmUC83
eVcyM0pUdnNzRVJMRFhrK3VmblFXZW1hL0lQc2R1ZjRQTGZndVFadApFZ0FBWHBrQVdSNk5INS9j
Zm50eXd3M0o1cHN2OWpMOVhreit6N0Z6TXZyYUtYbkxIVnZreWZsUE5uQ1RBQUR3OTF5Q3RienI3
azZ1CnZESTU5ZFRrd1FjWGU1bXpEdXliYjN4ZzFkeXk3WjBlMHdzQVFOTUlrTjVpd1lMa205OU16
amdqZWZ6eHhWcmkvSW10bVhUazRQeG8KMjU5bVpNZklCbThRQUFBRVNPOHpiMTdQaXd3Lys5bms2
YWNYK2VPWHY2MGx4MzV5Y0g2d3pSMFoxVG1xQ1JzRUFHQkZKa0I2cTVregpreTk4SVRubm5PVDU1
eGZwbzFkUFNENzZxVUg1MGJZL3plak8wVTNhSUFBQUt5SUIwdHZObUpHY2RWYnlsYThrYythODdv
OWQ5cmJrCmdCT1NHZHZQeUNwOVYybmlCZ0VBV0pGNENsWnZOMlJJOHJuUEpkT21KWWNlbXZUcjk3
byt0djhQa24xdlRqYTVkWjNjUCtmKzV1NFIKQUlBVmhoT1FGYzNERHljbm5waGNkVld5Y09GcmZ2
bGxiMi9KQ2NldWtsdTN1enNqK284bzJDQUFBTDJaQUZsUjNYZGZjdnp4eVgvKwo1MnQrNlRmMmFz
MlpSdzNMVDdhN0o4UGJoaGRzRGdDQTNzb2xXQ3VxMGFPVEcyOU03cnd6MldtblYvM1NRNjVmbUVQ
LzQ1bTg3WCsyCno3TXZQbHV6UHdBQWVpVUJzcUliTnk3NThZK1RtMjlPdHQ3NkZiL3N1Rys5bUhk
YzgwUStlZGZCNmVydUt0d2dBQUM5aVV1d2VMbHIKcmtsT1BqbVpPdlh2L3FpN0pYbmZwUDVac092
T3VXckxHOU9xWHdFQVdFUitndVRsSms1TTdyMDN1ZVNTWk1UTGJ6cHY2VTR1UFdsdQpadHh6YS81
OTJsbExhWU1BQUN6UG5JRHd5dWJQVDc3MnRXVFNwR1Q2OUwvODlwOEhKVnRmMHBsanR2eENEbDNy
aUtXNFFRQUFsamNDCmhOYzJaMDd5NVM4bm4vMXN6NHNOa3p3eVBObnVvbzVjc2MxTm1iRHloS1c4
UVFBQWxoY0NoTmZ2dWVkNlhtcjRwUzhsTTJkbTh0aGsKbnk4TXlwM2JUZkdPRUFBQVhoY0J3cUo3
K3VuazlOT1RyMzg5WDkxamZyNzIwUkg1NmZoNzA5bmF1YlIzQmdEQU1zNU42Q3k2WWNONgpUa0Vl
ZkRCSHJQVCtqTDF0ZW83OTlaRkxlMWNBQUN3SG5JQ3d4T1krY0crMmZuUzNIRG42cEJ5MnBwdlNB
UUI0WlFLRWhuaG83a1BaCjdzNHQ4b1A1WjJiTVcwVUlBQUQvbUV1d2FJajErcStYTDIxeVFmWjU0
WmpNM21YNzVQYmJsL2FXQUFCWUJna1FHbWFmMWY0bDI0NTQKWjQ0Wjk4dGt4eDJUZDcwcitlVXZs
L2EyQUFCWWhyZ0VpNGFhdVhCbTFybDFlQzQvYm1iZS92TWtMUzNKZTk2VG5IWmFzdEZHUzN0NwpB
QUFzWlU1QWFLaTV0OStjWjFwblpyZlBKWDlhT1VsM2QzTDExY21vVWNsQkJ5V1BQNzYwdHdnQXdG
TGtCSVRHbUR3NUN6OTlTdDY2Cjd5K3l3MDRmU1pMY01mbkwrZUhoczlLNjhLKytycjA5T2VLSTVJ
UVRlaDduQ3dEQUNzVUpDRXRtOHVSa3A1MlNDUk55N05pZnBkK2IKeCtiVURTYmwxQTBtcGQrYngr
YllqN1cvL091N3VwSnp6MDFHakVoT1BiWG43ZW9BQUt3d0JBaUw1Ni9DSTdmZW1rdDJhOG4xN3hx
UwpLN2U2TVMzLys5ZVZXOTJZRy9ZY21rdDJhL243ejgrYWxYejYwOG02NnlhZi8zd3laMDcxZHdB
QXdGTGdFaXdXemVUSlBTY1h0OTc2Cmw5LzZ5WnVUaWVjTXpHM2IzWjJOT2w1K28vbURjeDdNK0o5
dWtXdU9ucG50Zi8wcTZ3NGZucHgwVW5Md3dVbS9mazNaT2dBQVM1OFQKRUY2ZnZ6bnhlTWtEYjBy
ZS9ZWCt1WEtMRy80dVBwSmt3NDROYytVV04rVGRYK2lmQjk3MEt1dFBuNTU4K01QSnlKSEpGVmNr
Q3hlKwp5aGNEQUxDOEVpQzh1bGNJanlSNWNraXkyMWM2Yy9hbUYyVEN5aE5lY1lrSkswL0kyWnRl
a04yKzBwa25oN3pHdkljZlR2YmJMOWwwCjArVEdHNWQ0K3dBQUxGc0VDUC9ZcTRSSGtyelFtYnp0
L000Y051cTRIUENHQTE5enVRUGVjR0FPRzNWYzNuWitaNTRmOERybVQ1MmEKN0xsbnNzMDJ5UzIz
TFBMMkFRQllOcmtIaEpmN0IvZDQvSzNaL1pOZEwrak1ObHQ5SUYvYzVMeEZXdjdvMzN3NFAvLzV0
L0xESTJhbgpjKzRpZkhDWFhaSkprNUt0dDE2a2VRQUFMRnVjZ05Eak5VNDhYaksvYi9MdUwzWm01
eTBQWGVUNFNKSnpOamsvRzI3MnJwejFrYUdaCjMzY1JQbmp6emNtNGNjbkVpY2w5OXkzeVhBQUFs
ZzFPUUZaMHIrUEU0eVZkYlQzeHNmSTJiODJsVzN3M2ZkSm5zVVl1eUlMczk0dDMKWitaUGI4NTNq
NW1kOW5tTHVFQnJhN0wvL3NrcHAvUTh4aGNBZ09XR0FGbFJMVUo0SkQzeHNla2xmZlBtOWQ2YUs3
ZThJWDJ6S01jWApmKy9GdkpqMzN2M09USHZnbHR6MW9mbUxIaUZKeitONkR6NjQ1L0c5dzRjdjBY
NEFBS2doUUZZMGl4Z2VTYzlsVnhNdTZKK1JZL2ZLCmhadGYyZER0dk9mdVBUTDd6c201N3VqWjZm
ZmlZaTdTMFpGODdHUEpKejZSREhtdHgyd0JBTEEwQ1pBVnhXS0VSOUp6dy9uSGp4K2MKR1h1TXp4
VmJYTGZZbDEyOWtnVlprSDEvc1hkR2ZPY25PZm5jWnhmdHh2Uy9OWGh3Y3N3eHlWRkhKUU1ITm15
UEFBQTBqZ0RwN1JZegpQSkprWm1leSsxY0daUDJ4Nzh5Rm0xM2U4UGg0eVlJc3lNRy8yaS9UN3Zu
UGZPOWZaMlhnN0NWY2NMWFZrazk5S2puc3NLUzl2U0Y3CkJBQ2dNVHdGcTdkNm5VKzFlaVZQRGtu
ZWN1R0FqTjE2djF5ODJaVk5pNDhrNlpNK3VYaXpLek4yNi8zeWxnc0h2UGJMQ2wvTFUwLzEKWEpL
MTRZYkpSUmNsQ3hZMFpKOEFBQ3c1QWRMYkxHRjRKTWxEYXliYlh0eVJ2Ylk4S2w4YTliV0didS9W
ZkduVTE3TFhsa2RsMjRzNwo4dENhRFZqd3NjZVNndzVLUm8xS3Z2T2R4R0VmQU1CUzV4S3MzbUlK
THJYNmEzZU5UUFk2cHlObmJQcWxmR2lOZ3h1eXRVVjEwUjh1CnpJbjNmalRYSHowblc5M2Z3SVhI
anUxNW1lRnV1elZ3VVFBQUZvVUFXZDQxS0R5UzVMdHZTUTQ3c1NPWGJQNmR2R1BJTzVaNHZTWHgK
WHpQK0srLy81VC9uYTJmTXlUOHQrYmYyY3VQSDk0VElEanMwZUdFQUFGNkxBRmxlTlRBOGt1VHpC
L1ROdjM5Z1VHNGE5K09NR1RDbQpJV3N1cVNtenBtU1BuMDNJeC83amhYemkwc1Y5UnUrcjJHT1A1
UFRUZTA1R0FBQW9JVUNXTncwT2p6bnR5U0VuOWMvOU82NlRHOGZkCmt1RnR5OVlML2FiUG01NDk3
OXc1RzkzK2FMNXgrdHgwZERWNFFFdEw4cDczOUlUSWhoczJlSEVBQVA2V205Q1hGdzI0dWZ4dlBU
RXMKMmVHaXpuUy9ZL2Zjc2NNOXkxeDhKTW53dHVHNWZmdzk2WDdIN3RuaG9zNDhNYXpCQTdxN2s2
dXZUamJaSkRua2tPVHh4eHM4QUFDQQp2eVpBbG5WTkNJOGt1V1h6Wkt0TE9yTHZkaWZuOHJIWHBI
OUwvNGF0M1dqOVcvcm44ckhYWk4vdFRzNVdsM1RrbHMyYk1HVEJndVRDCkM1TU5Oa2lPUGpwNSt1
a21EQUVBd0NWWXk2b0dYMnIxMTg3NFVOK2N0MjlucnRqaXVreFllVUxEMTIrbUgvLzV4OW4zRjN2
bnlDdG0KNThTTG1uQmZ5RXNHRGt6KzdkOTYvaDQ4dUhsekFBQldNQUprV2RQRThIaDY1ZVRBTXpy
endtWWI1ZXF0YmxvbUw3bDZQYWJQbTU3MwozclZIQnYzcWdYenJ4TmtaOXVjbURoc3lKRG51dU9S
Zi96WHA2R2ppSUFDQUZZTkxzSllWVGJyVTZpVS8zRElaOCsyT2pObjE4RXplCi9xN2xOajZTbnZ0
Q0ptOS9WOGJzZW5qR2ZMc2pQOXl5aWNObXpFaU9QVFpaYjcza2dndVMrZk9iT0F3QW9QZHpBcksw
TmZIRUkwbm0KOVVzKzllRzJmSHZQQWJsc2kydXkwK0NkbWpKbmFabjgzT1RzLzR1SmVkOE5zL0ta
OCtlbHJkbDlzTzY2eVdtbkplOTdYOUtxM3dFQQpGcFdmb0phV0pwOTRKTWs5R3lSYlhENGdqK3kz
Yys3ZGNWcXZpNDhrMldud1RybDN4Mmw1WkwrZHM4WGxBM0xQQmswZStQRER5Zjc3Cko1dHVtdHh3
UTVPSEFRRDBQazVBcWpYNXhDTkpGclltcHgzVU4rZi9TLytjTStxcjJXLzEvWnMyYTFseStaT1g1
ZWlwUitURFY4N04KeWQ5OE1hMExDNGFPRzlmelZ2V2RkeTRZQmdDdy9CTWdWUXJDSTBudUhwa2Nk
dktBREY5M3EzeGo3QlhMOWIwZWkyUDZ2T2s1NUo1OQpNLzNodS9LMTAyWmx5L3VMQnUreVMvS1p6
L1FFQ1FBQXIwaUFORnRSZU16cVNFNzQxL1pjOWZhMmZHSDBlZGwvOVFPYU9tOVpkOW1UCmwrYmpV
NC9NdjN5dks1UE9tNWNCYzRvRzc3MTNjc1laeWFoUlJRTUJBSll2N2dGcGxvSjdQRjV5N2ZoazQr
OTBadVorRS9PYnR6eTYKd3NkSGt1eS8rZ0c1ZjhmZlplYisvNVNOdjlPWmE4Y1hEYjd1dXA3N1E5
Ny8vcDc3UlFBQWVCa25JSTFXZE9LUkpGTkhKQjg5ZmtDZQozR0RWZkhYc3BSay91T3FuN09YTDdj
L2RuaVB1T1NDci8vWlArZEtac3pMcWthTEIvZm9saHh5U25IaGlNbnpGdWhRT0FPQ1ZDSkJHCktR
eVBHU3NscHgvU25zdDI3NXRUTnpvemg2LzE0ZlJKbjZiUFhaNHR5SUpjOFB2emMrb0R4MmYvNzcy
WWs3N1JsU0hQRnczdjZFZysKK3RHZTk0a01HVkkwRkFCZzJTUkFsbFJoZU14cFQvNTluejQ1ZTc5
KzJXZU4vWExheU05bFNGOC8wQzZLR1MvT3lNbjNINXVyL25CNQpQbjc1L0h6c3FnWHA2Q29hUG5o
d2Nzd3h5VkZISlFNSEZnMEZBRmkyQ0pERlZSZ2VML1pOdnJWYlMwNytjUDlzditxRWZHYjB1ZG1n
Cm85a3Z2T2pkZmp2bnQvblVmVWZsSjMvNmNVNDdmMjRPL08vdTlIMnhhUGhxcXlVbm5KQWNmbmpT
M2w0MEZBQmcyU0JBRmxWaGVNenYKbTF6eTltVFNvWjBaTVhSMHpocHpYclljdUdYVDU2NUk3cDU1
ZDQ2YmNtUWVlZWErblBEMTJYbi85NU4rVlNIeXhqZjIvTDkwNElGSgpINWZRQVFBckJnSHllaFdm
ZUh4emo1YWNlWEJITmh5eWFVNGUvZm5zc05JT1RaKzdJcnZqK1R0eTJuMmZ5SU16N3MzeEY4N0pR
VGNWCm5vaHN0RkZ5K3VuSlAvOXowdEpTTkJRQVlPa1FJSytsTUR5ZUhaUjhkV0tmbkxkUFc4YXNz
bVZPSHZXNWJETm9tNmJQNWYrNzg0VTcKYzlyVVl6UGwyYnR6NUZYemN2aTFDK3B1Vmg4N3R1ZGxo
cnZ2WGpRUUFLQ2VBSGtsaGVIeDBKckoyUWUwNTRwZGs0bEQ5czdITnpvcApvenE5eUc1cG1qcDdh
czUrNFBSYys4eDFlZC9OeWNjdjdjcDZUeFFOSHo4K21UUXAyY0dwRndEUSt3aVF2MVVVSHZQN0p0
ZnRrSHg5CjMwRzVkNzNrc0RjZW1TUFhPU3FyOTF1OXFYTlpORS9PZnpMblBYcHV2dmI0ZWRuMG9l
VFFLMTdJM25jVTNTZXkrKzQ5SnlKanh4WU0KQXdDb0lVQmVVaFFlRDc0eHVYalBmcm5vWFgweWFz
Q29ITHJSTVptNDZzUzB0YlExZFM1TFpsNzN2Rnp6cDJ2eTlRZStrUHRtVDgxQgpOeXpJQjIrWW53
MGZiL0xnbHBia1BlL3B1VWRrd3cyYlBBd0FvUGtFU0VGNC9IRm84dTFkVzNMRlhnUHorOVZhY3ND
YUg4d2hheC9wClVickxxV2x6cCtYcmozNGxsejV4Y2RaNnFqdjdYajh6Ny90UmQ5N3dUQk9IOXVt
VGZPQUR5U21uOUR3OUN3QmdPYlhpQmtpVHcrTVAKcXlZM2JKOWM5NDZWY3VmNjh6SnhsYjJ5NzRp
RHMvUEtPNmMxclUyWlNhMkZXWmhiL254THJuamt3bHp6N1BVWjkxQmIzbjNUODluegpKOGthZjJy
UzBQYjI1SWdqZXQ0ak1teFlrNFlBQURUUGloY2dUUXlQcVNPU2E5L1NtdXZmUGpBUHJUWS9ld3pl
TGU5ZWUvL3NNWFNQCnRMZDQ0Vnh2MXRYZGxadWV1U25YL3U2eTNQVGNmMmU5cC9wbHIrL1B6THR2
WFpoUmp6Umg0TUNCeWRGSEp4Ly9lTThiMWdFQWxoTXIKVG9BMElUd2VXejM1MFJiSnpUc095TTFq
Rm1SZzIrQzg2dzBUczllYTc4MzR3ZVBUSjE0dXR5SmFrQVc1L2JuYmMvMFRWK2ZHUDE2VAptZk9l
eXk1VCttU1gyMlpsbDE4bWEvK3hnY09HREVrKytjbmtJeDlKT2pvYXVEQUFRSFAwL2dCcFVIak03
NXZjdTE3eXM0MlRuMjAxCklQOHp1aVYvSHBqc09taENkbm5qWHRsbGxWMnlUdnM2amRneHZjeWpY
WS9tNW1kdnpzMlBYNStiWDVpY3dUTzdzKzE5M1JsMzE2eHMKZlg4eVpsb0RucW8xZkhoeTBrbkp3
UWNuL2ZvMVpOOEFBTTNRZXdOa0NjTGptY0hKZlNPUzM2eVQvTjhOMm5QM21QWk1HVDQ3NjdXcwpt
WEdyYko5eGI1aVFiVmZhMXJzNldDeFRaMC9OL3p6L1AvblpIMytjbjgvNFNhYmxpWXlaM3BrdHAz
Umw0OTkyWlpOSGs5R1BKRU9mClc0ekYxMTAzK2ZTbmszMzNUVnJkYXdRQUxIdDZYNEM4anZDWTA1
NDhNU3o1M2VvOWZ6LzJocGI4YnAyT1BMNVdXMzY5eHR4MDlVdEcKdDY2WFRWYmVMS09IYloweEE4
ZGt5MEZiWmtEcmdMSnZneFhIcklXemN2Y0xkMmZLekNtNTcrbWY1emQvL2xYdVcvaFEydWNuYi81
RAovN3p4OS9PeTlxTno4cVkvZG1mdEo1TTNQWm1zOVhUUzBmVXFpNDRlblp4eFJyTFhYbVhmQndE
QTY5RnJBdVNrMnc1TTE1MjNaOTVUClQyUmVXMnZtdGJkbVhsdHJabmUyNWs4cnQrU1pRZDJaMGZs
aW5tbnZTdC91MXF6ZXZYTFc3cmRXMWg2d1h0NDBaR1RXN2hpUmRmcXYKazVHZEk3TkcyeHBMKzl1
Qi9HSGVIM0wvN1B2ejZOeEg4N3M1aitTeEdmZm5kN01leW1Qem44Z2ZXNTdOaXkwTE03U3JQVU5t
OTgzUQpGMXF5NnArNzB6bDdZZHJtTFV4YjEvLytPbVQxdEczL2xwenhsa3VYOXJjREFKQWs2YnUw
TjlBb2JldXNuMEVqUnFXdHRTMXRMVzEvCitYVlFuMEZacGQ4cUdkcDNhSWIwRzVLaC9ZYW1mMHYv
cGIxZGVFMXJ0SzN4OGhnZThmSS9uOXM5TjgvTWZ5WXo1cy9JTXk4K2syZm4KUDVzWEZyeVFlZDN6
TW0vaHZKZjlDZ0N3ck9nMUp5QUFBTUN5ejEycUFBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJ
QUFBUUJrQgpBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFs
QkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBCkFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNB
QUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1UKRVNBQUFFQVpB
UUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFC
a0JBZ0FBbEJFZwpBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FB
QkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBClFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVT
QUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVoKQVFJQUFK
UVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdB
QWxCRWdBQUJBR1FFQwpBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FF
Q0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBCmxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVB
WkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVIKSUFB
QVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVn
QUFCQUdRRUNBQUNVRVNBQQpBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNV
RVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBCkdRRUNBQUNVRVNBQUFFQVpBUUlB
QUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0IK
QWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFH
UUVDQUFDVUVTQUFBRUFaQVFJQQpBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFB
RUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVCkVTQUFBRUFaQVFJQUFKUVJJ
QUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxC
RWcKQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FB
Q1VFU0FBQUVBWkFRSUFBSlFSSUFBQQpRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFR
SUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaCkFRSUFBSlFSSUFBQVFC
a0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFC
QUdRRUMKQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNB
QUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQQpsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpR
UklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSCklBQUFRQmtCQWdB
QWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVD
QUFDVUVTQUEKQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFa
QVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQQpHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFB
UUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCCkFnQUFsQkVn
QUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VF
U0FBQUVBWkFRSUEKQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFB
SlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVQpFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JB
Z0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnCkFBQkFH
UUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFF
QVpBUUlBQUpRUklBQUEKUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklB
QUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWgpBUUlBQUpRUklBQUFRQmtCQWdBQWxC
RWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDCkFB
Q1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJ
QUFKUVJJQUFBUUJrQkFnQUEKbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJr
QkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUgpJQUFBUUJrQkFnQUFsQkVnQUFC
QUdRRUNBQUNVRVNBQUFKVGtBZGdBQUFNd1NVUkJWRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVn
CkFBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNV
RVNBQUFFQVpBUUlBQUpRUklBQUEKUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlB
QUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWgpBUUlBQUpRUklBQUFRQmtC
QWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFH
UUVDCkFBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFB
RUFaQVFJQUFKUVJJQUFBUUJrQkFnQUEKbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJ
QUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUgpJQUFBUUJrQkFnQUFs
QkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FB
Q1VFU0FBCkFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFR
SUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkEKR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFC
a0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQgpBZ0FBbEJFZ0FB
QkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNB
QUFFQVpBUUlBCkFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpR
UklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1UKRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdB
QWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZwpBQUJBR1FF
Q0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFa
QVFJQUFKUVJJQUFBClFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFB
UUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVoKQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVn
QUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxQbC9pekx4ZW4xcQpBeDRB
QUFBQVNVVk9SSzVDWUlJPQoK
</data>
<flag name="review"
          id="4393"
          type_id="1"
          status="+"
          setter="rwlbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>