<?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>96755</bug_id>
          
          <creation_ts>2012-09-14 04:46:10 -0700</creation_ts>
          <short_desc>Web Inspector: reuse WebInspector.ProgressIndicator in Audits panel</short_desc>
          <delta_ts>2012-09-14 06:07: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="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</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>720586</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-14 04:46:10 -0700</bug_when>
    <thetext>Audits panel currently has a custom implementation of progress indciator. Let&apos;s replaces it with generic one already used in other places of inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720598</commentid>
    <comment_count>1</comment_count>
      <attachid>164108</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-14 04:58:17 -0700</bug_when>
    <thetext>Created attachment 164108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720613</commentid>
    <comment_count>2</comment_count>
      <attachid>164108</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-14 05:19:33 -0700</bug_when>
    <thetext>Comment on attachment 164108
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).

I don&apos;t believe this line should be here.

&gt; Source/WebCore/ChangeLog:10
&gt; +        - remove AuditProgressMonitor, use WebInspector.ProgressIndicator instead

Please use item delimiters consistently (semicolons, commas, periods, whatever).

&gt; Source/WebCore/ChangeLog:12
&gt; +        - simplify control flow -- remove callbacks where possible;

and this one should end in a period, it seems

&gt;              this._setAuditRunning(true);

tip: you could try extracting this along with its counterpart as this._setAuditRunning(!this._auditRunning);

&gt; Source/WebCore/inspector/front-end/AuditRules.js:77
&gt; +     * @param {WebInspector.NetworkRequest} requests

Can you explain this change? The new annotations should not compile. Same thing for the other rules&apos; doRun().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720636</commentid>
    <comment_count>3</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-14 05:41:02 -0700</bug_when>
    <thetext>(In reply to comment #2)

&gt; &gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).
&gt; 
&gt; I don&apos;t believe this line should be here.

Oops, thanks, fixed!

&gt; Please use item delimiters consistently (semicolons, commas, periods, whatever).

fixed.

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        - simplify control flow -- remove callbacks where possible;
&gt; 
&gt; and this one should end in a period, it seems

ditto.

&gt; 
&gt; &gt;              this._setAuditRunning(true);
&gt; 
&gt; tip: you could try extracting this along with its counterpart as this._setAuditRunning(!this._auditRunning);

I&apos;ve split it into _startAudit()/_stopAudit()

&gt; &gt; Source/WebCore/inspector/front-end/AuditRules.js:77
&gt; &gt; +     * @param {WebInspector.NetworkRequest} requests
&gt; 
&gt; Can you explain this change? The new annotations should not compile. Same thing for the other rules&apos; doRun().

Fixed this one be an array. Unfortunately, this did compile :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720638</commentid>
    <comment_count>4</comment_count>
      <attachid>164119</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-14 05:41:44 -0700</bug_when>
    <thetext>Created attachment 164119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720649</commentid>
    <comment_count>5</comment_count>
      <attachid>164119</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-14 05:54:28 -0700</bug_when>
    <thetext>Comment on attachment 164119
Patch

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

&gt; Source/WebCore/inspector/front-end/AuditsPanel.js:180
&gt; +            function onReload()

You could move it a bit above and call from the &quot;if (runImmediately)&quot; branch (changing the name appropriately) to reduce code duplication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720656</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-14 06:07:22 -0700</bug_when>
    <thetext>Committed r128598: &lt;http://trac.webkit.org/changeset/128598&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164108</attachid>
            <date>2012-09-14 04:58:17 -0700</date>
            <delta_ts>2012-09-14 05:41:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96755-20120914155748.patch</filename>
            <type>text/plain</type>
            <size>34986</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY4OTAyZGU1YzQ2YjUy
