<?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>140163</bug_id>
          
          <creation_ts>2015-01-06 18:33:50 -0800</creation_ts>
          <short_desc>Modernize the SVGElement and MathMLElement factories</short_desc>
          <delta_ts>2015-01-07 12:56: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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1059264</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-06 18:33:50 -0800</bug_when>
    <thetext>Modernize the HTMLElement factory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059270</commentid>
    <comment_count>1</comment_count>
      <attachid>244118</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-06 18:41:34 -0800</bug_when>
    <thetext>Created attachment 244118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059275</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-06 18:45:14 -0800</bug_when>
    <thetext>Attachment 244118 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:20:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 165 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059307</commentid>
    <comment_count>3</comment_count>
      <attachid>244132</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-06 20:22:32 -0800</bug_when>
    <thetext>Created attachment 244132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059309</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-06 20:25:06 -0800</bug_when>
    <thetext>Attachment 244132 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:20:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 165 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059482</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-07 12:56:22 -0800</bug_when>
    <thetext>Committed r178048: &lt;http://trac.webkit.org/changeset/178048&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244118</attachid>
            <date>2015-01-06 18:41:34 -0800</date>
            <delta_ts>2015-01-06 19:48:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140163-20150106184138.patch</filename>
            <type>text/plain</type>
            <size>118853</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3ODAxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE1LTAxLTA2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIHRoZSBTVkdFbGVtZW50
