<?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>142407</bug_id>
          
          <creation_ts>2015-03-06 11:51:04 -0800</creation_ts>
          <short_desc>Web Inspector: unify resizer implementations used by DataGrid and Sidebar</short_desc>
          <delta_ts>2015-03-24 13:42:27 -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</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1075040</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-03-06 11:51:04 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075041</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-03-06 11:51:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/20073999&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075045</commentid>
    <comment_count>2</comment_count>
      <attachid>248084</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-03-06 11:58:33 -0800</bug_when>
    <thetext>Created attachment 248084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075047</commentid>
    <comment_count>3</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-03-06 12:01:03 -0800</bug_when>
    <thetext>This patch doesn&apos;t move over the following resizer interactions:

 - Moving undocked inspector window by its fake titlebar
 - Resizing docked inspector (bottom and left dock)
 - Resizing the quick console/split content browser
 - Timeline selection range and center handles

Only the first one should require significant additions to Resizer.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075049</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-03-06 12:06:36 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; This patch doesn&apos;t move over the following resizer interactions:
&gt; 
&gt;  - Moving undocked inspector window by its fake titlebar
&gt;  - Resizing docked inspector (bottom and left dock)
&gt;  - Resizing the quick console/split content browser
&gt;  - Timeline selection range and center handles
&gt; 
&gt; Only the first one should require significant additions to Resizer.js

Oh, there&apos;s also a UI-less DragToAdjustController that does some drag related work for sliders in the gradient editor, and drag-to-adjust in the styles editor. The controller seems fine for adjusting numbers up/down, and probably overkill for manipulating dividers/sliders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075121</commentid>
    <comment_count>5</comment_count>
      <attachid>248084</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-03-06 15:33:46 -0800</bug_when>
    <thetext>Comment on attachment 248084
Patch

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

Looks good!

&gt; Source/WebInspectorUI/UserInterface/Views/DataGrid.js:115
&gt; +WebInspector.DataGrid.LeftNeighboringColumnIDSymbol = Symbol(&quot;left-neighboring-column-id&quot;);

Nit: Identifier not ID

&gt; Source/WebInspectorUI/UserInterface/Views/Resizer.js:48
&gt; +    Horizontal: &quot;resizer-rule-orientation-horizontal&quot;,
&gt; +    Vertical: &quot;resizer-rule-orientation-vertical&quot;,

Symbol!

&gt; Source/WebInspectorUI/UserInterface/Views/Sidebar.js:41
&gt; +    var resizerDelegate = this;

Not sure this line is needed. It is not super helpful, like it would be for booleans.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079693</commentid>
    <comment_count>6</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-03-24 13:42:27 -0700</bug_when>
    <thetext>Committed r181903: &lt;http://trac.webkit.org/changeset/181903&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248084</attachid>
            <date>2015-03-06 11:58:33 -0800</date>
            <delta_ts>2015-03-06 15:33:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142407-20150306115812.patch</filename>
            <type>text/plain</type>
            <size>27069</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAw
ZDk1YmQ1MjY0ZTVhYTI5MTBmZTI0ZjkwNGQ4ODhiZmJlMzIwZjdhLi4wMzI2ZmRhNjM1NGNkZTEx
MGQyNWUwYWIzMzE4ODZkOTIyMDNhYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxNS0wMy0wNiAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdW5pZnkgcmVzaXplciBpbXBsZW1lbnRh
dGlvbnMgdXNlZCBieSBEYXRhR3JpZCBhbmQgU2lkZWJhcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQm90aCBvZiB0aGVzZSBpbXBsZW1lbnRhdGlvbnMg
ZG8gdGhlIHNhbWUgdGhpbmcgc2xpZ2h0bHkgZGlmZmVyZW50bHkuIFVuaWZ5IHRoZSBjb2RlCisg
ICAgICAgIGFuZCB1c2UgdGhlICJnbGFzcyBwYW5lIiB0ZWNobmlxdWUgdG8gcHJlc2VydmUgY3Vy
c29yIHdoaWxlIGRyYWdnaW5nIG92ZXIgbGlua3Mgb3IgdGV4dC4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcGxlbWVudHMgdmVydGljYWwgYW5kIGhvcml6b250YWwgcnVsZSBvcmllbnRhdGlvbnMu
IEZ1cnRoZXIgcmVmYWN0b3JpbmdzCisgICAgICAgIHRvIHVzZSB0aGlzIGNsYXNzIG1heSBuZWVk
IHRvIGFkZCAiSW5kZXRlcm1pbmF0ZSIgb3JpZW50YXRpb24gdG8gc3VwcG9ydCBtb3ZpbmcgdGhl
IGluc3BlY3RvcgorICAgICAgICB3aW5kb3cgYnkgaXRzIGZha2UgdG9vbGJhciBlbGVtZW50Lgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9EYXRhR3JpZC5jc3M6CisgICAgICAgICguZGF0YS1ncmlkIC5yZXNpemVyKToK
KyAgICAgICAgKC5kYXRhLWdyaWQtcmVzaXplcik6IERlbGV0ZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qczogU3RvcmUgUmVzaXplciBpbnN0YW5jZXMgcmF0aGVy
IHRoYW4gcmVzaXplciBlbGVtZW50cy4KKyAgICAgICAgVXNlIHN5bWJvbHMgdG8gc2VjcmV0bHkg
c3RvcmUgbmVpZ2hib3IgY29sdW1uIGlkcyBvbiB0aGUgcmVzaXplciBvYmplY3RzLiBTdG9wIHVz
aW5nCisgICAgICAgIFdlYkluc3BlY3Rvci5lbGVtZW50RHJhZ1N0YXJ0LCBhcyBJIHdvdWxkIGxp
a2UgdG8gZGVwcmVjYXRlIGl0IGluIGZhdm9yIG9mIFJlc2l6ZXIgaW5zdGFuY2VzLgorCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFH
cmlkLnByb3RvdHlwZS5fcG9zaXRpb25SZXNpemVyRWxlbWVudHMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZS5yZXNpemVyRHJhZ1N0YXJ0ZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZS5yZXNpemVyRHJhZ2dpbmcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZS5yZXNpemVyRHJhZ0VuZGVkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUuX3N0YXJ0UmVzaXplckRyYWdn
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUu
X3Jlc2l6ZXJEcmFnZ2luZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdy
aWQucHJvdG90eXBlLl9lbmRSZXNpemVyRHJhZ2dpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvUmVzaXplci5jc3M6CisgICAgICAgICgucmVzaXplcik6CisgICAg
ICAgICgucmVzaXplci52ZXJ0aWNhbC1ydWxlKToKKyAgICAgICAgKC5yZXNpemVyLmhvcml6b250
YWwtcnVsZSk6CisgICAgICAgICguZ2xhc3MtcGFuZS1mb3ItZHJhZyk6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9SZXNpemVyLmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNpemVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNpemVyLnByb3RvdHlwZS5nZXQg
ZWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzaXplci5wcm90b3R5cGUuZ2V0IG9y
aWVudGF0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNpemVyLnByb3RvdHlwZS5nZXQg
aW5pdGlhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNpemVyLnByb3RvdHlw
ZS5fY3VycmVudFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNpemVyLnByb3Rv
dHlwZS5fcmVzaXplck1vdXNlRG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzaXplci5w
cm90b3R5cGUuX3Jlc2l6ZXJNb3VzZU1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNp
emVyLnByb3RvdHlwZS5fcmVzaXplck1vdXNlVXApOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvU2lkZWJhci5jc3M6CisgICAgICAgICguc2lkZWJhciA+IC5yZXNpemVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NpZGViYXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2lkZWJhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhci5wcm90
b3R5cGUucmVzaXplckRyYWdTdGFydGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFy
LnByb3RvdHlwZS5yZXNpemVyRHJhZ2dpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGVi
YXIucHJvdG90eXBlLnJlc2l6ZXJEcmFnRW5kZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNp
ZGViYXIucHJvdG90eXBlLl9uYXZpZ2F0aW9uSXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TaWRlYmFyLnByb3RvdHlwZS5fcmVzaXplck1vdXNlRG93bik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhci5wcm90b3R5cGUuX3Jlc2l6ZXJNb3VzZU1vdmVk
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyLnByb3RvdHlwZS5fcmVz
aXplck1vdXNlVXApOiBEZWxldGVkLgorCiAyMDE1LTAzLTA0ICBCcmlhbiBKLiBCdXJnICA8YnVy
Z0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZVZp
ZXdzIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gYSBDb250ZW50Vmlld0NvbnRhaW5lcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDY5Yzk4Y2U1
NmNmMmMwZjNkYWRjMzJmMjJjODk2OTM2NWFiYjEwYTEuLmM4ZjQ4M2E3ZWJlNTg0NjI4NjI2OGZl
MDZmYzEyZjExMzY2MmFlOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9NYWluLmh0bWwKQEAgLTExMSw2ICsxMTEsNyBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvUXVpY2tDb25zb2xlLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJWaWV3cy9SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtLmNzcyI+CiAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9SZXBsYXlEYXNoYm9hcmRWaWV3LmNz
cyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9SZXNpemVyLmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9SZXNvdXJjZUljb25zLmNz
cyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9SZXNvdXJjZVNpZGVi
YXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvUmVz
b3VyY2VUcmVlRWxlbWVudC5jc3MiPgpAQCAtNDUxLDYgKzQ1Miw3IEBACiAgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL1F1aWNrQ29uc29sZU5hdmlnYXRpb25CYXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUmVwbGF5RGFzaGJvYXJkVmlldy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Jlc2l6ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJWaWV3cy9SZXNvdXJjZUNsdXN0ZXJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Jlc291cmNlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RhdGFHcmlkLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RhdGFHcmlkLmNzcwppbmRleCA0MTY0ODRjMTc4ZDQ5ZDQzZmRhNmFkY2Q3MzQxNWMy
ZTViZjg2NjY3Li43OWFiODNjY2MyZGMxMmIwZjg3ZTI4NGQ5MDYzYjhiMjM4YjMyMzA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3Jp
ZC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0
YUdyaWQuY3NzCkBAIC0zMDIsMTEgKzMwMiw2IEBAIGJvZHkubWFjLXBsYXRmb3JtLmxlZ2FjeSAu
ZGF0YS1ncmlkOmZvY3VzIHRyLnNlbGVjdGVkIHsKICAgICBkaXNwbGF5OiBibG9jazsKIH0KIAot
LmRhdGEtZ3JpZC1yZXNpemVyIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAw
OwotICAgIGJvdHRvbTogMDsKLSAgICB3aWR0aDogNXB4OworLmRhdGEtZ3JpZCAucmVzaXplciB7
CiAgICAgei1pbmRleDogNTAwOwotICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMK
aW5kZXggNjIzNWM5ZmZjZWFkNWY4Yjk1NzNlNzI4OTU0NmZiZjExYWY1YzY1YS4uZGUyZWI5ZGRl
MTllNzVmZTVjMzkzODE2MDM3YTRhZDFjNDdjMGJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMKQEAgLTQxLDcgKzQx
LDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkID0gZnVuY3Rpb24oY29sdW1uc0RhdGEsIGVkaXRD
YWxsYmFjaywgZGVsZXRlQ2FsbGJhY2ssIHByZWYKICAgICB0aGlzLnNlbGVjdGVkID0gZmFsc2U7
CiAgICAgdGhpcy5kYXRhR3JpZCA9IHRoaXM7CiAgICAgdGhpcy5pbmRlbnRXaWR0aCA9IDE1Owot
ICAgIHRoaXMucmVzaXplckVsZW1lbnRzID0gW107CisgICAgdGhpcy5yZXNpemVycyA9IFtdOwog
ICAgIHRoaXMuX2NvbHVtbldpZHRoc0luaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICB0aGlzLmVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKQEAgLTExMiw2ICsxMTIsOSBA
QCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydE9yZGVyID0gewogICAgIERlc2NlbmRpbmc6ICJk
YXRhLWdyaWQtc29ydC1vcmRlci1kZXNjZW5kaW5nIgogfTsKIAorV2ViSW5zcGVjdG9yLkRhdGFH
cmlkLkxlZnROZWlnaGJvcmluZ0NvbHVtbklEU3ltYm9sID0gU3ltYm9sKCJsZWZ0LW5laWdoYm9y
aW5nLWNvbHVtbi1pZCIpOworV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlJpZ2h0TmVpZ2hib3JpbmdD
b2x1bW5JRFN5bWJvbCA9IFN5bWJvbCgicmlnaHQtbmVpZ2hib3JpbmctY29sdW1uLWlkIik7CisK
IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5Tb3J0Q29sdW1uQXNjZW5kaW5nU3R5bGVDbGFzc05hbWUg
PSAic29ydC1hc2NlbmRpbmciOwogV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRDb2x1bW5EZXNj
ZW5kaW5nU3R5bGVDbGFzc05hbWUgPSAic29ydC1kZXNjZW5kaW5nIjsKIFdlYkluc3BlY3Rvci5E
YXRhR3JpZC5Tb3J0YWJsZUNvbHVtblN0eWxlQ2xhc3NOYW1lID0gInNvcnRhYmxlIjsKQEAgLTY2
Miw0MyArNjY1LDQxIEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAg
X3Bvc2l0aW9uUmVzaXplckVsZW1lbnRzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIg
bGVmdCA9IDA7Ci0gICAgICAgIHZhciBwcmV2aW91c1Jlc2l6ZXJFbGVtZW50ID0gbnVsbDsKKyAg
ICAgICAgdmFyIHByZXZpb3VzUmVzaXplciA9IG51bGw7CiAKICAgICAgICAgLy8gTWFrZSBuIC0g
MSByZXNpemVycyBmb3IgbiBjb2x1bW5zLgogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRo
aXMub3JkZXJlZENvbHVtbnMubGVuZ3RoIC0gMTsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcmVz
aXplckVsZW1lbnQgPSB0aGlzLnJlc2l6ZXJFbGVtZW50c1tpXTsKLQotICAgICAgICAgICAgaWYg
KCFyZXNpemVyRWxlbWVudCkgewotICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0
IGNhbGwgdG8gdXBkYXRlV2lkdGgsIHNvIHRoZSByZXNpemVycyBuZWVkCi0gICAgICAgICAgICAg
ICAgLy8gdG8gYmUgY3JlYXRlZC4KLSAgICAgICAgICAgICAgICByZXNpemVyRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgICAgIHJlc2l6ZXJFbGVt
ZW50LmNsYXNzTGlzdC5hZGQoImRhdGEtZ3JpZC1yZXNpemVyIik7CisgICAgICAgICAgICAvLyBD
cmVhdGUgYSBuZXcgcmVzaXplciBpZiBvbmUgZG9lcyBub3QgZXhpc3QgZm9yIHRoaXMgY29sdW1u
LgorICAgICAgICAgICAgaWYgKGkgPT09IHRoaXMucmVzaXplcnMubGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgdmFyIHJlc2l6ZXJEZWxlZ2F0ZSA9IHRoaXM7CisgICAgICAgICAgICAgICAgcmVz
aXplciA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzaXplcihXZWJJbnNwZWN0b3IuUmVzaXplci5SdWxl
T3JpZW50YXRpb24uVmVydGljYWwsIHJlc2l6ZXJEZWxlZ2F0ZSk7CisgICAgICAgICAgICAgICAg
dGhpcy5yZXNpemVyc1tpXSA9IHJlc2l6ZXI7CiAgICAgICAgICAgICAgICAgLy8gVGhpcyByZXNp
emVyIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29sdW1uIHRvIGl0cyByaWdodC4KLSAgICAgICAg
ICAgICAgICByZXNpemVyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlz
Ll9zdGFydFJlc2l6ZXJEcmFnZ2luZy5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHJlc2l6ZXJFbGVtZW50KTsKLSAgICAgICAgICAg
ICAgICB0aGlzLnJlc2l6ZXJFbGVtZW50c1tpXSA9IHJlc2l6ZXJFbGVtZW50OworICAgICAgICAg
ICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChyZXNpemVyLmVsZW1lbnQpOwogICAgICAg
ICAgICAgfQogCisgICAgICAgICAgICB2YXIgcmVzaXplciA9IHRoaXMucmVzaXplcnNbaV07CisK
ICAgICAgICAgICAgIC8vIEdldCB0aGUgd2lkdGggb2YgdGhlIGNlbGwgaW4gdGhlIGZpcnN0IChh
bmQgb25seSkgcm93IG9mIHRoZQogICAgICAgICAgICAgLy8gaGVhZGVyIHRhYmxlIGluIG9yZGVy
IHRvIGRldGVybWluZSB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiwgc2luY2UKICAgICAgICAgICAg
IC8vIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBxdWVyeSBhIGNvbHVtbiBmb3IgaXRzIHdpZHRoLgog
ICAgICAgICAgICAgbGVmdCArPSB0aGlzLl9oZWFkZXJUYWJsZUJvZHlFbGVtZW50LnJvd3NbMF0u
Y2VsbHNbaV0ub2Zmc2V0V2lkdGg7CiAKICAgICAgICAgICAgIGlmICh0aGlzLl9pc0NvbHVtblZp
c2libGUodGhpcy5vcmRlcmVkQ29sdW1uc1tpXSkpIHsKLSAgICAgICAgICAgICAgICByZXNpemVy
RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiZGlzcGxheSIpOwotICAgICAgICAgICAgICAg
IHJlc2l6ZXJFbGVtZW50LnN0eWxlLmxlZnQgPSBsZWZ0ICsgInB4IjsKLSAgICAgICAgICAgICAg
ICByZXNpemVyRWxlbWVudC5sZWZ0TmVpZ2hib3JpbmdDb2x1bW5JRCA9IGk7Ci0gICAgICAgICAg
ICAgICAgaWYgKHByZXZpb3VzUmVzaXplckVsZW1lbnQpCi0gICAgICAgICAgICAgICAgICAgIHBy
ZXZpb3VzUmVzaXplckVsZW1lbnQucmlnaHROZWlnaGJvcmluZ0NvbHVtbklEID0gaTsKLSAgICAg
ICAgICAgICAgICBwcmV2aW91c1Jlc2l6ZXJFbGVtZW50ID0gcmVzaXplckVsZW1lbnQ7CisgICAg
ICAgICAgICAgICAgcmVzaXplci5lbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJkaXNwbGF5
Iik7CisgICAgICAgICAgICAgICAgcmVzaXplci5lbGVtZW50LnN0eWxlLmxlZnQgPSBsZWZ0ICsg
InB4IjsKKyAgICAgICAgICAgICAgICByZXNpemVyW1dlYkluc3BlY3Rvci5EYXRhR3JpZC5MZWZ0
TmVpZ2hib3JpbmdDb2x1bW5JRFN5bWJvbF0gPSBpOworICAgICAgICAgICAgICAgIGlmIChwcmV2
aW91c1Jlc2l6ZXIpCisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVzaXplcltXZWJJbnNw
ZWN0b3IuRGF0YUdyaWQuUmlnaHROZWlnaGJvcmluZ0NvbHVtbklEU3ltYm9sXSA9IGk7CisgICAg
ICAgICAgICAgICAgcHJldmlvdXNSZXNpemVyID0gcmVzaXplcjsKICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgcmVzaXplckVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImRp
c3BsYXkiLCAibm9uZSIpOwotICAgICAgICAgICAgICAgIHJlc2l6ZXJFbGVtZW50LmxlZnROZWln
aGJvcmluZ0NvbHVtbklEID0gMDsKLSAgICAgICAgICAgICAgICByZXNpemVyRWxlbWVudC5yaWdo
dE5laWdoYm9yaW5nQ29sdW1uSUQgPSAwOworICAgICAgICAgICAgICAgIHJlc2l6ZXIuZWxlbWVu
dC5zdHlsZS5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsICJub25lIik7CisgICAgICAgICAgICAgICAg
cmVzaXplcltXZWJJbnNwZWN0b3IuRGF0YUdyaWQuTGVmdE5laWdoYm9yaW5nQ29sdW1uSURTeW1i
b2xdID0gMDsKKyAgICAgICAgICAgICAgICByZXNpemVyW1dlYkluc3BlY3Rvci5EYXRhR3JpZC5S
aWdodE5laWdoYm9yaW5nQ29sdW1uSURTeW1ib2xdID0gMDsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQotICAgICAgICBpZiAocHJldmlvdXNSZXNpemVyRWxlbWVudCkKLSAgICAgICAgICAgIHBy
ZXZpb3VzUmVzaXplckVsZW1lbnQucmlnaHROZWlnaGJvcmluZ0NvbHVtbklEID0gdGhpcy5vcmRl
cmVkQ29sdW1ucy5sZW5ndGggLSAxOworICAgICAgICBpZiAocHJldmlvdXNSZXNpemVyKQorICAg
ICAgICAgICAgcHJldmlvdXNSZXNpemVyW1dlYkluc3BlY3Rvci5EYXRhR3JpZC5SaWdodE5laWdo
Ym9yaW5nQ29sdW1uSURTeW1ib2xdID0gdGhpcy5vcmRlcmVkQ29sdW1ucy5sZW5ndGggLSAxOwog
ICAgIH0sCiAKICAgICBhZGRQbGFjZWhvbGRlck5vZGU6IGZ1bmN0aW9uKCkKQEAgLTEyNDIsMzUg
KzEyNDMsMjcgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5fcmVzaXplTWV0aG9kID0gbWV0aG9kOwogICAgIH0sCiAKLSAgICBfc3RhcnRSZXNpemVy
RHJhZ2dpbmc6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHJlc2l6ZXJEcmFnU3RhcnRlZDogZnVuY3Rp
b24ocmVzaXplcikKICAgICB7Ci0gICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZl
bnQuY3RybEtleSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCFyZXNpemVyW1dl
Ykluc3BlY3Rvci5EYXRhR3JpZC5SaWdodE5laWdoYm9yaW5nQ29sdW1uSURTeW1ib2xdKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7IC8vIEFib3J0IHRoZSBkcmFnOwogCi0gICAgICAgIHRoaXMu
X2N1cnJlbnRSZXNpemVyID0gZXZlbnQudGFyZ2V0OwotICAgICAgICBpZiAoIXRoaXMuX2N1cnJl
bnRSZXNpemVyLnJpZ2h0TmVpZ2hib3JpbmdDb2x1bW5JRCkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBXZWJJbnNwZWN0b3IuZWxlbWVudERyYWdTdGFydCh0aGlzLl9jdXJyZW50UmVz
aXplciwgdGhpcy5fcmVzaXplckRyYWdnaW5nLmJpbmQodGhpcyksCi0gICAgICAgICAgICB0aGlz
Ll9lbmRSZXNpemVyRHJhZ2dpbmcuYmluZCh0aGlzKSwgZXZlbnQsICJjb2wtcmVzaXplIik7Cisg
ICAgICAgIHRoaXMuX2N1cnJlbnRSZXNpemVyID0gcmVzaXplcjsKICAgICB9LAogCi0gICAgX3Jl
c2l6ZXJEcmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCisgICAgcmVzaXplckRyYWdnaW5nOiBmdW5j
dGlvbihyZXNpemVyLCBwb3NpdGlvbkRlbHRhKQogICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LmJ1
dHRvbiAhPT0gMCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgcmVzaXplciA9
IHRoaXMuX2N1cnJlbnRSZXNpemVyOwotICAgICAgICBpZiAoIXJlc2l6ZXIpCisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHJlc2l6ZXIgPT09IHRoaXMuX2N1cnJlbnRSZXNpemVyLCByZXNpemVyLCB0
aGlzLl9jdXJyZW50UmVzaXplcik7CisgICAgICAgIGlmIChyZXNpemVyICE9IHRoaXMuX2N1cnJl
bnRSZXNpemVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIENvbnN0cmFpbiB0
aGUgZHJhZ3BvaW50IHRvIGJlIHdpdGhpbiB0aGUgY29udGFpbmluZyBkaXYgb2YgdGhlCiAgICAg
ICAgIC8vIGRhdGFncmlkLgotICAgICAgICB2YXIgZHJhZ1BvaW50ID0gZXZlbnQuY2xpZW50WCAt
IHRoaXMuZWxlbWVudC50b3RhbE9mZnNldExlZnQ7CisgICAgICAgIHZhciBkcmFnUG9pbnQgPSAo
cmVzaXplci5pbml0aWFsUG9zaXRpb24gLSBwb3NpdGlvbkRlbHRhKSAtIHRoaXMuZWxlbWVudC50
b3RhbE9mZnNldExlZnQ7CiAgICAgICAgIC8vIENvbnN0cmFpbiB0aGUgZHJhZ3BvaW50IHRvIGJl
IHdpdGhpbiB0aGUgc3BhY2UgbWFkZSB1cCBieSB0aGUKICAgICAgICAgLy8gY29sdW1uIGRpcmVj
dGx5IHRvIHRoZSBsZWZ0IGFuZCB0aGUgY29sdW1uIGRpcmVjdGx5IHRvIHRoZSByaWdodC4KLSAg
ICAgICAgdmFyIGxlZnRDZWxsSW5kZXggPSByZXNpemVyLmxlZnROZWlnaGJvcmluZ0NvbHVtbklE
OwotICAgICAgICB2YXIgcmlnaHRDZWxsSW5kZXggPSByZXNpemVyLnJpZ2h0TmVpZ2hib3JpbmdD
b2x1bW5JRDsKKyAgICAgICAgdmFyIGxlZnRDZWxsSW5kZXggPSByZXNpemVyW1dlYkluc3BlY3Rv
ci5EYXRhR3JpZC5MZWZ0TmVpZ2hib3JpbmdDb2x1bW5JRFN5bWJvbF07CisgICAgICAgIHZhciBy
aWdodENlbGxJbmRleCA9IHJlc2l6ZXJbV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlJpZ2h0TmVpZ2hi
b3JpbmdDb2x1bW5JRFN5bWJvbF07CiAgICAgICAgIHZhciBmaXJzdFJvd0NlbGxzID0gdGhpcy5f
aGVhZGVyVGFibGVCb2R5RWxlbWVudC5yb3dzWzBdLmNlbGxzOwogICAgICAgICB2YXIgbGVmdEVk
Z2VPZlByZXZpb3VzQ29sdW1uID0gMDsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZWZ0
Q2VsbEluZGV4OyBpKyspCkBAIC0xMjc4LDcgKzEyNzEsNyBAQCBXZWJJbnNwZWN0b3IuRGF0YUdy
aWQucHJvdG90eXBlID0gewogCiAgICAgICAgIC8vIERpZmZlcmVuY2VzIGZvciBvdGhlciByZXNp
emUgbWV0aG9kcwogICAgICAgICBpZiAodGhpcy5yZXNpemVNZXRob2QgPT09IFdlYkluc3BlY3Rv
ci5EYXRhR3JpZC5SZXNpemVNZXRob2QuTGFzdCkgewotICAgICAgICAgICAgcmlnaHRDZWxsSW5k
ZXggPSB0aGlzLnJlc2l6ZXJFbGVtZW50cy5sZW5ndGg7CisgICAgICAgICAgICByaWdodENlbGxJ
bmRleCA9IHRoaXMucmVzaXplcnMubGVuZ3RoOwogICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVz
aXplTWV0aG9kID09PSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuUmVzaXplTWV0aG9kLkZpcnN0KSB7
CiAgICAgICAgICAgICBsZWZ0RWRnZU9mUHJldmlvdXNDb2x1bW4gKz0gZmlyc3RSb3dDZWxsc1ts
ZWZ0Q2VsbEluZGV4XS5vZmZzZXRXaWR0aCAtIGZpcnN0Um93Q2VsbHNbMF0ub2Zmc2V0V2lkdGg7
CiAgICAgICAgICAgICBsZWZ0Q2VsbEluZGV4ID0gMDsKQEAgLTEyOTIsNyArMTI4NSw3IEBAIFdl
Ykluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZHJhZ1BvaW50ID0g
TnVtYmVyLmNvbnN0cmFpbihkcmFnUG9pbnQsIGxlZnRNaW5pbXVtLCByaWdodE1heGltdW0pOwog
Ci0gICAgICAgIHJlc2l6ZXIuc3R5bGUubGVmdCA9IChkcmFnUG9pbnQgLSB0aGlzLkNlbnRlclJl
c2l6ZXJPdmVyQm9yZGVyQWRqdXN0bWVudCkgKyAicHgiOworICAgICAgICByZXNpemVyLmVsZW1l
bnQuc3R5bGUubGVmdCA9IChkcmFnUG9pbnQgLSB0aGlzLkNlbnRlclJlc2l6ZXJPdmVyQm9yZGVy
QWRqdXN0bWVudCkgKyAicHgiOwogCiAgICAgICAgIHZhciBwZXJjZW50TGVmdENvbHVtbiA9ICgo
KGRyYWdQb2ludCAtIGxlZnRFZGdlT2ZQcmV2aW91c0NvbHVtbikgLyB0aGlzLl9kYXRhVGFibGVF
bGVtZW50Lm9mZnNldFdpZHRoKSAqIDEwMCkgKyAiJSI7CiAgICAgICAgIHRoaXMuX2hlYWRlclRh
YmxlQ29sdW1uR3JvdXBFbGVtZW50LmNoaWxkcmVuW2xlZnRDZWxsSW5kZXhdLnN0eWxlLndpZHRo
ID0gcGVyY2VudExlZnRDb2x1bW47CkBAIC0xMzA3LDEyICsxMzAwLDEyIEBAIFdlYkluc3BlY3Rv
ci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5EaWRMYXlvdXQpOwogICAgIH0sCiAK
LSAgICBfZW5kUmVzaXplckRyYWdnaW5nOiBmdW5jdGlvbihldmVudCkKKyAgICByZXNpemVyRHJh
Z0VuZGVkOiBmdW5jdGlvbihyZXNpemVyKQogICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LmJ1dHRv
biAhPT0gMCkKKyAgICAgICAgY29uc29sZS5hc3NlcnQocmVzaXplciA9PT0gdGhpcy5fY3VycmVu
dFJlc2l6ZXIsIHJlc2l6ZXIsIHRoaXMuX2N1cnJlbnRSZXNpemVyKTsKKyAgICAgICAgaWYgKHJl
c2l6ZXIgIT0gdGhpcy5fY3VycmVudFJlc2l6ZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmVsZW1lbnREcmFnRW5kKGV2ZW50KTsKICAgICAgICAgdGhpcy5f
Y3VycmVudFJlc2l6ZXIgPSBudWxsOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuRGlkTGF5b3V0KTsKICAgICB9LApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzaXpl
ci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNpemVy
LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YjMzZmQzMjMwYjM2ZWNjMWE4ZWFlYmVlOTlhNzE2YzgzMjE4MDI5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVzaXplci5jc3MKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5yZXNpemVyIHsKKyAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgei1pbmRleDogMTAwMDsKK30KKworLnJlc2l6ZXIu
dmVydGljYWwtcnVsZSB7CisgICAgdG9wOiAwOworICAgIGJvdHRvbTogMDsKKyAgICB3aWR0aDog
NXB4OworCisgICAgY3Vyc29yOiBjb2wtcmVzaXplOworfQorCisucmVzaXplci5ob3Jpem9udGFs
LXJ1bGUgeworICAgIGxlZnQ6IDA7CisgICAgcmlnaHQ6IDA7CisgICAgaGVpZ2h0OiA1cHg7CisK
KyAgICBjdXJzb3I6IHJvdy1yZXNpemU7Cit9CisKKy5nbGFzcy1wYW5lLWZvci1kcmFnIHsKKyAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGJvdHRvbTogMDsKKyAgICBs
ZWZ0OiAwOworICAgIHJpZ2h0OiAwOworCisgICAgb3BhY2l0eTogMDsKKyAgICB6LWluZGV4OiAx
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUmVzaXplci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Jlc2l6ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc4NjZmNDc5Y2I2NjNiMGI4NDFiOGI4N2M0Yjk1YjNl
ZGY0NDY2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Jlc2l6ZXIuanMKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNw
ZWN0b3IuUmVzaXplciA9IGZ1bmN0aW9uKHJ1bGVPcmllbnRhdGlvbiwgZGVsZWdhdGUpIHsKKyAg
ICBXZWJJbnNwZWN0b3IuT2JqZWN0LmNhbGwodGhpcyk7CisKKyAgICBjb25zb2xlLmFzc2VydChk
ZWxlZ2F0ZSk7CisKKyAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgIHRoaXMuX29y
aWVudGF0aW9uID0gcnVsZU9yaWVudGF0aW9uOworICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQo
V2ViSW5zcGVjdG9yLlJlc2l6ZXIuU3R5bGVDbGFzc05hbWUpOworCisgICAgaWYgKHRoaXMuX29y
aWVudGF0aW9uID09PSBXZWJJbnNwZWN0b3IuUmVzaXplci5SdWxlT3JpZW50YXRpb24uSG9yaXpv
bnRhbCkKKyAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5S
ZXNpemVyLkhvcml6b250YWxSdWxlU3R5bGVDbGFzc05hbWUpOworICAgIGVsc2UgaWYgKHRoaXMu
X29yaWVudGF0aW9uID09PSBXZWJJbnNwZWN0b3IuUmVzaXplci5SdWxlT3JpZW50YXRpb24uVmVy
dGljYWwpCisgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3Iu
UmVzaXplci5WZXJ0aWNhbFJ1bGVTdHlsZUNsYXNzTmFtZSk7CisKKyAgICB0aGlzLl9lbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX3Jlc2l6ZXJNb3VzZURvd24uYmlu
ZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuX3Jlc2l6ZXJNb3VzZU1vdmVkRXZlbnRMaXN0ZW5l
ciA9IHRoaXMuX3Jlc2l6ZXJNb3VzZU1vdmVkLmJpbmQodGhpcyk7CisgICAgdGhpcy5fcmVzaXpl
ck1vdXNlVXBFdmVudExpc3RlbmVyID0gdGhpcy5fcmVzaXplck1vdXNlVXAuYmluZCh0aGlzKTsK
K307CisKK1dlYkluc3BlY3Rvci5SZXNpemVyLlJ1bGVPcmllbnRhdGlvbiA9IHsKKyAgICBIb3Jp
em9udGFsOiAicmVzaXplci1ydWxlLW9yaWVudGF0aW9uLWhvcml6b250YWwiLAorICAgIFZlcnRp
Y2FsOiAicmVzaXplci1ydWxlLW9yaWVudGF0aW9uLXZlcnRpY2FsIiwKK307CisKK1dlYkluc3Bl
Y3Rvci5SZXNpemVyLlN0eWxlQ2xhc3NOYW1lID0gInJlc2l6ZXIiOworV2ViSW5zcGVjdG9yLlJl
c2l6ZXIuSG9yaXpvbnRhbFJ1bGVTdHlsZUNsYXNzTmFtZSA9ICJob3Jpem9udGFsLXJ1bGUiOwor
V2ViSW5zcGVjdG9yLlJlc2l6ZXIuVmVydGljYWxSdWxlU3R5bGVDbGFzc05hbWUgPSAidmVydGlj
YWwtcnVsZSI7CitXZWJJbnNwZWN0b3IuUmVzaXplci5HbGFzc1BhbmVTdHlsZUNsYXNzTmFtZSA9
ICJnbGFzcy1wYW5lLWZvci1kcmFnIjsKKworV2ViSW5zcGVjdG9yLlJlc2l6ZXIucHJvdG90eXBl
ID0geworICAgIGNvbnN0cnVjdG9yOiBXZWJJbnNwZWN0b3IuUmVzaXplciwKKyAgICBfX3Byb3Rv
X186IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlLAorCisgICAgLy8gUHVibGljCisKKyAg
ICBnZXQgZWxlbWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKKyAg
ICB9LAorCisgICAgZ2V0IG9yaWVudGF0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9vcmllbnRhdGlvbjsKKyAgICB9LAorCisgICAgZ2V0IGluaXRpYWxQb3NpdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5fcmVzaXplck1vdXNlRG93blBvc2l0aW9uIHx8IE5hTjsK
KyAgICB9LAorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2N1cnJlbnRQb3NpdGlvbjogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX29yaWVudGF0aW9uID09PSBXZWJJbnNwZWN0
b3IuUmVzaXplci5SdWxlT3JpZW50YXRpb24uVmVydGljYWwpCisgICAgICAgICAgICByZXR1cm4g
ZXZlbnQucGFnZVg7CisgICAgICAgIGlmICh0aGlzLl9vcmllbnRhdGlvbiA9PT0gV2ViSW5zcGVj
dG9yLlJlc2l6ZXIuUnVsZU9yaWVudGF0aW9uLkhvcml6b250YWwpCisgICAgICAgICAgICByZXR1
cm4gZXZlbnQucGFnZVk7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJTaG91bGQg
bm90IGJlIHJlYWNoZWQhIik7CisgICAgfSwKKworICAgIF9yZXNpemVyTW91c2VEb3duOiBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZl
bnQuY3RybEtleSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgZGVsZWdhdGVS
ZXF1ZXN0ZWRBYm9ydCA9IGZhbHNlOworICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2RlbGVnYXRl
LnJlc2l6ZXJEcmFnU3RhcnRlZCA9PT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAgIGRlbGVnYXRl
UmVxdWVzdGVkQWJvcnQgPSB0aGlzLl9kZWxlZ2F0ZS5yZXNpemVyRHJhZ1N0YXJ0ZWQodGhpcywg
ZXZlbnQudGFyZ2V0KTsKKworICAgICAgICBpZiAoZGVsZWdhdGVSZXF1ZXN0ZWRBYm9ydCkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5fb3JpZW50YXRpb24gPT09IFdl
Ykluc3BlY3Rvci5SZXNpemVyLlJ1bGVPcmllbnRhdGlvbi5WZXJ0aWNhbCkKKyAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gImNvbC1yZXNpemUiOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9vcmllbnRhdGlvbiA9PT0gV2Vi
SW5zcGVjdG9yLlJlc2l6ZXIuUnVsZU9yaWVudGF0aW9uLkhvcml6b250YWwpOworICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAicm93LXJlc2l6ZSI7CisgICAgICAgIH0K
KworICAgICAgICB0aGlzLl9yZXNpemVyTW91c2VEb3duUG9zaXRpb24gPSB0aGlzLl9jdXJyZW50
UG9zaXRpb24oKTsKKworICAgICAgICAvLyBSZWdpc3RlciB0aGVzZSBsaXN0ZW5lcnMgb24gdGhl
IGRvY3VtZW50IHNvIHdlIGNhbiB0cmFjayB0aGUgbW91c2UgaWYgaXQgbGVhdmVzIHRoZSByZXNp
emVyLgorICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlz
Ll9yZXNpemVyTW91c2VNb3ZlZEV2ZW50TGlzdGVuZXIsIGZhbHNlKTsKKyAgICAgICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHRoaXMuX3Jlc2l6ZXJNb3VzZVVwRXZlbnRM
aXN0ZW5lciwgZmFsc2UpOworCisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAg
ICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworCisgICAgICAgIC8vIEluc3RhbGwgYSBnbG9i
YWwgImdsYXNzIHBhbmUiIHdoaWNoIHByZXZlbnRzIGN1cnNvciBmcm9tIGNoYW5naW5nIGR1cmlu
ZyB0aGUgZHJhZyBpbnRlcmFjdGlvbi4KKyAgICAgICAgLy8gVGhlIGN1cnNvciBjb3VsZCBjaGFu
Z2Ugd2hlbiBob3ZlcmluZyBvdmVyIGxpbmtzLCB0ZXh0LCBvciBvdGhlciBlbGVtZW50cyB3aXRo
IGN1cnNvciBjdWVzLgorICAgICAgICAvLyBGSVhNRTogd2hlbiBQb2ludGVyIEV2ZW50cyBzdXBw
b3J0IGlzIGF2YWlsYWJsZSB0aGlzIGNvdWxkIGJlIGltcGxlbWVudGVkIGJ5IGRyYXdpbmcgdGhl
IGN1cnNvciBvdXJzZWx2ZXMuCisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuX2VsZW1lbnREcmFn
Z2luZ0dsYXNzUGFuZSkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5fZWxlbWVudERyYWdnaW5n
R2xhc3NQYW5lLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoV2ViSW5zcGVjdG9yLl9lbGVtZW50
RHJhZ2dpbmdHbGFzc1BhbmUpOworCisgICAgICAgIHZhciBnbGFzc1BhbmVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGdsYXNzUGFuZUVsZW1lbnQuY2xh
c3NOYW1lID0gV2ViSW5zcGVjdG9yLlJlc2l6ZXIuR2xhc3NQYW5lU3R5bGVDbGFzc05hbWU7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZ2xhc3NQYW5lRWxlbWVudCk7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5fZWxlbWVudERyYWdnaW5nR2xhc3NQYW5lID0gZ2xhc3NQYW5lRWxl
bWVudDsKKyAgICB9LAorCisgICAgX3Jlc2l6ZXJNb3VzZU1vdmVkOiBmdW5jdGlvbihldmVudCkK
KyAgICB7CisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIGV2ZW50LnN0
b3BQcm9wYWdhdGlvbigpOworCisgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZGVsZWdhdGUucmVz
aXplckRyYWdnaW5nID09PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUu
cmVzaXplckRyYWdnaW5nKHRoaXMsIHRoaXMuX3Jlc2l6ZXJNb3VzZURvd25Qb3NpdGlvbiAtIHRo
aXMuX2N1cnJlbnRQb3NpdGlvbigpKTsKKyAgICB9LAorCisgICAgX3Jlc2l6ZXJNb3VzZVVwOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwg
ZXZlbnQuY3RybEtleSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBkb2N1bWVudC5i
b2R5LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJjdXJzb3IiKTsKKworICAgICAgICBpZiAoV2ViSW5z
cGVjdG9yLl9lbGVtZW50RHJhZ2dpbmdHbGFzc1BhbmUpIHsKKyAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5fZWxlbWVudERyYWdnaW5nR2xhc3NQYW5lLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQo
V2ViSW5zcGVjdG9yLl9lbGVtZW50RHJhZ2dpbmdHbGFzc1BhbmUpOworICAgICAgICAgICAgZGVs
ZXRlIFdlYkluc3BlY3Rvci5fZWxlbWVudERyYWdnaW5nR2xhc3NQYW5lOworICAgICAgICB9CisK
KyAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5f
cmVzaXplck1vdXNlTW92ZWRFdmVudExpc3RlbmVyLCBmYWxzZSk7CisgICAgICAgIGRvY3VtZW50
LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLl9yZXNpemVyTW91c2VVcEV2ZW50
TGlzdGVuZXIsIGZhbHNlKTsKKworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAg
ICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKworICAgICAgICBpZiAodHlwZW9mIHRoaXMu
X2RlbGVnYXRlLnJlc2l6ZXJEcmFnU3RhcnRlZCA9PT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAg
IHRoaXMuX2RlbGVnYXRlLnJlc2l6ZXJEcmFnRW5kZWQodGhpcyk7CisgICAgfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NpZGViYXIu
Y3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2lkZWJhci5j
c3MKaW5kZXggZGNjYjU2NjNjNmJlZTg5ZTg2MzhmMWMzYzNhNTkyYjMwYjRmZDUxMy4uMDVlMGQ3
NTE0NzIxNjkxN2UzOGJkM2Y2YWM4YTEzOGQwY2FlYmZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2lkZWJhci5jc3MKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2lkZWJhci5jc3MKQEAgLTYwLDE3
ICs2MCw2IEBAIGJvZHkubWFjLXBsYXRmb3JtLmxlZ2FjeS53aW5kb3ctaW5hY3RpdmUgLnNpZGVi
YXIgewogICAgIGRpc3BsYXk6IGJsb2NrOwogfQogCi0uc2lkZWJhciA+IC5yZXNpemVyIHsKLSAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGJvdHRvbTogMDsKLSAgICB3
aWR0aDogNXB4OwotCi0gICAgei1pbmRleDogMTAwOwotCi0gICAgY3Vyc29yOiBjb2wtcmVzaXpl
OwotfQotCiAuc2lkZWJhci5yaWdodCA+IC5yZXNpemVyIHsKICAgICBsZWZ0OiAtM3B4OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2lk
ZWJhci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NpZGVi
YXIuanMKaW5kZXggZTA3YmU2NDAxZjk0NmNkYTYzYTJiZmUxNTQzNDNjMzRiMDRlMzRiZC4uZjc3
Y2FlMmNjY2E2NDM1ODE3OTg2NDQ3OGRjM2IwOTg4YTUyYjFlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2lkZWJhci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaWRlYmFyLmpzCkBAIC0zOCwx
MCArMzgsOSBAQCBXZWJJbnNwZWN0b3IuU2lkZWJhciA9IGZ1bmN0aW9uKGVsZW1lbnQsIHNpZGUs
IHNpZGViYXJQYW5lbHMsIHJvbGUsIGxhYmVsKSB7CiAgICAgaWYgKGxhYmVsKQogICAgICAgICB0
aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIGxhYmVsKTsKIAotICAgIHRo
aXMuX3Jlc2l6ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0
aGlzLl9yZXNpemVFbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLlNpZGViYXIuUmVz
aXplRWxlbWVudFN0eWxlQ2xhc3NOYW1lKTsKLSAgICB0aGlzLl9yZXNpemVFbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX3Jlc2l6ZXJNb3VzZURvd24uYmluZCh0aGlz
KSwgZmFsc2UpOwotICAgIHRoaXMuX2VsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMuX3Jlc2l6ZUVs
ZW1lbnQsIHRoaXMuX2VsZW1lbnQuZmlyc3RDaGlsZCk7CisgICAgdmFyIHJlc2l6ZXJEZWxlZ2F0
ZSA9IHRoaXM7CisgICAgdGhpcy5fcmVzaXplciA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzaXplcihX
ZWJJbnNwZWN0b3IuUmVzaXplci5SdWxlT3JpZW50YXRpb24uVmVydGljYWwsIHJlc2l6ZXJEZWxl
Z2F0ZSk7CisgICAgdGhpcy5fZWxlbWVudC5pbnNlcnRCZWZvcmUodGhpcy5fcmVzaXplci5lbGVt
ZW50LCB0aGlzLl9lbGVtZW50LmZpcnN0Q2hpbGQpOwogCiAgICAgdGhpcy5fc2lkZWJhclBhbmVs
cyA9IFtdOwogCkBAIC01NSw3ICs1NCw2IEBAIFdlYkluc3BlY3Rvci5PYmplY3QuYWRkQ29uc3Ry
dWN0b3JGdW5jdGlvbnMoV2ViSW5zcGVjdG9yLlNpZGViYXIpOwogCiBXZWJJbnNwZWN0b3IuU2lk
ZWJhci5TdHlsZUNsYXNzTmFtZSA9ICJzaWRlYmFyIjsKIFdlYkluc3BlY3Rvci5TaWRlYmFyLkNv
bGxhcHNlZFN0eWxlQ2xhc3NOYW1lID0gImNvbGxhcHNlZCI7Ci1XZWJJbnNwZWN0b3IuU2lkZWJh
ci5SZXNpemVFbGVtZW50U3R5bGVDbGFzc05hbWUgPSAicmVzaXplciI7CiBXZWJJbnNwZWN0b3Iu
U2lkZWJhci5BYnNvbHV0ZU1pbmltdW1XaWR0aCA9IDIwMDsKIAogV2ViSW5zcGVjdG9yLlNpZGVi
YXIuU2lkZXMgPSB7fTsKQEAgLTI1MCw2NCArMjQ4LDMzIEBAIFdlYkluc3BlY3Rvci5TaWRlYmFy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHNpZGViYXJQYW5lbDsKICAgICB9LAogCi0g
ICAgLy8gUHJpdmF0ZQotCi0gICAgX25hdmlnYXRpb25JdGVtU2VsZWN0ZWQ6IGZ1bmN0aW9uKGV2
ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5zZWxlY3RlZFNpZGViYXJQYW5lbCA9IGV2ZW50LnRh
cmdldC5zZWxlY3RlZE5hdmlnYXRpb25JdGVtID8gZXZlbnQudGFyZ2V0LnNlbGVjdGVkTmF2aWdh
dGlvbkl0ZW0uaWRlbnRpZmllciA6IG51bGw7Ci0gICAgfSwKKyAgICAvLyBQcm90ZWN0ZWQKIAot
ICAgIF9yZXNpemVyTW91c2VEb3duOiBmdW5jdGlvbihldmVudCkKKyAgICByZXNpemVyRHJhZ1N0
YXJ0ZWQ6IGZ1bmN0aW9uKHJlc2l6ZXIpCiAgICAgewotICAgICAgICBpZiAoZXZlbnQuYnV0dG9u
ICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAiY29sLXJlc2l6ZSI7Ci0KLSAgICAgICAgdGhp
cy5fcmVzaXplck1vdXNlTW92ZWRFdmVudExpc3RlbmVyID0gdGhpcy5fcmVzaXplck1vdXNlTW92
ZWQuYmluZCh0aGlzKTsKLSAgICAgICAgdGhpcy5fcmVzaXplck1vdXNlVXBFdmVudExpc3RlbmVy
ID0gdGhpcy5fcmVzaXplck1vdXNlVXAuYmluZCh0aGlzKTsKLQogICAgICAgICB0aGlzLl93aWR0
aEJlZm9yZVJlc2l6ZSA9IHRoaXMud2lkdGg7Ci0gICAgICAgIHRoaXMuX3Jlc2l6ZXJNb3VzZURv
d25YID0gZXZlbnQucGFnZVg7Ci0KLSAgICAgICAgLy8gUmVnaXN0ZXIgdGhlc2UgbGlzdGVuZXJz
IG9uIHRoZSBkb2N1bWVudCBzbyB3ZSBjYW4gdHJhY2sgdGhlIG1vdXNlIGlmIGl0IGxlYXZlcyB0
aGUgcmVzaXplci4KLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3Zl
IiwgdGhpcy5fcmVzaXplck1vdXNlTW92ZWRFdmVudExpc3RlbmVyLCBmYWxzZSk7Ci0gICAgICAg
IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLl9yZXNpemVyTW91c2VV
cEV2ZW50TGlzdGVuZXIsIGZhbHNlKTsKLQotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OwotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKICAgICB9LAogCi0gICAgX3Jlc2l6
ZXJNb3VzZU1vdmVkOiBmdW5jdGlvbihldmVudCkKKyAgICByZXNpemVyRHJhZ2dpbmc6IGZ1bmN0
aW9uKHJlc2l6ZXIsIHBvc2l0aW9uRGVsdGEpCiAgICAgewotICAgICAgICB2YXIgZGVsdGFYID0g
dGhpcy5fcmVzaXplck1vdXNlRG93blggLSBldmVudC5wYWdlWDsKLQogICAgICAgICBpZiAodGhp
cy5fc2lkZSA9PT0gV2ViSW5zcGVjdG9yLlNpZGViYXIuU2lkZXMuTGVmdCkKLSAgICAgICAgICAg
IGRlbHRhWCAqPSAtMTsKKyAgICAgICAgICAgIHBvc2l0aW9uRGVsdGEgKj0gLTE7CiAKLSAgICAg
ICAgdmFyIG5ld1dpZHRoID0gZGVsdGFYICsgdGhpcy5fd2lkdGhCZWZvcmVSZXNpemU7CisgICAg
ICAgIHZhciBuZXdXaWR0aCA9IHBvc2l0aW9uRGVsdGEgKyB0aGlzLl93aWR0aEJlZm9yZVJlc2l6
ZTsKICAgICAgICAgdGhpcy53aWR0aCA9IG5ld1dpZHRoOwogICAgICAgICB0aGlzLmNvbGxhcHNl
ZCA9IChuZXdXaWR0aCA8ICh0aGlzLm1pbmltdW1XaWR0aCAvIDIpKTsKLQotICAgICAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKICAg
ICB9LAogCi0gICAgX3Jlc2l6ZXJNb3VzZVVwOiBmdW5jdGlvbihldmVudCkKKyAgICByZXNpemVy
RHJhZ0VuZGVkOiBmdW5jdGlvbihyZXNpemVyKQogICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LmJ1
dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoImN1cnNvciIpOwotCi0gICAg
ICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMuX3Jlc2l6
ZXJNb3VzZU1vdmVkRXZlbnRMaXN0ZW5lciwgZmFsc2UpOwotICAgICAgICBkb2N1bWVudC5yZW1v
dmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgdGhpcy5fcmVzaXplck1vdXNlVXBFdmVudExpc3Rl
bmVyLCBmYWxzZSk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl93aWR0aEJlZm9yZVJlc2l6ZTsKKyAg
ICB9LAogCi0gICAgICAgIGRlbGV0ZSB0aGlzLl9yZXNpemVyTW91c2VNb3ZlZEV2ZW50TGlzdGVu
ZXI7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9yZXNpemVyTW91c2VVcEV2ZW50TGlzdGVuZXI7Cisg
ICAgLy8gUHJpdmF0ZQogCi0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAg
IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgIF9uYXZpZ2F0aW9uSXRlbVNlbGVjdGVkOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuc2VsZWN0ZWRTaWRlYmFyUGFuZWwg
PSBldmVudC50YXJnZXQuc2VsZWN0ZWROYXZpZ2F0aW9uSXRlbSA/IGV2ZW50LnRhcmdldC5zZWxl
Y3RlZE5hdmlnYXRpb25JdGVtLmlkZW50aWZpZXIgOiBudWxsOwogICAgIH0KIH07CiAK
</data>
<flag name="review"
          id="273007"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>