<?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>98053</bug_id>
          
          <creation_ts>2012-10-01 11:35:35 -0700</creation_ts>
          <short_desc>Web Inspector: move completions calculation into RuntimeModel (part 1)</short_desc>
          <delta_ts>2012-10-01 23:10:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>731835</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-01 11:35:35 -0700</bug_when>
    <thetext>- moves current execution context state into runtime model
- moves completionsForTextPrompt and its private helpers into runtime model
- makes text prompt use generic expression stop characters by default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731837</commentid>
    <comment_count>1</comment_count>
      <attachid>166512</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-01 11:39:16 -0700</bug_when>
    <thetext>Created attachment 166512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732292</commentid>
    <comment_count>2</comment_count>
      <attachid>166512</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-01 22:59:25 -0700</bug_when>
    <thetext>Comment on attachment 166512
Patch

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

&gt; Source/WebCore/inspector/front-end/RuntimeModel.js:167
&gt; +    completionsForTextPrompt: function(textPrompt, wordRange, force, completionsReadyCallback)

Can we get rid of dependency on TextPrompt here?

&gt; Source/WebCore/inspector/front-end/RuntimeModel.js:170
&gt; +        var expressionRange = wordRange.startContainer.rangeOfWord(wordRange.startOffset, &quot; =:[({;,!+-*/&amp;|^&lt;&gt;&quot;, textPrompt.proxyElement, &quot;backward&quot;);

Can you extract constant for &quot; =:[({;,!+-*/&amp;|^&lt;&gt;&quot; and reuse it in TextPrompt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732297</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-01 23:06:28 -0700</bug_when>
    <thetext>&gt; Can you extract constant for &quot; =:[({;,!+-*/&amp;|^&lt;&gt;&quot; and reuse it in TextPrompt?

I am not sure why (and whether they should) correlate. I&apos;ll need to further refactor it. TextPrompt code is a mess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732299</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-01 23:10:24 -0700</bug_when>
    <thetext>Committed r130119: &lt;http://trac.webkit.org/changeset/130119&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166512</attachid>
            <date>2012-10-01 11:39:16 -0700</date>
            <delta_ts>2012-10-01 22:59:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98053-20121001223829.patch</filename>
            <type>text/plain</type>
            <size>32001</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY4ZTUyY2ZjM2U3ZjAy
Y2UzMjZjMTg1YmQ3ZWVkMWE3MmUxOGMzMy4uZjQ0Y2U1MmIxNTI0NzNkNGJjZTljZDk3NDBiY2Y3
MDdjNTk5YzNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEwLTAxICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IG1vdmUgY29tcGxldGlvbnMgY2FsY3VsYXRpb24gaW50byBSdW50aW1lTW9kZWwgKHBhcnQg
MSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MDUz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBtb3Zl
cyBjdXJyZW50IGV4ZWN1dGlvbiBjb250ZXh0IHN0YXRlIGludG8gcnVudGltZSBtb2RlbAorICAg
ICAgICAtIG1vdmVzIGNvbXBsZXRpb25zRm9yVGV4dFByb21wdCBhbmQgaXRzIHByaXZhdGUgaGVs
cGVycyBpbnRvIHJ1bnRpbWUgbW9kZWwKKyAgICAgICAgLSBtYWtlcyB0ZXh0IHByb21wdCB1c2Ug
Z2VuZXJpYyBleHByZXNzaW9uIHN0b3AgY2hhcmFjdGVycyBieSBkZWZhdWx0CisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZS5fZnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90
b3R5cGUuX2FwcGVuZENvbnRleHRPcHRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVWaWV3LnByb3RvdHlwZS5fY29udGV4dENoYW5nZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0
YWJhc2VRdWVyeVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJv
cGVydGllc1NlY3Rpb24uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlQ
cm9tcHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUnVudGltZU1vZGVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbC5wcm90b3R5cGUuc2V0Q3VycmVudEV4
ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbC5wcm90
b3R5cGUuY3VycmVudEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1
bnRpbWVNb2RlbC5wcm90b3R5cGUuX2V4ZWN1dGlvbkNvbnRleHRDcmVhdGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SdW50aW1lTW9kZWwucHJvdG90eXBlLmV2YWx1YXRlLmV2YWxDYWxsYmFj
ayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVudGltZU1vZGVsLnByb3RvdHlwZS5ldmFsdWF0
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVudGltZU1vZGVsLnByb3RvdHlwZS5jb21wbGV0
aW9uc0ZvclRleHRQcm9tcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbC5w
cm90b3R5cGUuX2NvbXBsZXRpb25zRm9yRXhwcmVzc2lvbi5ldmFsdWF0ZWQuZ2V0Q29tcGxldGlv
bnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbC5wcm90b3R5cGUuX2NvbXBs
ZXRpb25zRm9yRXhwcmVzc2lvbi5ldmFsdWF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1
bnRpbWVNb2RlbC5wcm90b3R5cGUuX2NvbXBsZXRpb25zRm9yRXhwcmVzc2lvbi5yZWNlaXZlZFBy
b3BlcnR5TmFtZXNGcm9tRXZhbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVudGltZU1vZGVs
LnByb3RvdHlwZS5fY29tcGxldGlvbnNGb3JFeHByZXNzaW9uLnJlY2VpdmVkUHJvcGVydHlOYW1l
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVudGltZU1vZGVsLnByb3RvdHlwZS5fY29tcGxl
dGlvbnNGb3JFeHByZXNzaW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SdW50aW1lTW9kZWwu
cHJvdG90eXBlLl9yZXBvcnRDb21wbGV0aW9ucyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9UZXh0UHJvbXB0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5l
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3Rv
dHlwZS51cGRhdGUpOgorCiAyMDEyLTA5LTI3ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50
dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIHRoYXQgdGhlIGhpc3Rvcnkg
cG9zaXRpb24gaXMgYXBwbGllZCBjb3JyZWN0bHkgd2hlbiB1c2luZyBkZWxlZ2F0ZXNTY3JvbGxp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3
LmpzCmluZGV4IDA0MDExMTY1YTNhMDAyODgwNDQzZDI3MmFlNDNhZDk4NmFmNjk2MGYuLjkwODli
MzQwMzE0YmZiM2NkN2Y3MTIyOWNmOTJlNGQ3MDJhMmYyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpAQCAtMjcsOCArMjcsNiBA
QAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi1jb25zdCBFeHByZXNzaW9uU3RvcENoYXJhY3RlcnMgPSAi
ID06Wyh7OywhKy0qLyZ8Xjw+IjsKLQogLyoqCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZp
ZXd9CiAgKiBAY29uc3RydWN0b3IKQEAgLTExNCw3ICsxMTIsNyBAQCBXZWJJbnNwZWN0b3IuQ29u
c29sZVZpZXcgPSBmdW5jdGlvbihoaWRlQ29udGV4dFNlbGVjdG9yKQogCiAgICAgdGhpcy5fbGlu
a2lmaWVyID0gbmV3IFdlYkluc3BlY3Rvci5MaW5raWZpZXIoKTsKIAotICAgIHRoaXMucHJvbXB0
ID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0V2l0aEhpc3RvcnkodGhpcy5jb21wbGV0aW9u
c0ZvclRleHRQcm9tcHQuYmluZCh0aGlzKSwgRXhwcmVzc2lvblN0b3BDaGFyYWN0ZXJzICsgIi4i
KTsKKyAgICB0aGlzLnByb21wdCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFByb21wdFdpdGhIaXN0
b3J5KFdlYkluc3BlY3Rvci5ydW50aW1lTW9kZWwuY29tcGxldGlvbnNGb3JUZXh0UHJvbXB0LmJp
bmQoV2ViSW5zcGVjdG9yLnJ1bnRpbWVNb2RlbCkpOwogICAgIHRoaXMucHJvbXB0LnNldFN1Z2dl
c3RCb3hFbmFibGVkKCJnZW5lcmljLXN1Z2dlc3QiKTsKICAgICB0aGlzLnByb21wdC5yZW5kZXJB
c0Jsb2NrKCk7CiAgICAgdGhpcy5wcm9tcHQuYXR0YWNoKHRoaXMucHJvbXB0RWxlbWVudCk7CkBA
IC0xNzYsMTQgKzE3NCwxNCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0g
ewogICAgIHsKICAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLl9jdXJyZW50RnJhbWUoKTsKICAg
ICAgICAgaWYgKCFjb250ZXh0KSB7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVudEV4
ZWN1dGlvbkNvbnRleHQ7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucnVudGltZU1vZGVsLnNl
dEN1cnJlbnRFeGVjdXRpb25Db250ZXh0KG51bGwpOwogICAgICAgICAgICAgdGhpcy5fY29udGV4
dFNlbGVjdG9yLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgZXhlY3V0aW9uQ29udGV4dHMgPSBjb250
ZXh0LmV4ZWN1dGlvbkNvbnRleHRzKCk7CiAgICAgICAgIGlmIChleGVjdXRpb25Db250ZXh0cy5s
ZW5ndGgpCi0gICAgICAgICAgICB0aGlzLl9jdXJyZW50RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1
dGlvbkNvbnRleHRzWzBdOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnJ1bnRpbWVNb2RlbC5z
ZXRDdXJyZW50RXhlY3V0aW9uQ29udGV4dChleGVjdXRpb25Db250ZXh0c1swXSk7CiAKICAgICAg
ICAgaWYgKGV4ZWN1dGlvbkNvbnRleHRzLmxlbmd0aCA9PT0gMSkgewogICAgICAgICAgICAgdGhp
cy5fY29udGV4dFNlbGVjdG9yLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CkBAIC0y
MDAsOCArMTk4LDggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgKi8KICAgICBfYXBwZW5kQ29udGV4dE9wdGlvbjogZnVuY3Rpb24oZXhlY3V0aW9uQ29udGV4
dCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fY3VycmVudEV4ZWN1dGlvbkNvbnRleHQpCi0g
ICAgICAgICAgICB0aGlzLl9jdXJyZW50RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRl
eHQ7CisgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnJ1bnRpbWVNb2RlbC5jdXJyZW50RXhlY3V0
aW9uQ29udGV4dCgpKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnJ1bnRpbWVNb2RlbC5zZXRD
dXJyZW50RXhlY3V0aW9uQ29udGV4dChleGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgdmFyIG9w
dGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwogICAgICAgICBvcHRpb24u
dGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQubmFtZTsKICAgICAgICAgb3B0aW9uLnRpdGxlID0gZXhl
Y3V0aW9uQ29udGV4dC5pZDsKQEAgLTIxNSw3ICsyMTMsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlID0gewogICAgIF9jb250ZXh0Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewogICAgICAgICB2YXIgb3B0aW9uID0gdGhpcy5fY29udGV4dFNlbGVjdG9yLnNlbGVj
dGVkT3B0aW9uKCk7Ci0gICAgICAgIHRoaXMuX2N1cnJlbnRFeGVjdXRpb25Db250ZXh0ID0gb3B0
aW9uID8gb3B0aW9uLl9leGVjdXRpb25Db250ZXh0IDogdW5kZWZpbmVkOworICAgICAgICBXZWJJ
bnNwZWN0b3IucnVudGltZU1vZGVsLnNldEN1cnJlbnRFeGVjdXRpb25Db250ZXh0KG9wdGlvbiA/
IG9wdGlvbi5fZXhlY3V0aW9uQ29udGV4dCA6IG51bGwpOwogICAgIH0sCiAKICAgICAvKioKQEAg
LTQzMiwxNDMgKzQzMCw2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMuX2xpbmtpZmllci5yZXNldCgpOwogICAgIH0sCiAKLSAgICBjb21wbGV0
aW9uc0ZvclRleHRQcm9tcHQ6IGZ1bmN0aW9uKHRleHRQcm9tcHQsIHdvcmRSYW5nZSwgZm9yY2Us
IGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIC8vIFBhc3MgbGVzcyBz
dG9wIGNoYXJhY3RlcnMgdG8gcmFuZ2VPZldvcmQgc28gdGhlIHJhbmdlIHdpbGwgYmUgYSBtb3Jl
IGNvbXBsZXRlIGV4cHJlc3Npb24uCi0gICAgICAgIHZhciBleHByZXNzaW9uUmFuZ2UgPSB3b3Jk
UmFuZ2Uuc3RhcnRDb250YWluZXIucmFuZ2VPZldvcmQod29yZFJhbmdlLnN0YXJ0T2Zmc2V0LCBF
eHByZXNzaW9uU3RvcENoYXJhY3RlcnMsIHRleHRQcm9tcHQucHJveHlFbGVtZW50LCAiYmFja3dh
cmQiKTsKLSAgICAgICAgdmFyIGV4cHJlc3Npb25TdHJpbmcgPSBleHByZXNzaW9uUmFuZ2UudG9T
dHJpbmcoKTsKLSAgICAgICAgdmFyIHByZWZpeCA9IHdvcmRSYW5nZS50b1N0cmluZygpOwotICAg
ICAgICB0aGlzLmNvbXBsZXRpb25zRm9yRXhwcmVzc2lvbihleHByZXNzaW9uU3RyaW5nLCBwcmVm
aXgsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spOwotICAgIH0sCi0KLSAgICBjb21w
bGV0aW9uc0ZvckV4cHJlc3Npb246IGZ1bmN0aW9uKGV4cHJlc3Npb25TdHJpbmcsIHByZWZpeCwg
Zm9yY2UsIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBsYXN0
SW5kZXggPSBleHByZXNzaW9uU3RyaW5nLmxlbmd0aCAtIDE7Ci0KLSAgICAgICAgdmFyIGRvdE5v
dGF0aW9uID0gKGV4cHJlc3Npb25TdHJpbmdbbGFzdEluZGV4XSA9PT0gIi4iKTsKLSAgICAgICAg
dmFyIGJyYWNrZXROb3RhdGlvbiA9IChleHByZXNzaW9uU3RyaW5nW2xhc3RJbmRleF0gPT09ICJb
Iik7Ci0KLSAgICAgICAgaWYgKGRvdE5vdGF0aW9uIHx8IGJyYWNrZXROb3RhdGlvbikKLSAgICAg
ICAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBleHByZXNzaW9uU3RyaW5nLnN1YnN0cigwLCBsYXN0
SW5kZXgpOwotCi0gICAgICAgIGlmIChleHByZXNzaW9uU3RyaW5nICYmIHBhcnNlSW50KGV4cHJl
c3Npb25TdHJpbmcsIDEwKSA9PSBleHByZXNzaW9uU3RyaW5nKSB7Ci0gICAgICAgICAgICAvLyBV
c2VyIGlzIGVudGVyaW5nIGZsb2F0IHZhbHVlLCBkbyBub3Qgc3VnZ2VzdCBhbnl0aGluZy4KLSAg
ICAgICAgICAgIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjayhbXSk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIXByZWZpeCAmJiAhZXhwcmVzc2lvblN0cmlu
ZyAmJiAhZm9yY2UpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjayhbXSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWV4cHJlc3Np
b25TdHJpbmcgJiYgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2VsZWN0ZWRDYWxsRnJhbWUo
KSkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmdldFNlbGVjdGVkQ2Fs
bEZyYW1lVmFyaWFibGVzKHJlY2VpdmVkUHJvcGVydHlOYW1lcy5iaW5kKHRoaXMpKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgdGhpcy5ldmFsSW5JbnNwZWN0ZWRXaW5kb3coZXhwcmVzc2lv
blN0cmluZywgImNvbXBsZXRpb24iLCB0cnVlLCB0cnVlLCBmYWxzZSwgZXZhbHVhdGVkLmJpbmQo
dGhpcykpOwotCi0gICAgICAgIGZ1bmN0aW9uIGV2YWx1YXRlZChyZXN1bHQsIHdhc1Rocm93bikK
LSAgICAgICAgewotICAgICAgICAgICAgaWYgKCFyZXN1bHQgfHwgd2FzVGhyb3duKSB7Ci0gICAg
ICAgICAgICAgICAgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrKFtdKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdldENvbXBs
ZXRpb25zKHByaW1pdGl2ZVR5cGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFy
IG9iamVjdDsKLSAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVHlwZSA9PT0gInN0cmluZyIp
Ci0gICAgICAgICAgICAgICAgICAgIG9iamVjdCA9IG5ldyBTdHJpbmcoIiIpOwotICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVR5cGUgPT09ICJudW1iZXIiKQotICAgICAgICAgICAg
ICAgICAgICBvYmplY3QgPSBuZXcgTnVtYmVyKDApOwotICAgICAgICAgICAgICAgIGVsc2UgaWYg
KHByaW1pdGl2ZVR5cGUgPT09ICJib29sZWFuIikKLSAgICAgICAgICAgICAgICAgICAgb2JqZWN0
ID0gbmV3IEJvb2xlYW4oZmFsc2UpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgb2JqZWN0ID0gdGhpczsKLQotICAgICAgICAgICAgICAgIHZhciByZXN1bHRTZXQg
PSB7fTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBvID0gb2JqZWN0OyBvOyBvID0gby5fX3By
b3RvX18pIHsKLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBuYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG8pOwotICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRTZXRbbmFtZXNbaV1dID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRTZXQ7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gIm9iamVjdCIgfHwg
cmVzdWx0LnR5cGUgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgcmVzdWx0LmNhbGxG
dW5jdGlvbkpTT04oZ2V0Q29tcGxldGlvbnMsIHVuZGVmaW5lZCwgcmVjZWl2ZWRQcm9wZXJ0eU5h
bWVzLmJpbmQodGhpcykpOwotICAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0LnR5cGUgPT09ICJz
dHJpbmciIHx8IHJlc3VsdC50eXBlID09PSAibnVtYmVyIiB8fCByZXN1bHQudHlwZSA9PT0gImJv
b2xlYW4iKQotICAgICAgICAgICAgICAgIHRoaXMuZXZhbEluSW5zcGVjdGVkV2luZG93KCIoIiAr
IGdldENvbXBsZXRpb25zICsgIikoXCIiICsgcmVzdWx0LnR5cGUgKyAiXCIpIiwgImNvbXBsZXRp
b24iLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgcmVjZWl2ZWRQcm9wZXJ0eU5hbWVzRnJvbUV2YWwuYmlu
ZCh0aGlzKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiByZWNlaXZlZFByb3BlcnR5
TmFtZXNGcm9tRXZhbChub3RSZWxldmFudCwgd2FzVGhyb3duLCByZXN1bHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgIXdhc1Rocm93bikKLSAgICAgICAgICAgICAgICBy
ZWNlaXZlZFByb3BlcnR5TmFtZXMuY2FsbCh0aGlzLCByZXN1bHQudmFsdWUpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjayhbXSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiByZWNlaXZlZFByb3BlcnR5TmFtZXMocHJvcGVy
dHlOYW1lcykKLSAgICAgICAgewotICAgICAgICAgICAgUnVudGltZUFnZW50LnJlbGVhc2VPYmpl
Y3RHcm91cCgiY29tcGxldGlvbiIpOwotICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eU5hbWVzKSB7
Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrKFtdKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgaW5jbHVkZUNv
bW1hbmRMaW5lQVBJID0gKCFkb3ROb3RhdGlvbiAmJiAhYnJhY2tldE5vdGF0aW9uKTsKLSAgICAg
ICAgICAgIGlmIChpbmNsdWRlQ29tbWFuZExpbmVBUEkpIHsKLSAgICAgICAgICAgICAgICBjb25z
dCBjb21tYW5kTGluZUFQSSA9IFsiZGlyIiwgImRpcnhtbCIsICJrZXlzIiwgInZhbHVlcyIsICJw
cm9maWxlIiwgInByb2ZpbGVFbmQiLCAibW9uaXRvckV2ZW50cyIsICJ1bm1vbml0b3JFdmVudHMi
LCAiaW5zcGVjdCIsICJjb3B5IiwgImNsZWFyIl07Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBjb21tYW5kTGluZUFQSS5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAg
ICAgcHJvcGVydHlOYW1lc1tjb21tYW5kTGluZUFQSVtpXV0gPSB0cnVlOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgdGhpcy5fcmVwb3J0Q29tcGxldGlvbnMoY29tcGxldGlvbnNSZWFkeUNh
bGxiYWNrLCBkb3ROb3RhdGlvbiwgYnJhY2tldE5vdGF0aW9uLCBleHByZXNzaW9uU3RyaW5nLCBw
cmVmaXgsIE9iamVjdC5rZXlzKHByb3BlcnR5TmFtZXMpKTsKLSAgICAgICAgfQotICAgIH0sCi0K
LSAgICBfcmVwb3J0Q29tcGxldGlvbnM6IGZ1bmN0aW9uKGNvbXBsZXRpb25zUmVhZHlDYWxsYmFj
aywgZG90Tm90YXRpb24sIGJyYWNrZXROb3RhdGlvbiwgZXhwcmVzc2lvblN0cmluZywgcHJlZml4
LCBwcm9wZXJ0aWVzKSB7Ci0gICAgICAgIGlmIChicmFja2V0Tm90YXRpb24pIHsKLSAgICAgICAg
ICAgIGlmIChwcmVmaXgubGVuZ3RoICYmIHByZWZpeFswXSA9PT0gIiciKQotICAgICAgICAgICAg
ICAgIHZhciBxdW90ZVVzZWQgPSAiJyI7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgdmFyIHF1b3RlVXNlZCA9ICJcIiI7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcmVzdWx0
cyA9IFtdOwotCi0gICAgICAgIGlmICghZXhwcmVzc2lvblN0cmluZykgewotICAgICAgICAgICAg
Y29uc3Qga2V5d29yZHMgPSBbImJyZWFrIiwgImNhc2UiLCAiY2F0Y2giLCAiY29udGludWUiLCAi
ZGVmYXVsdCIsICJkZWxldGUiLCAiZG8iLCAiZWxzZSIsICJmaW5hbGx5IiwgImZvciIsICJmdW5j
dGlvbiIsICJpZiIsICJpbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5zdGFu
Y2VvZiIsICJuZXciLCAicmV0dXJuIiwgInN3aXRjaCIsICJ0aGlzIiwgInRocm93IiwgInRyeSIs
ICJ0eXBlb2YiLCAidmFyIiwgInZvaWQiLCAid2hpbGUiLCAid2l0aCJdOwotICAgICAgICAgICAg
cHJvcGVydGllcyA9IHByb3BlcnRpZXMuY29uY2F0KGtleXdvcmRzKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHByb3BlcnRpZXMuc29ydCgpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cHJvcGVydGllcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gcHJv
cGVydGllc1tpXTsKLQotICAgICAgICAgICAgaWYgKGRvdE5vdGF0aW9uICYmICEvXlthLXpBLVpf
JF1bYS16QS1aMC05XyRdKiQvLnRlc3QocHJvcGVydHkpKQotICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotCi0gICAgICAgICAgICBpZiAoYnJhY2tldE5vdGF0aW9uKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCEvXlswLTldKyQvLnRlc3QocHJvcGVydHkpKQotICAgICAgICAgICAgICAgICAgICBw
cm9wZXJ0eSA9IHF1b3RlVXNlZCArIHByb3BlcnR5LmVzY2FwZUNoYXJhY3RlcnMocXVvdGVVc2Vk
ICsgIlxcIikgKyBxdW90ZVVzZWQ7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHkgKz0gIl0iOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAocHJvcGVydHkubGVuZ3RoIDwgcHJlZml4
Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmIChwcmVm
aXgubGVuZ3RoICYmICFwcm9wZXJ0eS5zdGFydHNXaXRoKHByZWZpeCkpCi0gICAgICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIHJlc3VsdHMucHVzaChwcm9wZXJ0eSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrKHJlc3VsdHMpOwotICAgIH0s
Ci0KICAgICBfaGFuZGxlQ29udGV4dE1lbnVFdmVudDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewog
ICAgICAgICBpZiAoIXdpbmRvdy5nZXRTZWxlY3Rpb24oKS5pc0NvbGxhcHNlZCkgewpAQCAtNjcy
LDQ3ICs1MzMsNiBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICB9CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBleHByZXNz
aW9uCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IG9iamVjdEdyb3VwCi0gICAgICogQHBhcmFtIHti
b29sZWFufSBpbmNsdWRlQ29tbWFuZExpbmVBUEkKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGRv
Tm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZQotICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gcmV0dXJuQnlWYWx1ZQotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1dlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QsIGJvb2xlYW4sIFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3Q9KX0gY2FsbGJh
Y2sKLSAgICAgKi8KLSAgICBldmFsSW5JbnNwZWN0ZWRXaW5kb3c6IGZ1bmN0aW9uKGV4cHJlc3Np
b24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGRvTm90UGF1c2VPbkV4Y2Vw
dGlvbnNBbmRNdXRlQ29uc29sZSwgcmV0dXJuQnlWYWx1ZSwgY2FsbGJhY2spCi0gICAgewotICAg
ICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2VsZWN0ZWRDYWxsRnJhbWUoKSkg
ewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuZXZhbHVhdGVPblNlbGVj
dGVkQ2FsbEZyYW1lKGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVB
UEksIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgcmV0dXJuQnlWYWx1ZSwg
Y2FsbGJhY2spOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KCFleHByZXNzaW9uKSB7Ci0gICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBleHByZXNzaW9uLCBz
byB0aGUgY29tcGxldGlvbiBzaG91bGQgaGFwcGVuIGFnYWluc3QgZ2xvYmFsIHByb3BlcnRpZXMu
Ci0gICAgICAgICAgICBleHByZXNzaW9uID0gInRoaXMiOwotICAgICAgICB9Ci0KLSAgICAgICAg
LyoqCi0gICAgICAgICAqIEBwYXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJvcgotICAgICAgICAg
KiBAcGFyYW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R9IHJlc3VsdAotICAgICAgICAgKiBA
cGFyYW0ge2Jvb2xlYW49fSB3YXNUaHJvd24KLSAgICAgICAgICovCi0gICAgICAgIGZ1bmN0aW9u
IGV2YWxDYWxsYmFjayhlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3Ip
OwotICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGZhbHNlKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChyZXR1cm5CeVZhbHVl
KQotICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsICEhd2FzVGhyb3duLCB3YXNUaHJvd24g
PyBudWxsIDogcmVzdWx0KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjYWxs
YmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCksICEhd2Fz
VGhyb3duKTsKLSAgICAgICAgfQotICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVz
c2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQYXVzZU9uRXhj
ZXB0aW9uc0FuZE11dGVDb25zb2xlLCB0aGlzLl9jdXJyZW50RXhlY3V0aW9uQ29udGV4dCA/IHRo
aXMuX2N1cnJlbnRFeGVjdXRpb25Db250ZXh0LmlkIDogdW5kZWZpbmVkLCByZXR1cm5CeVZhbHVl
LCBldmFsQ2FsbGJhY2spOwotICAgIH0sCi0KICAgICBldmFsdWF0ZVVzaW5nVGV4dFByb21wdDog
ZnVuY3Rpb24oZXhwcmVzc2lvbiwgc2hvd1Jlc3VsdE9ubHkpCiAgICAgewogICAgICAgICB0aGlz
Ll9hcHBlbmRDb21tYW5kKGV4cHJlc3Npb24sIHRoaXMucHJvbXB0LnRleHQsIGZhbHNlLCBzaG93
UmVzdWx0T25seSk7CkBAIC03MzUsNyArNTU1LDggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3
LnByb3RvdHlwZSA9IHsKIAogICAgIHJ1blNjcmlwdDogZnVuY3Rpb24oc2NyaXB0SWQpCiAgICAg
ewotICAgICAgICBEZWJ1Z2dlckFnZW50LnJ1blNjcmlwdChzY3JpcHRJZCwgdGhpcy5fY3VycmVu
dEV4ZWN1dGlvbkNvbnRleHQgPyB0aGlzLl9jdXJyZW50RXhlY3V0aW9uQ29udGV4dC5pZCA6IHVu
ZGVmaW5lZCwgImNvbnNvbGUiLCBmYWxzZSwgcnVuQ2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAg
ICAgIHZhciBjdXJyZW50RXhlY3V0aW9uQ29udGV4dCA9IFdlYkluc3BlY3Rvci5ydW50aW1lTW9k
ZWwuY3VycmVudEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAgICAgRGVidWdnZXJBZ2VudC5ydW5T
Y3JpcHQoc2NyaXB0SWQsIGN1cnJlbnRFeGVjdXRpb25Db250ZXh0ID8gY3VycmVudEV4ZWN1dGlv
bkNvbnRleHQuaWQgOiB1bmRlZmluZWQsICJjb25zb2xlIiwgZmFsc2UsIHJ1bkNhbGxiYWNrLmJp
bmQodGhpcykpOwogICAgICAgICBXZWJJbnNwZWN0b3IudXNlck1ldHJpY3MuQ29uc29sZUV2YWx1
YXRlZC5yZWNvcmQoKTsKIAogICAgICAgICAvKioKQEAgLTc4Myw3ICs2MDQsNyBAQCBXZWJJbnNw
ZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgCiAgICAgICAgICAg
ICB0aGlzLl9wcmludFJlc3VsdChyZXN1bHQsIHdhc1Rocm93biwgY29tbWFuZE1lc3NhZ2UpOwog
ICAgICAgICB9Ci0gICAgICAgIHRoaXMuZXZhbEluSW5zcGVjdGVkV2luZG93KHRleHQsICJjb25z
b2xlIiwgdXNlQ29tbWFuZExpbmVBUEksIGZhbHNlLCBmYWxzZSwgcHJpbnRSZXN1bHQuYmluZCh0
aGlzKSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTW9kZWwuZXZhbHVhdGUodGV4dCwg
ImNvbnNvbGUiLCB1c2VDb21tYW5kTGluZUFQSSwgZmFsc2UsIGZhbHNlLCBwcmludFJlc3VsdC5i
aW5kKHRoaXMpKTsKIAogICAgICAgICBXZWJJbnNwZWN0b3IudXNlck1ldHJpY3MuQ29uc29sZUV2
YWx1YXRlZC5yZWNvcmQoKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMKaW5kZXggZGIwNmMxY2IyM2E4
YjU0NzllZTRhY2YwMzUwNGI3ZjgzNTIxNGYwNy4uZWVjN2FkMWY2NzZkNmUxNDUzYWI2MmVlYmNk
OGNmYTkwNzBhOGJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzCkBAIC00Niw3ICs0Niw3IEBAIFdlYkluc3Bl
Y3Rvci5EYXRhYmFzZVF1ZXJ5VmlldyA9IGZ1bmN0aW9uKGRhdGFiYXNlKQogCiAgICAgdGhpcy5w
cm9tcHQgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHRXaXRoSGlzdG9yeSh0aGlzLmNvbXBs
ZXRpb25zLmJpbmQodGhpcyksICIgIik7CiAgICAgdGhpcy5wcm9tcHQuYXR0YWNoKHRoaXMuX3By
b21wdEVsZW1lbnQpOwotICAgIAorCiAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgdGhpcy5fbWVzc2FnZXNDbGlja2VkLmJpbmQodGhpcyksIHRydWUpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmpl
Y3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCBjNThmZjUzZmVlNmRiYjBiODBhMTcwMmEyMjI3
OTExMjAyNzYxZDA2Li40MzlhY2ZjMzA4ZTBmYTY4NzAzN2Q3MTE1YWJkMmU4NjNkNDEzMWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
T2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTc0Miw4ICs3NDIsNyBAQCBXZWJJbnNwZWN0
b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50LnByb3RvdHlwZS5fX3Byb3RvX18gPSBUcmVlRWxl
bWVudC5wcm90b3R5cAogICovCiBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlQcm9tcHQgPSBm
dW5jdGlvbihjb21taXRIYW5kbGVyLCBjYW5jZWxIYW5kbGVyLCByZW5kZXJBc0Jsb2NrKQogewot
ICAgIGNvbnN0IEV4cHJlc3Npb25TdG9wQ2hhcmFjdGVycyA9ICIgPTpbKHs7LCErLSovJnxePD4u
IjsgLy8gU2FtZSBhcyBpbiBDb25zb2xlVmlldy5qcyArICIuIgotICAgIFdlYkluc3BlY3Rvci5U
ZXh0UHJvbXB0LmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmNvbXBsZXRpb25z
Rm9yVGV4dFByb21wdC5iaW5kKFdlYkluc3BlY3Rvci5jb25zb2xlVmlldyksIEV4cHJlc3Npb25T
dG9wQ2hhcmFjdGVycyk7CisgICAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQuY2FsbCh0aGlzLCBX
ZWJJbnNwZWN0b3IucnVudGltZU1vZGVsLmNvbXBsZXRpb25zRm9yVGV4dFByb21wdC5iaW5kKFdl
Ykluc3BlY3Rvci5ydW50aW1lTW9kZWwpKTsKICAgICB0aGlzLnNldFN1Z2dlc3RCb3hFbmFibGVk
KCJnZW5lcmljLXN1Z2dlc3QiKTsKICAgICBpZiAocmVuZGVyQXNCbG9jaykKICAgICAgICAgdGhp
cy5yZW5kZXJBc0Jsb2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1J1bnRpbWVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUnVudGltZU1vZGVsLmpzCmluZGV4IGIzOWQ4MDU5ZDAwZTkyNGY3ZjJiOTI3MDIyZmZh
NmNjMGNmNGQ1YTQuLmFhZTIwMGNkOGZjYjk5ZjhjZGZjNjQ1NjgyMTkxNjEwOTdmZmQ5ZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUnVudGltZU1vZGVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUnVudGltZU1vZGVs
LmpzCkBAIC00OSw2ICs0OSwyMiBAQCBXZWJJbnNwZWN0b3IuUnVudGltZU1vZGVsLkV2ZW50cyA9
IHsKIAogV2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgLyoqCisg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXhlY3V0aW9uQ29udGV4dH0gZXhlY3V0aW9uQ29u
dGV4dAorICAgICAqLworICAgIHNldEN1cnJlbnRFeGVjdXRpb25Db250ZXh0OiBmdW5jdGlvbihl
eGVjdXRpb25Db250ZXh0KQorICAgIHsKKyAgICAgICAgdGhpcy5fY3VycmVudEV4ZWN1dGlvbkNv
bnRleHQgPSBleGVjdXRpb25Db250ZXh0OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0
dXJuIHtXZWJJbnNwZWN0b3IuRXhlY3V0aW9uQ29udGV4dH0KKyAgICAgKi8KKyAgICBjdXJyZW50
RXhlY3V0aW9uQ29udGV4dDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2N1cnJlbnRFeGVjdXRpb25Db250ZXh0OworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcmV0
dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3Q+fQogICAg
ICAqLwogICAgIGNvbnRleHRMaXN0czogZnVuY3Rpb24oKQpAQCAtMTA1LDYgKzEyMSwxODQgQEAg
V2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghY29u
dGV4dExpc3QpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNvbnRleHRMaXN0Ll9hZGRF
eGVjdXRpb25Db250ZXh0KG5ldyBXZWJJbnNwZWN0b3IuRXhlY3V0aW9uQ29udGV4dChjb250ZXh0
LmlkLCBjb250ZXh0Lm5hbWUsIGNvbnRleHQuaXNQYWdlQ29udGV4dCkpOworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXhwcmVzc2lvbgorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBvYmplY3RHcm91cAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUNvbW1h
bmRMaW5lQVBJCisgICAgICogQHBhcmFtIHtib29sZWFufSBkb05vdFBhdXNlT25FeGNlcHRpb25z
QW5kTXV0ZUNvbnNvbGUKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJldHVybkJ5VmFsdWUKKyAg
ICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9XZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LCBib29sZWFu
LCBSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0PSl9IGNhbGxiYWNrCisgICAgICovCisgICAgZXZh
bHVhdGU6IGZ1bmN0aW9uKGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExp
bmVBUEksIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgcmV0dXJuQnlWYWx1
ZSwgY2FsbGJhY2spCisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwuc2VsZWN0ZWRDYWxsRnJhbWUoKSkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuZXZhbHVhdGVPblNlbGVjdGVkQ2FsbEZyYW1lKGV4cHJlc3Npb24sIG9iamVjdEdy
b3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRl
Q29uc29sZSwgcmV0dXJuQnlWYWx1ZSwgY2FsbGJhY2spOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKCFleHByZXNzaW9uKSB7CisgICAgICAgICAgICAvLyBU
aGVyZSBpcyBubyBleHByZXNzaW9uLCBzbyB0aGUgY29tcGxldGlvbiBzaG91bGQgaGFwcGVuIGFn
YWluc3QgZ2xvYmFsIHByb3BlcnRpZXMuCisgICAgICAgICAgICBleHByZXNzaW9uID0gInRoaXMi
OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P1Byb3RvY29s
LkVycm9yfSBlcnJvcgorICAgICAgICAgKiBAcGFyYW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmpl
Y3R9IHJlc3VsdAorICAgICAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSB3YXNUaHJvd24KKyAgICAg
ICAgICovCisgICAgICAgIGZ1bmN0aW9uIGV2YWxDYWxsYmFjayhlcnJvciwgcmVzdWx0LCB3YXNU
aHJvd24pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAg
ICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGws
IGZhbHNlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmIChyZXR1cm5CeVZhbHVlKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGws
ICEhd2FzVGhyb3duLCB3YXNUaHJvd24gPyBudWxsIDogcmVzdWx0KTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZy
b21QYXlsb2FkKHJlc3VsdCksICEhd2FzVGhyb3duKTsKKyAgICAgICAgfQorICAgICAgICBSdW50
aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5k
TGluZUFQSSwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCB0aGlzLl9jdXJy
ZW50RXhlY3V0aW9uQ29udGV4dCA/IHRoaXMuX2N1cnJlbnRFeGVjdXRpb25Db250ZXh0LmlkIDog
dW5kZWZpbmVkLCByZXR1cm5CeVZhbHVlLCBldmFsQ2FsbGJhY2spOworICAgIH0sCisKKyAgICBj
b21wbGV0aW9uc0ZvclRleHRQcm9tcHQ6IGZ1bmN0aW9uKHRleHRQcm9tcHQsIHdvcmRSYW5nZSwg
Zm9yY2UsIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaykKKyAgICB7CisgICAgICAgIC8vIFBhc3Mg
bGVzcyBzdG9wIGNoYXJhY3RlcnMgdG8gcmFuZ2VPZldvcmQgc28gdGhlIHJhbmdlIHdpbGwgYmUg
YSBtb3JlIGNvbXBsZXRlIGV4cHJlc3Npb24uCisgICAgICAgIHZhciBleHByZXNzaW9uUmFuZ2Ug
PSB3b3JkUmFuZ2Uuc3RhcnRDb250YWluZXIucmFuZ2VPZldvcmQod29yZFJhbmdlLnN0YXJ0T2Zm
c2V0LCAiID06Wyh7OywhKy0qLyZ8Xjw+IiwgdGV4dFByb21wdC5wcm94eUVsZW1lbnQsICJiYWNr
d2FyZCIpOworICAgICAgICB2YXIgZXhwcmVzc2lvblN0cmluZyA9IGV4cHJlc3Npb25SYW5nZS50
b1N0cmluZygpOworICAgICAgICB2YXIgcHJlZml4ID0gd29yZFJhbmdlLnRvU3RyaW5nKCk7Cisg
ICAgICAgIHRoaXMuX2NvbXBsZXRpb25zRm9yRXhwcmVzc2lvbihleHByZXNzaW9uU3RyaW5nLCBw
cmVmaXgsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spOworICAgIH0sCisKKyAgICBf
Y29tcGxldGlvbnNGb3JFeHByZXNzaW9uOiBmdW5jdGlvbihleHByZXNzaW9uU3RyaW5nLCBwcmVm
aXgsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCisgICAgeworICAgICAgICB2YXIg
bGFzdEluZGV4ID0gZXhwcmVzc2lvblN0cmluZy5sZW5ndGggLSAxOworCisgICAgICAgIHZhciBk
b3ROb3RhdGlvbiA9IChleHByZXNzaW9uU3RyaW5nW2xhc3RJbmRleF0gPT09ICIuIik7CisgICAg
ICAgIHZhciBicmFja2V0Tm90YXRpb24gPSAoZXhwcmVzc2lvblN0cmluZ1tsYXN0SW5kZXhdID09
PSAiWyIpOworCisgICAgICAgIGlmIChkb3ROb3RhdGlvbiB8fCBicmFja2V0Tm90YXRpb24pCisg
ICAgICAgICAgICBleHByZXNzaW9uU3RyaW5nID0gZXhwcmVzc2lvblN0cmluZy5zdWJzdHIoMCwg
bGFzdEluZGV4KTsKKworICAgICAgICBpZiAoZXhwcmVzc2lvblN0cmluZyAmJiBwYXJzZUludChl
eHByZXNzaW9uU3RyaW5nLCAxMCkgPT0gZXhwcmVzc2lvblN0cmluZykgeworICAgICAgICAgICAg
Ly8gVXNlciBpcyBlbnRlcmluZyBmbG9hdCB2YWx1ZSwgZG8gbm90IHN1Z2dlc3QgYW55dGhpbmcu
CisgICAgICAgICAgICBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2soW10pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFwcmVmaXggJiYgIWV4cHJlc3Npb25T
dHJpbmcgJiYgIWZvcmNlKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2so
W10pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFleHBy
ZXNzaW9uU3RyaW5nICYmIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNlbGVjdGVkQ2FsbEZy
YW1lKCkpCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5nZXRTZWxlY3Rl
ZENhbGxGcmFtZVZhcmlhYmxlcyhyZWNlaXZlZFByb3BlcnR5TmFtZXMuYmluZCh0aGlzKSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuZXZhbHVhdGUoZXhwcmVzc2lvblN0cmluZywg
ImNvbXBsZXRpb24iLCB0cnVlLCB0cnVlLCBmYWxzZSwgZXZhbHVhdGVkLmJpbmQodGhpcykpOwor
CisgICAgICAgIGZ1bmN0aW9uIGV2YWx1YXRlZChyZXN1bHQsIHdhc1Rocm93bikKKyAgICAgICAg
eworICAgICAgICAgICAgaWYgKCFyZXN1bHQgfHwgd2FzVGhyb3duKSB7CisgICAgICAgICAgICAg
ICAgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrKFtdKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldENvbXBsZXRpb25zKHBy
aW1pdGl2ZVR5cGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIG9iamVjdDsK
KyAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVHlwZSA9PT0gInN0cmluZyIpCisgICAgICAg
ICAgICAgICAgICAgIG9iamVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgICAgIGVs
c2UgaWYgKHByaW1pdGl2ZVR5cGUgPT09ICJudW1iZXIiKQorICAgICAgICAgICAgICAgICAgICBv
YmplY3QgPSBuZXcgTnVtYmVyKDApOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2
ZVR5cGUgPT09ICJib29sZWFuIikKKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0ID0gbmV3IEJv
b2xlYW4oZmFsc2UpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
b2JqZWN0ID0gdGhpczsKKworICAgICAgICAgICAgICAgIHZhciByZXN1bHRTZXQgPSB7fTsKKyAg
ICAgICAgICAgICAgICBmb3IgKHZhciBvID0gb2JqZWN0OyBvOyBvID0gby5fX3Byb3RvX18pIHsK
KyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBu
YW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG8pOworICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHRTZXRbbmFtZXNbaV1dID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRTZXQ7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gIm9iamVjdCIgfHwgcmVzdWx0LnR5
cGUgPT09ICJmdW5jdGlvbiIpCisgICAgICAgICAgICAgICAgcmVzdWx0LmNhbGxGdW5jdGlvbkpT
T04oZ2V0Q29tcGxldGlvbnMsIHVuZGVmaW5lZCwgcmVjZWl2ZWRQcm9wZXJ0eU5hbWVzLmJpbmQo
dGhpcykpOworICAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0LnR5cGUgPT09ICJzdHJpbmciIHx8
IHJlc3VsdC50eXBlID09PSAibnVtYmVyIiB8fCByZXN1bHQudHlwZSA9PT0gImJvb2xlYW4iKQor
ICAgICAgICAgICAgICAgIHRoaXMuZXZhbHVhdGUoIigiICsgZ2V0Q29tcGxldGlvbnMgKyAiKShc
IiIgKyByZXN1bHQudHlwZSArICJcIikiLCAiY29tcGxldGlvbiIsIGZhbHNlLCB0cnVlLCB0cnVl
LCByZWNlaXZlZFByb3BlcnR5TmFtZXNGcm9tRXZhbC5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVkUHJvcGVydHlOYW1lc0Zyb21FdmFsKG5vdFJlbGV2
YW50LCB3YXNUaHJvd24sIHJlc3VsdCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHJlc3Vs
dCAmJiAhd2FzVGhyb3duKQorICAgICAgICAgICAgICAgIHJlY2VpdmVkUHJvcGVydHlOYW1lcy5j
YWxsKHRoaXMsIHJlc3VsdC52YWx1ZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrKFtdKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHJlY2VpdmVkUHJvcGVydHlOYW1lcyhwcm9wZXJ0eU5hbWVzKQorICAgICAgICB7Cisg
ICAgICAgICAgICBSdW50aW1lQWdlbnQucmVsZWFzZU9iamVjdEdyb3VwKCJjb21wbGV0aW9uIik7
CisgICAgICAgICAgICBpZiAoIXByb3BlcnR5TmFtZXMpIHsKKyAgICAgICAgICAgICAgICBjb21w
bGV0aW9uc1JlYWR5Q2FsbGJhY2soW10pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHZhciBpbmNsdWRlQ29tbWFuZExpbmVBUEkgPSAoIWRvdE5v
dGF0aW9uICYmICFicmFja2V0Tm90YXRpb24pOworICAgICAgICAgICAgaWYgKGluY2x1ZGVDb21t
YW5kTGluZUFQSSkgeworICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1hbmRMaW5lQVBJID0gWyJk
aXIiLCAiZGlyeG1sIiwgImtleXMiLCAidmFsdWVzIiwgInByb2ZpbGUiLCAicHJvZmlsZUVuZCIs
ICJtb25pdG9yRXZlbnRzIiwgInVubW9uaXRvckV2ZW50cyIsICJpbnNwZWN0IiwgImNvcHkiLCAi
Y2xlYXIiXTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbW1hbmRMaW5l
QVBJLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzW2NvbW1h
bmRMaW5lQVBJW2ldXSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLl9y
ZXBvcnRDb21wbGV0aW9ucyhjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2ssIGRvdE5vdGF0aW9uLCBi
cmFja2V0Tm90YXRpb24sIGV4cHJlc3Npb25TdHJpbmcsIHByZWZpeCwgT2JqZWN0LmtleXMocHJv
cGVydHlOYW1lcykpOworICAgICAgICB9CisgICAgfSwKKworICAgIF9yZXBvcnRDb21wbGV0aW9u
czogZnVuY3Rpb24oY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrLCBkb3ROb3RhdGlvbiwgYnJhY2tl
dE5vdGF0aW9uLCBleHByZXNzaW9uU3RyaW5nLCBwcmVmaXgsIHByb3BlcnRpZXMpIHsKKyAgICAg
ICAgaWYgKGJyYWNrZXROb3RhdGlvbikgeworICAgICAgICAgICAgaWYgKHByZWZpeC5sZW5ndGgg
JiYgcHJlZml4WzBdID09PSAiJyIpCisgICAgICAgICAgICAgICAgdmFyIHF1b3RlVXNlZCA9ICIn
IjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB2YXIgcXVvdGVVc2VkID0gIlwi
IjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciByZXN1bHRzID0gW107CisKKyAgICAgICAgaWYg
KCFleHByZXNzaW9uU3RyaW5nKSB7CisgICAgICAgICAgICBjb25zdCBrZXl3b3JkcyA9IFsiYnJl
YWsiLCAiY2FzZSIsICJjYXRjaCIsICJjb250aW51ZSIsICJkZWZhdWx0IiwgImRlbGV0ZSIsICJk
byIsICJlbHNlIiwgImZpbmFsbHkiLCAiZm9yIiwgImZ1bmN0aW9uIiwgImlmIiwgImluIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnN0YW5jZW9mIiwgIm5ldyIsICJyZXR1cm4i
LCAic3dpdGNoIiwgInRoaXMiLCAidGhyb3ciLCAidHJ5IiwgInR5cGVvZiIsICJ2YXIiLCAidm9p
ZCIsICJ3aGlsZSIsICJ3aXRoIl07CisgICAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGll
cy5jb25jYXQoa2V5d29yZHMpOworICAgICAgICB9CisKKyAgICAgICAgcHJvcGVydGllcy5zb3J0
KCk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW2ldOworCisgICAgICAg
ICAgICBpZiAoZG90Tm90YXRpb24gJiYgIS9eW2EtekEtWl8kXVthLXpBLVowLTlfJF0qJC8udGVz
dChwcm9wZXJ0eSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlm
IChicmFja2V0Tm90YXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAoIS9eWzAtOV0rJC8udGVz
dChwcm9wZXJ0eSkpCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gcXVvdGVVc2VkICsg
cHJvcGVydHkuZXNjYXBlQ2hhcmFjdGVycyhxdW90ZVVzZWQgKyAiXFwiKSArIHF1b3RlVXNlZDsK
KyAgICAgICAgICAgICAgICBwcm9wZXJ0eSArPSAiXSI7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmIChwcm9wZXJ0eS5sZW5ndGggPCBwcmVmaXgubGVuZ3RoKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHByZWZpeC5sZW5ndGggJiYgIXByb3BlcnR5
LnN0YXJ0c1dpdGgocHJlZml4KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICAgICAgcmVzdWx0cy5wdXNoKHByb3BlcnR5KTsKKyAgICAgICAgfQorICAgICAgICBjb21wbGV0
aW9uc1JlYWR5Q2FsbGJhY2socmVzdWx0cyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMKaW5kZXggYzQwZGY0ZjBjZjFk
MWJjZmZhYzdkOGE1YjBmZWZmZjljNGUxNzE1YS4uNTY0OWYwMWE5YTA4MzRjM2ZkMmQ0MDQwZDY4
YzQ5YWI5OTk5Y2RmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UZXh0UHJvbXB0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGV4dFByb21wdC5qcwpAQCAtMzEsNyArMzEsNyBAQAogICogQGNvbnN0cnVjdG9yCiAgKiBA
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3Bl
Y3Rvci5UZXh0UHJvbXB0LCBSYW5nZSwgYm9vbGVhbiwgZnVuY3Rpb24oQXJyYXkuPHN0cmluZz49
KSl9IGNvbXBsZXRpb25zCi0gKiBAcGFyYW0ge3N0cmluZ30gc3RvcENoYXJhY3RlcnMKKyAqIEBw
YXJhbSB7c3RyaW5nPX0gc3RvcENoYXJhY3RlcnMKICAqLwogV2ViSW5zcGVjdG9yLlRleHRQcm9t
cHQgPSBmdW5jdGlvbihjb21wbGV0aW9ucywgc3RvcENoYXJhY3RlcnMpCiB7CkBAIC00MSw3ICs0
MSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0ID0gZnVuY3Rpb24oY29tcGxldGlvbnMsIHN0
b3BDaGFyYWN0ZXJzKQogICAgIHRoaXMuX3Byb3h5RWxlbWVudDsKICAgICB0aGlzLl9wcm94eUVs
ZW1lbnREaXNwbGF5ID0gImlubGluZS1ibG9jayI7CiAgICAgdGhpcy5fbG9hZENvbXBsZXRpb25z
ID0gY29tcGxldGlvbnM7Ci0gICAgdGhpcy5fY29tcGxldGlvblN0b3BDaGFyYWN0ZXJzID0gc3Rv
cENoYXJhY3RlcnM7CisgICAgdGhpcy5fY29tcGxldGlvblN0b3BDaGFyYWN0ZXJzID0gc3RvcENo
YXJhY3RlcnMgfHwgIiA9OlsoezssISstKi8mfF48Pi4iOwogICAgIHRoaXMuX3N1Z2dlc3RGb3Jj
ZWFibGUgPSB0cnVlOwogfQogCkBAIC03NTgsNyArNzU4LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRQ
cm9tcHQucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBl
OwogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlRleHRQcm9tcHR9
CiAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LCBSYW5nZSwgYm9v
bGVhbiwgZnVuY3Rpb24oQXJyYXkuPHN0cmluZz49KSl9IGNvbXBsZXRpb25zCi0gKiBAcGFyYW0g
e3N0cmluZ30gc3RvcENoYXJhY3RlcnMKKyAqIEBwYXJhbSB7c3RyaW5nPX0gc3RvcENoYXJhY3Rl
cnMKICAqLwogV2ViSW5zcGVjdG9yLlRleHRQcm9tcHRXaXRoSGlzdG9yeSA9IGZ1bmN0aW9uKGNv
bXBsZXRpb25zLCBzdG9wQ2hhcmFjdGVycykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBh
bmUuanMKaW5kZXggY2FlZDRmOTg4YTQ4NmRjYjFlZTZlZDE2OTA3MjQwNDgxMzkwZDY0ZS4uMDFi
MmZkZmVlNzM2YTRmM2NkNmE4MWUwYzc1NzQ0MDc5NmI1ZmRhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Np
b25zU2lkZWJhclBhbmUuanMKQEAgLTIwNiw3ICsyMDYsNyBAQCBXZWJJbnNwZWN0b3IuV2F0Y2hF
eHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKCFleHByZXNz
aW9uKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBXZWJJbnNwZWN0
b3IuY29uc29sZVZpZXcuZXZhbEluSW5zcGVjdGVkV2luZG93KGV4cHJlc3Npb24sIHRoaXMuX3dh
dGNoT2JqZWN0R3JvdXBJZCwgZmFsc2UsIHRydWUsIGZhbHNlLCBhcHBlbmRSZXN1bHQuYmluZCh0
aGlzLCBleHByZXNzaW9uLCBpKSk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucnVudGltZU1v
ZGVsLmV2YWx1YXRlKGV4cHJlc3Npb24sIHRoaXMuX3dhdGNoT2JqZWN0R3JvdXBJZCwgZmFsc2Us
IHRydWUsIGZhbHNlLCBhcHBlbmRSZXN1bHQuYmluZCh0aGlzLCBleHByZXNzaW9uLCBpKSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoIXByb3BlcnR5Q291bnQpIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NDM4MTRk
MGZjNWIzOTBjY2ZiYTVlNzQ4NjQ4OWIxYjU0ZDQzYjliLi4yOWVlYTE5NmJiYzY4NzcwYTkxOTll
NGU4ODVjNjRjYjBhMWFkNTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMDEgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogbW92ZSBjb21wbGV0aW9ucyBjYWxjdWxhdGlvbiBpbnRvIFJ1bnRpbWVNb2RlbCAocGFy
dCAxKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgw
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaW5pdGlhdG9yLWZyb20tY29u
c29sZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jb21wbGV0
aW9ucy1vbi1jYWxsLWZyYW1lLmh0bWw6CisKIDIwMTItMTAtMDEgIENocmlzdG9waGUgRHVtZXog
IDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBmYXN0L3JlcGxh
Y2VkL25vLWZvY3VzLXJpbmctKiB0ZXN0cyBzaG91bGQgYmUgc2tpcHBlZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0
aW9ucy5odG1sCmluZGV4IDc2MTY0NTc5YmY0N2E5N2E3MGQzNWQ4MmYwZWJmNWQ3ZmFiNWZkMzgu
LjU0NGE5NjI5MmQ3Mjg1ODBkNjc5NDkzODRlNDkyMzBlYTZjZDY1MDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBs
ZXRpb25zLmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgb3B0aW9u
LnNlbGVjdGVkID0gdHJ1ZTsKICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX2ZyYW1lQ2hh
bmdlZCgpOwogCi0gICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmNvbXBsZXRpb25zRm9yRXhw
cmVzc2lvbigiIiwgIm15R2xvYiIsIGZhbHNlLCBjaGVja0NvbXBsZXRpb25zLmJpbmQodGhpcykp
OworICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTW9kZWwuX2NvbXBsZXRpb25zRm9yRXhwcmVzc2lv
bigiIiwgIm15R2xvYiIsIGZhbHNlLCBjaGVja0NvbXBsZXRpb25zLmJpbmQodGhpcykpOwogICAg
IGZ1bmN0aW9uIGNoZWNrQ29tcGxldGlvbnMoY29tcGxldGlvbnMpCiAgICAgewogICAgICAgICB2
YXIgZXhwZWN0ZWQgPSBbIm15R2xvYmFsVmFyIiwgIm15R2xvYmFsRnVuY3Rpb24iXTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1p
bml0aWF0b3ItZnJvbS1jb25zb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstaW5pdGlhdG9yLWZyb20tY29uc29sZS5odG1sCmluZGV4IDI2
NTg3OWEzNjI1Mjc3NmRkNWZkNGQzMjc3MmJkNjdlMGY0YzNlMzIuLjU5MWVhYTViNDUzNjU2NTJh
MGZhZDY1MGE5ZmRhNGYwYjRlZDQ1NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1pbml0aWF0b3ItZnJvbS1jb25zb2xlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWlu
aXRpYXRvci1mcm9tLWNvbnNvbGUuaHRtbApAQCAtMjQsNyArMjQsNyBAQCB2YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgc3RyICs9ICJ2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
XCJzY3JpcHRcIik7IjsKICAgICAgICAgc3RyICs9ICJzLnNyYyA9IFwicmVzb3VyY2VzL3Njcmlw
dC5qc1wiOyI7CiAgICAgICAgIHN0ciArPSAiZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsi
OwotICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuZXZhbEluSW5zcGVjdGVkV2luZG93
KHN0ciwgImNvbnNvbGUiLCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZnVuY3Rpb24oKXt9
KQorICAgICAgICBXZWJJbnNwZWN0b3IucnVudGltZU1vZGVsLmV2YWx1YXRlKHN0ciwgImNvbnNv
bGUiLCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZnVuY3Rpb24oKXt9KTsKICAgICB9CiAK
ICAgICBmdW5jdGlvbiBvblJlcXVlc3QoZXZlbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFtZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRpb25zLW9u
LWNhbGwtZnJhbWUuaHRtbAppbmRleCA4NmNmMzI4OGVhMDAzMjhjMjg1MWZkYWU3OGJlNjcwMGY1
YjBkNjZlLi5hZjcyODY2NDI4MmQ0NzM4NGE3M2I2YmI1NmFkNjkzNGVlZmVhZDU4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGxldGlvbnMt
b24tY2FsbC1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1jb21wbGV0aW9ucy1vbi1jYWxsLWZyYW1lLmh0bWwKQEAgLTIzLDMyICsyMywzMiBA
QCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5jb21wbGV0aW9uc0ZvckV4cHJlc3Npb24o
IiIsICJ2YXIiLCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAidmFyMSIs
ICJ2YXIyIiBdLCBbXSwgc3RlcDMpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJ1bnRpbWVNb2Rl
bC5fY29tcGxldGlvbnNGb3JFeHByZXNzaW9uKCIiLCAidmFyIiwgZmFsc2UsIGNoZWNrQWdhaW5z
dEdvbGRlbi5iaW5kKHRoaXMsIFsgInZhcjEiLCAidmFyMiIgXSwgW10sIHN0ZXAzKSk7CiAgICAg
fQogCiAgICAgZnVuY3Rpb24gc3RlcDMoKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNv
bnNvbGVWaWV3LmNvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigiIiwgImRpIiwgZmFsc2UsIGNoZWNr
QWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgImRpciIsICJkaXJ4bWwiIF0sIFtdLCBzdGVwNCkp
OworICAgICAgICBXZWJJbnNwZWN0b3IucnVudGltZU1vZGVsLl9jb21wbGV0aW9uc0ZvckV4cHJl
c3Npb24oIiIsICJkaSIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJk
aXIiLCAiZGlyeG1sIiBdLCBbXSwgc3RlcDQpKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVw
NCgpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuY29tcGxldGlvbnNG
b3JFeHByZXNzaW9uKCIiLCAid2luIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRo
aXMsIFsgIndpbmRvdyIgXSwgW10sIHN0ZXA1KSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5ydW50
aW1lTW9kZWwuX2NvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigiIiwgIndpbiIsIGZhbHNlLCBjaGVj
a0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ3aW5kb3ciIF0sIFtdLCBzdGVwNSkpOwogICAg
IH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA1KCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5j
b25zb2xlVmlldy5jb21wbGV0aW9uc0ZvckV4cHJlc3Npb24oIiIsICJ0IiwgZmFsc2UsIGNoZWNr
QWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgInRoaXMiIF0sIFtdLCBzdGVwNikpOworICAgICAg
ICBXZWJJbnNwZWN0b3IucnVudGltZU1vZGVsLl9jb21wbGV0aW9uc0ZvckV4cHJlc3Npb24oIiIs
ICJ0IiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgInRoaXMiIF0sIFtd
LCBzdGVwNikpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA2KCkKICAgICB7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5jb21wbGV0aW9uc0ZvckV4cHJlc3Npb24oInZhcjEi
LCAidG9FeHAiLCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAidG9FeHBv
bmVudGlhbCIgXSwgW10sIHN0ZXA3KSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTW9k
ZWwuX2NvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigidmFyMSIsICJ0b0V4cCIsIGZhbHNlLCBjaGVj
a0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ0b0V4cG9uZW50aWFsIiBdLCBbXSwgc3RlcDcp
KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwNygpCiAgICAgewotICAgICAgICBXZWJJbnNw
ZWN0b3IuY29uc29sZVZpZXcuY29tcGxldGlvbnNGb3JFeHByZXNzaW9uKCIxMjMiLCAidG9FeHAi
LCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgW10sIFsgInRvRXhwb25lbnRp
YWwiIF0sIHN0ZXA4KSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTW9kZWwuX2NvbXBs
ZXRpb25zRm9yRXhwcmVzc2lvbigiMTIzIiwgInRvRXhwIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdv
bGRlbi5iaW5kKHRoaXMsIFtdLCBbICJ0b0V4cG9uZW50aWFsIiBdLCBzdGVwOCkpOwogICAgIH0K
IAogICAgIGZ1bmN0aW9uIHN0ZXA4KCkK
</data>
<flag name="review"
          id="178866"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>