OWY5MjM4MTU5YTkwODIyYWJmYWJhNTM2Yi4uMzEyYjM1ODYxNDE0YWI2OTFiMzk1MmJkMjMzMDNm
OTQwYWZjZDY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTA5LTE0ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcmV1c2UgV2ViSW5zcGVjdG9yLlByb2dyZXNzSW5kaWNhdG9yIGluIEF1ZGl0cyBwYW5lbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3NTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFs
IGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQ
bGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAg
ICAgICAtIHJlbW92ZSBBdWRpdFByb2dyZXNzTW9uaXRvciwgdXNlIFdlYkluc3BlY3Rvci5Qcm9n
cmVzc0luZGljYXRvciBpbnN0ZWFkCisgICAgICAgIC0gYWRkIGFubm90YXRpb25zIGZvciBhIGJ1
bmNoIG9mIGF1ZGl0IG1ldGhvZHM7CisgICAgICAgIC0gc2ltcGxpZnkgY29udHJvbCBmbG93IC0t
IHJlbW92ZSBjYWxsYmFja3Mgd2hlcmUgcG9zc2libGU7CisKKyAgICAgICAgKiBFbmdsaXNoLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdExhdW5jaGVyVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdExhdW5jaGVy
Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRMYXVuY2hlclZpZXcucHJvdG90eXBl
Ll9zZXRBdWRpdFJ1bm5pbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0TGF1bmNoZXJW
aWV3LnByb3RvdHlwZS5fbGF1bmNoQnV0dG9uQ2xpY2tlZC5vbkF1ZGl0U3RhcnRlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQXVkaXRMYXVuY2hlclZpZXcucHJvdG90eXBlLl9sYXVuY2hCdXR0
b25DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdExhdW5jaGVyVmlldy5wcm90
b3R5cGUuX2NyZWF0ZUxhdW5jaGVyVUkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0TGF1
bmNoZXJWaWV3LnByb3RvdHlwZS5fdXBkYXRlUmVzb3VyY2VQcm9ncmVzcyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQXVkaXRMYXVuY2hlclZpZXcucHJvdG90eXBlLl91cGRhdGVCdXR0b24pOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5BdWRpdFJ1bGVzLkd6aXBSdWxlLnByb3RvdHlwZS5kb1J1bik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Db21iaW5lRXh0ZXJuYWxSZXNvdXJjZXNSdWxlLnBy
b3RvdHlwZS5kb1J1bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5NaW5pbWl6
ZURuc0xvb2t1cHNSdWxlLnByb3RvdHlwZS5kb1J1bik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZS5kb1J1bi5ldmFsQ2FsbGJhY2suc2Vs
ZWN0b3JzQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2Vk
Q3NzUnVsZS5wcm90b3R5cGUuZG9SdW4uZXZhbENhbGxiYWNrLmRvY3VtZW50TG9hZGVkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlLmRv
UnVuLmV2YWxDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVz
ZWRDc3NSdWxlLnByb3RvdHlwZS5kb1J1bi5zdHlsZVNoZWV0Q2FsbGJhY2spOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUuZG9SdW4uYWxs
U3R5bGVzQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2Vk
Q3NzUnVsZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZXMuQ2FjaGVDb250cm9sUnVsZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkF1ZGl0UnVsZXMuSW1hZ2VEaW1lbnNpb25zUnVsZS5wcm90b3R5cGUuZG9SdW4pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZS5wcm90b3R5cGUuZG9S
dW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZS5wcm90
b3R5cGUuZG9SdW4uZXh0ZXJuYWxTdHlsZXNoZWV0c1JlY2VpdmVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGVzLkNzc0luSGVhZFJ1bGUucHJvdG90eXBlLmRvUnVuLmlubGluZVN0
eWxlc1JlY2VpdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNzc0luSGVh
ZFJ1bGUucHJvdG90eXBlLmRvUnVuLm9uRG9jdW1lbnRBdmFpbGFibGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVyUnVsZS5wcm90b3R5cGUuZG9S
dW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVy
UnVsZS5wcm90b3R5cGUuZG9SdW4uY3NzQmVmb3JlSW5saW5lUmVjZWl2ZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVyUnVsZS5wcm90b3R5cGUu
ZG9SdW4ubGF0ZVN0eWxlc1JlY2VpdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1
bGVzLlN0eWxlc1NjcmlwdHNPcmRlclJ1bGUucHJvdG90eXBlLmRvUnVuLm9uRG9jdW1lbnRBdmFp
bGFibGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2UucHJv
dG90eXBlLmRvUnVuLnNoZWV0c0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRp
dFJ1bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS5fdmlzaXRTdHlsZVNoZWV0LnNoZWV0Q2FsbGJh
Y2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2UucHJvdG90
eXBlLl92aXNpdFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMu
Q29va2llUnVsZUJhc2UucHJvdG90eXBlLmRvUnVuLnJlc3VsdENhbGxiYWNrKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvb2tpZVJ1bGVCYXNlLnByb3RvdHlwZS5kb1J1bik6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRz
UGFuZWwucHJvdG90eXBlLl9leGVjdXRlQXVkaXQucnVsZVJlc3VsdFJlYWR5Q2FsbGJhY2spOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsLnByb3RvdHlwZS5fZXhlY3V0ZUF1ZGl0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5cGUuX2F1ZGl0Rmlu
aXNoZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90
eXBlLmluaXRpYXRlQXVkaXQuZWxzZS5vblJlbG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXVkaXRzUGFuZWwucHJvdG90eXBlLmluaXRpYXRlQXVkaXQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkF1ZGl0Q2F0ZWdvcnkucHJvdG90eXBlLnJ1bik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlLnByb3RvdHlwZS5ydW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZ3Jl
c3NCYXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZ3Jlc3MucHJvdG90eXBlLndvcmtl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZ3Jlc3NJbmRpY2F0b3IpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2dyZXNzSW5kaWNhdG9yLnByb3RvdHlwZS5jYW5jZWwpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlByb2dyZXNzSW5kaWNhdG9yLnByb3RvdHlwZS5zZXRXb3JrZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2dyZXNzSW5kaWNhdG9yLnByb3RvdHlwZS53b3JrZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN1YlByb2dyZXNzLnByb3RvdHlwZS5zZXRXb3JrZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN1YlByb2dyZXNzLnByb3RvdHlwZS53b3JrZWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvYXVkaXRzUGFuZWwuY3NzOgorICAgICAgICAo
LmF1ZGl0LWxhdW5jaGVyLXZpZXcgLnByb2dyZXNzLWJhci1jb250YWluZXIpOgorICAgICAgICAo
LmF1ZGl0LWxhdW5jaGVyLXZpZXcgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJh
ci1zdG9wLWJ1dHRvbik6CisKIDIwMTItMDktMTMgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5NSTogcmVtb3ZlIHRoZSBk
ZXBlbmRlbmN5IG9mIHBsYXRmb3JtIHNvdXJjZXMgZnJvbSBXZWJDb3JlIGhlYWRlciBpbnRyb2R1
Y2VkIGJ5IE5NSSBpbnN0cnVtZW50YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9F
bmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNo
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNjY5MzhhMzVkOGVmMDMxMGUxMTBjMGFh
NjYwODg4ZGQxMTRiMmQ5ZS4uMDI4NmUwMDA0ZDQxNGU4ZWM4ZmFiMzJmMDhiZjMwMzUwODgxY2M4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwpAQCAtNzM4LDMgKzczOCw0IEBAIGxvY2FsaXplZFN0cmluZ3NbIkxheW91dCBpbnZhbGlk
YXRlZCJdID0gIkxheW91dCBpbnZhbGlkYXRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMYXlvdXQg
Zm9yY2VkIl0gPSAiTGF5b3V0IGZvcmNlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQYXVzZWQgb24g
YXNzZXJ0aW9uLiJdID0gIlBhdXNlZCBvbiBhc3NlcnRpb24uIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IiVzICglcyVzKSJdID0gIiVzICglcyVzKSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSdW5uaW5nIGF1
ZGl0Il0gPSAiUnVubmluZyBhdWRpdCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0F1ZGl0TGF1bmNoZXJWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdExhdW5jaGVyVmlldy5qcwppbmRleCA0ZjNkZDQ4N2ZkZjky
OGFkYWEwMjEyYzcyZDk4ZWQxMzU2Mzk3ZDkyLi42ZWUxMTgxOTJkM2QwZDg0NjM2ZDQwYjI4MGU5
MDNhM2Q5M2MwOTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0TGF1bmNoZXJWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQXVkaXRMYXVuY2hlclZpZXcuanMKQEAgLTMwLDE0ICszMCwxNCBAQAogCiAvKioK
ICAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48c3RyaW5nPiwgV2Vi
SW5zcGVjdG9yLlByb2dyZXNzLCBib29sZWFuLCBmdW5jdGlvbigpLCBmdW5jdGlvbigpKTp1bmRl
ZmluZWR9IHJ1bm5lckNhbGxiYWNrCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CiAg
Ki8KLVdlYkluc3BlY3Rvci5BdWRpdExhdW5jaGVyVmlldyA9IGZ1bmN0aW9uKHJ1bm5lckNhbGxi
YWNrLCBzdG9wQ2FsbGJhY2spCitXZWJJbnNwZWN0b3IuQXVkaXRMYXVuY2hlclZpZXcgPSBmdW5j
dGlvbihydW5uZXJDYWxsYmFjaykKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMp
OwogCiAgICAgdGhpcy5fcnVubmVyQ2FsbGJhY2sgPSBydW5uZXJDYWxsYmFjazsKLSAgICB0aGlz
Ll9zdG9wQ2FsbGJhY2sgPSBzdG9wQ2FsbGJhY2s7CiAgICAgdGhpcy5fY2F0ZWdvcnlJZFByZWZp
eCA9ICJhdWRpdC1jYXRlZ29yeS1pdGVtLSI7CiAgICAgdGhpcy5fYXVkaXRSdW5uaW5nID0gZmFs
c2U7CiAKQEAgLTExOCw5ICsxMTgsMTYgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0TGF1bmNoZXJWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMuX2F1ZGl0UnVubmluZyA9PT0gYXVkaXRS
dW5uaW5nKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9hdWRpdFJ1bm5pbmcg
PSBhdWRpdFJ1bm5pbmc7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9zdG9wUmVxdWVzdGVkOwogICAg
ICAgICB0aGlzLl91cGRhdGVCdXR0b24oKTsKLSAgICAgICAgdGhpcy5fdXBkYXRlUmVzb3VyY2VQ
cm9ncmVzcygpOworICAgICAgICBpZiAoYXVkaXRSdW5uaW5nKSB7CisgICAgICAgICAgICB0aGlz
Ll9yZXNldFJlc291cmNlQ291bnQoKTsKKyAgICAgICAgICAgIHRoaXMuX3Byb2dyZXNzSW5kaWNh
dG9yID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9ncmVzc0luZGljYXRvcigpOworICAgICAgICAgICAg
dGhpcy5fYnV0dG9uQ29udGFpbmVyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9wcm9ncmVzc0lu
ZGljYXRvci5lbGVtZW50KTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNlUHJvZ3Jl
c3MoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX3Byb2dyZXNzSW5kaWNh
dG9yLmRvbmUoKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wcm9ncmVzc0luZGljYXRvcjsK
KyAgICAgICAgfQogICAgIH0sCiAKICAgICBfbGF1bmNoQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24o
ZXZlbnQpCkBAIC0xMzMsMTEgKzE0MCwxNiBAQCBXZWJJbnNwZWN0b3IuQXVkaXRMYXVuY2hlclZp
ZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0aGlzLl9zZXRB
dWRpdFJ1bm5pbmcodHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzLl9ydW5uZXJDYWxsYmFjayhjYXRJ
ZHMsIHRoaXMuX3Jlc291cmNlUHJvZ3Jlc3NFbGVtZW50LCB0aGlzLl9hdWRpdFByZXNlbnRTdGF0
ZUVsZW1lbnQuY2hlY2tlZCwgdGhpcy5fc2V0QXVkaXRSdW5uaW5nLmJpbmQodGhpcywgZmFsc2Up
KTsKKyAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlSZXNvdXJjZUxvYWRpbmdQcm9ncmVzcyA9IHRy
dWU7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIG9uQXVkaXRTdGFydGVkKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB0aGlzLl9kaXNwbGF5UmVzb3VyY2VMb2FkaW5nUHJvZ3Jlc3Mg
PSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX3J1bm5lckNhbGxiYWNr
KGNhdElkcywgdGhpcy5fcHJvZ3Jlc3NJbmRpY2F0b3IsIHRoaXMuX2F1ZGl0UHJlc2VudFN0YXRl
RWxlbWVudC5jaGVja2VkLCBvbkF1ZGl0U3RhcnRlZC5iaW5kKHRoaXMpLCB0aGlzLl9zZXRBdWRp
dFJ1bm5pbmcuYmluZCh0aGlzLCBmYWxzZSkpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgdGhpcy5fc3RvcFJlcXVlc3RlZCA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLl9zdG9wQ2Fs
bGJhY2sodGhpcy5fc2V0QXVkaXRSdW5uaW5nLmJpbmQodGhpcywgZmFsc2UpKTsKLSAgICAgICAg
ICAgIHRoaXMuX3VwZGF0ZUJ1dHRvbigpOworICAgICAgICAgICAgdGhpcy5fcHJvZ3Jlc3NJbmRp
Y2F0b3IuY2FuY2VsKCk7CisgICAgICAgICAgICB0aGlzLl9zZXRBdWRpdFJ1bm5pbmcoZmFsc2Up
OwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMjE4LDM3ICsyMzAsMjAgQEAgV2ViSW5zcGVjdG9y
LkF1ZGl0TGF1bmNoZXJWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbGF1bmNoQnV0
dG9uLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSdW4iKTsKICAgICAgICAg
dGhpcy5fbGF1bmNoQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fbGF1bmNo
QnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAgICAgICAgdGhpcy5fcmVzb3Vy
Y2VQcm9ncmVzc0NvbnRhaW5lciA9IHRoaXMuX2J1dHRvbkNvbnRhaW5lckVsZW1lbnQuY3JlYXRl
Q2hpbGQoInNwYW4iLCAicmVzb3VyY2UtcHJvZ3Jlc3MiKTsKLSAgICAgICAgdGhpcy5fcmVzb3Vy
Y2VQcm9ncmVzc0VsZW1lbnQgPSB0aGlzLl9yZXNvdXJjZVByb2dyZXNzQ29udGFpbmVyLmNyZWF0
ZUNoaWxkKCJwcm9ncmVzcyIpOwotICAgICAgICB0aGlzLl9yZXNvdXJjZVByb2dyZXNzQ29udGFp
bmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOwotICAgICAgICB0
aGlzLl9yZXNvdXJjZVByb2dyZXNzVGV4dEVsZW1lbnQgPSB0aGlzLl9yZXNvdXJjZVByb2dyZXNz
Q29udGFpbmVyLmNyZWF0ZUNoaWxkKCJzcGFuIik7Ci0KLQogICAgICAgICB0aGlzLl9zZWxlY3RB
bGxDbGlja2VkKHRoaXMuX3NlbGVjdEFsbENoZWNrYm94RWxlbWVudC5jaGVja2VkKTsKICAgICAg
ICAgdGhpcy5fdXBkYXRlQnV0dG9uKCk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNlUHJv
Z3Jlc3MoKTsKICAgICB9LAogCiAgICAgX3VwZGF0ZVJlc291cmNlUHJvZ3Jlc3M6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fcmVzb3VyY2VQcm9ncmVzc0NvbnRhaW5lcikK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoIXRoaXMuX2F1ZGl0UnVubmluZyB8
fCB0aGlzLl9zdG9wUmVxdWVzdGVkKSB7Ci0gICAgICAgICAgICB0aGlzLl9yZXNldFJlc291cmNl
Q291bnQoKTsKLSAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlUHJvZ3Jlc3NDb250YWluZXIuYWRk
U3R5bGVDbGFzcygiaGlkZGVuIik7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdGhpcy5f
cmVzb3VyY2VQcm9ncmVzc0NvbnRhaW5lci5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKLSAg
ICAgICAgaWYgKHRoaXMuX2xvYWRlZFJlc291cmNlcykKLSAgICAgICAgICAgIHRoaXMuX3Jlc291
cmNlUHJvZ3Jlc3NUZXh0RWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiTG9hZGluZyAoJWQgb2YgJWQpIiwgdGhpcy5fbG9hZGVkUmVzb3VyY2VzLCB0aGlzLl90b3Rh
bFJlc291cmNlcyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlUHJv
Z3Jlc3NUZXh0RWxlbWVudC50ZXh0Q29udGVudCA9ICIiOworICAgICAgICBpZiAodGhpcy5fZGlz
cGxheVJlc291cmNlTG9hZGluZ1Byb2dyZXNzKQorICAgICAgICAgICAgdGhpcy5fcHJvZ3Jlc3NJ
bmRpY2F0b3Iuc2V0VGl0bGUoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2FkaW5nICglZCBvZiAl
ZCkiLCB0aGlzLl9sb2FkZWRSZXNvdXJjZXMsIHRoaXMuX3RvdGFsUmVzb3VyY2VzKSk7CiAgICAg
fSwKIAogICAgIF91cGRhdGVCdXR0b246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMu
X2xhdW5jaEJ1dHRvbi50ZXh0Q29udGVudCA9IHRoaXMuX2F1ZGl0UnVubmluZyA/IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiU3RvcCIpIDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSdW4iKTsKLSAg
ICAgICAgdGhpcy5fbGF1bmNoQnV0dG9uLmRpc2FibGVkID0gIXRoaXMuX2N1cnJlbnRDYXRlZ29y
aWVzQ291bnQgfHwgKHRoaXMuX2F1ZGl0UnVubmluZyAmJiB0aGlzLl9zdG9wUmVxdWVzdGVkKTsK
KyAgICAgICAgdGhpcy5fbGF1bmNoQnV0dG9uLmRpc2FibGVkID0gIXRoaXMuX2N1cnJlbnRDYXRl
Z29yaWVzQ291bnQgfHwgdGhpcy5fYXVkaXRSdW5uaW5nOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCmluZGV4IDA0ZWZi
ZGIxMTUwMzIyNGEzMmQ2ZWZkZjgwYjk0YjZmYmY1NWY0NWUuLmVkNTA5NmNkMDVjYTRhN2RmMWQ4
MjM3Njk4ODJiNTQ0YzQ4NDA0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKQEAgLTc0LDkgKzc0LDEyIEBAIFdlYkluc3BlY3Rvci5B
dWRpdFJ1bGVzLkd6aXBSdWxlID0gZnVuY3Rpb24oKQogCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxl
cy5HemlwUnVsZS5wcm90b3R5cGUgPSB7CiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtBcnJheS48
V2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0Pn0gcmVxdWVzdHMKKyAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdH0gcmVxdWVzdHMKKyAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHR9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdCl9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuUHJvZ3Jlc3N9IHByb2dyZXNzCiAgICAgICovCi0gICAgZG9SdW46IGZ1bmN0
aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzc01vbml0b3IpCisgICAgZG9S
dW46IGZ1bmN0aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzcykKICAgICB7
CiAgICAgICAgIHZhciB0b3RhbFNhdmluZ3MgPSAwOwogICAgICAgICB2YXIgY29tcHJlc3NlZFNp
emUgPSAwOwpAQCAtMTM1LDcgKzEzOCwxMyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Db21i
aW5lRXh0ZXJuYWxSZXNvdXJjZXNSdWxlID0gZnVuY3Rpb24oaWQsIG5hbWUsIHR5cGUsCiB9CiAK
IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvbWJpbmVFeHRlcm5hbFJlc291cmNlc1J1bGUucHJv
dG90eXBlID0gewotICAgIGRvUnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgcmVzdWx0LCBjYWxsYmFj
aywgcHJvZ3Jlc3NNb25pdG9yKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
Lk5ldHdvcmtSZXF1ZXN0fSByZXF1ZXN0cworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkF1
ZGl0UnVsZVJlc3VsdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0
b3IuQXVkaXRSdWxlUmVzdWx0KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5Qcm9ncmVzc30gcHJvZ3Jlc3MKKyAgICAgKi8KKyAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVz
dHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzKQogICAgIHsKICAgICAgICAgdmFyIGRvbWFp
blRvUmVzb3VyY2VzTWFwID0gV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuZ2V0RG9tYWluVG9SZXNv
dXJjZXNNYXAocmVxdWVzdHMsIFt0aGlzLl90eXBlXSwgZmFsc2UpOwogICAgICAgICB2YXIgcGVu
YWxpemVkUmVzb3VyY2VDb3VudCA9IDA7CkBAIC0xOTAsNyArMTk5LDEzIEBAIFdlYkluc3BlY3Rv
ci5BdWRpdFJ1bGVzLk1pbmltaXplRG5zTG9va3Vwc1J1bGUgPSBmdW5jdGlvbihob3N0Q291bnRU
aHJlc2hvbGQpIHsKIH0KIAogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuTWluaW1pemVEbnNMb29r
dXBzUnVsZS5wcm90b3R5cGUgPSB7Ci0gICAgZG9SdW46IGZ1bmN0aW9uKHJlcXVlc3RzLCByZXN1
bHQsIGNhbGxiYWNrLCBwcm9ncmVzc01vbml0b3IpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3R9IHJlcXVlc3RzCisgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0fSByZXN1bHQKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9u
KFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQpfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlByb2dyZXNzfSBwcm9ncmVzcworICAgICAqLworICAgIGRvUnVuOiBmdW5j
dGlvbihyZXF1ZXN0cywgcmVzdWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3MpCiAgICAgewogICAgICAg
ICB2YXIgc3VtbWFyeSA9IHJlc3VsdC5hZGRDaGlsZCgiIik7CiAgICAgICAgIHZhciBkb21haW5U
b1Jlc291cmNlc01hcCA9IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLmdldERvbWFpblRvUmVzb3Vy
Y2VzTWFwKHJlcXVlc3RzLCB1bmRlZmluZWQsIGZhbHNlKTsKQEAgLTIyOCw3ICsyNDMsMTMgQEAg
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuUGFyYWxsZWxpemVEb3dubG9hZFJ1bGUgPSBmdW5jdGlv
bihvcHRpbWFsSG9zdG5hbWVDb3VudCwKIH0KIAogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuUGFy
YWxsZWxpemVEb3dubG9hZFJ1bGUucHJvdG90eXBlID0gewotICAgIGRvUnVuOiBmdW5jdGlvbihy
ZXF1ZXN0cywgcmVzdWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3NNb25pdG9yKQorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0fSByZXF1ZXN0cworICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdH0gcmVzdWx0CisgICAgICogQHBh
cmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0KX0gY2FsbGJhY2sKKyAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9ncmVzc30gcHJvZ3Jlc3MKKyAgICAgKi8KKyAg
ICBkb1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzKQog
ICAgIHsKICAgICAgICAgZnVuY3Rpb24gaG9zdFNvcnRlcihhLCBiKQogICAgICAgICB7CkBAIC0y
OTcsMTIgKzMxOCwxOCBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlID0g
ZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlLnBy
b3RvdHlwZSA9IHsKLSAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJh
Y2ssIHByb2dyZXNzTW9uaXRvcikKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5OZXR3b3JrUmVxdWVzdH0gcmVxdWVzdHMKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5B
dWRpdFJ1bGVSZXN1bHR9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVj
dG9yLkF1ZGl0UnVsZVJlc3VsdCl9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuUHJvZ3Jlc3N9IHByb2dyZXNzCisgICAgICovCisgICAgZG9SdW46IGZ1bmN0aW9uKHJlcXVl
c3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzcykKICAgICB7CiAgICAgICAgIHZhciBzZWxm
ID0gdGhpczsKIAogICAgICAgICBmdW5jdGlvbiBldmFsQ2FsbGJhY2soc3R5bGVTaGVldHMpIHsK
LSAgICAgICAgICAgIGlmIChwcm9ncmVzc01vbml0b3IuY2FuY2VsZWQpCisgICAgICAgICAgICBp
ZiAocHJvZ3Jlc3MuaXNDYW5jZWxlZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICAgICAgaWYgKCFzdHlsZVNoZWV0cy5sZW5ndGgpCkBAIC0zMjQsNyArMzUxLDcgQEAgV2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7CiAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIHNlbGVjdG9yc0NhbGxiYWNrKGNhbGxiYWNrLCBzdHlsZVNoZWV0cywg
dGVzdGVkU2VsZWN0b3JzLCBmb3VuZFNlbGVjdG9ycykKICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgICAgIGlm
IChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICAgICAgICAgIHZhciBpbmxpbmVCbG9ja09yZGluYWwgPSAwOwpAQCAtMzg5LDcgKzQx
Niw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlID0g
ewogCiAgICAgICAgICAgICBmdW5jdGlvbiBkb2N1bWVudExvYWRlZChzZWxlY3RvcnMsIGRvY3Vt
ZW50KSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RvcnMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHByb2dyZXNzTW9uaXRvci5jYW5j
ZWxlZCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmRvbUFnZW50LnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnQuaWQsIHNlbGVjdG9yc1tpXSwg
cXVlcnlDYWxsYmFjay5iaW5kKG51bGwsIGkgPT09IHNlbGVjdG9ycy5sZW5ndGggLSAxID8gc2Vs
ZWN0b3JzQ2FsbGJhY2suYmluZChudWxsLCBjYWxsYmFjaywgc3R5bGVTaGVldHMsIHRlc3RlZFNl
bGVjdG9ycykgOiBudWxsLCBzZWxlY3RvcnNbaV0sIHN0eWxlU2hlZXRzLCB0ZXN0ZWRTZWxlY3Rv
cnMpKTsKICAgICAgICAgICAgICAgICB9CkBAIC00MDAsNyArNDI3LDcgQEAgV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rp
b24gc3R5bGVTaGVldENhbGxiYWNrKHN0eWxlU2hlZXRzLCBzb3VyY2VVUkwsIGNvbnRpbnVhdGlv
biwgc3R5bGVTaGVldCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHByb2dyZXNzTW9uaXRv
ci5jYW5jZWxlZCkKKyAgICAgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoc3R5bGVTaGVldCkgewpAQCAt
NDEzLDcgKzQ0MCw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJv
dG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGFsbFN0eWxlc0NhbGxiYWNrKGVycm9yLCBz
dHlsZVNoZWV0SW5mb3MpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChwcm9ncmVzc01vbml0
b3IuY2FuY2VsZWQpCisgICAgICAgICAgICBpZiAocHJvZ3Jlc3MuaXNDYW5jZWxlZCgpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFzdHlsZVNo
ZWV0SW5mb3MgfHwgIXN0eWxlU2hlZXRJbmZvcy5sZW5ndGgpCkBAIC00NDMsOCArNDcwLDEzIEBA
IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNhY2hlQ29udHJvbFJ1bGUgPSBmdW5jdGlvbihpZCwg
bmFtZSkKIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNhY2hlQ29udHJvbFJ1bGUuTWlsbGlzUGVy
TW9udGggPSAxMDAwICogNjAgKiA2MCAqIDI0ICogMzA7CiAKIFdlYkluc3BlY3Rvci5BdWRpdFJ1
bGVzLkNhY2hlQ29udHJvbFJ1bGUucHJvdG90eXBlID0gewotCi0gICAgZG9SdW46IGZ1bmN0aW9u
KHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzc01vbml0b3IpCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3R9IHJlcXVlc3RzCisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0fSByZXN1bHQKKyAgICAgKiBA
cGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQpfSBjYWxsYmFjawor
ICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2dyZXNzfSBwcm9ncmVzcworICAgICAqLwor
ICAgIGRvUnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgcmVzdWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3Mp
CiAgICAgewogICAgICAgICB2YXIgY2FjaGVhYmxlQW5kTm9uQ2FjaGVhYmxlUmVzb3VyY2VzID0g
dGhpcy5fY2FjaGVhYmxlQW5kTm9uQ2FjaGVhYmxlUmVzb3VyY2VzKHJlcXVlc3RzKTsKICAgICAg
ICAgaWYgKGNhY2hlYWJsZUFuZE5vbkNhY2hlYWJsZVJlc291cmNlc1swXS5sZW5ndGgpCkBAIC02
OTEsNyArNzIzLDEzIEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1
bGUgPSBmdW5jdGlvbigpCiB9CiAKIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdlRGltZW5z
aW9uc1J1bGUucHJvdG90eXBlID0gewotICAgIGRvUnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgcmVz
dWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3NNb25pdG9yKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0fSByZXF1ZXN0cworICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtmdW5jdGlv
bihXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5Qcm9ncmVzc30gcHJvZ3Jlc3MKKyAgICAgKi8KKyAgICBkb1J1bjogZnVu
Y3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzKQogICAgIHsKICAgICAg
ICAgdmFyIHVybFRvTm9EaW1lbnNpb25Db3VudCA9IHt9OwogCkBAIC03MTAsNyArNzQ4LDcgQEAg
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuSW1hZ2VEaW1lbnNpb25zUnVsZS5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgZnVuY3Rpb24gaW1hZ2VTdHlsZXNSZWFkeShpbWFnZUlkLCBzdHlsZXMsIGlz
TGFzdFN0eWxlLCBjb21wdXRlZFN0eWxlKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocHJv
Z3Jlc3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2Vs
ZWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIGNvbnN0IG5vZGUg
PSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKGltYWdlSWQpOwpAQCAtNzY2LDcgKzgw
NCw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1bGUucHJvdG90
eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGdldFN0eWxlcyhub2RlSWRzKQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAg
aWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB2YXIgdGFyZ2V0UmVzdWx0ID0ge307CiAKQEAgLTc5NCwxMiArODMyLDEyIEBAIFdl
Ykluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1bGUucHJvdG90eXBlID0gewog
CiAgICAgICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRBdmFpbGFibGUocm9vdCkKICAgICAgICAgewot
ICAgICAgICAgICAgaWYgKHByb2dyZXNzTW9uaXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAgIGlm
IChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnF1ZXJ5U2VsZWN0b3JBbGwocm9vdC5pZCwgImlt
Z1tzcmNdIiwgZ2V0U3R5bGVzKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChwcm9ncmVzc01v
bml0b3IuY2FuY2VsZWQpCisgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9j
dW1lbnQob25Eb2N1bWVudEF2YWlsYWJsZSk7CiAgICAgfQpAQCAtODE3LDExICs4NTUsMTcgQEAg
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZSA9IGZ1bmN0aW9uKCkKIH0KIAog
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZS5wcm90b3R5cGUgPSB7Ci0gICAg
ZG9SdW46IGZ1bmN0aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzc01vbml0
b3IpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3R9
IHJlcXVlc3RzCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0fSBy
ZXN1bHQKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1
bHQpfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2dyZXNzfSBwcm9n
cmVzcworICAgICAqLworICAgIGRvUnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgcmVzdWx0LCBjYWxs
YmFjaywgcHJvZ3Jlc3MpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBldmFsQ2FsbGJhY2soZXZh
bFJlc3VsdCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHByb2dyZXNzTW9uaXRvci5jYW5j
ZWxlZCkKKyAgICAgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoIWV2YWxSZXN1bHQpCkBAIC04NDYsNyAr
ODkwLDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZS5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgZnVuY3Rpb24gZXh0ZXJuYWxTdHlsZXNoZWV0c1JlY2VpdmVkKHJvb3Qs
IGlubGluZVN0eWxlTm9kZUlkcywgbm9kZUlkcykKICAgICAgICAgewotICAgICAgICAgICAgaWYg
KHByb2dyZXNzTW9uaXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAgIGlmIChwcm9ncmVzcy5pc0Nh
bmNlbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoIW5v
ZGVJZHMpCkBAIC04NjksNyArOTEzLDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5I
ZWFkUnVsZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gaW5saW5lU3R5bGVzUmVj
ZWl2ZWQocm9vdCwgbm9kZUlkcykKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHByb2dyZXNz
TW9uaXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoIW5vZGVJZHMpCkBA
IC04NzksNyArOTIzLDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZS5w
cm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gb25Eb2N1bWVudEF2YWlsYWJsZShyb290
KQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNlbGVkKQor
ICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5xdWVyeVNlbGVjdG9y
QWxsKHJvb3QuaWQsICJib2R5IHN0eWxlIiwgaW5saW5lU3R5bGVzUmVjZWl2ZWQuYmluZChudWxs
LCByb290KSk7CkBAIC05MDEsMTEgKzk0NSwxNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5T
dHlsZXNTY3JpcHRzT3JkZXJSdWxlID0gZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuQXVk
aXRSdWxlcy5TdHlsZXNTY3JpcHRzT3JkZXJSdWxlLnByb3RvdHlwZSA9IHsKLSAgICBkb1J1bjog
ZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvcikKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdH0gcmVxdWVz
dHMKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHR9IHJlc3VsdAor
ICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdCl9IGNh
bGxiYWNrCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZ3Jlc3N9IHByb2dyZXNzCisg
ICAgICovCisgICAgZG9SdW46IGZ1bmN0aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBw
cm9ncmVzcykKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGV2YWxDYWxsYmFjayhyZXN1bHRWYWx1
ZSkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHByb2dyZXNzTW9uaXRvci5jYW5jZWxlZCkK
KyAgICAgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoIXJlc3VsdFZhbHVlKQpAQCAtOTI3LDcgKzk3Nyw3
IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlN0eWxlc1NjcmlwdHNPcmRlclJ1bGUucHJvdG90
eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGNzc0JlZm9yZUlubGluZVJlY2VpdmVkKGxhdGVT
dHlsZUlkcywgbm9kZUlkcykKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHByb2dyZXNzTW9u
aXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoIW5vZGVJZHMpCkBAIC05
NTAsNyArMTAwMCw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlN0eWxlc1NjcmlwdHNPcmRl
clJ1bGUucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGxhdGVTdHlsZXNSZWNlaXZl
ZChyb290LCBub2RlSWRzKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb25p
dG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIGlmICghbm9kZUlkcykKQEAgLTk2
MSw3ICsxMDExLDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVy
UnVsZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gb25Eb2N1bWVudEF2YWlsYWJs
ZShyb290KQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNl
bGVkKQorICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5xdWVyeVNl
bGVjdG9yQWxsKHJvb3QuaWQsICJoZWFkIHNjcmlwdFtzcmNdIH4gbGlua1tyZWx+PSdzdHlsZXNo
ZWV0J11baHJlZl0iLCBsYXRlU3R5bGVzUmVjZWl2ZWQuYmluZChudWxsLCByb290KSk7CkBAIC05
ODMsNyArMTAzMywxMyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZSA9IGZ1
bmN0aW9uKGlkLCBuYW1lKQogfQogCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFz
ZS5wcm90b3R5cGUgPSB7Ci0gICAgZG9SdW46IGZ1bmN0aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNh
bGxiYWNrLCBwcm9ncmVzc01vbml0b3IpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuTmV0d29ya1JlcXVlc3R9IHJlcXVlc3RzCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuQXVkaXRSdWxlUmVzdWx0fSByZXN1bHQKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQpfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlByb2dyZXNzfSBwcm9ncmVzcworICAgICAqLworICAgIGRvUnVuOiBmdW5jdGlvbihy
ZXF1ZXN0cywgcmVzdWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3MpCiAgICAgewogICAgICAgICBDU1NB
Z2VudC5nZXRBbGxTdHlsZVNoZWV0cyhzaGVldHNDYWxsYmFjay5iaW5kKHRoaXMpKTsKIApAQCAt
OTk3LDcgKzEwNTMsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgaWYgKGhlYWRlci5kaXNhYmxlZCkKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7IC8vIERvIG5vdCBjaGVjayBkaXNhYmxlZCBzdHlsZXNoZWV0
cy4KIAotICAgICAgICAgICAgICAgIHRoaXMuX3Zpc2l0U3R5bGVTaGVldChoZWFkZXIuc3R5bGVT
aGVldElkLCBpID09PSBoZWFkZXJzLmxlbmd0aCAtIDEgPyBmaW5pc2hlZENhbGxiYWNrIDogbnVs
bCwgcmVzdWx0LCBwcm9ncmVzc01vbml0b3IpOworICAgICAgICAgICAgICAgIHRoaXMuX3Zpc2l0
U3R5bGVTaGVldChoZWFkZXIuc3R5bGVTaGVldElkLCBpID09PSBoZWFkZXJzLmxlbmd0aCAtIDEg
PyBmaW5pc2hlZENhbGxiYWNrIDogbnVsbCwgcmVzdWx0LCBwcm9ncmVzcyk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIApAQCAtMTAwNywxMyArMTA2MywxMyBAQCBXZWJJbnNwZWN0b3IuQXVk
aXRSdWxlcy5DU1NSdWxlQmFzZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0g
ICAgX3Zpc2l0U3R5bGVTaGVldDogZnVuY3Rpb24oc3R5bGVTaGVldElkLCBjYWxsYmFjaywgcmVz
dWx0LCBwcm9ncmVzc01vbml0b3IpCisgICAgX3Zpc2l0U3R5bGVTaGVldDogZnVuY3Rpb24oc3R5
bGVTaGVldElkLCBjYWxsYmFjaywgcmVzdWx0LCBwcm9ncmVzcykKICAgICB7CiAgICAgICAgIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LmNyZWF0ZUZvcklkKHN0eWxlU2hlZXRJZCwgc2hlZXRD
YWxsYmFjay5iaW5kKHRoaXMpKTsKIAogICAgICAgICBmdW5jdGlvbiBzaGVldENhbGxiYWNrKHN0
eWxlU2hlZXQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChwcm9ncmVzc01vbml0b3IuY2Fu
Y2VsZWQpCisgICAgICAgICAgICBpZiAocHJvZ3Jlc3MuaXNDYW5jZWxlZCgpKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgaWYgKCFzdHlsZVNoZWV0KSB7CkBAIC0xMTQ0
LDExICsxMjAwLDE3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvb2tpZVJ1bGVCYXNlID0g
ZnVuY3Rpb24oaWQsIG5hbWUpCiB9CiAKIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvb2tpZVJ1
bGVCYXNlLnByb3RvdHlwZSA9IHsKLSAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3Vs
dCwgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvcikKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdH0gcmVxdWVzdHMKKyAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHR9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdCl9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuUHJvZ3Jlc3N9IHByb2dyZXNzCisgICAgICovCisgICAgZG9SdW46IGZ1bmN0
aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzcykKICAgICB7CiAgICAgICAg
IHZhciBzZWxmID0gdGhpczsKICAgICAgICAgZnVuY3Rpb24gcmVzdWx0Q2FsbGJhY2socmVjZWl2
ZWRDb29raWVzLCBpc0FkdmFuY2VkKSB7Ci0gICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9y
LmNhbmNlbGVkKQorICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIHNlbGYucHJvY2Vzc0Nvb2tpZXMoaXNB
ZHZhbmNlZCA/IHJlY2VpdmVkQ29va2llcyA6IFtdLCByZXF1ZXN0cywgcmVzdWx0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmluZGV4
IDA1NjgxMzc1NjViZWVmMzA5MjNjOGY1YWVhYmY2OWZkMGNjZmExYjEuLmUyNTZhMzY3YzljZjI0
OWQyMGMxYTNmMGM3ZWU0OTUxNTU4ZTY3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcwpAQCAtNTcsNyArNTcsNyBAQCBXZWJJbnNw
ZWN0b3IuQXVkaXRzUGFuZWwgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLl9jb25zdHJ1Y3RDYXRl
Z29yaWVzKCk7CiAKLSAgICB0aGlzLl9sYXVuY2hlclZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkF1
ZGl0TGF1bmNoZXJWaWV3KHRoaXMuaW5pdGlhdGVBdWRpdC5iaW5kKHRoaXMpLCB0aGlzLnRlcm1p
bmF0ZUF1ZGl0LmJpbmQodGhpcykpOworICAgIHRoaXMuX2xhdW5jaGVyVmlldyA9IG5ldyBXZWJJ
bnNwZWN0b3IuQXVkaXRMYXVuY2hlclZpZXcodGhpcy5pbml0aWF0ZUF1ZGl0LmJpbmQodGhpcykp
OwogICAgIGZvciAodmFyIGlkIGluIHRoaXMuY2F0ZWdvcmllc0J5SWQpCiAgICAgICAgIHRoaXMu
X2xhdW5jaGVyVmlldy5hZGRDYXRlZ29yeSh0aGlzLmNhdGVnb3JpZXNCeUlkW2lkXSk7CiAKQEAg
LTEwNCwyNyArMTA0LDI4IEBAIFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5sZW5ndGg7ICsraSkKICAg
ICAgICAgICAgIHJ1bGVzUmVtYWluaW5nICs9IGNhdGVnb3JpZXNbaV0ucnVsZUNvdW50OwogCi0g
ICAgICAgIHRoaXMuX3Byb2dyZXNzTW9uaXRvci5zZXRUb3RhbFdvcmsocnVsZXNSZW1haW5pbmcp
OworICAgICAgICB0aGlzLl9wcm9ncmVzcy5zZXRUb3RhbFdvcmsocnVsZXNSZW1haW5pbmcpOwor
ICAgICAgICB0aGlzLl9wcm9ncmVzcy5zZXRUaXRsZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJ1
bm5pbmcgYXVkaXQiKSk7CiAKICAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgICAgICAgdmFy
IG1haW5SZXNvdXJjZVVSTCA9IFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMOwogCiAgICAg
ICAgIGZ1bmN0aW9uIHJ1bGVSZXN1bHRSZWFkeUNhbGxiYWNrKGNhdGVnb3J5UmVzdWx0LCBydWxl
UmVzdWx0KQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fcHJvZ3Jlc3NNb25pdG9y
LmNhbmNlbGVkKQorICAgICAgICAgICAgaWYgKHRoaXMuX3Byb2dyZXNzLmlzQ2FuY2VsZWQoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIGlmIChydWxlUmVzdWx0ICYm
IHJ1bGVSZXN1bHQuY2hpbGRyZW4pCiAgICAgICAgICAgICAgICAgY2F0ZWdvcnlSZXN1bHQuYWRk
UnVsZVJlc3VsdChydWxlUmVzdWx0KTsKIAogICAgICAgICAgICAgLS1ydWxlc1JlbWFpbmluZzsK
LSAgICAgICAgICAgIHRoaXMuX3Byb2dyZXNzTW9uaXRvci53b3JrZWQoMSk7CisgICAgICAgICAg
ICB0aGlzLl9wcm9ncmVzcy53b3JrZWQoKTsKIAotICAgICAgICAgICAgaWYgKHRoaXMuX3Byb2dy
ZXNzTW9uaXRvci5kb25lKCkgJiYgcmVzdWx0Q2FsbGJhY2spCisgICAgICAgICAgICBpZiAoIXJ1
bGVzUmVtYWluaW5nIHx8IHRoaXMuX3Byb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAgICAgICAgICAg
ICAgICByZXN1bHRDYWxsYmFjayhtYWluUmVzb3VyY2VVUkwsIHJlc3VsdHMpOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKHRoaXMuX3Byb2dyZXNzTW9uaXRvci5kb25lKCkpIHsKKyAgICAgICAg
aWYgKCFydWxlc1JlbWFpbmluZyB8fCB0aGlzLl9wcm9ncmVzcy5pc0NhbmNlbGVkKCkpIHsKICAg
ICAgICAgICAgIHJlc3VsdENhbGxiYWNrKG1haW5SZXNvdXJjZVVSTCwgcmVzdWx0cyk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEzMyw3ICsxMzQsNyBAQCBXZWJJbnNwZWN0
b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0g
Y2F0ZWdvcmllc1tpXTsKICAgICAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgV2ViSW5zcGVjdG9y
LkF1ZGl0Q2F0ZWdvcnlSZXN1bHQoY2F0ZWdvcnkpOwogICAgICAgICAgICAgcmVzdWx0cy5wdXNo
KHJlc3VsdCk7Ci0gICAgICAgICAgICBjYXRlZ29yeS5ydW4ocmVxdWVzdHMsIHJ1bGVSZXN1bHRS
ZWFkeUNhbGxiYWNrLmJpbmQodGhpcywgcmVzdWx0KSwgdGhpcy5fcHJvZ3Jlc3NNb25pdG9yKTsK
KyAgICAgICAgICAgIGNhdGVnb3J5LnJ1bihyZXF1ZXN0cywgcnVsZVJlc3VsdFJlYWR5Q2FsbGJh
Y2suYmluZCh0aGlzLCByZXN1bHQpLCB0aGlzLl9wcm9ncmVzcyk7CiAgICAgICAgIH0KICAgICB9
LAogCkBAIC0xNDksNDAgKzE1MCw0MyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90
eXBlID0gewogICAgICAgICB2YXIgcmVzdWx0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9y
LkF1ZGl0UmVzdWx0U2lkZWJhclRyZWVFbGVtZW50KHRoaXMsIHJlc3VsdHMsIG1haW5SZXNvdXJj
ZVVSTCwgb3JkaW5hbCk7CiAgICAgICAgIHRoaXMuYXVkaXRSZXN1bHRzVHJlZUVsZW1lbnQuYXBw
ZW5kQ2hpbGQocmVzdWx0VHJlZUVsZW1lbnQpOwogICAgICAgICByZXN1bHRUcmVlRWxlbWVudC5y
ZXZlYWxBbmRTZWxlY3QoKTsKLSAgICAgICAgaWYgKCF0aGlzLl9wcm9ncmVzc01vbml0b3IuY2Fu
Y2VsZWQgJiYgbGF1bmNoZXJDYWxsYmFjaykKKyAgICAgICAgaWYgKCF0aGlzLl9wcm9ncmVzcy5p
c0NhbmNlbGVkKCkpCiAgICAgICAgICAgICBsYXVuY2hlckNhbGxiYWNrKCk7CiAgICAgfSwKIAot
ICAgIGluaXRpYXRlQXVkaXQ6IGZ1bmN0aW9uKGNhdGVnb3J5SWRzLCBwcm9ncmVzc0VsZW1lbnQs
IHJ1bkltbWVkaWF0ZWx5LCBsYXVuY2hlckNhbGxiYWNrKQorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7QXJyYXkuPHN0cmluZz59IGNhdGVnb3J5SWRzCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuUHJvZ3Jlc3N9IHByb2dyZXNzCisgICAgICogQHBhcmFtIHtib29sZWFufSBydW5JbW1lZGlh
dGVseQorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oKX0gc3RhcnRlZENhbGxiYWNrCisgICAgICog
QHBhcmFtIHtmdW5jdGlvbigpfSBmaW5pc2hlZENhbGxiYWNrCisgICAgICovCisgICAgaW5pdGlh
dGVBdWRpdDogZnVuY3Rpb24oY2F0ZWdvcnlJZHMsIHByb2dyZXNzLCBydW5JbW1lZGlhdGVseSwg
c3RhcnRlZENhbGxiYWNrLCBmaW5pc2hlZENhbGxiYWNrKQogICAgIHsKICAgICAgICAgaWYgKCFj
YXRlZ29yeUlkcyB8fCAhY2F0ZWdvcnlJZHMubGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIHRoaXMuX3Byb2dyZXNzTW9uaXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRQ
cm9ncmVzc01vbml0b3IocHJvZ3Jlc3NFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fcHJvZ3Jlc3Mg
PSBwcm9ncmVzczsKIAogICAgICAgICB2YXIgY2F0ZWdvcmllcyA9IFtdOwogICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGNhdGVnb3J5SWRzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgY2F0
ZWdvcmllcy5wdXNoKHRoaXMuY2F0ZWdvcmllc0J5SWRbY2F0ZWdvcnlJZHNbaV1dKTsKIAotICAg
ICAgICBmdW5jdGlvbiBpbml0aWF0ZUF1ZGl0Q2FsbGJhY2soY2F0ZWdvcmllcywgbGF1bmNoZXJD
YWxsYmFjaykKLSAgICAgICAgewotICAgICAgICAgICAgdGhpcy5fZXhlY3V0ZUF1ZGl0KGNhdGVn
b3JpZXMsIHRoaXMuX2F1ZGl0RmluaXNoZWRDYWxsYmFjay5iaW5kKHRoaXMsIGxhdW5jaGVyQ2Fs
bGJhY2spKTsKKyAgICAgICAgdmFyIGF1ZGl0RmluaXNoZWRDYWxsYmFjayA9IHRoaXMuX2F1ZGl0
RmluaXNoZWRDYWxsYmFjay5iaW5kKHRoaXMsIGZpbmlzaGVkQ2FsbGJhY2spOworICAgICAgICBp
ZiAocnVuSW1tZWRpYXRlbHkpIHsKKyAgICAgICAgICAgIHN0YXJ0ZWRDYWxsYmFjaygpOworICAg
ICAgICAgICAgdGhpcy5fZXhlY3V0ZUF1ZGl0KGNhdGVnb3JpZXMsIGF1ZGl0RmluaXNoZWRDYWxs
YmFjayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmdW5jdGlvbiBvblJlbG9hZCgp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RhcnRlZENhbGxiYWNrKCk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fZXhlY3V0ZUF1ZGl0KGNhdGVnb3JpZXMsIGF1ZGl0RmluaXNoZWRD
YWxsYmFjayk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLl9yZWxvYWRSZXNvdXJj
ZXMob25SZWxvYWQuYmluZCh0aGlzKSk7CiAgICAgICAgIH0KLQotICAgICAgICBpZiAocnVuSW1t
ZWRpYXRlbHkpCi0gICAgICAgICAgICBpbml0aWF0ZUF1ZGl0Q2FsbGJhY2suY2FsbCh0aGlzLCBj
YXRlZ29yaWVzLCBsYXVuY2hlckNhbGxiYWNrKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
dGhpcy5fcmVsb2FkUmVzb3VyY2VzKGluaXRpYXRlQXVkaXRDYWxsYmFjay5iaW5kKHRoaXMsIGNh
dGVnb3JpZXMsIGxhdW5jaGVyQ2FsbGJhY2spKTsKLQogICAgICAgICBXZWJJbnNwZWN0b3IudXNl
ck1ldHJpY3MuQXVkaXRzU3RhcnRlZC5yZWNvcmQoKTsKICAgICB9LAogCi0gICAgdGVybWluYXRl
QXVkaXQ6IGZ1bmN0aW9uKGxhdW5jaGVyQ2FsbGJhY2spCi0gICAgewotICAgICAgICB0aGlzLl9w
cm9ncmVzc01vbml0b3IuY2FuY2VsZWQgPSB0cnVlOwotICAgICAgICBsYXVuY2hlckNhbGxiYWNr
KCk7Ci0gICAgfSwKLQogICAgIF9yZWxvYWRSZXNvdXJjZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQog
ICAgIHsKICAgICAgICAgdGhpcy5fcGFnZVJlbG9hZENhbGxiYWNrID0gY2FsbGJhY2s7CkBAIC0y
ODEsMTIgKzI4NSwxNCBAQCBXZWJJbnNwZWN0b3IuQXVkaXRDYXRlZ29yeS5wcm90b3R5cGUgPSB7
CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuTmV0d29ya1Jl
cXVlc3Q+fSByZXF1ZXN0cworICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oKX0gY2FsbGJhY2sKKyAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9ncmVzc30gcHJvZ3Jlc3MKICAgICAgKi8KLSAg
ICBydW46IGZ1bmN0aW9uKHJlcXVlc3RzLCBjYWxsYmFjaywgcHJvZ3Jlc3NNb25pdG9yKQorICAg
IHJ1bjogZnVuY3Rpb24ocmVxdWVzdHMsIGNhbGxiYWNrLCBwcm9ncmVzcykKICAgICB7CiAgICAg
ICAgIHRoaXMuX2Vuc3VyZUluaXRpYWxpemVkKCk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdGhpcy5fcnVsZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9ydWxlc1tpXS5y
dW4ocmVxdWVzdHMsIGNhbGxiYWNrLCBwcm9ncmVzc01vbml0b3IpOworICAgICAgICAgICAgdGhp
cy5fcnVsZXNbaV0ucnVuKHJlcXVlc3RzLCBjYWxsYmFjaywgcHJvZ3Jlc3MpOwogICAgIH0sCiAK
ICAgICBfZW5zdXJlSW5pdGlhbGl6ZWQ6IGZ1bmN0aW9uKCkKQEAgLTMzNywyMiArMzQzLDI3IEBA
IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGUucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioK
LSAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3Q+fSByZXF1
ZXN0cworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0fSByZXF1ZXN0
cworICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdCl9
IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZ3Jlc3N9IHByb2dyZXNz
CiAgICAgICovCi0gICAgcnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgY2FsbGJhY2ssIHByb2dyZXNz
TW9uaXRvcikKKyAgICBydW46IGZ1bmN0aW9uKHJlcXVlc3RzLCBjYWxsYmFjaywgcHJvZ3Jlc3Mp
CiAgICAgewotICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICBp
ZiAocHJvZ3Jlc3MuaXNDYW5jZWxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IHZhciByZXN1bHQgPSBuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdCh0aGlzLmRpc3Bs
YXlOYW1lKTsKICAgICAgICAgcmVzdWx0LnNldmVyaXR5ID0gdGhpcy5fc2V2ZXJpdHk7Ci0gICAg
ICAgIHRoaXMuZG9SdW4ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRv
cik7CisgICAgICAgIHRoaXMuZG9SdW4ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dy
ZXNzKTsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVj
dG9yLk5ldHdvcmtSZXF1ZXN0Pn0gcmVxdWVzdHMKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5OZXR3b3JrUmVxdWVzdH0gcmVxdWVzdHMKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5B
dWRpdFJ1bGVSZXN1bHR9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVj
dG9yLkF1ZGl0UnVsZVJlc3VsdCl9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuUHJvZ3Jlc3N9IHByb2dyZXNzCiAgICAgICovCi0gICAgZG9SdW46IGZ1bmN0aW9uKHJlcXVl
c3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzc01vbml0b3IpCisgICAgZG9SdW46IGZ1bmN0
aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzcykKICAgICB7CiAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiZG9SdW4oKSBub3QgaW1wbGVtZW50ZWQiKTsKICAgICB9CkBAIC00
NTksNjcgKzQ3MCw2IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQucHJvdG90eXBlID0g
ewogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQHBhcmFtIHtFbGVtZW50fSBwcm9ncmVzc0Vs
ZW1lbnQKLSAqLwotV2ViSW5zcGVjdG9yLkF1ZGl0UHJvZ3Jlc3NNb25pdG9yID0gZnVuY3Rpb24o
cHJvZ3Jlc3NFbGVtZW50KQotewotICAgIHRoaXMuX2VsZW1lbnQgPSBwcm9ncmVzc0VsZW1lbnQ7
Ci0gICAgdGhpcy5zZXRUb3RhbFdvcmsoV2ViSW5zcGVjdG9yLkF1ZGl0UHJvZ3Jlc3NNb25pdG9y
LklOREVURVJNSU5BVEUpOwotfQotCi1XZWJJbnNwZWN0b3IuQXVkaXRQcm9ncmVzc01vbml0b3Iu
SU5ERVRFUk1JTkFURSA9IC0xOwotCi1XZWJJbnNwZWN0b3IuQXVkaXRQcm9ncmVzc01vbml0b3Iu
cHJvdG90eXBlID0gewotICAgIHNldFRvdGFsV29yazogZnVuY3Rpb24odG90YWwpCi0gICAgewot
ICAgICAgICBpZiAodGhpcy5jYW5jZWxlZCB8fCB0aGlzLl90b3RhbCA9PT0gdG90YWwpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuX3RvdGFsID0gdG90YWw7Ci0gICAgICAgIHRo
aXMuX3ZhbHVlID0gMDsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5tYXggPSB0b3RhbDsKLSAgICAg
ICAgaWYgKHRvdGFsID09PSBXZWJJbnNwZWN0b3IuQXVkaXRQcm9ncmVzc01vbml0b3IuSU5ERVRF
Uk1JTkFURSkKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJ2YWx1
ZSIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9lbGVtZW50LnZhbHVlID0gMDsK
LSAgICB9LAotCi0gICAgd29ya2VkOiBmdW5jdGlvbihpdGVtcykKLSAgICB7Ci0gICAgICAgIGlm
ICh0aGlzLmNhbmNlbGVkIHx8IHRoaXMuaW5kZXRlcm1pbmF0ZSB8fCB0aGlzLmRvbmUoKSkKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fdmFsdWUgKz0gaXRlbXM7Ci0gICAgICAg
IGlmICh0aGlzLl92YWx1ZSA+IHRoaXMuX3RvdGFsKQotICAgICAgICAgICAgdGhpcy5fdmFsdWUg
PSB0aGlzLl90b3RhbDsKLSAgICAgICAgdGhpcy5fZWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVl
OwotICAgIH0sCi0KLSAgICBnZXQgaW5kZXRlcm1pbmF0ZSgpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy5fdG90YWwgPT09IFdlYkluc3BlY3Rvci5BdWRpdFByb2dyZXNzTW9uaXRvci5JTkRF
VEVSTUlOQVRFOwotICAgIH0sCi0KLSAgICBkb25lOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICByZXR1cm4gIXRoaXMuaW5kZXRlcm1pbmF0ZSAmJiAodGhpcy5jYW5jZWxlZCB8fCB0aGlzLl92
YWx1ZSA9PT0gdGhpcy5fdG90YWwpOwotICAgIH0sCi0KLSAgICBnZXQgY2FuY2VsZWQoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuICEhdGhpcy5fY2FuY2VsZWQ7Ci0gICAgfSwKLQotICAgIHNldCBj
YW5jZWxlZCh4KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2NhbmNlbGVkID09PSB4KQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoeCkKLSAgICAgICAgICAgIHRoaXMuc2V0VG90
YWxXb3JrKFdlYkluc3BlY3Rvci5BdWRpdFByb2dyZXNzTW9uaXRvci5JTkRFVEVSTUlOQVRFKTsK
LSAgICAgICAgdGhpcy5fY2FuY2VsZWQgPSB4OwotICAgIH0KLX0KLQotLyoqCi0gKiBAY29uc3Ry
dWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50fQogICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWx9IHBhbmVsCiAgKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZ3Jlc3NCYXIuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2dyZXNzQmFyLmpzCmluZGV4IDg0ZWQ1
YTBiYjhkYzQ1NzNiNjZkNjJmNmRhMGFkMDQyMmU5MzgxNWQuLjgzYThhOGQ2NDRhOTEyZGY2ZmRl
Y2JiZThhMjlhMDVjYThlNzEyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZ3Jlc3NCYXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9ncmVzc0Jhci5qcwpAQCAtNTIsNiArNTIsMTEgQEAgV2ViSW5zcGVjdG9y
LlByb2dyZXNzLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBzZXRXb3JrZWQ6IGZ1bmN0aW9u
KHdvcmtlZCwgdGl0bGUpIHsgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyPX0g
d29ya2VkCisgICAgICovCisgICAgd29ya2VkOiBmdW5jdGlvbih3b3JrZWQpIHsgfSwKKwogICAg
IGRvbmU6IGZ1bmN0aW9uKCkgeyB9LAogCiAgICAgLyoqCkBAIC03Miw5ICs3NywxMCBAQCBXZWJJ
bnNwZWN0b3IuUHJvZ3Jlc3NJbmRpY2F0b3IgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fbGFiZWxF
bGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIik7CiAgICAgdGhpcy5fcHJv
Z3Jlc3NFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJwcm9ncmVzcyIpOwogICAg
IHRoaXMuX3N0b3BCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkNhbmNlbCIpLCAicHJvZ3Jlc3MtYmFyLXN0b3AtYnV0dG9uIik7
Ci0gICAgdGhpcy5fc3RvcEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2Nh
bmNlbCwgdGhpcyk7CisgICAgdGhpcy5fc3RvcEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuY2FuY2VsLCB0aGlzKTsKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fc3RvcEJ1dHRvbi5lbGVtZW50KTsKICAgICB0aGlzLl9pc0NhbmNlbGVkID0gZmFsc2U7Cisg
ICAgdGhpcy5fd29ya2VkID0gMDsKIH0KIAogV2ViSW5zcGVjdG9yLlByb2dyZXNzSW5kaWNhdG9y
LkV2ZW50cyA9IHsKQEAgLTEwMyw3ICsxMDksNyBAQCBXZWJJbnNwZWN0b3IuUHJvZ3Jlc3NJbmRp
Y2F0b3IucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuUHJvZ3Jlc3NJbmRpY2F0b3IuRXZlbnRzLkRvbmUpOwogICAgIH0sCiAK
LSAgICBfY2FuY2VsOiBmdW5jdGlvbigpCisgICAgY2FuY2VsOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB0aGlzLl9pc0NhbmNlbGVkID0gdHJ1ZTsKICAgICB9LApAQCAtMTM1LDkgKzE0MSwx
OCBAQCBXZWJJbnNwZWN0b3IuUHJvZ3Jlc3NJbmRpY2F0b3IucHJvdG90eXBlID0gewogICAgICAq
LwogICAgIHNldFdvcmtlZDogZnVuY3Rpb24od29ya2VkLCB0aXRsZSkKICAgICB7CisgICAgICAg
IHRoaXMuX3dvcmtlZCA9IHdvcmtlZDsKICAgICAgICAgdGhpcy5fcHJvZ3Jlc3NFbGVtZW50LnZh
bHVlID0gd29ya2VkOwogICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICB0aGlzLnNldFRp
dGxlKHRpdGxlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXI9fSB3
b3JrZWQKKyAgICAgKi8KKyAgICB3b3JrZWQ6IGZ1bmN0aW9uKHdvcmtlZCkKKyAgICB7CisgICAg
ICAgIHRoaXMuc2V0V29ya2VkKHRoaXMuX3dvcmtlZCArICh3b3JrZWQgfHwgMSkpOwogICAgIH0K
IH0KIApAQCAtMjQzLDUgKzI1OCwxMyBAQCBXZWJJbnNwZWN0b3IuU3ViUHJvZ3Jlc3MucHJvdG90
eXBlID0gewogICAgICAgICBpZiAodHlwZW9mIHRpdGxlICE9PSAidW5kZWZpbmVkIikKICAgICAg
ICAgICAgIHRoaXMuc2V0VGl0bGUodGl0bGUpOwogICAgICAgICB0aGlzLl9jb21wb3NpdGUuX3Vw
ZGF0ZSgpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IHdvcmtl
ZAorICAgICAqLworICAgIHdvcmtlZDogZnVuY3Rpb24od29ya2VkKQorICAgIHsKKyAgICAgICAg
dGhpcy5zZXRXb3JrZWQodGhpcy5fd29ya2VkICsgKHdvcmtlZCB8fCAxKSk7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9hdWRpdHNQYW5l
bC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0c1BhbmVsLmNz
cwppbmRleCA0ZjZmMTdlOGFhMzgyZGI0MmYxMDliYmFjYjUyZjhhMTI3NjExMzE0Li5hOGNjMWIw
NzI4OWRhNGM5N2Q4OWM5MTQ2ZWVhOGZmMDIzOWZkYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0c1BhbmVsLmNzcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0c1BhbmVsLmNzcwpAQCAtMTE2LDEyICsxMTYs
NiBAQAogICAgIG1hcmdpbi1sZWZ0OiAwOwogfQogCi0uYXVkaXQtbGF1bmNoZXItdmlldyAucmVz
b3VyY2UtcHJvZ3Jlc3MgPiBpbWcgewotICAgIGNvbnRlbnQ6IHVybChJbWFnZXMvc3Bpbm5lci5n
aWYpOwotICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsKLSAgICBtYXJnaW46IDAgNHB4IDAg
OHB4OwotfQotCiAuYXVkaXQtcmVzdWx0LXZpZXcgewogICAgIG92ZXJmbG93OiBhdXRvOwogICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKQEAgLTIzMywzICsyMjcsMTEgQEAKICAgICBtYXJnaW4tbGVm
dDogLTI4cHg7CiAgICAgbWFyZ2luLXRvcDogLTFweDsKIH0KKworLmF1ZGl0LWxhdW5jaGVyLXZp
ZXcgLnByb2dyZXNzLWJhci1jb250YWluZXIgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
K30KKworLmF1ZGl0LWxhdW5jaGVyLXZpZXcgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dy
ZXNzLWJhci1zdG9wLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164119</attachid>
            <date>2012-09-14 05:41:44 -0700</date>
            <delta_ts>2012-09-14 05:54:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96755-20120914164114.patch</filename>
            <type>text/plain</type>
            <size>35463</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY4OTAyZGU1YzQ2YjUy
