<?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>91519</bug_id>
          
          <creation_ts>2012-07-17 10:38:28 -0700</creation_ts>
          <short_desc>Web Inspector: remove search replace from behind experiment, polish the behavior</short_desc>
          <delta_ts>2012-07-18 06:41:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="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>671368</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-17 10:38:28 -0700</bug_when>
    <thetext>This change removes search / replace from behind experiment flag
Makes replace actions undoable
Fixes incremental replace with the superstring</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671591</commentid>
    <comment_count>1</comment_count>
      <attachid>152828</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-17 14:19:55 -0700</bug_when>
    <thetext>Created attachment 152828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672077</commentid>
    <comment_count>2</comment_count>
      <attachid>152952</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-18 00:30:55 -0700</bug_when>
    <thetext>Created attachment 152952
[IMAGE] Screenshot with patch applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672082</commentid>
    <comment_count>3</comment_count>
      <attachid>152953</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-18 00:33:34 -0700</bug_when>
    <thetext>Created attachment 152953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672219</commentid>
    <comment_count>4</comment_count>
      <attachid>152981</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-18 03:54:22 -0700</bug_when>
    <thetext>Created attachment 152981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672298</commentid>
    <comment_count>5</comment_count>
      <attachid>153000</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-18 05:59:33 -0700</bug_when>
    <thetext>Created attachment 153000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672318</commentid>
    <comment_count>6</comment_count>
      <attachid>153000</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-18 06:36:30 -0700</bug_when>
    <thetext>Comment on attachment 153000
Patch

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

&gt; Source/WebCore/English.lproj/localizedStrings.js:726
&gt; +localizedStrings[&quot;Replace &amp; Find&quot;] = &quot;Replace &amp; Find&quot;;

Please update properly.

&gt; Source/WebCore/inspector/front-end/SearchController.js:202
&gt; +        this._findButtonElement.disabled = !enabled;

Let&apos;s always enable this button.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672322</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-18 06:41:22 -0700</bug_when>
    <thetext>Committed r122962: &lt;http://trac.webkit.org/changeset/122962&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152828</attachid>
            <date>2012-07-17 14:19:55 -0700</date>
            <delta_ts>2012-07-18 00:33:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91519-20120718011953.patch</filename>
            <type>text/plain</type>
            <size>15295</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjMwYmViNDcyODBjMWJl
NDUzZGQ0Mjc5Y2MzNTRmZGYwYTcwYWE1Zi4uYmZlNzBjMzZiNGI4MDlhMmYyZWY0YmY2NGM3MjU5
ZGNmNmNkY2U1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTA3LTE3ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJlbW92ZSBzZWFyY2ggcmVwbGFjZSBmcm9tIGJlaGluZCBleHBlcmltZW50LCBwb2xpc2gg
dGhlIGJlaGF2aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTUxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIC0gVGhpcyBjaGFuZ2UgbWFrZXMgcmVwbGFjZSBsb29wIHdpdGggbm8gYm91bmRhcnk7Cisg
ICAgICAgIC0gTWFrZXMgRW50ZXIgdHJpZ2dlciBzZWFyY2ggb25seSwgbm90IHJlcGxhY2UKKyAg
ICAgICAgLSBGaXhlcyByZXBsYWNlIGFsbCB3aXRoIG5vIHNlYXJjaCBtYXRjaGVzCisgICAgICAg
IC0gSW50cm9kdWNlcyBlZGl0UmFuZ2Ugb24gdGhlIFRleHRFZGl0b3Igc28gdGhhdCBpdCB3YXMg
cHJlc2VydmluZyB0aGUgdW5kbyBzdGFjaworICAgICAgICAgICh3ZSdsbCBuZWVkIHRvIGZpeCBl
ZGl0b3Igc28gdGhhdCBpdCBkb2VzIG5vdCByZXF1aXJlIGl0KS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuYmVmb3JlVGV4dENoYW5nZWQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2VkaXRvckNsb3NlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZWRpdG9yU2VsZWN0
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUucGVyZm9y
bVNlYXJjaC5maW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlLnBlcmZvcm1TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUucmVwbGFjZVNlbGVjdGlvbldpdGgpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUucmVwbGFjZUFsbFdpdGgpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFy
Y2hDb250cm9sbGVyLnByb3RvdHlwZS5jYW5jZWxTZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLnJlc2V0U2VhcmNoKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5fdXBkYXRlU2VhcmNoTmF2aWdh
dGlvbkJ1dHRvblN0YXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVy
LnByb3RvdHlwZS5fdXBkYXRlUmVwbGFjZVZpc2liaWxpdHkpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLl9vbktleURvd24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLl9vbk5leHRCdXR0b25TZWFyY2gp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLl9vblBy
ZXZCdXR0b25TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIu
cHJvdG90eXBlLl9yZXBsYWNlQWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Nl
dHRpbmdzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3MpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9yZVRleHRDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5k
b0ZpbmRTZWFyY2hNYXRjaGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5w
cm90b3R5cGUucGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUucHJvdG90eXBlLnJlcGxhY2VTZWFyY2hNYXRjaFdpdGgpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5yZXBsYWNlQWxsV2l0aCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvckRlbGVnYXRlRm9yU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9y
ZVRleHRDaGFuZ2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3Iu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuZWRpdFJhbmdl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAg
ICgudG9vbGJhci1zZWFyY2gpOgorICAgICAgICAoLnRvb2xiYXItc2VhcmNoIGlucHV0W3R5cGU9
ImNoZWNrYm94Il0pOgorCiAyMDEyLTA3LTE3ICBNYXggVnVqb3ZpYyAgPG12dWpvdmljQGFkb2Jl
LmNvbT4KIAogICAgICAgICBVcGRhdGUgQU5HTEUgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LmpzCmluZGV4IGFkZTA0OTFmYTdjMDhmOTgxMGJiOTg2ZjIwMzkxYTU5NzU4NzMyYjguLjU0ZmEx
YTA5NjRhMzJlYzFiNzExYTY0M2U2MjU4NTZkY2Q3ZTNjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LmpzCkBAIC0xNTQsOSArMTU0LDkgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFt
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50c0FmdGVyRWRp
dGluZygpOwogICAgIH0sCiAKLSAgICBiZWZvcmVUZXh0Q2hhbmdlZDogZnVuY3Rpb24odXNlcklu
cHV0KQorICAgIGJlZm9yZVRleHRDaGFuZ2VkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9yZVRleHRDaGFuZ2VkLmNhbGwo
dGhpcywgdXNlcklucHV0KTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3Rv
dHlwZS5iZWZvcmVUZXh0Q2hhbmdlZC5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9yZW1vdmVC
cmVha3BvaW50c0JlZm9yZUVkaXRpbmcoKTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGMyZDhjMDAwMDIz
YmEzMzhkMDE2MTMzZTExNDM3NTNhOTM0MjI3MWIuLjE4YjJhZjgyZjVhNmI4N2E0ZjQ5YzgyNjk2
MzY0YjE3Njk1MjczNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC01NzMsNiArNTczLDcgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgLy8gU2NyaXB0c05hdmlnYXRvciBk
b2VzIG5vdCBuZWVkIHRvIHVwZGF0ZSBvbiBFZGl0b3JDbG9zZWQuCiAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVNjcmlwdFZpZXdTdGF0dXNCYXJJdGVtcygpOworICAgICAgICBXZWJJbnNwZWN0b3Iuc2Vh
cmNoQ29udHJvbGxlci5yZXNldFNlYXJjaCgpOwogICAgIH0sCiAKICAgICBfZWRpdG9yU2VsZWN0
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtNTgxLDYgKzU4Miw3IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlzLl9z
aG93RmlsZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICB0aGlzLl9uYXZpZ2F0b3JDb250cm9sbGVy
LmhpZGVOYXZpZ2F0b3JPdmVybGF5KCk7CiAgICAgICAgIHNvdXJjZUZyYW1lLmZvY3VzKCk7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250cm9sbGVyLnJlc2V0U2VhcmNoKCk7CiAgICAg
fSwKIAogICAgIF9zY3JpcHRTZWxlY3RlZDogZnVuY3Rpb24oZXZlbnQpCkBAIC04OTksNyArOTAx
LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxl
ci51cGRhdGVTZWFyY2hNYXRjaGVzQ291bnQoc2VhcmNoTWF0Y2hlcywgdGhpcyk7Ci0gICAgICAg
ICAgICB2aWV3Lmp1bXBUb05leHRTZWFyY2hSZXN1bHQobG9vcCk7CisgICAgICAgICAgICB2aWV3
Lmp1bXBUb05leHRTZWFyY2hSZXN1bHQoKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZWFy
Y2hDb250cm9sbGVyLnVwZGF0ZUN1cnJlbnRNYXRjaEluZGV4KHZpZXcuY3VycmVudFNlYXJjaFJl
c3VsdEluZGV4LCB0aGlzKTsKICAgICAgICAgfQogCkBAIC05NjgsNyArOTcwLDcgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgcmVwbGFjZVNl
bGVjdGlvbldpdGg6IGZ1bmN0aW9uKHRleHQpCiAgICAgewotICAgICAgICB2YXIgdmlldyA9IC8q
KiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSAqLyB0aGlzLl9zZWFyY2hWaWV3Owor
ICAgICAgICB2YXIgdmlldyA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSAq
LyB0aGlzLnZpc2libGVWaWV3OwogICAgICAgICB2aWV3LnJlcGxhY2VTZWFyY2hNYXRjaFdpdGgo
dGV4dCk7CiAgICAgfSwKIApAQCAtOTc4LDcgKzk4MCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHJlcGxhY2VBbGxXaXRoOiBmdW5jdGlv
bihxdWVyeSwgdGV4dCkKICAgICB7Ci0gICAgICAgIHZhciB2aWV3ID0gLyoqIEB0eXBlIHtXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWV9ICovIHRoaXMuX3NlYXJjaFZpZXc7CisgICAgICAgIHZhciB2
aWV3ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9ICovIHRoaXMudmlzaWJs
ZVZpZXc7CiAgICAgICAgIHZpZXcucmVwbGFjZUFsbFdpdGgocXVlcnksIHRleHQpOwogICAgIH0s
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2VhcmNo
Q29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2VhcmNo
Q29udHJvbGxlci5qcwppbmRleCA2ZjRlYzc5N2M1MmNhZDU1ZDRjODViNGU2OTVlYTEwNTRhYzI1
YjJkLi5mMjM3ZGM4MDFjODA0ZWI2NjRjM2UxYzAyMjAzMWE1ODEzZTdkYmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NlYXJjaENvbnRyb2xsZXIuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZWFyY2hDb250cm9sbGVy
LmpzCkBAIC04MSwxMCArODEsMTIgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIgPSBm
dW5jdGlvbigpCiAKICAgICB0aGlzLl9yZXBsYWNlQnV0dG9uRWxlbWVudCA9IHRoaXMuX3JlcGxh
Y2VEZXRhaWxzRWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIik7CiAgICAgdGhpcy5fcmVwbGFj
ZUJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlcGxh
Y2UiKTsKKyAgICB0aGlzLl9yZXBsYWNlQnV0dG9uRWxlbWVudC5kaXNhYmxlZCA9IHRydWU7CiAg
ICAgdGhpcy5fcmVwbGFjZUJ1dHRvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0
aGlzLl9yZXBsYWNlLmJpbmQodGhpcyksIGZhbHNlKTsKIAogICAgIHRoaXMuX3NraXBCdXR0b25F
bGVtZW50ID0gdGhpcy5fcmVwbGFjZURldGFpbHNFbGVtZW50LmNyZWF0ZUNoaWxkKCJidXR0b24i
KTsKICAgICB0aGlzLl9za2lwQnV0dG9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiU2tpcCIpOworICAgIHRoaXMuX3NraXBCdXR0b25FbGVtZW50LmRpc2FibGVk
ID0gdHJ1ZTsKICAgICB0aGlzLl9za2lwQnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIHRoaXMuX29uTmV4dEJ1dHRvblNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAg
ICB0aGlzLl9yZXBsYWNlQWxsQnV0dG9uRWxlbWVudCA9IHRoaXMuX3JlcGxhY2VEZXRhaWxzRWxl
bWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIik7CkBAIC0xMTksMTAgKzEyMSwxNiBAQCBXZWJJbnNw
ZWN0b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5f
c2VhcmNoSXNWaXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkZWxldGUgdGhp
cy5fc2VhcmNoSXNWaXNpYmxlOwotICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKCIiLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuc2V0
Rm9vdGVyRWxlbWVudChudWxsKTsKKyAgICAgICAgdGhpcy5yZXNldFNlYXJjaCgpOworICAgIH0s
CisKKyAgICByZXNldFNlYXJjaDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcGVy
Zm9ybVNlYXJjaCgiIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIHRoaXMuX3JlcGxh
Y2VDaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlOwogICAgICAgICB0aGlzLl90b2dnbGVS
ZXBsYWNlVmlzaWJpbGl0eSgpOworICAgICAgICB0aGlzLl9tYXRjaGVzRWxlbWVudC50ZXh0Q29u
dGVudCA9ICIiOwogICAgIH0sCiAKICAgICBkaXNhYmxlU2VhcmNoVW50aWxFeHBsaWNpdEFjdGlv
bjogZnVuY3Rpb24oZXZlbnQpCkBAIC0xNzgsNiArMTg2LDggQEAgV2ViSW5zcGVjdG9yLlNlYXJj
aENvbnRyb2xsZXIucHJvdG90eXBlID0gewogCiAgICAgX3VwZGF0ZVNlYXJjaE5hdmlnYXRpb25C
dXR0b25TdGF0ZTogZnVuY3Rpb24oZW5hYmxlZCkKICAgICB7CisgICAgICAgIHRoaXMuX3JlcGxh
Y2VCdXR0b25FbGVtZW50LmRpc2FibGVkID0gIWVuYWJsZWQ7CisgICAgICAgIHRoaXMuX3NraXBC
dXR0b25FbGVtZW50LmRpc2FibGVkID0gIWVuYWJsZWQ7CiAgICAgICAgIHZhciBwYW5lbCA9IFdl
Ykluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpOwogICAgICAgICBpZiAoZW5h
YmxlZCkgewogICAgICAgICAgICAgdGhpcy5fc2VhcmNoTmF2aWdhdGlvblByZXZFbGVtZW50LmFk
ZFN0eWxlQ2xhc3MoImVuYWJsZWQiKTsKQEAgLTIxMSw3ICsyMjEsNyBAQCBXZWJJbnNwZWN0b3Iu
U2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgX3VwZGF0ZVJlcGxhY2VWaXNpYmls
aXR5OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3Iu
aW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwoKTsKLSAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5l
eHBlcmltZW50c1NldHRpbmdzLnNlYXJjaFJlcGxhY2UuaXNFbmFibGVkKCkgJiYgcGFuZWwuY2Fu
U2VhcmNoQW5kUmVwbGFjZSgpKQorICAgICAgICBpZiAocGFuZWwuY2FuU2VhcmNoQW5kUmVwbGFj
ZSgpKQogICAgICAgICAgICAgdGhpcy5fcmVwbGFjZUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygi
aGlkZGVuIik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3JlcGxhY2VFbGVtZW50
LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwpAQCAtMjM0LDEyICsyNDQsOCBAQCBXZWJJbnNwZWN0
b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkpIHsKLSAgICAg
ICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuX3NlYXJjaElucHV0RWxlbWVudCkKLSAg
ICAgICAgICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKGV2ZW50LnRhcmdldC52YWx1ZSwgdHJ1
ZSwgZXZlbnQuc2hpZnRLZXksIHRydWUpOwotICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQudGFy
Z2V0ID09PSB0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50KQotICAgICAgICAgICAgICAgIHRoaXMu
X3JlcGxhY2UoKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkpCisg
ICAgICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKGV2ZW50LnRhcmdldC52YWx1ZSwgdHJ1ZSwg
ZXZlbnQuc2hpZnRLZXksIHRydWUpOwogICAgIH0sCiAKICAgICBfb25JbnB1dDogZnVuY3Rpb24o
ZXZlbnQpCkBAIC0yNDksNiArMjU1LDggQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIu
cHJvdG90eXBlID0gewogCiAgICAgX29uTmV4dEJ1dHRvblNlYXJjaDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgeworICAgICAgICBpZiAoIXRoaXMuX3NlYXJjaE5hdmlnYXRpb25OZXh0RWxlbWVudC5o
YXNTdHlsZUNsYXNzKCJlbmFibGVkIikpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8v
IFNpbXVsYXRlIG5leHQgc2VhcmNoIG9uIHNlYXJjaC1uYXZpZ2F0aW9uLWJ1dHRvbiBjbGljay4K
ICAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCh0aGlzLl9zZWFyY2hJbnB1dEVsZW1lbnQudmFs
dWUsIHRydWUsIGZhbHNlLCB0cnVlKTsKICAgICAgICAgdGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50
LmZvY3VzKCk7CkBAIC0yNTYsNiArMjY0LDggQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xs
ZXIucHJvdG90eXBlID0gewogCiAgICAgX29uUHJldkJ1dHRvblNlYXJjaDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMuX3NlYXJjaE5hdmlnYXRpb25QcmV2RWxlbWVu
dC5oYXNTdHlsZUNsYXNzKCJlbmFibGVkIikpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IC8vIFNpbXVsYXRlIHByZXZpb3VzIHNlYXJjaCBvbiBzZWFyY2gtbmF2aWdhdGlvbi1idXR0b24g
Y2xpY2suCiAgICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2godGhpcy5fc2VhcmNoSW5wdXRFbGVt
ZW50LnZhbHVlLCB0cnVlLCB0cnVlLCB0cnVlKTsKICAgICAgICAgdGhpcy5fc2VhcmNoSW5wdXRF
bGVtZW50LmZvY3VzKCk7CkBAIC0zMjYsNyArMzM2LDcgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENv
bnRyb2xsZXIucHJvdG90eXBlID0gewogICAgIF9yZXBsYWNlQWxsOiBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICB2YXIgY3VycmVudFBhbmVsID0gV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcu
Y3VycmVudFBhbmVsKCk7Ci0gICAgICAgIGN1cnJlbnRQYW5lbC5yZXBsYWNlQWxsV2l0aCh0aGlz
Ll9jdXJyZW50UXVlcnksIHRoaXMuX3JlcGxhY2VJbnB1dEVsZW1lbnQudmFsdWUpOworICAgICAg
ICBjdXJyZW50UGFuZWwucmVwbGFjZUFsbFdpdGgodGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LnZh
bHVlLCB0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50LnZhbHVlKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGJhMGIy
NjZhMjM3ZTMyNjEwODExZTgxNjNiYTVmMjYyYTQ1N2Y0OTYuLjk2M2QxZjBlYTI1MDExN2MxOWI2
OTY1NjFkMWI5NWUwZGI0MWU5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TZXR0aW5ncy5qcwpAQCAtMTg4LDcgKzE4OCw2IEBAIFdlYkluc3BlY3Rvci5FeHBl
cmltZW50c1NldHRpbmdzID0gZnVuY3Rpb24oKQogICAgIHRoaXMubGl2ZU5hdGl2ZU1lbW9yeUNo
YXJ0ID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgibGl2ZU5hdGl2ZU1lbW9yeUNoYXJ0IiwgIkxp
dmUgbmF0aXZlIG1lbW9yeSBjaGFydCIpOwogICAgIHRoaXMuZmlsZVN5c3RlbUluc3BlY3Rpb24g
PSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJmaWxlU3lzdGVtSW5zcGVjdGlvbiIsICJGaWxlU3lz
dGVtIGluc3BlY3Rpb24iKTsKICAgICB0aGlzLm1haW5UaHJlYWRNb25pdG9yaW5nID0gdGhpcy5f
Y3JlYXRlRXhwZXJpbWVudCgibWFpblRocmVhZE1vbml0b3JpbmciLCAiU2hvdyBDUFUgYWN0aXZp
dHkgaW4gVGltZWxpbmUiKTsKLSAgICB0aGlzLnNlYXJjaFJlcGxhY2UgPSB0aGlzLl9jcmVhdGVF
eHBlcmltZW50KCJzZWFyY2hSZXBsYWNlIiwgIlNlYXJjaCAvIFJlcGxhY2UiKTsKIAogICAgIHRo
aXMuX2NsZWFuVXBTZXR0aW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCBhODk5NGY5ZDc3NGEyZGRkMDMyOWMzYTc0
YzA2YWVmMzRkZGI0MGJiLi5jMjk0MTIxZTYxM2EyNDY2OWM5YTVlNDlhMGNmMzM0NjYyOGRjYWI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZy
YW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJh
bWUuanMKQEAgLTI3MCwxMiArMjcwLDkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5faW5uZXJTZXRTZWxlY3Rpb25JZk5lZWRlZCgpOwogICAg
IH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZXJJbnB1dAotICAgICAq
LwotICAgIGJlZm9yZVRleHRDaGFuZ2VkOiBmdW5jdGlvbih1c2VySW5wdXQpCisgICAgYmVmb3Jl
VGV4dENoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh1c2VySW5wdXQpCisg
ICAgICAgIGlmICghdGhpcy5faXNSZXBsYWNpbmcpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
c2VhcmNoQ29udHJvbGxlci5jYW5jZWxTZWFyY2goKTsKICAgICAgICAgdGhpcy5jbGVhck1lc3Nh
Z2VzKCk7CiAgICAgfSwKQEAgLTM1NSw3ICszNTIsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBpZiAoc2hpZnRUb0luZGV4KQogICAgICAg
ICAgICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHMgPSB0aGlzLl9zZWFyY2hSZXN1bHRzLnJvdGF0
ZShzaGlmdFRvSW5kZXgpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGNhbGxiYWNrKHRo
aXMsIHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoKTsKICAgICAgICAgfQogCkBAIC00MzEsMTQg
KzQyOCwxNCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAq
LwogICAgIHJlcGxhY2VTZWFyY2hNYXRjaFdpdGg6IGZ1bmN0aW9uKHRleHQpCiAgICAgewotICAg
ICAgICB0aGlzLmJlZm9yZVRleHRDaGFuZ2VkKGZhbHNlKTsKLQogICAgICAgICB2YXIgcmFuZ2Ug
PSB0aGlzLl9zZWFyY2hSZXN1bHRzW3RoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJbmRleF07CiAg
ICAgICAgIGlmICghcmFuZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX3Rl
eHRFZGl0b3IubWFya0FuZFJldmVhbFJhbmdlKG51bGwpOwotICAgICAgICB2YXIgbmV3UmFuZ2Ug
PSB0aGlzLl90ZXh0TW9kZWwuZWRpdFJhbmdlKHJhbmdlLCB0ZXh0KTsKLSAgICAgICAgdGhpcy5h
ZnRlclRleHRDaGFuZ2VkKHJhbmdlLCBuZXdSYW5nZSk7CisKKyAgICAgICAgdGhpcy5faXNSZXBs
YWNpbmcgPSB0cnVlOworICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlzLl90ZXh0RWRpdG9yLmVk
aXRSYW5nZShyYW5nZSwgdGV4dCk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9pc1JlcGxhY2luZzsK
IAogICAgICAgICAvLyBDb2xsYXBzZSBjdXJyZW50IG1hdGNoIHNvIHRoYXQgd2UgZG9uJ3QgcmVw
bGFjZSB0aGluZ3MgdHdpY2UuIAogICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLm1hcmtBbmRSZXZl
YWxSYW5nZShuZXdSYW5nZS5jb2xsYXBzZVRvRW5kKCkpOwpAQCAtNDUwLDEyICs0NDcsMTUgQEAg
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZXBs
YWNlQWxsV2l0aDogZnVuY3Rpb24ocXVlcnksIHJlcGxhY2VtZW50KQogICAgIHsKLSAgICAgICAg
dGhpcy5iZWZvcmVUZXh0Q2hhbmdlZChmYWxzZSk7CisgICAgICAgIHRoaXMuX3RleHRFZGl0b3Iu
bWFya0FuZFJldmVhbFJhbmdlKG51bGwpOworCiAgICAgICAgIHZhciB0ZXh0ID0gdGhpcy5fdGV4
dE1vZGVsLnRleHQoKTsKICAgICAgICAgdmFyIHJhbmdlID0gdGhpcy5fdGV4dE1vZGVsLnJhbmdl
KCk7CiAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
LmNyZWF0ZVNlYXJjaFJlZ2V4KHF1ZXJ5LCAiZyIpLCByZXBsYWNlbWVudCk7Ci0gICAgICAgIHZh
ciBuZXdSYW5nZSA9IHRoaXMuX3RleHRNb2RlbC5lZGl0UmFuZ2UocmFuZ2UsIHRleHQpOwotICAg
ICAgICB0aGlzLmFmdGVyVGV4dENoYW5nZWQocmFuZ2UsIG5ld1JhbmdlKTsKKworICAgICAgICB0
aGlzLl9pc1JlcGxhY2luZyA9IHRydWU7CisgICAgICAgIHRoaXMuX3RleHRFZGl0b3IuZWRpdFJh
bmdlKHJhbmdlLCB0ZXh0KTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2lzUmVwbGFjaW5nOwogICAg
IH0sCiAKICAgICBfY29sbGVjdFJlZ2V4TWF0Y2hlczogZnVuY3Rpb24ocmVnZXhPYmplY3QpCkBA
IC02NDUsNyArNjQ1LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JEZWxlZ2F0ZUZvclNvdXJj
ZUZyYW1lID0gZnVuY3Rpb24oc291cmNlRnJhbWUpCiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckRl
bGVnYXRlRm9yU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgIGJlZm9yZVRleHRDaGFuZ2Vk
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZS5iZWZvcmVUZXh0
Q2hhbmdlZCh0cnVlKTsKKyAgICAgICAgdGhpcy5fc291cmNlRnJhbWUuYmVmb3JlVGV4dENoYW5n
ZWQoKTsKICAgICB9LAogCiAgICAgYWZ0ZXJUZXh0Q2hhbmdlZDogZnVuY3Rpb24ob2xkUmFuZ2Us
IG5ld1JhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0
RWRpdG9yLmpzCmluZGV4IDljYTgyNGQxZTM0MzRmNDZlYjk2YjcwNTkyNmJhMDBkZTgwZDY0YWIu
LmZhNmY0ZDIwOTY1MmQ2MTIwZDE0M2NhYjQzOWU1YmEwYTVmZmM2ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanMKQEAgLTIzMiw2ICsy
MzIsMjAgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl91cGRhdGVQYW5lbE9mZnNldHMoKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfSByYW5nZQorICAgICAqIEBwYXJhbSB7c3RyaW5n
fSB0ZXh0CisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlRleHRSYW5nZX0KKyAgICAgKi8K
KyAgICBlZGl0UmFuZ2U6IGZ1bmN0aW9uKHJhbmdlLCB0ZXh0KQorICAgIHsKKyAgICAgICAgdGhp
cy5fZW50ZXJJbnRlcm5hbFRleHRDaGFuZ2VNb2RlKCk7CisgICAgICAgIHRoaXMuX3RleHRNb2Rl
bC5tYXJrVW5kb2FibGVTdGF0ZSgpOworICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlzLl90ZXh0
TW9kZWwuZWRpdFJhbmdlKHJhbmdlLCB0ZXh0KTsKKyAgICAgICAgdGhpcy5fZXhpdEludGVybmFs
VGV4dENoYW5nZU1vZGUocmFuZ2UsIG5ld1JhbmdlKTsKKyAgICAgICAgcmV0dXJuIG5ld1Jhbmdl
OworICAgIH0sCisKICAgICBfZW50ZXJJbnRlcm5hbFRleHRDaGFuZ2VNb2RlOiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICB0aGlzLl9pbnRlcm5hbFRleHRDaGFuZ2VNb2RlID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNz
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRl
eCBmOGZhYWUxNWI2ZGI5Y2U5MzA2MjRjYjc2MTBjMjZjNDMxMDQ3YzkyLi43MWFhYWJmOWFlMmQw
OTNjMGRhMDdkYjcxM2RhYzBlMGVjM2ExMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0zMDAsNyArMzAwLDcgQEAgYm9keS5k
ZXRhY2hlZC5wbGF0Zm9ybS1tYWMtc25vd2xlb3BhcmQgI3Rvb2xiYXItZHJvcGRvd24gewogfQog
CiAudG9vbGJhci1zZWFyY2ggewotICAgIGxpbmUtaGVpZ2h0OiAxOXB4OworICAgIGxpbmUtaGVp
Z2h0OiAxOHB4OwogICAgIGhlaWdodDogMjJweDsKIH0KIApAQCAtMzA4LDcgKzMwOCw3IEBAIGJv
ZHkuZGV0YWNoZWQucGxhdGZvcm0tbWFjLXNub3dsZW9wYXJkICN0b29sYmFyLWRyb3Bkb3duIHsK
ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgbWFyZ2luLXRvcDogLTFweDsKICAgICBtYXJn
aW4tbGVmdDogMTVweDsKLSAgICB0b3A6IDJweDsKKyAgICB0b3A6IDFweDsKIH0KIAogLnRvb2xi
YXItc2VhcmNoIGJ1dHRvbiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>152952</attachid>
            <date>2012-07-18 00:30:55 -0700</date>
            <delta_ts>2012-07-18 00:30:55 -0700</delta_ts>
            <desc>[IMAGE] Screenshot with patch applied.</desc>
            <filename>Screen shot 2012-07-18 at 11.30.23 AM.png</filename>
            <type>image/png</type>
            <size>18979</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152953</attachid>
            <date>2012-07-18 00:33:34 -0700</date>
            <delta_ts>2012-07-18 03:54:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91519-20120718113332.patch</filename>
            <type>text/plain</type>
            <size>44258</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjMwYmViNDcyODBjMWJl
NDUzZGQ0Mjc5Y2MzNTRmZGYwYTcwYWE1Zi4uNGJkMTczYTkxNTg1OGY3NjYzYjdlNWFmOTk5ZmJh
YmViZmFlODkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTA3LTE4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJlbW92ZSBzZWFyY2ggcmVwbGFjZSBmcm9tIGJlaGluZCBleHBlcmltZW50LCBwb2xpc2gg
dGhlIGJlaGF2aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTUxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIC0gVGhpcyBjaGFuZ2UgbWFrZXMgcmVwbGFjZSBsb29wIHdpdGggbm8gYm91bmRhcnksIHJl
bW92ZXMgdGhlIGxvb3AgcGFyYW1ldGVyCisgICAgICAgICAgZnJvbSBqdW1wVG9OZXh0L1ByZXZp
b3VzOworICAgICAgICAtIExheXMgb3V0IHJlcGxhY2UgYXMgYSBzZWNvbmQgcm93CisgICAgICAg
IC0gTWFrZXMgRW50ZXIgdHJpZ2dlciBzZWFyY2ggb25seSwgbm90IHJlcGxhY2UKKyAgICAgICAg
LSBGaXhlcyByZXBsYWNlIGFsbCB3aXRoIG5vIHNlYXJjaCBtYXRjaGVzCisgICAgICAgIC0gU3Bs
aXRzIFNlYXJjaCBhbmQgU2VhcmNoIGFuZCBSZXBsYWNlCisgICAgICAgIC0gSW50cm9kdWNlcyBl
eHBsaWNpdCBOZXh0IC8gUHJldmlvdXMgYnV0dG9ucyBpbiB0aGUgc2VhcmNoIG1vZGUKKyAgICAg
ICAgLSBJbnRyb2R1Y2VzIGVkaXRSYW5nZSBvbiB0aGUgVGV4dEVkaXRvciBzbyB0aGF0IGl0IHdh
cyBwcmVzZXJ2aW5nIHRoZSB1bmRvIHN0YWNrCisgICAgICAgICAgKHdlJ2xsIG5lZWQgdG8gZml4
IGVkaXRvciBzbyB0aGF0IGl0IGRvZXMgbm90IHJlcXVpcmUgaXQpLgorCisgICAgICAgICogRW5n
bGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5l
bC5wcm90b3R5cGUucGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVBhbmVsLnByb3RvdHlwZS5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNlYXJj
aFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUu
anVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRXh0ZW5zaW9uUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uUGFu
ZWwucHJvdG90eXBlLnBlcmZvcm1TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVu
c2lvblBhbmVsLnByb3RvdHlwZS5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FeHRlbnNpb25QYW5lbC5wcm90b3R5cGUuanVtcFRvUHJldmlvdXNTZWFyY2hS
ZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZy
YW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90
b3R5cGUuYmVmb3JlVGV4dENoYW5nZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnBy
b3RvdHlwZS5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLmp1bXBUb05leHRTZWFyY2hSZXN1bHQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUuanVtcFRvUHJldmlvdXNT
ZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5
cGUuanVtcFRvTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9QYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUucGVyZm9y
bVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmp1bXBUb05l
eHRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5q
dW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwu
cHJvdG90eXBlLmp1bXBUb05leHRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5qdW1wVG9OZXh0U2VhcmNoUmVz
dWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuanVt
cFRvUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUuX2VkaXRvckNsb3NlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fZWRpdG9yU2VsZWN0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5maW5pc2hlZENhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLnBlcmZvcm1TZWFyY2gpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNl
YXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlw
ZS5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsLnByb3RvdHlwZS5yZXBsYWNlU2VsZWN0aW9uV2l0aCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5yZXBsYWNlQWxsV2l0aCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZWFyY2hDb250cm9sbGVyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJj
aENvbnRyb2xsZXIucHJvdG90eXBlLmNhbmNlbFNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUucmVzZXRTZWFyY2gpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLmhhbmRsZVNob3J0Y3V0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5fdXBkYXRlU2Vh
cmNoTmF2aWdhdGlvbkJ1dHRvblN0YXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hD
b250cm9sbGVyLnByb3RvdHlwZS5fdXBkYXRlUmVwbGFjZVZpc2liaWxpdHkpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLl9vbktleURvd24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLl9vbk5leHRCdXR0
b25TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90
eXBlLl9vblByZXZCdXR0b25TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaENv
bnRyb2xsZXIucHJvdG90eXBlLl9wZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5fdXBkYXRlUmVwbGFjZURldGFpbHNWaXNpYmls
aXR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5f
cmVwbGFjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5
cGUuX3JlcGxhY2VBbGwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3Mu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5ncyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuYmVmb3JlVGV4dENoYW5nZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoLmRvRmluZFNl
YXJjaE1hdGNoZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlw
ZS5wZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90
b3R5cGUucmVwbGFjZVNlYXJjaE1hdGNoV2l0aCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlLnJlcGxhY2VBbGxXaXRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yRGVsZWdhdGVGb3JTb3VyY2VGcmFtZS5wcm90b3R5cGUuYmVmb3JlVGV4dENo
YW5nZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5lZGl0UmFuZ2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAgKC50b29s
YmFyLXNlYXJjaC1yZXBsYWNlIC5zZWFyY2gtcmVwbGFjZSk6CisgICAgICAgICgudG9vbGJhci1z
ZWFyY2gpOgorICAgICAgICAoLnRvb2xiYXItc2VhcmNoLXJlcGxhY2UpOgorICAgICAgICAoLnRv
b2xiYXItc2VhcmNoLWNsb3NlLWJ1dHRvbik6CisgICAgICAgICgudG9vbGJhci1zZWFyY2gtY2xv
c2UtYnV0dG9uOmhvdmVyKToKKyAgICAgICAgKC50b29sYmFyLXNlYXJjaC1jbG9zZS1idXR0b246
YWN0aXZlKToKKyAgICAgICAgKC50b29sYmFyLXNlYXJjaCBpbnB1dFt0eXBlPSJjaGVja2JveCJd
KToKKyAgICAgICAgKC50b29sYmFyLXNlYXJjaC1yZXBsYWNlIC50b29sYmFyLXJlcGxhY2UtY29u
dHJvbCk6CisKIDIwMTItMDctMTcgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgog
CiAgICAgICAgIFVwZGF0ZSBBTkdMRSBpbiBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0Vu
Z2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA5ZWRjNjQxNDE2YzRiMDBkMTQx
NjYwOGI4OTg5YzYyNTI5OGJjOWQzLi45YTY3NTA2NmRkMGY0YzBkNzM2N2Y3YWZkOTJmOTM1Mjk3
ZTQzN2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCkBAIC03MjMsNCArNzIzLDYgQEAgbG9jYWxpemVkU3RyaW5nc1siVGltZSBFbmQi
XSA9ICJUaW1lIEVuZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaW5kIl0gPSAiRmluZCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJSZXBsYWNlIl0gPSAiUmVwbGFjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJS
ZXBsYWNlIEFsbCJdID0gIlJlcGxhY2UgQWxsIjsKLWxvY2FsaXplZFN0cmluZ3NbIlNraXAiXSA9
ICJTa2lwIjsKK2xvY2FsaXplZFN0cmluZ3NbIlJlcGxhY2UgJiBGaW5kIl0gPSAiUmVwbGFjZSAm
IEZpbmQiOworbG9jYWxpemVkU3RyaW5nc1siUHJldmlvdXMiXSA9ICJQcmV2aW91cyI7Citsb2Nh
bGl6ZWRTdHJpbmdzWyJOZXh0Il0gPSAiTmV4dCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCmluZGV4IDU0ZWY2M2Q2OGNmNWEwMGFk
MjA3YmRmMzI2MTVjZGFjNDg5MWQ4YTYuLjc0YzNkY2Q3NmEwNDBjODM1ODU5YjczNjcxMjM2ZjVj
MDc0N2M3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVBhbmVsLmpzCkBAIC03OCw5ICs3OCw5IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5
Ci0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCisgICAgICogQHBhcmFtIHtib29sZWFufSBq
dW1wVG9GaXJzdAogICAgICAqLwotICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5LCBs
b29wKQorICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5LCBqdW1wVG9GaXJzdCkKICAg
ICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250cm9sbGVyLnVwZGF0ZVNlYXJjaE1h
dGNoZXNDb3VudCgwLCB0aGlzKTsKICAgICAgICAgdGhpcy5zZWFyY2hDYW5jZWxlZCgpOwpAQCAt
MTAwLDM0ICsxMDAsMjAgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB0aGlzLl9qdW1wVG9TZWFyY2hSZXN1bHQoMCk7CiAgICAgfSwKIAotICAg
IC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xl
YW59Ci0gICAgICovCi0gICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkK
KyAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBp
ZiAoIXRoaXMuX3NlYXJjaFJlc3VsdHMgfHwgIXRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWxvb3AgJiYgdGhpcy5fY3Vy
cmVudFNlYXJjaFJlc3VsdEluZGV4ICsgMSA+PSB0aGlzLl9zZWFyY2hSZXN1bHRzLmxlbmd0aCkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
dGhpcy5fanVtcFRvU2VhcmNoUmVzdWx0KCh0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXgg
KyAxKSAlIHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAq
IEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAganVtcFRvUHJldmlvdXNTZWFyY2hSZXN1
bHQ6IGZ1bmN0aW9uKGxvb3ApCisgICAganVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fc2VhcmNoUmVzdWx0cyB8fCAhdGhpcy5f
c2VhcmNoUmVzdWx0cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2N1cnJlbnRTZWFyY2hSZXN1
bHRJbmRleCAtIDE7Ci0gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKLSAgICAgICAgICAgIGlm
ICghbG9vcCkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChpbmRl
eCA9PT0gLTEpCiAgICAgICAgICAgICBpbmRleCA9IHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3Ro
IC0gMTsKLSAgICAgICAgfQogICAgICAgICB0aGlzLl9qdW1wVG9TZWFyY2hSZXN1bHQoaW5kZXgp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDc0MDE4NWU5YWExZjBm
NWExNDIxYjU4MjU4ZjBmMGEzYWZmZDI5YWEuLjZmNjllNDM0YTZmZmQwNjQwYjU4YzUzMDM5ZmRk
ZWIzNDhjNzc4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAgLTI5NCw5ICsyOTQsOSBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gcXVlcnkKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKKyAgICAgKiBAcGFyYW0ge2Jv
b2xlYW59IGp1bXBUb0ZpcnN0CiAgICAgICovCi0gICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24o
cXVlcnksIGxvb3ApCisgICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnksIGp1bXBUb0Zp
cnN0KQogICAgIHsKICAgICAgICAgLy8gQ2FsbCBzZWFyY2hDYW5jZWxlZCBzaW5jZSBpdCB3aWxs
IHJlc2V0IGV2ZXJ5dGhpbmcgd2UgbmVlZCBiZWZvcmUgZG9pbmcgYSBuZXcgc2VhcmNoLgogICAg
ICAgICB0aGlzLnNlYXJjaENhbmNlbGVkKCk7CkBAIC00OTMsNDEgKzQ5MywyNiBAQCBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0g
ICAgLyoqCi0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCi0gICAgICogQHJldHVybiB7Ym9v
bGVhbn0KLSAgICAgKi8KLSAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29w
KQorICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IGlmICghdGhpcy5fc2VhcmNoUmVzdWx0cykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLl9oaWRlU2VhcmNoSGlnaGxpZ2h0cygp
OwotICAgICAgICBpZiAoKyt0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXggPj0gdGhpcy5f
c2VhcmNoUmVzdWx0cy5sZW5ndGgpIHsKLSAgICAgICAgICAgIGlmICghbG9vcCkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICgrK3RoaXMuX2N1cnJlbnRTZWFyY2hS
ZXN1bHRJbmRleCA+PSB0aGlzLl9zZWFyY2hSZXN1bHRzLmxlbmd0aCkKICAgICAgICAgICAgIHRo
aXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgICAg
IAorCiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodEN1cnJlbnRTZWFyY2hSZXN1bHQoKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAganVtcFRvUHJl
dmlvdXNTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKGxvb3ApCisgICAganVtcFRvUHJldmlvdXNTZWFy
Y2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fc2VhcmNoUmVz
dWx0cykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICB0aGlzLl9oaWRlU2VhcmNoSGlnaGxpZ2h0cygpOwotICAgICAgICBpZiAoLS10aGlz
Ll9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXggPCAwKSB7Ci0gICAgICAgICAgICBpZiAoIWxvb3Ap
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoLS10aGlzLl9jdXJy
ZW50U2VhcmNoUmVzdWx0SW5kZXggPCAwKQogICAgICAgICAgICAgdGhpcy5fY3VycmVudFNlYXJj
aFJlc3VsdEluZGV4ID0gKHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoIC0gMSk7Ci0gICAgICAg
IH0KIAogICAgICAgICB0aGlzLl9oaWdobGlnaHRDdXJyZW50U2VhcmNoUmVzdWx0KCk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FeHRlbnNpb25QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKaW5kZXggZDgyOGQzMzZlMDAyYzc2NDhkNjFkNjQxMTFj
YzIyOGNjNTMxZWMwMy4uYzE4OGI5ZjY4NWY3M2M1ZWMzMDA5MDc3ZWE2N2IzNjcwOTdlMmRjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25Q
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lv
blBhbmVsLmpzCkBAIC0xNTMsMzQgKzE1MywyNCBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5
Ci0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCisgICAgICogQHBhcmFtIHtib29sZWFufSBq
dW1wVG9GaXJzdAogICAgICAqLwotICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5LCBs
b29wKQorICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5LCBqdW1wVG9GaXJzdCkKICAg
ICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIubm90aWZ5U2VhcmNoQWN0
aW9uKHRoaXMubmFtZSwgV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5wYW5lbHMuU2VhcmNoQWN0
aW9uLlBlcmZvcm1TZWFyY2gsIHF1ZXJ5KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnBy
b3RvdHlwZS5wZXJmb3JtU2VhcmNoLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgfSwKIAot
ICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jv
b2xlYW59Ci0gICAgICovCi0gICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9v
cCkKKyAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAg
ICBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2VydmVyLm5vdGlmeVNlYXJjaEFjdGlvbih0aGlzLm5h
bWUsIFdlYkluc3BlY3Rvci5leHRlbnNpb25BUEkucGFuZWxzLlNlYXJjaEFjdGlvbi5OZXh0U2Vh
cmNoUmVzdWx0KTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5qdW1wVG9O
ZXh0U2VhcmNoUmVzdWx0LmNhbGwodGhpcywgbG9vcCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmp1bXBUb05leHRTZWFyY2hSZXN1
bHQuY2FsbCh0aGlzKTsKICAgICB9LAogCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtib29sZWFu
fSBsb29wCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBqdW1wVG9QcmV2
aW91c1NlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9QcmV2aW91c1NlYXJj
aFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lv
blNlcnZlci5ub3RpZnlTZWFyY2hBY3Rpb24odGhpcy5uYW1lLCBXZWJJbnNwZWN0b3IuZXh0ZW5z
aW9uQVBJLnBhbmVscy5TZWFyY2hBY3Rpb24uUHJldmlvdXNTZWFyY2hSZXN1bHQpOwotICAgICAg
ICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0
LmNhbGwodGhpcywgbG9vcCk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBXZWJJbnNw
ZWN0b3IuUGFuZWwucHJvdG90eXBlLmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0LmNhbGwodGhp
cyk7CiAgICAgfSwKIAogICAgIF9hZGRTdHlsZVJ1bGU6IGZ1bmN0aW9uKHNlbGVjdG9yLCBib2R5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2Ny
aXB0U291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ph
dmFTY3JpcHRTb3VyY2VGcmFtZS5qcwppbmRleCBhZGUwNDkxZmE3YzA4Zjk4MTBiYjk4NmYyMDM5
MWE1OTc1ODczMmI4Li41NGZhMWEwOTY0YTMyZWMxYjcxMWE2NDNlNjI1ODU2ZGNkN2UzYzRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRT
b3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ph
dmFTY3JpcHRTb3VyY2VGcmFtZS5qcwpAQCAtMTU0LDkgKzE1NCw5IEBAIFdlYkluc3BlY3Rvci5K
YXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZXN0b3Jl
QnJlYWtwb2ludHNBZnRlckVkaXRpbmcoKTsKICAgICB9LAogCi0gICAgYmVmb3JlVGV4dENoYW5n
ZWQ6IGZ1bmN0aW9uKHVzZXJJbnB1dCkKKyAgICBiZWZvcmVUZXh0Q2hhbmdlZDogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5iZWZv
cmVUZXh0Q2hhbmdlZC5jYWxsKHRoaXMsIHVzZXJJbnB1dCk7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuYmVmb3JlVGV4dENoYW5nZWQuY2FsbCh0aGlzKTsKICAg
ICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludHNCZWZvcmVFZGl0aW5nKCk7CiAgICAgfSwKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5q
cwppbmRleCAwYmZhM2JiMGMxZGM1MDQyMzY3M2M4N2EyZDRlNDFkMWIwMTIzY2NmLi43MzJhZmFm
NTI5YTE5MjlmODc0Yzg3ODQ0MDk4YzdlNjgzNGZmYjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtMTE2NiwzMiArMTE2
NiwxOCBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLl9oaWdobGlnaHROdGhNYXRjaGVkUmVxdWVzdChuZXdNYXRjaGVkUmVxdWVzdEluZGV4
LCBmYWxzZSk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9v
cAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAganVtcFRvUHJldmlvdXNT
ZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKGxvb3ApCisgICAganVtcFRvUHJldmlvdXNTZWFyY2hSZXN1
bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fbWF0Y2hlZFJlcXVlc3Rz
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFsb29wICYm
IHRoaXMuX2N1cnJlbnRNYXRjaGVkUmVxdWVzdEluZGV4IDw9IDApCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodE50
aE1hdGNoZWRSZXF1ZXN0KCh0aGlzLl9jdXJyZW50TWF0Y2hlZFJlcXVlc3RJbmRleCArIHRoaXMu
X21hdGNoZWRSZXF1ZXN0cy5sZW5ndGggLSAxKSAlIHRoaXMuX21hdGNoZWRSZXF1ZXN0cy5sZW5n
dGgsIHRydWUpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgLyoqCi0gICAg
ICogQHBhcmFtIHtib29sZWFufSBsb29wCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAgICAg
Ki8KLSAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBU
b05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5f
bWF0Y2hlZFJlcXVlc3RzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgaWYgKCFsb29wICYmIHRoaXMuX2N1cnJlbnRNYXRjaGVkUmVxdWVzdEluZGV4ICsgMSA+PSB0
aGlzLl9tYXRjaGVkUmVxdWVzdHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9oaWdobGlnaHROdGhNYXRjaGVkUmVx
dWVzdCgodGhpcy5fY3VycmVudE1hdGNoZWRSZXF1ZXN0SW5kZXggKyAxKSAlIHRoaXMuX21hdGNo
ZWRSZXF1ZXN0cy5sZW5ndGgsIHRydWUpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAog
CiAgICAgc2VhcmNoQ2FuY2VsZWQ6IGZ1bmN0aW9uKCkKQEAgLTE0MzgsMjAgKzE0MjQsMTQgQEAg
V2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX25l
dHdvcmtMb2dWaWV3LnBlcmZvcm1TZWFyY2goc2VhcmNoUXVlcnkpOwogICAgIH0sCiAKLSAgICAv
KioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKi8KLSAgICBqdW1wVG9QcmV2
aW91c1NlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9QcmV2aW91c1NlYXJj
aFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fbmV0d29ya0xvZ1ZpZXcu
anVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQobG9vcCk7CisgICAgICAgIHRoaXMuX25ldHdvcmtM
b2dWaWV3Lmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KCk7CiAgICAgfSwKIAotICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqLwotICAgIGp1bXBUb05leHRTZWFy
Y2hSZXN1bHQ6IGZ1bmN0aW9uKGxvb3ApCisgICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVu
Y3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fbmV0d29ya0xvZ1ZpZXcuanVtcFRvTmV4dFNl
YXJjaFJlc3VsdChsb29wKTsKKyAgICAgICAgdGhpcy5fbmV0d29ya0xvZ1ZpZXcuanVtcFRvTmV4
dFNlYXJjaFJlc3VsdCgpOwogICAgIH0sCiAKICAgICBzZWFyY2hDYW5jZWxlZDogZnVuY3Rpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKaW5kZXggYTE0
NjQxYzhhZjkwNDgwZDQ0Yzg2MmVmMDhhMGIwYjVjYjNkZjY4My4uZDQwMjIwMmI0NTE5MDE0NzIz
OTViYjJkYzVmODk2NWUzMjBhNDg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9QYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1BhbmVsLmpzCkBAIC0xMDgsMzAgKzEwOCwyMCBAQCBXZWJJbnNwZWN0b3IuUGFuZWwu
cHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5Ci0g
ICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCisgICAgICogQHBhcmFtIHtib29sZWFufSBqdW1w
VG9GaXJzdAogICAgICAqLwotICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5LCBsb29w
KQorICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5LCBqdW1wVG9GaXJzdCkKICAgICB7
CiAgICAgICAgIC8vIENhbGwgc2VhcmNoQ2FuY2VsZWQgc2luY2UgaXQgd2lsbCByZXNldCBldmVy
eXRoaW5nIHdlIG5lZWQgYmVmb3JlIGRvaW5nIGEgbmV3IHNlYXJjaC4KICAgICAgICAgdGhpcy5z
ZWFyY2hDYW5jZWxlZCgpOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xl
YW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmZiBvcGVyYXRpb24gaXMg
c3VjY2Vzc2Z1bAotICAgICAqLwotICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9u
KGxvb3ApCisgICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jv
b2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmZiBvcGVyYXRpb24g
aXMgc3VjY2Vzc2Z1bAotICAgICAqLwotICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBm
dW5jdGlvbihsb29wKQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmlu
ZGV4IDE3YzZlNTMwMGQxM2MxOWI3NzMxNGJlNWZmMmI4ZjdjMzU1NTg0NmQuLmZjNWFhNjRiNTU1
MzU0NmZhYjE2MzBjOGI2Y2EyNDg4NzE4OGRjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTczOSw5ICs3MzksOSBA
QCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AK
KyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGp1bXBUb0ZpcnN0CiAgICAgICovCi0gICAgcGVyZm9y
bVNlYXJjaDogZnVuY3Rpb24ocXVlcnksIGxvb3ApCisgICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rp
b24ocXVlcnksIGp1bXBUb0ZpcnN0KQogICAgIHsKICAgICAgICAgdGhpcy5zZWFyY2hDYW5jZWxl
ZCgpOwogCkBAIC04MTYsMTQgKzgxNiwxMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hDaHVua0ludGVydmFsSWRl
bnRpZmllciA9IGNodW5rSW50ZXJ2YWxJZGVudGlmaWVyOwogICAgIH0sCiAKLSAgICAvKioKLSAg
ICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAg
ICAqLwotICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKGxvb3ApCisgICAganVt
cFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlz
LnNob3dWaWV3IHx8ICF0aGlzLl9zZWFyY2hSZXN1bHRzIHx8ICF0aGlzLl9zZWFyY2hSZXN1bHRz
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICB2YXIgc2hvd0ZpcnN0UmVzdWx0ID0gZmFsc2U7CiAKQEAgLTg1MywxNyArODQ5
LDEyIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIGN1cnJlbnRWaWV3Lmp1bXBUb0ZpcnN0U2VhcmNoUmVzdWx0KCk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIGN1cnJlbnRWaWV3Lmp1bXBUb05leHRTZWFyY2hSZXN1bHQoKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAganVtcFRvUHJl
dmlvdXNTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKGxvb3ApCisgICAganVtcFRvUHJldmlvdXNTZWFy
Y2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zaG93VmlldyB8
fCAhdGhpcy5fc2VhcmNoUmVzdWx0cyB8fCAhdGhpcy5fc2VhcmNoUmVzdWx0cy5sZW5ndGgpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
dmFyIHNob3dMYXN0UmVzdWx0ID0gZmFsc2U7CiAKQEAgLTg5Myw3ICs4ODQsNiBAQCBXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjdXJyZW50Vmll
dy5qdW1wVG9MYXN0U2VhcmNoUmVzdWx0KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGN1
cnJlbnRWaWV3Lmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KCk7Ci0gICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0sCiAKICAgICBfc2VhcmNoYWJsZVZpZXdzOiBmdW5jdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpp
bmRleCA3MWZmMGE1NmQwOTVlMWYyMjg3YTE3NjZmNTkwZTkzOTkxN2ZhMmM1Li40ZDBhNWNkNmE3
NTI4NTQ4NzM5Njk1M2FmMmU2OTZhZjczZjA4NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTYzNyw5ICs2Mzcs
OSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgLyoq
CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5Ci0gICAgICogQHBhcmFtIHtib29sZWFufSBs
b29wCisgICAgICogQHBhcmFtIHtib29sZWFufSBqdW1wVG9GaXJzdAogICAgICAqLwotICAgIHBl
cmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5LCBsb29wKQorICAgIHBlcmZvcm1TZWFyY2g6IGZ1
bmN0aW9uKHF1ZXJ5LCBqdW1wVG9GaXJzdCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Jlc2V0U2Vh
cmNoUmVzdWx0cygpOwogICAgICAgICB2YXIgcmVnZXggPSBXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUuY3JlYXRlU2VhcmNoUmVnZXgocXVlcnkpOwpAQCAtNzQ5LDMyICs3NDksMjIgQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZm9yQWxs
UmVzb3VyY2VUcmVlRWxlbWVudHMoY2FsbGJhY2spOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAg
KiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAq
LwotICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKGxvb3ApCisgICAganVtcFRv
TmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLmN1
cnJlbnRTZWFyY2hNYXRjaGVzKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB2YXIgY3VycmVudFRyZWVFbGVtZW50ID0gdGhpcy5zaWRlYmFy
VHJlZS5zZWxlY3RlZFRyZWVFbGVtZW50OwogICAgICAgICB2YXIgbmV4dFNlYXJjaFJlc3VsdCA9
IHRoaXMuX3NlYXJjaENvbnRyb2xsZXIubmV4dFNlYXJjaFJlc3VsdChjdXJyZW50VHJlZUVsZW1l
bnQpOwogICAgICAgICB0aGlzLl9zaG93U2VhcmNoUmVzdWx0KG5leHRTZWFyY2hSZXN1bHQpOwot
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHti
b29sZWFufSBsb29wCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBqdW1w
VG9QcmV2aW91c1NlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9QcmV2aW91
c1NlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLmN1cnJl
bnRTZWFyY2hNYXRjaGVzKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB2YXIgY3VycmVudFRyZWVFbGVtZW50ID0gdGhpcy5zaWRlYmFyVHJl
ZS5zZWxlY3RlZFRyZWVFbGVtZW50OwogICAgICAgICB2YXIgcHJldmlvdXNTZWFyY2hSZXN1bHQg
PSB0aGlzLl9zZWFyY2hDb250cm9sbGVyLnByZXZpb3VzU2VhcmNoUmVzdWx0KGN1cnJlbnRUcmVl
RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX3Nob3dTZWFyY2hSZXN1bHQocHJldmlvdXNTZWFyY2hS
ZXN1bHQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCiAgICAgX2ZvckFsbFJlc291
cmNlVHJlZUVsZW1lbnRzOiBmdW5jdGlvbihjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggYzJkOGMwMDAwMjNi
YTMzOGQwMTYxMzNlMTE0Mzc1M2E5MzQyMjcxYi4uMzcwN2MxMTE1MjgzOTc1N2YwNWExYjg4ZDg3
ZGY4NjQzOWZlMDk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTU3Myw2ICs1NzMsNyBAQCBXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAvLyBTY3JpcHRzTmF2aWdhdG9yIGRv
ZXMgbm90IG5lZWQgdG8gdXBkYXRlIG9uIEVkaXRvckNsb3NlZC4KICAgICAgICAgdGhpcy5fdXBk
YXRlU2NyaXB0Vmlld1N0YXR1c0Jhckl0ZW1zKCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5zZWFy
Y2hDb250cm9sbGVyLnJlc2V0U2VhcmNoKCk7CiAgICAgfSwKIAogICAgIF9lZGl0b3JTZWxlY3Rl
ZDogZnVuY3Rpb24oZXZlbnQpCkBAIC01ODEsNiArNTgyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3No
b3dGaWxlKHVpU291cmNlQ29kZSk7CiAgICAgICAgIHRoaXMuX25hdmlnYXRvckNvbnRyb2xsZXIu
aGlkZU5hdmlnYXRvck92ZXJsYXkoKTsKICAgICAgICAgc291cmNlRnJhbWUuZm9jdXMoKTsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIucmVzZXRTZWFyY2goKTsKICAgICB9
LAogCiAgICAgX3NjcmlwdFNlbGVjdGVkOiBmdW5jdGlvbihldmVudCkKQEAgLTg3OCw5ICs4ODAs
OSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9v
cAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0ganVtcFRvRmlyc3QKICAgICAgKi8KLSAgICBwZXJm
b3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSwgbG9vcCkKKyAgICBwZXJmb3JtU2VhcmNoOiBmdW5j
dGlvbihxdWVyeSwganVtcFRvRmlyc3QpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3Iuc2Vh
cmNoQ29udHJvbGxlci51cGRhdGVTZWFyY2hNYXRjaGVzQ291bnQoMCwgdGhpcyk7CiAKQEAgLTg5
OSw1NyArOTAxLDQ4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNlYXJj
aENvbnRyb2xsZXIudXBkYXRlU2VhcmNoTWF0Y2hlc0NvdW50KHNlYXJjaE1hdGNoZXMsIHRoaXMp
OwotICAgICAgICAgICAgdmlldy5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KGxvb3ApOwotICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIudXBkYXRlQ3VycmVudE1hdGNoSW5k
ZXgodmlldy5jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXgsIHRoaXMpOworICAgICAgICAgICAgaWYg
KGp1bXBUb0ZpcnN0KSB7CisgICAgICAgICAgICAgICAgdmlldy5qdW1wVG9OZXh0U2VhcmNoUmVz
dWx0KCk7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIudXBk
YXRlQ3VycmVudE1hdGNoSW5kZXgodmlldy5jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXgsIHRoaXMp
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fc2VhcmNoVmlldy5w
ZXJmb3JtU2VhcmNoKHF1ZXJ5LCBmaW5pc2hlZENhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0s
CiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJu
IHtib29sZWFufQotICAgICAqLwotICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9u
KGxvb3ApCisgICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgaWYgKCF0aGlzLl9zZWFyY2hWaWV3KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICh0aGlzLl9zZWFyY2hWaWV3ICE9PSB0
aGlzLnZpc2libGVWaWV3KSB7Ci0gICAgICAgICAgICB0aGlzLnBlcmZvcm1TZWFyY2godGhpcy5f
c2VhcmNoUXVlcnksIGxvb3ApOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgdGhpcy5wZXJmb3JtU2VhcmNoKHRoaXMuX3NlYXJjaFF1ZXJ5LCB0cnVlKTsKKyAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh0aGlzLl9zZWFyY2hWaWV3LnNo
b3dpbmdMYXN0U2VhcmNoUmVzdWx0KCkpIHsKLSAgICAgICAgICAgIGlmICghbG9vcCkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICh0aGlzLl9zZWFyY2hWaWV3LnNo
b3dpbmdMYXN0U2VhcmNoUmVzdWx0KCkpCiAgICAgICAgICAgICB0aGlzLl9zZWFyY2hWaWV3Lmp1
bXBUb0ZpcnN0U2VhcmNoUmVzdWx0KCk7Ci0gICAgICAgIH0gZWxzZQorICAgICAgICBlbHNlCiAg
ICAgICAgICAgICB0aGlzLl9zZWFyY2hWaWV3Lmp1bXBUb05leHRTZWFyY2hSZXN1bHQoKTsKICAg
ICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIudXBkYXRlQ3VycmVudE1hdGNoSW5k
ZXgodGhpcy5fc2VhcmNoVmlldy5jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXgsIHRoaXMpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtib29s
ZWFufSBsb29wCi0gICAgICovCi0gICAganVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQ6IGZ1bmN0
aW9uKGxvb3ApCisgICAganVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIGlmICghdGhpcy5fc2VhcmNoVmlldykKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgICAgICBpZiAodGhpcy5fc2VhcmNoVmlldyAhPT0gdGhpcy52aXNpYmxlVmll
dykgewotICAgICAgICAgICAgdGhpcy5wZXJmb3JtU2VhcmNoKHRoaXMuX3NlYXJjaFF1ZXJ5LCBs
b29wKTsKKyAgICAgICAgICAgIHRoaXMucGVyZm9ybVNlYXJjaCh0aGlzLl9zZWFyY2hRdWVyeSwg
dHJ1ZSk7CiAgICAgICAgICAgICBpZiAodGhpcy5fc2VhcmNoVmlldykKICAgICAgICAgICAgICAg
ICB0aGlzLl9zZWFyY2hWaWV3Lmp1bXBUb0xhc3RTZWFyY2hSZXN1bHQoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh0aGlzLl9zZWFyY2hWaWV3LnNob3dp
bmdGaXJzdFNlYXJjaFJlc3VsdCgpKSB7Ci0gICAgICAgICAgICBpZiAoIWxvb3ApCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAodGhpcy5fc2VhcmNoVmlldy5zaG93
aW5nRmlyc3RTZWFyY2hSZXN1bHQoKSkKICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcuanVt
cFRvTGFzdFNlYXJjaFJlc3VsdCgpOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgZWxzZQogICAg
ICAgICAgICAgdGhpcy5fc2VhcmNoVmlldy5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCgpOwog
ICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVDdXJyZW50TWF0Y2hJ
bmRleCh0aGlzLl9zZWFyY2hWaWV3LmN1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCwgdGhpcyk7CiAg
ICAgfSwKQEAgLTk2OCw3ICs5NjEsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgKi8KICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aDogZnVuY3Rpb24odGV4
dCkKICAgICB7Ci0gICAgICAgIHZhciB2aWV3ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWV9ICovIHRoaXMuX3NlYXJjaFZpZXc7CisgICAgICAgIHZhciB2aWV3ID0gLyoqIEB0
eXBlIHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9ICovIHRoaXMudmlzaWJsZVZpZXc7CiAgICAg
ICAgIHZpZXcucmVwbGFjZVNlYXJjaE1hdGNoV2l0aCh0ZXh0KTsKICAgICB9LAogCkBAIC05Nzgs
NyArOTcxLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICovCiAgICAgcmVwbGFjZUFsbFdpdGg6IGZ1bmN0aW9uKHF1ZXJ5LCB0ZXh0KQogICAgIHsKLSAg
ICAgICAgdmFyIHZpZXcgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0gKi8g
dGhpcy5fc2VhcmNoVmlldzsKKyAgICAgICAgdmFyIHZpZXcgPSAvKiogQHR5cGUge1dlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZX0gKi8gdGhpcy52aXNpYmxlVmlldzsKICAgICAgICAgdmlldy5yZXBs
YWNlQWxsV2l0aChxdWVyeSwgdGV4dCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZWFyY2hDb250cm9sbGVyLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZWFyY2hDb250cm9sbGVyLmpzCmluZGV4IDZmNGVj
Nzk3YzUyY2FkNTVkNGM4NWI0ZTY5NWVhMTA1NGFjMjViMmQuLmI4Y2E2NDI1NTEyM2RlZTIzYTFl
ODhjOTQxZGYzZDhlMzUzZDllNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2VhcmNoQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NlYXJjaENvbnRyb2xsZXIuanMKQEAgLTM3LDggKzM3LDggQEAgV2Vi
SW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fZWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMuX2VsZW1lbnQuY2xh
c3NOYW1lID0gInRvb2xiYXItc2VhcmNoIjsKIAotICAgIHZhciBsYWJlbEVsZW1lbnQgPSB0aGlz
Ll9lbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIik7Ci0gICAgbGFiZWxFbGVtZW50LnRleHRDb250
ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGaW5kIik7CisgICAgdGhpcy5fZmluZExhYmVs
RWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iKTsKKyAgICB0aGlzLl9m
aW5kTGFiZWxFbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGaW5k
Iik7CiAKICAgICB0aGlzLl9zZWFyY2hDb250cm9sRWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuY3Jl
YXRlQ2hpbGQoImRpdiIsICJ0b29sYmFyLXNlYXJjaC1jb250cm9sIik7CiAKQEAgLTY3LDMzICs2
Nyw0OSBAQCBXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxlciA9IGZ1bmN0aW9uKCkKICAgICB0
aGlzLl9yZXBsYWNlQ2hlY2tib3hFbGVtZW50ID0gdGhpcy5fcmVwbGFjZUVsZW1lbnQuY3JlYXRl
Q2hpbGQoImlucHV0Iik7CiAgICAgdGhpcy5fcmVwbGFjZUNoZWNrYm94RWxlbWVudC50eXBlID0g
ImNoZWNrYm94IjsKICAgICB0aGlzLl9yZXBsYWNlQ2hlY2tib3hFbGVtZW50LmlkID0gInNlYXJj
aC1yZXBsYWNlLXRyaWdnZXIiOwotICAgIHRoaXMuX3JlcGxhY2VDaGVja2JveEVsZW1lbnQudGFi
SW5kZXggPSAtMTsKLSAgICB0aGlzLl9yZXBsYWNlQ2hlY2tib3hFbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUmVwbGFjZVZpc2liaWxpdHkuYmluZCh0aGlzKSwg
ZmFsc2UpOworICAgIHRoaXMuX3JlcGxhY2VDaGVja2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCB0aGlzLl91cGRhdGVSZXBsYWNlRGV0YWlsc1Zpc2liaWxpdHkuYmluZCh0aGlz
KSwgZmFsc2UpOwogCiAgICAgdGhpcy5fcmVwbGFjZUxhYmVsRWxlbWVudCA9IHRoaXMuX3JlcGxh
Y2VFbGVtZW50LmNyZWF0ZUNoaWxkKCJsYWJlbCIpOwogICAgIHRoaXMuX3JlcGxhY2VMYWJlbEVs
ZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlcGxhY2UiKTsKICAg
ICB0aGlzLl9yZXBsYWNlTGFiZWxFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9yIiwgInNlYXJjaC1y
ZXBsYWNlLXRyaWdnZXIiKTsKIAotICAgIHRoaXMuX3JlcGxhY2VEZXRhaWxzRWxlbWVudCA9IHRo
aXMuX3JlcGxhY2VFbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgImhpZGRlbiIpOworICAgIHRo
aXMuX2dhcEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIik7CiAKLSAg
ICB0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50ID0gdGhpcy5fcmVwbGFjZURldGFpbHNFbGVtZW50
LmNyZWF0ZUNoaWxkKCJpbnB1dCIsICJzZWFyY2gtcmVwbGFjZSB0b29sYmFyLXJlcGxhY2UtY29u
dHJvbCIpOwotICAgIHRoaXMuX3JlcGxhY2VJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
a2V5ZG93biIsIHRoaXMuX29uS2V5RG93bi5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICB0aGlzLl9w
cmV2QnV0dG9uRWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoImJ1dHRvbiIsICJo
aWRkZW4iKTsKKyAgICB0aGlzLl9wcmV2QnV0dG9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiUHJldmlvdXMiKTsKKyAgICB0aGlzLl9wcmV2QnV0dG9uRWxlbWVu
dC5kaXNhYmxlZCA9IHRydWU7CisgICAgdGhpcy5fcHJldkJ1dHRvbkVsZW1lbnQudGFiSW5kZXgg
PSAtMTsKKyAgICB0aGlzLl9wcmV2QnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuX29uUHJldkJ1dHRvblNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAgICB0
aGlzLl9yZXBsYWNlQnV0dG9uRWxlbWVudCA9IHRoaXMuX3JlcGxhY2VEZXRhaWxzRWxlbWVudC5j
cmVhdGVDaGlsZCgiYnV0dG9uIik7Ci0gICAgdGhpcy5fcmVwbGFjZUJ1dHRvbkVsZW1lbnQudGV4
dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlcGxhY2UiKTsKLSAgICB0aGlzLl9y
ZXBsYWNlQnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3JlcGxh
Y2UuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuX25leHRCdXR0b25FbGVtZW50ID0gdGhp
cy5fZWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIiwgImhpZGRlbiIpOworICAgIHRoaXMuX25l
eHRCdXR0b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOZXh0
Iik7CisgICAgdGhpcy5fbmV4dEJ1dHRvbkVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOworICAgIHRo
aXMuX25leHRCdXR0b25FbGVtZW50LnRhYkluZGV4ID0gLTE7CisgICAgdGhpcy5fbmV4dEJ1dHRv
bkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9vbk5leHRCdXR0b25TZWFy
Y2guYmluZCh0aGlzKSwgZmFsc2UpOworCisgICAgdmFyIGNsb3NlQnV0dG9uRWxlbWVudCA9IHRo
aXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAidG9vbGJhci1zZWFyY2gtY2xvc2UtYnV0
dG9uIik7CisgICAgY2xvc2VCdXR0b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJcdTAwRDciKTsKKyAgICBjbG9zZUJ1dHRvbkVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLmNhbmNlbFNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7CisKKyAg
ICB0aGlzLl9yZXBsYWNlRGV0YWlsc0VsZW1lbnQgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxk
KCJkaXYiLCAiaGlkZGVuIik7CisgICAgdGhpcy5fcmVwbGFjZURldGFpbHNFbGVtZW50LmNyZWF0
ZUNoaWxkKCJzcGFuIikudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlcGxh
Y2UiKTsKIAotICAgIHRoaXMuX3NraXBCdXR0b25FbGVtZW50ID0gdGhpcy5fcmVwbGFjZURldGFp
bHNFbGVtZW50LmNyZWF0ZUNoaWxkKCJidXR0b24iKTsKLSAgICB0aGlzLl9za2lwQnV0dG9uRWxl
bWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2tpcCIpOwotICAgIHRo
aXMuX3NraXBCdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fb25O
ZXh0QnV0dG9uU2VhcmNoLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLl9yZXBsYWNlSW5w
dXRFbGVtZW50ID0gdGhpcy5fcmVwbGFjZURldGFpbHNFbGVtZW50LmNyZWF0ZUNoaWxkKCJpbnB1
dCIsICJzZWFyY2gtcmVwbGFjZSB0b29sYmFyLXJlcGxhY2UtY29udHJvbCIpOworICAgIHRoaXMu
X3JlcGxhY2VJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX29u
S2V5RG93bi5iaW5kKHRoaXMpLCB0cnVlKTsKIAogICAgIHRoaXMuX3JlcGxhY2VBbGxCdXR0b25F
bGVtZW50ID0gdGhpcy5fcmVwbGFjZURldGFpbHNFbGVtZW50LmNyZWF0ZUNoaWxkKCJidXR0b24i
KTsKICAgICB0aGlzLl9yZXBsYWNlQWxsQnV0dG9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiUmVwbGFjZSBBbGwiKTsKICAgICB0aGlzLl9yZXBsYWNlQWxsQnV0
dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3JlcGxhY2VBbGwuYmlu
ZCh0aGlzKSwgZmFsc2UpOwogCi0gICAgdmFyIGNsb3NlQnV0dG9uRWxlbWVudCA9IHRoaXMuX2Vs
ZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiZHJhd2VyLWhlYWRlci1jbG9zZS1idXR0b24iKTsK
LSAgICBjbG9zZUJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlx1MDBENyIpOwotICAgIGNsb3NlQnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIHRoaXMuY2FuY2VsU2VhcmNoLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLl9y
ZXBsYWNlQnV0dG9uRWxlbWVudCA9IHRoaXMuX3JlcGxhY2VEZXRhaWxzRWxlbWVudC5jcmVhdGVD
aGlsZCgiYnV0dG9uIik7CisgICAgdGhpcy5fcmVwbGFjZUJ1dHRvbkVsZW1lbnQudGV4dENvbnRl
bnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlcGxhY2UiKTsKKyAgICB0aGlzLl9yZXBsYWNl
QnV0dG9uRWxlbWVudC5kaXNhYmxlZCA9IHRydWU7CisgICAgdGhpcy5fcmVwbGFjZUJ1dHRvbkVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9yZXBsYWNlLmJpbmQodGhpcywg
ZmFsc2UpLCBmYWxzZSk7CisKKyAgICB0aGlzLl9yZXBsYWNlQW5kRmluZEJ1dHRvbkVsZW1lbnQg
PSB0aGlzLl9yZXBsYWNlRGV0YWlsc0VsZW1lbnQuY3JlYXRlQ2hpbGQoImJ1dHRvbiIpOworICAg
IHRoaXMuX3JlcGxhY2VBbmRGaW5kQnV0dG9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmVwbGFjZSAmIEZpbmQiKTsKKyAgICB0aGlzLl9yZXBsYWNlQW5kRmlu
ZEJ1dHRvbkVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOworICAgIHRoaXMuX3JlcGxhY2VBbmRGaW5k
QnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3JlcGxhY2UuYmlu
ZCh0aGlzLCB0cnVlKSwgZmFsc2UpOwogfQogCiBXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxl
ci5wcm90b3R5cGUgPSB7CkBAIC0xMTksMTAgKzEzNSwxNSBAQCBXZWJJbnNwZWN0b3IuU2VhcmNo
Q29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5fc2VhcmNoSXNWaXNp
YmxlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkZWxldGUgdGhpcy5fc2VhcmNoSXNW
aXNpYmxlOwotICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKCIiLCBmYWxzZSwgZmFsc2UsIGZh
bHNlKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuc2V0Rm9vdGVyRWxlbWVu
dChudWxsKTsKLSAgICAgICAgdGhpcy5fcmVwbGFjZUNoZWNrYm94RWxlbWVudC5jaGVja2VkID0g
ZmFsc2U7Ci0gICAgICAgIHRoaXMuX3RvZ2dsZVJlcGxhY2VWaXNpYmlsaXR5KCk7CisgICAgICAg
IHRoaXMucmVzZXRTZWFyY2goKTsKKyAgICB9LAorCisgICAgcmVzZXRTZWFyY2g6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goIiIsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UpOworICAgICAgICB0aGlzLl91cGRhdGVSZXBsYWNlVmlzaWJpbGl0eSgpOworICAgICAg
ICB0aGlzLl9tYXRjaGVzRWxlbWVudC50ZXh0Q29udGVudCA9ICIiOwogICAgIH0sCiAKICAgICBk
aXNhYmxlU2VhcmNoVW50aWxFeHBsaWNpdEFjdGlvbjogZnVuY3Rpb24oZXZlbnQpCkBAIC0xNjMs
MTAgKzE4NCw5IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICB2YXIgY3VycmVudFBhbmVsID0gV2ViSW5zcGVjdG9yLmluc3BlY3Rv
clZpZXcuY3VycmVudFBhbmVsKCk7CiAKICAgICAgICAgICAgICAgICBpZiAoaXNNYWMgJiYgZXZl
bnQubWV0YUtleSAmJiAhZXZlbnQuY3RybEtleSAmJiAhZXZlbnQuYWx0S2V5KSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGN1cnJlbnRQYW5lbC5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFuZWwuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1
bHQoKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UGFuZWwuanVtcFRv
TmV4dFNlYXJjaFJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5
KQorICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhbmVsLmp1bXBUb1ByZXZpb3VzU2Vh
cmNoUmVzdWx0KCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgIGN1cnJlbnRQYW5lbC5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KCk7CiAgICAgICAgICAg
ICAgICAgICAgIGV2ZW50LmNvbnN1bWUodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtMTc4LDYgKzE5OCwxMCBAQCBXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxl
ci5wcm90b3R5cGUgPSB7CiAKICAgICBfdXBkYXRlU2VhcmNoTmF2aWdhdGlvbkJ1dHRvblN0YXRl
OiBmdW5jdGlvbihlbmFibGVkKQogICAgIHsKKyAgICAgICAgdGhpcy5fcmVwbGFjZUJ1dHRvbkVs
ZW1lbnQuZGlzYWJsZWQgPSAhZW5hYmxlZDsKKyAgICAgICAgdGhpcy5fcmVwbGFjZUFuZEZpbmRC
dXR0b25FbGVtZW50LmRpc2FibGVkID0gIWVuYWJsZWQ7CisgICAgICAgIHRoaXMuX3ByZXZCdXR0
b25FbGVtZW50LmRpc2FibGVkID0gIWVuYWJsZWQ7CisgICAgICAgIHRoaXMuX25leHRCdXR0b25F
bGVtZW50LmRpc2FibGVkID0gIWVuYWJsZWQ7CiAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3Bl
Y3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpOwogICAgICAgICBpZiAoZW5hYmxlZCkg
ewogICAgICAgICAgICAgdGhpcy5fc2VhcmNoTmF2aWdhdGlvblByZXZFbGVtZW50LmFkZFN0eWxl
Q2xhc3MoImVuYWJsZWQiKTsKQEAgLTIxMSwxMCArMjM1LDEzIEBAIFdlYkluc3BlY3Rvci5TZWFy
Y2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICBfdXBkYXRlUmVwbGFjZVZpc2liaWxpdHk6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5pbnNw
ZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpOwotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4cGVy
aW1lbnRzU2V0dGluZ3Muc2VhcmNoUmVwbGFjZS5pc0VuYWJsZWQoKSAmJiBwYW5lbC5jYW5TZWFy
Y2hBbmRSZXBsYWNlKCkpCisgICAgICAgIGlmIChwYW5lbCAmJiBwYW5lbC5jYW5TZWFyY2hBbmRS
ZXBsYWNlKCkpCiAgICAgICAgICAgICB0aGlzLl9yZXBsYWNlRWxlbWVudC5yZW1vdmVTdHlsZUNs
YXNzKCJoaWRkZW4iKTsKLSAgICAgICAgZWxzZQorICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IHRoaXMuX3JlcGxhY2VFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICAg
ICAgdGhpcy5fcmVwbGFjZUNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gZmFsc2U7CisgICAgICAg
ICAgICB0aGlzLl91cGRhdGVSZXBsYWNlRGV0YWlsc1Zpc2liaWxpdHkoKTsKKyAgICAgICAgfQog
ICAgIH0sCiAKICAgICBfb25TZWFyY2hGaWVsZE1hbnVhbEZvY3VzOiBmdW5jdGlvbihldmVudCkK
QEAgLTIzNCwxMiArMjYxLDggQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90
eXBlID0gewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKGlzRW50ZXJLZXkoZXZlbnQpKSB7Ci0gICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09
PSB0aGlzLl9zZWFyY2hJbnB1dEVsZW1lbnQpCi0gICAgICAgICAgICAgICAgdGhpcy5fcGVyZm9y
bVNlYXJjaChldmVudC50YXJnZXQudmFsdWUsIHRydWUsIGV2ZW50LnNoaWZ0S2V5LCB0cnVlKTsK
LSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fcmVwbGFjZUlucHV0
RWxlbWVudCkKLSAgICAgICAgICAgICAgICB0aGlzLl9yZXBsYWNlKCk7Ci0gICAgICAgIH0KKyAg
ICAgICAgaWYgKGlzRW50ZXJLZXkoZXZlbnQpKQorICAgICAgICAgICAgdGhpcy5fcGVyZm9ybVNl
YXJjaChldmVudC50YXJnZXQudmFsdWUsIHRydWUsIGV2ZW50LnNoaWZ0S2V5LCB0cnVlKTsKICAg
ICB9LAogCiAgICAgX29uSW5wdXQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMjQ5LDYgKzI3Miw4IEBA
IFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9vbk5l
eHRCdXR0b25TZWFyY2g6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlz
Ll9zZWFyY2hOYXZpZ2F0aW9uTmV4dEVsZW1lbnQuaGFzU3R5bGVDbGFzcygiZW5hYmxlZCIpKQor
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAvLyBTaW11bGF0ZSBuZXh0IHNlYXJjaCBvbiBz
ZWFyY2gtbmF2aWdhdGlvbi1idXR0b24gY2xpY2suCiAgICAgICAgIHRoaXMuX3BlcmZvcm1TZWFy
Y2godGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7CiAg
ICAgICAgIHRoaXMuX3NlYXJjaElucHV0RWxlbWVudC5mb2N1cygpOwpAQCAtMjU2LDYgKzI4MSw4
IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9v
blByZXZCdXR0b25TZWFyY2g6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKKyAgICAgICAgaWYgKCF0
aGlzLl9zZWFyY2hOYXZpZ2F0aW9uUHJldkVsZW1lbnQuaGFzU3R5bGVDbGFzcygiZW5hYmxlZCIp
KQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAvLyBTaW11bGF0ZSBwcmV2aW91cyBzZWFy
Y2ggb24gc2VhcmNoLW5hdmlnYXRpb24tYnV0dG9uIGNsaWNrLgogICAgICAgICB0aGlzLl9wZXJm
b3JtU2VhcmNoKHRoaXMuX3NlYXJjaElucHV0RWxlbWVudC52YWx1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1
ZSk7CiAgICAgICAgIHRoaXMuX3NlYXJjaElucHV0RWxlbWVudC5mb2N1cygpOwpAQCAtMjY1LDkg
KzI5Miw5IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGZvcmNl
U2VhcmNoCiAgICAgICogQHBhcmFtIHtib29sZWFufSBpc0JhY2t3YXJkU2VhcmNoCi0gICAgICog
QHBhcmFtIHtib29sZWFufSBsb29wCisgICAgICogQHBhcmFtIHtib29sZWFufSBqdW1wVG9GaXJz
dAogICAgICAqLwotICAgIF9wZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSwgZm9yY2VTZWFy
Y2gsIGlzQmFja3dhcmRTZWFyY2gsIGxvb3ApCisgICAgX3BlcmZvcm1TZWFyY2g6IGZ1bmN0aW9u
KHF1ZXJ5LCBmb3JjZVNlYXJjaCwgaXNCYWNrd2FyZFNlYXJjaCwganVtcFRvRmlyc3QpCiAgICAg
ewogICAgICAgICBpZiAoIXF1ZXJ5IHx8ICFxdWVyeS5sZW5ndGgpIHsKICAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLl9jdXJyZW50UXVlcnk7CkBAIC0yNzYsNyArMzAzLDcgQEAgV2ViSW5zcGVjdG9y
LlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHZhciBwYW5l
bCA9IFdlYkluc3BlY3Rvci5wYW5lbHNbcGFuZWxOYW1lXTsKICAgICAgICAgICAgICAgICB2YXIg
aGFkQ3VycmVudFF1ZXJ5ID0gISFwYW5lbC5jdXJyZW50UXVlcnk7CiAgICAgICAgICAgICAgICAg
ZGVsZXRlIHBhbmVsLmN1cnJlbnRRdWVyeTsKLSAgICAgICAgICAgICAgICBpZiAoaGFkQ3VycmVu
dFF1ZXJ5ICYmIHBhbmVsLnNlYXJjaENhbmNlbGVkKQorICAgICAgICAgICAgICAgIGlmIChoYWRD
dXJyZW50UXVlcnkpCiAgICAgICAgICAgICAgICAgICAgIHBhbmVsLnNlYXJjaENhbmNlbGVkKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLl91cGRhdGVTZWFyY2hNYXRjaGVzQ291
bnRBbmRDdXJyZW50TWF0Y2hJbmRleCgwLCAtMSk7CkBAIC0yODksOSArMzE2LDkgQEAgV2ViSW5z
cGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgLy8gc2Vh
cmNoIHJlc3VsdCBmb3IgYSBnb29kIHVzZXIgZXhwZXJpZW5jZS4KICAgICAgICAgICAgIGlmIChm
b3JjZVNlYXJjaCkgewogICAgICAgICAgICAgICAgIGlmICghaXNCYWNrd2FyZFNlYXJjaCkKLSAg
ICAgICAgICAgICAgICAgICAgY3VycmVudFBhbmVsLmp1bXBUb05leHRTZWFyY2hSZXN1bHQobG9v
cCk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYW5lbC5qdW1wVG9OZXh0U2VhcmNoUmVz
dWx0KCk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNCYWNrd2FyZFNlYXJjaCkKLSAgICAg
ICAgICAgICAgICAgICAgY3VycmVudFBhbmVsLmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KGxv
b3ApOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFuZWwuanVtcFRvUHJldmlvdXNTZWFy
Y2hSZXN1bHQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQpAQCAtMzAyLDMxICszMjksNTAgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLl9jdXJyZW50UXVlcnkgPSBxdWVyeTsKIAogICAgICAg
ICBjdXJyZW50UGFuZWwuY3VycmVudFF1ZXJ5ID0gcXVlcnk7Ci0gICAgICAgIGN1cnJlbnRQYW5l
bC5wZXJmb3JtU2VhcmNoKHF1ZXJ5LCBsb29wKTsKKyAgICAgICAgY3VycmVudFBhbmVsLnBlcmZv
cm1TZWFyY2gocXVlcnksIGp1bXBUb0ZpcnN0KTsKICAgICB9LAogCi0gICAgX3RvZ2dsZVJlcGxh
Y2VWaXNpYmlsaXR5OiBmdW5jdGlvbigpCisgICAgX3VwZGF0ZVJlcGxhY2VEZXRhaWxzVmlzaWJp
bGl0eTogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9zZWFyY2hJc1Zpc2li
bGUpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICh0aGlzLl9yZXBsYWNlQ2hlY2ti
b3hFbGVtZW50LmNoZWNrZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuYWRkU3R5bGVD
bGFzcygidG9vbGJhci1zZWFyY2gtcmVwbGFjZSIpOwogICAgICAgICAgICAgdGhpcy5fcmVwbGFj
ZURldGFpbHNFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICAgICAg
dGhpcy5fcHJldkJ1dHRvbkVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7CisgICAg
ICAgICAgICB0aGlzLl9uZXh0QnV0dG9uRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4i
KTsKKyAgICAgICAgICAgIHRoaXMuX3JlcGxhY2VEZXRhaWxzRWxlbWVudC5pbnNlcnRCZWZvcmUo
dGhpcy5fcmVwbGFjZUVsZW1lbnQsIHRoaXMuX3JlcGxhY2VBbGxCdXR0b25FbGVtZW50KTsKKyAg
ICAgICAgICAgIHRoaXMuX2ZpbmRMYWJlbEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIm1hcmdp
bi1yaWdodCIsICh0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50LnRvdGFsT2Zmc2V0TGVmdCgpIC0g
dGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LnRvdGFsT2Zmc2V0TGVmdCgpICsgMSkgKyAicHgiKTsK
KyAgICAgICAgICAgIHRoaXMuX2dhcEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIm1hcmdpbi1y
aWdodCIsICh0aGlzLl9yZXBsYWNlQWxsQnV0dG9uRWxlbWVudC50b3RhbE9mZnNldExlZnQoKSAt
IHRoaXMuX3ByZXZCdXR0b25FbGVtZW50LnRvdGFsT2Zmc2V0TGVmdCgpKSArICJweCIpOwogICAg
ICAgICAgICAgdGhpcy5fcmVwbGFjZUlucHV0RWxlbWVudC5mb2N1cygpOwotICAgICAgICB9IGVs
c2UKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQucmVtb3ZlU3R5
bGVDbGFzcygidG9vbGJhci1zZWFyY2gtcmVwbGFjZSIpOwogICAgICAgICAgICAgdGhpcy5fcmVw
bGFjZURldGFpbHNFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICAgICAg
dGhpcy5fcHJldkJ1dHRvbkVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CisgICAgICAg
ICAgICB0aGlzLl9uZXh0QnV0dG9uRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKKyAg
ICAgICAgICAgIHRoaXMuX2VsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMuX3JlcGxhY2VFbGVtZW50
LCB0aGlzLl9wcmV2QnV0dG9uRWxlbWVudCk7CisgICAgICAgICAgICB0aGlzLl9maW5kTGFiZWxF
bGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJtYXJnaW4tcmlnaHQiKTsKKyAgICAgICAgICAg
IHRoaXMuX2dhcEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoIm1hcmdpbi1yaWdodCIpOwor
ICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LnNldEZvb3RlckVs
ZW1lbnQodGhpcy5fZWxlbWVudCk7CiAgICAgfSwKIAotICAgIF9yZXBsYWNlOiBmdW5jdGlvbigp
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtib29sZWFufSBmaW5kTmV4dAorICAgICAqLworICAg
IF9yZXBsYWNlOiBmdW5jdGlvbihmaW5kTmV4dCkKICAgICB7CiAgICAgICAgIHZhciBjdXJyZW50
UGFuZWwgPSBXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwoKTsKICAgICAg
ICAgY3VycmVudFBhbmVsLnJlcGxhY2VTZWxlY3Rpb25XaXRoKHRoaXMuX3JlcGxhY2VJbnB1dEVs
ZW1lbnQudmFsdWUpOwogICAgICAgICB2YXIgcXVlcnkgPSB0aGlzLl9jdXJyZW50UXVlcnk7CiAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50UXVlcnk7Ci0gICAgICAgIHRoaXMuX3BlcmZvcm1T
ZWFyY2gocXVlcnksIHRydWUsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIHRoaXMuX3BlcmZvcm1T
ZWFyY2gocXVlcnksIHRydWUsIGZhbHNlLCBmaW5kTmV4dCk7CiAgICAgfSwKIAogICAgIF9yZXBs
YWNlQWxsOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgY3VycmVudFBhbmVsID0gV2Vi
SW5zcGVjdG9yLmluc3BlY3RvclZpZXcuY3VycmVudFBhbmVsKCk7Ci0gICAgICAgIGN1cnJlbnRQ
YW5lbC5yZXBsYWNlQWxsV2l0aCh0aGlzLl9jdXJyZW50UXVlcnksIHRoaXMuX3JlcGxhY2VJbnB1
dEVsZW1lbnQudmFsdWUpOworICAgICAgICBjdXJyZW50UGFuZWwucmVwbGFjZUFsbFdpdGgodGhp
cy5fc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVlLCB0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50LnZh
bHVlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NldHRpbmdzLmpzCmluZGV4IGJhMGIyNjZhMjM3ZTMyNjEwODExZTgxNjNiYTVmMjYyYTQ1N2Y0
OTYuLjk2M2QxZjBlYTI1MDExN2MxOWI2OTY1NjFkMWI5NWUwZGI0MWU5MmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpAQCAtMTg4LDcgKzE4
OCw2IEBAIFdlYkluc3BlY3Rvci5FeHBlcmltZW50c1NldHRpbmdzID0gZnVuY3Rpb24oKQogICAg
IHRoaXMubGl2ZU5hdGl2ZU1lbW9yeUNoYXJ0ID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgibGl2
ZU5hdGl2ZU1lbW9yeUNoYXJ0IiwgIkxpdmUgbmF0aXZlIG1lbW9yeSBjaGFydCIpOwogICAgIHRo
aXMuZmlsZVN5c3RlbUluc3BlY3Rpb24gPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJmaWxlU3lz
dGVtSW5zcGVjdGlvbiIsICJGaWxlU3lzdGVtIGluc3BlY3Rpb24iKTsKICAgICB0aGlzLm1haW5U
aHJlYWRNb25pdG9yaW5nID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgibWFpblRocmVhZE1vbml0
b3JpbmciLCAiU2hvdyBDUFUgYWN0aXZpdHkgaW4gVGltZWxpbmUiKTsKLSAgICB0aGlzLnNlYXJj
aFJlcGxhY2UgPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJzZWFyY2hSZXBsYWNlIiwgIlNlYXJj
aCAvIFJlcGxhY2UiKTsKIAogICAgIHRoaXMuX2NsZWFuVXBTZXR0aW5nKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCBh
ODk5NGY5ZDc3NGEyZGRkMDMyOWMzYTc0YzA2YWVmMzRkZGI0MGJiLi5hMzVkMzRiNDQ1YTY4MzY5
NWMzOWQxNjFmNDFmZTEyM2E1MzE4ZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTI3MCwxMiArMjcwLDkgQEAgV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5faW5uZXJTZXRT
ZWxlY3Rpb25JZk5lZWRlZCgpOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jv
b2xlYW59IHVzZXJJbnB1dAotICAgICAqLwotICAgIGJlZm9yZVRleHRDaGFuZ2VkOiBmdW5jdGlv
bih1c2VySW5wdXQpCisgICAgYmVmb3JlVGV4dENoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIGlmICh1c2VySW5wdXQpCisgICAgICAgIGlmICghdGhpcy5faXNSZXBsYWNpbmcpCiAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci5jYW5jZWxTZWFyY2goKTsK
ICAgICAgICAgdGhpcy5jbGVhck1lc3NhZ2VzKCk7CiAgICAgfSwKQEAgLTM1NSw3ICszNTIsNyBA
QCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBp
ZiAoc2hpZnRUb0luZGV4KQogICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHMgPSB0
aGlzLl9zZWFyY2hSZXN1bHRzLnJvdGF0ZShzaGlmdFRvSW5kZXgpOwotICAgICAgICAgICAgCisK
ICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMsIHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoKTsK
ICAgICAgICAgfQogCkBAIC00MzEsMTcgKzQyOCwxNiBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHJlcGxhY2VTZWFyY2hNYXRjaFdpdGg6IGZ1
bmN0aW9uKHRleHQpCiAgICAgewotICAgICAgICB0aGlzLmJlZm9yZVRleHRDaGFuZ2VkKGZhbHNl
KTsKLQogICAgICAgICB2YXIgcmFuZ2UgPSB0aGlzLl9zZWFyY2hSZXN1bHRzW3RoaXMuX2N1cnJl
bnRTZWFyY2hSZXN1bHRJbmRleF07CiAgICAgICAgIGlmICghcmFuZ2UpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IubWFya0FuZFJldmVhbFJhbmdlKG51bGwp
OwotICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlzLl90ZXh0TW9kZWwuZWRpdFJhbmdlKHJhbmdl
LCB0ZXh0KTsKLSAgICAgICAgdGhpcy5hZnRlclRleHRDaGFuZ2VkKHJhbmdlLCBuZXdSYW5nZSk7
CiAKLSAgICAgICAgLy8gQ29sbGFwc2UgY3VycmVudCBtYXRjaCBzbyB0aGF0IHdlIGRvbid0IHJl
cGxhY2UgdGhpbmdzIHR3aWNlLiAKLSAgICAgICAgdGhpcy5fdGV4dEVkaXRvci5tYXJrQW5kUmV2
ZWFsUmFuZ2UobmV3UmFuZ2UuY29sbGFwc2VUb0VuZCgpKTsKKyAgICAgICAgdGhpcy5faXNSZXBs
YWNpbmcgPSB0cnVlOworICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlzLl90ZXh0RWRpdG9yLmVk
aXRSYW5nZShyYW5nZSwgdGV4dCk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9pc1JlcGxhY2luZzsK
KworICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnNldFNlbGVjdGlvbihuZXdSYW5nZSk7CiAgICAg
fSwKIAogICAgIC8qKgpAQCAtNDUwLDEyICs0NDYsMTUgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZXBsYWNlQWxsV2l0aDogZnVuY3Rpb24o
cXVlcnksIHJlcGxhY2VtZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5iZWZvcmVUZXh0Q2hhbmdl
ZChmYWxzZSk7CisgICAgICAgIHRoaXMuX3RleHRFZGl0b3IubWFya0FuZFJldmVhbFJhbmdlKG51
bGwpOworCiAgICAgICAgIHZhciB0ZXh0ID0gdGhpcy5fdGV4dE1vZGVsLnRleHQoKTsKICAgICAg
ICAgdmFyIHJhbmdlID0gdGhpcy5fdGV4dE1vZGVsLnJhbmdlKCk7CiAgICAgICAgIHRleHQgPSB0
ZXh0LnJlcGxhY2UoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLmNyZWF0ZVNlYXJjaFJlZ2V4KHF1
ZXJ5LCAiZyIpLCByZXBsYWNlbWVudCk7Ci0gICAgICAgIHZhciBuZXdSYW5nZSA9IHRoaXMuX3Rl
eHRNb2RlbC5lZGl0UmFuZ2UocmFuZ2UsIHRleHQpOwotICAgICAgICB0aGlzLmFmdGVyVGV4dENo
YW5nZWQocmFuZ2UsIG5ld1JhbmdlKTsKKworICAgICAgICB0aGlzLl9pc1JlcGxhY2luZyA9IHRy
dWU7CisgICAgICAgIHRoaXMuX3RleHRFZGl0b3IuZWRpdFJhbmdlKHJhbmdlLCB0ZXh0KTsKKyAg
ICAgICAgZGVsZXRlIHRoaXMuX2lzUmVwbGFjaW5nOwogICAgIH0sCiAKICAgICBfY29sbGVjdFJl
Z2V4TWF0Y2hlczogZnVuY3Rpb24ocmVnZXhPYmplY3QpCkBAIC02NDUsNyArNjQ0LDcgQEAgV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JEZWxlZ2F0ZUZvclNvdXJjZUZyYW1lID0gZnVuY3Rpb24oc291
cmNlRnJhbWUpCiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckRlbGVnYXRlRm9yU291cmNlRnJhbWUu
cHJvdG90eXBlID0gewogICAgIGJlZm9yZVRleHRDaGFuZ2VkOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZS5iZWZvcmVUZXh0Q2hhbmdlZCh0cnVlKTsKKyAgICAg
ICAgdGhpcy5fc291cmNlRnJhbWUuYmVmb3JlVGV4dENoYW5nZWQoKTsKICAgICB9LAogCiAgICAg
YWZ0ZXJUZXh0Q2hhbmdlZDogZnVuY3Rpb24ob2xkUmFuZ2UsIG5ld1JhbmdlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9yLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9yLmpzCmluZGV4IDljYTgy
NGQxZTM0MzRmNDZlYjk2YjcwNTkyNmJhMDBkZTgwZDY0YWIuLmZhNmY0ZDIwOTY1MmQ2MTIwZDE0
M2NhYjQzOWU1YmEwYTVmZmM2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RleHRFZGl0b3IuanMKQEAgLTIzMiw2ICsyMzIsMjAgQEAgV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91cGRhdGVQYW5lbE9mZnNl
dHMoKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4
dFJhbmdlfSByYW5nZQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0CisgICAgICogQHJldHVy
biB7V2ViSW5zcGVjdG9yLlRleHRSYW5nZX0KKyAgICAgKi8KKyAgICBlZGl0UmFuZ2U6IGZ1bmN0
aW9uKHJhbmdlLCB0ZXh0KQorICAgIHsKKyAgICAgICAgdGhpcy5fZW50ZXJJbnRlcm5hbFRleHRD
aGFuZ2VNb2RlKCk7CisgICAgICAgIHRoaXMuX3RleHRNb2RlbC5tYXJrVW5kb2FibGVTdGF0ZSgp
OworICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlzLl90ZXh0TW9kZWwuZWRpdFJhbmdlKHJhbmdl
LCB0ZXh0KTsKKyAgICAgICAgdGhpcy5fZXhpdEludGVybmFsVGV4dENoYW5nZU1vZGUocmFuZ2Us
IG5ld1JhbmdlKTsKKyAgICAgICAgcmV0dXJuIG5ld1JhbmdlOworICAgIH0sCisKICAgICBfZW50
ZXJJbnRlcm5hbFRleHRDaGFuZ2VNb2RlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlz
Ll9pbnRlcm5hbFRleHRDaGFuZ2VNb2RlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCBmOGZhYWUxNWI2ZGI5Y2U5MzA2
MjRjYjc2MTBjMjZjNDMxMDQ3YzkyLi5jZDU2NDEzMzRhNjU0ZDgyNzhlOTk5MzkyMTJkNDA5N2Iz
ZDc5NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuY3NzCkBAIC0yNzMsNiArMjczLDkgQEAgYm9keS5kZXRhY2hlZC5wbGF0Zm9ybS1tYWMt
c25vd2xlb3BhcmQgI3Rvb2xiYXItZHJvcGRvd24gewogICAgIHRvcDogMXB4OwogfQogCisudG9v
bGJhci1zZWFyY2gtcmVwbGFjZSAuc2VhcmNoLXJlcGxhY2UgeworICAgIHdpZHRoOiAxNDhweDsK
K30KIC5zZWFyY2gtcmVwbGFjZTpmb2N1cyB7CiAgICAgb3V0bGluZTogbm9uZTsKIH0KQEAgLTMw
MCwxNSArMzAzLDM1IEBAIGJvZHkuZGV0YWNoZWQucGxhdGZvcm0tbWFjLXNub3dsZW9wYXJkICN0
b29sYmFyLWRyb3Bkb3duIHsKIH0KIAogLnRvb2xiYXItc2VhcmNoIHsKLSAgICBsaW5lLWhlaWdo
dDogMTlweDsKKyAgICBsaW5lLWhlaWdodDogMThweDsKICAgICBoZWlnaHQ6IDIycHg7CiB9CiAK
Ky50b29sYmFyLXNlYXJjaC1yZXBsYWNlIHsKKyAgICBoZWlnaHQ6IDQ0cHg7Cit9CisKKy50b29s
YmFyLXNlYXJjaC1jbG9zZS1idXR0b24geworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgbW9ub3Nw
YWNlOworICAgIHBhZGRpbmc6IDNweCA4cHg7CisgICAgZm9udC1zaXplOiAxNHB4OworICAgIGNv
bG9yOiByZ2IoMTAwLCAxMDAsIDEwMCk7CisgICAgZmxvYXQ6IHJpZ2h0OworfQorCisudG9vbGJh
ci1zZWFyY2gtY2xvc2UtYnV0dG9uOmhvdmVyIHsKKyAgICBjb2xvcjogcmdiKDMwLCAzMCwgMzAp
OworfQorCisudG9vbGJhci1zZWFyY2gtY2xvc2UtYnV0dG9uOmFjdGl2ZSB7CisgICAgY29sb3I6
IHJnYigxMDAsIDEwMCwgMTAwKTsKK30KKwogLnRvb2xiYXItc2VhcmNoIGlucHV0W3R5cGU9ImNo
ZWNrYm94Il0gewogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICBtYXJnaW4tdG9wOiAtMXB4
OwogICAgIG1hcmdpbi1sZWZ0OiAxNXB4OwotICAgIHRvcDogMnB4OworICAgIHRvcDogMXB4Owog
fQogCiAudG9vbGJhci1zZWFyY2ggYnV0dG9uIHsKQEAgLTMzNCwxMSArMzU3LDEzIEBAIGJvZHku
ZGV0YWNoZWQucGxhdGZvcm0tbWFjLXNub3dsZW9wYXJkICN0b29sYmFyLWRyb3Bkb3duIHsKICAg
ICBwYWRkaW5nLXJpZ2h0OiAzNnB4OwogfQogCi0udG9vbGJhci1yZXBsYWNlLWNvbnRyb2wgewor
LnRvb2xiYXItc2VhcmNoLXJlcGxhY2UgLnRvb2xiYXItcmVwbGFjZS1jb250cm9sIHsKICAgICBi
b3JkZXI6IDFweCBzb2xpZCByZ2IoMTYzLCAxNjMsIDE2Myk7CiAgICAgaGVpZ2h0OiAyMHB4Owog
ICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICBtYXJnaW4tbGVmdDogNXB4OworICAgIG1hcmdp
bi1yaWdodDogMXB4OworICAgIHdpZHRoOiAyNTZweDsKIH0KIAogLnRvb2xiYXItc2VhcmNoLW5h
dmlnYXRpb24uZW5hYmxlZDphY3RpdmUgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152981</attachid>
            <date>2012-07-18 03:54:22 -0700</date>
            <delta_ts>2012-07-18 05:59:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91519-20120718145421.patch</filename>
            <type>text/plain</type>
            <size>42499</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM1NjYwMTI3YmZkOTBj
