<?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>66861</bug_id>
          
          <creation_ts>2011-08-24 10:13:22 -0700</creation_ts>
          <short_desc>Web Inspector: split ConsoleView into the View and the Model.</short_desc>
          <delta_ts>2011-08-25 05:33:36 -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>
          <dependson>66930</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>456160</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-24 10:13:22 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456166</commentid>
    <comment_count>1</comment_count>
      <attachid>105012</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-24 10:19:39 -0700</bug_when>
    <thetext>Created attachment 105012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456187</commentid>
    <comment_count>2</comment_count>
      <attachid>105016</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-24 10:38:02 -0700</bug_when>
    <thetext>Created attachment 105016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456731</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-25 03:01:43 -0700</bug_when>
    <thetext>Committed r93769: &lt;http://trac.webkit.org/changeset/93769&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105012</attachid>
            <date>2011-08-24 10:19:39 -0700</date>
            <delta_ts>2011-08-24 10:37:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66861-20110824211936.patch</filename>
            <type>text/plain</type>
            <size>95211</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM3MDYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYjY2NTJjMzIzZTRkMDM0YzM0MzA0
MmI3MjQxNmFmOGZkNGZiMWI4Li4xNDQ0ODg2NTg2NjM0NjFhYjg0YjQ1OGNlYTk5MjVhN2JlZWE0
YjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTEtMDgtMjQgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0IENvbnNv
bGVWaWV3IGludG8gdGhlIFZpZXcgYW5kIHRoZSBNb2RlbC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2Ut
aWZyYW1lLXNyYy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
Y2QtY29tcGxldGlvbnMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLWNkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNv
dXJjZS1lcnJvcnMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0NvbnNvbGVUZXN0Lkluc3BlY3RvclRlc3Qu
ZHVtcENvbnNvbGVNZXNzYWdlcyk6CisgICAgICAgIChpbml0aWFsaXplX0NvbnNvbGVUZXN0Lklu
c3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhDbGFzc2VzKToKKyAgICAgICAgKGlu
aXRpYWxpemVfQ29uc29sZVRlc3QuSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMp
OgorICAgICAgICAoaW5pdGlhbGl6ZV9Db25zb2xlVGVzdCk6CisgICAgICAgICogaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0luc3Bl
Y3RvclRlc3QuSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSk6CisgICAgICAgIChpbml0
aWFsaXplX0luc3BlY3RvclRlc3QpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvZGlzYWJsZWQtY2FjaGUtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2FjaGVkcmVzb3VyY2VzLXdpdGgtc2FtZS11cmxzLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNsZWFy
LWNhY2hlLmh0bWwtZGlzYWJsZWQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLWNsZWFyLWNvb2tpZXMuaHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC1lbWJl
ZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1j
b250ZW50LXJlcGxhY2VtZW50LXhoci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLW1lbW9yeS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLXhocnMu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZW1i
ZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
aWZyYW1lLWxvYWQtYW5kLWRlbGV0ZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1pbml0aWF0b3ItZnJvbS1jb25zb2xlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRpYXRvci5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1yZXF1ZXN0LXJl
dmlzaW9uLWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstc2hhcmVkLXdvcmtlci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay1zaWRlYmFyLXdpZHRoLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLXN5bmMuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay10aW1p
bmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
d29ya2VyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLXhoci1hc3luYy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvbmV0d29yay14aHItc3luYy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2
aWdhdGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlLXRyZWUtbm8teGhycy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtYXNzZXJ0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS10cmFjZS1pbi1ldmFsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS10cmFjZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdW5jYXVn
aHQtZXhjZXB0aW9uLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2Vy
LWF1dG9jb250aW51ZS1vbi1zeW50YXgtZXJyb3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvZGVidWdnZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFtZS5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWlmcmFtZS5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuaHRtbDoKKwogMjAxMS0w
OC0yNCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICAgVW5yZXZpZXdlZCwgY2hyb21pdW0gcmViYXNlbGluZSBmb3IgZ3JhZGllbnQtYWZ0ZXItdHJh
bnNwYXJlbnQtYm9yZGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY2hhbmdlLWlmcmFtZS1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NoYW5nZS1pZnJhbWUtc3JjLmh0bWwKaW5kZXggOWVkYWQ5YTdmNDY1NjJiNjA1MDFi
ODQ0MDUxZmNlMGU0NGIxMjQyYS4uOTRjMDdiMGUxNjJlYjNlYWNhYWM4NGNhNTdjYmYwOGM2NzNk
OGE1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY2hhbmdl
LWlmcmFtZS1zcmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
aGFuZ2UtaWZyYW1lLXNyYy5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIGZ1bmN0aW9uIHN0ZXAxKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnNldEF0dHJpYnV0
ZSgic3JjIiwgInNyYz1cImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2lmcmFtZS1mcm9tLWRpZmZlcmVudC1kb21haW4tZGF0YS5odG1sXCIiKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUs
ICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVT
bmlmZmVyKHN0ZXAyKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25z
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBs
ZXRpb25zLmh0bWwKaW5kZXggNDcyZDZlMGQ0Mzk2ZGZkZTA2OTY3YThmYWQ2YzZiMzA2NjAzMDQy
Zi4uMWM5MGExZTgwYmFlZDQ2MDQ4NDc2MjQzZTQ4Y2VlM2E4ZWM0MjBiZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29t
cGxldGlvbnMuaHRtbApAQCAtNyw3ICs3LDcgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIElu
c3BlY3RvclRlc3Quc2hvd0NvbnNvbGVQYW5lbCgpOwotICAgIHZhciBzZWxlY3RvciA9IFdlYklu
c3BlY3Rvci5jb25zb2xlLl9jb250ZXh0U2VsZWN0RWxlbWVudDsKKyAgICB2YXIgc2VsZWN0b3Ig
PSBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX2NvbnRleHRTZWxlY3RFbGVtZW50OwogICAgIHZh
ciBvcHRpb24gPSBzZWxlY3Rvci5maXJzdENoaWxkOwogICAgIHdoaWxlIChvcHRpb24pIHsKICAg
ICAgICAgaWYgKG9wdGlvbi50ZXh0Q29udGVudCAmJiBvcHRpb24udGV4dENvbnRlbnQuaW5kZXhP
ZigibXlJRnJhbWUiKSA9PT0gMCkKQEAgLTIyLDcgKzIyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTsKIAogCi0gICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUu
X2NvbXBsZXRpb25zKCIiLCAibXlHbG9iIiwgZmFsc2UsIGNoZWNrQ29tcGxldGlvbnMuYmluZCh0
aGlzKSk7CisgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygiIiwgIm15
R2xvYiIsIGZhbHNlLCBjaGVja0NvbXBsZXRpb25zLmJpbmQodGhpcykpOwogICAgIGZ1bmN0aW9u
IGNoZWNrQ29tcGxldGlvbnMoY29tcGxldGlvbnMpCiAgICAgewogICAgICAgICB2YXIgZXhwZWN0
ZWQgPSBbIm15R2xvYmFsVmFyIiwgIm15R2xvYmFsRnVuY3Rpb24iXTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QuaHRtbAppbmRleCAyZWVlY2Y3ZmU0
ZDMwMmUwZWI4YTc4YWExZTk0OTY4NTc4Yjk3MTg5Li43OGM4MjM2NjYzOGIyNmI5YzJlMTk1ZGJj
M2I2ZjJjMmEyNTkzMTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLWNkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS1jZC5odG1sCkBAIC04LDcgKzgsNyBAQAogZnVuY3Rpb24gdGVzdCgpCiB7CiAg
ICAgSW5zcGVjdG9yVGVzdC5zaG93Q29uc29sZVBhbmVsKCk7Ci0gICAgdmFyIHNlbGVjdG9yID0g
V2ViSW5zcGVjdG9yLmNvbnNvbGUuX2NvbnRleHRTZWxlY3RFbGVtZW50OworICAgIHZhciBzZWxl
Y3RvciA9IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fY29udGV4dFNlbGVjdEVsZW1lbnQ7CiAg
ICAgdmFyIG9wdGlvbiA9IHNlbGVjdG9yLmZpcnN0Q2hpbGQ7CiAgICAgd2hpbGUgKG9wdGlvbikg
ewogICAgICAgICBpZiAob3B0aW9uLnRleHRDb250ZW50ICYmIG9wdGlvbi50ZXh0Q29udGVudC5p
bmRleE9mKCJteUlGcmFtZSIpID09PSAwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLmh0bWwKaW5kZXgg
NzE3OTVhY2MwOGUwNzRjMDkyODcwYmUyMWY5MmU3ZmU2YWQ5ZDlmZS4uYzRmZTVkY2YwMzg0Mzgz
Y2ViZGU2MmJlMWFkYzU5ZWZmNTFkM2ZkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy5odG1sCkBA
IC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIGxvYWRJZnJhbWUoKQogCiBmdW5jdGlvbiB0ZXN0KCkK
IHsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3
LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBhZGRNZXNzYWdlLCB0cnVlKTsKKyAgICBJbnNwZWN0
b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKGFkZE1lc3NhZ2UsIHRydWUpOwogCiAgICAgdmFyIG1l
c3NhZ2VDb3VudCA9IDA7CiAgICAgZnVuY3Rpb24gYWRkTWVzc2FnZShtZXNzYWdlKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzCmluZGV4IDkw
ZmJlODBhNDZmYmZjOGMxM2VlOTgyMTc5MmJmNjE5MjYzMTM4MGYuLmM1ZjAxNjRiOTJlMzNjNzAz
NTY2NWE2NWY3MDgzYmQ2MTdjYjk0NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMKQEAgLTksNyArOSw3IEBAIEluc3BlY3RvclRlc3Qu
c2hvd0NvbnNvbGVQYW5lbCA9IGZ1bmN0aW9uKCkKIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVN
ZXNzYWdlcyA9IGZ1bmN0aW9uKCkKIHsKICAgICB2YXIgcmVzdWx0ID0gW107Ci0gICAgdmFyIG1l
c3NhZ2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7CisgICAgdmFyIG1lc3NhZ2Vz
ID0gV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOwogICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNz
YWdlc1tpXS50b01lc3NhZ2VFbGVtZW50KCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KGVsZW1lbnQudGV4dENvbnRlbnQucmVwbGFjZSgvXHUyMDBiL2csICIiKSk7CkBAIC0xOSw3
ICsxOSw3IEBAIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcyA9IGZ1bmN0aW9uKCkK
IAogSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aENsYXNzZXMgPSBmdW5jdGlv
bihzb3J0TWVzc2FnZXMpIHsKICAgICB2YXIgcmVzdWx0ID0gW107Ci0gICAgdmFyIG1lc3NhZ2Vz
ID0gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7CisgICAgdmFyIG1lc3NhZ2VzID0gV2Vi
SW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNzYWdlc1tp
XS50b01lc3NhZ2VFbGVtZW50KCk7CiAgICAgICAgIHJlc3VsdC5wdXNoKGVsZW1lbnQudGV4dENv
bnRlbnQucmVwbGFjZSgvXHUyMDBiL2csICIiKSArICIgIiArIGVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJjbGFzcyIpKTsKQEAgLTMyLDcgKzMyLDcgQEAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1l
c3NhZ2VzV2l0aENsYXNzZXMgPSBmdW5jdGlvbihzb3J0TWVzc2FnZXMpIHsKIAogSW5zcGVjdG9y
VGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMgPSBmdW5jdGlvbigpCiB7Ci0gICAgdmFyIG1lc3Nh
Z2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7CisgICAgdmFyIG1lc3NhZ2VzID0g
V2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOwogICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNzYWdl
c1tpXS50b01lc3NhZ2VFbGVtZW50KCk7CiAgICAgICAgIHZhciBub2RlID0gZWxlbWVudDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMK
aW5kZXggYjM3NzQwYWNlMGZmNjkxM2U2MGVlOTc5YTAwZWEzYWQ0ZjA5Nzk2NS4uZTZkMDdlMzlj
Yzk1MzBiMTAzMDM2Y2Q1ODY5MDYzYWQ3NDQ5ZDI3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKQEAgLTI5LDEyICsyOSwxMiBA
QCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlID0gZnVuY3Rpb24oY29kZSwgY2FsbGJh
Y2spCiB7CiAgICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKTsK
IAotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnZpc2libGUgPSB0cnVlOwotICAgIFdlYkluc3Bl
Y3Rvci5jb25zb2xlLnByb21wdC50ZXh0ID0gY29kZTsKKyAgICBXZWJJbnNwZWN0b3IuY29uc29s
ZVZpZXcudmlzaWJsZSA9IHRydWU7CisgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LnByb21w
dC50ZXh0ID0gY29kZTsKICAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiS2V5
Ym9hcmRFdmVudCIpOwogICAgIGV2ZW50LmluaXRLZXlib2FyZEV2ZW50KCJrZXlkb3duIiwgdHJ1
ZSwgdHJ1ZSwgbnVsbCwgIkVudGVyIiwgIiIpOwotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnBy
b21wdEVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwK
KyAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcucHJvbXB0RWxlbWVudC5kaXNwYXRjaEV2ZW50
KGV2ZW50KTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKAogICAgICAgICBm
dW5jdGlvbihjb21tYW5kUmVzdWx0KSB7CiAgICAgICAgICAgICBjYWxsYmFjayhjb21tYW5kUmVz
dWx0LnRvTWVzc2FnZUVsZW1lbnQoKS50ZXh0Q29udGVudCk7CiAgICAgICAgIH0pOwpAQCAtMzE1
LDYgKzMxNSwxMSBAQCBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIgPSBmdW5jdGlvbihyZWNlaXZl
ciwgbWV0aG9kTmFtZSwgb3ZlcnJpZGUsIG9wdF9zdGlja3kpCiAgICAgfTsKIH0KIAorSW5zcGVj
dG9yVGVzdC5hZGRDb25zb2xlU25pZmZlciA9IGZ1bmN0aW9uKG92ZXJyaWRlLCBvcHRfc3RpY2t5
KQoreworICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlLCAiX2FwcGVuZENvbnNvbGVNZXNzYWdlIiwgb3ZlcnJpZGUsIG9wdF9zdGlj
a3kpOworfQorCiBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlID0gZnVuY3Rpb24ocmVjZWl2ZXIsIG1l
dGhvZE5hbWUsIG92ZXJyaWRlLCBvcHRfc3RpY2t5KQogewogICAgIG92ZXJyaWRlID0gSW5zcGVj
dG9yVGVzdC5zYWZlV3JhcChvdmVycmlkZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rpc2FibGVkLWNhY2hlLWNyYXNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rpc2FibGVkLWNhY2hlLWNyYXNo
Lmh0bWwKaW5kZXggMzBmOTc2YTQ0YTMwY2FjMjFiODI4N2QyNjliNzMwMDQ4YmE3YjZlNy4uMWZh
OTk0ZDllYmZjYThmNTQ5NGVhMmQ1YzA4MGVkNTgwYzNiMGIwNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kaXNhYmxlZC1jYWNoZS1jcmFzaC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvZGlzYWJs
ZWQtY2FjaGUtY3Jhc2guaHRtbApAQCAtMzcsMTMgKzM3LDEzIEBAIGZ1bmN0aW9uIHRlc3QoKQog
CiAgICAgZnVuY3Rpb24gc3RlcDEobXNnKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdl
Iiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAy
KTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgib3BlbldpbmRvdzEoKSIp
OwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXAyKG1zZykKICAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAi
YWRkTWVzc2FnZSIsIHN0ZXAzKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25p
ZmZlcihzdGVwMyk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm9wZW5X
aW5kb3cyKCkiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jYWNoZWRyZXNvdXJjZXMtd2l0aC1zYW1lLXVybHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1j
YWNoZWRyZXNvdXJjZXMtd2l0aC1zYW1lLXVybHMuaHRtbAppbmRleCA1NjM3OTA1OWVlNDg0MWFh
MGZlNWFhMzZiYTNmYTc5MjU5ODhjZjQxLi5lYzFjMjU5OWJlMTExOGUxZTkxZTAzZTRkYjFiZTAy
ODNiYTI4Njg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmstY2FjaGVkcmVzb3VyY2VzLXdpdGgtc2FtZS11cmxzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNhY2hlZHJl
c291cmNlcy13aXRoLXNhbWUtdXJscy5odG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIGlt
YWdlTG9hZGVkKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwg
c3RlcDIsIHRydWUpOworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIs
IHRydWUpOwogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRJbWFnZXMoKSIp
OwogCiAgICAgZnVuY3Rpb24gc3RlcDIobXNnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNsZWFyLWNhY2hlLmh0bWwtZGlzYWJs
ZWQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xl
YXItY2FjaGUuaHRtbC1kaXNhYmxlZAppbmRleCBjMGQxNzkyZDZmZmZiYzhlYTBhZTQzZTc0Njk5
ZDM2MTk3Y2UyMTU2Li41YTAzNzc0ZGVlNDQzOTczNmQzY2M5ZmE0OTkxN2M4YTgzNWRiOGUyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstY2xlYXItY2FjaGUuaHRtbC1kaXNhYmxlZAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xlYXItY2FjaGUuaHRtbC1kaXNhYmxlZApAQCAt
MzYsNyArMzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKICAgICB9CiAKQEAgLTUwLDcgKzUwLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBzdGVwMyhtc2cpCiAgICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZSwgImFkZE1lc3NhZ2UiLCBzdGVwNCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29s
ZVNuaWZmZXIoc3RlcDQpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJj
YWNoZUNsZWFyZWQoKSIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNsZWFyLWNvb2tpZXMuaHRtbC1kaXNhYmxl
ZCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jbGVh
ci1jb29raWVzLmh0bWwtZGlzYWJsZWQKaW5kZXggNjhiNmM5Y2MxN2EwMzM2NTNhODA5OGU4ZmJm
NmU5ZWJlM2Q5NWI4Zi4uMjZlMGVhMjhjYWQ4NGQ2NzE0YjZhM2M4NWZhOWQ0YmEyY2RjYzU3ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLWNsZWFyLWNvb2tpZXMuaHRtbC1kaXNhYmxlZAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xlYXItY29va2llcy5odG1sLWRpc2FibGVk
CkBAIC0zNiw3ICszNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gc3RlcDEo
KQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgibG9hZERhdGEoKSIpOwogICAgIH0KIApAQCAtNTAsNyArNTAsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAzKG1zZykKICAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJv
dG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXA0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRD
b25zb2xlU25pZmZlcihzdGVwNCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoImNvb2tpZXNDbGVhcmVkKCkiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50
LWVtYmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25l
dHdvcmstY29udGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1sCmluZGV4IDk5ZWUzZGI3ZWY4ZmM5
M2M5NDA5NDFhYTcyZDA4MWYzNDMzNTg2ZTcuLjFiNzQyY2JiY2UyZjNkNGIyNDM5M2M4ZDAwMDZh
MmRlZWI4YjIzMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVw
bGFjZW1lbnQtZW1iZWQuaHRtbApAQCAtNjIsNyArNjIsNyBAQCBmdW5jdGlvbiBhbGxVUkxzTG9h
ZGVkKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDEp
OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDEpOwogICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm9uU25pZmZlckluc3RhbGxlZCgpIik7CiAKICAgICBm
dW5jdGlvbiBkdW1wUmVzb3VyY2UocmVzb3VyY2UsIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVw
bGFjZW1lbnQteGhyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbAppbmRleCAxNjVjYjFkNzJk
Y2Q3NDBhNDk5MmRlYWU0YjViN2E3MTAxYzBiNjVmLi5mYjQ3NWMxYmY3MjBjZDA4ZmM1ZjIxYTY4
YWZhNWJlMWZmMzIzZmU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1y
ZXBsYWNlbWVudC14aHIuaHRtbApAQCAtNDEsNyArNDEsNyBAQCBmdW5jdGlvbiBhbGxYSFJzTG9h
ZGVkKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDEp
OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDEpOwogICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKIAogICAgIGZ1bmN0aW9uIGR1
bXBSZXNvdXJjZShyZXNvdXJjZSwgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZGlzYWJsZS1jYWNoZS1tZW1vcnku
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1k
aXNhYmxlLWNhY2hlLW1lbW9yeS5odG1sCmluZGV4IDYxYjdhMmNiMjMxOTJiMTQ0MzUyMjFlZDMy
MTc3NDk0YzA1ZWEyM2YuLjk4MGQ3MjBlOTdkMDUxMTM0ZDUxNzY3ZTY4MDRhOGY1ODdmZWU5ODYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1kaXNhYmxlLWNhY2hlLW1lbW9yeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLW1lbW9yeS5odG1sCkBA
IC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gbG9hZFNjcmlw
dEFuZEdldENvbnRlbnQoY2FsbGJhY2spCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2Ui
LCBzY3JpcHRMb2FkZWQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVy
KHNjcmlwdExvYWRlZCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNj
aGVkdWxlU2NyaXB0TG9hZCgpIik7CiAKICAgICAgICAgZnVuY3Rpb24gc2NyaXB0TG9hZGVkKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1kaXNhYmxlLWNhY2hlLXhocnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLXhocnMuaHRtbAppbmRleCA4YjQy
NmFhYmJhNTcwMmI4ZjY3MTgxYTkwODE0ODY1MDQ4YWRmZGNmLi5kNTBhNGJlZjFkMDNmOWNiMWVm
NWMxMTE1ZWU3NWUwMmUzNTlmNDAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZGlzYWJsZS1jYWNoZS14aHJzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWRpc2FibGUt
Y2FjaGUteGhycy5odG1sCkBAIC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAg
ZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIp
OworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZERhdGEoKSIpOwogICAgIH0KIApA
QCAtNTIsNyArNTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAzKG1z
ZykKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3Iu
Q29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXA0KTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwNCk7CiAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImNhY2hlRGlzYWJsZWQoKSIpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWVtYmVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
ZW1iZWQuaHRtbAppbmRleCBlYmY1ZDU2YzNjNWNhMWMzNjgwMjBkOGVlNjk4YWVhMDdmMGExOWU5
Li5hZGQxODliMDJmNjQ4NDk0MzU1NzNlMjZmMDcxM2QzMWE5OWZjMzgxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZW1iZWQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
ZW1iZWQuaHRtbApAQCAtNjYsNyArNjYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0
aW9uIHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm9uU25pZmZlckluc3RhbGxlZCgpIik7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstaWZyYW1lLWxvYWQtYW5kLWRlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWlmcmFtZS1sb2FkLWFuZC1kZWxldGUuaHRt
bAppbmRleCA2YmZhNzMwMGIzMjA2NDA4Zjg1ZDM5OTFkNWY0OTZhMTRjNWE1NzVjLi5mZTY3N2I1
MjNjYjA5ZTIxMDhjZTMyNDk5MWQ4NWYxNTU5YjQyZjZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaWZyYW1lLWxvYWQtYW5kLWRl
bGV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1pZnJhbWUtbG9hZC1hbmQtZGVsZXRlLmh0bWwKQEAgLTM4LDcgKzM4LDcgQEAgZnVu
Y3Rpb24gaWZyYW1lTG9hZGVkQ2hhbmdlU3JjKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNu
aWZmZXIoc3RlcDIpOwogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRJZnJh
bWUoKSIpOwogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRpYXRvci1mcm9tLWNvbnNv
bGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1pbml0aWF0b3ItZnJvbS1jb25zb2xlLmh0bWwKaW5kZXggZGUyYTNiNzhjYTczNjBlOGQyNDEy
NGM4MzdhNjMzYzc3YTMwZWNhZC4uZjZkMWYwMWM5ZGRkNjE5NjhhNWIzMzg4MDVlZjdmNzAwZDIy
ODU2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLWluaXRpYXRvci1mcm9tLWNvbnNvbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaW5pdGlhdG9yLWZyb20tY29uc29s
ZS5odG1sCkBAIC0xOCwxMyArMTgsMTMgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAKICAgICBm
dW5jdGlvbiBzdGVwMSgpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwogICAgICAg
ICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZVN0YXJ0ZWQsIG9uUmVzb3VyY2Up
OwogICAgICAgICB2YXIgc3RyID0gIiI7CiAgICAgICAgIHN0ciArPSAidmFyIHMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpOyI7CiAgICAgICAgIHN0ciArPSAicy5zcmMgPSBc
InJlc291cmNlcy9zY3JpcHQuanNcIjsiOwogICAgICAgICBzdHIgKz0gImRvY3VtZW50LmhlYWQu
YXBwZW5kQ2hpbGQocyk7IjsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuZXZhbEluSW5z
cGVjdGVkV2luZG93KHN0ciwgImNvbnNvbGUiLCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
ZnVuY3Rpb24oKXt9KQorICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuZXZhbEluSW5z
cGVjdGVkV2luZG93KHN0ciwgImNvbnNvbGUiLCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
ZnVuY3Rpb24oKXt9KQogICAgIH0KIAogICAgIGZ1bmN0aW9uIG9uUmVzb3VyY2UoZXZlbnQpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstaW5pdGlhdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstaW5pdGlhdG9yLmh0bWwKaW5kZXggMWM0YzA2YTdhZjEzN2Q0ZTEzODE5MDA2
MmZlYTg5NDdmYTU2NDQ4ZS4uZmQ0OGNjZWFlNzlkMDEyYjg5MTc4YTJlY2NhYzRmMTIxNGZjNDJm
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLWluaXRpYXRvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1pbml0aWF0b3IuaHRtbApAQCAtNjUsNyArNjUsNyBAQCB2YXIg
dGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgaWYgKCFmaW5kUmVzb3VyY2VCeVVSTCgvc2l6ZT0z
MDAvKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNu
aWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBz
dGVwMyk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDMpOwog
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkRGF0YSgpIik7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50
Lmh0bWwKaW5kZXggMjE0OTdmNjVlZDA2MTgwZTc5Yjc4NjBiYThiMzljMzkxYmE4MmRjMS4uYzRk
ZTk0ZmVmOTg3ZDI2ZDE1M2NlNGIxZTgwMmNkY2NiY2E5YjMzYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXJlcXVlc3QtcmV2aXNp
b24tY29udGVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbApAQCAtMTEsNyArMTEs
NyBAQCBmdW5jdGlvbiBsb2FkU2NyaXB0KCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUs
ICJhZGRNZXNzYWdlIiwgc3RlcDIsIHRydWUpOworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29s
ZVNuaWZmZXIoc3RlcDIsIHRydWUpOwogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
ImxvYWRTY3JpcHQoKSIpOwogCiAgICAgZnVuY3Rpb24gc3RlcDIobXNnKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNoYXJlZC13
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1zaGFyZWQtd29ya2VyLmh0bWwKaW5kZXggNzY4N2MzMDgxNTA3NjI4ZWEzYTgwZWRlMzY4
NDE2NWU3YmZmY2ZhYy4uZmQ5YjU5NTc4Y2Y2Y2NkMGRiNzM4NDk5NDE0YTFhMTVkYzRmM2YyMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLXNoYXJlZC13b3JrZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstc2hhcmVkLXdvcmtlci5odG1sCkBAIC0yMiw3ICsyMiw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNv
bGVTbmlmZmVyKHN0ZXAyKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgi
bG9hZERhdGEoKSIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpZGViYXItd2lkdGguaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaWRlYmFyLXdpZHRoLmh0
bWwKaW5kZXggZWRjNWRiMjFmNWJjOTU5OWVhOWMwZjZmNTQ0ZTQwZDk3MWFlZTliZC4uY2U0MTBl
YjBkNDVjNjRhMjYzZTgxOGM3YTE4OTRmMjhhYjM4NTA1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpZGViYXItd2lkdGguaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
c2lkZWJhci13aWR0aC5odG1sCkBAIC0xNSw3ICsxNSw3IEBAIGZ1bmN0aW9uIHJlc291cmNlTG9h
ZGVkKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIp
OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwogICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKIAogICAgIHZhciBvbGRTZXR0
aW5nOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCmluZGV4IGFlMzJiZmU1Zjk1
MDM0NGY0ZGZhODk2ZDQ4YjY1YmQ4N2ZjMjRiYjMuLjU1N2M0ZjQzNWQ3NGM3NDNlY2ExN2JmYWY0
NmIzYmQzYWQ4MzZhODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwKQEAg
LTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gcmVzb3VyY2VMb2FkZWQoKQogCiBmdW5jdGlvbiB0ZXN0
KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7CisgICAgSW5zcGVjdG9yVGVzdC5h
ZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgibG9hZEltYWdlcygpIik7CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1zeW5j
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
c2l6ZS1zeW5jLmh0bWwKaW5kZXggYTI2MTRmNzMzMjg3MTZjMzAxODA5MjFiYTNmZDRhN2MxZTE2
ZTIxYy4uMmRjN2FkMzJmYTE3NjMzNTQzNDg0OTMxZGM1Njk1NDVjMTAzZTZiYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUt
c3luYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1zaXplLXN5bmMuaHRtbApAQCAtMTUsNyArMTUsNyBAQCBmdW5jdGlvbiByZXNvdXJj
ZUxvYWRlZCgpCiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0
ZXAyKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkRGF0YSgpIik7CiAKICAgICBmdW5jdGlv
biBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmstc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLXNpemUuaHRtbAppbmRleCA4YTYyNDRhYjM0NmRlZTVmYzVjM2Fm
NTBmMjQzMGNjZDNjZGM1OWIzLi5iNTgyYzAwN2Y0OWIzYzQxNjg5NjBkZTU3YTRiZmJmYjVjOWYw
ZmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstc2l6ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1zaXplLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gcmVz
b3VyY2VMb2FkZWQoKQogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2Ui
LCBzdGVwMik7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZEltYWdlcygpIik7CiAKICAgICBm
dW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstdGltaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstdGltaW5nLmh0bWwKaW5kZXggNjQ5ODUyZDJmZmM5
MDY0NmIxNGI0ZDZhNzMzMzY1OTRjNDJmY2Y3Ni4uYTk4MmU0Y2RmNzc0ZTk1MmJjMWU0ZDIzODE4
NGRlODEyN2NkNTdkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLXRpbWluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay10aW1pbmcuaHRtbApAQCAtMjQsNyArMjQsNyBA
QCBmdW5jdGlvbiByZXNvdXJjZUxvYWRlZCgpCiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIElu
c3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBl
LCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlm
ZmVyKHN0ZXAyKTsKICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkU2NyaXB0
cygpIik7CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstd29ya2VyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstd29ya2VyLmh0bWwKaW5k
ZXggY2Y0YzE3NTAxZjU5YTM3ZjJlNDdjMjA3NjI5ODcyNjhiNDJlMzI0Ny4uZjMwYWQxZGI1Mjc5
YzY0NjQ3ZjA2OGU1NjYzN2Q0ZTBiZDQ5MGZiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXdvcmtlci5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay13b3JrZXIuaHRtbApA
QCAtMjIsNyArMjIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
ICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29u
c29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItYXN5bmMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHIt
YXN5bmMuaHRtbAppbmRleCA3NTdhNWQwOWI1MDQ1YzljNjZjMjc3NjZkYTJhYTI1MDJkYTZjNTUy
Li4zNTYyZTkzNjE3MjQzOWE0ZmZlODBmYzhkZTUzZjBhODAxZjUwOWVhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLWFzeW5j
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLXhoci1hc3luYy5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAg
ICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3Rl
cDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZERhdGEoKSIpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLXhoci1zeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmsteGhyLXN5bmMuaHRtbAppbmRleCA2NWNkM2EzNjZhYjM1NTAwM2RhMDc4
ODQ4ODY4MGY0OWRiNTU0N2FmLi45Y2IwZjA0NDM1ZDI0N2I4ODY5MzExNGJhMDU0ZGNhYTgwZWE2
YmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmsteGhyLXN5bmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLXN5bmMuaHRtbApAQCAtMjEsNyArMjEsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAi
YWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25p
ZmZlcihzdGVwMik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRE
YXRhKCkiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1m
cmFtZS1hZGQuaHRtbAppbmRleCAyN2UzYTQ2YzNlYWQzNzhkM2YyNWM4MTAwMWFlNmVjYzY3ZTI1
ZjllLi44YzBkZDBmZmFiZGJlNmI5NWE4NGEyYWYxYTFkNWRmODNlOTFhMjFmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNl
LXRyZWUtZnJhbWUtYWRkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLWFkZC5odG1sCkBAIC0zMCw3ICsz
MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
QmVmb3JlIGFkZGl0aW9uIik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKICAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wUmVzb3VyY2VUcmVlRXZlcnl0aGluZygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2Ui
LCBzdGVwMik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIp
OwogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJjcmVhdGVJZnJhbWUoKSIp
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJh
bWUtbmF2aWdhdGUuaHRtbAppbmRleCBjYTE1MjkyNTQ4YmUwNDcyZmRmYjQwNDRmNmY3YzA1YzU4
MmJiN2UzLi44NmU1MjlkNjBhNDM0YWQwZTRiNzAyN2I2ODY4YjA0MmY0ZTQ2ZWFmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291
cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUuaHRt
bApAQCAtMzEsNyArMzEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkJlZm9yZSBuYXZpZ2F0aW9uIik7CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kdW1wUmVzb3VyY2VUcmVlRXZlcnl0aGluZygpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29s
ZVNuaWZmZXIoc3RlcDIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJu
YXZpZ2F0ZUlmcmFtZSgpIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbm8teGhycy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZS10cmVlLW5vLXhocnMuaHRtbAppbmRleCAyMWQxOTY3MjIzM2JkYTBiZWQ4NGNmN2M0YTljMDcz
YzQ4Mzc1ZTNmLi42M2VkMzQ1NDVmMDA2NzdjOGNmODU0OWE1N2MwNmM0NWQzMzc1OGFmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jl
c291cmNlLXRyZWUtbm8teGhycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1uby14aHJzLmh0bWwKQEAgLTE1LDcg
KzE1LDcgQEAgZnVuY3Rpb24gcmVzb3VyY2VMb2FkZWQoKQogCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
LSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnBy
b3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25z
b2xlU25pZmZlcihzdGVwMik7CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2Vu
ZFhIUigpIik7CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFzc2VydC5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1hc3NlcnQuaHRtbAppbmRleCBkY2I5OTU3YWM3YWU1MzE4
OWM4YWM0MjFmZWE4NTI0NDM1ZmU5ZDdiLi43YzFmNmRhNWE1ODM0NWNlNDFiODVhNGU3MzI2MDcz
MzIzMDIxMTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWFzc2VydC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtYXNzZXJ0Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
IH0KICAgICB9CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dChh
LCAwKSIpOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIGNhbGxiYWNrLCB0cnVlKTsKKyAgICBJbnNw
ZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKGNhbGxiYWNrLCB0cnVlKTsKIH0KIAogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRy
YWNlLWluLWV2YWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
dHJhY2UtaW4tZXZhbC5odG1sCmluZGV4IDAwM2YyNDNkZDRmMDFlZWFhNjFhMzVlOGY0ZmY4YTk0
Y2FkMTU3NGQuLjY0Y2U5ZTE5MjhkOTY0M2JkNTk3MDg2ZDJkNTFjYTFhMDU1NmMxZjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UtaW4tZXZh
bC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2Ut
aW4tZXZhbC5odG1sCkBAIC0zNSw3ICszNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgIH0KICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJkb0V2YWxTb3VyY2UoKSIpOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIGNh
bGxiYWNrKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKGNhbGxiYWNrKTsK
IH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLXRyYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLXRyYWNlLmh0bWwKaW5kZXggYmUyYzJmMWViYjg2MTQ2YjM2MzAxNzA2ODg0MzdjOGEwMDA0
ZTJiOS4uMzViZjI1M2QwYjAyY2Q2M2E1YTVlYTZkNTRmYmE1MGNjNDMzN2U5ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10cmFjZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UuaHRtbApAQCAtMjIs
NyArMjIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKICAgICB9CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGlt
ZW91dChhLCAwKSIpOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3Iu
Q29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIGNhbGxiYWNrKTsKKyAgICBJbnNw
ZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKGNhbGxiYWNrKTsKIH0KIAogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXVuY2F1Z2h0
LWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS11
bmNhdWdodC1leGNlcHRpb24uaHRtbAppbmRleCA5OTVhM2U3NmUxZjcxMDFiMzU5ZGIwMWQ0ZDAx
MThmZDYxZjgyNzFmLi4yMGViOTgyNDY1YjY2Y2RhMzNlZDNkN2VkMjg1YzY2YzE5ZTdmMTk2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXVuY2F1Z2h0
LWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtdW5jYXVnaHQtZXhjZXB0aW9uLmh0bWwKQEAgLTYsNyArNiw3IEBACiAKIGZ1bmN0aW9uIHRl
c3QoKQogewotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIGFkZE1lc3NhZ2UsIHRydWUpOworICAgIElu
c3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoYWRkTWVzc2FnZSwgdHJ1ZSk7CiAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZElmcmFtZSgpIik7CiAgICAgZnVuY3Rpb24g
YWRkTWVzc2FnZShtZXNzYWdlKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3ludGF4LWVycm9yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItYXV0b2NvbnRpbnVlLW9u
LXN5bnRheC1lcnJvci5odG1sCmluZGV4IGFhM2EwNTE5MzZhY2I3NWMyODBkODFmYTc4ZjlkOGYx
MTQ4MWZlMzQuLjM5ZjcxNjgwNDBhOGFkNzBiNzAxYzhlMGJlOTM1OTkyYWE4MGVkNzAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGlu
dWUtb24tc3ludGF4LWVycm9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2RlYnVnZ2VyLWF1dG9jb250aW51ZS1vbi1zeW50YXgtZXJyb3IuaHRtbApAQCAtMTksNyAr
MTksNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgewogICAg
ICAgICBEZWJ1Z2dlckFnZW50LnNldFBhdXNlT25FeGNlcHRpb25zKFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25z
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgibG9hZElmcmFtZSgpIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRp
b25zLW9uLWNhbGwtZnJhbWUuaHRtbAppbmRleCBjYTBlMzU0OTc0ZjFmNDI4NjM5M2NkY2JjZThj
ZjdlODY5Yjk2ODFiLi45MDA0MzkzMDdhZGZiM2ZjMTAzYzkxMzc5NGQzYjRlNDNjNmQwYTJkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGxl
dGlvbnMtb24tY2FsbC1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9kZWJ1Z2dlci1jb21wbGV0aW9ucy1vbi1jYWxsLWZyYW1lLmh0bWwKQEAgLTIzLDMyICsy
MywzMiBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAg
ICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLl9jb21wbGV0aW9ucygiIiwgInZhciIs
IGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ2YXIxIiwgInZhcjIiIF0s
IFtdLCBzdGVwMykpOworICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX2NvbXBsZXRp
b25zKCIiLCAidmFyIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgInZh
cjEiLCAidmFyMiIgXSwgW10sIHN0ZXAzKSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDMo
KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuX2NvbXBsZXRpb25zKCIiLCAi
ZGkiLCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAiZGlyIiwgImRpcnht
bCIgXSwgW10sIHN0ZXA0KSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fY29t
cGxldGlvbnMoIiIsICJkaSIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBb
ICJkaXIiLCAiZGlyeG1sIiBdLCBbXSwgc3RlcDQpKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBz
dGVwNCgpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29tcGxldGlvbnMo
IiIsICJ3aW4iLCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAid2luZG93
IiBdLCBbXSwgc3RlcDUpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21w
bGV0aW9ucygiIiwgIndpbiIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBb
ICJ3aW5kb3ciIF0sIFtdLCBzdGVwNSkpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA1KCkK
ICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLl9jb21wbGV0aW9ucygiIiwgInQi
LCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAidGhpcyIgXSwgW10sIHN0
ZXA2KSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fY29tcGxldGlvbnMoIiIs
ICJ0IiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgInRoaXMiIF0sIFtd
LCBzdGVwNikpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA2KCkKICAgICB7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5jb25zb2xlLl9jb21wbGV0aW9ucygidmFyMSIsICJ0b0V4cCIsIGZhbHNl
LCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ0b0V4cG9uZW50aWFsIiBdLCBbXSwg
c3RlcDcpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygi
dmFyMSIsICJ0b0V4cCIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ0
b0V4cG9uZW50aWFsIiBdLCBbXSwgc3RlcDcpKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVw
NygpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29tcGxldGlvbnMoIjEy
MyIsICJ0b0V4cCIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbXSwgWyAi
dG9FeHBvbmVudGlhbCIgXSwgc3RlcDgpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVW
aWV3Ll9jb21wbGV0aW9ucygiMTIzIiwgInRvRXhwIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRl
bi5iaW5kKHRoaXMsIFtdLCBbICJ0b0V4cG9uZW50aWFsIiBdLCBzdGVwOCkpOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIHN0ZXA4KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtaWZyYW1lLmh0bWwKaW5kZXggMjY2MWMyZjU4ZDZlNjdkYjlhNTI2Mzc4YWQ0NDkzYjRh
NzQ1ZmM3ZC4uZDg4MmUyYTBmZmFlYmQ5ZDY4MDQyZWI5MzRlMGUyMmNjZmUzM2EwNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaWZyYW1lLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaWZyYW1lLmh0bWwKQEAgLTE5
LDcgKzE5LDcgQEAgZnVuY3Rpb24gbG9hZElmcmFtZSgpCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkSWZyYW1lKCkiKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwg
ImFkZE1lc3NhZ2UiLCBzdGVwMCk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZl
cihzdGVwMCk7CiAKICAgICBmdW5jdGlvbiBzdGVwMCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291
cmNlLmh0bWwKaW5kZXggNmY0NmJjMzhlYmQ1ODVjOThkNWYyNjJmNjEzM2Q1YTIzMTlhYjI0Ni4u
OGRjOTgxNWE3Mjc0NjUwNWI2OGM2OWQ5YmJlNjVlYjhmNzhlODkwZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1y
ZXNvdXJjZS5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0
aW9uIHN0ZXAxKCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
InBlcmZvcm1BY3Rpb25zKCkiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdl
Ykluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICB9CiAK
ICAgICBmdW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWwKaW5kZXggMjI3Mjc5MTMwZDNj
ZWRiNzBjNTcyMDNjMDVjNmExODJkMzU3MWQ0Mi4uZThmNjEzMWI5NjUwNzlhOGMyODJjMjdkODk5
NjAwMmYyZjIxZDUwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLXNjcmlwdC10YWctMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTEuaHRtbApAQCAtMTYsNyArMTYsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0VGltZWxpbmUoc3RlcDEpOwogICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZl
cihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAy
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1zY3JpcHQtdGFnLTIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1zY3JpcHQtdGFnLTIuaHRtbAppbmRleCAxZTBjZWI5MzAwZmUxNGYyMzQxODFmOThjOWU0
M2IzOTE3OWM2ZWRmLi4zZThmMThlOGY0MzE0Yjg5YzRkZDNkN2YwN2EwN2FjNTc0ZWQ4MWVjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0
LXRhZy0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LXNjcmlwdC10YWctMi5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IEluc3BlY3RvclRlc3Quc3RhcnRUaW1lbGluZShzdGVwMSk7CiAgICAgZnVuY3Rpb24gc3RlcDEo
KQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgicGVyZm9ybUFjdGlvbnMoKSIpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGMyOWQwNGI3Yjg0NTBlZTYxNjZhMzBlZDZhNWM1Njk5NDY1YTIxMTguLmY0MDY5YzI0Njhi
NTBjNGJkMmRmZDIxZjdlOTFjZDBlNWNkMTJlZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw3NyBA
QAogMjAxMS0wOC0yNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKKyAg
ICAgICAgV2ViIEluc3BlY3Rvcjogc3BsaXQgQ29uc29sZVZpZXcgaW50byB0aGUgVmlldyBhbmQg
dGhlIE1vZGVsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjY4NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2g6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q29uc29sZU1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwucHJvdG90
eXBlLl9zZXRDb25zb2xlTWVzc2FnZUV4cGlyZWRDb3VudCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29uc29sZU1vZGVsLnByb3RvdHlwZS5hZGRNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlTW9kZWwucHJvdG90eXBlLl9pbmNyZW1lbnRFcnJvcldhcm5pbmdDb3VudCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLnByb3RvdHlwZS5yZXF1ZXN0Q2xl
YXJNZXNzYWdlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLnByb3RvdHlw
ZS5jbGVhck1lc3NhZ2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlRGlzcGF0Y2hl
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZURpc3BhdGNoZXIucHJvdG90eXBlLm1l
c3NhZ2VBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZURpc3BhdGNoZXIucHJv
dG90eXBlLm1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQ
YW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZS5wZXJm
b3JtU2VhcmNoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX2NvbnNvbGVNZXNzYWdlQWRkZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fYXBwZW5kQ29uc29sZUNvbW1h
bmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fYXBwZW5k
Q29uc29sZUNvbW1hbmRSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3
LnByb3RvdHlwZS5fYXBwZW5kQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29uc29sZUNsZWFyZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fcmVnaXN0ZXJTaG9ydGN1dHMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fcmVxdWVzdENsZWFyTWVzc2Fn
ZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuYWRk
U291cmNlTWFwcGluZ0xpc3RlbmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5yZW1vdmVTb3VyY2VNYXBwaW5nTGlzdGVuZXIpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0xvZy5qczogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzLgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk5ldHdvcmtMb2cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtM
b2cucHJvdG90eXBlLmdldCByZXNvdXJjZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdv
cmtMb2cucHJvdG90eXBlLl9mcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TmV0d29ya0xvZy5wcm90b3R5cGUuX29uUmVzb3VyY2VTdGFydGVkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5fdXBkYXRlUmVzb3VyY2VXaXRoUmVzcG9uc2Up
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5fbWlt
ZVR5cGVJc0NvbnNpc3RlbnRXaXRoVHlwZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUu
c2V0IGZpbmlzaGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJl
ZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUuX3NjcmlwdEZvclJhd0xvY2F0aW9uKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50UHJvdmlkZXIucHJvdG90eXBlLnJl
cXVlc3RDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRz
Q29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5fY29uY2F0ZW5hdGVTY3JpcHRzQ29udGVudC5hcHBl
bmRDaHVuayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRl
bnRQcm92aWRlci5wcm90b3R5cGUuX2NvbmNhdGVuYXRlU2NyaXB0c0NvbnRlbnQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnRlbnRQcm92aWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFBy
b3ZpZGVyLnByb3RvdHlwZS5yZXF1ZXN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udHdhcm5pbmc6IExGIHdpbGwgYmUgcmVwbGFjZWQgYnkgQ1JMRiBpbiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvai4KVGhlIGZpbGUgd2lsbCBoYXZlIGl0cyBv
cmlnaW5hbCBsaW5lIGVuZGluZ3MgaW4geW91ciB3b3JraW5nIGRpcmVjdG9yeS4KLWVuZC9leHRl
cm5zLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9jcmVhdGVHbG9iYWxTdGF0dXNCYXJJ
dGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3VwZGF0ZUVycm9yQW5kV2FybmluZ0NvdW50
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iuc2hvd0NvbnNvbGUpOgorCisyMDExLTA4LTI0ICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgOSBtb3JlIGphdmFzY3JpcHQgZmlsZXMgdG8gdGhlIGNvbXBpbGF0aW9uLgogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4NDcKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDk3MzQ2YzU0MWZjMDRhOGE4ZmFmYWZiYTg2ZmYzZTA2MjM3YTFjMmUu
LjY3MDg5OTdmMzI4OTNiMTM1YzlkZmU3Yzk5YmM2OGZmMWEzMzVlNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTYyOTEsNiArNjI5MSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9DaGVja2JveC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5q
cycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcycs
CisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcycsCkBAIC02MzQz
LDYgKzYzNDQsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTWV0cmljc1Np
ZGViYXJQYW5lLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJ
dGVtVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFu
YWdlci5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpz
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcycsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3QuanMnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA0NGYyZjE1MDI3
MjNjNzI2MTE1ZjVmNTkyNWUxNzZjZThmZjJmY2ZkLi5kOTM3NzY5NTJmZmE4MWFiMzFlOWYyYTAz
OWU4MTU2ZDhjMzZhYjA5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtNjg3NjUsNiArNjg3NjUsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4K
IAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29u
c29sZU1vZGVsLmpzIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxDb25zb2xlVmlldy5qcyIKIAkJCQkJPgog
CQkJCTwvRmlsZT4KQEAgLTY5MDA5LDYgKzY5MDEzLDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXE5l
dHdvcmtMb2cuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXG5ldHdvcmtQYW5lbC5jc3MiCiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGls
ZS1mcm9udC1lbmQuc2ggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1l
bmQuc2gKaW5kZXggZmExMjAyZWYxYjE1MDZkNGY5Y2M3YjkxNmNhZTgxN2ZjMjgyYzk3Ni4uNmI2
YzhiMmY0MjlmZTBjZTZiODc2ZjBiZTZiNjBlMTdkYzNkMDhhZCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNoCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaApAQCAtMzQsMjIgKzM0LDMyIEBAIHB5
dGhvbiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGUtcHJvdG9jb2wtZXh0ZXJucyAt
byBTb3VyY2UvV2ViQ29yZS9pbnNwCiBqYXZhIC1qYXIgfi9jbG9zdXJlL2NvbXBpbGVyLmphciAt
LWNvbXBpbGF0aW9uX2xldmVsIFNJTVBMRV9PUFRJTUlaQVRJT05TIC0td2FybmluZ19sZXZlbCBW
RVJCT1NFIC0tbGFuZ3VhZ2VfaW4gRUNNQVNDUklQVDUgLS1hY2NlcHRfY29uc3Rfa2V5d29yZCBc
CiAgICAgLS1leHRlcm5zIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJu
cy5qcyBcCiAgICAgLS1leHRlcm5zIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
cHJvdG9jb2wtZXh0ZXJucy5qcyBcCi0gICAgLS1tb2R1bGUganNtb2R1bGVfY29yZToyIFwKKyAg
ICAtLW1vZHVsZSBqc21vZHVsZV91dGlsOjIgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzIFwKLSAgICAtLW1vZHVs
ZSBqc21vZHVsZV9lbnY6MyBcCi0gICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TZXR0aW5ncy5qcyBcCi0gICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Vc2VyTWV0cmljcy5qcyBcCisgICAgLS1tb2R1bGUganNtb2R1bGVf
aG9zdDoxIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMgXAotICAgIC0tbW9kdWxlIGpzbW9kdWxlX3Nk
azo4OmpzbW9kdWxlX2NvcmUsanNtb2R1bGVfZW52IFwKKyAgICAtLW1vZHVsZSBqc21vZHVsZV9j
b21tb246NDpqc21vZHVsZV91dGlsLGpzbW9kdWxlX2hvc3QgXAogICAgICAgICAtLWpzIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQmluYXJ5U2VhcmNoLmpzIFwKKyAgICAgICAg
LS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdC5qcyBcCisgICAg
ICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBc
CisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Vc2VyTWV0
cmljcy5qcyBcCisgICAgLS1tb2R1bGUganNtb2R1bGVfc2RrOjE1OmpzbW9kdWxlX2NvbW1vbixq
c21vZHVsZV9ob3N0IFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMgXAorICAgICAgICAtLWpzIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMgXAorICAg
ICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVs
LmpzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzIFwKICAgICAgICAgLS1qcyBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIFwKLSAgICAgICAgLS1q
cyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgXAot
ICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0Lmpz
IFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtNYW5hZ2VyLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdC5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcyBcCiAgICAgICAgIC0tanMgU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMgXAorICAgICAg
ICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgXAog
ICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VD
YXRlZ29yeS5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9VSVNvdXJjZUNvZGUuanMgXAogICAgIC0tbW9kdWxlIGpzbW9kdWxlX21pc2M6MTA6anNt
b2R1bGVfc2RrIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NoZWNrYm94LmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnRleHRNZW51LmpzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCmluZGV4IDVmOTY0ZDFhOWIw
MTdmYWZkMjg0MGNhMTYxM2VjYjMxNjlmYTVlMGYuLmE4MmU5ZGMyODM2YjcwMmI2NmIyZGFlMDQ4
NjBmNzlkZmQ4MjYwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcwpAQCAtMjM1LDYgKzIzNSw5IEBAIFdlYklu
c3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCisvKioK
KyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludCA9IGZ1bmN0aW9u
KHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQsIHBlcnNpc3Rl
bnQpCiB7CiAgICAgdGhpcy51aVNvdXJjZUNvZGVJZCA9IHVpU291cmNlQ29kZUlkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMK
aW5kZXggMzMzZGVmOWQ5OThkM2MzNDc1M2RmZmFiNjJhMmJiZWUzNTdiOWRlZC4uYTcxN2ZhNTZk
MmU4MDljNWFhODRhYmQwOTM4NWEwODA0ZTYyYmVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC0yMTUsNyArMjE1
LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIGlmIChzaG91bGRGb3JtYXRNZXNzYWdlICYmIHBhcmFtZXRlcnNbaV0udHlwZSA9PT0gInN0
cmluZyIpCiAgICAgICAgICAgICAgICAgZm9ybWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHBhcmFtZXRlcnNbaV0uZGVzY3JpcHRpb24pKTsKICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQoV2Vi
SW5zcGVjdG9yLmNvbnNvbGUuX2Zvcm1hdChwYXJhbWV0ZXJzW2ldKSk7CisgICAgICAgICAgICAg
ICAgZm9ybWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5f
Zm9ybWF0KHBhcmFtZXRlcnNbaV0pKTsKICAgICAgICAgICAgIGlmIChpIDwgcGFyYW1ldGVycy5s
ZW5ndGggLSAxKQogICAgICAgICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIpKTsKICAgICAgICAgfQpAQCAtMjI5LDcgKzIyOSw3
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZ1
bmN0aW9uIGNvbnNvbGVGb3JtYXRXcmFwcGVyKGZvcmNlKQogICAgICAgICB7CiAgICAgICAgICAg
ICByZXR1cm4gZnVuY3Rpb24ob2JqKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5jb25zb2xlLl9mb3JtYXQob2JqLCBmb3JjZSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fZm9ybWF0KG9iaiwgZm9yY2UpOwogICAgICAgICAg
ICAgfTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZU1vZGVsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkODFiM2RiNWNjZWRlYzJhZjdjNzg5
ZTQ3YjIxMGUzZGEyZTMyYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICog
QGNvbnN0cnVjdG9yCisgKi8KK1dlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwgPSBmdW5jdGlvbihk
cmF3ZXIpCit7CisgICAgdGhpcy5tZXNzYWdlcyA9IFtdOworICAgIHRoaXMud2FybmluZ3MgPSAw
OworICAgIHRoaXMuZXJyb3JzID0gMDsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29u
c29sZURpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5Db25zb2xlRGlzcGF0Y2hlcih0aGlzKSk7
Cit9CisKK1dlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzID0geworICAgIENvbnNvbGVD
bGVhcmVkOiAiY29uc29sZS1jbGVhcmVkIiwKKyAgICBNZXNzYWdlQWRkZWQ6ICJjb25zb2xlLW1l
c3NhZ2UtYWRkZWQiLAorfQorCitXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLnByb3RvdHlwZSA9
IHsKKyAgICBlbmFibGVBZ2VudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZC5nZXQoKSkKKyAgICAgICAgICAg
IENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlKTsKKyAgICAKKyAgICAg
ICAgLy8gVGhlcmUgaXMgbm8gY29uc29sZSBhZ2VudCBmb3Igd29ya2VycyB5ZXQuCisgICAgICAg
IGlmICghV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIuaXNXb3JrZXJGcm9udGVuZCgpKQorICAg
ICAgICAgICAgQ29uc29sZUFnZW50LmVuYWJsZSh0aGlzLl9zZXRDb25zb2xlTWVzc2FnZUV4cGly
ZWRDb3VudC5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgX3NldENvbnNvbGVNZXNzYWdlRXhw
aXJlZENvdW50OiBmdW5jdGlvbihjb3VudCkKKyAgICB7CisgICAgICAgIGlmIChjb3VudCkgewor
ICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBTdHJpbmcuc3ByaW50ZihXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIiVkIGNvbnNvbGUgbWVzc2FnZXMgYXJlIG5vdCBzaG93bi4iKSwgY291bnQpOworICAg
ICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5jcmVh
dGVUZXh0TWVzc2FnZShtZXNzYWdlLCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZUxldmVsLldhcm5pbmcpKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBhZGRNZXNzYWdlOiBm
dW5jdGlvbihtc2cpCisgICAgeworICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobXNnKTsKKyAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbnNvbGVN
b2RlbC5FdmVudHMuTWVzc2FnZUFkZGVkLCBtc2cpOworICAgIH0sCisKKyAgICBfaW5jcmVtZW50
RXJyb3JXYXJuaW5nQ291bnQ6IGZ1bmN0aW9uKG1zZykKKyAgICB7CisgICAgICAgIHN3aXRjaCAo
bXNnLmxldmVsKSB7CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlTGV2ZWwuV2FybmluZzoKKyAgICAgICAgICAgICAgICB0aGlzLndhcm5pbmdzICs9
IG1zZy5yZXBlYXREZWx0YTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5FcnJvcjoKKyAgICAg
ICAgICAgICAgICB0aGlzLmVycm9ycyArPSBtc2cucmVwZWF0RGVsdGE7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgcmVxdWVzdENsZWFyTWVzc2FnZXM6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIENvbnNvbGVBZ2VudC5jbGVhckNvbnNvbGVNZXNz
YWdlcygpOworICAgICAgICB0aGlzLmNsZWFyTWVzc2FnZXMoKTsKKyAgICB9LAorCisgICAgY2xl
YXJNZXNzYWdlczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5tZXNzYWdlcyA9IFtd
OworCisgICAgICAgIHRoaXMuZXJyb3JzID0gMDsKKyAgICAgICAgdGhpcy53YXJuaW5ncyA9IDA7
CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNv
bnNvbGVNb2RlbC5FdmVudHMuQ29uc29sZUNsZWFyZWQpOworICAgIH0KK30KKworV2ViSW5zcGVj
dG9yLkNvbnNvbGVNb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVj
dC5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAaW1wbGVtZW50cyB7Q29u
c29sZUFnZW50LkRpc3BhdGNoZXJ9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Db25zb2xlTW9k
ZWx9IGNvbnNvbGUKKyAqLworV2ViSW5zcGVjdG9yLkNvbnNvbGVEaXNwYXRjaGVyID0gZnVuY3Rp
b24oY29uc29sZSkKK3sKKyAgICB0aGlzLl9jb25zb2xlID0gY29uc29sZTsKK30KKworV2ViSW5z
cGVjdG9yLkNvbnNvbGVEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKKyAgICBtZXNzYWdlQWRkZWQ6
IGZ1bmN0aW9uKHBheWxvYWQpCisgICAgeworICAgICAgICB2YXIgY29uc29sZU1lc3NhZ2UgPSBu
ZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKAorICAgICAgICAgICAgcGF5bG9hZC5zb3Vy
Y2UsCisgICAgICAgICAgICBwYXlsb2FkLnR5cGUsCisgICAgICAgICAgICBwYXlsb2FkLmxldmVs
LAorICAgICAgICAgICAgcGF5bG9hZC5saW5lLAorICAgICAgICAgICAgcGF5bG9hZC51cmwsCisg
ICAgICAgICAgICBwYXlsb2FkLnJlcGVhdENvdW50LAorICAgICAgICAgICAgcGF5bG9hZC50ZXh0
LAorICAgICAgICAgICAgcGF5bG9hZC5wYXJhbWV0ZXJzLAorICAgICAgICAgICAgcGF5bG9hZC5z
dGFja1RyYWNlLAorICAgICAgICAgICAgcGF5bG9hZC5uZXR3b3JrUmVxdWVzdElkID8gV2ViSW5z
cGVjdG9yLm5ldHdvcmtSZXNvdXJjZUJ5SWQocGF5bG9hZC5uZXR3b3JrUmVxdWVzdElkKSA6IHVu
ZGVmaW5lZCk7CisgICAgICAgIHRoaXMuX2NvbnNvbGUuYWRkTWVzc2FnZShjb25zb2xlTWVzc2Fn
ZSk7CisgICAgfSwKKworICAgIG1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQ6IGZ1bmN0aW9uKGNv
dW50KQorICAgIHsKKyAgICAgICAgdmFyIG1zZyA9IHRoaXMuX2NvbnNvbGUucHJldmlvdXNNZXNz
YWdlOworICAgICAgICBpZiAoIW1zZykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2
YXIgcHJldlJlcGVhdENvdW50ID0gbXNnLnRvdGFsUmVwZWF0Q291bnQ7CisKKyAgICAgICAgaWYg
KCF0aGlzLl9jb25zb2xlLmNvbW1hbmRTaW5jZVByZXZpb3VzTWVzc2FnZSkgeworICAgICAgICAg
ICAgbXNnLnJlcGVhdERlbHRhID0gY291bnQgLSBwcmV2UmVwZWF0Q291bnQ7CisgICAgICAgICAg
ICBtc2cucmVwZWF0Q291bnQgPSBtc2cucmVwZWF0Q291bnQgKyBtc2cucmVwZWF0RGVsdGE7Cisg
ICAgICAgICAgICBtc2cudG90YWxSZXBlYXRDb3VudCA9IGNvdW50OworICAgICAgICAgICAgbXNn
Ll91cGRhdGVSZXBlYXRDb3VudCgpOworICAgICAgICAgICAgdGhpcy5fY29uc29sZS5faW5jcmVt
ZW50RXJyb3JXYXJuaW5nQ291bnQobXNnKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbnNvbGUuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzLk1l
c3NhZ2VBZGRlZCwgbXNnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBtc2dD
b3B5ID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZShtc2cuc291cmNlLCBtc2cudHlw
ZSwgbXNnLmxldmVsLCBtc2cubGluZSwgbXNnLnVybCwgY291bnQgLSBwcmV2UmVwZWF0Q291bnQs
IG1zZy5fbWVzc2FnZVRleHQsIG1zZy5fcGFyYW1ldGVycywgbXNnLl9zdGFja1RyYWNlLCBtc2cu
X3JlcXVlc3QpOworICAgICAgICAgICAgbXNnQ29weS50b3RhbFJlcGVhdENvdW50ID0gY291bnQ7
CisgICAgICAgICAgICBtc2dDb3B5Ll9mb3JtYXRNZXNzYWdlKCk7CisgICAgICAgICAgICB0aGlz
Ll9jb25zb2xlLmFkZE1lc3NhZ2UobXNnQ29weSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAg
bWVzc2FnZXNDbGVhcmVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIVdlYkluc3Bl
Y3Rvci5zZXR0aW5ncy5wcmVzZXJ2ZUNvbnNvbGVMb2cuZ2V0KCkpCisgICAgICAgICAgICB0aGlz
Ll9jb25zb2xlLmNsZWFyTWVzc2FnZXMoKTsKKyAgICB9Cit9CisKKy8qKgorICogQHR5cGUgez9X
ZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsfQorICovCitXZWJJbnNwZWN0b3IuY29uc29sZSA9IG51
bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNv
bGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBh
bmVsLmpzCmluZGV4IGRhNGI3NDNmZTQwM2NkZTE5YWZlYjM2N2M4ZWQ0YmJlZjE3YWQwMDMuLmQy
ZTczY2RlZGJhNjcwYTAzNjU5ZWY0MmYxOGVkZjRhODQ2MDhhYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCkBAIC0yOSw4ICsy
OSw4IEBACiBXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsID0gZnVuY3Rpb24oKQogewogICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsICJjb25zb2xlIik7Ci0gICAgV2ViSW5zcGVjdG9y
LmNvbnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcuRXZlbnRz
LkVudHJ5QWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQsIHRoaXMpOwotICAgIFdlYklu
c3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3
LkV2ZW50cy5Db25zb2xlQ2xlYXJlZCwgdGhpcy5fY29uc29sZUNsZWFyZWQsIHRoaXMpOworICAg
IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldy5FdmVudHMuRW50cnlBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRlZCwg
dGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xlYXJlZCwgdGhpcy5fY29uc29s
ZUNsZWFyZWQsIHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlw
ZSA9IHsKQEAgLTk4LDcgKzk4LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuX3NlYXJjaFJlZ2V4ID0gY3JlYXRlU2VhcmNoUmVnZXgocXVl
cnksICJnIik7CiAKICAgICAgICAgdGhpcy5fc2VhcmNoUmVzdWx0cyA9IFtdOwotICAgICAgICB2
YXIgbWVzc2FnZXMgPSBXZWJJbnNwZWN0b3IuY29uc29sZS5tZXNzYWdlczsKKyAgICAgICAgdmFy
IG1lc3NhZ2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOwogICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICBp
ZiAobWVzc2FnZXNbaV0ubWF0Y2hlc1JlZ2V4KHRoaXMuX3NlYXJjaFJlZ2V4KSkgewogICAgICAg
ICAgICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHMucHVzaChtZXNzYWdlc1tpXSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA4
MDFlZTQ1MTM5ZjczOWE3NTNmNGViMjRkNzUyMzJmYjg0ODQ4YzE2Li44OWNiYjMzMjEyZDNiYTli
N2EzZDMzNDYxNDNmODJhN2M4ZGRlMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTM4LDcgKzM4LDcgQEAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24oZHJhd2VyKQogCiAgICAgdGhpcy5jbGVhckJ1dHRv
biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGVhci1jb25zb2xlLXN0YXR1cy1iYXItaXRl
bSIpOwogICAgIHRoaXMuY2xlYXJCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkNsZWFyIGNvbnNvbGUgbG9nLiIpOwotICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl9jbGVhckJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2Up
OworICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9y
ZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICB0aGlzLl9jb250
ZXh0U2VsZWN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlLWNvbnRl
eHQiKTsKICAgICBpZiAoV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIuaXNXb3JrZXJGcm9udGVu
ZCgpKQpAQCAtMTAwLDc0ICsxMDAsMTggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVu
Y3Rpb24oZHJhd2VyKQogICAgICAgICAic3RyaW5nIjogdGhpcy5fZm9ybWF0c3RyaW5nCiAgICAg
fTsKIAotICAgIHRoaXMuX3JlZ2lzdGVyQ29uc29sZURvbWFpbkRpc3BhdGNoZXIoKTsKLQogICAg
IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZC5hZGRDaGFuZ2VMaXN0
ZW5lcih0aGlzLl9tb25pdG9yaW5nWEhSRW5hYmxlZFNldHRpbmdDaGFuZ2VkLmJpbmQodGhpcykp
OworCisgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuQ29uc29sZU1vZGVsLkV2ZW50cy5NZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdl
QWRkZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuQ29uc29sZUNsZWFyZWQsIHRoaXMuX2Nv
bnNvbGVDbGVhcmVkLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50
cyA9IHsKICAgQ29uc29sZUNsZWFyZWQ6ICJjb25zb2xlLWNsZWFyZWQiLAogICBFbnRyeUFkZGVk
OiAiY29uc29sZS1lbnRyeS1hZGRlZCIsCi0gIE1lc3NhZ2VBZGRlZDogImNvbnNvbGUtbWVzc2Fn
ZS1hZGRlZCIKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKLSAg
ICBfcmVnaXN0ZXJDb25zb2xlRG9tYWluRGlzcGF0Y2hlcjogZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHZhciBjb25zb2xlID0gdGhpczsKLSAgICAgICAgdmFyIGRpc3BhdGNoZXIgPSB7Ci0gICAgICAg
ICAgICBtZXNzYWdlQWRkZWQ6IGZ1bmN0aW9uKHBheWxvYWQpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgdmFyIGNvbnNvbGVNZXNzYWdlID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZSgKLSAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5zb3VyY2UsCi0gICAgICAgICAg
ICAgICAgICAgIHBheWxvYWQudHlwZSwKLSAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5sZXZl
bCwKLSAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5saW5lLAotICAgICAgICAgICAgICAgICAg
ICBwYXlsb2FkLnVybCwKLSAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5yZXBlYXRDb3VudCwK
LSAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC50ZXh0LAotICAgICAgICAgICAgICAgICAgICBw
YXlsb2FkLnBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgICAgIHBheWxvYWQuc3RhY2tUcmFj
ZSwKLSAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5uZXR3b3JrUmVxdWVzdElkID8gV2ViSW5z
cGVjdG9yLm5ldHdvcmtSZXNvdXJjZUJ5SWQocGF5bG9hZC5uZXR3b3JrUmVxdWVzdElkKSA6IHVu
ZGVmaW5lZCk7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hZGRNZXNzYWdlKGNvbnNvbGVNZXNz
YWdlKTsKLSAgICAgICAgICAgIH0sCi0KLSAgICAgICAgICAgIG1lc3NhZ2VSZXBlYXRDb3VudFVw
ZGF0ZWQ6IGZ1bmN0aW9uKGNvdW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZh
ciBtc2cgPSBjb25zb2xlLnByZXZpb3VzTWVzc2FnZTsKLSAgICAgICAgICAgICAgICB2YXIgcHJl
dlJlcGVhdENvdW50ID0gbXNnLnRvdGFsUmVwZWF0Q291bnQ7Ci0KLSAgICAgICAgICAgICAgICBp
ZiAoIWNvbnNvbGUuY29tbWFuZFNpbmNlUHJldmlvdXNNZXNzYWdlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIG1zZy5yZXBlYXREZWx0YSA9IGNvdW50IC0gcHJldlJlcGVhdENvdW50OwotICAgICAg
ICAgICAgICAgICAgICBtc2cucmVwZWF0Q291bnQgPSBtc2cucmVwZWF0Q291bnQgKyBtc2cucmVw
ZWF0RGVsdGE7Ci0gICAgICAgICAgICAgICAgICAgIG1zZy50b3RhbFJlcGVhdENvdW50ID0gY291
bnQ7Ci0gICAgICAgICAgICAgICAgICAgIG1zZy5fdXBkYXRlUmVwZWF0Q291bnQoKTsKLSAgICAg
ICAgICAgICAgICAgICAgY29uc29sZS5faW5jcmVtZW50RXJyb3JXYXJuaW5nQ291bnQobXNnKTsK
LSAgICAgICAgICAgICAgICAgICAgY29uc29sZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5NZXNzYWdlQWRkZWQsIG1zZyk7Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIG1zZ0NvcHkgPSBuZXcg
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKG1zZy5zb3VyY2UsIG1zZy50eXBlLCBtc2cubGV2
ZWwsIG1zZy5saW5lLCBtc2cudXJsLCBjb3VudCAtIHByZXZSZXBlYXRDb3VudCwgbXNnLl9tZXNz
YWdlVGV4dCwgbXNnLl9wYXJhbWV0ZXJzLCBtc2cuX3N0YWNrVHJhY2UsIG1zZy5fcmVxdWVzdCk7
Ci0gICAgICAgICAgICAgICAgICAgIG1zZ0NvcHkudG90YWxSZXBlYXRDb3VudCA9IGNvdW50Owot
ICAgICAgICAgICAgICAgICAgICBtc2dDb3B5Ll9mb3JtYXRNZXNzYWdlKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGNvbnNvbGUuYWRkTWVzc2FnZShtc2dDb3B5KTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9LAotCi0gICAgICAgICAgICBtZXNzYWdlc0NsZWFyZWQ6IGZ1bmN0aW9u
KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5zZXR0
aW5ncy5wcmVzZXJ2ZUNvbnNvbGVMb2cuZ2V0KCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnNv
bGUuY2xlYXJNZXNzYWdlcygpOwotICAgICAgICAgICAgfSwKLSAgICAgICAgfQotICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29uc29sZURpc3BhdGNoZXIoZGlzcGF0Y2hlcik7Ci0g
ICAgfSwKLQotICAgIHNldENvbnNvbGVNZXNzYWdlRXhwaXJlZENvdW50OiBmdW5jdGlvbihjb3Vu
dCkKLSAgICB7Ci0gICAgICAgIGlmIChjb3VudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBTdHJpbmcuc3ByaW50ZihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIGNvbnNvbGUgbWVzc2Fn
ZXMgYXJlIG5vdCBzaG93bi4iKSwgY291bnQpOwotICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdl
KFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5jcmVhdGVUZXh0TWVzc2FnZShtZXNzYWdlLCBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLldhcm5pbmcpKTsKLSAgICAg
ICAgfQotICAgIH0sCi0KICAgICBhZGRDb250ZXh0OiBmdW5jdGlvbihjb250ZXh0KQogICAgIHsK
ICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwpA
QCAtMzEwLDIwICsyNTQsMjggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fc2Nyb2xsSW50b1ZpZXdUaW1lciA9IHNldFRpbWVvdXQoc2Nyb2xs
SW50b1ZpZXcuYmluZCh0aGlzKSwgMjApOwogICAgIH0sCiAKLSAgICBhZGRNZXNzYWdlOiBmdW5j
dGlvbihtc2cpCisgICAgX2NvbnNvbGVNZXNzYWdlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKLSAgICAgICAgdmFyIHNob3VsZFNjcm9sbFRvTGFzdE1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2Vz
RWxlbWVudC5pc1Njcm9sbGVkVG9Cb3R0b20oKTsKKyAgICAgICAgdGhpcy5jb21tYW5kU2luY2VQ
cmV2aW91c01lc3NhZ2UgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5wcmV2aW91c01lc3NhZ2UgPSBl
dmVudC5kYXRhOworICAgICAgICB0aGlzLl9hcHBlbmRDb25zb2xlTWVzc2FnZShldmVudC5kYXRh
KTsKKyAgICB9LAogCi0gICAgICAgIGlmIChtc2cgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UgJiYgIShtc2cgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1h
bmRSZXN1bHQpKSB7Ci0gICAgICAgICAgICB0aGlzLl9pbmNyZW1lbnRFcnJvcldhcm5pbmdDb3Vu
dChtc2cpOwotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5NZXNzYWdlQWRkZWQsIG1zZyk7Ci0gICAgICAgICAg
ICB0aGlzLmNvbW1hbmRTaW5jZVByZXZpb3VzTWVzc2FnZSA9IGZhbHNlOwotICAgICAgICAgICAg
dGhpcy5wcmV2aW91c01lc3NhZ2UgPSBtc2c7Ci0gICAgICAgIH0gZWxzZSBpZiAobXNnIGluc3Rh
bmNlb2YgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kKSB7Ci0gICAgICAgICAgICBpZiAodGhp
cy5wcmV2aW91c01lc3NhZ2UpIHsKLSAgICAgICAgICAgICAgICB0aGlzLmNvbW1hbmRTaW5jZVBy
ZXZpb3VzTWVzc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBfYXBw
ZW5kQ29uc29sZUNvbW1hbmQ6IGZ1bmN0aW9uKG1zZykKKyAgICB7CisgICAgICAgIGlmICh0aGlz
LnByZXZpb3VzTWVzc2FnZSkKKyAgICAgICAgICAgIHRoaXMuY29tbWFuZFNpbmNlUHJldmlvdXNN
ZXNzYWdlID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fYXBwZW5kQ29uc29sZU1lc3NhZ2UobXNnKTsK
KyAgICB9LAorCisgICAgX2FwcGVuZENvbnNvbGVDb21tYW5kUmVzdWx0OiBmdW5jdGlvbihtc2cp
CisgICAgeworICAgICAgICB0aGlzLl9hcHBlbmRDb25zb2xlTWVzc2FnZShtc2cpOworICAgIH0s
CisKKyAgICBfYXBwZW5kQ29uc29sZU1lc3NhZ2U6IGZ1bmN0aW9uKG1zZykKKyAgICB7CisgICAg
ICAgIHZhciBzaG91bGRTY3JvbGxUb0xhc3RNZXNzYWdlID0gdGhpcy5tZXNzYWdlc0VsZW1lbnQu
aXNTY3JvbGxlZFRvQm90dG9tKCk7CiAKICAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1zZyk7
CiAKQEAgLTM0OCwzOCArMzAwLDE3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5FdmVudHMuRW50cnlBZGRlZCwgbXNnKTsKICAgICB9LAogCi0gICAgX2lu
Y3JlbWVudEVycm9yV2FybmluZ0NvdW50OiBmdW5jdGlvbihtc2cpCi0gICAgewotICAgICAgICBz
d2l0Y2ggKG1zZy5sZXZlbCkgewotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZUxldmVsLldhcm5pbmc6Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLndhcm5pbmdzICs9IG1zZy5yZXBlYXREZWx0YTsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZl
bC5FcnJvcjoKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZXJyb3JzICs9IG1zZy5yZXBl
YXREZWx0YTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0sCi0KLSAg
ICByZXF1ZXN0Q2xlYXJNZXNzYWdlczogZnVuY3Rpb24oKQorICAgIF9jb25zb2xlQ2xlYXJlZDog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgQ29uc29sZUFnZW50LmNsZWFyQ29uc29sZU1lc3Nh
Z2VzKCk7Ci0gICAgICAgIHRoaXMuY2xlYXJNZXNzYWdlcygpOwotICAgIH0sCi0KLSAgICBjbGVh
ck1lc3NhZ2VzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcuRXZlbnRzLkNvbnNvbGVDbGVhcmVk
KTsKLQogICAgICAgICB0aGlzLm1lc3NhZ2VzID0gW107CiAKICAgICAgICAgdGhpcy5jdXJyZW50
R3JvdXAgPSB0aGlzLnRvcEdyb3VwOwogICAgICAgICB0aGlzLnRvcEdyb3VwLm1lc3NhZ2VzRWxl
bWVudC5yZW1vdmVDaGlsZHJlbigpOwogCi0gICAgICAgIFdlYkluc3BlY3Rvci5lcnJvcnMgPSAw
OwotICAgICAgICBXZWJJbnNwZWN0b3Iud2FybmluZ3MgPSAwOwotCiAgICAgICAgIGRlbGV0ZSB0
aGlzLmNvbW1hbmRTaW5jZVByZXZpb3VzTWVzc2FnZTsKICAgICAgICAgZGVsZXRlIHRoaXMucHJl
dmlvdXNNZXNzYWdlOworICAgICAgICAKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xlYXJlZCk7CiAg
ICAgfSwKIAogICAgIGNvbXBsZXRpb25zOiBmdW5jdGlvbih3b3JkUmFuZ2UsIGJlc3RNYXRjaE9u
bHksIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaykKQEAgLTUxNCwxMSArNDQ1LDYgQEAgV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgY29tcGxldGlvbnNSZWFk
eUNhbGxiYWNrKHJlc3VsdHMpOwogICAgIH0sCiAKLSAgICBfY2xlYXJCdXR0b25DbGlja2VkOiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLnJlcXVlc3RDbGVhck1lc3NhZ2VzKCk7Ci0g
ICAgfSwKLQogICAgIF9oYW5kbGVDb250ZXh0TWVudUV2ZW50OiBmdW5jdGlvbihldmVudCkKICAg
ICB7CiAgICAgICAgIGlmICghd2luZG93LmdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkKSB7CkBA
IC01NDUsNyArNDcxLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZyhXZWJJbnNwZWN0b3IudXNlTG93ZXJDYXNlTWVudVRpdGxlcygpID8gIlByZXNlcnZlIGxv
ZyB1cG9uIG5hdmlnYXRpb24iIDogIlByZXNlcnZlIExvZyB1cG9uIE5hdmlnYXRpb24iKSwgcHJl
c2VydmVMb2dJdGVtQWN0aW9uLmJpbmQodGhpcyksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcmVz
ZXJ2ZUNvbnNvbGVMb2cuZ2V0KCkpOwogCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFy
YXRvcigpOwotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZyhXZWJJbnNwZWN0b3IudXNlTG93ZXJDYXNlTWVudVRpdGxlcygpID8gIkNsZWFyIGNvbnNv
bGUiIDogIkNsZWFyIENvbnNvbGUiKSwgdGhpcy5yZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRo
aXMpKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoV2ViSW5zcGVjdG9yLnVzZUxvd2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJDbGVhciBjb25zb2xl
IiA6ICJDbGVhciBDb25zb2xlIiksIHRoaXMuX3JlcXVlc3RDbGVhck1lc3NhZ2VzLmJpbmQodGhp
cykpOwogICAgICAgICBjb250ZXh0TWVudS5zaG93KGV2ZW50KTsKICAgICB9LAogCkBAIC01NzUs
MTAgKzUwMSwxMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICB2YXIgc2hvcnRjdXQgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dDsKICAgICAg
ICAgdmFyIHNob3J0Y3V0SyA9IHNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJrIiwgV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLk1ldGEpOwogICAgICAgICAvLyBUaGlzIGNh
c2UgcmVxdWlyZXMgYSBzZXBhcmF0ZSBib3VuZCBmdW5jdGlvbiBhcyBpdHMgaXNNYWNPbmx5IHBy
b3BlcnR5IHNob3VsZCBub3QgYmUgc2hhcmVkIGFtb25nIGRpZmZlcmVudCBzaG9ydGN1dCBoYW5k
bGVycy4KLSAgICAgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0Sy5rZXldID0gdGhpcy5yZXF1
ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRoaXMpOworICAgICAgICB2YXIgY2xlYXJDb25zb2xlSGFu
ZGxlciA9IHRoaXMuX3JlcXVlc3RDbGVhck1lc3NhZ2VzLmJpbmQodGhpcyk7CisgICAgICAgIHRo
aXMuX3Nob3J0Y3V0c1tzaG9ydGN1dEsua2V5XSA9IGNsZWFyQ29uc29sZUhhbmRsZXI7CiAgICAg
ICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dEsua2V5XS5pc01hY09ubHkgPSB0cnVlOwogCi0g
ICAgICAgIHZhciBjbGVhckNvbnNvbGVIYW5kbGVyID0gdGhpcy5yZXF1ZXN0Q2xlYXJNZXNzYWdl
cy5iaW5kKHRoaXMpOwogICAgICAgICB2YXIgc2hvcnRjdXRMID0gc2hvcnRjdXQubWFrZURlc2Ny
aXB0b3IoImwiLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybCk7
CiAgICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dEwua2V5XSA9IGNsZWFyQ29uc29sZUhh
bmRsZXI7CiAKQEAgLTYwNiw2ICs1MzIsMTEgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQuc2hvcnRjdXRUb1N0
cmluZyhzaG9ydGN1dC5LZXlzLkVudGVyKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeGVjdXRl
IGNvbW1hbmQiKSk7CiAgICAgfSwKIAorICAgIF9yZXF1ZXN0Q2xlYXJNZXNzYWdlczogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUucmVxdWVzdENsZWFyTWVz
c2FnZXMoKTsKKyAgICB9LAorCiAgICAgX3Byb21wdEtleURvd246IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKICAgICAgICAgaWYgKGlzRW50ZXJLZXkoZXZlbnQpKSB7CkBAIC02NjcsMjMgKzU5OCwy
MiBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgIHZhciBjb21tYW5kTWVzc2FnZSA9IG5ldyBXZWJJbnNwZWN0b3Iu
Q29uc29sZUNvbW1hbmQoc3RyKTsKLSAgICAgICAgdGhpcy5hZGRNZXNzYWdlKGNvbW1hbmRNZXNz
YWdlKTsKKyAgICAgICAgdGhpcy5fYXBwZW5kQ29uc29sZUNvbW1hbmQoY29tbWFuZE1lc3NhZ2Up
OwogCi0gICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICAgZnVuY3Rpb24gcHJpbnRSZXN1
bHQocmVzdWx0LCB3YXNUaHJvd24pCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghcmVzdWx0
KQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgc2VsZi5wcm9tcHQuaGlz
dG9yeS5wdXNoKHN0cik7Ci0gICAgICAgICAgICBzZWxmLnByb21wdC5oaXN0b3J5T2Zmc2V0ID0g
MDsKLSAgICAgICAgICAgIHNlbGYucHJvbXB0LnRleHQgPSAiIjsKKyAgICAgICAgICAgIHRoaXMu
cHJvbXB0Lmhpc3RvcnkucHVzaChzdHIpOworICAgICAgICAgICAgdGhpcy5wcm9tcHQuaGlzdG9y
eU9mZnNldCA9IDA7CisgICAgICAgICAgICB0aGlzLnByb21wdC50ZXh0ID0gIiI7CiAKLSAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jb25zb2xlSGlzdG9yeS5zZXQoc2VsZi5wcm9t
cHQuaGlzdG9yeS5zbGljZSgtMzApKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5jb25zb2xlSGlzdG9yeS5zZXQodGhpcy5wcm9tcHQuaGlzdG9yeS5zbGljZSgtMzApKTsKIAot
ICAgICAgICAgICAgc2VsZi5hZGRNZXNzYWdlKG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1h
bmRSZXN1bHQocmVzdWx0LCB3YXNUaHJvd24sIGNvbW1hbmRNZXNzYWdlKSk7CisgICAgICAgICAg
ICB0aGlzLl9hcHBlbmRDb25zb2xlQ29tbWFuZFJlc3VsdChuZXcgV2ViSW5zcGVjdG9yLkNvbnNv
bGVDb21tYW5kUmVzdWx0KHJlc3VsdCwgd2FzVGhyb3duLCBjb21tYW5kTWVzc2FnZSkpOwogICAg
ICAgICB9Ci0gICAgICAgIHRoaXMuZXZhbEluSW5zcGVjdGVkV2luZG93KHN0ciwgImNvbnNvbGUi
LCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcHJpbnRSZXN1bHQpOworICAgICAgICB0aGlz
LmV2YWxJbkluc3BlY3RlZFdpbmRvdyhzdHIsICJjb25zb2xlIiwgdHJ1ZSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHByaW50UmVzdWx0LmJpbmQodGhpcykpOwogCiAgICAgICAgIFdlYkluc3BlY3Rv
ci51c2VyTWV0cmljcy5Db25zb2xlRXZhbHVhdGVkLnJlY29yZCgpOwogICAgIH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5k
ZXggMDc0ZjA1YjcwZWU0N2MyZmM1MzQxMzM1NWFjYmRkOGQ0NDk1ZjdlOC4uNTc1ZTFjMGRlZDQ2
NzU2ODFmY2I0NTI0ZTg5NjUyNDhjYjhjYmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtMzAsNiArMzAsNyBAQAog
CiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9
CiAgKi8KIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsID0gZnVuY3Rpb24oKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IGNjYTE0ZTViOTY4YTlkYWEwMmRiZWZkZWJmZmY4
MTZiNDMwMjdkNGYuLmVkYWY0NmFhZTFjMDM4ODc2Y2RmNzQ0NWRhMWRjOGM2MzBhYjU1ZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTUxLDggKzUxLDggQEAgV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbC5FdmVudHMuRGVidWdnZXJSZXN1bWVkLCB0aGlzLl9kZWJ1Z2dlclJlc3VtZWQsIHRoaXMp
OwogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlJlc2V0LCB0aGlzLl9kZWJ1Z2dlclJlc2V0LCB0
aGlzKTsKIAotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5NZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNz
YWdlQWRkZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xlYXJlZCwgdGhpcy5f
Y29uc29sZUNsZWFyZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuTWVzc2FnZUFkZGVkLCB0
aGlzLl9jb25zb2xlTWVzc2FnZUFkZGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuY29uc29s
ZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzLkNvbnNv
bGVDbGVhcmVkLCB0aGlzLl9jb25zb2xlQ2xlYXJlZCwgdGhpcyk7CiAKICAgICBuZXcgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxSZXNvdXJjZUJpbmRpbmcodGhpcyk7CiB9
CkBAIC0xMTMsMTIgKzExMywxMiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3NvdXJjZUZpbGVzW3NvdXJjZUZpbGVJ
ZF0ucmVxdWVzdENvbnRlbnQoY2FsbGJhY2spOwogICAgIH0sCiAKLSAgICBhZGRTb3VyY2VNYXBw
aW5nTGlzdGVuZXI6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlSWQsIGxpc3RlbmVyKQorICAg
IGFkZFNvdXJjZU1hcHBpbmdMaXN0ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzY3JpcHRJZCwg
bGlzdGVuZXIpCiAgICAgewogICAgICAgICB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzLnB1
c2gobGlzdGVuZXIpOwogICAgIH0sCiAKLSAgICByZW1vdmVTb3VyY2VNYXBwaW5nTGlzdGVuZXI6
IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlSWQsIGxpc3RlbmVyKQorICAgIHJlbW92ZVNvdXJj
ZU1hcHBpbmdMaXN0ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzY3JpcHRJZCwgbGlzdGVuZXIp
CiAgICAgewogICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMuCiAgICAgfSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0xvZy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0xvZy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43YmE2MGYzNWY0NGFlMzRkYzA2MGIyMjI3YmJjNTcyNzNlYjMzMDdlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpz
CkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCitXZWJJbnNwZWN0b3Iu
TmV0d29ya0xvZyA9IGZ1bmN0aW9uKCkKK3sKKyAgICB0aGlzLl9yZXNvdXJjZXMgPSBbXTsKKyAg
ICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZVN0YXJ0ZWQsIHRoaXMuX29uUmVz
b3VyY2VTdGFydGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBl
cy5GcmFtZU5hdmlnYXRlZCwgdGhpcy5fZnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOworfQorCitXZWJJ
bnNwZWN0b3IuTmV0d29ya0xvZy5wcm90b3R5cGUgPSB7CisgICAgZ2V0IHJlc291cmNlcygpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VzOworICAgIH0sCisKKyAgICBfZnJh
bWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFldmVudC5k
YXRhLmlzTWFpbkZyYW1lKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBQcmVzZXJ2
ZSByZXNvdXJjZXMgZnJvbSB0aGUgbmV3IHNlc3Npb24uCisgICAgICAgIHZhciBvbGRSZXNvdXJj
ZXMgPSB0aGlzLl9yZXNvdXJjZXMuc3BsaWNlKDAsIHRoaXMuX3Jlc291cmNlcy5sZW5ndGgpOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9sZFJlc291cmNlcy5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgICAgaWYgKG9sZFJlc291cmNlc1tpXS5sb2FkZXJJZCA9PT0gZXZlbnQuZGF0YS5s
b2FkZXJJZCkKKyAgICAgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChvbGRSZXNvdXJj
ZXNbaV0pOworICAgICAgICB9CisgICAgfSwKKworICAgIF9vblJlc291cmNlU3RhcnRlZDogZnVu
Y3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChldmVudC5k
YXRhKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrTWFuYWdlci5qcwppbmRleCA3ZGViMDAwNDJkZmMzNWQ4OWFkMWJkMWFjYjVm
YjYyODQ3YTkxYzhiLi4xNGIxZjQ0MWU5MjJjNDExYTc1YTNkOTM3MDg4NDQ5NjA0NWZkODY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5h
Z2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01h
bmFnZXIuanMKQEAgLTMwLDYgKzMwLDcgQEAKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKKyAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQogICovCiBXZWJJbnNwZWN0b3IuTmV0d29ya01h
bmFnZXIgPSBmdW5jdGlvbigpCiB7CkBAIC0xMjQsNiArMTI1LDQyIEBAIFdlYkluc3BlY3Rvci5O
ZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXNvdXJjZS5jYWNo
ZWQgPSB0cnVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXNvdXJjZS50aW1pbmcgPSBy
ZXNwb25zZS50aW1pbmc7CisKKyAgICAgICAgaWYgKCF0aGlzLl9taW1lVHlwZUlzQ29uc2lzdGVu
dFdpdGhUeXBlKHJlc291cmNlKSkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUu
YWRkTWVzc2FnZShuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLk90aGVyLAorICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2csCisgICAgICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5XYXJuaW5nLAorICAgICAg
ICAgICAgICAgIC0xLAorICAgICAgICAgICAgICAgIHRoaXMudXJsLAorICAgICAgICAgICAgICAg
IDEsCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNvdXJjZSBpbnRl
cnByZXRlZCBhcyAlcyBidXQgdHJhbnNmZXJyZWQgd2l0aCBNSU1FIHR5cGUgJXMuIiwgV2ViSW5z
cGVjdG9yLlJlc291cmNlLlR5cGUudG9VSVN0cmluZyh0aGlzLnR5cGUpLCB0aGlzLm1pbWVUeXBl
KSkpOworICAgICAgICB9CisgICAgfSwKKworICAgIF9taW1lVHlwZUlzQ29uc2lzdGVudFdpdGhU
eXBlOiBmdW5jdGlvbihyZXNvdXJjZSkKKyAgICB7CisgICAgICAgIC8vIElmIHN0YXR1cyBpcyBh
biBlcnJvciwgY29udGVudCBpcyBsaWtlbHkgdG8gYmUgb2YgYW4gaW5jb25zaXN0ZW50IHR5cGUs
CisgICAgICAgIC8vIGFzIGl0J3MgZ29pbmcgdG8gYmUgYW4gZXJyb3IgbWVzc2FnZS4gV2UgZG8g
bm90IHdhbnQgdG8gZW1pdCBhIHdhcm5pbmcKKyAgICAgICAgLy8gZm9yIHRoaXMsIHRob3VnaCwg
YXMgdGhpcyB3aWxsIGFscmVhZHkgYmUgcmVwb3J0ZWQgYXMgcmVzb3VyY2UgbG9hZGluZyBmYWls
dXJlLgorICAgICAgICAvLyBBbHNvLCBpZiBhIFVSTCBsaWtlIGh0dHA6Ly9sb2NhbGhvc3Qvd2lr
aS9sb2FkLnBocD9kZWJ1Zz10cnVlJmxhbmc9ZW4gcHJvZHVjZXMgdGV4dC9jc3MgYW5kIGdldHMg
cmVsb2FkZWQsCisgICAgICAgIC8vIGl0IGlzIDMwNCBOb3QgTW9kaWZpZWQgYW5kIGl0cyBndWVz
c2VkIG1pbWUtdHlwZSBpcyB0ZXh0L3BocCwgd2hpY2ggaXMgd3JvbmcuCisgICAgICAgIC8vIERv
bid0IGNoZWNrIGZvciBtaW1lLXR5cGVzIGluIDMwNC1yZXNvdXJjZXMuCisgICAgICAgIGlmIChy
ZXNvdXJjZS5oYXNFcnJvclN0YXR1c0NvZGUoKSB8fCByZXNvdXJjZS5zdGF0dXNDb2RlID09PSAz
MDQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBpZiAodHlwZW9mIHJlc291
cmNlLnR5cGUgPT09ICJ1bmRlZmluZWQiCisgICAgICAgICAgICB8fCByZXNvdXJjZS50eXBlID09
PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5PdGhlcgorICAgICAgICAgICAgfHwgcmVzb3Vy
Y2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuWEhSCisgICAgICAgICAgICB8
fCByZXNvdXJjZS50eXBlID09PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5XZWJTb2NrZXQp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBpZiAoIXJlc291cmNlLm1pbWVU
eXBlKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIE1pZ2h0IGJlIG5vdCBrbm93biBmb3Ig
Y2FjaGVkIHJlc291cmNlcyB3aXRoIG51bGwgcmVzcG9uc2VzLgorCisgICAgICAgIGlmIChyZXNv
dXJjZS5taW1lVHlwZSBpbiBXZWJJbnNwZWN0b3IuTUlNRVR5cGVzKQorICAgICAgICAgICAgcmV0
dXJuIHJlc291cmNlLnR5cGUgaW4gV2ViSW5zcGVjdG9yLk1JTUVUeXBlc1tyZXNvdXJjZS5taW1l
VHlwZV07CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0sCiAKICAgICBfdXBkYXRlUmVz
b3VyY2VXaXRoQ2FjaGVkUmVzb3VyY2U6IGZ1bmN0aW9uKHJlc291cmNlLCBjYWNoZWRSZXNvdXJj
ZSkKQEAgLTMyNSwzNSArMzYyLDYgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnBy
b3RvdHlwZSA9IHsKIH0KIAogLyoqCi0gKiBAY29uc3RydWN0b3IKKyAqIEB0eXBlIHs/V2ViSW5z
cGVjdG9yLk5ldHdvcmtNYW5hZ2VyfQogICovCi1XZWJJbnNwZWN0b3IuTmV0d29ya0xvZyA9IGZ1
bmN0aW9uKCkKLXsKLSAgICB0aGlzLl9yZXNvdXJjZXMgPSBbXTsKLSAgICBXZWJJbnNwZWN0b3Iu
bmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFn
ZXIuRXZlbnRUeXBlcy5SZXNvdXJjZVN0YXJ0ZWQsIHRoaXMuX29uUmVzb3VyY2VTdGFydGVkLCB0
aGlzKTsKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRl
ZCwgdGhpcy5fZnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOwotfQotCi1XZWJJbnNwZWN0b3IuTmV0d29y
a0xvZy5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IHJlc291cmNlcygpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fcmVzb3VyY2VzOwotICAgIH0sCi0KLSAgICBfZnJhbWVOYXZpZ2F0ZWQ6IGZ1
bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCFldmVudC5kYXRhLmlzTWFpbkZyYW1l
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAvLyBQcmVzZXJ2ZSByZXNvdXJjZXMgZnJv
bSB0aGUgbmV3IHNlc3Npb24uCi0gICAgICAgIHZhciBvbGRSZXNvdXJjZXMgPSB0aGlzLl9yZXNv
dXJjZXMuc3BsaWNlKDAsIHRoaXMuX3Jlc291cmNlcy5sZW5ndGgpOwotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IG9sZFJlc291cmNlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYg
KG9sZFJlc291cmNlc1tpXS5sb2FkZXJJZCA9PT0gZXZlbnQuZGF0YS5sb2FkZXJJZCkKLSAgICAg
ICAgICAgICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChvbGRSZXNvdXJjZXNbaV0pOwotICAgICAg
ICB9Ci0gICAgfSwKLQotICAgIF9vblJlc291cmNlU3RhcnRlZDogZnVuY3Rpb24oZXZlbnQpCi0g
ICAgewotICAgICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChldmVudC5kYXRhKTsKLSAgICB9Ci19
CitXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIgPSBudWxsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKaW5kZXggYzI0ZTZkMTgzNzA1NDY4ZjRl
MGI1OGZlMWEzNmRhOTE4YTNjNDc3Ni4uYjRiMzVjOTdkNTBmMTE3ZjQ5M2Q2MTIwNmRiMTFmYzZi
YzZhODUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlLmpzCkBAIC00MjMsNyArNDIzLDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5fZmluaXNoZWQgPSB4OwogCiAgICAgICAgIGlmICh4KSB7Ci0g
ICAgICAgICAgICB0aGlzLl9jaGVja1dhcm5pbmdzKCk7CiAgICAgICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycygiZmluaXNoZWQiKTsKICAgICAgICAgICAgIGlmICh0aGlzLl9w
ZW5kaW5nQ29udGVudENhbGxiYWNrcy5sZW5ndGgpCiAgICAgICAgICAgICAgICAgdGhpcy5faW5u
ZXJSZXF1ZXN0Q29udGVudCgpOwpAQCAtNzgyLDQ4ICs3ODEsNiBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2UucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cygiZXJyb3JzLXdhcm5pbmdzLWNsZWFyZWQiKTsKICAgICB9LAogCi0gICAgX21pbWVUeXBlSXND
b25zaXN0ZW50V2l0aFR5cGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIC8vIElmIHN0YXR1
cyBpcyBhbiBlcnJvciwgY29udGVudCBpcyBsaWtlbHkgdG8gYmUgb2YgYW4gaW5jb25zaXN0ZW50
IHR5cGUsCi0gICAgICAgIC8vIGFzIGl0J3MgZ29pbmcgdG8gYmUgYW4gZXJyb3IgbWVzc2FnZS4g
V2UgZG8gbm90IHdhbnQgdG8gZW1pdCBhIHdhcm5pbmcKLSAgICAgICAgLy8gZm9yIHRoaXMsIHRo
b3VnaCwgYXMgdGhpcyB3aWxsIGFscmVhZHkgYmUgcmVwb3J0ZWQgYXMgcmVzb3VyY2UgbG9hZGlu
ZyBmYWlsdXJlLgotICAgICAgICAvLyBBbHNvLCBpZiBhIFVSTCBsaWtlIGh0dHA6Ly9sb2NhbGhv
c3Qvd2lraS9sb2FkLnBocD9kZWJ1Zz10cnVlJmxhbmc9ZW4gcHJvZHVjZXMgdGV4dC9jc3MgYW5k
IGdldHMgcmVsb2FkZWQsCi0gICAgICAgIC8vIGl0IGlzIDMwNCBOb3QgTW9kaWZpZWQgYW5kIGl0
cyBndWVzc2VkIG1pbWUtdHlwZSBpcyB0ZXh0L3BocCwgd2hpY2ggaXMgd3JvbmcuCi0gICAgICAg
IC8vIERvbid0IGNoZWNrIGZvciBtaW1lLXR5cGVzIGluIDMwNC1yZXNvdXJjZXMuCi0gICAgICAg
IGlmICh0aGlzLmhhc0Vycm9yU3RhdHVzQ29kZSgpIHx8IHRoaXMuc3RhdHVzQ29kZSA9PT0gMzA0
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnR5
cGUgPT09ICJ1bmRlZmluZWQiCi0gICAgICAgICAgICB8fCB0aGlzLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZS5UeXBlLk90aGVyCi0gICAgICAgICAgICB8fCB0aGlzLnR5cGUgPT09IFdl
Ykluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlhIUgotICAgICAgICAgICAgfHwgdGhpcy50eXBlID09
PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5XZWJTb2NrZXQpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLQotICAgICAgICBpZiAoIXRoaXMubWltZVR5cGUpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsgLy8gTWlnaHQgYmUgbm90IGtub3duIGZvciBjYWNoZWQgcmVzb3VyY2VzIHdpdGgg
bnVsbCByZXNwb25zZXMuCi0KLSAgICAgICAgaWYgKHRoaXMubWltZVR5cGUgaW4gV2ViSW5zcGVj
dG9yLk1JTUVUeXBlcykKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUgaW4gV2ViSW5zcGVj
dG9yLk1JTUVUeXBlc1t0aGlzLm1pbWVUeXBlXTsKLQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfSwKLQotICAgIF9jaGVja1dhcm5pbmdzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBp
ZiAodGhpcy5fbWltZVR5cGVJc0NvbnNpc3RlbnRXaXRoVHlwZSgpKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZE1lc3NhZ2UobmV3IFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZShXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVNvdXJjZS5PdGhlciwKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5N
ZXNzYWdlVHlwZS5Mb2csCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2Uu
TWVzc2FnZUxldmVsLldhcm5pbmcsCi0gICAgICAgICAgICAtMSwKLSAgICAgICAgICAgIHRoaXMu
dXJsLAotICAgICAgICAgICAgMSwKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
UmVzb3VyY2UgaW50ZXJwcmV0ZWQgYXMgJXMgYnV0IHRyYW5zZmVycmVkIHdpdGggTUlNRSB0eXBl
ICVzLiIsIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLnRvVUlTdHJpbmcodGhpcy50eXBlKSwg
dGhpcy5taW1lVHlwZSksCi0gICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgbnVsbCkpOwot
ICAgIH0sCi0KICAgICBnZXQgY29udGVudCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5f
Y29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VUcmVlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlVHJlZU1vZGVsLmpzCmluZGV4IDI5OGQyNTVmNmU2OWU2MzZjNjA5ZGM4MjA3ZmQw
OWY5MjdmMjgzYWQuLmFhZWVhNjI5YjE5ZWI1MTJkOTc5MzBjMDNlOWZiZjgxNzhmZjlkYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVl
TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVRyZWVNb2RlbC5qcwpAQCAtMzgsOCArMzgsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwgPSBmdW5jdGlvbihuZXR3b3JrTWFuYWdlcikKICAgICBXZWJJbnNwZWN0b3IubmV0d29y
a01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZl
bnRUeXBlcy5SZXNvdXJjZVVwZGF0ZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlzKTsK
ICAgICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZUZpbmlzaGVkLCB0aGlzLl9v
blJlc291cmNlVXBkYXRlZCwgdGhpcyk7CiAKLSAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMuTWVzc2FnZUFkZGVk
LCB0aGlzLl9jb25zb2xlTWVzc2FnZUFkZGVkLCB0aGlzKTsKLSAgICBXZWJJbnNwZWN0b3IuY29u
c29sZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMuQ29u
c29sZUNsZWFyZWQsIHRoaXMuX2NvbnNvbGVDbGVhcmVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0
b3IuY29uc29sZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZl
bnRzLk1lc3NhZ2VBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcyk7CisgICAg
V2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29uc29s
ZU1vZGVsLkV2ZW50cy5Db25zb2xlQ2xlYXJlZCwgdGhpcy5fY29uc29sZUNsZWFyZWQsIHRoaXMp
OwogCiAgICAgdGhpcy5mcm9udGVuZFJldXNlZCgpOwogICAgIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJQYWdlRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyKHRoaXMp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
RmlsZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5q
cwppbmRleCBkMjA3NmU1NTk4YmQ4ZDAwMTkyZGY1N2M0Zjc3OTU3MzVlZjEyNzgzLi40MmVhNzg3
ZjBkM2FmMGJmNWI4NTM3MmEzMTEyOWNjMjBjNDFhMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCkBAIC0zMCw2ICszMCwxMSBAQAog
CiAvLyBSYXdTb3VyY2VDb2RlIHJlcHJlc2VudHMgSmF2YVNjcmlwdCByZXNvdXJjZSBvciBIVE1M
IHJlc291cmNlIHdpdGggaW5saW5lZCBzY3JpcHRzCiAvLyBhcyBpdCBjYW1lIGZyb20gbmV0d29y
ay4KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2Jq
ZWN0fQorICovCiBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZSA9IGZ1bmN0aW9uKGlkLCBzY3Jp
cHQsIGZvcm1hdHRlcikKIHsKICAgICB0aGlzLl9zY3JpcHRzID0gW3NjcmlwdF07CkBAIC05MSw3
ICs5Niw3IEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICB7
CiAgICAgICAgIHZhciBjbG9zZXN0U2NyaXB0ID0gdGhpcy5fc2NyaXB0c1swXTsKICAgICAgICAg
Zm9yICh2YXIgaSA9IDE7IGkgPCB0aGlzLl9zY3JpcHRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAg
ICAgICBzY3JpcHQgPSB0aGlzLl9zY3JpcHRzW2ldOworICAgICAgICAgICAgdmFyIHNjcmlwdCA9
IHRoaXMuX3NjcmlwdHNbaV07CiAgICAgICAgICAgICBpZiAoc2NyaXB0LmxpbmVPZmZzZXQgPiBs
aW5lTnVtYmVyIHx8IChzY3JpcHQubGluZU9mZnNldCA9PT0gbGluZU51bWJlciAmJiBzY3JpcHQu
Y29sdW1uT2Zmc2V0ID4gY29sdW1uTnVtYmVyKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgIGlmIChzY3JpcHQubGluZU9mZnNldCA+IGNsb3Nlc3RTY3JpcHQubGluZU9m
ZnNldCB8fApAQCAtMjUzLDYgKzI1OCwxMCBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5w
cm90b3R5cGUgPSB7CiBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUuX19wcm90
b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CiAKIAorLyoqCisgKiBAY29uc3Ry
dWN0b3IKKyAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyfQorICov
CiBXZWJJbnNwZWN0b3IuU2NyaXB0Q29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oc2NyaXB0KQog
ewogICAgIHRoaXMuX21pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7CkBAIC0yNjAsMTkgKzI2
OSwyMiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0Q29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oc2Ny
aXB0KQogfTsKIAogV2ViSW5zcGVjdG9yLlNjcmlwdENvbnRlbnRQcm92aWRlci5wcm90b3R5cGUg
PSB7Ci1yZXF1ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgZnVuY3Rpb24g
ZGlkUmVxdWVzdFNvdXJjZShzb3VyY2UpCisgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNh
bGxiYWNrKQogICAgIHsKLSAgICAgICAgY2FsbGJhY2sodGhpcy5fbWltZVR5cGUsIHNvdXJjZSk7
CisgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RTb3VyY2Uoc291cmNlKQorICAgICAgICB7Cisg
ICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9taW1lVHlwZSwgc291cmNlKTsKKyAgICAgICAgfQor
ICAgICAgICB0aGlzLl9zY3JpcHQucmVxdWVzdFNvdXJjZShkaWRSZXF1ZXN0U291cmNlLmJpbmQo
dGhpcykpOwogICAgIH0KLSAgICB0aGlzLl9zY3JpcHQucmVxdWVzdFNvdXJjZShkaWRSZXF1ZXN0
U291cmNlLmJpbmQodGhpcykpOwotfQogfQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0Q29udGVudFBy
b3ZpZGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVy
LnByb3RvdHlwZTsKIAotCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMge1dl
Ykluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9CisgKi8KIFdlYkluc3BlY3Rvci5Db25jYXRlbmF0
ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oc2NyaXB0cykKIHsKICAgICB0aGlz
Ll9taW1lVHlwZSA9ICJ0ZXh0L2h0bWwiOwpAQCAtMzAwLDggKzMxMiw4IEBAIFdlYkluc3BlY3Rv
ci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICB2YXIgY29udGVudCA9ICIiOwogICAgICAgIHZhciBsaW5lTnVtYmVyID0gMDsKICAgICAgICB2
YXIgY29sdW1uTnVtYmVyID0gMDsKLSAgICAgICB2YXIgc2NyaXB0UmFuZ2VzID0gW107Ci0gICAg
ICAgZnVuY3Rpb24gYXBwZW5kQ2h1bmsoY2h1bmssIHNjcmlwdCkKKworICAgICAgIGZ1bmN0aW9u
IGFwcGVuZENodW5rKGNodW5rKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHN0YXJ0ID0geyBs
aW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciB9OwogICAg
ICAgICAgICBjb250ZW50ICs9IGNodW5rOwpAQCAtMzE0LDggKzMyNiw2IEBAIFdlYkluc3BlY3Rv
ci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgIGNvbHVtbk51bWJlciA9IGxpbmVFbmRpbmdzW2xpbmVDb3VudCAtIDFdIC0gbGlu
ZUVuZGluZ3NbbGluZUNvdW50IC0gMl0gLSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZh
ciBlbmQgPSB7IGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVt
YmVyIH07Ci0gICAgICAgICAgIGlmIChzY3JpcHQpCi0gICAgICAgICAgICAgICBzY3JpcHRSYW5n
ZXMucHVzaCh7IHN0YXJ0OiBzdGFydCwgZW5kOiBlbmQsIHNvdXJjZUlkOiBzY3JpcHQuc291cmNl
SWQgfSk7CiAgICAgICAgfQogCiAgICAgICAgdmFyIHNjcmlwdE9wZW5UYWcgPSAiPHNjcmlwdD4i
OwpAQCAtMzI5LDcgKzMzOSw3IEBAIFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29u
dGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAvLyBBZGQgc2NyaXB0IHRh
Zy4KICAgICAgICAgICAgYXBwZW5kQ2h1bmsoc2NyaXB0T3BlblRhZyk7Ci0gICAgICAgICAgIGFw
cGVuZENodW5rKHNvdXJjZXNbaV0sIHNjcmlwdHNbaV0pOworICAgICAgICAgICBhcHBlbmRDaHVu
ayhzb3VyY2VzW2ldKTsKICAgICAgICAgICAgYXBwZW5kQ2h1bmsoc2NyaXB0Q2xvc2VUYWcpOwog
ICAgICAgIH0KIApAQCAtMzM5LDcgKzM0OSwxMCBAQCBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVk
U2NyaXB0c0NvbnRlbnRQcm92aWRlci5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5Db25j
YXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZTsKIAotCisvKioKKyAqIEBjb25zdHJ1
Y3RvcgorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9CisgKi8K
IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKHJlc291cmNl
KQogewogICAgIHRoaXMuX21pbWVUeXBlID0gcmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVjdG9y
LlJlc291cmNlLlR5cGUuU2NyaXB0ID8gInRleHQvamF2YXNjcmlwdCIgOiAidGV4dC9odG1sIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VD
b2RlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUu
anMKaW5kZXggMDM2MTcwOGNjOTA1OGI1ZTQ2OTViMjZmZjg1Y2MxYzU1ZjBmODdlYS4uOTFmYzcw
Y2QzMWRjMmIyNjM1NzdmZWU0MDQxMWI1YmQzNjlhY2Q2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKQEAgLTI4LDYgKzI4LDkg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKGlkLCB1cmwsIGlzQ29udGVudFNjcmlw
dCwgY29udGVudFByb3ZpZGVyKQogewogICAgIHRoaXMuX2lkID0gaWQ7CkBAIC03NiwxMyArNzks
MTAgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgfQogfQog
Ci1XZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oKQotewotfQotCisvKioK
KyAqIEBpbnRlcmZhY2UKKyAqLworV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlciA9IGZ1bmN0
aW9uKCkgeyB9CiBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKLSAg
ICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgewotICAgICAgICAvLyBT
aG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4KLSAgICB9CisgICAgcmVxdWVzdENv
bnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7IH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJh
clBhbmUuanMKaW5kZXggNjVhNDAwZmRlYzZjNjk3MDE0ZTg5MzA4MWExMTlkMGY1YmY3ODMxYi4u
MWQxZWNjMTE5NzFjZWUxMDRkMzMzNDg0MWUwN2JmMzYxMWUwYTFkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBh
bmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJl
c3Npb25zU2lkZWJhclBhbmUuanMKQEAgLTE4Niw3ICsxODYsNyBAQCBXZWJJbnNwZWN0b3IuV2F0
Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKCFleHBy
ZXNzaW9uKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuY29uc29sZS5ldmFsSW5JbnNwZWN0ZWRXaW5kb3coZXhwcmVzc2lvbiwgdGhpcy5fd2F0
Y2hPYmplY3RHcm91cElkLCBmYWxzZSwgdHJ1ZSwgdW5kZWZpbmVkLCBhcHBlbmRSZXN1bHQuYmlu
ZCh0aGlzLCBleHByZXNzaW9uLCBpKSk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29s
ZVZpZXcuZXZhbEluSW5zcGVjdGVkV2luZG93KGV4cHJlc3Npb24sIHRoaXMuX3dhdGNoT2JqZWN0
R3JvdXBJZCwgZmFsc2UsIHRydWUsIHVuZGVmaW5lZCwgYXBwZW5kUmVzdWx0LmJpbmQodGhpcywg
ZXhwcmVzc2lvbiwgaSkpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFwcm9wZXJ0eUNvdW50
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktp
dC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5k
ZXggMDU3NDE3Y2JjOWIwZTVjZTcyOTEwNzg3MmY4ZDQ1ZTczMDVlZWFiZS4uYTIzOGUyNjE2NTIy
MzBiYWNkOTRjNTE3MGI5ODUwMzI5NWVkYWY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtMTYsNiArMTYsNyBAQAogICAgIDxmaWxlPkNo
ZWNrYm94LmpzPC9maWxlPgogICAgIDxmaWxlPkNvbG9yLmpzPC9maWxlPgogICAgIDxmaWxlPkNv
bnNvbGVNZXNzYWdlLmpzPC9maWxlPgorICAgIDxmaWxlPkNvbnNvbGVNb2RlbC5qczwvZmlsZT4K
ICAgICA8ZmlsZT5Db25zb2xlUGFuZWwuanM8L2ZpbGU+CiAgICAgPGZpbGU+Q29uc29sZVZpZXcu
anM8L2ZpbGU+CiAgICAgPGZpbGU+Q29udGV4dE1lbnUuanM8L2ZpbGU+CkBAIC02OCw2ICs2OSw3
IEBACiAgICAgPGZpbGU+S2V5Ym9hcmRTaG9ydGN1dC5qczwvZmlsZT4KICAgICA8ZmlsZT5NZXRy
aWNzU2lkZWJhclBhbmUuanM8L2ZpbGU+CiAgICAgPGZpbGU+TmV0d29ya0l0ZW1WaWV3LmpzPC9m
aWxlPgorICAgIDxmaWxlPk5ldHdvcmtMb2cuanM8L2ZpbGU+CiAgICAgPGZpbGU+TmV0d29ya01h
bmFnZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+TmV0d29ya1BhbmVsLmpzPC9maWxlPgogICAgIDxm
aWxlPk9iamVjdC5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvZXh0ZXJucy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvZXh0ZXJucy5qcwppbmRleCA5MTk4MzgzMTRjZDA1ODg2NmU5NjNmNjczMTAxOTE1ZDZlNTVl
ZDFlLi5jYzM1OTE0ZGVhMTk0NjE5Mzk4Mzk0ZDAyM2I2YzAwNWNiMzBlOWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCkBAIC0zNCwxMiArMzQs
MjYgQEAgY29uc29sZS53YXJuID0gZnVuY3Rpb24obWVzc2FnZSkge30KIGNvbnNvbGUuYXNzZXJ0
ID0gZnVuY3Rpb24oZXhwciwgbWVzc2FnZSkge30KIAogdmFyIFdlYkluc3BlY3RvciA9IHt9Ci0v
KiogQHBhcmFtIHtzdHJpbmd9IHVybCAqLwotV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUg
PSBmdW5jdGlvbih1cmwpIHt9CisKKy8qKgorICogQHBhcmFtIHtzdHJpbmd9IHVybAorICogQHBh
cmFtIHtzdHJpbmc9fSBsaW5rVGV4dAorICogQHBhcmFtIHtzdHJpbmc9fSBjbGFzc2VzCisgKiBA
cGFyYW0ge2Jvb2xlYW49fSBpc0V4dGVybmFsCisgKiBAcGFyYW0ge3N0cmluZz19IHRvb2x0aXBU
ZXh0CisgKi8KK1dlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlID0gZnVuY3Rpb24odXJsLCBs
aW5rVGV4dCwgY2xhc3NlcywgaXNFeHRlcm5hbCwgdG9vbHRpcFRleHQpIHt9CisKIC8qKiBAcGFy
YW0ge3N0cmluZ30gdXJsICovCiBXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQg
PSBmdW5jdGlvbih1cmwpIHt9CiAKIC8qKgorICogQHBhcmFtIHtzdHJpbmd9IHVybAorICogQHBh
cmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAqLworV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0
ID0gZnVuY3Rpb24odXJsLCBsaW5lTnVtYmVyKSB7fQorCisvKioKICAqIEBwYXJhbSB7c3RyaW5n
fSBzdHIKICAqIEBwYXJhbSB7Li4uKn0gdmFyQXJncwogICovCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCA4MjgyZjIwYWU1NWJl
MWM5MGQ1M2NlMmExNmVkZGFkYzI2Y2E2OWJjLi43YWYwMDQ2Y2EzNjAyODJhNDYyNTNlODFhNTYz
MGQ4ZTgyODcyZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmh0bWwKQEAgLTYxLDEyICs2MSwxNCBAQCBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IklGcmFtZVZpZXcuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRyYXdlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29uc29sZU1lc3Nh
Z2UuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IkNvbnNvbGVNb2RlbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iQ29uc29sZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IlBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJUaW1lbGluZUdyaWQuanMiPjwvc2NyaXB0PiAgICAK
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXNvdXJjZS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ1NTU3R5bGVN
b2RlbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iTmV0d29ya01hbmFnZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ik5ldHdvcmtMb2cuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlJlc291cmNlVHJlZU1vZGVsLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXNvdXJjZUNhdGVnb3J5
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJU
aW1lbGluZU1hbmFnZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBlNTE4MTkyM2Q0ZWFkNWMzODkxMzRlOWZk
M2Y3NTY0MzAxNjM3Mzk5Li5iNDYxZDkyOTUyYjI0NzY2OGEwZmJhMTExZjRjZTIzNTQ4YmYwM2Fi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cwpAQCAtMTgzLDcgKzE4Myw3IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAKICAgICAgICAgdmFy
IGFuY2hvcmVkU3RhdHVzQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuY2hvcmVkLXN0
YXR1cy1iYXItaXRlbXMiKTsKICAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQo
dGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbi5lbGVtZW50KTsKLSAgICAgICAgYW5jaG9yZWRTdGF0dXNC
YXIuYXBwZW5kQ2hpbGQodGhpcy5jb25zb2xlLnRvZ2dsZUNvbnNvbGVCdXR0b24uZWxlbWVudCk7
CisgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuY29uc29sZVZpZXcu
dG9nZ2xlQ29uc29sZUJ1dHRvbi5lbGVtZW50KTsKICAgICAgICAgaWYgKHRoaXMucGFuZWxzLmVs
ZW1lbnRzKQogICAgICAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5w
YW5lbHMuZWxlbWVudHMubm9kZVNlYXJjaEJ1dHRvbi5lbGVtZW50KTsKIApAQCAtMjg5LDQzICsy
ODksMTUgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
cmF3ZXIudXBkYXRlSGVpZ2h0KCk7CiAgICAgfSwKIAotICAgIGdldCBlcnJvcnMoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9ycyB8fCAwOwotICAgIH0sCi0KLSAgICBzZXQgZXJy
b3JzKHgpCi0gICAgewotICAgICAgICB4ID0gTWF0aC5tYXgoeCwgMCk7Ci0KLSAgICAgICAgaWYg
KHRoaXMuX2Vycm9ycyA9PT0geCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5f
ZXJyb3JzID0geDsKLSAgICAgICAgdGhpcy5fdXBkYXRlRXJyb3JBbmRXYXJuaW5nQ291bnRzKCk7
Ci0gICAgfSwKLQotICAgIGdldCB3YXJuaW5ncygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fd2FybmluZ3MgfHwgMDsKLSAgICB9LAotCi0gICAgc2V0IHdhcm5pbmdzKHgpCi0gICAgewot
ICAgICAgICB4ID0gTWF0aC5tYXgoeCwgMCk7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3dhcm5pbmdz
ID09PSB4KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl93YXJuaW5ncyA9IHg7
Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUVycm9yQW5kV2FybmluZ0NvdW50cygpOwotICAgIH0sCi0K
ICAgICBfdXBkYXRlRXJyb3JBbmRXYXJuaW5nQ291bnRzOiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICB2YXIgZXJyb3JXYXJuaW5nRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
cnJvci13YXJuaW5nLWNvdW50Iik7CiAgICAgICAgIGlmICghZXJyb3JXYXJuaW5nRWxlbWVudCkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoIXRoaXMuZXJyb3JzICYmICF0aGlz
Lndhcm5pbmdzKSB7CisgICAgICAgIHZhciBlcnJvcnMgPSBXZWJJbnNwZWN0b3IuY29uc29sZS5l
cnJvcnM7CisgICAgICAgIHZhciB3YXJuaW5ncyA9IFdlYkluc3BlY3Rvci5jb25zb2xlLndhcm5p
bmdzOworICAgICAgICBpZiAoIWVycm9ycyAmJiAhd2FybmluZ3MpIHsKICAgICAgICAgICAgIGVy
cm9yV2FybmluZ0VsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTMzNCwzOSArMzA2LDM5IEBAIHZhciBXZWJJbnNwZWN0b3Ig
PSB7CiAKICAgICAgICAgZXJyb3JXYXJuaW5nRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogCi0g
ICAgICAgIGlmICh0aGlzLmVycm9ycykgeworICAgICAgICBpZiAoZXJyb3JzKSB7CiAgICAgICAg
ICAgICB2YXIgZXJyb3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwog
ICAgICAgICAgICAgZXJyb3JFbGVtZW50LmlkID0gImVycm9yLWNvdW50IjsKLSAgICAgICAgICAg
IGVycm9yRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuZXJyb3JzOworICAgICAgICAgICAgZXJy
b3JFbGVtZW50LnRleHRDb250ZW50ID0gZXJyb3JzOwogICAgICAgICAgICAgZXJyb3JXYXJuaW5n
RWxlbWVudC5hcHBlbmRDaGlsZChlcnJvckVsZW1lbnQpOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKHRoaXMud2FybmluZ3MpIHsKKyAgICAgICAgaWYgKHdhcm5pbmdzKSB7CiAgICAgICAgICAg
ICB2YXIgd2FybmluZ3NFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwog
ICAgICAgICAgICAgd2FybmluZ3NFbGVtZW50LmlkID0gIndhcm5pbmctY291bnQiOwotICAgICAg
ICAgICAgd2FybmluZ3NFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy53YXJuaW5nczsKKyAgICAg
ICAgICAgIHdhcm5pbmdzRWxlbWVudC50ZXh0Q29udGVudCA9IHdhcm5pbmdzOwogICAgICAgICAg
ICAgZXJyb3JXYXJuaW5nRWxlbWVudC5hcHBlbmRDaGlsZCh3YXJuaW5nc0VsZW1lbnQpOwogICAg
ICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuZXJyb3JzKSB7Ci0gICAgICAgICAgICBpZiAodGhp
cy53YXJuaW5ncykgewotICAgICAgICAgICAgICAgIGlmICh0aGlzLmVycm9ycyA9PSAxKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLndhcm5pbmdzID09IDEpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBlcnJvcldhcm5pbmdFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCIlZCBlcnJvciwgJWQgd2FybmluZyIsIHRoaXMuZXJyb3JzLCB0aGlzLndhcm5pbmdzKTsK
KyAgICAgICAgaWYgKGVycm9ycykgeworICAgICAgICAgICAgaWYgKHdhcm5pbmdzKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGVycm9ycyA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3
YXJuaW5ncyA9PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxlbWVu
dC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgZXJyb3IsICVkIHdhcm5pbmciLCBl
cnJvcnMsIHdhcm5pbmdzKTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiJWQgZXJyb3IsICVkIHdhcm5pbmdzIiwgdGhpcy5lcnJvcnMsIHRoaXMud2FybmluZ3Mp
OwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy53YXJuaW5ncyA9PSAxKQotICAgICAg
ICAgICAgICAgICAgICBlcnJvcldhcm5pbmdFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCIlZCBlcnJvcnMsICVkIHdhcm5pbmciLCB0aGlzLmVycm9ycywgdGhpcy53YXJuaW5n
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcldhcm5pbmdFbGVtZW50LnRpdGxlID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBlcnJvciwgJWQgd2FybmluZ3MiLCBlcnJvcnMsIHdh
cm5pbmdzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdhcm5pbmdzID09IDEpCisgICAg
ICAgICAgICAgICAgICAgIGVycm9yV2FybmluZ0VsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIiVkIGVycm9ycywgJWQgd2FybmluZyIsIGVycm9ycywgd2FybmluZ3MpOwogICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxlbWVu
dC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgZXJyb3JzLCAlZCB3YXJuaW5ncyIs
IHRoaXMuZXJyb3JzLCB0aGlzLndhcm5pbmdzKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAodGhp
cy5lcnJvcnMgPT0gMSkKLSAgICAgICAgICAgICAgICBlcnJvcldhcm5pbmdFbGVtZW50LnRpdGxl
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBlcnJvciIsIHRoaXMuZXJyb3JzKTsKKyAgICAg
ICAgICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiJWQgZXJyb3JzLCAlZCB3YXJuaW5ncyIsIGVycm9ycywgd2FybmluZ3MpOworICAg
ICAgICAgICAgfSBlbHNlIGlmIChlcnJvcnMgPT0gMSkKKyAgICAgICAgICAgICAgICBlcnJvcldh
cm5pbmdFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBlcnJvciIsIGVy
cm9ycyk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxl
bWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgZXJyb3JzIiwgdGhpcy5lcnJv
cnMpOwotICAgICAgICB9IGVsc2UgaWYgKHRoaXMud2FybmluZ3MgPT0gMSkKLSAgICAgICAgICAg
IGVycm9yV2FybmluZ0VsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIHdh
cm5pbmciLCB0aGlzLndhcm5pbmdzKTsKLSAgICAgICAgZWxzZSBpZiAodGhpcy53YXJuaW5ncykK
LSAgICAgICAgICAgIGVycm9yV2FybmluZ0VsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIiVkIHdhcm5pbmdzIiwgdGhpcy53YXJuaW5ncyk7CisgICAgICAgICAgICAgICAgZXJy
b3JXYXJuaW5nRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgZXJyb3Jz
IiwgZXJyb3JzKTsKKyAgICAgICAgfSBlbHNlIGlmICh3YXJuaW5ncyA9PSAxKQorICAgICAgICAg
ICAgZXJyb3JXYXJuaW5nRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQg
d2FybmluZyIsIHdhcm5pbmdzKTsKKyAgICAgICAgZWxzZSBpZiAod2FybmluZ3MpCisgICAgICAg
ICAgICBlcnJvcldhcm5pbmdFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIl
ZCB3YXJuaW5ncyIsIHdhcm5pbmdzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZXJyb3JX
YXJuaW5nRWxlbWVudC50aXRsZSA9IG51bGw7CiAgICAgfSwKQEAgLTUxMSwxNCArNDgzLDE5IEBA
IFdlYkluc3BlY3Rvci5kb0xvYWRlZERvbmUgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVjdG9y
LnNob3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29uc29sZSIp
KTsKICAgICBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuLnNlY3Rpb24oV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJFbGVtZW50cyBQYW5lbCIpKTsKIAorICAgIHRoaXMuY29uc29sZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsKCk7CisgICAgdGhpcy5jb25zb2xlLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuQ29uc29sZUNsZWFyZWQsIHRo
aXMuX3VwZGF0ZUVycm9yQW5kV2FybmluZ0NvdW50cywgdGhpcyk7CisgICAgdGhpcy5jb25zb2xl
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuTWVzc2Fn
ZUFkZGVkLCB0aGlzLl91cGRhdGVFcnJvckFuZFdhcm5pbmdDb3VudHMsIHRoaXMpOworCiAgICAg
dGhpcy5kcmF3ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRyYXdlcigpOwotICAgIHRoaXMuY29uc29s
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcodGhpcy5kcmF3ZXIpOwotICAgIHRoaXMu
ZHJhd2VyLnZpc2libGVWaWV3ID0gdGhpcy5jb25zb2xlOworICAgIHRoaXMuY29uc29sZVZpZXcg
PSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3KHRoaXMuZHJhd2VyKTsKKyAgICB0aGlzLmRy
YXdlci52aXNpYmxlVmlldyA9IHRoaXMuY29uc29sZVZpZXc7CisKICAgICB0aGlzLm5ldHdvcmtN
YW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlcigpOwogICAgIHRoaXMucmVz
b3VyY2VUcmVlTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsKCk7CiAg
ICAgdGhpcy5uZXR3b3JrTG9nID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nKCk7CiAgICAg
dGhpcy5kb21BZ2VudCA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NQWdlbnQoKTsKLSAgICBuZXcgV2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlcih0aGlzLnJlc291cmNlVHJlZU1vZGVs
LCB0aGlzLmNvbnNvbGUpOworICAgIG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRN
YW5hZ2VyKHRoaXMucmVzb3VyY2VUcmVlTW9kZWwsIHRoaXMuY29uc29sZVZpZXcpOwogCiAgICAg
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3Rlckluc3BlY3RvckRpc3BhdGNoZXIodGhpcyk7CiAKQEAg
LTU1MywxMiArNTMwLDcgQEAgV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkK
IAogICAgIHRoaXMuZXh0ZW5zaW9uU2VydmVyLmluaXRFeHRlbnNpb25zKCk7CiAKLSAgICBpZiAo
V2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkLmdldCgpKQotICAgICAg
ICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSk7Ci0KLSAgICAvLyBU
aGVyZSBpcyBubyBjb25zb2xlIGFnZW50IGZvciB3b3JrZXJzIHlldC4KLSAgICBpZiAoIVdlYklu
c3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLmlzV29ya2VyRnJvbnRlbmQoKSkKLSAgICAgICAgQ29uc29s
ZUFnZW50LmVuYWJsZSh0aGlzLmNvbnNvbGUuc2V0Q29uc29sZU1lc3NhZ2VFeHBpcmVkQ291bnQu
YmluZCh0aGlzLmNvbnNvbGUpKTsKKyAgICB0aGlzLmNvbnNvbGUuZW5hYmxlQWdlbnQoKTsKIAog
ICAgIERhdGFiYXNlQWdlbnQuZW5hYmxlKCk7CiAgICAgRE9NU3RvcmFnZUFnZW50LmVuYWJsZSgp
OwpAQCAtMTAyNiw3ICs5OTgsNyBAQCBXZWJJbnNwZWN0b3IudG9nZ2xlU2VhcmNoaW5nRm9yTm9k
ZSA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLnNob3dDb25zb2xlID0gZnVuY3Rpb24oKQog
ewotICAgIHRoaXMuZHJhd2VyLnNob3dWaWV3KHRoaXMuY29uc29sZSk7CisgICAgdGhpcy5kcmF3
ZXIuc2hvd1ZpZXcodGhpcy5jb25zb2xlVmlldyk7CiB9CiAKIFdlYkluc3BlY3Rvci5zaG93UGFu
ZWwgPSBmdW5jdGlvbihwYW5lbCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105016</attachid>
            <date>2011-08-24 10:38:02 -0700</date>
            <delta_ts>2011-08-25 02:18:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66861-20110824213800.patch</filename>
            <type>text/plain</type>
            <size>96114</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM3MDYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYjY2NTJjMzIzZTRkMDM0YzM0MzA0