IGFuZCBNYXRoTUxFbGVtZW50IGZhY3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIENo
YW5nZSB0byByZXR1cm4gYSBSZWYgcmF0aGVyIHRoYW4gYSBSZWZQdHIuCisKKyAgICAgICAgKiBk
b20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50Q29uc3RydWN0b3JTaWduYXR1cmUpOgor
ICAgICAgICAocHJpbnRGYWN0b3J5Q3BwRmlsZSk6CisgICAgICAgIChwcmludEZhY3RvcnlIZWFk
ZXJGaWxlKToKKyAgICAgICAgQ2hhbmdlIHRvIHVuY29uZGl0aW9uYWxseSB1c2UgUmVmIGFzIHRo
ZSByZXR1cm4gdHlwZSBmb3IgZWxlbWVudCBmYWN0b3JpZXMKKyAgICAgICAgbm93IHRoYXQgSFRN
TCBpcyBub3Qgc3BlY2lhbCBjYXNlZC4KKworICAgICAgICAqIFNWRyBhbmQgTWF0aE1MIGVsZW1l
bnQgZmlsZXMgZWxpZGVkICoKKyAgICAgICAgQ2hhbmdlZCBhbGwgU1ZHIGFuZCBNYXRoTUwgZWxl
bWVudCdzIGNyZWF0ZSBmdW5jdGlvbnMgdG8gcmV0dXJuIGEgUmVmLgorCiAyMDE1LTAxLTA2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSAnLXdlYmtpdC10
ZXh0LXNpemUtYWRqdXN0JyBDU1MgcHJvcGVydHkgdG8gdGhlIG5ldyBTdHlsZUJ1aWxkZXIKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDkgKzEzOSw5IEBAIHN0
YXRpYyBBdHRyKiBmaW5kQXR0ck5vZGVJbkxpc3QoVmVjdG9yPFIKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RWxlbWVudD4gRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIENy
ZWF0ZUVsZW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50LCBDcmVhdGVFbGVtZW50KSk7CiB9CiAKIEVsZW1lbnQ6OkVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25U
eXBlIHR5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcg
QEAgZW51bSBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgewogCiBjbGFzcyBFbGVtZW50IDogcHVi
bGljIENvbnRhaW5lck5vZGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZp
cnR1YWwgfkVsZW1lbnQoKTsKIAogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
YWJvcnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwJKHJldmlzaW9uIDE3ODAwNikK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0z
ODEsOSArMzgxLDcgQEAgc3ViIHByaW50Q29uc3RydWN0b3JTaWduYXR1cmUKIHsKICAgICBteSAo
JEYsICR0YWdOYW1lLCAkY29uc3RydWN0b3JOYW1lLCAkY29uc3RydWN0b3JUYWdOYW1lKSA9IEBf
OwogCi0gICAgbXkgJHNtYXJ0UG9pbnRlclR5cGUgPSAoJHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBl
cSAiTWF0aE1MIiB8fCAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVxICJTVkciKSA/ICJQYXNzUmVm
UHRyIiA6ICJSZWYiOwotCi0gICAgcHJpbnQgRiAic3RhdGljICRzbWFydFBvaW50ZXJUeXBlPCRw
YXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiAke2NvbnN0cnVjdG9yTmFtZX1Db25zdHJ1Y3Rv
cihjb25zdCBRdWFsaWZpZWROYW1lJiAkY29uc3RydWN0b3JUYWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQiOworICAgIHByaW50IEYgInN0YXRpYyBSZWY8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVs
ZW1lbnQ+ICR7Y29uc3RydWN0b3JOYW1lfUNvbnN0cnVjdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUm
ICRjb25zdHJ1Y3RvclRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCI7CiAgICAgaWYgKCRwYXJh
bWV0ZXJze25hbWVzcGFjZX0gZXEgIkhUTUwiKSB7CiAgICAgICAgIHByaW50IEYgIiwgSFRNTEZv
cm1FbGVtZW50KiI7CiAgICAgICAgIHByaW50IEYgIiBmb3JtRWxlbWVudCIgaWYgJGVuYWJsZWRU
YWdzeyR0YWdOYW1lfXtjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnR9OwpAQCAtOTI1LDggKzky
Myw2IEBAIHN1YiBwcmludEZhY3RvcnlDcHBGaWxlCiAgICAgJGZvcm1FbGVtZW50QXJndW1lbnRG
b3JEZWNsYXJhdGlvbiA9ICIsIEhUTUxGb3JtRWxlbWVudCoiIGlmICRwYXJhbWV0ZXJze25hbWVz
cGFjZX0gZXEgIkhUTUwiOwogICAgICRmb3JtRWxlbWVudEFyZ3VtZW50Rm9yRGVmaW5pdGlvbiA9
ICIsIEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQiIGlmICRwYXJhbWV0ZXJze25hbWVzcGFj
ZX0gZXEgIkhUTUwiOwogCi0gICAgbXkgJHNtYXJ0UG9pbnRlclR5cGUgPSAoJHBhcmFtZXRlcnN7
bmFtZXNwYWNlfSBlcSAiTWF0aE1MIiB8fCAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVxICJTVkci
KSA/ICJQYXNzUmVmUHRyIiA6ICJSZWYiOwotCiAgICAgcHJpbnRMaWNlbnNlSGVhZGVyKCRGKTsK
IAogICAgIHByaW50IEYgPDxFTkQKQEAgLTk1OSw3ICs5NTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9TmFtZXM7CiAKLXR5
cGVkZWYgJHNtYXJ0UG9pbnRlclR5cGU8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+ICgq
JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUNvbnN0cnVjdG9yRnVuY3Rpb24pKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYkZm9ybUVsZW1lbnRBcmd1bWVudEZvckRlY2xhcmF0aW9uLCBib29s
IGNyZWF0ZWRCeVBhcnNlcik7Cit0eXBlZGVmIFJlZjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxl
bWVudD4gKCokcGFyYW1ldGVyc3tuYW1lc3BhY2V9Q29uc3RydWN0b3JGdW5jdGlvbikoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiRmb3JtRWxlbWVudEFyZ3VtZW50Rm9yRGVjbGFyYXRp
b24sIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAogRU5ECiAgICAgOwpAQCAtOTg5LDI2ICs5ODUs
MjMgQEAgRU5ECiAgICAgICAgIG1hcC5hZGQodGFibGVbaV0ubmFtZS5sb2NhbE5hbWUoKS5pbXBs
KCksIHRhYmxlW2ldLmZ1bmN0aW9uKTsKIH0KIAotJHNtYXJ0UG9pbnRlclR5cGU8JHBhcmFtZXRl
cnN7bmFtZXNwYWNlfUVsZW1lbnQ+ICRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50RmFjdG9y
eTo6Y3JlYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQkZm9ybUVsZW1lbnRBcmd1bWVudEZvckRlZmluaXRpb24sIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQorUmVmPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiAkcGFyYW1ldGVyc3tuYW1l
c3BhY2V9RWxlbWVudEZhY3Rvcnk6OmNyZWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50JGZvcm1FbGVtZW50QXJndW1lbnRGb3JEZWZpbml0aW9u
LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFz
aE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUNvbnN0cnVjdG9y
RnVuY3Rpb24+PiBmdW5jdGlvbnM7CiAgICAgaWYgKGZ1bmN0aW9ucy5nZXQoKS5pc0VtcHR5KCkp
CiAgICAgICAgIHBvcHVsYXRlJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUZhY3RvcnlNYXAoZnVuY3Rp
b25zKTsKLSAgICBpZiAoJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUNvbnN0cnVjdG9yRnVuY3Rpb24g
ZnVuY3Rpb24gPSBmdW5jdGlvbnMuZ2V0KCkuZ2V0KG5hbWUubG9jYWxOYW1lKCkuaW1wbCgpKSkg
eworICAgIGlmICgkcGFyYW1ldGVyc3tuYW1lc3BhY2V9Q29uc3RydWN0b3JGdW5jdGlvbiBmdW5j
dGlvbiA9IGZ1bmN0aW9ucy5nZXQoKS5nZXQobmFtZS5sb2NhbE5hbWUoKS5pbXBsKCkpKQogRU5E
CiAgICAgOwogCiAgICAgaWYgKCRwYXJhbWV0ZXJze25hbWVzcGFjZX0gZXEgIkhUTUwiKSB7CiAg
ICAgICAgIHByaW50IEYgIiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG5hbWUsIGRvY3VtZW50LCBm
b3JtRWxlbWVudCwgY3JlYXRlZEJ5UGFyc2VyKTtcbiI7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
cHJpbnQgRiAiICAgICAgICBpZiAoUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50
PiBlbGVtZW50ID0gZnVuY3Rpb24obmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpXG4i
OwotICAgICAgICBwcmludCBGICIgICAgICAgICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7
XG4iOworICAgICAgICBwcmludCBGICIgICAgICAgIHJldHVybiBmdW5jdGlvbihuYW1lLCBkb2N1
bWVudCwgY3JlYXRlZEJ5UGFyc2VyKTtcbiI7CiAgICAgfQogCi0gICAgcHJpbnQgRiAiICAgIH1c
biI7Ci0gICAgcHJpbnQgRiAiICAgIHJldHVybiAkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFj
ZU5hbWV9OjpjcmVhdGUobmFtZSwgZG9jdW1lbnQpO1xuIjsKLQogICAgIHByaW50IEYgPDxFTkQK
KyAgICByZXR1cm4gJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfTo6Y3JlYXRlKG5h
bWUsIGRvY3VtZW50KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAtMTAyNyw4ICsx
MDIwLDYgQEAgc3ViIHByaW50RmFjdG9yeUhlYWRlckZpbGUKICAgICBteSAkRjsKICAgICBvcGVu
IEYsICI+JGhlYWRlclBhdGgiOwogCi0gICAgbXkgJHNtYXJ0UG9pbnRlclR5cGUgPSAoJHBhcmFt
ZXRlcnN7bmFtZXNwYWNlfSBlcSAiTWF0aE1MIiB8fCAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVx
ICJTVkciKSA/ICJQYXNzUmVmUHRyIiA6ICJSZWYiOwotCiAgICAgcHJpbnRMaWNlbnNlSGVhZGVy
KCRGKTsKIAogICAgIHByaW50IEY8PEVORApAQCAtMTA1MCw3ICsxMDQxLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogRU5ECiA7CiAKLXByaW50IEYgIiAgICAgICAgc3RhdGljICRzbWFydFBvaW50
ZXJUeXBlPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYiOworcHJpbnQgRiAiICAgICAgICBzdGF0aWMgUmVm
PCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYiOwogcHJpbnQgRiAiLCBIVE1MRm9ybUVsZW1lbnQqID0gbnVs
bHB0ciIgaWYgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBlcSAiSFRNTCI7CiBwcmludCBGICIsIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyID0gZmFsc2UpO1xuIjsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw5ICs2OSw5IEBAIGlubGluZSBTVkdB
RWxlbWVudDo6U1ZHQUVsZW1lbnQoY29uc3QgUXUKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVy
dGllc0ZvclNWR0FFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHQUVsZW1lbnQ+IFNWR0FF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0FFbGVtZW50PiBTVkdBRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNWR0FFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogU3RyaW5n
IFNWR0FFbGVtZW50Ojp0aXRsZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQu
aAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgU1ZHQUVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgU1ZHR3JhcAogICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJ
UmVmZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQUVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPFNWR0FFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoRGVmRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1LDkgQEAgaW5saW5l
IFNWR0FsdEdseXBoRGVmRWxlbWVudDo6U1ZHQWx0R2x5cAogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjphbHRHbHlwaERlZlRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0FsdEdseXBo
RGVmRWxlbWVudD4gU1ZHQWx0R2x5cGhEZWZFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0FsdEdseXBoRGVmRWxl
bWVudD4gU1ZHQWx0R2x5cGhEZWZFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U1ZHQWx0R2x5cGhEZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQWx0R2x5cGhEZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CiAKIGJvb2wgU1ZHQWx0R2x5cGhEZWZFbGVtZW50OjpoYXNWYWxpZEdseXBoRWxlbWVudHMoVmVj
dG9yPFN0cmluZz4mIGdseXBoTmFtZXMpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcg
KzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdBbHRHbHlwaERlZkVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHQWx0R2x5cGhEZWZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdBbHRHbHlwaERlZkVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaGFzVmFsaWRH
bHlwaEVsZW1lbnRzKFZlY3RvcjxTdHJpbmc+JiBnbHlwaE5hbWVzKSBjb25zdDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MCw5ICs1MCw5IEBAIGlubGluZSBTVkdBbHRHbHlwaEVsZW1lbnQ6OlNWR0Fs
dEdseXBoRWwKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0FsdEdseXBoRWxl
bWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR0FsdEdseXBoRWxlbWVudD4gU1ZHQWx0R2x5cGhF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0FsdEdseXBoRWxlbWVudD4gU1ZHQWx0R2x5cGhFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHQWx0R2x5cGhFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQWx0R2x5cGhFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKIHZvaWQgU1ZHQWx0R2x5cGhFbGVtZW50OjpzZXRHbHlwaFJl
Zihjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
NyArMzUsNyBAQCBjbGFzcyBTVkdHbHlwaEVsZW1lbnQ7CiBjbGFzcyBTVkdBbHRHbHlwaEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FsdEdseXBoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHQWx0R2x5cGhFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGdseXBoUmVmKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRHbHlwaFJlZihj
b25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDkgKzM0LDkgQEAgaW5saW5lIFNWR0FsdEdseXBoSXRlbUVsZW1lbnQ6OlNW
R0FsdEdseQogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjphbHRHbHlwaEl0ZW1UYWcp
KTsKIH0KIAotUGFzc1JlZlB0cjxTVkdBbHRHbHlwaEl0ZW1FbGVtZW50PiBTVkdBbHRHbHlwaEl0
ZW1FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPFNWR0FsdEdseXBoSXRlbUVsZW1lbnQ+IFNWR0FsdEdseXBoSXRlbUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQWx0R2x5
cGhJdGVtRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR0FsdEdseXBo
SXRlbUVsZW1lbnQ6Omhhc1ZhbGlkR2x5cGhFbGVtZW50cyhWZWN0b3I8U3RyaW5nPiYgZ2x5cGhO
YW1lcykgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVs
ZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoSXRlbUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0FsdEdseXBoSXRlbUVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQWx0R2x5
cGhJdGVtRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBSZWY8U1ZHQWx0R2x5cGhJdGVtRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBoYXNWYWxpZEdseXBoRWxlbWVudHMo
VmVjdG9yPFN0cmluZz4mIGdseXBoTmFtZXMpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDkgKzMyLDkgQEAgaW5saW5lIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OlNW
R0FuaW1hdAogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlQ29sb3JUYWcp
KTsKIH0KIAotUGFzc1JlZlB0cjxTVkdBbmltYXRlQ29sb3JFbGVtZW50PiBTVkdBbmltYXRlQ29s
b3JFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+IFNWR0FuaW1hdGVDb2xvckVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdBbmltYXRlQ29sb3JFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBzdGF0aWMgYm9vbCBhdHRy
aWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgdmFsdWUpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
VkdBbmltYXRlQ29sb3JFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVFbGVtZW50QmFz
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBS
ZWY8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDkgKzM0LDkgQEAg
U1ZHQW5pbWF0ZUVsZW1lbnQ6OlNWR0FuaW1hdGVFbGVtZW50KGNvbgogICAgIEFTU0VSVChoYXNU
YWdOYW1lKFNWR05hbWVzOjphbmltYXRlVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHQW5pbWF0
ZUVsZW1lbnQ+IFNWR0FuaW1hdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0FuaW1hdGVFbGVtZW50PiBTVkdB
bmltYXRlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0FuaW1hdGVFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5p
bWF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHk7CiAK
IGNsYXNzIFNWR0FuaW1hdGVFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVFbGVtZW50
QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PFNWR0FuaW1hdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlv
bkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUz
LDkgQEAgaW5saW5lIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpTVkdBbmltYQogICAgIEFTU0VS
VChoYXNUYWdOYW1lKGFuaW1hdGVNb3Rpb25UYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdBbmlt
YXRlTW90aW9uRWxlbWVudD4gU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQ+IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlTW90aW9uRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpoYXNWYWxp
ZEF0dHJpYnV0ZVR5cGUoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVN
b3Rpb25FbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlTW90aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBA
IGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKICAgICAgICAgICAgIAogY2xhc3MgU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0aW9uRWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1h
dGVNb3Rpb25FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAgICAgdm9pZCB1cGRhdGVBbmltYXRpb25QYXRoKCk7CiAKIHByaXZhdGU6CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDkgQEAgaW5saW5lIFNWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpTVkdBbgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05h
bWVzOjphbmltYXRlVHJhbnNmb3JtVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHQW5pbWF0ZVRy
YW5zZm9ybUVsZW1lbnQ+IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50PiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiAKIGNsYXNz
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVFbGVt
ZW50QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9y
bVR5cGUgdHJhbnNmb3JtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU5LDkgKzU5LDkgQEAgaW5saW5lIFNWR0NpcmNsZUVsZW1lbnQ6OlNWR0NpcmNsZUVsZW1l
bgogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHQ2lyY2xlRWxlbWVudCgpOwog
fQogCi1QYXNzUmVmUHRyPFNWR0NpcmNsZUVsZW1lbnQ+IFNWR0NpcmNsZUVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
U1ZHQ2lyY2xlRWxlbWVudD4gU1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNWR0NpcmNsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdDaXJjbGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
IGJvb2wgU1ZHQ2lyY2xlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50
LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgU1ZHQ2lyY2xlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdHcmFwaGljc0VsZW1l
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0NpcmNs
ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPFNWR0NpcmNsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdDaXJjbGVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw5ICs1MSw5IEBAIGlu
bGluZSBTVkdDbGlwUGF0aEVsZW1lbnQ6OlNWR0NsaXBQYXRoRWwKICAgICByZWdpc3RlckFuaW1h
dGVkUHJvcGVydGllc0ZvclNWR0NsaXBQYXRoRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNW
R0NsaXBQYXRoRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0NsaXBQYXRoRWxl
bWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZH
Q2xpcFBhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHQ2xpcFBhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wg
U1ZHQ2xpcFBhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBSZW5kZXJPYmpl
Y3Q7CiBjbGFzcyBTVkdDbGlwUGF0aEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NF
bGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNW
R0NsaXBQYXRoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OworICAgIHN0YXRpYyBSZWY8U1ZHQ2xpcFBhdGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHQ2xpcFBhdGhFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1Myw5
IEBAIGlubGluZSBTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW4KICAgICByZWdpc3Rl
ckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0N1cnNvckVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0
cjxTVkdDdXJzb3JFbGVtZW50PiBTVkdDdXJzb3JFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0N1cnNvckVsZW1l
bnQ+IFNWR0N1cnNvckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdDdXJz
b3JFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHQ3Vyc29yRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBTVkdDdXJzb3JFbGVt
ZW50Ojp+U1ZHQ3Vyc29yRWxlbWVudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vy
c29yRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JF
bGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJz
b3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgU1ZHQ3Vy
c29yRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0N1cnNvckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0N1cnNvckVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgflNWR0N1
cnNvckVsZW1lbnQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw5ICs0MSw5IEBAIGlubGluZSBTVkdEZWZzRWxlbWVu
dDo6U1ZHRGVmc0VsZW1lbnQoY28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNW
R0RlZnNFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRGVmc0VsZW1lbnQ+IFNWR0RlZnNF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0RlZnNFbGVtZW50PiBTVkdEZWZzRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNWR0RlZnNFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRGVmc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KIAogYm9vbCBTVkdEZWZzRWxlbWVudDo6aXNWYWxpZCgpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHRGVmc0VsZW1lbnQgZmluYWwgOiBwdWJsaWMg
U1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHRGVmc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0RlZnNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHRGVmc0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRGVzY0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
ZXNjRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdEZXNjRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAgaW5saW5l
IFNWR0Rlc2NFbGVtZW50OjpTVkdEZXNjRWxlbWVudChjbwogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpkZXNjVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRGVzY0VsZW1lbnQ+IFNW
R0Rlc2NFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorUmVmPFNWR0Rlc2NFbGVtZW50PiBTVkdEZXNjRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0Rlc2NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRGVzY0VsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAogU3RyaW5nIFNWR0Rlc2NFbGVtZW50OjpkZXNjcmlwdGlvbigpIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0Rlc2NFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdEZXNjRWxlbWVudCBm
aW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTVkdEZXNjRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OworICAgIHN0YXRpYyBSZWY8U1ZHRGVzY0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3
ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYwLDkgKzYwLDkgQEAgaW5saW5lIFNWR0VsbGlwc2VFbGVtZW50OjpTVkdF
bGxpcHNlRWxlbQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRWxsaXBzZUVs
ZW1lbnQoKTsKIH0gICAgCiAKLVBhc3NSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+IFNWR0VsbGlw
c2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPFNWR0VsbGlwc2VFbGVtZW50PiBTVkdFbGxpcHNlRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0VsbGlwc2VFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRWxsaXBzZUVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdFbGxpcHNlRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHRWxsaXBzZUVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0VsbGlwc2VFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
U1ZHRWxsaXBzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDkgKzUxLDkgQEAgaW5saW5lIFNWR0ZFQmxlbmRFbGVtZW50OjpTVkdGRUJs
ZW5kRWxlbQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVCbGVuZEVsZW1l
bnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRUJsZW5kRWxlbWVudD4gU1ZHRkVCbGVuZEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8U1ZHRkVCbGVuZEVsZW1lbnQ+IFNWR0ZFQmxlbmRFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU1ZHRkVCbGVuZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUJsZW5kRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiBib29sIFNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUJsZW5kRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUJsZW5kRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVCbGVuZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8QmxlbmRNb2RlPiB7CiAKIGNsYXNzIFNWR0ZFQmxlbmRF
bGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVCbGVuZEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNW
R0ZFQmxlbmRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKIHByaXZhdGU6CiAgICAgU1ZHRkVCbGVuZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0
cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDkgKzUwLDkg
QEAgaW5saW5lIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpTVkdGRUNvbAogICAgIHJlZ2lzdGVy
QW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoKTsKIH0KIAotUGFz
c1JlZlB0cjxTVkdGRUNvbG9yTWF0cml4RWxlbWVudD4gU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNvbG9yTWF0cml4
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5o
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8Q29sb3JNYXRyaXhUeXBlCiAKIGNsYXNzIFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDkgKzQ5LDkgQEAgaW5saW5lIFNWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50OjpTVgogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZH
RkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudD4gU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29s
IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZh
dGU6CiAgICAgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3Np
dGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDkgQEAg
aW5saW5lIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6U1ZHRkVDb21wbwogICAgIHJlZ2lzdGVyQW5p
bWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVDb21wb3NpdGVFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQ
dHI8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZH
RkVDb21wb3NpdGVFbGVtZW50PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03NSw3ICs3NSw3IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxDb21wb3NpdGVPcGVy
YXQKIAogY2xhc3MgU1ZHRkVDb21wb3NpdGVFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdG
RUNvbXBvc2l0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5j
cHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDkgKzcxLDkgQEAgaW5saW5l
IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpTVkdGRQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQ
cm9wZXJ0aWVzRm9yU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0
cjxTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElk
ZW50aWZpZXIoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3
IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxFZGdlTW9kZVR5cGU+IHsKIAogY2xhc3MgU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgc2V0T3JkZXIo
ZmxvYXQgb3JkZXJYLCBmbG9hdCBvcmRlclkpOwogICAgIHZvaWQgc2V0S2VybmVsVW5pdExlbmd0
aChmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFkpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1
c2VMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw5ICs1OSw5IEBAIGlu
bGluZSBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OlNWR0YKICAgICByZWdpc3RlckFuaW1h
dGVkUHJvcGVydGllc0ZvclNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCgpOwogfQogCi1QYXNz
UmVmUHRyPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxV
bml0TGVuZ3RoWElkZW50aWZpZXIoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFNWR0NvbG9yOwogCiBjbGFzcyBTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
KyAgICBzdGF0aWMgUmVmPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZvaWQgbGlnaHRFbGVtZW50QXR0cmli
dXRlQ2hhbmdlZChjb25zdCBTVkdGRUxpZ2h0RWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUm
KTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURp
c3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTQsOSArNTQsOSBAQCBpbmxpbmUgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpTVkdG
CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+IFNW
R0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQ+IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6aXNT
dXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCShy
ZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgc3RydWN0IFNWR1By
b3BlcnR5VHJhaXRzPENoYW5uZWxTZWxlY3RvcgogCiBjbGFzcyBTVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgc3RhdGljIENoYW5uZWxTZWxlY3RvclR5cGUg
c3RyaW5nVG9DaGFubmVsKGNvbnN0IFN0cmluZyYpOwogICAgIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBAIGlubGluZSBTVkdGRURpc3RhbnRMaWdodEVs
ZW1lbnQ6OlNWR0ZFRGkKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVEaXN0YW50
TGlnaHRUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQ+IFNW
R0ZFRGlzdGFudExpZ2h0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQ+IFNW
R0ZFRGlzdGFudExpZ2h0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZF
RGlzdGFudExpZ2h0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCiBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQ6Omxp
Z2h0U291cmNlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRM
aWdodEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0
YW50TGlnaHRFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTVkdGRUxpZ2h0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRURpc3RhbnRMaWdodEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0
ZToKICAgICBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVE
cm9wU2hhZG93RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDkgQEAgaW5s
aW5lIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OlNWR0ZFRHJvcAogICAgIHJlZ2lzdGVyQW5pbWF0
ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVEcm9wU2hhZG93RWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRy
PFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ+IFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZH
RkVEcm9wU2hhZG93RWxlbWVudD4gU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRURyb3BTaGFkb3dFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEcm9wU2hhZG93
RWxlbWVudDo6c3RkRGV2aWF0aW9uWElkZW50aWZpZXIoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIFNWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRURyb3BTaGFk
b3dFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxTVkdGRURyb3BTaGFkb3dFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAgICAgCiAgICAgdm9pZCBzZXRTdGREZXZpYXRpb24oZmxvYXQg
c3RkRGV2aWF0aW9uWCwgZmxvYXQgc3RkRGV2aWF0aW9uWSk7CiAgICAgCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDEyICszNCwxMSBAQCBpbmxpbmUgU1ZHRkVGbG9vZEVsZW1lbnQ6OlNWR0ZFRmxvb2RFbGVt
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRmxvb2RUYWcpKTsKIH0KIAotUGFz
c1JlZlB0cjxTVkdGRUZsb29kRWxlbWVudD4gU1ZHRkVGbG9vZEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRkVG
bG9vZEVsZW1lbnQ+IFNWR0ZFRmxvb2RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHRkVGbG9vZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdGRUZsb29kRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi0K
IGJvb2wgU1ZHRkVGbG9vZEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJF
ZmZlY3QqIGVmZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRUZsb29kRWxlbWVudCBmaW5h
bCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFRmxvb2RFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUZsb29kRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRl
OgogICAgIFNWR0ZFRmxvb2RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBAIGlubGluZSBTVkdGRUZ1bmNBRWxlbWVudDo6
U1ZHRkVGdW5jQUVsZW0KICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVGdW5jQVRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZFRnVuY0FFbGVtZW50PiBTVkdGRUZ1bmNBRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlZjxTVkdGRUZ1bmNBRWxlbWVudD4gU1ZHRkVGdW5jQUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTVkdGRUZ1bmNBRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFRnVuY0FFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5o
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFNWR0ZFRnVuY0FFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdGRUZ1bmNBRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OworICAgIHN0YXRpYyBSZWY8U1ZHRkVGdW5jQUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNBRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUZ1bmNCRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRnVuY0JFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOSArMzEs
OSBAQCBpbmxpbmUgU1ZHRkVGdW5jQkVsZW1lbnQ6OlNWR0ZFRnVuY0JFbGVtCiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRnVuY0JUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdG
RUZ1bmNCRWxlbWVudD4gU1ZHRkVGdW5jQkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRkVGdW5jQkVsZW1lbnQ+
IFNWR0ZFRnVuY0JFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVGdW5j
QkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdGRUZ1bmNCRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRUZ1bmNCRWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVGdW5jQkVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFRnVu
Y0JFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHBy
aXZhdGU6CiAgICAgU1ZHRkVGdW5jQkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAgaW5saW5lIFNWR0ZFRnVuY0dFbGVt
ZW50OjpTVkdGRUZ1bmNHRWxlbQogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmZUZ1
bmNHVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRkVGdW5jR0VsZW1lbnQ+IFNWR0ZFRnVuY0dF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0ZFRnVuY0dFbGVtZW50PiBTVkdGRUZ1bmNHRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFRnVuY0dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVGdW5jR0VsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVt
ZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNH
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgU1ZHRkVGdW5jR0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR0ZFRnVuY0dFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUZ1bmNHRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0ZFRnVuY0dFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5
ICszMSw5IEBAIGlubGluZSBTVkdGRUZ1bmNSRWxlbWVudDo6U1ZHRkVGdW5jUkVsZW0KICAgICBB
U1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVGdW5jUlRhZykpOwogfQogCi1QYXNzUmVmUHRy
PFNWR0ZFRnVuY1JFbGVtZW50PiBTVkdGRUZ1bmNSRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGRUZ1bmNSRWxl
bWVudD4gU1ZHRkVGdW5jUkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdG
RUZ1bmNSRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR0ZFRnVuY1JFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFRnVuY1JF
bGVtZW50IGZpbmFsIDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUZ1bmNSRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZH
RkVGdW5jUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAogcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNSRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsOSArNTMs
OSBAQCBpbmxpbmUgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpTVkdGRUdhCiAgICAgcmVnaXN0
ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQoKTsKIH0KIAot
UGFzc1JlZlB0cjxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ+IFNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKK1JlZjxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ+IFNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWElkZW50aWZpZXIo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQu
aAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50IGZpbmFsIDogcHVibGlj
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAg
IHZvaWQgc2V0U3RkRGV2aWF0aW9uKGZsb2F0IHN0ZERldmlhdGlvblgsIGZsb2F0IHN0ZERldmlh
dGlvblkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDkgQEAgaW5saW5lIFNWR0ZFSW1hZ2VF
bGVtZW50OjpTVkdGRUltYWdlRWxlbQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9y
U1ZHRkVJbWFnZUVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRUltYWdlRWxlbWVudD4g
U1ZHRkVJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRkVJbWFnZUVsZW1lbnQ+IFNWR0ZFSW1hZ2VFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVJbWFnZUVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUltYWdlRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBTVkdGRUltYWdlRWxlbWVudDo6flNWR0ZFSW1h
Z2VFbGVtZW50KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCShy
ZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBTVkdGRUltYWdlRWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNWR0ZFSW1hZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUltYWdlRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCB+U1ZHRkVJbWFn
ZUVsZW1lbnQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICszNSw5IEBAIGlubGluZSBTVkdGRU1l
cmdlRWxlbWVudDo6U1ZHRkVNZXJnZUVsZW0KICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1l
czo6ZmVNZXJnZVRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZFTWVyZ2VFbGVtZW50PiBTVkdG
RU1lcmdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGRU1lcmdlRWxlbWVudD4gU1ZHRkVNZXJnZUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRU1lcmdlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFTWVyZ2VFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIFBhc3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRU1l
cmdlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVy
KiBmaWx0ZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaAkocmV2
aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdGRU1lcmdlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZF
TWVyZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Cisg
ICAgc3RhdGljIFJlZjxTVkdGRU1lcmdlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0ZFTWVyZ2VFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw5ICs0Niw5IEBAIGlubGluZSBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OlNWR0ZFTWVyZ2UKICAg
ICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZFTWVyZ2VOb2RlRWxlbWVudCgpOwog
fQogCi1QYXNzUmVmUHRyPFNWR0ZFTWVyZ2VOb2RlRWxlbWVudD4gU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQorUmVmPFNWR0ZFTWVyZ2VOb2RlRWxlbWVudD4gU1ZHRkVNZXJnZU5vZGVFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVNZXJnZU5vZGVFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHRkVNZXJnZU5vZGVFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRU1lcmdlTm9kZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZF
TWVyZ2VOb2RlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiBwcml2YXRlOgogICAgIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xv
Z3lFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsOSArNTIs
OSBAQCBpbmxpbmUgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6U1ZHRkVNb3JwCiAgICAgcmVnaXN0
ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRU1vcnBob2xvZ3lFbGVtZW50KCk7CiB9CiAKLVBh
c3NSZWZQdHI8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
K1JlZjxTVkdGRU1vcnBob2xvZ3lFbGVtZW50PiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFTW9ycGhvbG9neUVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRU1v
cnBob2xvZ3lFbGVtZW50OjpyYWRpdXNYSWRlbnRpZmllcigpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDcgKzU4LDcgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPE1vcnBob2xvZ3lPcGVy
YQogCiBjbGFzcyBTVkdGRU1vcnBob2xvZ3lFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBzZXRSYWRp
dXMoZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDks
OSArNDksOSBAQCBpbmxpbmUgU1ZHRkVPZmZzZXRFbGVtZW50OjpTVkdGRU9mZnNldEVsCiAgICAg
cmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRU9mZnNldEVsZW1lbnQoKTsKIH0KIAot
UGFzc1JlZlB0cjxTVkdGRU9mZnNldEVsZW1lbnQ+IFNWR0ZFT2Zmc2V0RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxT
VkdGRU9mZnNldEVsZW1lbnQ+IFNWR0ZFT2Zmc2V0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNWR0ZFT2Zmc2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFT2Zmc2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwogfQogCiBib29sIFNWR0ZFT2Zmc2V0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVPZmZzZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
T2Zmc2V0RWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVPZmZzZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRU9mZnNldEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdGRU9mZnNldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFT2Zmc2V0RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAg
IFNWR0ZFT2Zmc2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOSArMzEsOSBAQCBpbmxpbmUgU1ZHRkVQb2lu
dExpZ2h0RWxlbWVudDo6U1ZHRkVQb2luCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6
OmZlUG9pbnRMaWdodFRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZFUG9pbnRMaWdodEVsZW1l
bnQ+IFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRkVQb2ludExpZ2h0RWxlbWVudD4g
U1ZHRkVQb2ludExpZ2h0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZF
UG9pbnRMaWdodEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdGRVBvaW50TGlnaHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
IFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ6OmxpZ2h0U291
cmNlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVs
ZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9p
bnRMaWdodEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHRkVMaWdodEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNW
R0ZFUG9pbnRMaWdodEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdGRVBvaW50
TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNw
cAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Myw5ICs2Myw5IEBAIGlubGlu
ZSBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpTVkcKICAgICByZWdpc3RlckFuaW1hdGVk
UHJvcGVydGllc0ZvclNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ+IFNWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6Omtl
cm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZvaWQgbGln
aHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZChjb25zdCBTVkdGRUxpZ2h0RWxlbWVudCosIGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsOSArMzEsOSBAQCBpbmxpbmUgU1ZHRkVTcG90TGlnaHRFbGVtZW50OjpTVkdGRVNwb3RMCiAg
ICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlU3BvdExpZ2h0VGFnKSk7CiB9CiAKLVBh
c3NSZWZQdHI8U1ZHRkVTcG90TGlnaHRFbGVtZW50PiBTVkdGRVNwb3RMaWdodEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitS
ZWY8U1ZHRkVTcG90TGlnaHRFbGVtZW50PiBTVkdGRVNwb3RMaWdodEVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRVNwb3RMaWdodEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRVNwb3RMaWdodEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gU1ZHRkVTcG90
TGlnaHRFbGVtZW50OjpsaWdodFNvdXJjZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDcgKzI2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRVNwb3RMaWdodEVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRkVMaWdodEVsZW1lbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0ZFU3BvdExpZ2h0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRkVTcG90TGlnaHRFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6
CiAgICAgU1ZHRkVTcG90TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAkocmV2aXNp
b24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0Niw5IEBAIGlubGluZSBTVkdGRVRpbGVFbGVtZW50OjpT
VkdGRVRpbGVFbGVtZW4KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZFVGls
ZUVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRVRpbGVFbGVtZW50PiBTVkdGRVRpbGVF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0ZFVGlsZUVsZW1lbnQ+IFNWR0ZFVGlsZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRVRpbGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVUaWxlRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiBib29sIFNWR0ZFVGlsZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVGlsZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVUaWxlRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUaWxlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVUaWxlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNWR0ZFVGlsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFVGlsZUVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdGRVRp
bGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4
MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1Nyw5IEBAIGlubGluZSBTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50OjpTVkdGRVR1cmIKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRVR1cmJ1bGVuY2VFbGVtZW50
PiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ+IFNW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRVR1
cmJ1bGVuY2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHRkVUdXJidWxlbmNlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJhc2VGcmVxdWVuY3lY
SWRlbnRpZmllcigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VF
bGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1
cmJ1bGVuY2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgc3RydWN0
IFNWR1Byb3BlcnR5VHJhaXRzPFR1cmJ1bGVuY2VUeXBlPgogCiBjbGFzcyBTVkdGRVR1cmJ1bGVu
Y2VFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRp
YyBSZWY8U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDkgKzc3LDkgQEAg
aW5saW5lIFNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbgogICAgIHJlZ2lzdGVyQW5p
bWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRmlsdGVyRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNW
R0ZpbHRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRmlsdGVyRWxlbWVudD4g
U1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZpbHRlckVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdG
aWx0ZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU1ZHRmlsdGVyRWxlbWVudDo6ZmlsdGVyUmVzWElkZW50aWZpZXIoKQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICsz
OSw3IEBAIGNsYXNzIFNWR0ZpbHRlckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1YKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGaWx0ZXJFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdG
aWx0ZXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB2b2lkIHNldEZpbHRlclJlcyh1bnNpZ25lZCBmaWx0ZXJSZXNYLCB1bnNpZ25lZCBmaWx0
ZXJSZXNZKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1Myw5IEBAIGlubGluZSBTVkdGb250RWxlbWVudDo6U1ZH
Rm9udEVsZW1lbnQoY28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZvbnRF
bGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRm9udEVsZW1lbnQ+IFNWR0ZvbnRFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQorUmVmPFNWR0ZvbnRFbGVtZW50PiBTVkdGb250RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNWR0ZvbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHRm9udEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAog
dm9pZCBTVkdGb250RWxlbWVudDo6aW52YWxpZGF0ZUdseXBoQ2FjaGUoKQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBA
IGNsYXNzIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ7CiBjbGFzcyBTVkdGb250RWxlbWVudCBmaW5h
bCA6IHB1YmxpYyBTVkdFbGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1Ymxp
YyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdGb250RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRm9udEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZUdseXBoQ2FjaGUo
KTsKICAgICB2b2lkIGNvbGxlY3RHbHlwaHNGb3JTdHJpbmcoY29uc3QgU3RyaW5nJiwgVmVjdG9y
PFNWR0dseXBoPiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw5ICs1Niw5IEBAIGlubGluZSBTVkdG
b250RmFjZUVsZW1lbnQ6OlNWR0ZvbnRGYWNlRWwKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmb250
X2ZhY2VUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGb250RmFjZUVsZW1lbnQ+IFNWR0ZvbnRG
YWNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxTVkdGb250RmFjZUVsZW1lbnQ+IFNWR0ZvbnRGYWNlRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZvbnRGYWNlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvbnRGYWNlRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgJKHJldmlz
aW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBTdHlsZVJ1bGVGb250RmFjZTsK
IAogY2xhc3MgU1ZHRm9udEZhY2VFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRm9u
dEZhY2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB1bnNpZ25lZCB1bml0c1BlckVtKCkgY29uc3Q7CiAgICAgaW50IHhIZWlnaHQoKSBjb25z
dDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VGb3JtYXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsOSBAQCBpbmxp
bmUgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50OjpTVkdGb250CiAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoZm9udF9mYWNlX2Zvcm1hdFRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZvbnRGYWNlRm9y
bWF0RWxlbWVudD4gU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0ZvbnRGYWNlRm9y
bWF0RWxlbWVudD4gU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CiAKIHZvaWQgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50OjpjaGlsZHJl
bkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0Zv
bnRGYWNlRm9ybWF0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZvbnRG
YWNlRm9ybWF0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiBwcml2YXRlOgogICAgIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZU5hbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsOSAr
MzMsOSBAQCBpbmxpbmUgU1ZHRm9udEZhY2VOYW1lRWxlbWVudDo6U1ZHRm9udEZhCiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvbnRfZmFjZV9uYW1lVGFnKSk7CiB9CiAKLVBhc3NS
ZWZQdHI8U1ZHRm9udEZhY2VOYW1lRWxlbWVudD4gU1ZHRm9udEZhY2VOYW1lRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1Jl
ZjxTVkdGb250RmFjZU5hbWVFbGVtZW50PiBTVkdGb250RmFjZU5hbWVFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRm9udEZhY2VOYW1lRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogUmVmPENTU0ZvbnRGYWNlU3JjVmFsdWU+IFNWR0Zv
bnRGYWNlTmFtZUVsZW1lbnQ6OnNyY1ZhbHVlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksNyBAQCBjbGFzcyBDU1NGb250RmFjZVNyY1ZhbHVlOwogCiBjbGFzcyBTVkdG
b250RmFjZU5hbWVFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZvbnRGYWNl
TmFtZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAg
ICAKICAgICBSZWY8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gc3JjVmFsdWUoKSBjb25zdDsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCw5IEBAIGlubGluZSBTVkdGb250RmFjZVNy
Y0VsZW1lbnQ6OlNWR0ZvbnRGYWMKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmb250X2ZhY2Vfc3Jj
VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRm9udEZhY2VTcmNFbGVtZW50PiBTVkdGb250RmFj
ZVNyY0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCitSZWY8U1ZHRm9udEZhY2VTcmNFbGVtZW50PiBTVkdGb250RmFjZVNyY0Vs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGb250RmFjZVNyY0VsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGb250RmFj
ZVNyY0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogUGFzc1JlZlB0cjxDU1NWYWx1
ZUxpc3Q+IFNWR0ZvbnRGYWNlU3JjRWxlbWVudDo6c3JjVmFsdWUoKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGNsYXNzIENTU1ZhbHVlTGlzdDsKIAogY2xhc3MgU1ZH
Rm9udEZhY2VTcmNFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlU3JjRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRm9udEZhY2VT
cmNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAg
ICBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gc3JjVmFsdWUoKSBjb25zdDsKICAgICAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsOSArNDMsOSBAQCBpbmxpbmUgU1ZHRm9udEZhY2VVcmlF
bGVtZW50OjpTVkdGb250RmFjCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZm9udF9mYWNlX3VyaVRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4gU1ZHRm9udEZhY2VV
cmlFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4gU1ZHRm9udEZhY2VVcmlFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRm9udEZhY2VVcmlFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRm9udEZhY2VV
cmlFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIFNWR0ZvbnRGYWNlVXJpRWxlbWVu
dDo6flNWR0ZvbnRGYWNlVXJpRWxlbWVudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDcgQEAgY2xhc3MgQ1NTRm9udEZhY2VTcmNWYWx1ZTsKIAogY2xhc3MgU1ZHRm9udEZhY2VVcmlF
bGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQsIHB1YmxpYyBDYWNoZWRGb250Q2xpZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGb250RmFjZVVyaUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCB+U1ZHRm9udEZhY2VVcmlFbGVtZW50KCk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAkocmV2
aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsOSArNjQsOSBAQCBpbmxpbmUgU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQ6OlNWR0ZvcmVpCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNG
b3JTVkdGb3JlaWduT2JqZWN0RWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50PiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudD4gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTVkdGb3JlaWduT2JqZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0dyYXBoaWNzRWxlbWVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvcmVp
Z25PYmplY3RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CisgICAgc3RhdGljIFJlZjxTVkdGb3JlaWduT2JqZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw5ICs0NSw5IEBAIFNW
R0dFbGVtZW50OjpTVkdHRWxlbWVudChjb25zdCBRdWFsaWZpZWQKICAgICByZWdpc3RlckFuaW1h
dGVkUHJvcGVydGllc0ZvclNWR0dFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHR0VsZW1l
bnQ+IFNWR0dFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0dFbGVtZW50PiBTVkdHRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR0dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
IAogYm9vbCBTVkdHRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAkocmV2aXNpb24g
MTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHR0VsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHR0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0dFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHR0VsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2x5cGhFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dseXBoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDkgKzM5LDkg
QEAgaW5saW5lIFNWR0dseXBoRWxlbWVudDo6U1ZHR2x5cGhFbGVtZW50KAogICAgIEFTU0VSVCho
YXNUYWdOYW1lKFNWR05hbWVzOjpnbHlwaFRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0dseXBo
RWxlbWVudD4gU1ZHR2x5cGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0dseXBoRWxlbWVudD4gU1ZHR2x5cGhF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHR2x5cGhFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHR2x5cGhFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIHZvaWQgU1ZHR2x5cGhFbGVtZW50OjppbnZhbGlk
YXRlR2x5cGhDYWNoZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCShy
ZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgU1ZHRm9udERhdGE7CiAKIGNs
YXNzIFNWR0dseXBoRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdHbHlwaEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0dseXBoRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgU1ZHR2x5cGgg
YnVpbGRHbHlwaElkZW50aWZpZXIoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dseXBoUmVmRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dseXBoUmVmRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw5ICs1
MCw5IEBAIGlubGluZSBTVkdHbHlwaFJlZkVsZW1lbnQ6OlNWR0dseXBoUmVmRWwKICAgICByZWdp
c3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0dseXBoUmVmRWxlbWVudCgpOwogfQogCi1QYXNz
UmVmUHRyPFNWR0dseXBoUmVmRWxlbWVudD4gU1ZHR2x5cGhSZWZFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0ds
eXBoUmVmRWxlbWVudD4gU1ZHR2x5cGhSZWZFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU1ZHR2x5cGhSZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHR2x5cGhSZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CiAKIGJvb2wgU1ZHR2x5cGhSZWZFbGVtZW50OjpoYXNWYWxpZEdseXBoRWxlbWVudChTdHJpbmcm
IGdseXBoTmFtZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVt
ZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJl
ZkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBTVkdHbHlwaFJlZkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVu
Y2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0dseXBoUmVmRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8
U1ZHR2x5cGhSZWZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKICAgICBib29sIGhhc1ZhbGlkR2x5cGhFbGVtZW50KFN0cmluZyYgZ2x5cGhOYW1lKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0hLZXJuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0hLZXJuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdIS2VybkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw5ICszNiw5IEBA
IGlubGluZSBTVkdIS2VybkVsZW1lbnQ6OlNWR0hLZXJuRWxlbWVudCgKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6aGtlcm5UYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdIS2VybkVs
ZW1lbnQ+IFNWR0hLZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdIS2VybkVsZW1lbnQ+IFNWR0hLZXJuRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0hLZXJuRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0hLZXJuRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IFNWR0hLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIHJvb3RQYXJl
bnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCShyZXZpc2lvbiAxNzgw
MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdIS2Vy
bkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHSEtlcm5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdIS2VybkVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgYnVpbGRIb3Jpem9udGFs
S2VybmluZ1BhaXIoU1ZHS2VybmluZ1BhaXImIGtlcm5pbmdQYWlyKSBjb25zdDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02Nyw5ICs2Nyw5IEBAIGlubGluZSBTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxlbWVudCgK
ICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ltYWdlRWxlbWVudCgpOwogfQog
Ci1QYXNzUmVmUHRyPFNWR0ltYWdlRWxlbWVudD4gU1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0lt
YWdlRWxlbWVudD4gU1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U1ZHSW1hZ2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHSW1hZ2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZH
SW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBTVkdJbWFnZUVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgU1ZHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdVUklSZWZlcmVuY2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0lt
YWdlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAg
IHN0YXRpYyBSZWY8U1ZHSW1hZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw5ICs1OSw5IEBAIGlubGluZSBTVkdMaW5l
RWxlbWVudDo6U1ZHTGluZUVsZW1lbnQoY28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGll
c0ZvclNWR0xpbmVFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHTGluZUVsZW1lbnQ+IFNW
R0xpbmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorUmVmPFNWR0xpbmVFbGVtZW50PiBTVkdMaW5lRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0xpbmVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGluZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAogYm9vbCBTVkdMaW5lRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGluZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgU1ZHTGluZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVt
ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTGluZUVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPFNWR0xpbmVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHTGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDkg
KzY1LDkgQEAgaW5saW5lIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZQogICAgIHJl
Z2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KCk7CiB9
CiAKLVBhc3NSZWZQdHI8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PiBTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCitSZWY8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PiBTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3
IEBAIHN0cnVjdCBMaW5lYXJHcmFkaWVudEF0dHJpYnV0ZXM7CiAKIGNsYXNzIFNWR0xpbmVhckdy
YWRpZW50RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdHcmFkaWVudEVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0xpbmVhckdyYWRpZW50RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKICAgICBib29sIGNvbGxlY3RHcmFkaWVudEF0dHJpYnV0ZXMoTGluZWFyR3JhZGllbnRB
dHRyaWJ1dGVzJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsOSBAQCBpbmxpbmUgU1ZHTVBhdGhFbGVt
ZW50OjpTVkdNUGF0aEVsZW1lbnQoCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JT
VkdNUGF0aEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdNUGF0aEVsZW1lbnQ+IFNWR01Q
YXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxTVkdNUGF0aEVsZW1lbnQ+IFNWR01QYXRoRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR01QYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01QYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiBTVkdNUGF0aEVsZW1lbnQ6On5TVkdNUGF0aEVsZW1lbnQoKQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIFNWR01QYXRoRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkcKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTVBhdGhFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdN
UGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAog
ICAgIHZpcnR1YWwgflNWR01QYXRoRWxlbWVudCgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDkgKzg2LDkg
QEAgaW5saW5lIFNWR01hcmtlckVsZW1lbnQ6OlNWR01hcmtlckVsZW1lbgogICAgIHJlZ2lzdGVy
QW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHTWFya2VyRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRy
PFNWR01hcmtlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHTWFya2VyRWxlbWVu
dD4gU1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR01hcmtl
ckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdNYXJrZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgU1ZHTWFya2VyRWxlbWVudDo6b3JpZW50VHlwZUlkZW50aWZpZXIoKQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMs
NyArMTEzLDcgQEAgcHVibGljOgogICAgICAgICBTVkdfTUFSS0VSX09SSUVOVF9BTkdMRSA9IFNW
R01hcmtlck9yaWVudEFuZ2xlCiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR01h
cmtlckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPFNWR01hcmtlckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAogICAgIEFmZmluZVRyYW5zZm9ybSB2aWV3Qm94VG9WaWV3VHJhbnNm
b3JtKGZsb2F0IHZpZXdXaWR0aCwgZmxvYXQgdmlld0hlaWdodCkgY29uc3Q7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIs
OSArNzIsOSBAQCBpbmxpbmUgU1ZHTWFza0VsZW1lbnQ6OlNWR01hc2tFbGVtZW50KGNvCiAgICAg
cmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdNYXNrRWxlbWVudCgpOwogfQogCi1QYXNz
UmVmUHRyPFNWR01hc2tFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdNYXNrRWxlbWVu
dD4gU1ZHTWFza0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdNYXNrRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01h
c2tFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHTWFza0VsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw3IEBAIGNsYXNzIFNWR01hc2tFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1Rlc3RzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTWFza0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR01hc2tFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIGFk
ZENsaWVudFJlbmRlckxheWVyKFJlbmRlckxheWVyKik7CiAgICAgdm9pZCByZW1vdmVDbGllbnRS
ZW5kZXJMYXllcihSZW5kZXJMYXllciopOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01l
dGFkYXRhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01l
dGFkYXRhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNZXRhZGF0YUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBA
IGlubGluZSBTVkdNZXRhZGF0YUVsZW1lbnQ6OlNWR01ldGFkYXRhRWwKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6bWV0YWRhdGFUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdNZXRh
ZGF0YUVsZW1lbnQ+IFNWR01ldGFkYXRhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdNZXRhZGF0YUVsZW1lbnQ+
IFNWR01ldGFkYXRhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR01ldGFk
YXRhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR01ldGFkYXRhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdNZXRhZGF0
YUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHTWV0YWRhdGFFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdNZXRhZGF0YUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdN
ZXRhZGF0YUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAgaW5saW5lIFNWR01pc3NpbmdHbHlw
aEVsZW1lbnQ6OlNWR01pc3NpbgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjptaXNz
aW5nX2dseXBoVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHTWlzc2luZ0dseXBoRWxlbWVudD4g
U1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdNaXNzaW5nR2x5cGhFbGVtZW50PiBTVkdN
aXNzaW5nR2x5cGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR01pc3NpbmdHbHlwaEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCShyZXZp
c2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU1ZHTWlzc2luZ0dseXBoRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdNaXNzaW5nR2x5cGhFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJl
ZjxTVkdNaXNzaW5nR2x5cGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHTWlzc2luZ0dseXBoRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhF
bGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTEsOSArOTEsOSBAQCBpbmxpbmUgU1ZH
UGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3Bl
cnRpZXNGb3JTVkdQYXRoRWxlbWVudCgpOwogfQogCi1SZWZQdHI8U1ZHUGF0aEVsZW1lbnQ+IFNW
R1BhdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorUmVmPFNWR1BhdGhFbGVtZW50PiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1BhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAogZmxvYXQgU1ZHUGF0aEVsZW1lbnQ6OmdldFRvdGFsTGVuZ3RoKCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyAr
NTUsNyBAQCBjbGFzcyBTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjsKIGNsYXNzIFNWR1Bh
dGhFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0dyYXBoaWNzRWxlbWVudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8U1ZHUGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1BhdGhFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgCiAgICAgZmxv
YXQgZ2V0VG90YWxMZW5ndGgoKTsKICAgICBTVkdQb2ludCBnZXRQb2ludEF0TGVuZ3RoKGZsb2F0
IGRpc3RhbmNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNw
cAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsOSArODYsOSBAQCBpbmxpbmUgU1ZHUGF0dGVy
bkVsZW1lbnQ6OlNWR1BhdHRlcm5FbGVtCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNG
b3JTVkdQYXR0ZXJuRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR1BhdHRlcm5FbGVtZW50
PiBTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdQYXR0ZXJuRWxlbWVudD4gU1ZHUGF0dGVybkVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQYXR0ZXJuRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdHRlcm5FbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHUGF0dGVybkVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NSw3ICs0NSw3IEBAIGNsYXNzIFNWR1BhdHRlcm5FbGVtZW50IGZpbmFsIDogcHVibGljIFMK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdG
aXRUb1ZpZXdCb3ggewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhdHRlcm5F
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxTVkdQYXR0ZXJuRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiAgICAgdm9pZCBjb2xsZWN0UGF0dGVybkF0dHJpYnV0ZXMoUGF0dGVybkF0
dHJpYnV0ZXMmKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlnb25F
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9s
eWdvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBAIGlubGluZSBT
VkdQb2x5Z29uRWxlbWVudDo6U1ZHUG9seWdvbkVsZW0KICAgICBBU1NFUlQoaGFzVGFnTmFtZShT
VkdOYW1lczo6cG9seWdvblRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR1BvbHlnb25FbGVtZW50
PiBTVkdQb2x5Z29uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdQb2x5Z29uRWxlbWVudD4gU1ZHUG9seWdvbkVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQb2x5Z29uRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvbHlnb25FbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5Z29uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5Z29uRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9seWdvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1BvbHlnb25FbGVtZW50IGZpbmFsIDogcHVi
bGljIFNWR1BvbHlFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQ
b2x5Z29uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBSZWY8U1ZHUG9seWdvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdQb2x5Z29uRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5bGluZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5bGluZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOSArMzEs
OSBAQCBpbmxpbmUgU1ZHUG9seWxpbmVFbGVtZW50OjpTVkdQb2x5bGluZUVsCiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBvbHlsaW5lVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZH
UG9seWxpbmVFbGVtZW50PiBTVkdQb2x5bGluZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHUG9seWxpbmVFbGVt
ZW50PiBTVkdQb2x5bGluZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQ
b2x5bGluZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdQb2x5bGluZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUG9s
eWxpbmVFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR1BvbHlFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQb2x5bGluZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1BvbHlsaW5lRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgog
ICAgIFNWR1BvbHlsaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsOSArNzEsOSBAQCBpbmxpbmUg
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdSYWRpCiAgICAgcmVnaXN0ZXJBbmltYXRlZFBy
b3BlcnRpZXNGb3JTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5o
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgc3RydWN0IFJhZGlh
bEdyYWRpZW50QXR0cmlidXRlczsKIAogY2xhc3MgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50IGZp
bmFsIDogcHVibGljIFNWR0dyYWRpZW50RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wg
Y29sbGVjdEdyYWRpZW50QXR0cmlidXRlcyhSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZXMmKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02Niw5ICs2Niw5IEBAIGlubGluZSBTVkdSZWN0RWxlbWVudDo6U1ZHUmVjdEVsZW1lbnQo
Y28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1JlY3RFbGVtZW50KCk7CiB9
CiAKLVBhc3NSZWZQdHI8U1ZHUmVjdEVsZW1lbnQ+IFNWR1JlY3RFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR1Jl
Y3RFbGVtZW50PiBTVkdSZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNW
R1JlY3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHUmVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdSZWN0
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHUmVjdEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUmVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1JlY3RFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
U1ZHUmVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1LDkg
Kzk1LDkgQEAgaW5saW5lIFNWR1NWR0VsZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29ucwogICAgIGRv
Y3VtZW50LnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKIH0K
IAotUGFzc1JlZlB0cjxTVkdTVkdFbGVtZW50PiBTVkdTVkdFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR1NWR0Vs
ZW1lbnQ+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTVkdF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
U1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBTVkdTVkdFbGVtZW50Ojp+U1ZH
U1ZHRWxlbWVudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU1ZHU1ZHRWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBTVkdHcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdC
b3gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1pvb21BbmRQYW4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NWR0VsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1NWR0VsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5n
IFNWR0dyYXBoaWNzRWxlbWVudDo6cmVmOwogICAgIHVzaW5nIFNWR0dyYXBoaWNzRWxlbWVudDo6
ZGVyZWY7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDkgKzUxLDkgQEAgaW5saW5lIFNWR1NjcmlwdEVsZW1lbnQ6
OlNWR1NjcmlwdEVsZW1lbgogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHU2Ny
aXB0RWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR1NjcmlwdEVsZW1lbnQ+IFNWR1Njcmlw
dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQsIGJvb2wgaW5zZXJ0ZWRCeVBhcnNlcikKK1JlZjxTVkdTY3JpcHRFbGVtZW50PiBT
VkdTY3JpcHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIGluc2VydGVkQnlQYXJzZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBpbnNlcnRlZEJ5
UGFyc2VyLCBmYWxzZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1NjcmlwdEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQsIGluc2VydGVkQnlQYXJzZXIsIGZhbHNlKSk7CiB9CiAKIGJv
b2wgU1ZHU2NyaXB0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgJ
KHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgU1ZHU2NyaXB0RWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTVgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1Ymxp
YyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICwgcHVibGljIFNjcmlwdEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR1NjcmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOworICAgIHN0YXRpYyBSZWY8U1ZHU2NyaXB0
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2Fz
SW5zZXJ0ZWRCeVBhcnNlcik7CiAKIHByaXZhdGU6CiAgICAgU1ZHU2NyaXB0RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJv
b2wgYWxyZWFkeVN0YXJ0ZWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNw
cAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw5ICszMiw5IEBAIGlubGluZSBTVkdTZXRFbGVtZW50
OjpTVkdTZXRFbGVtZW50KGNvbnMKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0
VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHU2V0RWxlbWVudD4gU1ZHU2V0RWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1Jl
ZjxTVkdTZXRFbGVtZW50PiBTVkdTZXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHU2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1NldEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogdm9pZCBTVkdT
ZXRFbGVtZW50Ojp1cGRhdGVBbmltYXRpb25Nb2RlKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nl
dEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nl
dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAvLyBTVkdBbmltYXRlRWxlbWVudCBpbXBsZW1lbnRzIHN1cGVyc2V0IG9mIHRoZSBm
dW5jdGlvbmFsaXR5LgogY2xhc3MgU1ZHU2V0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdBbmlt
YXRlRWxlbWVudEJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NldEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPFNWR1NldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00OCw5ICs0OCw5IEBAIGlubGluZSBTVkdTdG9wRWxlbWVudDo6
U1ZHU3RvcEVsZW1lbnQoY28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1N0
b3BFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHU3RvcEVsZW1lbnQ+IFNWR1N0b3BFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQorUmVmPFNWR1N0b3BFbGVtZW50PiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNWR1N0b3BFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RvcEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
IAogYm9vbCBTVkdTdG9wRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAko
cmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdTdG9wRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdTdG9wRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHU3RvcEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIENvbG9yIHN0b3BD
b2xvckluY2x1ZGluZ09wYWNpdHkoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0eWxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0Niw5IEBAIFNW
R1N0eWxlRWxlbWVudDo6flNWR1N0eWxlRWxlbWVudCgpCiAgICAgbV9zdHlsZVNoZWV0T3duZXIu
Y2xlYXJEb2N1bWVudERhdGEoZG9jdW1lbnQoKSwgKnRoaXMpOwogfQogCi1QYXNzUmVmUHRyPFNW
R1N0eWxlRWxlbWVudD4gU1ZHU3R5bGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK1Jl
ZjxTVkdTdHlsZUVsZW1lbnQ+IFNWR1N0eWxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTdHlsZUVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0
eWxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSk7CiB9CiAKIGJv
b2wgU1ZHU3R5bGVFbGVtZW50OjpkaXNhYmxlZCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3R5bGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdTdHlsZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
U1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3R5bGVFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVk
QnlQYXJzZXIpOworICAgIHN0YXRpYyBSZWY8U1ZHU3R5bGVFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZp
cnR1YWwgflNWR1N0eWxlRWxlbWVudCgpOwogCiAgICAgQ1NTU3R5bGVTaGVldCogc2hlZXQoKSBj
b25zdCB7IHJldHVybiBtX3N0eWxlU2hlZXRPd25lci5zaGVldCgpOyB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQy
LDkgKzQyLDkgQEAgaW5saW5lIFNWR1N3aXRjaEVsZW1lbnQ6OlNWR1N3aXRjaEVsZW1lbgogICAg
IHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHU3dpdGNoRWxlbWVudCgpOwogfQogCi1Q
YXNzUmVmUHRyPFNWR1N3aXRjaEVsZW1lbnQ+IFNWR1N3aXRjaEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHU3dp
dGNoRWxlbWVudD4gU1ZHU3dpdGNoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNWR1N3aXRjaEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdTd2l0Y2hFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wg
U1ZHU3dpdGNoRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBj
aGlsZCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAkocmV2
aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBTVkdTd2l0Y2hFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0dyYXBoaWNzRWxlbWVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3dpdGNoRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBS
ZWY8U1ZHU3dpdGNoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiBwcml2YXRlOgogICAgIFNWR1N3aXRjaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDkgKzQ4LDkgQEAgaW5saW5lIFNWR1N5bWJv
bEVsZW1lbnQ6OlNWR1N5bWJvbEVsZW1lbgogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVz
Rm9yU1ZHU3ltYm9sRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR1N5bWJvbEVsZW1lbnQ+
IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHU3ltYm9sRWxlbWVudD4gU1ZHU3ltYm9sRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1N5bWJvbEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTeW1ib2xFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHU3ltYm9sRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0
LDcgQEAgY2xhc3MgU1ZHU3ltYm9sRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdCb3gg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1N5bWJvbEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1N5
bWJvbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAog
cHJpdmF0ZToKICAgICBTVkdTeW1ib2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCwxMSArNDgsMTEgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJP
UEVSVElFUyhTVkdUUgogICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElF
UwogCi1QYXNzUmVmUHRyPFNWR1RSZWZFbGVtZW50PiBTVkdUUmVmRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdU
UmVmRWxlbWVudD4gU1ZHVFJlZkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPFNWR1RSZWZFbGVtZW50
PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IFNWR1RSZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CisgICAgUmVmPFNWR1RSZWZFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYoKm5ldyBTVkdU
UmVmRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIGVsZW1lbnQtPmVuc3VyZVVzZXJB
Z2VudFNoYWRvd1Jvb3QoKTsKLSAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CisgICAgcmV0
dXJuIGVsZW1lbnQ7CiB9CiAKIGNsYXNzIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyIDogcHVi
bGljIEV2ZW50TGlzdGVuZXIgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgJ
KHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIGNsYXNzIFNWR1RSZWZUYXJnZXRFdmVu
dExpc3RlbmVyOwogY2xhc3MgU1ZHVFJlZkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R1VSSVJlZmVyZW5jZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVFJlZkVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPFNWR1RSZWZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90aWZ5U3VidHJlZUlu
c2VydGlvbnMoQ29udGFpbmVyTm9kZSopIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RTcGFuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5IEBA
IGlubGluZSBTVkdUU3BhbkVsZW1lbnQ6OlNWR1RTcGFuRWxlbWVudCgKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6dHNwYW5UYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdUU3BhbkVs
ZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdUU3BhbkVsZW1lbnQ+IFNWR1RTcGFuRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RTcGFuRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RTcGFuRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFNw
YW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHVFNwYW5F
bGVtZW50IGZpbmFsIDogcHVibGljIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1RTcGFuRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHVFNwYW5FbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAg
ICAgU1ZHVFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw5ICszNyw5IEBAIGlubGluZSBTVkdUZXh0RWxlbWVudDo6U1ZHVGV4dEVsZW1lbnQoY28K
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6dGV4dFRhZykpOwogfQogCi1QYXNzUmVm
UHRyPFNWR1RleHRFbGVtZW50PiBTVkdUZXh0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdUZXh0RWxlbWVudD4g
U1ZHVGV4dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdUZXh0RWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RleHRF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIC8vIFdlIG92ZXJyaWRlIFNWR0dyYXBo
aWNzOjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgc28gdGhhdCB0aGUgdHJhbnNmb3JtLW9yaWdp
bgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHVGV4dEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVGV4dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1RleHRFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIEFmZmlu
ZVRyYW5zZm9ybSBhbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
NzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTUsOSArNTUsOSBAQCBpbmxpbmUgU1ZHVGV4dFBhdGhFbGVtZW50OjpT
VkdUZXh0UGF0aEVsCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdUZXh0UGF0
aEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdUZXh0UGF0aEVsZW1lbnQ+IFNWR1RleHRQ
YXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxTVkdUZXh0UGF0aEVsZW1lbnQ+IFNWR1RleHRQYXRoRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RleHRQYXRoRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RleHRQYXRoRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBTVkdUZXh0UGF0aEVsZW1lbnQ6On5TVkdUZXh0UGF0
aEVsZW1lbnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAko
cmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAgICBU
RVhUUEFUSF9TUEFDSU5HVFlQRV9FWEFDVCA9IFNWR1RleHRQYXRoU3BhY2luZ0V4YWN0CiAgICAg
fTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1RleHRQYXRoRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHVGV4dFBh
dGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90aWZ5U3VidHJlZUluc2VydGlvbnMoQ29u
dGFpbmVyTm9kZSopIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxl
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRs
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIGlubGluZSBTVkdU
aXRsZUVsZW1lbnQ6OlNWR1RpdGxlRWxlbWVudCgKIAogUGFzc1JlZlB0cjxTVkdUaXRsZUVsZW1l
bnQ+IFNWR1RpdGxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RpdGxl
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1RpdGxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBOb2RlOjpJbnNlcnRpb25O
b3RpZmljYXRpb25SZXF1ZXN0IFNWR1RpdGxlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5l
ck5vZGUmIHJvb3RQYXJlbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5o
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTVkdUaXRsZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVGl0bGVFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdUaXRsZUVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToK
ICAgICBTVkdUaXRsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5rbm93bkVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5rbm93bkVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vua25vd25FbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gZmFsc2UgdG8gbWFr
ZSBzdXJlIHdlIGRvbid0IGF0dGVtcHQgdG8gcmVuZGVyIHN1Y2ggZWxlbWVudHMuCiBjbGFzcyBT
VkdVbmtub3duRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdVbmtub3duRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPFNW
R1Vua25vd25FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdV
bmtub3duRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdVbmtub3duRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIH0KIAog
cHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTUsMTIgKzk1LDEyIEBAIGlubGluZSBTVkdVc2VFbGVtZW50OjpTVkdVc2VF
bGVtZW50KGNvbnMKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1VzZUVsZW1l
bnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdVc2VFbGVtZW50PiBTVkdVc2VFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29s
IHdhc0luc2VydGVkQnlQYXJzZXIpCitSZWY8U1ZHVXNlRWxlbWVudD4gU1ZHVXNlRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwg
Ym9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKQogewogICAgIC8vIEFsd2F5cyBidWlsZCBhICNzaGFk
b3ctcm9vdCBmb3IgU1ZHVXNlRWxlbWVudC4KLSAgICBSZWZQdHI8U1ZHVXNlRWxlbWVudD4gdXNl
ID0gYWRvcHRSZWYobmV3IFNWR1VzZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIHdhc0luc2Vy
dGVkQnlQYXJzZXIpKTsKKyAgICBSZWY8U1ZHVXNlRWxlbWVudD4gdXNlID0gYWRvcHRSZWYoKm5l
dyBTVkdVc2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCB3YXNJbnNlcnRlZEJ5UGFyc2VyKSk7
CiAgICAgdXNlLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7Ci0gICAgcmV0dXJuIHVzZS5y
ZWxlYXNlKCk7CisgICAgcmV0dXJuIHVzZTsKIH0KIAogU1ZHVXNlRWxlbWVudDo6flNWR1VzZUVs
ZW1lbnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCShyZXZpc2lvbiAxNzgw
MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFNWR1VzZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZH
R3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBDYWNoZWRTVkdEb2N1bWVudENsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVXNlRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNl
cik7CisgICAgc3RhdGljIFJlZjxTVkdVc2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFs
IH5TVkdVc2VFbGVtZW50KCk7CiAKICAgICBTVkdFbGVtZW50SW5zdGFuY2UqIGluc3RhbmNlUm9v
dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw5ICszNSw5IEBAIGlubGluZSBTVkdWS2VybkVsZW1lbnQ6OlNWR1ZL
ZXJuRWxlbWVudCgKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6dmtlcm5UYWcpKTsK
IH0KIAotUGFzc1JlZlB0cjxTVkdWS2VybkVsZW1lbnQ+IFNWR1ZLZXJuRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxT
VkdWS2VybkVsZW1lbnQ+IFNWR1ZLZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNWR1ZLZXJuRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1ZLZXJuRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBOb2Rl
OjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IFNWR1ZLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJ
bnRvKENvbnRhaW5lck5vZGUmIHJvb3RQYXJlbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVktlcm5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZL
ZXJuRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vktlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTVkdWS2VybkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxl
bWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVktlcm5FbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxT
VkdWS2VybkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAogICAgIGJvb2wgYnVpbGRWZXJ0aWNhbEtlcm5pbmdQYWlyKFNWR0tlcm5pbmdQYWlyJiBrZXJu
aW5nUGFpcikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNw
cAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsOSArNTEsOSBAQCBpbmxpbmUgU1ZHVmlld0VsZW1l
bnQ6OlNWR1ZpZXdFbGVtZW50KGNvCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JT
VkdWaWV3RWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR1ZpZXdFbGVtZW50PiBTVkdWaWV3
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKK1JlZjxTVkdWaWV3RWxlbWVudD4gU1ZHVmlld0VsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTVkdWaWV3RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ZpZXdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiB9CiAKIGJvb2wgU1ZHVmlld0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50
LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFNWR1ZpZXdFbGVtZW50
IGZpbmFsIDogcHVibGljIFNWR0UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlj
IFNWR0ZpdFRvVmlld0JveCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R1pvb21BbmRQYW4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1ZpZXdFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGlj
IFJlZjxTVkdWaWV3RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgdXNpbmcgU1ZHRWxlbWVudDo6cmVmOwogICAgIHVzaW5nIFNWR0VsZW1lbnQ6
OmRlcmVmOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244132</attachid>
            <date>2015-01-06 20:22:32 -0800</date>
            <delta_ts>2015-01-07 10:57:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140163-20150106202235.patch</filename>
            <type>text/plain</type>
            <size>118997</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3ODAxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE1LTAxLTA2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIHRoZSBTVkdFbGVtZW50
IGFuZCBNYXRoTUxFbGVtZW50IGZhY3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIENo
YW5nZSB0byByZXR1cm4gYSBSZWYgcmF0aGVyIHRoYW4gYSBSZWZQdHIuCisKKyAgICAgICAgKiBk
b20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50Q29uc3RydWN0b3JTaWduYXR1cmUpOgor
ICAgICAgICAocHJpbnRGYWN0b3J5Q3BwRmlsZSk6CisgICAgICAgIChwcmludEZhY3RvcnlIZWFk
ZXJGaWxlKToKKyAgICAgICAgQ2hhbmdlIHRvIHVuY29uZGl0aW9uYWxseSB1c2UgUmVmIGFzIHRo
ZSByZXR1cm4gdHlwZSBmb3IgZWxlbWVudCBmYWN0b3JpZXMKKyAgICAgICAgbm93IHRoYXQgSFRN
TCBpcyBub3Qgc3BlY2lhbCBjYXNlZC4KKworICAgICAgICAqIFNWRyBhbmQgTWF0aE1MIGVsZW1l
bnQgZmlsZXMgZWxpZGVkICoKKyAgICAgICAgQ2hhbmdlZCBhbGwgU1ZHIGFuZCBNYXRoTUwgZWxl
bWVudCdzIGNyZWF0ZSBmdW5jdGlvbnMgdG8gcmV0dXJuIGEgUmVmLgorCiAyMDE1LTAxLTA2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSAnLXdlYmtpdC10
ZXh0LXNpemUtYWRqdXN0JyBDU1MgcHJvcGVydHkgdG8gdGhlIG5ldyBTdHlsZUJ1aWxkZXIKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDkgKzEzOSw5IEBAIHN0
YXRpYyBBdHRyKiBmaW5kQXR0ck5vZGVJbkxpc3QoVmVjdG9yPFIKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RWxlbWVudD4gRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIENy
ZWF0ZUVsZW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50LCBDcmVhdGVFbGVtZW50KSk7CiB9CiAKIEVsZW1lbnQ6OkVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25U
eXBlIHR5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcg
QEAgZW51bSBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgewogCiBjbGFzcyBFbGVtZW50IDogcHVi
bGljIENvbnRhaW5lck5vZGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZp
cnR1YWwgfkVsZW1lbnQoKTsKIAogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
YWJvcnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwJKHJldmlzaW9uIDE3ODAwNikK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0z
ODEsOSArMzgxLDcgQEAgc3ViIHByaW50Q29uc3RydWN0b3JTaWduYXR1cmUKIHsKICAgICBteSAo
JEYsICR0YWdOYW1lLCAkY29uc3RydWN0b3JOYW1lLCAkY29uc3RydWN0b3JUYWdOYW1lKSA9IEBf
OwogCi0gICAgbXkgJHNtYXJ0UG9pbnRlclR5cGUgPSAoJHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBl
cSAiTWF0aE1MIiB8fCAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVxICJTVkciKSA/ICJQYXNzUmVm
UHRyIiA6ICJSZWYiOwotCi0gICAgcHJpbnQgRiAic3RhdGljICRzbWFydFBvaW50ZXJUeXBlPCRw
YXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiAke2NvbnN0cnVjdG9yTmFtZX1Db25zdHJ1Y3Rv
cihjb25zdCBRdWFsaWZpZWROYW1lJiAkY29uc3RydWN0b3JUYWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQiOworICAgIHByaW50IEYgInN0YXRpYyBSZWY8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVs
ZW1lbnQ+ICR7Y29uc3RydWN0b3JOYW1lfUNvbnN0cnVjdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUm
ICRjb25zdHJ1Y3RvclRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCI7CiAgICAgaWYgKCRwYXJh
bWV0ZXJze25hbWVzcGFjZX0gZXEgIkhUTUwiKSB7CiAgICAgICAgIHByaW50IEYgIiwgSFRNTEZv
cm1FbGVtZW50KiI7CiAgICAgICAgIHByaW50IEYgIiBmb3JtRWxlbWVudCIgaWYgJGVuYWJsZWRU
YWdzeyR0YWdOYW1lfXtjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnR9OwpAQCAtOTI1LDggKzky
Myw2IEBAIHN1YiBwcmludEZhY3RvcnlDcHBGaWxlCiAgICAgJGZvcm1FbGVtZW50QXJndW1lbnRG
b3JEZWNsYXJhdGlvbiA9ICIsIEhUTUxGb3JtRWxlbWVudCoiIGlmICRwYXJhbWV0ZXJze25hbWVz
cGFjZX0gZXEgIkhUTUwiOwogICAgICRmb3JtRWxlbWVudEFyZ3VtZW50Rm9yRGVmaW5pdGlvbiA9
ICIsIEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQiIGlmICRwYXJhbWV0ZXJze25hbWVzcGFj
ZX0gZXEgIkhUTUwiOwogCi0gICAgbXkgJHNtYXJ0UG9pbnRlclR5cGUgPSAoJHBhcmFtZXRlcnN7
bmFtZXNwYWNlfSBlcSAiTWF0aE1MIiB8fCAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVxICJTVkci
KSA/ICJQYXNzUmVmUHRyIiA6ICJSZWYiOwotCiAgICAgcHJpbnRMaWNlbnNlSGVhZGVyKCRGKTsK
IAogICAgIHByaW50IEYgPDxFTkQKQEAgLTk1OSw3ICs5NTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9TmFtZXM7CiAKLXR5
cGVkZWYgJHNtYXJ0UG9pbnRlclR5cGU8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+ICgq
JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUNvbnN0cnVjdG9yRnVuY3Rpb24pKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYkZm9ybUVsZW1lbnRBcmd1bWVudEZvckRlY2xhcmF0aW9uLCBib29s
IGNyZWF0ZWRCeVBhcnNlcik7Cit0eXBlZGVmIFJlZjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxl
bWVudD4gKCokcGFyYW1ldGVyc3tuYW1lc3BhY2V9Q29uc3RydWN0b3JGdW5jdGlvbikoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiRmb3JtRWxlbWVudEFyZ3VtZW50Rm9yRGVjbGFyYXRp
b24sIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAogRU5ECiAgICAgOwpAQCAtOTg5LDI2ICs5ODUs
MjMgQEAgRU5ECiAgICAgICAgIG1hcC5hZGQodGFibGVbaV0ubmFtZS5sb2NhbE5hbWUoKS5pbXBs
KCksIHRhYmxlW2ldLmZ1bmN0aW9uKTsKIH0KIAotJHNtYXJ0UG9pbnRlclR5cGU8JHBhcmFtZXRl
cnN7bmFtZXNwYWNlfUVsZW1lbnQ+ICRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50RmFjdG9y
eTo6Y3JlYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQkZm9ybUVsZW1lbnRBcmd1bWVudEZvckRlZmluaXRpb24sIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQorUmVmPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiAkcGFyYW1ldGVyc3tuYW1l
c3BhY2V9RWxlbWVudEZhY3Rvcnk6OmNyZWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50JGZvcm1FbGVtZW50QXJndW1lbnRGb3JEZWZpbml0aW9u
LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFz
aE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUNvbnN0cnVjdG9y
RnVuY3Rpb24+PiBmdW5jdGlvbnM7CiAgICAgaWYgKGZ1bmN0aW9ucy5nZXQoKS5pc0VtcHR5KCkp
CiAgICAgICAgIHBvcHVsYXRlJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUZhY3RvcnlNYXAoZnVuY3Rp
b25zKTsKLSAgICBpZiAoJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUNvbnN0cnVjdG9yRnVuY3Rpb24g
ZnVuY3Rpb24gPSBmdW5jdGlvbnMuZ2V0KCkuZ2V0KG5hbWUubG9jYWxOYW1lKCkuaW1wbCgpKSkg
eworICAgIGlmICgkcGFyYW1ldGVyc3tuYW1lc3BhY2V9Q29uc3RydWN0b3JGdW5jdGlvbiBmdW5j
dGlvbiA9IGZ1bmN0aW9ucy5nZXQoKS5nZXQobmFtZS5sb2NhbE5hbWUoKS5pbXBsKCkpKQogRU5E
CiAgICAgOwogCiAgICAgaWYgKCRwYXJhbWV0ZXJze25hbWVzcGFjZX0gZXEgIkhUTUwiKSB7CiAg
ICAgICAgIHByaW50IEYgIiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG5hbWUsIGRvY3VtZW50LCBm
b3JtRWxlbWVudCwgY3JlYXRlZEJ5UGFyc2VyKTtcbiI7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
cHJpbnQgRiAiICAgICAgICBpZiAoUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50
PiBlbGVtZW50ID0gZnVuY3Rpb24obmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpXG4i
OwotICAgICAgICBwcmludCBGICIgICAgICAgICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7
XG4iOworICAgICAgICBwcmludCBGICIgICAgICAgIHJldHVybiBmdW5jdGlvbihuYW1lLCBkb2N1
bWVudCwgY3JlYXRlZEJ5UGFyc2VyKTtcbiI7CiAgICAgfQogCi0gICAgcHJpbnQgRiAiICAgIH1c
biI7Ci0gICAgcHJpbnQgRiAiICAgIHJldHVybiAkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFj
ZU5hbWV9OjpjcmVhdGUobmFtZSwgZG9jdW1lbnQpO1xuIjsKLQogICAgIHByaW50IEYgPDxFTkQK
KyAgICByZXR1cm4gJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfTo6Y3JlYXRlKG5h
bWUsIGRvY3VtZW50KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAtMTAyNyw4ICsx
MDIwLDYgQEAgc3ViIHByaW50RmFjdG9yeUhlYWRlckZpbGUKICAgICBteSAkRjsKICAgICBvcGVu
IEYsICI+JGhlYWRlclBhdGgiOwogCi0gICAgbXkgJHNtYXJ0UG9pbnRlclR5cGUgPSAoJHBhcmFt
ZXRlcnN7bmFtZXNwYWNlfSBlcSAiTWF0aE1MIiB8fCAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVx
ICJTVkciKSA/ICJQYXNzUmVmUHRyIiA6ICJSZWYiOwotCiAgICAgcHJpbnRMaWNlbnNlSGVhZGVy
KCRGKTsKIAogICAgIHByaW50IEY8PEVORApAQCAtMTA1MCw3ICsxMDQxLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogRU5ECiA7CiAKLXByaW50IEYgIiAgICAgICAgc3RhdGljICRzbWFydFBvaW50
ZXJUeXBlPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYiOworcHJpbnQgRiAiICAgICAgICBzdGF0aWMgUmVm
PCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYiOwogcHJpbnQgRiAiLCBIVE1MRm9ybUVsZW1lbnQqID0gbnVs
bHB0ciIgaWYgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBlcSAiSFRNTCI7CiBwcmludCBGICIsIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyID0gZmFsc2UpO1xuIjsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw5ICs2OSw5IEBAIGlubGluZSBTVkdB
RWxlbWVudDo6U1ZHQUVsZW1lbnQoY29uc3QgUXUKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVy
dGllc0ZvclNWR0FFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHQUVsZW1lbnQ+IFNWR0FF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0FFbGVtZW50PiBTVkdBRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNWR0FFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogU3RyaW5n
IFNWR0FFbGVtZW50Ojp0aXRsZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQu
aAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgU1ZHQUVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgU1ZHR3JhcAogICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJ
UmVmZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQUVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPFNWR0FFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoRGVmRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1LDkgQEAgaW5saW5l
IFNWR0FsdEdseXBoRGVmRWxlbWVudDo6U1ZHQWx0R2x5cAogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjphbHRHbHlwaERlZlRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0FsdEdseXBo
RGVmRWxlbWVudD4gU1ZHQWx0R2x5cGhEZWZFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0FsdEdseXBoRGVmRWxl
bWVudD4gU1ZHQWx0R2x5cGhEZWZFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U1ZHQWx0R2x5cGhEZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQWx0R2x5cGhEZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CiAKIGJvb2wgU1ZHQWx0R2x5cGhEZWZFbGVtZW50OjpoYXNWYWxpZEdseXBoRWxlbWVudHMoVmVj
dG9yPFN0cmluZz4mIGdseXBoTmFtZXMpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcg
KzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdBbHRHbHlwaERlZkVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHQWx0R2x5cGhEZWZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdBbHRHbHlwaERlZkVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaGFzVmFsaWRH
bHlwaEVsZW1lbnRzKFZlY3RvcjxTdHJpbmc+JiBnbHlwaE5hbWVzKSBjb25zdDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MCw5ICs1MCw5IEBAIGlubGluZSBTVkdBbHRHbHlwaEVsZW1lbnQ6OlNWR0Fs
dEdseXBoRWwKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0FsdEdseXBoRWxl
bWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR0FsdEdseXBoRWxlbWVudD4gU1ZHQWx0R2x5cGhF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0FsdEdseXBoRWxlbWVudD4gU1ZHQWx0R2x5cGhFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHQWx0R2x5cGhFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQWx0R2x5cGhFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKIHZvaWQgU1ZHQWx0R2x5cGhFbGVtZW50OjpzZXRHbHlwaFJl
Zihjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
NyArMzUsNyBAQCBjbGFzcyBTVkdHbHlwaEVsZW1lbnQ7CiBjbGFzcyBTVkdBbHRHbHlwaEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FsdEdseXBoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHQWx0R2x5cGhFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGdseXBoUmVmKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRHbHlwaFJlZihj
b25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDkgKzM0LDkgQEAgaW5saW5lIFNWR0FsdEdseXBoSXRlbUVsZW1lbnQ6OlNW
R0FsdEdseQogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjphbHRHbHlwaEl0ZW1UYWcp
KTsKIH0KIAotUGFzc1JlZlB0cjxTVkdBbHRHbHlwaEl0ZW1FbGVtZW50PiBTVkdBbHRHbHlwaEl0
ZW1FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPFNWR0FsdEdseXBoSXRlbUVsZW1lbnQ+IFNWR0FsdEdseXBoSXRlbUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQWx0R2x5
cGhJdGVtRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR0FsdEdseXBo
SXRlbUVsZW1lbnQ6Omhhc1ZhbGlkR2x5cGhFbGVtZW50cyhWZWN0b3I8U3RyaW5nPiYgZ2x5cGhO
YW1lcykgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVs
ZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoSXRlbUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0FsdEdseXBoSXRlbUVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQWx0R2x5
cGhJdGVtRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBSZWY8U1ZHQWx0R2x5cGhJdGVtRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBoYXNWYWxpZEdseXBoRWxlbWVudHMo
VmVjdG9yPFN0cmluZz4mIGdseXBoTmFtZXMpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDkgKzMyLDkgQEAgaW5saW5lIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OlNW
R0FuaW1hdAogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlQ29sb3JUYWcp
KTsKIH0KIAotUGFzc1JlZlB0cjxTVkdBbmltYXRlQ29sb3JFbGVtZW50PiBTVkdBbmltYXRlQ29s
b3JFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+IFNWR0FuaW1hdGVDb2xvckVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdBbmltYXRlQ29sb3JFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBzdGF0aWMgYm9vbCBhdHRy
aWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgdmFsdWUpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
VkdBbmltYXRlQ29sb3JFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVFbGVtZW50QmFz
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBS
ZWY8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDkgKzM0LDkgQEAg
U1ZHQW5pbWF0ZUVsZW1lbnQ6OlNWR0FuaW1hdGVFbGVtZW50KGNvbgogICAgIEFTU0VSVChoYXNU
YWdOYW1lKFNWR05hbWVzOjphbmltYXRlVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHQW5pbWF0
ZUVsZW1lbnQ+IFNWR0FuaW1hdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0FuaW1hdGVFbGVtZW50PiBTVkdB
bmltYXRlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0FuaW1hdGVFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5p
bWF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHk7CiAK
IGNsYXNzIFNWR0FuaW1hdGVFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVFbGVtZW50
QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PFNWR0FuaW1hdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlv
bkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUz
LDkgQEAgaW5saW5lIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpTVkdBbmltYQogICAgIEFTU0VS
VChoYXNUYWdOYW1lKGFuaW1hdGVNb3Rpb25UYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdBbmlt
YXRlTW90aW9uRWxlbWVudD4gU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQ+IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlTW90aW9uRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpoYXNWYWxp
ZEF0dHJpYnV0ZVR5cGUoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVN
b3Rpb25FbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlTW90aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBA
IGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKICAgICAgICAgICAgIAogY2xhc3MgU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0aW9uRWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1h
dGVNb3Rpb25FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAgICAgdm9pZCB1cGRhdGVBbmltYXRpb25QYXRoKCk7CiAKIHByaXZhdGU6CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDkgQEAgaW5saW5lIFNWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpTVkdBbgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05h
bWVzOjphbmltYXRlVHJhbnNmb3JtVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHQW5pbWF0ZVRy
YW5zZm9ybUVsZW1lbnQ+IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50PiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiAKIGNsYXNz
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVFbGVt
ZW50QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9y
bVR5cGUgdHJhbnNmb3JtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU5LDkgKzU5LDkgQEAgaW5saW5lIFNWR0NpcmNsZUVsZW1lbnQ6OlNWR0NpcmNsZUVsZW1l
bgogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHQ2lyY2xlRWxlbWVudCgpOwog
fQogCi1QYXNzUmVmUHRyPFNWR0NpcmNsZUVsZW1lbnQ+IFNWR0NpcmNsZUVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
U1ZHQ2lyY2xlRWxlbWVudD4gU1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNWR0NpcmNsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdDaXJjbGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
IGJvb2wgU1ZHQ2lyY2xlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50
LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgU1ZHQ2lyY2xlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdHcmFwaGljc0VsZW1l
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0NpcmNs
ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPFNWR0NpcmNsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdDaXJjbGVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw5ICs1MSw5IEBAIGlu
bGluZSBTVkdDbGlwUGF0aEVsZW1lbnQ6OlNWR0NsaXBQYXRoRWwKICAgICByZWdpc3RlckFuaW1h
dGVkUHJvcGVydGllc0ZvclNWR0NsaXBQYXRoRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNW
R0NsaXBQYXRoRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0NsaXBQYXRoRWxl
bWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZH
Q2xpcFBhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHQ2xpcFBhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wg
U1ZHQ2xpcFBhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBSZW5kZXJPYmpl
Y3Q7CiBjbGFzcyBTVkdDbGlwUGF0aEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NF
bGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNW
R0NsaXBQYXRoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OworICAgIHN0YXRpYyBSZWY8U1ZHQ2xpcFBhdGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHQ2xpcFBhdGhFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1Myw5
IEBAIGlubGluZSBTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW4KICAgICByZWdpc3Rl
ckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0N1cnNvckVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0
cjxTVkdDdXJzb3JFbGVtZW50PiBTVkdDdXJzb3JFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0N1cnNvckVsZW1l
bnQ+IFNWR0N1cnNvckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdDdXJz
b3JFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHQ3Vyc29yRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBTVkdDdXJzb3JFbGVt
ZW50Ojp+U1ZHQ3Vyc29yRWxlbWVudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vy
c29yRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JF
bGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJz
b3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgU1ZHQ3Vy
c29yRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0N1cnNvckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0N1cnNvckVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgflNWR0N1
cnNvckVsZW1lbnQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw5ICs0MSw5IEBAIGlubGluZSBTVkdEZWZzRWxlbWVu
dDo6U1ZHRGVmc0VsZW1lbnQoY28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNW
R0RlZnNFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRGVmc0VsZW1lbnQ+IFNWR0RlZnNF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0RlZnNFbGVtZW50PiBTVkdEZWZzRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNWR0RlZnNFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRGVmc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KIAogYm9vbCBTVkdEZWZzRWxlbWVudDo6aXNWYWxpZCgpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHRGVmc0VsZW1lbnQgZmluYWwgOiBwdWJsaWMg
U1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHRGVmc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0RlZnNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHRGVmc0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRGVzY0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
ZXNjRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdEZXNjRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAgaW5saW5l
IFNWR0Rlc2NFbGVtZW50OjpTVkdEZXNjRWxlbWVudChjbwogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpkZXNjVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRGVzY0VsZW1lbnQ+IFNW
R0Rlc2NFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorUmVmPFNWR0Rlc2NFbGVtZW50PiBTVkdEZXNjRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0Rlc2NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRGVzY0VsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAogU3RyaW5nIFNWR0Rlc2NFbGVtZW50OjpkZXNjcmlwdGlvbigpIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0Rlc2NFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdEZXNjRWxlbWVudCBm
aW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTVkdEZXNjRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OworICAgIHN0YXRpYyBSZWY8U1ZHRGVzY0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3
ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYwLDkgKzYwLDkgQEAgaW5saW5lIFNWR0VsbGlwc2VFbGVtZW50OjpTVkdF
bGxpcHNlRWxlbQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRWxsaXBzZUVs
ZW1lbnQoKTsKIH0gICAgCiAKLVBhc3NSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+IFNWR0VsbGlw
c2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPFNWR0VsbGlwc2VFbGVtZW50PiBTVkdFbGxpcHNlRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0VsbGlwc2VFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRWxsaXBzZUVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdFbGxpcHNlRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHRWxsaXBzZUVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0VsbGlwc2VFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
U1ZHRWxsaXBzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDkgKzUxLDkgQEAgaW5saW5lIFNWR0ZFQmxlbmRFbGVtZW50OjpTVkdGRUJs
ZW5kRWxlbQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVCbGVuZEVsZW1l
bnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRUJsZW5kRWxlbWVudD4gU1ZHRkVCbGVuZEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8U1ZHRkVCbGVuZEVsZW1lbnQ+IFNWR0ZFQmxlbmRFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU1ZHRkVCbGVuZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUJsZW5kRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiBib29sIFNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUJsZW5kRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUJsZW5kRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVCbGVuZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8QmxlbmRNb2RlPiB7CiAKIGNsYXNzIFNWR0ZFQmxlbmRF
bGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVCbGVuZEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNW
R0ZFQmxlbmRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKIHByaXZhdGU6CiAgICAgU1ZHRkVCbGVuZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0
cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDkgKzUwLDkg
QEAgaW5saW5lIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpTVkdGRUNvbAogICAgIHJlZ2lzdGVy
QW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoKTsKIH0KIAotUGFz
c1JlZlB0cjxTVkdGRUNvbG9yTWF0cml4RWxlbWVudD4gU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNvbG9yTWF0cml4
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5o
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8Q29sb3JNYXRyaXhUeXBlCiAKIGNsYXNzIFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDkgKzQ5LDkgQEAgaW5saW5lIFNWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50OjpTVgogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZH
RkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudD4gU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29s
IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZh
dGU6CiAgICAgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3Np
dGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDkgQEAg
aW5saW5lIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6U1ZHRkVDb21wbwogICAgIHJlZ2lzdGVyQW5p
bWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVDb21wb3NpdGVFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQ
dHI8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZH
RkVDb21wb3NpdGVFbGVtZW50PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03NSw3ICs3NSw3IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxDb21wb3NpdGVPcGVy
YXQKIAogY2xhc3MgU1ZHRkVDb21wb3NpdGVFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdG
RUNvbXBvc2l0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5j
cHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDkgKzcxLDkgQEAgaW5saW5l
IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpTVkdGRQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQ
cm9wZXJ0aWVzRm9yU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0
cjxTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElk
ZW50aWZpZXIoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3
IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxFZGdlTW9kZVR5cGU+IHsKIAogY2xhc3MgU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgc2V0T3JkZXIo
ZmxvYXQgb3JkZXJYLCBmbG9hdCBvcmRlclkpOwogICAgIHZvaWQgc2V0S2VybmVsVW5pdExlbmd0
aChmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFkpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1
c2VMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw5ICs1OSw5IEBAIGlu
bGluZSBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OlNWR0YKICAgICByZWdpc3RlckFuaW1h
dGVkUHJvcGVydGllc0ZvclNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCgpOwogfQogCi1QYXNz
UmVmUHRyPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxV
bml0TGVuZ3RoWElkZW50aWZpZXIoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFNWR0NvbG9yOwogCiBjbGFzcyBTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
KyAgICBzdGF0aWMgUmVmPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZvaWQgbGlnaHRFbGVtZW50QXR0cmli
dXRlQ2hhbmdlZChjb25zdCBTVkdGRUxpZ2h0RWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUm
KTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURp
c3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTQsOSArNTQsOSBAQCBpbmxpbmUgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpTVkdG
CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+IFNW
R0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQ+IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6aXNT
dXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCShy
ZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgc3RydWN0IFNWR1By
b3BlcnR5VHJhaXRzPENoYW5uZWxTZWxlY3RvcgogCiBjbGFzcyBTVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgc3RhdGljIENoYW5uZWxTZWxlY3RvclR5cGUg
c3RyaW5nVG9DaGFubmVsKGNvbnN0IFN0cmluZyYpOwogICAgIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBAIGlubGluZSBTVkdGRURpc3RhbnRMaWdodEVs
ZW1lbnQ6OlNWR0ZFRGkKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVEaXN0YW50
TGlnaHRUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQ+IFNW
R0ZFRGlzdGFudExpZ2h0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQ+IFNW
R0ZFRGlzdGFudExpZ2h0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZF
RGlzdGFudExpZ2h0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCiBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQ6Omxp
Z2h0U291cmNlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRM
aWdodEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0
YW50TGlnaHRFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTVkdGRUxpZ2h0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRURpc3RhbnRMaWdodEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0
ZToKICAgICBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVE
cm9wU2hhZG93RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDkgQEAgaW5s
aW5lIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OlNWR0ZFRHJvcAogICAgIHJlZ2lzdGVyQW5pbWF0
ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVEcm9wU2hhZG93RWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRy
PFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ+IFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZH
RkVEcm9wU2hhZG93RWxlbWVudD4gU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRURyb3BTaGFkb3dFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEcm9wU2hhZG93
RWxlbWVudDo6c3RkRGV2aWF0aW9uWElkZW50aWZpZXIoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIFNWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRURyb3BTaGFk
b3dFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxTVkdGRURyb3BTaGFkb3dFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAgICAgCiAgICAgdm9pZCBzZXRTdGREZXZpYXRpb24oZmxvYXQg
c3RkRGV2aWF0aW9uWCwgZmxvYXQgc3RkRGV2aWF0aW9uWSk7CiAgICAgCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDEyICszNCwxMSBAQCBpbmxpbmUgU1ZHRkVGbG9vZEVsZW1lbnQ6OlNWR0ZFRmxvb2RFbGVt
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRmxvb2RUYWcpKTsKIH0KIAotUGFz
c1JlZlB0cjxTVkdGRUZsb29kRWxlbWVudD4gU1ZHRkVGbG9vZEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRkVG
bG9vZEVsZW1lbnQ+IFNWR0ZFRmxvb2RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHRkVGbG9vZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdGRUZsb29kRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi0K
IGJvb2wgU1ZHRkVGbG9vZEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJF
ZmZlY3QqIGVmZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRUZsb29kRWxlbWVudCBmaW5h
bCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFRmxvb2RFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUZsb29kRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRl
OgogICAgIFNWR0ZFRmxvb2RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBAIGlubGluZSBTVkdGRUZ1bmNBRWxlbWVudDo6
U1ZHRkVGdW5jQUVsZW0KICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVGdW5jQVRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZFRnVuY0FFbGVtZW50PiBTVkdGRUZ1bmNBRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlZjxTVkdGRUZ1bmNBRWxlbWVudD4gU1ZHRkVGdW5jQUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTVkdGRUZ1bmNBRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFRnVuY0FFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5o
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFNWR0ZFRnVuY0FFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdGRUZ1bmNBRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OworICAgIHN0YXRpYyBSZWY8U1ZHRkVGdW5jQUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNBRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUZ1bmNCRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRnVuY0JFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOSArMzEs
OSBAQCBpbmxpbmUgU1ZHRkVGdW5jQkVsZW1lbnQ6OlNWR0ZFRnVuY0JFbGVtCiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRnVuY0JUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdG
RUZ1bmNCRWxlbWVudD4gU1ZHRkVGdW5jQkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRkVGdW5jQkVsZW1lbnQ+
IFNWR0ZFRnVuY0JFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVGdW5j
QkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdGRUZ1bmNCRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRUZ1bmNCRWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVGdW5jQkVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFRnVu
Y0JFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHBy
aXZhdGU6CiAgICAgU1ZHRkVGdW5jQkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAgaW5saW5lIFNWR0ZFRnVuY0dFbGVt
ZW50OjpTVkdGRUZ1bmNHRWxlbQogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmZUZ1
bmNHVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRkVGdW5jR0VsZW1lbnQ+IFNWR0ZFRnVuY0dF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0ZFRnVuY0dFbGVtZW50PiBTVkdGRUZ1bmNHRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFRnVuY0dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVGdW5jR0VsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVt
ZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNH
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgU1ZHRkVGdW5jR0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR0ZFRnVuY0dFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUZ1bmNHRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0ZFRnVuY0dFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5
ICszMSw5IEBAIGlubGluZSBTVkdGRUZ1bmNSRWxlbWVudDo6U1ZHRkVGdW5jUkVsZW0KICAgICBB
U1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVGdW5jUlRhZykpOwogfQogCi1QYXNzUmVmUHRy
PFNWR0ZFRnVuY1JFbGVtZW50PiBTVkdGRUZ1bmNSRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGRUZ1bmNSRWxl
bWVudD4gU1ZHRkVGdW5jUkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdG
RUZ1bmNSRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR0ZFRnVuY1JFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFRnVuY1JF
bGVtZW50IGZpbmFsIDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUZ1bmNSRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZH
RkVGdW5jUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAogcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNSRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsOSArNTMs
OSBAQCBpbmxpbmUgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpTVkdGRUdhCiAgICAgcmVnaXN0
ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQoKTsKIH0KIAot
UGFzc1JlZlB0cjxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ+IFNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKK1JlZjxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ+IFNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWElkZW50aWZpZXIo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQu
aAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50IGZpbmFsIDogcHVibGlj
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAg
IHZvaWQgc2V0U3RkRGV2aWF0aW9uKGZsb2F0IHN0ZERldmlhdGlvblgsIGZsb2F0IHN0ZERldmlh
dGlvblkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDkgQEAgaW5saW5lIFNWR0ZFSW1hZ2VF
bGVtZW50OjpTVkdGRUltYWdlRWxlbQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9y
U1ZHRkVJbWFnZUVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRUltYWdlRWxlbWVudD4g
U1ZHRkVJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRkVJbWFnZUVsZW1lbnQ+IFNWR0ZFSW1hZ2VFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVJbWFnZUVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUltYWdlRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBTVkdGRUltYWdlRWxlbWVudDo6flNWR0ZFSW1h
Z2VFbGVtZW50KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCShy
ZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBTVkdGRUltYWdlRWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNWR0ZFSW1hZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdGRUltYWdlRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCB+U1ZHRkVJbWFn
ZUVsZW1lbnQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICszNSw5IEBAIGlubGluZSBTVkdGRU1l
cmdlRWxlbWVudDo6U1ZHRkVNZXJnZUVsZW0KICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1l
czo6ZmVNZXJnZVRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZFTWVyZ2VFbGVtZW50PiBTVkdG
RU1lcmdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGRU1lcmdlRWxlbWVudD4gU1ZHRkVNZXJnZUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRU1lcmdlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFTWVyZ2VFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIFBhc3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRU1l
cmdlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVy
KiBmaWx0ZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaAkocmV2
aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdGRU1lcmdlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZF
TWVyZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Cisg
ICAgc3RhdGljIFJlZjxTVkdGRU1lcmdlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0ZFTWVyZ2VFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw5ICs0Niw5IEBAIGlubGluZSBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OlNWR0ZFTWVyZ2UKICAg
ICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZFTWVyZ2VOb2RlRWxlbWVudCgpOwog
fQogCi1QYXNzUmVmUHRyPFNWR0ZFTWVyZ2VOb2RlRWxlbWVudD4gU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQorUmVmPFNWR0ZFTWVyZ2VOb2RlRWxlbWVudD4gU1ZHRkVNZXJnZU5vZGVFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVNZXJnZU5vZGVFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHRkVNZXJnZU5vZGVFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRU1lcmdlTm9kZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZF
TWVyZ2VOb2RlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiBwcml2YXRlOgogICAgIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xv
Z3lFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsOSArNTIs
OSBAQCBpbmxpbmUgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6U1ZHRkVNb3JwCiAgICAgcmVnaXN0
ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRU1vcnBob2xvZ3lFbGVtZW50KCk7CiB9CiAKLVBh
c3NSZWZQdHI8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
K1JlZjxTVkdGRU1vcnBob2xvZ3lFbGVtZW50PiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFTW9ycGhvbG9neUVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRU1v
cnBob2xvZ3lFbGVtZW50OjpyYWRpdXNYSWRlbnRpZmllcigpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDcgKzU4LDcgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPE1vcnBob2xvZ3lPcGVy
YQogCiBjbGFzcyBTVkdGRU1vcnBob2xvZ3lFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBzZXRSYWRp
dXMoZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDks
OSArNDksOSBAQCBpbmxpbmUgU1ZHRkVPZmZzZXRFbGVtZW50OjpTVkdGRU9mZnNldEVsCiAgICAg
cmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRU9mZnNldEVsZW1lbnQoKTsKIH0KIAot
UGFzc1JlZlB0cjxTVkdGRU9mZnNldEVsZW1lbnQ+IFNWR0ZFT2Zmc2V0RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxT
VkdGRU9mZnNldEVsZW1lbnQ+IFNWR0ZFT2Zmc2V0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNWR0ZFT2Zmc2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFT2Zmc2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwogfQogCiBib29sIFNWR0ZFT2Zmc2V0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVPZmZzZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
T2Zmc2V0RWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVPZmZzZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRU9mZnNldEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdGRU9mZnNldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFT2Zmc2V0RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAg
IFNWR0ZFT2Zmc2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOSArMzEsOSBAQCBpbmxpbmUgU1ZHRkVQb2lu
dExpZ2h0RWxlbWVudDo6U1ZHRkVQb2luCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6
OmZlUG9pbnRMaWdodFRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZFUG9pbnRMaWdodEVsZW1l
bnQ+IFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRkVQb2ludExpZ2h0RWxlbWVudD4g
U1ZHRkVQb2ludExpZ2h0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZF
UG9pbnRMaWdodEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdGRVBvaW50TGlnaHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
IFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ6OmxpZ2h0U291
cmNlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVs
ZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9p
bnRMaWdodEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHRkVMaWdodEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNW
R0ZFUG9pbnRMaWdodEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdGRVBvaW50
TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNw
cAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Myw5ICs2Myw5IEBAIGlubGlu
ZSBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpTVkcKICAgICByZWdpc3RlckFuaW1hdGVk
UHJvcGVydGllc0ZvclNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ+IFNWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6Omtl
cm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZvaWQgbGln
aHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZChjb25zdCBTVkdGRUxpZ2h0RWxlbWVudCosIGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsOSArMzEsOSBAQCBpbmxpbmUgU1ZHRkVTcG90TGlnaHRFbGVtZW50OjpTVkdGRVNwb3RMCiAg
ICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlU3BvdExpZ2h0VGFnKSk7CiB9CiAKLVBh
c3NSZWZQdHI8U1ZHRkVTcG90TGlnaHRFbGVtZW50PiBTVkdGRVNwb3RMaWdodEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitS
ZWY8U1ZHRkVTcG90TGlnaHRFbGVtZW50PiBTVkdGRVNwb3RMaWdodEVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRVNwb3RMaWdodEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRVNwb3RMaWdodEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gU1ZHRkVTcG90
TGlnaHRFbGVtZW50OjpsaWdodFNvdXJjZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDcgKzI2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRVNwb3RMaWdodEVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRkVMaWdodEVsZW1lbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0ZFU3BvdExpZ2h0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRkVTcG90TGlnaHRFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6
CiAgICAgU1ZHRkVTcG90TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAkocmV2aXNp
b24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0Niw5IEBAIGlubGluZSBTVkdGRVRpbGVFbGVtZW50OjpT
VkdGRVRpbGVFbGVtZW4KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZFVGls
ZUVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRVRpbGVFbGVtZW50PiBTVkdGRVRpbGVF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPFNWR0ZFVGlsZUVsZW1lbnQ+IFNWR0ZFVGlsZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRVRpbGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVUaWxlRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiBib29sIFNWR0ZFVGlsZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVGlsZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVUaWxlRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUaWxlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVUaWxlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNWR0ZFVGlsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZFVGlsZUVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdGRVRp
bGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4
MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1Nyw5IEBAIGlubGluZSBTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50OjpTVkdGRVR1cmIKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRVR1cmJ1bGVuY2VFbGVtZW50
PiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ+IFNW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRVR1
cmJ1bGVuY2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHRkVUdXJidWxlbmNlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJhc2VGcmVxdWVuY3lY
SWRlbnRpZmllcigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VF
bGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1
cmJ1bGVuY2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgc3RydWN0
IFNWR1Byb3BlcnR5VHJhaXRzPFR1cmJ1bGVuY2VUeXBlPgogCiBjbGFzcyBTVkdGRVR1cmJ1bGVu
Y2VFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRp
YyBSZWY8U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDkgKzc3LDkgQEAg
aW5saW5lIFNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbgogICAgIHJlZ2lzdGVyQW5p
bWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRmlsdGVyRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNW
R0ZpbHRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHRmlsdGVyRWxlbWVudD4g
U1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZpbHRlckVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdG
aWx0ZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU1ZHRmlsdGVyRWxlbWVudDo6ZmlsdGVyUmVzWElkZW50aWZpZXIoKQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICsz
OSw3IEBAIGNsYXNzIFNWR0ZpbHRlckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1YKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGaWx0ZXJFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdG
aWx0ZXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB2b2lkIHNldEZpbHRlclJlcyh1bnNpZ25lZCBmaWx0ZXJSZXNYLCB1bnNpZ25lZCBmaWx0
ZXJSZXNZKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1Myw5IEBAIGlubGluZSBTVkdGb250RWxlbWVudDo6U1ZH
Rm9udEVsZW1lbnQoY28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZvbnRF
bGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRm9udEVsZW1lbnQ+IFNWR0ZvbnRFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQorUmVmPFNWR0ZvbnRFbGVtZW50PiBTVkdGb250RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNWR0ZvbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHRm9udEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAog
dm9pZCBTVkdGb250RWxlbWVudDo6aW52YWxpZGF0ZUdseXBoQ2FjaGUoKQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBA
IGNsYXNzIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ7CiBjbGFzcyBTVkdGb250RWxlbWVudCBmaW5h
bCA6IHB1YmxpYyBTVkdFbGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1Ymxp
YyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdGb250RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRm9udEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZUdseXBoQ2FjaGUo
KTsKICAgICB2b2lkIGNvbGxlY3RHbHlwaHNGb3JTdHJpbmcoY29uc3QgU3RyaW5nJiwgVmVjdG9y
PFNWR0dseXBoPiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw5ICs1Niw5IEBAIGlubGluZSBTVkdG
b250RmFjZUVsZW1lbnQ6OlNWR0ZvbnRGYWNlRWwKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmb250
X2ZhY2VUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGb250RmFjZUVsZW1lbnQ+IFNWR0ZvbnRG
YWNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxTVkdGb250RmFjZUVsZW1lbnQ+IFNWR0ZvbnRGYWNlRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZvbnRGYWNlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvbnRGYWNlRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgJKHJldmlz
aW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBTdHlsZVJ1bGVGb250RmFjZTsK
IAogY2xhc3MgU1ZHRm9udEZhY2VFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRm9u
dEZhY2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB1bnNpZ25lZCB1bml0c1BlckVtKCkgY29uc3Q7CiAgICAgaW50IHhIZWlnaHQoKSBjb25z
dDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VGb3JtYXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsOSBAQCBpbmxp
bmUgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50OjpTVkdGb250CiAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoZm9udF9mYWNlX2Zvcm1hdFRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZvbnRGYWNlRm9y
bWF0RWxlbWVudD4gU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0ZvbnRGYWNlRm9y
bWF0RWxlbWVudD4gU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CiAKIHZvaWQgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50OjpjaGlsZHJl
bkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0Zv
bnRGYWNlRm9ybWF0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZvbnRG
YWNlRm9ybWF0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiBwcml2YXRlOgogICAgIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZU5hbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsOSAr
MzMsOSBAQCBpbmxpbmUgU1ZHRm9udEZhY2VOYW1lRWxlbWVudDo6U1ZHRm9udEZhCiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvbnRfZmFjZV9uYW1lVGFnKSk7CiB9CiAKLVBhc3NS
ZWZQdHI8U1ZHRm9udEZhY2VOYW1lRWxlbWVudD4gU1ZHRm9udEZhY2VOYW1lRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1Jl
ZjxTVkdGb250RmFjZU5hbWVFbGVtZW50PiBTVkdGb250RmFjZU5hbWVFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRm9udEZhY2VOYW1lRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogUmVmPENTU0ZvbnRGYWNlU3JjVmFsdWU+IFNWR0Zv
bnRGYWNlTmFtZUVsZW1lbnQ6OnNyY1ZhbHVlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksNyBAQCBjbGFzcyBDU1NGb250RmFjZVNyY1ZhbHVlOwogCiBjbGFzcyBTVkdG
b250RmFjZU5hbWVFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0ZvbnRGYWNl
TmFtZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAg
ICAKICAgICBSZWY8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gc3JjVmFsdWUoKSBjb25zdDsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCw5IEBAIGlubGluZSBTVkdGb250RmFjZVNy
Y0VsZW1lbnQ6OlNWR0ZvbnRGYWMKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmb250X2ZhY2Vfc3Jj
VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRm9udEZhY2VTcmNFbGVtZW50PiBTVkdGb250RmFj
ZVNyY0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCitSZWY8U1ZHRm9udEZhY2VTcmNFbGVtZW50PiBTVkdGb250RmFjZVNyY0Vs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGb250RmFjZVNyY0VsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGb250RmFj
ZVNyY0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogUGFzc1JlZlB0cjxDU1NWYWx1
ZUxpc3Q+IFNWR0ZvbnRGYWNlU3JjRWxlbWVudDo6c3JjVmFsdWUoKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGNsYXNzIENTU1ZhbHVlTGlzdDsKIAogY2xhc3MgU1ZH
Rm9udEZhY2VTcmNFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlU3JjRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHRm9udEZhY2VT
cmNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAg
ICBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gc3JjVmFsdWUoKSBjb25zdDsKICAgICAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsOSArNDMsOSBAQCBpbmxpbmUgU1ZHRm9udEZhY2VVcmlF
bGVtZW50OjpTVkdGb250RmFjCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZm9udF9mYWNlX3VyaVRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4gU1ZHRm9udEZhY2VV
cmlFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4gU1ZHRm9udEZhY2VVcmlFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRm9udEZhY2VVcmlFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRm9udEZhY2VV
cmlFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIFNWR0ZvbnRGYWNlVXJpRWxlbWVu
dDo6flNWR0ZvbnRGYWNlVXJpRWxlbWVudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDcgQEAgY2xhc3MgQ1NTRm9udEZhY2VTcmNWYWx1ZTsKIAogY2xhc3MgU1ZHRm9udEZhY2VVcmlF
bGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQsIHB1YmxpYyBDYWNoZWRGb250Q2xpZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGb250RmFjZVVyaUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCB+U1ZHRm9udEZhY2VVcmlFbGVtZW50KCk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAkocmV2
aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsOSArNjQsOSBAQCBpbmxpbmUgU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQ6OlNWR0ZvcmVpCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNG
b3JTVkdGb3JlaWduT2JqZWN0RWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50PiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudD4gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTVkdGb3JlaWduT2JqZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0dyYXBoaWNzRWxlbWVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvcmVp
Z25PYmplY3RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CisgICAgc3RhdGljIFJlZjxTVkdGb3JlaWduT2JqZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw5ICs0NSw5IEBAIFNW
R0dFbGVtZW50OjpTVkdHRWxlbWVudChjb25zdCBRdWFsaWZpZWQKICAgICByZWdpc3RlckFuaW1h
dGVkUHJvcGVydGllc0ZvclNWR0dFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHR0VsZW1l
bnQ+IFNWR0dFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0dFbGVtZW50PiBTVkdHRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR0dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
IAogYm9vbCBTVkdHRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAkocmV2aXNpb24g
MTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHR0VsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHR0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0dFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHR0VsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2x5cGhFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dseXBoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDkgKzM5LDkg
QEAgaW5saW5lIFNWR0dseXBoRWxlbWVudDo6U1ZHR2x5cGhFbGVtZW50KAogICAgIEFTU0VSVCho
YXNUYWdOYW1lKFNWR05hbWVzOjpnbHlwaFRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0dseXBo
RWxlbWVudD4gU1ZHR2x5cGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0dseXBoRWxlbWVudD4gU1ZHR2x5cGhF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHR2x5cGhFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHR2x5cGhFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIHZvaWQgU1ZHR2x5cGhFbGVtZW50OjppbnZhbGlk
YXRlR2x5cGhDYWNoZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCShy
ZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgU1ZHRm9udERhdGE7CiAKIGNs
YXNzIFNWR0dseXBoRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdHbHlwaEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR0dseXBoRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgU1ZHR2x5cGgg
YnVpbGRHbHlwaElkZW50aWZpZXIoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dseXBoUmVmRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dseXBoUmVmRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw5ICs1
MCw5IEBAIGlubGluZSBTVkdHbHlwaFJlZkVsZW1lbnQ6OlNWR0dseXBoUmVmRWwKICAgICByZWdp
c3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0dseXBoUmVmRWxlbWVudCgpOwogfQogCi1QYXNz
UmVmUHRyPFNWR0dseXBoUmVmRWxlbWVudD4gU1ZHR2x5cGhSZWZFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0ds
eXBoUmVmRWxlbWVudD4gU1ZHR2x5cGhSZWZFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU1ZHR2x5cGhSZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHR2x5cGhSZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CiAKIGJvb2wgU1ZHR2x5cGhSZWZFbGVtZW50OjpoYXNWYWxpZEdseXBoRWxlbWVudChTdHJpbmcm
IGdseXBoTmFtZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVt
ZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJl
ZkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBTVkdHbHlwaFJlZkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVu
Y2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0dseXBoUmVmRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8
U1ZHR2x5cGhSZWZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKICAgICBib29sIGhhc1ZhbGlkR2x5cGhFbGVtZW50KFN0cmluZyYgZ2x5cGhOYW1lKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0hLZXJuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0hLZXJuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdIS2VybkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw5ICszNiw5IEBA
IGlubGluZSBTVkdIS2VybkVsZW1lbnQ6OlNWR0hLZXJuRWxlbWVudCgKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6aGtlcm5UYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdIS2VybkVs
ZW1lbnQ+IFNWR0hLZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdIS2VybkVsZW1lbnQ+IFNWR0hLZXJuRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0hLZXJuRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0hLZXJuRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IFNWR0hLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIHJvb3RQYXJl
bnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCShyZXZpc2lvbiAxNzgw
MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdIS2Vy
bkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHSEtlcm5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdIS2VybkVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgYnVpbGRIb3Jpem9udGFs
S2VybmluZ1BhaXIoU1ZHS2VybmluZ1BhaXImIGtlcm5pbmdQYWlyKSBjb25zdDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02Nyw5ICs2Nyw5IEBAIGlubGluZSBTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxlbWVudCgK
ICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ltYWdlRWxlbWVudCgpOwogfQog
Ci1QYXNzUmVmUHRyPFNWR0ltYWdlRWxlbWVudD4gU1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR0lt
YWdlRWxlbWVudD4gU1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U1ZHSW1hZ2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHSW1hZ2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZH
SW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBTVkdJbWFnZUVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgU1ZHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdVUklSZWZlcmVuY2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0lt
YWdlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAg
IHN0YXRpYyBSZWY8U1ZHSW1hZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw5ICs1OSw5IEBAIGlubGluZSBTVkdMaW5l
RWxlbWVudDo6U1ZHTGluZUVsZW1lbnQoY28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGll
c0ZvclNWR0xpbmVFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHTGluZUVsZW1lbnQ+IFNW
R0xpbmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorUmVmPFNWR0xpbmVFbGVtZW50PiBTVkdMaW5lRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0xpbmVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGluZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAogYm9vbCBTVkdMaW5lRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGluZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgU1ZHTGluZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVt
ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTGluZUVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPFNWR0xpbmVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHTGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDkg
KzY1LDkgQEAgaW5saW5lIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZQogICAgIHJl
Z2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KCk7CiB9
CiAKLVBhc3NSZWZQdHI8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PiBTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCitSZWY8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PiBTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3
IEBAIHN0cnVjdCBMaW5lYXJHcmFkaWVudEF0dHJpYnV0ZXM7CiAKIGNsYXNzIFNWR0xpbmVhckdy
YWRpZW50RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdHcmFkaWVudEVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0xpbmVhckdyYWRpZW50RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKICAgICBib29sIGNvbGxlY3RHcmFkaWVudEF0dHJpYnV0ZXMoTGluZWFyR3JhZGllbnRB
dHRyaWJ1dGVzJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsOSBAQCBpbmxpbmUgU1ZHTVBhdGhFbGVt
ZW50OjpTVkdNUGF0aEVsZW1lbnQoCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JT
VkdNUGF0aEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdNUGF0aEVsZW1lbnQ+IFNWR01Q
YXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxTVkdNUGF0aEVsZW1lbnQ+IFNWR01QYXRoRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR01QYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01QYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiBTVkdNUGF0aEVsZW1lbnQ6On5TVkdNUGF0aEVsZW1lbnQoKQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIFNWR01QYXRoRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkcKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTVBhdGhFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdN
UGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAog
ICAgIHZpcnR1YWwgflNWR01QYXRoRWxlbWVudCgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDkgKzg2LDkg
QEAgaW5saW5lIFNWR01hcmtlckVsZW1lbnQ6OlNWR01hcmtlckVsZW1lbgogICAgIHJlZ2lzdGVy
QW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHTWFya2VyRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRy
PFNWR01hcmtlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHTWFya2VyRWxlbWVu
dD4gU1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR01hcmtl
ckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdNYXJrZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgU1ZHTWFya2VyRWxlbWVudDo6b3JpZW50VHlwZUlkZW50aWZpZXIoKQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMs
NyArMTEzLDcgQEAgcHVibGljOgogICAgICAgICBTVkdfTUFSS0VSX09SSUVOVF9BTkdMRSA9IFNW
R01hcmtlck9yaWVudEFuZ2xlCiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR01h
cmtlckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPFNWR01hcmtlckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAogICAgIEFmZmluZVRyYW5zZm9ybSB2aWV3Qm94VG9WaWV3VHJhbnNm
b3JtKGZsb2F0IHZpZXdXaWR0aCwgZmxvYXQgdmlld0hlaWdodCkgY29uc3Q7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIs
OSArNzIsOSBAQCBpbmxpbmUgU1ZHTWFza0VsZW1lbnQ6OlNWR01hc2tFbGVtZW50KGNvCiAgICAg
cmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdNYXNrRWxlbWVudCgpOwogfQogCi1QYXNz
UmVmUHRyPFNWR01hc2tFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdNYXNrRWxlbWVu
dD4gU1ZHTWFza0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdNYXNrRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01h
c2tFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHTWFza0VsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw3IEBAIGNsYXNzIFNWR01hc2tFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1Rlc3RzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTWFza0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR01hc2tFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIGFk
ZENsaWVudFJlbmRlckxheWVyKFJlbmRlckxheWVyKik7CiAgICAgdm9pZCByZW1vdmVDbGllbnRS
ZW5kZXJMYXllcihSZW5kZXJMYXllciopOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01l
dGFkYXRhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01l
dGFkYXRhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNZXRhZGF0YUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBA
IGlubGluZSBTVkdNZXRhZGF0YUVsZW1lbnQ6OlNWR01ldGFkYXRhRWwKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6bWV0YWRhdGFUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdNZXRh
ZGF0YUVsZW1lbnQ+IFNWR01ldGFkYXRhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdNZXRhZGF0YUVsZW1lbnQ+
IFNWR01ldGFkYXRhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR01ldGFk
YXRhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR01ldGFkYXRhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdNZXRhZGF0
YUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHTWV0YWRhdGFFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdNZXRhZGF0YUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdN
ZXRhZGF0YUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAgaW5saW5lIFNWR01pc3NpbmdHbHlw
aEVsZW1lbnQ6OlNWR01pc3NpbgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjptaXNz
aW5nX2dseXBoVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHTWlzc2luZ0dseXBoRWxlbWVudD4g
U1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdNaXNzaW5nR2x5cGhFbGVtZW50PiBTVkdN
aXNzaW5nR2x5cGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR01pc3NpbmdHbHlwaEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCShyZXZp
c2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU1ZHTWlzc2luZ0dseXBoRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdNaXNzaW5nR2x5cGhFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJl
ZjxTVkdNaXNzaW5nR2x5cGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgU1ZHTWlzc2luZ0dseXBoRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhF
bGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTEsOSArOTEsOSBAQCBpbmxpbmUgU1ZH
UGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3Bl
cnRpZXNGb3JTVkdQYXRoRWxlbWVudCgpOwogfQogCi1SZWZQdHI8U1ZHUGF0aEVsZW1lbnQ+IFNW
R1BhdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorUmVmPFNWR1BhdGhFbGVtZW50PiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1BhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAogZmxvYXQgU1ZHUGF0aEVsZW1lbnQ6OmdldFRvdGFsTGVuZ3RoKCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyAr
NTUsNyBAQCBjbGFzcyBTVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjsKIGNsYXNzIFNWR1Bh
dGhFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0dyYXBoaWNzRWxlbWVudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8U1ZHUGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1BhdGhFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgCiAgICAgZmxv
YXQgZ2V0VG90YWxMZW5ndGgoKTsKICAgICBTVkdQb2ludCBnZXRQb2ludEF0TGVuZ3RoKGZsb2F0
IGRpc3RhbmNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNw
cAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsOSArODYsOSBAQCBpbmxpbmUgU1ZHUGF0dGVy
bkVsZW1lbnQ6OlNWR1BhdHRlcm5FbGVtCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNG
b3JTVkdQYXR0ZXJuRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR1BhdHRlcm5FbGVtZW50
PiBTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdQYXR0ZXJuRWxlbWVudD4gU1ZHUGF0dGVybkVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQYXR0ZXJuRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdHRlcm5FbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHUGF0dGVybkVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NSw3ICs0NSw3IEBAIGNsYXNzIFNWR1BhdHRlcm5FbGVtZW50IGZpbmFsIDogcHVibGljIFMK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdG
aXRUb1ZpZXdCb3ggewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhdHRlcm5F
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxTVkdQYXR0ZXJuRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiAgICAgdm9pZCBjb2xsZWN0UGF0dGVybkF0dHJpYnV0ZXMoUGF0dGVybkF0
dHJpYnV0ZXMmKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlnb25F
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9s
eWdvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBAIGlubGluZSBT
VkdQb2x5Z29uRWxlbWVudDo6U1ZHUG9seWdvbkVsZW0KICAgICBBU1NFUlQoaGFzVGFnTmFtZShT
VkdOYW1lczo6cG9seWdvblRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR1BvbHlnb25FbGVtZW50
PiBTVkdQb2x5Z29uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdQb2x5Z29uRWxlbWVudD4gU1ZHUG9seWdvbkVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQb2x5Z29uRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvbHlnb25FbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5Z29uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5Z29uRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9seWdvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1BvbHlnb25FbGVtZW50IGZpbmFsIDogcHVi
bGljIFNWR1BvbHlFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQ
b2x5Z29uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBSZWY8U1ZHUG9seWdvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdQb2x5Z29uRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5bGluZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5bGluZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOSArMzEs
OSBAQCBpbmxpbmUgU1ZHUG9seWxpbmVFbGVtZW50OjpTVkdQb2x5bGluZUVsCiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBvbHlsaW5lVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZH
UG9seWxpbmVFbGVtZW50PiBTVkdQb2x5bGluZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHUG9seWxpbmVFbGVt
ZW50PiBTVkdQb2x5bGluZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQ
b2x5bGluZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdQb2x5bGluZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUG9s
eWxpbmVFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR1BvbHlFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQb2x5bGluZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1BvbHlsaW5lRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgog
ICAgIFNWR1BvbHlsaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsOSArNzEsOSBAQCBpbmxpbmUg
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdSYWRpCiAgICAgcmVnaXN0ZXJBbmltYXRlZFBy
b3BlcnRpZXNGb3JTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIFNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5o
CShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgc3RydWN0IFJhZGlh
bEdyYWRpZW50QXR0cmlidXRlczsKIAogY2xhc3MgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50IGZp
bmFsIDogcHVibGljIFNWR0dyYWRpZW50RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wg
Y29sbGVjdEdyYWRpZW50QXR0cmlidXRlcyhSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZXMmKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02Niw5ICs2Niw5IEBAIGlubGluZSBTVkdSZWN0RWxlbWVudDo6U1ZHUmVjdEVsZW1lbnQo
Y28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1JlY3RFbGVtZW50KCk7CiB9
CiAKLVBhc3NSZWZQdHI8U1ZHUmVjdEVsZW1lbnQ+IFNWR1JlY3RFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR1Jl
Y3RFbGVtZW50PiBTVkdSZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNW
R1JlY3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHUmVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBTVkdSZWN0
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHUmVjdEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUmVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1JlY3RFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
U1ZHUmVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1LDkg
Kzk1LDkgQEAgaW5saW5lIFNWR1NWR0VsZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29ucwogICAgIGRv
Y3VtZW50LnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKIH0K
IAotUGFzc1JlZlB0cjxTVkdTVkdFbGVtZW50PiBTVkdTVkdFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPFNWR1NWR0Vs
ZW1lbnQ+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTVkdF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
U1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBTVkdTVkdFbGVtZW50Ojp+U1ZH
U1ZHRWxlbWVudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHJldmlzaW9u
IDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU1ZHU1ZHRWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBTVkdHcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdC
b3gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1pvb21BbmRQYW4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NWR0VsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1NWR0VsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5n
IFNWR0dyYXBoaWNzRWxlbWVudDo6cmVmOwogICAgIHVzaW5nIFNWR0dyYXBoaWNzRWxlbWVudDo6
ZGVyZWY7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDkgKzUxLDkgQEAgaW5saW5lIFNWR1NjcmlwdEVsZW1lbnQ6
OlNWR1NjcmlwdEVsZW1lbgogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHU2Ny
aXB0RWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR1NjcmlwdEVsZW1lbnQ+IFNWR1Njcmlw
dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQsIGJvb2wgaW5zZXJ0ZWRCeVBhcnNlcikKK1JlZjxTVkdTY3JpcHRFbGVtZW50PiBT
VkdTY3JpcHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIGluc2VydGVkQnlQYXJzZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBpbnNlcnRlZEJ5
UGFyc2VyLCBmYWxzZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1NjcmlwdEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQsIGluc2VydGVkQnlQYXJzZXIsIGZhbHNlKSk7CiB9CiAKIGJv
b2wgU1ZHU2NyaXB0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgJ
KHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgU1ZHU2NyaXB0RWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTVgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1Ymxp
YyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICwgcHVibGljIFNjcmlwdEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR1NjcmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOworICAgIHN0YXRpYyBSZWY8U1ZHU2NyaXB0
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2Fz
SW5zZXJ0ZWRCeVBhcnNlcik7CiAKIHByaXZhdGU6CiAgICAgU1ZHU2NyaXB0RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJv
b2wgYWxyZWFkeVN0YXJ0ZWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNw
cAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw5ICszMiw5IEBAIGlubGluZSBTVkdTZXRFbGVtZW50
OjpTVkdTZXRFbGVtZW50KGNvbnMKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0
VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHU2V0RWxlbWVudD4gU1ZHU2V0RWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1Jl
ZjxTVkdTZXRFbGVtZW50PiBTVkdTZXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHU2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1NldEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogdm9pZCBTVkdT
ZXRFbGVtZW50Ojp1cGRhdGVBbmltYXRpb25Nb2RlKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nl
dEVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nl
dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAvLyBTVkdBbmltYXRlRWxlbWVudCBpbXBsZW1lbnRzIHN1cGVyc2V0IG9mIHRoZSBm
dW5jdGlvbmFsaXR5LgogY2xhc3MgU1ZHU2V0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdBbmlt
YXRlRWxlbWVudEJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NldEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPFNWR1NldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00OCw5ICs0OCw5IEBAIGlubGluZSBTVkdTdG9wRWxlbWVudDo6
U1ZHU3RvcEVsZW1lbnQoY28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1N0
b3BFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHU3RvcEVsZW1lbnQ+IFNWR1N0b3BFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQorUmVmPFNWR1N0b3BFbGVtZW50PiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNWR1N0b3BFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RvcEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
IAogYm9vbCBTVkdTdG9wRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAko
cmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdTdG9wRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdTdG9wRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHU3RvcEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIENvbG9yIHN0b3BD
b2xvckluY2x1ZGluZ09wYWNpdHkoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0eWxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0Niw5IEBAIFNW
R1N0eWxlRWxlbWVudDo6flNWR1N0eWxlRWxlbWVudCgpCiAgICAgbV9zdHlsZVNoZWV0T3duZXIu
Y2xlYXJEb2N1bWVudERhdGEoZG9jdW1lbnQoKSwgKnRoaXMpOwogfQogCi1QYXNzUmVmUHRyPFNW
R1N0eWxlRWxlbWVudD4gU1ZHU3R5bGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK1Jl
ZjxTVkdTdHlsZUVsZW1lbnQ+IFNWR1N0eWxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTdHlsZUVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0
eWxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSk7CiB9CiAKIGJv
b2wgU1ZHU3R5bGVFbGVtZW50OjpkaXNhYmxlZCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3R5bGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdTdHlsZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
U1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3R5bGVFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVk
QnlQYXJzZXIpOworICAgIHN0YXRpYyBSZWY8U1ZHU3R5bGVFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZp
cnR1YWwgflNWR1N0eWxlRWxlbWVudCgpOwogCiAgICAgQ1NTU3R5bGVTaGVldCogc2hlZXQoKSBj
b25zdCB7IHJldHVybiBtX3N0eWxlU2hlZXRPd25lci5zaGVldCgpOyB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQy
LDkgKzQyLDkgQEAgaW5saW5lIFNWR1N3aXRjaEVsZW1lbnQ6OlNWR1N3aXRjaEVsZW1lbgogICAg
IHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHU3dpdGNoRWxlbWVudCgpOwogfQogCi1Q
YXNzUmVmUHRyPFNWR1N3aXRjaEVsZW1lbnQ+IFNWR1N3aXRjaEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHU3dp
dGNoRWxlbWVudD4gU1ZHU3dpdGNoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNWR1N3aXRjaEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdTd2l0Y2hFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wg
U1ZHU3dpdGNoRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBj
aGlsZCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAkocmV2
aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBTVkdTd2l0Y2hFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0dyYXBoaWNzRWxlbWVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3dpdGNoRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBS
ZWY8U1ZHU3dpdGNoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiBwcml2YXRlOgogICAgIFNWR1N3aXRjaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDkgKzQ4LDkgQEAgaW5saW5lIFNWR1N5bWJv
bEVsZW1lbnQ6OlNWR1N5bWJvbEVsZW1lbgogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVz
Rm9yU1ZHU3ltYm9sRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR1N5bWJvbEVsZW1lbnQ+
IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCitSZWY8U1ZHU3ltYm9sRWxlbWVudD4gU1ZHU3ltYm9sRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1N5bWJvbEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTeW1ib2xFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHU3ltYm9sRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0
LDcgQEAgY2xhc3MgU1ZHU3ltYm9sRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdCb3gg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1N5bWJvbEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1N5
bWJvbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAog
cHJpdmF0ZToKICAgICBTVkdTeW1ib2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCwxMSArNDgsMTEgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJP
UEVSVElFUyhTVkdUUgogICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElF
UwogCi1QYXNzUmVmUHRyPFNWR1RSZWZFbGVtZW50PiBTVkdUUmVmRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdU
UmVmRWxlbWVudD4gU1ZHVFJlZkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPFNWR1RSZWZFbGVtZW50
PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IFNWR1RSZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CisgICAgUmVmPFNWR1RSZWZFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYoKm5ldyBTVkdU
UmVmRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIGVsZW1lbnQtPmVuc3VyZVVzZXJB
Z2VudFNoYWRvd1Jvb3QoKTsKLSAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CisgICAgcmV0
dXJuIGVsZW1lbnQ7CiB9CiAKIGNsYXNzIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyIDogcHVi
bGljIEV2ZW50TGlzdGVuZXIgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgJ
KHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIGNsYXNzIFNWR1RSZWZUYXJnZXRFdmVu
dExpc3RlbmVyOwogY2xhc3MgU1ZHVFJlZkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R1VSSVJlZmVyZW5jZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVFJlZkVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPFNWR1RSZWZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90aWZ5U3VidHJlZUlu
c2VydGlvbnMoQ29udGFpbmVyTm9kZSopIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RTcGFuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5IEBA
IGlubGluZSBTVkdUU3BhbkVsZW1lbnQ6OlNWR1RTcGFuRWxlbWVudCgKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6dHNwYW5UYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdUU3BhbkVs
ZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdUU3BhbkVsZW1lbnQ+IFNWR1RTcGFuRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RTcGFuRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RTcGFuRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFNw
YW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHVFNwYW5F
bGVtZW50IGZpbmFsIDogcHVibGljIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1RTcGFuRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHVFNwYW5FbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAg
ICAgU1ZHVFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzgwMDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw5ICszNyw5IEBAIGlubGluZSBTVkdUZXh0RWxlbWVudDo6U1ZHVGV4dEVsZW1lbnQoY28K
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6dGV4dFRhZykpOwogfQogCi1QYXNzUmVm
UHRyPFNWR1RleHRFbGVtZW50PiBTVkdUZXh0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdUZXh0RWxlbWVudD4g
U1ZHVGV4dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdUZXh0RWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RleHRF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIC8vIFdlIG92ZXJyaWRlIFNWR0dyYXBo
aWNzOjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgc28gdGhhdCB0aGUgdHJhbnNmb3JtLW9yaWdp
bgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHVGV4dEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVGV4dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFNWR1RleHRFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIEFmZmlu
ZVRyYW5zZm9ybSBhbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
NzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTUsOSArNTUsOSBAQCBpbmxpbmUgU1ZHVGV4dFBhdGhFbGVtZW50OjpT
VkdUZXh0UGF0aEVsCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdUZXh0UGF0
aEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdUZXh0UGF0aEVsZW1lbnQ+IFNWR1RleHRQ
YXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxTVkdUZXh0UGF0aEVsZW1lbnQ+IFNWR1RleHRQYXRoRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RleHRQYXRoRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RleHRQYXRoRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBTVkdUZXh0UGF0aEVsZW1lbnQ6On5TVkdUZXh0UGF0
aEVsZW1lbnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAko
cmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAgICBU
RVhUUEFUSF9TUEFDSU5HVFlQRV9FWEFDVCA9IFNWR1RleHRQYXRoU3BhY2luZ0V4YWN0CiAgICAg
fTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1RleHRQYXRoRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8U1ZHVGV4dFBh
dGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90aWZ5U3VidHJlZUluc2VydGlvbnMoQ29u
dGFpbmVyTm9kZSopIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxl
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRs
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw5ICszMiw5IEBAIGlubGluZSBTVkdU
aXRsZUVsZW1lbnQ6OlNWR1RpdGxlRWxlbWVudCgKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdO
YW1lczo6dGl0bGVUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdUaXRsZUVsZW1lbnQ+IFNWR1Rp
dGxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxTVkdUaXRsZUVsZW1lbnQ+IFNWR1RpdGxlRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RpdGxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RpdGxlRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IFNWR1RpdGxl
RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIHJvb3RQYXJlbnQpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcg
KzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdUaXRsZUVsZW1lbnQgZmlu
YWwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHVGl0bGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CisgICAgc3RhdGljIFJlZjxTVkdUaXRsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBTVkdUaXRsZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VW5rbm93bkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5r
bm93bkVsZW1lbnQuaAkocmV2aXNpb24gMTc4MDA1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1Vua25vd25FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogLy8gZmFsc2UgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGF0dGVtcHQgdG8g
cmVuZGVyIHN1Y2ggZWxlbWVudHMuCiBjbGFzcyBTVkdVbmtub3duRWxlbWVudCBmaW5hbCA6IHB1
YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdVbmtu
b3duRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPFNWR1Vua25vd25FbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdVbmtub3duRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdVbmtub3duRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsMTIgKzk1LDEyIEBA
IGlubGluZSBTVkdVc2VFbGVtZW50OjpTVkdVc2VFbGVtZW50KGNvbnMKICAgICByZWdpc3RlckFu
aW1hdGVkUHJvcGVydGllc0ZvclNWR1VzZUVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdV
c2VFbGVtZW50PiBTVkdVc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpCitSZWY8
U1ZHVXNlRWxlbWVudD4gU1ZHVXNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKQog
ewogICAgIC8vIEFsd2F5cyBidWlsZCBhICNzaGFkb3ctcm9vdCBmb3IgU1ZHVXNlRWxlbWVudC4K
LSAgICBSZWZQdHI8U1ZHVXNlRWxlbWVudD4gdXNlID0gYWRvcHRSZWYobmV3IFNWR1VzZUVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQsIHdhc0luc2VydGVkQnlQYXJzZXIpKTsKKyAgICBSZWY8U1ZH
VXNlRWxlbWVudD4gdXNlID0gYWRvcHRSZWYoKm5ldyBTVkdVc2VFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50LCB3YXNJbnNlcnRlZEJ5UGFyc2VyKSk7CiAgICAgdXNlLT5lbnN1cmVVc2VyQWdlbnRT
aGFkb3dSb290KCk7Ci0gICAgcmV0dXJuIHVzZS5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHVzZTsK
IH0KIAogU1ZHVXNlRWxlbWVudDo6flNWR1VzZUVsZW1lbnQoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5oCShyZXZpc2lvbiAxNzgwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFNW
R1VzZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHR3IKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1YmxpYyBDYWNoZWRTVkdEb2N1bWVudENsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8U1ZHVXNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlcik7CisgICAgc3RhdGljIFJlZjxTVkdVc2VF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJ
bnNlcnRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5TVkdVc2VFbGVtZW50KCk7CiAKICAgICBT
VkdFbGVtZW50SW5zdGFuY2UqIGluc3RhbmNlUm9vdCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZLZXJuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZLZXJuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWS2VybkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICszNSw5IEBA
IGlubGluZSBTVkdWS2VybkVsZW1lbnQ6OlNWR1ZLZXJuRWxlbWVudCgKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6dmtlcm5UYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdWS2VybkVs
ZW1lbnQ+IFNWR1ZLZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdWS2VybkVsZW1lbnQ+IFNWR1ZLZXJuRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1ZLZXJuRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ZLZXJuRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IFNWR1ZLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIHJvb3RQYXJl
bnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCShyZXZpc2lvbiAxNzgw
MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdWS2Vy
bkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHVktlcm5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdWS2VybkVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgYnVpbGRWZXJ0aWNhbEtl
cm5pbmdQYWlyKFNWR0tlcm5pbmdQYWlyJiBrZXJuaW5nUGFpcikgY29uc3Q7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4MDA1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEs
OSArNTEsOSBAQCBpbmxpbmUgU1ZHVmlld0VsZW1lbnQ6OlNWR1ZpZXdFbGVtZW50KGNvCiAgICAg
cmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdWaWV3RWxlbWVudCgpOwogfQogCi1QYXNz
UmVmUHRyPFNWR1ZpZXdFbGVtZW50PiBTVkdWaWV3RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxTVkdWaWV3RWxlbWVu
dD4gU1ZHVmlld0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdWaWV3RWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1Zp
ZXdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgU1ZHVmlld0VsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJKHJldmlzaW9uIDE3ODAwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw3IEBAIGNsYXNzIFNWR1ZpZXdFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0ZpdFRvVmlld0JveCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1pvb21BbmRQYW4gewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR1ZpZXdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxTVkdWaWV3RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdXNpbmcgU1ZHRWxlbWVu
dDo6cmVmOwogICAgIHVzaW5nIFNWR0VsZW1lbnQ6OmRlcmVmOwo=
</data>
<flag name="review"
          id="269056"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>