MzVhYmIzNDYwZGI3OTk3NDJmM2JkMjVkOS4uMmU1NGQ2M2QxN2Y0NjM5YWZlNWYxNjQxMmI2MDc1
NDYzYWZlM2E5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDEyLTA3LTE4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJlbW92ZSBzZWFyY2ggcmVwbGFjZSBmcm9tIGJlaGluZCBleHBlcmltZW50LCBwb2xpc2gg
dGhlIGJlaGF2aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTUxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIC0gVGhpcyBjaGFuZ2UgbWFrZXMgcmVwbGFjZSBsb29wIHdpdGggbm8gYm91bmRhcnksIHJl
bW92ZXMgdGhlIGxvb3AgcGFyYW1ldGVyCisgICAgICAgICAgZnJvbSBqdW1wVG9OZXh0L1ByZXZp
b3VzOworICAgICAgICAtIExheXMgb3V0IHJlcGxhY2UgYXMgYSBzZWNvbmQgcm93CisgICAgICAg
IC0gRml4ZXMgcmVwbGFjZSBhbGwgd2l0aCBubyBzZWFyY2ggbWF0Y2hlcworICAgICAgICAtIFNw
bGl0cyBTZWFyY2ggYW5kIFNlYXJjaCBhbmQgUmVwbGFjZQorICAgICAgICAtIEludHJvZHVjZXMg
ZXhwbGljaXQgTmV4dCAvIFByZXZpb3VzIGJ1dHRvbnMgaW4gdGhlIHNlYXJjaCBtb2RlCisgICAg
ICAgIC0gSW50cm9kdWNlcyBlZGl0UmFuZ2Ugb24gdGhlIFRleHRFZGl0b3Igc28gdGhhdCBpdCB3
YXMgcHJlc2VydmluZyB0aGUgdW5kbyBzdGFjaworICAgICAgICAgICh3ZSdsbCBuZWVkIHRvIGZp
eCBlZGl0b3Igc28gdGhhdCBpdCBkb2VzIG5vdCByZXF1aXJlIGl0KS4KKworICAgICAgICAqIEVu
Z2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFu
ZWwucHJvdG90eXBlLnBlcmZvcm1TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVQYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZS5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3Vs
dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLmp1bXBUb05leHRTZWFy
Y2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
Lmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvblBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblBh
bmVsLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRl
bnNpb25QYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uUGFuZWwucHJvdG90eXBlLmp1bXBUb1ByZXZpb3VzU2VhcmNo
UmVzdWx0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VG
cmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJv
dG90eXBlLmJlZm9yZVRleHRDaGFuZ2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5w
cm90b3R5cGUuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLmp1bXBUb1ByZXZpb3Vz
U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90
eXBlLmp1bXBUb05leHRTZWFyY2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnBlcmZv
cm1TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5qdW1wVG9O
ZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUu
anVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZS5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNlYXJjaFJl
c3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLmp1
bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlLl9lZGl0b3JDbG9zZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUuX2VkaXRvclNlbGVjdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlLnBlcmZvcm1TZWFyY2guZmluaXNoZWRDYWxsYmFjayk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLmp1bXBUb05leHRT
ZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUucmVwbGFjZVNlbGVjdGlvbldpdGgpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUucmVwbGFjZUFsbFdpdGgpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFy
Y2hDb250cm9sbGVyLnByb3RvdHlwZS5jYW5jZWxTZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLnJlc2V0U2VhcmNoKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5oYW5kbGVTaG9ydGN1dCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUuX3VwZGF0ZVNl
YXJjaE5hdmlnYXRpb25CdXR0b25TdGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNo
Q29udHJvbGxlci5wcm90b3R5cGUuX3VwZGF0ZVJlcGxhY2VWaXNpYmlsaXR5KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5fb25LZXlEb3duKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5fb25OZXh0QnV0
dG9uU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3Rv
dHlwZS5fb25QcmV2QnV0dG9uU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hD
b250cm9sbGVyLnByb3RvdHlwZS5fcGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUuX3VwZGF0ZVJlcGxhY2VEZXRhaWxzVmlzaWJp
bGl0eSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUu
X3JlcGxhY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90
eXBlLl9yZXBsYWNlQWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdz
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3MpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9yZVRleHRDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5kb0ZpbmRT
ZWFyY2hNYXRjaGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5
cGUucGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJv
dG90eXBlLnJlcGxhY2VTZWFyY2hNYXRjaFdpdGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lLnByb3RvdHlwZS5yZXBsYWNlQWxsV2l0aCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvckRlbGVnYXRlRm9yU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9yZVRleHRD
aGFuZ2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuZWRpdFJhbmdlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAgICgudG9v
bGJhci1zZWFyY2gtcmVwbGFjZSAuc2VhcmNoLXJlcGxhY2UpOgorICAgICAgICAoLnRvb2xiYXIt
c2VhcmNoKToKKyAgICAgICAgKC50b29sYmFyLXNlYXJjaC1yZXBsYWNlKToKKyAgICAgICAgKC50
b29sYmFyLXNlYXJjaC1jbG9zZS1idXR0b24pOgorICAgICAgICAoLnRvb2xiYXItc2VhcmNoLWNs
b3NlLWJ1dHRvbjpob3Zlcik6CisgICAgICAgICgudG9vbGJhci1zZWFyY2gtY2xvc2UtYnV0dG9u
OmFjdGl2ZSk6CisgICAgICAgICgudG9vbGJhci1zZWFyY2ggaW5wdXRbdHlwZT0iY2hlY2tib3gi
XSk6CisgICAgICAgICgudG9vbGJhci1zZWFyY2gtcmVwbGFjZSAudG9vbGJhci1yZXBsYWNlLWNv
bnRyb2wpOgorCiAyMDEyLTA3LTE4ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTE3NzM4KSBbRm9ybXNdIERlZmF1bHQgc3RlcCBi
YXNlIHNob3VsZCBiZSAwICg9MTk3MC0wMSkgZm9yIGlucHV0IHR5cGUgbW9udGgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA5ZWRj
NjQxNDE2YzRiMDBkMTQxNjYwOGI4OTg5YzYyNTI5OGJjOWQzLi5mNWU3NmUxOGZlYmRlZjk2NWIz
N2IxNzcxMTQ3MDNmMDlhMDc4NTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNo
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC03MjMsNCArNzIzLDUgQEAgbG9jYWxpemVkU3Ry
aW5nc1siVGltZSBFbmQiXSA9ICJUaW1lIEVuZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaW5kIl0g
PSAiRmluZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXBsYWNlIl0gPSAiUmVwbGFjZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJSZXBsYWNlIEFsbCJdID0gIlJlcGxhY2UgQWxsIjsKLWxvY2FsaXplZFN0
cmluZ3NbIlNraXAiXSA9ICJTa2lwIjsKK2xvY2FsaXplZFN0cmluZ3NbIlJlcGxhY2UgJiBGaW5k
Il0gPSAiUmVwbGFjZSAmIEZpbmQiOworbG9jYWxpemVkU3RyaW5nc1siUHJldmlvdXMiXSA9ICJQ
cmV2aW91cyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVBhbmVsLmpzCmluZGV4IDU0ZWY2M2Q2OGNmNWEwMGFkMjA3YmRmMzI2MTVjZGFjNDg5MWQ4
YTYuLmI3YWYyYTk1MWE2NDY4MTQ1OTMwMTYwYzkyZDdjMTM2MDYyZjE5YjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCkBAIC03
OCw5ICs3OCw4IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewogCiAg
ICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5Ci0gICAgICogQHBhcmFtIHtib29s
ZWFufSBsb29wCiAgICAgICovCi0gICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnksIGxv
b3ApCisgICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnkpCiAgICAgewogICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVTZWFyY2hNYXRjaGVzQ291bnQoMCwg
dGhpcyk7CiAgICAgICAgIHRoaXMuc2VhcmNoQ2FuY2VsZWQoKTsKQEAgLTEwMCwzNCArOTksMjAg
QEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0
aGlzLl9qdW1wVG9TZWFyY2hSZXN1bHQoMCk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0g
ICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9OZXh0
U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3NlYXJj
aFJlc3VsdHMgfHwgIXRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWxvb3AgJiYgdGhpcy5fY3VycmVudFNlYXJjaFJlc3Vs
dEluZGV4ICsgMSA+PSB0aGlzLl9zZWFyY2hSZXN1bHRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdGhpcy5fanVtcFRvU2Vh
cmNoUmVzdWx0KCh0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXggKyAxKSAlIHRoaXMuX3Nl
YXJjaFJlc3VsdHMubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAg
IC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xl
YW59Ci0gICAgICovCi0gICAganVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKGxv
b3ApCisgICAganVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIGlmICghdGhpcy5fc2VhcmNoUmVzdWx0cyB8fCAhdGhpcy5fc2VhcmNoUmVzdWx0cy5s
ZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCAtIDE7Ci0g
ICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKLSAgICAgICAgICAgIGlmICghbG9vcCkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChpbmRleCA9PT0gLTEpCiAgICAg
ICAgICAgICBpbmRleCA9IHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoIC0gMTsKLSAgICAgICAg
fQogICAgICAgICB0aGlzLl9qdW1wVG9TZWFyY2hSZXN1bHQoaW5kZXgpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDc0MDE4NWU5YWExZjBmNWExNDIxYjU4MjU4ZjBm
MGEzYWZmZDI5YWEuLjdmMmY4NmJlMGY0ZDYyYjJjYjZhNmMyYzhmMTYwZGFlM2RkYTU1MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5l
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFu
ZWwuanMKQEAgLTI5NCw5ICsyOTQsOCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKLSAgICAg
KiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKICAgICAgKi8KLSAgICBwZXJmb3JtU2VhcmNoOiBmdW5j
dGlvbihxdWVyeSwgbG9vcCkKKyAgICBwZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSkKICAg
ICB7CiAgICAgICAgIC8vIENhbGwgc2VhcmNoQ2FuY2VsZWQgc2luY2UgaXQgd2lsbCByZXNldCBl
dmVyeXRoaW5nIHdlIG5lZWQgYmVmb3JlIGRvaW5nIGEgbmV3IHNlYXJjaC4KICAgICAgICAgdGhp
cy5zZWFyY2hDYW5jZWxlZCgpOwpAQCAtNDkzLDQxICs0OTIsMjYgQEAgV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0g
ICAgICovCi0gICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBq
dW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRo
aXMuX3NlYXJjaFJlc3VsdHMpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgdGhpcy5faGlkZVNlYXJjaEhpZ2hsaWdodHMoKTsKLSAgICAg
ICAgaWYgKCsrdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4ID49IHRoaXMuX3NlYXJjaFJl
c3VsdHMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBpZiAoIWxvb3ApCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoKyt0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5k
ZXggPj0gdGhpcy5fc2VhcmNoUmVzdWx0cy5sZW5ndGgpCiAgICAgICAgICAgICB0aGlzLl9jdXJy
ZW50U2VhcmNoUmVzdWx0SW5kZXggPSAwOwotICAgICAgICB9Ci0gICAgICAgICAgICAKKwogICAg
ICAgICB0aGlzLl9oaWdobGlnaHRDdXJyZW50U2VhcmNoUmVzdWx0KCk7Ci0gICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AK
LSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwotICAgIGp1bXBUb1ByZXZpb3VzU2Vh
cmNoUmVzdWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3NlYXJjaFJlc3VsdHMpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
dGhpcy5faGlkZVNlYXJjaEhpZ2hsaWdodHMoKTsKLSAgICAgICAgaWYgKC0tdGhpcy5fY3VycmVu
dFNlYXJjaFJlc3VsdEluZGV4IDwgMCkgewotICAgICAgICAgICAgaWYgKCFsb29wKQotICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKC0tdGhpcy5fY3VycmVudFNlYXJj
aFJlc3VsdEluZGV4IDwgMCkKICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJ
bmRleCA9ICh0aGlzLl9zZWFyY2hSZXN1bHRzLmxlbmd0aCAtIDEpOwotICAgICAgICB9CiAKICAg
ICAgICAgdGhpcy5faGlnaGxpZ2h0Q3VycmVudFNlYXJjaFJlc3VsdCgpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RXh0ZW5zaW9uUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4
dGVuc2lvblBhbmVsLmpzCmluZGV4IGQ4MjhkMzM2ZTAwMmM3NjQ4ZDYxZDY0MTExY2MyMjhjYzUz
MWVjMDMuLjE0ODViMDk2NjY0NGNjMGRhNzE2MTI3ODczZTlmY2ZmNWM2MjAwMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5q
cwpAQCAtMTUzLDM0ICsxNTMsMjMgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblBhbmVsLnByb3Rv
dHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQotICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAogICAgICAqLwotICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0
aW9uKHF1ZXJ5LCBsb29wKQorICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5KQogICAg
IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlTZWFyY2hBY3Rp
b24odGhpcy5uYW1lLCBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLnBhbmVscy5TZWFyY2hBY3Rp
b24uUGVyZm9ybVNlYXJjaCwgcXVlcnkpOwogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJv
dG90eXBlLnBlcmZvcm1TZWFyY2guYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICB9LAogCi0g
ICAgLyoqCi0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCi0gICAgICogQHJldHVybiB7Ym9v
bGVhbn0KLSAgICAgKi8KLSAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29w
KQorICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IFdlYkluc3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIubm90aWZ5U2VhcmNoQWN0aW9uKHRoaXMubmFt
ZSwgV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5wYW5lbHMuU2VhcmNoQWN0aW9uLk5leHRTZWFy
Y2hSZXN1bHQpOwotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmp1bXBUb05l
eHRTZWFyY2hSZXN1bHQuY2FsbCh0aGlzLCBsb29wKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNlYXJjaFJlc3Vs
dC5jYWxsKHRoaXMpOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwotICAgIGp1bXBUb1ByZXZp
b3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNo
UmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9u
U2VydmVyLm5vdGlmeVNlYXJjaEFjdGlvbih0aGlzLm5hbWUsIFdlYkluc3BlY3Rvci5leHRlbnNp
b25BUEkucGFuZWxzLlNlYXJjaEFjdGlvbi5QcmV2aW91c1NlYXJjaFJlc3VsdCk7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQu
Y2FsbCh0aGlzLCBsb29wKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIFdlYkluc3Bl
Y3Rvci5QYW5lbC5wcm90b3R5cGUuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQuY2FsbCh0aGlz
KTsKICAgICB9LAogCiAgICAgX2FkZFN0eWxlUnVsZTogZnVuY3Rpb24oc2VsZWN0b3IsIGJvZHkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRTb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2
YVNjcmlwdFNvdXJjZUZyYW1lLmpzCmluZGV4IGFkZTA0OTFmYTdjMDhmOTgxMGJiOTg2ZjIwMzkx
YTU5NzU4NzMyYjguLjU0ZmExYTA5NjRhMzJlYzFiNzExYTY0M2U2MjU4NTZkY2Q3ZTNjNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNv
dXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2
YVNjcmlwdFNvdXJjZUZyYW1lLmpzCkBAIC0xNTQsOSArMTU0LDkgQEAgV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Jlc3RvcmVC
cmVha3BvaW50c0FmdGVyRWRpdGluZygpOwogICAgIH0sCiAKLSAgICBiZWZvcmVUZXh0Q2hhbmdl
ZDogZnVuY3Rpb24odXNlcklucHV0KQorICAgIGJlZm9yZVRleHRDaGFuZ2VkOiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9y
ZVRleHRDaGFuZ2VkLmNhbGwodGhpcywgdXNlcklucHV0KTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZS5iZWZvcmVUZXh0Q2hhbmdlZC5jYWxsKHRoaXMpOwogICAg
ICAgICB0aGlzLl9yZW1vdmVCcmVha3BvaW50c0JlZm9yZUVkaXRpbmcoKTsKICAgICB9LAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpz
CmluZGV4IDBiZmEzYmIwYzFkYzUwNDIzNjczYzg3YTJkNGU0MWQxYjAxMjNjY2YuLjczMmFmYWY1
MjlhMTkyOWY4NzRjODc4NDQwOThjN2U2ODM0ZmZiNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC0xMTY2LDMyICsxMTY2
LDE4IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuX2hpZ2hsaWdodE50aE1hdGNoZWRSZXF1ZXN0KG5ld01hdGNoZWRSZXF1ZXN0SW5kZXgs
IGZhbHNlKTsKICAgICB9LAogCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29w
Ci0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBqdW1wVG9QcmV2aW91c1Nl
YXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9QcmV2aW91c1NlYXJjaFJlc3Vs
dDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9tYXRjaGVkUmVxdWVzdHMu
bGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWxvb3AgJiYg
dGhpcy5fY3VycmVudE1hdGNoZWRSZXF1ZXN0SW5kZXggPD0gMCkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0TnRo
TWF0Y2hlZFJlcXVlc3QoKHRoaXMuX2N1cnJlbnRNYXRjaGVkUmVxdWVzdEluZGV4ICsgdGhpcy5f
bWF0Y2hlZFJlcXVlc3RzLmxlbmd0aCAtIDEpICUgdGhpcy5fbWF0Y2hlZFJlcXVlc3RzLmxlbmd0
aCwgdHJ1ZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAg
KiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAq
LwotICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKGxvb3ApCisgICAganVtcFRv
TmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9t
YXRjaGVkUmVxdWVzdHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICBpZiAoIWxvb3AgJiYgdGhpcy5fY3VycmVudE1hdGNoZWRSZXF1ZXN0SW5kZXggKyAxID49IHRo
aXMuX21hdGNoZWRSZXF1ZXN0cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodE50aE1hdGNoZWRSZXF1
ZXN0KCh0aGlzLl9jdXJyZW50TWF0Y2hlZFJlcXVlc3RJbmRleCArIDEpICUgdGhpcy5fbWF0Y2hl
ZFJlcXVlc3RzLmxlbmd0aCwgdHJ1ZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAK
ICAgICBzZWFyY2hDYW5jZWxlZDogZnVuY3Rpb24oKQpAQCAtMTQzOCwyMCArMTQyNCwxNCBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbmV0
d29ya0xvZ1ZpZXcucGVyZm9ybVNlYXJjaChzZWFyY2hRdWVyeSk7CiAgICAgfSwKIAotICAgIC8q
KgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqLwotICAgIGp1bXBUb1ByZXZp
b3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNo
UmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9uZXR3b3JrTG9nVmlldy5q
dW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdChsb29wKTsKKyAgICAgICAgdGhpcy5fbmV0d29ya0xv
Z1ZpZXcuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQoKTsKICAgICB9LAogCi0gICAgLyoqCi0g
ICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCi0gICAgICovCi0gICAganVtcFRvTmV4dFNlYXJj
aFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9uZXR3b3JrTG9nVmlldy5qdW1wVG9OZXh0U2Vh
cmNoUmVzdWx0KGxvb3ApOworICAgICAgICB0aGlzLl9uZXR3b3JrTG9nVmlldy5qdW1wVG9OZXh0
U2VhcmNoUmVzdWx0KCk7CiAgICAgfSwKIAogICAgIHNlYXJjaENhbmNlbGVkOiBmdW5jdGlvbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcwppbmRleCBhMTQ2
NDFjOGFmOTA0ODBkNDRjODYyZWYwOGEwYjBiNWNiM2RmNjgzLi43ODkxYTBiNWY1ZWUxOTdiZjUz
ZDYwN2QzMTQ4Y2Y4MDRhOGViYjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUGFuZWwuanMKQEAgLTEwOCwzMCArMTA4LDE5IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5w
cm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKLSAg
ICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKICAgICAgKi8KLSAgICBwZXJmb3JtU2VhcmNoOiBm
dW5jdGlvbihxdWVyeSwgbG9vcCkKKyAgICBwZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSkK
ICAgICB7CiAgICAgICAgIC8vIENhbGwgc2VhcmNoQ2FuY2VsZWQgc2luY2UgaXQgd2lsbCByZXNl
dCBldmVyeXRoaW5nIHdlIG5lZWQgYmVmb3JlIGRvaW5nIGEgbmV3IHNlYXJjaC4KICAgICAgICAg
dGhpcy5zZWFyY2hDYW5jZWxlZCgpOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0g
e2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmZiBvcGVyYXRp
b24gaXMgc3VjY2Vzc2Z1bAotICAgICAqLwotICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1
bmN0aW9uKGxvb3ApCisgICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFy
YW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmZiBvcGVy
YXRpb24gaXMgc3VjY2Vzc2Z1bAotICAgICAqLwotICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVz
dWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSwKIAogICAgIC8qKgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1Bh
bmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVs
LmpzCmluZGV4IDE3YzZlNTMwMGQxM2MxOWI3NzMxNGJlNWZmMmI4ZjdjMzU1NTg0NmQuLmNlMTIy
OTYyMDhiMTc5NTdhOWM5MjZkMWE1ZWEwZWVkMmUyZTg4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTczOSw5ICs3
MzksOCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAv
KioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IGxvb3AKICAgICAgKi8KLSAgICBwZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSwgbG9vcCkK
KyAgICBwZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSkKICAgICB7CiAgICAgICAgIHRoaXMu
c2VhcmNoQ2FuY2VsZWQoKTsKIApAQCAtODE2LDE0ICs4MTUsMTAgQEAgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9jdXJyZW50U2VhcmNoQ2h1
bmtJbnRlcnZhbElkZW50aWZpZXIgPSBjaHVua0ludGVydmFsSWRlbnRpZmllcjsKICAgICB9LAog
Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCi0gICAgICogQHJldHVybiB7
Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbihs
b29wKQorICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
ICAgIGlmICghdGhpcy5zaG93VmlldyB8fCAhdGhpcy5fc2VhcmNoUmVzdWx0cyB8fCAhdGhpcy5f
c2VhcmNoUmVzdWx0cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIHNob3dGaXJzdFJlc3VsdCA9IGZhbHNlOwogCkBA
IC04NTMsMTcgKzg0OCwxMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBjdXJyZW50Vmlldy5qdW1wVG9GaXJzdFNlYXJjaFJlc3VsdCgpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBjdXJyZW50Vmlldy5qdW1wVG9OZXh0U2VhcmNoUmVz
dWx0KCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBA
cGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwot
ICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBU
b1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRo
aXMuc2hvd1ZpZXcgfHwgIXRoaXMuX3NlYXJjaFJlc3VsdHMgfHwgIXRoaXMuX3NlYXJjaFJlc3Vs
dHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIHZhciBzaG93TGFzdFJlc3VsdCA9IGZhbHNlOwogCkBAIC04OTMsNyArODgz
LDYgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgY3VycmVudFZpZXcuanVtcFRvTGFzdFNlYXJjaFJlc3VsdCgpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBjdXJyZW50Vmlldy5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCgpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCiAgICAgX3NlYXJjaGFibGVWaWV3czogZnVuY3Rp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VzUGFuZWwuanMKaW5kZXggNzFmZjBhNTZkMDk1ZTFmMjI4N2ExNzY2ZjU5MGU5Mzk5MTdmYTJj
NS4uMTEzYjk1YmU5NTdlYmM0MTVmN2JkNmRjOWY1Zjc0NDU4NGFlMzNmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBA
IC02MzcsOSArNjM3LDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQotICAgICAqIEBwYXJh
bSB7Ym9vbGVhbn0gbG9vcAogICAgICAqLwotICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1
ZXJ5LCBsb29wKQorICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5KQogICAgIHsKICAg
ICAgICAgdGhpcy5fcmVzZXRTZWFyY2hSZXN1bHRzKCk7CiAgICAgICAgIHZhciByZWdleCA9IFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5jcmVhdGVTZWFyY2hSZWdleChxdWVyeSk7CkBAIC03NDks
MzIgKzc0OCwyMiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLl9mb3JBbGxSZXNvdXJjZVRyZWVFbGVtZW50cyhjYWxsYmFjayk7CiAgICAg
fSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1
cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rp
b24obG9vcCkKKyAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICBpZiAoIXRoaXMuY3VycmVudFNlYXJjaE1hdGNoZXMpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciBjdXJyZW50VHJlZUVs
ZW1lbnQgPSB0aGlzLnNpZGViYXJUcmVlLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CiAgICAgICAgIHZh
ciBuZXh0U2VhcmNoUmVzdWx0ID0gdGhpcy5fc2VhcmNoQ29udHJvbGxlci5uZXh0U2VhcmNoUmVz
dWx0KGN1cnJlbnRUcmVlRWxlbWVudCk7CiAgICAgICAgIHRoaXMuX3Nob3dTZWFyY2hSZXN1bHQo
bmV4dFNlYXJjaFJlc3VsdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICAv
KioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFu
fQotICAgICAqLwotICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29w
KQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICBpZiAoIXRoaXMuY3VycmVudFNlYXJjaE1hdGNoZXMpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciBjdXJyZW50VHJlZUVsZW1l
bnQgPSB0aGlzLnNpZGViYXJUcmVlLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CiAgICAgICAgIHZhciBw
cmV2aW91c1NlYXJjaFJlc3VsdCA9IHRoaXMuX3NlYXJjaENvbnRyb2xsZXIucHJldmlvdXNTZWFy
Y2hSZXN1bHQoY3VycmVudFRyZWVFbGVtZW50KTsKICAgICAgICAgdGhpcy5fc2hvd1NlYXJjaFJl
c3VsdChwcmV2aW91c1NlYXJjaFJlc3VsdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0s
CiAKICAgICBfZm9yQWxsUmVzb3VyY2VUcmVlRWxlbWVudHM6IGZ1bmN0aW9uKGNhbGxiYWNrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5q
cwppbmRleCBjMmQ4YzAwMDAyM2JhMzM4ZDAxNjEzM2UxMTQzNzUzYTkzNDIyNzFiLi4wZTkxYjAx
N2RhN2M2OWVmNzc5OTdhY2ViYjQzYjIzZDZjZTIzZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtNTczLDYgKzU3Myw3
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIC8v
IFNjcmlwdHNOYXZpZ2F0b3IgZG9lcyBub3QgbmVlZCB0byB1cGRhdGUgb24gRWRpdG9yQ2xvc2Vk
LgogICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHRWaWV3U3RhdHVzQmFySXRlbXMoKTsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIucmVzZXRTZWFyY2goKTsKICAgICB9LAog
CiAgICAgX2VkaXRvclNlbGVjdGVkOiBmdW5jdGlvbihldmVudCkKQEAgLTU4MSw2ICs1ODIsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHNv
dXJjZUZyYW1lID0gdGhpcy5fc2hvd0ZpbGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgdGhpcy5f
bmF2aWdhdG9yQ29udHJvbGxlci5oaWRlTmF2aWdhdG9yT3ZlcmxheSgpOwogICAgICAgICBzb3Vy
Y2VGcmFtZS5mb2N1cygpOworICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci5y
ZXNldFNlYXJjaCgpOwogICAgIH0sCiAKICAgICBfc2NyaXB0U2VsZWN0ZWQ6IGZ1bmN0aW9uKGV2
ZW50KQpAQCAtODc4LDkgKzg4MCw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5Ci0gICAgICog
QHBhcmFtIHtib29sZWFufSBsb29wCiAgICAgICovCi0gICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rp
b24ocXVlcnksIGxvb3ApCisgICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnkpCiAgICAg
ewogICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVTZWFyY2hNYXRj
aGVzQ291bnQoMCwgdGhpcyk7CiAKQEAgLTg5OSw1NyArOTAwLDQ2IEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIudXBkYXRlU2VhcmNoTWF0Y2hl
c0NvdW50KHNlYXJjaE1hdGNoZXMsIHRoaXMpOwotICAgICAgICAgICAgdmlldy5qdW1wVG9OZXh0
U2VhcmNoUmVzdWx0KGxvb3ApOworICAgICAgICAgICAgdmlldy5qdW1wVG9OZXh0U2VhcmNoUmVz
dWx0KCk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVD
dXJyZW50TWF0Y2hJbmRleCh2aWV3LmN1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCwgdGhpcyk7CiAg
ICAgICAgIH0KIAogICAgICAgICB0aGlzLl9zZWFyY2hWaWV3LnBlcmZvcm1TZWFyY2gocXVlcnks
IGZpbmlzaGVkQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICov
Ci0gICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9O
ZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3Nl
YXJjaFZpZXcpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFZpZXcgIT09IHRoaXMudmlzaWJsZVZpZXcpIHsK
LSAgICAgICAgICAgIHRoaXMucGVyZm9ybVNlYXJjaCh0aGlzLl9zZWFyY2hRdWVyeSwgbG9vcCk7
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB0aGlzLnBlcmZvcm1TZWFy
Y2godGhpcy5fc2VhcmNoUXVlcnksIHRydWUpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFZpZXcuc2hvd2luZ0xhc3RTZWFyY2hSZXN1
bHQoKSkgewotICAgICAgICAgICAgaWYgKCFsb29wKQotICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFZpZXcuc2hvd2luZ0xhc3RTZWFyY2hSZXN1
bHQoKSkKICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcuanVtcFRvRmlyc3RTZWFyY2hSZXN1
bHQoKTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3Nl
YXJjaFZpZXcuanVtcFRvTmV4dFNlYXJjaFJlc3VsdCgpOwogICAgICAgICBXZWJJbnNwZWN0b3Iu
c2VhcmNoQ29udHJvbGxlci51cGRhdGVDdXJyZW50TWF0Y2hJbmRleCh0aGlzLl9zZWFyY2hWaWV3
LmN1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCwgdGhpcyk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKi8K
LSAgICBqdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1w
VG9QcmV2aW91c1NlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0
aGlzLl9zZWFyY2hWaWV3KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlm
ICh0aGlzLl9zZWFyY2hWaWV3ICE9PSB0aGlzLnZpc2libGVWaWV3KSB7Ci0gICAgICAgICAgICB0
aGlzLnBlcmZvcm1TZWFyY2godGhpcy5fc2VhcmNoUXVlcnksIGxvb3ApOworICAgICAgICAgICAg
dGhpcy5wZXJmb3JtU2VhcmNoKHRoaXMuX3NlYXJjaFF1ZXJ5LCB0cnVlKTsKICAgICAgICAgICAg
IGlmICh0aGlzLl9zZWFyY2hWaWV3KQogICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcu
anVtcFRvTGFzdFNlYXJjaFJlc3VsdCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFZpZXcuc2hvd2luZ0ZpcnN0U2VhcmNoUmVzdWx0
KCkpIHsKLSAgICAgICAgICAgIGlmICghbG9vcCkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGlmICh0aGlzLl9zZWFyY2hWaWV3LnNob3dpbmdGaXJzdFNlYXJjaFJlc3Vs
dCgpKQogICAgICAgICAgICAgdGhpcy5fc2VhcmNoVmlldy5qdW1wVG9MYXN0U2VhcmNoUmVzdWx0
KCk7Ci0gICAgICAgIH0gZWxzZQorICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzLl9zZWFy
Y2hWaWV3Lmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KCk7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5zZWFyY2hDb250cm9sbGVyLnVwZGF0ZUN1cnJlbnRNYXRjaEluZGV4KHRoaXMuX3NlYXJjaFZp
ZXcuY3VycmVudFNlYXJjaFJlc3VsdEluZGV4LCB0aGlzKTsKICAgICB9LApAQCAtOTY4LDcgKzk1
OCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAqLwog
ICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoOiBmdW5jdGlvbih0ZXh0KQogICAgIHsKLSAgICAgICAg
dmFyIHZpZXcgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0gKi8gdGhpcy5f
c2VhcmNoVmlldzsKKyAgICAgICAgdmFyIHZpZXcgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZX0gKi8gdGhpcy52aXNpYmxlVmlldzsKICAgICAgICAgdmlldy5yZXBsYWNlU2Vh
cmNoTWF0Y2hXaXRoKHRleHQpOwogICAgIH0sCiAKQEAgLTk3OCw3ICs5NjgsNyBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZXBsYWNlQWxs
V2l0aDogZnVuY3Rpb24ocXVlcnksIHRleHQpCiAgICAgewotICAgICAgICB2YXIgdmlldyA9IC8q
KiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSAqLyB0aGlzLl9zZWFyY2hWaWV3Owor
ICAgICAgICB2YXIgdmlldyA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSAq
LyB0aGlzLnZpc2libGVWaWV3OwogICAgICAgICB2aWV3LnJlcGxhY2VBbGxXaXRoKHF1ZXJ5LCB0
ZXh0KTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NlYXJjaENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NlYXJjaENvbnRyb2xsZXIuanMKaW5kZXggNmY0ZWM3OTdjNTJjYWQ1NWQ0Yzg1YjRl
Njk1ZWExMDU0YWMyNWIyZC4uMzI2ODRlZTIzOWY4NTI2Yjc5ZGU4ZjA0NjhlODcyNzE3MGI0NzQ5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZWFyY2hD
b250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Vh
cmNoQ29udHJvbGxlci5qcwpAQCAtMzcsOCArMzcsOCBAQCBXZWJJbnNwZWN0b3IuU2VhcmNoQ29u
dHJvbGxlciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5fZWxlbWVudC5jbGFzc05hbWUgPSAidG9vbGJhci1z
ZWFyY2giOwogCi0gICAgdmFyIGxhYmVsRWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hp
bGQoInNwYW4iKTsKLSAgICBsYWJlbEVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkZpbmQiKTsKKyAgICB0aGlzLl9maW5kTGFiZWxFbGVtZW50ID0gdGhpcy5fZWxl
bWVudC5jcmVhdGVDaGlsZCgic3BhbiIpOworICAgIHRoaXMuX2ZpbmRMYWJlbEVsZW1lbnQudGV4
dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZpbmQiKTsKIAogICAgIHRoaXMuX3Nl
YXJjaENvbnRyb2xFbGVtZW50ID0gdGhpcy5fZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInRv
b2xiYXItc2VhcmNoLWNvbnRyb2wiKTsKIApAQCAtNjcsMzMgKzY3LDQ0IEBAIFdlYkluc3BlY3Rv
ci5TZWFyY2hDb250cm9sbGVyID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3JlcGxhY2VDaGVja2Jv
eEVsZW1lbnQgPSB0aGlzLl9yZXBsYWNlRWxlbWVudC5jcmVhdGVDaGlsZCgiaW5wdXQiKTsKICAg
ICB0aGlzLl9yZXBsYWNlQ2hlY2tib3hFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgIHRo
aXMuX3JlcGxhY2VDaGVja2JveEVsZW1lbnQuaWQgPSAic2VhcmNoLXJlcGxhY2UtdHJpZ2dlciI7
Ci0gICAgdGhpcy5fcmVwbGFjZUNoZWNrYm94RWxlbWVudC50YWJJbmRleCA9IC0xOwotICAgIHRo
aXMuX3JlcGxhY2VDaGVja2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll90b2dnbGVSZXBsYWNlVmlzaWJpbGl0eS5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy5f
cmVwbGFjZUNoZWNrYm94RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3Vw
ZGF0ZVJlcGxhY2VEZXRhaWxzVmlzaWJpbGl0eS5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICB0
aGlzLl9yZXBsYWNlTGFiZWxFbGVtZW50ID0gdGhpcy5fcmVwbGFjZUVsZW1lbnQuY3JlYXRlQ2hp
bGQoImxhYmVsIik7CiAgICAgdGhpcy5fcmVwbGFjZUxhYmVsRWxlbWVudC50ZXh0Q29udGVudCA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVwbGFjZSIpOwogICAgIHRoaXMuX3JlcGxhY2VMYWJl
bEVsZW1lbnQuc2V0QXR0cmlidXRlKCJmb3IiLCAic2VhcmNoLXJlcGxhY2UtdHJpZ2dlciIpOwog
Ci0gICAgdGhpcy5fcmVwbGFjZURldGFpbHNFbGVtZW50ID0gdGhpcy5fcmVwbGFjZUVsZW1lbnQu
Y3JlYXRlQ2hpbGQoInNwYW4iLCAiaGlkZGVuIik7CisgICAgdGhpcy5fZ2FwRWxlbWVudCA9IHRo
aXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iKTsKKworICAgIHRoaXMuX2ZpbmRCdXR0b25F
bGVtZW50ID0gdGhpcy5fZWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIiwgImhpZGRlbiIpOwor
ICAgIHRoaXMuX2ZpbmRCdXR0b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJGaW5kIik7CisgICAgdGhpcy5fZmluZEJ1dHRvbkVsZW1lbnQuZGlzYWJsZWQgPSB0
cnVlOworICAgIHRoaXMuX2ZpbmRCdXR0b25FbGVtZW50LnRhYkluZGV4ID0gLTE7CisgICAgdGhp
cy5fZmluZEJ1dHRvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9vbk5l
eHRCdXR0b25TZWFyY2guYmluZCh0aGlzKSwgZmFsc2UpOworCisgICAgdGhpcy5fcHJldkJ1dHRv
bkVsZW1lbnQgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJidXR0b24iLCAiaGlkZGVuIik7
CisgICAgdGhpcy5fcHJldkJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlByZXZpb3VzIik7CisgICAgdGhpcy5fcHJldkJ1dHRvbkVsZW1lbnQuZGlzYWJs
ZWQgPSB0cnVlOworICAgIHRoaXMuX3ByZXZCdXR0b25FbGVtZW50LnRhYkluZGV4ID0gLTE7Cisg
ICAgdGhpcy5fcHJldkJ1dHRvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll9vblByZXZCdXR0b25TZWFyY2guYmluZCh0aGlzKSwgZmFsc2UpOworCisgICAgdmFyIGNsb3Nl
QnV0dG9uRWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAidG9vbGJh
ci1zZWFyY2gtY2xvc2UtYnV0dG9uIik7CisgICAgY2xvc2VCdXR0b25FbGVtZW50LnRleHRDb250
ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJcdTAwRDciKTsKKyAgICBjbG9zZUJ1dHRvbkVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLmNhbmNlbFNlYXJjaC5iaW5kKHRo
aXMpLCBmYWxzZSk7CisKKyAgICB0aGlzLl9yZXBsYWNlRGV0YWlsc0VsZW1lbnQgPSB0aGlzLl9l
bGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGlkZGVuIik7CisgICAgdGhpcy5fcmVwbGFjZURl
dGFpbHNFbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIikudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlJlcGxhY2UiKTsKIAogICAgIHRoaXMuX3JlcGxhY2VJbnB1dEVsZW1lbnQg
PSB0aGlzLl9yZXBsYWNlRGV0YWlsc0VsZW1lbnQuY3JlYXRlQ2hpbGQoImlucHV0IiwgInNlYXJj
aC1yZXBsYWNlIHRvb2xiYXItcmVwbGFjZS1jb250cm9sIik7CiAgICAgdGhpcy5fcmVwbGFjZUlu
cHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fb25LZXlEb3duLmJp
bmQodGhpcyksIHRydWUpOwogCiAgICAgdGhpcy5fcmVwbGFjZUJ1dHRvbkVsZW1lbnQgPSB0aGlz
Ll9yZXBsYWNlRGV0YWlsc0VsZW1lbnQuY3JlYXRlQ2hpbGQoImJ1dHRvbiIpOwogICAgIHRoaXMu
X3JlcGxhY2VCdXR0b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJSZXBsYWNlIik7CisgICAgdGhpcy5fcmVwbGFjZUJ1dHRvbkVsZW1lbnQuZGlzYWJsZWQgPSB0
cnVlOwogICAgIHRoaXMuX3JlcGxhY2VCdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5fcmVwbGFjZS5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAgICB0aGlzLl9za2lw
QnV0dG9uRWxlbWVudCA9IHRoaXMuX3JlcGxhY2VEZXRhaWxzRWxlbWVudC5jcmVhdGVDaGlsZCgi
YnV0dG9uIik7Ci0gICAgdGhpcy5fc2tpcEJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlNraXAiKTsKLSAgICB0aGlzLl9za2lwQnV0dG9uRWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX29uTmV4dEJ1dHRvblNlYXJjaC5iaW5kKHRo
aXMpLCBmYWxzZSk7Ci0KICAgICB0aGlzLl9yZXBsYWNlQWxsQnV0dG9uRWxlbWVudCA9IHRoaXMu
X3JlcGxhY2VEZXRhaWxzRWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIik7CiAgICAgdGhpcy5f
cmVwbGFjZUFsbEJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlJlcGxhY2UgQWxsIik7CiAgICAgdGhpcy5fcmVwbGFjZUFsbEJ1dHRvbkVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9yZXBsYWNlQWxsLmJpbmQodGhpcyksIGZhbHNl
KTsKLQotICAgIHZhciBjbG9zZUJ1dHRvbkVsZW1lbnQgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNo
aWxkKCJzcGFuIiwgImRyYXdlci1oZWFkZXItY2xvc2UtYnV0dG9uIik7Ci0gICAgY2xvc2VCdXR0
b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJcdTAwRDciKTsK
LSAgICBjbG9zZUJ1dHRvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLmNh
bmNlbFNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7CiB9CiAKIFdlYkluc3BlY3Rvci5TZWFyY2hD
b250cm9sbGVyLnByb3RvdHlwZSA9IHsKQEAgLTExOSwxNSArMTMwLDIwIEBAIFdlYkluc3BlY3Rv
ci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlzLl9zZWFy
Y2hJc1Zpc2libGUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9z
ZWFyY2hJc1Zpc2libGU7Ci0gICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goIiIsIGZhbHNlLCBm
YWxzZSwgZmFsc2UpOwogICAgICAgICBXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5zZXRGb290
ZXJFbGVtZW50KG51bGwpOwotICAgICAgICB0aGlzLl9yZXBsYWNlQ2hlY2tib3hFbGVtZW50LmNo
ZWNrZWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fdG9nZ2xlUmVwbGFjZVZpc2liaWxpdHkoKTsK
KyAgICAgICAgdGhpcy5yZXNldFNlYXJjaCgpOworICAgIH0sCisKKyAgICByZXNldFNlYXJjaDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCgiIiwgZmFsc2Us
IGZhbHNlKTsKKyAgICAgICAgdGhpcy5fdXBkYXRlUmVwbGFjZVZpc2liaWxpdHkoKTsKKyAgICAg
ICAgdGhpcy5fbWF0Y2hlc0VsZW1lbnQudGV4dENvbnRlbnQgPSAiIjsKICAgICB9LAogCiAgICAg
ZGlzYWJsZVNlYXJjaFVudGlsRXhwbGljaXRBY3Rpb246IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
LSAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCgiIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Cisg
ICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goIiIsIGZhbHNlLCBmYWxzZSk7CiAgICAgfSwKIAog
ICAgIC8qKgpAQCAtMTYzLDEwICsxNzksOSBAQCBXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxl
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRQYW5lbCA9IFdlYklu
c3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpOwogCiAgICAgICAgICAgICAgICAg
aWYgKGlzTWFjICYmIGV2ZW50Lm1ldGFLZXkgJiYgIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50LmFs
dEtleSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UGFuZWwuanVtcFRvUHJldmlvdXNTZWFyY2hS
ZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhbmVsLmp1bXBUb1By
ZXZpb3VzU2VhcmNoUmVzdWx0KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vy
cmVudFBhbmVsLmp1bXBUb05leHRTZWFyY2hSZXN1bHQpCisgICAgICAgICAgICAgICAgICAgIGlm
IChldmVudC5zaGlmdEtleSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYW5lbC5q
dW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCgpOworICAgICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFuZWwuanVtcFRvTmV4dFNlYXJjaFJlc3Vs
dCgpOwogICAgICAgICAgICAgICAgICAgICBldmVudC5jb25zdW1lKHRydWUpOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE3OCw2ICsxOTMsOSBAQCBXZWJJbnNwZWN0b3Iu
U2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAKICAgICBfdXBkYXRlU2VhcmNoTmF2aWdh
dGlvbkJ1dHRvblN0YXRlOiBmdW5jdGlvbihlbmFibGVkKQogICAgIHsKKyAgICAgICAgdGhpcy5f
cmVwbGFjZUJ1dHRvbkVsZW1lbnQuZGlzYWJsZWQgPSAhZW5hYmxlZDsKKyAgICAgICAgdGhpcy5f
cHJldkJ1dHRvbkVsZW1lbnQuZGlzYWJsZWQgPSAhZW5hYmxlZDsKKyAgICAgICAgdGhpcy5fZmlu
ZEJ1dHRvbkVsZW1lbnQuZGlzYWJsZWQgPSAhZW5hYmxlZDsKICAgICAgICAgdmFyIHBhbmVsID0g
V2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuY3VycmVudFBhbmVsKCk7CiAgICAgICAgIGlmIChl
bmFibGVkKSB7CiAgICAgICAgICAgICB0aGlzLl9zZWFyY2hOYXZpZ2F0aW9uUHJldkVsZW1lbnQu
YWRkU3R5bGVDbGFzcygiZW5hYmxlZCIpOwpAQCAtMjExLDEwICsyMjksMTMgQEAgV2ViSW5zcGVj
dG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgIF91cGRhdGVSZXBsYWNlVmlz
aWJpbGl0eTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVj
dG9yLmluc3BlY3RvclZpZXcuY3VycmVudFBhbmVsKCk7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0
b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5zZWFyY2hSZXBsYWNlLmlzRW5hYmxlZCgpICYmIHBhbmVs
LmNhblNlYXJjaEFuZFJlcGxhY2UoKSkKKyAgICAgICAgaWYgKHBhbmVsICYmIHBhbmVsLmNhblNl
YXJjaEFuZFJlcGxhY2UoKSkKICAgICAgICAgICAgIHRoaXMuX3JlcGxhY2VFbGVtZW50LnJlbW92
ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwotICAgICAgICBlbHNlCisgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgdGhpcy5fcmVwbGFjZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7Cisg
ICAgICAgICAgICB0aGlzLl9yZXBsYWNlQ2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSBmYWxzZTsK
KyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVJlcGxhY2VEZXRhaWxzVmlzaWJpbGl0eSgpOworICAg
ICAgICB9CiAgICAgfSwKIAogICAgIF9vblNlYXJjaEZpZWxkTWFudWFsRm9jdXM6IGZ1bmN0aW9u
KGV2ZW50KQpAQCAtMjQ0LDIwICsyNjUsMjQgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xs
ZXIucHJvdG90eXBlID0gewogCiAgICAgX29uSW5wdXQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
LSAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaChldmVudC50YXJnZXQudmFsdWUsIGZhbHNlLCBm
YWxzZSwgdHJ1ZSk7CisgICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goZXZlbnQudGFyZ2V0LnZh
bHVlLCBmYWxzZSwgZmFsc2UpOwogICAgIH0sCiAKICAgICBfb25OZXh0QnV0dG9uU2VhcmNoOiBm
dW5jdGlvbihldmVudCkKICAgICB7CisgICAgICAgIGlmICghdGhpcy5fc2VhcmNoTmF2aWdhdGlv
bk5leHRFbGVtZW50Lmhhc1N0eWxlQ2xhc3MoImVuYWJsZWQiKSkKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgLy8gU2ltdWxhdGUgbmV4dCBzZWFyY2ggb24gc2VhcmNoLW5hdmlnYXRpb24t
YnV0dG9uIGNsaWNrLgotICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKHRoaXMuX3NlYXJjaElu
cHV0RWxlbWVudC52YWx1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUpOworICAgICAgICB0aGlzLl9wZXJm
b3JtU2VhcmNoKHRoaXMuX3NlYXJjaElucHV0RWxlbWVudC52YWx1ZSwgdHJ1ZSwgZmFsc2UpOwog
ICAgICAgICB0aGlzLl9zZWFyY2hJbnB1dEVsZW1lbnQuZm9jdXMoKTsKICAgICB9LAogCiAgICAg
X29uUHJldkJ1dHRvblNlYXJjaDogZnVuY3Rpb24oZXZlbnQpCiAgICAgeworICAgICAgICBpZiAo
IXRoaXMuX3NlYXJjaE5hdmlnYXRpb25QcmV2RWxlbWVudC5oYXNTdHlsZUNsYXNzKCJlbmFibGVk
IikpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIFNpbXVsYXRlIHByZXZpb3VzIHNl
YXJjaCBvbiBzZWFyY2gtbmF2aWdhdGlvbi1idXR0b24gY2xpY2suCi0gICAgICAgIHRoaXMuX3Bl
cmZvcm1TZWFyY2godGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVlLCB0cnVlLCB0cnVlLCB0
cnVlKTsKKyAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCh0aGlzLl9zZWFyY2hJbnB1dEVsZW1l
bnQudmFsdWUsIHRydWUsIHRydWUpOwogICAgICAgICB0aGlzLl9zZWFyY2hJbnB1dEVsZW1lbnQu
Zm9jdXMoKTsKICAgICB9LAogCkBAIC0yNjUsOSArMjkwLDggQEAgV2ViSW5zcGVjdG9yLlNlYXJj
aENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQog
ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZm9yY2VTZWFyY2gKICAgICAgKiBAcGFyYW0ge2Jvb2xl
YW59IGlzQmFja3dhcmRTZWFyY2gKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKICAgICAg
Ki8KLSAgICBfcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnksIGZvcmNlU2VhcmNoLCBpc0Jh
Y2t3YXJkU2VhcmNoLCBsb29wKQorICAgIF9wZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSwg
Zm9yY2VTZWFyY2gsIGlzQmFja3dhcmRTZWFyY2gpCiAgICAgewogICAgICAgICBpZiAoIXF1ZXJ5
IHx8ICFxdWVyeS5sZW5ndGgpIHsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50UXVl
cnk7CkBAIC0yNzYsNyArMzAwLDcgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJv
dG90eXBlID0gewogICAgICAgICAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5l
bHNbcGFuZWxOYW1lXTsKICAgICAgICAgICAgICAgICB2YXIgaGFkQ3VycmVudFF1ZXJ5ID0gISFw
YW5lbC5jdXJyZW50UXVlcnk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIHBhbmVsLmN1cnJlbnRR
dWVyeTsKLSAgICAgICAgICAgICAgICBpZiAoaGFkQ3VycmVudFF1ZXJ5ICYmIHBhbmVsLnNlYXJj
aENhbmNlbGVkKQorICAgICAgICAgICAgICAgIGlmIChoYWRDdXJyZW50UXVlcnkpCiAgICAgICAg
ICAgICAgICAgICAgIHBhbmVsLnNlYXJjaENhbmNlbGVkKCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB0aGlzLl91cGRhdGVTZWFyY2hNYXRjaGVzQ291bnRBbmRDdXJyZW50TWF0Y2hJbmRl
eCgwLCAtMSk7CkBAIC0yODksOSArMzEzLDkgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xs
ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgLy8gc2VhcmNoIHJlc3VsdCBmb3IgYSBnb29k
IHVzZXIgZXhwZXJpZW5jZS4KICAgICAgICAgICAgIGlmIChmb3JjZVNlYXJjaCkgewogICAgICAg
ICAgICAgICAgIGlmICghaXNCYWNrd2FyZFNlYXJjaCkKLSAgICAgICAgICAgICAgICAgICAgY3Vy
cmVudFBhbmVsLmp1bXBUb05leHRTZWFyY2hSZXN1bHQobG9vcCk7CisgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRQYW5lbC5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KCk7CiAgICAgICAgICAgICAg
ICAgZWxzZSBpZiAoaXNCYWNrd2FyZFNlYXJjaCkKLSAgICAgICAgICAgICAgICAgICAgY3VycmVu
dFBhbmVsLmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KGxvb3ApOworICAgICAgICAgICAgICAg
ICAgICBjdXJyZW50UGFuZWwuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQoKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzAyLDMxICszMjYsNTAg
QEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl9jdXJyZW50UXVlcnkgPSBxdWVyeTsKIAogICAgICAgICBjdXJyZW50UGFuZWwuY3VycmVu
dFF1ZXJ5ID0gcXVlcnk7Ci0gICAgICAgIGN1cnJlbnRQYW5lbC5wZXJmb3JtU2VhcmNoKHF1ZXJ5
LCBsb29wKTsKKyAgICAgICAgY3VycmVudFBhbmVsLnBlcmZvcm1TZWFyY2gocXVlcnkpOwogICAg
IH0sCiAKLSAgICBfdG9nZ2xlUmVwbGFjZVZpc2liaWxpdHk6IGZ1bmN0aW9uKCkKKyAgICBfdXBk
YXRlUmVwbGFjZURldGFpbHNWaXNpYmlsaXR5OiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBp
ZiAoIXRoaXMuX3NlYXJjaElzVmlzaWJsZSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
aWYgKHRoaXMuX3JlcGxhY2VDaGVja2JveEVsZW1lbnQuY2hlY2tlZCkgeworICAgICAgICAgICAg
dGhpcy5fZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ0b29sYmFyLXNlYXJjaC1yZXBsYWNlIik7CiAg
ICAgICAgICAgICB0aGlzLl9yZXBsYWNlRGV0YWlsc0VsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygi
aGlkZGVuIik7CisgICAgICAgICAgICB0aGlzLl9wcmV2QnV0dG9uRWxlbWVudC5yZW1vdmVTdHls
ZUNsYXNzKCJoaWRkZW4iKTsKKyAgICAgICAgICAgIHRoaXMuX2ZpbmRCdXR0b25FbGVtZW50LnJl
bW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICAgICAgdGhpcy5fcmVwbGFjZURldGFp
bHNFbGVtZW50Lmluc2VydEJlZm9yZSh0aGlzLl9yZXBsYWNlRWxlbWVudCwgdGhpcy5fcmVwbGFj
ZUJ1dHRvbkVsZW1lbnQpOworICAgICAgICAgICAgdGhpcy5fZmluZExhYmVsRWxlbWVudC5zdHls
ZS5zZXRQcm9wZXJ0eSgibWFyZ2luLXJpZ2h0IiwgKHRoaXMuX3JlcGxhY2VJbnB1dEVsZW1lbnQu
dG90YWxPZmZzZXRMZWZ0KCkgLSB0aGlzLl9zZWFyY2hJbnB1dEVsZW1lbnQudG90YWxPZmZzZXRM
ZWZ0KCkgKyAxKSArICJweCIpOworICAgICAgICAgICAgdGhpcy5fZ2FwRWxlbWVudC5zdHlsZS5z
ZXRQcm9wZXJ0eSgibWFyZ2luLXJpZ2h0IiwgKHRoaXMuX3JlcGxhY2VCdXR0b25FbGVtZW50LnRv
dGFsT2Zmc2V0TGVmdCgpIC0gdGhpcy5fZmluZEJ1dHRvbkVsZW1lbnQudG90YWxPZmZzZXRMZWZ0
KCkpICsgInB4Iik7CiAgICAgICAgICAgICB0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50LmZvY3Vz
KCk7Ci0gICAgICAgIH0gZWxzZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5f
ZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ0b29sYmFyLXNlYXJjaC1yZXBsYWNlIik7CiAgICAg
ICAgICAgICB0aGlzLl9yZXBsYWNlRGV0YWlsc0VsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVu
Iik7CisgICAgICAgICAgICB0aGlzLl9wcmV2QnV0dG9uRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJo
aWRkZW4iKTsKKyAgICAgICAgICAgIHRoaXMuX2ZpbmRCdXR0b25FbGVtZW50LmFkZFN0eWxlQ2xh
c3MoImhpZGRlbiIpOworICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5pbnNlcnRCZWZvcmUodGhp
cy5fcmVwbGFjZUVsZW1lbnQsIHRoaXMuX3ByZXZCdXR0b25FbGVtZW50KTsKKyAgICAgICAgICAg
IHRoaXMuX2ZpbmRMYWJlbEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoIm1hcmdpbi1yaWdo
dCIpOworICAgICAgICAgICAgdGhpcy5fZ2FwRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgi
bWFyZ2luLXJpZ2h0Iik7CisgICAgICAgIH0KKyAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3Rv
clZpZXcuc2V0Rm9vdGVyRWxlbWVudCh0aGlzLl9lbGVtZW50KTsKICAgICB9LAogCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtib29sZWFufSBmaW5kTmV4dAorICAgICAqLwogICAgIF9yZXBsYWNl
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgY3VycmVudFBhbmVsID0gV2ViSW5zcGVj
dG9yLmluc3BlY3RvclZpZXcuY3VycmVudFBhbmVsKCk7CiAgICAgICAgIGN1cnJlbnRQYW5lbC5y
ZXBsYWNlU2VsZWN0aW9uV2l0aCh0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50LnZhbHVlKTsKICAg
ICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5fY3VycmVudFF1ZXJ5OwogICAgICAgICBkZWxldGUgdGhp
cy5fY3VycmVudFF1ZXJ5OwotICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKHF1ZXJ5LCB0cnVl
LCBmYWxzZSwgZmFsc2UpOworICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKHF1ZXJ5LCB0cnVl
LCBmYWxzZSk7CiAgICAgfSwKIAogICAgIF9yZXBsYWNlQWxsOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB2YXIgY3VycmVudFBhbmVsID0gV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuY3Vy
cmVudFBhbmVsKCk7Ci0gICAgICAgIGN1cnJlbnRQYW5lbC5yZXBsYWNlQWxsV2l0aCh0aGlzLl9j
dXJyZW50UXVlcnksIHRoaXMuX3JlcGxhY2VJbnB1dEVsZW1lbnQudmFsdWUpOworICAgICAgICBj
dXJyZW50UGFuZWwucmVwbGFjZUFsbFdpdGgodGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVl
LCB0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50LnZhbHVlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGJhMGIyNjZh
MjM3ZTMyNjEwODExZTgxNjNiYTVmMjYyYTQ1N2Y0OTYuLjk2M2QxZjBlYTI1MDExN2MxOWI2OTY1
NjFkMWI5NWUwZGI0MWU5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5ncy5qcwpAQCAtMTg4LDcgKzE4OCw2IEBAIFdlYkluc3BlY3Rvci5FeHBlcmlt
ZW50c1NldHRpbmdzID0gZnVuY3Rpb24oKQogICAgIHRoaXMubGl2ZU5hdGl2ZU1lbW9yeUNoYXJ0
ID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgibGl2ZU5hdGl2ZU1lbW9yeUNoYXJ0IiwgIkxpdmUg
bmF0aXZlIG1lbW9yeSBjaGFydCIpOwogICAgIHRoaXMuZmlsZVN5c3RlbUluc3BlY3Rpb24gPSB0
aGlzLl9jcmVhdGVFeHBlcmltZW50KCJmaWxlU3lzdGVtSW5zcGVjdGlvbiIsICJGaWxlU3lzdGVt
IGluc3BlY3Rpb24iKTsKICAgICB0aGlzLm1haW5UaHJlYWRNb25pdG9yaW5nID0gdGhpcy5fY3Jl
YXRlRXhwZXJpbWVudCgibWFpblRocmVhZE1vbml0b3JpbmciLCAiU2hvdyBDUFUgYWN0aXZpdHkg
aW4gVGltZWxpbmUiKTsKLSAgICB0aGlzLnNlYXJjaFJlcGxhY2UgPSB0aGlzLl9jcmVhdGVFeHBl
cmltZW50KCJzZWFyY2hSZXBsYWNlIiwgIlNlYXJjaCAvIFJlcGxhY2UiKTsKIAogICAgIHRoaXMu
X2NsZWFuVXBTZXR0aW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCBhODk5NGY5ZDc3NGEyZGRkMDMyOWMzYTc0YzA2
YWVmMzRkZGI0MGJiLi5hMzVkMzRiNDQ1YTY4MzY5NWMzOWQxNjFmNDFmZTEyM2E1MzE4ZjI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1l
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUu
anMKQEAgLTI3MCwxMiArMjcwLDkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5faW5uZXJTZXRTZWxlY3Rpb25JZk5lZWRlZCgpOwogICAgIH0s
CiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZXJJbnB1dAotICAgICAqLwot
ICAgIGJlZm9yZVRleHRDaGFuZ2VkOiBmdW5jdGlvbih1c2VySW5wdXQpCisgICAgYmVmb3JlVGV4
dENoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh1c2VySW5wdXQpCisgICAg
ICAgIGlmICghdGhpcy5faXNSZXBsYWNpbmcpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2Vh
cmNoQ29udHJvbGxlci5jYW5jZWxTZWFyY2goKTsKICAgICAgICAgdGhpcy5jbGVhck1lc3NhZ2Vz
KCk7CiAgICAgfSwKQEAgLTM1NSw3ICszNTIsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
cHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBpZiAoc2hpZnRUb0luZGV4KQogICAgICAgICAg
ICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHMgPSB0aGlzLl9zZWFyY2hSZXN1bHRzLnJvdGF0ZShz
aGlmdFRvSW5kZXgpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMs
IHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoKTsKICAgICAgICAgfQogCkBAIC00MzEsMTcgKzQy
OCwxNiBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAqLwog
ICAgIHJlcGxhY2VTZWFyY2hNYXRjaFdpdGg6IGZ1bmN0aW9uKHRleHQpCiAgICAgewotICAgICAg
ICB0aGlzLmJlZm9yZVRleHRDaGFuZ2VkKGZhbHNlKTsKLQogICAgICAgICB2YXIgcmFuZ2UgPSB0
aGlzLl9zZWFyY2hSZXN1bHRzW3RoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJbmRleF07CiAgICAg
ICAgIGlmICghcmFuZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX3RleHRF
ZGl0b3IubWFya0FuZFJldmVhbFJhbmdlKG51bGwpOwotICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0
aGlzLl90ZXh0TW9kZWwuZWRpdFJhbmdlKHJhbmdlLCB0ZXh0KTsKLSAgICAgICAgdGhpcy5hZnRl
clRleHRDaGFuZ2VkKHJhbmdlLCBuZXdSYW5nZSk7CiAKLSAgICAgICAgLy8gQ29sbGFwc2UgY3Vy
cmVudCBtYXRjaCBzbyB0aGF0IHdlIGRvbid0IHJlcGxhY2UgdGhpbmdzIHR3aWNlLiAKLSAgICAg
ICAgdGhpcy5fdGV4dEVkaXRvci5tYXJrQW5kUmV2ZWFsUmFuZ2UobmV3UmFuZ2UuY29sbGFwc2VU
b0VuZCgpKTsKKyAgICAgICAgdGhpcy5faXNSZXBsYWNpbmcgPSB0cnVlOworICAgICAgICB2YXIg
bmV3UmFuZ2UgPSB0aGlzLl90ZXh0RWRpdG9yLmVkaXRSYW5nZShyYW5nZSwgdGV4dCk7CisgICAg
ICAgIGRlbGV0ZSB0aGlzLl9pc1JlcGxhY2luZzsKKworICAgICAgICB0aGlzLl90ZXh0RWRpdG9y
LnNldFNlbGVjdGlvbihuZXdSYW5nZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNDUwLDEyICs0
NDYsMTUgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICByZXBsYWNlQWxsV2l0aDogZnVuY3Rpb24ocXVlcnksIHJlcGxhY2VtZW50KQogICAgIHsK
LSAgICAgICAgdGhpcy5iZWZvcmVUZXh0Q2hhbmdlZChmYWxzZSk7CisgICAgICAgIHRoaXMuX3Rl
eHRFZGl0b3IubWFya0FuZFJldmVhbFJhbmdlKG51bGwpOworCiAgICAgICAgIHZhciB0ZXh0ID0g
dGhpcy5fdGV4dE1vZGVsLnRleHQoKTsKICAgICAgICAgdmFyIHJhbmdlID0gdGhpcy5fdGV4dE1v
ZGVsLnJhbmdlKCk7CiAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lLmNyZWF0ZVNlYXJjaFJlZ2V4KHF1ZXJ5LCAiZyIpLCByZXBsYWNlbWVudCk7Ci0g
ICAgICAgIHZhciBuZXdSYW5nZSA9IHRoaXMuX3RleHRNb2RlbC5lZGl0UmFuZ2UocmFuZ2UsIHRl
eHQpOwotICAgICAgICB0aGlzLmFmdGVyVGV4dENoYW5nZWQocmFuZ2UsIG5ld1JhbmdlKTsKKwor
ICAgICAgICB0aGlzLl9pc1JlcGxhY2luZyA9IHRydWU7CisgICAgICAgIHRoaXMuX3RleHRFZGl0
b3IuZWRpdFJhbmdlKHJhbmdlLCB0ZXh0KTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2lzUmVwbGFj
aW5nOwogICAgIH0sCiAKICAgICBfY29sbGVjdFJlZ2V4TWF0Y2hlczogZnVuY3Rpb24ocmVnZXhP
YmplY3QpCkBAIC02NDUsNyArNjQ0LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JEZWxlZ2F0
ZUZvclNvdXJjZUZyYW1lID0gZnVuY3Rpb24oc291cmNlRnJhbWUpCiBXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvckRlbGVnYXRlRm9yU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgIGJlZm9yZVRl
eHRDaGFuZ2VkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZS5i
ZWZvcmVUZXh0Q2hhbmdlZCh0cnVlKTsKKyAgICAgICAgdGhpcy5fc291cmNlRnJhbWUuYmVmb3Jl
VGV4dENoYW5nZWQoKTsKICAgICB9LAogCiAgICAgYWZ0ZXJUZXh0Q2hhbmdlZDogZnVuY3Rpb24o
b2xkUmFuZ2UsIG5ld1JhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UZXh0RWRpdG9yLmpzCmluZGV4IDljYTgyNGQxZTM0MzRmNDZlYjk2YjcwNTkyNmJhMDBk
ZTgwZDY0YWIuLmZhNmY0ZDIwOTY1MmQ2MTIwZDE0M2NhYjQzOWU1YmEwYTVmZmM2ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanMKQEAg
LTIzMiw2ICsyMzIsMjAgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLl91cGRhdGVQYW5lbE9mZnNldHMoKTsKICAgICB9LAogCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfSByYW5nZQorICAgICAqIEBwYXJh
bSB7c3RyaW5nfSB0ZXh0CisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlRleHRSYW5nZX0K
KyAgICAgKi8KKyAgICBlZGl0UmFuZ2U6IGZ1bmN0aW9uKHJhbmdlLCB0ZXh0KQorICAgIHsKKyAg
ICAgICAgdGhpcy5fZW50ZXJJbnRlcm5hbFRleHRDaGFuZ2VNb2RlKCk7CisgICAgICAgIHRoaXMu
X3RleHRNb2RlbC5tYXJrVW5kb2FibGVTdGF0ZSgpOworICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0
aGlzLl90ZXh0TW9kZWwuZWRpdFJhbmdlKHJhbmdlLCB0ZXh0KTsKKyAgICAgICAgdGhpcy5fZXhp
dEludGVybmFsVGV4dENoYW5nZU1vZGUocmFuZ2UsIG5ld1JhbmdlKTsKKyAgICAgICAgcmV0dXJu
IG5ld1JhbmdlOworICAgIH0sCisKICAgICBfZW50ZXJJbnRlcm5hbFRleHRDaGFuZ2VNb2RlOiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9pbnRlcm5hbFRleHRDaGFuZ2VNb2RlID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmNzcwppbmRleCBmOGZhYWUxNWI2ZGI5Y2U5MzA2MjRjYjc2MTBjMjZjNDMxMDQ3YzkyLi45Y2Y5
ZjNiNjEzMDk2MmJmZmE3MjgxMWJiNGY5OWZkZDljM2VhOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0yNzMsNiArMjczLDkg
QEAgYm9keS5kZXRhY2hlZC5wbGF0Zm9ybS1tYWMtc25vd2xlb3BhcmQgI3Rvb2xiYXItZHJvcGRv
d24gewogICAgIHRvcDogMXB4OwogfQogCisudG9vbGJhci1zZWFyY2gtcmVwbGFjZSAuc2VhcmNo
LXJlcGxhY2UgeworICAgIHdpZHRoOiAxNDZweDsKK30KIC5zZWFyY2gtcmVwbGFjZTpmb2N1cyB7
CiAgICAgb3V0bGluZTogbm9uZTsKIH0KQEAgLTMwMCwxMCArMzAzLDMwIEBAIGJvZHkuZGV0YWNo
ZWQucGxhdGZvcm0tbWFjLXNub3dsZW9wYXJkICN0b29sYmFyLWRyb3Bkb3duIHsKIH0KIAogLnRv
b2xiYXItc2VhcmNoIHsKLSAgICBsaW5lLWhlaWdodDogMTlweDsKKyAgICBsaW5lLWhlaWdodDog
MThweDsKICAgICBoZWlnaHQ6IDIycHg7CiB9CiAKKy50b29sYmFyLXNlYXJjaC1yZXBsYWNlIHsK
KyAgICBoZWlnaHQ6IDQ0cHg7Cit9CisKKy50b29sYmFyLXNlYXJjaC1jbG9zZS1idXR0b24gewor
ICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgbW9ub3NwYWNlOworICAgIHBhZGRpbmc6IDNweCAwIDNw
eCA4cHg7CisgICAgZm9udC1zaXplOiAxNHB4OworICAgIGNvbG9yOiByZ2IoMTAwLCAxMDAsIDEw
MCk7CisgICAgZmxvYXQ6IHJpZ2h0OworfQorCisudG9vbGJhci1zZWFyY2gtY2xvc2UtYnV0dG9u
OmhvdmVyIHsKKyAgICBjb2xvcjogcmdiKDMwLCAzMCwgMzApOworfQorCisudG9vbGJhci1zZWFy
Y2gtY2xvc2UtYnV0dG9uOmFjdGl2ZSB7CisgICAgY29sb3I6IHJnYigxMDAsIDEwMCwgMTAwKTsK
K30KKwogLnRvb2xiYXItc2VhcmNoIGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKICAgICBtYXJnaW4tdG9wOiAtMXB4OwpAQCAtMzM0LDExICszNTcsMTMg
QEAgYm9keS5kZXRhY2hlZC5wbGF0Zm9ybS1tYWMtc25vd2xlb3BhcmQgI3Rvb2xiYXItZHJvcGRv
d24gewogICAgIHBhZGRpbmctcmlnaHQ6IDM2cHg7CiB9CiAKLS50b29sYmFyLXJlcGxhY2UtY29u
dHJvbCB7CisudG9vbGJhci1zZWFyY2gtcmVwbGFjZSAudG9vbGJhci1yZXBsYWNlLWNvbnRyb2wg
ewogICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNjMsIDE2MywgMTYzKTsKICAgICBoZWlnaHQ6
IDIwcHg7CiAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgIG1hcmdpbi1sZWZ0OiA1cHg7Cisg
ICAgbWFyZ2luLXJpZ2h0OiAycHg7CisgICAgd2lkdGg6IDI1NHB4OwogfQogCiAudG9vbGJhci1z
ZWFyY2gtbmF2aWdhdGlvbi5lbmFibGVkOmFjdGl2ZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153000</attachid>
            <date>2012-07-18 05:59:33 -0700</date>
            <delta_ts>2012-07-18 06:36:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91519-20120718165931.patch</filename>
            <type>text/plain</type>
            <size>44761</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM1NjYwMTI3YmZkOTBj