MmI3MjQxNmFmOGZkNGZiMWI4Li4xNDQ0ODg2NTg2NjM0NjFhYjg0YjQ1OGNlYTk5MjVhN2JlZWE0
YjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTEtMDgtMjQgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0IENvbnNv
bGVWaWV3IGludG8gdGhlIFZpZXcgYW5kIHRoZSBNb2RlbC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2Ut
aWZyYW1lLXNyYy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
Y2QtY29tcGxldGlvbnMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLWNkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNv
dXJjZS1lcnJvcnMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0NvbnNvbGVUZXN0Lkluc3BlY3RvclRlc3Qu
ZHVtcENvbnNvbGVNZXNzYWdlcyk6CisgICAgICAgIChpbml0aWFsaXplX0NvbnNvbGVUZXN0Lklu
c3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhDbGFzc2VzKToKKyAgICAgICAgKGlu
aXRpYWxpemVfQ29uc29sZVRlc3QuSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMp
OgorICAgICAgICAoaW5pdGlhbGl6ZV9Db25zb2xlVGVzdCk6CisgICAgICAgICogaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0luc3Bl
Y3RvclRlc3QuSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSk6CisgICAgICAgIChpbml0
aWFsaXplX0luc3BlY3RvclRlc3QpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvZGlzYWJsZWQtY2FjaGUtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2FjaGVkcmVzb3VyY2VzLXdpdGgtc2FtZS11cmxzLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNsZWFy
LWNhY2hlLmh0bWwtZGlzYWJsZWQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLWNsZWFyLWNvb2tpZXMuaHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC1lbWJl
ZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1j
b250ZW50LXJlcGxhY2VtZW50LXhoci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLW1lbW9yeS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLXhocnMu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZW1i
ZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
aWZyYW1lLWxvYWQtYW5kLWRlbGV0ZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1pbml0aWF0b3ItZnJvbS1jb25zb2xlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRpYXRvci5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1yZXF1ZXN0LXJl
dmlzaW9uLWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstc2hhcmVkLXdvcmtlci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay1zaWRlYmFyLXdpZHRoLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLXN5bmMuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay10aW1p
bmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
d29ya2VyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLXhoci1hc3luYy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvbmV0d29yay14aHItc3luYy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2
aWdhdGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlLXRyZWUtbm8teGhycy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtYXNzZXJ0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS10cmFjZS1pbi1ldmFsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS10cmFjZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdW5jYXVn
aHQtZXhjZXB0aW9uLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2Vy
LWF1dG9jb250aW51ZS1vbi1zeW50YXgtZXJyb3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvZGVidWdnZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFtZS5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWlmcmFtZS5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuaHRtbDoKKwogMjAxMS0w
OC0yNCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICAgVW5yZXZpZXdlZCwgY2hyb21pdW0gcmViYXNlbGluZSBmb3IgZ3JhZGllbnQtYWZ0ZXItdHJh
bnNwYXJlbnQtYm9yZGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY2hhbmdlLWlmcmFtZS1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NoYW5nZS1pZnJhbWUtc3JjLmh0bWwKaW5kZXggOWVkYWQ5YTdmNDY1NjJiNjA1MDFi
ODQ0MDUxZmNlMGU0NGIxMjQyYS4uOTRjMDdiMGUxNjJlYjNlYWNhYWM4NGNhNTdjYmYwOGM2NzNk
OGE1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY2hhbmdl
LWlmcmFtZS1zcmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
aGFuZ2UtaWZyYW1lLXNyYy5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIGZ1bmN0aW9uIHN0ZXAxKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnNldEF0dHJpYnV0
ZSgic3JjIiwgInNyYz1cImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2lmcmFtZS1mcm9tLWRpZmZlcmVudC1kb21haW4tZGF0YS5odG1sXCIiKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUs
ICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVT
bmlmZmVyKHN0ZXAyKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25z
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBs
ZXRpb25zLmh0bWwKaW5kZXggNDcyZDZlMGQ0Mzk2ZGZkZTA2OTY3YThmYWQ2YzZiMzA2NjAzMDQy
Zi4uMWM5MGExZTgwYmFlZDQ2MDQ4NDc2MjQzZTQ4Y2VlM2E4ZWM0MjBiZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29t
cGxldGlvbnMuaHRtbApAQCAtNyw3ICs3LDcgQEAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIElu
c3BlY3RvclRlc3Quc2hvd0NvbnNvbGVQYW5lbCgpOwotICAgIHZhciBzZWxlY3RvciA9IFdlYklu
c3BlY3Rvci5jb25zb2xlLl9jb250ZXh0U2VsZWN0RWxlbWVudDsKKyAgICB2YXIgc2VsZWN0b3Ig
PSBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX2NvbnRleHRTZWxlY3RFbGVtZW50OwogICAgIHZh
ciBvcHRpb24gPSBzZWxlY3Rvci5maXJzdENoaWxkOwogICAgIHdoaWxlIChvcHRpb24pIHsKICAg
ICAgICAgaWYgKG9wdGlvbi50ZXh0Q29udGVudCAmJiBvcHRpb24udGV4dENvbnRlbnQuaW5kZXhP
ZigibXlJRnJhbWUiKSA9PT0gMCkKQEAgLTIyLDcgKzIyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTsKIAogCi0gICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUu
X2NvbXBsZXRpb25zKCIiLCAibXlHbG9iIiwgZmFsc2UsIGNoZWNrQ29tcGxldGlvbnMuYmluZCh0
aGlzKSk7CisgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygiIiwgIm15
R2xvYiIsIGZhbHNlLCBjaGVja0NvbXBsZXRpb25zLmJpbmQodGhpcykpOwogICAgIGZ1bmN0aW9u
IGNoZWNrQ29tcGxldGlvbnMoY29tcGxldGlvbnMpCiAgICAgewogICAgICAgICB2YXIgZXhwZWN0
ZWQgPSBbIm15R2xvYmFsVmFyIiwgIm15R2xvYmFsRnVuY3Rpb24iXTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QuaHRtbAppbmRleCAyZWVlY2Y3ZmU0
ZDMwMmUwZWI4YTc4YWExZTk0OTY4NTc4Yjk3MTg5Li43OGM4MjM2NjYzOGIyNmI5YzJlMTk1ZGJj
M2I2ZjJjMmEyNTkzMTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLWNkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS1jZC5odG1sCkBAIC04LDcgKzgsNyBAQAogZnVuY3Rpb24gdGVzdCgpCiB7CiAg
ICAgSW5zcGVjdG9yVGVzdC5zaG93Q29uc29sZVBhbmVsKCk7Ci0gICAgdmFyIHNlbGVjdG9yID0g
V2ViSW5zcGVjdG9yLmNvbnNvbGUuX2NvbnRleHRTZWxlY3RFbGVtZW50OworICAgIHZhciBzZWxl
Y3RvciA9IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fY29udGV4dFNlbGVjdEVsZW1lbnQ7CiAg
ICAgdmFyIG9wdGlvbiA9IHNlbGVjdG9yLmZpcnN0Q2hpbGQ7CiAgICAgd2hpbGUgKG9wdGlvbikg
ewogICAgICAgICBpZiAob3B0aW9uLnRleHRDb250ZW50ICYmIG9wdGlvbi50ZXh0Q29udGVudC5p
bmRleE9mKCJteUlGcmFtZSIpID09PSAwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLmh0bWwKaW5kZXgg
NzE3OTVhY2MwOGUwNzRjMDkyODcwYmUyMWY5MmU3ZmU2YWQ5ZDlmZS4uYzRmZTVkY2YwMzg0Mzgz
Y2ViZGU2MmJlMWFkYzU5ZWZmNTFkM2ZkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy5odG1sCkBA
IC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIGxvYWRJZnJhbWUoKQogCiBmdW5jdGlvbiB0ZXN0KCkK
IHsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3
LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBhZGRNZXNzYWdlLCB0cnVlKTsKKyAgICBJbnNwZWN0
b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKGFkZE1lc3NhZ2UsIHRydWUpOwogCiAgICAgdmFyIG1l
c3NhZ2VDb3VudCA9IDA7CiAgICAgZnVuY3Rpb24gYWRkTWVzc2FnZShtZXNzYWdlKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzCmluZGV4IDkw
ZmJlODBhNDZmYmZjOGMxM2VlOTgyMTc5MmJmNjE5MjYzMTM4MGYuLmM1ZjAxNjRiOTJlMzNjNzAz
NTY2NWE2NWY3MDgzYmQ2MTdjYjk0NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMKQEAgLTksNyArOSw3IEBAIEluc3BlY3RvclRlc3Qu
c2hvd0NvbnNvbGVQYW5lbCA9IGZ1bmN0aW9uKCkKIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVN
ZXNzYWdlcyA9IGZ1bmN0aW9uKCkKIHsKICAgICB2YXIgcmVzdWx0ID0gW107Ci0gICAgdmFyIG1l
c3NhZ2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7CisgICAgdmFyIG1lc3NhZ2Vz
ID0gV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOwogICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNz
YWdlc1tpXS50b01lc3NhZ2VFbGVtZW50KCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KGVsZW1lbnQudGV4dENvbnRlbnQucmVwbGFjZSgvXHUyMDBiL2csICIiKSk7CkBAIC0xOSw3
ICsxOSw3IEBAIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcyA9IGZ1bmN0aW9uKCkK
IAogSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aENsYXNzZXMgPSBmdW5jdGlv
bihzb3J0TWVzc2FnZXMpIHsKICAgICB2YXIgcmVzdWx0ID0gW107Ci0gICAgdmFyIG1lc3NhZ2Vz
ID0gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7CisgICAgdmFyIG1lc3NhZ2VzID0gV2Vi
SW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNzYWdlc1tp
XS50b01lc3NhZ2VFbGVtZW50KCk7CiAgICAgICAgIHJlc3VsdC5wdXNoKGVsZW1lbnQudGV4dENv
bnRlbnQucmVwbGFjZSgvXHUyMDBiL2csICIiKSArICIgIiArIGVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJjbGFzcyIpKTsKQEAgLTMyLDcgKzMyLDcgQEAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1l
c3NhZ2VzV2l0aENsYXNzZXMgPSBmdW5jdGlvbihzb3J0TWVzc2FnZXMpIHsKIAogSW5zcGVjdG9y
VGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMgPSBmdW5jdGlvbigpCiB7Ci0gICAgdmFyIG1lc3Nh
Z2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7CisgICAgdmFyIG1lc3NhZ2VzID0g
V2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOwogICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNzYWdl
c1tpXS50b01lc3NhZ2VFbGVtZW50KCk7CiAgICAgICAgIHZhciBub2RlID0gZWxlbWVudDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMK
aW5kZXggYjM3NzQwYWNlMGZmNjkxM2U2MGVlOTc5YTAwZWEzYWQ0ZjA5Nzk2NS4uZTZkMDdlMzlj
Yzk1MzBiMTAzMDM2Y2Q1ODY5MDYzYWQ3NDQ5ZDI3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKQEAgLTI5LDEyICsyOSwxMiBA
QCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlID0gZnVuY3Rpb24oY29kZSwgY2FsbGJh
Y2spCiB7CiAgICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKTsK
IAotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnZpc2libGUgPSB0cnVlOwotICAgIFdlYkluc3Bl
Y3Rvci5jb25zb2xlLnByb21wdC50ZXh0ID0gY29kZTsKKyAgICBXZWJJbnNwZWN0b3IuY29uc29s
ZVZpZXcudmlzaWJsZSA9IHRydWU7CisgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LnByb21w
dC50ZXh0ID0gY29kZTsKICAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiS2V5
Ym9hcmRFdmVudCIpOwogICAgIGV2ZW50LmluaXRLZXlib2FyZEV2ZW50KCJrZXlkb3duIiwgdHJ1
ZSwgdHJ1ZSwgbnVsbCwgIkVudGVyIiwgIiIpOwotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnBy
b21wdEVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwK
KyAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcucHJvbXB0RWxlbWVudC5kaXNwYXRjaEV2ZW50
KGV2ZW50KTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKAogICAgICAgICBm
dW5jdGlvbihjb21tYW5kUmVzdWx0KSB7CiAgICAgICAgICAgICBjYWxsYmFjayhjb21tYW5kUmVz
dWx0LnRvTWVzc2FnZUVsZW1lbnQoKS50ZXh0Q29udGVudCk7CiAgICAgICAgIH0pOwpAQCAtMzE1
LDYgKzMxNSwxMSBAQCBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIgPSBmdW5jdGlvbihyZWNlaXZl
ciwgbWV0aG9kTmFtZSwgb3ZlcnJpZGUsIG9wdF9zdGlja3kpCiAgICAgfTsKIH0KIAorSW5zcGVj
dG9yVGVzdC5hZGRDb25zb2xlU25pZmZlciA9IGZ1bmN0aW9uKG92ZXJyaWRlLCBvcHRfc3RpY2t5
KQoreworICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlLCAiX2FwcGVuZENvbnNvbGVNZXNzYWdlIiwgb3ZlcnJpZGUsIG9wdF9zdGlj
a3kpOworfQorCiBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlID0gZnVuY3Rpb24ocmVjZWl2ZXIsIG1l
dGhvZE5hbWUsIG92ZXJyaWRlLCBvcHRfc3RpY2t5KQogewogICAgIG92ZXJyaWRlID0gSW5zcGVj
dG9yVGVzdC5zYWZlV3JhcChvdmVycmlkZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rpc2FibGVkLWNhY2hlLWNyYXNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rpc2FibGVkLWNhY2hlLWNyYXNo
Lmh0bWwKaW5kZXggMzBmOTc2YTQ0YTMwY2FjMjFiODI4N2QyNjliNzMwMDQ4YmE3YjZlNy4uMWZh
OTk0ZDllYmZjYThmNTQ5NGVhMmQ1YzA4MGVkNTgwYzNiMGIwNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kaXNhYmxlZC1jYWNoZS1jcmFzaC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvZGlzYWJs
ZWQtY2FjaGUtY3Jhc2guaHRtbApAQCAtMzcsMTMgKzM3LDEzIEBAIGZ1bmN0aW9uIHRlc3QoKQog
CiAgICAgZnVuY3Rpb24gc3RlcDEobXNnKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdl
Iiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAy
KTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgib3BlbldpbmRvdzEoKSIp
OwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXAyKG1zZykKICAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAi
YWRkTWVzc2FnZSIsIHN0ZXAzKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25p
ZmZlcihzdGVwMyk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm9wZW5X
aW5kb3cyKCkiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jYWNoZWRyZXNvdXJjZXMtd2l0aC1zYW1lLXVybHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1j
YWNoZWRyZXNvdXJjZXMtd2l0aC1zYW1lLXVybHMuaHRtbAppbmRleCA1NjM3OTA1OWVlNDg0MWFh
MGZlNWFhMzZiYTNmYTc5MjU5ODhjZjQxLi5lYzFjMjU5OWJlMTExOGUxZTkxZTAzZTRkYjFiZTAy
ODNiYTI4Njg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmstY2FjaGVkcmVzb3VyY2VzLXdpdGgtc2FtZS11cmxzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNhY2hlZHJl
c291cmNlcy13aXRoLXNhbWUtdXJscy5odG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIGlt
YWdlTG9hZGVkKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwg
c3RlcDIsIHRydWUpOworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIs
IHRydWUpOwogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRJbWFnZXMoKSIp
OwogCiAgICAgZnVuY3Rpb24gc3RlcDIobXNnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNsZWFyLWNhY2hlLmh0bWwtZGlzYWJs
ZWQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xl
YXItY2FjaGUuaHRtbC1kaXNhYmxlZAppbmRleCBjMGQxNzkyZDZmZmZiYzhlYTBhZTQzZTc0Njk5
ZDM2MTk3Y2UyMTU2Li41YTAzNzc0ZGVlNDQzOTczNmQzY2M5ZmE0OTkxN2M4YTgzNWRiOGUyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstY2xlYXItY2FjaGUuaHRtbC1kaXNhYmxlZAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xlYXItY2FjaGUuaHRtbC1kaXNhYmxlZApAQCAt
MzYsNyArMzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKICAgICB9CiAKQEAgLTUwLDcgKzUwLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBzdGVwMyhtc2cpCiAgICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZSwgImFkZE1lc3NhZ2UiLCBzdGVwNCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29s
ZVNuaWZmZXIoc3RlcDQpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJj
YWNoZUNsZWFyZWQoKSIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNsZWFyLWNvb2tpZXMuaHRtbC1kaXNhYmxl
ZCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jbGVh
ci1jb29raWVzLmh0bWwtZGlzYWJsZWQKaW5kZXggNjhiNmM5Y2MxN2EwMzM2NTNhODA5OGU4ZmJm
NmU5ZWJlM2Q5NWI4Zi4uMjZlMGVhMjhjYWQ4NGQ2NzE0YjZhM2M4NWZhOWQ0YmEyY2RjYzU3ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLWNsZWFyLWNvb2tpZXMuaHRtbC1kaXNhYmxlZAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xlYXItY29va2llcy5odG1sLWRpc2FibGVk
CkBAIC0zNiw3ICszNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gc3RlcDEo
KQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgibG9hZERhdGEoKSIpOwogICAgIH0KIApAQCAtNTAsNyArNTAsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAzKG1zZykKICAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJv
dG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXA0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRD
b25zb2xlU25pZmZlcihzdGVwNCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoImNvb2tpZXNDbGVhcmVkKCkiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50
LWVtYmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25l
dHdvcmstY29udGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1sCmluZGV4IDk5ZWUzZGI3ZWY4ZmM5
M2M5NDA5NDFhYTcyZDA4MWYzNDMzNTg2ZTcuLjFiNzQyY2JiY2UyZjNkNGIyNDM5M2M4ZDAwMDZh
MmRlZWI4YjIzMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVw
bGFjZW1lbnQtZW1iZWQuaHRtbApAQCAtNjIsNyArNjIsNyBAQCBmdW5jdGlvbiBhbGxVUkxzTG9h
ZGVkKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDEp
OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDEpOwogICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm9uU25pZmZlckluc3RhbGxlZCgpIik7CiAKICAgICBm
dW5jdGlvbiBkdW1wUmVzb3VyY2UocmVzb3VyY2UsIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVw
bGFjZW1lbnQteGhyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbAppbmRleCAxNjVjYjFkNzJk
Y2Q3NDBhNDk5MmRlYWU0YjViN2E3MTAxYzBiNjVmLi5mYjQ3NWMxYmY3MjBjZDA4ZmM1ZjIxYTY4
YWZhNWJlMWZmMzIzZmU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1y
ZXBsYWNlbWVudC14aHIuaHRtbApAQCAtNDEsNyArNDEsNyBAQCBmdW5jdGlvbiBhbGxYSFJzTG9h
ZGVkKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDEp
OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDEpOwogICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKIAogICAgIGZ1bmN0aW9uIGR1
bXBSZXNvdXJjZShyZXNvdXJjZSwgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZGlzYWJsZS1jYWNoZS1tZW1vcnku
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1k
aXNhYmxlLWNhY2hlLW1lbW9yeS5odG1sCmluZGV4IDYxYjdhMmNiMjMxOTJiMTQ0MzUyMjFlZDMy
MTc3NDk0YzA1ZWEyM2YuLjk4MGQ3MjBlOTdkMDUxMTM0ZDUxNzY3ZTY4MDRhOGY1ODdmZWU5ODYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1kaXNhYmxlLWNhY2hlLW1lbW9yeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLW1lbW9yeS5odG1sCkBA
IC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gbG9hZFNjcmlw
dEFuZEdldENvbnRlbnQoY2FsbGJhY2spCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2Ui
LCBzY3JpcHRMb2FkZWQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVy
KHNjcmlwdExvYWRlZCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNj
aGVkdWxlU2NyaXB0TG9hZCgpIik7CiAKICAgICAgICAgZnVuY3Rpb24gc2NyaXB0TG9hZGVkKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1kaXNhYmxlLWNhY2hlLXhocnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLXhocnMuaHRtbAppbmRleCA4YjQy
NmFhYmJhNTcwMmI4ZjY3MTgxYTkwODE0ODY1MDQ4YWRmZGNmLi5kNTBhNGJlZjFkMDNmOWNiMWVm
NWMxMTE1ZWU3NWUwMmUzNTlmNDAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZGlzYWJsZS1jYWNoZS14aHJzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWRpc2FibGUt
Y2FjaGUteGhycy5odG1sCkBAIC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAg
ZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIp
OworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZERhdGEoKSIpOwogICAgIH0KIApA
QCAtNTIsNyArNTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAzKG1z
ZykKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3Iu
Q29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXA0KTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwNCk7CiAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImNhY2hlRGlzYWJsZWQoKSIpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWVtYmVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
ZW1iZWQuaHRtbAppbmRleCBlYmY1ZDU2YzNjNWNhMWMzNjgwMjBkOGVlNjk4YWVhMDdmMGExOWU5
Li5hZGQxODliMDJmNjQ4NDk0MzU1NzNlMjZmMDcxM2QzMWE5OWZjMzgxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZW1iZWQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
ZW1iZWQuaHRtbApAQCAtNjYsNyArNjYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0
aW9uIHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm9uU25pZmZlckluc3RhbGxlZCgpIik7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstaWZyYW1lLWxvYWQtYW5kLWRlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWlmcmFtZS1sb2FkLWFuZC1kZWxldGUuaHRt
bAppbmRleCA2YmZhNzMwMGIzMjA2NDA4Zjg1ZDM5OTFkNWY0OTZhMTRjNWE1NzVjLi5mZTY3N2I1
MjNjYjA5ZTIxMDhjZTMyNDk5MWQ4NWYxNTU5YjQyZjZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaWZyYW1lLWxvYWQtYW5kLWRl
bGV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1pZnJhbWUtbG9hZC1hbmQtZGVsZXRlLmh0bWwKQEAgLTM4LDcgKzM4LDcgQEAgZnVu
Y3Rpb24gaWZyYW1lTG9hZGVkQ2hhbmdlU3JjKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNu
aWZmZXIoc3RlcDIpOwogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRJZnJh
bWUoKSIpOwogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRpYXRvci1mcm9tLWNvbnNv
bGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1pbml0aWF0b3ItZnJvbS1jb25zb2xlLmh0bWwKaW5kZXggZGUyYTNiNzhjYTczNjBlOGQyNDEy
NGM4MzdhNjMzYzc3YTMwZWNhZC4uZjZkMWYwMWM5ZGRkNjE5NjhhNWIzMzg4MDVlZjdmNzAwZDIy
ODU2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLWluaXRpYXRvci1mcm9tLWNvbnNvbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaW5pdGlhdG9yLWZyb20tY29uc29s
ZS5odG1sCkBAIC0xOCwxMyArMTgsMTMgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAKICAgICBm
dW5jdGlvbiBzdGVwMSgpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwogICAgICAg
ICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZVN0YXJ0ZWQsIG9uUmVzb3VyY2Up
OwogICAgICAgICB2YXIgc3RyID0gIiI7CiAgICAgICAgIHN0ciArPSAidmFyIHMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpOyI7CiAgICAgICAgIHN0ciArPSAicy5zcmMgPSBc
InJlc291cmNlcy9zY3JpcHQuanNcIjsiOwogICAgICAgICBzdHIgKz0gImRvY3VtZW50LmhlYWQu
YXBwZW5kQ2hpbGQocyk7IjsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuZXZhbEluSW5z
cGVjdGVkV2luZG93KHN0ciwgImNvbnNvbGUiLCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
ZnVuY3Rpb24oKXt9KQorICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuZXZhbEluSW5z
cGVjdGVkV2luZG93KHN0ciwgImNvbnNvbGUiLCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
ZnVuY3Rpb24oKXt9KQogICAgIH0KIAogICAgIGZ1bmN0aW9uIG9uUmVzb3VyY2UoZXZlbnQpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstaW5pdGlhdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstaW5pdGlhdG9yLmh0bWwKaW5kZXggMWM0YzA2YTdhZjEzN2Q0ZTEzODE5MDA2
MmZlYTg5NDdmYTU2NDQ4ZS4uZmQ0OGNjZWFlNzlkMDEyYjg5MTc4YTJlY2NhYzRmMTIxNGZjNDJm
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLWluaXRpYXRvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1pbml0aWF0b3IuaHRtbApAQCAtNjUsNyArNjUsNyBAQCB2YXIg
dGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgaWYgKCFmaW5kUmVzb3VyY2VCeVVSTCgvc2l6ZT0z
MDAvKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNu
aWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBz
dGVwMyk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDMpOwog
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkRGF0YSgpIik7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50
Lmh0bWwKaW5kZXggMjE0OTdmNjVlZDA2MTgwZTc5Yjc4NjBiYThiMzljMzkxYmE4MmRjMS4uYzRk
ZTk0ZmVmOTg3ZDI2ZDE1M2NlNGIxZTgwMmNkY2NiY2E5YjMzYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXJlcXVlc3QtcmV2aXNp
b24tY29udGVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbApAQCAtMTEsNyArMTEs
NyBAQCBmdW5jdGlvbiBsb2FkU2NyaXB0KCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUs
ICJhZGRNZXNzYWdlIiwgc3RlcDIsIHRydWUpOworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29s
ZVNuaWZmZXIoc3RlcDIsIHRydWUpOwogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
ImxvYWRTY3JpcHQoKSIpOwogCiAgICAgZnVuY3Rpb24gc3RlcDIobXNnKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNoYXJlZC13
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1zaGFyZWQtd29ya2VyLmh0bWwKaW5kZXggNzY4N2MzMDgxNTA3NjI4ZWEzYTgwZWRlMzY4
NDE2NWU3YmZmY2ZhYy4uZmQ5YjU5NTc4Y2Y2Y2NkMGRiNzM4NDk5NDE0YTFhMTVkYzRmM2YyMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLXNoYXJlZC13b3JrZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstc2hhcmVkLXdvcmtlci5odG1sCkBAIC0yMiw3ICsyMiw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNv
bGVTbmlmZmVyKHN0ZXAyKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgi
bG9hZERhdGEoKSIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpZGViYXItd2lkdGguaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaWRlYmFyLXdpZHRoLmh0
bWwKaW5kZXggZWRjNWRiMjFmNWJjOTU5OWVhOWMwZjZmNTQ0ZTQwZDk3MWFlZTliZC4uY2U0MTBl
YjBkNDVjNjRhMjYzZTgxOGM3YTE4OTRmMjhhYjM4NTA1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpZGViYXItd2lkdGguaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
c2lkZWJhci13aWR0aC5odG1sCkBAIC0xNSw3ICsxNSw3IEBAIGZ1bmN0aW9uIHJlc291cmNlTG9h
ZGVkKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIp
OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwogICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKIAogICAgIHZhciBvbGRTZXR0
aW5nOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCmluZGV4IGFlMzJiZmU1Zjk1
MDM0NGY0ZGZhODk2ZDQ4YjY1YmQ4N2ZjMjRiYjMuLjU1N2M0ZjQzNWQ3NGM3NDNlY2ExN2JmYWY0
NmIzYmQzYWQ4MzZhODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwKQEAg
LTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gcmVzb3VyY2VMb2FkZWQoKQogCiBmdW5jdGlvbiB0ZXN0
KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7CisgICAgSW5zcGVjdG9yVGVzdC5h
ZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgibG9hZEltYWdlcygpIik7CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1zeW5j
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
c2l6ZS1zeW5jLmh0bWwKaW5kZXggYTI2MTRmNzMzMjg3MTZjMzAxODA5MjFiYTNmZDRhN2MxZTE2
ZTIxYy4uMmRjN2FkMzJmYTE3NjMzNTQzNDg0OTMxZGM1Njk1NDVjMTAzZTZiYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUt
c3luYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1zaXplLXN5bmMuaHRtbApAQCAtMTUsNyArMTUsNyBAQCBmdW5jdGlvbiByZXNvdXJj
ZUxvYWRlZCgpCiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0
ZXAyKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkRGF0YSgpIik7CiAKICAgICBmdW5jdGlv
biBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmstc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLXNpemUuaHRtbAppbmRleCA4YTYyNDRhYjM0NmRlZTVmYzVjM2Fm
NTBmMjQzMGNjZDNjZGM1OWIzLi5iNTgyYzAwN2Y0OWIzYzQxNjg5NjBkZTU3YTRiZmJmYjVjOWYw
ZmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstc2l6ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1zaXplLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gcmVz
b3VyY2VMb2FkZWQoKQogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2Ui
LCBzdGVwMik7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZEltYWdlcygpIik7CiAKICAgICBm
dW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstdGltaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstdGltaW5nLmh0bWwKaW5kZXggNjQ5ODUyZDJmZmM5
MDY0NmIxNGI0ZDZhNzMzMzY1OTRjNDJmY2Y3Ni4uYTk4MmU0Y2RmNzc0ZTk1MmJjMWU0ZDIzODE4
NGRlODEyN2NkNTdkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLXRpbWluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay10aW1pbmcuaHRtbApAQCAtMjQsNyArMjQsNyBA
QCBmdW5jdGlvbiByZXNvdXJjZUxvYWRlZCgpCiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIElu
c3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBl
LCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlm
ZmVyKHN0ZXAyKTsKICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkU2NyaXB0
cygpIik7CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstd29ya2VyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstd29ya2VyLmh0bWwKaW5k
ZXggY2Y0YzE3NTAxZjU5YTM3ZjJlNDdjMjA3NjI5ODcyNjhiNDJlMzI0Ny4uZjMwYWQxZGI1Mjc5
YzY0NjQ3ZjA2OGU1NjYzN2Q0ZTBiZDQ5MGZiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXdvcmtlci5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay13b3JrZXIuaHRtbApA
QCAtMjIsNyArMjIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
ICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29u
c29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItYXN5bmMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHIt
YXN5bmMuaHRtbAppbmRleCA3NTdhNWQwOWI1MDQ1YzljNjZjMjc3NjZkYTJhYTI1MDJkYTZjNTUy
Li4zNTYyZTkzNjE3MjQzOWE0ZmZlODBmYzhkZTUzZjBhODAxZjUwOWVhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLWFzeW5j
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLXhoci1hc3luYy5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAg
ICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3Rl
cDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZERhdGEoKSIpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLXhoci1zeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmsteGhyLXN5bmMuaHRtbAppbmRleCA2NWNkM2EzNjZhYjM1NTAwM2RhMDc4
ODQ4ODY4MGY0OWRiNTU0N2FmLi45Y2IwZjA0NDM1ZDI0N2I4ODY5MzExNGJhMDU0ZGNhYTgwZWE2
YmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmsteGhyLXN5bmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLXN5bmMuaHRtbApAQCAtMjEsNyArMjEsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAi
YWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25p
ZmZlcihzdGVwMik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRE
YXRhKCkiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Byb3RvY29sLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9wcm90b2NvbC10ZXN0LmpzCmluZGV4IGRmYjRkMTNlN2U0OTRlMGY4MWEwNzFkMmUxMDY0MjMz
ZDk1NTc5MTQuLjgwMmEwYTdlZDIyNTM4NTFiZmJmN2Y0NTAxNmViNGYzMmY1N2FiZjIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sLXRlc3QuanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wtdGVzdC5qcwpA
QCAtMTAxLDYgKzEwMSw4IEBAIEluc3BlY3RvclRlc3QucnVuUHJvdG9jb2xUZXN0U3VpdGUgPSBm
dW5jdGlvbihhZ2VudE5hbWUsIHRlc3RTdWl0ZSwgbm9uZGV0ZXJtaW5pCiAgICAgdmFyIGRvbWFp
biA9IGFnZW50TmFtZS5yZXBsYWNlKC9BZ2VudCQvLCIiKTsKICAgICB2YXIgZG9tYWluTWVzc2Fn
ZXNIYW5kbGVyID0gSW5zcGVjdG9yQmFja2VuZC5fZG9tYWluRGlzcGF0Y2hlcnNbZG9tYWluXTsK
ICAgICBmb3IgKHZhciBldmVudE5hbWUgaW4gZG9tYWluTWVzc2FnZXNIYW5kbGVyKSB7CisgICAg
ICAgIGlmICh0eXBlb2YgZG9tYWluTWVzc2FnZXNIYW5kbGVyW2V2ZW50TmFtZV0gIT09ICJmdW5j
dGlvbiIpCisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgdGhpcy5fYWdlbnRDb3ZlcmFn
ZVtldmVudE5hbWVdID0gIm5vdCBjaGVja2VkIjsKICAgICAgICAgZG9tYWluTWVzc2FnZXNIYW5k
bGVyW2V2ZW50TmFtZV0gPSBJbnNwZWN0b3JUZXN0Ll9kdW1wRXZlbnQuYmluZChkb21haW5NZXNz
YWdlc0hhbmRsZXIsIGV2ZW50TmFtZSwgZG9tYWluTWVzc2FnZXNIYW5kbGVyW2V2ZW50TmFtZV0p
OwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQu
aHRtbAppbmRleCAyN2UzYTQ2YzNlYWQzNzhkM2YyNWM4MTAwMWFlNmVjYzY3ZTI1ZjllLi44YzBk
ZDBmZmFiZGJlNmI5NWE4NGEyYWYxYTFkNWRmODNlOTFhMjFmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJh
bWUtYWRkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLWFkZC5odG1sCkBAIC0zMCw3ICszMCw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQmVmb3JlIGFk
ZGl0aW9uIik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0iKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wUmVz
b3VyY2VUcmVlRXZlcnl0aGluZygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwogICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJjcmVhdGVJZnJhbWUoKSIpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
dHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2aWdh
dGUuaHRtbAppbmRleCBjYTE1MjkyNTQ4YmUwNDcyZmRmYjQwNDRmNmY3YzA1YzU4MmJiN2UzLi44
NmU1MjlkNjBhNDM0YWQwZTRiNzAyN2I2ODY4YjA0MmY0ZTQ2ZWFmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUt
ZnJhbWUtbmF2aWdhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUuaHRtbApAQCAtMzEs
NyArMzEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkJlZm9yZSBuYXZpZ2F0aW9uIik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wUmVzb3VyY2VUcmVlRXZlcnl0aGluZygpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1l
c3NhZ2UiLCBzdGVwMik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIo
c3RlcDIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJuYXZpZ2F0ZUlm
cmFtZSgpIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbm8teGhycy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLW5v
LXhocnMuaHRtbAppbmRleCAyMWQxOTY3MjIzM2JkYTBiZWQ4NGNmN2M0YTljMDczYzQ4Mzc1ZTNm
Li42M2VkMzQ1NDVmMDA2NzdjOGNmODU0OWE1N2MwNmM0NWQzMzc1OGFmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRy
ZWUtbm8teGhycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1uby14aHJzLmh0bWwKQEAgLTE1LDcgKzE1LDcgQEAg
ZnVuY3Rpb24gcmVzb3VyY2VMb2FkZWQoKQogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNw
ZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwg
ImFkZE1lc3NhZ2UiLCBzdGVwMik7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZl
cihzdGVwMik7CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2VuZFhIUigpIik7
CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWFzc2VydC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1hc3NlcnQuaHRtbAppbmRleCBkY2I5OTU3YWM3YWU1MzE4OWM4YWM0MjFm
ZWE4NTI0NDM1ZmU5ZDdiLi43YzFmNmRhNWE1ODM0NWNlNDFiODVhNGU3MzI2MDczMzIzMDIxMTIw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFzc2Vy
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXNzZXJ0
Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIH0KICAgICB9
CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dChhLCAwKSIpOwot
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJv
dG90eXBlLCAiYWRkTWVzc2FnZSIsIGNhbGxiYWNrLCB0cnVlKTsKKyAgICBJbnNwZWN0b3JUZXN0
LmFkZENvbnNvbGVTbmlmZmVyKGNhbGxiYWNrLCB0cnVlKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyYWNlLWluLWV2
YWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UtaW4t
ZXZhbC5odG1sCmluZGV4IDAwM2YyNDNkZDRmMDFlZWFhNjFhMzVlOGY0ZmY4YTk0Y2FkMTU3NGQu
LjY0Y2U5ZTE5MjhkOTY0M2JkNTk3MDg2ZDJkNTFjYTFhMDU1NmMxZjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UtaW4tZXZhbC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UtaW4tZXZhbC5o
dG1sCkBAIC0zNSw3ICszNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgIH0KICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJkb0V2YWxTb3VyY2UoKSIpOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIGNhbGxiYWNrKTsK
KyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKGNhbGxiYWNrKTsKIH0KIAogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LXRyYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyYWNl
Lmh0bWwKaW5kZXggYmUyYzJmMWViYjg2MTQ2YjM2MzAxNzA2ODg0MzdjOGEwMDA0ZTJiOS4uMzVi
ZjI1M2QwYjAyY2Q2M2E1YTVlYTZkNTRmYmE1MGNjNDMzN2U5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10cmFjZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UuaHRtbApAQCAtMjIsNyArMjIsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
ICAgICB9CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dChhLCAw
KSIpOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIGNhbGxiYWNrKTsKKyAgICBJbnNwZWN0b3JUZXN0
LmFkZENvbnNvbGVTbmlmZmVyKGNhbGxiYWNrKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXVuY2F1Z2h0LWV4Y2VwdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS11bmNhdWdodC1l
eGNlcHRpb24uaHRtbAppbmRleCA5OTVhM2U3NmUxZjcxMDFiMzU5ZGIwMWQ0ZDAxMThmZDYxZjgy
NzFmLi4yMGViOTgyNDY1YjY2Y2RhMzNlZDNkN2VkMjg1YzY2YzE5ZTdmMTk2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXVuY2F1Z2h0LWV4Y2VwdGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdW5jYXVn
aHQtZXhjZXB0aW9uLmh0bWwKQEAgLTYsNyArNiw3IEBACiAKIGZ1bmN0aW9uIHRlc3QoKQogewot
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJv
dG90eXBlLCAiYWRkTWVzc2FnZSIsIGFkZE1lc3NhZ2UsIHRydWUpOworICAgIEluc3BlY3RvclRl
c3QuYWRkQ29uc29sZVNuaWZmZXIoYWRkTWVzc2FnZSwgdHJ1ZSk7CiAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgibG9hZElmcmFtZSgpIik7CiAgICAgZnVuY3Rpb24gYWRkTWVzc2Fn
ZShtZXNzYWdlKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3ludGF4LWVycm9yLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItYXV0b2NvbnRpbnVlLW9uLXN5bnRheC1l
cnJvci5odG1sCmluZGV4IGFhM2EwNTE5MzZhY2I3NWMyODBkODFmYTc4ZjlkOGYxMTQ4MWZlMzQu
LjM5ZjcxNjgwNDBhOGFkNzBiNzAxYzhlMGJlOTM1OTkyYWE4MGVkNzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3lu
dGF4LWVycm9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVn
Z2VyLWF1dG9jb250aW51ZS1vbi1zeW50YXgtZXJyb3IuaHRtbApAQCAtMTksNyArMTksNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgewogICAgICAgICBEZWJ1
Z2dlckFnZW50LnNldFBhdXNlT25FeGNlcHRpb25zKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90
b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENv
bnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgibG9hZElmcmFtZSgpIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFtZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRpb25zLW9uLWNh
bGwtZnJhbWUuaHRtbAppbmRleCBjYTBlMzU0OTc0ZjFmNDI4NjM5M2NkY2JjZThjZjdlODY5Yjk2
ODFiLi45MDA0MzkzMDdhZGZiM2ZjMTAzYzkxMzc5NGQzYjRlNDNjNmQwYTJkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGxldGlvbnMtb24t
Y2FsbC1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1jb21wbGV0aW9ucy1vbi1jYWxsLWZyYW1lLmh0bWwKQEAgLTIzLDMyICsyMywzMiBAQCB2
YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7Ci0gICAg
ICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLl9jb21wbGV0aW9ucygiIiwgInZhciIsIGZhbHNlLCBj
aGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ2YXIxIiwgInZhcjIiIF0sIFtdLCBzdGVw
MykpOworICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX2NvbXBsZXRpb25zKCIiLCAi
dmFyIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgInZhcjEiLCAidmFy
MiIgXSwgW10sIHN0ZXAzKSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDMoKQogICAgIHsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuX2NvbXBsZXRpb25zKCIiLCAiZGkiLCBmYWxz
ZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAiZGlyIiwgImRpcnhtbCIgXSwgW10s
IHN0ZXA0KSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fY29tcGxldGlvbnMo
IiIsICJkaSIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJkaXIiLCAi
ZGlyeG1sIiBdLCBbXSwgc3RlcDQpKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwNCgpCiAg
ICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29tcGxldGlvbnMoIiIsICJ3aW4i
LCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAid2luZG93IiBdLCBbXSwg
c3RlcDUpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygi
IiwgIndpbiIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ3aW5kb3ci
IF0sIFtdLCBzdGVwNSkpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA1KCkKICAgICB7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLl9jb21wbGV0aW9ucygiIiwgInQiLCBmYWxzZSwg
Y2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAidGhpcyIgXSwgW10sIHN0ZXA2KSk7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fY29tcGxldGlvbnMoIiIsICJ0IiwgZmFs
c2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgInRoaXMiIF0sIFtdLCBzdGVwNikp
OwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA2KCkKICAgICB7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5jb25zb2xlLl9jb21wbGV0aW9ucygidmFyMSIsICJ0b0V4cCIsIGZhbHNlLCBjaGVja0Fn
YWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ0b0V4cG9uZW50aWFsIiBdLCBbXSwgc3RlcDcpKTsK
KyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygidmFyMSIsICJ0
b0V4cCIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ0b0V4cG9uZW50
aWFsIiBdLCBbXSwgc3RlcDcpKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwNygpCiAgICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5fY29tcGxldGlvbnMoIjEyMyIsICJ0b0V4
cCIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbXSwgWyAidG9FeHBvbmVu
dGlhbCIgXSwgc3RlcDgpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21w
bGV0aW9ucygiMTIzIiwgInRvRXhwIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRo
aXMsIFtdLCBbICJ0b0V4cG9uZW50aWFsIiBdLCBzdGVwOCkpOwogICAgIH0KIAogICAgIGZ1bmN0
aW9uIHN0ZXA4KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaWZy
YW1lLmh0bWwKaW5kZXggMjY2MWMyZjU4ZDZlNjdkYjlhNTI2Mzc4YWQ0NDkzYjRhNzQ1ZmM3ZC4u
ZDg4MmUyYTBmZmFlYmQ5ZDY4MDQyZWI5MzRlMGUyMmNjZmUzM2EwNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaWZyYW1lLmh0bWwKQEAgLTE5LDcgKzE5LDcg
QEAgZnVuY3Rpb24gbG9hZElmcmFtZSgpCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkSWZyYW1lKCkiKTsKLSAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3Nh
Z2UiLCBzdGVwMCk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMCk7
CiAKICAgICBmdW5jdGlvbiBzdGVwMCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLmh0bWwK
aW5kZXggNmY0NmJjMzhlYmQ1ODVjOThkNWYyNjJmNjEzM2Q1YTIzMTlhYjI0Ni4uOGRjOTgxNWE3
Mjc0NjUwNWI2OGM2OWQ5YmJlNjVlYjhmNzhlODkwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS5o
dG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIHN0ZXAx
KCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1B
Y3Rpb25zKCkiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICB9CiAKICAgICBmdW5j
dGlvbiBzdGVwMigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWwKaW5kZXggMjI3Mjc5MTMwZDNjZWRiNzBjNTcy
MDNjMDVjNmExODJkMzU3MWQ0Mi4uZThmNjEzMWI5NjUwNzlhOGMyODJjMjdkODk5NjAwMmYyZjIx
ZDUwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LXNjcmlwdC10YWctMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1zY3JpcHQtdGFnLTEuaHRtbApAQCAtMTYsNyArMTYsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0VGltZWxpbmUoc3RlcDEpOwogICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7CiAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQt
dGFnLTIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3Jp
cHQtdGFnLTIuaHRtbAppbmRleCAxZTBjZWI5MzAwZmUxNGYyMzQxODFmOThjOWU0M2IzOTE3OWM2
ZWRmLi4zZThmMThlOGY0MzE0Yjg5YzRkZDNkN2YwN2EwN2FjNTc0ZWQ4MWVjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0yLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10
YWctMi5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3Rv
clRlc3Quc3RhcnRUaW1lbGluZShzdGVwMSk7CiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmll
dy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgicGVyZm9ybUFjdGlvbnMoKSIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMyOWQw
NGI3Yjg0NTBlZTYxNjZhMzBlZDZhNWM1Njk5NDY1YTIxMTguLmY0MDY5YzI0NjhiNTBjNGJkMmRm
ZDIxZjdlOTFjZDBlNWNkMTJlZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw3NyBAQAogMjAxMS0w
OC0yNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKKyAgICAgICAgV2Vi
IEluc3BlY3Rvcjogc3BsaXQgQ29uc29sZVZpZXcgaW50byB0aGUgVmlldyBhbmQgdGhlIE1vZGVs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4NjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2g6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVNb2RlbC5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1v
ZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwucHJvdG90eXBlLl9zZXRD
b25zb2xlTWVzc2FnZUV4cGlyZWRDb3VudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZU1vZGVsLnByb3RvdHlwZS5hZGRNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25z
b2xlTW9kZWwucHJvdG90eXBlLl9pbmNyZW1lbnRFcnJvcldhcm5pbmdDb3VudCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLnByb3RvdHlwZS5yZXF1ZXN0Q2xlYXJNZXNzYWdl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLnByb3RvdHlwZS5jbGVhck1l
c3NhZ2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlRGlzcGF0Y2hlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZURpc3BhdGNoZXIucHJvdG90eXBlLm1lc3NhZ2VBZGRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZURpc3BhdGNoZXIucHJvdG90eXBlLm1l
c3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNo
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25z
b2xlVmlldy5wcm90b3R5cGUuX2NvbnNvbGVNZXNzYWdlQWRkZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fYXBwZW5kQ29uc29sZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fYXBwZW5kQ29uc29sZUNv
bW1hbmRSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZS5fYXBwZW5kQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS5fY29uc29sZUNsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LnByb3RvdHlwZS5fcmVnaXN0ZXJTaG9ydGN1dHMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fcmVxdWVzdENsZWFyTWVzc2FnZXMpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuYWRkU291cmNlTWFw
cGluZ0xpc3RlbmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5yZW1vdmVTb3VyY2VNYXBwaW5nTGlzdGVuZXIpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0xvZy5qczogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzLgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5ldHdvcmtMb2cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2cucHJvdG90
eXBlLmdldCByZXNvdXJjZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2cucHJv
dG90eXBlLl9mcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0xv
Zy5wcm90b3R5cGUuX29uUmVzb3VyY2VTdGFydGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtE
aXNwYXRjaGVyLnByb3RvdHlwZS5fdXBkYXRlUmVzb3VyY2VXaXRoUmVzcG9uc2UpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5fbWltZVR5cGVJc0Nv
bnNpc3RlbnRXaXRoVHlwZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZS5qc3dhcm5pbmc6IExGIHdpbGwgYmUgcmVwbGFjZWQgYnkgQ1JMRiBpbiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvai4KVGhlIGZpbGUgd2lsbCBoYXZlIGl0cyBv
cmlnaW5hbCBsaW5lIGVuZGluZ3MgaW4geW91ciB3b3JraW5nIGRpcmVjdG9yeS4KOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5zZXQgZmluaXNoZWQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRmlsZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2Rl
LnByb3RvdHlwZS5fc2NyaXB0Rm9yUmF3TG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdENvbnRlbnRQcm92aWRlci5wcm90b3R5cGUucmVxdWVzdENvbnRlbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJvdmlkZXIucHJvdG90
eXBlLl9jb25jYXRlbmF0ZVNjcmlwdHNDb250ZW50LmFwcGVuZENodW5rKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5f
Y29uY2F0ZW5hdGVTY3JpcHRzQ29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9VSVNvdXJjZUNvZGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIucHJvdG90eXBlLnJlcXVl
c3RDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lv
bnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25z
U2VjdGlvbi5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLmZvcm1hdExpbmtUZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9jcmVhdGVHbG9iYWxTdGF0dXNCYXJJdGVtcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuX3VwZGF0ZUVycm9yQW5kV2FybmluZ0NvdW50cyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3Iuc2hvd0NvbnNvbGUpOgorCisyMDExLTA4LTI0ICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQg
OSBtb3JlIGphdmFzY3JpcHQgZmlsZXMgdG8gdGhlIGNvbXBpbGF0aW9uLgogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4NDcKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDk3MzQ2YzU0MWZjMDRhOGE4ZmFmYWZiYTg2ZmYzZTA2MjM3YTFjMmUuLjY3MDg5OTdm
MzI4OTNiMTM1YzlkZmU3Yzk5YmM2OGZmMWEzMzVlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYy
OTEsNiArNjI5MSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9DaGVja2Jv
eC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5qcycsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcycsCisgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcycsCkBAIC02MzQzLDYgKzYzNDQs
NyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTWV0cmljc1NpZGViYXJQYW5l
LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5q
cycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcycs
CisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpzJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3QuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA0NGYyZjE1MDI3MjNjNzI2MTE1
ZjVmNTkyNWUxNzZjZThmZjJmY2ZkLi5kOTM3NzY5NTJmZmE4MWFiMzFlOWYyYTAzOWU4MTU2ZDhj
MzZhYjA5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNjg3NjUsNiArNjg3NjUsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29uc29sZU1vZGVs
LmpzIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0i
Li5caW5zcGVjdG9yXGZyb250LWVuZFxDb25zb2xlVmlldy5qcyIKIAkJCQkJPgogCQkJCTwvRmls
ZT4KQEAgLTY5MDA5LDYgKzY5MDEzLDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXE5ldHdvcmtMb2cu
anMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxpbnNwZWN0b3JcZnJvbnQtZW5kXG5ldHdvcmtQYW5lbC5jc3MiCiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1l
bmQuc2ggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2gKaW5k
ZXggZmExMjAyZWYxYjE1MDZkNGY5Y2M3YjkxNmNhZTgxN2ZjMjgyYzk3Ni4uNmI2YzhiMmY0Mjlm
ZTBjZTZiODc2ZjBiZTZiNjBlMTdkYzNkMDhhZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNoCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9jb21waWxlLWZyb250LWVuZC5zaApAQCAtMzQsMjIgKzM0LDMyIEBAIHB5dGhvbiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGUtcHJvdG9jb2wtZXh0ZXJucyAtbyBTb3VyY2Uv
V2ViQ29yZS9pbnNwCiBqYXZhIC1qYXIgfi9jbG9zdXJlL2NvbXBpbGVyLmphciAtLWNvbXBpbGF0
aW9uX2xldmVsIFNJTVBMRV9PUFRJTUlaQVRJT05TIC0td2FybmluZ19sZXZlbCBWRVJCT1NFIC0t
bGFuZ3VhZ2VfaW4gRUNNQVNDUklQVDUgLS1hY2NlcHRfY29uc3Rfa2V5d29yZCBcCiAgICAgLS1l
eHRlcm5zIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcyBcCiAg
ICAgLS1leHRlcm5zIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcHJvdG9jb2wt
ZXh0ZXJucy5qcyBcCi0gICAgLS1tb2R1bGUganNtb2R1bGVfY29yZToyIFwKKyAgICAtLW1vZHVs
ZSBqc21vZHVsZV91dGlsOjIgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzIFwKLSAgICAtLW1vZHVsZSBqc21vZHVs
ZV9lbnY6MyBcCi0gICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TZXR0aW5ncy5qcyBcCi0gICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Vc2VyTWV0cmljcy5qcyBcCisgICAgLS1tb2R1bGUganNtb2R1bGVfaG9zdDoxIFwK
ICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3Rv
ckZyb250ZW5kSG9zdFN0dWIuanMgXAotICAgIC0tbW9kdWxlIGpzbW9kdWxlX3Nkazo4OmpzbW9k
dWxlX2NvcmUsanNtb2R1bGVfZW52IFwKKyAgICAtLW1vZHVsZSBqc21vZHVsZV9jb21tb246NDpq
c21vZHVsZV91dGlsLGpzbW9kdWxlX2hvc3QgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQmluYXJ5U2VhcmNoLmpzIFwKKyAgICAgICAgLS1qcyBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdC5qcyBcCisgICAgICAgIC0tanMg
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBcCisgICAgICAg
IC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Vc2VyTWV0cmljcy5qcyBc
CisgICAgLS1tb2R1bGUganNtb2R1bGVfc2RrOjE1OmpzbW9kdWxlX2NvbW1vbixqc21vZHVsZV9o
b3N0IFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyTW9kZWwuanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMgXAorICAgICAgICAtLWpz
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzIFwKKyAg
ICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIFwKLSAgICAgICAgLS1qcyBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgXAotICAgICAgICAt
LWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0LmpzIFwKKyAgICAg
ICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2Vy
LmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdC5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRGb3JtYXR0ZXIuanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMgXAorICAgICAgICAtLWpzIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgXAogICAgICAgICAt
LWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDYXRlZ29yeS5q
cyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNv
dXJjZUNvZGUuanMgXAogICAgIC0tbW9kdWxlIGpzbW9kdWxlX21pc2M6MTA6anNtb2R1bGVfc2Rr
IFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NoZWNr
Ym94LmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnRleHRNZW51LmpzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCmluZGV4IDVmOTY0ZDFhOWIwMTdmYWZkMjg0
MGNhMTYxM2VjYjMxNjlmYTVlMGYuLmE4MmU5ZGMyODM2YjcwMmI2NmIyZGFlMDQ4NjBmNzlkZmQ4
MjYwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJl
YWtwb2ludE1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9CcmVha3BvaW50TWFuYWdlci5qcwpAQCAtMjM1LDYgKzIzNSw5IEBAIFdlYkluc3BlY3Rvci5C
cmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCisvKioKKyAqIEBjb25z
dHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludCA9IGZ1bmN0aW9uKHVpU291cmNl
Q29kZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQsIHBlcnNpc3RlbnQpCiB7CiAg
ICAgdGhpcy51aVNvdXJjZUNvZGVJZCA9IHVpU291cmNlQ29kZUlkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5kZXggMzMz
ZGVmOWQ5OThkM2MzNDc1M2RmZmFiNjJhMmJiZWUzNTdiOWRlZC4uYTcxN2ZhNTZkMmU4MDljNWFh
ODRhYmQwOTM4NWEwODA0ZTYyYmVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC0yMTUsNyArMjE1LDcgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmIChz
aG91bGRGb3JtYXRNZXNzYWdlICYmIHBhcmFtZXRlcnNbaV0udHlwZSA9PT0gInN0cmluZyIpCiAg
ICAgICAgICAgICAgICAgZm9ybWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKHBhcmFtZXRlcnNbaV0uZGVzY3JpcHRpb24pKTsKICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9y
LmNvbnNvbGUuX2Zvcm1hdChwYXJhbWV0ZXJzW2ldKSk7CisgICAgICAgICAgICAgICAgZm9ybWF0
dGVkUmVzdWx0LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fZm9ybWF0KHBh
cmFtZXRlcnNbaV0pKTsKICAgICAgICAgICAgIGlmIChpIDwgcGFyYW1ldGVycy5sZW5ndGggLSAx
KQogICAgICAgICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiICIpKTsKICAgICAgICAgfQpAQCAtMjI5LDcgKzIyOSw3IEBAIFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZ1bmN0aW9uIGNv
bnNvbGVGb3JtYXRXcmFwcGVyKGZvcmNlKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
ZnVuY3Rpb24ob2JqKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5jb25z
b2xlLl9mb3JtYXQob2JqLCBmb3JjZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5jb25zb2xlVmlldy5fZm9ybWF0KG9iaiwgZm9yY2UpOwogICAgICAgICAgICAgfTsKICAg
ICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZU1vZGVsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkODFiM2RiNWNjZWRlYzJhZjdjNzg5ZTQ3YjIxMGUz
ZGEyZTMyYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVNb2RlbC5qcwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICogQGNvbnN0cnVj
dG9yCisgKi8KK1dlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwgPSBmdW5jdGlvbihkcmF3ZXIpCit7
CisgICAgdGhpcy5tZXNzYWdlcyA9IFtdOworICAgIHRoaXMud2FybmluZ3MgPSAwOworICAgIHRo
aXMuZXJyb3JzID0gMDsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29uc29sZURpc3Bh
dGNoZXIobmV3IFdlYkluc3BlY3Rvci5Db25zb2xlRGlzcGF0Y2hlcih0aGlzKSk7Cit9CisKK1dl
Ykluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzID0geworICAgIENvbnNvbGVDbGVhcmVkOiAi
Y29uc29sZS1jbGVhcmVkIiwKKyAgICBNZXNzYWdlQWRkZWQ6ICJjb25zb2xlLW1lc3NhZ2UtYWRk
ZWQiLAorfQorCitXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLnByb3RvdHlwZSA9IHsKKyAgICBl
bmFibGVBZ2VudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5z
ZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZC5nZXQoKSkKKyAgICAgICAgICAgIENvbnNvbGVB
Z2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlKTsKKyAgICAKKyAgICAgICAgLy8gVGhl
cmUgaXMgbm8gY29uc29sZSBhZ2VudCBmb3Igd29ya2VycyB5ZXQuCisgICAgICAgIGlmICghV2Vi
SW5zcGVjdG9yLldvcmtlck1hbmFnZXIuaXNXb3JrZXJGcm9udGVuZCgpKQorICAgICAgICAgICAg
Q29uc29sZUFnZW50LmVuYWJsZSh0aGlzLl9zZXRDb25zb2xlTWVzc2FnZUV4cGlyZWRDb3VudC5i
aW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgX3NldENvbnNvbGVNZXNzYWdlRXhwaXJlZENvdW50
OiBmdW5jdGlvbihjb3VudCkKKyAgICB7CisgICAgICAgIGlmIChjb3VudCkgeworICAgICAgICAg
ICAgdmFyIG1lc3NhZ2UgPSBTdHJpbmcuc3ByaW50ZihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVk
IGNvbnNvbGUgbWVzc2FnZXMgYXJlIG5vdCBzaG93bi4iKSwgY291bnQpOworICAgICAgICAgICAg
dGhpcy5hZGRNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5jcmVhdGVUZXh0TWVz
c2FnZShtZXNzYWdlLCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLldh
cm5pbmcpKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBhZGRNZXNzYWdlOiBmdW5jdGlvbiht
c2cpCisgICAgeworICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobXNnKTsKKyAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVu
dHMuTWVzc2FnZUFkZGVkLCBtc2cpOworICAgIH0sCisKKyAgICBfaW5jcmVtZW50RXJyb3JXYXJu
aW5nQ291bnQ6IGZ1bmN0aW9uKG1zZykKKyAgICB7CisgICAgICAgIHN3aXRjaCAobXNnLmxldmVs
KSB7CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
TGV2ZWwuV2FybmluZzoKKyAgICAgICAgICAgICAgICB0aGlzLndhcm5pbmdzICs9IG1zZy5yZXBl
YXREZWx0YTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5FcnJvcjoKKyAgICAgICAgICAgICAg
ICB0aGlzLmVycm9ycyArPSBtc2cucmVwZWF0RGVsdGE7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9LAorCisgICAgcmVxdWVzdENsZWFyTWVzc2FnZXM6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIENvbnNvbGVBZ2VudC5jbGVhckNvbnNvbGVNZXNzYWdlcygpOwor
ICAgICAgICB0aGlzLmNsZWFyTWVzc2FnZXMoKTsKKyAgICB9LAorCisgICAgY2xlYXJNZXNzYWdl
czogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5tZXNzYWdlcyA9IFtdOworCisgICAg
ICAgIHRoaXMuZXJyb3JzID0gMDsKKyAgICAgICAgdGhpcy53YXJuaW5ncyA9IDA7CisKKyAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2Rl
bC5FdmVudHMuQ29uc29sZUNsZWFyZWQpOworICAgIH0KK30KKworV2ViSW5zcGVjdG9yLkNvbnNv
bGVNb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5
cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAaW1wbGVtZW50cyB7Q29uc29sZUFnZW50
LkRpc3BhdGNoZXJ9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Db25zb2xlTW9kZWx9IGNvbnNv
bGUKKyAqLworV2ViSW5zcGVjdG9yLkNvbnNvbGVEaXNwYXRjaGVyID0gZnVuY3Rpb24oY29uc29s
ZSkKK3sKKyAgICB0aGlzLl9jb25zb2xlID0gY29uc29sZTsKK30KKworV2ViSW5zcGVjdG9yLkNv
bnNvbGVEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKKyAgICBtZXNzYWdlQWRkZWQ6IGZ1bmN0aW9u
KHBheWxvYWQpCisgICAgeworICAgICAgICB2YXIgY29uc29sZU1lc3NhZ2UgPSBuZXcgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlKAorICAgICAgICAgICAgcGF5bG9hZC5zb3VyY2UsCisgICAg
ICAgICAgICBwYXlsb2FkLnR5cGUsCisgICAgICAgICAgICBwYXlsb2FkLmxldmVsLAorICAgICAg
ICAgICAgcGF5bG9hZC5saW5lLAorICAgICAgICAgICAgcGF5bG9hZC51cmwsCisgICAgICAgICAg
ICBwYXlsb2FkLnJlcGVhdENvdW50LAorICAgICAgICAgICAgcGF5bG9hZC50ZXh0LAorICAgICAg
ICAgICAgcGF5bG9hZC5wYXJhbWV0ZXJzLAorICAgICAgICAgICAgcGF5bG9hZC5zdGFja1RyYWNl
LAorICAgICAgICAgICAgcGF5bG9hZC5uZXR3b3JrUmVxdWVzdElkID8gV2ViSW5zcGVjdG9yLm5l
dHdvcmtSZXNvdXJjZUJ5SWQocGF5bG9hZC5uZXR3b3JrUmVxdWVzdElkKSA6IHVuZGVmaW5lZCk7
CisgICAgICAgIHRoaXMuX2NvbnNvbGUuYWRkTWVzc2FnZShjb25zb2xlTWVzc2FnZSk7CisgICAg
fSwKKworICAgIG1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQ6IGZ1bmN0aW9uKGNvdW50KQorICAg
IHsKKyAgICAgICAgdmFyIG1zZyA9IHRoaXMuX2NvbnNvbGUucHJldmlvdXNNZXNzYWdlOworICAg
ICAgICBpZiAoIW1zZykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgcHJldlJl
cGVhdENvdW50ID0gbXNnLnRvdGFsUmVwZWF0Q291bnQ7CisKKyAgICAgICAgaWYgKCF0aGlzLl9j
b25zb2xlLmNvbW1hbmRTaW5jZVByZXZpb3VzTWVzc2FnZSkgeworICAgICAgICAgICAgbXNnLnJl
cGVhdERlbHRhID0gY291bnQgLSBwcmV2UmVwZWF0Q291bnQ7CisgICAgICAgICAgICBtc2cucmVw
ZWF0Q291bnQgPSBtc2cucmVwZWF0Q291bnQgKyBtc2cucmVwZWF0RGVsdGE7CisgICAgICAgICAg
ICBtc2cudG90YWxSZXBlYXRDb3VudCA9IGNvdW50OworICAgICAgICAgICAgbXNnLl91cGRhdGVS
ZXBlYXRDb3VudCgpOworICAgICAgICAgICAgdGhpcy5fY29uc29sZS5faW5jcmVtZW50RXJyb3JX
YXJuaW5nQ291bnQobXNnKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbnNvbGUuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzLk1lc3NhZ2VBZGRl
ZCwgbXNnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBtc2dDb3B5ID0gbmV3
IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZShtc2cuc291cmNlLCBtc2cudHlwZSwgbXNnLmxl
dmVsLCBtc2cubGluZSwgbXNnLnVybCwgY291bnQgLSBwcmV2UmVwZWF0Q291bnQsIG1zZy5fbWVz
c2FnZVRleHQsIG1zZy5fcGFyYW1ldGVycywgbXNnLl9zdGFja1RyYWNlLCBtc2cuX3JlcXVlc3Qp
OworICAgICAgICAgICAgbXNnQ29weS50b3RhbFJlcGVhdENvdW50ID0gY291bnQ7CisgICAgICAg
ICAgICBtc2dDb3B5Ll9mb3JtYXRNZXNzYWdlKCk7CisgICAgICAgICAgICB0aGlzLl9jb25zb2xl
LmFkZE1lc3NhZ2UobXNnQ29weSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgbWVzc2FnZXND
bGVhcmVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5zZXR0
aW5ncy5wcmVzZXJ2ZUNvbnNvbGVMb2cuZ2V0KCkpCisgICAgICAgICAgICB0aGlzLl9jb25zb2xl
LmNsZWFyTWVzc2FnZXMoKTsKKyAgICB9Cit9CisKKy8qKgorICogQHR5cGUgez9XZWJJbnNwZWN0
b3IuQ29uc29sZU1vZGVsfQorICovCitXZWJJbnNwZWN0b3IuY29uc29sZSA9IG51bGw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCmlu
ZGV4IGRhNGI3NDNmZTQwM2NkZTE5YWZlYjM2N2M4ZWQ0YmJlZjE3YWQwMDMuLmQyZTczY2RlZGJh
NjcwYTAzNjU5ZWY0MmYxOGVkZjRhODQ2MDhhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCkBAIC0yOSw4ICsyOSw4IEBACiBX
ZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsID0gZnVuY3Rpb24oKQogewogICAgIFdlYkluc3BlY3Rv
ci5QYW5lbC5jYWxsKHRoaXMsICJjb25zb2xlIik7Ci0gICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcuRXZlbnRzLkVudHJ5QWRk
ZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5j
b25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5D
b25zb2xlQ2xlYXJlZCwgdGhpcy5fY29uc29sZUNsZWFyZWQsIHRoaXMpOworICAgIFdlYkluc3Bl
Y3Rvci5jb25zb2xlVmlldy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmll
dy5FdmVudHMuRW50cnlBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcyk7Cisg
ICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xlYXJlZCwgdGhpcy5fY29uc29sZUNsZWFyZWQs
IHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZSA9IHsKQEAg
LTk4LDcgKzk4LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3NlYXJjaFJlZ2V4ID0gY3JlYXRlU2VhcmNoUmVnZXgocXVlcnksICJnIik7
CiAKICAgICAgICAgdGhpcy5fc2VhcmNoUmVzdWx0cyA9IFtdOwotICAgICAgICB2YXIgbWVzc2Fn
ZXMgPSBXZWJJbnNwZWN0b3IuY29uc29sZS5tZXNzYWdlczsKKyAgICAgICAgdmFyIG1lc3NhZ2Vz
ID0gV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOwogICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICBpZiAobWVzc2Fn
ZXNbaV0ubWF0Y2hlc1JlZ2V4KHRoaXMuX3NlYXJjaFJlZ2V4KSkgewogICAgICAgICAgICAgICAg
IHRoaXMuX3NlYXJjaFJlc3VsdHMucHVzaChtZXNzYWdlc1tpXSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA4MDFlZTQ1MTM5
ZjczOWE3NTNmNGViMjRkNzUyMzJmYjg0ODQ4YzE2Li44OWNiYjMzMjEyZDNiYTliN2EzZDMzNDYx
NDNmODJhN2M4ZGRlMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTM4LDcgKzM4LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNv
bGVWaWV3ID0gZnVuY3Rpb24oZHJhd2VyKQogCiAgICAgdGhpcy5jbGVhckJ1dHRvbiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjbGVhci1jb25zb2xlLXN0YXR1cy1iYXItaXRlbSIpOwogICAg
IHRoaXMuY2xlYXJCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIGNv
bnNvbGUgbG9nLiIpOwotICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCB0aGlzLl9jbGVhckJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRo
aXMuY2xlYXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9yZXF1ZXN0Q2xl
YXJNZXNzYWdlcy5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICB0aGlzLl9jb250ZXh0U2VsZWN0
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlLWNvbnRleHQiKTsKICAg
ICBpZiAoV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIuaXNXb3JrZXJGcm9udGVuZCgpKQpAQCAt
MTAwLDc0ICsxMDAsMTggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24oZHJh
d2VyKQogICAgICAgICAic3RyaW5nIjogdGhpcy5fZm9ybWF0c3RyaW5nCiAgICAgfTsKIAotICAg
IHRoaXMuX3JlZ2lzdGVyQ29uc29sZURvbWFpbkRpc3BhdGNoZXIoKTsKLQogICAgIFdlYkluc3Bl
Y3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZC5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlz
Ll9tb25pdG9yaW5nWEhSRW5hYmxlZFNldHRpbmdDaGFuZ2VkLmJpbmQodGhpcykpOworCisgICAg
V2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29uc29s
ZU1vZGVsLkV2ZW50cy5NZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQsIHRo
aXMpOworICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuQ29uc29sZUNsZWFyZWQsIHRoaXMuX2NvbnNvbGVDbGVh
cmVkLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cyA9IHsKICAg
Q29uc29sZUNsZWFyZWQ6ICJjb25zb2xlLWNsZWFyZWQiLAogICBFbnRyeUFkZGVkOiAiY29uc29s
ZS1lbnRyeS1hZGRlZCIsCi0gIE1lc3NhZ2VBZGRlZDogImNvbnNvbGUtbWVzc2FnZS1hZGRlZCIK
IH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBfcmVnaXN0
ZXJDb25zb2xlRG9tYWluRGlzcGF0Y2hlcjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBjb25z
b2xlID0gdGhpczsKLSAgICAgICAgdmFyIGRpc3BhdGNoZXIgPSB7Ci0gICAgICAgICAgICBtZXNz
YWdlQWRkZWQ6IGZ1bmN0aW9uKHBheWxvYWQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgdmFyIGNvbnNvbGVNZXNzYWdlID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSgK
LSAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5zb3VyY2UsCi0gICAgICAgICAgICAgICAgICAg
IHBheWxvYWQudHlwZSwKLSAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5sZXZlbCwKLSAgICAg
ICAgICAgICAgICAgICAgcGF5bG9hZC5saW5lLAotICAgICAgICAgICAgICAgICAgICBwYXlsb2Fk
LnVybCwKLSAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5yZXBlYXRDb3VudCwKLSAgICAgICAg
ICAgICAgICAgICAgcGF5bG9hZC50ZXh0LAotICAgICAgICAgICAgICAgICAgICBwYXlsb2FkLnBh
cmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgICAgIHBheWxvYWQuc3RhY2tUcmFjZSwKLSAgICAg
ICAgICAgICAgICAgICAgcGF5bG9hZC5uZXR3b3JrUmVxdWVzdElkID8gV2ViSW5zcGVjdG9yLm5l
dHdvcmtSZXNvdXJjZUJ5SWQocGF5bG9hZC5uZXR3b3JrUmVxdWVzdElkKSA6IHVuZGVmaW5lZCk7
Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hZGRNZXNzYWdlKGNvbnNvbGVNZXNzYWdlKTsKLSAg
ICAgICAgICAgIH0sCi0KLSAgICAgICAgICAgIG1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQ6IGZ1
bmN0aW9uKGNvdW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBtc2cgPSBj
b25zb2xlLnByZXZpb3VzTWVzc2FnZTsKLSAgICAgICAgICAgICAgICB2YXIgcHJldlJlcGVhdENv
dW50ID0gbXNnLnRvdGFsUmVwZWF0Q291bnQ7Ci0KLSAgICAgICAgICAgICAgICBpZiAoIWNvbnNv
bGUuY29tbWFuZFNpbmNlUHJldmlvdXNNZXNzYWdlKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1z
Zy5yZXBlYXREZWx0YSA9IGNvdW50IC0gcHJldlJlcGVhdENvdW50OwotICAgICAgICAgICAgICAg
ICAgICBtc2cucmVwZWF0Q291bnQgPSBtc2cucmVwZWF0Q291bnQgKyBtc2cucmVwZWF0RGVsdGE7
Ci0gICAgICAgICAgICAgICAgICAgIG1zZy50b3RhbFJlcGVhdENvdW50ID0gY291bnQ7Ci0gICAg
ICAgICAgICAgICAgICAgIG1zZy5fdXBkYXRlUmVwZWF0Q291bnQoKTsKLSAgICAgICAgICAgICAg
ICAgICAgY29uc29sZS5faW5jcmVtZW50RXJyb3JXYXJuaW5nQ291bnQobXNnKTsKLSAgICAgICAg
ICAgICAgICAgICAgY29uc29sZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LkNvbnNvbGVWaWV3LkV2ZW50cy5NZXNzYWdlQWRkZWQsIG1zZyk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIG1zZ0NvcHkgPSBuZXcgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlKG1zZy5zb3VyY2UsIG1zZy50eXBlLCBtc2cubGV2ZWwsIG1zZy5s
aW5lLCBtc2cudXJsLCBjb3VudCAtIHByZXZSZXBlYXRDb3VudCwgbXNnLl9tZXNzYWdlVGV4dCwg
bXNnLl9wYXJhbWV0ZXJzLCBtc2cuX3N0YWNrVHJhY2UsIG1zZy5fcmVxdWVzdCk7Ci0gICAgICAg
ICAgICAgICAgICAgIG1zZ0NvcHkudG90YWxSZXBlYXRDb3VudCA9IGNvdW50OwotICAgICAgICAg
ICAgICAgICAgICBtc2dDb3B5Ll9mb3JtYXRNZXNzYWdlKCk7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbnNvbGUuYWRkTWVzc2FnZShtc2dDb3B5KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9LAotCi0gICAgICAgICAgICBtZXNzYWdlc0NsZWFyZWQ6IGZ1bmN0aW9uKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcmVz
ZXJ2ZUNvbnNvbGVMb2cuZ2V0KCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuY2xlYXJN
ZXNzYWdlcygpOwotICAgICAgICAgICAgfSwKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLnJlZ2lzdGVyQ29uc29sZURpc3BhdGNoZXIoZGlzcGF0Y2hlcik7Ci0gICAgfSwKLQot
ICAgIHNldENvbnNvbGVNZXNzYWdlRXhwaXJlZENvdW50OiBmdW5jdGlvbihjb3VudCkKLSAgICB7
Ci0gICAgICAgIGlmIChjb3VudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBTdHJpbmcu
c3ByaW50ZihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIGNvbnNvbGUgbWVzc2FnZXMgYXJlIG5v
dCBzaG93bi4iKSwgY291bnQpOwotICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5jcmVhdGVUZXh0TWVzc2FnZShtZXNzYWdlLCBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLldhcm5pbmcpKTsKLSAgICAgICAgfQotICAg
IH0sCi0KICAgICBhZGRDb250ZXh0OiBmdW5jdGlvbihjb250ZXh0KQogICAgIHsKICAgICAgICAg
dmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwpAQCAtMzEwLDIw
ICsyNTQsMjggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fc2Nyb2xsSW50b1ZpZXdUaW1lciA9IHNldFRpbWVvdXQoc2Nyb2xsSW50b1ZpZXcu
YmluZCh0aGlzKSwgMjApOwogICAgIH0sCiAKLSAgICBhZGRNZXNzYWdlOiBmdW5jdGlvbihtc2cp
CisgICAgX2NvbnNvbGVNZXNzYWdlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAg
ICAgdmFyIHNob3VsZFNjcm9sbFRvTGFzdE1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VzRWxlbWVudC5p
c1Njcm9sbGVkVG9Cb3R0b20oKTsKKyAgICAgICAgdGhpcy5jb21tYW5kU2luY2VQcmV2aW91c01l
c3NhZ2UgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5wcmV2aW91c01lc3NhZ2UgPSBldmVudC5kYXRh
OworICAgICAgICB0aGlzLl9hcHBlbmRDb25zb2xlTWVzc2FnZShldmVudC5kYXRhKTsKKyAgICB9
LAogCi0gICAgICAgIGlmIChtc2cgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3Nh
Z2UgJiYgIShtc2cgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1bHQp
KSB7Ci0gICAgICAgICAgICB0aGlzLl9pbmNyZW1lbnRFcnJvcldhcm5pbmdDb3VudChtc2cpOwot
ICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LkV2ZW50cy5NZXNzYWdlQWRkZWQsIG1zZyk7Ci0gICAgICAgICAgICB0aGlzLmNv
bW1hbmRTaW5jZVByZXZpb3VzTWVzc2FnZSA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5wcmV2
aW91c01lc3NhZ2UgPSBtc2c7Ci0gICAgICAgIH0gZWxzZSBpZiAobXNnIGluc3RhbmNlb2YgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5wcmV2aW91
c01lc3NhZ2UpIHsKLSAgICAgICAgICAgICAgICB0aGlzLmNvbW1hbmRTaW5jZVByZXZpb3VzTWVz
c2FnZSA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBfYXBwZW5kQ29uc29s
ZUNvbW1hbmQ6IGZ1bmN0aW9uKG1zZykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLnByZXZpb3Vz
TWVzc2FnZSkKKyAgICAgICAgICAgIHRoaXMuY29tbWFuZFNpbmNlUHJldmlvdXNNZXNzYWdlID0g
dHJ1ZTsKKyAgICAgICAgdGhpcy5fYXBwZW5kQ29uc29sZU1lc3NhZ2UobXNnKTsKKyAgICB9LAor
CisgICAgX2FwcGVuZENvbnNvbGVDb21tYW5kUmVzdWx0OiBmdW5jdGlvbihtc2cpCisgICAgewor
ICAgICAgICB0aGlzLl9hcHBlbmRDb25zb2xlTWVzc2FnZShtc2cpOworICAgIH0sCisKKyAgICBf
YXBwZW5kQ29uc29sZU1lc3NhZ2U6IGZ1bmN0aW9uKG1zZykKKyAgICB7CisgICAgICAgIHZhciBz
aG91bGRTY3JvbGxUb0xhc3RNZXNzYWdlID0gdGhpcy5tZXNzYWdlc0VsZW1lbnQuaXNTY3JvbGxl
ZFRvQm90dG9tKCk7CiAKICAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1zZyk7CiAKQEAgLTM0
OCwzOCArMzAwLDE3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5FdmVudHMuRW50cnlBZGRlZCwgbXNnKTsKICAgICB9LAogCi0gICAgX2luY3JlbWVudEVy
cm9yV2FybmluZ0NvdW50OiBmdW5jdGlvbihtc2cpCi0gICAgewotICAgICAgICBzd2l0Y2ggKG1z
Zy5sZXZlbCkgewotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2Uu
TWVzc2FnZUxldmVsLldhcm5pbmc6Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLndhcm5p
bmdzICs9IG1zZy5yZXBlYXREZWx0YTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5FcnJvcjoK
LSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZXJyb3JzICs9IG1zZy5yZXBlYXREZWx0YTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICByZXF1ZXN0
Q2xlYXJNZXNzYWdlczogZnVuY3Rpb24oKQorICAgIF9jb25zb2xlQ2xlYXJlZDogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgQ29uc29sZUFnZW50LmNsZWFyQ29uc29sZU1lc3NhZ2VzKCk7Ci0g
ICAgICAgIHRoaXMuY2xlYXJNZXNzYWdlcygpOwotICAgIH0sCi0KLSAgICBjbGVhck1lc3NhZ2Vz
OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcuRXZlbnRzLkNvbnNvbGVDbGVhcmVkKTsKLQogICAg
ICAgICB0aGlzLm1lc3NhZ2VzID0gW107CiAKICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAgPSB0
aGlzLnRvcEdyb3VwOwogICAgICAgICB0aGlzLnRvcEdyb3VwLm1lc3NhZ2VzRWxlbWVudC5yZW1v
dmVDaGlsZHJlbigpOwogCi0gICAgICAgIFdlYkluc3BlY3Rvci5lcnJvcnMgPSAwOwotICAgICAg
ICBXZWJJbnNwZWN0b3Iud2FybmluZ3MgPSAwOwotCiAgICAgICAgIGRlbGV0ZSB0aGlzLmNvbW1h
bmRTaW5jZVByZXZpb3VzTWVzc2FnZTsKICAgICAgICAgZGVsZXRlIHRoaXMucHJldmlvdXNNZXNz
YWdlOworICAgICAgICAKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xlYXJlZCk7CiAgICAgfSwKIAog
ICAgIGNvbXBsZXRpb25zOiBmdW5jdGlvbih3b3JkUmFuZ2UsIGJlc3RNYXRjaE9ubHksIGNvbXBs
ZXRpb25zUmVhZHlDYWxsYmFjaykKQEAgLTUxNCwxMSArNDQ1LDYgQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNr
KHJlc3VsdHMpOwogICAgIH0sCiAKLSAgICBfY2xlYXJCdXR0b25DbGlja2VkOiBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICB0aGlzLnJlcXVlc3RDbGVhck1lc3NhZ2VzKCk7Ci0gICAgfSwKLQog
ICAgIF9oYW5kbGVDb250ZXh0TWVudUV2ZW50OiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAg
ICAgIGlmICghd2luZG93LmdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkKSB7CkBAIC01NDUsNyAr
NDcxLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
Y29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZyhXZWJJ
bnNwZWN0b3IudXNlTG93ZXJDYXNlTWVudVRpdGxlcygpID8gIlByZXNlcnZlIGxvZyB1cG9uIG5h
dmlnYXRpb24iIDogIlByZXNlcnZlIExvZyB1cG9uIE5hdmlnYXRpb24iKSwgcHJlc2VydmVMb2dJ
dGVtQWN0aW9uLmJpbmQodGhpcyksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcmVzZXJ2ZUNvbnNv
bGVMb2cuZ2V0KCkpOwogCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwot
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZyhXZWJJ
bnNwZWN0b3IudXNlTG93ZXJDYXNlTWVudVRpdGxlcygpID8gIkNsZWFyIGNvbnNvbGUiIDogIkNs
ZWFyIENvbnNvbGUiKSwgdGhpcy5yZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoV2ViSW5z
cGVjdG9yLnVzZUxvd2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJDbGVhciBjb25zb2xlIiA6ICJDbGVh
ciBDb25zb2xlIiksIHRoaXMuX3JlcXVlc3RDbGVhck1lc3NhZ2VzLmJpbmQodGhpcykpOwogICAg
ICAgICBjb250ZXh0TWVudS5zaG93KGV2ZW50KTsKICAgICB9LAogCkBAIC01NzUsMTAgKzUwMSwx
MCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIg
c2hvcnRjdXQgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dDsKICAgICAgICAgdmFyIHNo
b3J0Y3V0SyA9IHNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJrIiwgV2ViSW5zcGVjdG9yLktleWJv
YXJkU2hvcnRjdXQuTW9kaWZpZXJzLk1ldGEpOwogICAgICAgICAvLyBUaGlzIGNhc2UgcmVxdWly
ZXMgYSBzZXBhcmF0ZSBib3VuZCBmdW5jdGlvbiBhcyBpdHMgaXNNYWNPbmx5IHByb3BlcnR5IHNo
b3VsZCBub3QgYmUgc2hhcmVkIGFtb25nIGRpZmZlcmVudCBzaG9ydGN1dCBoYW5kbGVycy4KLSAg
ICAgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0Sy5rZXldID0gdGhpcy5yZXF1ZXN0Q2xlYXJN
ZXNzYWdlcy5iaW5kKHRoaXMpOworICAgICAgICB2YXIgY2xlYXJDb25zb2xlSGFuZGxlciA9IHRo
aXMuX3JlcXVlc3RDbGVhck1lc3NhZ2VzLmJpbmQodGhpcyk7CisgICAgICAgIHRoaXMuX3Nob3J0
Y3V0c1tzaG9ydGN1dEsua2V5XSA9IGNsZWFyQ29uc29sZUhhbmRsZXI7CiAgICAgICAgIHRoaXMu
X3Nob3J0Y3V0c1tzaG9ydGN1dEsua2V5XS5pc01hY09ubHkgPSB0cnVlOwogCi0gICAgICAgIHZh
ciBjbGVhckNvbnNvbGVIYW5kbGVyID0gdGhpcy5yZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRo
aXMpOwogICAgICAgICB2YXIgc2hvcnRjdXRMID0gc2hvcnRjdXQubWFrZURlc2NyaXB0b3IoImwi
LCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybCk7CiAgICAgICAg
IHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dEwua2V5XSA9IGNsZWFyQ29uc29sZUhhbmRsZXI7CiAK
QEAgLTYwNiw2ICs1MzIsMTEgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZyhzaG9y
dGN1dC5LZXlzLkVudGVyKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeGVjdXRlIGNvbW1hbmQi
KSk7CiAgICAgfSwKIAorICAgIF9yZXF1ZXN0Q2xlYXJNZXNzYWdlczogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUucmVxdWVzdENsZWFyTWVzc2FnZXMoKTsK
KyAgICB9LAorCiAgICAgX3Byb21wdEtleURvd246IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAg
ICAgICAgaWYgKGlzRW50ZXJLZXkoZXZlbnQpKSB7CkBAIC02NjcsMjMgKzU5OCwyMiBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIHZhciBjb21tYW5kTWVzc2FnZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZUNv
bW1hbmQoc3RyKTsKLSAgICAgICAgdGhpcy5hZGRNZXNzYWdlKGNvbW1hbmRNZXNzYWdlKTsKKyAg
ICAgICAgdGhpcy5fYXBwZW5kQ29uc29sZUNvbW1hbmQoY29tbWFuZE1lc3NhZ2UpOwogCi0gICAg
ICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICAgZnVuY3Rpb24gcHJpbnRSZXN1bHQocmVzdWx0
LCB3YXNUaHJvd24pCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgc2VsZi5wcm9tcHQuaGlzdG9yeS5wdXNo
KHN0cik7Ci0gICAgICAgICAgICBzZWxmLnByb21wdC5oaXN0b3J5T2Zmc2V0ID0gMDsKLSAgICAg
ICAgICAgIHNlbGYucHJvbXB0LnRleHQgPSAiIjsKKyAgICAgICAgICAgIHRoaXMucHJvbXB0Lmhp
c3RvcnkucHVzaChzdHIpOworICAgICAgICAgICAgdGhpcy5wcm9tcHQuaGlzdG9yeU9mZnNldCA9
IDA7CisgICAgICAgICAgICB0aGlzLnByb21wdC50ZXh0ID0gIiI7CiAKLSAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5jb25zb2xlSGlzdG9yeS5zZXQoc2VsZi5wcm9tcHQuaGlzdG9y
eS5zbGljZSgtMzApKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jb25zb2xl
SGlzdG9yeS5zZXQodGhpcy5wcm9tcHQuaGlzdG9yeS5zbGljZSgtMzApKTsKIAotICAgICAgICAg
ICAgc2VsZi5hZGRNZXNzYWdlKG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1bHQo
cmVzdWx0LCB3YXNUaHJvd24sIGNvbW1hbmRNZXNzYWdlKSk7CisgICAgICAgICAgICB0aGlzLl9h
cHBlbmRDb25zb2xlQ29tbWFuZFJlc3VsdChuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5k
UmVzdWx0KHJlc3VsdCwgd2FzVGhyb3duLCBjb21tYW5kTWVzc2FnZSkpOwogICAgICAgICB9Ci0g
ICAgICAgIHRoaXMuZXZhbEluSW5zcGVjdGVkV2luZG93KHN0ciwgImNvbnNvbGUiLCB0cnVlLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgcHJpbnRSZXN1bHQpOworICAgICAgICB0aGlzLmV2YWxJbklu
c3BlY3RlZFdpbmRvdyhzdHIsICJjb25zb2xlIiwgdHJ1ZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHByaW50UmVzdWx0LmJpbmQodGhpcykpOwogCiAgICAgICAgIFdlYkluc3BlY3Rvci51c2VyTWV0
cmljcy5Db25zb2xlRXZhbHVhdGVkLnJlY29yZCgpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggMDc0ZjA1
YjcwZWU0N2MyZmM1MzQxMzM1NWFjYmRkOGQ0NDk1ZjdlOC4uNTc1ZTFjMGRlZDQ2NzU2ODFmY2I0
NTI0ZTg5NjUyNDhjYjhjYmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtMzAsNiArMzAsNyBAQAogCiAvKioKICAq
IEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9CiAgKi8KIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsID0gZnVuY3Rpb24oKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLmpzCmluZGV4IGNjYTE0ZTViOTY4YTlkYWEwMmRiZWZkZWJmZmY4MTZiNDMwMjdk
NGYuLmVkYWY0NmFhZTFjMDM4ODc2Y2RmNzQ0NWRhMWRjOGM2MzBhYjU1ZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTUxLDggKzUxLDggQEAgV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVu
dHMuRGVidWdnZXJSZXN1bWVkLCB0aGlzLl9kZWJ1Z2dlclJlc3VtZWQsIHRoaXMpOwogICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTW9kZWwuRXZlbnRzLlJlc2V0LCB0aGlzLl9kZWJ1Z2dlclJlc2V0LCB0aGlzKTsKIAot
ICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LkV2ZW50cy5NZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQs
IHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xlYXJlZCwgdGhpcy5fY29uc29sZUNs
ZWFyZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuTWVzc2FnZUFkZGVkLCB0aGlzLl9jb25z
b2xlTWVzc2FnZUFkZGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzLkNvbnNvbGVDbGVhcmVk
LCB0aGlzLl9jb25zb2xlQ2xlYXJlZCwgdGhpcyk7CiAKICAgICBuZXcgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxSZXNvdXJjZUJpbmRpbmcodGhpcyk7CiB9CkBAIC0xMTMs
MTIgKzExMywxMiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3NvdXJjZUZpbGVzW3NvdXJjZUZpbGVJZF0ucmVxdWVz
dENvbnRlbnQoY2FsbGJhY2spOwogICAgIH0sCiAKLSAgICBhZGRTb3VyY2VNYXBwaW5nTGlzdGVu
ZXI6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlSWQsIGxpc3RlbmVyKQorICAgIGFkZFNvdXJj
ZU1hcHBpbmdMaXN0ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzY3JpcHRJZCwgbGlzdGVuZXIp
CiAgICAgewogICAgICAgICB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzLnB1c2gobGlzdGVu
ZXIpOwogICAgIH0sCiAKLSAgICByZW1vdmVTb3VyY2VNYXBwaW5nTGlzdGVuZXI6IGZ1bmN0aW9u
KHNvdXJjZVVSTCwgc291cmNlSWQsIGxpc3RlbmVyKQorICAgIHJlbW92ZVNvdXJjZU1hcHBpbmdM
aXN0ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzY3JpcHRJZCwgbGlzdGVuZXIpCiAgICAgewog
ICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMuCiAgICAgfSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0xvZy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0xvZy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YmE2
MGYzNWY0NGFlMzRkYzA2MGIyMjI3YmJjNTcyNzNlYjMzMDdlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpzCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCitXZWJJbnNwZWN0b3IuTmV0d29ya0xv
ZyA9IGZ1bmN0aW9uKCkKK3sKKyAgICB0aGlzLl9yZXNvdXJjZXMgPSBbXTsKKyAgICBXZWJJbnNw
ZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29y
a01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZVN0YXJ0ZWQsIHRoaXMuX29uUmVzb3VyY2VTdGFy
dGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5h
dmlnYXRlZCwgdGhpcy5fZnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOworfQorCitXZWJJbnNwZWN0b3Iu
TmV0d29ya0xvZy5wcm90b3R5cGUgPSB7CisgICAgZ2V0IHJlc291cmNlcygpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VzOworICAgIH0sCisKKyAgICBfZnJhbWVOYXZpZ2F0
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFldmVudC5kYXRhLmlzTWFp
bkZyYW1lKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBQcmVzZXJ2ZSByZXNvdXJj
ZXMgZnJvbSB0aGUgbmV3IHNlc3Npb24uCisgICAgICAgIHZhciBvbGRSZXNvdXJjZXMgPSB0aGlz
Ll9yZXNvdXJjZXMuc3BsaWNlKDAsIHRoaXMuX3Jlc291cmNlcy5sZW5ndGgpOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IG9sZFJlc291cmNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAg
ICAgaWYgKG9sZFJlc291cmNlc1tpXS5sb2FkZXJJZCA9PT0gZXZlbnQuZGF0YS5sb2FkZXJJZCkK
KyAgICAgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChvbGRSZXNvdXJjZXNbaV0pOwor
ICAgICAgICB9CisgICAgfSwKKworICAgIF9vblJlc291cmNlU3RhcnRlZDogZnVuY3Rpb24oZXZl
bnQpCisgICAgeworICAgICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChldmVudC5kYXRhKTsKKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrTWFuYWdlci5qcwppbmRleCA3ZGViMDAwNDJkZmMzNWQ4OWFkMWJkMWFjYjVmYjYyODQ3YTkx
YzhiLi4xNGIxZjQ0MWU5MjJjNDExYTc1YTNkOTM3MDg4NDQ5NjA0NWZkODY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMK
QEAgLTMwLDYgKzMwLDcgQEAKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuT2JqZWN0fQogICovCiBXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIgPSBm
dW5jdGlvbigpCiB7CkBAIC0xMjQsNiArMTI1LDQyIEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlz
cGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXNvdXJjZS5jYWNoZWQgPSB0cnVl
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXNvdXJjZS50aW1pbmcgPSByZXNwb25zZS50
aW1pbmc7CisKKyAgICAgICAgaWYgKCF0aGlzLl9taW1lVHlwZUlzQ29uc2lzdGVudFdpdGhUeXBl
KHJlc291cmNlKSkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkTWVzc2Fn
ZShuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVz
c2FnZS5NZXNzYWdlU291cmNlLk90aGVyLAorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2csCisgICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5XYXJuaW5nLAorICAgICAgICAgICAgICAg
IC0xLAorICAgICAgICAgICAgICAgIHRoaXMudXJsLAorICAgICAgICAgICAgICAgIDEsCisgICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNvdXJjZSBpbnRlcnByZXRlZCBh
cyAlcyBidXQgdHJhbnNmZXJyZWQgd2l0aCBNSU1FIHR5cGUgJXMuIiwgV2ViSW5zcGVjdG9yLlJl
c291cmNlLlR5cGUudG9VSVN0cmluZyh0aGlzLnR5cGUpLCB0aGlzLm1pbWVUeXBlKSkpOworICAg
ICAgICB9CisgICAgfSwKKworICAgIF9taW1lVHlwZUlzQ29uc2lzdGVudFdpdGhUeXBlOiBmdW5j
dGlvbihyZXNvdXJjZSkKKyAgICB7CisgICAgICAgIC8vIElmIHN0YXR1cyBpcyBhbiBlcnJvciwg
Y29udGVudCBpcyBsaWtlbHkgdG8gYmUgb2YgYW4gaW5jb25zaXN0ZW50IHR5cGUsCisgICAgICAg
IC8vIGFzIGl0J3MgZ29pbmcgdG8gYmUgYW4gZXJyb3IgbWVzc2FnZS4gV2UgZG8gbm90IHdhbnQg
dG8gZW1pdCBhIHdhcm5pbmcKKyAgICAgICAgLy8gZm9yIHRoaXMsIHRob3VnaCwgYXMgdGhpcyB3
aWxsIGFscmVhZHkgYmUgcmVwb3J0ZWQgYXMgcmVzb3VyY2UgbG9hZGluZyBmYWlsdXJlLgorICAg
ICAgICAvLyBBbHNvLCBpZiBhIFVSTCBsaWtlIGh0dHA6Ly9sb2NhbGhvc3Qvd2lraS9sb2FkLnBo
cD9kZWJ1Zz10cnVlJmxhbmc9ZW4gcHJvZHVjZXMgdGV4dC9jc3MgYW5kIGdldHMgcmVsb2FkZWQs
CisgICAgICAgIC8vIGl0IGlzIDMwNCBOb3QgTW9kaWZpZWQgYW5kIGl0cyBndWVzc2VkIG1pbWUt
dHlwZSBpcyB0ZXh0L3BocCwgd2hpY2ggaXMgd3JvbmcuCisgICAgICAgIC8vIERvbid0IGNoZWNr
IGZvciBtaW1lLXR5cGVzIGluIDMwNC1yZXNvdXJjZXMuCisgICAgICAgIGlmIChyZXNvdXJjZS5o
YXNFcnJvclN0YXR1c0NvZGUoKSB8fCByZXNvdXJjZS5zdGF0dXNDb2RlID09PSAzMDQpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBpZiAodHlwZW9mIHJlc291cmNlLnR5cGUg
PT09ICJ1bmRlZmluZWQiCisgICAgICAgICAgICB8fCByZXNvdXJjZS50eXBlID09PSBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2UuVHlwZS5PdGhlcgorICAgICAgICAgICAgfHwgcmVzb3VyY2UudHlwZSA9
PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuWEhSCisgICAgICAgICAgICB8fCByZXNvdXJj
ZS50eXBlID09PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5XZWJTb2NrZXQpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBpZiAoIXJlc291cmNlLm1pbWVUeXBlKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7IC8vIE1pZ2h0IGJlIG5vdCBrbm93biBmb3IgY2FjaGVkIHJl
c291cmNlcyB3aXRoIG51bGwgcmVzcG9uc2VzLgorCisgICAgICAgIGlmIChyZXNvdXJjZS5taW1l
VHlwZSBpbiBXZWJJbnNwZWN0b3IuTUlNRVR5cGVzKQorICAgICAgICAgICAgcmV0dXJuIHJlc291
cmNlLnR5cGUgaW4gV2ViSW5zcGVjdG9yLk1JTUVUeXBlc1tyZXNvdXJjZS5taW1lVHlwZV07CisK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0sCiAKICAgICBfdXBkYXRlUmVzb3VyY2VXaXRo
Q2FjaGVkUmVzb3VyY2U6IGZ1bmN0aW9uKHJlc291cmNlLCBjYWNoZWRSZXNvdXJjZSkKQEAgLTMy
NSwzNSArMzYyLDYgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSA9
IHsKIH0KIAogLyoqCi0gKiBAY29uc3RydWN0b3IKKyAqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLk5l
dHdvcmtNYW5hZ2VyfQogICovCi1XZWJJbnNwZWN0b3IuTmV0d29ya0xvZyA9IGZ1bmN0aW9uKCkK
LXsKLSAgICB0aGlzLl9yZXNvdXJjZXMgPSBbXTsKLSAgICBXZWJJbnNwZWN0b3IubmV0d29ya01h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRU
eXBlcy5SZXNvdXJjZVN0YXJ0ZWQsIHRoaXMuX29uUmVzb3VyY2VTdGFydGVkLCB0aGlzKTsKLSAg
ICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRlZCwgdGhpcy5f
ZnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOwotfQotCi1XZWJJbnNwZWN0b3IuTmV0d29ya0xvZy5wcm90
b3R5cGUgPSB7Ci0gICAgZ2V0IHJlc291cmNlcygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fcmVzb3VyY2VzOwotICAgIH0sCi0KLSAgICBfZnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGV2
ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCFldmVudC5kYXRhLmlzTWFpbkZyYW1lKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAvLyBQcmVzZXJ2ZSByZXNvdXJjZXMgZnJvbSB0aGUgbmV3
IHNlc3Npb24uCi0gICAgICAgIHZhciBvbGRSZXNvdXJjZXMgPSB0aGlzLl9yZXNvdXJjZXMuc3Bs
aWNlKDAsIHRoaXMuX3Jlc291cmNlcy5sZW5ndGgpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IG9sZFJlc291cmNlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKG9sZFJlc291
cmNlc1tpXS5sb2FkZXJJZCA9PT0gZXZlbnQuZGF0YS5sb2FkZXJJZCkKLSAgICAgICAgICAgICAg
ICB0aGlzLl9yZXNvdXJjZXMucHVzaChvbGRSZXNvdXJjZXNbaV0pOwotICAgICAgICB9Ci0gICAg
fSwKLQotICAgIF9vblJlc291cmNlU3RhcnRlZDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAg
ICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChldmVudC5kYXRhKTsKLSAgICB9Ci19CitXZWJJbnNw
ZWN0b3IubmV0d29ya01hbmFnZXIgPSBudWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2UuanMKaW5kZXggYzI0ZTZkMTgzNzA1NDY4ZjRlMGI1OGZlMWEz
NmRhOTE4YTNjNDc3Ni4uYjRiMzVjOTdkNTBmMTE3ZjQ5M2Q2MTIwNmRiMTFmYzZiYzZhODUwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCkBA
IC00MjMsNyArNDIzLDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5fZmluaXNoZWQgPSB4OwogCiAgICAgICAgIGlmICh4KSB7Ci0gICAgICAgICAg
ICB0aGlzLl9jaGVja1dhcm5pbmdzKCk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycygiZmluaXNoZWQiKTsKICAgICAgICAgICAgIGlmICh0aGlzLl9wZW5kaW5nQ29u
dGVudENhbGxiYWNrcy5sZW5ndGgpCiAgICAgICAgICAgICAgICAgdGhpcy5faW5uZXJSZXF1ZXN0
Q29udGVudCgpOwpAQCAtNzgyLDQ4ICs3ODEsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygiZXJyb3Jz
LXdhcm5pbmdzLWNsZWFyZWQiKTsKICAgICB9LAogCi0gICAgX21pbWVUeXBlSXNDb25zaXN0ZW50
V2l0aFR5cGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIC8vIElmIHN0YXR1cyBpcyBhbiBl
cnJvciwgY29udGVudCBpcyBsaWtlbHkgdG8gYmUgb2YgYW4gaW5jb25zaXN0ZW50IHR5cGUsCi0g
ICAgICAgIC8vIGFzIGl0J3MgZ29pbmcgdG8gYmUgYW4gZXJyb3IgbWVzc2FnZS4gV2UgZG8gbm90
IHdhbnQgdG8gZW1pdCBhIHdhcm5pbmcKLSAgICAgICAgLy8gZm9yIHRoaXMsIHRob3VnaCwgYXMg
dGhpcyB3aWxsIGFscmVhZHkgYmUgcmVwb3J0ZWQgYXMgcmVzb3VyY2UgbG9hZGluZyBmYWlsdXJl
LgotICAgICAgICAvLyBBbHNvLCBpZiBhIFVSTCBsaWtlIGh0dHA6Ly9sb2NhbGhvc3Qvd2lraS9s
b2FkLnBocD9kZWJ1Zz10cnVlJmxhbmc9ZW4gcHJvZHVjZXMgdGV4dC9jc3MgYW5kIGdldHMgcmVs
b2FkZWQsCi0gICAgICAgIC8vIGl0IGlzIDMwNCBOb3QgTW9kaWZpZWQgYW5kIGl0cyBndWVzc2Vk
IG1pbWUtdHlwZSBpcyB0ZXh0L3BocCwgd2hpY2ggaXMgd3JvbmcuCi0gICAgICAgIC8vIERvbid0
IGNoZWNrIGZvciBtaW1lLXR5cGVzIGluIDMwNC1yZXNvdXJjZXMuCi0gICAgICAgIGlmICh0aGlz
Lmhhc0Vycm9yU3RhdHVzQ29kZSgpIHx8IHRoaXMuc3RhdHVzQ29kZSA9PT0gMzA0KQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnR5cGUgPT09ICJ1
bmRlZmluZWQiCi0gICAgICAgICAgICB8fCB0aGlzLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNv
dXJjZS5UeXBlLk90aGVyCi0gICAgICAgICAgICB8fCB0aGlzLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5UeXBlLlhIUgotICAgICAgICAgICAgfHwgdGhpcy50eXBlID09PSBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2UuVHlwZS5XZWJTb2NrZXQpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgICAgICBpZiAoIXRoaXMubWltZVR5cGUpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsg
Ly8gTWlnaHQgYmUgbm90IGtub3duIGZvciBjYWNoZWQgcmVzb3VyY2VzIHdpdGggbnVsbCByZXNw
b25zZXMuCi0KLSAgICAgICAgaWYgKHRoaXMubWltZVR5cGUgaW4gV2ViSW5zcGVjdG9yLk1JTUVU
eXBlcykKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUgaW4gV2ViSW5zcGVjdG9yLk1JTUVU
eXBlc1t0aGlzLm1pbWVUeXBlXTsKLQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQot
ICAgIF9jaGVja1dhcm5pbmdzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5f
bWltZVR5cGVJc0NvbnNpc3RlbnRXaXRoVHlwZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZE1lc3NhZ2UobmV3IFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZShXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5P
dGhlciwKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlw
ZS5Mb2csCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxl
dmVsLldhcm5pbmcsCi0gICAgICAgICAgICAtMSwKLSAgICAgICAgICAgIHRoaXMudXJsLAotICAg
ICAgICAgICAgMSwKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVzb3VyY2Ug
aW50ZXJwcmV0ZWQgYXMgJXMgYnV0IHRyYW5zZmVycmVkIHdpdGggTUlNRSB0eXBlICVzLiIsIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLnRvVUlTdHJpbmcodGhpcy50eXBlKSwgdGhpcy5taW1l
VHlwZSksCi0gICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgbnVsbCkpOwotICAgIH0sCi0K
ICAgICBnZXQgY29udGVudCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VU
cmVlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
VHJlZU1vZGVsLmpzCmluZGV4IDI5OGQyNTVmNmU2OWU2MzZjNjA5ZGM4MjA3ZmQwOWY5MjdmMjgz
YWQuLmFhZWVhNjI5YjE5ZWI1MTJkOTc5MzBjMDNlOWZiZjgxNzhmZjlkYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2Rl
bC5qcwpAQCAtMzgsOCArMzgsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwgPSBm
dW5jdGlvbihuZXR3b3JrTWFuYWdlcikKICAgICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5S
ZXNvdXJjZVVwZGF0ZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlzKTsKICAgICBXZWJJ
bnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0
d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZUZpbmlzaGVkLCB0aGlzLl9vblJlc291cmNl
VXBkYXRlZCwgdGhpcyk7CiAKLSAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMuTWVzc2FnZUFkZGVkLCB0aGlzLl9j
b25zb2xlTWVzc2FnZUFkZGVkLCB0aGlzKTsKLSAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMuQ29uc29sZUNsZWFy
ZWQsIHRoaXMuX2NvbnNvbGVDbGVhcmVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuY29uc29s
ZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzLk1lc3Nh
Z2VBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVj
dG9yLmNvbnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLkV2
ZW50cy5Db25zb2xlQ2xlYXJlZCwgdGhpcy5fY29uc29sZUNsZWFyZWQsIHRoaXMpOwogCiAgICAg
dGhpcy5mcm9udGVuZFJldXNlZCgpOwogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJQYWdl
RGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyKHRoaXMpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcwppbmRleCBk
MjA3NmU1NTk4YmQ4ZDAwMTkyZGY1N2M0Zjc3OTU3MzVlZjEyNzgzLi40MmVhNzg3ZjBkM2FmMGJm
NWI4NTM3MmEzMTEyOWNjMjBjNDFhMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCkBAIC0zMCw2ICszMCwxMSBAQAogCiAvLyBSYXdT
b3VyY2VDb2RlIHJlcHJlc2VudHMgSmF2YVNjcmlwdCByZXNvdXJjZSBvciBIVE1MIHJlc291cmNl
IHdpdGggaW5saW5lZCBzY3JpcHRzCiAvLyBhcyBpdCBjYW1lIGZyb20gbmV0d29yay4KKworLyoq
CisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQorICov
CiBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZSA9IGZ1bmN0aW9uKGlkLCBzY3JpcHQsIGZvcm1h
dHRlcikKIHsKICAgICB0aGlzLl9zY3JpcHRzID0gW3NjcmlwdF07CkBAIC05MSw3ICs5Niw3IEBA
IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAg
IHZhciBjbG9zZXN0U2NyaXB0ID0gdGhpcy5fc2NyaXB0c1swXTsKICAgICAgICAgZm9yICh2YXIg
aSA9IDE7IGkgPCB0aGlzLl9zY3JpcHRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBzY3Jp
cHQgPSB0aGlzLl9zY3JpcHRzW2ldOworICAgICAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX3Nj
cmlwdHNbaV07CiAgICAgICAgICAgICBpZiAoc2NyaXB0LmxpbmVPZmZzZXQgPiBsaW5lTnVtYmVy
IHx8IChzY3JpcHQubGluZU9mZnNldCA9PT0gbGluZU51bWJlciAmJiBzY3JpcHQuY29sdW1uT2Zm
c2V0ID4gY29sdW1uTnVtYmVyKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIGlmIChzY3JpcHQubGluZU9mZnNldCA+IGNsb3Nlc3RTY3JpcHQubGluZU9mZnNldCB8fApA
QCAtMjUzLDYgKzI1OCwxMCBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUg
PSB7CiBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CiAKIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAq
IEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyfQorICovCiBXZWJJbnNw
ZWN0b3IuU2NyaXB0Q29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oc2NyaXB0KQogewogICAgIHRo
aXMuX21pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7CkBAIC0yNjAsMTkgKzI2OSwyMiBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0Q29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oc2NyaXB0KQogfTsK
IAogV2ViSW5zcGVjdG9yLlNjcmlwdENvbnRlbnRQcm92aWRlci5wcm90b3R5cGUgPSB7Ci1yZXF1
ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgZnVuY3Rpb24gZGlkUmVxdWVz
dFNvdXJjZShzb3VyY2UpCisgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQog
ICAgIHsKLSAgICAgICAgY2FsbGJhY2sodGhpcy5fbWltZVR5cGUsIHNvdXJjZSk7CisgICAgICAg
IGZ1bmN0aW9uIGRpZFJlcXVlc3RTb3VyY2Uoc291cmNlKQorICAgICAgICB7CisgICAgICAgICAg
ICBjYWxsYmFjayh0aGlzLl9taW1lVHlwZSwgc291cmNlKTsKKyAgICAgICAgfQorICAgICAgICB0
aGlzLl9zY3JpcHQucmVxdWVzdFNvdXJjZShkaWRSZXF1ZXN0U291cmNlLmJpbmQodGhpcykpOwog
ICAgIH0KLSAgICB0aGlzLl9zY3JpcHQucmVxdWVzdFNvdXJjZShkaWRSZXF1ZXN0U291cmNlLmJp
bmQodGhpcykpOwotfQogfQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0Q29udGVudFByb3ZpZGVyLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLnByb3RvdHlw
ZTsKIAotCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rv
ci5Db250ZW50UHJvdmlkZXJ9CisgKi8KIFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRz
Q29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oc2NyaXB0cykKIHsKICAgICB0aGlzLl9taW1lVHlw
ZSA9ICJ0ZXh0L2h0bWwiOwpAQCAtMzAwLDggKzMxMiw4IEBAIFdlYkluc3BlY3Rvci5Db25jYXRl
bmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICB2YXIgY29u
dGVudCA9ICIiOwogICAgICAgIHZhciBsaW5lTnVtYmVyID0gMDsKICAgICAgICB2YXIgY29sdW1u
TnVtYmVyID0gMDsKLSAgICAgICB2YXIgc2NyaXB0UmFuZ2VzID0gW107Ci0gICAgICAgZnVuY3Rp
b24gYXBwZW5kQ2h1bmsoY2h1bmssIHNjcmlwdCkKKworICAgICAgIGZ1bmN0aW9uIGFwcGVuZENo
dW5rKGNodW5rKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHN0YXJ0ID0geyBsaW5lTnVtYmVy
OiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciB9OwogICAgICAgICAgICBj
b250ZW50ICs9IGNodW5rOwpAQCAtMzE0LDggKzMyNiw2IEBAIFdlYkluc3BlY3Rvci5Db25jYXRl
bmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
IGNvbHVtbk51bWJlciA9IGxpbmVFbmRpbmdzW2xpbmVDb3VudCAtIDFdIC0gbGluZUVuZGluZ3Nb
bGluZUNvdW50IC0gMl0gLSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBlbmQgPSB7
IGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyIH07Ci0g
ICAgICAgICAgIGlmIChzY3JpcHQpCi0gICAgICAgICAgICAgICBzY3JpcHRSYW5nZXMucHVzaCh7
IHN0YXJ0OiBzdGFydCwgZW5kOiBlbmQsIHNvdXJjZUlkOiBzY3JpcHQuc291cmNlSWQgfSk7CiAg
ICAgICAgfQogCiAgICAgICAgdmFyIHNjcmlwdE9wZW5UYWcgPSAiPHNjcmlwdD4iOwpAQCAtMzI5
LDcgKzMzOSw3IEBAIFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3Zp
ZGVyLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAvLyBBZGQgc2NyaXB0IHRhZy4KICAgICAg
ICAgICAgYXBwZW5kQ2h1bmsoc2NyaXB0T3BlblRhZyk7Ci0gICAgICAgICAgIGFwcGVuZENodW5r
KHNvdXJjZXNbaV0sIHNjcmlwdHNbaV0pOworICAgICAgICAgICBhcHBlbmRDaHVuayhzb3VyY2Vz
W2ldKTsKICAgICAgICAgICAgYXBwZW5kQ2h1bmsoc2NyaXB0Q2xvc2VUYWcpOwogICAgICAgIH0K
IApAQCAtMzM5LDcgKzM0OSwxMCBAQCBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0Nv
bnRlbnRQcm92aWRlci5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRT
Y3JpcHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
Q29udGVudFByb3ZpZGVyLnByb3RvdHlwZTsKIAotCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICog
QGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9CisgKi8KIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZUNvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKHJlc291cmNlKQogewogICAg
IHRoaXMuX21pbWVUeXBlID0gcmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNl
LlR5cGUuU2NyaXB0ID8gInRleHQvamF2YXNjcmlwdCIgOiAidGV4dC9odG1sIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXgg
MDM2MTcwOGNjOTA1OGI1ZTQ2OTViMjZmZjg1Y2MxYzU1ZjBmODdlYS4uOTFmYzcwY2QzMWRjMmIy
NjM1NzdmZWU0MDQxMWI1YmQzNjlhY2Q2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKQEAgLTI4LDYgKzI4LDkgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKGlkLCB1cmwsIGlzQ29udGVudFNjcmlwdCwgY29udGVu
dFByb3ZpZGVyKQogewogICAgIHRoaXMuX2lkID0gaWQ7CkBAIC03NiwxMyArNzksMTAgQEAgV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCi1XZWJJbnNw
ZWN0b3IuQ29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oKQotewotfQotCisvKioKKyAqIEBpbnRl
cmZhY2UKKyAqLworV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKCkgeyB9
CiBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKLSAgICByZXF1ZXN0
Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgewotICAgICAgICAvLyBTaG91bGQgYmUg
aW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4KLSAgICB9CisgICAgcmVxdWVzdENvbnRlbnQ6IGZ1
bmN0aW9uKGNhbGxiYWNrKSB7IH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMK
aW5kZXggNjVhNDAwZmRlYzZjNjk3MDE0ZTg5MzA4MWExMTlkMGY1YmY3ODMxYi4uMWQxZWNjMTE5
NzFjZWUxMDRkMzMzNDg0MWUwN2JmMzYxMWUwYTFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lk
ZWJhclBhbmUuanMKQEAgLTE4Niw3ICsxODYsNyBAQCBXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNz
aW9uc1NlY3Rpb24ucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKCFleHByZXNzaW9uKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29u
c29sZS5ldmFsSW5JbnNwZWN0ZWRXaW5kb3coZXhwcmVzc2lvbiwgdGhpcy5fd2F0Y2hPYmplY3RH
cm91cElkLCBmYWxzZSwgdHJ1ZSwgdW5kZWZpbmVkLCBhcHBlbmRSZXN1bHQuYmluZCh0aGlzLCBl
eHByZXNzaW9uLCBpKSk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuZXZh
bEluSW5zcGVjdGVkV2luZG93KGV4cHJlc3Npb24sIHRoaXMuX3dhdGNoT2JqZWN0R3JvdXBJZCwg
ZmFsc2UsIHRydWUsIHVuZGVmaW5lZCwgYXBwZW5kUmVzdWx0LmJpbmQodGhpcywgZXhwcmVzc2lv
biwgaSkpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFwcm9wZXJ0eUNvdW50KSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggMDU3NDE3
Y2JjOWIwZTVjZTcyOTEwNzg3MmY4ZDQ1ZTczMDVlZWFiZS4uYTIzOGUyNjE2NTIyMzBiYWNkOTRj
NTE3MGI5ODUwMzI5NWVkYWY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvV2ViS2l0LnFyYwpAQCAtMTYsNiArMTYsNyBAQAogICAgIDxmaWxlPkNoZWNrYm94Lmpz
PC9maWxlPgogICAgIDxmaWxlPkNvbG9yLmpzPC9maWxlPgogICAgIDxmaWxlPkNvbnNvbGVNZXNz
YWdlLmpzPC9maWxlPgorICAgIDxmaWxlPkNvbnNvbGVNb2RlbC5qczwvZmlsZT4KICAgICA8Zmls
ZT5Db25zb2xlUGFuZWwuanM8L2ZpbGU+CiAgICAgPGZpbGU+Q29uc29sZVZpZXcuanM8L2ZpbGU+
CiAgICAgPGZpbGU+Q29udGV4dE1lbnUuanM8L2ZpbGU+CkBAIC02OCw2ICs2OSw3IEBACiAgICAg
PGZpbGU+S2V5Ym9hcmRTaG9ydGN1dC5qczwvZmlsZT4KICAgICA8ZmlsZT5NZXRyaWNzU2lkZWJh
clBhbmUuanM8L2ZpbGU+CiAgICAgPGZpbGU+TmV0d29ya0l0ZW1WaWV3LmpzPC9maWxlPgorICAg
IDxmaWxlPk5ldHdvcmtMb2cuanM8L2ZpbGU+CiAgICAgPGZpbGU+TmV0d29ya01hbmFnZXIuanM8
L2ZpbGU+CiAgICAgPGZpbGU+TmV0d29ya1BhbmVsLmpzPC9maWxlPgogICAgIDxmaWxlPk9iamVj
dC5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvZXh0ZXJucy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJu
cy5qcwppbmRleCA5MTk4MzgzMTRjZDA1ODg2NmU5NjNmNjczMTAxOTE1ZDZlNTVlZDFlLi5jYzM1
OTE0ZGVhMTk0NjE5Mzk4Mzk0ZDAyM2I2YzAwNWNiMzBlOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCkBAIC0zNCwxMiArMzQsMjYgQEAgY29u
c29sZS53YXJuID0gZnVuY3Rpb24obWVzc2FnZSkge30KIGNvbnNvbGUuYXNzZXJ0ID0gZnVuY3Rp
b24oZXhwciwgbWVzc2FnZSkge30KIAogdmFyIFdlYkluc3BlY3RvciA9IHt9Ci0vKiogQHBhcmFt
IHtzdHJpbmd9IHVybCAqLwotV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUgPSBmdW5jdGlv
bih1cmwpIHt9CisKKy8qKgorICogQHBhcmFtIHtzdHJpbmd9IHVybAorICogQHBhcmFtIHtzdHJp
bmc9fSBsaW5rVGV4dAorICogQHBhcmFtIHtzdHJpbmc9fSBjbGFzc2VzCisgKiBAcGFyYW0ge2Jv
b2xlYW49fSBpc0V4dGVybmFsCisgKiBAcGFyYW0ge3N0cmluZz19IHRvb2x0aXBUZXh0CisgKi8K
K1dlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlID0gZnVuY3Rpb24odXJsLCBsaW5rVGV4dCwg
Y2xhc3NlcywgaXNFeHRlcm5hbCwgdG9vbHRpcFRleHQpIHt9CisKIC8qKiBAcGFyYW0ge3N0cmlu
Z30gdXJsICovCiBXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQgPSBmdW5jdGlv
bih1cmwpIHt9CiAKIC8qKgorICogQHBhcmFtIHtzdHJpbmd9IHVybAorICogQHBhcmFtIHtudW1i
ZXJ9IGxpbmVOdW1iZXIKKyAqLworV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0ID0gZnVuY3Rp
b24odXJsLCBsaW5lTnVtYmVyKSB7fQorCisvKioKICAqIEBwYXJhbSB7c3RyaW5nfSBzdHIKICAq
IEBwYXJhbSB7Li4uKn0gdmFyQXJncwogICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCA4MjgyZjIwYWU1NWJlMWM5MGQ1M2Nl
MmExNmVkZGFkYzI2Y2E2OWJjLi43YWYwMDQ2Y2EzNjAyODJhNDYyNTNlODFhNTYzMGQ4ZTgyODcy
ZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmh0bWwKQEAgLTYxLDEyICs2MSwxNCBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IklGcmFtZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRyYXdlci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29uc29sZU1lc3NhZ2UuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvbnNvbGVN
b2RlbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iQ29uc29sZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IlBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJUaW1lbGluZUdyaWQuanMiPjwvc2NyaXB0PiAgICAKICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXNvdXJjZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ1NTU3R5bGVNb2RlbC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iTmV0d29y
a01hbmFnZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ik5ldHdvcmtMb2cuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IlJlc291cmNlVHJlZU1vZGVsLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXNvdXJjZUNhdGVnb3J5LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJUaW1lbGluZU1h
bmFnZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcwppbmRleCBlNTE4MTkyM2Q0ZWFkNWMzODkxMzRlOWZkM2Y3NTY0MzAx
NjM3Mzk5Li5iNDYxZDkyOTUyYjI0NzY2OGEwZmJhMTExZjRjZTIzNTQ4YmYwM2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtMTgz
LDcgKzE4Myw3IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAKICAgICAgICAgdmFyIGFuY2hvcmVk
U3RhdHVzQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuY2hvcmVkLXN0YXR1cy1iYXIt
aXRlbXMiKTsKICAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5fZG9j
a1RvZ2dsZUJ1dHRvbi5lbGVtZW50KTsKLSAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5k
Q2hpbGQodGhpcy5jb25zb2xlLnRvZ2dsZUNvbnNvbGVCdXR0b24uZWxlbWVudCk7CisgICAgICAg
IGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuY29uc29sZVZpZXcudG9nZ2xlQ29u
c29sZUJ1dHRvbi5lbGVtZW50KTsKICAgICAgICAgaWYgKHRoaXMucGFuZWxzLmVsZW1lbnRzKQog
ICAgICAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5wYW5lbHMuZWxl
bWVudHMubm9kZVNlYXJjaEJ1dHRvbi5lbGVtZW50KTsKIApAQCAtMjg5LDQzICsyODksMTUgQEAg
dmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIudXBk
YXRlSGVpZ2h0KCk7CiAgICAgfSwKIAotICAgIGdldCBlcnJvcnMoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX2Vycm9ycyB8fCAwOwotICAgIH0sCi0KLSAgICBzZXQgZXJyb3JzKHgpCi0g
ICAgewotICAgICAgICB4ID0gTWF0aC5tYXgoeCwgMCk7Ci0KLSAgICAgICAgaWYgKHRoaXMuX2Vy
cm9ycyA9PT0geCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fZXJyb3JzID0g
eDsKLSAgICAgICAgdGhpcy5fdXBkYXRlRXJyb3JBbmRXYXJuaW5nQ291bnRzKCk7Ci0gICAgfSwK
LQotICAgIGdldCB3YXJuaW5ncygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fd2Fybmlu
Z3MgfHwgMDsKLSAgICB9LAotCi0gICAgc2V0IHdhcm5pbmdzKHgpCi0gICAgewotICAgICAgICB4
ID0gTWF0aC5tYXgoeCwgMCk7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3dhcm5pbmdzID09PSB4KQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl93YXJuaW5ncyA9IHg7Ci0gICAgICAg
IHRoaXMuX3VwZGF0ZUVycm9yQW5kV2FybmluZ0NvdW50cygpOwotICAgIH0sCi0KICAgICBfdXBk
YXRlRXJyb3JBbmRXYXJuaW5nQ291bnRzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIg
ZXJyb3JXYXJuaW5nRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnJvci13YXJu
aW5nLWNvdW50Iik7CiAgICAgICAgIGlmICghZXJyb3JXYXJuaW5nRWxlbWVudCkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBpZiAoIXRoaXMuZXJyb3JzICYmICF0aGlzLndhcm5pbmdz
KSB7CisgICAgICAgIHZhciBlcnJvcnMgPSBXZWJJbnNwZWN0b3IuY29uc29sZS5lcnJvcnM7Cisg
ICAgICAgIHZhciB3YXJuaW5ncyA9IFdlYkluc3BlY3Rvci5jb25zb2xlLndhcm5pbmdzOworICAg
ICAgICBpZiAoIWVycm9ycyAmJiAhd2FybmluZ3MpIHsKICAgICAgICAgICAgIGVycm9yV2Fybmlu
Z0VsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KQEAgLTMzNCwzOSArMzA2LDM5IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAKICAg
ICAgICAgZXJyb3JXYXJuaW5nRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogCi0gICAgICAgIGlm
ICh0aGlzLmVycm9ycykgeworICAgICAgICBpZiAoZXJyb3JzKSB7CiAgICAgICAgICAgICB2YXIg
ZXJyb3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAg
ICAgZXJyb3JFbGVtZW50LmlkID0gImVycm9yLWNvdW50IjsKLSAgICAgICAgICAgIGVycm9yRWxl
bWVudC50ZXh0Q29udGVudCA9IHRoaXMuZXJyb3JzOworICAgICAgICAgICAgZXJyb3JFbGVtZW50
LnRleHRDb250ZW50ID0gZXJyb3JzOwogICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxlbWVudC5h
cHBlbmRDaGlsZChlcnJvckVsZW1lbnQpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMu
d2FybmluZ3MpIHsKKyAgICAgICAgaWYgKHdhcm5pbmdzKSB7CiAgICAgICAgICAgICB2YXIgd2Fy
bmluZ3NFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAg
ICAgd2FybmluZ3NFbGVtZW50LmlkID0gIndhcm5pbmctY291bnQiOwotICAgICAgICAgICAgd2Fy
bmluZ3NFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy53YXJuaW5nczsKKyAgICAgICAgICAgIHdh
cm5pbmdzRWxlbWVudC50ZXh0Q29udGVudCA9IHdhcm5pbmdzOwogICAgICAgICAgICAgZXJyb3JX
YXJuaW5nRWxlbWVudC5hcHBlbmRDaGlsZCh3YXJuaW5nc0VsZW1lbnQpOwogICAgICAgICB9CiAK
LSAgICAgICAgaWYgKHRoaXMuZXJyb3JzKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy53YXJuaW5n
cykgewotICAgICAgICAgICAgICAgIGlmICh0aGlzLmVycm9ycyA9PSAxKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmICh0aGlzLndhcm5pbmdzID09IDEpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBlcnJvcldhcm5pbmdFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBl
cnJvciwgJWQgd2FybmluZyIsIHRoaXMuZXJyb3JzLCB0aGlzLndhcm5pbmdzKTsKKyAgICAgICAg
aWYgKGVycm9ycykgeworICAgICAgICAgICAgaWYgKHdhcm5pbmdzKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGVycm9ycyA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3YXJuaW5ncyA9
PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxlbWVudC50aXRsZSA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgZXJyb3IsICVkIHdhcm5pbmciLCBlcnJvcnMsIHdh
cm5pbmdzKTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAg
ICAgZXJyb3JXYXJuaW5nRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQg
ZXJyb3IsICVkIHdhcm5pbmdzIiwgdGhpcy5lcnJvcnMsIHRoaXMud2FybmluZ3MpOwotICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy53YXJuaW5ncyA9PSAxKQotICAgICAgICAgICAgICAg
ICAgICBlcnJvcldhcm5pbmdFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIl
ZCBlcnJvcnMsICVkIHdhcm5pbmciLCB0aGlzLmVycm9ycywgdGhpcy53YXJuaW5ncyk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBlcnJvcldhcm5pbmdFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCIlZCBlcnJvciwgJWQgd2FybmluZ3MiLCBlcnJvcnMsIHdhcm5pbmdzKTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdhcm5pbmdzID09IDEpCisgICAgICAgICAgICAg
ICAgICAgIGVycm9yV2FybmluZ0VsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IiVkIGVycm9ycywgJWQgd2FybmluZyIsIGVycm9ycywgd2FybmluZ3MpOwogICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxlbWVudC50aXRsZSA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgZXJyb3JzLCAlZCB3YXJuaW5ncyIsIHRoaXMuZXJy
b3JzLCB0aGlzLndhcm5pbmdzKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5lcnJvcnMg
PT0gMSkKLSAgICAgICAgICAgICAgICBlcnJvcldhcm5pbmdFbGVtZW50LnRpdGxlID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCIlZCBlcnJvciIsIHRoaXMuZXJyb3JzKTsKKyAgICAgICAgICAgICAg
ICAgICAgZXJyb3JXYXJuaW5nRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
JWQgZXJyb3JzLCAlZCB3YXJuaW5ncyIsIGVycm9ycywgd2FybmluZ3MpOworICAgICAgICAgICAg
fSBlbHNlIGlmIChlcnJvcnMgPT0gMSkKKyAgICAgICAgICAgICAgICBlcnJvcldhcm5pbmdFbGVt
ZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBlcnJvciIsIGVycm9ycyk7CiAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxlbWVudC50aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgZXJyb3JzIiwgdGhpcy5lcnJvcnMpOwotICAg
ICAgICB9IGVsc2UgaWYgKHRoaXMud2FybmluZ3MgPT0gMSkKLSAgICAgICAgICAgIGVycm9yV2Fy
bmluZ0VsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIHdhcm5pbmciLCB0
aGlzLndhcm5pbmdzKTsKLSAgICAgICAgZWxzZSBpZiAodGhpcy53YXJuaW5ncykKLSAgICAgICAg
ICAgIGVycm9yV2FybmluZ0VsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVk
IHdhcm5pbmdzIiwgdGhpcy53YXJuaW5ncyk7CisgICAgICAgICAgICAgICAgZXJyb3JXYXJuaW5n
RWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgZXJyb3JzIiwgZXJyb3Jz
KTsKKyAgICAgICAgfSBlbHNlIGlmICh3YXJuaW5ncyA9PSAxKQorICAgICAgICAgICAgZXJyb3JX
YXJuaW5nRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgd2FybmluZyIs
IHdhcm5pbmdzKTsKKyAgICAgICAgZWxzZSBpZiAod2FybmluZ3MpCisgICAgICAgICAgICBlcnJv
cldhcm5pbmdFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCB3YXJuaW5n
cyIsIHdhcm5pbmdzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxl
bWVudC50aXRsZSA9IG51bGw7CiAgICAgfSwKQEAgLTUxMSwxNCArNDgzLDE5IEBAIFdlYkluc3Bl
Y3Rvci5kb0xvYWRlZERvbmUgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVjdG9yLnNob3J0Y3V0
c1NjcmVlbi5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29uc29sZSIpKTsKICAgICBX
ZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuLnNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJFbGVtZW50cyBQYW5lbCIpKTsKIAorICAgIHRoaXMuY29uc29sZSA9IG5ldyBXZWJJbnNwZWN0
b3IuQ29uc29sZU1vZGVsKCk7CisgICAgdGhpcy5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuQ29uc29sZUNsZWFyZWQsIHRoaXMuX3VwZGF0
ZUVycm9yQW5kV2FybmluZ0NvdW50cywgdGhpcyk7CisgICAgdGhpcy5jb25zb2xlLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuTWVzc2FnZUFkZGVkLCB0
aGlzLl91cGRhdGVFcnJvckFuZFdhcm5pbmdDb3VudHMsIHRoaXMpOworCiAgICAgdGhpcy5kcmF3
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRyYXdlcigpOwotICAgIHRoaXMuY29uc29sZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcodGhpcy5kcmF3ZXIpOwotICAgIHRoaXMuZHJhd2VyLnZp
c2libGVWaWV3ID0gdGhpcy5jb25zb2xlOworICAgIHRoaXMuY29uc29sZVZpZXcgPSBuZXcgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3KHRoaXMuZHJhd2VyKTsKKyAgICB0aGlzLmRyYXdlci52aXNp
YmxlVmlldyA9IHRoaXMuY29uc29sZVZpZXc7CisKICAgICB0aGlzLm5ldHdvcmtNYW5hZ2VyID0g
bmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlcigpOwogICAgIHRoaXMucmVzb3VyY2VUcmVl
TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsKCk7CiAgICAgdGhpcy5u
ZXR3b3JrTG9nID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nKCk7CiAgICAgdGhpcy5kb21B
Z2VudCA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NQWdlbnQoKTsKLSAgICBuZXcgV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRDb250ZXh0TWFuYWdlcih0aGlzLnJlc291cmNlVHJlZU1vZGVsLCB0aGlzLmNv
bnNvbGUpOworICAgIG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyKHRo
aXMucmVzb3VyY2VUcmVlTW9kZWwsIHRoaXMuY29uc29sZVZpZXcpOwogCiAgICAgSW5zcGVjdG9y
QmFja2VuZC5yZWdpc3Rlckluc3BlY3RvckRpc3BhdGNoZXIodGhpcyk7CiAKQEAgLTU1MywxMiAr
NTMwLDcgQEAgV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKIAogICAgIHRo
aXMuZXh0ZW5zaW9uU2VydmVyLmluaXRFeHRlbnNpb25zKCk7CiAKLSAgICBpZiAoV2ViSW5zcGVj
dG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkLmdldCgpKQotICAgICAgICBDb25zb2xl
QWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSk7Ci0KLSAgICAvLyBUaGVyZSBpcyBu
byBjb25zb2xlIGFnZW50IGZvciB3b3JrZXJzIHlldC4KLSAgICBpZiAoIVdlYkluc3BlY3Rvci5X
b3JrZXJNYW5hZ2VyLmlzV29ya2VyRnJvbnRlbmQoKSkKLSAgICAgICAgQ29uc29sZUFnZW50LmVu
YWJsZSh0aGlzLmNvbnNvbGUuc2V0Q29uc29sZU1lc3NhZ2VFeHBpcmVkQ291bnQuYmluZCh0aGlz
LmNvbnNvbGUpKTsKKyAgICB0aGlzLmNvbnNvbGUuZW5hYmxlQWdlbnQoKTsKIAogICAgIERhdGFi
YXNlQWdlbnQuZW5hYmxlKCk7CiAgICAgRE9NU3RvcmFnZUFnZW50LmVuYWJsZSgpOwpAQCAtMTAy
Niw3ICs5OTgsNyBAQCBXZWJJbnNwZWN0b3IudG9nZ2xlU2VhcmNoaW5nRm9yTm9kZSA9IGZ1bmN0
aW9uKCkKIAogV2ViSW5zcGVjdG9yLnNob3dDb25zb2xlID0gZnVuY3Rpb24oKQogewotICAgIHRo
aXMuZHJhd2VyLnNob3dWaWV3KHRoaXMuY29uc29sZSk7CisgICAgdGhpcy5kcmF3ZXIuc2hvd1Zp
ZXcodGhpcy5jb25zb2xlVmlldyk7CiB9CiAKIFdlYkluc3BlY3Rvci5zaG93UGFuZWwgPSBmdW5j
dGlvbihwYW5lbCkK
</data>
<flag name="review"
          id="101047"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>