OWY5MjM4MTU5YTkwODIyYWJmYWJhNTM2Yi4uMTBhYTU2NmFjMjU5NDc4MzNiNjc5MmRhNTIxMjZi
MzkzZWQ0ZTkwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTA5LTE0ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcmV1c2UgV2ViSW5zcGVjdG9yLlByb2dyZXNzSW5kaWNhdG9yIGluIEF1ZGl0cyBwYW5lbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3NTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHJlbW92ZSBB
dWRpdFByb2dyZXNzTW9uaXRvciwgdXNlIFdlYkluc3BlY3Rvci5Qcm9ncmVzc0luZGljYXRvciBp
bnN0ZWFkOworICAgICAgICAtIGFkZCBhbm5vdGF0aW9ucyBmb3IgYSBidW5jaCBvZiBhdWRpdCBt
ZXRob2RzOworICAgICAgICAtIHNpbXBsaWZ5IGNvbnRyb2wgZmxvdyAtLSByZW1vdmUgY2FsbGJh
Y2tzIHdoZXJlIHBvc3NpYmxlLgorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRMYXVuY2hlclZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRMYXVuY2hlclZpZXcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkF1ZGl0TGF1bmNoZXJWaWV3LnByb3RvdHlwZS5fc2V0QXVkaXRSdW5u
aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdExhdW5jaGVyVmlldy5wcm90b3R5cGUu
X2xhdW5jaEJ1dHRvbkNsaWNrZWQub25BdWRpdFN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkF1ZGl0TGF1bmNoZXJWaWV3LnByb3RvdHlwZS5fbGF1bmNoQnV0dG9uQ2xpY2tlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRMYXVuY2hlclZpZXcucHJvdG90eXBlLl9jcmVhdGVM
YXVuY2hlclVJKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdExhdW5jaGVyVmlldy5wcm90
b3R5cGUuX3VwZGF0ZVJlc291cmNlUHJvZ3Jlc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1
ZGl0TGF1bmNoZXJWaWV3LnByb3RvdHlwZS5fdXBkYXRlQnV0dG9uKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVk
aXRSdWxlcy5HemlwUnVsZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZXMuQ29tYmluZUV4dGVybmFsUmVzb3VyY2VzUnVsZS5wcm90b3R5cGUuZG9SdW4p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuTWluaW1pemVEbnNMb29rdXBzUnVs
ZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51
c2VkQ3NzUnVsZS5wcm90b3R5cGUuZG9SdW4uZXZhbENhbGxiYWNrLnNlbGVjdG9yc0NhbGxiYWNr
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90
eXBlLmRvUnVuLmV2YWxDYWxsYmFjay5kb2N1bWVudExvYWRlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZS5kb1J1bi5ldmFsQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90
b3R5cGUuZG9SdW4uc3R5bGVTaGVldENhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
dWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlLmRvUnVuLmFsbFN0eWxlc0NhbGxiYWNr
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90
eXBlLmRvUnVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNhY2hlQ29udHJv
bFJ1bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVz
LkltYWdlRGltZW5zaW9uc1J1bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5BdWRpdFJ1bGVzLkNzc0luSGVhZFJ1bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNzc0luSGVhZFJ1bGUucHJvdG90eXBlLmRvUnVuLmV4
dGVybmFsU3R5bGVzaGVldHNSZWNlaXZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRS
dWxlcy5Dc3NJbkhlYWRSdWxlLnByb3RvdHlwZS5kb1J1bi5pbmxpbmVTdHlsZXNSZWNlaXZlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Dc3NJbkhlYWRSdWxlLnByb3RvdHlw
ZS5kb1J1bi5vbkRvY3VtZW50QXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRp
dFJ1bGVzLlN0eWxlc1NjcmlwdHNPcmRlclJ1bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlN0eWxlc1NjcmlwdHNPcmRlclJ1bGUucHJvdG90eXBl
LmRvUnVuLmNzc0JlZm9yZUlubGluZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
dWRpdFJ1bGVzLlN0eWxlc1NjcmlwdHNPcmRlclJ1bGUucHJvdG90eXBlLmRvUnVuLmxhdGVTdHls
ZXNSZWNlaXZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5TdHlsZXNTY3Jp
cHRzT3JkZXJSdWxlLnByb3RvdHlwZS5kb1J1bi5vbkRvY3VtZW50QXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS5kb1J1bi5z
aGVldHNDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxl
QmFzZS5wcm90b3R5cGUuX3Zpc2l0U3R5bGVTaGVldC5zaGVldENhbGxiYWNrKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS5fdmlzaXRTdHls
ZVNoZWV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvb2tpZVJ1bGVCYXNl
LnByb3RvdHlwZS5kb1J1bi5yZXN1bHRDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlcy5Db29raWVSdWxlQmFzZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXVkaXRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsLnByb3RvdHlw
ZS5fZXhlY3V0ZUF1ZGl0LnJ1bGVSZXN1bHRSZWFkeUNhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5cGUuX2V4ZWN1dGVBdWRpdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlLl9hdWRpdEZpbmlzaGVkQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsLnByb3RvdHlwZS5pbml0aWF0ZUF1
ZGl0LmVsc2Uub25SZWxvYWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsLnBy
b3RvdHlwZS5pbml0aWF0ZUF1ZGl0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdENhdGVn
b3J5LnByb3RvdHlwZS5ydW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZS5wcm90
b3R5cGUucnVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGUucHJvdG90eXBlLmRv
UnVuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2dyZXNzQmFyLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2dyZXNzLnByb3RvdHlwZS53b3JrZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2dyZXNzSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Q
cm9ncmVzc0luZGljYXRvci5wcm90b3R5cGUuY2FuY2VsKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Qcm9ncmVzc0luZGljYXRvci5wcm90b3R5cGUuc2V0V29ya2VkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qcm9ncmVzc0luZGljYXRvci5wcm90b3R5cGUud29ya2VkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TdWJQcm9ncmVzcy5wcm90b3R5cGUuc2V0V29ya2VkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TdWJQcm9ncmVzcy5wcm90b3R5cGUud29ya2VkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL2F1ZGl0c1BhbmVsLmNzczoKKyAgICAgICAgKC5hdWRpdC1sYXVuY2hl
ci12aWV3IC5wcm9ncmVzcy1iYXItY29udGFpbmVyKToKKyAgICAgICAgKC5hdWRpdC1sYXVuY2hl
ci12aWV3IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXItc3RvcC1idXR0b24p
OgorCiAyMDEyLTA5LTEzICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOTUk6IHJlbW92ZSB0aGUgZGVwZW5kZW5jeSBvZiBw
bGF0Zm9ybSBzb3VyY2VzIGZyb20gV2ViQ29yZSBoZWFkZXIgaW50cm9kdWNlZCBieSBOTUkgaW5z
dHJ1bWVudGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6
ZWRTdHJpbmdzLmpzCmluZGV4IDY2OTM4YTM1ZDhlZjAzMTBlMTEwYzBhYTY2MDg4OGRkMTE0YjJk
OWUuLjAyODZlMDAwNGQ0MTRlOGVjOGZhYjMyZjA4YmYzMDM1MDg4MWNjODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTczOCwz
ICs3MzgsNCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJMYXlvdXQgaW52YWxpZGF0ZWQiXSA9ICJMYXlv
dXQgaW52YWxpZGF0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siTGF5b3V0IGZvcmNlZCJdID0gIkxh
eW91dCBmb3JjZWQiOwogbG9jYWxpemVkU3RyaW5nc1siUGF1c2VkIG9uIGFzc2VydGlvbi4iXSA9
ICJQYXVzZWQgb24gYXNzZXJ0aW9uLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIlcyAoJXMlcykiXSA9
ICIlcyAoJXMlcykiOworbG9jYWxpemVkU3RyaW5nc1siUnVubmluZyBhdWRpdCJdID0gIlJ1bm5p
bmcgYXVkaXQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BdWRpdExhdW5jaGVyVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQXVkaXRMYXVuY2hlclZpZXcuanMKaW5kZXggNGYzZGQ0ODdmZGY5MjhhZGFhMDIxMmM3MmQ5
OGVkMTM1NjM5N2Q5Mi4uOTdkMDg4NjUzM2Y3NWVhNDQxZjY3YWEwNDc0MzA0MzIyOTkyMGEyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdExhdW5j
aGVyVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0
TGF1bmNoZXJWaWV3LmpzCkBAIC0zMCwxNCArMzAsMTQgQEAKIAogLyoqCiAgKiBAY29uc3RydWN0
b3IKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPHN0cmluZz4sIFdlYkluc3BlY3Rvci5Qcm9n
cmVzcywgYm9vbGVhbiwgZnVuY3Rpb24oKSwgZnVuY3Rpb24oKSk6dW5kZWZpbmVkfSBydW5uZXJD
YWxsYmFjawogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQogICovCi1XZWJJbnNwZWN0
b3IuQXVkaXRMYXVuY2hlclZpZXcgPSBmdW5jdGlvbihydW5uZXJDYWxsYmFjaywgc3RvcENhbGxi
YWNrKQorV2ViSW5zcGVjdG9yLkF1ZGl0TGF1bmNoZXJWaWV3ID0gZnVuY3Rpb24ocnVubmVyQ2Fs
bGJhY2spCiB7CiAgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKIAogICAgIHRoaXMu
X3J1bm5lckNhbGxiYWNrID0gcnVubmVyQ2FsbGJhY2s7Ci0gICAgdGhpcy5fc3RvcENhbGxiYWNr
ID0gc3RvcENhbGxiYWNrOwogICAgIHRoaXMuX2NhdGVnb3J5SWRQcmVmaXggPSAiYXVkaXQtY2F0
ZWdvcnktaXRlbS0iOwogICAgIHRoaXMuX2F1ZGl0UnVubmluZyA9IGZhbHNlOwogCkBAIC0xMTgs
MjcgKzExOCw0NCBAQCBXZWJJbnNwZWN0b3IuQXVkaXRMYXVuY2hlclZpZXcucHJvdG90eXBlID0g
ewogICAgICAgICBpZiAodGhpcy5fYXVkaXRSdW5uaW5nID09PSBhdWRpdFJ1bm5pbmcpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2F1ZGl0UnVubmluZyA9IGF1ZGl0UnVubmlu
ZzsKLSAgICAgICAgZGVsZXRlIHRoaXMuX3N0b3BSZXF1ZXN0ZWQ7CiAgICAgICAgIHRoaXMuX3Vw
ZGF0ZUJ1dHRvbigpOwotICAgICAgICB0aGlzLl91cGRhdGVSZXNvdXJjZVByb2dyZXNzKCk7Cisg
ICAgICAgIGlmICh0aGlzLl9hdWRpdFJ1bm5pbmcpCisgICAgICAgICAgICB0aGlzLl9zdGFydEF1
ZGl0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3N0b3BBdWRpdCgpOwogICAg
IH0sCiAKLSAgICBfbGF1bmNoQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgX3N0
YXJ0QXVkaXQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fYXVkaXRSdW5u
aW5nKSB7Ci0gICAgICAgICAgICB2YXIgY2F0SWRzID0gW107Ci0gICAgICAgICAgICBmb3IgKHZh
ciBjYXRlZ29yeSA9IDA7IGNhdGVnb3J5IDwgdGhpcy5fc29ydGVkQ2F0ZWdvcmllcy5sZW5ndGg7
ICsrY2F0ZWdvcnkpIHsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5fc29ydGVkQ2F0ZWdvcmll
c1tjYXRlZ29yeV0uX2NoZWNrYm94RWxlbWVudC5jaGVja2VkKQotICAgICAgICAgICAgICAgICAg
ICBjYXRJZHMucHVzaCh0aGlzLl9zb3J0ZWRDYXRlZ29yaWVzW2NhdGVnb3J5XS5pZCk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIHRoaXMuX3NldEF1ZGl0UnVubmluZyh0cnVlKTsKLSAg
ICAgICAgICAgIHRoaXMuX3J1bm5lckNhbGxiYWNrKGNhdElkcywgdGhpcy5fcmVzb3VyY2VQcm9n
cmVzc0VsZW1lbnQsIHRoaXMuX2F1ZGl0UHJlc2VudFN0YXRlRWxlbWVudC5jaGVja2VkLCB0aGlz
Ll9zZXRBdWRpdFJ1bm5pbmcuYmluZCh0aGlzLCBmYWxzZSkpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgdGhpcy5fc3RvcFJlcXVlc3RlZCA9IHRydWU7Ci0gICAgICAgICAgICB0aGlz
Ll9zdG9wQ2FsbGJhY2sodGhpcy5fc2V0QXVkaXRSdW5uaW5nLmJpbmQodGhpcywgZmFsc2UpKTsK
LSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUJ1dHRvbigpOworICAgICAgICB2YXIgY2F0SWRzID0g
W107CisgICAgICAgIGZvciAodmFyIGNhdGVnb3J5ID0gMDsgY2F0ZWdvcnkgPCB0aGlzLl9zb3J0
ZWRDYXRlZ29yaWVzLmxlbmd0aDsgKytjYXRlZ29yeSkgeworICAgICAgICAgICAgaWYgKHRoaXMu
X3NvcnRlZENhdGVnb3JpZXNbY2F0ZWdvcnldLl9jaGVja2JveEVsZW1lbnQuY2hlY2tlZCkKKyAg
ICAgICAgICAgICAgICBjYXRJZHMucHVzaCh0aGlzLl9zb3J0ZWRDYXRlZ29yaWVzW2NhdGVnb3J5
XS5pZCk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9yZXNldFJlc291cmNlQ291bnQoKTsK
KyAgICAgICAgdGhpcy5fcHJvZ3Jlc3NJbmRpY2F0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2dy
ZXNzSW5kaWNhdG9yKCk7CisgICAgICAgIHRoaXMuX2J1dHRvbkNvbnRhaW5lckVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fcHJvZ3Jlc3NJbmRpY2F0b3IuZWxlbWVudCk7CisgICAgICAgIHRoaXMu
X2Rpc3BsYXlSZXNvdXJjZUxvYWRpbmdQcm9ncmVzcyA9IHRydWU7CisKKyAgICAgICAgZnVuY3Rp
b24gb25BdWRpdFN0YXJ0ZWQoKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLl9kaXNwbGF5
UmVzb3VyY2VMb2FkaW5nUHJvZ3Jlc3MgPSBmYWxzZTsKICAgICAgICAgfQorICAgICAgICB0aGlz
Ll9ydW5uZXJDYWxsYmFjayhjYXRJZHMsIHRoaXMuX3Byb2dyZXNzSW5kaWNhdG9yLCB0aGlzLl9h
dWRpdFByZXNlbnRTdGF0ZUVsZW1lbnQuY2hlY2tlZCwgb25BdWRpdFN0YXJ0ZWQuYmluZCh0aGlz
KSwgdGhpcy5fc2V0QXVkaXRSdW5uaW5nLmJpbmQodGhpcywgZmFsc2UpKTsKKyAgICB9LAorCisg
ICAgX3N0b3BBdWRpdDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGlzcGxheVJl
c291cmNlTG9hZGluZ1Byb2dyZXNzID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3Byb2dyZXNzSW5k
aWNhdG9yLmNhbmNlbCgpOworICAgICAgICB0aGlzLl9wcm9ncmVzc0luZGljYXRvci5kb25lKCk7
CisgICAgICAgIGRlbGV0ZSB0aGlzLl9wcm9ncmVzc0luZGljYXRvcjsKKyAgICB9LAorCisgICAg
X2xhdW5jaEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhp
cy5fc2V0QXVkaXRSdW5uaW5nKCF0aGlzLl9hdWRpdFJ1bm5pbmcpOwogICAgIH0sCiAKICAgICBf
c2VsZWN0QWxsQ2xpY2tlZDogZnVuY3Rpb24oY2hlY2tDYXRlZ29yaWVzKQpAQCAtMjE4LDM3ICsy
MzUsMjAgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0TGF1bmNoZXJWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5fbGF1bmNoQnV0dG9uLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJSdW4iKTsKICAgICAgICAgdGhpcy5fbGF1bmNoQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgdGhpcy5fbGF1bmNoQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAK
LSAgICAgICAgdGhpcy5fcmVzb3VyY2VQcm9ncmVzc0NvbnRhaW5lciA9IHRoaXMuX2J1dHRvbkNv
bnRhaW5lckVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAicmVzb3VyY2UtcHJvZ3Jlc3MiKTsK
LSAgICAgICAgdGhpcy5fcmVzb3VyY2VQcm9ncmVzc0VsZW1lbnQgPSB0aGlzLl9yZXNvdXJjZVBy
b2dyZXNzQ29udGFpbmVyLmNyZWF0ZUNoaWxkKCJwcm9ncmVzcyIpOwotICAgICAgICB0aGlzLl9y
ZXNvdXJjZVByb2dyZXNzQ29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCIgIikpOwotICAgICAgICB0aGlzLl9yZXNvdXJjZVByb2dyZXNzVGV4dEVsZW1lbnQgPSB0
aGlzLl9yZXNvdXJjZVByb2dyZXNzQ29udGFpbmVyLmNyZWF0ZUNoaWxkKCJzcGFuIik7Ci0KLQog
ICAgICAgICB0aGlzLl9zZWxlY3RBbGxDbGlja2VkKHRoaXMuX3NlbGVjdEFsbENoZWNrYm94RWxl
bWVudC5jaGVja2VkKTsKICAgICAgICAgdGhpcy5fdXBkYXRlQnV0dG9uKCk7Ci0gICAgICAgIHRo
aXMuX3VwZGF0ZVJlc291cmNlUHJvZ3Jlc3MoKTsKICAgICB9LAogCiAgICAgX3VwZGF0ZVJlc291
cmNlUHJvZ3Jlc3M6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fcmVzb3Vy
Y2VQcm9ncmVzc0NvbnRhaW5lcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAo
IXRoaXMuX2F1ZGl0UnVubmluZyB8fCB0aGlzLl9zdG9wUmVxdWVzdGVkKSB7Ci0gICAgICAgICAg
ICB0aGlzLl9yZXNldFJlc291cmNlQ291bnQoKTsKLSAgICAgICAgICAgIHRoaXMuX3Jlc291cmNl
UHJvZ3Jlc3NDb250YWluZXIuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7Ci0gICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VQcm9ncmVzc0NvbnRhaW5lci5yZW1vdmVTdHls
ZUNsYXNzKCJoaWRkZW4iKTsKLSAgICAgICAgaWYgKHRoaXMuX2xvYWRlZFJlc291cmNlcykKLSAg
ICAgICAgICAgIHRoaXMuX3Jlc291cmNlUHJvZ3Jlc3NUZXh0RWxlbWVudC50ZXh0Q29udGVudCA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGluZyAoJWQgb2YgJWQpIiwgdGhpcy5fbG9hZGVk
UmVzb3VyY2VzLCB0aGlzLl90b3RhbFJlc291cmNlcyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIHRoaXMuX3Jlc291cmNlUHJvZ3Jlc3NUZXh0RWxlbWVudC50ZXh0Q29udGVudCA9ICIiOwor
ICAgICAgICBpZiAodGhpcy5fZGlzcGxheVJlc291cmNlTG9hZGluZ1Byb2dyZXNzKQorICAgICAg
ICAgICAgdGhpcy5fcHJvZ3Jlc3NJbmRpY2F0b3Iuc2V0VGl0bGUoV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJMb2FkaW5nICglZCBvZiAlZCkiLCB0aGlzLl9sb2FkZWRSZXNvdXJjZXMsIHRoaXMuX3Rv
dGFsUmVzb3VyY2VzKSk7CiAgICAgfSwKIAogICAgIF91cGRhdGVCdXR0b246IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIHRoaXMuX2xhdW5jaEJ1dHRvbi50ZXh0Q29udGVudCA9IHRoaXMuX2F1
ZGl0UnVubmluZyA/IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RvcCIpIDogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJSdW4iKTsKLSAgICAgICAgdGhpcy5fbGF1bmNoQnV0dG9uLmRpc2FibGVkID0g
IXRoaXMuX2N1cnJlbnRDYXRlZ29yaWVzQ291bnQgfHwgKHRoaXMuX2F1ZGl0UnVubmluZyAmJiB0
aGlzLl9zdG9wUmVxdWVzdGVkKTsKKyAgICAgICAgdGhpcy5fbGF1bmNoQnV0dG9uLmRpc2FibGVk
ID0gIXRoaXMuX2N1cnJlbnRDYXRlZ29yaWVzQ291bnQ7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKaW5kZXggMDRlZmJk
YjExNTAzMjI0YTMyZDZlZmRmODBiOTRiNmZiZjU1ZjQ1ZS4uZTkxZjI3MDY0ZjM5MDg3ZjAyOTlk
OTI3MmI1Y2E5NjVkNWZjYTlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQXVkaXRSdWxlcy5qcwpAQCAtNzUsOCArNzUsMTEgQEAgV2ViSW5zcGVjdG9yLkF1
ZGl0UnVsZXMuR3ppcFJ1bGUgPSBmdW5jdGlvbigpCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5H
emlwUnVsZS5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtBcnJheS48V2Vi
SW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0Pn0gcmVxdWVzdHMKKyAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHR9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdCl9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuUHJvZ3Jlc3N9IHByb2dyZXNzCiAgICAgICovCi0gICAgZG9SdW46IGZ1bmN0
aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzc01vbml0b3IpCisgICAgZG9S
dW46IGZ1bmN0aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzcykKICAgICB7
CiAgICAgICAgIHZhciB0b3RhbFNhdmluZ3MgPSAwOwogICAgICAgICB2YXIgY29tcHJlc3NlZFNp
emUgPSAwOwpAQCAtMTM1LDcgKzEzOCwxMyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Db21i
aW5lRXh0ZXJuYWxSZXNvdXJjZXNSdWxlID0gZnVuY3Rpb24oaWQsIG5hbWUsIHR5cGUsCiB9CiAK
IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvbWJpbmVFeHRlcm5hbFJlc291cmNlc1J1bGUucHJv
dG90eXBlID0gewotICAgIGRvUnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgcmVzdWx0LCBjYWxsYmFj
aywgcHJvZ3Jlc3NNb25pdG9yKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYklu
c3BlY3Rvci5OZXR3b3JrUmVxdWVzdD59IHJlcXVlc3RzCisgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuQXVkaXRSdWxlUmVzdWx0fSByZXN1bHQKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdl
Ykluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQpfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlByb2dyZXNzfSBwcm9ncmVzcworICAgICAqLworICAgIGRvUnVuOiBmdW5jdGlv
bihyZXF1ZXN0cywgcmVzdWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3MpCiAgICAgewogICAgICAgICB2
YXIgZG9tYWluVG9SZXNvdXJjZXNNYXAgPSBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5nZXREb21h
aW5Ub1Jlc291cmNlc01hcChyZXF1ZXN0cywgW3RoaXMuX3R5cGVdLCBmYWxzZSk7CiAgICAgICAg
IHZhciBwZW5hbGl6ZWRSZXNvdXJjZUNvdW50ID0gMDsKQEAgLTE5MCw3ICsxOTksMTMgQEAgV2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZXMuTWluaW1pemVEbnNMb29rdXBzUnVsZSA9IGZ1bmN0aW9uKGhv
c3RDb3VudFRocmVzaG9sZCkgewogfQogCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5NaW5pbWl6
ZURuc0xvb2t1cHNSdWxlLnByb3RvdHlwZSA9IHsKLSAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVz
dHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvcikKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3Q+fSByZXF1ZXN0cworICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdH0gcmVzdWx0CisgICAgICog
QHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0KX0gY2FsbGJhY2sK
KyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9ncmVzc30gcHJvZ3Jlc3MKKyAgICAgKi8K
KyAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNz
KQogICAgIHsKICAgICAgICAgdmFyIHN1bW1hcnkgPSByZXN1bHQuYWRkQ2hpbGQoIiIpOwogICAg
ICAgICB2YXIgZG9tYWluVG9SZXNvdXJjZXNNYXAgPSBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5n
ZXREb21haW5Ub1Jlc291cmNlc01hcChyZXF1ZXN0cywgdW5kZWZpbmVkLCBmYWxzZSk7CkBAIC0y
MjgsNyArMjQzLDEzIEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlBhcmFsbGVsaXplRG93bmxv
YWRSdWxlID0gZnVuY3Rpb24ob3B0aW1hbEhvc3RuYW1lQ291bnQsCiB9CiAKIFdlYkluc3BlY3Rv
ci5BdWRpdFJ1bGVzLlBhcmFsbGVsaXplRG93bmxvYWRSdWxlLnByb3RvdHlwZSA9IHsKLSAgICBk
b1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRv
cikKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuTmV0d29ya1Jl
cXVlc3Q+fSByZXF1ZXN0cworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJl
c3VsdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuQXVkaXRS
dWxlUmVzdWx0KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9ncmVz
c30gcHJvZ3Jlc3MKKyAgICAgKi8KKyAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3Vs
dCwgY2FsbGJhY2ssIHByb2dyZXNzKQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gaG9zdFNvcnRl
cihhLCBiKQogICAgICAgICB7CkBAIC0yOTcsMTIgKzMxOCwxOCBAQCBXZWJJbnNwZWN0b3IuQXVk
aXRSdWxlcy5VbnVzZWRDc3NSdWxlID0gZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuQXVk
aXRSdWxlcy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZSA9IHsKLSAgICBkb1J1bjogZnVuY3Rpb24o
cmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvcikKKyAgICAvKioKKyAg
ICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3Q+fSByZXF1ZXN0
cworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdH0gcmVzdWx0Cisg
ICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0KX0gY2Fs
bGJhY2sKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9ncmVzc30gcHJvZ3Jlc3MKKyAg
ICAgKi8KKyAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHBy
b2dyZXNzKQogICAgIHsKICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogCiAgICAgICAgIGZ1bmN0
aW9uIGV2YWxDYWxsYmFjayhzdHlsZVNoZWV0cykgewotICAgICAgICAgICAgaWYgKHByb2dyZXNz
TW9uaXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoIXN0eWxlU2hlZXRz
Lmxlbmd0aCkKQEAgLTMyNCw3ICszNTEsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVz
ZWRDc3NSdWxlLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAgZnVuY3Rpb24gc2VsZWN0b3Jz
Q2FsbGJhY2soY2FsbGJhY2ssIHN0eWxlU2hlZXRzLCB0ZXN0ZWRTZWxlY3RvcnMsIGZvdW5kU2Vs
ZWN0b3JzKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmIChwcm9ncmVzc01vbml0
b3IuY2FuY2VsZWQpCisgICAgICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAgICAgdmFyIGlubGlu
ZUJsb2NrT3JkaW5hbCA9IDA7CkBAIC0zODksNyArNDE2LDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0
UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIGZ1bmN0aW9u
IGRvY3VtZW50TG9hZGVkKHNlbGVjdG9ycywgZG9jdW1lbnQpIHsKICAgICAgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdG9ycy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
ICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgICAgICAg
ICBpZiAocHJvZ3Jlc3MuaXNDYW5jZWxlZCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucXVlcnlTZWxl
Y3Rvcihkb2N1bWVudC5pZCwgc2VsZWN0b3JzW2ldLCBxdWVyeUNhbGxiYWNrLmJpbmQobnVsbCwg
aSA9PT0gc2VsZWN0b3JzLmxlbmd0aCAtIDEgPyBzZWxlY3RvcnNDYWxsYmFjay5iaW5kKG51bGws
IGNhbGxiYWNrLCBzdHlsZVNoZWV0cywgdGVzdGVkU2VsZWN0b3JzKSA6IG51bGwsIHNlbGVjdG9y
c1tpXSwgc3R5bGVTaGVldHMsIHRlc3RlZFNlbGVjdG9ycykpOwogICAgICAgICAgICAgICAgIH0K
QEAgLTQwMCw3ICs0MjcsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxl
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBzdHlsZVNoZWV0Q2FsbGJhY2soc3R5
bGVTaGVldHMsIHNvdXJjZVVSTCwgY29udGludWF0aW9uLCBzdHlsZVNoZWV0KQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAg
aWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgICAgIGlmIChzdHlsZVNoZWV0KSB7CkBAIC00MTMsNyArNDQwLDcgQEAgV2ViSW5zcGVj
dG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVu
Y3Rpb24gYWxsU3R5bGVzQ2FsbGJhY2soZXJyb3IsIHN0eWxlU2hlZXRJbmZvcykKICAgICAgICAg
ewotICAgICAgICAgICAgaWYgKHByb2dyZXNzTW9uaXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAg
IGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgICAgICBpZiAoZXJyb3IgfHwgIXN0eWxlU2hlZXRJbmZvcyB8fCAhc3R5bGVTaGVldElu
Zm9zLmxlbmd0aCkKQEAgLTQ0Myw4ICs0NzAsMTMgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMu
Q2FjaGVDb250cm9sUnVsZSA9IGZ1bmN0aW9uKGlkLCBuYW1lKQogV2ViSW5zcGVjdG9yLkF1ZGl0
UnVsZXMuQ2FjaGVDb250cm9sUnVsZS5NaWxsaXNQZXJNb250aCA9IDEwMDAgKiA2MCAqIDYwICog
MjQgKiAzMDsKIAogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ2FjaGVDb250cm9sUnVsZS5wcm90
b3R5cGUgPSB7Ci0KLSAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJh
Y2ssIHByb2dyZXNzTW9uaXRvcikKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJ
bnNwZWN0b3IuTmV0d29ya1JlcXVlc3Q+fSByZXF1ZXN0cworICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLkF1ZGl0UnVsZVJlc3VsdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5Qcm9ncmVzc30gcHJvZ3Jlc3MKKyAgICAgKi8KKyAgICBkb1J1bjogZnVuY3Rp
b24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzKQogICAgIHsKICAgICAgICAg
dmFyIGNhY2hlYWJsZUFuZE5vbkNhY2hlYWJsZVJlc291cmNlcyA9IHRoaXMuX2NhY2hlYWJsZUFu
ZE5vbkNhY2hlYWJsZVJlc291cmNlcyhyZXF1ZXN0cyk7CiAgICAgICAgIGlmIChjYWNoZWFibGVB
bmROb25DYWNoZWFibGVSZXNvdXJjZXNbMF0ubGVuZ3RoKQpAQCAtNjkxLDcgKzcyMywxMyBAQCBX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5JbWFnZURpbWVuc2lvbnNSdWxlID0gZnVuY3Rpb24oKQog
fQogCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5JbWFnZURpbWVuc2lvbnNSdWxlLnByb3RvdHlw
ZSA9IHsKLSAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHBy
b2dyZXNzTW9uaXRvcikKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0
b3IuTmV0d29ya1JlcXVlc3Q+fSByZXF1ZXN0cworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZVJlc3VsdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNw
ZWN0b3IuQXVkaXRSdWxlUmVzdWx0KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5Qcm9ncmVzc30gcHJvZ3Jlc3MKKyAgICAgKi8KKyAgICBkb1J1bjogZnVuY3Rpb24ocmVx
dWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzKQogICAgIHsKICAgICAgICAgdmFyIHVy
bFRvTm9EaW1lbnNpb25Db3VudCA9IHt9OwogCkBAIC03MTAsNyArNzQ4LDcgQEAgV2ViSW5zcGVj
dG9yLkF1ZGl0UnVsZXMuSW1hZ2VEaW1lbnNpb25zUnVsZS5wcm90b3R5cGUgPSB7CiAKICAgICAg
ICAgZnVuY3Rpb24gaW1hZ2VTdHlsZXNSZWFkeShpbWFnZUlkLCBzdHlsZXMsIGlzTGFzdFN0eWxl
LCBjb21wdXRlZFN0eWxlKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb25p
dG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBXZWJJbnNw
ZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKGltYWdlSWQpOwpAQCAtNzY2LDcgKzgwNCw3IEBAIFdl
Ykluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1bGUucHJvdG90eXBlID0gewog
CiAgICAgICAgIGZ1bmN0aW9uIGdldFN0eWxlcyhub2RlSWRzKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgaWYgKHByb2dy
ZXNzLmlzQ2FuY2VsZWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB2
YXIgdGFyZ2V0UmVzdWx0ID0ge307CiAKQEAgLTc5NCwxMiArODMyLDEyIEBAIFdlYkluc3BlY3Rv
ci5BdWRpdFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1bGUucHJvdG90eXBlID0gewogCiAgICAgICAg
IGZ1bmN0aW9uIG9uRG9jdW1lbnRBdmFpbGFibGUocm9vdCkKICAgICAgICAgewotICAgICAgICAg
ICAgaWYgKHByb2dyZXNzTW9uaXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAgIGlmIChwcm9ncmVz
cy5pc0NhbmNlbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbUFnZW50LnF1ZXJ5U2VsZWN0b3JBbGwocm9vdC5pZCwgImltZ1tzcmNdIiwg
Z2V0U3R5bGVzKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChwcm9ncmVzc01vbml0b3IuY2Fu
Y2VsZWQpCisgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQob25E
b2N1bWVudEF2YWlsYWJsZSk7CiAgICAgfQpAQCAtODE3LDExICs4NTUsMTcgQEAgV2ViSW5zcGVj
dG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZSA9IGZ1bmN0aW9uKCkKIH0KIAogV2ViSW5zcGVj
dG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZS5wcm90b3R5cGUgPSB7Ci0gICAgZG9SdW46IGZ1
bmN0aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzc01vbml0b3IpCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0Pn0g
cmVxdWVzdHMKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHR9IHJl
c3VsdAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3Vs
dCl9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZ3Jlc3N9IHByb2dy
ZXNzCisgICAgICovCisgICAgZG9SdW46IGZ1bmN0aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxi
YWNrLCBwcm9ncmVzcykKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGV2YWxDYWxsYmFjayhldmFs
UmVzdWx0KQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNl
bGVkKQorICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgICAgIGlmICghZXZhbFJlc3VsdCkKQEAgLTg0Niw3ICs4
OTAsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Dc3NJbkhlYWRSdWxlLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICBmdW5jdGlvbiBleHRlcm5hbFN0eWxlc2hlZXRzUmVjZWl2ZWQocm9vdCwg
aW5saW5lU3R5bGVOb2RlSWRzLCBub2RlSWRzKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
cHJvZ3Jlc3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2Fu
Y2VsZWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIGlmICghbm9k
ZUlkcykKQEAgLTg2OSw3ICs5MTMsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Dc3NJbkhl
YWRSdWxlLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBpbmxpbmVTdHlsZXNSZWNl
aXZlZChyb290LCBub2RlSWRzKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocHJvZ3Jlc3NN
b25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgaWYgKHByb2dyZXNzLmlzQ2FuY2VsZWQoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIGlmICghbm9kZUlkcykKQEAg
LTg3OSw3ICs5MjMsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Dc3NJbkhlYWRSdWxlLnBy
b3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBvbkRvY3VtZW50QXZhaWxhYmxlKHJvb3Qp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChwcm9ncmVzc01vbml0b3IuY2FuY2VsZWQpCisg
ICAgICAgICAgICBpZiAocHJvZ3Jlc3MuaXNDYW5jZWxlZCgpKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnF1ZXJ5U2VsZWN0b3JB
bGwocm9vdC5pZCwgImJvZHkgc3R5bGUiLCBpbmxpbmVTdHlsZXNSZWNlaXZlZC5iaW5kKG51bGws
IHJvb3QpKTsKQEAgLTkwMSwxMSArOTQ1LDE3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlN0
eWxlc1NjcmlwdHNPcmRlclJ1bGUgPSBmdW5jdGlvbigpCiB9CiAKIFdlYkluc3BlY3Rvci5BdWRp
dFJ1bGVzLlN0eWxlc1NjcmlwdHNPcmRlclJ1bGUucHJvdG90eXBlID0gewotICAgIGRvUnVuOiBm
dW5jdGlvbihyZXF1ZXN0cywgcmVzdWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3NNb25pdG9yKQorICAg
IC8qKgorICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdD59
IHJlcXVlc3RzCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0fSBy
ZXN1bHQKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1
bHQpfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2dyZXNzfSBwcm9n
cmVzcworICAgICAqLworICAgIGRvUnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgcmVzdWx0LCBjYWxs
YmFjaywgcHJvZ3Jlc3MpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBldmFsQ2FsbGJhY2socmVz
dWx0VmFsdWUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChwcm9ncmVzc01vbml0b3IuY2Fu
Y2VsZWQpCisgICAgICAgICAgICBpZiAocHJvZ3Jlc3MuaXNDYW5jZWxlZCgpKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgaWYgKCFyZXN1bHRWYWx1ZSkKQEAgLTkyNyw3
ICs5NzcsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5TdHlsZXNTY3JpcHRzT3JkZXJSdWxl
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBjc3NCZWZvcmVJbmxpbmVSZWNlaXZl
ZChsYXRlU3R5bGVJZHMsIG5vZGVJZHMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChwcm9n
cmVzc01vbml0b3IuY2FuY2VsZWQpCisgICAgICAgICAgICBpZiAocHJvZ3Jlc3MuaXNDYW5jZWxl
ZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgaWYgKCFub2RlSWRz
KQpAQCAtOTUwLDcgKzEwMDAsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5TdHlsZXNTY3Jp
cHRzT3JkZXJSdWxlLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBsYXRlU3R5bGVz
UmVjZWl2ZWQocm9vdCwgbm9kZUlkcykKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHByb2dy
ZXNzTW9uaXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVk
KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoIW5vZGVJZHMp
CkBAIC05NjEsNyArMTAxMSw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlN0eWxlc1Njcmlw
dHNPcmRlclJ1bGUucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRB
dmFpbGFibGUocm9vdCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHByb2dyZXNzTW9uaXRv
ci5jYW5jZWxlZCkKKyAgICAgICAgICAgIGlmIChwcm9ncmVzcy5pc0NhbmNlbGVkKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQu
cXVlcnlTZWxlY3RvckFsbChyb290LmlkLCAiaGVhZCBzY3JpcHRbc3JjXSB+IGxpbmtbcmVsfj0n
c3R5bGVzaGVldCddW2hyZWZdIiwgbGF0ZVN0eWxlc1JlY2VpdmVkLmJpbmQobnVsbCwgcm9vdCkp
OwpAQCAtOTgzLDcgKzEwMzMsMTMgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJh
c2UgPSBmdW5jdGlvbihpZCwgbmFtZSkKIH0KIAogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NT
UnVsZUJhc2UucHJvdG90eXBlID0gewotICAgIGRvUnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgcmVz
dWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3NNb25pdG9yKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7
QXJyYXkuPFdlYkluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdD59IHJlcXVlc3RzCisgICAgICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0fSByZXN1bHQKKyAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQpfSBjYWxsYmFjaworICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2dyZXNzfSBwcm9ncmVzcworICAgICAqLworICAgIGRv
UnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgcmVzdWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3MpCiAgICAg
ewogICAgICAgICBDU1NBZ2VudC5nZXRBbGxTdHlsZVNoZWV0cyhzaGVldHNDYWxsYmFjay5iaW5k
KHRoaXMpKTsKIApAQCAtOTk3LDcgKzEwNTMsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5D
U1NSdWxlQmFzZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgaWYgKGhlYWRlci5kaXNh
YmxlZCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8vIERvIG5vdCBjaGVjayBkaXNh
YmxlZCBzdHlsZXNoZWV0cy4KIAotICAgICAgICAgICAgICAgIHRoaXMuX3Zpc2l0U3R5bGVTaGVl
dChoZWFkZXIuc3R5bGVTaGVldElkLCBpID09PSBoZWFkZXJzLmxlbmd0aCAtIDEgPyBmaW5pc2hl
ZENhbGxiYWNrIDogbnVsbCwgcmVzdWx0LCBwcm9ncmVzc01vbml0b3IpOworICAgICAgICAgICAg
ICAgIHRoaXMuX3Zpc2l0U3R5bGVTaGVldChoZWFkZXIuc3R5bGVTaGVldElkLCBpID09PSBoZWFk
ZXJzLmxlbmd0aCAtIDEgPyBmaW5pc2hlZENhbGxiYWNrIDogbnVsbCwgcmVzdWx0LCBwcm9ncmVz
cyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMTAwNywxMyArMTA2MywxMyBAQCBX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5wcm90b3R5cGUgPSB7CiAgICAgICAg
IH0KICAgICB9LAogCi0gICAgX3Zpc2l0U3R5bGVTaGVldDogZnVuY3Rpb24oc3R5bGVTaGVldElk
LCBjYWxsYmFjaywgcmVzdWx0LCBwcm9ncmVzc01vbml0b3IpCisgICAgX3Zpc2l0U3R5bGVTaGVl
dDogZnVuY3Rpb24oc3R5bGVTaGVldElkLCBjYWxsYmFjaywgcmVzdWx0LCBwcm9ncmVzcykKICAg
ICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LmNyZWF0ZUZvcklkKHN0eWxl
U2hlZXRJZCwgc2hlZXRDYWxsYmFjay5iaW5kKHRoaXMpKTsKIAogICAgICAgICBmdW5jdGlvbiBz
aGVldENhbGxiYWNrKHN0eWxlU2hlZXQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChwcm9n
cmVzc01vbml0b3IuY2FuY2VsZWQpCisgICAgICAgICAgICBpZiAocHJvZ3Jlc3MuaXNDYW5jZWxl
ZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgaWYgKCFzdHlsZVNo
ZWV0KSB7CkBAIC0xMTQ0LDExICsxMjAwLDE3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNv
b2tpZVJ1bGVCYXNlID0gZnVuY3Rpb24oaWQsIG5hbWUpCiB9CiAKIFdlYkluc3BlY3Rvci5BdWRp
dFJ1bGVzLkNvb2tpZVJ1bGVCYXNlLnByb3RvdHlwZSA9IHsKLSAgICBkb1J1bjogZnVuY3Rpb24o
cmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvcikKKyAgICAvKioKKyAg
ICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3Q+fSByZXF1ZXN0
cworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdH0gcmVzdWx0Cisg
ICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0KX0gY2Fs
bGJhY2sKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9ncmVzc30gcHJvZ3Jlc3MKKyAg
ICAgKi8KKyAgICBkb1J1bjogZnVuY3Rpb24ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJhY2ssIHBy
b2dyZXNzKQogICAgIHsKICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgICBmdW5jdGlv
biByZXN1bHRDYWxsYmFjayhyZWNlaXZlZENvb2tpZXMsIGlzQWR2YW5jZWQpIHsKLSAgICAgICAg
ICAgIGlmIChwcm9ncmVzc01vbml0b3IuY2FuY2VsZWQpCisgICAgICAgICAgICBpZiAocHJvZ3Jl
c3MuaXNDYW5jZWxlZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAg
c2VsZi5wcm9jZXNzQ29va2llcyhpc0FkdmFuY2VkID8gcmVjZWl2ZWRDb29raWVzIDogW10sIHJl
cXVlc3RzLCByZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9BdWRpdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQXVkaXRzUGFuZWwuanMKaW5kZXggMDU2ODEzNzU2NWJlZWYzMDkyM2M4ZjVhZWFiZjY5ZmQw
Y2NmYTFiMS4uZTI2OTllNGVkYjQ1MjRhMGJhZjMxYjQ3Y2U5NGQ2NmUwODE3ZWM3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCkBA
IC01Nyw3ICs1Nyw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbCA9IGZ1bmN0aW9uKCkKIAog
ICAgIHRoaXMuX2NvbnN0cnVjdENhdGVnb3JpZXMoKTsKIAotICAgIHRoaXMuX2xhdW5jaGVyVmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRMYXVuY2hlclZpZXcodGhpcy5pbml0aWF0ZUF1ZGl0
LmJpbmQodGhpcyksIHRoaXMudGVybWluYXRlQXVkaXQuYmluZCh0aGlzKSk7CisgICAgdGhpcy5f
bGF1bmNoZXJWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5BdWRpdExhdW5jaGVyVmlldyh0aGlzLmlu
aXRpYXRlQXVkaXQuYmluZCh0aGlzKSk7CiAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5jYXRlZ29y
aWVzQnlJZCkKICAgICAgICAgdGhpcy5fbGF1bmNoZXJWaWV3LmFkZENhdGVnb3J5KHRoaXMuY2F0
ZWdvcmllc0J5SWRbaWRdKTsKIApAQCAtMTA0LDI3ICsxMDQsMjggQEAgV2ViSW5zcGVjdG9yLkF1
ZGl0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRl
Z29yaWVzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgcnVsZXNSZW1haW5pbmcgKz0gY2F0ZWdv
cmllc1tpXS5ydWxlQ291bnQ7CiAKLSAgICAgICAgdGhpcy5fcHJvZ3Jlc3NNb25pdG9yLnNldFRv
dGFsV29yayhydWxlc1JlbWFpbmluZyk7CisgICAgICAgIHRoaXMuX3Byb2dyZXNzLnNldFRvdGFs
V29yayhydWxlc1JlbWFpbmluZyk7CisgICAgICAgIHRoaXMuX3Byb2dyZXNzLnNldFRpdGxlKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiUnVubmluZyBhdWRpdCIpKTsKIAogICAgICAgICB2YXIgcmVz
dWx0cyA9IFtdOwogICAgICAgICB2YXIgbWFpblJlc291cmNlVVJMID0gV2ViSW5zcGVjdG9yLmlu
c3BlY3RlZFBhZ2VVUkw7CiAKICAgICAgICAgZnVuY3Rpb24gcnVsZVJlc3VsdFJlYWR5Q2FsbGJh
Y2soY2F0ZWdvcnlSZXN1bHQsIHJ1bGVSZXN1bHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlm
ICh0aGlzLl9wcm9ncmVzc01vbml0b3IuY2FuY2VsZWQpCisgICAgICAgICAgICBpZiAodGhpcy5f
cHJvZ3Jlc3MuaXNDYW5jZWxlZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICAgICAgaWYgKHJ1bGVSZXN1bHQgJiYgcnVsZVJlc3VsdC5jaGlsZHJlbikKICAgICAgICAgICAg
ICAgICBjYXRlZ29yeVJlc3VsdC5hZGRSdWxlUmVzdWx0KHJ1bGVSZXN1bHQpOwogCiAgICAgICAg
ICAgICAtLXJ1bGVzUmVtYWluaW5nOwotICAgICAgICAgICAgdGhpcy5fcHJvZ3Jlc3NNb25pdG9y
LndvcmtlZCgxKTsKKyAgICAgICAgICAgIHRoaXMuX3Byb2dyZXNzLndvcmtlZCgpOwogCi0gICAg
ICAgICAgICBpZiAodGhpcy5fcHJvZ3Jlc3NNb25pdG9yLmRvbmUoKSAmJiByZXN1bHRDYWxsYmFj
aykKKyAgICAgICAgICAgIGlmICghcnVsZXNSZW1haW5pbmcgfHwgdGhpcy5fcHJvZ3Jlc3MuaXND
YW5jZWxlZCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdENhbGxiYWNrKG1haW5SZXNvdXJjZVVS
TCwgcmVzdWx0cyk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodGhpcy5fcHJvZ3Jlc3NNb25p
dG9yLmRvbmUoKSkgeworICAgICAgICBpZiAoIXJ1bGVzUmVtYWluaW5nIHx8IHRoaXMuX3Byb2dy
ZXNzLmlzQ2FuY2VsZWQoKSkgewogICAgICAgICAgICAgcmVzdWx0Q2FsbGJhY2sobWFpblJlc291
cmNlVVJMLCByZXN1bHRzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTMz
LDcgKzEzNCw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICB2YXIgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW2ldOwogICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRDYXRlZ29yeVJlc3VsdChjYXRlZ29yeSk7CiAg
ICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTsKLSAgICAgICAgICAgIGNhdGVnb3J5LnJ1
bihyZXF1ZXN0cywgcnVsZVJlc3VsdFJlYWR5Q2FsbGJhY2suYmluZCh0aGlzLCByZXN1bHQpLCB0
aGlzLl9wcm9ncmVzc01vbml0b3IpOworICAgICAgICAgICAgY2F0ZWdvcnkucnVuKHJlcXVlc3Rz
LCBydWxlUmVzdWx0UmVhZHlDYWxsYmFjay5iaW5kKHRoaXMsIHJlc3VsdCksIHRoaXMuX3Byb2dy
ZXNzKTsKICAgICAgICAgfQogICAgIH0sCiAKQEAgLTE0OSw0MCArMTUwLDQzIEBAIFdlYkluc3Bl
Y3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciByZXN1bHRUcmVlRWxl
bWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRSZXN1bHRTaWRlYmFyVHJlZUVsZW1lbnQodGhp
cywgcmVzdWx0cywgbWFpblJlc291cmNlVVJMLCBvcmRpbmFsKTsKICAgICAgICAgdGhpcy5hdWRp
dFJlc3VsdHNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChyZXN1bHRUcmVlRWxlbWVudCk7CiAgICAg
ICAgIHJlc3VsdFRyZWVFbGVtZW50LnJldmVhbEFuZFNlbGVjdCgpOwotICAgICAgICBpZiAoIXRo
aXMuX3Byb2dyZXNzTW9uaXRvci5jYW5jZWxlZCAmJiBsYXVuY2hlckNhbGxiYWNrKQorICAgICAg
ICBpZiAoIXRoaXMuX3Byb2dyZXNzLmlzQ2FuY2VsZWQoKSkKICAgICAgICAgICAgIGxhdW5jaGVy
Q2FsbGJhY2soKTsKICAgICB9LAogCi0gICAgaW5pdGlhdGVBdWRpdDogZnVuY3Rpb24oY2F0ZWdv
cnlJZHMsIHByb2dyZXNzRWxlbWVudCwgcnVuSW1tZWRpYXRlbHksIGxhdW5jaGVyQ2FsbGJhY2sp
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtBcnJheS48c3RyaW5nPn0gY2F0ZWdvcnlJZHMKKyAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9ncmVzc30gcHJvZ3Jlc3MKKyAgICAgKiBAcGFy
YW0ge2Jvb2xlYW59IHJ1bkltbWVkaWF0ZWx5CisgICAgICogQHBhcmFtIHtmdW5jdGlvbigpfSBz
dGFydGVkQ2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKCl9IGZpbmlzaGVkQ2FsbGJh
Y2sKKyAgICAgKi8KKyAgICBpbml0aWF0ZUF1ZGl0OiBmdW5jdGlvbihjYXRlZ29yeUlkcywgcHJv
Z3Jlc3MsIHJ1bkltbWVkaWF0ZWx5LCBzdGFydGVkQ2FsbGJhY2ssIGZpbmlzaGVkQ2FsbGJhY2sp
CiAgICAgewogICAgICAgICBpZiAoIWNhdGVnb3J5SWRzIHx8ICFjYXRlZ29yeUlkcy5sZW5ndGgp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fcHJvZ3Jlc3NNb25pdG9yID0g
bmV3IFdlYkluc3BlY3Rvci5BdWRpdFByb2dyZXNzTW9uaXRvcihwcm9ncmVzc0VsZW1lbnQpOwor
ICAgICAgICB0aGlzLl9wcm9ncmVzcyA9IHByb2dyZXNzOwogCiAgICAgICAgIHZhciBjYXRlZ29y
aWVzID0gW107CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcnlJZHMubGVuZ3Ro
OyArK2kpCiAgICAgICAgICAgICBjYXRlZ29yaWVzLnB1c2godGhpcy5jYXRlZ29yaWVzQnlJZFtj
YXRlZ29yeUlkc1tpXV0pOwogCi0gICAgICAgIGZ1bmN0aW9uIGluaXRpYXRlQXVkaXRDYWxsYmFj
ayhjYXRlZ29yaWVzLCBsYXVuY2hlckNhbGxiYWNrKQotICAgICAgICB7Ci0gICAgICAgICAgICB0
aGlzLl9leGVjdXRlQXVkaXQoY2F0ZWdvcmllcywgdGhpcy5fYXVkaXRGaW5pc2hlZENhbGxiYWNr
LmJpbmQodGhpcywgbGF1bmNoZXJDYWxsYmFjaykpOworICAgICAgICB2YXIgYXVkaXRGaW5pc2hl
ZENhbGxiYWNrID0gdGhpcy5fYXVkaXRGaW5pc2hlZENhbGxiYWNrLmJpbmQodGhpcywgZmluaXNo
ZWRDYWxsYmFjayk7CisgICAgICAgIGlmIChydW5JbW1lZGlhdGVseSkgeworICAgICAgICAgICAg
c3RhcnRlZENhbGxiYWNrKCk7CisgICAgICAgICAgICB0aGlzLl9leGVjdXRlQXVkaXQoY2F0ZWdv
cmllcywgYXVkaXRGaW5pc2hlZENhbGxiYWNrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIG9uUmVsb2FkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBz
dGFydGVkQ2FsbGJhY2soKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9leGVjdXRlQXVkaXQoY2F0
ZWdvcmllcywgYXVkaXRGaW5pc2hlZENhbGxiYWNrKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHRoaXMuX3JlbG9hZFJlc291cmNlcyhvblJlbG9hZC5iaW5kKHRoaXMpKTsKICAgICAgICAg
fQotCi0gICAgICAgIGlmIChydW5JbW1lZGlhdGVseSkKLSAgICAgICAgICAgIGluaXRpYXRlQXVk
aXRDYWxsYmFjay5jYWxsKHRoaXMsIGNhdGVnb3JpZXMsIGxhdW5jaGVyQ2FsbGJhY2spOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9yZWxvYWRSZXNvdXJjZXMoaW5pdGlhdGVBdWRp
dENhbGxiYWNrLmJpbmQodGhpcywgY2F0ZWdvcmllcywgbGF1bmNoZXJDYWxsYmFjaykpOwotCiAg
ICAgICAgIFdlYkluc3BlY3Rvci51c2VyTWV0cmljcy5BdWRpdHNTdGFydGVkLnJlY29yZCgpOwog
ICAgIH0sCiAKLSAgICB0ZXJtaW5hdGVBdWRpdDogZnVuY3Rpb24obGF1bmNoZXJDYWxsYmFjaykK
LSAgICB7Ci0gICAgICAgIHRoaXMuX3Byb2dyZXNzTW9uaXRvci5jYW5jZWxlZCA9IHRydWU7Ci0g
ICAgICAgIGxhdW5jaGVyQ2FsbGJhY2soKTsKLSAgICB9LAotCiAgICAgX3JlbG9hZFJlc291cmNl
czogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewogICAgICAgICB0aGlzLl9wYWdlUmVsb2FkQ2Fs
bGJhY2sgPSBjYWxsYmFjazsKQEAgLTI4MSwxMiArMjg1LDE0IEBAIFdlYkluc3BlY3Rvci5BdWRp
dENhdGVnb3J5LnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7QXJyYXku
PFdlYkluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdD59IHJlcXVlc3RzCisgICAgICogQHBhcmFtIHtm
dW5jdGlvbigpfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2dyZXNz
fSBwcm9ncmVzcwogICAgICAqLwotICAgIHJ1bjogZnVuY3Rpb24ocmVxdWVzdHMsIGNhbGxiYWNr
LCBwcm9ncmVzc01vbml0b3IpCisgICAgcnVuOiBmdW5jdGlvbihyZXF1ZXN0cywgY2FsbGJhY2ss
IHByb2dyZXNzKQogICAgIHsKICAgICAgICAgdGhpcy5fZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9ydWxlcy5sZW5ndGg7ICsraSkKLSAgICAg
ICAgICAgIHRoaXMuX3J1bGVzW2ldLnJ1bihyZXF1ZXN0cywgY2FsbGJhY2ssIHByb2dyZXNzTW9u
aXRvcik7CisgICAgICAgICAgICB0aGlzLl9ydWxlc1tpXS5ydW4ocmVxdWVzdHMsIGNhbGxiYWNr
LCBwcm9ncmVzcyk7CiAgICAgfSwKIAogICAgIF9lbnN1cmVJbml0aWFsaXplZDogZnVuY3Rpb24o
KQpAQCAtMzM4LDIxICszNDQsMjYgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZS5wcm90b3R5cGUg
PSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuTmV0d29y
a1JlcXVlc3Q+fSByZXF1ZXN0cworICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZVJlc3VsdCl9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
UHJvZ3Jlc3N9IHByb2dyZXNzCiAgICAgICovCi0gICAgcnVuOiBmdW5jdGlvbihyZXF1ZXN0cywg
Y2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvcikKKyAgICBydW46IGZ1bmN0aW9uKHJlcXVlc3RzLCBj
YWxsYmFjaywgcHJvZ3Jlc3MpCiAgICAgewotICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNh
bmNlbGVkKQorICAgICAgICBpZiAocHJvZ3Jlc3MuaXNDYW5jZWxlZCgpKQogICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZVJlc3VsdCh0aGlzLmRpc3BsYXlOYW1lKTsKICAgICAgICAgcmVzdWx0LnNldmVyaXR5ID0gdGhp
cy5fc2V2ZXJpdHk7Ci0gICAgICAgIHRoaXMuZG9SdW4ocmVxdWVzdHMsIHJlc3VsdCwgY2FsbGJh
Y2ssIHByb2dyZXNzTW9uaXRvcik7CisgICAgICAgIHRoaXMuZG9SdW4ocmVxdWVzdHMsIHJlc3Vs
dCwgY2FsbGJhY2ssIHByb2dyZXNzKTsKICAgICB9LAogCiAgICAgLyoqCiAgICAgICogQHBhcmFt
IHtBcnJheS48V2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0Pn0gcmVxdWVzdHMKKyAgICAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHR9IHJlc3VsdAorICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdCl9IGNhbGxiYWNrCisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZ3Jlc3N9IHByb2dyZXNzCiAgICAgICovCi0gICAg
ZG9SdW46IGZ1bmN0aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9ncmVzc01vbml0
b3IpCisgICAgZG9SdW46IGZ1bmN0aW9uKHJlcXVlc3RzLCByZXN1bHQsIGNhbGxiYWNrLCBwcm9n
cmVzcykKICAgICB7CiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiZG9SdW4oKSBub3QgaW1wbGVt
ZW50ZWQiKTsKICAgICB9CkBAIC00NTksNjcgKzQ3MCw2IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1
bGVSZXN1bHQucHJvdG90eXBlID0gewogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQHBhcmFt
IHtFbGVtZW50fSBwcm9ncmVzc0VsZW1lbnQKLSAqLwotV2ViSW5zcGVjdG9yLkF1ZGl0UHJvZ3Jl
c3NNb25pdG9yID0gZnVuY3Rpb24ocHJvZ3Jlc3NFbGVtZW50KQotewotICAgIHRoaXMuX2VsZW1l
bnQgPSBwcm9ncmVzc0VsZW1lbnQ7Ci0gICAgdGhpcy5zZXRUb3RhbFdvcmsoV2ViSW5zcGVjdG9y
LkF1ZGl0UHJvZ3Jlc3NNb25pdG9yLklOREVURVJNSU5BVEUpOwotfQotCi1XZWJJbnNwZWN0b3Iu
QXVkaXRQcm9ncmVzc01vbml0b3IuSU5ERVRFUk1JTkFURSA9IC0xOwotCi1XZWJJbnNwZWN0b3Iu
QXVkaXRQcm9ncmVzc01vbml0b3IucHJvdG90eXBlID0gewotICAgIHNldFRvdGFsV29yazogZnVu
Y3Rpb24odG90YWwpCi0gICAgewotICAgICAgICBpZiAodGhpcy5jYW5jZWxlZCB8fCB0aGlzLl90
b3RhbCA9PT0gdG90YWwpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuX3RvdGFs
ID0gdG90YWw7Ci0gICAgICAgIHRoaXMuX3ZhbHVlID0gMDsKLSAgICAgICAgdGhpcy5fZWxlbWVu
dC5tYXggPSB0b3RhbDsKLSAgICAgICAgaWYgKHRvdGFsID09PSBXZWJJbnNwZWN0b3IuQXVkaXRQ
cm9ncmVzc01vbml0b3IuSU5ERVRFUk1JTkFURSkKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQu
cmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlz
Ll9lbGVtZW50LnZhbHVlID0gMDsKLSAgICB9LAotCi0gICAgd29ya2VkOiBmdW5jdGlvbihpdGVt
cykKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLmNhbmNlbGVkIHx8IHRoaXMuaW5kZXRlcm1pbmF0
ZSB8fCB0aGlzLmRvbmUoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fdmFs
dWUgKz0gaXRlbXM7Ci0gICAgICAgIGlmICh0aGlzLl92YWx1ZSA+IHRoaXMuX3RvdGFsKQotICAg
ICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl90b3RhbDsKLSAgICAgICAgdGhpcy5fZWxlbWVu
dC52YWx1ZSA9IHRoaXMuX3ZhbHVlOwotICAgIH0sCi0KLSAgICBnZXQgaW5kZXRlcm1pbmF0ZSgp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdG90YWwgPT09IFdlYkluc3BlY3Rvci5BdWRp
dFByb2dyZXNzTW9uaXRvci5JTkRFVEVSTUlOQVRFOwotICAgIH0sCi0KLSAgICBkb25lOiBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gIXRoaXMuaW5kZXRlcm1pbmF0ZSAmJiAodGhp
cy5jYW5jZWxlZCB8fCB0aGlzLl92YWx1ZSA9PT0gdGhpcy5fdG90YWwpOwotICAgIH0sCi0KLSAg
ICBnZXQgY2FuY2VsZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICEhdGhpcy5fY2FuY2VsZWQ7
Ci0gICAgfSwKLQotICAgIHNldCBjYW5jZWxlZCh4KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMu
X2NhbmNlbGVkID09PSB4KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoeCkKLSAg
ICAgICAgICAgIHRoaXMuc2V0VG90YWxXb3JrKFdlYkluc3BlY3Rvci5BdWRpdFByb2dyZXNzTW9u
aXRvci5JTkRFVEVSTUlOQVRFKTsKLSAgICAgICAgdGhpcy5fY2FuY2VsZWQgPSB4OwotICAgIH0K
LX0KLQotLyoqCi0gKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lk
ZWJhclRyZWVFbGVtZW50fQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWx9IHBh
bmVsCiAgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UHJvZ3Jlc3NCYXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2dy
ZXNzQmFyLmpzCmluZGV4IDg0ZWQ1YTBiYjhkYzQ1NzNiNjZkNjJmNmRhMGFkMDQyMmU5MzgxNWQu
LjgzYThhOGQ2NDRhOTEyZGY2ZmRlY2JiZThhMjlhMDVjYThlNzEyMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZ3Jlc3NCYXIuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9ncmVzc0Jhci5qcwpAQCAtNTIsNiAr
NTIsMTEgQEAgV2ViSW5zcGVjdG9yLlByb2dyZXNzLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAg
ICBzZXRXb3JrZWQ6IGZ1bmN0aW9uKHdvcmtlZCwgdGl0bGUpIHsgfSwKIAorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7bnVtYmVyPX0gd29ya2VkCisgICAgICovCisgICAgd29ya2VkOiBmdW5jdGlv
bih3b3JrZWQpIHsgfSwKKwogICAgIGRvbmU6IGZ1bmN0aW9uKCkgeyB9LAogCiAgICAgLyoqCkBA
IC03Miw5ICs3NywxMCBAQCBXZWJJbnNwZWN0b3IuUHJvZ3Jlc3NJbmRpY2F0b3IgPSBmdW5jdGlv
bigpCiAgICAgdGhpcy5fbGFiZWxFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJz
cGFuIik7CiAgICAgdGhpcy5fcHJvZ3Jlc3NFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNo
aWxkKCJwcm9ncmVzcyIpOwogICAgIHRoaXMuX3N0b3BCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9y
LlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbmNlbCIpLCAicHJvZ3Jl
c3MtYmFyLXN0b3AtYnV0dG9uIik7Ci0gICAgdGhpcy5fc3RvcEJ1dHRvbi5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIHRoaXMuX2NhbmNlbCwgdGhpcyk7CisgICAgdGhpcy5fc3RvcEJ1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuY2FuY2VsLCB0aGlzKTsKICAgICB0aGlzLmVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc3RvcEJ1dHRvbi5lbGVtZW50KTsKICAgICB0aGlzLl9p
c0NhbmNlbGVkID0gZmFsc2U7CisgICAgdGhpcy5fd29ya2VkID0gMDsKIH0KIAogV2ViSW5zcGVj
dG9yLlByb2dyZXNzSW5kaWNhdG9yLkV2ZW50cyA9IHsKQEAgLTEwMyw3ICsxMDksNyBAQCBXZWJJ
bnNwZWN0b3IuUHJvZ3Jlc3NJbmRpY2F0b3IucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUHJvZ3Jlc3NJbmRpY2F0b3IuRXZl
bnRzLkRvbmUpOwogICAgIH0sCiAKLSAgICBfY2FuY2VsOiBmdW5jdGlvbigpCisgICAgY2FuY2Vs
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9pc0NhbmNlbGVkID0gdHJ1ZTsKICAg
ICB9LApAQCAtMTM1LDkgKzE0MSwxOCBAQCBXZWJJbnNwZWN0b3IuUHJvZ3Jlc3NJbmRpY2F0b3Iu
cHJvdG90eXBlID0gewogICAgICAqLwogICAgIHNldFdvcmtlZDogZnVuY3Rpb24od29ya2VkLCB0
aXRsZSkKICAgICB7CisgICAgICAgIHRoaXMuX3dvcmtlZCA9IHdvcmtlZDsKICAgICAgICAgdGhp
cy5fcHJvZ3Jlc3NFbGVtZW50LnZhbHVlID0gd29ya2VkOwogICAgICAgICBpZiAodGl0bGUpCiAg
ICAgICAgICAgICB0aGlzLnNldFRpdGxlKHRpdGxlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtudW1iZXI9fSB3b3JrZWQKKyAgICAgKi8KKyAgICB3b3JrZWQ6IGZ1bmN0aW9u
KHdvcmtlZCkKKyAgICB7CisgICAgICAgIHRoaXMuc2V0V29ya2VkKHRoaXMuX3dvcmtlZCArICh3
b3JrZWQgfHwgMSkpOwogICAgIH0KIH0KIApAQCAtMjQzLDUgKzI1OCwxMyBAQCBXZWJJbnNwZWN0
b3IuU3ViUHJvZ3Jlc3MucHJvdG90eXBlID0gewogICAgICAgICBpZiAodHlwZW9mIHRpdGxlICE9
PSAidW5kZWZpbmVkIikKICAgICAgICAgICAgIHRoaXMuc2V0VGl0bGUodGl0bGUpOwogICAgICAg
ICB0aGlzLl9jb21wb3NpdGUuX3VwZGF0ZSgpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge251bWJlcj19IHdvcmtlZAorICAgICAqLworICAgIHdvcmtlZDogZnVuY3Rpb24od29y
a2VkKQorICAgIHsKKyAgICAgICAgdGhpcy5zZXRXb3JrZWQodGhpcy5fd29ya2VkICsgKHdvcmtl
ZCB8fCAxKSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9hdWRpdHNQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2F1ZGl0c1BhbmVsLmNzcwppbmRleCA0ZjZmMTdlOGFhMzgyZGI0MmYxMDliYmFjYjUy
ZjhhMTI3NjExMzE0Li5hOGNjMWIwNzI4OWRhNGM5N2Q4OWM5MTQ2ZWVhOGZmMDIzOWZkYjQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0c1BhbmVs
LmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0c1BhbmVs
LmNzcwpAQCAtMTE2LDEyICsxMTYsNiBAQAogICAgIG1hcmdpbi1sZWZ0OiAwOwogfQogCi0uYXVk
aXQtbGF1bmNoZXItdmlldyAucmVzb3VyY2UtcHJvZ3Jlc3MgPiBpbWcgewotICAgIGNvbnRlbnQ6
IHVybChJbWFnZXMvc3Bpbm5lci5naWYpOwotICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsK
LSAgICBtYXJnaW46IDAgNHB4IDAgOHB4OwotfQotCiAuYXVkaXQtcmVzdWx0LXZpZXcgewogICAg
IG92ZXJmbG93OiBhdXRvOwogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKQEAgLTIzMywzICsyMjcs
MTEgQEAKICAgICBtYXJnaW4tbGVmdDogLTI4cHg7CiAgICAgbWFyZ2luLXRvcDogLTFweDsKIH0K
KworLmF1ZGl0LWxhdW5jaGVyLXZpZXcgLnByb2dyZXNzLWJhci1jb250YWluZXIgeworICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKK30KKworLmF1ZGl0LWxhdW5jaGVyLXZpZXcgLnByb2dyZXNz
LWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhci1zdG9wLWJ1dHRvbiB7CisgICAgZGlzcGxheTog
bm9uZTsKK30K
</data>
<flag name="review"
          id="175798"
          type_id="1"
          status="+"
          setter="apavlov"
    />
          </attachment>
      

    </bug>

</bugzilla>