MzVhYmIzNDYwZGI3OTk3NDJmM2JkMjVkOS4uMmU1NGQ2M2QxN2Y0NjM5YWZlNWYxNjQxMmI2MDc1
NDYzYWZlM2E5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDEyLTA3LTE4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJlbW92ZSBzZWFyY2ggcmVwbGFjZSBmcm9tIGJlaGluZCBleHBlcmltZW50LCBwb2xpc2gg
dGhlIGJlaGF2aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTUxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIC0gVGhpcyBjaGFuZ2UgbWFrZXMgcmVwbGFjZSBsb29wIHdpdGggbm8gYm91bmRhcnksIHJl
bW92ZXMgdGhlIGxvb3AgcGFyYW1ldGVyCisgICAgICAgICAgZnJvbSBqdW1wVG9OZXh0L1ByZXZp
b3VzOworICAgICAgICAtIExheXMgb3V0IHJlcGxhY2UgYXMgYSBzZWNvbmQgcm93CisgICAgICAg
IC0gRml4ZXMgcmVwbGFjZSBhbGwgd2l0aCBubyBzZWFyY2ggbWF0Y2hlcworICAgICAgICAtIFNw
bGl0cyBTZWFyY2ggYW5kIFNlYXJjaCBhbmQgUmVwbGFjZQorICAgICAgICAtIEludHJvZHVjZXMg
ZXhwbGljaXQgTmV4dCAvIFByZXZpb3VzIGJ1dHRvbnMgaW4gdGhlIHNlYXJjaCBtb2RlCisgICAg
ICAgIC0gSW50cm9kdWNlcyBlZGl0UmFuZ2Ugb24gdGhlIFRleHRFZGl0b3Igc28gdGhhdCBpdCB3
YXMgcHJlc2VydmluZyB0aGUgdW5kbyBzdGFjaworICAgICAgICAgICh3ZSdsbCBuZWVkIHRvIGZp
eCBlZGl0b3Igc28gdGhhdCBpdCBkb2VzIG5vdCByZXF1aXJlIGl0KS4KKworICAgICAgICAqIEVu
Z2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFu
ZWwucHJvdG90eXBlLnBlcmZvcm1TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVQYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZS5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3Vs
dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLmp1bXBUb05leHRTZWFy
Y2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
Lmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvblBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblBh
bmVsLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRl
bnNpb25QYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uUGFuZWwucHJvdG90eXBlLmp1bXBUb1ByZXZpb3VzU2VhcmNo
UmVzdWx0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VG
cmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJv
dG90eXBlLmJlZm9yZVRleHRDaGFuZ2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5w
cm90b3R5cGUuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLmp1bXBUb1ByZXZpb3Vz
U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90
eXBlLmp1bXBUb05leHRTZWFyY2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnBlcmZv
cm1TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5qdW1wVG9O
ZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUu
anVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZS5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNlYXJjaFJl
c3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLmp1
bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlLl9lZGl0b3JDbG9zZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUuX2VkaXRvclNlbGVjdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlLnBlcmZvcm1TZWFyY2guZmluaXNoZWRDYWxsYmFjayk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLmp1bXBUb05leHRT
ZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUucmVwbGFjZVNlbGVjdGlvbldpdGgpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUucmVwbGFjZUFsbFdpdGgpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFy
Y2hDb250cm9sbGVyLnByb3RvdHlwZS5jYW5jZWxTZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLnJlc2V0U2VhcmNoKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5oYW5kbGVTaG9ydGN1dCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUuX3VwZGF0ZVNl
YXJjaE5hdmlnYXRpb25CdXR0b25TdGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNo
Q29udHJvbGxlci5wcm90b3R5cGUuX3VwZGF0ZVJlcGxhY2VWaXNpYmlsaXR5KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5fb25LZXlEb3duKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5fb25OZXh0QnV0
dG9uU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3Rv
dHlwZS5fb25QcmV2QnV0dG9uU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hD
b250cm9sbGVyLnByb3RvdHlwZS5fcGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUuX3VwZGF0ZVJlcGxhY2VEZXRhaWxzVmlzaWJp
bGl0eSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUu
X3JlcGxhY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90
eXBlLl9yZXBsYWNlQWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdz
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3MpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9yZVRleHRDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5kb0ZpbmRT
ZWFyY2hNYXRjaGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5
cGUucGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJv
dG90eXBlLnJlcGxhY2VTZWFyY2hNYXRjaFdpdGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lLnByb3RvdHlwZS5yZXBsYWNlQWxsV2l0aCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvckRlbGVnYXRlRm9yU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9yZVRleHRD
aGFuZ2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuZWRpdFJhbmdlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAgICgudG9v
bGJhci1zZWFyY2gtcmVwbGFjZSAuc2VhcmNoLXJlcGxhY2UpOgorICAgICAgICAoLnRvb2xiYXIt
c2VhcmNoKToKKyAgICAgICAgKC50b29sYmFyLXNlYXJjaC1yZXBsYWNlKToKKyAgICAgICAgKC50
b29sYmFyLXNlYXJjaC1jbG9zZS1idXR0b24pOgorICAgICAgICAoLnRvb2xiYXItc2VhcmNoLWNs
b3NlLWJ1dHRvbjpob3Zlcik6CisgICAgICAgICgudG9vbGJhci1zZWFyY2gtY2xvc2UtYnV0dG9u
OmFjdGl2ZSk6CisgICAgICAgICgudG9vbGJhci1zZWFyY2ggaW5wdXRbdHlwZT0iY2hlY2tib3gi
XSk6CisgICAgICAgICgudG9vbGJhci1zZWFyY2gtcmVwbGFjZSAudG9vbGJhci1yZXBsYWNlLWNv
bnRyb2wpOgorCiAyMDEyLTA3LTE4ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTE3NzM4KSBbRm9ybXNdIERlZmF1bHQgc3RlcCBi
YXNlIHNob3VsZCBiZSAwICg9MTk3MC0wMSkgZm9yIGlucHV0IHR5cGUgbW9udGgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA5ZWRj
NjQxNDE2YzRiMDBkMTQxNjYwOGI4OTg5YzYyNTI5OGJjOWQzLi5mNWU3NmUxOGZlYmRlZjk2NWIz
N2IxNzcxMTQ3MDNmMDlhMDc4NTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNo
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC03MjMsNCArNzIzLDUgQEAgbG9jYWxpemVkU3Ry
aW5nc1siVGltZSBFbmQiXSA9ICJUaW1lIEVuZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaW5kIl0g
PSAiRmluZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXBsYWNlIl0gPSAiUmVwbGFjZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJSZXBsYWNlIEFsbCJdID0gIlJlcGxhY2UgQWxsIjsKLWxvY2FsaXplZFN0
cmluZ3NbIlNraXAiXSA9ICJTa2lwIjsKK2xvY2FsaXplZFN0cmluZ3NbIlJlcGxhY2UgJiBGaW5k
Il0gPSAiUmVwbGFjZSAmIEZpbmQiOworbG9jYWxpemVkU3RyaW5nc1siUHJldmlvdXMiXSA9ICJQ
cmV2aW91cyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVBhbmVsLmpzCmluZGV4IDU0ZWY2M2Q2OGNmNWEwMGFkMjA3YmRmMzI2MTVjZGFjNDg5MWQ4
YTYuLmI3YWYyYTk1MWE2NDY4MTQ1OTMwMTYwYzkyZDdjMTM2MDYyZjE5YjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCkBAIC03
OCw5ICs3OCw4IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewogCiAg
ICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5Ci0gICAgICogQHBhcmFtIHtib29s
ZWFufSBsb29wCiAgICAgICovCi0gICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnksIGxv
b3ApCisgICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnkpCiAgICAgewogICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVTZWFyY2hNYXRjaGVzQ291bnQoMCwg
dGhpcyk7CiAgICAgICAgIHRoaXMuc2VhcmNoQ2FuY2VsZWQoKTsKQEAgLTEwMCwzNCArOTksMjAg
QEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0
aGlzLl9qdW1wVG9TZWFyY2hSZXN1bHQoMCk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0g
ICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9OZXh0
U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3NlYXJj
aFJlc3VsdHMgfHwgIXRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWxvb3AgJiYgdGhpcy5fY3VycmVudFNlYXJjaFJlc3Vs
dEluZGV4ICsgMSA+PSB0aGlzLl9zZWFyY2hSZXN1bHRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdGhpcy5fanVtcFRvU2Vh
cmNoUmVzdWx0KCh0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXggKyAxKSAlIHRoaXMuX3Nl
YXJjaFJlc3VsdHMubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAg
IC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xl
YW59Ci0gICAgICovCi0gICAganVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKGxv
b3ApCisgICAganVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIGlmICghdGhpcy5fc2VhcmNoUmVzdWx0cyB8fCAhdGhpcy5fc2VhcmNoUmVzdWx0cy5s
ZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCAtIDE7Ci0g
ICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKLSAgICAgICAgICAgIGlmICghbG9vcCkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChpbmRleCA9PT0gLTEpCiAgICAg
ICAgICAgICBpbmRleCA9IHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoIC0gMTsKLSAgICAgICAg
fQogICAgICAgICB0aGlzLl9qdW1wVG9TZWFyY2hSZXN1bHQoaW5kZXgpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDc0MDE4NWU5YWExZjBmNWExNDIxYjU4MjU4ZjBm
MGEzYWZmZDI5YWEuLjdmMmY4NmJlMGY0ZDYyYjJjYjZhNmMyYzhmMTYwZGFlM2RkYTU1MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5l
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFu
ZWwuanMKQEAgLTI5NCw5ICsyOTQsOCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKLSAgICAg
KiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKICAgICAgKi8KLSAgICBwZXJmb3JtU2VhcmNoOiBmdW5j
dGlvbihxdWVyeSwgbG9vcCkKKyAgICBwZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSkKICAg
ICB7CiAgICAgICAgIC8vIENhbGwgc2VhcmNoQ2FuY2VsZWQgc2luY2UgaXQgd2lsbCByZXNldCBl
dmVyeXRoaW5nIHdlIG5lZWQgYmVmb3JlIGRvaW5nIGEgbmV3IHNlYXJjaC4KICAgICAgICAgdGhp
cy5zZWFyY2hDYW5jZWxlZCgpOwpAQCAtNDkzLDQxICs0OTIsMjYgQEAgV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0g
ICAgICovCi0gICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBq
dW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRo
aXMuX3NlYXJjaFJlc3VsdHMpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgdGhpcy5faGlkZVNlYXJjaEhpZ2hsaWdodHMoKTsKLSAgICAg
ICAgaWYgKCsrdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4ID49IHRoaXMuX3NlYXJjaFJl
c3VsdHMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBpZiAoIWxvb3ApCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoKyt0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5k
ZXggPj0gdGhpcy5fc2VhcmNoUmVzdWx0cy5sZW5ndGgpCiAgICAgICAgICAgICB0aGlzLl9jdXJy
ZW50U2VhcmNoUmVzdWx0SW5kZXggPSAwOwotICAgICAgICB9Ci0gICAgICAgICAgICAKKwogICAg
ICAgICB0aGlzLl9oaWdobGlnaHRDdXJyZW50U2VhcmNoUmVzdWx0KCk7Ci0gICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AK
LSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwotICAgIGp1bXBUb1ByZXZpb3VzU2Vh
cmNoUmVzdWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3NlYXJjaFJlc3VsdHMpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
dGhpcy5faGlkZVNlYXJjaEhpZ2hsaWdodHMoKTsKLSAgICAgICAgaWYgKC0tdGhpcy5fY3VycmVu
dFNlYXJjaFJlc3VsdEluZGV4IDwgMCkgewotICAgICAgICAgICAgaWYgKCFsb29wKQotICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKC0tdGhpcy5fY3VycmVudFNlYXJj
aFJlc3VsdEluZGV4IDwgMCkKICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJ
bmRleCA9ICh0aGlzLl9zZWFyY2hSZXN1bHRzLmxlbmd0aCAtIDEpOwotICAgICAgICB9CiAKICAg
ICAgICAgdGhpcy5faGlnaGxpZ2h0Q3VycmVudFNlYXJjaFJlc3VsdCgpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RXh0ZW5zaW9uUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4
dGVuc2lvblBhbmVsLmpzCmluZGV4IGQ4MjhkMzM2ZTAwMmM3NjQ4ZDYxZDY0MTExY2MyMjhjYzUz
MWVjMDMuLjE0ODViMDk2NjY0NGNjMGRhNzE2MTI3ODczZTlmY2ZmNWM2MjAwMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5q
cwpAQCAtMTUzLDM0ICsxNTMsMjMgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblBhbmVsLnByb3Rv
dHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQotICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAogICAgICAqLwotICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0
aW9uKHF1ZXJ5LCBsb29wKQorICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5KQogICAg
IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlTZWFyY2hBY3Rp
b24odGhpcy5uYW1lLCBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLnBhbmVscy5TZWFyY2hBY3Rp
b24uUGVyZm9ybVNlYXJjaCwgcXVlcnkpOwogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJv
dG90eXBlLnBlcmZvcm1TZWFyY2guYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICB9LAogCi0g
ICAgLyoqCi0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCi0gICAgICogQHJldHVybiB7Ym9v
bGVhbn0KLSAgICAgKi8KLSAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29w
KQorICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IFdlYkluc3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIubm90aWZ5U2VhcmNoQWN0aW9uKHRoaXMubmFt
ZSwgV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5wYW5lbHMuU2VhcmNoQWN0aW9uLk5leHRTZWFy
Y2hSZXN1bHQpOwotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmp1bXBUb05l
eHRTZWFyY2hSZXN1bHQuY2FsbCh0aGlzLCBsb29wKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuanVtcFRvTmV4dFNlYXJjaFJlc3Vs
dC5jYWxsKHRoaXMpOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwotICAgIGp1bXBUb1ByZXZp
b3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNo
UmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9u
U2VydmVyLm5vdGlmeVNlYXJjaEFjdGlvbih0aGlzLm5hbWUsIFdlYkluc3BlY3Rvci5leHRlbnNp
b25BUEkucGFuZWxzLlNlYXJjaEFjdGlvbi5QcmV2aW91c1NlYXJjaFJlc3VsdCk7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQu
Y2FsbCh0aGlzLCBsb29wKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIFdlYkluc3Bl
Y3Rvci5QYW5lbC5wcm90b3R5cGUuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQuY2FsbCh0aGlz
KTsKICAgICB9LAogCiAgICAgX2FkZFN0eWxlUnVsZTogZnVuY3Rpb24oc2VsZWN0b3IsIGJvZHkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRTb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2
YVNjcmlwdFNvdXJjZUZyYW1lLmpzCmluZGV4IGFkZTA0OTFmYTdjMDhmOTgxMGJiOTg2ZjIwMzkx
YTU5NzU4NzMyYjguLjU0ZmExYTA5NjRhMzJlYzFiNzExYTY0M2U2MjU4NTZkY2Q3ZTNjNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNv
dXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2
YVNjcmlwdFNvdXJjZUZyYW1lLmpzCkBAIC0xNTQsOSArMTU0LDkgQEAgV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Jlc3RvcmVC
cmVha3BvaW50c0FmdGVyRWRpdGluZygpOwogICAgIH0sCiAKLSAgICBiZWZvcmVUZXh0Q2hhbmdl
ZDogZnVuY3Rpb24odXNlcklucHV0KQorICAgIGJlZm9yZVRleHRDaGFuZ2VkOiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9y
ZVRleHRDaGFuZ2VkLmNhbGwodGhpcywgdXNlcklucHV0KTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZS5iZWZvcmVUZXh0Q2hhbmdlZC5jYWxsKHRoaXMpOwogICAg
ICAgICB0aGlzLl9yZW1vdmVCcmVha3BvaW50c0JlZm9yZUVkaXRpbmcoKTsKICAgICB9LAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpz
CmluZGV4IDBiZmEzYmIwYzFkYzUwNDIzNjczYzg3YTJkNGU0MWQxYjAxMjNjY2YuLjczMmFmYWY1
MjlhMTkyOWY4NzRjODc4NDQwOThjN2U2ODM0ZmZiNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC0xMTY2LDMyICsxMTY2
LDE4IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuX2hpZ2hsaWdodE50aE1hdGNoZWRSZXF1ZXN0KG5ld01hdGNoZWRSZXF1ZXN0SW5kZXgs
IGZhbHNlKTsKICAgICB9LAogCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29w
Ci0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBqdW1wVG9QcmV2aW91c1Nl
YXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9QcmV2aW91c1NlYXJjaFJlc3Vs
dDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9tYXRjaGVkUmVxdWVzdHMu
bGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWxvb3AgJiYg
dGhpcy5fY3VycmVudE1hdGNoZWRSZXF1ZXN0SW5kZXggPD0gMCkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0TnRo
TWF0Y2hlZFJlcXVlc3QoKHRoaXMuX2N1cnJlbnRNYXRjaGVkUmVxdWVzdEluZGV4ICsgdGhpcy5f
bWF0Y2hlZFJlcXVlc3RzLmxlbmd0aCAtIDEpICUgdGhpcy5fbWF0Y2hlZFJlcXVlc3RzLmxlbmd0
aCwgdHJ1ZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAg
KiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAq
LwotICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKGxvb3ApCisgICAganVtcFRv
TmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9t
YXRjaGVkUmVxdWVzdHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICBpZiAoIWxvb3AgJiYgdGhpcy5fY3VycmVudE1hdGNoZWRSZXF1ZXN0SW5kZXggKyAxID49IHRo
aXMuX21hdGNoZWRSZXF1ZXN0cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodE50aE1hdGNoZWRSZXF1
ZXN0KCh0aGlzLl9jdXJyZW50TWF0Y2hlZFJlcXVlc3RJbmRleCArIDEpICUgdGhpcy5fbWF0Y2hl
ZFJlcXVlc3RzLmxlbmd0aCwgdHJ1ZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAK
ICAgICBzZWFyY2hDYW5jZWxlZDogZnVuY3Rpb24oKQpAQCAtMTQzOCwyMCArMTQyNCwxNCBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbmV0
d29ya0xvZ1ZpZXcucGVyZm9ybVNlYXJjaChzZWFyY2hRdWVyeSk7CiAgICAgfSwKIAotICAgIC8q
KgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqLwotICAgIGp1bXBUb1ByZXZp
b3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNo
UmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9uZXR3b3JrTG9nVmlldy5q
dW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdChsb29wKTsKKyAgICAgICAgdGhpcy5fbmV0d29ya0xv
Z1ZpZXcuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQoKTsKICAgICB9LAogCi0gICAgLyoqCi0g
ICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCi0gICAgICovCi0gICAganVtcFRvTmV4dFNlYXJj
aFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9uZXR3b3JrTG9nVmlldy5qdW1wVG9OZXh0U2Vh
cmNoUmVzdWx0KGxvb3ApOworICAgICAgICB0aGlzLl9uZXR3b3JrTG9nVmlldy5qdW1wVG9OZXh0
U2VhcmNoUmVzdWx0KCk7CiAgICAgfSwKIAogICAgIHNlYXJjaENhbmNlbGVkOiBmdW5jdGlvbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcwppbmRleCBhMTQ2
NDFjOGFmOTA0ODBkNDRjODYyZWYwOGEwYjBiNWNiM2RmNjgzLi43ODkxYTBiNWY1ZWUxOTdiZjUz
ZDYwN2QzMTQ4Y2Y4MDRhOGViYjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUGFuZWwuanMKQEAgLTEwOCwzMCArMTA4LDE5IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5w
cm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKLSAg
ICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKICAgICAgKi8KLSAgICBwZXJmb3JtU2VhcmNoOiBm
dW5jdGlvbihxdWVyeSwgbG9vcCkKKyAgICBwZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSkK
ICAgICB7CiAgICAgICAgIC8vIENhbGwgc2VhcmNoQ2FuY2VsZWQgc2luY2UgaXQgd2lsbCByZXNl
dCBldmVyeXRoaW5nIHdlIG5lZWQgYmVmb3JlIGRvaW5nIGEgbmV3IHNlYXJjaC4KICAgICAgICAg
dGhpcy5zZWFyY2hDYW5jZWxlZCgpOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0g
e2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmZiBvcGVyYXRp
b24gaXMgc3VjY2Vzc2Z1bAotICAgICAqLwotICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1
bmN0aW9uKGxvb3ApCisgICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFy
YW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmZiBvcGVy
YXRpb24gaXMgc3VjY2Vzc2Z1bAotICAgICAqLwotICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVz
dWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSwKIAogICAgIC8qKgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1Bh
bmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVs
LmpzCmluZGV4IDE3YzZlNTMwMGQxM2MxOWI3NzMxNGJlNWZmMmI4ZjdjMzU1NTg0NmQuLmNlMTIy
OTYyMDhiMTc5NTdhOWM5MjZkMWE1ZWEwZWVkMmUyZTg4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTczOSw5ICs3
MzksOCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAv
KioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IGxvb3AKICAgICAgKi8KLSAgICBwZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSwgbG9vcCkK
KyAgICBwZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSkKICAgICB7CiAgICAgICAgIHRoaXMu
c2VhcmNoQ2FuY2VsZWQoKTsKIApAQCAtODE2LDE0ICs4MTUsMTAgQEAgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9jdXJyZW50U2VhcmNoQ2h1
bmtJbnRlcnZhbElkZW50aWZpZXIgPSBjaHVua0ludGVydmFsSWRlbnRpZmllcjsKICAgICB9LAog
Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCi0gICAgICogQHJldHVybiB7
Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbihs
b29wKQorICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
ICAgIGlmICghdGhpcy5zaG93VmlldyB8fCAhdGhpcy5fc2VhcmNoUmVzdWx0cyB8fCAhdGhpcy5f
c2VhcmNoUmVzdWx0cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIHNob3dGaXJzdFJlc3VsdCA9IGZhbHNlOwogCkBA
IC04NTMsMTcgKzg0OCwxMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBjdXJyZW50Vmlldy5qdW1wVG9GaXJzdFNlYXJjaFJlc3VsdCgpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBjdXJyZW50Vmlldy5qdW1wVG9OZXh0U2VhcmNoUmVz
dWx0KCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBA
cGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwot
ICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29wKQorICAgIGp1bXBU
b1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRo
aXMuc2hvd1ZpZXcgfHwgIXRoaXMuX3NlYXJjaFJlc3VsdHMgfHwgIXRoaXMuX3NlYXJjaFJlc3Vs
dHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIHZhciBzaG93TGFzdFJlc3VsdCA9IGZhbHNlOwogCkBAIC04OTMsNyArODgz
LDYgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgY3VycmVudFZpZXcuanVtcFRvTGFzdFNlYXJjaFJlc3VsdCgpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBjdXJyZW50Vmlldy5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCgpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCiAgICAgX3NlYXJjaGFibGVWaWV3czogZnVuY3Rp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VzUGFuZWwuanMKaW5kZXggNzFmZjBhNTZkMDk1ZTFmMjI4N2ExNzY2ZjU5MGU5Mzk5MTdmYTJj
NS4uMTEzYjk1YmU5NTdlYmM0MTVmN2JkNmRjOWY1Zjc0NDU4NGFlMzNmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBA
IC02MzcsOSArNjM3LDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQotICAgICAqIEBwYXJh
bSB7Ym9vbGVhbn0gbG9vcAogICAgICAqLwotICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1
ZXJ5LCBsb29wKQorICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5KQogICAgIHsKICAg
ICAgICAgdGhpcy5fcmVzZXRTZWFyY2hSZXN1bHRzKCk7CiAgICAgICAgIHZhciByZWdleCA9IFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5jcmVhdGVTZWFyY2hSZWdleChxdWVyeSk7CkBAIC03NDks
MzIgKzc0OCwyMiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLl9mb3JBbGxSZXNvdXJjZVRyZWVFbGVtZW50cyhjYWxsYmFjayk7CiAgICAg
fSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1
cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rp
b24obG9vcCkKKyAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICBpZiAoIXRoaXMuY3VycmVudFNlYXJjaE1hdGNoZXMpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciBjdXJyZW50VHJlZUVs
ZW1lbnQgPSB0aGlzLnNpZGViYXJUcmVlLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CiAgICAgICAgIHZh
ciBuZXh0U2VhcmNoUmVzdWx0ID0gdGhpcy5fc2VhcmNoQ29udHJvbGxlci5uZXh0U2VhcmNoUmVz
dWx0KGN1cnJlbnRUcmVlRWxlbWVudCk7CiAgICAgICAgIHRoaXMuX3Nob3dTZWFyY2hSZXN1bHQo
bmV4dFNlYXJjaFJlc3VsdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICAv
KioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKiBAcmV0dXJuIHtib29sZWFu
fQotICAgICAqLwotICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihsb29w
KQorICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICBpZiAoIXRoaXMuY3VycmVudFNlYXJjaE1hdGNoZXMpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciBjdXJyZW50VHJlZUVsZW1l
bnQgPSB0aGlzLnNpZGViYXJUcmVlLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CiAgICAgICAgIHZhciBw
cmV2aW91c1NlYXJjaFJlc3VsdCA9IHRoaXMuX3NlYXJjaENvbnRyb2xsZXIucHJldmlvdXNTZWFy
Y2hSZXN1bHQoY3VycmVudFRyZWVFbGVtZW50KTsKICAgICAgICAgdGhpcy5fc2hvd1NlYXJjaFJl
c3VsdChwcmV2aW91c1NlYXJjaFJlc3VsdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0s
CiAKICAgICBfZm9yQWxsUmVzb3VyY2VUcmVlRWxlbWVudHM6IGZ1bmN0aW9uKGNhbGxiYWNrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5q
cwppbmRleCBjMmQ4YzAwMDAyM2JhMzM4ZDAxNjEzM2UxMTQzNzUzYTkzNDIyNzFiLi41YWFhYWFh
ZTIyODc3YzM2NmExM2NjMzgwZjEwMDYxYzdjMDBkN2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtNTczLDYgKzU3Myw3
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIC8v
IFNjcmlwdHNOYXZpZ2F0b3IgZG9lcyBub3QgbmVlZCB0byB1cGRhdGUgb24gRWRpdG9yQ2xvc2Vk
LgogICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHRWaWV3U3RhdHVzQmFySXRlbXMoKTsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIucmVzZXRTZWFyY2goKTsKICAgICB9LAog
CiAgICAgX2VkaXRvclNlbGVjdGVkOiBmdW5jdGlvbihldmVudCkKQEAgLTU4MSw2ICs1ODIsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHNv
dXJjZUZyYW1lID0gdGhpcy5fc2hvd0ZpbGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgdGhpcy5f
bmF2aWdhdG9yQ29udHJvbGxlci5oaWRlTmF2aWdhdG9yT3ZlcmxheSgpOwogICAgICAgICBzb3Vy
Y2VGcmFtZS5mb2N1cygpOworICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci5y
ZXNldFNlYXJjaCgpOwogICAgIH0sCiAKICAgICBfc2NyaXB0U2VsZWN0ZWQ6IGZ1bmN0aW9uKGV2
ZW50KQpAQCAtODc4LDkgKzg4MCw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5Ci0gICAgICog
QHBhcmFtIHtib29sZWFufSBsb29wCiAgICAgICovCi0gICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rp
b24ocXVlcnksIGxvb3ApCisgICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnkpCiAgICAg
ewogICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVTZWFyY2hNYXRj
aGVzQ291bnQoMCwgdGhpcyk7CiAKQEAgLTg5OSw1NyArOTAwLDQ2IEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIudXBkYXRlU2VhcmNoTWF0Y2hl
c0NvdW50KHNlYXJjaE1hdGNoZXMsIHRoaXMpOwotICAgICAgICAgICAgdmlldy5qdW1wVG9OZXh0
U2VhcmNoUmVzdWx0KGxvb3ApOworICAgICAgICAgICAgdmlldy5qdW1wVG9OZXh0U2VhcmNoUmVz
dWx0KCk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVD
dXJyZW50TWF0Y2hJbmRleCh2aWV3LmN1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCwgdGhpcyk7CiAg
ICAgICAgIH0KIAogICAgICAgICB0aGlzLl9zZWFyY2hWaWV3LnBlcmZvcm1TZWFyY2gocXVlcnks
IGZpbmlzaGVkQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gbG9vcAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICov
Ci0gICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9O
ZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3Nl
YXJjaFZpZXcpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFZpZXcgIT09IHRoaXMudmlzaWJsZVZpZXcpIHsK
LSAgICAgICAgICAgIHRoaXMucGVyZm9ybVNlYXJjaCh0aGlzLl9zZWFyY2hRdWVyeSwgbG9vcCk7
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB0aGlzLnBlcmZvcm1TZWFy
Y2godGhpcy5fc2VhcmNoUXVlcnkpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFZpZXcuc2hvd2luZ0xhc3RTZWFyY2hSZXN1bHQoKSkg
ewotICAgICAgICAgICAgaWYgKCFsb29wKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFZpZXcuc2hvd2luZ0xhc3RTZWFyY2hSZXN1bHQoKSkK
ICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcuanVtcFRvRmlyc3RTZWFyY2hSZXN1bHQoKTsK
LSAgICAgICAgfSBlbHNlCisgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFZp
ZXcuanVtcFRvTmV4dFNlYXJjaFJlc3VsdCgpOwogICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNo
Q29udHJvbGxlci51cGRhdGVDdXJyZW50TWF0Y2hJbmRleCh0aGlzLl9zZWFyY2hWaWV3LmN1cnJl
bnRTZWFyY2hSZXN1bHRJbmRleCwgdGhpcyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0s
CiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGxvb3AKLSAgICAgKi8KLSAgICBq
dW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdDogZnVuY3Rpb24obG9vcCkKKyAgICBqdW1wVG9QcmV2
aW91c1NlYXJjaFJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9z
ZWFyY2hWaWV3KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmICh0aGlz
Ll9zZWFyY2hWaWV3ICE9PSB0aGlzLnZpc2libGVWaWV3KSB7Ci0gICAgICAgICAgICB0aGlzLnBl
cmZvcm1TZWFyY2godGhpcy5fc2VhcmNoUXVlcnksIGxvb3ApOworICAgICAgICAgICAgdGhpcy5w
ZXJmb3JtU2VhcmNoKHRoaXMuX3NlYXJjaFF1ZXJ5KTsKICAgICAgICAgICAgIGlmICh0aGlzLl9z
ZWFyY2hWaWV3KQogICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcuanVtcFRvTGFzdFNl
YXJjaFJlc3VsdCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKHRoaXMuX3NlYXJjaFZpZXcuc2hvd2luZ0ZpcnN0U2VhcmNoUmVzdWx0KCkpIHsKLSAgICAg
ICAgICAgIGlmICghbG9vcCkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGlmICh0aGlzLl9zZWFyY2hWaWV3LnNob3dpbmdGaXJzdFNlYXJjaFJlc3VsdCgpKQogICAgICAg
ICAgICAgdGhpcy5fc2VhcmNoVmlldy5qdW1wVG9MYXN0U2VhcmNoUmVzdWx0KCk7Ci0gICAgICAg
IH0gZWxzZQorICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzLl9zZWFyY2hWaWV3Lmp1bXBU
b1ByZXZpb3VzU2VhcmNoUmVzdWx0KCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250
cm9sbGVyLnVwZGF0ZUN1cnJlbnRNYXRjaEluZGV4KHRoaXMuX3NlYXJjaFZpZXcuY3VycmVudFNl
YXJjaFJlc3VsdEluZGV4LCB0aGlzKTsKICAgICB9LApAQCAtOTY4LDcgKzk1OCw3IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoOiBmdW5jdGlvbih0ZXh0KQogICAgIHsKLSAgICAgICAgdmFyIHZpZXcgPSAv
KiogQHR5cGUge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0gKi8gdGhpcy5fc2VhcmNoVmlldzsK
KyAgICAgICAgdmFyIHZpZXcgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0g
Ki8gdGhpcy52aXNpYmxlVmlldzsKICAgICAgICAgdmlldy5yZXBsYWNlU2VhcmNoTWF0Y2hXaXRo
KHRleHQpOwogICAgIH0sCiAKQEAgLTk3OCw3ICs5NjgsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZXBsYWNlQWxsV2l0aDogZnVuY3Rp
b24ocXVlcnksIHRleHQpCiAgICAgewotICAgICAgICB2YXIgdmlldyA9IC8qKiBAdHlwZSB7V2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lfSAqLyB0aGlzLl9zZWFyY2hWaWV3OworICAgICAgICB2YXIg
dmlldyA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSAqLyB0aGlzLnZpc2li
bGVWaWV3OwogICAgICAgICB2aWV3LnJlcGxhY2VBbGxXaXRoKHF1ZXJ5LCB0ZXh0KTsKICAgICB9
LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NlYXJj
aENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NlYXJj
aENvbnRyb2xsZXIuanMKaW5kZXggNmY0ZWM3OTdjNTJjYWQ1NWQ0Yzg1YjRlNjk1ZWExMDU0YWMy
NWIyZC4uNmNhODRlYTQ4NDk4MWJlMTE2NmVmZmM5OTk5NjVjZTVmNDRjZTE2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZWFyY2hDb250cm9sbGVyLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2VhcmNoQ29udHJvbGxl
ci5qcwpAQCAtMzQsMTYgKzM0LDE4IEBACiAgKi8KIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9s
bGVyID0gZnVuY3Rpb24oKQogewotICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgidGFibGUiKTsKICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTmFtZSA9ICJ0b29sYmFyLXNlYXJj
aCI7CisgICAgdGhpcy5fZWxlbWVudC5jZWxsU3BhY2luZyA9IDA7CiAKLSAgICB2YXIgbGFiZWxF
bGVtZW50ID0gdGhpcy5fZWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIpOwotICAgIGxhYmVsRWxl
bWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmluZCIpOwotCi0gICAg
dGhpcy5fc2VhcmNoQ29udHJvbEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJk
aXYiLCAidG9vbGJhci1zZWFyY2gtY29udHJvbCIpOworICAgIHRoaXMuX2ZpcnN0Um93RWxlbWVu
dCA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoInRyIik7CisgICAgdGhpcy5fc2Vjb25kUm93
RWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoInRyIiwgImhpZGRlbiIpOwogCisg
ICAgLy8gQ29sdW1uIDEKKyAgICB0aGlzLl9zZWFyY2hDb250cm9sRWxlbWVudCA9IHRoaXMuX2Zp
cnN0Um93RWxlbWVudC5jcmVhdGVDaGlsZCgidGQiKS5jcmVhdGVDaGlsZCgic3BhbiIsICJ0b29s
YmFyLXNlYXJjaC1jb250cm9sIik7CiAgICAgdGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50ID0gdGhp
cy5fc2VhcmNoQ29udHJvbEVsZW1lbnQuY3JlYXRlQ2hpbGQoImlucHV0IiwgInNlYXJjaC1yZXBs
YWNlIik7CiAgICAgdGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LmlkID0gInNlYXJjaC1pbnB1dC1m
aWVsZCI7CisgICAgdGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJGaW5kIik7CiAKICAgICB0aGlzLl9tYXRjaGVzRWxlbWVudCA9IHRo
aXMuX3NlYXJjaENvbnRyb2xFbGVtZW50LmNyZWF0ZUNoaWxkKCJsYWJlbCIsICJzZWFyY2gtcmVz
dWx0cy1tYXRjaGVzIik7CiAgICAgdGhpcy5fbWF0Y2hlc0VsZW1lbnQuc2V0QXR0cmlidXRlKCJm
b3IiLCAic2VhcmNoLWlucHV0LWZpZWxkIik7CkBAIC02MiwzOCArNjQsNTEgQEAgV2ViSW5zcGVj
dG9yLlNlYXJjaENvbnRyb2xsZXIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fc2VhcmNoSW5wdXRF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9vbktleURvd24uYmluZCh0
aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImlucHV0IiwgdGhpcy5fb25JbnB1dC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAgICB0aGlz
Ll9yZXBsYWNlRWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iKTsKLQot
ICAgIHRoaXMuX3JlcGxhY2VDaGVja2JveEVsZW1lbnQgPSB0aGlzLl9yZXBsYWNlRWxlbWVudC5j
cmVhdGVDaGlsZCgiaW5wdXQiKTsKLSAgICB0aGlzLl9yZXBsYWNlQ2hlY2tib3hFbGVtZW50LnR5
cGUgPSAiY2hlY2tib3giOwotICAgIHRoaXMuX3JlcGxhY2VDaGVja2JveEVsZW1lbnQuaWQgPSAi
c2VhcmNoLXJlcGxhY2UtdHJpZ2dlciI7Ci0gICAgdGhpcy5fcmVwbGFjZUNoZWNrYm94RWxlbWVu
dC50YWJJbmRleCA9IC0xOwotICAgIHRoaXMuX3JlcGxhY2VDaGVja2JveEVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVSZXBsYWNlVmlzaWJpbGl0eS5iaW5kKHRo
aXMpLCBmYWxzZSk7Ci0KLSAgICB0aGlzLl9yZXBsYWNlTGFiZWxFbGVtZW50ID0gdGhpcy5fcmVw
bGFjZUVsZW1lbnQuY3JlYXRlQ2hpbGQoImxhYmVsIik7Ci0gICAgdGhpcy5fcmVwbGFjZUxhYmVs
RWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVwbGFjZSIpOwot
ICAgIHRoaXMuX3JlcGxhY2VMYWJlbEVsZW1lbnQuc2V0QXR0cmlidXRlKCJmb3IiLCAic2VhcmNo
LXJlcGxhY2UtdHJpZ2dlciIpOwotCi0gICAgdGhpcy5fcmVwbGFjZURldGFpbHNFbGVtZW50ID0g
dGhpcy5fcmVwbGFjZUVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiaGlkZGVuIik7Ci0KLSAg
ICB0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50ID0gdGhpcy5fcmVwbGFjZURldGFpbHNFbGVtZW50
LmNyZWF0ZUNoaWxkKCJpbnB1dCIsICJzZWFyY2gtcmVwbGFjZSB0b29sYmFyLXJlcGxhY2UtY29u
dHJvbCIpOworICAgIHRoaXMuX3JlcGxhY2VJbnB1dEVsZW1lbnQgPSB0aGlzLl9zZWNvbmRSb3dF
bGVtZW50LmNyZWF0ZUNoaWxkKCJ0ZCIpLmNyZWF0ZUNoaWxkKCJpbnB1dCIsICJzZWFyY2gtcmVw
bGFjZSB0b29sYmFyLXJlcGxhY2UtY29udHJvbCIpOwogICAgIHRoaXMuX3JlcGxhY2VJbnB1dEVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX29uS2V5RG93bi5iaW5kKHRo
aXMpLCB0cnVlKTsKKyAgICB0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXBsYWNlIik7CiAKLSAgICB0aGlzLl9yZXBsYWNlQnV0
dG9uRWxlbWVudCA9IHRoaXMuX3JlcGxhY2VEZXRhaWxzRWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0
dG9uIik7CisgICAgLy8gQ29sdW1uIDIKKyAgICB0aGlzLl9maW5kQnV0dG9uRWxlbWVudCA9IHRo
aXMuX2ZpcnN0Um93RWxlbWVudC5jcmVhdGVDaGlsZCgidGQiKS5jcmVhdGVDaGlsZCgiYnV0dG9u
IiwgImhpZGRlbiIpOworICAgIHRoaXMuX2ZpbmRCdXR0b25FbGVtZW50LnRleHRDb250ZW50ID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGaW5kIik7CisgICAgdGhpcy5fZmluZEJ1dHRvbkVsZW1l
bnQuZGlzYWJsZWQgPSB0cnVlOworICAgIHRoaXMuX2ZpbmRCdXR0b25FbGVtZW50LnRhYkluZGV4
ID0gLTE7CisgICAgdGhpcy5fZmluZEJ1dHRvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCB0aGlzLl9vbk5leHRCdXR0b25TZWFyY2guYmluZCh0aGlzKSwgZmFsc2UpOworCisgICAg
dGhpcy5fcmVwbGFjZUJ1dHRvbkVsZW1lbnQgPSB0aGlzLl9zZWNvbmRSb3dFbGVtZW50LmNyZWF0
ZUNoaWxkKCJ0ZCIpLmNyZWF0ZUNoaWxkKCJidXR0b24iKTsKICAgICB0aGlzLl9yZXBsYWNlQnV0
dG9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVwbGFjZSIp
OworICAgIHRoaXMuX3JlcGxhY2VCdXR0b25FbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKKyAgICB0
aGlzLl9yZXBsYWNlQnV0dG9uRWxlbWVudC50YWJJbmRleCA9IC0xOwogICAgIHRoaXMuX3JlcGxh
Y2VCdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcmVwbGFjZS5i
aW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAgICB0aGlzLl9za2lwQnV0dG9uRWxlbWVudCA9IHRoaXMu
X3JlcGxhY2VEZXRhaWxzRWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIik7Ci0gICAgdGhpcy5f
c2tpcEJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNr
aXAiKTsKLSAgICB0aGlzLl9za2lwQnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuX29uTmV4dEJ1dHRvblNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgLy8g
Q29sdW1uIDMKKyAgICB0aGlzLl9wcmV2QnV0dG9uRWxlbWVudCA9IHRoaXMuX2ZpcnN0Um93RWxl
bWVudC5jcmVhdGVDaGlsZCgidGQiKS5jcmVhdGVDaGlsZCgiYnV0dG9uIiwgImhpZGRlbiIpOwor
ICAgIHRoaXMuX3ByZXZCdXR0b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJQcmV2aW91cyIpOworICAgIHRoaXMuX3ByZXZCdXR0b25FbGVtZW50LmRpc2FibGVk
ID0gdHJ1ZTsKKyAgICB0aGlzLl9wcmV2QnV0dG9uRWxlbWVudC50YWJJbmRleCA9IC0xOworICAg
IHRoaXMuX3ByZXZCdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5f
b25QcmV2QnV0dG9uU2VhcmNoLmJpbmQodGhpcyksIGZhbHNlKTsKIAotICAgIHRoaXMuX3JlcGxh
Y2VBbGxCdXR0b25FbGVtZW50ID0gdGhpcy5fcmVwbGFjZURldGFpbHNFbGVtZW50LmNyZWF0ZUNo
aWxkKCJidXR0b24iKTsKKyAgICB0aGlzLl9yZXBsYWNlQWxsQnV0dG9uRWxlbWVudCA9IHRoaXMu
X3NlY29uZFJvd0VsZW1lbnQuY3JlYXRlQ2hpbGQoInRkIikuY3JlYXRlQ2hpbGQoImJ1dHRvbiIp
OwogICAgIHRoaXMuX3JlcGxhY2VBbGxCdXR0b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJSZXBsYWNlIEFsbCIpOwogICAgIHRoaXMuX3JlcGxhY2VBbGxCdXR0
b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcmVwbGFjZUFsbC5iaW5k
KHRoaXMpLCBmYWxzZSk7CiAKLSAgICB2YXIgY2xvc2VCdXR0b25FbGVtZW50ID0gdGhpcy5fZWxl
bWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJkcmF3ZXItaGVhZGVyLWNsb3NlLWJ1dHRvbiIpOwot
ICAgIGNsb3NlQnV0dG9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiXHUwMEQ3Iik7Ci0gICAgY2xvc2VCdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5jYW5jZWxTZWFyY2guYmluZCh0aGlzKSwgZmFsc2UpOworICAgIC8vIENvbHVt
biA0CisgICAgdGhpcy5fcmVwbGFjZUVsZW1lbnQgPSB0aGlzLl9maXJzdFJvd0VsZW1lbnQuY3Jl
YXRlQ2hpbGQoInRkIikuY3JlYXRlQ2hpbGQoInNwYW4iKTsKKworICAgIHRoaXMuX3JlcGxhY2VD
aGVja2JveEVsZW1lbnQgPSB0aGlzLl9yZXBsYWNlRWxlbWVudC5jcmVhdGVDaGlsZCgiaW5wdXQi
KTsKKyAgICB0aGlzLl9yZXBsYWNlQ2hlY2tib3hFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwor
ICAgIHRoaXMuX3JlcGxhY2VDaGVja2JveEVsZW1lbnQuaWQgPSAic2VhcmNoLXJlcGxhY2UtdHJp
Z2dlciI7CisgICAgdGhpcy5fcmVwbGFjZUNoZWNrYm94RWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX3VwZGF0ZVNlY29uZFJvd1Zpc2liaWxpdHkuYmluZCh0aGlzKSwgZmFs
c2UpOworCisgICAgdGhpcy5fcmVwbGFjZUxhYmVsRWxlbWVudCA9IHRoaXMuX3JlcGxhY2VFbGVt
ZW50LmNyZWF0ZUNoaWxkKCJsYWJlbCIpOworICAgIHRoaXMuX3JlcGxhY2VMYWJlbEVsZW1lbnQu
dGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlcGxhY2UiKTsKKyAgICB0aGlz
Ll9yZXBsYWNlTGFiZWxFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9yIiwgInNlYXJjaC1yZXBsYWNl
LXRyaWdnZXIiKTsKKworICAgIC8vIENvbHVtbiA1CisgICAgdmFyIGNhbmNlbEJ1dHRvbkVsZW1l
bnQgPSB0aGlzLl9maXJzdFJvd0VsZW1lbnQuY3JlYXRlQ2hpbGQoInRkIikuY3JlYXRlQ2hpbGQo
ImJ1dHRvbiIpOworICAgIGNhbmNlbEJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkNhbmNlbCIpOworICAgIGNhbmNlbEJ1dHRvbkVsZW1lbnQudGFiSW5k
ZXggPSAtMTsKKyAgICBjYW5jZWxCdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5jYW5jZWxTZWFyY2guYmluZCh0aGlzKSwgZmFsc2UpOwogfQogCiBXZWJJbnNwZWN0
b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CkBAIC0xMTksMTUgKzEzNCwyMCBAQCBX
ZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICgh
dGhpcy5fc2VhcmNoSXNWaXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkZWxl
dGUgdGhpcy5fc2VhcmNoSXNWaXNpYmxlOwotICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKCIi
LCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RvclZp
ZXcuc2V0Rm9vdGVyRWxlbWVudChudWxsKTsKLSAgICAgICAgdGhpcy5fcmVwbGFjZUNoZWNrYm94
RWxlbWVudC5jaGVja2VkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3RvZ2dsZVJlcGxhY2VWaXNp
YmlsaXR5KCk7CisgICAgICAgIHRoaXMucmVzZXRTZWFyY2goKTsKKyAgICB9LAorCisgICAgcmVz
ZXRTZWFyY2g6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2go
IiIsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIHRoaXMuX3VwZGF0ZVJlcGxhY2VWaXNpYmlsaXR5
KCk7CisgICAgICAgIHRoaXMuX21hdGNoZXNFbGVtZW50LnRleHRDb250ZW50ID0gIiI7CiAgICAg
fSwKIAogICAgIGRpc2FibGVTZWFyY2hVbnRpbEV4cGxpY2l0QWN0aW9uOiBmdW5jdGlvbihldmVu
dCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goIiIsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UpOworICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKCIiLCBmYWxzZSwgZmFsc2UpOwog
ICAgIH0sCiAKICAgICAvKioKQEAgLTE2MywxMCArMTgzLDkgQEAgV2ViSW5zcGVjdG9yLlNlYXJj
aENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHZhciBjdXJyZW50UGFu
ZWwgPSBXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwoKTsKIAogICAgICAg
ICAgICAgICAgIGlmIChpc01hYyAmJiBldmVudC5tZXRhS2V5ICYmICFldmVudC5jdHJsS2V5ICYm
ICFldmVudC5hbHRLZXkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFBhbmVsLmp1bXBUb1ByZXZp
b3VzU2VhcmNoUmVzdWx0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYW5l
bC5qdW1wVG9QcmV2aW91c1NlYXJjaFJlc3VsdCgpOwotICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKGN1cnJlbnRQYW5lbC5qdW1wVG9OZXh0U2VhcmNoUmVzdWx0KQorICAgICAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJy
ZW50UGFuZWwuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhbmVsLmp1bXBUb05leHRT
ZWFyY2hSZXN1bHQoKTsKICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY29uc3VtZSh0cnVlKTsK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xNzgsNiArMTk3LDkgQEAgV2Vi
SW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlID0gewogCiAgICAgX3VwZGF0ZVNl
YXJjaE5hdmlnYXRpb25CdXR0b25TdGF0ZTogZnVuY3Rpb24oZW5hYmxlZCkKICAgICB7CisgICAg
ICAgIHRoaXMuX3JlcGxhY2VCdXR0b25FbGVtZW50LmRpc2FibGVkID0gIWVuYWJsZWQ7CisgICAg
ICAgIHRoaXMuX3ByZXZCdXR0b25FbGVtZW50LmRpc2FibGVkID0gIWVuYWJsZWQ7CisgICAgICAg
IHRoaXMuX2ZpbmRCdXR0b25FbGVtZW50LmRpc2FibGVkID0gIWVuYWJsZWQ7CiAgICAgICAgIHZh
ciBwYW5lbCA9IFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpOwogICAg
ICAgICBpZiAoZW5hYmxlZCkgewogICAgICAgICAgICAgdGhpcy5fc2VhcmNoTmF2aWdhdGlvblBy
ZXZFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImVuYWJsZWQiKTsKQEAgLTIxMSwxMCArMjMzLDEzIEBA
IFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICBfdXBkYXRl
UmVwbGFjZVZpc2liaWxpdHk6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBwYW5lbCA9
IFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpOwotICAgICAgICBpZiAo
V2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Muc2VhcmNoUmVwbGFjZS5pc0VuYWJsZWQo
KSAmJiBwYW5lbC5jYW5TZWFyY2hBbmRSZXBsYWNlKCkpCisgICAgICAgIGlmIChwYW5lbCAmJiBw
YW5lbC5jYW5TZWFyY2hBbmRSZXBsYWNlKCkpCiAgICAgICAgICAgICB0aGlzLl9yZXBsYWNlRWxl
bWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKLSAgICAgICAgZWxzZQorICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIHRoaXMuX3JlcGxhY2VFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhp
ZGRlbiIpOworICAgICAgICAgICAgdGhpcy5fcmVwbGFjZUNoZWNrYm94RWxlbWVudC5jaGVja2Vk
ID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTZWNvbmRSb3dWaXNpYmlsaXR5KCk7
CisgICAgICAgIH0KICAgICB9LAogCiAgICAgX29uU2VhcmNoRmllbGRNYW51YWxGb2N1czogZnVu
Y3Rpb24oZXZlbnQpCkBAIC0yMzYsNyArMjYxLDcgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRy
b2xsZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIGlmIChpc0VudGVyS2V5KGV2ZW50KSkgewog
ICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50
KQotICAgICAgICAgICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goZXZlbnQudGFyZ2V0LnZhbHVl
LCB0cnVlLCBldmVudC5zaGlmdEtleSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgdGhpcy5fcGVy
Zm9ybVNlYXJjaChldmVudC50YXJnZXQudmFsdWUsIHRydWUsIGV2ZW50LnNoaWZ0S2V5KTsKICAg
ICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fcmVwbGFjZUlucHV0RWxl
bWVudCkKICAgICAgICAgICAgICAgICB0aGlzLl9yZXBsYWNlKCk7CiAgICAgICAgIH0KQEAgLTI0
NCwyMCArMjY5LDI0IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9
IHsKIAogICAgIF9vbklucHV0OiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMu
X3BlcmZvcm1TZWFyY2goZXZlbnQudGFyZ2V0LnZhbHVlLCBmYWxzZSwgZmFsc2UsIHRydWUpOwor
ICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKGV2ZW50LnRhcmdldC52YWx1ZSwgZmFsc2UsIGZh
bHNlKTsKICAgICB9LAogCiAgICAgX29uTmV4dEJ1dHRvblNlYXJjaDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgeworICAgICAgICBpZiAoIXRoaXMuX3NlYXJjaE5hdmlnYXRpb25OZXh0RWxlbWVudC5o
YXNTdHlsZUNsYXNzKCJlbmFibGVkIikpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8v
IFNpbXVsYXRlIG5leHQgc2VhcmNoIG9uIHNlYXJjaC1uYXZpZ2F0aW9uLWJ1dHRvbiBjbGljay4K
LSAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCh0aGlzLl9zZWFyY2hJbnB1dEVsZW1lbnQudmFs
dWUsIHRydWUsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCh0aGlz
Ll9zZWFyY2hJbnB1dEVsZW1lbnQudmFsdWUsIHRydWUsIGZhbHNlKTsKICAgICAgICAgdGhpcy5f
c2VhcmNoSW5wdXRFbGVtZW50LmZvY3VzKCk7CiAgICAgfSwKIAogICAgIF9vblByZXZCdXR0b25T
ZWFyY2g6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9zZWFyY2hO
YXZpZ2F0aW9uUHJldkVsZW1lbnQuaGFzU3R5bGVDbGFzcygiZW5hYmxlZCIpKQorICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAvLyBTaW11bGF0ZSBwcmV2aW91cyBzZWFyY2ggb24gc2VhcmNo
LW5hdmlnYXRpb24tYnV0dG9uIGNsaWNrLgotICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKHRo
aXMuX3NlYXJjaElucHV0RWxlbWVudC52YWx1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAg
IHRoaXMuX3BlcmZvcm1TZWFyY2godGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVlLCB0cnVl
LCB0cnVlKTsKICAgICAgICAgdGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LmZvY3VzKCk7CiAgICAg
fSwKIApAQCAtMjY1LDkgKzI5NCw4IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnBy
b3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKICAgICAgKiBAcGFyYW0g
e2Jvb2xlYW59IGZvcmNlU2VhcmNoCiAgICAgICogQHBhcmFtIHtib29sZWFufSBpc0JhY2t3YXJk
U2VhcmNoCi0gICAgICogQHBhcmFtIHtib29sZWFufSBsb29wCiAgICAgICovCi0gICAgX3BlcmZv
cm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5LCBmb3JjZVNlYXJjaCwgaXNCYWNrd2FyZFNlYXJjaCwg
bG9vcCkKKyAgICBfcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnksIGZvcmNlU2VhcmNoLCBp
c0JhY2t3YXJkU2VhcmNoKQogICAgIHsKICAgICAgICAgaWYgKCFxdWVyeSB8fCAhcXVlcnkubGVu
Z3RoKSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVudFF1ZXJ5OwpAQCAtMjc2LDcg
KzMwNCw3IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzW3BhbmVsTmFtZV07
CiAgICAgICAgICAgICAgICAgdmFyIGhhZEN1cnJlbnRRdWVyeSA9ICEhcGFuZWwuY3VycmVudFF1
ZXJ5OwogICAgICAgICAgICAgICAgIGRlbGV0ZSBwYW5lbC5jdXJyZW50UXVlcnk7Ci0gICAgICAg
ICAgICAgICAgaWYgKGhhZEN1cnJlbnRRdWVyeSAmJiBwYW5lbC5zZWFyY2hDYW5jZWxlZCkKKyAg
ICAgICAgICAgICAgICBpZiAoaGFkQ3VycmVudFF1ZXJ5KQogICAgICAgICAgICAgICAgICAgICBw
YW5lbC5zZWFyY2hDYW5jZWxlZCgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgdGhpcy5f
dXBkYXRlU2VhcmNoTWF0Y2hlc0NvdW50QW5kQ3VycmVudE1hdGNoSW5kZXgoMCwgLTEpOwpAQCAt
Mjg5LDkgKzMxNyw5IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIC8vIHNlYXJjaCByZXN1bHQgZm9yIGEgZ29vZCB1c2VyIGV4cGVyaWVu
Y2UuCiAgICAgICAgICAgICBpZiAoZm9yY2VTZWFyY2gpIHsKICAgICAgICAgICAgICAgICBpZiAo
IWlzQmFja3dhcmRTZWFyY2gpCi0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYW5lbC5qdW1w
VG9OZXh0U2VhcmNoUmVzdWx0KGxvb3ApOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFu
ZWwuanVtcFRvTmV4dFNlYXJjaFJlc3VsdCgpOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlz
QmFja3dhcmRTZWFyY2gpCi0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYW5lbC5qdW1wVG9Q
cmV2aW91c1NlYXJjaFJlc3VsdChsb29wKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFBh
bmVsLmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTMwMiwxNiArMzMwLDI5IEBAIFdlYkluc3BlY3Rv
ci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fY3VycmVudFF1
ZXJ5ID0gcXVlcnk7CiAKICAgICAgICAgY3VycmVudFBhbmVsLmN1cnJlbnRRdWVyeSA9IHF1ZXJ5
OwotICAgICAgICBjdXJyZW50UGFuZWwucGVyZm9ybVNlYXJjaChxdWVyeSwgbG9vcCk7CisgICAg
ICAgIGN1cnJlbnRQYW5lbC5wZXJmb3JtU2VhcmNoKHF1ZXJ5KTsKICAgICB9LAogCi0gICAgX3Rv
Z2dsZVJlcGxhY2VWaXNpYmlsaXR5OiBmdW5jdGlvbigpCisgICAgX3VwZGF0ZVNlY29uZFJvd1Zp
c2liaWxpdHk6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGlmICghdGhpcy5fc2VhcmNoSXNW
aXNpYmxlKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAodGhpcy5fcmVwbGFjZUNo
ZWNrYm94RWxlbWVudC5jaGVja2VkKSB7Ci0gICAgICAgICAgICB0aGlzLl9yZXBsYWNlRGV0YWls
c0VsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7CisgICAgICAgICAgICB0aGlzLl9l
bGVtZW50LmFkZFN0eWxlQ2xhc3MoInRvb2xiYXItc2VhcmNoLXJlcGxhY2UiKTsKKyAgICAgICAg
ICAgIHRoaXMuX3NlY29uZFJvd0VsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7Cisg
ICAgICAgICAgICB0aGlzLl9wcmV2QnV0dG9uRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRk
ZW4iKTsKKyAgICAgICAgICAgIHRoaXMuX2ZpbmRCdXR0b25FbGVtZW50LnJlbW92ZVN0eWxlQ2xh
c3MoImhpZGRlbiIpOworICAgICAgICAgICAgdGhpcy5fcmVwbGFjZUNoZWNrYm94RWxlbWVudC50
YWJJbmRleCA9IC0xOwogICAgICAgICAgICAgdGhpcy5fcmVwbGFjZUlucHV0RWxlbWVudC5mb2N1
cygpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3JlcGxhY2VEZXRhaWxzRWxl
bWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRoaXMuX2VsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygidG9vbGJhci1zZWFyY2gtcmVwbGFj
ZSIpOworICAgICAgICAgICAgdGhpcy5fc2Vjb25kUm93RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJo
aWRkZW4iKTsKKyAgICAgICAgICAgIHRoaXMuX3ByZXZCdXR0b25FbGVtZW50LmFkZFN0eWxlQ2xh
c3MoImhpZGRlbiIpOworICAgICAgICAgICAgdGhpcy5fZmluZEJ1dHRvbkVsZW1lbnQuYWRkU3R5
bGVDbGFzcygiaGlkZGVuIik7CisgICAgICAgICAgICB0aGlzLl9yZXBsYWNlQ2hlY2tib3hFbGVt
ZW50LnRhYkluZGV4ID0gMDsKKyAgICAgICAgICAgIHRoaXMuX3NlYXJjaElucHV0RWxlbWVudC5m
b2N1cygpOworICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LnNl
dEZvb3RlckVsZW1lbnQodGhpcy5fZWxlbWVudCk7CiAgICAgfSwKIAogICAgIF9yZXBsYWNlOiBm
dW5jdGlvbigpCkBAIC0zMjAsMTMgKzM2MSwxMyBAQCBXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJv
bGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGN1cnJlbnRQYW5lbC5yZXBsYWNlU2VsZWN0aW9u
V2l0aCh0aGlzLl9yZXBsYWNlSW5wdXRFbGVtZW50LnZhbHVlKTsKICAgICAgICAgdmFyIHF1ZXJ5
ID0gdGhpcy5fY3VycmVudFF1ZXJ5OwogICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVudFF1ZXJ5
OwotICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKHF1ZXJ5LCB0cnVlLCBmYWxzZSwgZmFsc2Up
OworICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKHF1ZXJ5LCB0cnVlLCBmYWxzZSk7CiAgICAg
fSwKIAogICAgIF9yZXBsYWNlQWxsOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgY3Vy
cmVudFBhbmVsID0gV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuY3VycmVudFBhbmVsKCk7Ci0g
ICAgICAgIGN1cnJlbnRQYW5lbC5yZXBsYWNlQWxsV2l0aCh0aGlzLl9jdXJyZW50UXVlcnksIHRo
aXMuX3JlcGxhY2VJbnB1dEVsZW1lbnQudmFsdWUpOworICAgICAgICBjdXJyZW50UGFuZWwucmVw
bGFjZUFsbFdpdGgodGhpcy5fc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVlLCB0aGlzLl9yZXBsYWNl
SW5wdXRFbGVtZW50LnZhbHVlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGJhMGIyNjZhMjM3ZTMyNjEwODExZTgx
NjNiYTVmMjYyYTQ1N2Y0OTYuLjk2M2QxZjBlYTI1MDExN2MxOWI2OTY1NjFkMWI5NWUwZGI0MWU5
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGlu
Z3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5q
cwpAQCAtMTg4LDcgKzE4OCw2IEBAIFdlYkluc3BlY3Rvci5FeHBlcmltZW50c1NldHRpbmdzID0g
ZnVuY3Rpb24oKQogICAgIHRoaXMubGl2ZU5hdGl2ZU1lbW9yeUNoYXJ0ID0gdGhpcy5fY3JlYXRl
RXhwZXJpbWVudCgibGl2ZU5hdGl2ZU1lbW9yeUNoYXJ0IiwgIkxpdmUgbmF0aXZlIG1lbW9yeSBj
aGFydCIpOwogICAgIHRoaXMuZmlsZVN5c3RlbUluc3BlY3Rpb24gPSB0aGlzLl9jcmVhdGVFeHBl
cmltZW50KCJmaWxlU3lzdGVtSW5zcGVjdGlvbiIsICJGaWxlU3lzdGVtIGluc3BlY3Rpb24iKTsK
ICAgICB0aGlzLm1haW5UaHJlYWRNb25pdG9yaW5nID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgi
bWFpblRocmVhZE1vbml0b3JpbmciLCAiU2hvdyBDUFUgYWN0aXZpdHkgaW4gVGltZWxpbmUiKTsK
LSAgICB0aGlzLnNlYXJjaFJlcGxhY2UgPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJzZWFyY2hS
ZXBsYWNlIiwgIlNlYXJjaCAvIFJlcGxhY2UiKTsKIAogICAgIHRoaXMuX2NsZWFuVXBTZXR0aW5n
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VG
cmFtZS5qcwppbmRleCBhODk5NGY5ZDc3NGEyZGRkMDMyOWMzYTc0YzA2YWVmMzRkZGI0MGJiLi4y
MDM3MTg2MTIzMDVjNWViYTViYTk0NDg3MDBlNGQ1ZDMxM2Y1MzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTI3MCwxMiAr
MjcwLDkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5faW5uZXJTZXRTZWxlY3Rpb25JZk5lZWRlZCgpOwogICAgIH0sCiAKLSAgICAvKioKLSAg
ICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZXJJbnB1dAotICAgICAqLwotICAgIGJlZm9yZVRleHRD
aGFuZ2VkOiBmdW5jdGlvbih1c2VySW5wdXQpCisgICAgYmVmb3JlVGV4dENoYW5nZWQ6IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh1c2VySW5wdXQpCisgICAgICAgIGlmICghdGhpcy5f
aXNSZXBsYWNpbmcpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci5j
YW5jZWxTZWFyY2goKTsKICAgICAgICAgdGhpcy5jbGVhck1lc3NhZ2VzKCk7CiAgICAgfSwKQEAg
LTM1NSw3ICszNTIsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewog
CiAgICAgICAgICAgICBpZiAoc2hpZnRUb0luZGV4KQogICAgICAgICAgICAgICAgIHRoaXMuX3Nl
YXJjaFJlc3VsdHMgPSB0aGlzLl9zZWFyY2hSZXN1bHRzLnJvdGF0ZShzaGlmdFRvSW5kZXgpOwot
ICAgICAgICAgICAgCisKICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMsIHRoaXMuX3NlYXJjaFJl
c3VsdHMubGVuZ3RoKTsKICAgICAgICAgfQogCkBAIC00MzEsMTcgKzQyOCwxNiBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHJlcGxhY2VTZWFy
Y2hNYXRjaFdpdGg6IGZ1bmN0aW9uKHRleHQpCiAgICAgewotICAgICAgICB0aGlzLmJlZm9yZVRl
eHRDaGFuZ2VkKGZhbHNlKTsKLQogICAgICAgICB2YXIgcmFuZ2UgPSB0aGlzLl9zZWFyY2hSZXN1
bHRzW3RoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJbmRleF07CiAgICAgICAgIGlmICghcmFuZ2Up
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IubWFya0FuZFJl
dmVhbFJhbmdlKG51bGwpOwotICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlzLl90ZXh0TW9kZWwu
ZWRpdFJhbmdlKHJhbmdlLCB0ZXh0KTsKLSAgICAgICAgdGhpcy5hZnRlclRleHRDaGFuZ2VkKHJh
bmdlLCBuZXdSYW5nZSk7CiAKLSAgICAgICAgLy8gQ29sbGFwc2UgY3VycmVudCBtYXRjaCBzbyB0
aGF0IHdlIGRvbid0IHJlcGxhY2UgdGhpbmdzIHR3aWNlLiAKLSAgICAgICAgdGhpcy5fdGV4dEVk
aXRvci5tYXJrQW5kUmV2ZWFsUmFuZ2UobmV3UmFuZ2UuY29sbGFwc2VUb0VuZCgpKTsKKyAgICAg
ICAgdGhpcy5faXNSZXBsYWNpbmcgPSB0cnVlOworICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlz
Ll90ZXh0RWRpdG9yLmVkaXRSYW5nZShyYW5nZSwgdGV4dCk7CisgICAgICAgIGRlbGV0ZSB0aGlz
Ll9pc1JlcGxhY2luZzsKKworICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnNldFNlbGVjdGlvbihu
ZXdSYW5nZS5jb2xsYXBzZVRvRW5kKCkpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTQ1MCwxMiAr
NDQ2LDE1IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICov
CiAgICAgcmVwbGFjZUFsbFdpdGg6IGZ1bmN0aW9uKHF1ZXJ5LCByZXBsYWNlbWVudCkKICAgICB7
Ci0gICAgICAgIHRoaXMuYmVmb3JlVGV4dENoYW5nZWQoZmFsc2UpOworICAgICAgICB0aGlzLl90
ZXh0RWRpdG9yLm1hcmtBbmRSZXZlYWxSYW5nZShudWxsKTsKKwogICAgICAgICB2YXIgdGV4dCA9
IHRoaXMuX3RleHRNb2RlbC50ZXh0KCk7CiAgICAgICAgIHZhciByYW5nZSA9IHRoaXMuX3RleHRN
b2RlbC5yYW5nZSgpOwogICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZS5jcmVhdGVTZWFyY2hSZWdleChxdWVyeSwgImciKSwgcmVwbGFjZW1lbnQpOwot
ICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlzLl90ZXh0TW9kZWwuZWRpdFJhbmdlKHJhbmdlLCB0
ZXh0KTsKLSAgICAgICAgdGhpcy5hZnRlclRleHRDaGFuZ2VkKHJhbmdlLCBuZXdSYW5nZSk7CisK
KyAgICAgICAgdGhpcy5faXNSZXBsYWNpbmcgPSB0cnVlOworICAgICAgICB0aGlzLl90ZXh0RWRp
dG9yLmVkaXRSYW5nZShyYW5nZSwgdGV4dCk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9pc1JlcGxh
Y2luZzsKICAgICB9LAogCiAgICAgX2NvbGxlY3RSZWdleE1hdGNoZXM6IGZ1bmN0aW9uKHJlZ2V4
T2JqZWN0KQpAQCAtNjQ1LDcgKzY0NCw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yRGVsZWdh
dGVGb3JTb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKHNvdXJjZUZyYW1lKQogV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JEZWxlZ2F0ZUZvclNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICBiZWZvcmVU
ZXh0Q2hhbmdlZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fc291cmNlRnJhbWUu
YmVmb3JlVGV4dENoYW5nZWQodHJ1ZSk7CisgICAgICAgIHRoaXMuX3NvdXJjZUZyYW1lLmJlZm9y
ZVRleHRDaGFuZ2VkKCk7CiAgICAgfSwKIAogICAgIGFmdGVyVGV4dENoYW5nZWQ6IGZ1bmN0aW9u
KG9sZFJhbmdlLCBuZXdSYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGV4dEVkaXRvci5qcwppbmRleCA5Y2E4MjRkMWUzNDM0ZjQ2ZWI5NmI3MDU5MjZiYTAw
ZGU4MGQ2NGFiLi5mYTZmNGQyMDk2NTJkNjEyMGQxNDNjYWI0MzllNWJhMGE1ZmZjNmQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9yLmpzCkBA
IC0yMzIsNiArMjMyLDIwIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fdXBkYXRlUGFuZWxPZmZzZXRzKCk7CiAgICAgfSwKIAorICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRSYW5nZX0gcmFuZ2UKKyAgICAgKiBAcGFy
YW0ge3N0cmluZ30gdGV4dAorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9
CisgICAgICovCisgICAgZWRpdFJhbmdlOiBmdW5jdGlvbihyYW5nZSwgdGV4dCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX2VudGVySW50ZXJuYWxUZXh0Q2hhbmdlTW9kZSgpOworICAgICAgICB0aGlz
Ll90ZXh0TW9kZWwubWFya1VuZG9hYmxlU3RhdGUoKTsKKyAgICAgICAgdmFyIG5ld1JhbmdlID0g
dGhpcy5fdGV4dE1vZGVsLmVkaXRSYW5nZShyYW5nZSwgdGV4dCk7CisgICAgICAgIHRoaXMuX2V4
aXRJbnRlcm5hbFRleHRDaGFuZ2VNb2RlKHJhbmdlLCBuZXdSYW5nZSk7CisgICAgICAgIHJldHVy
biBuZXdSYW5nZTsKKyAgICB9LAorCiAgICAgX2VudGVySW50ZXJuYWxUZXh0Q2hhbmdlTW9kZTog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5faW50ZXJuYWxUZXh0Q2hhbmdlTW9kZSA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5jc3MKaW5kZXggZjhmYWFlMTViNmRiOWNlOTMwNjI0Y2I3NjEwYzI2YzQzMTA0N2M5Mi4uYTlh
MGVjNTc3NzJhZjJmZDA5OWRhNTZmNTVlMWM2NzY5ZTllZTBkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwpAQCAtMjY5LDE0ICsyNjks
MjAgQEAgYm9keS5kZXRhY2hlZC5wbGF0Zm9ybS1tYWMtc25vd2xlb3BhcmQgI3Rvb2xiYXItZHJv
cGRvd24gewogICAgIHBhZGRpbmc6IDAgMnB4OwogICAgIG1hcmdpbjogMDsKICAgICB3aWR0aDog
MTY1cHg7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHRvcDogMXB4OwogfQogCiAuc2Vh
cmNoLXJlcGxhY2U6Zm9jdXMgewogICAgIG91dGxpbmU6IG5vbmU7CiB9CiAKKy50b29sYmFyLXNl
YXJjaCB7CisgICAgYm9yZGVyLXNwYWNpbmc6IDFweDsKK30KKworLnRvb2xiYXItc2VhcmNoIHRk
IHsKKyAgICBwYWRkaW5nOiAwIDVweCAwIDA7Cit9CisKIC50b29sYmFyLXNlYXJjaC1uYXZpZ2F0
aW9uLWNvbnRyb2xzIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgdG9wOiAwOwpAQCAt
Mjk5LDExICszMDUsNiBAQCBib2R5LmRldGFjaGVkLnBsYXRmb3JtLW1hYy1zbm93bGVvcGFyZCAj
dG9vbGJhci1kcm9wZG93biB7CiAgICAgb3BhY2l0eTogMS4wOwogfQogCi0udG9vbGJhci1zZWFy
Y2ggewotICAgIGxpbmUtaGVpZ2h0OiAxOXB4OwotICAgIGhlaWdodDogMjJweDsKLX0KLQogLnRv
b2xiYXItc2VhcmNoIGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKICAgICBtYXJnaW4tdG9wOiAtMXB4OwpAQCAtMzE0LDkgKzMxNSwxMCBAQCBib2R5LmRl
dGFjaGVkLnBsYXRmb3JtLW1hYy1zbm93bGVvcGFyZCAjdG9vbGJhci1kcm9wZG93biB7CiAudG9v
bGJhci1zZWFyY2ggYnV0dG9uIHsKICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTYzLCAxNjMs
IDE2Myk7CiAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKLSAgICBtYXJnaW46IDAgMCAwIDZweDsK
KyAgICBtYXJnaW46IDAgNnB4OwogICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICBiYWNrZ3JvdW5k
LWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChyZ2IoMjQxLCAyNDEsIDI0MSksIHJnYigy
MjAsIDIyMCwgMjIwKSk7CisgICAgd2lkdGg6IDEwMCU7CiB9CiAKIC50b29sYmFyLXNlYXJjaCBi
dXR0b246YWN0aXZlIHsKQEAgLTMyOCwxNyArMzMwLDE2IEBAIGJvZHkuZGV0YWNoZWQucGxhdGZv
cm0tbWFjLXNub3dsZW9wYXJkICN0b29sYmFyLWRyb3Bkb3duIHsKICAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICAgYm9yZGVyOiAxcHggc29s
aWQgcmdiKDE2MywgMTYzLCAxNjMpOwotICAgIG1hcmdpbjogMXB4IDJweCAxcHggNXB4OwogICAg
IGhlaWdodDogMjBweDsKICAgICBib3JkZXItcmFkaXVzOiAycHg7Ci0gICAgcGFkZGluZy1yaWdo
dDogMzZweDsKKyAgICBwYWRkaW5nLXRvcDogMXB4OwogfQogCiAudG9vbGJhci1yZXBsYWNlLWNv
bnRyb2wgewogICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNjMsIDE2MywgMTYzKTsKICAgICBo
ZWlnaHQ6IDIwcHg7CiAgICAgYm9yZGVyLXJhZGl1czogMnB4OwotICAgIG1hcmdpbi1sZWZ0OiA1
cHg7CisgICAgd2lkdGg6IDEwMCU7CiB9CiAKIC50b29sYmFyLXNlYXJjaC1uYXZpZ2F0aW9uLmVu
YWJsZWQ6YWN0aXZlIHsKQEAgLTI4NjYsNSArMjg2Nyw0IEBAIGJvZHkucGxhdGZvcm0tbWFjICNk
cmF3ZXItc3RhdHVzLWJhciAuc2VhcmNoLXN0YXR1cy1iYXItcHJvZ3Jlc3MgewogICAgIHJpZ2h0
OiAwOwogICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICBoZWlnaHQ6IGF1dG87Ci0gICAgcGFkZGlu
Zy1sZWZ0OiA1cHg7CiB9Cg==
</data>
<flag name="review"
          id="161832"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>