<?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>67399</bug_id>
          
          <creation_ts>2011-09-01 07:25:09 -0700</creation_ts>
          <short_desc>Web Inspector: XMLHttpRequest console logging messages should link to network panel when possible.</short_desc>
          <delta_ts>2011-09-26 13:06:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</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>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>paulirish</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>460433</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-01 07:25:09 -0700</bug_when>
    <thetext>XMLHttpRequest console logging messages should link to network panel when possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460467</commentid>
    <comment_count>1</comment_count>
      <attachid>105965</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-01 08:02:10 -0700</bug_when>
    <thetext>Created attachment 105965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460526</commentid>
    <comment_count>2</comment_count>
      <attachid>105965</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 09:45:44 -0700</bug_when>
    <thetext>Comment on attachment 105965
Patch

Attachment 105965 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9581324</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460538</commentid>
    <comment_count>3</comment_count>
      <attachid>105983</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-01 09:58:08 -0700</bug_when>
    <thetext>Created attachment 105983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462385</commentid>
    <comment_count>4</comment_count>
      <attachid>105983</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-09-05 23:59:37 -0700</bug_when>
    <thetext>Comment on attachment 105983
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=105983&amp;action=review

&gt; Source/WebCore/inspector/front-end/inspector.js:1264
&gt; +        if (typeof(lineNumber) !== &quot;undefined&quot;) {

style: no need for brackets around typeof argument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470866</commentid>
    <comment_count>5</comment_count>
      <attachid>108169</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-21 09:24:34 -0700</bug_when>
    <thetext>Created attachment 108169
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470870</commentid>
    <comment_count>6</comment_count>
      <attachid>108169</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-21 09:33:29 -0700</bug_when>
    <thetext>Comment on attachment 108169
Patch

Attachment 108169 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9765816</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470883</commentid>
    <comment_count>7</comment_count>
      <attachid>108169</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-21 09:54:57 -0700</bug_when>
    <thetext>Comment on attachment 108169
Patch

Attachment 108169 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9764829

New failing tests:
inspector/protocol/console-agent.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470899</commentid>
    <comment_count>8</comment_count>
      <attachid>108174</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-21 10:09:13 -0700</bug_when>
    <thetext>Created attachment 108174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470972</commentid>
    <comment_count>9</comment_count>
      <attachid>108174</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-21 11:23:02 -0700</bug_when>
    <thetext>Comment on attachment 108174
Patch

Attachment 108174 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9764868</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471494</commentid>
    <comment_count>10</comment_count>
      <attachid>108314</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-22 04:54:08 -0700</bug_when>
    <thetext>Created attachment 108314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471497</commentid>
    <comment_count>11</comment_count>
      <attachid>108174</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-22 05:08:02 -0700</bug_when>
    <thetext>Comment on attachment 108174
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=108174&amp;action=review

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:502
&gt; +WebInspector.ConsoleMessage.NetworkMessageType = {

This seems ugly. Sorry for dragging you into it. I&apos;d say that we can dupe messages strings for network and keep them both in front-end and back-end for the sake of the better protocol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471548</commentid>
    <comment_count>12</comment_count>
      <attachid>108329</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-22 07:26:13 -0700</bug_when>
    <thetext>Created attachment 108329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473326</commentid>
    <comment_count>13</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-26 13:06:10 -0700</bug_when>
    <thetext>Committed r95984: &lt;http://trac.webkit.org/changeset/95984&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105965</attachid>
            <date>2011-09-01 08:02:10 -0700</date>
            <delta_ts>2011-09-01 09:58:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67399-20110901190208.patch</filename>
            <type>text/plain</type>
            <size>16309</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQyOTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMDAwOTZjNjBlMjI0ZTYw
YjliYjdkOGIyZThlM2JjNWY1MmFjNTI4Li43OWIyYWRmYjM0NDE5MmYzYzczZjZlNDliZTRmOWU5
YmQxNjU5Mjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDktMDEgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogWE1MSHR0cFJlcXVlc3QgY29uc29sZSBsb2dnaW5nIG1lc3NhZ2VzIHNob3VsZCBsaW5rIHRv
IG5ldHdvcmsgcGFuZWwgd2hlbiBwb3NzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3Mzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6Om1lc3NhZ2VUeXBlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1l
c3NhZ2U6OmFkZFRvRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2Fn
ZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRy
aWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29u
c29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlc291
cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UucHJvdG90eXBlLl9mb3JtYXRNZXNzYWdlLnN3aXRjaC5saW5raWZpZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0TWVzc2Fn
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuc2hvd0FuY2hvckxv
Y2F0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudFdpdGhDdXN0b21MaW5r
aWZpZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50KToK
KyAgICAgICAgKiBwYWdlL0NvbnNvbGVUeXBlcy5oOgorCiAyMDExLTA4LTMxICBQYXZlbCBQb2Rp
dmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IHJlbW92ZSBQcmVzZW50YXRpb25CcmVha3BvaW50IGNsYXNzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5kZXggMGJjNGJhMTdlNGRhMGM1ZDQyMmRjZjkx
NjQ0MDM5NWEwYTgzNWUzNC4uYWI1OGQxMDViYTA1ZDhlZTc2NjhhNjg0OTI3ZTEyMTU0MmU4MjQ4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC00
NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ29uc29sZU1lc3NhZ2U6OkNv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVs
IGwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGksIGNvbnN0IFN0cmluZyYgdSkKK0NvbnNv
bGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQs
IE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0sIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJp
bmcmIHUsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKQogICAgIDogbV9zb3VyY2UocykKICAgICAs
IG1fdHlwZSh0KQogICAgICwgbV9sZXZlbChsKQpAQCAtNTIsNiArNTIsNyBAQCBDb25zb2xlTWVz
c2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNz
YWdlTGV2ZWwgbCwgYwogICAgICwgbV9saW5lKGxpKQogICAgICwgbV91cmwodSkKICAgICAsIG1f
cmVwZWF0Q291bnQoMSkKKyAgICAsIG1fcmVxdWVzdElkKHJlcXVlc3RJZCkKIHsKIH0KIApAQCAt
MTA5LDYgKzExMCw3IEBAIHN0YXRpYyBTdHJpbmcgbWVzc2FnZVR5cGVWYWx1ZShNZXNzYWdlVHlw
ZSB0eXBlKQogICAgIGNhc2UgQXNzZXJ0TWVzc2FnZVR5cGU6IHJldHVybiAiYXNzZXJ0IjsKICAg
ICBjYXNlIFVuY2F1Z2h0RXhjZXB0aW9uTWVzc2FnZVR5cGU6IHJldHVybiAidW5jYXVnaHRFeGNl
cHRpb24iOwogICAgIGNhc2UgTmV0d29ya0Vycm9yTWVzc2FnZVR5cGU6IHJldHVybiAibmV0d29y
a0Vycm9yIjsKKyAgICBjYXNlIFhIUkxvZ2dpbmdNZXNzYWdlVHlwZTogcmV0dXJuICJ4aHJMb2dn
aW5nIjsKICAgICB9CiAgICAgcmV0dXJuICJvdGhlciI7CiB9CkBAIC0xMzUsNyArMTM3LDcgQEAg
dm9pZCBDb25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZDo6Q29u
c29sZSogZnJvbnRlbmQsIEluamVjdGUKICAgICBqc29uT2JqLT5zZXRTdHJpbmcoInVybCIsIG1f
dXJsKTsKICAgICBqc29uT2JqLT5zZXROdW1iZXIoInJlcGVhdENvdW50Iiwgc3RhdGljX2Nhc3Q8
aW50PihtX3JlcGVhdENvdW50KSk7CiAgICAganNvbk9iai0+c2V0U3RyaW5nKCJ0ZXh0IiwgbV9t
ZXNzYWdlKTsKLSAgICBpZiAobV90eXBlID09IE5ldHdvcmtFcnJvck1lc3NhZ2VUeXBlKSAKKyAg
ICBpZiAobV90eXBlID09IE5ldHdvcmtFcnJvck1lc3NhZ2VUeXBlIHx8IG1fdHlwZSA9PSBYSFJM
b2dnaW5nTWVzc2FnZVR5cGUpCiAgICAgICAgIGpzb25PYmotPnNldFN0cmluZygibmV0d29ya1Jl
cXVlc3RJZCIsIG1fcmVxdWVzdElkKTsKICAgICBpZiAobV9hcmd1bWVudHMgJiYgbV9hcmd1bWVu
dHMtPmFyZ3VtZW50Q291bnQoKSkgewogICAgICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNj
cmlwdCA9IGluamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3IobV9hcmd1bWVu
dHMtPmdsb2JhbFN0YXRlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuaAppbmRleCBjMGIyNTg4OTg0NWI0Y2JjOWI0ZmJhZjA1Njc5NTQwODU4ZTRiOTJmLi44ODM1
NGQwZjAyNGFhMDU0ZjQwNDU5ODViZjY4YjNlYjJkMGVhODEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBTY3JpcHRW
YWx1ZTsKIGNsYXNzIENvbnNvbGVNZXNzYWdlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShD
b25zb2xlTWVzc2FnZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGksIGNvbnN0IFN0cmluZyYgdSk7CisgICAgQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtLCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCBjb25zdCBTdHJpbmcmIHJl
cXVlc3RJZCA9IFN0cmluZygpKTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG0sIGNvbnN0IFN0cmluZyYgcmVzcG9uc2VVcmwsIGNvbnN0IFN0cmluZyYgcmVxdWVz
dElkKTsKICAgICB+Q29uc29sZU1lc3NhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggYTNmMmMyMzhiNTQwNzJmZjE4
Y2VhNTUzNTAyZWFlYjA0YzQzZmViMi4uNzUyNTAwZGZjYjg0NTk4ZDU2Mzg3MGMwNTk0MTczMzAy
YmJmOTI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHAKQEAgLTE0MiwxMSArMTQyLDExIEBAIHZvaWQgSW5zcGVjdG9yQ29uc29s
ZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
VHlwCiAgICAgYWRkQ29uc29sZU1lc3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNv
dXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGFyZ3VtZW50cywgY2FsbFN0YWNrKSkpOwogfQog
Ci12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0SWQpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShN
ZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc2NyaXB0SWQsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKQogewogICAgIGlmICghbV9pbnNw
ZWN0b3JBZ2VudC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgYWRkQ29uc29sZU1l
c3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1l
c3NhZ2UsIGxpbmVOdW1iZXIsIHNjcmlwdElkKSkpOworICAgIGFkZENvbnNvbGVNZXNzYWdlKGFk
b3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBs
aW5lTnVtYmVyLCBzY3JpcHRJZCwgcmVxdWVzdElkKSkpOwogfQogCiB2b2lkIEluc3BlY3RvckNv
bnNvbGVBZ2VudDo6c3RhcnRUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTIxMSwxMiAr
MjExLDE0IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpmcmFtZVdpbmRvd0Rpc2NhcmRl
ZChET01XaW5kb3cqIHdpbmRvdykKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+ZGlzY2Fy
ZEluamVjdGVkU2NyaXB0c0Zvcih3aW5kb3cpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKQordm9pZCBJ
bnNwZWN0b3JDb25zb2xlQWdlbnQ6OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcm
IHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKQogewogICAgIGlmICghbV9pbnNwZWN0
b3JBZ2VudC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1faW5zcGVjdG9y
U3RhdGUtPmdldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKQotICAg
ICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IExvZ01lc3NhZ2VMZXZlbCwgIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyB1cmwgKyAiXCIu
Iiwgc2VuZExpbmVOdW1iZXIsIHNlbmRVUkwpOworICAgIGlmIChtX2luc3BlY3RvclN0YXRlLT5n
ZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjptb25pdG9yaW5nWEhSKSkgeworICAgICAgICBT
dHJpbmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmll
cik7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBYSFJMb2dn
aW5nTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBc
IiIgKyB1cmwgKyAiXCIuIiwgc2VuZExpbmVOdW1iZXIsIHNlbmRVUkwsIHJlcXVlc3RJZCk7Cisg
ICAgfQogfQogCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmgKaW5kZXggODM5Zjk1MDA1ZDNkMWFmZThhNTE0NzY3NjI5OGYyMmM4MWMzZThmMC4uM2M4ZGEx
ZTY2N2NjNzc3Nzg5ZmU0ZWQ0ZTBkNWZlZThkZGJlZGFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNjgsNyArNjgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2VU
b0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCk7CisgICAgdm9pZCBh
ZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQgPSBTdHJpbmcoKSk7CiAKICAg
ICB2b2lkIHN0YXJ0VGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgc3RvcFRp
bWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpA
QCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZyYW1lV2luZG93RGlzY2FyZGVk
KERPTVdpbmRvdyopOwogCi0gICAgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVl
c3QoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2Vu
ZExpbmVOdW1iZXIpOworICAgIHZvaWQgcmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwogICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBSZXNvdXJjZUVycm9yJik7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwCmluZGV4IDQ3YTI2NTBmNGQ1ZTc2MDgxNTdkYTc1YjhmN2M5NWQ2YzYxNzlmM2MuLjYy
NjdkZTk3NTVmMjI5NjA3ZmIyNjFlZWZmNjY4ZWIyNmU2ODU3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC01
MzUsNyArNTM1LDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZhaWxMb2Fk
aW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW4KIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3RJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25z
dCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKQogewogICAgIGlmIChJ
bnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvckNvbnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPnJlc291cmNl
UmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1cmwsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyKTsK
KyAgICAgICAgY29uc29sZUFnZW50LT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3Qo
aWRlbnRpZmllciwgdXJsLCBzZW5kVVJMLCBzZW5kTGluZU51bWJlcik7CiAgICAgaWYgKEluc3Bl
Y3RvclJlc291cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpCiAgICAgICAgIHJlc291cmNlQWdlbnQtPnNldEluaXRp
YWxYSFJDb250ZW50KGlkZW50aWZpZXIsIHNvdXJjZVN0cmluZyk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwppbmRleCA1
MjAzYzdhNWU3NjkxNzNmYjAzMGQ1ZGMwMmE4MGMwMmM1YmVhYmI0Li43YjE2ZDc5NzA3MWMxOTdl
Nzc5NDA5MzY2MjA1Mjg1OTE5YTRjNWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKQEAgLTExMyw2ICsxMTMsMjMgQEAg
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZVRleHQgPSB0aGlzLl9mb3JtYXQoW3RoaXMuX21lc3NhZ2VUZXh0XSk7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuWEhSTG9nZ2luZzoKKyAg
ICAgICAgICAgICAgICBtZXNzYWdlVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4i
KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBsaW5raWZpZXIo
dGl0bGUsIHVybCwgbGluZU51bWJlcikKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgIHZhciBpc0V4dGVybmFsID0gIXRoaXMuX3JlcXVlc3Q7CisgICAgICAgICAgICAgICAg
ICAgIHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1cmwsIHRpdGxl
LCBudWxsLCBpc0V4dGVybmFsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3JlcXVl
c3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInJlcXVl
c3RfaWQiLCB0aGlzLl9yZXF1ZXN0LnJlcXVlc3RJZCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBhbmNob3Iuc2V0QXR0cmlidXRlKCJwcmVmZXJyZWRfcGFuZWwiLCAibmV0d29yayIpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbmNob3I7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHZhciBm
cmFnbWVudCA9IFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudFdpdGhDdXN0b21M
aW5raWZpZXIodGhpcy5fbWVzc2FnZVRleHQsIGxpbmtpZmllci5iaW5kKHRoaXMpKTsKKyAgICAg
ICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChmcmFnbWVudCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlVHlwZS5Bc3NlcnQ6CiAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJBc3NlcnRpb24gZmFpbGVkOiIpXTsKICAgICAgICAgICAgICAgICBp
ZiAodGhpcy5fcGFyYW1ldGVycykKQEAgLTQ5Nyw2ICs1MTQsNyBAQCBXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUgPSB7CiAgICAgQXNzZXJ0OiAiYXNzZXJ0IiwKICAgICBV
bmNhdWdodEV4Y2VwdGlvbjogInVuY2F1Z2h0RXhjZXB0aW9uIiwKICAgICBOZXR3b3JrRXJyb3I6
ICJuZXR3b3JrRXJyb3IiLAorICAgIFhIUkxvZ2dpbmc6ICJ4aHJMb2dnaW5nIiwKICAgICBSZXN1
bHQ6ICJyZXN1bHQiCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IGE2MGU2MTYzOWQ5MWVhZWQ4NWIwMTE5YzA1
ZmY1YjU5NWFkYTg1MDAuLjQwZTFjNjE5MDcxZmI0NzViNjNmZDg5NDZiMTliMDRhYmU5NTZmMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Vz
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZXNQYW5lbC5qcwpAQCAtMzI3LDE0ICszMjcsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlID0gewogICAgIHNob3dBbmNob3JMb2NhdGlvbjogZnVuY3Rpb24oYW5jaG9y
KQogICAgIHsKICAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlRm9y
VVJMKGFuY2hvci5ocmVmKTsKLSAgICAgICAgaWYgKHJlc291cmNlLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZS5UeXBlLlhIUikgewotICAgICAgICAgICAgLy8gU2hvdyBYSFJzIGluIHRo
ZSBuZXR3b3JrIHBhbmVsIG9ubHkuCi0gICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVs
cy5uZXR3b3JrICYmIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5jYW5TaG93QW5jaG9yTG9j
YXRpb24oYW5jaG9yKSkgewotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFu
ZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcms7Ci0gICAgICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5uZXR3b3JrLnNob3dBbmNob3JMb2NhdGlvbihhbmNob3IpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAgICAgICAgIHZhciBsaW5l
TnVtYmVyID0gYW5jaG9yLmhhc0F0dHJpYnV0ZSgibGluZV9udW1iZXIiKSA/IHBhcnNlSW50KGFu
Y2hvci5nZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIikpIDogdW5kZWZpbmVkOwogICAgICAgICB0
aGlzLnNob3dSZXNvdXJjZShyZXNvdXJjZSwgbGluZU51bWJlcik7CiAgICAgfSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggNTU2Yzk0
MDdhMDc0NTJjMTA3MjA1ODVjMWI4ZGViNGNhNTlhMDgzMC4uYTU2M2E1YjE5YWMwNzg0MTkwNGEx
YTNjZmZiN2FmNjJjYzk1NWM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTEyMTgsNyArMTIxOCw3IEBAIFdlYkluc3BlY3Rvci5f
c2hvd0FuY2hvckxvY2F0aW9uSW5QYW5lbCA9IGZ1bmN0aW9uKGFuY2hvciwgcGFuZWwpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLVdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudCA9
IGZ1bmN0aW9uKHN0cmluZykKK1dlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudFdp
dGhDdXN0b21MaW5raWZpZXIgPSBmdW5jdGlvbihzdHJpbmcsIGxpbmtpZmllcikKIHsKICAgICB2
YXIgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICAgIHZh
ciBsaW5rU3RyaW5nUmVnRXggPSAvKD86W2EtekEtWl1bYS16QS1aMC05Ky4tXXsyLH06XC9cL3x3
d3dcLilbXHckXC1fKyonPVx8XC9cXCgpe31bXF0lQCYjfiw6Oy4hP117Mix9W1x3JFwtXysqPVx8
XC9cXCh7JUAmI35dLzsKQEAgLTEyMzAsMjcgKzEyMzAsMTggQEAgV2ViSW5zcGVjdG9yLmxpbmtp
ZnlTdHJpbmdBc0ZyYWdtZW50ID0gZnVuY3Rpb24oc3RyaW5nKQogICAgICAgICAgICAgYnJlYWs7
CiAKICAgICAgICAgbGlua1N0cmluZyA9IGxpbmtTdHJpbmdbMF07Ci0gICAgICAgIHZhciB0aXRs
ZSA9IGxpbmtTdHJpbmc7CiAgICAgICAgIHZhciBsaW5rSW5kZXggPSBzdHJpbmcuaW5kZXhPZihs
aW5rU3RyaW5nKTsKICAgICAgICAgdmFyIG5vbkxpbmsgPSBzdHJpbmcuc3Vic3RyaW5nKDAsIGxp
bmtJbmRleCk7CiAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShub25MaW5rKSk7CiAKLSAgICAgICAgdmFyIHByb2ZpbGVTdHJpbmdNYXRjaGVzID0g
V2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlLlVSTFJlZ0V4cC5leGVjKHRpdGxlKTsKLSAgICAgICAg
aWYgKHByb2ZpbGVTdHJpbmdNYXRjaGVzKQotICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0
b3IucGFuZWxzLnByb2ZpbGVzLmRpc3BsYXlUaXRsZUZvclByb2ZpbGVMaW5rKHByb2ZpbGVTdHJp
bmdNYXRjaGVzWzJdLCBwcm9maWxlU3RyaW5nTWF0Y2hlc1sxXSk7Ci0KKyAgICAgICAgdmFyIHRp
dGxlID0gbGlua1N0cmluZzsKICAgICAgICAgdmFyIHJlYWxVUkwgPSAobGlua1N0cmluZy5pbmRl
eE9mKCJ3d3cuIikgPT09IDAgPyAiaHR0cDovLyIgKyBsaW5rU3RyaW5nIDogbGlua1N0cmluZyk7
CiAgICAgICAgIHZhciBsaW5lQ29sdW1uTWF0Y2ggPSBsaW5lQ29sdW1uUmVnRXguZXhlYyhyZWFs
VVJMKTsKICAgICAgICAgaWYgKGxpbmVDb2x1bW5NYXRjaCkKICAgICAgICAgICAgIHJlYWxVUkwg
PSByZWFsVVJMLnN1YnN0cmluZygwLCByZWFsVVJMLmxlbmd0aCAtIGxpbmVDb2x1bW5NYXRjaFsw
XS5sZW5ndGgpOwogCi0gICAgICAgIHZhciBoYXNSZXNvdXJjZVdpdGhVUkwgPSAhIVdlYkluc3Bl
Y3Rvci5yZXNvdXJjZUZvclVSTChyZWFsVVJMKTsKLSAgICAgICAgdmFyIHVybE5vZGUgPSBXZWJJ
bnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZShyZWFsVVJMLCB0aXRsZSwgbnVsbCwgaGFzUmVzb3Vy
Y2VXaXRoVVJMKTsKLSAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHVybE5vZGUpOwotICAg
ICAgICBpZiAobGluZUNvbHVtbk1hdGNoKSB7Ci0gICAgICAgICAgICB1cmxOb2RlLnNldEF0dHJp
YnV0ZSgibGluZV9udW1iZXIiLCBsaW5lQ29sdW1uTWF0Y2hbMV0pOwotICAgICAgICAgICAgdXJs
Tm9kZS5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJzY3JpcHRzIik7Ci0gICAgICAg
IH0KKyAgICAgICAgdmFyIGxpbmtOb2RlID0gbGlua2lmaWVyKHRpdGxlLCByZWFsVVJMLCBsaW5l
Q29sdW1uTWF0Y2ggPyBsaW5lQ29sdW1uTWF0Y2hbMV0gOiB1bmRlZmluZWQpOworICAgICAgICBj
b250YWluZXIuYXBwZW5kQ2hpbGQobGlua05vZGUpOwogICAgICAgICBzdHJpbmcgPSBzdHJpbmcu
c3Vic3RyaW5nKGxpbmtJbmRleCArIGxpbmtTdHJpbmcubGVuZ3RoLCBzdHJpbmcubGVuZ3RoKTsK
ICAgICB9CiAKQEAgLTEyNjAsNiArMTI1MSwyNyBAQCBXZWJJbnNwZWN0b3IubGlua2lmeVN0cmlu
Z0FzRnJhZ21lbnQgPSBmdW5jdGlvbihzdHJpbmcpCiAgICAgcmV0dXJuIGNvbnRhaW5lcjsKIH0K
IAorV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50ID0gZnVuY3Rpb24oc3RyaW5n
KQoreworICAgIGZ1bmN0aW9uIGxpbmtpZmllcih0aXRsZSwgdXJsLCBsaW5lTnVtYmVyKQorICAg
IHsKKyAgICAgICAgdmFyIHByb2ZpbGVTdHJpbmdNYXRjaGVzID0gV2ViSW5zcGVjdG9yLlByb2Zp
bGVUeXBlLlVSTFJlZ0V4cC5leGVjKHRpdGxlKTsKKyAgICAgICAgaWYgKHByb2ZpbGVTdHJpbmdN
YXRjaGVzKQorICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVz
LmRpc3BsYXlUaXRsZUZvclByb2ZpbGVMaW5rKHByb2ZpbGVTdHJpbmdNYXRjaGVzWzJdLCBwcm9m
aWxlU3RyaW5nTWF0Y2hlc1sxXSk7CisKKyAgICAgICAgdmFyIGlzRXh0ZXJuYWwgPSAhV2ViSW5z
cGVjdG9yLnJlc291cmNlRm9yVVJMKHVybCk7CisgICAgICAgIHZhciB1cmxOb2RlID0gV2ViSW5z
cGVjdG9yLmxpbmtpZnlVUkxBc05vZGUodXJsLCB0aXRsZSwgbnVsbCwgaXNFeHRlcm5hbCk7Cisg
ICAgICAgIGlmICh0eXBlb2YobGluZU51bWJlcikgIT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAg
ICAgICB1cmxOb2RlLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiLCBsaW5lTnVtYmVyKTsKKyAg
ICAgICAgICAgIHVybE5vZGUuc2V0QXR0cmlidXRlKCJwcmVmZXJyZWRfcGFuZWwiLCAic2NyaXB0
cyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdXJsTm9kZTsgCisgICAg
fQorICAgIAorICAgIHJldHVybiBXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnRX
aXRoQ3VzdG9tTGlua2lmaWVyKHN0cmluZywgbGlua2lmaWVyKTsKK30KKwogV2ViSW5zcGVjdG9y
LnNob3dQcm9maWxlRm9yVVJMID0gZnVuY3Rpb24odXJsKQogewogICAgIFdlYkluc3BlY3Rvci5z
aG93UGFuZWwoInByb2ZpbGVzIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnNvbGVUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlVHlwZXMuaAppbmRleCAw
NzIxYjM2ZjJhYjgxNDQwM2E5YTdiOTBjMDk0MTYzYjlkYzIxOWU2Li5lMTQ5NDllMDlhNGQ3ZTQ0
ODlhZDEyOThmNzI4ZWYzZjM0ZDUwYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnNvbGVUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZVR5cGVzLmgK
QEAgLTQ1LDcgKzQ1LDggQEAgZW51bSBNZXNzYWdlVHlwZSB7CiAgICAgRW5kR3JvdXBNZXNzYWdl
VHlwZSwKICAgICBBc3NlcnRNZXNzYWdlVHlwZSwKICAgICBVbmNhdWdodEV4Y2VwdGlvbk1lc3Nh
Z2VUeXBlLAotICAgIE5ldHdvcmtFcnJvck1lc3NhZ2VUeXBlCisgICAgTmV0d29ya0Vycm9yTWVz
c2FnZVR5cGUsCisgICAgWEhSTG9nZ2luZ01lc3NhZ2VUeXBlCiB9OwogCiBlbnVtIE1lc3NhZ2VM
ZXZlbCB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105983</attachid>
            <date>2011-09-01 09:58:08 -0700</date>
            <delta_ts>2011-09-21 09:24:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67399-20110901205806.patch</filename>
            <type>text/plain</type>
            <size>19079</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQyOTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZmJmYzU0MzVkNTgwZDZh
ZjA1NmY5NmE0MDU4OTgyMjJmMjJkMDJiLi5kY2NhN2NiNjg5NGE4NGU3MTc2NjJjZDA5NDE3Y2Ix
NjI5NTQ0YTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMgQEAKIDIwMTEtMDktMDEgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogWE1MSHR0cFJlcXVlc3QgY29uc29sZSBsb2dnaW5nIG1lc3NhZ2VzIHNob3VsZCBsaW5rIHRv
IG5ldHdvcmsgcGFuZWwgd2hlbiBwb3NzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3Mzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6Om1lc3NhZ2VUeXBlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1l
c3NhZ2U6OmFkZFRvRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2Fn
ZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRy
aWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29u
c29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlc291
cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UucHJvdG90eXBlLl9mb3JtYXRNZXNzYWdlLnN3aXRjaC5saW5raWZpZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0TWVzc2Fn
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuc2hvd0FuY2hvckxv
Y2F0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudFdpdGhDdXN0b21MaW5r
aWZpZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50KToK
KyAgICAgICAgKiBwYWdlL0NvbnNvbGVUeXBlcy5oOgorCisyMDExLTA5LTAxICBWc2V2b2xvZCBW
bGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERl
Y29kZSBxdWVyeS9mb3JtIHBhcmFtZXRlcnMgbmFtZXMgYXMgd2VsbCBhcyB2YWx1ZXMuCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzM5MwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCAwYmM0YmExN2U0
ZGEwYzVkNDIyZGNmOTE2NDQwMzk1YTBhODM1ZTM0Li5hYjU4ZDEwNWJhMDVkOGVlNzY2OGE2ODQ5
MjdlMTIxNTQyZTgyNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVz
c2FnZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Db25z
b2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0
LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBtLCB1bnNpZ25lZCBsaSwgY29uc3QgU3Ry
aW5nJiB1KQorQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugcywg
TWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQg
bGksIGNvbnN0IFN0cmluZyYgdSwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCiAgICAgOiBtX3Nv
dXJjZShzKQogICAgICwgbV90eXBlKHQpCiAgICAgLCBtX2xldmVsKGwpCkBAIC01Miw2ICs1Miw3
IEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3Nh
Z2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjCiAgICAgLCBtX2xpbmUobGkpCiAgICAgLCBtX3Vy
bCh1KQogICAgICwgbV9yZXBlYXRDb3VudCgxKQorICAgICwgbV9yZXF1ZXN0SWQocmVxdWVzdElk
KQogewogfQogCkBAIC0xMDksNiArMTEwLDcgQEAgc3RhdGljIFN0cmluZyBtZXNzYWdlVHlwZVZh
bHVlKE1lc3NhZ2VUeXBlIHR5cGUpCiAgICAgY2FzZSBBc3NlcnRNZXNzYWdlVHlwZTogcmV0dXJu
ICJhc3NlcnQiOwogICAgIGNhc2UgVW5jYXVnaHRFeGNlcHRpb25NZXNzYWdlVHlwZTogcmV0dXJu
ICJ1bmNhdWdodEV4Y2VwdGlvbiI7CiAgICAgY2FzZSBOZXR3b3JrRXJyb3JNZXNzYWdlVHlwZTog
cmV0dXJuICJuZXR3b3JrRXJyb3IiOworICAgIGNhc2UgWEhSTG9nZ2luZ01lc3NhZ2VUeXBlOiBy
ZXR1cm4gInhockxvZ2dpbmciOwogICAgIH0KICAgICByZXR1cm4gIm90aGVyIjsKIH0KQEAgLTEz
NSw3ICsxMzcsNyBAQCB2b2lkIENvbnNvbGVNZXNzYWdlOjphZGRUb0Zyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kOjpDb25zb2xlKiBmcm9udGVuZCwgSW5qZWN0ZQogICAgIGpzb25PYmotPnNldFN0
cmluZygidXJsIiwgbV91cmwpOwogICAgIGpzb25PYmotPnNldE51bWJlcigicmVwZWF0Q291bnQi
LCBzdGF0aWNfY2FzdDxpbnQ+KG1fcmVwZWF0Q291bnQpKTsKICAgICBqc29uT2JqLT5zZXRTdHJp
bmcoInRleHQiLCBtX21lc3NhZ2UpOwotICAgIGlmIChtX3R5cGUgPT0gTmV0d29ya0Vycm9yTWVz
c2FnZVR5cGUpIAorICAgIGlmIChtX3R5cGUgPT0gTmV0d29ya0Vycm9yTWVzc2FnZVR5cGUgfHwg
bV90eXBlID09IFhIUkxvZ2dpbmdNZXNzYWdlVHlwZSkKICAgICAgICAganNvbk9iai0+c2V0U3Ry
aW5nKCJuZXR3b3JrUmVxdWVzdElkIiwgbV9yZXF1ZXN0SWQpOwogICAgIGlmIChtX2FyZ3VtZW50
cyAmJiBtX2FyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpKSB7CiAgICAgICAgIEluamVjdGVkU2Ny
aXB0IGluamVjdGVkU2NyaXB0ID0gaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlw
dEZvcihtX2FyZ3VtZW50cy0+Z2xvYmFsU3RhdGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5oCmluZGV4IGMwYjI1ODg5ODQ1YjRjYmM5YjRmYmFmMDU2Nzk1NDA4
NThlNGI5MmYuLjg4MzU0ZDBmMDI0YWEwNTRmNDA0NTk4NWJmNjhiM2ViMmQwZWE4MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCkBAIC01MSw3ICs1MSw3IEBA
IGNsYXNzIFNjcmlwdFZhbHVlOwogY2xhc3MgQ29uc29sZU1lc3NhZ2UgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKENvbnNvbGVNZXNzYWdlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiB1
KTsKKyAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUsIGNv
bnN0IFN0cmluZyYgcmVxdWVzdElkID0gU3RyaW5nKCkpOwogICAgIENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwg
UGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4p
OwogICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3QgU3RyaW5nJiByZXNwb25zZVVybCwgY29uc3Qg
U3RyaW5nJiByZXF1ZXN0SWQpOwogICAgIH5Db25zb2xlTWVzc2FnZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCBhM2Yy
YzIzOGI1NDA3MmZmMThjZWE1NTM1MDJlYWViMDRjNDNmZWIyLi43NTI1MDBkZmNiODQ1OThkNTYz
ODcwYzA1OTQxNzMzMDJiYmY5MjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcApAQCAtMTQyLDExICsxNDIsMTEgQEAgdm9pZCBJ
bnNwZWN0b3JDb25zb2xlQWdlbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXAKICAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29u
c29sZU1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRzLCBjYWxs
U3RhY2spKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9D
b25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29u
c3QgU3RyaW5nJiBzY3JpcHRJZCkKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNz
YWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCiB7CiAg
ICAgaWYgKCFtX2luc3BlY3RvckFnZW50LT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0
eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc2NyaXB0SWQpKSk7CisgICAgYWRkQ29u
c29sZU1lc3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2
ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNjcmlwdElkLCByZXF1ZXN0SWQpKSk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdGFydFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxl
KQpAQCAtMjExLDEyICsyMTEsMTQgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmZyYW1l
V2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyogd2luZG93KQogICAgIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLT5kaXNjYXJkSW5qZWN0ZWRTY3JpcHRzRm9yKHdpbmRvdyk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVO
dW1iZXIpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhN
TEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpCiB7CiAgICAg
aWYgKCFtX2luc3BlY3RvckFnZW50LT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBp
ZiAobV9pbnNwZWN0b3JTdGF0ZS0+Z2V0Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6bW9uaXRv
cmluZ1hIUikpCi0gICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCAiWEhSIGZpbmlzaGVkIGxvYWRpbmc6IFwi
IiArIHVybCArICJcIi4iLCBzZW5kTGluZU51bWJlciwgc2VuZFVSTCk7CisgICAgaWYgKG1faW5z
cGVjdG9yU3RhdGUtPmdldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIp
KSB7CisgICAgICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVl
c3RJZChpZGVudGlmaWVyKTsKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VT
b3VyY2UsIFhIUkxvZ2dpbmdNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCAiWEhSIGZpbmlz
aGVkIGxvYWRpbmc6IFwiIiArIHVybCArICJcIi4iLCBzZW5kTGluZU51bWJlciwgc2VuZFVSTCwg
cmVxdWVzdElkKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRS
ZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuaAppbmRleCA4MzlmOTUwMDVkM2QxYWZlOGE1MTQ3Njc2Mjk4ZjIyYzgx
YzNlOGYwLi4zYzhkYTFlNjY3Y2M3Nzc3ODlmZTRlZDRlMGQ1ZmVlOGRkYmVkYWJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC02
OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKIAogICAgIHZv
aWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRz
PiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdElk
KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCA9IFN0
cmluZygpKTsKIAogICAgIHZvaWQgc3RhcnRUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAg
ICAgdm9pZCBzdG9wVGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPik7CkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZnJhbWVX
aW5kb3dEaXNjYXJkZWQoRE9NV2luZG93Kik7CiAKLSAgICB2b2lkIHJlc291cmNlUmV0cmlldmVk
QnlYTUxIdHRwUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJM
LCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcik7CisgICAgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5
WE1MSHR0cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcik7CiAgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNDdhMjY1MGY0ZDVlNzYwODE1N2RhNzViOGY3Yzk1
ZDZjNjE3OWYzYy4uNjI2N2RlOTc1NWYyMjk2MDdmYjI2MWVlZmY2NjhlYjI2ZTY4NTcyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKQEAgLTUzNSw3ICs1MzUsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkRmFpbExvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbgogdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVx
dWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIp
CiB7CiAgICAgaWYgKEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQ29uc29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVB
Z2VudC0+cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVybCwgc2VuZFVSTCwgc2Vu
ZExpbmVOdW1iZXIpOworICAgICAgICBjb25zb2xlQWdlbnQtPnJlc291cmNlUmV0cmlldmVkQnlY
TUxIdHRwUmVxdWVzdChpZGVudGlmaWVyLCB1cmwsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyKTsK
ICAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkKICAgICAgICAgcmVzb3VyY2VB
Z2VudC0+c2V0SW5pdGlhbFhIUkNvbnRlbnQoaWRlbnRpZmllciwgc291cmNlU3RyaW5nKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1l
c3NhZ2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNz
YWdlLmpzCmluZGV4IDUyMDNjN2E1ZTc2OTE3M2ZiMDMwZDVkYzAyYTgwYzAyYzViZWFiYjQuLjdi
MTZkNzk3MDcxYzE5N2U3Nzk0MDkzNjYyMDUyODU5MTlhNGM1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwpAQCAtMTEz
LDYgKzExMywyMyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dCA9IHRoaXMuX2Zvcm1hdChbdGhpcy5fbWVz
c2FnZVRleHRdKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Y
SFJMb2dnaW5nOgorICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIGxpbmtpZmllcih0aXRsZSwgdXJsLCBsaW5lTnVtYmVyKQorICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgdmFyIGlzRXh0ZXJuYWwgPSAhdGhpcy5fcmVxdWVzdDsKKyAg
ICAgICAgICAgICAgICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNO
b2RlKHVybCwgdGl0bGUsIG51bGwsIGlzRXh0ZXJuYWwpOworICAgICAgICAgICAgICAgICAgICBp
ZiAodGhpcy5fcmVxdWVzdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0
dHJpYnV0ZSgicmVxdWVzdF9pZCIsIHRoaXMuX3JlcXVlc3QucmVxdWVzdElkKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJu
ZXR3b3JrIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGFuY2hvcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgdmFyIGZyYWdtZW50ID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdt
ZW50V2l0aEN1c3RvbUxpbmtpZmllcih0aGlzLl9tZXNzYWdlVGV4dCwgbGlua2lmaWVyLmJpbmQo
dGhpcykpOworICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGZyYWdtZW50
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkFzc2VydDoKICAgICAgICAgICAgICAgICB2YXIg
YXJncyA9IFtXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFzc2VydGlvbiBmYWlsZWQ6IildOwogICAg
ICAgICAgICAgICAgIGlmICh0aGlzLl9wYXJhbWV0ZXJzKQpAQCAtNDk3LDYgKzUxNCw3IEBAIFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZSA9IHsKICAgICBBc3NlcnQ6ICJh
c3NlcnQiLAogICAgIFVuY2F1Z2h0RXhjZXB0aW9uOiAidW5jYXVnaHRFeGNlcHRpb24iLAogICAg
IE5ldHdvcmtFcnJvcjogIm5ldHdvcmtFcnJvciIsCisgICAgWEhSTG9nZ2luZzogInhockxvZ2dp
bmciLAogICAgIFJlc3VsdDogInJlc3VsdCIKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKaW5kZXggYTYwZTYxNjM5ZDkx
ZWFlZDg1YjAxMTljMDVmZjViNTk1YWRhODUwMC4uNDBlMWM2MTkwNzFmYjQ3NWI2M2ZkODk0NmIx
OWIwNGFiZTk1NmYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0zMjcsMTQgKzMyNyw2IEBAIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgc2hvd0FuY2hvckxvY2F0aW9uOiBm
dW5jdGlvbihhbmNob3IpCiAgICAgewogICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0
b3IucmVzb3VyY2VGb3JVUkwoYW5jaG9yLmhyZWYpOwotICAgICAgICBpZiAocmVzb3VyY2UudHlw
ZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuWEhSKSB7Ci0gICAgICAgICAgICAvLyBT
aG93IFhIUnMgaW4gdGhlIG5ldHdvcmsgcGFuZWwgb25seS4KLSAgICAgICAgICAgIGlmIChXZWJJ
bnNwZWN0b3IucGFuZWxzLm5ldHdvcmsgJiYgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLmNh
blNob3dBbmNob3JMb2NhdGlvbihhbmNob3IpKSB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmN1cnJlbnRQYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yazsKLSAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuc2hvd0FuY2hvckxvY2F0aW9uKGFu
Y2hvcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAg
ICAgICAgdmFyIGxpbmVOdW1iZXIgPSBhbmNob3IuaGFzQXR0cmlidXRlKCJsaW5lX251bWJlciIp
ID8gcGFyc2VJbnQoYW5jaG9yLmdldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiKSkgOiB1bmRlZmlu
ZWQ7CiAgICAgICAgIHRoaXMuc2hvd1Jlc291cmNlKHJlc291cmNlLCBsaW5lTnVtYmVyKTsKICAg
ICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cwppbmRleCA1NTZjOTQwN2EwNzQ1MmMxMDcyMDU4NWMxYjhkZWI0Y2E1OWEwODMwLi5hNTYzYTVi
MTlhYzA3ODQxOTA0YTFhM2NmZmI3YWY2MmNjOTU1YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtMTIxOCw3ICsxMjE4LDcgQEAg
V2ViSW5zcGVjdG9yLl9zaG93QW5jaG9yTG9jYXRpb25JblBhbmVsID0gZnVuY3Rpb24oYW5jaG9y
LCBwYW5lbCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJp
bmdBc0ZyYWdtZW50ID0gZnVuY3Rpb24oc3RyaW5nKQorV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJp
bmdBc0ZyYWdtZW50V2l0aEN1c3RvbUxpbmtpZmllciA9IGZ1bmN0aW9uKHN0cmluZywgbGlua2lm
aWVyKQogewogICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCk7CiAgICAgdmFyIGxpbmtTdHJpbmdSZWdFeCA9IC8oPzpbYS16QS1aXVthLXpBLVowLTkr
Li1dezIsfTpcL1wvfHd3d1wuKVtcdyRcLV8rKic9XHxcL1xcKCl7fVtcXSVAJiN+LDo7LiE/XXsy
LH1bXHckXC1fKyo9XHxcL1xcKHslQCYjfl0vOwpAQCAtMTIzMCwyNyArMTIzMCwxOCBAQCBXZWJJ
bnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQgPSBmdW5jdGlvbihzdHJpbmcpCiAgICAg
ICAgICAgICBicmVhazsKIAogICAgICAgICBsaW5rU3RyaW5nID0gbGlua1N0cmluZ1swXTsKLSAg
ICAgICAgdmFyIHRpdGxlID0gbGlua1N0cmluZzsKICAgICAgICAgdmFyIGxpbmtJbmRleCA9IHN0
cmluZy5pbmRleE9mKGxpbmtTdHJpbmcpOwogICAgICAgICB2YXIgbm9uTGluayA9IHN0cmluZy5z
dWJzdHJpbmcoMCwgbGlua0luZGV4KTsKICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKG5vbkxpbmspKTsKIAotICAgICAgICB2YXIgcHJvZmlsZVN0
cmluZ01hdGNoZXMgPSBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuVVJMUmVnRXhwLmV4ZWModGl0
bGUpOwotICAgICAgICBpZiAocHJvZmlsZVN0cmluZ01hdGNoZXMpCi0gICAgICAgICAgICB0aXRs
ZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuZGlzcGxheVRpdGxlRm9yUHJvZmlsZUxp
bmsocHJvZmlsZVN0cmluZ01hdGNoZXNbMl0sIHByb2ZpbGVTdHJpbmdNYXRjaGVzWzFdKTsKLQor
ICAgICAgICB2YXIgdGl0bGUgPSBsaW5rU3RyaW5nOwogICAgICAgICB2YXIgcmVhbFVSTCA9IChs
aW5rU3RyaW5nLmluZGV4T2YoInd3dy4iKSA9PT0gMCA/ICJodHRwOi8vIiArIGxpbmtTdHJpbmcg
OiBsaW5rU3RyaW5nKTsKICAgICAgICAgdmFyIGxpbmVDb2x1bW5NYXRjaCA9IGxpbmVDb2x1bW5S
ZWdFeC5leGVjKHJlYWxVUkwpOwogICAgICAgICBpZiAobGluZUNvbHVtbk1hdGNoKQogICAgICAg
ICAgICAgcmVhbFVSTCA9IHJlYWxVUkwuc3Vic3RyaW5nKDAsIHJlYWxVUkwubGVuZ3RoIC0gbGlu
ZUNvbHVtbk1hdGNoWzBdLmxlbmd0aCk7CiAKLSAgICAgICAgdmFyIGhhc1Jlc291cmNlV2l0aFVS
TCA9ICEhV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHJlYWxVUkwpOwotICAgICAgICB2YXIg
dXJsTm9kZSA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHJlYWxVUkwsIHRpdGxlLCBu
dWxsLCBoYXNSZXNvdXJjZVdpdGhVUkwpOwotICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
dXJsTm9kZSk7Ci0gICAgICAgIGlmIChsaW5lQ29sdW1uTWF0Y2gpIHsKLSAgICAgICAgICAgIHVy
bE5vZGUuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxpbmVDb2x1bW5NYXRjaFsxXSk7Ci0g
ICAgICAgICAgICB1cmxOb2RlLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlw
dHMiKTsKLSAgICAgICAgfQorICAgICAgICB2YXIgbGlua05vZGUgPSBsaW5raWZpZXIodGl0bGUs
IHJlYWxVUkwsIGxpbmVDb2x1bW5NYXRjaCA/IGxpbmVDb2x1bW5NYXRjaFsxXSA6IHVuZGVmaW5l
ZCk7CisgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChsaW5rTm9kZSk7CiAgICAgICAgIHN0
cmluZyA9IHN0cmluZy5zdWJzdHJpbmcobGlua0luZGV4ICsgbGlua1N0cmluZy5sZW5ndGgsIHN0
cmluZy5sZW5ndGgpOwogICAgIH0KIApAQCAtMTI2MCw2ICsxMjUxLDI3IEBAIFdlYkluc3BlY3Rv
ci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudCA9IGZ1bmN0aW9uKHN0cmluZykKICAgICByZXR1cm4g
Y29udGFpbmVyOwogfQogCitXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQgPSBm
dW5jdGlvbihzdHJpbmcpCit7CisgICAgZnVuY3Rpb24gbGlua2lmaWVyKHRpdGxlLCB1cmwsIGxp
bmVOdW1iZXIpCisgICAgeworICAgICAgICB2YXIgcHJvZmlsZVN0cmluZ01hdGNoZXMgPSBXZWJJ
bnNwZWN0b3IuUHJvZmlsZVR5cGUuVVJMUmVnRXhwLmV4ZWModGl0bGUpOworICAgICAgICBpZiAo
cHJvZmlsZVN0cmluZ01hdGNoZXMpCisgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5w
YW5lbHMucHJvZmlsZXMuZGlzcGxheVRpdGxlRm9yUHJvZmlsZUxpbmsocHJvZmlsZVN0cmluZ01h
dGNoZXNbMl0sIHByb2ZpbGVTdHJpbmdNYXRjaGVzWzFdKTsKKworICAgICAgICB2YXIgaXNFeHRl
cm5hbCA9ICFXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwodXJsKTsKKyAgICAgICAgdmFyIHVy
bE5vZGUgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1cmwsIHRpdGxlLCBudWxsLCBp
c0V4dGVybmFsKTsKKyAgICAgICAgaWYgKHR5cGVvZihsaW5lTnVtYmVyKSAhPT0gInVuZGVmaW5l
ZCIpIHsKKyAgICAgICAgICAgIHVybE5vZGUuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxp
bmVOdW1iZXIpOworICAgICAgICAgICAgdXJsTm9kZS5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9w
YW5lbCIsICJzY3JpcHRzIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB1
cmxOb2RlOyAKKyAgICB9CisgICAgCisgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5saW5raWZ5U3Ry
aW5nQXNGcmFnbWVudFdpdGhDdXN0b21MaW5raWZpZXIoc3RyaW5nLCBsaW5raWZpZXIpOworfQor
CiBXZWJJbnNwZWN0b3Iuc2hvd1Byb2ZpbGVGb3JVUkwgPSBmdW5jdGlvbih1cmwpCiB7CiAgICAg
V2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicHJvZmlsZXMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29uc29sZVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGVU
eXBlcy5oCmluZGV4IDA3MjFiMzZmMmFiODE0NDAzYTlhN2I5MGMwOTQxNjNiOWRjMjE5ZTYuLmUx
NDk0OWUwOWE0ZDdlNDQ4OWFkMTI5OGY3MjhlZjNmMzRkNTBhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29uc29sZVR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b25zb2xlVHlwZXMuaApAQCAtNDUsNyArNDUsOCBAQCBlbnVtIE1lc3NhZ2VUeXBlIHsKICAgICBF
bmRHcm91cE1lc3NhZ2VUeXBlLAogICAgIEFzc2VydE1lc3NhZ2VUeXBlLAogICAgIFVuY2F1Z2h0
RXhjZXB0aW9uTWVzc2FnZVR5cGUsCi0gICAgTmV0d29ya0Vycm9yTWVzc2FnZVR5cGUKKyAgICBO
ZXR3b3JrRXJyb3JNZXNzYWdlVHlwZSwKKyAgICBYSFJMb2dnaW5nTWVzc2FnZVR5cGUKIH07CiAK
IGVudW0gTWVzc2FnZUxldmVsIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzYzI0NWQzODk5NDNmZGRk
ZGRiYTZkMGNjM2JiZTY5MDE4NmFlYjEyLi41Y2I2M2MzNzE2NmExMjdkYmNjNWU4ZDM0MjdkMzQx
MmQyZjFjOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMDEg
IFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogWE1MSHR0cFJlcXVlc3QgY29uc29sZSBsb2dnaW5nIG1lc3NhZ2VzIHNob3VsZCBs
aW5rIHRvIG5ldHdvcmsgcGFuZWwgd2hlbiBwb3NzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3Mzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW06CisgICAgICAgIChzdHJpbmdGb3JNZXNzYWdlVHlwZSk6CisgICAgICAgICogV2ViVmll
dy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oOgorCiAyMDExLTA4LTMxICBCZXRoIERha2luICA8YmRh
a2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjczMjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA5NmQ2NTdlMTE1MTU3NmM3MDkzMmY2YzZmYjdlYTVk
ZGRkNGYxZWZiLi5jNGJhYWU3ZTU3MzYyNDc5MGFiYTAwZjYzN2JlN2YzNjc5OTcwN2YyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCkBAIC0xMDAsNiArMTAwLDcgQEAgTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlRW5kR3Jv
dXBNZXNzYWdlVHlwZSA9IEAiRW5kR3JvdXBNZXNzYWdlVHlwZSI7CiBOU1N0cmluZyAqV2ViQ29u
c29sZU1lc3NhZ2VBc3NlcnRNZXNzYWdlVHlwZSA9IEAiQXNzZXJ0TWVzc2FnZVR5cGUiOwogTlNT
dHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlVW5jYXVnaHRFeGNlcHRpb25NZXNzYWdlVHlwZSA9IEAi
VW5jYXVnaHRFeGNlcHRpb25NZXNzYWdlVHlwZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3Nh
Z2VOZXR3b3JrRXJyb3JNZXNzYWdlVHlwZSA9IEAiTmV0d29ya0Vycm9yTWVzc2FnZVR5cGUiOwor
TlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlWEhSTG9nZ2luZ01lc3NhZ2VUeXBlID0gQCJYSFJM
b2dnaW5nTWVzc2FnZVR5cGUiOwogCiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VUaXBNZXNz
YWdlTGV2ZWwgPSBAIlRpcE1lc3NhZ2VMZXZlbCI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3Nh
Z2VMb2dNZXNzYWdlTGV2ZWwgPSBAIkxvZ01lc3NhZ2VMZXZlbCI7CkBAIC0zODcsNiArMzg4LDgg
QEAgaW5saW5lIHN0YXRpYyBOU1N0cmluZyAqc3RyaW5nRm9yTWVzc2FnZVR5cGUoTWVzc2FnZVR5
cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdlVW5jYXVnaHRFeGNlcHRp
b25NZXNzYWdlVHlwZTsKICAgICBjYXNlIE5ldHdvcmtFcnJvck1lc3NhZ2VUeXBlOgogICAgICAg
ICByZXR1cm4gV2ViQ29uc29sZU1lc3NhZ2VOZXR3b3JrRXJyb3JNZXNzYWdlVHlwZTsKKyAgICBj
YXNlIFhIUkxvZ2dpbmdNZXNzYWdlVHlwZToKKyAgICAgICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNz
YWdlWEhSTG9nZ2luZ01lc3NhZ2VUeXBlOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gQCIiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJV
SURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDM3MDQxZDQwOTBlZGE2Yzg2MTNmNDVlZmZiNGUyNjg1
ZjAyNGU2MWYuLmEwOGZmNzI4ZGI4OWY5MTVjMDMzNjg3NGYwMzU0NGVlZjgyNGNhZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVUlEZWxlZ2F0ZVByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlVJRGVsZWdhdGVQcml2YXRlLmgKQEAg
LTEwOSw2ICsxMDksNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlRW5kR3Jv
dXBNZXNzYWdlVHlwZTsKIGV4dGVybiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VBc3NlcnRN
ZXNzYWdlVHlwZTsKIGV4dGVybiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VVbmNhdWdodEV4
Y2VwdGlvbk1lc3NhZ2VUeXBlOwogZXh0ZXJuIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZU5l
dHdvcmtFcnJvck1lc3NhZ2VUeXBlOworZXh0ZXJuIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2Fn
ZVhIUkxvZ2dpbmdNZXNzYWdlVHlwZTsKIAogLy8gTWVzc2FnZSBMZXZlbHMuCiBleHRlcm4gTlNT
dHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlVGlwTWVzc2FnZUxldmVsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108169</attachid>
            <date>2011-09-21 09:24:34 -0700</date>
            <delta_ts>2011-09-21 10:09:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67399-20110921202431.patch</filename>
            <type>text/plain</type>
            <size>28466</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU1MzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMjkyNDFjZDkzZjJlMGI2
ZTljY2Y5MWE5ZDIzMzQ2ZWNjYmRhZmUxLi41Y2NkMmU1OGI2Mzc2NGI0YWE3N2NlMGRkNmJmNTMx
YzgxOTRkMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTEtMDktMjEgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogWE1MSHR0cFJlcXVlc3QgY29uc29sZSBsb2dnaW5nIG1lc3NhZ2VzIHNob3VsZCBsaW5rIHRv
IG5ldHdvcmsgcGFuZWwgd2hlbiBwb3NzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3Mzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6Om5ldHdvcmtNZXNzYWdlVHlwZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnNvbGVNZXNzYWdlOjphZGRUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGVN
ZXNzYWdlOjppc0VxdWFsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdlOjpjcmVhdGVOZXR3b3JrQ29uc29sZU1l
c3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6Om5ldHdvcmtNZXNzYWdl
VHlwZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ29uc29sZUFnZW50OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRGYWlsTG9h
ZGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1M
SHR0cFJlcXVlc3RJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVN
ZXNzYWdlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5jcmVhdGVUZXh0TWVzc2FnZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLl9mb3JtYXRNZXNzYWdl
LmVsc2UuZWxzZS5saW5raWZpZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlLnByb3RvdHlwZS5fZm9ybWF0TWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Db25zb2xlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVs
LnByb3RvdHlwZS5fbWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29uc29sZURpc3BhdGNoZXIucHJvdG90eXBlLm1lc3NhZ2VBZGRlZCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9FeHRlbnNpb25TZXJ2ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2Vy
dmVyLnByb3RvdHlwZS5fb25BZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3
b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuX3VwZGF0ZVJlc291cmNlV2l0aFJlc3BvbnNlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5zaG93QW5jaG9yTG9jYXRpb24p
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLmxvZy5sb2dNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5sb2cp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50V2l0aEN1c3Rv
bUxpbmtpZmllcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21l
bnQpOgorCiAyMDExLTA5LTE1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZWZhY3RvciBDb25zb2xlVmlldywgRHJhd2VyLCBD
b25zb2xlUGFuZWwgdHJpby4gUmVtb3ZlIGFuaW1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5kZXggZDQ0YTQ5NTkwODM0MzA5MjNhN2UxMTE3ZDY2
M2E0Yzk4NjZiMmM1OC4uY2FmMmFiYmQ1Yzc5OGU4MGQ1Zjg4ZTNiZDYxNjQ4NmM3ODMzNjBkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC00Nyw2
ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25z
dCBTdHJpbmcmIG0sIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUpCiAgICAgOiBtX3NvdXJj
ZShzKQogICAgICwgbV90eXBlKHQpCisgICAgLCBtX25ldHdvcmtNZXNzYWdlVHlwZShMb2dOZXR3
b3JrTWVzc2FnZVR5cGUpCiAgICAgLCBtX2xldmVsKGwpCiAgICAgLCBtX21lc3NhZ2UobSkKICAg
ICAsIG1fbGluZShsaSkKQEAgLTU4LDYgKzU5LDcgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGMK
IENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VU
eXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0sIFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2spCiAgICAgOiBtX3NvdXJjZShzKQogICAgICwgbV90eXBlKHQpCisgICAgLCBtX25ldHdvcmtN
ZXNzYWdlVHlwZShMb2dOZXR3b3JrTWVzc2FnZVR5cGUpCiAgICAgLCBtX2xldmVsKGwpCiAgICAg
LCBtX21lc3NhZ2UobSkKICAgICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cykKQEAgLTY4LDEzICs3
MCwxNCBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBN
ZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgYwogewogfQogCi1Db25zb2xlTWVzc2FnZTo6
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2
ZWwgbCwgY29uc3QgU3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHJlc3BvbnNlVXJsLCBjb25zdCBT
dHJpbmcmIHJlcXVlc3RJZCkKK0NvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlIHMsIE5ldHdvcmtNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3QgU3Ry
aW5nJiBtLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiByZXF1ZXN0SWQpCiAgICAgOiBtX3NvdXJjZShzKQotICAgICwgbV90eXBlKHQpCisgICAg
LCBtX3R5cGUoTG9nTWVzc2FnZVR5cGUpCisgICAgLCBtX25ldHdvcmtNZXNzYWdlVHlwZSh0KQog
ICAgICwgbV9sZXZlbChsKQogICAgICwgbV9tZXNzYWdlKG0pCiAgICAgLCBtX2xpbmUoMCkKLSAg
ICAsIG1fdXJsKHJlc3BvbnNlVXJsKQorICAgICwgbV91cmwodXJsKQogICAgICwgbV9yZXBlYXRD
b3VudCgxKQogICAgICwgbV9yZXF1ZXN0SWQocmVxdWVzdElkKQogewpAQCAtMTEzLDYgKzExNiwx
NSBAQCBzdGF0aWMgU3RyaW5nIG1lc3NhZ2VUeXBlVmFsdWUoTWVzc2FnZVR5cGUgdHlwZSkKICAg
ICByZXR1cm4gIm90aGVyIjsKIH0KIAorc3RhdGljIFN0cmluZyBuZXR3b3JrTWVzc2FnZVR5cGVW
YWx1ZShOZXR3b3JrTWVzc2FnZVR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICBjYXNlIExvZ05ldHdvcmtNZXNzYWdlVHlwZTogcmV0dXJuICJsb2ciOworICAgIGNhc2UgTG9h
ZGluZ0ZhaWxlZE5ldHdvcmtNZXNzYWdlVHlwZTogcmV0dXJuICJsb2FkaW5nRmFpbGVkIjsKKyAg
ICB9CisgICAgcmV0dXJuICJvdGhlciI7Cit9CisKIHN0YXRpYyBTdHJpbmcgbWVzc2FnZUxldmVs
VmFsdWUoTWVzc2FnZUxldmVsIGxldmVsKQogewogICAgIHN3aXRjaCAobGV2ZWwpIHsKQEAgLTEz
MSw2ICsxNDMsNyBAQCB2b2lkIENvbnNvbGVNZXNzYWdlOjphZGRUb0Zyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kOjpDb25zb2xlKiBmcm9udGVuZCwgSW5qZWN0ZQogICAgIGpzb25PYmotPnNldFN0
cmluZygic291cmNlIiwgbWVzc2FnZVNvdXJjZVZhbHVlKG1fc291cmNlKSk7CiAgICAgLy8gRklY
TUU6IG9ubHkgc2VuZCBvdXQgdHlwZSBmb3IgQ29uc29sZUFQSSBzb3VyY2UgbWVzc2FnZXMuCiAg
ICAganNvbk9iai0+c2V0U3RyaW5nKCJ0eXBlIiwgbWVzc2FnZVR5cGVWYWx1ZShtX3R5cGUpKTsK
KyAgICBqc29uT2JqLT5zZXRTdHJpbmcoIm5ldHdvcmtNZXNzYWdlVHlwZSIsIG5ldHdvcmtNZXNz
YWdlVHlwZVZhbHVlKG1fbmV0d29ya01lc3NhZ2VUeXBlKSk7CiAgICAganNvbk9iai0+c2V0U3Ry
aW5nKCJsZXZlbCIsIG1lc3NhZ2VMZXZlbFZhbHVlKG1fbGV2ZWwpKTsKICAgICBqc29uT2JqLT5z
ZXROdW1iZXIoImxpbmUiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fbGluZSkpOwogICAgIGpzb25PYmot
PnNldFN0cmluZygidXJsIiwgbV91cmwpOwpAQCAtMTc5LDYgKzE5Miw3IEBAIGJvb2wgQ29uc29s
ZU1lc3NhZ2U6OmlzRXF1YWwoQ29uc29sZU1lc3NhZ2UqIG1zZykgY29uc3QKIAogICAgIHJldHVy
biBtc2ctPm1fc291cmNlID09IG1fc291cmNlCiAgICAgICAgICYmIG1zZy0+bV90eXBlID09IG1f
dHlwZQorICAgICAgICAmJiBtc2ctPm1fbmV0d29ya01lc3NhZ2VUeXBlID09IG1fbmV0d29ya01l
c3NhZ2VUeXBlCiAgICAgICAgICYmIG1zZy0+bV9sZXZlbCA9PSBtX2xldmVsCiAgICAgICAgICYm
IG1zZy0+bV9tZXNzYWdlID09IG1fbWVzc2FnZQogICAgICAgICAmJiBtc2ctPm1fbGluZSA9PSBt
X2xpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2Fn
ZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmgKaW5kZXggYzBi
MjU4ODk4NDViNGNiYzliNGZiYWYwNTY3OTU0MDg1OGU0YjkyZi4uZjBhZmI5YTY2ZDcxYzc4Zjkx
M2ZhN2Y0NTRiOTU3MjAzN2M2MGMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVu
ZC5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsMTIgKzQ5LDI2IEBAIGNsYXNzIFNjcmlwdENhbGxG
cmFtZTsKIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIGNsYXNzIFNjcmlwdFZhbHVlOwogCitlbnVt
IE5ldHdvcmtNZXNzYWdlVHlwZSB7CisgICAgTG9nTmV0d29ya01lc3NhZ2VUeXBlLAorICAgIExv
YWRpbmdGYWlsZWROZXR3b3JrTWVzc2FnZVR5cGUKK307CisKIGNsYXNzIENvbnNvbGVNZXNzYWdl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb25zb2xlTWVzc2FnZSk7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPENvbnNvbGVNZXNz
YWdlPiBjcmVhdGVOZXR3b3JrQ29uc29sZU1lc3NhZ2UoTmV0d29ya01lc3NhZ2VUeXBlIHR5cGUs
IE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHJlc3Bv
bnNlVXJsLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2UoTmV0d29ya01lc3NhZ2VTb3VyY2UsIHR5cGUsIGxl
dmVsLCBtLCAwLCByZXNwb25zZVVybCwgcmVxdWVzdElkKSk7CisgICAgfQorCisgICAgc3RhdGlj
IFBhc3NPd25QdHI8Q29uc29sZU1lc3NhZ2U+IGNyZWF0ZU5ldHdvcmtDb25zb2xlTWVzc2FnZShO
ZXR3b3JrTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG0sIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcm
IHJlcXVlc3RJZCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29uc29sZU1l
c3NhZ2UoTmV0d29ya01lc3NhZ2VTb3VyY2UsIHR5cGUsIGxldmVsLCBtLCBsaW5lTnVtYmVyLCB1
cmwsIHJlcXVlc3RJZCkpOworICAgIH0KKwogICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQg
bGksIGNvbnN0IFN0cmluZyYgdSk7CiAgICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNj
cmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHJlc3BvbnNlVXJsLCBjb25zdCBTdHJpbmcmIHJlcXVl
c3RJZCk7CiAgICAgfkNvbnNvbGVNZXNzYWdlKCk7CiAKICAgICB2b2lkIGFkZFRvRnJvbnRlbmQo
SW5zcGVjdG9yRnJvbnRlbmQ6OkNvbnNvbGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKQEAg
LTY0LDEyICs3OSwxNiBAQCBwdWJsaWM6CiAgICAgTWVzc2FnZVNvdXJjZSBzb3VyY2UoKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZTsgfQogICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVzc2FnZTsgfQogICAgIE1lc3NhZ2VUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KKyAgICBOZXR3b3JrTWVzc2FnZVR5cGUgbmV0d29ya01lc3NhZ2VUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrTWVzc2FnZVR5cGU7IH0KIAogICAgIHZvaWQgd2lu
ZG93Q2xlYXJlZChET01XaW5kb3cqKTsKIAogcHJpdmF0ZToKKyAgICBDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBOZXR3b3JrTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiByZXF1ZXN0SWQpOworCiAgICAgTWVzc2FnZVNvdXJjZSBtX3NvdXJjZTsKICAgICBNZXNz
YWdlVHlwZSBtX3R5cGU7CisgICAgTmV0d29ya01lc3NhZ2VUeXBlIG1fbmV0d29ya01lc3NhZ2VU
eXBlOwogICAgIE1lc3NhZ2VMZXZlbCBtX2xldmVsOwogICAgIFN0cmluZyBtX21lc3NhZ2U7CiAg
ICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gbV9hcmd1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggNTAyOGQ0YmE2YThmODJjNGQxOWExOWMwMjllMWYz
OTY5YWYwNmRjOS4uMTJhMjNiMGNkMGM5MDI3OTE4ZmExNzQ1ZjJmYjUzMGVkMzlhZDlkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzQxLDYgKzM0MSw3IEBA
CiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAic291cmNlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbImh0bWwiLCAid21s
IiwgInhtbCIsICJqYXZhc2NyaXB0IiwgIm5ldHdvcmsiLCAiY29uc29sZS1hcGkiLCAib3RoZXIi
XSwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2Ugc291cmNlLiIgfSwKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbImxvZyIsICJk
aXIiLCAiZGlyeG1sIiwgInRyYWNlIiwgInN0YXJ0R3JvdXAiLCAic3RhcnRHcm91cENvbGxhcHNl
ZCIsICJlbmRHcm91cCIsICJhc3NlcnQiXSwgImRlc2NyaXB0aW9uIjogIkNvbnNvbGUgbWVzc2Fn
ZSB0eXBlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuZXR3b3JrTWVzc2Fn
ZVR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsibG9nIiwgImxvYWRpbmdGYWlsZWQi
XSwgImRlc2NyaXB0aW9uIjogIk5ldHdvcmsgY29uc29sZSBtZXNzYWdlIHR5cGUuIiB9LAogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxldmVsIiwgInR5cGUiOiAic3RyaW5nIiwgImVu
dW0iOiBbInRpcCIsICJsb2ciLCAid2FybmluZyIsICJlcnJvciIsICJkZWJ1ZyJdLCAiZGVzY3Jp
cHRpb24iOiAiTWVzc2FnZSBzZXZlcml0eS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAibGluZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiTGluZSBudW1i
ZXIgaW4gdGhlIHJlc291cmNlIHRoYXQgZ2VuZXJhdGVkIHRoaXMgbWVzc2FnZS4iIH0sCiAgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIlVSTCBvZiB0aGUgbWVzc2FnZSBvcmlnaW4uIiB9LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA5MWU0MDI3
ZjdiNTM5YTdmNGRlNzAxZmNhZTUzNDVhZGM0OGM4MzA2Li4wZDQzODkzYTM4MDI0YjhjZDk4NjZi
ZTZjOTJjYWRhOTI0MTU4MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcApAQCAtMjExLDEyICsyMTEsMTQgQEAgdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyogd2luZG93
KQogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5kaXNjYXJkSW5qZWN0ZWRTY3JpcHRzRm9y
KHdpbmRvdyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpyZXNvdXJjZVJldHJp
ZXZlZEJ5WE1MSHR0cFJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2Vu
ZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQg
c2VuZExpbmVOdW1iZXIpCiB7CiAgICAgaWYgKCFtX2luc3BlY3RvckFnZW50LT5lbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKLSAgICBpZiAobV9pbnNwZWN0b3JTdGF0ZS0+Z2V0Qm9vbGVhbihD
b25zb2xlQWdlbnRTdGF0ZTo6bW9uaXRvcmluZ1hIUikpCi0gICAgICAgIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCAi
WEhSIGZpbmlzaGVkIGxvYWRpbmc6IFwiIiArIHVybCArICJcIi4iLCBzZW5kTGluZU51bWJlciwg
c2VuZFVSTCk7CisgICAgaWYgKG1fZnJvbnRlbmQgJiYgbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0Qm9v
bGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6bW9uaXRvcmluZ1hIUikpIHsKKyAgICAgICAgU3RyaW5n
IHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpOwor
ICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShDb25zb2xlTWVzc2FnZTo6Y3JlYXRlTmV0d29ya0Nv
bnNvbGVNZXNzYWdlKExvZ05ldHdvcmtNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCAiWEhS
IGZpbmlzaGVkIGxvYWRpbmc6IFwiIiArIHVybCArICJcIi4iLCBzZW5kTGluZU51bWJlciwgc2Vu
ZFVSTCwgcmVxdWVzdElkKSk7CisgICAgfQogfQogCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCkBAIC0yMjcsNyArMjI5LDcgQEAgdm9pZCBJbnNwZWN0
b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFIKICAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApIHsK
ICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2U6IHRoZSBz
ZXJ2ZXIgcmVzcG9uZGVkIHdpdGggYSBzdGF0dXMgb2YgIiArIFN0cmluZzo6bnVtYmVyKHJlc3Bv
bnNlLmh0dHBTdGF0dXNDb2RlKCkpICsgIiAoIiArIHJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCkg
KyAnKSc7CiAgICAgICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJl
cXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICAgICAgYWRkQ29uc29sZU1lc3NhZ2UoYWRvcHRQdHIo
bmV3IENvbnNvbGVNZXNzYWdlKE5ldHdvcmtNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCByZXF1
ZXN0SWQpKSk7CisgICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKENvbnNvbGVNZXNzYWdlOjpjcmVh
dGVOZXR3b3JrQ29uc29sZU1lc3NhZ2UoTG9hZGluZ0ZhaWxlZE5ldHdvcmtNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCByZXF1
ZXN0SWQpKTsKICAgICB9CiB9CiAKQEAgLTI0MSw3ICsyNDMsNyBAQCB2b2lkIEluc3BlY3RvckNv
bnNvbGVBZ2VudDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdQogICAgIGlmICghZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS5pc0VtcHR5KCkp
CiAgICAgICAgIG1lc3NhZ2UgKz0gIjogIiArIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCk7
CiAgICAgU3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlk
ZW50aWZpZXIpOwotICAgIGFkZENvbnNvbGVNZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVz
c2FnZShOZXR3b3JrTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxl
dmVsLCBtZXNzYWdlLCBlcnJvci5mYWlsaW5nVVJMKCksIHJlcXVlc3RJZCkpKTsKKyAgICBhZGRD
b25zb2xlTWVzc2FnZShDb25zb2xlTWVzc2FnZTo6Y3JlYXRlTmV0d29ya0NvbnNvbGVNZXNzYWdl
KExvYWRpbmdGYWlsZWROZXR3b3JrTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNz
YWdlLCBlcnJvci5mYWlsaW5nVVJMKCksIHJlcXVlc3RJZCkpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudDo6c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcqLCBib29s
IGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmgKaW5kZXggMjU3NmE3NGZjMGM0NTRhMGU2NjQ5NjEzMzMxNWUyMjQzYTYzMWVkYy4u
NTU1NmEwOTMwMGM1MDkyYmJlYWZmODczNjg4MWIwMjUzYjVkOWQ5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNzYsNyArNzYs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyop
OwogCi0gICAgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIp
OworICAgIHZvaWQgcmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwg
dW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZv
aWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZUVycm9yJik7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4
IDQ5ZGRmYzUzMDJmNGEyZGUxYTM2NWE3YTAzOTQwZTZlMTQ2NDViOTguLjkzZDU4MGJhMDdkYmM3
NDRiYTE0M2Q3YzE1NDU2NzJmYTZkOTdjODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC01MzUsNyArNTM1LDcg
QEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZhaWxMb2FkaW5nSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW4KIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNl
bmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKQogewogICAgIGlmIChJbnNwZWN0b3JDb25z
b2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNv
bnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPnJlc291cmNlUmV0cmlldmVkQnlY
TUxIdHRwUmVxdWVzdCh1cmwsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyKTsKKyAgICAgICAgY29u
c29sZUFnZW50LT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoaWRlbnRpZmllciwg
dXJsLCBzZW5kVVJMLCBzZW5kTGluZU51bWJlcik7CiAgICAgaWYgKEluc3BlY3RvclJlc291cmNl
QWdlbnQqIHJlc291cmNlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JSZXNv
dXJjZUFnZW50KCkpCiAgICAgICAgIHJlc291cmNlQWdlbnQtPnNldEluaXRpYWxYSFJDb250ZW50
KGlkZW50aWZpZXIsIHNvdXJjZVN0cmluZyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwppbmRleCA1ZjUwZTY1MGFlOGVj
OWE1YzYzZmVhZmZmODJlYjQzN2ZlMTg0MGU4Li41NGRjNjY4ZTIyN2U3MzMwZjE3Zjg2OTNiYzA3
NzkxZTdkZjUzN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVNZXNzYWdlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKQEAgLTQ0LDEwICs0NCwxMSBAQCBXZWJJbnNwZWN0b3Iu
Q29uc29sZVN0YWNrRnJhbWUgPSBmdW5jdGlvbigpCiAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNw
ZWN0b3IuQ29uc29sZVN0YWNrRnJhbWU+PX0gc3RhY2tUcmFjZQogICogQHBhcmFtIHtudW1iZXI9
fSByZXF1ZXN0CiAgKi8KLVdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSA9IGZ1bmN0aW9uKHNv
dXJjZSwgdHlwZSwgbGV2ZWwsIGxpbmUsIHVybCwgcmVwZWF0Q291bnQsIG1lc3NhZ2UsIHBhcmFt
ZXRlcnMsIHN0YWNrVHJhY2UsIHJlcXVlc3QpCitXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2Ug
PSBmdW5jdGlvbihzb3VyY2UsIHR5cGUsIG5ldHdvcmtNZXNzYWdlVHlwZSwgbGV2ZWwsIGxpbmUs
IHVybCwgcmVwZWF0Q291bnQsIG1lc3NhZ2UsIHBhcmFtZXRlcnMsIHN0YWNrVHJhY2UsIHJlcXVl
c3QpCiB7CiAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7CiAgICAgdGhpcy50eXBlID0gdHlwZTsK
KyAgICB0aGlzLm5ldHdvcmtNZXNzYWdlVHlwZSA9IG5ldHdvcmtNZXNzYWdlVHlwZTsKICAgICB0
aGlzLmxldmVsID0gbGV2ZWw7CiAgICAgdGhpcy5saW5lID0gbGluZTsKICAgICB0aGlzLnVybCA9
IHVybDsKQEAgLTczLDcgKzc0LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlID0gZnVu
Y3Rpb24oc291cmNlLCB0eXBlLCBsZXZlbCwgbGluZSwgdXJsLCByZXBlYXRDb3UKIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5jcmVhdGVUZXh0TWVzc2FnZSA9IGZ1bmN0aW9uKHRleHQsIGxl
dmVsKQogewogICAgIGxldmVsID0gbGV2ZWwgfHwgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VMZXZlbC5Mb2c7Ci0gICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZU1l
c3NhZ2UoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuQ29uc29sZUFQ
SSwgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkxvZywgbGV2ZWwsIDAs
IG51bGwsIDEsIG51bGwsIFt0ZXh0XSwgbnVsbCk7CisgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3Vy
Y2UuQ29uc29sZUFQSSwgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkxv
ZywgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk5ldHdvcmtNZXNzYWdlVHlwZS5Mb2csIGxl
dmVsLCAwLCBudWxsLCAxLCBudWxsLCBbdGV4dF0sIG51bGwpOwogfQogCiBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewpAQCAtMTA1LDE3ICsxMDYsMzUgQEAgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSBlbHNlIGlmICh0aGlzLnNvdXJjZSA9PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VTb3VyY2UuTmV0d29yaykgewogICAgICAgICAgICAgaWYgKHRoaXMuX3JlcXVlc3Qp
IHsKLSAgICAgICAgICAgICAgICB0aGlzLl9zdGFja1RyYWNlID0gdGhpcy5fcmVxdWVzdC5zdGFj
a1RyYWNlOwotICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic3BhbiIpOwotICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMuX3JlcXVlc3QucmVxdWVzdE1ldGhvZCArICIgIikp
OwotICAgICAgICAgICAgICAgIHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFz
Tm9kZSh0aGlzLl9yZXF1ZXN0LnVybCk7Ci0gICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJp
YnV0ZSgicmVxdWVzdF9pZCIsIHRoaXMuX3JlcXVlc3QucmVxdWVzdElkKTsKLSAgICAgICAgICAg
ICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJwcmVmZXJyZWRfcGFuZWwiLCAibmV0d29yayIpOwot
ICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGFuY2hvcik7Ci0gICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX3JlcXVlc3QuZmFpbGVkKQotICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIgKyB0aGlz
Ll9yZXF1ZXN0LmxvY2FsaXplZEZhaWxEZXNjcmlwdGlvbikpOwotICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIiAiICsgdGhpcy5fcmVxdWVzdC5zdGF0dXNDb2RlICsgIiAoIiArIHRo
aXMuX3JlcXVlc3Quc3RhdHVzVGV4dCArICIpIikpOworICAgICAgICAgICAgICAgIGlmICh0aGlz
Lm5ldHdvcmtNZXNzYWdlVHlwZSA9PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk5ldHdv
cmtNZXNzYWdlVHlwZS5Mb2FkaW5nRmFpbGVkKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMu
X3N0YWNrVHJhY2UgPSB0aGlzLl9yZXF1ZXN0LnN0YWNrVHJhY2U7CisgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2VUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSh0aGlzLl9yZXF1ZXN0LnJlcXVlc3RNZXRob2QgKyAiICIpKTsKKyAgICAgICAgICAgICAg
ICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHRoaXMuX3Jl
cXVlc3QudXJsKTsKKyAgICAgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicmVx
dWVzdF9pZCIsIHRoaXMuX3JlcXVlc3QucmVxdWVzdElkKTsKKyAgICAgICAgICAgICAgICAgICAg
YW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgIm5ldHdvcmsiKTsKKyAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQoYW5jaG9yKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHRoaXMuX3JlcXVlc3QuZmFpbGVkKQorICAgICAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAi
ICsgdGhpcy5fcmVxdWVzdC5sb2NhbGl6ZWRGYWlsRGVzY3JpcHRpb24pKTsKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVRleHQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiICsgdGhpcy5fcmVxdWVzdC5zdGF0dXND
b2RlICsgIiAoIiArIHRoaXMuX3JlcXVlc3Quc3RhdHVzVGV4dCArICIpIikpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAgICAgZnVuY3Rpb24gbGlua2lmaWVyKHRpdGxlLCB1cmwsIGxpbmVOdW1iZXIpCisg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc0V4dGVy
bmFsID0gIXRoaXMuX3JlcXVlc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYW5jaG9y
ID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUodXJsLCB0aXRsZSwgbnVsbCwgaXNFeHRl
cm5hbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcmVxdWVzdCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInJlcXVlc3RfaWQi
LCB0aGlzLl9yZXF1ZXN0LnJlcXVlc3RJZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgIm5ldHdvcmsiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbmNo
b3I7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIHZhciBmcmFnbWVudCA9IFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNG
cmFnbWVudFdpdGhDdXN0b21MaW5raWZpZXIodGhpcy5fbWVzc2FnZVRleHQsIGxpbmtpZmllci5i
aW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQo
ZnJhZ21lbnQpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgdmFyIGlzRXh0ZXJuYWwgPSAhV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJM
KHRoaXMudXJsKTsKICAgICAgICAgICAgICAgICB2YXIgYW5jaG9yID0gV2ViSW5zcGVjdG9yLmxp
bmtpZnlVUkxBc05vZGUodGhpcy51cmwsIHRoaXMudXJsLCAiY29uc29sZS1tZXNzYWdlLXVybCIs
IGlzRXh0ZXJuYWwpOwpAQCAtNDc5LDYgKzQ5OCwxMiBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1l
c3NhZ2UucHJvdG90eXBlID0gewogICAgIH0KIH0KIAorLy9Ob3RlOiBLZWVwIHRoZXNlIGluIHN5
bmMgd2l0aCB0aGUgb25lcyBpbiBDb25zb2xlTWVzc2FnZS5oCitXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTmV0d29ya01lc3NhZ2VUeXBlID0geworICAgICAgICBMb2FkaW5nRmFpbGVkOiAi
bG9hZGluZ0ZhaWxlZCIsCisgICAgICAgIExvZzogImxvZyIKKyAgICB9CisKIC8vIE5vdGU6IEtl
ZXAgdGhlc2UgY29uc3RhbnRzIGluIHN5bmMgd2l0aCB0aGUgb25lcyBpbiBDb25zb2xlLmgKIFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlID0gewogICAgIEhUTUw6ICJo
dG1sIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xl
TW9kZWwuanMKaW5kZXggN2FiYTc3ODU4ZDdhOWU0ZWIyNDc2Mjc2OTNiOTJhMDg2NDlhNzY4ZS4u
MDZiOTQ5MWNjZjQ4NDJmMjUzMWY2NTU1NzExYzI2MzI2NDllNjNiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKQEAgLTEyNCw3
ICsxMjQsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHRoaXMuX2luY3JlbWVudEVycm9yV2FybmluZ0NvdW50KG1zZyk7CiAgICAgICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVs
LkV2ZW50cy5SZXBlYXRDb3VudFVwZGF0ZWQsIG1zZyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICB2YXIgbXNnQ29weSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UobXNn
LnNvdXJjZSwgbXNnLnR5cGUsIG1zZy5sZXZlbCwgbXNnLmxpbmUsIG1zZy51cmwsIGNvdW50IC0g
cHJldlJlcGVhdENvdW50LCBtc2cuX21lc3NhZ2VUZXh0LCBtc2cuX3BhcmFtZXRlcnMsIG1zZy5f
c3RhY2tUcmFjZSwgbXNnLl9yZXF1ZXN0KTsKKyAgICAgICAgICAgIHZhciBtc2dDb3B5ID0gbmV3
IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZShtc2cuc291cmNlLCBtc2cudHlwZSwgbXNnLm5l
dHdvcmtNZXNzYWdlVHlwZSwgbXNnLmxldmVsLCBtc2cubGluZSwgbXNnLnVybCwgY291bnQgLSBw
cmV2UmVwZWF0Q291bnQsIG1zZy5fbWVzc2FnZVRleHQsIG1zZy5fcGFyYW1ldGVycywgbXNnLl9z
dGFja1RyYWNlLCBtc2cuX3JlcXVlc3QpOwogICAgICAgICAgICAgbXNnQ29weS50b3RhbFJlcGVh
dENvdW50ID0gY291bnQ7CiAgICAgICAgICAgICBtc2dDb3B5Ll9mb3JtYXRNZXNzYWdlKCk7CiAg
ICAgICAgICAgICB0aGlzLmFkZE1lc3NhZ2UobXNnQ29weSk7CkBAIC0xNTAsNiArMTUwLDcgQEAg
V2ViSW5zcGVjdG9yLkNvbnNvbGVEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFy
IGNvbnNvbGVNZXNzYWdlID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSgKICAgICAg
ICAgICAgIHBheWxvYWQuc291cmNlLAogICAgICAgICAgICAgcGF5bG9hZC50eXBlLAorICAgICAg
ICAgICAgcGF5bG9hZC5uZXR3b3JrTWVzc2FnZVR5cGUsCiAgICAgICAgICAgICBwYXlsb2FkLmxl
dmVsLAogICAgICAgICAgICAgcGF5bG9hZC5saW5lLAogICAgICAgICAgICAgcGF5bG9hZC51cmws
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVW
aWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5q
cwppbmRleCA2MTczY2U5MDNhOTRiNmRlZWQwNjk0ZWRlOGY5Y2NiZTEyMDFiZjY1Li44MTk4ODc3
MTkyMmU4NzQ5NTAyNTc0NGE1ZWQ0MTZhNjBjYzBjNDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTc3MCw3ICs3NzAsNyBA
QCBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1bHQgPSBmdW5jdGlvbihyZXN1bHQsIHdh
c1Rocm93biwgb3JpZ2luYXRpbmdDb21tYQogewogICAgIHZhciBsZXZlbCA9ICh3YXNUaHJvd24g
PyBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yIDogV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5Mb2cpOwogICAgIHRoaXMub3JpZ2lu
YXRpbmdDb21tYW5kID0gb3JpZ2luYXRpbmdDb21tYW5kOwotICAgIFdlYkluc3BlY3Rvci5Db25z
b2xlTWVzc2FnZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
U291cmNlLkpTLCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuUmVzdWx0
LCBsZXZlbCwgLTEsIG51bGwsIDEsIG51bGwsIFtyZXN1bHRdKTsKKyAgICBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVz
c2FnZVNvdXJjZS5KUywgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlJl
c3VsdCwgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk5ldHdvcmtNZXNzYWdlVHlwZS5Mb2cs
IGxldmVsLCAtMSwgbnVsbCwgMSwgbnVsbCwgW3Jlc3VsdF0pOwogfQogCiBXZWJJbnNwZWN0b3Iu
Q29uc29sZUNvbW1hbmRSZXN1bHQucHJvdG90eXBlID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwppbmRleCA4MWU3NzAx
YjlkNWEyYzU2NGZjYzE3ZTA2MDdlYjQ4NzcxMDQ5ZGEyLi45OTk5YjZhNTdlMGZjZDgzM2JkNmEx
NTMwZGJjNzYyNjk3MmE5YTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMzExLDYgKzMxMSw3IEBAIFdlYklu
c3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICB2YXIgY29uc29s
ZU1lc3NhZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKAogICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuSlMsCiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuTG9nLAorICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk5ldHdvcmtNZXNzYWdlVHlwZS5Mb2csCiAg
ICAgICAgICAgICBsZXZlbCwKICAgICAgICAgICAgIG1lc3NhZ2UubGluZSwKICAgICAgICAgICAg
IG1lc3NhZ2UudXJsLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggYWJjNGZiNDM2YmVmODQ4NWVmNmM1YTZlMDdhN2My
NWVlYzU4OTk3NC4uN2UxMTRkNWNkY2Y3OThkYmEwM2RiZTExZWMzOTdjZTczN2RjZWUxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdl
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5h
Z2VyLmpzCkBAIC0xMjksNiArMTI5LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlzLl9taW1lVHlwZUlzQ29uc2lzdGVudFdp
dGhUeXBlKHJlc291cmNlKSkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRk
TWVzc2FnZShuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25z
b2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLk90aGVyLAogICAgICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2csCisgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk5ldHdvcmtNZXNzYWdlVHlwZS5Mb2csCiAgICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5XYXJuaW5n
LAogICAgICAgICAgICAgICAgIC0xLAogICAgICAgICAgICAgICAgIHRoaXMudXJsLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMK
aW5kZXggNzczYWRiZjk4NmQ3MTg5ZGU2ODQwMWFlMWIxODFkYmZhZjZhODQwMC4uM2E4NTZiN2Ex
NDA3MzhkOGRhNWI1ZmNhMDY0YzIwMDlhYjdiMzM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0zMjcsMTQgKzMy
Nyw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgc2hv
d0FuY2hvckxvY2F0aW9uOiBmdW5jdGlvbihhbmNob3IpCiAgICAgewogICAgICAgICB2YXIgcmVz
b3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoYW5jaG9yLmhyZWYpOwotICAgICAg
ICBpZiAocmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuWEhSKSB7
Ci0gICAgICAgICAgICAvLyBTaG93IFhIUnMgaW4gdGhlIG5ldHdvcmsgcGFuZWwgb25seS4KLSAg
ICAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsgJiYgV2ViSW5zcGVjdG9y
LnBhbmVscy5uZXR3b3JrLmNhblNob3dBbmNob3JMb2NhdGlvbihhbmNob3IpKSB7Ci0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRQYW5lbChXZWJJbnNwZWN0b3IucGFuZWxz
Lm5ldHdvcmspOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5z
aG93QW5jaG9yTG9jYXRpb24oYW5jaG9yKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQogICAgICAgICB2YXIgbGluZU51bWJlciA9IGFuY2hvci5oYXNBdHRy
aWJ1dGUoImxpbmVfbnVtYmVyIikgPyBwYXJzZUludChhbmNob3IuZ2V0QXR0cmlidXRlKCJsaW5l
X251bWJlciIpKSA6IHVuZGVmaW5lZDsKICAgICAgICAgdGhpcy5zaG93UmVzb3VyY2UocmVzb3Vy
Y2UsIGxpbmVOdW1iZXIpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDJmYjU4ZjFmM2RiZWM1NzAyYjA5ZTUwMDZlYzdk
YTI2MzA2MTJmOGEuLmExMjhiNDBiZWQ3NmIwYzFmYWIzZTE4MGViNDg4ZTBlYjViNDFjMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBA
IC0xMTM2LDYgKzExMzYsNyBAQCBXZWJJbnNwZWN0b3IubG9nID0gZnVuY3Rpb24obWVzc2FnZSwg
bWVzc2FnZUxldmVsKQogICAgICAgICB2YXIgbXNnID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZSgKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
U291cmNlLk90aGVyLAogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VUeXBlLkxvZywKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5O
ZXR3b3JrTWVzc2FnZVR5cGUuTG9nLAogICAgICAgICAgICAgbWVzc2FnZUxldmVsIHx8IFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRGVidWcsCiAgICAgICAgICAgICAt
MSwKICAgICAgICAgICAgIG51bGwsCkBAIC0xMjQ0LDcgKzEyNDUsNyBAQCBXZWJJbnNwZWN0b3Iu
X3Nob3dBbmNob3JMb2NhdGlvbkluUGFuZWwgPSBmdW5jdGlvbihhbmNob3IsIHBhbmVsKQogICAg
IHJldHVybiB0cnVlOwogfQogCi1XZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQg
PSBmdW5jdGlvbihzdHJpbmcpCitXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnRX
aXRoQ3VzdG9tTGlua2lmaWVyID0gZnVuY3Rpb24oc3RyaW5nLCBsaW5raWZpZXIpCiB7CiAgICAg
dmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgICB2
YXIgbGlua1N0cmluZ1JlZ0V4ID0gLyg/OlthLXpBLVpdW2EtekEtWjAtOSsuLV17Mix9OlwvXC98
d3d3XC4pW1x3JFwtXysqJz1cfFwvXFwoKXt9W1xdJUAmI34sOjsuIT9dezIsfVtcdyRcLV8rKj1c
fFwvXFwoeyVAJiN+XS87CkBAIC0xMjU2LDI3ICsxMjU3LDE4IEBAIFdlYkluc3BlY3Rvci5saW5r
aWZ5U3RyaW5nQXNGcmFnbWVudCA9IGZ1bmN0aW9uKHN0cmluZykKICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgIGxpbmtTdHJpbmcgPSBsaW5rU3RyaW5nWzBdOwotICAgICAgICB2YXIgdGl0
bGUgPSBsaW5rU3RyaW5nOwogICAgICAgICB2YXIgbGlua0luZGV4ID0gc3RyaW5nLmluZGV4T2Yo
bGlua1N0cmluZyk7CiAgICAgICAgIHZhciBub25MaW5rID0gc3RyaW5nLnN1YnN0cmluZygwLCBs
aW5rSW5kZXgpOwogICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUobm9uTGluaykpOwogCi0gICAgICAgIHZhciBwcm9maWxlU3RyaW5nTWF0Y2hlcyA9
IFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5VUkxSZWdFeHAuZXhlYyh0aXRsZSk7Ci0gICAgICAg
IGlmIChwcm9maWxlU3RyaW5nTWF0Y2hlcykKLSAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVj
dG9yLnBhbmVscy5wcm9maWxlcy5kaXNwbGF5VGl0bGVGb3JQcm9maWxlTGluayhwcm9maWxlU3Ry
aW5nTWF0Y2hlc1syXSwgcHJvZmlsZVN0cmluZ01hdGNoZXNbMV0pOwotCisgICAgICAgIHZhciB0
aXRsZSA9IGxpbmtTdHJpbmc7CiAgICAgICAgIHZhciByZWFsVVJMID0gKGxpbmtTdHJpbmcuaW5k
ZXhPZigid3d3LiIpID09PSAwID8gImh0dHA6Ly8iICsgbGlua1N0cmluZyA6IGxpbmtTdHJpbmcp
OwogICAgICAgICB2YXIgbGluZUNvbHVtbk1hdGNoID0gbGluZUNvbHVtblJlZ0V4LmV4ZWMocmVh
bFVSTCk7CiAgICAgICAgIGlmIChsaW5lQ29sdW1uTWF0Y2gpCiAgICAgICAgICAgICByZWFsVVJM
ID0gcmVhbFVSTC5zdWJzdHJpbmcoMCwgcmVhbFVSTC5sZW5ndGggLSBsaW5lQ29sdW1uTWF0Y2hb
MF0ubGVuZ3RoKTsKIAotICAgICAgICB2YXIgaGFzUmVzb3VyY2VXaXRoVVJMID0gISFXZWJJbnNw
ZWN0b3IucmVzb3VyY2VGb3JVUkwocmVhbFVSTCk7Ci0gICAgICAgIHZhciB1cmxOb2RlID0gV2Vi
SW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUocmVhbFVSTCwgdGl0bGUsIG51bGwsIGhhc1Jlc291
cmNlV2l0aFVSTCk7Ci0gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh1cmxOb2RlKTsKLSAg
ICAgICAgaWYgKGxpbmVDb2x1bW5NYXRjaCkgewotICAgICAgICAgICAgdXJsTm9kZS5zZXRBdHRy
aWJ1dGUoImxpbmVfbnVtYmVyIiwgbGluZUNvbHVtbk1hdGNoWzFdKTsKLSAgICAgICAgICAgIHVy
bE5vZGUuc2V0QXR0cmlidXRlKCJwcmVmZXJyZWRfcGFuZWwiLCAic2NyaXB0cyIpOwotICAgICAg
ICB9CisgICAgICAgIHZhciBsaW5rTm9kZSA9IGxpbmtpZmllcih0aXRsZSwgcmVhbFVSTCwgbGlu
ZUNvbHVtbk1hdGNoID8gbGluZUNvbHVtbk1hdGNoWzFdIDogdW5kZWZpbmVkKTsKKyAgICAgICAg
Y29udGFpbmVyLmFwcGVuZENoaWxkKGxpbmtOb2RlKTsKICAgICAgICAgc3RyaW5nID0gc3RyaW5n
LnN1YnN0cmluZyhsaW5rSW5kZXggKyBsaW5rU3RyaW5nLmxlbmd0aCwgc3RyaW5nLmxlbmd0aCk7
CiAgICAgfQogCkBAIC0xMjg2LDYgKzEyNzgsMjcgQEAgV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJp
bmdBc0ZyYWdtZW50ID0gZnVuY3Rpb24oc3RyaW5nKQogICAgIHJldHVybiBjb250YWluZXI7CiB9
CiAKK1dlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudCA9IGZ1bmN0aW9uKHN0cmlu
ZykKK3sKKyAgICBmdW5jdGlvbiBsaW5raWZpZXIodGl0bGUsIHVybCwgbGluZU51bWJlcikKKyAg
ICB7CisgICAgICAgIHZhciBwcm9maWxlU3RyaW5nTWF0Y2hlcyA9IFdlYkluc3BlY3Rvci5Qcm9m
aWxlVHlwZS5VUkxSZWdFeHAuZXhlYyh0aXRsZSk7CisgICAgICAgIGlmIChwcm9maWxlU3RyaW5n
TWF0Y2hlcykKKyAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxl
cy5kaXNwbGF5VGl0bGVGb3JQcm9maWxlTGluayhwcm9maWxlU3RyaW5nTWF0Y2hlc1syXSwgcHJv
ZmlsZVN0cmluZ01hdGNoZXNbMV0pOworCisgICAgICAgIHZhciBpc0V4dGVybmFsID0gIVdlYklu
c3BlY3Rvci5yZXNvdXJjZUZvclVSTCh1cmwpOworICAgICAgICB2YXIgdXJsTm9kZSA9IFdlYklu
c3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHVybCwgdGl0bGUsIG51bGwsIGlzRXh0ZXJuYWwpOwor
ICAgICAgICBpZiAodHlwZW9mKGxpbmVOdW1iZXIpICE9PSAidW5kZWZpbmVkIikgeworICAgICAg
ICAgICAgdXJsTm9kZS5zZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIiwgbGluZU51bWJlcik7Cisg
ICAgICAgICAgICB1cmxOb2RlLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlw
dHMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHVybE5vZGU7IAorICAg
IH0KKyAgICAKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50
V2l0aEN1c3RvbUxpbmtpZmllcihzdHJpbmcsIGxpbmtpZmllcik7Cit9CisKIFdlYkluc3BlY3Rv
ci5zaG93UHJvZmlsZUZvclVSTCA9IGZ1bmN0aW9uKHVybCkKIHsKICAgICBXZWJJbnNwZWN0b3Iu
c2hvd1BhbmVsKCJwcm9maWxlcyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108174</attachid>
            <date>2011-09-21 10:09:13 -0700</date>
            <delta_ts>2011-09-22 05:08:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67399-20110921210910.patch</filename>
            <type>text/plain</type>
            <size>29736</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU1MzYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NzMxMjMxYjlkYjk3MjgzY2I1NGFl
NzZjMmM2MDVjY2NlODQzNTAxLi5lNDU0NGYzZDYwZTIyMDc5ZGMyMDM3NjRlNDEyMjUzYTg5ZWQz
ZWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMjEgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogWE1MSHR0cFJl
cXVlc3QgY29uc29sZSBsb2dnaW5nIG1lc3NhZ2VzIHNob3VsZCBsaW5rIHRvIG5ldHdvcmsgcGFu
ZWwgd2hlbiBwb3NzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3Mzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvY29uc29sZS1hZ2VudC1leHBlY3RlZC50eHQ6
CisKIDIwMTEtMDktMTUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlZmFjdG9yIENvbnNvbGVWaWV3LCBEcmF3ZXIsIENvbnNv
bGVQYW5lbCB0cmlvLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29s
L2NvbnNvbGUtYWdlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3Rv
Y29sL2NvbnNvbGUtYWdlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDhlMDhjYzAyYjIwNGFjZWEwMjI5
NTE5YTIwN2FjYzJiOWNhODdlOGQuLjM2MjhhZWE1OTVlMDUzZDZlMDc2YWMwZWU5YzEwN2M4NjEx
N2M4ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9jb25zb2xl
LWFnZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wv
Y29uc29sZS1hZ2VudC1leHBlY3RlZC50eHQKQEAgLTU2LDYgKzU2LDcgQEAgZXZlbnQgQ29uc29s
ZUFnZW50Lm1lc3NhZ2VBZGRlZAogICAgICAgICBtZXNzYWdlIDogewogICAgICAgICAgICAgc291
cmNlIDogImNvbnNvbGUtYXBpIgogICAgICAgICAgICAgdHlwZSA6ICJsb2ciCisgICAgICAgICAg
ICBuZXR3b3JrTWVzc2FnZVR5cGUgOiAibG9nIgogICAgICAgICAgICAgbGV2ZWwgOiAibG9nIgog
ICAgICAgICAgICAgbGluZSA6IDAKICAgICAgICAgICAgIHVybCA6ICIiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjI5MjQxY2Q5M2YyZTBiNmU5Y2NmOTFhOWQyMzM0NmVjY2JkYWZlMS4uNWNjZDJlNThiNjM3NjRi
NGFhNzdjZTBkZDZiZjUzMWM4MTk0ZDAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisy
MDExLTA5LTIxICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFhNTEh0dHBSZXF1ZXN0IGNvbnNvbGUgbG9nZ2luZyBtZXNzYWdl
cyBzaG91bGQgbGluayB0byBuZXR3b3JrIHBhbmVsIHdoZW4gcG9zc2libGUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzM5OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVz
c2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXR3b3JrTWVzc2FnZVR5cGVWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb25zb2xlTWVzc2FnZTo6aXNFcXVhbCk6CisgICAgICAgICogaW5zcGVjdG9yL0Nv
bnNvbGVNZXNzYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlTWVzc2FnZTo6Y3JlYXRl
TmV0d29ya0NvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdl
OjpuZXR3b3JrTWVzc2FnZVR5cGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNv
bjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhN
TEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25z
b2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cmVzb3Vy
Y2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0SW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTWVzc2FnZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuY3JlYXRlVGV4
dE1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlw
ZS5fZm9ybWF0TWVzc2FnZS5lbHNlLmVsc2UubGlua2lmaWVyKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUuX2Zvcm1hdE1lc3NhZ2UpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbnNvbGVNb2RlbC5wcm90b3R5cGUuX21lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVEaXNwYXRjaGVyLnByb3RvdHlwZS5tZXNzYWdl
QWRkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1bHQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29uQWRkQ29uc29sZU1lc3NhZ2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlLl91cGRhdGVSZXNvdXJjZVdp
dGhSZXNwb25zZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5l
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuc2hv
d0FuY2hvckxvY2F0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5sb2cubG9nTWVzc2FnZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IubG9nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNG
cmFnbWVudFdpdGhDdXN0b21MaW5raWZpZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxpbmtp
ZnlTdHJpbmdBc0ZyYWdtZW50KToKKwogMjAxMS0wOS0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxk
bWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVmYWN0b3IgQ29uc29s
ZVZpZXcsIERyYXdlciwgQ29uc29sZVBhbmVsIHRyaW8uIFJlbW92ZSBhbmltYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGQ0NGE0OTU5MDgz
NDMwOTIzYTdlMTExN2Q2NjNhNGM5ODY2YjJjNTguLmNhZjJhYmJkNWM3OThlODBkNWY4OGUzYmQ2
MTY0ODZjNzgzMzYwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25z
b2xlTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNz
YWdlLmNwcApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBDb25zb2xlTWVz
c2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNz
YWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBtLCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiB1
KQogICAgIDogbV9zb3VyY2UocykKICAgICAsIG1fdHlwZSh0KQorICAgICwgbV9uZXR3b3JrTWVz
c2FnZVR5cGUoTG9nTmV0d29ya01lc3NhZ2VUeXBlKQogICAgICwgbV9sZXZlbChsKQogICAgICwg
bV9tZXNzYWdlKG0pCiAgICAgLCBtX2xpbmUobGkpCkBAIC01OCw2ICs1OSw3IEBAIENvbnNvbGVN
ZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1l
c3NhZ2VMZXZlbCBsLCBjCiBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBtLCBQ
YXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gY2FsbFN0YWNrKQogICAgIDogbV9zb3VyY2UocykKICAgICAsIG1fdHlwZSh0KQor
ICAgICwgbV9uZXR3b3JrTWVzc2FnZVR5cGUoTG9nTmV0d29ya01lc3NhZ2VUeXBlKQogICAgICwg
bV9sZXZlbChsKQogICAgICwgbV9tZXNzYWdlKG0pCiAgICAgLCBtX2FyZ3VtZW50cyhhcmd1bWVu
dHMpCkBAIC02OCwxMyArNzAsMTQgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGMKIHsKIH0KIAot
Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5
cGUgdCwgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3QgU3RyaW5nJiByZXNw
b25zZVVybCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCitDb25zb2xlTWVzc2FnZTo6Q29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBOZXR3b3JrTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxl
dmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKQogICAgIDogbV9zb3VyY2UocykKLSAgICAs
IG1fdHlwZSh0KQorICAgICwgbV90eXBlKExvZ01lc3NhZ2VUeXBlKQorICAgICwgbV9uZXR3b3Jr
TWVzc2FnZVR5cGUodCkKICAgICAsIG1fbGV2ZWwobCkKICAgICAsIG1fbWVzc2FnZShtKQogICAg
ICwgbV9saW5lKDApCi0gICAgLCBtX3VybChyZXNwb25zZVVybCkKKyAgICAsIG1fdXJsKHVybCkK
ICAgICAsIG1fcmVwZWF0Q291bnQoMSkKICAgICAsIG1fcmVxdWVzdElkKHJlcXVlc3RJZCkKIHsK
QEAgLTExMyw2ICsxMTYsMTUgQEAgc3RhdGljIFN0cmluZyBtZXNzYWdlVHlwZVZhbHVlKE1lc3Nh
Z2VUeXBlIHR5cGUpCiAgICAgcmV0dXJuICJvdGhlciI7CiB9CiAKK3N0YXRpYyBTdHJpbmcgbmV0
d29ya01lc3NhZ2VUeXBlVmFsdWUoTmV0d29ya01lc3NhZ2VUeXBlIHR5cGUpCit7CisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBMb2dOZXR3b3JrTWVzc2FnZVR5cGU6IHJldHVybiAibG9n
IjsKKyAgICBjYXNlIExvYWRpbmdGYWlsZWROZXR3b3JrTWVzc2FnZVR5cGU6IHJldHVybiAibG9h
ZGluZ0ZhaWxlZCI7CisgICAgfQorICAgIHJldHVybiAib3RoZXIiOworfQorCiBzdGF0aWMgU3Ry
aW5nIG1lc3NhZ2VMZXZlbFZhbHVlKE1lc3NhZ2VMZXZlbCBsZXZlbCkKIHsKICAgICBzd2l0Y2gg
KGxldmVsKSB7CkBAIC0xMzEsNiArMTQzLDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6YWRkVG9G
cm9udGVuZChJbnNwZWN0b3JGcm9udGVuZDo6Q29uc29sZSogZnJvbnRlbmQsIEluamVjdGUKICAg
ICBqc29uT2JqLT5zZXRTdHJpbmcoInNvdXJjZSIsIG1lc3NhZ2VTb3VyY2VWYWx1ZShtX3NvdXJj
ZSkpOwogICAgIC8vIEZJWE1FOiBvbmx5IHNlbmQgb3V0IHR5cGUgZm9yIENvbnNvbGVBUEkgc291
cmNlIG1lc3NhZ2VzLgogICAgIGpzb25PYmotPnNldFN0cmluZygidHlwZSIsIG1lc3NhZ2VUeXBl
VmFsdWUobV90eXBlKSk7CisgICAganNvbk9iai0+c2V0U3RyaW5nKCJuZXR3b3JrTWVzc2FnZVR5
cGUiLCBuZXR3b3JrTWVzc2FnZVR5cGVWYWx1ZShtX25ldHdvcmtNZXNzYWdlVHlwZSkpOwogICAg
IGpzb25PYmotPnNldFN0cmluZygibGV2ZWwiLCBtZXNzYWdlTGV2ZWxWYWx1ZShtX2xldmVsKSk7
CiAgICAganNvbk9iai0+c2V0TnVtYmVyKCJsaW5lIiwgc3RhdGljX2Nhc3Q8aW50PihtX2xpbmUp
KTsKICAgICBqc29uT2JqLT5zZXRTdHJpbmcoInVybCIsIG1fdXJsKTsKQEAgLTE3OSw2ICsxOTIs
NyBAQCBib29sIENvbnNvbGVNZXNzYWdlOjppc0VxdWFsKENvbnNvbGVNZXNzYWdlKiBtc2cpIGNv
bnN0CiAKICAgICByZXR1cm4gbXNnLT5tX3NvdXJjZSA9PSBtX3NvdXJjZQogICAgICAgICAmJiBt
c2ctPm1fdHlwZSA9PSBtX3R5cGUKKyAgICAgICAgJiYgbXNnLT5tX25ldHdvcmtNZXNzYWdlVHlw
ZSA9PSBtX25ldHdvcmtNZXNzYWdlVHlwZQogICAgICAgICAmJiBtc2ctPm1fbGV2ZWwgPT0gbV9s
ZXZlbAogICAgICAgICAmJiBtc2ctPm1fbWVzc2FnZSA9PSBtX21lc3NhZ2UKICAgICAgICAgJiYg
bXNnLT5tX2xpbmUgPT0gbV9saW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVz
c2FnZS5oCmluZGV4IGMwYjI1ODg5ODQ1YjRjYmM5YjRmYmFmMDU2Nzk1NDA4NThlNGI5MmYuLmYw
YWZiOWE2NmQ3MWM3OGY5MTNmYTdmNDU0Yjk1NzIwMzdjNjBjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
SW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDEyICs0OSwyNiBAQCBj
bGFzcyBTY3JpcHRDYWxsRnJhbWU7CiBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiBjbGFzcyBTY3Jp
cHRWYWx1ZTsKIAorZW51bSBOZXR3b3JrTWVzc2FnZVR5cGUgeworICAgIExvZ05ldHdvcmtNZXNz
YWdlVHlwZSwKKyAgICBMb2FkaW5nRmFpbGVkTmV0d29ya01lc3NhZ2VUeXBlCit9OworCiBjbGFz
cyBDb25zb2xlTWVzc2FnZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29uc29sZU1lc3Nh
Z2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxDb25zb2xlTWVzc2FnZT4gY3JlYXRlTmV0d29ya0NvbnNvbGVNZXNzYWdlKE5ldHdvcmtN
ZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgY29u
c3QgU3RyaW5nJiByZXNwb25zZVVybCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKE5ldHdvcmtNZXNzYWdl
U291cmNlLCB0eXBlLCBsZXZlbCwgbSwgMCwgcmVzcG9uc2VVcmwsIHJlcXVlc3RJZCkpOworICAg
IH0KKworICAgIHN0YXRpYyBQYXNzT3duUHRyPENvbnNvbGVNZXNzYWdlPiBjcmVhdGVOZXR3b3Jr
Q29uc29sZU1lc3NhZ2UoTmV0d29ya01lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IENvbnNvbGVNZXNzYWdlKE5ldHdvcmtNZXNzYWdlU291cmNlLCB0eXBlLCBsZXZlbCwg
bSwgbGluZU51bWJlciwgdXJsLCByZXF1ZXN0SWQpKTsKKyAgICB9CisKICAgICBDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG0sIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUpOwogICAgIENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4pOwotICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3QgU3RyaW5nJiByZXNwb25zZVVybCwgY29u
c3QgU3RyaW5nJiByZXF1ZXN0SWQpOwogICAgIH5Db25zb2xlTWVzc2FnZSgpOwogCiAgICAgdm9p
ZCBhZGRUb0Zyb250ZW5kKEluc3BlY3RvckZyb250ZW5kOjpDb25zb2xlKiwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKik7CkBAIC02NCwxMiArNzksMTYgQEAgcHVibGljOgogICAgIE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KICAgICBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KICAgICBNZXNzYWdlVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgTmV0d29ya01lc3NhZ2VUeXBlIG5l
dHdvcmtNZXNzYWdlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya01lc3NhZ2VUeXBlOyB9
CiAKICAgICB2b2lkIHdpbmRvd0NsZWFyZWQoRE9NV2luZG93Kik7CiAKIHByaXZhdGU6CisgICAg
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTmV0d29ya01lc3NhZ2VUeXBlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKTsKKwogICAgIE1lc3NhZ2VTb3VyY2UgbV9z
b3VyY2U7CiAgICAgTWVzc2FnZVR5cGUgbV90eXBlOworICAgIE5ldHdvcmtNZXNzYWdlVHlwZSBt
X25ldHdvcmtNZXNzYWdlVHlwZTsKICAgICBNZXNzYWdlTGV2ZWwgbV9sZXZlbDsKICAgICBTdHJp
bmcgbV9tZXNzYWdlOwogICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IG1fYXJndW1lbnRzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDUwMjhkNGJhNmE4Zjgy
YzRkMTlhMTljMDI5ZTFmMzk2OWFmMDZkYzkuLjEyYTIzYjBjZDBjOTAyNzkxOGZhMTc0NWYyZmI1
MzBlZDM5YWQ5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAg
LTM0MSw2ICszNDEsNyBAQAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVt
IjogWyJodG1sIiwgIndtbCIsICJ4bWwiLCAiamF2YXNjcmlwdCIsICJuZXR3b3JrIiwgImNvbnNv
bGUtYXBpIiwgIm90aGVyIl0sICJkZXNjcmlwdGlvbiI6ICJNZXNzYWdlIHNvdXJjZS4iIH0sCiAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJl
bnVtIjogWyJsb2ciLCAiZGlyIiwgImRpcnhtbCIsICJ0cmFjZSIsICJzdGFydEdyb3VwIiwgInN0
YXJ0R3JvdXBDb2xsYXBzZWQiLCAiZW5kR3JvdXAiLCAiYXNzZXJ0Il0sICJkZXNjcmlwdGlvbiI6
ICJDb25zb2xlIG1lc3NhZ2UgdHlwZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAibmV0d29ya01lc3NhZ2VUeXBlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbImxvZyIs
ICJsb2FkaW5nRmFpbGVkIl0sICJkZXNjcmlwdGlvbiI6ICJOZXR3b3JrIGNvbnNvbGUgbWVzc2Fn
ZSB0eXBlLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsZXZlbCIsICJ0eXBl
IjogInN0cmluZyIsICJlbnVtIjogWyJ0aXAiLCAibG9nIiwgIndhcm5pbmciLCAiZXJyb3IiLCAi
ZGVidWciXSwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2Ugc2V2ZXJpdHkuIiB9LAogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImxpbmUiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0
aW9uIjogIkxpbmUgbnVtYmVyIGluIHRoZSByZXNvdXJjZSB0aGF0IGdlbmVyYXRlZCB0aGlzIG1l
c3NhZ2UuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIG1lc3NhZ2Ugb3JpZ2luLiIgfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKaW5kZXggOTFlNDAyN2Y3YjUzOWE3ZjRkZTcwMWZjYWU1MzQ1YWRjNDhjODMwNi4uMGQ0Mzg5
M2EzODAyNGI4Y2Q5ODY2YmU2YzkyY2FkYTkyNDE1ODA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTIxMSwxMiArMjEx
LDE0IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChE
T01XaW5kb3cqIHdpbmRvdykKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+ZGlzY2FyZElu
amVjdGVkU2NyaXB0c0Zvcih3aW5kb3cpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKQordm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNl
bmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKQogewogICAgIGlmICghbV9pbnNwZWN0b3JB
Z2VudC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1faW5zcGVjdG9yU3Rh
dGUtPmdldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKQotICAgICAg
ICBhZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIExv
Z01lc3NhZ2VMZXZlbCwgIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyB1cmwgKyAiXCIuIiwg
c2VuZExpbmVOdW1iZXIsIHNlbmRVUkwpOworICAgIGlmIChtX2Zyb250ZW5kICYmIG1faW5zcGVj
dG9yU3RhdGUtPmdldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKSB7
CisgICAgICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJ
ZChpZGVudGlmaWVyKTsKKyAgICAgICAgYWRkQ29uc29sZU1lc3NhZ2UoQ29uc29sZU1lc3NhZ2U6
OmNyZWF0ZU5ldHdvcmtDb25zb2xlTWVzc2FnZShMb2dOZXR3b3JrTWVzc2FnZVR5cGUsIExvZ01l
c3NhZ2VMZXZlbCwgIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyB1cmwgKyAiXCIuIiwgc2Vu
ZExpbmVOdW1iZXIsIHNlbmRVUkwsIHJlcXVlc3RJZCkpOworICAgIH0KIH0KIAogdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpAQCAtMjI3LDcgKzIyOSw3
IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSCiAgICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCkgPj0gNDAwKSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIkZhaWxlZCB0byBsb2Fk
IHJlc291cmNlOiB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEgc3RhdHVzIG9mICIgKyBTdHJp
bmc6Om51bWJlcihyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKSArICIgKCIgKyByZXNwb25zZS5o
dHRwU3RhdHVzVGV4dCgpICsgJyknOwogICAgICAgICBTdHJpbmcgcmVxdWVzdElkID0gSWRlbnRp
ZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7Ci0gICAgICAgIGFkZENvbnNvbGVN
ZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShOZXR3b3JrTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXNwb25zZS51cmwo
KS5zdHJpbmcoKSwgcmVxdWVzdElkKSkpOworICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShDb25z
b2xlTWVzc2FnZTo6Y3JlYXRlTmV0d29ya0NvbnNvbGVNZXNzYWdlKExvYWRpbmdGYWlsZWROZXR3
b3JrTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXNwb25zZS51cmwo
KS5zdHJpbmcoKSwgcmVxdWVzdElkKSk7CiAgICAgfQogfQogCkBAIC0yNDEsNyArMjQzLDcgQEAg
dm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3UKICAgICBpZiAoIWVycm9yLmxvY2FsaXplZERlc2NyaXB0
aW9uKCkuaXNFbXB0eSgpKQogICAgICAgICBtZXNzYWdlICs9ICI6ICIgKyBlcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpOwogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rv
cnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0
cihuZXcgQ29uc29sZU1lc3NhZ2UoTmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgZXJyb3IuZmFpbGluZ1VSTCgpLCByZXF1ZXN0
SWQpKSk7CisgICAgYWRkQ29uc29sZU1lc3NhZ2UoQ29uc29sZU1lc3NhZ2U6OmNyZWF0ZU5ldHdv
cmtDb25zb2xlTWVzc2FnZShMb2FkaW5nRmFpbGVkTmV0d29ya01lc3NhZ2VUeXBlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgbWVzc2FnZSwgZXJyb3IuZmFpbGluZ1VSTCgpLCByZXF1ZXN0SWQpKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVy
cm9yU3RyaW5nKiwgYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmluZGV4IDI1NzZhNzRmYzBjNDU0YTBlNjY0OTYxMzMz
MTVlMjI0M2E2MzFlZGMuLjU1NTZhMDkzMDBjNTA5MmJiZWFmZjg3MzY4ODFiMDI1M2I1ZDlkOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBmcmFtZVdpbmRvd0Rpc2Nh
cmRlZChET01XaW5kb3cqKTsKIAotICAgIHZvaWQgcmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBS
ZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVk
IHNlbmRMaW5lTnVtYmVyKTsKKyAgICB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVx
dWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAppbmRleCA0OWRkZmM1MzAyZjRhMmRlMWEzNjVhN2EwMzk0MGU2ZTE0NjQ1Yjk4
Li45M2Q1ODBiYTA3ZGJjNzQ0YmExNDNkN2MxNTQ1NjcyZmE2ZDk3Yzg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApA
QCAtNTM1LDcgKzUzNSw3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWls
TG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVuCiB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcikKIHsKICAgICBp
ZiAoSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLT5pbnNwZWN0b3JDb25zb2xlQWdlbnQoKSkKLSAgICAgICAgY29uc29sZUFnZW50LT5yZXNv
dXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QodXJsLCBzZW5kVVJMLCBzZW5kTGluZU51bWJl
cik7CisgICAgICAgIGNvbnNvbGVBZ2VudC0+cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1
ZXN0KGlkZW50aWZpZXIsIHVybCwgc2VuZFVSTCwgc2VuZExpbmVOdW1iZXIpOwogICAgIGlmIChJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQogICAgICAgICByZXNvdXJjZUFnZW50LT5zZXRJ
bml0aWFsWEhSQ29udGVudChpZGVudGlmaWVyLCBzb3VyY2VTdHJpbmcpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5k
ZXggNWY1MGU2NTBhZThlYzlhNWM2M2ZlYWZmZjgyZWI0MzdmZTE4NDBlOC4uNTRkYzY2OGUyMjdl
NzMzMGYxN2Y4NjkzYmMwNzc5MWU3ZGY1MzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC00NCwxMCArNDQsMTEg
QEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVTdGFja0ZyYW1lID0gZnVuY3Rpb24oKQogICogQHBhcmFt
IHtBcnJheS48V2ViSW5zcGVjdG9yLkNvbnNvbGVTdGFja0ZyYW1lPj19IHN0YWNrVHJhY2UKICAq
IEBwYXJhbSB7bnVtYmVyPX0gcmVxdWVzdAogICovCi1XZWJJbnNwZWN0b3IuQ29uc29sZU1lc3Nh
Z2UgPSBmdW5jdGlvbihzb3VyY2UsIHR5cGUsIGxldmVsLCBsaW5lLCB1cmwsIHJlcGVhdENvdW50
LCBtZXNzYWdlLCBwYXJhbWV0ZXJzLCBzdGFja1RyYWNlLCByZXF1ZXN0KQorV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlID0gZnVuY3Rpb24oc291cmNlLCB0eXBlLCBuZXR3b3JrTWVzc2FnZVR5
cGUsIGxldmVsLCBsaW5lLCB1cmwsIHJlcGVhdENvdW50LCBtZXNzYWdlLCBwYXJhbWV0ZXJzLCBz
dGFja1RyYWNlLCByZXF1ZXN0KQogewogICAgIHRoaXMuc291cmNlID0gc291cmNlOwogICAgIHRo
aXMudHlwZSA9IHR5cGU7CisgICAgdGhpcy5uZXR3b3JrTWVzc2FnZVR5cGUgPSBuZXR3b3JrTWVz
c2FnZVR5cGU7CiAgICAgdGhpcy5sZXZlbCA9IGxldmVsOwogICAgIHRoaXMubGluZSA9IGxpbmU7
CiAgICAgdGhpcy51cmwgPSB1cmw7CkBAIC03Myw3ICs3NCw3IEBAIFdlYkluc3BlY3Rvci5Db25z
b2xlTWVzc2FnZSA9IGZ1bmN0aW9uKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIGxpbmUsIHVybCwgcmVw
ZWF0Q291CiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuY3JlYXRlVGV4dE1lc3NhZ2UgPSBm
dW5jdGlvbih0ZXh0LCBsZXZlbCkKIHsKICAgICBsZXZlbCA9IGxldmVsIHx8IFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTG9nOwotICAgIHJldHVybiBuZXcgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
U291cmNlLkNvbnNvbGVBUEksIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlw
ZS5Mb2csIGxldmVsLCAwLCBudWxsLCAxLCBudWxsLCBbdGV4dF0sIG51bGwpOworICAgIHJldHVy
biBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVz
c2FnZS5NZXNzYWdlU291cmNlLkNvbnNvbGVBUEksIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlVHlwZS5Mb2csIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5OZXR3b3JrTWVz
c2FnZVR5cGUuTG9nLCBsZXZlbCwgMCwgbnVsbCwgMSwgbnVsbCwgW3RleHRdLCBudWxsKTsKIH0K
IAogV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKQEAgLTEwNSwxNyAr
MTA2LDM1IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zb3VyY2UgPT09IFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLk5ldHdvcmspIHsKICAgICAgICAgICAgIGlm
ICh0aGlzLl9yZXF1ZXN0KSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fc3RhY2tUcmFjZSA9IHRo
aXMuX3JlcXVlc3Quc3RhY2tUcmFjZTsKLSAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgICAgICAgICBtZXNzYWdlVGV4
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLl9yZXF1ZXN0LnJlcXVl
c3RNZXRob2QgKyAiICIpKTsKLSAgICAgICAgICAgICAgICB2YXIgYW5jaG9yID0gV2ViSW5zcGVj
dG9yLmxpbmtpZnlVUkxBc05vZGUodGhpcy5fcmVxdWVzdC51cmwpOwotICAgICAgICAgICAgICAg
IGFuY2hvci5zZXRBdHRyaWJ1dGUoInJlcXVlc3RfaWQiLCB0aGlzLl9yZXF1ZXN0LnJlcXVlc3RJ
ZCk7Ci0gICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVs
IiwgIm5ldHdvcmsiKTsKLSAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChh
bmNob3IpOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0LmZhaWxlZCkKLSAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIiAiICsgdGhpcy5fcmVxdWVzdC5sb2NhbGl6ZWRGYWlsRGVzY3JpcHRpb24pKTsKLSAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIiArIHRoaXMuX3JlcXVlc3Quc3RhdHVz
Q29kZSArICIgKCIgKyB0aGlzLl9yZXF1ZXN0LnN0YXR1c1RleHQgKyAiKSIpKTsKKyAgICAgICAg
ICAgICAgICBpZiAodGhpcy5uZXR3b3JrTWVzc2FnZVR5cGUgPT09IFdlYkluc3BlY3Rvci5Db25z
b2xlTWVzc2FnZS5OZXR3b3JrTWVzc2FnZVR5cGUuTG9hZGluZ0ZhaWxlZCkgeworICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9zdGFja1RyYWNlID0gdGhpcy5fcmVxdWVzdC5zdGFja1RyYWNlOwor
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5fcmVxdWVzdC5yZXF1ZXN0TWV0aG9kICsgIiAiKSk7
CisgICAgICAgICAgICAgICAgICAgIHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVS
TEFzTm9kZSh0aGlzLl9yZXF1ZXN0LnVybCk7CisgICAgICAgICAgICAgICAgICAgIGFuY2hvci5z
ZXRBdHRyaWJ1dGUoInJlcXVlc3RfaWQiLCB0aGlzLl9yZXF1ZXN0LnJlcXVlc3RJZCk7CisgICAg
ICAgICAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJu
ZXR3b3JrIik7CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGFu
Y2hvcik7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0LmZhaWxlZCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCIgIiArIHRoaXMuX3JlcXVlc3QubG9jYWxpemVkRmFpbERlc2NyaXB0aW9u
KSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2VUZXh0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIiArIHRoaXMu
X3JlcXVlc3Quc3RhdHVzQ29kZSArICIgKCIgKyB0aGlzLl9yZXF1ZXN0LnN0YXR1c1RleHQgKyAi
KSIpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtZXNz
YWdlVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGxpbmtpZmllcih0aXRsZSwgdXJs
LCBsaW5lTnVtYmVyKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB2YXIgaXNFeHRlcm5hbCA9ICF0aGlzLl9yZXF1ZXN0OworICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHVybCwgdGl0
bGUsIG51bGwsIGlzRXh0ZXJuYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMu
X3JlcXVlc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3Iuc2V0QXR0cmli
dXRlKCJyZXF1ZXN0X2lkIiwgdGhpcy5fcmVxdWVzdC5yZXF1ZXN0SWQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJu
ZXR3b3JrIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYW5jaG9yOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgICAgICB2YXIgZnJhZ21lbnQgPSBXZWJJbnNwZWN0b3Iu
bGlua2lmeVN0cmluZ0FzRnJhZ21lbnRXaXRoQ3VzdG9tTGlua2lmaWVyKHRoaXMuX21lc3NhZ2VU
ZXh0LCBsaW5raWZpZXIuYmluZCh0aGlzKSk7CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VU
ZXh0LmFwcGVuZENoaWxkKGZyYWdtZW50KTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHZhciBpc0V4dGVybmFsID0gIVdlYkluc3BlY3Rv
ci5yZXNvdXJjZUZvclVSTCh0aGlzLnVybCk7CiAgICAgICAgICAgICAgICAgdmFyIGFuY2hvciA9
IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHRoaXMudXJsLCB0aGlzLnVybCwgImNvbnNv
bGUtbWVzc2FnZS11cmwiLCBpc0V4dGVybmFsKTsKQEAgLTQ3OSw2ICs0OTgsMTIgQEAgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8vTm90ZTog
S2VlcCB0aGVzZSBpbiBzeW5jIHdpdGggdGhlIG9uZXMgaW4gQ29uc29sZU1lc3NhZ2UuaAorV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk5ldHdvcmtNZXNzYWdlVHlwZSA9IHsKKyAgICAgICAg
TG9hZGluZ0ZhaWxlZDogImxvYWRpbmdGYWlsZWQiLAorICAgICAgICBMb2c6ICJsb2ciCisgICAg
fQorCiAvLyBOb3RlOiBLZWVwIHRoZXNlIGNvbnN0YW50cyBpbiBzeW5jIHdpdGggdGhlIG9uZXMg
aW4gQ29uc29sZS5oCiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZSA9
IHsKICAgICBIVE1MOiAiaHRtbCIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCmluZGV4IDdhYmE3Nzg1OGQ3YTllNGViMjQ3NjI3Njkz
YjkyYTA4NjQ5YTc2OGUuLjA2Yjk0OTFjY2Y0ODQyZjI1MzFmNjU1NTcxMWMyNjMyNjQ5ZTYzYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1v
ZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1v
ZGVsLmpzCkBAIC0xMjQsNyArMTI0LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9pbmNyZW1lbnRFcnJvcldhcm5pbmdDb3VudCht
c2cpOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuUmVwZWF0Q291bnRVcGRhdGVkLCBtc2cpOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIG1zZ0NvcHkgPSBuZXcgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlKG1zZy5zb3VyY2UsIG1zZy50eXBlLCBtc2cubGV2ZWwsIG1zZy5saW5lLCBt
c2cudXJsLCBjb3VudCAtIHByZXZSZXBlYXRDb3VudCwgbXNnLl9tZXNzYWdlVGV4dCwgbXNnLl9w
YXJhbWV0ZXJzLCBtc2cuX3N0YWNrVHJhY2UsIG1zZy5fcmVxdWVzdCk7CisgICAgICAgICAgICB2
YXIgbXNnQ29weSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UobXNnLnNvdXJjZSwg
bXNnLnR5cGUsIG1zZy5uZXR3b3JrTWVzc2FnZVR5cGUsIG1zZy5sZXZlbCwgbXNnLmxpbmUsIG1z
Zy51cmwsIGNvdW50IC0gcHJldlJlcGVhdENvdW50LCBtc2cuX21lc3NhZ2VUZXh0LCBtc2cuX3Bh
cmFtZXRlcnMsIG1zZy5fc3RhY2tUcmFjZSwgbXNnLl9yZXF1ZXN0KTsKICAgICAgICAgICAgIG1z
Z0NvcHkudG90YWxSZXBlYXRDb3VudCA9IGNvdW50OwogICAgICAgICAgICAgbXNnQ29weS5fZm9y
bWF0TWVzc2FnZSgpOwogICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKG1zZ0NvcHkpOwpAQCAt
MTUwLDYgKzE1MCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlRGlzcGF0Y2hlci5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBjb25zb2xlTWVzc2FnZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UoCiAgICAgICAgICAgICBwYXlsb2FkLnNvdXJjZSwKICAgICAgICAgICAgIHBheWxv
YWQudHlwZSwKKyAgICAgICAgICAgIHBheWxvYWQubmV0d29ya01lc3NhZ2VUeXBlLAogICAgICAg
ICAgICAgcGF5bG9hZC5sZXZlbCwKICAgICAgICAgICAgIHBheWxvYWQubGluZSwKICAgICAgICAg
ICAgIHBheWxvYWQudXJsLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29uc29sZVZpZXcuanMKaW5kZXggNjE3M2NlOTAzYTk0YjZkZWVkMDY5NGVkZThmOWNjYmUx
MjAxYmY2NS4uODE5ODg3NzE5MjJlODc0OTUwMjU3NDRhNWVkNDE2YTYwY2MwYzQyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBA
IC03NzAsNyArNzcwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0ID0gZnVu
Y3Rpb24ocmVzdWx0LCB3YXNUaHJvd24sIG9yaWdpbmF0aW5nQ29tbWEKIHsKICAgICB2YXIgbGV2
ZWwgPSAod2FzVGhyb3duID8gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZl
bC5FcnJvciA6IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTG9nKTsK
ICAgICB0aGlzLm9yaWdpbmF0aW5nQ29tbWFuZCA9IG9yaWdpbmF0aW5nQ29tbWFuZDsKLSAgICBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5KUywgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VUeXBlLlJlc3VsdCwgbGV2ZWwsIC0xLCBudWxsLCAxLCBudWxsLCBbcmVzdWx0XSk7Cisg
ICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuSlMsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlVHlwZS5SZXN1bHQsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5OZXR3b3Jr
TWVzc2FnZVR5cGUuTG9nLCBsZXZlbCwgLTEsIG51bGwsIDEsIG51bGwsIFtyZXN1bHRdKTsKIH0K
IAogV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0LnByb3RvdHlwZSA9IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVy
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIu
anMKaW5kZXggODFlNzcwMWI5ZDVhMmM1NjRmY2MxN2UwNjA3ZWI0ODc3MTA0OWRhMi4uOTk5OWI2
YTU3ZTBmY2Q4MzNiZDZhMTUzMGRiYzc2MjY5NzJhOWE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTMxMSw2
ICszMTEsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdmFyIGNvbnNvbGVNZXNzYWdlID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZSgKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNl
LkpTLAogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBl
LkxvZywKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5OZXR3b3JrTWVz
c2FnZVR5cGUuTG9nLAogICAgICAgICAgICAgbGV2ZWwsCiAgICAgICAgICAgICBtZXNzYWdlLmxp
bmUsCiAgICAgICAgICAgICBtZXNzYWdlLnVybCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCmluZGV4IGFiYzRmYjQzNmJlZjg0
ODVlZjZjNWE2ZTA3YTdjMjVlZWM1ODk5NzQuLjdlMTE0ZDVjZGNmNzk4ZGJhMDNkYmUxMWVjMzk3
Y2U3MzdkY2VlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmV0d29ya01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrTWFuYWdlci5qcwpAQCAtMTI5LDYgKzEyOSw3IEBAIFdlYkluc3BlY3Rvci5O
ZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5fbWltZVR5
cGVJc0NvbnNpc3RlbnRXaXRoVHlwZShyZXNvdXJjZSkpIHsKICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5jb25zb2xlLmFkZE1lc3NhZ2UobmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZShX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5PdGhlciwKICAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuTG9nLAorICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5OZXR3b3JrTWVzc2FnZVR5
cGUuTG9nLAogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNz
YWdlTGV2ZWwuV2FybmluZywKICAgICAgICAgICAgICAgICAtMSwKICAgICAgICAgICAgICAgICB0
aGlzLnVybCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlc1BhbmVsLmpzCmluZGV4IDc3M2FkYmY5ODZkNzE4OWRlNjg0MDFhZTFiMTgxZGJmYWY2
YTg0MDAuLjNhODU2YjdhMTQwNzM4ZDhkYTViNWZjYTA2NGMyMDA5YWI3YjMzNjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5q
cwpAQCAtMzI3LDE0ICszMjcsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90
eXBlID0gewogICAgIHNob3dBbmNob3JMb2NhdGlvbjogZnVuY3Rpb24oYW5jaG9yKQogICAgIHsK
ICAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKGFuY2hv
ci5ocmVmKTsKLSAgICAgICAgaWYgKHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNv
dXJjZS5UeXBlLlhIUikgewotICAgICAgICAgICAgLy8gU2hvdyBYSFJzIGluIHRoZSBuZXR3b3Jr
IHBhbmVsIG9ubHkuCi0gICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3Jr
ICYmIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5jYW5TaG93QW5jaG9yTG9jYXRpb24oYW5j
aG9yKSkgewotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50UGFuZWwoV2Vi
SW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLm5ldHdvcmsuc2hvd0FuY2hvckxvY2F0aW9uKGFuY2hvcik7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICAgICAgdmFyIGxpbmVOdW1iZXIg
PSBhbmNob3IuaGFzQXR0cmlidXRlKCJsaW5lX251bWJlciIpID8gcGFyc2VJbnQoYW5jaG9yLmdl
dEF0dHJpYnV0ZSgibGluZV9udW1iZXIiKSkgOiB1bmRlZmluZWQ7CiAgICAgICAgIHRoaXMuc2hv
d1Jlc291cmNlKHJlc291cmNlLCBsaW5lTnVtYmVyKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCAyZmI1OGYxZjNkYmVj
NTcwMmIwOWU1MDA2ZWM3ZGEyNjMwNjEyZjhhLi5hMTI4YjQwYmVkNzZiMGMxZmFiM2UxODBlYjQ4
OGUwZWI1YjQxYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcwpAQCAtMTEzNiw2ICsxMTM2LDcgQEAgV2ViSW5zcGVjdG9yLmxvZyA9IGZ1
bmN0aW9uKG1lc3NhZ2UsIG1lc3NhZ2VMZXZlbCkKICAgICAgICAgdmFyIG1zZyA9IG5ldyBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UoCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5PdGhlciwKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2csCisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTmV0d29ya01lc3NhZ2VUeXBlLkxvZywKICAgICAgICAgICAgIG1lc3Nh
Z2VMZXZlbCB8fCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkRlYnVn
LAogICAgICAgICAgICAgLTEsCiAgICAgICAgICAgICBudWxsLApAQCAtMTI0NCw3ICsxMjQ1LDcg
QEAgV2ViSW5zcGVjdG9yLl9zaG93QW5jaG9yTG9jYXRpb25JblBhbmVsID0gZnVuY3Rpb24oYW5j
aG9yLCBwYW5lbCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotV2ViSW5zcGVjdG9yLmxpbmtpZnlT
dHJpbmdBc0ZyYWdtZW50ID0gZnVuY3Rpb24oc3RyaW5nKQorV2ViSW5zcGVjdG9yLmxpbmtpZnlT
dHJpbmdBc0ZyYWdtZW50V2l0aEN1c3RvbUxpbmtpZmllciA9IGZ1bmN0aW9uKHN0cmluZywgbGlu
a2lmaWVyKQogewogICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCk7CiAgICAgdmFyIGxpbmtTdHJpbmdSZWdFeCA9IC8oPzpbYS16QS1aXVthLXpBLVow
LTkrLi1dezIsfTpcL1wvfHd3d1wuKVtcdyRcLV8rKic9XHxcL1xcKCl7fVtcXSVAJiN+LDo7LiE/
XXsyLH1bXHckXC1fKyo9XHxcL1xcKHslQCYjfl0vOwpAQCAtMTI1NiwyNyArMTI1NywxOCBAQCBX
ZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQgPSBmdW5jdGlvbihzdHJpbmcpCiAg
ICAgICAgICAgICBicmVhazsKIAogICAgICAgICBsaW5rU3RyaW5nID0gbGlua1N0cmluZ1swXTsK
LSAgICAgICAgdmFyIHRpdGxlID0gbGlua1N0cmluZzsKICAgICAgICAgdmFyIGxpbmtJbmRleCA9
IHN0cmluZy5pbmRleE9mKGxpbmtTdHJpbmcpOwogICAgICAgICB2YXIgbm9uTGluayA9IHN0cmlu
Zy5zdWJzdHJpbmcoMCwgbGlua0luZGV4KTsKICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5vbkxpbmspKTsKIAotICAgICAgICB2YXIgcHJvZmls
ZVN0cmluZ01hdGNoZXMgPSBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuVVJMUmVnRXhwLmV4ZWMo
dGl0bGUpOwotICAgICAgICBpZiAocHJvZmlsZVN0cmluZ01hdGNoZXMpCi0gICAgICAgICAgICB0
aXRsZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuZGlzcGxheVRpdGxlRm9yUHJvZmls
ZUxpbmsocHJvZmlsZVN0cmluZ01hdGNoZXNbMl0sIHByb2ZpbGVTdHJpbmdNYXRjaGVzWzFdKTsK
LQorICAgICAgICB2YXIgdGl0bGUgPSBsaW5rU3RyaW5nOwogICAgICAgICB2YXIgcmVhbFVSTCA9
IChsaW5rU3RyaW5nLmluZGV4T2YoInd3dy4iKSA9PT0gMCA/ICJodHRwOi8vIiArIGxpbmtTdHJp
bmcgOiBsaW5rU3RyaW5nKTsKICAgICAgICAgdmFyIGxpbmVDb2x1bW5NYXRjaCA9IGxpbmVDb2x1
bW5SZWdFeC5leGVjKHJlYWxVUkwpOwogICAgICAgICBpZiAobGluZUNvbHVtbk1hdGNoKQogICAg
ICAgICAgICAgcmVhbFVSTCA9IHJlYWxVUkwuc3Vic3RyaW5nKDAsIHJlYWxVUkwubGVuZ3RoIC0g
bGluZUNvbHVtbk1hdGNoWzBdLmxlbmd0aCk7CiAKLSAgICAgICAgdmFyIGhhc1Jlc291cmNlV2l0
aFVSTCA9ICEhV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHJlYWxVUkwpOwotICAgICAgICB2
YXIgdXJsTm9kZSA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHJlYWxVUkwsIHRpdGxl
LCBudWxsLCBoYXNSZXNvdXJjZVdpdGhVUkwpOwotICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hp
bGQodXJsTm9kZSk7Ci0gICAgICAgIGlmIChsaW5lQ29sdW1uTWF0Y2gpIHsKLSAgICAgICAgICAg
IHVybE5vZGUuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxpbmVDb2x1bW5NYXRjaFsxXSk7
Ci0gICAgICAgICAgICB1cmxOb2RlLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNj
cmlwdHMiKTsKLSAgICAgICAgfQorICAgICAgICB2YXIgbGlua05vZGUgPSBsaW5raWZpZXIodGl0
bGUsIHJlYWxVUkwsIGxpbmVDb2x1bW5NYXRjaCA/IGxpbmVDb2x1bW5NYXRjaFsxXSA6IHVuZGVm
aW5lZCk7CisgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChsaW5rTm9kZSk7CiAgICAgICAg
IHN0cmluZyA9IHN0cmluZy5zdWJzdHJpbmcobGlua0luZGV4ICsgbGlua1N0cmluZy5sZW5ndGgs
IHN0cmluZy5sZW5ndGgpOwogICAgIH0KIApAQCAtMTI4Niw2ICsxMjc4LDI3IEBAIFdlYkluc3Bl
Y3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudCA9IGZ1bmN0aW9uKHN0cmluZykKICAgICByZXR1
cm4gY29udGFpbmVyOwogfQogCitXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQg
PSBmdW5jdGlvbihzdHJpbmcpCit7CisgICAgZnVuY3Rpb24gbGlua2lmaWVyKHRpdGxlLCB1cmws
IGxpbmVOdW1iZXIpCisgICAgeworICAgICAgICB2YXIgcHJvZmlsZVN0cmluZ01hdGNoZXMgPSBX
ZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuVVJMUmVnRXhwLmV4ZWModGl0bGUpOworICAgICAgICBp
ZiAocHJvZmlsZVN0cmluZ01hdGNoZXMpCisgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMucHJvZmlsZXMuZGlzcGxheVRpdGxlRm9yUHJvZmlsZUxpbmsocHJvZmlsZVN0cmlu
Z01hdGNoZXNbMl0sIHByb2ZpbGVTdHJpbmdNYXRjaGVzWzFdKTsKKworICAgICAgICB2YXIgaXNF
eHRlcm5hbCA9ICFXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwodXJsKTsKKyAgICAgICAgdmFy
IHVybE5vZGUgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1cmwsIHRpdGxlLCBudWxs
LCBpc0V4dGVybmFsKTsKKyAgICAgICAgaWYgKHR5cGVvZihsaW5lTnVtYmVyKSAhPT0gInVuZGVm
aW5lZCIpIHsKKyAgICAgICAgICAgIHVybE5vZGUuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIs
IGxpbmVOdW1iZXIpOworICAgICAgICAgICAgdXJsTm9kZS5zZXRBdHRyaWJ1dGUoInByZWZlcnJl
ZF9wYW5lbCIsICJzY3JpcHRzIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVy
biB1cmxOb2RlOyAKKyAgICB9CisgICAgCisgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5saW5raWZ5
U3RyaW5nQXNGcmFnbWVudFdpdGhDdXN0b21MaW5raWZpZXIoc3RyaW5nLCBsaW5raWZpZXIpOwor
fQorCiBXZWJJbnNwZWN0b3Iuc2hvd1Byb2ZpbGVGb3JVUkwgPSBmdW5jdGlvbih1cmwpCiB7CiAg
ICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicHJvZmlsZXMiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108314</attachid>
            <date>2011-09-22 04:54:08 -0700</date>
            <delta_ts>2011-09-22 07:26:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67399-20110922155405.patch</filename>
            <type>text/plain</type>
            <size>29718</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3MDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMDZhOGMzNGJhMjMyZjc5MjViZWZh
ZTRlMDdlMWUyZGU2MmE1YjY1Li40ZjZjMTQ4MGVjYmNkNGQwMTcxMmMzNmI4N2RkZmIxYTVjOTQz
ZDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMjEgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogWE1MSHR0cFJl
cXVlc3QgY29uc29sZSBsb2dnaW5nIG1lc3NhZ2VzIHNob3VsZCBsaW5rIHRvIG5ldHdvcmsgcGFu
ZWwgd2hlbiBwb3NzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3Mzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvY29uc29sZS1hZ2VudC1leHBlY3RlZC50eHQ6
CisKIDIwMTEtMDktMjIgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBbUXRdIDY5IHRlc3RzIGZhaWxpbmcgYWZ0ZXIgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvOTIzNzUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90
b2NvbC9jb25zb2xlLWFnZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm90b2NvbC9jb25zb2xlLWFnZW50LWV4cGVjdGVkLnR4dAppbmRleCA4ZTA4Y2MwMmIyMDRhY2Vh
MDIyOTUxOWEyMDdhY2MyYjljYTg3ZThkLi4zNjI4YWVhNTk1ZTA1M2Q2ZTA3NmFjMGVlOWMxMDdj
ODYxMTdjOGUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvY29u
c29sZS1hZ2VudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3Rv
Y29sL2NvbnNvbGUtYWdlbnQtZXhwZWN0ZWQudHh0CkBAIC01Niw2ICs1Niw3IEBAIGV2ZW50IENv
bnNvbGVBZ2VudC5tZXNzYWdlQWRkZWQKICAgICAgICAgbWVzc2FnZSA6IHsKICAgICAgICAgICAg
IHNvdXJjZSA6ICJjb25zb2xlLWFwaSIKICAgICAgICAgICAgIHR5cGUgOiAibG9nIgorICAgICAg
ICAgICAgbmV0d29ya01lc3NhZ2VUeXBlIDogImxvZyIKICAgICAgICAgICAgIGxldmVsIDogImxv
ZyIKICAgICAgICAgICAgIGxpbmUgOiAwCiAgICAgICAgICAgICB1cmwgOiAiIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGM2MzA3ZWNhYzMwMGIwMGEwMjc3MWY5MzkxNDlhMWNkNmE4ODdiMGIuLmZiNzU0YzhmMWFj
MWMwZThhZTk1ZTIxNzIzNTU4Y2FlYWFjNzBmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBA
QAorMjAxMS0wOS0yMSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBYTUxIdHRwUmVxdWVzdCBjb25zb2xlIGxvZ2dpbmcgbWVz
c2FnZXMgc2hvdWxkIGxpbmsgdG8gbmV0d29yayBwYW5lbCB3aGVuIHBvc3NpYmxlLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczOTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9Db25z
b2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlTWVzc2FnZTo6Q29uc29s
ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6bmV0d29ya01lc3NhZ2VUeXBlVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OmFkZFRvRnJvbnRlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OmlzRXF1YWwpOgorICAgICAgICAqIGluc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OmNy
ZWF0ZU5ldHdvcmtDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlTWVz
c2FnZTo6bmV0d29ya01lc3NhZ2VUeXBlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnJlc291cmNlUmV0cmlldmVk
QnlYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdl
bnQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25z
b2xlQWdlbnQ6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJl
c291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdEltcGwpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLmNyZWF0
ZVRleHRNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90
b3R5cGUuX2Zvcm1hdE1lc3NhZ2UuZWxzZS5lbHNlLmxpbmtpZmllcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLl9mb3JtYXRNZXNzYWdlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db25zb2xlTW9kZWwucHJvdG90eXBlLl9tZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlRGlzcGF0Y2hlci5wcm90b3R5cGUubWVz
c2FnZUFkZGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkFkZENvbnNvbGVNZXNzYWdlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5fdXBkYXRlUmVzb3Vy
Y2VXaXRoUmVzcG9uc2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Vz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBl
LnNob3dBbmNob3JMb2NhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IubG9nLmxvZ01lc3NhZ2UpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLmxvZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IubGlua2lmeVN0cmlu
Z0FzRnJhZ21lbnRXaXRoQ3VzdG9tTGlua2lmaWVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5s
aW5raWZ5U3RyaW5nQXNGcmFnbWVudCk6CisKIDIwMTEtMDktMjIgIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
OTU2OTkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRl
eCBkNDRhNDk1OTA4MzQzMDkyM2E3ZTExMTdkNjYzYTRjOTg2NmIyYzU4Li5kYjliNjMzNmY1OGYy
ODViODFlYmYwMTg1MjAxN2IyNmYzNTQ2M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2Fn
ZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGksIGNv
bnN0IFN0cmluZyYgdSkKICAgICA6IG1fc291cmNlKHMpCiAgICAgLCBtX3R5cGUodCkKKyAgICAs
IG1fbmV0d29ya01lc3NhZ2VUeXBlKExvZ05ldHdvcmtNZXNzYWdlVHlwZSkKICAgICAsIG1fbGV2
ZWwobCkKICAgICAsIG1fbWVzc2FnZShtKQogICAgICwgbV9saW5lKGxpKQpAQCAtNTgsNiArNTks
NyBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNz
YWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgYwogQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGNvbnN0
IFN0cmluZyYgbSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKICAgICA6IG1fc291cmNlKHMpCiAgICAg
LCBtX3R5cGUodCkKKyAgICAsIG1fbmV0d29ya01lc3NhZ2VUeXBlKExvZ05ldHdvcmtNZXNzYWdl
VHlwZSkKICAgICAsIG1fbGV2ZWwobCkKICAgICAsIG1fbWVzc2FnZShtKQogICAgICwgbV9hcmd1
bWVudHMoYXJndW1lbnRzKQpAQCAtNjgsMTMgKzcwLDE0IEBAIENvbnNvbGVNZXNzYWdlOjpDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBs
LCBjCiB7CiB9CiAKLUNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
IHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0sIGNvbnN0
IFN0cmluZyYgcmVzcG9uc2VVcmwsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKQorQ29uc29sZU1l
c3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTmV0d29ya01lc3NhZ2VUeXBl
IHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0sIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkKICAgICA6IG1fc291
cmNlKHMpCi0gICAgLCBtX3R5cGUodCkKKyAgICAsIG1fdHlwZShMb2dNZXNzYWdlVHlwZSkKKyAg
ICAsIG1fbmV0d29ya01lc3NhZ2VUeXBlKHQpCiAgICAgLCBtX2xldmVsKGwpCiAgICAgLCBtX21l
c3NhZ2UobSkKLSAgICAsIG1fbGluZSgwKQotICAgICwgbV91cmwocmVzcG9uc2VVcmwpCisgICAg
LCBtX2xpbmUobGluZU51bWJlcikKKyAgICAsIG1fdXJsKHVybCkKICAgICAsIG1fcmVwZWF0Q291
bnQoMSkKICAgICAsIG1fcmVxdWVzdElkKHJlcXVlc3RJZCkKIHsKQEAgLTExMyw2ICsxMTYsMTUg
QEAgc3RhdGljIFN0cmluZyBtZXNzYWdlVHlwZVZhbHVlKE1lc3NhZ2VUeXBlIHR5cGUpCiAgICAg
cmV0dXJuICJvdGhlciI7CiB9CiAKK3N0YXRpYyBTdHJpbmcgbmV0d29ya01lc3NhZ2VUeXBlVmFs
dWUoTmV0d29ya01lc3NhZ2VUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAg
Y2FzZSBMb2dOZXR3b3JrTWVzc2FnZVR5cGU6IHJldHVybiAibG9nIjsKKyAgICBjYXNlIExvYWRp
bmdGYWlsZWROZXR3b3JrTWVzc2FnZVR5cGU6IHJldHVybiAibG9hZGluZ0ZhaWxlZCI7CisgICAg
fQorICAgIHJldHVybiAib3RoZXIiOworfQorCiBzdGF0aWMgU3RyaW5nIG1lc3NhZ2VMZXZlbFZh
bHVlKE1lc3NhZ2VMZXZlbCBsZXZlbCkKIHsKICAgICBzd2l0Y2ggKGxldmVsKSB7CkBAIC0xMzEs
NiArMTQzLDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVuZChJbnNwZWN0b3JG
cm9udGVuZDo6Q29uc29sZSogZnJvbnRlbmQsIEluamVjdGUKICAgICBqc29uT2JqLT5zZXRTdHJp
bmcoInNvdXJjZSIsIG1lc3NhZ2VTb3VyY2VWYWx1ZShtX3NvdXJjZSkpOwogICAgIC8vIEZJWE1F
OiBvbmx5IHNlbmQgb3V0IHR5cGUgZm9yIENvbnNvbGVBUEkgc291cmNlIG1lc3NhZ2VzLgogICAg
IGpzb25PYmotPnNldFN0cmluZygidHlwZSIsIG1lc3NhZ2VUeXBlVmFsdWUobV90eXBlKSk7Cisg
ICAganNvbk9iai0+c2V0U3RyaW5nKCJuZXR3b3JrTWVzc2FnZVR5cGUiLCBuZXR3b3JrTWVzc2Fn
ZVR5cGVWYWx1ZShtX25ldHdvcmtNZXNzYWdlVHlwZSkpOwogICAgIGpzb25PYmotPnNldFN0cmlu
ZygibGV2ZWwiLCBtZXNzYWdlTGV2ZWxWYWx1ZShtX2xldmVsKSk7CiAgICAganNvbk9iai0+c2V0
TnVtYmVyKCJsaW5lIiwgc3RhdGljX2Nhc3Q8aW50PihtX2xpbmUpKTsKICAgICBqc29uT2JqLT5z
ZXRTdHJpbmcoInVybCIsIG1fdXJsKTsKQEAgLTE3OSw2ICsxOTIsNyBAQCBib29sIENvbnNvbGVN
ZXNzYWdlOjppc0VxdWFsKENvbnNvbGVNZXNzYWdlKiBtc2cpIGNvbnN0CiAKICAgICByZXR1cm4g
bXNnLT5tX3NvdXJjZSA9PSBtX3NvdXJjZQogICAgICAgICAmJiBtc2ctPm1fdHlwZSA9PSBtX3R5
cGUKKyAgICAgICAgJiYgbXNnLT5tX25ldHdvcmtNZXNzYWdlVHlwZSA9PSBtX25ldHdvcmtNZXNz
YWdlVHlwZQogICAgICAgICAmJiBtc2ctPm1fbGV2ZWwgPT0gbV9sZXZlbAogICAgICAgICAmJiBt
c2ctPm1fbWVzc2FnZSA9PSBtX21lc3NhZ2UKICAgICAgICAgJiYgbXNnLT5tX2xpbmUgPT0gbV9s
aW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCmluZGV4IGMwYjI1
ODg5ODQ1YjRjYmM5YjRmYmFmMDU2Nzk1NDA4NThlNGI5MmYuLmYwYWZiOWE2NmQ3MWM3OGY5MTNm
YTdmNDU0Yjk1NzIwMzdjNjBjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xl
TWVzc2FnZS5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQu
aCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDEyICs0OSwyNiBAQCBjbGFzcyBTY3JpcHRDYWxsRnJh
bWU7CiBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiBjbGFzcyBTY3JpcHRWYWx1ZTsKIAorZW51bSBO
ZXR3b3JrTWVzc2FnZVR5cGUgeworICAgIExvZ05ldHdvcmtNZXNzYWdlVHlwZSwKKyAgICBMb2Fk
aW5nRmFpbGVkTmV0d29ya01lc3NhZ2VUeXBlCit9OworCiBjbGFzcyBDb25zb2xlTWVzc2FnZSB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29uc29sZU1lc3NhZ2UpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxDb25zb2xlTWVzc2Fn
ZT4gY3JlYXRlTmV0d29ya0NvbnNvbGVNZXNzYWdlKE5ldHdvcmtNZXNzYWdlVHlwZSB0eXBlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3QgU3RyaW5nJiByZXNwb25z
ZVVybCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKE5ldHdvcmtNZXNzYWdlU291cmNlLCB0eXBlLCBsZXZl
bCwgbSwgMCwgcmVzcG9uc2VVcmwsIHJlcXVlc3RJZCkpOworICAgIH0KKworICAgIHN0YXRpYyBQ
YXNzT3duUHRyPENvbnNvbGVNZXNzYWdlPiBjcmVhdGVOZXR3b3JrQ29uc29sZU1lc3NhZ2UoTmV0
d29ya01lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBt
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0SWQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnNvbGVNZXNz
YWdlKE5ldHdvcmtNZXNzYWdlU291cmNlLCB0eXBlLCBsZXZlbCwgbSwgbGluZU51bWJlciwgdXJs
LCByZXF1ZXN0SWQpKTsKKyAgICB9CisKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
LCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIHVuc2lnbmVkIGxp
LCBjb25zdCBTdHJpbmcmIHUpOwogICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgUGFzc1JlZlB0cjxTY3Jp
cHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbSwgY29uc3QgU3RyaW5nJiByZXNwb25zZVVybCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0
SWQpOwogICAgIH5Db25zb2xlTWVzc2FnZSgpOwogCiAgICAgdm9pZCBhZGRUb0Zyb250ZW5kKElu
c3BlY3RvckZyb250ZW5kOjpDb25zb2xlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CkBAIC02
NCwxMiArNzksMTYgQEAgcHVibGljOgogICAgIE1lc3NhZ2VTb3VyY2Ugc291cmNlKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2U7IH0KICAgICBjb25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7
IHJldHVybiBtX21lc3NhZ2U7IH0KICAgICBNZXNzYWdlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlOyB9CisgICAgTmV0d29ya01lc3NhZ2VUeXBlIG5ldHdvcmtNZXNzYWdlVHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya01lc3NhZ2VUeXBlOyB9CiAKICAgICB2b2lkIHdpbmRv
d0NsZWFyZWQoRE9NV2luZG93Kik7CiAKIHByaXZhdGU6CisgICAgQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSwgTmV0d29ya01lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgcmVxdWVzdElkKTsKKwogICAgIE1lc3NhZ2VTb3VyY2UgbV9zb3VyY2U7CiAgICAgTWVzc2Fn
ZVR5cGUgbV90eXBlOworICAgIE5ldHdvcmtNZXNzYWdlVHlwZSBtX25ldHdvcmtNZXNzYWdlVHlw
ZTsKICAgICBNZXNzYWdlTGV2ZWwgbV9sZXZlbDsKICAgICBTdHJpbmcgbV9tZXNzYWdlOwogICAg
IFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IG1fYXJndW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDlkNmQ2OGRhODEyNjM2ZGYzMDgxNWY2MzM4ZGJhZDU1
M2I1NDQ2YjIuLjNmM2ExMTQyYzU2YTQwZDI4MzFjODcwM2Y5MDJmZjhmYzY0ZWI0NGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTM1MCw2ICszNTAsNyBAQAog
ICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJodG1sIiwgIndtbCIs
ICJ4bWwiLCAiamF2YXNjcmlwdCIsICJuZXR3b3JrIiwgImNvbnNvbGUtYXBpIiwgIm90aGVyIl0s
ICJkZXNjcmlwdGlvbiI6ICJNZXNzYWdlIHNvdXJjZS4iIH0sCiAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJsb2ciLCAiZGly
IiwgImRpcnhtbCIsICJ0cmFjZSIsICJzdGFydEdyb3VwIiwgInN0YXJ0R3JvdXBDb2xsYXBzZWQi
LCAiZW5kR3JvdXAiLCAiYXNzZXJ0Il0sICJkZXNjcmlwdGlvbiI6ICJDb25zb2xlIG1lc3NhZ2Ug
dHlwZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmV0d29ya01lc3NhZ2VU
eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbImxvZyIsICJsb2FkaW5nRmFpbGVkIl0s
ICJkZXNjcmlwdGlvbiI6ICJOZXR3b3JrIGNvbnNvbGUgbWVzc2FnZSB0eXBlLiIgfSwKICAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsZXZlbCIsICJ0eXBlIjogInN0cmluZyIsICJlbnVt
IjogWyJ0aXAiLCAibG9nIiwgIndhcm5pbmciLCAiZXJyb3IiLCAiZGVidWciXSwgImRlc2NyaXB0
aW9uIjogIk1lc3NhZ2Ugc2V2ZXJpdHkuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImxpbmUiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVy
IGluIHRoZSByZXNvdXJjZSB0aGF0IGdlbmVyYXRlZCB0aGlzIG1lc3NhZ2UuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJVUkwgb2YgdGhlIG1lc3NhZ2Ugb3JpZ2luLiIgfSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggOTFlNDAyN2Y3
YjUzOWE3ZjRkZTcwMWZjYWU1MzQ1YWRjNDhjODMwNi4uMGQ0Mzg5M2EzODAyNGI4Y2Q5ODY2YmU2
YzkyY2FkYTkyNDE1ODA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTIxMSwxMiArMjExLDE0IEBAIHZvaWQgSW5zcGVj
dG9yQ29uc29sZUFnZW50OjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqIHdpbmRvdykK
ICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+ZGlzY2FyZEluamVjdGVkU2NyaXB0c0Zvcih3
aW5kb3cpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRyaWV2
ZWRCeVhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRV
UkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6
OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNl
bmRMaW5lTnVtYmVyKQogewogICAgIGlmICghbV9pbnNwZWN0b3JBZ2VudC0+ZW5hYmxlZCgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1faW5zcGVjdG9yU3RhdGUtPmdldEJvb2xlYW4oQ29u
c29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKQotICAgICAgICBhZGRNZXNzYWdlVG9Db25z
b2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgIlhI
UiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyB1cmwgKyAiXCIuIiwgc2VuZExpbmVOdW1iZXIsIHNl
bmRVUkwpOworICAgIGlmIChtX2Zyb250ZW5kICYmIG1faW5zcGVjdG9yU3RhdGUtPmdldEJvb2xl
YW4oQ29uc29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKSB7CisgICAgICAgIFN0cmluZyBy
ZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKKyAg
ICAgICAgYWRkQ29uc29sZU1lc3NhZ2UoQ29uc29sZU1lc3NhZ2U6OmNyZWF0ZU5ldHdvcmtDb25z
b2xlTWVzc2FnZShMb2dOZXR3b3JrTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgIlhIUiBm
aW5pc2hlZCBsb2FkaW5nOiBcIiIgKyB1cmwgKyAiXCIuIiwgc2VuZExpbmVOdW1iZXIsIHNlbmRV
UkwsIHJlcXVlc3RJZCkpOworICAgIH0KIH0KIAogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6
OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpAQCAtMjI3LDcgKzIyOSw3IEBAIHZvaWQgSW5zcGVjdG9y
Q29uc29sZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSCiAgICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSB7CiAg
ICAgICAgIFN0cmluZyBtZXNzYWdlID0gIkZhaWxlZCB0byBsb2FkIHJlc291cmNlOiB0aGUgc2Vy
dmVyIHJlc3BvbmRlZCB3aXRoIGEgc3RhdHVzIG9mICIgKyBTdHJpbmc6Om51bWJlcihyZXNwb25z
ZS5odHRwU3RhdHVzQ29kZSgpKSArICIgKCIgKyByZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpICsg
JyknOwogICAgICAgICBTdHJpbmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1
ZXN0SWQoaWRlbnRpZmllcik7Ci0gICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKGFkb3B0UHRyKG5l
dyBDb25zb2xlTWVzc2FnZShOZXR3b3JrTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgcmVxdWVz
dElkKSkpOworICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShDb25zb2xlTWVzc2FnZTo6Y3JlYXRl
TmV0d29ya0NvbnNvbGVNZXNzYWdlKExvYWRpbmdGYWlsZWROZXR3b3JrTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgcmVxdWVz
dElkKSk7CiAgICAgfQogfQogCkBAIC0yNDEsNyArMjQzLDcgQEAgdm9pZCBJbnNwZWN0b3JDb25z
b2xlQWdlbnQ6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
UmVzb3UKICAgICBpZiAoIWVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkuaXNFbXB0eSgpKQog
ICAgICAgICBtZXNzYWdlICs9ICI6ICIgKyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpOwog
ICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVu
dGlmaWVyKTsKLSAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3Nh
Z2UoTmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZl
bCwgbWVzc2FnZSwgZXJyb3IuZmFpbGluZ1VSTCgpLCByZXF1ZXN0SWQpKSk7CisgICAgYWRkQ29u
c29sZU1lc3NhZ2UoQ29uc29sZU1lc3NhZ2U6OmNyZWF0ZU5ldHdvcmtDb25zb2xlTWVzc2FnZShM
b2FkaW5nRmFpbGVkTmV0d29ya01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2Fn
ZSwgZXJyb3IuZmFpbGluZ1VSTCgpLCByZXF1ZXN0SWQpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JD
b25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBl
bmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5oCmluZGV4IDI1NzZhNzRmYzBjNDU0YTBlNjY0OTYxMzMzMTVlMjI0M2E2MzFlZGMuLjU1
NTZhMDkzMDBjNTA5MmJiZWFmZjg3MzY4ODFiMDI1M2I1ZDlkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTc2LDcgKzc2LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqKTsK
IAotICAgIHZvaWQgcmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsK
KyAgICB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVu
c2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lk
IGRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VF
cnJvciYpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA0
OWRkZmM1MzAyZjRhMmRlMWEzNjVhN2EwMzk0MGU2ZTE0NjQ1Yjk4Li45M2Q1ODBiYTA3ZGJjNzQ0
YmExNDNkN2MxNTQ1NjcyZmE2ZDk3Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNTM1LDcgKzUzNSw3IEBA
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsTG9hZGluZ0ltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVuCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5k
VVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcikKIHsKICAgICBpZiAoSW5zcGVjdG9yQ29uc29s
ZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JDb25z
b2xlQWdlbnQoKSkKLSAgICAgICAgY29uc29sZUFnZW50LT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1M
SHR0cFJlcXVlc3QodXJsLCBzZW5kVVJMLCBzZW5kTGluZU51bWJlcik7CisgICAgICAgIGNvbnNv
bGVBZ2VudC0+cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KGlkZW50aWZpZXIsIHVy
bCwgc2VuZFVSTCwgc2VuZExpbmVOdW1iZXIpOwogICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudCgpKQogICAgICAgICByZXNvdXJjZUFnZW50LT5zZXRJbml0aWFsWEhSQ29udGVudChp
ZGVudGlmaWVyLCBzb3VyY2VTdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5kZXggNWY1MGU2NTBhZThlYzlh
NWM2M2ZlYWZmZjgyZWI0MzdmZTE4NDBlOC4uNTRkYzY2OGUyMjdlNzMzMGYxN2Y4NjkzYmMwNzc5
MWU3ZGY1MzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC00NCwxMCArNDQsMTEgQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVTdGFja0ZyYW1lID0gZnVuY3Rpb24oKQogICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVj
dG9yLkNvbnNvbGVTdGFja0ZyYW1lPj19IHN0YWNrVHJhY2UKICAqIEBwYXJhbSB7bnVtYmVyPX0g
cmVxdWVzdAogICovCi1XZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UgPSBmdW5jdGlvbihzb3Vy
Y2UsIHR5cGUsIGxldmVsLCBsaW5lLCB1cmwsIHJlcGVhdENvdW50LCBtZXNzYWdlLCBwYXJhbWV0
ZXJzLCBzdGFja1RyYWNlLCByZXF1ZXN0KQorV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlID0g
ZnVuY3Rpb24oc291cmNlLCB0eXBlLCBuZXR3b3JrTWVzc2FnZVR5cGUsIGxldmVsLCBsaW5lLCB1
cmwsIHJlcGVhdENvdW50LCBtZXNzYWdlLCBwYXJhbWV0ZXJzLCBzdGFja1RyYWNlLCByZXF1ZXN0
KQogewogICAgIHRoaXMuc291cmNlID0gc291cmNlOwogICAgIHRoaXMudHlwZSA9IHR5cGU7Cisg
ICAgdGhpcy5uZXR3b3JrTWVzc2FnZVR5cGUgPSBuZXR3b3JrTWVzc2FnZVR5cGU7CiAgICAgdGhp
cy5sZXZlbCA9IGxldmVsOwogICAgIHRoaXMubGluZSA9IGxpbmU7CiAgICAgdGhpcy51cmwgPSB1
cmw7CkBAIC03Myw3ICs3NCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSA9IGZ1bmN0
aW9uKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIGxpbmUsIHVybCwgcmVwZWF0Q291CiBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuY3JlYXRlVGV4dE1lc3NhZ2UgPSBmdW5jdGlvbih0ZXh0LCBsZXZl
bCkKIHsKICAgICBsZXZlbCA9IGxldmVsIHx8IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5N
ZXNzYWdlTGV2ZWwuTG9nOwotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkNvbnNvbGVBUEks
IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2csIGxldmVsLCAwLCBu
dWxsLCAxLCBudWxsLCBbdGV4dF0sIG51bGwpOworICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNl
LkNvbnNvbGVBUEksIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2cs
IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5OZXR3b3JrTWVzc2FnZVR5cGUuTG9nLCBsZXZl
bCwgMCwgbnVsbCwgMSwgbnVsbCwgW3RleHRdLCBudWxsKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKQEAgLTEwNSwxNyArMTA2LDM1IEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0gZWxzZSBpZiAodGhpcy5zb3VyY2UgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5N
ZXNzYWdlU291cmNlLk5ldHdvcmspIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0KSB7
Ci0gICAgICAgICAgICAgICAgdGhpcy5fc3RhY2tUcmFjZSA9IHRoaXMuX3JlcXVlc3Quc3RhY2tU
cmFjZTsKLSAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsKLSAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLl9yZXF1ZXN0LnJlcXVlc3RNZXRob2QgKyAiICIpKTsK
LSAgICAgICAgICAgICAgICB2YXIgYW5jaG9yID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05v
ZGUodGhpcy5fcmVxdWVzdC51cmwpOwotICAgICAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1
dGUoInJlcXVlc3RfaWQiLCB0aGlzLl9yZXF1ZXN0LnJlcXVlc3RJZCk7Ci0gICAgICAgICAgICAg
ICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgIm5ldHdvcmsiKTsKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChhbmNob3IpOwotICAgICAgICAg
ICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0LmZhaWxlZCkKLSAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZVRleHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiICsgdGhpcy5f
cmVxdWVzdC5sb2NhbGl6ZWRGYWlsRGVzY3JpcHRpb24pKTsKLSAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCIgIiArIHRoaXMuX3JlcXVlc3Quc3RhdHVzQ29kZSArICIgKCIgKyB0aGlz
Ll9yZXF1ZXN0LnN0YXR1c1RleHQgKyAiKSIpKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5u
ZXR3b3JrTWVzc2FnZVR5cGUgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5OZXR3b3Jr
TWVzc2FnZVR5cGUuTG9hZGluZ0ZhaWxlZCkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9z
dGFja1RyYWNlID0gdGhpcy5fcmVxdWVzdC5zdGFja1RyYWNlOworICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUodGhpcy5fcmVxdWVzdC5yZXF1ZXN0TWV0aG9kICsgIiAiKSk7CisgICAgICAgICAgICAgICAg
ICAgIHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh0aGlzLl9yZXF1
ZXN0LnVybCk7CisgICAgICAgICAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInJlcXVl
c3RfaWQiLCB0aGlzLl9yZXF1ZXN0LnJlcXVlc3RJZCk7CisgICAgICAgICAgICAgICAgICAgIGFu
Y2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJuZXR3b3JrIik7CisgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGFuY2hvcik7CisgICAgICAgICAg
ICAgICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0LmZhaWxlZCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIiAr
IHRoaXMuX3JlcXVlc3QubG9jYWxpemVkRmFpbERlc2NyaXB0aW9uKSk7CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIiArIHRoaXMuX3JlcXVlc3Quc3RhdHVzQ29k
ZSArICIgKCIgKyB0aGlzLl9yZXF1ZXN0LnN0YXR1c1RleHQgKyAiKSIpKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIGxpbmtpZmllcih0aXRsZSwgdXJsLCBsaW5lTnVtYmVyKQorICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNFeHRlcm5h
bCA9ICF0aGlzLl9yZXF1ZXN0OworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFuY2hvciA9
IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHVybCwgdGl0bGUsIG51bGwsIGlzRXh0ZXJu
YWwpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3JlcXVlc3QpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJyZXF1ZXN0X2lkIiwg
dGhpcy5fcmVxdWVzdC5yZXF1ZXN0SWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFu
Y2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJuZXR3b3JrIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW5jaG9y
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgICAgICB2YXIgZnJhZ21lbnQgPSBXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJh
Z21lbnRXaXRoQ3VzdG9tTGlua2lmaWVyKHRoaXMuX21lc3NhZ2VUZXh0LCBsaW5raWZpZXIuYmlu
ZCh0aGlzKSk7CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGZy
YWdtZW50KTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIHZhciBpc0V4dGVybmFsID0gIVdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTCh0
aGlzLnVybCk7CiAgICAgICAgICAgICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5r
aWZ5VVJMQXNOb2RlKHRoaXMudXJsLCB0aGlzLnVybCwgImNvbnNvbGUtbWVzc2FnZS11cmwiLCBp
c0V4dGVybmFsKTsKQEAgLTQ3OSw2ICs0OTgsMTIgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8vTm90ZTogS2VlcCB0aGVzZSBpbiBzeW5j
IHdpdGggdGhlIG9uZXMgaW4gQ29uc29sZU1lc3NhZ2UuaAorV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlLk5ldHdvcmtNZXNzYWdlVHlwZSA9IHsKKyAgICAgICAgTG9hZGluZ0ZhaWxlZDogImxv
YWRpbmdGYWlsZWQiLAorICAgICAgICBMb2c6ICJsb2ciCisgICAgfQorCiAvLyBOb3RlOiBLZWVw
IHRoZXNlIGNvbnN0YW50cyBpbiBzeW5jIHdpdGggdGhlIG9uZXMgaW4gQ29uc29sZS5oCiBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZSA9IHsKICAgICBIVE1MOiAiaHRt
bCIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNv
bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1v
ZGVsLmpzCmluZGV4IDdhYmE3Nzg1OGQ3YTllNGViMjQ3NjI3NjkzYjkyYTA4NjQ5YTc2OGUuLjA2
Yjk0OTFjY2Y0ODQyZjI1MzFmNjU1NTcxMWMyNjMyNjQ5ZTYzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCkBAIC0xMjQsNyAr
MTI0LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICB0aGlzLl9pbmNyZW1lbnRFcnJvcldhcm5pbmdDb3VudChtc2cpOwogICAgICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5F
dmVudHMuUmVwZWF0Q291bnRVcGRhdGVkLCBtc2cpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgdmFyIG1zZ0NvcHkgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKG1zZy5z
b3VyY2UsIG1zZy50eXBlLCBtc2cubGV2ZWwsIG1zZy5saW5lLCBtc2cudXJsLCBjb3VudCAtIHBy
ZXZSZXBlYXRDb3VudCwgbXNnLl9tZXNzYWdlVGV4dCwgbXNnLl9wYXJhbWV0ZXJzLCBtc2cuX3N0
YWNrVHJhY2UsIG1zZy5fcmVxdWVzdCk7CisgICAgICAgICAgICB2YXIgbXNnQ29weSA9IG5ldyBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UobXNnLnNvdXJjZSwgbXNnLnR5cGUsIG1zZy5uZXR3
b3JrTWVzc2FnZVR5cGUsIG1zZy5sZXZlbCwgbXNnLmxpbmUsIG1zZy51cmwsIGNvdW50IC0gcHJl
dlJlcGVhdENvdW50LCBtc2cuX21lc3NhZ2VUZXh0LCBtc2cuX3BhcmFtZXRlcnMsIG1zZy5fc3Rh
Y2tUcmFjZSwgbXNnLl9yZXF1ZXN0KTsKICAgICAgICAgICAgIG1zZ0NvcHkudG90YWxSZXBlYXRD
b3VudCA9IGNvdW50OwogICAgICAgICAgICAgbXNnQ29weS5fZm9ybWF0TWVzc2FnZSgpOwogICAg
ICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKG1zZ0NvcHkpOwpAQCAtMTUwLDYgKzE1MCw3IEBAIFdl
Ykluc3BlY3Rvci5Db25zb2xlRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBj
b25zb2xlTWVzc2FnZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UoCiAgICAgICAg
ICAgICBwYXlsb2FkLnNvdXJjZSwKICAgICAgICAgICAgIHBheWxvYWQudHlwZSwKKyAgICAgICAg
ICAgIHBheWxvYWQubmV0d29ya01lc3NhZ2VUeXBlLAogICAgICAgICAgICAgcGF5bG9hZC5sZXZl
bCwKICAgICAgICAgICAgIHBheWxvYWQubGluZSwKICAgICAgICAgICAgIHBheWxvYWQudXJsLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmll
dy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMK
aW5kZXggNjE3M2NlOTAzYTk0YjZkZWVkMDY5NGVkZThmOWNjYmUxMjAxYmY2NS4uODE5ODg3NzE5
MjJlODc0OTUwMjU3NDRhNWVkNDE2YTYwY2MwYzQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC03NzAsNyArNzcwLDcgQEAg
V2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0ID0gZnVuY3Rpb24ocmVzdWx0LCB3YXNU
aHJvd24sIG9yaWdpbmF0aW5nQ29tbWEKIHsKICAgICB2YXIgbGV2ZWwgPSAod2FzVGhyb3duID8g
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5FcnJvciA6IFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTG9nKTsKICAgICB0aGlzLm9yaWdpbmF0
aW5nQ29tbWFuZCA9IG9yaWdpbmF0aW5nQ29tbWFuZDsKLSAgICBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNv
dXJjZS5KUywgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlJlc3VsdCwg
bGV2ZWwsIC0xLCBudWxsLCAxLCBudWxsLCBbcmVzdWx0XSk7CisgICAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VTb3VyY2UuSlMsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5SZXN1
bHQsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5OZXR3b3JrTWVzc2FnZVR5cGUuTG9nLCBs
ZXZlbCwgLTEsIG51bGwsIDEsIG51bGwsIFtyZXN1bHRdKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNv
bnNvbGVDb21tYW5kUmVzdWx0LnByb3RvdHlwZSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXggZTYyN2EyNDVi
OGJiYWUxNmE2Y2NiMmFmZDk3YzExODlkNjdkZmEyZi4uZTIwY2UxNzg1ODhkY2FiNWU4M2NiYzU1
YmI3MTllNTY1NWRiNmZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTMxMSw2ICszMTEsNyBAQCBXZWJJbnNw
ZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNvbnNvbGVN
ZXNzYWdlID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSgKICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkpTLAogICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkxvZywKKyAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5OZXR3b3JrTWVzc2FnZVR5cGUuTG9nLAogICAg
ICAgICAgICAgbGV2ZWwsCiAgICAgICAgICAgICBtZXNzYWdlLmxpbmUsCiAgICAgICAgICAgICBt
ZXNzYWdlLnVybCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmV0d29ya01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtNYW5hZ2VyLmpzCmluZGV4IDM0NDZhNmQ5NDExMGQ3N2M1MzIyZGIwYWMwZjZhNzY5
Y2YwZmYxOGIuLjE3ZTIwNzRjMjExYWNkMDE1MWE1Njk5OWMyNjc0ODA1MzBkODE0YzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdl
ci5qcwpAQCAtMTI5LDYgKzEyOSw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5fbWltZVR5cGVJc0NvbnNpc3RlbnRXaXRo
VHlwZShyZXNvdXJjZSkpIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZE1l
c3NhZ2UobmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZShXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5PdGhlciwKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuTG9nLAorICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5OZXR3b3JrTWVzc2FnZVR5cGUuTG9nLAogICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZywK
ICAgICAgICAgICAgICAgICAtMSwKICAgICAgICAgICAgICAgICB0aGlzLnVybCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmlu
ZGV4IDc3M2FkYmY5ODZkNzE4OWRlNjg0MDFhZTFiMTgxZGJmYWY2YTg0MDAuLjNhODU2YjdhMTQw
NzM4ZDhkYTViNWZjYTA2NGMyMDA5YWI3YjMzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtMzI3LDE0ICszMjcs
NiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgIHNob3dB
bmNob3JMb2NhdGlvbjogZnVuY3Rpb24oYW5jaG9yKQogICAgIHsKICAgICAgICAgdmFyIHJlc291
cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKGFuY2hvci5ocmVmKTsKLSAgICAgICAg
aWYgKHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlhIUikgewot
ICAgICAgICAgICAgLy8gU2hvdyBYSFJzIGluIHRoZSBuZXR3b3JrIHBhbmVsIG9ubHkuCi0gICAg
ICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrICYmIFdlYkluc3BlY3Rvci5w
YW5lbHMubmV0d29yay5jYW5TaG93QW5jaG9yTG9jYXRpb24oYW5jaG9yKSkgewotICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50UGFuZWwoV2ViSW5zcGVjdG9yLnBhbmVscy5u
ZXR3b3JrKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuc2hv
d0FuY2hvckxvY2F0aW9uKGFuY2hvcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBhbmNob3IuaGFzQXR0cmli
dXRlKCJsaW5lX251bWJlciIpID8gcGFyc2VJbnQoYW5jaG9yLmdldEF0dHJpYnV0ZSgibGluZV9u
dW1iZXIiKSkgOiB1bmRlZmluZWQ7CiAgICAgICAgIHRoaXMuc2hvd1Jlc291cmNlKHJlc291cmNl
LCBsaW5lTnVtYmVyKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBjMWRmOTdhOWJiY2ZjNmNiNWUxNTA3ODc3ODU5ZGU5
YTkyMzkxY2FlLi41ZWE2NTQ4ZGE1OWI4N2U4YjcwN2ViNWM5MmVmZTA3MGZhMWI3MWU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAt
MTEyNSw2ICsxMTI1LDcgQEAgV2ViSW5zcGVjdG9yLmxvZyA9IGZ1bmN0aW9uKG1lc3NhZ2UsIG1l
c3NhZ2VMZXZlbCkKICAgICAgICAgdmFyIG1zZyA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZU1l
c3NhZ2UoCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNv
dXJjZS5PdGhlciwKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNz
YWdlVHlwZS5Mb2csCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTmV0
d29ya01lc3NhZ2VUeXBlLkxvZywKICAgICAgICAgICAgIG1lc3NhZ2VMZXZlbCB8fCBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkRlYnVnLAogICAgICAgICAgICAgLTEs
CiAgICAgICAgICAgICBudWxsLApAQCAtMTIzMyw3ICsxMjM0LDcgQEAgV2ViSW5zcGVjdG9yLl9z
aG93QW5jaG9yTG9jYXRpb25JblBhbmVsID0gZnVuY3Rpb24oYW5jaG9yLCBwYW5lbCkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50ID0g
ZnVuY3Rpb24oc3RyaW5nKQorV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50V2l0
aEN1c3RvbUxpbmtpZmllciA9IGZ1bmN0aW9uKHN0cmluZywgbGlua2lmaWVyKQogewogICAgIHZh
ciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CiAgICAgdmFy
IGxpbmtTdHJpbmdSZWdFeCA9IC8oPzpbYS16QS1aXVthLXpBLVowLTkrLi1dezIsfTpcL1wvfHd3
d1wuKVtcdyRcLV8rKic9XHxcL1xcKCl7fVtcXSVAJiN+LDo7LiE/XXsyLH1bXHckXC1fKyo9XHxc
L1xcKHslQCYjfl0vOwpAQCAtMTI0NSwyNyArMTI0NiwxOCBAQCBXZWJJbnNwZWN0b3IubGlua2lm
eVN0cmluZ0FzRnJhZ21lbnQgPSBmdW5jdGlvbihzdHJpbmcpCiAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICBsaW5rU3RyaW5nID0gbGlua1N0cmluZ1swXTsKLSAgICAgICAgdmFyIHRpdGxl
ID0gbGlua1N0cmluZzsKICAgICAgICAgdmFyIGxpbmtJbmRleCA9IHN0cmluZy5pbmRleE9mKGxp
bmtTdHJpbmcpOwogICAgICAgICB2YXIgbm9uTGluayA9IHN0cmluZy5zdWJzdHJpbmcoMCwgbGlu
a0luZGV4KTsKICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKG5vbkxpbmspKTsKIAotICAgICAgICB2YXIgcHJvZmlsZVN0cmluZ01hdGNoZXMgPSBX
ZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuVVJMUmVnRXhwLmV4ZWModGl0bGUpOwotICAgICAgICBp
ZiAocHJvZmlsZVN0cmluZ01hdGNoZXMpCi0gICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMucHJvZmlsZXMuZGlzcGxheVRpdGxlRm9yUHJvZmlsZUxpbmsocHJvZmlsZVN0cmlu
Z01hdGNoZXNbMl0sIHByb2ZpbGVTdHJpbmdNYXRjaGVzWzFdKTsKLQorICAgICAgICB2YXIgdGl0
bGUgPSBsaW5rU3RyaW5nOwogICAgICAgICB2YXIgcmVhbFVSTCA9IChsaW5rU3RyaW5nLmluZGV4
T2YoInd3dy4iKSA9PT0gMCA/ICJodHRwOi8vIiArIGxpbmtTdHJpbmcgOiBsaW5rU3RyaW5nKTsK
ICAgICAgICAgdmFyIGxpbmVDb2x1bW5NYXRjaCA9IGxpbmVDb2x1bW5SZWdFeC5leGVjKHJlYWxV
UkwpOwogICAgICAgICBpZiAobGluZUNvbHVtbk1hdGNoKQogICAgICAgICAgICAgcmVhbFVSTCA9
IHJlYWxVUkwuc3Vic3RyaW5nKDAsIHJlYWxVUkwubGVuZ3RoIC0gbGluZUNvbHVtbk1hdGNoWzBd
Lmxlbmd0aCk7CiAKLSAgICAgICAgdmFyIGhhc1Jlc291cmNlV2l0aFVSTCA9ICEhV2ViSW5zcGVj
dG9yLnJlc291cmNlRm9yVVJMKHJlYWxVUkwpOwotICAgICAgICB2YXIgdXJsTm9kZSA9IFdlYklu
c3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHJlYWxVUkwsIHRpdGxlLCBudWxsLCBoYXNSZXNvdXJj
ZVdpdGhVUkwpOwotICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQodXJsTm9kZSk7Ci0gICAg
ICAgIGlmIChsaW5lQ29sdW1uTWF0Y2gpIHsKLSAgICAgICAgICAgIHVybE5vZGUuc2V0QXR0cmli
dXRlKCJsaW5lX251bWJlciIsIGxpbmVDb2x1bW5NYXRjaFsxXSk7Ci0gICAgICAgICAgICB1cmxO
b2RlLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsKLSAgICAgICAg
fQorICAgICAgICB2YXIgbGlua05vZGUgPSBsaW5raWZpZXIodGl0bGUsIHJlYWxVUkwsIGxpbmVD
b2x1bW5NYXRjaCA/IGxpbmVDb2x1bW5NYXRjaFsxXSA6IHVuZGVmaW5lZCk7CisgICAgICAgIGNv
bnRhaW5lci5hcHBlbmRDaGlsZChsaW5rTm9kZSk7CiAgICAgICAgIHN0cmluZyA9IHN0cmluZy5z
dWJzdHJpbmcobGlua0luZGV4ICsgbGlua1N0cmluZy5sZW5ndGgsIHN0cmluZy5sZW5ndGgpOwog
ICAgIH0KIApAQCAtMTI3NSw2ICsxMjY3LDI3IEBAIFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5n
QXNGcmFnbWVudCA9IGZ1bmN0aW9uKHN0cmluZykKICAgICByZXR1cm4gY29udGFpbmVyOwogfQog
CitXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQgPSBmdW5jdGlvbihzdHJpbmcp
Cit7CisgICAgZnVuY3Rpb24gbGlua2lmaWVyKHRpdGxlLCB1cmwsIGxpbmVOdW1iZXIpCisgICAg
eworICAgICAgICB2YXIgcHJvZmlsZVN0cmluZ01hdGNoZXMgPSBXZWJJbnNwZWN0b3IuUHJvZmls
ZVR5cGUuVVJMUmVnRXhwLmV4ZWModGl0bGUpOworICAgICAgICBpZiAocHJvZmlsZVN0cmluZ01h
dGNoZXMpCisgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMu
ZGlzcGxheVRpdGxlRm9yUHJvZmlsZUxpbmsocHJvZmlsZVN0cmluZ01hdGNoZXNbMl0sIHByb2Zp
bGVTdHJpbmdNYXRjaGVzWzFdKTsKKworICAgICAgICB2YXIgaXNFeHRlcm5hbCA9ICFXZWJJbnNw
ZWN0b3IucmVzb3VyY2VGb3JVUkwodXJsKTsKKyAgICAgICAgdmFyIHVybE5vZGUgPSBXZWJJbnNw
ZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1cmwsIHRpdGxlLCBudWxsLCBpc0V4dGVybmFsKTsKKyAg
ICAgICAgaWYgKHR5cGVvZihsaW5lTnVtYmVyKSAhPT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAg
ICAgIHVybE5vZGUuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxpbmVOdW1iZXIpOworICAg
ICAgICAgICAgdXJsTm9kZS5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJzY3JpcHRz
Iik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB1cmxOb2RlOyAKKyAgICB9
CisgICAgCisgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudFdp
dGhDdXN0b21MaW5raWZpZXIoc3RyaW5nLCBsaW5raWZpZXIpOworfQorCiBXZWJJbnNwZWN0b3Iu
c2hvd1Byb2ZpbGVGb3JVUkwgPSBmdW5jdGlvbih1cmwpCiB7CiAgICAgV2ViSW5zcGVjdG9yLnNo
b3dQYW5lbCgicHJvZmlsZXMiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108329</attachid>
            <date>2011-09-22 07:26:13 -0700</date>
            <delta_ts>2011-09-26 05:49:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67399-20110922182611.patch</filename>
            <type>text/plain</type>
            <size>14800</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3MTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZGEwM2UyZDQxY2RiYTMy
ZWNhNDhjMGQ1NTA1MGMzOTMzMGU2OTdlLi44YjA1MzdiYjAzNzhlZTQ0MjlkNzJlM2I0Nzk0MGJl
NDk5N2UyODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDktMjIgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogWE1MSHR0cFJlcXVlc3QgY29uc29sZSBsb2dnaW5nIG1lc3NhZ2VzIHNob3VsZCBsaW5rIHRv
IG5ldHdvcmsgcGFuZWwgd2hlbiBwb3NzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3Mzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVB
Z2VudDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdEltcGwpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLl9mb3JtYXRNZXNzYWdlLmVsc2Uu
ZWxzZS5saW5raWZpZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnBy
b3RvdHlwZS5fZm9ybWF0TWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUuc2hvd0FuY2hvckxvY2F0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNG
cmFnbWVudFdpdGhDdXN0b21MaW5raWZpZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxpbmtp
ZnlTdHJpbmdBc0ZyYWdtZW50KToKKwogMjAxMS0wOS0yMiAgQWxwaGEgTGFtICA8aGNsYW1AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02ODA4MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAK
aW5kZXggZDQ0YTQ5NTkwODM0MzA5MjNhN2UxMTE3ZDY2M2E0Yzk4NjZiMmM1OC4uNjJkNjM5NGY2
MDFlOTlkMjVkOTk5YmQ3ZmZlNjE1ZGIyZmE3NWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ug
cywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWdu
ZWQgbGksIGNvbnN0IFN0cmluZyYgdSkKK0NvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJp
bmcmIG0sIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUsIGNvbnN0IFN0cmluZyYgcmVxdWVz
dElkKQogICAgIDogbV9zb3VyY2UocykKICAgICAsIG1fdHlwZSh0KQogICAgICwgbV9sZXZlbChs
KQpAQCAtNTIsNiArNTIsNyBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgYwogICAgICwgbV9saW5l
KGxpKQogICAgICwgbV91cmwodSkKICAgICAsIG1fcmVwZWF0Q291bnQoMSkKKyAgICAsIG1fcmVx
dWVzdElkKHJlcXVlc3RJZCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29s
ZU1lc3NhZ2UuaAppbmRleCBjMGIyNTg4OTg0NWI0Y2JjOWI0ZmJhZjA1Njc5NTQwODU4ZTRiOTJm
Li44ODM1NGQwZjAyNGFhMDU0ZjQwNDU5ODViZjY4YjNlYjJkMGVhODEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBT
Y3JpcHRWYWx1ZTsKIGNsYXNzIENvbnNvbGVNZXNzYWdlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShDb25zb2xlTWVzc2FnZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGksIGNvbnN0IFN0cmluZyYgdSk7CisgICAg
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtLCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCBjb25zdCBTdHJp
bmcmIHJlcXVlc3RJZCA9IFN0cmluZygpKTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIFBhc3NSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG0sIGNvbnN0IFN0cmluZyYgcmVzcG9uc2VVcmwsIGNvbnN0IFN0cmluZyYg
cmVxdWVzdElkKTsKICAgICB+Q29uc29sZU1lc3NhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggOTFlNDAyN2Y3YjUz
OWE3ZjRkZTcwMWZjYWU1MzQ1YWRjNDhjODMwNi4uMjY3NjJmOGE5NDlmYzIxN2M4MzYyYTM4YjAx
MDFmNmUxMmUxNGU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTIxMSwxMiArMjExLDE3IEBAIHZvaWQgSW5zcGVjdG9y
Q29uc29sZUFnZW50OjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqIHdpbmRvdykKICAg
ICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+ZGlzY2FyZEluamVjdGVkU2NyaXB0c0Zvcih3aW5k
b3cpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRyaWV2ZWRC
eVhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkws
IHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnJl
c291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRM
aW5lTnVtYmVyKQogewogICAgIGlmICghbV9pbnNwZWN0b3JBZ2VudC0+ZW5hYmxlZCgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKG1faW5zcGVjdG9yU3RhdGUtPmdldEJvb2xlYW4oQ29uc29s
ZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKQotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xl
KEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgIlhIUiBm
aW5pc2hlZCBsb2FkaW5nOiBcIiIgKyB1cmwgKyAiXCIuIiwgc2VuZExpbmVOdW1iZXIsIHNlbmRV
UkwpOworICAgIGlmIChtX2Zyb250ZW5kICYmIG1faW5zcGVjdG9yU3RhdGUtPmdldEJvb2xlYW4o
Q29uc29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKSB7CisgICAgICAgIFN0cmluZyBtZXNz
YWdlID0gIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyB1cmwgKyAiXCIuIjsKKyAgICAgICAg
U3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZp
ZXIpOworICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3Nh
Z2UoTmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UsIHNlbmRMaW5lTnVtYmVyLCBzZW5kVVJMLCByZXF1ZXN0SWQpKSk7CisgICAgfQor
CisKIH0KIAogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5o
CmluZGV4IDI1NzZhNzRmYzBjNDU0YTBlNjY0OTYxMzMzMTVlMjI0M2E2MzFlZGMuLjU1NTZhMDkz
MDBjNTA5MmJiZWFmZjg3MzY4ODFiMDI1M2I1ZDlkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqKTsKIAotICAg
IHZvaWQgcmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKKyAgICB2
b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVk
IHNlbmRMaW5lTnVtYmVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRpZEZh
aWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYp
OwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA0OWRkZmM1
MzAyZjRhMmRlMWEzNjVhN2EwMzk0MGU2ZTE0NjQ1Yjk4Li45M2Q1ODBiYTA3ZGJjNzQ0YmExNDNk
N2MxNTQ1NjcyZmE2ZDk3Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNTM1LDcgKzUzNSw3IEBAIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVuCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cmVzb3Vy
Y2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1
bnNpZ25lZCBzZW5kTGluZU51bWJlcikKIHsKICAgICBpZiAoSW5zcGVjdG9yQ29uc29sZUFnZW50
KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JDb25zb2xlQWdl
bnQoKSkKLSAgICAgICAgY29uc29sZUFnZW50LT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJl
cXVlc3QodXJsLCBzZW5kVVJMLCBzZW5kTGluZU51bWJlcik7CisgICAgICAgIGNvbnNvbGVBZ2Vu
dC0+cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KGlkZW50aWZpZXIsIHVybCwgc2Vu
ZFVSTCwgc2VuZExpbmVOdW1iZXIpOwogICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiBy
ZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dCgpKQogICAgICAgICByZXNvdXJjZUFnZW50LT5zZXRJbml0aWFsWEhSQ29udGVudChpZGVudGlm
aWVyLCBzb3VyY2VTdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5kZXggNWY1MGU2NTBhZThlYzlhNWM2M2Zl
YWZmZjgyZWI0MzdmZTE4NDBlOC4uMDU2NTgzZTE3ZjVjNDU2ZjBiYzAzMzY3NzkwYzZmMWIyODQ2
M2RjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVNZXNzYWdlLmpzCkBAIC0xMDUsMTcgKzEwNSwzNSBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYg
KHRoaXMuc291cmNlID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJj
ZS5OZXR3b3JrKSB7CiAgICAgICAgICAgICBpZiAodGhpcy5fcmVxdWVzdCkgewotICAgICAgICAg
ICAgICAgIHRoaXMuX3N0YWNrVHJhY2UgPSB0aGlzLl9yZXF1ZXN0LnN0YWNrVHJhY2U7Ci0gICAg
ICAgICAgICAgICAgbWVzc2FnZVRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
Ci0gICAgICAgICAgICAgICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUodGhpcy5fcmVxdWVzdC5yZXF1ZXN0TWV0aG9kICsgIiAiKSk7Ci0gICAgICAgICAg
ICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHRoaXMuX3Jl
cXVlc3QudXJsKTsKLSAgICAgICAgICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJyZXF1ZXN0
X2lkIiwgdGhpcy5fcmVxdWVzdC5yZXF1ZXN0SWQpOwotICAgICAgICAgICAgICAgIGFuY2hvci5z
ZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJuZXR3b3JrIik7Ci0gICAgICAgICAgICAg
ICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQoYW5jaG9yKTsKLSAgICAgICAgICAgICAgICBpZiAo
dGhpcy5fcmVxdWVzdC5mYWlsZWQpCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIiArIHRoaXMuX3JlcXVlc3QubG9j
YWxpemVkRmFpbERlc2NyaXB0aW9uKSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiICIgKyB0aGlzLl9yZXF1ZXN0LnN0YXR1c0NvZGUgKyAiICgiICsgdGhpcy5fcmVxdWVzdC5z
dGF0dXNUZXh0ICsgIikiKSk7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMubGV2ZWwgPT09IFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRXJyb3IpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fc3RhY2tUcmFjZSA9IHRoaXMuX3JlcXVlc3Quc3RhY2tUcmFjZTsK
KyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzcGFuIik7CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMuX3JlcXVlc3QucmVxdWVzdE1ldGhvZCArICIgIikp
OworICAgICAgICAgICAgICAgICAgICB2YXIgYW5jaG9yID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlV
UkxBc05vZGUodGhpcy5fcmVxdWVzdC51cmwpOworICAgICAgICAgICAgICAgICAgICBhbmNob3Iu
c2V0QXR0cmlidXRlKCJyZXF1ZXN0X2lkIiwgdGhpcy5fcmVxdWVzdC5yZXF1ZXN0SWQpOworICAg
ICAgICAgICAgICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJwcmVmZXJyZWRfcGFuZWwiLCAi
bmV0d29yayIpOworICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChh
bmNob3IpOworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcmVxdWVzdC5mYWlsZWQpCisg
ICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiICIgKyB0aGlzLl9yZXF1ZXN0LmxvY2FsaXplZEZhaWxEZXNjcmlwdGlv
bikpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIgKyB0aGlz
Ll9yZXF1ZXN0LnN0YXR1c0NvZGUgKyAiICgiICsgdGhpcy5fcmVxdWVzdC5zdGF0dXNUZXh0ICsg
IikiKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZVRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBsaW5raWZpZXIodGl0bGUsIHVy
bCwgbGluZU51bWJlcikKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIGlzRXh0ZXJuYWwgPSAhdGhpcy5fcmVxdWVzdDsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1cmwsIHRp
dGxlLCBudWxsLCBpc0V4dGVybmFsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlz
Ll9yZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJp
YnV0ZSgicmVxdWVzdF9pZCIsIHRoaXMuX3JlcXVlc3QucmVxdWVzdElkKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJwcmVmZXJyZWRfcGFuZWwiLCAi
bmV0d29yayIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGFuY2hvcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgdmFyIGZyYWdtZW50ID0gV2ViSW5zcGVjdG9y
LmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50V2l0aEN1c3RvbUxpbmtpZmllcih0aGlzLl9tZXNzYWdl
VGV4dCwgbGlua2lmaWVyLmJpbmQodGhpcykpOworICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
VGV4dC5hcHBlbmRDaGlsZChmcmFnbWVudCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICB2YXIgaXNFeHRlcm5hbCA9ICFXZWJJbnNwZWN0
b3IucmVzb3VyY2VGb3JVUkwodGhpcy51cmwpOwogICAgICAgICAgICAgICAgIHZhciBhbmNob3Ig
PSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh0aGlzLnVybCwgdGhpcy51cmwsICJjb25z
b2xlLW1lc3NhZ2UtdXJsIiwgaXNFeHRlcm5hbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCA3NzNhZGJmOTg2ZDcx
ODlkZTY4NDAxYWUxYjE4MWRiZmFmNmE4NDAwLi4zYTg1NmI3YTE0MDczOGQ4ZGE1YjVmY2EwNjRj
MjAwOWFiN2IzMzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTMyNywxNCArMzI3LDYgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBzaG93QW5jaG9yTG9jYXRpb246IGZ1
bmN0aW9uKGFuY2hvcikKICAgICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rv
ci5yZXNvdXJjZUZvclVSTChhbmNob3IuaHJlZik7Ci0gICAgICAgIGlmIChyZXNvdXJjZS50eXBl
ID09PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5YSFIpIHsKLSAgICAgICAgICAgIC8vIFNo
b3cgWEhScyBpbiB0aGUgbmV0d29yayBwYW5lbCBvbmx5LgotICAgICAgICAgICAgaWYgKFdlYklu
c3BlY3Rvci5wYW5lbHMubmV0d29yayAmJiBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuY2Fu
U2hvd0FuY2hvckxvY2F0aW9uKGFuY2hvcikpIHsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3Iuc2V0Q3VycmVudFBhbmVsKFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yayk7Ci0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLnNob3dBbmNob3JMb2NhdGlvbihh
bmNob3IpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAg
ICAgICAgIHZhciBsaW5lTnVtYmVyID0gYW5jaG9yLmhhc0F0dHJpYnV0ZSgibGluZV9udW1iZXIi
KSA/IHBhcnNlSW50KGFuY2hvci5nZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIikpIDogdW5kZWZp
bmVkOwogICAgICAgICB0aGlzLnNob3dSZXNvdXJjZShyZXNvdXJjZSwgbGluZU51bWJlcik7CiAg
ICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKaW5kZXggYzFkZjk3YTliYmNmYzZjYjVlMTUwNzg3Nzg1OWRlOWE5MjM5MWNhZS4uODIxY2Yw
MjgyOWFmYzg5YTJkYmM5NWQzZTJkNGZiYzY2NmM2N2FjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTEyMzMsNyArMTIzMyw3IEBA
IFdlYkluc3BlY3Rvci5fc2hvd0FuY2hvckxvY2F0aW9uSW5QYW5lbCA9IGZ1bmN0aW9uKGFuY2hv
ciwgcGFuZWwpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVdlYkluc3BlY3Rvci5saW5raWZ5U3Ry
aW5nQXNGcmFnbWVudCA9IGZ1bmN0aW9uKHN0cmluZykKK1dlYkluc3BlY3Rvci5saW5raWZ5U3Ry
aW5nQXNGcmFnbWVudFdpdGhDdXN0b21MaW5raWZpZXIgPSBmdW5jdGlvbihzdHJpbmcsIGxpbmtp
ZmllcikKIHsKICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFn
bWVudCgpOwogICAgIHZhciBsaW5rU3RyaW5nUmVnRXggPSAvKD86W2EtekEtWl1bYS16QS1aMC05
Ky4tXXsyLH06XC9cL3x3d3dcLilbXHckXC1fKyonPVx8XC9cXCgpe31bXF0lQCYjfiw6Oy4hP117
Mix9W1x3JFwtXysqPVx8XC9cXCh7JUAmI35dLzsKQEAgLTEyNDUsMjcgKzEyNDUsMTggQEAgV2Vi
SW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50ID0gZnVuY3Rpb24oc3RyaW5nKQogICAg
ICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgbGlua1N0cmluZyA9IGxpbmtTdHJpbmdbMF07Ci0g
ICAgICAgIHZhciB0aXRsZSA9IGxpbmtTdHJpbmc7CiAgICAgICAgIHZhciBsaW5rSW5kZXggPSBz
dHJpbmcuaW5kZXhPZihsaW5rU3RyaW5nKTsKICAgICAgICAgdmFyIG5vbkxpbmsgPSBzdHJpbmcu
c3Vic3RyaW5nKDAsIGxpbmtJbmRleCk7CiAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShub25MaW5rKSk7CiAKLSAgICAgICAgdmFyIHByb2ZpbGVT
dHJpbmdNYXRjaGVzID0gV2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlLlVSTFJlZ0V4cC5leGVjKHRp
dGxlKTsKLSAgICAgICAgaWYgKHByb2ZpbGVTdHJpbmdNYXRjaGVzKQotICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLmRpc3BsYXlUaXRsZUZvclByb2ZpbGVM
aW5rKHByb2ZpbGVTdHJpbmdNYXRjaGVzWzJdLCBwcm9maWxlU3RyaW5nTWF0Y2hlc1sxXSk7Ci0K
KyAgICAgICAgdmFyIHRpdGxlID0gbGlua1N0cmluZzsKICAgICAgICAgdmFyIHJlYWxVUkwgPSAo
bGlua1N0cmluZy5pbmRleE9mKCJ3d3cuIikgPT09IDAgPyAiaHR0cDovLyIgKyBsaW5rU3RyaW5n
IDogbGlua1N0cmluZyk7CiAgICAgICAgIHZhciBsaW5lQ29sdW1uTWF0Y2ggPSBsaW5lQ29sdW1u
UmVnRXguZXhlYyhyZWFsVVJMKTsKICAgICAgICAgaWYgKGxpbmVDb2x1bW5NYXRjaCkKICAgICAg
ICAgICAgIHJlYWxVUkwgPSByZWFsVVJMLnN1YnN0cmluZygwLCByZWFsVVJMLmxlbmd0aCAtIGxp
bmVDb2x1bW5NYXRjaFswXS5sZW5ndGgpOwogCi0gICAgICAgIHZhciBoYXNSZXNvdXJjZVdpdGhV
UkwgPSAhIVdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChyZWFsVVJMKTsKLSAgICAgICAgdmFy
IHVybE5vZGUgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZShyZWFsVVJMLCB0aXRsZSwg
bnVsbCwgaGFzUmVzb3VyY2VXaXRoVVJMKTsKLSAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxk
KHVybE5vZGUpOwotICAgICAgICBpZiAobGluZUNvbHVtbk1hdGNoKSB7Ci0gICAgICAgICAgICB1
cmxOb2RlLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiLCBsaW5lQ29sdW1uTWF0Y2hbMV0pOwot
ICAgICAgICAgICAgdXJsTm9kZS5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJzY3Jp
cHRzIik7Ci0gICAgICAgIH0KKyAgICAgICAgdmFyIGxpbmtOb2RlID0gbGlua2lmaWVyKHRpdGxl
LCByZWFsVVJMLCBsaW5lQ29sdW1uTWF0Y2ggPyBsaW5lQ29sdW1uTWF0Y2hbMV0gOiB1bmRlZmlu
ZWQpOworICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQobGlua05vZGUpOwogICAgICAgICBz
dHJpbmcgPSBzdHJpbmcuc3Vic3RyaW5nKGxpbmtJbmRleCArIGxpbmtTdHJpbmcubGVuZ3RoLCBz
dHJpbmcubGVuZ3RoKTsKICAgICB9CiAKQEAgLTEyNzUsNiArMTI2NiwyNyBAQCBXZWJJbnNwZWN0
b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQgPSBmdW5jdGlvbihzdHJpbmcpCiAgICAgcmV0dXJu
IGNvbnRhaW5lcjsKIH0KIAorV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50ID0g
ZnVuY3Rpb24oc3RyaW5nKQoreworICAgIGZ1bmN0aW9uIGxpbmtpZmllcih0aXRsZSwgdXJsLCBs
aW5lTnVtYmVyKQorICAgIHsKKyAgICAgICAgdmFyIHByb2ZpbGVTdHJpbmdNYXRjaGVzID0gV2Vi
SW5zcGVjdG9yLlByb2ZpbGVUeXBlLlVSTFJlZ0V4cC5leGVjKHRpdGxlKTsKKyAgICAgICAgaWYg
KHByb2ZpbGVTdHJpbmdNYXRjaGVzKQorICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3Iu
cGFuZWxzLnByb2ZpbGVzLmRpc3BsYXlUaXRsZUZvclByb2ZpbGVMaW5rKHByb2ZpbGVTdHJpbmdN
YXRjaGVzWzJdLCBwcm9maWxlU3RyaW5nTWF0Y2hlc1sxXSk7CisKKyAgICAgICAgdmFyIGlzRXh0
ZXJuYWwgPSAhV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHVybCk7CisgICAgICAgIHZhciB1
cmxOb2RlID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUodXJsLCB0aXRsZSwgbnVsbCwg
aXNFeHRlcm5hbCk7CisgICAgICAgIGlmICh0eXBlb2YobGluZU51bWJlcikgIT09ICJ1bmRlZmlu
ZWQiKSB7CisgICAgICAgICAgICB1cmxOb2RlLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiLCBs
aW5lTnVtYmVyKTsKKyAgICAgICAgICAgIHVybE5vZGUuc2V0QXR0cmlidXRlKCJwcmVmZXJyZWRf
cGFuZWwiLCAic2NyaXB0cyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4g
dXJsTm9kZTsgCisgICAgfQorICAgIAorICAgIHJldHVybiBXZWJJbnNwZWN0b3IubGlua2lmeVN0
cmluZ0FzRnJhZ21lbnRXaXRoQ3VzdG9tTGlua2lmaWVyKHN0cmluZywgbGlua2lmaWVyKTsKK30K
KwogV2ViSW5zcGVjdG9yLnNob3dQcm9maWxlRm9yVVJMID0gZnVuY3Rpb24odXJsKQogewogICAg
IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIik7Cg==
</data>
<flag name="review"
          id="105264"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>