<?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>34877</bug_id>
          
          <creation_ts>2010-02-11 21:46:20 -0800</creation_ts>
          <short_desc>Rename underscored identifiers in CSSParser.cpp</short_desc>
          <delta_ts>2010-02-11 22:42:32 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Yuzo Fujishima">yuzo</reporter>
          <assigned_to name="Yuzo Fujishima">yuzo</assigned_to>
          <cc>hamaji</cc>
    
    <cc>hayato</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>189932</commentid>
    <comment_count>0</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-11 21:46:20 -0800</bug_when>
    <thetext>WebCore/css/CSSParser.cpp contains underscored identifiers. They should be renamed.

WebCore/css/CSSParser.cpp:574:  valid_primitive is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/css/CSSParser.cpp:1079:  is_valid is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]

Note:
yy_* are handled by https://bugs.webkit.org/show_bug.cgi?id=34067 and https://bugs.webkit.org/show_bug.cgi?id=34787.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189933</commentid>
    <comment_count>1</comment_count>
      <attachid>48622</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-11 21:56:29 -0800</bug_when>
    <thetext>Created attachment 48622
Rename underscored identifiers in WebCore/css/CSSParser.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189934</commentid>
    <comment_count>2</comment_count>
      <attachid>48623</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-11 21:57:50 -0800</bug_when>
    <thetext>Created attachment 48623
Rename underscored identifiers in WebCore/css/CSSParser.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189935</commentid>
    <comment_count>3</comment_count>
      <attachid>48622</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-02-11 21:58:27 -0800</bug_when>
    <thetext>Comment on attachment 48622
Rename underscored identifiers in WebCore/css/CSSParser.cpp.

Looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189936</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-11 22:00:42 -0800</bug_when>
    <thetext>Attachment 48623 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSParser.cpp:776:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:971:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:986:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:994:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1010:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1019:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1034:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1053:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1246:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1270:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1280:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1286:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1461:  Missing spaces around |  [whitespace/operators] [3]
Total errors found: 13


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189937</commentid>
    <comment_count>5</comment_count>
      <attachid>48623</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-02-11 22:01:45 -0800</bug_when>
    <thetext>Comment on attachment 48623
Rename underscored identifiers in WebCore/css/CSSParser.cpp.

&gt; +        WebCore/css/CSSParser.cpp:574:  valid_primitive is incorrectly named. Don&apos;t use
&gt; +        underscores in your identifier names.  [readability/naming] [4]
&gt; +        WebCore/css/CSSParser.cpp:1079:  is_valid is incorrectly named. Don&apos;t use
&gt; +        underscores in your identifier names.  [readability/naming] [4]

I&apos;m not sure if we need these 4 lines in ChangeLog.

&gt; +        No new tests are required.

It would be better to say the reason why we don&apos;t need new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189938</commentid>
    <comment_count>6</comment_count>
      <attachid>48624</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-11 22:04:39 -0800</bug_when>
    <thetext>Created attachment 48624
Rename underscored identifiers in WebCore/css/CSSParser.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189940</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-11 22:06:13 -0800</bug_when>
    <thetext>Attachment 48624 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSParser.cpp:776:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:971:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:986:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:994:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1010:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1019:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1034:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1053:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1246:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1270:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1280:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1286:  Missing spaces around |  [whitespace/operators] [3]
WebCore/css/CSSParser.cpp:1461:  Missing spaces around |  [whitespace/operators] [3]
Total errors found: 13


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189942</commentid>
    <comment_count>8</comment_count>
      <attachid>48626</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-11 22:12:33 -0800</bug_when>
    <thetext>Created attachment 48626
Rename underscored identifiers in WebCore/css/CSSParser.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189943</commentid>
    <comment_count>9</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-11 22:18:30 -0800</bug_when>
    <thetext>Fixed the Change log and new style issues that surfaced after fixing underscored names.

Can you take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189946</commentid>
    <comment_count>10</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-11 22:42:32 -0800</bug_when>
    <thetext>Committed r54703: &lt;http://trac.webkit.org/changeset/54703&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48622</attachid>
            <date>2010-02-11 21:56:29 -0800</date>
            <delta_ts>2010-02-11 21:58:27 -0800</delta_ts>
            <desc>Rename underscored identifiers in WebCore/css/CSSParser.cpp.</desc>
            <filename>bug-34877-20100212145627.patch</filename>
            <type>text/plain</type>
            <size>36342</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IGNhMDc2ODIuLmJhNWUyY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTcxLDcg
KzU3MSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1w
b3J0YW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBib29sIHZhbGlkX3By
aW1pdGl2ZSA9IGZhbHNlOworICAgIGJvb2wgdmFsaWRQcmltaXRpdmUgPSBmYWxzZTsKICAgICBS
ZWZQdHI8Q1NTVmFsdWU+IHBhcnNlZFZhbHVlOwogCiAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxD
U1NQcm9wZXJ0eUlEPihwcm9wSWQpKSB7CkBAIC01ODcsMTMgKzU4NywxMyBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENT
U1Byb3BlcnR5U2l6ZTogICAgICAgICAgICAgICAgIC8vIDxsZW5ndGg+ezEsMn0gfCBhdXRvIHwg
cG9ydHJhaXQgfCBsYW5kc2NhcGUgfCBpbmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3Rl
czogICAgICAgICAgICAgICAvLyBbPHN0cmluZz4gPHN0cmluZz5dKyB8IG5vbmUgfCBpbmhlcml0
CiAgICAgICAgIGlmIChpZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ1NTUHJvcGVydHlVbmljb2RlQmlkaTogICAgICAgICAvLyBub3JtYWwgfCBlbWJlZCB8IGJp
ZGktb3ZlcnJpZGUgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8
fAogICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlRW1iZWQgfHwKICAgICAgICAgICAgICBpZCA9
PSBDU1NWYWx1ZUJpZGlPdmVycmlkZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRy
dWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBvc2l0aW9uOiAgICAgICAgICAgICAvLyBzdGF0aWMgfCBy
ZWxhdGl2ZSB8IGFic29sdXRlIHwgZml4ZWQgfCBpbmhlcml0CkBAIC02MDEsNyArNjAxLDcgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAg
ICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVSZWxhdGl2ZSB8fAogICAgICAgICAgICAgIGlkID09
IENTU1ZhbHVlQWJzb2x1dGUgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZUZpeGVkKQot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5UGFn
ZUJyZWFrQWZ0ZXI6ICAgICAvLyBhdXRvIHwgYWx3YXlzIHwgYXZvaWQgfCBsZWZ0IHwgcmlnaHQg
fCBpbmhlcml0CkBAIC02MTMsMTkgKzYxMywxOSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1
ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1
ZUF2b2lkIHx8CiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVMZWZ0IHx8CiAgICAgICAgICAg
ICAgaWQgPT0gQ1NTVmFsdWVSaWdodCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRy
dWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZ2VCcmVha0luc2lkZTogICAgLy8gYXZvaWQgfCBhdXRv
IHwgaW5oZXJpdAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5CcmVha0luc2lkZToK
ICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZUF2b2lkKQot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5RW1w
dHlDZWxsczogICAgICAgICAgLy8gc2hvdyB8IGhpZGUgfCBpbmhlcml0CiAgICAgICAgIGlmIChp
ZCA9PSBDU1NWYWx1ZVNob3cgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZUhpZGUpCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlDb250
ZW50OiAgICAgICAgICAgICAgLy8gWyA8c3RyaW5nPiB8IDx1cmk+IHwgPGNvdW50ZXI+IHwgYXR0
cihYKSB8IG9wZW4tcXVvdGUgfApAQCAtNjM4LDEyICs2MzgsMTIgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICBpZCA9
PSBDU1NWYWx1ZVByZVdyYXAgfHwKICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlUHJlTGluZSB8
fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVOb3dyYXApCi0gICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlDbGlwOiAgICAgICAgICAgICAgICAg
Ly8gPHNoYXBlPiB8IGF1dG8gfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1
dG8pCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQ
YXJzZXJWYWx1ZTo6RnVuY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VTaGFwZShwcm9w
SWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFrOwpAQCAtNjU0LDE3ICs2NTQsMTcgQEAgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUNhcHRpb25TaWRlOiAgICAgICAgIC8vIHRvcCB8IGJvdHRvbSB8IGxl
ZnQgfCByaWdodCB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTGVmdCB8fCBp
ZCA9PSBDU1NWYWx1ZVJpZ2h0IHx8CiAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZVRvcCB8fCBp
ZCA9PSBDU1NWYWx1ZUJvdHRvbSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7
CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckNvbGxhcHNlOiAgICAgIC8vIGNvbGxhcHNlIHwgc2Vw
YXJhdGUgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUNvbGxhcHNlIHx8IGlk
ID09IENTU1ZhbHVlU2VwYXJhdGUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ1NTUHJvcGVydHlWaXNpYmlsaXR5OiAgICAgICAgICAgLy8gdmlzaWJsZSB8IGhp
ZGRlbiB8IGNvbGxhcHNlIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVWaXNp
YmxlIHx8IGlkID09IENTU1ZhbHVlSGlkZGVuIHx8IGlkID09IENTU1ZhbHVlQ29sbGFwc2UpCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVy
ZmxvdzogewpAQCAtNjc5LDE5ICs2NzksMTkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUo
aW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93
WTogICAgICAgICAgIC8vIHZpc2libGUgfCBoaWRkZW4gfCBzY3JvbGwgfCBhdXRvIHwgbWFycXVl
ZSB8IG92ZXJsYXkgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVZpc2libGUg
fHwgaWQgPT0gQ1NTVmFsdWVIaWRkZW4gfHwgaWQgPT0gQ1NTVmFsdWVTY3JvbGwgfHwgaWQgPT0g
Q1NTVmFsdWVBdXRvIHx8CiAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZU92ZXJsYXkgfHwgaWQg
PT0gQ1NTVmFsdWVXZWJraXRNYXJxdWVlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlUG9zaXRpb246ICAvLyBpbnNpZGUgfCBv
dXRzaWRlIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVJbnNpZGUgfHwgaWQg
PT0gQ1NTVmFsdWVPdXRzaWRlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZToKICAgICAgICAgLy8gU2VlIHNlY3Rpb24g
Q1NTX1BST1BfTElTVF9TVFlMRV9UWVBFIG9mIGZpbGUgQ1NTVmFsdWVLZXl3b3Jkcy5pbgogICAg
ICAgICAvLyBmb3IgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGxpc3Qtc3R5bGUtdHlwZXMuCiAgICAg
ICAgIGlmICgoaWQgPj0gQ1NTVmFsdWVEaXNjICYmIGlkIDw9IENTU1ZhbHVlS2F0YWthbmFJcm9o
YSkgfHwgaWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIENTU1Byb3BlcnR5RGlzcGxheToKQEAgLTcwMyw0MSArNzAzLDQxIEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogI2Vs
c2UKICAgICAgICAgaWYgKChpZCA+PSBDU1NWYWx1ZUlubGluZSAmJiBpZCA8PSBDU1NWYWx1ZVdl
YmtpdElubGluZUJveCkgfHwgaWQgPT0gQ1NTVmFsdWVOb25lKQogI2VuZGlmCi0gICAgICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0
cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlEaXJlY3Rpb246ICAg
ICAgICAgICAgLy8gbHRyIHwgcnRsIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFs
dWVMdHIgfHwgaWQgPT0gQ1NTVmFsdWVSdGwpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0VHJhbnNmb3JtOiAgICAgICAvLyBjYXBpdGFs
aXplIHwgdXBwZXJjYXNlIHwgbG93ZXJjYXNlIHwgbm9uZSB8IGluaGVyaXQKICAgICAgICAgaWYg
KChpZCA+PSBDU1NWYWx1ZUNhcGl0YWxpemUgJiYgaWQgPD0gQ1NTVmFsdWVMb3dlcmNhc2UpIHx8
IGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7
CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUZsb2F0OiAgICAgICAgICAgICAgICAvLyBsZWZ0IHwgcmlnaHQg
fCBub25lIHwgaW5oZXJpdCArIGNlbnRlciBmb3IgYnVnZ3kgQ1NTCiAgICAgICAgIGlmIChpZCA9
PSBDU1NWYWx1ZUxlZnQgfHwgaWQgPT0gQ1NTVmFsdWVSaWdodCB8fAogICAgICAgICAgICAgIGlk
ID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZUNlbnRlcikKLSAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsZWFyOiAgICAgICAgICAg
ICAgICAvLyBub25lIHwgbGVmdCB8IHJpZ2h0IHwgYm90aCB8IGluaGVyaXQKICAgICAgICAgaWYg
KGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZUxlZnQgfHwKICAgICAgICAgICAg
ICBpZCA9PSBDU1NWYWx1ZVJpZ2h0fHwgaWQgPT0gQ1NTVmFsdWVCb3RoKQotICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEFsaWduOgogICAg
ICAgICAvLyBsZWZ0IHwgcmlnaHQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgd2Via2l0X2xlZnQgfCB3
ZWJraXRfcmlnaHQgfCB3ZWJraXRfY2VudGVyIHwgc3RhcnQgfCBlbmQgfCA8c3RyaW5nPiB8IGlu
aGVyaXQKICAgICAgICAgaWYgKChpZCA+PSBDU1NWYWx1ZVdlYmtpdEF1dG8gJiYgaWQgPD0gQ1NT
VmFsdWVXZWJraXRDZW50ZXIpIHx8IGlkID09IENTU1ZhbHVlU3RhcnQgfHwgaWQgPT0gQ1NTVmFs
dWVFbmQgfHwKICAgICAgICAgICAgICB2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1NUUklORykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eU91dGxpbmVTdHlsZTogICAgICAgIC8vICg8Ym9yZGVyLXN0eWxlPiBleGNlcHQg
aGlkZGVuKSB8IGF1dG8gfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8g
fHwgaWQgPT0gQ1NTVmFsdWVOb25lIHx8IChpZCA+PSBDU1NWYWx1ZUluc2V0ICYmIGlkIDw9IENT
U1ZhbHVlRG91YmxlKSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOyAKICAgICAgICAg
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcFN0eWxlOiAgICAgLy8vLyA8Ym9yZGVyLXN0
eWxlPiB8IGluaGVyaXQKQEAgLTc0Niw3ICs3NDYsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VW
YWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5Qm9y
ZGVyTGVmdFN0eWxlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5SdWxlU3R5bGU6
CiAgICAgICAgIGlmIChpZCA+PSBDU1NWYWx1ZU5vbmUgJiYgaWQgPD0gQ1NTVmFsdWVEb3VibGUp
Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlG
b250V2VpZ2h0OiAgLy8gbm9ybWFsIHwgYm9sZCB8IGJvbGRlciB8IGxpZ2h0ZXIgfCAxMDAgfCAy
MDAgfCAzMDAgfCA0MDAgfCA1MDAgfCA2MDAgfCA3MDAgfCA4MDAgfCA5MDAgfCBpbmhlcml0CkBA
IC03NzMsMTMgKzc3MywxMyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElk
LCBib29sIGltcG9ydGFudCkKICAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRl
ckhvcml6b250YWxTcGFjaW5nOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJWZXJ0
aWNhbFNwYWNpbmc6Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwg
Rkxlbmd0aHxGTm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFs
aWRVbml0KHZhbHVlLCBGTGVuZ3RofEZOb25OZWcsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjogICAgICAgIC8vIDxjb2xvcj4gfCBp
bnZlcnQgfCBpbmhlcml0CiAgICAgICAgIC8vIE91dGxpbmUgY29sb3IgaGFzICJpbnZlcnQiIGFz
IGFkZGl0aW9uYWwga2V5d29yZC4KICAgICAgICAgLy8gQWxzbywgd2Ugd2FudCB0byBhbGxvdyB0
aGUgc3BlY2lhbCBmb2N1cyBjb2xvciBldmVuIGluIHN0cmljdCBwYXJzaW5nIG1vZGUuCiAgICAg
ICAgIGlmIChwcm9wSWQgPT0gQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3IgJiYgKGlkID09IENTU1Zh
bHVlSW52ZXJ0IHx8IGlkID09IENTU1ZhbHVlV2Via2l0Rm9jdXNSaW5nQ29sb3IpKSB7Ci0gICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgLyogbm9i
cmVhayAqLwpAQCAtNzk2LDEzICs3OTYsMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUo
aW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRl
eHRGaWxsQ29sb3I6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvcjoK
ICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlV2Via2l0VGV4dCkKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7IC8vIEFsd2F5cyBhbGxvdyB0aGlzLCBldmVuIHdoZW4gc3RyaWN0
IHBhcnNpbmcgaXMgb24sCisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7IC8vIEFs
d2F5cyBhbGxvdyB0aGlzLCBldmVuIHdoZW4gc3RyaWN0IHBhcnNpbmcgaXMgb24sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSB1c2UgdGhpcyBpbiBvdXIg
VUEgc2hlZXRzLgogICAgICAgICBlbHNlIGlmIChpZCA9PSBDU1NWYWx1ZUN1cnJlbnRjb2xvcikK
LSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFBy
aW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKChpZCA+PSBDU1NWYWx1ZUFxdWEgJiYg
aWQgPD0gQ1NTVmFsdWVXaW5kb3d0ZXh0KSB8fCBpZCA9PSBDU1NWYWx1ZU1lbnUgfHwKICAgICAg
ICAgICAgICAoaWQgPj0gQ1NTVmFsdWVXZWJraXRGb2N1c1JpbmdDb2xvciAmJiBpZCA8IENTU1Zh
bHVlV2Via2l0VGV4dCAmJiAhbV9zdHJpY3QpKSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZUNvbG9yKCk7CiAgICAgICAg
ICAgICBpZiAocGFyc2VkVmFsdWUpCkBAIC04NTksOSArODU5LDkgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGlkID0gdmFs
dWUtPmlkOwogICAgICAgICBpZiAoIW1fc3RyaWN0ICYmIHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUhh
bmQpIHsgLy8gTVNJRSA1IGNvbXBhdGliaWxpdHkgOi8KICAgICAgICAgICAgIGlkID0gQ1NTVmFs
dWVQb2ludGVyOwotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIGlmICgodmFsdWUtPmlk
ID49IENTU1ZhbHVlQXV0byAmJiB2YWx1ZS0+aWQgPD0gQ1NTVmFsdWVXZWJraXRHcmFiYmluZykg
fHwgdmFsdWUtPmlkID09IENTU1ZhbHVlQ29weSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVOb25l
KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC05MzksMjcgKzkz
OSwyNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFdpZHRoOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRDb2x1bW5SdWxlV2lkdGg6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1
ZVRoaW4gfHwgaWQgPT0gQ1NTVmFsdWVNZWRpdW0gfHwgaWQgPT0gQ1NTVmFsdWVUaGljaykKLSAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0KTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5TGV0dGVyU3BhY2luZzogICAgICAgLy8gbm9y
bWFsIHwgPGxlbmd0aD4gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdvcmRTcGFjaW5n
OiAgICAgICAgIC8vIG5vcm1hbCB8IDxsZW5ndGg+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQg
PT0gQ1NTVmFsdWVOb3JtYWwpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwor
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0
KTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3Ro
LCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdvcmRC
cmVhazogICAgICAgICAgLy8gbm9ybWFsIHwgYnJlYWstYWxsIHwgYnJlYWstd29yZCAodGhpcyBp
cyBhIGN1c3RvbSBleHRlbnNpb24pCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8
fCBpZCA9PSBDU1NWYWx1ZUJyZWFrQWxsIHx8IGlkID09IENTU1ZhbHVlQnJlYWtXb3JkKQotICAg
ICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V29yZFdy
YXA6ICAgICAgICAgICAvLyBub3JtYWwgfCBicmVhay13b3JkCiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZUJyZWFrV29yZCkKLSAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6ICAgICAg
ICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdApAQCAtOTY4LDMwICs5Njgs
MzAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206ICAgICAgIC8vICAgPGxlbmd0
aD4gfCA8cGVyY2VudGFnZT4KICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQ6ICAgICAg
ICAgLy8vLwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQYWRkaW5nU3RhcnQ6Ci0gICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJj
ZW50LCBtX3N0cmljdCkpOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRV
bml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50LCBtX3N0cmljdCkpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXhIZWlnaHQ6ICAgICAgICAgICAvLyA8bGVuZ3RoPiB8
IDxwZXJjZW50YWdlPiB8IG5vbmUgfCBpbmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1heFdp
ZHRoOiAgICAgICAgICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgbm9uZSB8IGluaGVy
aXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZUludHJp
bnNpYyB8fCBpZCA9PSBDU1NWYWx1ZU1pbkludHJpbnNpYykgewotICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIC8qIG5vYnJlYWsgKi8KICAgICBj
YXNlIENTU1Byb3BlcnR5TWluSGVpZ2h0OiAgICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2Vu
dGFnZT4gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1pbldpZHRoOiAgICAgICAgICAg
IC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0g
Q1NTVmFsdWVJbnRyaW5zaWMgfHwgaWQgPT0gQ1NTVmFsdWVNaW5JbnRyaW5zaWMpCi0gICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAoIWlk
ICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGUGVyY2VudHxGTm9uTmVnLCBtX3N0cmljdCkp
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwg
Rkxlbmd0aHxGUGVyY2VudHxGTm9uTmVnLCBtX3N0cmljdCkpOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U2l6ZToKICAgICAgICAgLy8gPGFic29sdXRlLXNpemU+
IHwgPHJlbGF0aXZlLXNpemU+IHwgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0CiAg
ICAgICAgIGlmIChpZCA+PSBDU1NWYWx1ZVh4U21hbGwgJiYgaWQgPD0gQ1NTVmFsdWVMYXJnZXIp
Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSAodmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0
KSk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICh2YWxpZFVuaXQodmFsdWUsIEZMZW5n
dGh8RlBlcmNlbnR8Rk5vbk5lZywgbV9zdHJpY3QpKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIENTU1Byb3BlcnR5Rm9udFN0eWxlOiAgICAgICAgICAgLy8gbm9ybWFsIHwgaXRhbGljIHwg
b2JsaXF1ZSB8IGluaGVyaXQKQEAgLTEwMDUsMTggKzEwMDUsMTggQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIC8vIDxwZXJj
ZW50YWdlPiB8IDxsZW5ndGg+IHwgaW5oZXJpdAogCiAgICAgICAgIGlmIChpZCA+PSBDU1NWYWx1
ZUJhc2VsaW5lICYmIGlkIDw9IENTU1ZhbHVlV2Via2l0QmFzZWxpbmVNaWRkbGUpCi0gICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAoIWlk
ICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGUGVyY2VudCwgbV9zdHJpY3QpKTsKKyAgICAg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8
RlBlcmNlbnQsIG1fc3RyaWN0KSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUhlaWdodDogICAgICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGF1
dG8gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdpZHRoOiAgICAgICAgICAgICAgICAv
LyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGF1dG8gfCBpbmhlcml0CiAgICAgICAgIGlmIChp
ZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVJbnRyaW5zaWMgfHwgaWQgPT0gQ1NT
VmFsdWVNaW5JbnRyaW5zaWMpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwor
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAvLyAjIyMgaGFuZGxlIG11bHRpbGVuZ3RoIGNhc2Ugd2hlcmUgd2UgYWxsb3cgcmVsYXRp
dmUgdW5pdHMKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0
KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0KSk7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJj
ZW50fEZOb25OZWcsIG1fc3RyaWN0KSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUJvdHRvbTogICAgICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8
IGF1dG8gfCBpbmhlcml0CkBAIC0xMDI5LDM4ICsxMDI5LDM4IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVy
dHlNYXJnaW5MZWZ0OiAgICAgICAgICAvLy8vCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1h
cmdpblN0YXJ0OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2
YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBlcmNlbnQsIG1fc3RyaWN0KSk7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJj
ZW50LCBtX3N0cmljdCkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHla
SW5kZXg6ICAgICAgICAgICAgICAvLyBhdXRvIHwgPGludGVnZXI+IHwgaW5oZXJpdAogICAgICAg
ICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgLyogbm9icmVhayAqLwogICAgIGNhc2UgQ1NTUHJv
cGVydHlPcnBoYW5zOiAgICAgICAgICAgICAgLy8gPGludGVnZXI+IHwgaW5oZXJpdAogICAgIGNh
c2UgQ1NTUHJvcGVydHlXaWRvd3M6ICAgICAgICAgICAgICAgLy8gPGludGVnZXI+IHwgaW5oZXJp
dAogICAgICAgICAvLyAjIyMgbm90IHN1cHBvcnRlZCBsYXRlciBvbgotICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIsIGZhbHNlKSk7Cisg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2Vy
LCBmYWxzZSkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlMaW5lSGVp
Z2h0OiAgICAgICAgICAvLyBub3JtYWwgfCA8bnVtYmVyPiB8IDxsZW5ndGg+IHwgPHBlcmNlbnRh
Z2U+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwpCi0gICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAoIWlk
ICYmIHZhbGlkVW5pdCh2YWx1ZSwgRk51bWJlcnxGTGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1f
c3RyaWN0KSk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0
KHZhbHVlLCBGTnVtYmVyfEZMZW5ndGh8RlBlcmNlbnR8Rk5vbk5lZywgbV9zdHJpY3QpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvdW50ZXJJbmNyZW1lbnQ6ICAgIC8v
IFsgPGlkZW50aWZpZXI+IDxpbnRlZ2VyPj8gXSsgfCBub25lIHwgaW5oZXJpdAogICAgICAgICBp
ZiAoaWQgIT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ291bnRlcihw
cm9wSWQsIDEsIGltcG9ydGFudCk7Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlDb3VudGVyUmVzZXQ6ICAgICAgICAvLyBbIDxpZGVudGlmaWVyPiA8aW50ZWdl
cj4/IF0rIHwgbm9uZSB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkICE9IENTU1ZhbHVlTm9uZSkK
ICAgICAgICAgICAgIHJldHVybiBwYXJzZUNvdW50ZXIocHJvcElkLCAwLCBpbXBvcnRhbnQpOwot
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9
IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250RmFtaWx5Ogog
ICAgICAgICAvLyBbWyA8ZmFtaWx5LW5hbWU+IHwgPGdlbmVyaWMtZmFtaWx5PiBdLF0qIFs8ZmFt
aWx5LW5hbWU+IHwgPGdlbmVyaWMtZmFtaWx5Pl0gfCBpbmhlcml0CkBAIC0xMDczLDExICsxMDcz
LDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdDoK
ICAgICAgICAgLy8gbm9uZSB8IFsgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3Vn
aCB8fCBibGluayBdIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lKSB7
Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB0cnVlOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgUmVmUHRyPENT
U1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsK
LSAgICAgICAgICAgIGJvb2wgaXNfdmFsaWQgPSB0cnVlOwotICAgICAgICAgICAgd2hpbGUgKGlz
X3ZhbGlkICYmIHZhbHVlKSB7CisgICAgICAgICAgICBib29sIGlzVmFsaWQgPSB0cnVlOworICAg
ICAgICAgICAgd2hpbGUgKGlzVmFsaWQgJiYgdmFsdWUpIHsKICAgICAgICAgICAgICAgICBzd2l0
Y2ggKHZhbHVlLT5pZCkgewogICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVCbGluazoKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDg3LDExICsxMDg3LDExIEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAg
ICAgICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZp
ZXIodmFsdWUtPmlkKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGlzX3ZhbGlkID0gZmFsc2U7CisgICAg
ICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKGxpc3QtPmxlbmd0aCgpICYmIGlzX3ZhbGlkKSB7CisgICAgICAgICAg
ICBpZiAobGlzdC0+bGVuZ3RoKCkgJiYgaXNWYWxpZCkgewogICAgICAgICAgICAgICAgIHBhcnNl
ZFZhbHVlID0gbGlzdC5yZWxlYXNlKCk7CiAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5l
eHQoKTsKICAgICAgICAgICAgIH0KQEAgLTExMDAsMTQgKzExMDAsMTQgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAKICAgICBjYXNlIENT
U1Byb3BlcnR5Wm9vbTogICAgICAgICAgLy8gbm9ybWFsIHwgcmVzZXQgfCBkb2N1bWVudCB8IDxu
dW1iZXI+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFs
dWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVSZXNldCB8fCBpZCA9PSBDU1NWYWx1ZURvY3VtZW50
KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXIgfCBGUGVyY2VudCB8IEZOb25O
ZWcsIHRydWUpKTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVu
aXQodmFsdWUsIEZOdW1iZXIgfCBGUGVyY2VudCB8IEZOb25OZWcsIHRydWUpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgQ1NTUHJvcGVydHlUYWJsZUxheW91dDogICAgICAg
ICAvLyBhdXRvIHwgZml4ZWQgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1
dG8gfHwgaWQgPT0gQ1NTVmFsdWVGaXhlZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNyYzogIC8vIE9ubHkgdXNlZCB3aXRoaW4gQGZvbnQt
ZmFjZSwgc28gY2Fubm90IHVzZSBpbmhlcml0IHwgaW5pdGlhbCBvciBiZSAhaW1wb3J0YW50LiAg
VGhpcyBpcyBhIGxpc3Qgb2YgdXJscyBvciBsb2NhbCByZWZlcmVuY2VzLgpAQCAtMTExOSwxMyAr
MTExOSwxMyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGlt
cG9ydGFudCkKICAgICAvKiBDU1MzIHByb3BlcnRpZXMgKi8KICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0QXBwZWFyYW5jZToKICAgICAgICAgaWYgKChpZCA+PSBDU1NWYWx1ZUNoZWNrYm94ICYm
IGlkIDw9IENTU1ZhbHVlVGV4dGFyZWEpIHx8IGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAg
ICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9
IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJpbmRp
bmc6CiAjaWYgRU5BQkxFKFhCTCkKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKLSAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVl
TGlzdD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwogICAg
ICAgICAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbDsKQEAgLTExNTksNyArMTE1OSw3IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJJbWFnZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0TWFza0JveEltYWdlOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHJl
c3VsdDsKICAgICAgICAgICAgIGlmIChwYXJzZUJvcmRlckltYWdlKHByb3BJZCwgaW1wb3J0YW50
LCByZXN1bHQpKSB7CkBAIC0xMTc0LDE1ICsxMTc0LDE1IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21SaWdodFJhZGl1czogewogICAgICAgICBpZiAobnVtICE9IDEgJiYgbnVtICE9
IDIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOwotICAgICAgICBpZiAoIXZhbGlk
X3ByaW1pdGl2ZSkKKyAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZM
ZW5ndGgsIG1fc3RyaWN0KTsKKyAgICAgICAgaWYgKCF2YWxpZFByaW1pdGl2ZSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJz
ZWRWYWx1ZTEgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQ
cmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKXZhbHVlLT51bml0KTsKICAgICAgICAgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTI7CiAgICAgICAgIGlmIChudW0gPT0gMikgewog
ICAgICAgICAgICAgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOwotICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7Ci0gICAg
ICAgICAgICBpZiAoIXZhbGlkX3ByaW1pdGl2ZSkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7CisgICAgICAgICAgICBpZiAo
IXZhbGlkUHJpbWl0aXZlKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIHBhcnNlZFZhbHVlMiA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1
ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpdmFsdWUtPnVuaXQpOwogICAgICAgICB9
IGVsc2UKQEAgLTExOTcsNTkgKzExOTcsNTkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUo
aW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJv
cmRlclJhZGl1czoKICAgICAgICAgcmV0dXJuIHBhcnNlQm9yZGVyUmFkaXVzKHByb3BJZCwgaW1w
b3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZU9mZnNldDoKLSAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7CisgICAg
ICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0U2hhZG93OiAvLyBDU1My
IHByb3BlcnR5LCBkcm9wcGVkIGluIENTUzIuMSwgYmFjayBpbiBDU1MzLCBzbyB0cmVhdCBhcyBD
U1MzCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveFNoYWRvdzoKICAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHJldHVybiBwYXJzZVNoYWRvdyhwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hSZWZsZWN0OgogICAgICAgICBpZiAoaWQg
PT0gQ1NTVmFsdWVOb25lKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgcmV0dXJuIHBhcnNlUmVmbGVjdChwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlPcGFjaXR5OgotICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXIsIG1fc3RyaWN0KTsKKyAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXIsIG1fc3RyaWN0KTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveEFsaWduOgogICAgICAgICBpZiAoaWQg
PT0gQ1NTVmFsdWVTdHJldGNoIHx8IGlkID09IENTU1ZhbHVlU3RhcnQgfHwgaWQgPT0gQ1NTVmFs
dWVFbmQgfHwKICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlQ2VudGVyIHx8IGlkID09IENTU1Zh
bHVlQmFzZWxpbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0Qm94RGlyZWN0aW9uOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVO
b3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVSZXZlcnNlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveExpbmVzOgogICAgICAgICBpZiAo
aWQgPT0gQ1NTVmFsdWVTaW5nbGUgfHwgaWQgPT0gQ1NTVmFsdWVNdWx0aXBsZSkKLSAgICAgICAg
ICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9
IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hPcmll
bnQ6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUhvcml6b250YWwgfHwgaWQgPT0gQ1NTVmFs
dWVWZXJ0aWNhbCB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVJbmxpbmVBeGlzIHx8IGlk
ID09IENTU1ZhbHVlQmxvY2tBeGlzKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveFBhY2s6CiAgICAgICAgIGlmIChpZCA9PSBDU1NW
YWx1ZVN0YXJ0IHx8IGlkID09IENTU1ZhbHVlRW5kIHx8CiAgICAgICAgICAgICBpZCA9PSBDU1NW
YWx1ZUNlbnRlciB8fCBpZCA9PSBDU1NWYWx1ZUp1c3RpZnkpCi0gICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94RmxleDoKLSAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyLCBtX3N0cmljdCk7Cisg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyLCBtX3N0cmlj
dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hGbGV4R3Jv
dXA6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveE9yZGluYWxHcm91cDoKLSAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlcnxGTm9uTmVnLCB0cnVl
KTsKKyAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyfEZO
b25OZWcsIHRydWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
Qm94U2l6aW5nOgotICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSBpZCA9PSBDU1NWYWx1ZUJvcmRl
ckJveCB8fCBpZCA9PSBDU1NWYWx1ZUNvbnRlbnRCb3g7CisgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gaWQgPT0gQ1NTVmFsdWVCb3JkZXJCb3ggfHwgaWQgPT0gQ1NTVmFsdWVDb250ZW50Qm94Owog
ICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sb3JDb3JyZWN0aW9u
OgotICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSBpZCA9PSBDU1NWYWx1ZVNyZ2IgfHwgaWQgPT0g
Q1NTVmFsdWVEZWZhdWx0OworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IGlkID09IENTU1ZhbHVl
U3JnYiB8fCBpZCA9PSBDU1NWYWx1ZURlZmF1bHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRNYXJxdWVlOiB7CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVz
WzVdID0geyBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVEaXJlY3Rpb24sIENTU1Byb3BlcnR5V2Vi
a2l0TWFycXVlZUluY3JlbWVudCwKQEAgLTEyNjEsNzEgKzEyNjEsNzEgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGlmIChp
ZCA9PSBDU1NWYWx1ZUZvcndhcmRzIHx8IGlkID09IENTU1ZhbHVlQmFja3dhcmRzIHx8IGlkID09
IENTU1ZhbHVlQWhlYWQgfHwKICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlUmV2ZXJzZSB8fCBp
ZCA9PSBDU1NWYWx1ZUxlZnQgfHwgaWQgPT0gQ1NTVmFsdWVSaWdodCB8fCBpZCA9PSBDU1NWYWx1
ZURvd24gfHwKICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlVXAgfHwgaWQgPT0gQ1NTVmFsdWVB
dXRvKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZh
bGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hcnF1ZWVJbmNyZW1lbnQ6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVNtYWxs
IHx8IGlkID09IENTU1ZhbHVlTGFyZ2UgfHwgaWQgPT0gQ1NTVmFsdWVNZWRpdW0pCi0gICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxp
ZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBlcmNlbnQsIG1fc3RyaWN0KTsKKyAgICAgICAgICAgIHZh
bGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50LCBtX3N0cmlj
dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3R5
bGU6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVTbGlk
ZSB8fCBpZCA9PSBDU1NWYWx1ZVNjcm9sbCB8fCBpZCA9PSBDU1NWYWx1ZUFsdGVybmF0ZSkKLSAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXJxdWVlUmVwZXRpdGlvbjoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlSW5maW5pdGUpCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyfEZOb25OZWcsIG1fc3RyaWN0KTsKKyAgICAgICAg
ICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlcnxGTm9uTmVnLCBt
X3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJx
dWVlU3BlZWQ6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NW
YWx1ZVNsb3cgfHwgaWQgPT0gQ1NTVmFsdWVGYXN0KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGVGlt
ZXxGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWV8RkludGVnZXJ8Rk5vbk5lZywgbV9zdHJpY3QpOwog
ICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoV0NTUykKICAgICBjYXNlIENTU1Byb3BlcnR5V2Fw
TWFycXVlZURpcjoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTHRyIHx8IGlkID09IENTU1Zh
bHVlUnRsKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdhcE1hcnF1ZWVTdHlsZToKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSB8fCBp
ZCA9PSBDU1NWYWx1ZVNsaWRlIHx8IGlkID09IENTU1ZhbHVlU2Nyb2xsIHx8IGlkID09IENTU1Zh
bHVlQWx0ZXJuYXRlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdhcE1hcnF1ZWVMb29wOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVJbmZp
bml0ZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2
YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0cmljdCk7
CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIg
fCBGTm9uTmVnLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXYXBNYXJxdWVlU3BlZWQ6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBp
ZCA9PSBDU1NWYWx1ZVNsb3cgfHwgaWQgPT0gQ1NTVmFsdWVGYXN0KQotICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZh
bHVlLCBGVGltZSB8IEZJbnRlZ2VyIHwgRk5vbk5lZywgbV9zdHJpY3QpOworICAgICAgICAgICAg
dmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZUaW1lIHwgRkludGVnZXIgfCBGTm9u
TmVnLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFVzZXJEcmFnOiAvLyBhdXRvIHwgbm9uZSB8IGVsZW1lbnQKICAgICAgICAgaWYg
KGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFs
dWVFbGVtZW50KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnk6IC8vIHJlYWQtb25seSB8IHJlYWQtd3JpdGUKICAgICAg
ICAgaWYgKGlkID09IENTU1ZhbHVlUmVhZE9ubHkgfHwgaWQgPT0gQ1NTVmFsdWVSZWFkV3JpdGUg
fHwgaWQgPT0gQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5KQotICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3Q6IC8v
IGF1dG8gfCBub25lIHwgdGV4dAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlk
ID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZVRleHQpCi0gICAgICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dE92ZXJmbG93OiAvLyBjbGlw
IHwgZWxsaXBzaXMKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQ2xpcCB8fCBpZCA9PSBDU1NW
YWx1ZUVsbGlwc2lzKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybToKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9u
ZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gdmFsID0gcGFyc2VUcmFuc2Zvcm0oKTsKICAgICAgICAgICAgIGlmICh2YWwp
IHsKQEAgLTEzNTUsMTUgKzEzNTUsMTUgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50
IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRUcmFuc2Zvcm1TdHlsZToKICAgICAgICAgaWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUZsYXQg
fHwgdmFsdWUtPmlkID09IENTU1ZhbHVlUHJlc2VydmUzZCkKLSAgICAgICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCYWNrZmFjZVZpc2liaWxpdHk6
CiAgICAgICAgIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IHZhbHVlLT5pZCA9
PSBDU1NWYWx1ZUhpZGRlbikKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRQZXJzcGVjdGl2ZToKICAgICAgICAgaWYgKGlkID09IENTU1Zh
bHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8g
QWNjZXB0aW5nIHZhbHVlbGVzcyBudW1iZXJzIGlzIGEgcXVpcmsgb2YgdGhlIC13ZWJraXQgcHJl
Zml4ZWQgdmVyc2lvbiBvZiB0aGUgcHJvcGVydHkuCiAgICAgICAgICAgICBpZiAodmFsaWRVbml0
KHZhbHVlLCBGTnVtYmVyfEZMZW5ndGh8Rk5vbk5lZywgbV9zdHJpY3QpKSB7CkBAIC0xNDMwLDEz
ICsxNDMwLDEzIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5Ub3BDb2xsYXBzZToK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQm90dG9tQ29sbGFwc2U6CiAgICAgICAg
IGlmIChpZCA9PSBDU1NWYWx1ZUNvbGxhcHNlIHx8IGlkID09IENTU1ZhbHVlU2VwYXJhdGUgfHwg
aWQgPT0gQ1NTVmFsdWVEaXNjYXJkKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhyb3VnaE1vZGU6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRleHRPdmVybGluZU1vZGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRVbmRlcmxpbmVN
b2RlOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVDb250aW51b3VzIHx8IGlkID09IENTU1Zh
bHVlU2tpcFdoaXRlU3BhY2UpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwor
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoU3R5bGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVRleHRPdmVybGluZVN0eWxlOgpAQCAtMTQ0NCw1MCArMTQ0NCw1MCBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZVNvbGlkIHx8IGlkID09IENTU1ZhbHVl
RG91YmxlIHx8CiAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZURhc2hlZCB8fCBpZCA9PSBDU1NW
YWx1ZURvdERhc2ggfHwgaWQgPT0gQ1NTVmFsdWVEb3REb3REYXNoIHx8CiAgICAgICAgICAgICBp
ZCA9PSBDU1NWYWx1ZVdhdmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwor
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZzogLy8gYXV0byB8IG9wdGltaXplU3BlZWQgfCBv
cHRpbWl6ZUxlZ2liaWxpdHkgfCBnZW9tZXRyaWNQcmVjaXNpb24KICAgICAgICAgaWYgKGlkID09
IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZU9wdGltaXplc3BlZWQgfHwgaWQgPT0gQ1NT
VmFsdWVPcHRpbWl6ZWxlZ2liaWxpdHkKICAgICAgICAgICAgIHx8IGlkID09IENTU1ZhbHVlR2Vv
bWV0cmljcHJlY2lzaW9uKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhyb3VnaFdpZHRoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlU
ZXh0T3ZlcmxpbmVXaWR0aDoKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFVuZGVybGluZVdpZHRo
OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlTm9ybWFs
IHx8IGlkID09IENTU1ZhbHVlVGhpbiB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVNZWRp
dW0gfHwgaWQgPT0gQ1NTVmFsdWVUaGljaykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZO
dW1iZXJ8Rkxlbmd0aHxGUGVyY2VudCwgbV9zdHJpY3QpOworICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSAhaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyfEZMZW5ndGh8RlBlcmNlbnQs
IG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6ZTog
Ly8gbm9uZSB8IGJvdGggfCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBhdXRvCiAgICAgICAgIGlm
IChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVCb3RoIHx8IGlkID09IENTU1Zh
bHVlSG9yaXpvbnRhbCB8fCBpZCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IGlkID09IENTU1ZhbHVl
QXV0bykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2
YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRDb2x1bW5Db3VudDoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0bykKLSAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
ICFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyIHwgRk5vbk5lZywgZmFsc2UpOworICAg
ICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAhaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdl
ciB8IEZOb25OZWcsIGZhbHNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdENvbHVtbkdhcDogICAgICAgICAvLyBub3JtYWwgfCA8bGVuZ3RoPgogICAgICAgICBp
ZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGggfCBG
Tm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5p
dCh2YWx1ZSwgRkxlbmd0aCB8IEZOb25OZWcsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdENvbHVtbldpZHRoOiAgICAgICAgIC8vIGF1dG8gfCA8
bGVuZ3RoPgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsK
ICAgICAgICAgZWxzZSAvLyBBbHdheXMgcGFyc2UgdGhpcyBwcm9wZXJ0eSBpbiBzdHJpY3QgbW9k
ZSwgc2luY2UgaXQgd291bGQgYmUgYW1iaWd1b3VzIG90aGVyd2lzZSB3aGVuIHVzZWQgaW4gdGhl
ICdjb2x1bW5zJyBzaG9ydGhhbmQgcHJvcGVydHkuCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIHRydWUpOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIHRydWUpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIENTU1Byb3BlcnR5UG9pbnRlckV2ZW50czoKICAgICAgICAgLy8gbm9uZSB8
IHZpc2libGVQYWludGVkIHwgdmlzaWJsZUZpbGwgfCB2aXNpYmxlU3Ryb2tlIHwgdmlzaWJsZSB8
CiAgICAgICAgIC8vIHBhaW50ZWQgfCBmaWxsIHwgc3Ryb2tlIHwgYXV0byB8IGFsbCB8IGluaGVy
aXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlVmlzaWJsZSB8fCBpZCA9PSBDU1NWYWx1ZU5v
bmUgfHwgaWQgPT0gQ1NTVmFsdWVBbGwgfHwgaWQgPT0gQ1NTVmFsdWVBdXRvIHx8CiAgICAgICAg
ICAgICAoaWQgPj0gQ1NTVmFsdWVWaXNpYmxlcGFpbnRlZCAmJiBpZCA8PSBDU1NWYWx1ZVN0cm9r
ZSkpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgIC8v
IEVuZCBvZiBDU1MzIHByb3BlcnRpZXMKQEAgLTE0OTcsNTYgKzE0OTcsNTYgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdExpbmVDbGFtcDoKICAgICAgICAgLy8gV2hlbiBzcGVjaWZ5aW5nIG51
bWJlciBvZiBsaW5lcywgZG9uJ3QgYWxsb3cgMCBhcyBhIHZhbGlkIHZhbHVlCiAgICAgICAgIC8v
IFdoZW4gc3BlY2lmeWluZyBlaXRoZXIgdHlwZSBvZiB1bml0LCByZXF1aXJlIG5vbi1uZWdhdGl2
ZSBpbnRlZ2VycwotICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAoIWlkICYmICh2YWx1ZS0+dW5p
dCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UgfHwgdmFsdWUtPmZWYWx1ZSkg
JiYgdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciB8IEZQZXJjZW50IHwgRk5vbk5lZywgZmFsc2Up
KTsKKyAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmICh2YWx1ZS0+dW5pdCA9PSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UgfHwgdmFsdWUtPmZWYWx1ZSkgJiYgdmFsaWRV
bml0KHZhbHVlLCBGSW50ZWdlciB8IEZQZXJjZW50IHwgRk5vbk5lZywgZmFsc2UpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTaXplQWRqdXN0OgogICAg
ICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAg
ICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRSdGxP
cmRlcmluZzoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTG9naWNhbCB8fCBpZCA9PSBDU1NW
YWx1ZVZpc3VhbCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIAogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRGb250U2l6ZURlbHRhOiAgICAgICAgICAgLy8gPGxlbmd0aD4K
LSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0
cmljdCk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3Ro
LCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE5ic3BNb2RlOiAgICAgLy8gbm9ybWFsIHwgc3BhY2UKICAgICAgICAgaWYgKGlkID09IENTU1Zh
bHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVlU3BhY2UpCi0gICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMaW5lQnJlYWs6ICAgLy8gbm9y
bWFsIHwgYWZ0ZXItd2hpdGUtc3BhY2UKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFs
IHx8IGlkID09IENTU1ZhbHVlQWZ0ZXJXaGl0ZVNwYWNlKQotICAgICAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWF0Y2hOZWFyZXN0TWFpbEJs
b2NrcXVvdGVDb2xvcjogICAvLyBub3JtYWwgfCBtYXRjaAogICAgICAgICBpZiAoaWQgPT0gQ1NT
VmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVNYXRjaCkKLSAgICAgICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEhpZ2hsaWdodDoKICAgICAg
ICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1NUUklORykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIAog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJGaXQ6CiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZUJvcmRlciB8fCBpZCA9PSBDU1NWYWx1ZUxpbmVzKQotICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0U2Vj
dXJpdHk6CiAgICAgICAgIC8vIGRpc2MgfCBjaXJjbGUgfCBzcXVhcmUgfCBub25lIHwgaW5oZXJp
dAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVEaXNjIHx8IGlkID09IENTU1ZhbHVlQ2lyY2xl
IHx8IGlkID09IENTU1ZhbHVlU3F1YXJlfHwgaWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNt
b290aGluZzoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1
ZU5vbmUgCiAgICAgICAgICAgICB8fCBpZCA9PSBDU1NWYWx1ZUFudGlhbGlhc2VkIHx8IGlkID09
IENTU1ZhbHVlU3VicGl4ZWxBbnRpYWxpYXNlZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpAQCAtMTY1NCw3ICsxNjU0LDcg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQp
CiAgICAgICAgIC8vIFsgWyAnZm9udC1zdHlsZScgfHwgJ2ZvbnQtdmFyaWFudCcgfHwgJ2ZvbnQt
d2VpZ2h0JyBdPyAnZm9udC1zaXplJyBbIC8gJ2xpbmUtaGVpZ2h0JyBdPwogICAgICAgICAvLyAn
Zm9udC1mYW1pbHknIF0gfCBjYXB0aW9uIHwgaWNvbiB8IG1lbnUgfCBtZXNzYWdlLWJveCB8IHNt
YWxsLWNhcHRpb24gfCBzdGF0dXMtYmFyIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPj0gQ1NT
VmFsdWVDYXB0aW9uICYmIGlkIDw9IENTU1ZhbHVlU3RhdHVzQmFyKQotICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlRm9udChpbXBvcnRhbnQpOwog
ICAgICAgICBicmVhazsKQEAgLTE2OTYsNyArMTY5Niw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogI2VuZGlmCiAgICAgfQogCi0gICAg
aWYgKHZhbGlkX3ByaW1pdGl2ZSkgeworICAgIGlmICh2YWxpZFByaW1pdGl2ZSkgewogICAgICAg
ICBpZiAoaWQgIT0gMCkKICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZUlkZW50aWZpZXIoaWQpOwogICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykK
</data>
<flag name="review"
          id="31335"
          type_id="1"
          status="+"
          setter="hamaji"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48623</attachid>
            <date>2010-02-11 21:57:50 -0800</date>
            <delta_ts>2010-02-11 22:04:31 -0800</delta_ts>
            <desc>Rename underscored identifiers in WebCore/css/CSSParser.cpp.</desc>
            <filename>bug-34877-20100212145748.patch</filename>
            <type>text/plain</type>
            <size>37225</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzkwYzFjNC4uZTM4YWRmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wMi0xMSAgWXV6byBGdWppc2hp
bWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lIHVuZGVyc2NvcmVkIGlkZW50aWZpZXJzIGluIFdlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAuCisKKyAgICAgICAgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcDo1
NzQ6ICB2YWxpZF9wcmltaXRpdmUgaXMgaW5jb3JyZWN0bHkgbmFtZWQuIERvbid0IHVzZQorICAg
ICAgICB1bmRlcnNjb3JlcyBpbiB5b3VyIGlkZW50aWZpZXIgbmFtZXMuICBbcmVhZGFiaWxpdHkv
bmFtaW5nXSBbNF0KKyAgICAgICAgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcDoxMDc5OiAgaXNf
dmFsaWQgaXMgaW5jb3JyZWN0bHkgbmFtZWQuIERvbid0IHVzZQorICAgICAgICB1bmRlcnNjb3Jl
cyBpbiB5b3VyIGlkZW50aWZpZXIgbmFtZXMuICBbcmVhZGFiaWxpdHkvbmFtaW5nXSBbNF0KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4NzcKKwor
ICAgICAgICBObyBuZXcgdGVzdHMgYXJlIHJlcXVpcmVkLgorCisgICAgICAgICogY3NzL0NTU1Bh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorCiAy
MDEwLTAyLTExICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBjYTA3NjgyLi5iYTVl
MmNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKQEAgLTU3MSw3ICs1NzEsNyBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCi0gICAgYm9vbCB2YWxpZF9wcmltaXRpdmUgPSBmYWxzZTsKKyAgICBib29sIHZh
bGlkUHJpbWl0aXZlID0gZmFsc2U7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBwYXJzZWRWYWx1ZTsK
IAogICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJvcElkKSkgewpAQCAt
NTg3LDEzICs1ODcsMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwg
Ym9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNpemU6ICAgICAgICAgICAgICAg
ICAvLyA8bGVuZ3RoPnsxLDJ9IHwgYXV0byB8IHBvcnRyYWl0IHwgbGFuZHNjYXBlIHwgaW5oZXJp
dAogICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6ICAgICAgICAgICAgICAgLy8gWzxzdHJpbmc+
IDxzdHJpbmc+XSsgfCBub25lIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQpCi0gICAgICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0
cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5VW5pY29kZUJpZGk6ICAg
ICAgICAgLy8gbm9ybWFsIHwgZW1iZWQgfCBiaWRpLW92ZXJyaWRlIHwgaW5oZXJpdAogICAgICAg
ICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1
ZUVtYmVkIHx8CiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVCaWRpT3ZlcnJpZGUpCi0gICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlQb3NpdGlv
bjogICAgICAgICAgICAgLy8gc3RhdGljIHwgcmVsYXRpdmUgfCBhYnNvbHV0ZSB8IGZpeGVkIHwg
aW5oZXJpdApAQCAtNjAxLDcgKzYwMSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGlu
dCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlUmVs
YXRpdmUgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZUFic29sdXRlIHx8CiAgICAgICAg
ICAgICAgaWQgPT0gQ1NTVmFsdWVGaXhlZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZ2VCcmVha0FmdGVyOiAgICAgLy8gYXV0byB8IGFs
d2F5cyB8IGF2b2lkIHwgbGVmdCB8IHJpZ2h0IHwgaW5oZXJpdApAQCAtNjEzLDE5ICs2MTMsMTkg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQp
CiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVBdm9pZCB8fAogICAgICAgICAgICAgIGlkID09
IENTU1ZhbHVlTGVmdCB8fAogICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlUmlnaHQpCi0gICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWdlQnJl
YWtJbnNpZGU6ICAgIC8vIGF2b2lkIHwgYXV0byB8IGluaGVyaXQKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0Q29sdW1uQnJlYWtJbnNpZGU6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1
dG8gfHwgaWQgPT0gQ1NTVmFsdWVBdm9pZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUVtcHR5Q2VsbHM6ICAgICAgICAgIC8vIHNob3cgfCBo
aWRlIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVTaG93IHx8CiAgICAgICAg
ICAgICAgaWQgPT0gQ1NTVmFsdWVIaWRlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Q29udGVudDogICAgICAgICAgICAgIC8vIFsgPHN0cmlu
Zz4gfCA8dXJpPiB8IDxjb3VudGVyPiB8IGF0dHIoWCkgfCBvcGVuLXF1b3RlIHwKQEAgLTYzOCwx
MiArNjM4LDEyIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVQcmVXcmFwIHx8CiAgICAgICAg
ICAgICBpZCA9PSBDU1NWYWx1ZVByZUxpbmUgfHwKICAgICAgICAgICAgIGlkID09IENTU1ZhbHVl
Tm93cmFwKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1By
b3BlcnR5Q2xpcDogICAgICAgICAgICAgICAgIC8vIDxzaGFwZT4gfCBhdXRvIHwgaW5oZXJpdAog
ICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
ZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuIHBhcnNlU2hhcGUocHJvcElkLCBpbXBvcnRhbnQpOwogICAgICAgICBicmVh
azsKQEAgLTY1NCwxNyArNjU0LDE3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBw
cm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlDYXB0aW9uU2lkZTog
ICAgICAgICAvLyB0b3AgfCBib3R0b20gfCBsZWZ0IHwgcmlnaHQgfCBpbmhlcml0CiAgICAgICAg
IGlmIChpZCA9PSBDU1NWYWx1ZUxlZnQgfHwgaWQgPT0gQ1NTVmFsdWVSaWdodCB8fAogICAgICAg
ICAgICAgaWQgPT0gQ1NTVmFsdWVUb3AgfHwgaWQgPT0gQ1NTVmFsdWVCb3R0b20pCi0gICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJDb2xs
YXBzZTogICAgICAvLyBjb2xsYXBzZSB8IHNlcGFyYXRlIHwgaW5oZXJpdAogICAgICAgICBpZiAo
aWQgPT0gQ1NTVmFsdWVDb2xsYXBzZSB8fCBpZCA9PSBDU1NWYWx1ZVNlcGFyYXRlKQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5VmlzaWJpbGl0
eTogICAgICAgICAgIC8vIHZpc2libGUgfCBoaWRkZW4gfCBjb2xsYXBzZSB8IGluaGVyaXQKICAg
ICAgICAgaWYgKGlkID09IENTU1ZhbHVlVmlzaWJsZSB8fCBpZCA9PSBDU1NWYWx1ZUhpZGRlbiB8
fCBpZCA9PSBDU1NWYWx1ZUNvbGxhcHNlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6IHsKQEAgLTY3OSwxOSArNjc5LDE5IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQog
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6ICAgICAgICAgICAvLyB2aXNpYmxlIHwgaGlk
ZGVuIHwgc2Nyb2xsIHwgYXV0byB8IG1hcnF1ZWUgfCBvdmVybGF5IHwgaW5oZXJpdAogICAgICAg
ICBpZiAoaWQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IGlkID09IENTU1ZhbHVlSGlkZGVuIHx8IGlk
ID09IENTU1ZhbHVlU2Nyb2xsIHx8IGlkID09IENTU1ZhbHVlQXV0byB8fAogICAgICAgICAgICAg
aWQgPT0gQ1NTVmFsdWVPdmVybGF5IHx8IGlkID09IENTU1ZhbHVlV2Via2l0TWFycXVlZSkKLSAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RT
dHlsZVBvc2l0aW9uOiAgLy8gaW5zaWRlIHwgb3V0c2lkZSB8IGluaGVyaXQKICAgICAgICAgaWYg
KGlkID09IENTU1ZhbHVlSW5zaWRlIHx8IGlkID09IENTU1ZhbHVlT3V0c2lkZSkKLSAgICAgICAg
ICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9
IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5
cGU6CiAgICAgICAgIC8vIFNlZSBzZWN0aW9uIENTU19QUk9QX0xJU1RfU1RZTEVfVFlQRSBvZiBm
aWxlIENTU1ZhbHVlS2V5d29yZHMuaW4KICAgICAgICAgLy8gZm9yIHRoZSBsaXN0IG9mIHN1cHBv
cnRlZCBsaXN0LXN0eWxlLXR5cGVzLgogICAgICAgICBpZiAoKGlkID49IENTU1ZhbHVlRGlzYyAm
JiBpZCA8PSBDU1NWYWx1ZUthdGFrYW5hSXJvaGEpIHx8IGlkID09IENTU1ZhbHVlTm9uZSkKLSAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eURpc3Bs
YXk6CkBAIC03MDMsNDEgKzcwMyw0MSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQg
cHJvcElkLCBib29sIGltcG9ydGFudCkKICNlbHNlCiAgICAgICAgIGlmICgoaWQgPj0gQ1NTVmFs
dWVJbmxpbmUgJiYgaWQgPD0gQ1NTVmFsdWVXZWJraXRJbmxpbmVCb3gpIHx8IGlkID09IENTU1Zh
bHVlTm9uZSkKICNlbmRpZgotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIENTU1Byb3BlcnR5RGlyZWN0aW9uOiAgICAgICAgICAgIC8vIGx0ciB8IHJ0bCB8IGluaGVy
aXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTHRyIHx8IGlkID09IENTU1ZhbHVlUnRsKQot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4
dFRyYW5zZm9ybTogICAgICAgLy8gY2FwaXRhbGl6ZSB8IHVwcGVyY2FzZSB8IGxvd2VyY2FzZSB8
IG5vbmUgfCBpbmhlcml0CiAgICAgICAgIGlmICgoaWQgPj0gQ1NTVmFsdWVDYXBpdGFsaXplICYm
IGlkIDw9IENTU1ZhbHVlTG93ZXJjYXNlKSB8fCBpZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlGbG9hdDogICAg
ICAgICAgICAgICAgLy8gbGVmdCB8IHJpZ2h0IHwgbm9uZSB8IGluaGVyaXQgKyBjZW50ZXIgZm9y
IGJ1Z2d5IENTUwogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVMZWZ0IHx8IGlkID09IENTU1Zh
bHVlUmlnaHQgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NT
VmFsdWVDZW50ZXIpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q1NTUHJvcGVydHlDbGVhcjogICAgICAgICAgICAgICAgLy8gbm9uZSB8IGxlZnQgfCByaWdodCB8
IGJvdGggfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0g
Q1NTVmFsdWVMZWZ0IHx8CiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVSaWdodHx8IGlkID09
IENTU1ZhbHVlQm90aCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVRleHRBbGlnbjoKICAgICAgICAgLy8gbGVmdCB8IHJpZ2h0IHwgY2VudGVy
IHwganVzdGlmeSB8IHdlYmtpdF9sZWZ0IHwgd2Via2l0X3JpZ2h0IHwgd2Via2l0X2NlbnRlciB8
IHN0YXJ0IHwgZW5kIHwgPHN0cmluZz4gfCBpbmhlcml0CiAgICAgICAgIGlmICgoaWQgPj0gQ1NT
VmFsdWVXZWJraXRBdXRvICYmIGlkIDw9IENTU1ZhbHVlV2Via2l0Q2VudGVyKSB8fCBpZCA9PSBD
U1NWYWx1ZVN0YXJ0IHx8IGlkID09IENTU1ZhbHVlRW5kIHx8CiAgICAgICAgICAgICAgdmFsdWUt
PnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpCi0gICAgICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lU3R5bGU6ICAgICAg
ICAvLyAoPGJvcmRlci1zdHlsZT4gZXhjZXB0IGhpZGRlbikgfCBhdXRvIHwgaW5oZXJpdAogICAg
ICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlTm9uZSB8fCAoaWQg
Pj0gQ1NTVmFsdWVJbnNldCAmJiBpZCA8PSBDU1NWYWx1ZURvdWJsZSkpCi0gICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVl
OwogICAgICAgICBicmVhazsgCiAgICAgICAgIAogICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJU
b3BTdHlsZTogICAgIC8vLy8gPGJvcmRlci1zdHlsZT4gfCBpbmhlcml0CkBAIC03NDYsNyArNzQ2
LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRTdHlsZToKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0Q29sdW1uUnVsZVN0eWxlOgogICAgICAgICBpZiAoaWQgPj0gQ1NTVmFsdWVO
b25lICYmIGlkIDw9IENTU1ZhbHVlRG91YmxlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZl
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFdlaWdodDogIC8vIG5vcm1hbCB8IGJvbGQg
fCBib2xkZXIgfCBsaWdodGVyIHwgMTAwIHwgMjAwIHwgMzAwIHwgNDAwIHwgNTAwIHwgNjAwIHwg
NzAwIHwgODAwIHwgOTAwIHwgaW5oZXJpdApAQCAtNzczLDEzICs3NzMsMTMgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgfQogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJIb3Jpem9udGFsU3BhY2luZzoKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyVmVydGljYWxTcGFjaW5nOgotICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8Rk5vbk5lZywgbV9zdHJpY3QpOwor
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGTm9uTmVn
LCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5l
Q29sb3I6ICAgICAgICAvLyA8Y29sb3I+IHwgaW52ZXJ0IHwgaW5oZXJpdAogICAgICAgICAvLyBP
dXRsaW5lIGNvbG9yIGhhcyAiaW52ZXJ0IiBhcyBhZGRpdGlvbmFsIGtleXdvcmQuCiAgICAgICAg
IC8vIEFsc28sIHdlIHdhbnQgdG8gYWxsb3cgdGhlIHNwZWNpYWwgZm9jdXMgY29sb3IgZXZlbiBp
biBzdHJpY3QgcGFyc2luZyBtb2RlLgogICAgICAgICBpZiAocHJvcElkID09IENTU1Byb3BlcnR5
T3V0bGluZUNvbG9yICYmIChpZCA9PSBDU1NWYWx1ZUludmVydCB8fCBpZCA9PSBDU1NWYWx1ZVdl
YmtpdEZvY3VzUmluZ0NvbG9yKSkgewotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIC8qIG5vYnJlYWsgKi8KQEAgLTc5NiwxMyArNzk2LDEzIEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRUZXh0U3Ryb2tlQ29sb3I6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVdl
YmtpdFRleHQpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOyAvLyBBbHdheXMg
YWxsb3cgdGhpcywgZXZlbiB3aGVuIHN0cmljdCBwYXJzaW5nIGlzIG9uLAorICAgICAgICAgICAg
dmFsaWRQcmltaXRpdmUgPSB0cnVlOyAvLyBBbHdheXMgYWxsb3cgdGhpcywgZXZlbiB3aGVuIHN0
cmljdCBwYXJzaW5nIGlzIG9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gc2luY2Ugd2UgdXNlIHRoaXMgaW4gb3VyIFVBIHNoZWV0cy4KICAgICAgICAgZWxzZSBpZiAo
aWQgPT0gQ1NTVmFsdWVDdXJyZW50Y29sb3IpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNl
IGlmICgoaWQgPj0gQ1NTVmFsdWVBcXVhICYmIGlkIDw9IENTU1ZhbHVlV2luZG93dGV4dCkgfHwg
aWQgPT0gQ1NTVmFsdWVNZW51IHx8CiAgICAgICAgICAgICAgKGlkID49IENTU1ZhbHVlV2Via2l0
Rm9jdXNSaW5nQ29sb3IgJiYgaWQgPCBDU1NWYWx1ZVdlYmtpdFRleHQgJiYgIW1fc3RyaWN0KSkg
ewotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHBhcnNlZFZh
bHVlID0gcGFyc2VDb2xvcigpOwogICAgICAgICAgICAgaWYgKHBhcnNlZFZhbHVlKQpAQCAtODU5
LDkgKzg1OSw5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgICAgICBpZCA9IHZhbHVlLT5pZDsKICAgICAgICAgaWYgKCFtX3N0cmlj
dCAmJiB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVIYW5kKSB7IC8vIE1TSUUgNSBjb21wYXRpYmlsaXR5
IDovCiAgICAgICAgICAgICBpZCA9IENTU1ZhbHVlUG9pbnRlcjsKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAg
ICAgICAgIH0gZWxzZSBpZiAoKHZhbHVlLT5pZCA+PSBDU1NWYWx1ZUF1dG8gJiYgdmFsdWUtPmlk
IDw9IENTU1ZhbHVlV2Via2l0R3JhYmJpbmcpIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUNvcHkg
fHwgdmFsdWUtPmlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIApAQCAtOTM5LDI3ICs5MzksMjcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJv
cmRlckxlZnRXaWR0aDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uUnVsZVdpZHRo
OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVUaGluIHx8IGlkID09IENTU1ZhbHVlTWVkaXVt
IHx8IGlkID09IENTU1ZhbHVlVGhpY2spCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1f
c3RyaWN0KTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBG
TGVuZ3RoLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eUxldHRlclNwYWNpbmc6ICAgICAgIC8vIG5vcm1hbCB8IDxsZW5ndGg+IHwgaW5oZXJpdAogICAg
IGNhc2UgQ1NTUHJvcGVydHlXb3JkU3BhY2luZzogICAgICAgICAvLyBub3JtYWwgfCA8bGVuZ3Ro
PiB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRV
bml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ1NTUHJvcGVydHlXb3JkQnJlYWs6ICAgICAgICAgIC8vIG5vcm1hbCB8IGJy
ZWFrLWFsbCB8IGJyZWFrLXdvcmQgKHRoaXMgaXMgYSBjdXN0b20gZXh0ZW5zaW9uKQogICAgICAg
ICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVCcmVha0FsbCB8fCBp
ZCA9PSBDU1NWYWx1ZUJyZWFrV29yZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRy
dWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdvcmRXcmFwOiAgICAgICAgICAgLy8gbm9ybWFsIHwgYnJl
YWstd29yZAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFs
dWVCcmVha1dvcmQpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q1NTUHJvcGVydHlUZXh0SW5kZW50OiAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdl
PiB8IGluaGVyaXQKQEAgLTk2OCwzMCArOTY4LDMwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZh
bHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRk
aW5nQm90dG9tOiAgICAgICAvLyAgIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVBhZGRpbmdMZWZ0OiAgICAgICAgIC8vLy8KICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0UGFkZGluZ1N0YXJ0OgotICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAoIWlkICYmIHZh
bGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGUGVyY2VudCwgbV9zdHJpY3QpKTsKKyAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGUGVyY2VudCwg
bV9zdHJpY3QpKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5TWF4SGVp
Z2h0OiAgICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBub25lIHwgaW5oZXJp
dAogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXhXaWR0aDogICAgICAgICAgICAvLyA8bGVuZ3RoPiB8
IDxwZXJjZW50YWdlPiB8IG5vbmUgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1
ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVJbnRyaW5zaWMgfHwgaWQgPT0gQ1NTVmFsdWVNaW5JbnRy
aW5zaWMpIHsKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICAvKiBub2JyZWFrICovCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1pbkhlaWdodDogICAg
ICAgICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAgIGNhc2UgQ1NT
UHJvcGVydHlNaW5XaWR0aDogICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8
IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlSW50cmluc2ljIHx8IGlkID09IENT
U1ZhbHVlTWluSW50cmluc2ljKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8
RlBlcmNlbnR8Rk5vbk5lZywgbV9zdHJpY3QpKTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBlcmNlbnR8Rk5vbk5lZywgbV9z
dHJpY3QpKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFNpemU6
CiAgICAgICAgIC8vIDxhYnNvbHV0ZS1zaXplPiB8IDxyZWxhdGl2ZS1zaXplPiB8IDxsZW5ndGg+
IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPj0gQ1NTVmFsdWVYeFNt
YWxsICYmIGlkIDw9IENTU1ZhbHVlTGFyZ2VyKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZl
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0
aHxGUGVyY2VudHxGTm9uTmVnLCBtX3N0cmljdCkpOworICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSAodmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0
KSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHlsZTogICAg
ICAgICAgIC8vIG5vcm1hbCB8IGl0YWxpYyB8IG9ibGlxdWUgfCBpbmhlcml0CkBAIC0xMDA1LDE4
ICsxMDA1LDE4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgICAgICAvLyA8cGVyY2VudGFnZT4gfCA8bGVuZ3RoPiB8IGluaGVyaXQK
IAogICAgICAgICBpZiAoaWQgPj0gQ1NTVmFsdWVCYXNlbGluZSAmJiBpZCA8PSBDU1NWYWx1ZVdl
YmtpdEJhc2VsaW5lTWlkZGxlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8
RlBlcmNlbnQsIG1fc3RyaWN0KSk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQg
JiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50LCBtX3N0cmljdCkpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlIZWlnaHQ6ICAgICAgICAgICAgICAgLy8g
PGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBhdXRvIHwgaW5oZXJpdAogICAgIGNhc2UgQ1NTUHJv
cGVydHlXaWR0aDogICAgICAgICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBh
dXRvIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENT
U1ZhbHVlSW50cmluc2ljIHx8IGlkID09IENTU1ZhbHVlTWluSW50cmluc2ljKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgLy8gIyMjIGhhbmRsZSBtdWx0aWxlbmd0
aCBjYXNlIHdoZXJlIHdlIGFsbG93IHJlbGF0aXZlIHVuaXRzCi0gICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGUGVyY2VudHxGTm9u
TmVnLCBtX3N0cmljdCkpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZh
bGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGUGVyY2VudHxGTm9uTmVnLCBtX3N0cmljdCkpOwogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlCb3R0b206ICAgICAgICAgICAgICAg
Ly8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBhdXRvIHwgaW5oZXJpdApAQCAtMTAyOSwzOCAr
MTAyOSwzOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGlt
cG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luTGVmdDogICAgICAgICAgLy8vLwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5TdGFydDoKICAgICAgICAgaWYgKGlkID09
IENTU1ZhbHVlQXV0bykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJj
ZW50LCBtX3N0cmljdCkpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZh
bGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGUGVyY2VudCwgbV9zdHJpY3QpKTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5WkluZGV4OiAgICAgICAgICAgICAgLy8gYXV0byB8
IDxpbnRlZ2VyPiB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0bykgewot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIC8q
IG5vYnJlYWsgKi8KICAgICBjYXNlIENTU1Byb3BlcnR5T3JwaGFuczogICAgICAgICAgICAgIC8v
IDxpbnRlZ2VyPiB8IGluaGVyaXQKICAgICBjYXNlIENTU1Byb3BlcnR5V2lkb3dzOiAgICAgICAg
ICAgICAgIC8vIDxpbnRlZ2VyPiB8IGluaGVyaXQKICAgICAgICAgLy8gIyMjIG5vdCBzdXBwb3J0
ZWQgbGF0ZXIgb24KLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQo
dmFsdWUsIEZJbnRlZ2VyLCBmYWxzZSkpOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQg
JiYgdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciwgZmFsc2UpKTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIENTU1Byb3BlcnR5TGluZUhlaWdodDogICAgICAgICAgLy8gbm9ybWFsIHwgPG51
bWJlcj4gfCA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGluaGVyaXQKICAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlTm9ybWFsKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXJ8
Rkxlbmd0aHxGUGVyY2VudHxGTm9uTmVnLCBtX3N0cmljdCkpOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRk51bWJlcnxGTGVuZ3RofEZQZXJj
ZW50fEZOb25OZWcsIG1fc3RyaWN0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlDb3VudGVySW5jcmVtZW50OiAgICAvLyBbIDxpZGVudGlmaWVyPiA8aW50ZWdlcj4/IF0r
IHwgbm9uZSB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkICE9IENTU1ZhbHVlTm9uZSkKICAgICAg
ICAgICAgIHJldHVybiBwYXJzZUNvdW50ZXIocHJvcElkLCAxLCBpbXBvcnRhbnQpOwotICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7
CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIENTU1Byb3BlcnR5Q291bnRlclJlc2V0OiAgICAg
ICAgLy8gWyA8aWRlbnRpZmllcj4gPGludGVnZXI+PyBdKyB8IG5vbmUgfCBpbmhlcml0CiAgICAg
ICAgIGlmIChpZCAhPSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VDb3Vu
dGVyKHByb3BJZCwgMCwgaW1wb3J0YW50KTsKLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1Byb3BlcnR5Rm9udEZhbWlseToKICAgICAgICAgLy8gW1sgPGZhbWlseS1uYW1lPiB8
IDxnZW5lcmljLWZhbWlseT4gXSxdKiBbPGZhbWlseS1uYW1lPiB8IDxnZW5lcmljLWZhbWlseT5d
IHwgaW5oZXJpdApAQCAtMTA3MywxMSArMTA3MywxMSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VW
YWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3Q6CiAgICAgICAgIC8vIG5vbmUgfCBbIHVuZGVybGlu
ZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2ggfHwgYmxpbmsgXSB8IGluaGVyaXQKICAgICAg
ICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkgewotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZl
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxp
c3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Ci0gICAgICAgICAgICBib29sIGlzX3ZhbGlkID0g
dHJ1ZTsKLSAgICAgICAgICAgIHdoaWxlIChpc192YWxpZCAmJiB2YWx1ZSkgeworICAgICAgICAg
ICAgYm9vbCBpc1ZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgIHdoaWxlIChpc1ZhbGlkICYmIHZh
bHVlKSB7CiAgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+aWQpIHsKICAgICAgICAgICAg
ICAgICBjYXNlIENTU1ZhbHVlQmxpbms6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAt
MTA4NywxMSArMTA4NywxMSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElk
LCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKHZhbHVlLT5pZCkpOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAg
ICAgICBpc192YWxpZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gZmFs
c2U7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHZhbHVlID0gbV92YWx1ZUxp
c3QtPm5leHQoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChsaXN0LT5sZW5ndGgo
KSAmJiBpc192YWxpZCkgeworICAgICAgICAgICAgaWYgKGxpc3QtPmxlbmd0aCgpICYmIGlzVmFs
aWQpIHsKICAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IGxpc3QucmVsZWFzZSgpOwogICAg
ICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAgICAgICAgICB9CkBAIC0xMTAw
LDE0ICsxMTAwLDE0IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJv
b2wgaW1wb3J0YW50KQogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVpvb206ICAgICAgICAgIC8vIG5v
cm1hbCB8IHJlc2V0IHwgZG9jdW1lbnQgfCA8bnVtYmVyPiB8IDxwZXJjZW50YWdlPiB8IGluaGVy
aXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVlUmVz
ZXQgfHwgaWQgPT0gQ1NTVmFsdWVEb2N1bWVudCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVl
LCBGTnVtYmVyIHwgRlBlcmNlbnQgfCBGTm9uTmVnLCB0cnVlKSk7CisgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyIHwgRlBlcmNlbnQg
fCBGTm9uTmVnLCB0cnVlKSk7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIENT
U1Byb3BlcnR5VGFibGVMYXlvdXQ6ICAgICAgICAgLy8gYXV0byB8IGZpeGVkIHwgaW5oZXJpdAog
ICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlRml4ZWQpCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlTcmM6
ICAvLyBPbmx5IHVzZWQgd2l0aGluIEBmb250LWZhY2UsIHNvIGNhbm5vdCB1c2UgaW5oZXJpdCB8
IGluaXRpYWwgb3IgYmUgIWltcG9ydGFudC4gIFRoaXMgaXMgYSBsaXN0IG9mIHVybHMgb3IgbG9j
YWwgcmVmZXJlbmNlcy4KQEAgLTExMTksMTMgKzExMTksMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgLyogQ1NTMyBwcm9wZXJ0
aWVzICovCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFwcGVhcmFuY2U6CiAgICAgICAgIGlm
ICgoaWQgPj0gQ1NTVmFsdWVDaGVja2JveCAmJiBpZCA8PSBDU1NWYWx1ZVRleHRhcmVhKSB8fCBp
ZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwor
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCaW5kaW5nOgogI2lmIEVOQUJMRShYQkwpCiAgICAgICAg
IGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHZhbHVlcyA9IENTU1ZhbHVlTGlzdDo6
Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKICAgICAgICAgICAgIENTU1BhcnNlclZhbHVlKiB2YWw7
CkBAIC0xMTU5LDcgKzExNTksNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVySW1h
Z2U6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tCb3hJbWFnZToKICAgICAgICAgaWYg
KGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7
CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiByZXN1bHQ7CiAgICAgICAgICAgICBpZiAocGFyc2VC
b3JkZXJJbWFnZShwcm9wSWQsIGltcG9ydGFudCwgcmVzdWx0KSkgewpAQCAtMTE3NCwxNSArMTE3
NCwxNSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IHsKICAg
ICAgICAgaWYgKG51bSAhPSAxICYmIG51bSAhPSAyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1f
c3RyaWN0KTsKLSAgICAgICAgaWYgKCF2YWxpZF9wcmltaXRpdmUpCisgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7CisgICAgICAgIGlm
ICghdmFsaWRQcmltaXRpdmUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIFJl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyl2YWx1
ZS0+dW5pdCk7CiAgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUy
OwogICAgICAgICBpZiAobnVtID09IDIpIHsKICAgICAgICAgICAgIHZhbHVlID0gbV92YWx1ZUxp
c3QtPm5leHQoKTsKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1
ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOwotICAgICAgICAgICAgaWYgKCF2YWxpZF9wcmltaXRpdmUp
CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwg
bV9zdHJpY3QpOworICAgICAgICAgICAgaWYgKCF2YWxpZFByaW1pdGl2ZSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBwYXJzZWRWYWx1ZTIgPSBDU1NQcmltaXRp
dmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5
cGVzKXZhbHVlLT51bml0KTsKICAgICAgICAgfSBlbHNlCkBAIC0xMTk3LDU5ICsxMTk3LDU5IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJSYWRpdXM6CiAgICAgICAgIHJldHVybiBw
YXJzZUJvcmRlclJhZGl1cyhwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eU91dGxpbmVPZmZzZXQ6Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1
ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5p
dCh2YWx1ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENT
U1Byb3BlcnR5VGV4dFNoYWRvdzogLy8gQ1NTMiBwcm9wZXJ0eSwgZHJvcHBlZCBpbiBDU1MyLjEs
IGJhY2sgaW4gQ1NTMywgc28gdHJlYXQgYXMgQ1NTMwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRCb3hTaGFkb3c6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0
cnVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VTaGFkb3cocHJvcElk
LCBpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
Qm94UmVmbGVjdDoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRy
dWU7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiBwYXJzZVJlZmxlY3QocHJvcElk
LCBpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5T3BhY2l0
eToKLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyLCBt
X3N0cmljdCk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTnVt
YmVyLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRCb3hBbGlnbjoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlU3RyZXRjaCB8fCBpZCA9PSBD
U1NWYWx1ZVN0YXJ0IHx8IGlkID09IENTU1ZhbHVlRW5kIHx8CiAgICAgICAgICAgICBpZCA9PSBD
U1NWYWx1ZUNlbnRlciB8fCBpZCA9PSBDU1NWYWx1ZUJhc2VsaW5lKQotICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveERpcmVjdGlvbjoK
ICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVlUmV2ZXJz
ZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRCb3hMaW5lczoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlU2luZ2xlIHx8IGlkID09
IENTU1ZhbHVlTXVsdGlwbGUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwor
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0Qm94T3JpZW50OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFs
dWVIb3Jpem9udGFsIHx8IGlkID09IENTU1ZhbHVlVmVydGljYWwgfHwKICAgICAgICAgICAgIGlk
ID09IENTU1ZhbHVlSW5saW5lQXhpcyB8fCBpZCA9PSBDU1NWYWx1ZUJsb2NrQXhpcykKLSAgICAg
ICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hQ
YWNrOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVTdGFydCB8fCBpZCA9PSBDU1NWYWx1ZUVu
ZCB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVDZW50ZXIgfHwgaWQgPT0gQ1NTVmFsdWVK
dXN0aWZ5KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEJveEZsZXg6Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2
YWx1ZSwgRk51bWJlciwgbV9zdHJpY3QpOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlk
VW5pdCh2YWx1ZSwgRk51bWJlciwgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0Qm94RmxleEdyb3VwOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRCb3hPcmRpbmFsR3JvdXA6Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2
YWx1ZSwgRkludGVnZXJ8Rk5vbk5lZywgdHJ1ZSk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlcnxGTm9uTmVnLCB0cnVlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveFNpemluZzoKLSAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gaWQgPT0gQ1NTVmFsdWVCb3JkZXJCb3ggfHwgaWQgPT0gQ1NTVmFsdWVDb250ZW50
Qm94OworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IGlkID09IENTU1ZhbHVlQm9yZGVyQm94IHx8
IGlkID09IENTU1ZhbHVlQ29udGVudEJveDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdENvbG9yQ29ycmVjdGlvbjoKLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
aWQgPT0gQ1NTVmFsdWVTcmdiIHx8IGlkID09IENTU1ZhbHVlRGVmYXVsdDsKKyAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSBpZCA9PSBDU1NWYWx1ZVNyZ2IgfHwgaWQgPT0gQ1NTVmFsdWVEZWZhdWx0
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZTogewog
ICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1s1XSA9IHsgQ1NTUHJvcGVydHlXZWJraXRNYXJx
dWVlRGlyZWN0aW9uLCBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVJbmNyZW1lbnQsCkBAIC0xMjYx
LDcxICsxMjYxLDcxIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJv
b2wgaW1wb3J0YW50KQogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVGb3J3YXJkcyB8fCBpZCA9
PSBDU1NWYWx1ZUJhY2t3YXJkcyB8fCBpZCA9PSBDU1NWYWx1ZUFoZWFkIHx8CiAgICAgICAgICAg
ICBpZCA9PSBDU1NWYWx1ZVJldmVyc2UgfHwgaWQgPT0gQ1NTVmFsdWVMZWZ0IHx8IGlkID09IENT
U1ZhbHVlUmlnaHQgfHwgaWQgPT0gQ1NTVmFsdWVEb3duIHx8CiAgICAgICAgICAgICBpZCA9PSBD
U1NWYWx1ZVVwIHx8IGlkID09IENTU1ZhbHVlQXV0bykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlSW5jcmVtZW50OgogICAg
ICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVTbWFsbCB8fCBpZCA9PSBDU1NWYWx1ZUxhcmdlIHx8IGlk
ID09IENTU1ZhbHVlTWVkaXVtKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50
LCBtX3N0cmljdCk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1
ZSwgRkxlbmd0aHxGUGVyY2VudCwgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVN0eWxlOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFs
dWVOb25lIHx8IGlkID09IENTU1ZhbHVlU2xpZGUgfHwgaWQgPT0gQ1NTVmFsdWVTY3JvbGwgfHwg
aWQgPT0gQ1NTVmFsdWVBbHRlcm5hdGUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVJlcGV0aXRpb246CiAgICAgICAgIGlm
IChpZCA9PSBDU1NWYWx1ZUluZmluaXRlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlcnxG
Tm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5p
dCh2YWx1ZSwgRkludGVnZXJ8Rk5vbk5lZywgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVNwZWVkOgogICAgICAgICBpZiAoaWQgPT0g
Q1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVTbG93IHx8IGlkID09IENTU1ZhbHVlRmFz
dCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWV8RkludGVnZXJ8Rk5vbk5lZywgbV9zdHJpY3Qp
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZUaW1lfEZJ
bnRlZ2VyfEZOb25OZWcsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFdD
U1MpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVEaXI6CiAgICAgICAgIGlmIChpZCA9
PSBDU1NWYWx1ZUx0ciB8fCBpZCA9PSBDU1NWYWx1ZVJ0bCkKLSAgICAgICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3R5bGU6CiAgICAgICAg
IGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVTbGlkZSB8fCBpZCA9PSBD
U1NWYWx1ZVNjcm9sbCB8fCBpZCA9PSBDU1NWYWx1ZUFsdGVybmF0ZSkKLSAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlTG9vcDoKICAg
ICAgICAgaWYgKGlkID09IENTU1ZhbHVlSW5maW5pdGUpCi0gICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZJ
bnRlZ2VyIHwgRk5vbk5lZywgbV9zdHJpY3QpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyIHwgRk5vbk5lZywgbV9zdHJpY3QpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZVNwZWVkOgogICAgICAgICBp
ZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVTbG93IHx8IGlkID09IENT
U1ZhbHVlRmFzdCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWUgfCBGSW50ZWdlciB8IEZOb25O
ZWcsIG1fc3RyaWN0KTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZh
bHVlLCBGVGltZSB8IEZJbnRlZ2VyIHwgRk5vbk5lZywgbV9zdHJpY3QpOwogICAgICAgICBicmVh
azsKICNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZzogLy8gYXV0byB8
IG5vbmUgfCBlbGVtZW50CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0g
Q1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlRWxlbWVudCkKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5OiAvLyBy
ZWFkLW9ubHkgfCByZWFkLXdyaXRlCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVJlYWRPbmx5
IHx8IGlkID09IENTU1ZhbHVlUmVhZFdyaXRlIHx8IGlkID09IENTU1ZhbHVlUmVhZFdyaXRlUGxh
aW50ZXh0T25seSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRVc2VyU2VsZWN0OiAvLyBhdXRvIHwgbm9uZSB8IHRleHQKICAgICAgICAg
aWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NT
VmFsdWVUZXh0KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVRleHRPdmVyZmxvdzogLy8gY2xpcCB8IGVsbGlwc2lzCiAgICAgICAgIGlmIChpZCA9
PSBDU1NWYWx1ZUNsaXAgfHwgaWQgPT0gQ1NTVmFsdWVFbGxpcHNpcykKLSAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm06CiAg
ICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbCA9IHBhcnNlVHJhbnNm
b3JtKCk7CiAgICAgICAgICAgICBpZiAodmFsKSB7CkBAIC0xMzU1LDE1ICsxMzU1LDE1IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAg
IH0KICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtU3R5bGU6CiAgICAgICAgIGlm
ICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVGbGF0IHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZVByZXNl
cnZlM2QpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAg
dmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0QmFja2ZhY2VWaXNpYmlsaXR5OgogICAgICAgICBpZiAodmFsdWUtPmlkID09IENT
U1ZhbHVlVmlzaWJsZSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVIaWRkZW4pCi0gICAgICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0
cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3Rp
dmU6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIEFjY2VwdGluZyB2YWx1ZWxlc3MgbnVtYmVycyBp
cyBhIHF1aXJrIG9mIHRoZSAtd2Via2l0IHByZWZpeGVkIHZlcnNpb24gb2YgdGhlIHByb3BlcnR5
LgogICAgICAgICAgICAgaWYgKHZhbGlkVW5pdCh2YWx1ZSwgRk51bWJlcnxGTGVuZ3RofEZOb25O
ZWcsIG1fc3RyaWN0KSkgewpAQCAtMTQzMCwxMyArMTQzMCwxMyBAQCBib29sIENTU1BhcnNlcjo6
cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TWFyZ2luVG9wQ29sbGFwc2U6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1h
cmdpbkJvdHRvbUNvbGxhcHNlOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVDb2xsYXBzZSB8
fCBpZCA9PSBDU1NWYWx1ZVNlcGFyYXRlIHx8IGlkID09IENTU1ZhbHVlRGlzY2FyZCkKLSAgICAg
ICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGluZVRo
cm91Z2hNb2RlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0T3ZlcmxpbmVNb2RlOgogICAgIGNh
c2UgQ1NTUHJvcGVydHlUZXh0VW5kZXJsaW5lTW9kZToKICAgICAgICAgaWYgKGlkID09IENTU1Zh
bHVlQ29udGludW91cyB8fCBpZCA9PSBDU1NWYWx1ZVNraXBXaGl0ZVNwYWNlKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhyb3Vn
aFN0eWxlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0T3ZlcmxpbmVTdHlsZToKQEAgLTE0NDQs
NTAgKzE0NDQsNTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9v
bCBpbXBvcnRhbnQpCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NT
VmFsdWVTb2xpZCB8fCBpZCA9PSBDU1NWYWx1ZURvdWJsZSB8fAogICAgICAgICAgICAgaWQgPT0g
Q1NTVmFsdWVEYXNoZWQgfHwgaWQgPT0gQ1NTVmFsdWVEb3REYXNoIHx8IGlkID09IENTU1ZhbHVl
RG90RG90RGFzaCB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVXYXZlKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmc6
IC8vIGF1dG8gfCBvcHRpbWl6ZVNwZWVkIHwgb3B0aW1pemVMZWdpYmlsaXR5IHwgZ2VvbWV0cmlj
UHJlY2lzaW9uCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFs
dWVPcHRpbWl6ZXNwZWVkIHx8IGlkID09IENTU1ZhbHVlT3B0aW1pemVsZWdpYmlsaXR5CiAgICAg
ICAgICAgICB8fCBpZCA9PSBDU1NWYWx1ZUdlb21ldHJpY3ByZWNpc2lvbikKLSAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRy
dWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGluZVRocm91Z2hX
aWR0aDoKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dE92ZXJsaW5lV2lkdGg6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVRleHRVbmRlcmxpbmVXaWR0aDoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVl
QXV0byB8fCBpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVRoaW4gfHwKICAg
ICAgICAgICAgIGlkID09IENTU1ZhbHVlTWVkaXVtIHx8IGlkID09IENTU1ZhbHVlVGhpY2spCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSAhaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyfEZMZW5ndGh8RlBlcmNlbnQsIG1fc3Ry
aWN0KTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gIWlkICYmIHZhbGlkVW5pdCh2YWx1
ZSwgRk51bWJlcnxGTGVuZ3RofEZQZXJjZW50LCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRhbCB8
IHZlcnRpY2FsIHwgYXV0bwogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lIHx8IGlkID09
IENTU1ZhbHVlQm90aCB8fCBpZCA9PSBDU1NWYWx1ZUhvcml6b250YWwgfHwgaWQgPT0gQ1NTVmFs
dWVWZXJ0aWNhbCB8fCBpZCA9PSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uQ291bnQ6CiAgICAgICAg
IGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAhaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGSW50
ZWdlciB8IEZOb25OZWcsIGZhbHNlKTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gIWlk
ICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIgfCBGTm9uTmVnLCBmYWxzZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5HYXA6ICAgICAgICAgLy8g
bm9ybWFsIHwgPGxlbmd0aD4KICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsKQotICAg
ICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRk5vbk5lZywgbV9zdHJpY3QpOworICAgICAgICAg
ICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGggfCBGTm9uTmVnLCBt
X3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1
bW5XaWR0aDogICAgICAgICAvLyBhdXRvIHwgPGxlbmd0aD4KICAgICAgICAgaWYgKGlkID09IENT
U1ZhbHVlQXV0bykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgLy8gQWx3YXlzIHBhcnNl
IHRoaXMgcHJvcGVydHkgaW4gc3RyaWN0IG1vZGUsIHNpbmNlIGl0IHdvdWxkIGJlIGFtYmlndW91
cyBvdGhlcndpc2Ugd2hlbiB1c2VkIGluIHRoZSAnY29sdW1ucycgc2hvcnRoYW5kIHByb3BlcnR5
LgotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3Ro
LCB0cnVlKTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBG
TGVuZ3RoLCB0cnVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBvaW50
ZXJFdmVudHM6CiAgICAgICAgIC8vIG5vbmUgfCB2aXNpYmxlUGFpbnRlZCB8IHZpc2libGVGaWxs
IHwgdmlzaWJsZVN0cm9rZSB8IHZpc2libGUgfAogICAgICAgICAvLyBwYWludGVkIHwgZmlsbCB8
IHN0cm9rZSB8IGF1dG8gfCBhbGwgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1
ZVZpc2libGUgfHwgaWQgPT0gQ1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlQWxsIHx8IGlk
ID09IENTU1ZhbHVlQXV0byB8fAogICAgICAgICAgICAgKGlkID49IENTU1ZhbHVlVmlzaWJsZXBh
aW50ZWQgJiYgaWQgPD0gQ1NTVmFsdWVTdHJva2UpKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAKICAgICAvLyBFbmQgb2YgQ1NTMyBwcm9wZXJ0aWVzCkBAIC0x
NDk3LDU2ICsxNDk3LDU2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQs
IGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMaW5lQ2xhbXA6CiAg
ICAgICAgIC8vIFdoZW4gc3BlY2lmeWluZyBudW1iZXIgb2YgbGluZXMsIGRvbid0IGFsbG93IDAg
YXMgYSB2YWxpZCB2YWx1ZQogICAgICAgICAvLyBXaGVuIHNwZWNpZnlpbmcgZWl0aGVyIHR5cGUg
b2YgdW5pdCwgcmVxdWlyZSBub24tbmVnYXRpdmUgaW50ZWdlcnMKLSAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gKCFpZCAmJiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19Q
RVJDRU5UQUdFIHx8IHZhbHVlLT5mVmFsdWUpICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIg
fCBGUGVyY2VudCB8IEZOb25OZWcsIGZhbHNlKSk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
KCFpZCAmJiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
IHx8IHZhbHVlLT5mVmFsdWUpICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIgfCBGUGVyY2Vu
dCB8IEZOb25OZWcsIGZhbHNlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUZXh0U2l6ZUFkanVzdDoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8
fCBpZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UnRsT3JkZXJpbmc6CiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZUxvZ2ljYWwgfHwgaWQgPT0gQ1NTVmFsdWVWaXN1YWwpCi0gICAgICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwog
ICAgICAgICBicmVhazsKICAgICAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNpemVE
ZWx0YTogICAgICAgICAgIC8vIDxsZW5ndGg+Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZh
bGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOworICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXROYnNwTW9kZTogICAgIC8vIG5vcm1hbCB8IHNw
YWNlCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVNw
YWNlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZh
bGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TGluZUJyZWFrOiAgIC8vIG5vcm1hbCB8IGFmdGVyLXdoaXRlLXNwYWNlCiAgICAg
ICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZUFmdGVyV2hpdGVT
cGFjZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2
YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1hdGNoTmVhcmVzdE1haWxCbG9ja3F1b3RlQ29sb3I6ICAgLy8gbm9ybWFsIHwg
bWF0Y2gKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVl
TWF0Y2gpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAg
dmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRIaWdobGlnaHQ6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwg
dmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpCi0gICAgICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0
cnVlOwogICAgICAgICBicmVhazsKICAgICAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9y
ZGVyRml0OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVCb3JkZXIgfHwgaWQgPT0gQ1NTVmFs
dWVMaW5lcykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFNlY3VyaXR5OgogICAgICAgICAvLyBkaXNjIHwgY2ly
Y2xlIHwgc3F1YXJlIHwgbm9uZSB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVl
RGlzYyB8fCBpZCA9PSBDU1NWYWx1ZUNpcmNsZSB8fCBpZCA9PSBDU1NWYWx1ZVNxdWFyZXx8IGlk
ID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTbW9vdGhpbmc6CiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVOb25lIAogICAgICAgICAgICAgfHwgaWQgPT0g
Q1NTVmFsdWVBbnRpYWxpYXNlZCB8fCBpZCA9PSBDU1NWYWx1ZVN1YnBpeGVsQW50aWFsaWFzZWQp
Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRf
U1VQUE9SVCkKQEAgLTE2NTQsNyArMTY1NCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVl
KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAvLyBbIFsgJ2ZvbnQtc3R5bGUn
IHx8ICdmb250LXZhcmlhbnQnIHx8ICdmb250LXdlaWdodCcgXT8gJ2ZvbnQtc2l6ZScgWyAvICds
aW5lLWhlaWdodCcgXT8KICAgICAgICAgLy8gJ2ZvbnQtZmFtaWx5JyBdIHwgY2FwdGlvbiB8IGlj
b24gfCBtZW51IHwgbWVzc2FnZS1ib3ggfCBzbWFsbC1jYXB0aW9uIHwgc3RhdHVzLWJhciB8IGlu
aGVyaXQKICAgICAgICAgaWYgKGlkID49IENTU1ZhbHVlQ2FwdGlvbiAmJiBpZCA8PSBDU1NWYWx1
ZVN0YXR1c0JhcikKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJl
dHVybiBwYXJzZUZvbnQoaW1wb3J0YW50KTsKICAgICAgICAgYnJlYWs7CkBAIC0xNjk2LDcgKzE2
OTYsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICNlbmRpZgogICAgIH0KIAotICAgIGlmICh2YWxpZF9wcmltaXRpdmUpIHsKKyAgICBp
ZiAodmFsaWRQcmltaXRpdmUpIHsKICAgICAgICAgaWYgKGlkICE9IDApCiAgICAgICAgICAgICBw
YXJzZWRWYWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKGlkKTsKICAg
ICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJ
TkcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48624</attachid>
            <date>2010-02-11 22:04:39 -0800</date>
            <delta_ts>2010-02-11 22:12:25 -0800</delta_ts>
            <desc>Rename underscored identifiers in WebCore/css/CSSParser.cpp.</desc>
            <filename>bug-34877-20100212150437.patch</filename>
            <type>text/plain</type>
            <size>36945</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzkwYzFjNC4uZDJlN2M1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wMi0xMSAgWXV6byBGdWppc2hp
bWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lIHVuZGVyc2NvcmVkIGlkZW50aWZpZXJzIGluIFdlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDg3NworCisgICAgICAgIFRoaXMgZG9lc24ndCBjaGFuZ2UgdGhlIGNvZGUg
bG9naWMuIEhlbmNlIG5vIG5ldyB0ZXN0cyBhcmUgcmVxdWlyZWQuCisKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6
CisKIDIwMTAtMDItMTEgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGNhMDc2ODIu
LmJhNWUyY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTcxLDcgKzU3MSw3IEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKLSAgICBib29sIHZhbGlkX3ByaW1pdGl2ZSA9IGZhbHNlOworICAgIGJv
b2wgdmFsaWRQcmltaXRpdmUgPSBmYWxzZTsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlZFZh
bHVlOwogCiAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wSWQpKSB7
CkBAIC01ODcsMTMgKzU4NywxMyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5U2l6ZTogICAgICAgICAg
ICAgICAgIC8vIDxsZW5ndGg+ezEsMn0gfCBhdXRvIHwgcG9ydHJhaXQgfCBsYW5kc2NhcGUgfCBp
bmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3RlczogICAgICAgICAgICAgICAvLyBbPHN0
cmluZz4gPHN0cmluZz5dKyB8IG5vbmUgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCkKLSAgICAg
ICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlVbmljb2RlQmlk
aTogICAgICAgICAvLyBub3JtYWwgfCBlbWJlZCB8IGJpZGktb3ZlcnJpZGUgfCBpbmhlcml0CiAg
ICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fAogICAgICAgICAgICAgIGlkID09IENT
U1ZhbHVlRW1iZWQgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZUJpZGlPdmVycmlkZSkK
LSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFBy
aW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBv
c2l0aW9uOiAgICAgICAgICAgICAvLyBzdGF0aWMgfCByZWxhdGl2ZSB8IGFic29sdXRlIHwgZml4
ZWQgfCBpbmhlcml0CkBAIC02MDEsNyArNjAxLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFs
dWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFs
dWVSZWxhdGl2ZSB8fAogICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlQWJzb2x1dGUgfHwKICAg
ICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZUZpeGVkKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5UGFnZUJyZWFrQWZ0ZXI6ICAgICAvLyBhdXRv
IHwgYWx3YXlzIHwgYXZvaWQgfCBsZWZ0IHwgcmlnaHQgfCBpbmhlcml0CkBAIC02MTMsMTkgKzYx
MywxOSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZUF2b2lkIHx8CiAgICAgICAgICAgICAg
aWQgPT0gQ1NTVmFsdWVMZWZ0IHx8CiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVSaWdodCkK
LSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFBy
aW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBh
Z2VCcmVha0luc2lkZTogICAgLy8gYXZvaWQgfCBhdXRvIHwgaW5oZXJpdAogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRDb2x1bW5CcmVha0luc2lkZToKICAgICAgICAgaWYgKGlkID09IENTU1Zh
bHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZUF2b2lkKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5RW1wdHlDZWxsczogICAgICAgICAgLy8gc2hv
dyB8IGhpZGUgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVNob3cgfHwKICAg
ICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZUhpZGUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlDb250ZW50OiAgICAgICAgICAgICAgLy8gWyA8
c3RyaW5nPiB8IDx1cmk+IHwgPGNvdW50ZXI+IHwgYXR0cihYKSB8IG9wZW4tcXVvdGUgfApAQCAt
NjM4LDEyICs2MzgsMTIgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwg
Ym9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZVByZVdyYXAgfHwKICAg
ICAgICAgICAgIGlkID09IENTU1ZhbHVlUHJlTGluZSB8fAogICAgICAgICAgICAgaWQgPT0gQ1NT
VmFsdWVOb3dyYXApCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q1NTUHJvcGVydHlDbGlwOiAgICAgICAgICAgICAgICAgLy8gPHNoYXBlPiB8IGF1dG8gfCBpbmhl
cml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAg
ICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pCiAg
ICAgICAgICAgICByZXR1cm4gcGFyc2VTaGFwZShwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAg
IGJyZWFrOwpAQCAtNjU0LDE3ICs2NTQsMTcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUo
aW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNhcHRpb25T
aWRlOiAgICAgICAgIC8vIHRvcCB8IGJvdHRvbSB8IGxlZnQgfCByaWdodCB8IGluaGVyaXQKICAg
ICAgICAgaWYgKGlkID09IENTU1ZhbHVlTGVmdCB8fCBpZCA9PSBDU1NWYWx1ZVJpZ2h0IHx8CiAg
ICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZVRvcCB8fCBpZCA9PSBDU1NWYWx1ZUJvdHRvbSkKLSAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRl
ckNvbGxhcHNlOiAgICAgIC8vIGNvbGxhcHNlIHwgc2VwYXJhdGUgfCBpbmhlcml0CiAgICAgICAg
IGlmIChpZCA9PSBDU1NWYWx1ZUNvbGxhcHNlIHx8IGlkID09IENTU1ZhbHVlU2VwYXJhdGUpCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlWaXNp
YmlsaXR5OiAgICAgICAgICAgLy8gdmlzaWJsZSB8IGhpZGRlbiB8IGNvbGxhcHNlIHwgaW5oZXJp
dAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IGlkID09IENTU1ZhbHVlSGlk
ZGVuIHx8IGlkID09IENTU1ZhbHVlQ29sbGFwc2UpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzogewpAQCAtNjc5LDE5ICs2Nzks
MTkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WTogICAgICAgICAgIC8vIHZpc2libGUg
fCBoaWRkZW4gfCBzY3JvbGwgfCBhdXRvIHwgbWFycXVlZSB8IG92ZXJsYXkgfCBpbmhlcml0CiAg
ICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVZpc2libGUgfHwgaWQgPT0gQ1NTVmFsdWVIaWRkZW4g
fHwgaWQgPT0gQ1NTVmFsdWVTY3JvbGwgfHwgaWQgPT0gQ1NTVmFsdWVBdXRvIHx8CiAgICAgICAg
ICAgICBpZCA9PSBDU1NWYWx1ZU92ZXJsYXkgfHwgaWQgPT0gQ1NTVmFsdWVXZWJraXRNYXJxdWVl
KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5
TGlzdFN0eWxlUG9zaXRpb246ICAvLyBpbnNpZGUgfCBvdXRzaWRlIHwgaW5oZXJpdAogICAgICAg
ICBpZiAoaWQgPT0gQ1NTVmFsdWVJbnNpZGUgfHwgaWQgPT0gQ1NTVmFsdWVPdXRzaWRlKQotICAg
ICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0
eWxlVHlwZToKICAgICAgICAgLy8gU2VlIHNlY3Rpb24gQ1NTX1BST1BfTElTVF9TVFlMRV9UWVBF
IG9mIGZpbGUgQ1NTVmFsdWVLZXl3b3Jkcy5pbgogICAgICAgICAvLyBmb3IgdGhlIGxpc3Qgb2Yg
c3VwcG9ydGVkIGxpc3Qtc3R5bGUtdHlwZXMuCiAgICAgICAgIGlmICgoaWQgPj0gQ1NTVmFsdWVE
aXNjICYmIGlkIDw9IENTU1ZhbHVlS2F0YWthbmFJcm9oYSkgfHwgaWQgPT0gQ1NTVmFsdWVOb25l
KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5
RGlzcGxheToKQEAgLTcwMyw0MSArNzAzLDQxIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVl
KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogI2Vsc2UKICAgICAgICAgaWYgKChpZCA+PSBD
U1NWYWx1ZUlubGluZSAmJiBpZCA8PSBDU1NWYWx1ZVdlYmtpdElubGluZUJveCkgfHwgaWQgPT0g
Q1NTVmFsdWVOb25lKQogI2VuZGlmCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ1NTUHJvcGVydHlEaXJlY3Rpb246ICAgICAgICAgICAgLy8gbHRyIHwgcnRsIHwg
aW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVMdHIgfHwgaWQgPT0gQ1NTVmFsdWVS
dGwpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVy
dHlUZXh0VHJhbnNmb3JtOiAgICAgICAvLyBjYXBpdGFsaXplIHwgdXBwZXJjYXNlIHwgbG93ZXJj
YXNlIHwgbm9uZSB8IGluaGVyaXQKICAgICAgICAgaWYgKChpZCA+PSBDU1NWYWx1ZUNhcGl0YWxp
emUgJiYgaWQgPD0gQ1NTVmFsdWVMb3dlcmNhc2UpIHx8IGlkID09IENTU1ZhbHVlTm9uZSkKLSAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZsb2F0
OiAgICAgICAgICAgICAgICAvLyBsZWZ0IHwgcmlnaHQgfCBub25lIHwgaW5oZXJpdCArIGNlbnRl
ciBmb3IgYnVnZ3kgQ1NTCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUxlZnQgfHwgaWQgPT0g
Q1NTVmFsdWVSaWdodCB8fAogICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9
PSBDU1NWYWx1ZUNlbnRlcikKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUNsZWFyOiAgICAgICAgICAgICAgICAvLyBub25lIHwgbGVmdCB8IHJp
Z2h0IHwgYm90aCB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSB8fCBp
ZCA9PSBDU1NWYWx1ZUxlZnQgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZVJpZ2h0fHwg
aWQgPT0gQ1NTVmFsdWVCb3RoKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIENTU1Byb3BlcnR5VGV4dEFsaWduOgogICAgICAgICAvLyBsZWZ0IHwgcmlnaHQgfCBj
ZW50ZXIgfCBqdXN0aWZ5IHwgd2Via2l0X2xlZnQgfCB3ZWJraXRfcmlnaHQgfCB3ZWJraXRfY2Vu
dGVyIHwgc3RhcnQgfCBlbmQgfCA8c3RyaW5nPiB8IGluaGVyaXQKICAgICAgICAgaWYgKChpZCA+
PSBDU1NWYWx1ZVdlYmtpdEF1dG8gJiYgaWQgPD0gQ1NTVmFsdWVXZWJraXRDZW50ZXIpIHx8IGlk
ID09IENTU1ZhbHVlU3RhcnQgfHwgaWQgPT0gQ1NTVmFsdWVFbmQgfHwKICAgICAgICAgICAgICB2
YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykKLSAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRy
dWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVTdHlsZTog
ICAgICAgIC8vICg8Ym9yZGVyLXN0eWxlPiBleGNlcHQgaGlkZGVuKSB8IGF1dG8gfCBpbmhlcml0
CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVOb25lIHx8
IChpZCA+PSBDU1NWYWx1ZUluc2V0ICYmIGlkIDw9IENTU1ZhbHVlRG91YmxlKSkKLSAgICAgICAg
ICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9
IHRydWU7CiAgICAgICAgIGJyZWFrOyAKICAgICAgICAgCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJv
cmRlclRvcFN0eWxlOiAgICAgLy8vLyA8Ym9yZGVyLXN0eWxlPiB8IGluaGVyaXQKQEAgLTc0Niw3
ICs3NDYsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGlt
cG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFN0eWxlOgogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRDb2x1bW5SdWxlU3R5bGU6CiAgICAgICAgIGlmIChpZCA+PSBDU1NW
YWx1ZU5vbmUgJiYgaWQgPD0gQ1NTVmFsdWVEb3VibGUpCi0gICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250V2VpZ2h0OiAgLy8gbm9ybWFsIHwg
Ym9sZCB8IGJvbGRlciB8IGxpZ2h0ZXIgfCAxMDAgfCAyMDAgfCAzMDAgfCA0MDAgfCA1MDAgfCA2
MDAgfCA3MDAgfCA4MDAgfCA5MDAgfCBpbmhlcml0CkBAIC03NzMsMTMgKzc3MywxMyBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICB9
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckhvcml6b250YWxTcGFjaW5nOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJWZXJ0aWNhbFNwYWNpbmc6Ci0gICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGTm9uTmVnLCBtX3N0cmlj
dCk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZO
b25OZWcsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU91
dGxpbmVDb2xvcjogICAgICAgIC8vIDxjb2xvcj4gfCBpbnZlcnQgfCBpbmhlcml0CiAgICAgICAg
IC8vIE91dGxpbmUgY29sb3IgaGFzICJpbnZlcnQiIGFzIGFkZGl0aW9uYWwga2V5d29yZC4KICAg
ICAgICAgLy8gQWxzbywgd2Ugd2FudCB0byBhbGxvdyB0aGUgc3BlY2lhbCBmb2N1cyBjb2xvciBl
dmVuIGluIHN0cmljdCBwYXJzaW5nIG1vZGUuCiAgICAgICAgIGlmIChwcm9wSWQgPT0gQ1NTUHJv
cGVydHlPdXRsaW5lQ29sb3IgJiYgKGlkID09IENTU1ZhbHVlSW52ZXJ0IHx8IGlkID09IENTU1Zh
bHVlV2Via2l0Rm9jdXNSaW5nQ29sb3IpKSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgLyogbm9icmVhayAqLwpAQCAtNzk2LDEzICs3OTYs
MTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvcjoKICAgICAgICAgaWYgKGlkID09IENTU1Zh
bHVlV2Via2l0VGV4dCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7IC8vIEFs
d2F5cyBhbGxvdyB0aGlzLCBldmVuIHdoZW4gc3RyaWN0IHBhcnNpbmcgaXMgb24sCisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7IC8vIEFsd2F5cyBhbGxvdyB0aGlzLCBldmVuIHdo
ZW4gc3RyaWN0IHBhcnNpbmcgaXMgb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBzaW5jZSB3ZSB1c2UgdGhpcyBpbiBvdXIgVUEgc2hlZXRzLgogICAgICAgICBlbHNl
IGlmIChpZCA9PSBDU1NWYWx1ZUN1cnJlbnRjb2xvcikKLSAgICAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAg
IGVsc2UgaWYgKChpZCA+PSBDU1NWYWx1ZUFxdWEgJiYgaWQgPD0gQ1NTVmFsdWVXaW5kb3d0ZXh0
KSB8fCBpZCA9PSBDU1NWYWx1ZU1lbnUgfHwKICAgICAgICAgICAgICAoaWQgPj0gQ1NTVmFsdWVX
ZWJraXRGb2N1c1JpbmdDb2xvciAmJiBpZCA8IENTU1ZhbHVlV2Via2l0VGV4dCAmJiAhbV9zdHJp
Y3QpKSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAg
dmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcGFy
c2VkVmFsdWUgPSBwYXJzZUNvbG9yKCk7CiAgICAgICAgICAgICBpZiAocGFyc2VkVmFsdWUpCkBA
IC04NTksOSArODU5LDkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwg
Ym9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGlkID0gdmFsdWUtPmlkOwogICAgICAgICBpZiAoIW1f
c3RyaWN0ICYmIHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUhhbmQpIHsgLy8gTVNJRSA1IGNvbXBhdGli
aWxpdHkgOi8KICAgICAgICAgICAgIGlkID0gQ1NTVmFsdWVQb2ludGVyOwotICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgfSBlbHNlIGlmICgodmFsdWUtPmlkID49IENTU1ZhbHVlQXV0byAmJiB2YWx1
ZS0+aWQgPD0gQ1NTVmFsdWVXZWJraXRHcmFiYmluZykgfHwgdmFsdWUtPmlkID09IENTU1ZhbHVl
Q29weSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCkBAIC05MzksMjcgKzkzOSwyNyBAQCBib29sIENTU1BhcnNlcjo6
cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3Bl
cnR5Qm9yZGVyTGVmdFdpZHRoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5SdWxl
V2lkdGg6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVRoaW4gfHwgaWQgPT0gQ1NTVmFsdWVN
ZWRpdW0gfHwgaWQgPT0gQ1NTVmFsdWVUaGljaykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0
aCwgbV9zdHJpY3QpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFs
dWUsIEZMZW5ndGgsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1By
b3BlcnR5TGV0dGVyU3BhY2luZzogICAgICAgLy8gbm9ybWFsIHwgPGxlbmd0aD4gfCBpbmhlcml0
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdvcmRTcGFjaW5nOiAgICAgICAgIC8vIG5vcm1hbCB8IDxs
ZW5ndGg+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwpCi0gICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2
YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0KTsKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7CiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdvcmRCcmVhazogICAgICAgICAgLy8gbm9ybWFs
IHwgYnJlYWstYWxsIHwgYnJlYWstd29yZCAodGhpcyBpcyBhIGN1c3RvbSBleHRlbnNpb24pCiAg
ICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZUJyZWFrQWxs
IHx8IGlkID09IENTU1ZhbHVlQnJlYWtXb3JkKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZl
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V29yZFdyYXA6ICAgICAgICAgICAvLyBub3JtYWwg
fCBicmVhay13b3JkCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBD
U1NWYWx1ZUJyZWFrV29yZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6ICAgICAgICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNl
bnRhZ2U+IHwgaW5oZXJpdApAQCAtOTY4LDMwICs5NjgsMzAgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVBhZGRpbmdCb3R0b206ICAgICAgIC8vICAgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4KICAgICBj
YXNlIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQ6ICAgICAgICAgLy8vLwogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRQYWRkaW5nU3RhcnQ6Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICghaWQg
JiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50LCBtX3N0cmljdCkpOworICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJj
ZW50LCBtX3N0cmljdCkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlN
YXhIZWlnaHQ6ICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IG5vbmUgfCBp
bmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1heFdpZHRoOiAgICAgICAgICAgIC8vIDxsZW5n
dGg+IHwgPHBlcmNlbnRhZ2U+IHwgbm9uZSB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENT
U1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZUludHJpbnNpYyB8fCBpZCA9PSBDU1NWYWx1ZU1p
bkludHJpbnNpYykgewotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIC8qIG5vYnJlYWsgKi8KICAgICBjYXNlIENTU1Byb3BlcnR5TWluSGVpZ2h0
OiAgICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU1pbldpZHRoOiAgICAgICAgICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRh
Z2U+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVJbnRyaW5zaWMgfHwgaWQg
PT0gQ1NTVmFsdWVNaW5JbnRyaW5zaWMpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxl
bmd0aHxGUGVyY2VudHxGTm9uTmVnLCBtX3N0cmljdCkpOworICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGUGVyY2VudHxGTm9uTmVn
LCBtX3N0cmljdCkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250
U2l6ZToKICAgICAgICAgLy8gPGFic29sdXRlLXNpemU+IHwgPHJlbGF0aXZlLXNpemU+IHwgPGxl
bmd0aD4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA+PSBDU1NWYWx1
ZVh4U21hbGwgJiYgaWQgPD0gQ1NTVmFsdWVMYXJnZXIpCi0gICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAodmFsaWRVbml0KHZhbHVlLCBG
TGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0KSk7CisgICAgICAgICAgICB2YWxpZFBy
aW1pdGl2ZSA9ICh2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBlcmNlbnR8Rk5vbk5lZywgbV9z
dHJpY3QpKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0eWxl
OiAgICAgICAgICAgLy8gbm9ybWFsIHwgaXRhbGljIHwgb2JsaXF1ZSB8IGluaGVyaXQKQEAgLTEw
MDUsMTggKzEwMDUsMTggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwg
Ym9vbCBpbXBvcnRhbnQpCiAgICAgICAgIC8vIDxwZXJjZW50YWdlPiB8IDxsZW5ndGg+IHwgaW5o
ZXJpdAogCiAgICAgICAgIGlmIChpZCA+PSBDU1NWYWx1ZUJhc2VsaW5lICYmIGlkIDw9IENTU1Zh
bHVlV2Via2l0QmFzZWxpbmVNaWRkbGUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxl
bmd0aHxGUGVyY2VudCwgbV9zdHJpY3QpKTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
KCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBlcmNlbnQsIG1fc3RyaWN0KSk7CiAg
ICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUhlaWdodDogICAgICAgICAgICAg
ICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGF1dG8gfCBpbmhlcml0CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdpZHRoOiAgICAgICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdl
PiB8IGF1dG8gfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQg
PT0gQ1NTVmFsdWVJbnRyaW5zaWMgfHwgaWQgPT0gQ1NTVmFsdWVNaW5JbnRyaW5zaWMpCi0gICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICAvLyAjIyMgaGFuZGxlIG11bHRp
bGVuZ3RoIGNhc2Ugd2hlcmUgd2UgYWxsb3cgcmVsYXRpdmUgdW5pdHMKLSAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50
fEZOb25OZWcsIG1fc3RyaWN0KSk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQg
JiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0KSk7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvdHRvbTogICAgICAgICAg
ICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGF1dG8gfCBpbmhlcml0CkBAIC0xMDI5
LDM4ICsxMDI5LDM4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJv
b2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5MZWZ0OiAgICAgICAgICAv
Ly8vCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpblN0YXJ0OgogICAgICAgICBpZiAo
aWQgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8
RlBlcmNlbnQsIG1fc3RyaWN0KSk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQg
JiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50LCBtX3N0cmljdCkpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlaSW5kZXg6ICAgICAgICAgICAgICAvLyBh
dXRvIHwgPGludGVnZXI+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRv
KSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgLyogbm9icmVhayAqLwogICAgIGNhc2UgQ1NTUHJvcGVydHlPcnBoYW5zOiAgICAgICAgICAg
ICAgLy8gPGludGVnZXI+IHwgaW5oZXJpdAogICAgIGNhc2UgQ1NTUHJvcGVydHlXaWRvd3M6ICAg
ICAgICAgICAgICAgLy8gPGludGVnZXI+IHwgaW5oZXJpdAogICAgICAgICAvLyAjIyMgbm90IHN1
cHBvcnRlZCBsYXRlciBvbgotICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAoIWlkICYmIHZhbGlk
VW5pdCh2YWx1ZSwgRkludGVnZXIsIGZhbHNlKSk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
KCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyLCBmYWxzZSkpOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlMaW5lSGVpZ2h0OiAgICAgICAgICAvLyBub3JtYWwg
fCA8bnVtYmVyPiB8IDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAgICAgICBp
ZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRk51
bWJlcnxGTGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0KSk7CisgICAgICAgICAgICB2
YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyfEZMZW5ndGh8
RlBlcmNlbnR8Rk5vbk5lZywgbV9zdHJpY3QpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eUNvdW50ZXJJbmNyZW1lbnQ6ICAgIC8vIFsgPGlkZW50aWZpZXI+IDxpbnRlZ2Vy
Pj8gXSsgfCBub25lIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgIT0gQ1NTVmFsdWVOb25lKQog
ICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ291bnRlcihwcm9wSWQsIDEsIGltcG9ydGFudCk7Ci0g
ICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgQ1NTUHJvcGVydHlDb3VudGVyUmVzZXQ6
ICAgICAgICAvLyBbIDxpZGVudGlmaWVyPiA8aW50ZWdlcj4/IF0rIHwgbm9uZSB8IGluaGVyaXQK
ICAgICAgICAgaWYgKGlkICE9IENTU1ZhbHVlTm9uZSkKICAgICAgICAgICAgIHJldHVybiBwYXJz
ZUNvdW50ZXIocHJvcElkLCAwLCBpbXBvcnRhbnQpOwotICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlGb250RmFtaWx5OgogICAgICAgICAvLyBbWyA8ZmFtaWx5LW5h
bWU+IHwgPGdlbmVyaWMtZmFtaWx5PiBdLF0qIFs8ZmFtaWx5LW5hbWU+IHwgPGdlbmVyaWMtZmFt
aWx5Pl0gfCBpbmhlcml0CkBAIC0xMDczLDExICsxMDczLDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdDoKICAgICAgICAgLy8gbm9uZSB8IFsgdW5k
ZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaCB8fCBibGluayBdIHwgaW5oZXJpdAog
ICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lKSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1Zh
bHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgIGJvb2wgaXNfdmFs
aWQgPSB0cnVlOwotICAgICAgICAgICAgd2hpbGUgKGlzX3ZhbGlkICYmIHZhbHVlKSB7CisgICAg
ICAgICAgICBib29sIGlzVmFsaWQgPSB0cnVlOworICAgICAgICAgICAgd2hpbGUgKGlzVmFsaWQg
JiYgdmFsdWUpIHsKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5pZCkgewogICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVCbGluazoKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC0xMDg3LDExICsxMDg3LDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBw
cm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQo
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUtPmlkKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICAgICAgICAgIGlzX3ZhbGlkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGlzVmFsaWQg
PSBmYWxzZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBtX3Zh
bHVlTGlzdC0+bmV4dCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxpc3QtPmxl
bmd0aCgpICYmIGlzX3ZhbGlkKSB7CisgICAgICAgICAgICBpZiAobGlzdC0+bGVuZ3RoKCkgJiYg
aXNWYWxpZCkgewogICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gbGlzdC5yZWxlYXNlKCk7
CiAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICAgICAgICAgIH0KQEAg
LTExMDAsMTQgKzExMDAsMTQgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQpCiAKICAgICBjYXNlIENTU1Byb3BlcnR5Wm9vbTogICAgICAgICAg
Ly8gbm9ybWFsIHwgcmVzZXQgfCBkb2N1bWVudCB8IDxudW1iZXI+IHwgPHBlcmNlbnRhZ2U+IHwg
aW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFs
dWVSZXNldCB8fCBpZCA9PSBDU1NWYWx1ZURvY3VtZW50KQotICAgICAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQo
dmFsdWUsIEZOdW1iZXIgfCBGUGVyY2VudCB8IEZOb25OZWcsIHRydWUpKTsKKyAgICAgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXIgfCBGUGVy
Y2VudCB8IEZOb25OZWcsIHRydWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNh
c2UgQ1NTUHJvcGVydHlUYWJsZUxheW91dDogICAgICAgICAvLyBhdXRvIHwgZml4ZWQgfCBpbmhl
cml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVGaXhl
ZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVNyYzogIC8vIE9ubHkgdXNlZCB3aXRoaW4gQGZvbnQtZmFjZSwgc28gY2Fubm90IHVzZSBpbmhl
cml0IHwgaW5pdGlhbCBvciBiZSAhaW1wb3J0YW50LiAgVGhpcyBpcyBhIGxpc3Qgb2YgdXJscyBv
ciBsb2NhbCByZWZlcmVuY2VzLgpAQCAtMTExOSwxMyArMTExOSwxMyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAvKiBDU1MzIHBy
b3BlcnRpZXMgKi8KICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QXBwZWFyYW5jZToKICAgICAg
ICAgaWYgKChpZCA+PSBDU1NWYWx1ZUNoZWNrYm94ICYmIGlkIDw9IENTU1ZhbHVlVGV4dGFyZWEp
IHx8IGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRy
dWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJpbmRpbmc6CiAjaWYgRU5BQkxFKFhCTCkKICAg
ICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gdmFsdWVzID0gQ1NTVmFsdWVM
aXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgQ1NTUGFyc2VyVmFsdWUq
IHZhbDsKQEAgLTExNTksNyArMTE1OSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGlu
dCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3Jk
ZXJJbWFnZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0JveEltYWdlOgogICAgICAg
ICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChw
YXJzZUJvcmRlckltYWdlKHByb3BJZCwgaW1wb3J0YW50LCByZXN1bHQpKSB7CkBAIC0xMTc0LDE1
ICsxMTc0LDE1IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21SaWdodFJhZGl1czog
ewogICAgICAgICBpZiAobnVtICE9IDEgJiYgbnVtICE9IDIpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0
aCwgbV9zdHJpY3QpOwotICAgICAgICBpZiAoIXZhbGlkX3ByaW1pdGl2ZSkKKyAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0KTsKKyAgICAg
ICAgaWYgKCF2YWxpZFByaW1pdGl2ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVz
KXZhbHVlLT51bml0KTsKICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRW
YWx1ZTI7CiAgICAgICAgIGlmIChudW0gPT0gMikgewogICAgICAgICAgICAgdmFsdWUgPSBtX3Zh
bHVlTGlzdC0+bmV4dCgpOwotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0
KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7Ci0gICAgICAgICAgICBpZiAoIXZhbGlkX3ByaW1p
dGl2ZSkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVu
Z3RoLCBtX3N0cmljdCk7CisgICAgICAgICAgICBpZiAoIXZhbGlkUHJpbWl0aXZlKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHBhcnNlZFZhbHVlMiA9IENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZXMpdmFsdWUtPnVuaXQpOwogICAgICAgICB9IGVsc2UKQEAgLTExOTcsNTkgKzExOTcs
NTkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclJhZGl1czoKICAgICAgICAgcmV0
dXJuIHBhcnNlQm9yZGVyUmFkaXVzKHByb3BJZCwgaW1wb3J0YW50KTsKICAgICBjYXNlIENTU1By
b3BlcnR5T3V0bGluZU9mZnNldDoKLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0
KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFs
aWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ1NTUHJvcGVydHlUZXh0U2hhZG93OiAvLyBDU1MyIHByb3BlcnR5LCBkcm9wcGVkIGluIENT
UzIuMSwgYmFjayBpbiBDU1MzLCBzbyB0cmVhdCBhcyBDU1MzCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEJveFNoYWRvdzoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAg
ICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiBwYXJzZVNoYWRvdyhw
cm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRCb3hSZWZsZWN0OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlUmVmbGVjdChw
cm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlP
cGFjaXR5OgotICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZOdW1i
ZXIsIG1fc3RyaWN0KTsKKyAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUs
IEZOdW1iZXIsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEJveEFsaWduOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVTdHJldGNoIHx8IGlk
ID09IENTU1ZhbHVlU3RhcnQgfHwgaWQgPT0gQ1NTVmFsdWVFbmQgfHwKICAgICAgICAgICAgIGlk
ID09IENTU1ZhbHVlQ2VudGVyIHx8IGlkID09IENTU1ZhbHVlQmFzZWxpbmUpCi0gICAgICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0
cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94RGlyZWN0
aW9uOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVS
ZXZlcnNlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEJveExpbmVzOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVTaW5nbGUgfHwg
aWQgPT0gQ1NTVmFsdWVNdWx0aXBsZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRy
dWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hPcmllbnQ6CiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZUhvcml6b250YWwgfHwgaWQgPT0gQ1NTVmFsdWVWZXJ0aWNhbCB8fAogICAgICAgICAg
ICAgaWQgPT0gQ1NTVmFsdWVJbmxpbmVBeGlzIHx8IGlkID09IENTU1ZhbHVlQmxvY2tBeGlzKQot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEJveFBhY2s6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVN0YXJ0IHx8IGlkID09IENTU1Zh
bHVlRW5kIHx8CiAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZUNlbnRlciB8fCBpZCA9PSBDU1NW
YWx1ZUp1c3RpZnkpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0Qm94RmxleDoKLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRV
bml0KHZhbHVlLCBGTnVtYmVyLCBtX3N0cmljdCk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hGbGV4R3JvdXA6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEJveE9yZGluYWxHcm91cDoKLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRV
bml0KHZhbHVlLCBGSW50ZWdlcnxGTm9uTmVnLCB0cnVlKTsKKyAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyfEZOb25OZWcsIHRydWUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94U2l6aW5nOgotICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSBpZCA9PSBDU1NWYWx1ZUJvcmRlckJveCB8fCBpZCA9PSBDU1NWYWx1ZUNv
bnRlbnRCb3g7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gaWQgPT0gQ1NTVmFsdWVCb3JkZXJC
b3ggfHwgaWQgPT0gQ1NTVmFsdWVDb250ZW50Qm94OwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0Q29sb3JDb3JyZWN0aW9uOgotICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSBpZCA9PSBDU1NWYWx1ZVNyZ2IgfHwgaWQgPT0gQ1NTVmFsdWVEZWZhdWx0OworICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IGlkID09IENTU1ZhbHVlU3JnYiB8fCBpZCA9PSBDU1NWYWx1ZURl
ZmF1bHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVl
OiB7CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzVdID0geyBDU1NQcm9wZXJ0eVdlYmtp
dE1hcnF1ZWVEaXJlY3Rpb24sIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZUluY3JlbWVudCwKQEAg
LTEyNjEsNzEgKzEyNjEsNzEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUZvcndhcmRzIHx8
IGlkID09IENTU1ZhbHVlQmFja3dhcmRzIHx8IGlkID09IENTU1ZhbHVlQWhlYWQgfHwKICAgICAg
ICAgICAgIGlkID09IENTU1ZhbHVlUmV2ZXJzZSB8fCBpZCA9PSBDU1NWYWx1ZUxlZnQgfHwgaWQg
PT0gQ1NTVmFsdWVSaWdodCB8fCBpZCA9PSBDU1NWYWx1ZURvd24gfHwKICAgICAgICAgICAgIGlk
ID09IENTU1ZhbHVlVXAgfHwgaWQgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVJbmNyZW1lbnQ6
CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVNtYWxsIHx8IGlkID09IENTU1ZhbHVlTGFyZ2Ug
fHwgaWQgPT0gQ1NTVmFsdWVNZWRpdW0pCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBl
cmNlbnQsIG1fc3RyaWN0KTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0
KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50LCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3R5bGU6CiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVTbGlkZSB8fCBpZCA9PSBDU1NWYWx1ZVNjcm9s
bCB8fCBpZCA9PSBDU1NWYWx1ZUFsdGVybmF0ZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlUmVwZXRpdGlvbjoKICAgICAg
ICAgaWYgKGlkID09IENTU1ZhbHVlSW5maW5pdGUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZJbnRl
Z2VyfEZOb25OZWcsIG1fc3RyaWN0KTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFs
aWRVbml0KHZhbHVlLCBGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3BlZWQ6CiAgICAgICAgIGlmIChp
ZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVNsb3cgfHwgaWQgPT0gQ1NTVmFs
dWVGYXN0KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGVGltZXxGSW50ZWdlcnxGTm9uTmVnLCBtX3N0
cmljdCk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRlRp
bWV8RkludGVnZXJ8Rk5vbk5lZywgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsKICNpZiBFTkFC
TEUoV0NTUykKICAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZURpcjoKICAgICAgICAgaWYg
KGlkID09IENTU1ZhbHVlTHRyIHx8IGlkID09IENTU1ZhbHVlUnRsKQotICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVTdHlsZToKICAg
ICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZVNsaWRlIHx8IGlk
ID09IENTU1ZhbHVlU2Nyb2xsIHx8IGlkID09IENTU1ZhbHVlQWx0ZXJuYXRlKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVMb29w
OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVJbmZpbml0ZSkKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1
ZSwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0cmljdCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3BlZWQ6CiAgICAg
ICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVNsb3cgfHwgaWQg
PT0gQ1NTVmFsdWVGYXN0KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGVGltZSB8IEZJbnRlZ2VyIHwg
Rk5vbk5lZywgbV9zdHJpY3QpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVu
aXQodmFsdWUsIEZUaW1lIHwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0cmljdCk7CiAgICAgICAg
IGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnOiAvLyBh
dXRvIHwgbm9uZSB8IGVsZW1lbnQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBp
ZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVFbGVtZW50KQotICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnk6
IC8vIHJlYWQtb25seSB8IHJlYWQtd3JpdGUKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlUmVh
ZE9ubHkgfHwgaWQgPT0gQ1NTVmFsdWVSZWFkV3JpdGUgfHwgaWQgPT0gQ1NTVmFsdWVSZWFkV3Jp
dGVQbGFpbnRleHRPbmx5KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3Q6IC8vIGF1dG8gfCBub25lIHwgdGV4dAogICAg
ICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9
PSBDU1NWYWx1ZVRleHQpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAg
ICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU1Byb3BlcnR5VGV4dE92ZXJmbG93OiAvLyBjbGlwIHwgZWxsaXBzaXMKICAgICAgICAgaWYg
KGlkID09IENTU1ZhbHVlQ2xpcCB8fCBpZCA9PSBDU1NWYWx1ZUVsbGlwc2lzKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9y
bToKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsID0gcGFyc2VU
cmFuc2Zvcm0oKTsKICAgICAgICAgICAgIGlmICh2YWwpIHsKQEAgLTEzNTUsMTUgKzEzNTUsMTUg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQp
CiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1TdHlsZToKICAgICAg
ICAgaWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUZsYXQgfHwgdmFsdWUtPmlkID09IENTU1ZhbHVl
UHJlc2VydmUzZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRCYWNrZmFjZVZpc2liaWxpdHk6CiAgICAgICAgIGlmICh2YWx1ZS0+aWQg
PT0gQ1NTVmFsdWVWaXNpYmxlIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUhpZGRlbikKLSAgICAg
ICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQZXJz
cGVjdGl2ZToKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gQWNjZXB0aW5nIHZhbHVlbGVzcyBudW1i
ZXJzIGlzIGEgcXVpcmsgb2YgdGhlIC13ZWJraXQgcHJlZml4ZWQgdmVyc2lvbiBvZiB0aGUgcHJv
cGVydHkuCiAgICAgICAgICAgICBpZiAodmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyfEZMZW5ndGh8
Rk5vbk5lZywgbV9zdHJpY3QpKSB7CkBAIC0xNDMwLDEzICsxNDMwLDEzIEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRNYXJnaW5Ub3BDb2xsYXBzZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0TWFyZ2luQm90dG9tQ29sbGFwc2U6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUNvbGxh
cHNlIHx8IGlkID09IENTU1ZhbHVlU2VwYXJhdGUgfHwgaWQgPT0gQ1NTVmFsdWVEaXNjYXJkKQot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRM
aW5lVGhyb3VnaE1vZGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRPdmVybGluZU1vZGU6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRVbmRlcmxpbmVNb2RlOgogICAgICAgICBpZiAoaWQgPT0g
Q1NTVmFsdWVDb250aW51b3VzIHx8IGlkID09IENTU1ZhbHVlU2tpcFdoaXRlU3BhY2UpCi0gICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dExpbmVU
aHJvdWdoU3R5bGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRPdmVybGluZVN0eWxlOgpAQCAt
MTQ0NCw1MCArMTQ0NCw1MCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElk
LCBib29sIGltcG9ydGFudCkKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9
PSBDU1NWYWx1ZVNvbGlkIHx8IGlkID09IENTU1ZhbHVlRG91YmxlIHx8CiAgICAgICAgICAgICBp
ZCA9PSBDU1NWYWx1ZURhc2hlZCB8fCBpZCA9PSBDU1NWYWx1ZURvdERhc2ggfHwgaWQgPT0gQ1NT
VmFsdWVEb3REb3REYXNoIHx8CiAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZVdhdmUpCi0gICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFJlbmRl
cmluZzogLy8gYXV0byB8IG9wdGltaXplU3BlZWQgfCBvcHRpbWl6ZUxlZ2liaWxpdHkgfCBnZW9t
ZXRyaWNQcmVjaXNpb24KICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBD
U1NWYWx1ZU9wdGltaXplc3BlZWQgfHwgaWQgPT0gQ1NTVmFsdWVPcHRpbWl6ZWxlZ2liaWxpdHkK
ICAgICAgICAgICAgIHx8IGlkID09IENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uKQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhy
b3VnaFdpZHRoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0T3ZlcmxpbmVXaWR0aDoKICAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dFVuZGVybGluZVdpZHRoOgogICAgICAgICBpZiAoaWQgPT0gQ1NT
VmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVlVGhpbiB8
fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVNZWRpdW0gfHwgaWQgPT0gQ1NTVmFsdWVUaGlj
aykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9ICFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXJ8Rkxlbmd0aHxGUGVyY2VudCwg
bV9zdHJpY3QpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAhaWQgJiYgdmFsaWRVbml0
KHZhbHVlLCBGTnVtYmVyfEZMZW5ndGh8RlBlcmNlbnQsIG1fc3RyaWN0KTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6ZTogLy8gbm9uZSB8IGJvdGggfCBob3Jpem9u
dGFsIHwgdmVydGljYWwgfCBhdXRvCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwg
aWQgPT0gQ1NTVmFsdWVCb3RoIHx8IGlkID09IENTU1ZhbHVlSG9yaXpvbnRhbCB8fCBpZCA9PSBD
U1NWYWx1ZVZlcnRpY2FsIHx8IGlkID09IENTU1ZhbHVlQXV0bykKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5Db3VudDoKICAg
ICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0bykKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICFpZCAmJiB2YWxpZFVuaXQodmFsdWUs
IEZJbnRlZ2VyIHwgRk5vbk5lZywgZmFsc2UpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSAhaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciB8IEZOb25OZWcsIGZhbHNlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdENvbHVtbkdhcDogICAgICAg
ICAvLyBub3JtYWwgfCA8bGVuZ3RoPgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwp
Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGggfCBGTm9uTmVnLCBtX3N0cmljdCk7CisgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZOb25O
ZWcsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dENvbHVtbldpZHRoOiAgICAgICAgIC8vIGF1dG8gfCA8bGVuZ3RoPgogICAgICAgICBpZiAoaWQg
PT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZSAvLyBBbHdheXMg
cGFyc2UgdGhpcyBwcm9wZXJ0eSBpbiBzdHJpY3QgbW9kZSwgc2luY2UgaXQgd291bGQgYmUgYW1i
aWd1b3VzIG90aGVyd2lzZSB3aGVuIHVzZWQgaW4gdGhlICdjb2x1bW5zJyBzaG9ydGhhbmQgcHJv
cGVydHkuCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZM
ZW5ndGgsIHRydWUpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFs
dWUsIEZMZW5ndGgsIHRydWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
UG9pbnRlckV2ZW50czoKICAgICAgICAgLy8gbm9uZSB8IHZpc2libGVQYWludGVkIHwgdmlzaWJs
ZUZpbGwgfCB2aXNpYmxlU3Ryb2tlIHwgdmlzaWJsZSB8CiAgICAgICAgIC8vIHBhaW50ZWQgfCBm
aWxsIHwgc3Ryb2tlIHwgYXV0byB8IGFsbCB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENT
U1ZhbHVlVmlzaWJsZSB8fCBpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVBbGwg
fHwgaWQgPT0gQ1NTVmFsdWVBdXRvIHx8CiAgICAgICAgICAgICAoaWQgPj0gQ1NTVmFsdWVWaXNp
YmxlcGFpbnRlZCAmJiBpZCA8PSBDU1NWYWx1ZVN0cm9rZSkpCi0gICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgIC8vIEVuZCBvZiBDU1MzIHByb3BlcnRpZXMK
QEAgLTE0OTcsNTYgKzE0OTcsNTYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHBy
b3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVDbGFt
cDoKICAgICAgICAgLy8gV2hlbiBzcGVjaWZ5aW5nIG51bWJlciBvZiBsaW5lcywgZG9uJ3QgYWxs
b3cgMCBhcyBhIHZhbGlkIHZhbHVlCiAgICAgICAgIC8vIFdoZW4gc3BlY2lmeWluZyBlaXRoZXIg
dHlwZSBvZiB1bml0LCByZXF1aXJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VycwotICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSAoIWlkICYmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BFUkNFTlRBR0UgfHwgdmFsdWUtPmZWYWx1ZSkgJiYgdmFsaWRVbml0KHZhbHVlLCBGSW50
ZWdlciB8IEZQZXJjZW50IHwgRk5vbk5lZywgZmFsc2UpKTsKKyAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSAoIWlkICYmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNF
TlRBR0UgfHwgdmFsdWUtPmZWYWx1ZSkgJiYgdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciB8IEZQ
ZXJjZW50IHwgRk5vbk5lZywgZmFsc2UpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdFRleHRTaXplQWRqdXN0OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVB
dXRvIHx8IGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRSdGxPcmRlcmluZzoKICAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlTG9naWNhbCB8fCBpZCA9PSBDU1NWYWx1ZVZpc3VhbCkKLSAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRy
dWU7CiAgICAgICAgIGJyZWFrOwogICAgIAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250
U2l6ZURlbHRhOiAgICAgICAgICAgLy8gPGxlbmd0aD4KLSAgICAgICAgdmFsaWRfcHJpbWl0aXZl
ID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7CisgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7CiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlOiAgICAgLy8gbm9ybWFs
IHwgc3BhY2UKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09IENTU1Zh
bHVlU3BhY2UpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAg
ICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRMaW5lQnJlYWs6ICAgLy8gbm9ybWFsIHwgYWZ0ZXItd2hpdGUtc3BhY2UK
ICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVlQWZ0ZXJX
aGl0ZVNwYWNlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWF0Y2hOZWFyZXN0TWFpbEJsb2NrcXVvdGVDb2xvcjogICAvLyBub3Jt
YWwgfCBtYXRjaAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NT
VmFsdWVNYXRjaCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEhpZ2hsaWdodDoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9u
ZSB8fCB2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykKLSAgICAg
ICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRCb3JkZXJGaXQ6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUJvcmRlciB8fCBpZCA9PSBD
U1NWYWx1ZUxpbmVzKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0U2VjdXJpdHk6CiAgICAgICAgIC8vIGRpc2Mg
fCBjaXJjbGUgfCBzcXVhcmUgfCBub25lIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NT
VmFsdWVEaXNjIHx8IGlkID09IENTU1ZhbHVlQ2lyY2xlIHx8IGlkID09IENTU1ZhbHVlU3F1YXJl
fHwgaWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNtb290aGluZzoKICAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZU5vbmUgCiAgICAgICAgICAgICB8fCBp
ZCA9PSBDU1NWYWx1ZUFudGlhbGlhc2VkIHx8IGlkID09IENTU1ZhbHVlU3VicGl4ZWxBbnRpYWxp
YXNlZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2
YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAjaWYgRU5BQkxFKERBU0hC
T0FSRF9TVVBQT1JUKQpAQCAtMTY1NCw3ICsxNjU0LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIC8vIFsgWyAnZm9udC1z
dHlsZScgfHwgJ2ZvbnQtdmFyaWFudCcgfHwgJ2ZvbnQtd2VpZ2h0JyBdPyAnZm9udC1zaXplJyBb
IC8gJ2xpbmUtaGVpZ2h0JyBdPwogICAgICAgICAvLyAnZm9udC1mYW1pbHknIF0gfCBjYXB0aW9u
IHwgaWNvbiB8IG1lbnUgfCBtZXNzYWdlLWJveCB8IHNtYWxsLWNhcHRpb24gfCBzdGF0dXMtYmFy
IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPj0gQ1NTVmFsdWVDYXB0aW9uICYmIGlkIDw9IENT
U1ZhbHVlU3RhdHVzQmFyKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgcmV0dXJuIHBhcnNlRm9udChpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKQEAgLTE2OTYs
NyArMTY5Niw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogI2VuZGlmCiAgICAgfQogCi0gICAgaWYgKHZhbGlkX3ByaW1pdGl2ZSkgewor
ICAgIGlmICh2YWxpZFByaW1pdGl2ZSkgewogICAgICAgICBpZiAoaWQgIT0gMCkKICAgICAgICAg
ICAgIHBhcnNlZFZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoaWQp
OwogICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1NUUklORykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48626</attachid>
            <date>2010-02-11 22:12:33 -0800</date>
            <delta_ts>2010-02-11 22:20:11 -0800</delta_ts>
            <desc>Rename underscored identifiers in WebCore/css/CSSParser.cpp.</desc>
            <filename>bug-34877-20100212151231.patch</filename>
            <type>text/plain</type>
            <size>41896</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzkwYzFjNC4uMTQ2ODYwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMi0xMSAgWXV6byBGdWppc2hp
bWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lIHVuZGVyc2NvcmVkIGlkZW50aWZpZXJzIGluIFdlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDg3NworICAgICAgICBBbHNvIGZpeCB3aGl0ZXNwYWNlIGVycm9zIHRoYXQg
c3VyZmFjZSBkdWUgdG8gdGhlIGFib3ZlIGZpeC4KKworICAgICAgICBUaGlzIGRvZXNuJ3QgY2hh
bmdlIHRoZSBjb2RlIGxvZ2ljLiBIZW5jZSBubyBuZXcgdGVzdHMgYXJlIHJlcXVpcmVkLgorCisg
ICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlVmFsdWUpOgorCiAyMDEwLTAyLTExICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFu
eTEwMC5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApp
bmRleCBjYTA3NjgyLi5lYzU5MDU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTU3MSw3ICs1NzEsNyBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgYm9vbCB2YWxpZF9wcmltaXRpdmUgPSBm
YWxzZTsKKyAgICBib29sIHZhbGlkUHJpbWl0aXZlID0gZmFsc2U7CiAgICAgUmVmUHRyPENTU1Zh
bHVlPiBwYXJzZWRWYWx1ZTsKIAogICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJ
RD4ocHJvcElkKSkgewpAQCAtNTg3LDEzICs1ODcsMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNp
emU6ICAgICAgICAgICAgICAgICAvLyA8bGVuZ3RoPnsxLDJ9IHwgYXV0byB8IHBvcnRyYWl0IHwg
bGFuZHNjYXBlIHwgaW5oZXJpdAogICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6ICAgICAgICAg
ICAgICAgLy8gWzxzdHJpbmc+IDxzdHJpbmc+XSsgfCBub25lIHwgaW5oZXJpdAogICAgICAgICBp
ZiAoaWQpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAg
dmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3Bl
cnR5VW5pY29kZUJpZGk6ICAgICAgICAgLy8gbm9ybWFsIHwgZW1iZWQgfCBiaWRpLW92ZXJyaWRl
IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwKICAgICAgICAg
ICAgICBpZCA9PSBDU1NWYWx1ZUVtYmVkIHx8CiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVC
aWRpT3ZlcnJpZGUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q1NTUHJvcGVydHlQb3NpdGlvbjogICAgICAgICAgICAgLy8gc3RhdGljIHwgcmVsYXRpdmUgfCBh
YnNvbHV0ZSB8IGZpeGVkIHwgaW5oZXJpdApAQCAtNjAxLDcgKzYwMSw3IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAg
IGlkID09IENTU1ZhbHVlUmVsYXRpdmUgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZUFi
c29sdXRlIHx8CiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVGaXhlZCkKLSAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRy
dWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZ2VCcmVha0FmdGVy
OiAgICAgLy8gYXV0byB8IGFsd2F5cyB8IGF2b2lkIHwgbGVmdCB8IHJpZ2h0IHwgaW5oZXJpdApA
QCAtNjEzLDE5ICs2MTMsMTkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVBdm9pZCB8fAog
ICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlTGVmdCB8fAogICAgICAgICAgICAgIGlkID09IENT
U1ZhbHVlUmlnaHQpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q1NTUHJvcGVydHlQYWdlQnJlYWtJbnNpZGU6ICAgIC8vIGF2b2lkIHwgYXV0byB8IGluaGVyaXQK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uQnJlYWtJbnNpZGU6CiAgICAgICAgIGlm
IChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVBdm9pZCkKLSAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRy
dWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUVtcHR5Q2VsbHM6ICAg
ICAgICAgIC8vIHNob3cgfCBoaWRlIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFs
dWVTaG93IHx8CiAgICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVIaWRlKQotICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Q29udGVudDogICAgICAg
ICAgICAgIC8vIFsgPHN0cmluZz4gfCA8dXJpPiB8IDxjb3VudGVyPiB8IGF0dHIoWCkgfCBvcGVu
LXF1b3RlIHwKQEAgLTYzOCwxMiArNjM4LDEyIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVl
KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVQ
cmVXcmFwIHx8CiAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1ZVByZUxpbmUgfHwKICAgICAgICAg
ICAgIGlkID09IENTU1ZhbHVlTm93cmFwKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDogICAgICAgICAgICAgICAgIC8vIDxzaGFwZT4g
fCBhdXRvIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6
OkZ1bmN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlU2hhcGUocHJvcElkLCBpbXBvcnRh
bnQpOwogICAgICAgICBicmVhazsKQEAgLTY1NCwxNyArNjU0LDE3IEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJv
cGVydHlDYXB0aW9uU2lkZTogICAgICAgICAvLyB0b3AgfCBib3R0b20gfCBsZWZ0IHwgcmlnaHQg
fCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUxlZnQgfHwgaWQgPT0gQ1NTVmFs
dWVSaWdodCB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVUb3AgfHwgaWQgPT0gQ1NTVmFs
dWVCb3R0b20pCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAg
ICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJDb2xsYXBzZTogICAgICAvLyBjb2xsYXBzZSB8IHNlcGFyYXRlIHwgaW5o
ZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVDb2xsYXBzZSB8fCBpZCA9PSBDU1NWYWx1
ZVNlcGFyYXRlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENT
U1Byb3BlcnR5VmlzaWJpbGl0eTogICAgICAgICAgIC8vIHZpc2libGUgfCBoaWRkZW4gfCBjb2xs
YXBzZSB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlVmlzaWJsZSB8fCBpZCA9
PSBDU1NWYWx1ZUhpZGRlbiB8fCBpZCA9PSBDU1NWYWx1ZUNvbGxhcHNlKQotICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6IHsKQEAg
LTY3OSwxOSArNjc5LDE5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQs
IGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6ICAgICAgICAg
ICAvLyB2aXNpYmxlIHwgaGlkZGVuIHwgc2Nyb2xsIHwgYXV0byB8IG1hcnF1ZWUgfCBvdmVybGF5
IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IGlkID09IENT
U1ZhbHVlSGlkZGVuIHx8IGlkID09IENTU1ZhbHVlU2Nyb2xsIHx8IGlkID09IENTU1ZhbHVlQXV0
byB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVPdmVybGF5IHx8IGlkID09IENTU1ZhbHVl
V2Via2l0TWFycXVlZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZVBvc2l0aW9uOiAgLy8gaW5zaWRlIHwgb3V0c2lkZSB8IGlu
aGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlSW5zaWRlIHx8IGlkID09IENTU1ZhbHVl
T3V0c2lkZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUxpc3RTdHlsZVR5cGU6CiAgICAgICAgIC8vIFNlZSBzZWN0aW9uIENTU19QUk9QX0xJ
U1RfU1RZTEVfVFlQRSBvZiBmaWxlIENTU1ZhbHVlS2V5d29yZHMuaW4KICAgICAgICAgLy8gZm9y
IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBsaXN0LXN0eWxlLXR5cGVzLgogICAgICAgICBpZiAoKGlk
ID49IENTU1ZhbHVlRGlzYyAmJiBpZCA8PSBDU1NWYWx1ZUthdGFrYW5hSXJvaGEpIHx8IGlkID09
IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eURpc3BsYXk6CkBAIC03MDMsNDEgKzcwMyw0MSBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICNlbHNlCiAgICAgICAg
IGlmICgoaWQgPj0gQ1NTVmFsdWVJbmxpbmUgJiYgaWQgPD0gQ1NTVmFsdWVXZWJraXRJbmxpbmVC
b3gpIHx8IGlkID09IENTU1ZhbHVlTm9uZSkKICNlbmRpZgotICAgICAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5RGlyZWN0aW9uOiAgICAgICAgICAgIC8v
IGx0ciB8IHJ0bCB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTHRyIHx8IGlk
ID09IENTU1ZhbHVlUnRsKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dFRyYW5zZm9ybTogICAgICAgLy8gY2FwaXRhbGl6ZSB8IHVwcGVy
Y2FzZSB8IGxvd2VyY2FzZSB8IG5vbmUgfCBpbmhlcml0CiAgICAgICAgIGlmICgoaWQgPj0gQ1NT
VmFsdWVDYXBpdGFsaXplICYmIGlkIDw9IENTU1ZhbHVlTG93ZXJjYXNlKSB8fCBpZCA9PSBDU1NW
YWx1ZU5vbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAg
ICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NT
UHJvcGVydHlGbG9hdDogICAgICAgICAgICAgICAgLy8gbGVmdCB8IHJpZ2h0IHwgbm9uZSB8IGlu
aGVyaXQgKyBjZW50ZXIgZm9yIGJ1Z2d5IENTUwogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVM
ZWZ0IHx8IGlkID09IENTU1ZhbHVlUmlnaHQgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NWYWx1
ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVDZW50ZXIpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlDbGVhcjogICAgICAgICAgICAgICAgLy8gbm9u
ZSB8IGxlZnQgfCByaWdodCB8IGJvdGggfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NW
YWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVMZWZ0IHx8CiAgICAgICAgICAgICAgaWQgPT0gQ1NT
VmFsdWVSaWdodHx8IGlkID09IENTU1ZhbHVlQm90aCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGlnbjoKICAgICAgICAgLy8gbGVm
dCB8IHJpZ2h0IHwgY2VudGVyIHwganVzdGlmeSB8IHdlYmtpdF9sZWZ0IHwgd2Via2l0X3JpZ2h0
IHwgd2Via2l0X2NlbnRlciB8IHN0YXJ0IHwgZW5kIHwgPHN0cmluZz4gfCBpbmhlcml0CiAgICAg
ICAgIGlmICgoaWQgPj0gQ1NTVmFsdWVXZWJraXRBdXRvICYmIGlkIDw9IENTU1ZhbHVlV2Via2l0
Q2VudGVyKSB8fCBpZCA9PSBDU1NWYWx1ZVN0YXJ0IHx8IGlkID09IENTU1ZhbHVlRW5kIHx8CiAg
ICAgICAgICAgICAgdmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcp
Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlP
dXRsaW5lU3R5bGU6ICAgICAgICAvLyAoPGJvcmRlci1zdHlsZT4gZXhjZXB0IGhpZGRlbikgfCBh
dXRvIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENT
U1ZhbHVlTm9uZSB8fCAoaWQgPj0gQ1NTVmFsdWVJbnNldCAmJiBpZCA8PSBDU1NWYWx1ZURvdWJs
ZSkpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsgCiAgICAgICAgIAogICAgIGNhc2Ug
Q1NTUHJvcGVydHlCb3JkZXJUb3BTdHlsZTogICAgIC8vLy8gPGJvcmRlci1zdHlsZT4gfCBpbmhl
cml0CkBAIC03NDYsNyArNzQ2LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHBy
b3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRTdHls
ZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uUnVsZVN0eWxlOgogICAgICAgICBp
ZiAoaWQgPj0gQ1NTVmFsdWVOb25lICYmIGlkIDw9IENTU1ZhbHVlRG91YmxlKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFdlaWdodDog
IC8vIG5vcm1hbCB8IGJvbGQgfCBib2xkZXIgfCBsaWdodGVyIHwgMTAwIHwgMjAwIHwgMzAwIHwg
NDAwIHwgNTAwIHwgNjAwIHwgNzAwIHwgODAwIHwgOTAwIHwgaW5oZXJpdApAQCAtNzczLDEzICs3
NzMsMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBv
cnRhbnQpCiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJIb3Jpem9udGFs
U3BhY2luZzoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyVmVydGljYWxTcGFjaW5n
OgotICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8Rk5v
bk5lZywgbV9zdHJpY3QpOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1
ZSwgRkxlbmd0aCB8IEZOb25OZWcsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjogICAgICAgIC8vIDxjb2xvcj4gfCBpbnZlcnQgfCBp
bmhlcml0CiAgICAgICAgIC8vIE91dGxpbmUgY29sb3IgaGFzICJpbnZlcnQiIGFzIGFkZGl0aW9u
YWwga2V5d29yZC4KICAgICAgICAgLy8gQWxzbywgd2Ugd2FudCB0byBhbGxvdyB0aGUgc3BlY2lh
bCBmb2N1cyBjb2xvciBldmVuIGluIHN0cmljdCBwYXJzaW5nIG1vZGUuCiAgICAgICAgIGlmIChw
cm9wSWQgPT0gQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3IgJiYgKGlkID09IENTU1ZhbHVlSW52ZXJ0
IHx8IGlkID09IENTU1ZhbHVlV2Via2l0Rm9jdXNSaW5nQ29sb3IpKSB7Ci0gICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVl
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgLyogbm9icmVhayAqLwpA
QCAtNzk2LDEzICs3OTYsMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29s
b3I6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvcjoKICAgICAgICAg
aWYgKGlkID09IENTU1ZhbHVlV2Via2l0VGV4dCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7IC8vIEFsd2F5cyBhbGxvdyB0aGlzLCBldmVuIHdoZW4gc3RyaWN0IHBhcnNpbmcg
aXMgb24sCisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7IC8vIEFsd2F5cyBhbGxv
dyB0aGlzLCBldmVuIHdoZW4gc3RyaWN0IHBhcnNpbmcgaXMgb24sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSB1c2UgdGhpcyBpbiBvdXIgVUEgc2hlZXRz
LgogICAgICAgICBlbHNlIGlmIChpZCA9PSBDU1NWYWx1ZUN1cnJlbnRjb2xvcikKLSAgICAgICAg
ICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9
IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKChpZCA+PSBDU1NWYWx1ZUFxdWEgJiYgaWQgPD0gQ1NT
VmFsdWVXaW5kb3d0ZXh0KSB8fCBpZCA9PSBDU1NWYWx1ZU1lbnUgfHwKICAgICAgICAgICAgICAo
aWQgPj0gQ1NTVmFsdWVXZWJraXRGb2N1c1JpbmdDb2xvciAmJiBpZCA8IENTU1ZhbHVlV2Via2l0
VGV4dCAmJiAhbV9zdHJpY3QpKSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZUNvbG9yKCk7CiAgICAgICAgICAgICBpZiAo
cGFyc2VkVmFsdWUpCkBAIC04NTksOSArODU5LDkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFs
dWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGlkID0gdmFsdWUtPmlkOwog
ICAgICAgICBpZiAoIW1fc3RyaWN0ICYmIHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUhhbmQpIHsgLy8g
TVNJRSA1IGNvbXBhdGliaWxpdHkgOi8KICAgICAgICAgICAgIGlkID0gQ1NTVmFsdWVQb2ludGVy
OwotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIGlmICgodmFsdWUtPmlkID49IENTU1Zh
bHVlQXV0byAmJiB2YWx1ZS0+aWQgPD0gQ1NTVmFsdWVXZWJraXRHcmFiYmluZykgfHwgdmFsdWUt
PmlkID09IENTU1ZhbHVlQ29weSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC05MzksMjcgKzkzOSwyNyBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAg
ICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFdpZHRoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRDb2x1bW5SdWxlV2lkdGg6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVRoaW4gfHwg
aWQgPT0gQ1NTVmFsdWVNZWRpdW0gfHwgaWQgPT0gQ1NTVmFsdWVUaGljaykKLSAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRy
dWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5p
dCh2YWx1ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIENTU1Byb3BlcnR5TGV0dGVyU3BhY2luZzogICAgICAgLy8gbm9ybWFsIHwgPGxl
bmd0aD4gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdvcmRTcGFjaW5nOiAgICAgICAg
IC8vIG5vcm1hbCB8IDxsZW5ndGg+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFs
dWVOb3JtYWwpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAg
ICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0KTsKKyAgICAg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmlj
dCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdvcmRCcmVhazogICAg
ICAgICAgLy8gbm9ybWFsIHwgYnJlYWstYWxsIHwgYnJlYWstd29yZCAodGhpcyBpcyBhIGN1c3Rv
bSBleHRlbnNpb24pCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBD
U1NWYWx1ZUJyZWFrQWxsIHx8IGlkID09IENTU1ZhbHVlQnJlYWtXb3JkKQotICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V29yZFdyYXA6ICAgICAg
ICAgICAvLyBub3JtYWwgfCBicmVhay13b3JkCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5v
cm1hbCB8fCBpZCA9PSBDU1NWYWx1ZUJyZWFrV29yZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6ICAgICAgICAgIC8vIDxs
ZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdApAQCAtOTY4LDMwICs5NjgsMzAgQEAgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206ICAgICAgIC8vICAgPGxlbmd0aD4gfCA8cGVy
Y2VudGFnZT4KICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQ6ICAgICAgICAgLy8vLwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQYWRkaW5nU3RhcnQ6Ci0gICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50LCBtX3N0
cmljdCkpOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVl
LCBGTGVuZ3RoIHwgRlBlcmNlbnQsIG1fc3RyaWN0KSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU1heEhlaWdodDogICAgICAgICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNl
bnRhZ2U+IHwgbm9uZSB8IGluaGVyaXQKICAgICBjYXNlIENTU1Byb3BlcnR5TWF4V2lkdGg6ICAg
ICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBub25lIHwgaW5oZXJpdAogICAg
ICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlSW50cmluc2ljIHx8
IGlkID09IENTU1ZhbHVlTWluSW50cmluc2ljKSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgLyogbm9icmVhayAqLwogICAgIGNhc2UgQ1NT
UHJvcGVydHlNaW5IZWlnaHQ6ICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8
IGluaGVyaXQKICAgICBjYXNlIENTU1Byb3BlcnR5TWluV2lkdGg6ICAgICAgICAgICAgLy8gPGxl
bmd0aD4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1
ZUludHJpbnNpYyB8fCBpZCA9PSBDU1NWYWx1ZU1pbkludHJpbnNpYykKLSAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICghaWQgJiYgdmFs
aWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0KSk7CisgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3Ro
IHwgRlBlcmNlbnQgfCBGTm9uTmVnLCBtX3N0cmljdCkpOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlGb250U2l6ZToKICAgICAgICAgLy8gPGFic29sdXRlLXNpemU+IHwg
PHJlbGF0aXZlLXNpemU+IHwgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0CiAgICAg
ICAgIGlmIChpZCA+PSBDU1NWYWx1ZVh4U21hbGwgJiYgaWQgPD0gQ1NTVmFsdWVMYXJnZXIpCi0g
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSAodmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0KSk7
CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICh2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgg
fCBGUGVyY2VudCB8IEZOb25OZWcsIG1fc3RyaWN0KSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHlsZTogICAgICAgICAgIC8vIG5vcm1hbCB8IGl0YWxpYyB8
IG9ibGlxdWUgfCBpbmhlcml0CkBAIC0xMDA1LDE4ICsxMDA1LDE4IEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAvLyA8cGVy
Y2VudGFnZT4gfCA8bGVuZ3RoPiB8IGluaGVyaXQKIAogICAgICAgICBpZiAoaWQgPj0gQ1NTVmFs
dWVCYXNlbGluZSAmJiBpZCA8PSBDU1NWYWx1ZVdlYmtpdEJhc2VsaW5lTWlkZGxlKQotICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKCFp
ZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBlcmNlbnQsIG1fc3RyaWN0KSk7CisgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3Ro
IHwgRlBlcmNlbnQsIG1fc3RyaWN0KSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUhlaWdodDogICAgICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8
IGF1dG8gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdpZHRoOiAgICAgICAgICAgICAg
ICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGF1dG8gfCBpbmhlcml0CiAgICAgICAgIGlm
IChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVJbnRyaW5zaWMgfHwgaWQgPT0g
Q1NTVmFsdWVNaW5JbnRyaW5zaWMpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAvLyAjIyMgaGFuZGxlIG11bHRpbGVuZ3RoIGNhc2Ugd2hlcmUgd2UgYWxsb3cgcmVs
YXRpdmUgdW5pdHMKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRV
bml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0KSk7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwg
RlBlcmNlbnQgfCBGTm9uTmVnLCBtX3N0cmljdCkpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ1NTUHJvcGVydHlCb3R0b206ICAgICAgICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2Vu
dGFnZT4gfCBhdXRvIHwgaW5oZXJpdApAQCAtMTAyOSwzOCArMTAyOSwzOCBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENT
U1Byb3BlcnR5TWFyZ2luTGVmdDogICAgICAgICAgLy8vLwogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRNYXJnaW5TdGFydDoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0bykKLSAgICAg
ICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICgh
aWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50LCBtX3N0cmljdCkpOworICAg
ICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0
aCB8IEZQZXJjZW50LCBtX3N0cmljdCkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NT
UHJvcGVydHlaSW5kZXg6ICAgICAgICAgICAgICAvLyBhdXRvIHwgPGludGVnZXI+IHwgaW5oZXJp
dAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKSB7Ci0gICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgLyogbm9icmVhayAqLwogICAgIGNh
c2UgQ1NTUHJvcGVydHlPcnBoYW5zOiAgICAgICAgICAgICAgLy8gPGludGVnZXI+IHwgaW5oZXJp
dAogICAgIGNhc2UgQ1NTUHJvcGVydHlXaWRvd3M6ICAgICAgICAgICAgICAgLy8gPGludGVnZXI+
IHwgaW5oZXJpdAogICAgICAgICAvLyAjIyMgbm90IHN1cHBvcnRlZCBsYXRlciBvbgotICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIsIGZh
bHNlKSk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUs
IEZJbnRlZ2VyLCBmYWxzZSkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVy
dHlMaW5lSGVpZ2h0OiAgICAgICAgICAvLyBub3JtYWwgfCA8bnVtYmVyPiB8IDxsZW5ndGg+IHwg
PHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwp
Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRk51bWJlcnxGTGVuZ3RofEZQZXJjZW50fEZO
b25OZWcsIG1fc3RyaWN0KSk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYg
dmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyIHwgRkxlbmd0aCB8IEZQZXJjZW50IHwgRk5vbk5lZywg
bV9zdHJpY3QpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvdW50ZXJJ
bmNyZW1lbnQ6ICAgIC8vIFsgPGlkZW50aWZpZXI+IDxpbnRlZ2VyPj8gXSsgfCBub25lIHwgaW5o
ZXJpdAogICAgICAgICBpZiAoaWQgIT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAgICAgcmV0dXJu
IHBhcnNlQ291bnRlcihwcm9wSWQsIDEsIGltcG9ydGFudCk7Ci0gICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHRydWU7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJl
YWs7CiAgICAgIGNhc2UgQ1NTUHJvcGVydHlDb3VudGVyUmVzZXQ6ICAgICAgICAvLyBbIDxpZGVu
dGlmaWVyPiA8aW50ZWdlcj4/IF0rIHwgbm9uZSB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkICE9
IENTU1ZhbHVlTm9uZSkKICAgICAgICAgICAgIHJldHVybiBwYXJzZUNvdW50ZXIocHJvcElkLCAw
LCBpbXBvcnRhbnQpOwotICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICB2
YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlGb250RmFtaWx5OgogICAgICAgICAvLyBbWyA8ZmFtaWx5LW5hbWU+IHwgPGdlbmVyaWMtZmFt
aWx5PiBdLF0qIFs8ZmFtaWx5LW5hbWU+IHwgPGdlbmVyaWMtZmFtaWx5Pl0gfCBpbmhlcml0CkBA
IC0xMDczLDExICsxMDczLDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3Jh
dGlvbnNJbkVmZmVjdDoKICAgICAgICAgLy8gbm9uZSB8IFsgdW5kZXJsaW5lIHx8IG92ZXJsaW5l
IHx8IGxpbmUtdGhyb3VnaCB8fCBibGluayBdIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0g
Q1NTVmFsdWVOb25lKSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAg
ICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3Bh
Y2VTZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgIGJvb2wgaXNfdmFsaWQgPSB0cnVlOwotICAgICAg
ICAgICAgd2hpbGUgKGlzX3ZhbGlkICYmIHZhbHVlKSB7CisgICAgICAgICAgICBib29sIGlzVmFs
aWQgPSB0cnVlOworICAgICAgICAgICAgd2hpbGUgKGlzVmFsaWQgJiYgdmFsdWUpIHsKICAgICAg
ICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5pZCkgewogICAgICAgICAgICAgICAgIGNhc2UgQ1NT
VmFsdWVCbGluazoKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDg3LDExICsxMDg3
LDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50KQogICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUtPmlkKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGlzX3ZhbGlk
ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxpc3QtPmxlbmd0aCgpICYmIGlzX3ZhbGlk
KSB7CisgICAgICAgICAgICBpZiAobGlzdC0+bGVuZ3RoKCkgJiYgaXNWYWxpZCkgewogICAgICAg
ICAgICAgICAgIHBhcnNlZFZhbHVlID0gbGlzdC5yZWxlYXNlKCk7CiAgICAgICAgICAgICAgICAg
bV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICAgICAgICAgIH0KQEAgLTExMDAsMTQgKzExMDAsMTQg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQp
CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Wm9vbTogICAgICAgICAgLy8gbm9ybWFsIHwgcmVzZXQg
fCBkb2N1bWVudCB8IDxudW1iZXI+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAgICAgICBp
ZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVSZXNldCB8fCBpZCA9PSBD
U1NWYWx1ZURvY3VtZW50KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXIgfCBG
UGVyY2VudCB8IEZOb25OZWcsIHRydWUpKTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
KCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXIgfCBGUGVyY2VudCB8IEZOb25OZWcsIHRy
dWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgQ1NTUHJvcGVydHlUYWJs
ZUxheW91dDogICAgICAgICAvLyBhdXRvIHwgZml4ZWQgfCBpbmhlcml0CiAgICAgICAgIGlmIChp
ZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVGaXhlZCkKLSAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNyYzogIC8vIE9ubHkgdXNl
ZCB3aXRoaW4gQGZvbnQtZmFjZSwgc28gY2Fubm90IHVzZSBpbmhlcml0IHwgaW5pdGlhbCBvciBi
ZSAhaW1wb3J0YW50LiAgVGhpcyBpcyBhIGxpc3Qgb2YgdXJscyBvciBsb2NhbCByZWZlcmVuY2Vz
LgpAQCAtMTExOSwxMyArMTExOSwxMyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQg
cHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAvKiBDU1MzIHByb3BlcnRpZXMgKi8KICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0QXBwZWFyYW5jZToKICAgICAgICAgaWYgKChpZCA+PSBDU1NW
YWx1ZUNoZWNrYm94ICYmIGlkIDw9IENTU1ZhbHVlVGV4dGFyZWEpIHx8IGlkID09IENTU1ZhbHVl
Tm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2
YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEJpbmRpbmc6CiAjaWYgRU5BQkxFKFhCTCkKICAgICAgICAgaWYgKGlkID09IENT
U1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
UmVmUHRyPENTU1ZhbHVlTGlzdD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNl
cGFyYXRlZCgpOwogICAgICAgICAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbDsKQEAgLTExNTksNyAr
MTE1OSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1w
b3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJJbWFnZToKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFza0JveEltYWdlOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFs
dWVOb25lKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBSZWZQ
dHI8Q1NTVmFsdWU+IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChwYXJzZUJvcmRlckltYWdlKHBy
b3BJZCwgaW1wb3J0YW50LCByZXN1bHQpKSB7CkBAIC0xMTc0LDE1ICsxMTc0LDE1IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNh
c2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21SaWdodFJhZGl1czogewogICAgICAgICBpZiAobnVt
ICE9IDEgJiYgbnVtICE9IDIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwgbV9zdHJpY3QpOwotICAg
ICAgICBpZiAoIXZhbGlkX3ByaW1pdGl2ZSkKKyAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxp
ZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0KTsKKyAgICAgICAgaWYgKCF2YWxpZFByaW1p
dGl2ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVl
LT5mVmFsdWUsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKXZhbHVlLT51bml0KTsKICAg
ICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTI7CiAgICAgICAgIGlm
IChudW0gPT0gMikgewogICAgICAgICAgICAgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOwot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBt
X3N0cmljdCk7Ci0gICAgICAgICAgICBpZiAoIXZhbGlkX3ByaW1pdGl2ZSkKKyAgICAgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCk7Cisg
ICAgICAgICAgICBpZiAoIXZhbGlkUHJpbWl0aXZlKQogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgICAgIHBhcnNlZFZhbHVlMiA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUodmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpdmFsdWUtPnVu
aXQpOwogICAgICAgICB9IGVsc2UKQEAgLTExOTcsNTkgKzExOTcsNTkgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEJvcmRlclJhZGl1czoKICAgICAgICAgcmV0dXJuIHBhcnNlQm9yZGVyUmFk
aXVzKHByb3BJZCwgaW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZU9mZnNl
dDoKLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBt
X3N0cmljdCk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVu
Z3RoLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0
U2hhZG93OiAvLyBDU1MyIHByb3BlcnR5LCBkcm9wcGVkIGluIENTUzIuMSwgYmFjayBpbiBDU1Mz
LCBzbyB0cmVhdCBhcyBDU1MzCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveFNoYWRvdzoK
ICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIHJldHVybiBwYXJzZVNoYWRvdyhwcm9wSWQsIGltcG9ydGFudCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hSZWZsZWN0Ogog
ICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlUmVmbGVjdChwcm9wSWQsIGltcG9ydGFudCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlPcGFjaXR5OgotICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXIsIG1fc3RyaWN0KTsKKyAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXIsIG1fc3RyaWN0
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveEFsaWduOgog
ICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVTdHJldGNoIHx8IGlkID09IENTU1ZhbHVlU3RhcnQg
fHwgaWQgPT0gQ1NTVmFsdWVFbmQgfHwKICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlQ2VudGVy
IHx8IGlkID09IENTU1ZhbHVlQmFzZWxpbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94RGlyZWN0aW9uOgogICAgICAgICBpZiAo
aWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVSZXZlcnNlKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveExpbmVz
OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVTaW5nbGUgfHwgaWQgPT0gQ1NTVmFsdWVNdWx0
aXBsZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2
YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRCb3hPcmllbnQ6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUhvcml6b250YWwg
fHwgaWQgPT0gQ1NTVmFsdWVWZXJ0aWNhbCB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVJ
bmxpbmVBeGlzIHx8IGlkID09IENTU1ZhbHVlQmxvY2tBeGlzKQotICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveFBhY2s6CiAgICAgICAg
IGlmIChpZCA9PSBDU1NWYWx1ZVN0YXJ0IHx8IGlkID09IENTU1ZhbHVlRW5kIHx8CiAgICAgICAg
ICAgICBpZCA9PSBDU1NWYWx1ZUNlbnRlciB8fCBpZCA9PSBDU1NWYWx1ZUp1c3RpZnkpCi0gICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94
RmxleDoKLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTnVtYmVy
LCBtX3N0cmljdCk7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBG
TnVtYmVyLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRCb3hGbGV4R3JvdXA6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveE9yZGluYWxH
cm91cDoKLSAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdl
cnxGTm9uTmVnLCB0cnVlKTsKKyAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFs
dWUsIEZJbnRlZ2VyIHwgRk5vbk5lZywgdHJ1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRCb3hTaXppbmc6Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IGlk
ID09IENTU1ZhbHVlQm9yZGVyQm94IHx8IGlkID09IENTU1ZhbHVlQ29udGVudEJveDsKKyAgICAg
ICAgdmFsaWRQcmltaXRpdmUgPSBpZCA9PSBDU1NWYWx1ZUJvcmRlckJveCB8fCBpZCA9PSBDU1NW
YWx1ZUNvbnRlbnRCb3g7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRDb2xvckNvcnJlY3Rpb246Ci0gICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IGlkID09IENTU1Zh
bHVlU3JnYiB8fCBpZCA9PSBDU1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gaWQgPT0gQ1NTVmFsdWVTcmdiIHx8IGlkID09IENTU1ZhbHVlRGVmYXVsdDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWU6IHsKICAgICAgICAgY29u
c3QgaW50IHByb3BlcnRpZXNbNV0gPSB7IENTU1Byb3BlcnR5V2Via2l0TWFycXVlZURpcmVjdGlv
biwgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlSW5jcmVtZW50LApAQCAtMTI2MSw3MSArMTI2MSw3
MSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFu
dCkKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlRm9yd2FyZHMgfHwgaWQgPT0gQ1NTVmFsdWVC
YWNrd2FyZHMgfHwgaWQgPT0gQ1NTVmFsdWVBaGVhZCB8fAogICAgICAgICAgICAgaWQgPT0gQ1NT
VmFsdWVSZXZlcnNlIHx8IGlkID09IENTU1ZhbHVlTGVmdCB8fCBpZCA9PSBDU1NWYWx1ZVJpZ2h0
IHx8IGlkID09IENTU1ZhbHVlRG93biB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVVcCB8
fCBpZCA9PSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZUluY3JlbWVudDoKICAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlU21hbGwgfHwgaWQgPT0gQ1NTVmFsdWVMYXJnZSB8fCBpZCA9PSBDU1NWYWx1
ZU1lZGl1bSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aHxGUGVyY2VudCwgbV9zdHJpY3Qp
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgg
fCBGUGVyY2VudCwgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TWFycXVlZVN0eWxlOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lIHx8
IGlkID09IENTU1ZhbHVlU2xpZGUgfHwgaWQgPT0gQ1NTVmFsdWVTY3JvbGwgfHwgaWQgPT0gQ1NT
VmFsdWVBbHRlcm5hdGUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAg
ICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVJlcGV0aXRpb246CiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZUluZmluaXRlKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlcnxGTm9uTmVnLCBt
X3N0cmljdCk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwg
RkludGVnZXIgfCBGTm9uTmVnLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3BlZWQ6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1
ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVNsb3cgfHwgaWQgPT0gQ1NTVmFsdWVGYXN0KQotICAg
ICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dmFsaWRVbml0KHZhbHVlLCBGVGltZXxGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7CisgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWUgfCBGSW50ZWdl
ciB8IEZOb25OZWcsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFdDU1Mp
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVEaXI6CiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZUx0ciB8fCBpZCA9PSBDU1NWYWx1ZVJ0bCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3R5bGU6CiAgICAgICAgIGlm
IChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVTbGlkZSB8fCBpZCA9PSBDU1NW
YWx1ZVNjcm9sbCB8fCBpZCA9PSBDU1NWYWx1ZUFsdGVybmF0ZSkKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlTG9vcDoKICAgICAg
ICAgaWYgKGlkID09IENTU1ZhbHVlSW5maW5pdGUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZJbnRl
Z2VyIHwgRk5vbk5lZywgbV9zdHJpY3QpOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2
YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyIHwgRk5vbk5lZywgbV9zdHJpY3QpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZVNwZWVkOgogICAgICAgICBpZiAo
aWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVTbG93IHx8IGlkID09IENTU1Zh
bHVlRmFzdCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWUgfCBGSW50ZWdlciB8IEZOb25OZWcs
IG1fc3RyaWN0KTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVl
LCBGVGltZSB8IEZJbnRlZ2VyIHwgRk5vbk5lZywgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsK
ICNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZzogLy8gYXV0byB8IG5v
bmUgfCBlbGVtZW50CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NT
VmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlRWxlbWVudCkKLSAgICAgICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5OiAvLyByZWFk
LW9ubHkgfCByZWFkLXdyaXRlCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVJlYWRPbmx5IHx8
IGlkID09IENTU1ZhbHVlUmVhZFdyaXRlIHx8IGlkID09IENTU1ZhbHVlUmVhZFdyaXRlUGxhaW50
ZXh0T25seSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRVc2VyU2VsZWN0OiAvLyBhdXRvIHwgbm9uZSB8IHRleHQKICAgICAgICAgaWYg
KGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFs
dWVUZXh0KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRleHRPdmVyZmxvdzogLy8gY2xpcCB8IGVsbGlwc2lzCiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZUNsaXAgfHwgaWQgPT0gQ1NTVmFsdWVFbGxpcHNpcykKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm06CiAgICAg
ICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbCA9IHBhcnNlVHJhbnNmb3Jt
KCk7CiAgICAgICAgICAgICBpZiAodmFsKSB7CkBAIC0xMzU1LDE4ICsxMzU1LDE4IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIH0K
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtU3R5bGU6CiAgICAgICAgIGlmICh2
YWx1ZS0+aWQgPT0gQ1NTVmFsdWVGbGF0IHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZVByZXNlcnZl
M2QpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0QmFja2ZhY2VWaXNpYmlsaXR5OgogICAgICAgICBpZiAodmFsdWUtPmlkID09IENTU1Zh
bHVlVmlzaWJsZSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVIaWRkZW4pCi0gICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVl
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmU6
CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIC8vIEFjY2VwdGluZyB2YWx1ZWxlc3MgbnVtYmVycyBpcyBh
IHF1aXJrIG9mIHRoZSAtd2Via2l0IHByZWZpeGVkIHZlcnNpb24gb2YgdGhlIHByb3BlcnR5Lgot
ICAgICAgICAgICAgaWYgKHZhbGlkVW5pdCh2YWx1ZSwgRk51bWJlcnxGTGVuZ3RofEZOb25OZWcs
IG1fc3RyaWN0KSkgeworICAgICAgICAgICAgaWYgKHZhbGlkVW5pdCh2YWx1ZSwgRk51bWJlciB8
IEZMZW5ndGggfCBGTm9uTmVnLCBtX3N0cmljdCkpIHsKICAgICAgICAgICAgICAgICBSZWZQdHI8
Q1NTVmFsdWU+IHZhbCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwg
KENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpdmFsdWUtPnVuaXQpOwogICAgICAgICAgICAg
ICAgIGlmICh2YWwpIHsKICAgICAgICAgICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcElkLCB2
YWwucmVsZWFzZSgpLCBpbXBvcnRhbnQpOwpAQCAtMTQzMCwxMyArMTQzMCwxMyBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFyZ2luVG9wQ29sbGFwc2U6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hcmdpbkJvdHRvbUNvbGxhcHNlOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVD
b2xsYXBzZSB8fCBpZCA9PSBDU1NWYWx1ZVNlcGFyYXRlIHx8IGlkID09IENTU1ZhbHVlRGlzY2Fy
ZCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlU
ZXh0TGluZVRocm91Z2hNb2RlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0T3ZlcmxpbmVNb2Rl
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0VW5kZXJsaW5lTW9kZToKICAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlQ29udGludW91cyB8fCBpZCA9PSBDU1NWYWx1ZVNraXBXaGl0ZVNwYWNlKQot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRM
aW5lVGhyb3VnaFN0eWxlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0T3ZlcmxpbmVTdHlsZToK
QEAgLTE0NDQsNTAgKzE0NDQsNTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHBy
b3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwg
aWQgPT0gQ1NTVmFsdWVTb2xpZCB8fCBpZCA9PSBDU1NWYWx1ZURvdWJsZSB8fAogICAgICAgICAg
ICAgaWQgPT0gQ1NTVmFsdWVEYXNoZWQgfHwgaWQgPT0gQ1NTVmFsdWVEb3REYXNoIHx8IGlkID09
IENTU1ZhbHVlRG90RG90RGFzaCB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTVmFsdWVXYXZlKQot
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRS
ZW5kZXJpbmc6IC8vIGF1dG8gfCBvcHRpbWl6ZVNwZWVkIHwgb3B0aW1pemVMZWdpYmlsaXR5IHwg
Z2VvbWV0cmljUHJlY2lzaW9uCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQg
PT0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkIHx8IGlkID09IENTU1ZhbHVlT3B0aW1pemVsZWdpYmls
aXR5CiAgICAgICAgICAgICB8fCBpZCA9PSBDU1NWYWx1ZUdlb21ldHJpY3ByZWNpc2lvbikKLSAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGlu
ZVRocm91Z2hXaWR0aDoKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dE92ZXJsaW5lV2lkdGg6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRVbmRlcmxpbmVXaWR0aDoKICAgICAgICAgaWYgKGlkID09
IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVRo
aW4gfHwKICAgICAgICAgICAgIGlkID09IENTU1ZhbHVlTWVkaXVtIHx8IGlkID09IENTU1ZhbHVl
VGhpY2spCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAg
dmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSAhaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTnVtYmVyfEZMZW5ndGh8RlBlcmNl
bnQsIG1fc3RyaWN0KTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gIWlkICYmIHZhbGlk
VW5pdCh2YWx1ZSwgRk51bWJlciB8IEZMZW5ndGggfCBGUGVyY2VudCwgbV9zdHJpY3QpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5UmVzaXplOiAvLyBub25lIHwgYm90aCB8
IGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGF1dG8KICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVl
Tm9uZSB8fCBpZCA9PSBDU1NWYWx1ZUJvdGggfHwgaWQgPT0gQ1NTVmFsdWVIb3Jpem9udGFsIHx8
IGlkID09IENTU1ZhbHVlVmVydGljYWwgfHwgaWQgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdENvbHVtbkNv
dW50OgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gIWlkICYmIHZhbGlkVW5p
dCh2YWx1ZSwgRkludGVnZXIgfCBGTm9uTmVnLCBmYWxzZSk7CisgICAgICAgICAgICB2YWxpZFBy
aW1pdGl2ZSA9ICFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyIHwgRk5vbk5lZywgZmFs
c2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uR2Fw
OiAgICAgICAgIC8vIG5vcm1hbCB8IDxsZW5ndGg+CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1
ZU5vcm1hbCkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZOb25OZWcsIG1fc3RyaWN0
KTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3Ro
IHwgRk5vbk5lZywgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0Q29sdW1uV2lkdGg6ICAgICAgICAgLy8gYXV0byB8IDxsZW5ndGg+CiAgICAgICAg
IGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlIC8v
IEFsd2F5cyBwYXJzZSB0aGlzIHByb3BlcnR5IGluIHN0cmljdCBtb2RlLCBzaW5jZSBpdCB3b3Vs
ZCBiZSBhbWJpZ3VvdXMgb3RoZXJ3aXNlIHdoZW4gdXNlZCBpbiB0aGUgJ2NvbHVtbnMnIHNob3J0
aGFuZCBwcm9wZXJ0eS4KLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2
YWx1ZSwgRkxlbmd0aCwgdHJ1ZSk7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlk
VW5pdCh2YWx1ZSwgRkxlbmd0aCwgdHJ1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlQb2ludGVyRXZlbnRzOgogICAgICAgICAvLyBub25lIHwgdmlzaWJsZVBhaW50ZWQg
fCB2aXNpYmxlRmlsbCB8IHZpc2libGVTdHJva2UgfCB2aXNpYmxlIHwKICAgICAgICAgLy8gcGFp
bnRlZCB8IGZpbGwgfCBzdHJva2UgfCBhdXRvIHwgYWxsIHwgaW5oZXJpdAogICAgICAgICBpZiAo
aWQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NW
YWx1ZUFsbCB8fCBpZCA9PSBDU1NWYWx1ZUF1dG8gfHwKICAgICAgICAgICAgIChpZCA+PSBDU1NW
YWx1ZVZpc2libGVwYWludGVkICYmIGlkIDw9IENTU1ZhbHVlU3Ryb2tlKSkKLSAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRy
dWU7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgLy8gRW5kIG9mIENTUzMgcHJv
cGVydGllcwpAQCAtMTQ5Nyw1NiArMTQ5Nyw1NiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1
ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
TGluZUNsYW1wOgogICAgICAgICAvLyBXaGVuIHNwZWNpZnlpbmcgbnVtYmVyIG9mIGxpbmVzLCBk
b24ndCBhbGxvdyAwIGFzIGEgdmFsaWQgdmFsdWUKICAgICAgICAgLy8gV2hlbiBzcGVjaWZ5aW5n
IGVpdGhlciB0eXBlIG9mIHVuaXQsIHJlcXVpcmUgbm9uLW5lZ2F0aXZlIGludGVnZXJzCi0gICAg
ICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICghaWQgJiYgKHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSB8fCB2YWx1ZS0+ZlZhbHVlKSAmJiB2YWxpZFVuaXQodmFs
dWUsIEZJbnRlZ2VyIHwgRlBlcmNlbnQgfCBGTm9uTmVnLCBmYWxzZSkpOworICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9ICghaWQgJiYgKHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfUEVSQ0VOVEFHRSB8fCB2YWx1ZS0+ZlZhbHVlKSAmJiB2YWxpZFVuaXQodmFsdWUsIEZJbnRl
Z2VyIHwgRlBlcmNlbnQgfCBGTm9uTmVnLCBmYWxzZSkpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFNpemVBZGp1c3Q6CiAgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVOb25lKQotICAgICAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFJ0bE9yZGVyaW5nOgogICAgICAg
ICBpZiAoaWQgPT0gQ1NTVmFsdWVMb2dpY2FsIHx8IGlkID09IENTU1ZhbHVlVmlzdWFsKQotICAg
ICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEZvbnRTaXplRGVsdGE6ICAgICAgICAgICAvLyA8bGVuZ3RoPgotICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0KTsKKyAgICAgICAg
dmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0KTsKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TmJzcE1vZGU6ICAgICAv
LyBub3JtYWwgfCBzcGFjZQogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQg
PT0gQ1NTVmFsdWVTcGFjZSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVCcmVhazogICAvLyBub3JtYWwgfCBhZnRlci13aGl0
ZS1zcGFjZQogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFs
dWVBZnRlcldoaXRlU3BhY2UpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwor
ICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXRjaE5lYXJlc3RNYWlsQmxvY2txdW90ZUNvbG9yOiAg
IC8vIG5vcm1hbCB8IG1hdGNoCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBp
ZCA9PSBDU1NWYWx1ZU1hdGNoKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0SGlnaGxpZ2h0OgogICAgICAgICBpZiAoaWQgPT0gQ1NT
VmFsdWVOb25lIHx8IHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5H
KQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEJvcmRlckZpdDoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQm9yZGVyIHx8
IGlkID09IENTU1ZhbHVlTGluZXMpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAg
ICAgICAgCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTZWN1cml0eToKICAgICAgICAg
Ly8gZGlzYyB8IGNpcmNsZSB8IHNxdWFyZSB8IG5vbmUgfCBpbmhlcml0CiAgICAgICAgIGlmIChp
ZCA9PSBDU1NWYWx1ZURpc2MgfHwgaWQgPT0gQ1NTVmFsdWVDaXJjbGUgfHwgaWQgPT0gQ1NTVmFs
dWVTcXVhcmV8fCBpZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250U21vb3RoaW5nOgogICAgICAg
ICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlTm9uZSAKICAgICAgICAg
ICAgIHx8IGlkID09IENTU1ZhbHVlQW50aWFsaWFzZWQgfHwgaWQgPT0gQ1NTVmFsdWVTdWJwaXhl
bEFudGlhbGlhc2VkKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICNpZiBFTkFC
TEUoREFTSEJPQVJEX1NVUFBPUlQpCkBAIC0xNjU0LDcgKzE2NTQsNyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgLy8gWyBb
ICdmb250LXN0eWxlJyB8fCAnZm9udC12YXJpYW50JyB8fCAnZm9udC13ZWlnaHQnIF0/ICdmb250
LXNpemUnIFsgLyAnbGluZS1oZWlnaHQnIF0/CiAgICAgICAgIC8vICdmb250LWZhbWlseScgXSB8
IGNhcHRpb24gfCBpY29uIHwgbWVudSB8IG1lc3NhZ2UtYm94IHwgc21hbGwtY2FwdGlvbiB8IHN0
YXR1cy1iYXIgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA+PSBDU1NWYWx1ZUNhcHRpb24gJiYg
aWQgPD0gQ1NTVmFsdWVTdGF0dXNCYXIpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICByZXR1cm4gcGFyc2VGb250KGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFrOwpA
QCAtMTY5Niw3ICsxNjk2LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQpCiAjZW5kaWYKICAgICB9CiAKLSAgICBpZiAodmFsaWRfcHJpbWl0
aXZlKSB7CisgICAgaWYgKHZhbGlkUHJpbWl0aXZlKSB7CiAgICAgICAgIGlmIChpZCAhPSAwKQog
ICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRp
ZmllcihpZCk7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfU1RSSU5HKQpAQCAtMjI0Myw3ICsyMjQzLDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gQ1NTUGFyc2VyOjpwYXJzZUZpbGxQb3NpdGlvblhZKGJvb2wmIHhGb3VuZCwgYm9vbCYgeUZv
dW5kKQogICAgICAgICAgICAgcGVyY2VudCA9IDUwOwogICAgICAgICByZXR1cm4gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShwZXJjZW50LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRB
R0UpOwogICAgIH0KLSAgICBpZiAodmFsaWRVbml0KG1fdmFsdWVMaXN0LT5jdXJyZW50KCksIEZQ
ZXJjZW50fEZMZW5ndGgsIG1fc3RyaWN0KSkKKyAgICBpZiAodmFsaWRVbml0KG1fdmFsdWVMaXN0
LT5jdXJyZW50KCksIEZQZXJjZW50IHwgRkxlbmd0aCwgbV9zdHJpY3QpKQogICAgICAgICByZXR1
cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLT5mVmFs
dWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDU1NQcmltaXRp
dmVWYWx1ZTo6VW5pdFR5cGVzKW1fdmFsdWVMaXN0LT5jdXJyZW50KCktPnVuaXQpOwogICAgICAg
ICAgICAgICAgIApAQCAtMjM1MSw3ICsyMzUxLDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NT
UGFyc2VyOjpwYXJzZUZpbGxTaXplKGludCBwcm9wSWQsIGJvb2wmIGFsbG93Q29tbWEpCiAgICAg
aWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHBhcnNlZFZhbHVlMSA9IENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoMCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VTktOT1dO
KTsKICAgICBlbHNlIHsKLSAgICAgICAgaWYgKCF2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBl
cmNlbnQsIG1fc3RyaWN0KSkKKyAgICAgICAgaWYgKCF2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgg
fCBGUGVyY2VudCwgbV9zdHJpY3QpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHBh
cnNlZFZhbHVlMSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgKENT
U1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpdmFsdWUtPnVuaXQpOwogICAgIH0KQEAgLTIzNjQs
NyArMjM2NCw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VGaWxsU2l6
ZShpbnQgcHJvcElkLCBib29sJiBhbGxvd0NvbW1hKQogICAgICAgICBlbHNlIGlmICh2YWx1ZS0+
dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3IgJiYgdmFsdWUtPmlWYWx1ZSA9PSAnLCcp
CiAgICAgICAgICAgICBhbGxvd0NvbW1hID0gZmFsc2U7CiAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgaWYgKCF2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBlcmNlbnQsIG1fc3RyaWN0KSkK
KyAgICAgICAgICAgIGlmICghdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQsIG1f
c3RyaWN0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIHBhcnNlZFZh
bHVlMiA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXMpdmFsdWUtPnVuaXQpOwogICAgICAgICB9CkBAIC0yNTY2LDcg
KzI1NjYsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9u
RGlyZWN0aW9uKCkKIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VBbmltYXRp
b25EdXJhdGlvbigpCiB7CiAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3Qt
PmN1cnJlbnQoKTsKLSAgICBpZiAodmFsaWRVbml0KHZhbHVlLCBGVGltZXxGTm9uTmVnLCBtX3N0
cmljdCkpCisgICAgaWYgKHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWUgfCBGTm9uTmVnLCBtX3N0cmlj
dCkpCiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFs
dWUsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKXZhbHVlLT51bml0KTsKICAgICByZXR1
cm4gMDsKIH0KQEAgLTI1NzYsNyArMjU3Niw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1Bh
cnNlcjo6cGFyc2VBbmltYXRpb25JdGVyYXRpb25Db3VudCgpCiAgICAgQ1NTUGFyc2VyVmFsdWUq
IHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKICAgICBpZiAodmFsdWUtPmlkID09IENT
U1ZhbHVlSW5maW5pdGUpCiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
SWRlbnRpZmllcih2YWx1ZS0+aWQpOwotICAgIGlmICh2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2Vy
fEZOb25OZWcsIG1fc3RyaWN0KSkKKyAgICBpZiAodmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciB8
IEZOb25OZWcsIG1fc3RyaWN0KSkKICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUodmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpdmFsdWUt
PnVuaXQpOwogICAgIHJldHVybiAwOwogfQpAQCAtMzA0Nyw3ICszMDQ3LDcgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlRm9udChib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNlIGlmICghZm9udC0+d2VpZ2h0ICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXJ8Rk5vbk5l
ZywgdHJ1ZSkpIHsKKyAgICAgICAgfSBlbHNlIGlmICghZm9udC0+d2VpZ2h0ICYmIHZhbGlkVW5p
dCh2YWx1ZSwgRkludGVnZXIgfCBGTm9uTmVnLCB0cnVlKSkgewogICAgICAgICAgICAgaW50IHdl
aWdodCA9IChpbnQpdmFsdWUtPmZWYWx1ZTsKICAgICAgICAgICAgIGludCB2YWwgPSAwOwogICAg
ICAgICAgICAgaWYgKHdlaWdodCA9PSAxMDApCkBAIC0zMDk1LDcgKzMwOTUsNyBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VGb250KGJvb2wgaW1wb3J0YW50KQogICAgIC8vIDxhYnNvbHV0ZS1zaXpl
PiB8IDxyZWxhdGl2ZS1zaXplPiB8IDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAog
ICAgIGlmICh2YWx1ZS0+aWQgPj0gQ1NTVmFsdWVYeFNtYWxsICYmIHZhbHVlLT5pZCA8PSBDU1NW
YWx1ZUxhcmdlcikKICAgICAgICAgZm9udC0+c2l6ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGVJZGVudGlmaWVyKHZhbHVlLT5pZCk7Ci0gICAgZWxzZSBpZiAodmFsaWRVbml0KHZhbHVlLCBG
TGVuZ3RofEZQZXJjZW50fEZOb25OZWcsIG1fc3RyaWN0KSkKKyAgICBlbHNlIGlmICh2YWxpZFVu
aXQodmFsdWUsIEZMZW5ndGggfCBGUGVyY2VudCB8IEZOb25OZWcsIG1fc3RyaWN0KSkKICAgICAg
ICAgZm9udC0+c2l6ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwg
KENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51bml0KTsKICAgICB2YWx1ZSA9
IG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAgaWYgKCFmb250LT5zaXplIHx8ICF2YWx1ZSkKQEAg
LTMxMDgsNyArMzEwOCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnQoYm9vbCBpbXBvcnRh
bnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmICh2YWx1ZS0+aWQgPT0g
Q1NTVmFsdWVOb3JtYWwpIHsKICAgICAgICAgICAgIC8vIGRlZmF1bHQgdmFsdWUsIG5vdGhpbmcg
dG8gZG8KLSAgICAgICAgfSBlbHNlIGlmICh2YWxpZFVuaXQodmFsdWUsIEZOdW1iZXJ8Rkxlbmd0
aHxGUGVyY2VudHxGTm9uTmVnLCBtX3N0cmljdCkpCisgICAgICAgIH0gZWxzZSBpZiAodmFsaWRV
bml0KHZhbHVlLCBGTnVtYmVyIHwgRkxlbmd0aCB8IEZQZXJjZW50IHwgRk5vbk5lZywgbV9zdHJp
Y3QpKQogICAgICAgICAgICAgZm9udC0+bGluZUhlaWdodCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUodmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVl
LT51bml0KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDAy
OSw3ICs0MDI5LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQm9yZGVySW1hZ2UoaW50IHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQsIFJlZlB0cjxDU1NWYWx1ZT4mIHIKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgd2hpbGUgKCh2YWwgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpKSkgewotICAgICAg
ICBpZiAoY29udGV4dC5hbGxvd051bWJlcigpICYmIHZhbGlkVW5pdCh2YWwsIEZJbnRlZ2VyfEZO
b25OZWd8RlBlcmNlbnQsIHRydWUpKSB7CisgICAgICAgIGlmIChjb250ZXh0LmFsbG93TnVtYmVy
KCkgJiYgdmFsaWRVbml0KHZhbCwgRkludGVnZXIgfCBGTm9uTmVnIHwgRlBlcmNlbnQsIHRydWUp
KSB7CiAgICAgICAgICAgICBjb250ZXh0LmNvbW1pdE51bWJlcih2YWwpOwogICAgICAgICB9IGVs
c2UgaWYgKHByb3BJZCA9PSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckltYWdlICYmIGNvbnRleHQu
YWxsb3dTbGFzaCgpICYmIHZhbC0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3IgJiYg
dmFsLT5pVmFsdWUgPT0gJy8nKSB7CiAgICAgICAgICAgICBjb250ZXh0LmNvbW1pdFNsYXNoKCk7
Cg==
</data>
<flag name="review"
          id="31338"
          type_id="1"
          status="+"
          setter="hamaji"
    />
          </attachment>
      

    </bug>

</bugzilla>