<?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>54001</bug_id>
          
          <creation_ts>2011-02-08 07:35:36 -0800</creation_ts>
          <short_desc>Web Inspector: use call frame column to determine execution line in source frame</short_desc>
          <delta_ts>2011-02-14 08:40:40 -0800</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 Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</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>347355</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-02-08 07:35:36 -0800</bug_when>
    <thetext>Web Inspector: use call frame column to determine execution line in source frame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347362</commentid>
    <comment_count>1</comment_count>
      <attachid>81634</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-02-08 07:39:56 -0800</bug_when>
    <thetext>Created attachment 81634
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348022</commentid>
    <comment_count>2</comment_count>
      <attachid>81634</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-09 00:00:13 -0800</bug_when>
    <thetext>Comment on attachment 81634
Patch.

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

&gt; Source/WebCore/bindings/js/JavaScriptCallFrame.h:58
&gt; +    int line() const { return m_textPosition.m_line.zeroBasedInt(); }

What&apos;s the reason for switching from 1-based to 0-based here?

&gt; Source/WebCore/bindings/js/ScriptDebugServer.cpp:446
&gt; +    TextPosition0 textPosition(WTF::ZeroBasedNumber::fromZeroBasedInt(lineNumber - 1), WTF::ZeroBasedNumber::base());

Should be WTF::OneBasedNumber::fromOneBasedInt(lineNumber).convertToZeroBased()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348114</commentid>
    <comment_count>3</comment_count>
      <attachid>81782</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-02-09 02:59:39 -0800</bug_when>
    <thetext>Created attachment 81782
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348117</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-02-09 03:05:31 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 81634 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81634&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JavaScriptCallFrame.h:58
&gt; &gt; +    int line() const { return m_textPosition.m_line.zeroBasedInt(); }
&gt; 
&gt; What&apos;s the reason for switching from 1-based to 0-based here?
Using 0-based lines in protocol is preferable because most of the scripts panel code is using 0-based lines, and maintaining +1/-1 conversions all over the code is painful.

&gt; 
&gt; &gt; Source/WebCore/bindings/js/ScriptDebugServer.cpp:446
&gt; &gt; +    TextPosition0 textPosition(WTF::ZeroBasedNumber::fromZeroBasedInt(lineNumber - 1), WTF::ZeroBasedNumber::base());
&gt; 
&gt; Should be WTF::OneBasedNumber::fromOneBasedInt(lineNumber).convertToZeroBased()
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350681</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-02-14 08:40:40 -0800</bug_when>
    <thetext>Committed r78482: &lt;http://trac.webkit.org/changeset/78482&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81634</attachid>
            <date>2011-02-08 07:39:56 -0800</date>
            <delta_ts>2011-02-09 02:59:39 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19932</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZDcwZDdmLi5lNTcwMjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTEtMDItMDggIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogdXNlIGNhbGwgZnJhbWUgY29sdW1uIHRvIGRldGVybWluZSBleGVjdXRpb24gbGlu
ZSBpbiBzb3VyY2UgZnJhbWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDAwMQorCisgICAgICAgIC0gTWFrZSBjYWxsIGZyYW1lIGxpbmUgYW5kIGNv
bHVtbiB6ZXJvIGJhc2VkCisgICAgICAgIC0gU2V0IGV4ZWN1dGlvbiBsaW5lIGluIHNvdXJjZSBm
cmFtZSBiYXNlZCBvbiBjYWxsIGZyYW1lIGxpbmU6Y29sdW1uCisgICAgICAgIC0gRGV0ZXJtaW5l
IGN1cnJlbnRseSBoaXQgYnJlYWtwb2ludCBiYXNlZCBvbiBjYWxsIGZyYW1lIGxpbmU6Y29sdW1u
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkphdmFTY3JpcHRDYWxsRnJhbWU6OkphdmFTY3JpcHRDYWxsRnJhbWUpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkphdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpK
YXZhU2NyaXB0Q2FsbEZyYW1lOjpsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkphdmFTY3JpcHRD
YWxsRnJhbWU6OmNvbHVtbik6CisgICAgICAgIChXZWJDb3JlOjpKYXZhU2NyaXB0Q2FsbEZyYW1l
Ojp1cGRhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpjcmVhdGVDYWxsRnJhbWVBbmRQ
YXVzZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjp1cGRh
dGVDYWxsRnJhbWVBbmRQYXVzZUlmTmVlZGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9EZWJ1
Z2dlclNjcmlwdC5qczoKKyAgICAgICAgKCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5fZGVidWdnZXJQYXVzZWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLmNvbnRpbnVlVG9Mb2Nh
dGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuX3Bh
dXNlZFNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUuX2JyZWFrcG9pbnRGb3JDYWxsRnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX2RlYnVnZ2VyUGF1c2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlLl9jbGVhckN1cnJlbnRFeGVjdXRpb25MaW5lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jYWxsRnJhbWVTZWxlY3RlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX3NldFRleHRWaWV3ZXJEZWNvcmF0aW9u
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLnNldEV4ZWN1
dGlvbkxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5
cGUuY2xlYXJFeGVjdXRpb25Mb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWUucHJvdG90eXBlLl9zZXRFeGVjdXRpb25Mb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9icmVha3BvaW50QWRkZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fY29udGludWVUb0xpbmUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fb3JpZ2luYWxMb2NhdGlv
blRvVGV4dFZpZXdlckxpbmVOdW1iZXIpOgorCiAyMDExLTAyLTA3ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgTGVvcGFyZCBidWlsZCBmaXgu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZy
YW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUu
Y3BwCmluZGV4IGNjNjk4NmEuLmNlZDdkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLUphdmFTY3JpcHRD
YWxsRnJhbWU6OkphdmFTY3JpcHRDYWxsRnJhbWUoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRl
YnVnZ2VyQ2FsbEZyYW1lLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNhbGxlciwg
aW50cHRyX3Qgc291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbjEmIHRleHRQb3NpdGlvbikKK0ph
dmFTY3JpcHRDYWxsRnJhbWU6OkphdmFTY3JpcHRDYWxsRnJhbWUoY29uc3QgRGVidWdnZXJDYWxs
RnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+
IGNhbGxlciwgaW50cHRyX3Qgc291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbjAmIHRleHRQb3Np
dGlvbikKICAgICA6IG1fZGVidWdnZXJDYWxsRnJhbWUoZGVidWdnZXJDYWxsRnJhbWUpCiAgICAg
LCBtX2NhbGxlcihjYWxsZXIpCiAgICAgLCBtX3NvdXJjZUlEKHNvdXJjZUlEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IDc0ZTBh
NzAuLjcwNzM5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFT
Y3JpcHRDYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmgKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBKYXZhU2NyaXB0Q2FsbEZyYW1lIDogcHVibGljIFJlZkNvdW50ZWQ8SmF2YVNjcmlwdENh
bGxGcmFtZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxs
RnJhbWU+IGNyZWF0ZShjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxG
cmFtZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxsZXIsIGludHB0cl90IHNv
dXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24xJiB0ZXh0UG9zaXRpb24pCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY3JlYXRlKGNvbnN0IEpTQzo6RGVidWdnZXJD
YWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJh
bWU+IGNhbGxlciwgaW50cHRyX3Qgc291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbjAmIHRleHRQ
b3NpdGlvbikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSmF2YVNjcmlwdENh
bGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSwgY2FsbGVyLCBzb3VyY2VJRCwgdGV4dFBvc2l0aW9u
KSk7CiAgICAgfQpAQCAtNTUsMTAgKzU1LDEwIEBAIHB1YmxpYzoKICAgICBKYXZhU2NyaXB0Q2Fs
bEZyYW1lKiBjYWxsZXIoKTsKIAogICAgIGludHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2VJRDsgfQotICAgIGludCBsaW5lKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UG9z
aXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCk7IH0KLSAgICBpbnQgY29sdW1uKCkgY29uc3QgeyBy
ZXR1cm4gbV90ZXh0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKTsgfQorICAgIGludCBs
aW5lKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UG9zaXRpb24ubV9saW5lLnplcm9CYXNlZEludCgp
OyB9CisgICAgaW50IGNvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFBvc2l0aW9uLm1fY29s
dW1uLnplcm9CYXNlZEludCgpOyB9CiAKLSAgICB2b2lkIHVwZGF0ZShjb25zdCBKU0M6OkRlYnVn
Z2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGNvbnN0
IFRleHRQb3NpdGlvbjEmIHRleHRQb3NpdGlvbikKKyAgICB2b2lkIHVwZGF0ZShjb25zdCBKU0M6
OkRlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQs
IGNvbnN0IFRleHRQb3NpdGlvbjAmIHRleHRQb3NpdGlvbikKICAgICB7CiAgICAgICAgIG1fZGVi
dWdnZXJDYWxsRnJhbWUgPSBkZWJ1Z2dlckNhbGxGcmFtZTsKICAgICAgICAgbV90ZXh0UG9zaXRp
b24gPSB0ZXh0UG9zaXRpb247CkBAIC03NSwxMiArNzUsMTIgQEAgcHVibGljOgogICAgIEpTQzo6
SlNWYWx1ZSBldmFsdWF0ZShjb25zdCBKU0M6OlVTdHJpbmcmIHNjcmlwdCwgSlNDOjpKU1ZhbHVl
JiBleGNlcHRpb24pIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBKYXZhU2NyaXB0Q2FsbEZy
YW1lKGNvbnN0IEpTQzo6RGVidWdnZXJDYWxsRnJhbWUmLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRD
YWxsRnJhbWU+IGNhbGxlciwgaW50cHRyX3Qgc291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbjEm
KTsKKyAgICBKYXZhU2NyaXB0Q2FsbEZyYW1lKGNvbnN0IEpTQzo6RGVidWdnZXJDYWxsRnJhbWUm
LCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNhbGxlciwgaW50cHRyX3Qgc291cmNl
SUQsIGNvbnN0IFRleHRQb3NpdGlvbjAmKTsKIAogICAgIEpTQzo6RGVidWdnZXJDYWxsRnJhbWUg
bV9kZWJ1Z2dlckNhbGxGcmFtZTsKICAgICBSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gbV9j
YWxsZXI7CiAgICAgaW50cHRyX3QgbV9zb3VyY2VJRDsKLSAgICBUZXh0UG9zaXRpb24xIG1fdGV4
dFBvc2l0aW9uOworICAgIFRleHRQb3NpdGlvbjAgbV90ZXh0UG9zaXRpb247CiAgICAgYm9vbCBt
X2lzVmFsaWQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRE
ZWJ1Z1NlcnZlci5jcHAKaW5kZXggYWVkMmFkNC4uMTY5MzJlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNDMyLDcgKzQzMiw3
IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnNldEphdmFTY3JpcHRQYXVzZWQoRnJhbWVWaWV3
KiB2aWV3LCBib29sIHBhdXNlZCkKIAogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6Y3JlYXRlQ2Fs
bEZyYW1lQW5kUGF1c2VJZk5lZWRlZChjb25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJD
YWxsRnJhbWUsIGludHB0cl90IHNvdXJjZUlELCBpbnQgbGluZU51bWJlcikKIHsKLSAgICBUZXh0
UG9zaXRpb24xIHRleHRQb3NpdGlvbihXVEY6Ok9uZUJhc2VkTnVtYmVyOjpmcm9tT25lQmFzZWRJ
bnQobGluZU51bWJlciksIFdURjo6T25lQmFzZWROdW1iZXI6OmJhc2UoKSk7CisgICAgVGV4dFBv
c2l0aW9uMCB0ZXh0UG9zaXRpb24oV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50
KGxpbmVOdW1iZXIpLmNvbnZlcnRUb1plcm9CYXNlZCgpLCBXVEY6Olplcm9CYXNlZE51bWJlcjo6
YmFzZSgpKTsKICAgICBtX2N1cnJlbnRDYWxsRnJhbWUgPSBKYXZhU2NyaXB0Q2FsbEZyYW1lOjpj
cmVhdGUoZGVidWdnZXJDYWxsRnJhbWUsIG1fY3VycmVudENhbGxGcmFtZSwgc291cmNlSUQsIHRl
eHRQb3NpdGlvbik7CiAgICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJhbWUu
ZHluYW1pY0dsb2JhbE9iamVjdCgpKSk7CiB9CkBAIC00NDMsNyArNDQzLDcgQEAgdm9pZCBTY3Jp
cHREZWJ1Z1NlcnZlcjo6dXBkYXRlQ2FsbEZyYW1lQW5kUGF1c2VJZk5lZWRlZChjb25zdCBEZWJ1
Z2dlckNhbGxGcmFtZSYKICAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgVGV4dFBvc2l0aW9uMSB0ZXh0UG9zaXRpb24oV1RGOjpPbmVCYXNlZE51bWJl
cjo6ZnJvbU9uZUJhc2VkSW50KGxpbmVOdW1iZXIpLCBXVEY6Ok9uZUJhc2VkTnVtYmVyOjpiYXNl
KCkpOworICAgIFRleHRQb3NpdGlvbjAgdGV4dFBvc2l0aW9uKFdURjo6WmVyb0Jhc2VkTnVtYmVy
Ojpmcm9tWmVyb0Jhc2VkSW50KGxpbmVOdW1iZXIgLSAxKSwgV1RGOjpaZXJvQmFzZWROdW1iZXI6
OmJhc2UoKSk7CiAgICAgbV9jdXJyZW50Q2FsbEZyYW1lLT51cGRhdGUoZGVidWdnZXJDYWxsRnJh
bWUsIHNvdXJjZUlELCB0ZXh0UG9zaXRpb24pOwogICAgIHBhdXNlSWZOZWVkZWQodG9QYWdlKGRl
YnVnZ2VyQ2FsbEZyYW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcwppbmRleCAxNzk4MzUyLi4wYmVkMzNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcwpAQCAt
MjAzLDggKzIwMyw2IEBAIERlYnVnZ2VyU2NyaXB0Ll9mcmFtZU1pcnJvclRvSlNDYWxsRnJhbWUg
PSBmdW5jdGlvbihmcmFtZU1pcnJvciwgY2FsbGVyRnJhbWUpCiAKICAgICAvLyBHZXQgbG9jYXRp
b24uCiAgICAgdmFyIGxvY2F0aW9uICA9IGZyYW1lTWlycm9yLnNvdXJjZUxvY2F0aW9uKCk7Ci0g
ICAgdmFyIGxpbmUgPSBEZWJ1Z2dlclNjcmlwdC5fdjhUb1dlYmtpdExpbmVOdW1iZXIobG9jYXRp
b24ubGluZSk7Ci0gICAgdmFyIGNvbHVtbiA9IERlYnVnZ2VyU2NyaXB0Ll92OFRvV2Via2l0TGlu
ZU51bWJlcihsb2NhdGlvbi5jb2x1bW4pOwogCiAgICAgLy8gR2V0IHRoaXMgb2JqZWN0LgogICAg
IHZhciB0aGlzT2JqZWN0ID0gZnJhbWVNaXJyb3IuZGV0YWlsc18ucmVjZWl2ZXIoKTsKQEAgLTI1
MSw4ICsyNDksOCBAQCBEZWJ1Z2dlclNjcmlwdC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZyYW1lID0g
ZnVuY3Rpb24oZnJhbWVNaXJyb3IsIGNhbGxlckZyYW1lKQogCiAgICAgcmV0dXJuIHsKICAgICAg
ICAgInNvdXJjZUlEIjogc291cmNlSUQsCi0gICAgICAgICJsaW5lIjogbGluZSwKLSAgICAgICAg
ImNvbHVtbiI6IGNvbHVtbiwKKyAgICAgICAgImxpbmUiOiBsb2NhdGlvbi5saW5lLAorICAgICAg
ICAiY29sdW1uIjogbG9jYXRpb24uY29sdW1uLAogICAgICAgICAiZnVuY3Rpb25OYW1lIjogZnVu
Y3Rpb25OYW1lLAogICAgICAgICAidHlwZSI6ICJmdW5jdGlvbiIsCiAgICAgICAgICJ0aGlzT2Jq
ZWN0IjogdGhpc09iamVjdCwKQEAgLTI2MywxMSArMjYxLDYgQEAgRGVidWdnZXJTY3JpcHQuX2Zy
YW1lTWlycm9yVG9KU0NhbGxGcmFtZSA9IGZ1bmN0aW9uKGZyYW1lTWlycm9yLCBjYWxsZXJGcmFt
ZSkKICAgICB9OwogfQogCi1EZWJ1Z2dlclNjcmlwdC5fdjhUb1dlYmtpdExpbmVOdW1iZXIgPSBm
dW5jdGlvbihsaW5lKQotewotICAgIHJldHVybiBsaW5lICsgMTsKLX07Ci0KIHJldHVybiBEZWJ1
Z2dlclNjcmlwdDsKIAogfSkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwppbmRleCAwYTQ3YmY4
Li4wYzQ2NDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCkBAIC0xNDMsMTAgKzE0MywxMCBA
QCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBl
ID0gewogCiAgICAgX2RlYnVnZ2VyUGF1c2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAg
ICAgIHZhciBicmVha3BvaW50SWQgPSB0aGlzLl9icmVha3BvaW50SWRGb3JEZWJ1Z2dlclBhdXNl
ZEV2ZW50KGV2ZW50LmRhdGEpOwotICAgICAgICBpZiAoIWJyZWFrcG9pbnRJZCkKKyAgICAgICAg
dmFyIGJyZWFrcG9pbnQgPSBldmVudC5kYXRhLmJyZWFrcG9pbnQ7CisgICAgICAgIGlmICghYnJl
YWtwb2ludCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRJdGVt
ID0gdGhpcy5faXRlbXNbYnJlYWtwb2ludElkXTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRJdGVt
ID0gdGhpcy5faXRlbXNbYnJlYWtwb2ludC5pZF07CiAgICAgICAgIGlmICghYnJlYWtwb2ludEl0
ZW0pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGJyZWFrcG9pbnRJdGVtLmVsZW1lbnQu
YWRkU3R5bGVDbGFzcygiYnJlYWtwb2ludC1oaXQiKTsKQEAgLTIzNiwxNCArMjM2LDYgQEAgV2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGNsaWNrSGFuZGxlciwg
ZmFsc2UpOwogICAgIH0sCiAKLSAgICBfYnJlYWtwb2ludElkRm9yRGVidWdnZXJQYXVzZWRFdmVu
dDogZnVuY3Rpb24oZGV0YWlscykKLSAgICB7Ci0gICAgICAgIHZhciBjYWxsRnJhbWUgPSBkZXRh
aWxzLmNhbGxGcmFtZXNbMF07Ci0gICAgICAgIHZhciBicmVha3BvaW50ID0gV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuZmluZEJyZWFrcG9pbnQoY2FsbEZyYW1lLnNvdXJjZUlELCBjYWxsRnJh
bWUubGluZSk7Ci0gICAgICAgIGlmIChicmVha3BvaW50KQotICAgICAgICAgICAgcmV0dXJuIGJy
ZWFrcG9pbnQuaWQ7Ci0gICB9LAotCiAgICAgX3JlbW92ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGJy
ZWFrcG9pbnRJZCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnJl
bW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludElkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzCmluZGV4IDUw
M2U1ZjQuLmU5Y2ZjNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5qcwpAQCAtMjksMTQgKzI5LDE0IEBA
IFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKCkKIH0KIAogV2Vi
SW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKLSAgICB1cGRhdGU6
IGZ1bmN0aW9uKGNhbGxGcmFtZXMsIGV2ZW50VHlwZSwgZXZlbnREYXRhKQorICAgIHVwZGF0ZTog
ZnVuY3Rpb24oZGV0YWlscykKICAgICB7CiAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQucmVtb3Zl
Q2hpbGRyZW4oKTsKIAogICAgICAgICB0aGlzLnBsYWNhcmRzID0gW107CiAgICAgICAgIGRlbGV0
ZSB0aGlzLl9zZWxlY3RlZENhbGxGcmFtZTsKIAotICAgICAgICBpZiAoIWNhbGxGcmFtZXMpIHsK
KyAgICAgICAgaWYgKCFkZXRhaWxzKSB7CiAgICAgICAgICAgICB2YXIgaW5mb0VsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgICAgIGluZm9FbGVtZW50LmNs
YXNzTmFtZSA9ICJpbmZvIjsKICAgICAgICAgICAgIGluZm9FbGVtZW50LnRleHRDb250ZW50ID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOb3QgUGF1c2VkIik7CkBAIC00NCw2ICs0NCw3IEBAIFdl
Ykluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICB2YXIgY2FsbEZyYW1lcyA9IGRldGFpbHMu
Y2FsbEZyYW1lczsKICAgICAgICAgdmFyIHRpdGxlOwogICAgICAgICB2YXIgc3VidGl0bGU7CiAg
ICAgICAgIHZhciBzY3JpcHQ7CkBAIC04MSwxMCArODIsMTAgQEAgV2ViSW5zcGVjdG9yLkNhbGxT
dGFja1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuYm9keUVsZW1l
bnQuYXBwZW5kQ2hpbGQocGxhY2FyZC5lbGVtZW50KTsKICAgICAgICAgfQogCi0gICAgICAgIGlm
IChXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5maW5kQnJlYWtwb2ludChjYWxsRnJhbWVzWzBd
LnNvdXJjZUlELCBjYWxsRnJhbWVzWzBdLmxpbmUpKQorICAgICAgICBpZiAoZGV0YWlscy5icmVh
a3BvaW50KQogICAgICAgICAgICAgdGhpcy5fc2NyaXB0QnJlYWtwb2ludEhpdCgpOwotICAgICAg
ICBlbHNlIGlmIChldmVudFR5cGUgPT09IFdlYkluc3BlY3Rvci5EZWJ1Z2dlckV2ZW50VHlwZXMu
TmF0aXZlQnJlYWtwb2ludCkKLSAgICAgICAgICAgIHRoaXMuX25hdGl2ZUJyZWFrcG9pbnRIaXQo
ZXZlbnREYXRhKTsKKyAgICAgICAgZWxzZSBpZiAoZGV0YWlscy5ldmVudFR5cGUgPT09IFdlYklu
c3BlY3Rvci5EZWJ1Z2dlckV2ZW50VHlwZXMuTmF0aXZlQnJlYWtwb2ludCkKKyAgICAgICAgICAg
IHRoaXMuX25hdGl2ZUJyZWFrcG9pbnRIaXQoZGV0YWlscy5ldmVudERhdGEpOwogICAgIH0sCiAK
ICAgICBnZXQgc2VsZWN0ZWRDYWxsRnJhbWUoKQpAQCAtOTQsOSArOTUsNiBAQCBXZWJJbnNwZWN0
b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogCiAgICAgc2V0IHNlbGVjdGVk
Q2FsbEZyYW1lKHgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRDYWxsRnJhbWUg
PT09IHgpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgdGhpcy5fc2VsZWN0ZWRDYWxs
RnJhbWUgPSB4OwogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wbGFjYXJkcy5s
ZW5ndGg7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4IDFiZjFlNDcuLjMzODRjMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTcx
LDkgKzcxLDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc2FibGVEZWJ1Z2dlcigpOwogICAgIH0sCiAKLSAgICBj
b250aW51ZVRvTGluZTogZnVuY3Rpb24oc291cmNlSUQsIGxpbmVOdW1iZXIpCisgICAgY29udGlu
dWVUb0xvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
KQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5jb250aW51ZVRvTG9jYXRpb24oc291
cmNlSUQsIGxpbmVOdW1iZXIsIDApOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmNvbnRpbnVl
VG9Mb2NhdGlvbihzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKICAgICB9LAog
CiAgICAgc2V0QnJlYWtwb2ludDogZnVuY3Rpb24odXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKQEAgLTE3MywxNyArMTczLDYgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gYnJlYWtwb2ludHM7
CiAgICAgfSwKIAotICAgIGZpbmRCcmVha3BvaW50OiBmdW5jdGlvbihzb3VyY2VJRCwgbGluZU51
bWJlcikKLSAgICB7Ci0gICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX2JyZWFrcG9pbnRzKSB7
Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb25zID0gdGhpcy5fYnJlYWtwb2ludHNbaWRdLmxvY2F0
aW9uczsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbG9jYXRpb25zLmxlbmd0aDsg
KytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uc1tpXS5zb3VyY2VJRCA9PSBzb3Vy
Y2VJRCAmJiBsb2NhdGlvbnNbaV0ubGluZU51bWJlciArIDEgPT09IGxpbmVOdW1iZXIpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50c1tpZF07Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICB9LAotCiAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHRoaXMuX3BhdXNlZCA9IGZhbHNlOwpAQCAtMjg2LDYgKzI3NSw3IEBAIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX3Bh
dXNlZCA9IHRydWU7CiAgICAgICAgIHRoaXMuX2NhbGxGcmFtZXMgPSBkZXRhaWxzLmNhbGxGcmFt
ZXM7CisgICAgICAgIGRldGFpbHMuYnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRGb3JDYWxs
RnJhbWUoZGV0YWlscy5jYWxsRnJhbWVzWzBdKTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyUGF1
c2VkLCBkZXRhaWxzKTsKICAgICB9LAogCkBAIC0yOTYsNiArMjg2LDIzIEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyUmVz
dW1lZCk7CiAgICAgfSwKIAorICAgIF9icmVha3BvaW50Rm9yQ2FsbEZyYW1lOiBmdW5jdGlvbihj
YWxsRnJhbWUpCisgICAgeworICAgICAgICBmdW5jdGlvbiBtYXRjaChsb2NhdGlvbikKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKGxvY2F0aW9uLnNvdXJjZUlEICE9IGNhbGxGcmFtZS5zb3Vy
Y2VJRCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4g
bG9jYXRpb24ubGluZU51bWJlciA9PT0gY2FsbEZyYW1lLmxpbmUgJiYgbG9jYXRpb24uY29sdW1u
TnVtYmVyID09PSBjYWxsRnJhbWUuY29sdW1uOworICAgICAgICB9CisgICAgICAgIGZvciAodmFy
IGlkIGluIHRoaXMuX2JyZWFrcG9pbnRzKSB7CisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9
IHRoaXMuX2JyZWFrcG9pbnRzW2lkXTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
YnJlYWtwb2ludC5sb2NhdGlvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAo
bWF0Y2goYnJlYWtwb2ludC5sb2NhdGlvbnNbaV0pKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYnJlYWtwb2ludDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKICAgICBf
cGFyc2VkU2NyaXB0U291cmNlOiBmdW5jdGlvbihzb3VyY2VJRCwgc291cmNlVVJMLCBsaW5lT2Zm
c2V0LCBjb2x1bW5PZmZzZXQsIGxlbmd0aCwgc2NyaXB0V29ybGRUeXBlKQogICAgIHsKICAgICAg
ICAgdmFyIHNjcmlwdCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KHNvdXJjZUlELCBzb3VyY2VV
UkwsICIiLCBsaW5lT2Zmc2V0LCBjb2x1bW5PZmZzZXQsIGxlbmd0aCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHNjcmlwdFdvcmxkVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDM5YWMwMmIuLjBlODQ0ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CkBAIC0zNzYsNyArMzc2LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCA9IHRoaXM7CiAKLSAgICAg
ICAgdGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLnVwZGF0ZShjYWxsRnJhbWVzLCBldmVudC5k
YXRhLmV2ZW50VHlwZSwgZXZlbnQuZGF0YS5ldmVudERhdGEpOworICAgICAgICB0aGlzLnNpZGVi
YXJQYW5lcy5jYWxsc3RhY2sudXBkYXRlKGV2ZW50LmRhdGEpOwogICAgICAgICB0aGlzLnNpZGVi
YXJQYW5lcy5jYWxsc3RhY2suc2VsZWN0ZWRDYWxsRnJhbWUgPSBjYWxsRnJhbWVzWzBdOwogCiAg
ICAgICAgIHdpbmRvdy5mb2N1cygpOwpAQCAtNjY1LDcgKzY2NSw3IEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9jbGVhckN1cnJlbnRFeGVjdXRpb25MaW5l
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fZXhlY3V0aW9uU291cmNlRnJh
bWUpCi0gICAgICAgICAgICB0aGlzLl9leGVjdXRpb25Tb3VyY2VGcmFtZS5jbGVhckV4ZWN1dGlv
bkxpbmUoKTsKKyAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGlvblNvdXJjZUZyYW1lLmNsZWFyRXhl
Y3V0aW9uTG9jYXRpb24oKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX2V4ZWN1dGlvblNvdXJjZUZy
YW1lOwogICAgIH0sCiAKQEAgLTY4Nyw3ICs2ODcsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9leGVjdXRpb25Tb3VyY2VGcmFtZSA9
IHRoaXMuX3NvdXJjZUZyYW1lRm9yU2NyaXB0T3JSZXNvdXJjZShzY3JpcHRPclJlc291cmNlKTsK
ICAgICAgICAgaWYgKHRoaXMuX2V4ZWN1dGlvblNvdXJjZUZyYW1lKQotICAgICAgICAgICAgdGhp
cy5fZXhlY3V0aW9uU291cmNlRnJhbWUuc2V0RXhlY3V0aW9uTGluZShjdXJyZW50RnJhbWUubGlu
ZSk7CisgICAgICAgICAgICB0aGlzLl9leGVjdXRpb25Tb3VyY2VGcmFtZS5zZXRFeGVjdXRpb25M
b2NhdGlvbihjdXJyZW50RnJhbWUubGluZSwgY3VycmVudEZyYW1lLmNvbHVtbik7CiAgICAgfSwK
IAogICAgIF9jaGFuZ2VWaXNpYmxlRmlsZTogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCAyMWE2NjY3
Li5kMGEwYmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U291cmNlRnJhbWUuanMKQEAgLTIyMSw4ICsyMjEsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9hZGRFeGlzdGluZ01lc3NhZ2VzVG9Tb3Vy
Y2UoKTsKICAgICAgICAgdGhpcy5fdXBkYXRlRGlmZkRlY29yYXRpb25zKCk7CiAKLSAgICAgICAg
aWYgKHRoaXMuX2V4ZWN1dGlvbkxpbmUpCi0gICAgICAgICAgICB0aGlzLnNldEV4ZWN1dGlvbkxp
bmUodGhpcy5fZXhlY3V0aW9uTGluZSk7CisgICAgICAgIGlmICh0aGlzLl9leGVjdXRpb25Mb2Nh
dGlvbikKKyAgICAgICAgICAgIHRoaXMuX3NldEV4ZWN1dGlvbkxvY2F0aW9uKCk7CiAKICAgICAg
ICAgdGhpcy5fYnJlYWtwb2ludElkVG9UZXh0Vmlld2VyTGluZU51bWJlciA9IHt9OwogICAgICAg
ICB0aGlzLl90ZXh0Vmlld2VyTGluZU51bWJlclRvQnJlYWtwb2ludElkID0ge307CkBAIC0zNjAs
MjIgKzM2MCwyNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAg
ICAgICBtc2cuX3Jlc291cmNlTWVzc2FnZVJlcGVhdENvdW50RWxlbWVudC50ZXh0Q29udGVudCA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiIChyZXBlYXRlZCAlZCB0aW1lcykiLCBtc2cucmVwZWF0
Q291bnQpOwogICAgIH0sCiAKLSAgICBzZXRFeGVjdXRpb25MaW5lOiBmdW5jdGlvbihsaW5lTnVt
YmVyKQorICAgIHNldEV4ZWN1dGlvbkxvY2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1
bW5OdW1iZXIpCiAgICAgewotICAgICAgICB0aGlzLl9leGVjdXRpb25MaW5lID0gbGluZU51bWJl
cjsKLSAgICAgICAgaWYgKCF0aGlzLl90ZXh0Vmlld2VyKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB2YXIgdGV4dFZpZXdlckxpbmVOdW1iZXIgPSB0aGlzLl9vcmlnaW5hbExvY2F0aW9u
VG9UZXh0Vmlld2VyTGluZU51bWJlcih0aGlzLl9leGVjdXRpb25MaW5lIC0gMSwgMCk7Ci0gICAg
ICAgIHRoaXMuX3RleHRWaWV3ZXIuYWRkRGVjb3JhdGlvbih0ZXh0Vmlld2VyTGluZU51bWJlciwg
IndlYmtpdC1leGVjdXRpb24tbGluZSIpOworICAgICAgICB0aGlzLl9leGVjdXRpb25Mb2NhdGlv
biA9IHsgbGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiBjb2x1bW5OdW1iZXIg
fTsKKyAgICAgICAgaWYgKHRoaXMuX3RleHRWaWV3ZXIpCisgICAgICAgICAgICB0aGlzLl9zZXRF
eGVjdXRpb25Mb2NhdGlvbigpOworCiAgICAgfSwKIAotICAgIGNsZWFyRXhlY3V0aW9uTGluZTog
ZnVuY3Rpb24oKQorICAgIGNsZWFyRXhlY3V0aW9uTG9jYXRpb246IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIGlmICghdGhpcy5fdGV4dFZpZXdlcikKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgdmFyIHRleHRWaWV3ZXJMaW5lTnVtYmVyID0gdGhpcy5fb3JpZ2luYWxMb2NhdGlvblRv
VGV4dFZpZXdlckxpbmVOdW1iZXIodGhpcy5fZXhlY3V0aW9uTGluZSAtIDEsIDApOwotICAgICAg
ICB0aGlzLl90ZXh0Vmlld2VyLnJlbW92ZURlY29yYXRpb24odGV4dFZpZXdlckxpbmVOdW1iZXIs
ICJ3ZWJraXQtZXhlY3V0aW9uLWxpbmUiKTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2V4ZWN1dGlv
bkxpbmU7CisgICAgICAgIGlmICh0aGlzLl90ZXh0Vmlld2VyKSB7CisgICAgICAgICAgICB2YXIg
dGV4dFZpZXdlckxpbmVOdW1iZXIgPSB0aGlzLl9vcmlnaW5hbExvY2F0aW9uVG9UZXh0Vmlld2Vy
TGluZU51bWJlcih0aGlzLl9leGVjdXRpb25Mb2NhdGlvbik7CisgICAgICAgICAgICB0aGlzLl90
ZXh0Vmlld2VyLnJlbW92ZURlY29yYXRpb24odGV4dFZpZXdlckxpbmVOdW1iZXIsICJ3ZWJraXQt
ZXhlY3V0aW9uLWxpbmUiKTsKKyAgICAgICAgfQorICAgICAgICBkZWxldGUgdGhpcy5fZXhlY3V0
aW9uTG9jYXRpb247CisgICAgfSwKKworICAgIF9zZXRFeGVjdXRpb25Mb2NhdGlvbjogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgdmFyIHRleHRWaWV3ZXJMaW5lTnVtYmVyID0gdGhpcy5fb3Jp
Z2luYWxMb2NhdGlvblRvVGV4dFZpZXdlckxpbmVOdW1iZXIodGhpcy5fZXhlY3V0aW9uTG9jYXRp
b24pOworICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLmFkZERlY29yYXRpb24odGV4dFZpZXdlckxp
bmVOdW1iZXIsICJ3ZWJraXQtZXhlY3V0aW9uLWxpbmUiKTsKICAgICB9LAogCiAgICAgX3VwZGF0
ZURpZmZEZWNvcmF0aW9uczogZnVuY3Rpb24oKQpAQCAtNDc2LDcgKzQ4MSw3IEBAIFdlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciByZXNvbHZlZCA9IGJy
ZWFrcG9pbnQubG9jYXRpb25zLmxlbmd0aDsKICAgICAgICAgdmFyIGxvY2F0aW9uID0gcmVzb2x2
ZWQgPyBicmVha3BvaW50LmxvY2F0aW9uc1swXSA6IGJyZWFrcG9pbnQ7CiAKLSAgICAgICAgdmFy
IHRleHRWaWV3ZXJMaW5lTnVtYmVyID0gdGhpcy5fb3JpZ2luYWxMb2NhdGlvblRvVGV4dFZpZXdl
ckxpbmVOdW1iZXIobG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24uY29sdW1uTnVtYmVyKTsK
KyAgICAgICAgdmFyIHRleHRWaWV3ZXJMaW5lTnVtYmVyID0gdGhpcy5fb3JpZ2luYWxMb2NhdGlv
blRvVGV4dFZpZXdlckxpbmVOdW1iZXIobG9jYXRpb24pOwogICAgICAgICBpZiAodGV4dFZpZXdl
ckxpbmVOdW1iZXIgPj0gdGhpcy5fdGV4dE1vZGVsLmxpbmVzQ291bnQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKQEAgLTg2Miw3ICs4NjcsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJv
dG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGxvY2F0aW9uID0gdGhpcy5fdGV4dFZpZXdl
ckxpbmVOdW1iZXJUb1NjcmlwdExvY2F0aW9uKGxpbmVOdW1iZXIpOwogICAgICAgICBpZiAobG9j
YXRpb24uc291cmNlSUQpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5j
b250aW51ZVRvTGluZShsb2NhdGlvbi5zb3VyY2VJRCwgbG9jYXRpb24ubGluZU51bWJlcik7Cisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jb250aW51ZVRvTG9jYXRpb24o
bG9jYXRpb24uc291cmNlSUQsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51
bWJlcik7CiAgICAgfSwKIAogICAgIF9kb3VibGVDbGljazogZnVuY3Rpb24oZXZlbnQpCkBAIC05
MTQsMTEgKzkxOSwxMSBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewog
ICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYnJlYWtwb2ludEZvcklk
KGJyZWFrcG9pbnRJZCk7CiAgICAgfSwKIAotICAgIF9vcmlnaW5hbExvY2F0aW9uVG9UZXh0Vmll
d2VyTGluZU51bWJlcjogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1uTnVtYmVyKQorICAgIF9v
cmlnaW5hbExvY2F0aW9uVG9UZXh0Vmlld2VyTGluZU51bWJlcjogZnVuY3Rpb24obG9jYXRpb24p
CiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2Zvcm1hdHRlZENvbnRlbnQpCi0gICAgICAgICAg
ICByZXR1cm4gbGluZU51bWJlcjsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdHRlZENvbnRl
bnQub3JpZ2luYWxMb2NhdGlvblRvRm9ybWF0dGVkTG9jYXRpb24obGluZU51bWJlciwgY29sdW1u
TnVtYmVyKS5saW5lTnVtYmVyOworICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uLmxpbmVOdW1i
ZXI7CisgICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXR0ZWRDb250ZW50Lm9yaWdpbmFsTG9jYXRp
b25Ub0Zvcm1hdHRlZExvY2F0aW9uKGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVt
bk51bWJlcikubGluZU51bWJlcjsKICAgICB9LAogCiAgICAgX3RleHRWaWV3ZXJMaW5lTnVtYmVy
VG9TY3JpcHRMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81782</attachid>
            <date>2011-02-09 02:59:39 -0800</date>
            <delta_ts>2011-02-11 02:07:59 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19942</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0Zjc3NmJiLi4zNTExMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTEtMDItMDggIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogdXNlIGNhbGwgZnJhbWUgY29sdW1uIHRvIGRldGVybWluZSBleGVjdXRpb24gbGlu
ZSBpbiBzb3VyY2UgZnJhbWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDAwMQorCisgICAgICAgIC0gTWFrZSBjYWxsIGZyYW1lIGxpbmUgYW5kIGNv
bHVtbiB6ZXJvIGJhc2VkCisgICAgICAgIC0gU2V0IGV4ZWN1dGlvbiBsaW5lIGluIHNvdXJjZSBm
cmFtZSBiYXNlZCBvbiBjYWxsIGZyYW1lIGxpbmU6Y29sdW1uCisgICAgICAgIC0gRGV0ZXJtaW5l
IGN1cnJlbnRseSBoaXQgYnJlYWtwb2ludCBiYXNlZCBvbiBjYWxsIGZyYW1lIGxpbmU6Y29sdW1u
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkphdmFTY3JpcHRDYWxsRnJhbWU6OkphdmFTY3JpcHRDYWxsRnJhbWUpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkphdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpK
YXZhU2NyaXB0Q2FsbEZyYW1lOjpsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkphdmFTY3JpcHRD
YWxsRnJhbWU6OmNvbHVtbik6CisgICAgICAgIChXZWJDb3JlOjpKYXZhU2NyaXB0Q2FsbEZyYW1l
Ojp1cGRhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpjcmVhdGVDYWxsRnJhbWVBbmRQ
YXVzZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjp1cGRh
dGVDYWxsRnJhbWVBbmRQYXVzZUlmTmVlZGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9EZWJ1
Z2dlclNjcmlwdC5qczoKKyAgICAgICAgKCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5fZGVidWdnZXJQYXVzZWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLmNvbnRpbnVlVG9Mb2Nh
dGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuX3Bh
dXNlZFNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUuX2JyZWFrcG9pbnRGb3JDYWxsRnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX2RlYnVnZ2VyUGF1c2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlLl9jbGVhckN1cnJlbnRFeGVjdXRpb25MaW5lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jYWxsRnJhbWVTZWxlY3RlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX3NldFRleHRWaWV3ZXJEZWNvcmF0aW9u
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLnNldEV4ZWN1
dGlvbkxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5
cGUuY2xlYXJFeGVjdXRpb25Mb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWUucHJvdG90eXBlLl9zZXRFeGVjdXRpb25Mb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9icmVha3BvaW50QWRkZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fY29udGludWVUb0xpbmUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fb3JpZ2luYWxMb2NhdGlv
blRvVGV4dFZpZXdlckxpbmVOdW1iZXIpOgorCiAyMDExLTAyLTA4ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcApp
bmRleCBjYzY5ODZhLi5jZWQ3ZDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcApAQCAtNDIsNyArNDIsNyBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi1KYXZhU2NyaXB0Q2FsbEZy
YW1lOjpKYXZhU2NyaXB0Q2FsbEZyYW1lKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dl
ckNhbGxGcmFtZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxsZXIsIGludHB0
cl90IHNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24xJiB0ZXh0UG9zaXRpb24pCitKYXZhU2Ny
aXB0Q2FsbEZyYW1lOjpKYXZhU2NyaXB0Q2FsbEZyYW1lKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1l
JiBkZWJ1Z2dlckNhbGxGcmFtZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxs
ZXIsIGludHB0cl90IHNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24wJiB0ZXh0UG9zaXRpb24p
CiAgICAgOiBtX2RlYnVnZ2VyQ2FsbEZyYW1lKGRlYnVnZ2VyQ2FsbEZyYW1lKQogICAgICwgbV9j
YWxsZXIoY2FsbGVyKQogICAgICwgbV9zb3VyY2VJRChzb3VyY2VJRCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaAppbmRleCA3NGUwYTcwLi43
MDczOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0
Q2FsbEZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENh
bGxGcmFtZS5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SmF2YVNjcmlwdENhbGxGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPEphdmFTY3JpcHRDYWxsRnJh
bWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1l
PiBjcmVhdGUoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUs
IFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJ
RCwgY29uc3QgVGV4dFBvc2l0aW9uMSYgdGV4dFBvc2l0aW9uKQorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNyZWF0ZShjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZy
YW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBj
YWxsZXIsIGludHB0cl90IHNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24wJiB0ZXh0UG9zaXRp
b24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEphdmFTY3JpcHRDYWxsRnJh
bWUoZGVidWdnZXJDYWxsRnJhbWUsIGNhbGxlciwgc291cmNlSUQsIHRleHRQb3NpdGlvbikpOwog
ICAgIH0KQEAgLTU1LDEwICs1NSwxMCBAQCBwdWJsaWM6CiAgICAgSmF2YVNjcmlwdENhbGxGcmFt
ZSogY2FsbGVyKCk7CiAKICAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlSUQ7IH0KLSAgICBpbnQgbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFBvc2l0aW9u
Lm1fbGluZS5vbmVCYXNlZEludCgpOyB9Ci0gICAgaW50IGNvbHVtbigpIGNvbnN0IHsgcmV0dXJu
IG1fdGV4dFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCk7IH0KKyAgICBpbnQgbGluZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdGV4dFBvc2l0aW9uLm1fbGluZS56ZXJvQmFzZWRJbnQoKTsgfQor
ICAgIGludCBjb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3RleHRQb3NpdGlvbi5tX2NvbHVtbi56
ZXJvQmFzZWRJbnQoKTsgfQogCi0gICAgdm9pZCB1cGRhdGUoY29uc3QgSlNDOjpEZWJ1Z2dlckNh
bGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0cl90IHNvdXJjZUlELCBjb25zdCBUZXh0
UG9zaXRpb24xJiB0ZXh0UG9zaXRpb24pCisgICAgdm9pZCB1cGRhdGUoY29uc3QgSlNDOjpEZWJ1
Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0cl90IHNvdXJjZUlELCBjb25z
dCBUZXh0UG9zaXRpb24wJiB0ZXh0UG9zaXRpb24pCiAgICAgewogICAgICAgICBtX2RlYnVnZ2Vy
Q2FsbEZyYW1lID0gZGVidWdnZXJDYWxsRnJhbWU7CiAgICAgICAgIG1fdGV4dFBvc2l0aW9uID0g
dGV4dFBvc2l0aW9uOwpAQCAtNzUsMTIgKzc1LDEyIEBAIHB1YmxpYzoKICAgICBKU0M6OkpTVmFs
dWUgZXZhbHVhdGUoY29uc3QgSlNDOjpVU3RyaW5nJiBzY3JpcHQsIEpTQzo6SlNWYWx1ZSYgZXhj
ZXB0aW9uKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAgSmF2YVNjcmlwdENhbGxGcmFtZShj
b25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZy
YW1lPiBjYWxsZXIsIGludHB0cl90IHNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24xJik7Cisg
ICAgSmF2YVNjcmlwdENhbGxGcmFtZShjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiwgUGFz
c1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxsZXIsIGludHB0cl90IHNvdXJjZUlELCBj
b25zdCBUZXh0UG9zaXRpb24wJik7CiAKICAgICBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lIG1fZGVi
dWdnZXJDYWxsRnJhbWU7CiAgICAgUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IG1fY2FsbGVy
OwogICAgIGludHB0cl90IG1fc291cmNlSUQ7Ci0gICAgVGV4dFBvc2l0aW9uMSBtX3RleHRQb3Np
dGlvbjsKKyAgICBUZXh0UG9zaXRpb24wIG1fdGV4dFBvc2l0aW9uOwogICAgIGJvb2wgbV9pc1Zh
bGlkOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwCmluZGV4IGFlZDJhZDQuLmMzZTIwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTQzMiw3ICs0MzIsNyBAQCB2
b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzZXRKYXZhU2NyaXB0UGF1c2VkKEZyYW1lVmlldyogdmll
dywgYm9vbCBwYXVzZWQpCiAKIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmNyZWF0ZUNhbGxGcmFt
ZUFuZFBhdXNlSWZOZWVkZWQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZy
YW1lLCBpbnRwdHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCiB7Ci0gICAgVGV4dFBvc2l0
aW9uMSB0ZXh0UG9zaXRpb24oV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KGxp
bmVOdW1iZXIpLCBXVEY6Ok9uZUJhc2VkTnVtYmVyOjpiYXNlKCkpOworICAgIFRleHRQb3NpdGlv
bjAgdGV4dFBvc2l0aW9uKFdURjo6T25lQmFzZWROdW1iZXI6OmZyb21PbmVCYXNlZEludChsaW5l
TnVtYmVyKS5jb252ZXJ0VG9aZXJvQmFzZWQoKSwgV1RGOjpaZXJvQmFzZWROdW1iZXI6OmJhc2Uo
KSk7CiAgICAgbV9jdXJyZW50Q2FsbEZyYW1lID0gSmF2YVNjcmlwdENhbGxGcmFtZTo6Y3JlYXRl
KGRlYnVnZ2VyQ2FsbEZyYW1lLCBtX2N1cnJlbnRDYWxsRnJhbWUsIHNvdXJjZUlELCB0ZXh0UG9z
aXRpb24pOwogICAgIHBhdXNlSWZOZWVkZWQodG9QYWdlKGRlYnVnZ2VyQ2FsbEZyYW1lLmR5bmFt
aWNHbG9iYWxPYmplY3QoKSkpOwogfQpAQCAtNDQzLDcgKzQ0Myw3IEBAIHZvaWQgU2NyaXB0RGVi
dWdTZXJ2ZXI6OnVwZGF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoY29uc3QgRGVidWdnZXJD
YWxsRnJhbWUmCiAgICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFRleHRQb3NpdGlvbjEgdGV4dFBvc2l0aW9uKFdURjo6T25lQmFzZWROdW1iZXI6OmZy
b21PbmVCYXNlZEludChsaW5lTnVtYmVyKSwgV1RGOjpPbmVCYXNlZE51bWJlcjo6YmFzZSgpKTsK
KyAgICBUZXh0UG9zaXRpb24wIHRleHRQb3NpdGlvbihXVEY6Ok9uZUJhc2VkTnVtYmVyOjpmcm9t
T25lQmFzZWRJbnQobGluZU51bWJlcikuY29udmVydFRvWmVyb0Jhc2VkKCksIFdURjo6WmVyb0Jh
c2VkTnVtYmVyOjpiYXNlKCkpOwogICAgIG1fY3VycmVudENhbGxGcmFtZS0+dXBkYXRlKGRlYnVn
Z2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgdGV4dFBvc2l0aW9uKTsKICAgICBwYXVzZUlmTmVlZGVk
KHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKaW5kZXggMTc5ODM1
Mi4uMGJlZDMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdn
ZXJTY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3Jp
cHQuanMKQEAgLTIwMyw4ICsyMDMsNiBAQCBEZWJ1Z2dlclNjcmlwdC5fZnJhbWVNaXJyb3JUb0pT
Q2FsbEZyYW1lID0gZnVuY3Rpb24oZnJhbWVNaXJyb3IsIGNhbGxlckZyYW1lKQogCiAgICAgLy8g
R2V0IGxvY2F0aW9uLgogICAgIHZhciBsb2NhdGlvbiAgPSBmcmFtZU1pcnJvci5zb3VyY2VMb2Nh
dGlvbigpOwotICAgIHZhciBsaW5lID0gRGVidWdnZXJTY3JpcHQuX3Y4VG9XZWJraXRMaW5lTnVt
YmVyKGxvY2F0aW9uLmxpbmUpOwotICAgIHZhciBjb2x1bW4gPSBEZWJ1Z2dlclNjcmlwdC5fdjhU
b1dlYmtpdExpbmVOdW1iZXIobG9jYXRpb24uY29sdW1uKTsKIAogICAgIC8vIEdldCB0aGlzIG9i
amVjdC4KICAgICB2YXIgdGhpc09iamVjdCA9IGZyYW1lTWlycm9yLmRldGFpbHNfLnJlY2VpdmVy
KCk7CkBAIC0yNTEsOCArMjQ5LDggQEAgRGVidWdnZXJTY3JpcHQuX2ZyYW1lTWlycm9yVG9KU0Nh
bGxGcmFtZSA9IGZ1bmN0aW9uKGZyYW1lTWlycm9yLCBjYWxsZXJGcmFtZSkKIAogICAgIHJldHVy
biB7CiAgICAgICAgICJzb3VyY2VJRCI6IHNvdXJjZUlELAotICAgICAgICAibGluZSI6IGxpbmUs
Ci0gICAgICAgICJjb2x1bW4iOiBjb2x1bW4sCisgICAgICAgICJsaW5lIjogbG9jYXRpb24ubGlu
ZSwKKyAgICAgICAgImNvbHVtbiI6IGxvY2F0aW9uLmNvbHVtbiwKICAgICAgICAgImZ1bmN0aW9u
TmFtZSI6IGZ1bmN0aW9uTmFtZSwKICAgICAgICAgInR5cGUiOiAiZnVuY3Rpb24iLAogICAgICAg
ICAidGhpc09iamVjdCI6IHRoaXNPYmplY3QsCkBAIC0yNjMsMTEgKzI2MSw2IEBAIERlYnVnZ2Vy
U2NyaXB0Ll9mcmFtZU1pcnJvclRvSlNDYWxsRnJhbWUgPSBmdW5jdGlvbihmcmFtZU1pcnJvciwg
Y2FsbGVyRnJhbWUpCiAgICAgfTsKIH0KIAotRGVidWdnZXJTY3JpcHQuX3Y4VG9XZWJraXRMaW5l
TnVtYmVyID0gZnVuY3Rpb24obGluZSkKLXsKLSAgICByZXR1cm4gbGluZSArIDE7Ci19OwotCiBy
ZXR1cm4gRGVidWdnZXJTY3JpcHQ7CiAKIH0pKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKaW5k
ZXggMGE0N2JmOC4uMGM0NjQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwpAQCAtMTQzLDEw
ICsxNDMsMTAgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5l
LnByb3RvdHlwZSA9IHsKIAogICAgIF9kZWJ1Z2dlclBhdXNlZDogZnVuY3Rpb24oZXZlbnQpCiAg
ICAgewotICAgICAgICB2YXIgYnJlYWtwb2ludElkID0gdGhpcy5fYnJlYWtwb2ludElkRm9yRGVi
dWdnZXJQYXVzZWRFdmVudChldmVudC5kYXRhKTsKLSAgICAgICAgaWYgKCFicmVha3BvaW50SWQp
CisgICAgICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQuZGF0YS5icmVha3BvaW50OworICAgICAg
ICBpZiAoIWJyZWFrcG9pbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZhciBicmVh
a3BvaW50SXRlbSA9IHRoaXMuX2l0ZW1zW2JyZWFrcG9pbnRJZF07CisgICAgICAgIHZhciBicmVh
a3BvaW50SXRlbSA9IHRoaXMuX2l0ZW1zW2JyZWFrcG9pbnQuaWRdOwogICAgICAgICBpZiAoIWJy
ZWFrcG9pbnRJdGVtKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBicmVha3BvaW50SXRl
bS5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImJyZWFrcG9pbnQtaGl0Iik7CkBAIC0yMzYsMTQgKzIz
Niw2IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBjbGlj
a0hhbmRsZXIsIGZhbHNlKTsKICAgICB9LAogCi0gICAgX2JyZWFrcG9pbnRJZEZvckRlYnVnZ2Vy
UGF1c2VkRXZlbnQ6IGZ1bmN0aW9uKGRldGFpbHMpCi0gICAgewotICAgICAgICB2YXIgY2FsbEZy
YW1lID0gZGV0YWlscy5jYWxsRnJhbWVzWzBdOwotICAgICAgICB2YXIgYnJlYWtwb2ludCA9IFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmZpbmRCcmVha3BvaW50KGNhbGxGcmFtZS5zb3VyY2VJ
RCwgY2FsbEZyYW1lLmxpbmUpOwotICAgICAgICBpZiAoYnJlYWtwb2ludCkKLSAgICAgICAgICAg
IHJldHVybiBicmVha3BvaW50LmlkOwotICAgfSwKLQogICAgIF9yZW1vdmVCcmVha3BvaW50OiBm
dW5jdGlvbihicmVha3BvaW50SWQpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5yZW1vdmVCcmVha3BvaW50KGJyZWFrcG9pbnRJZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5q
cwppbmRleCA1MDNlNWY0Li5lOWNmYzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMKQEAgLTI5LDE0
ICsyOSwxNCBAQCBXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUgPSBmdW5jdGlvbigp
CiB9CiAKIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7Ci0g
ICAgdXBkYXRlOiBmdW5jdGlvbihjYWxsRnJhbWVzLCBldmVudFR5cGUsIGV2ZW50RGF0YSkKKyAg
ICB1cGRhdGU6IGZ1bmN0aW9uKGRldGFpbHMpCiAgICAgewogICAgICAgICB0aGlzLmJvZHlFbGVt
ZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAKICAgICAgICAgdGhpcy5wbGFjYXJkcyA9IFtdOwogICAg
ICAgICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRDYWxsRnJhbWU7CiAKLSAgICAgICAgaWYgKCFjYWxs
RnJhbWVzKSB7CisgICAgICAgIGlmICghZGV0YWlscykgewogICAgICAgICAgICAgdmFyIGluZm9F
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgICAgICBpbmZv
RWxlbWVudC5jbGFzc05hbWUgPSAiaW5mbyI7CiAgICAgICAgICAgICBpbmZvRWxlbWVudC50ZXh0
Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm90IFBhdXNlZCIpOwpAQCAtNDQsNiAr
NDQsNyBAQCBXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgdmFyIGNhbGxGcmFtZXMg
PSBkZXRhaWxzLmNhbGxGcmFtZXM7CiAgICAgICAgIHZhciB0aXRsZTsKICAgICAgICAgdmFyIHN1
YnRpdGxlOwogICAgICAgICB2YXIgc2NyaXB0OwpAQCAtODEsMTAgKzgyLDEwIEBAIFdlYkluc3Bl
Y3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlz
LmJvZHlFbGVtZW50LmFwcGVuZENoaWxkKHBsYWNhcmQuZWxlbWVudCk7CiAgICAgICAgIH0KIAot
ICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuZmluZEJyZWFrcG9pbnQoY2Fs
bEZyYW1lc1swXS5zb3VyY2VJRCwgY2FsbEZyYW1lc1swXS5saW5lKSkKKyAgICAgICAgaWYgKGRl
dGFpbHMuYnJlYWtwb2ludCkKICAgICAgICAgICAgIHRoaXMuX3NjcmlwdEJyZWFrcG9pbnRIaXQo
KTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09PSBXZWJJbnNwZWN0b3IuRGVidWdnZXJF
dmVudFR5cGVzLk5hdGl2ZUJyZWFrcG9pbnQpCi0gICAgICAgICAgICB0aGlzLl9uYXRpdmVCcmVh
a3BvaW50SGl0KGV2ZW50RGF0YSk7CisgICAgICAgIGVsc2UgaWYgKGRldGFpbHMuZXZlbnRUeXBl
ID09PSBXZWJJbnNwZWN0b3IuRGVidWdnZXJFdmVudFR5cGVzLk5hdGl2ZUJyZWFrcG9pbnQpCisg
ICAgICAgICAgICB0aGlzLl9uYXRpdmVCcmVha3BvaW50SGl0KGRldGFpbHMuZXZlbnREYXRhKTsK
ICAgICB9LAogCiAgICAgZ2V0IHNlbGVjdGVkQ2FsbEZyYW1lKCkKQEAgLTk0LDkgKzk1LDYgQEAg
V2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIHNl
dCBzZWxlY3RlZENhbGxGcmFtZSh4KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVk
Q2FsbEZyYW1lID09PSB4KQotICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIHRoaXMuX3Nl
bGVjdGVkQ2FsbEZyYW1lID0geDsKIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
cGxhY2FyZHMubGVuZ3RoOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCAxYmYxZTQ3Li4zMzg0YzM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVs
LmpzCkBAIC03MSw5ICs3MSw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5kaXNhYmxlRGVidWdnZXIoKTsKICAgICB9
LAogCi0gICAgY29udGludWVUb0xpbmU6IGZ1bmN0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyKQor
ICAgIGNvbnRpbnVlVG9Mb2NhdGlvbjogZnVuY3Rpb24oc291cmNlSUQsIGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlcikKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuY29udGludWVUb0xv
Y2F0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyLCAwKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5jb250aW51ZVRvTG9jYXRpb24oc291cmNlSUQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7
CiAgICAgfSwKIAogICAgIHNldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHVybCwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCkBAIC0xNzMsMTcgKzE3Myw2IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIGJy
ZWFrcG9pbnRzOwogICAgIH0sCiAKLSAgICBmaW5kQnJlYWtwb2ludDogZnVuY3Rpb24oc291cmNl
SUQsIGxpbmVOdW1iZXIpCi0gICAgewotICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9icmVh
a3BvaW50cykgewotICAgICAgICAgICAgdmFyIGxvY2F0aW9ucyA9IHRoaXMuX2JyZWFrcG9pbnRz
W2lkXS5sb2NhdGlvbnM7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvY2F0aW9u
cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbnNbaV0uc291cmNl
SUQgPT0gc291cmNlSUQgJiYgbG9jYXRpb25zW2ldLmxpbmVOdW1iZXIgKyAxID09PSBsaW5lTnVt
YmVyKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludHNbaWRdOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSwKLQogICAgIHJlc2V0OiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICB0aGlzLl9wYXVzZWQgPSBmYWxzZTsKQEAgLTI4Niw2ICsyNzUsNyBA
QCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAg
ICB0aGlzLl9wYXVzZWQgPSB0cnVlOwogICAgICAgICB0aGlzLl9jYWxsRnJhbWVzID0gZGV0YWls
cy5jYWxsRnJhbWVzOworICAgICAgICBkZXRhaWxzLmJyZWFrcG9pbnQgPSB0aGlzLl9icmVha3Bv
aW50Rm9yQ2FsbEZyYW1lKGRldGFpbHMuY2FsbEZyYW1lc1swXSk7CiAgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5E
ZWJ1Z2dlclBhdXNlZCwgZGV0YWlscyk7CiAgICAgfSwKIApAQCAtMjk2LDYgKzI4NiwyMyBAQCBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5E
ZWJ1Z2dlclJlc3VtZWQpOwogICAgIH0sCiAKKyAgICBfYnJlYWtwb2ludEZvckNhbGxGcmFtZTog
ZnVuY3Rpb24oY2FsbEZyYW1lKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbWF0Y2gobG9jYXRp
b24pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChsb2NhdGlvbi5zb3VyY2VJRCAhPSBjYWxs
RnJhbWUuc291cmNlSUQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgcmV0dXJuIGxvY2F0aW9uLmxpbmVOdW1iZXIgPT09IGNhbGxGcmFtZS5saW5lICYmIGxvY2F0
aW9uLmNvbHVtbk51bWJlciA9PT0gY2FsbEZyYW1lLmNvbHVtbjsKKyAgICAgICAgfQorICAgICAg
ICBmb3IgKHZhciBpZCBpbiB0aGlzLl9icmVha3BvaW50cykgeworICAgICAgICAgICAgdmFyIGJy
ZWFrcG9pbnQgPSB0aGlzLl9icmVha3BvaW50c1tpZF07CisgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGJyZWFrcG9pbnQubG9jYXRpb25zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKG1hdGNoKGJyZWFrcG9pbnQubG9jYXRpb25zW2ldKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJyZWFrcG9pbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
LAorCiAgICAgX3BhcnNlZFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oc291cmNlSUQsIHNvdXJjZVVS
TCwgbGluZU9mZnNldCwgY29sdW1uT2Zmc2V0LCBsZW5ndGgsIHNjcmlwdFdvcmxkVHlwZSkKICAg
ICB7CiAgICAgICAgIHZhciBzY3JpcHQgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdChzb3VyY2VJ
RCwgc291cmNlVVJMLCAiIiwgbGluZU9mZnNldCwgY29sdW1uT2Zmc2V0LCBsZW5ndGgsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCBzY3JpcHRXb3JsZFR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCAzOWFjMDJiLi4wZTg0
NGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qcwpAQCAtMzc2LDcgKzM3Niw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlID0gewogCiAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwgPSB0aGlz
OwogCi0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay51cGRhdGUoY2FsbEZyYW1l
cywgZXZlbnQuZGF0YS5ldmVudFR5cGUsIGV2ZW50LmRhdGEuZXZlbnREYXRhKTsKKyAgICAgICAg
dGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLnVwZGF0ZShldmVudC5kYXRhKTsKICAgICAgICAg
dGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLnNlbGVjdGVkQ2FsbEZyYW1lID0gY2FsbEZyYW1l
c1swXTsKIAogICAgICAgICB3aW5kb3cuZm9jdXMoKTsKQEAgLTY2NSw3ICs2NjUsNyBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfY2xlYXJDdXJyZW50RXhl
Y3V0aW9uTGluZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2V4ZWN1dGlv
blNvdXJjZUZyYW1lKQotICAgICAgICAgICAgdGhpcy5fZXhlY3V0aW9uU291cmNlRnJhbWUuY2xl
YXJFeGVjdXRpb25MaW5lKCk7CisgICAgICAgICAgICB0aGlzLl9leGVjdXRpb25Tb3VyY2VGcmFt
ZS5jbGVhckV4ZWN1dGlvbkxvY2F0aW9uKCk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9leGVjdXRp
b25Tb3VyY2VGcmFtZTsKICAgICB9LAogCkBAIC02ODcsNyArNjg3LDcgQEAgV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5fZXhlY3V0aW9uU291
cmNlRnJhbWUgPSB0aGlzLl9zb3VyY2VGcmFtZUZvclNjcmlwdE9yUmVzb3VyY2Uoc2NyaXB0T3JS
ZXNvdXJjZSk7CiAgICAgICAgIGlmICh0aGlzLl9leGVjdXRpb25Tb3VyY2VGcmFtZSkKLSAgICAg
ICAgICAgIHRoaXMuX2V4ZWN1dGlvblNvdXJjZUZyYW1lLnNldEV4ZWN1dGlvbkxpbmUoY3VycmVu
dEZyYW1lLmxpbmUpOworICAgICAgICAgICAgdGhpcy5fZXhlY3V0aW9uU291cmNlRnJhbWUuc2V0
RXhlY3V0aW9uTG9jYXRpb24oY3VycmVudEZyYW1lLmxpbmUsIGN1cnJlbnRGcmFtZS5jb2x1bW4p
OwogICAgIH0sCiAKICAgICBfY2hhbmdlVmlzaWJsZUZpbGU6IGZ1bmN0aW9uKGV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKaW5k
ZXggMjFhNjY2Ny4uZDBhMGJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC0yMjEsOCArMjIxLDggQEAgV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fYWRkRXhpc3RpbmdNZXNz
YWdlc1RvU291cmNlKCk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZURpZmZEZWNvcmF0aW9ucygpOwog
Ci0gICAgICAgIGlmICh0aGlzLl9leGVjdXRpb25MaW5lKQotICAgICAgICAgICAgdGhpcy5zZXRF
eGVjdXRpb25MaW5lKHRoaXMuX2V4ZWN1dGlvbkxpbmUpOworICAgICAgICBpZiAodGhpcy5fZXhl
Y3V0aW9uTG9jYXRpb24pCisgICAgICAgICAgICB0aGlzLl9zZXRFeGVjdXRpb25Mb2NhdGlvbigp
OwogCiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRJZFRvVGV4dFZpZXdlckxpbmVOdW1iZXIgPSB7
fTsKICAgICAgICAgdGhpcy5fdGV4dFZpZXdlckxpbmVOdW1iZXJUb0JyZWFrcG9pbnRJZCA9IHt9
OwpAQCAtMzYwLDIyICszNjAsMjcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgbXNnLl9yZXNvdXJjZU1lc3NhZ2VSZXBlYXRDb3VudEVsZW1lbnQudGV4
dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiAocmVwZWF0ZWQgJWQgdGltZXMpIiwg
bXNnLnJlcGVhdENvdW50KTsKICAgICB9LAogCi0gICAgc2V0RXhlY3V0aW9uTGluZTogZnVuY3Rp
b24obGluZU51bWJlcikKKyAgICBzZXRFeGVjdXRpb25Mb2NhdGlvbjogZnVuY3Rpb24obGluZU51
bWJlciwgY29sdW1uTnVtYmVyKQogICAgIHsKLSAgICAgICAgdGhpcy5fZXhlY3V0aW9uTGluZSA9
IGxpbmVOdW1iZXI7Ci0gICAgICAgIGlmICghdGhpcy5fdGV4dFZpZXdlcikKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgdmFyIHRleHRWaWV3ZXJMaW5lTnVtYmVyID0gdGhpcy5fb3JpZ2lu
YWxMb2NhdGlvblRvVGV4dFZpZXdlckxpbmVOdW1iZXIodGhpcy5fZXhlY3V0aW9uTGluZSAtIDEs
IDApOwotICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLmFkZERlY29yYXRpb24odGV4dFZpZXdlckxp
bmVOdW1iZXIsICJ3ZWJraXQtZXhlY3V0aW9uLWxpbmUiKTsKKyAgICAgICAgdGhpcy5fZXhlY3V0
aW9uTG9jYXRpb24gPSB7IGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29s
dW1uTnVtYmVyIH07CisgICAgICAgIGlmICh0aGlzLl90ZXh0Vmlld2VyKQorICAgICAgICAgICAg
dGhpcy5fc2V0RXhlY3V0aW9uTG9jYXRpb24oKTsKKwogICAgIH0sCiAKLSAgICBjbGVhckV4ZWN1
dGlvbkxpbmU6IGZ1bmN0aW9uKCkKKyAgICBjbGVhckV4ZWN1dGlvbkxvY2F0aW9uOiBmdW5jdGlv
bigpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX3RleHRWaWV3ZXIpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIHZhciB0ZXh0Vmlld2VyTGluZU51bWJlciA9IHRoaXMuX29yaWdpbmFs
TG9jYXRpb25Ub1RleHRWaWV3ZXJMaW5lTnVtYmVyKHRoaXMuX2V4ZWN1dGlvbkxpbmUgLSAxLCAw
KTsKLSAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5yZW1vdmVEZWNvcmF0aW9uKHRleHRWaWV3ZXJM
aW5lTnVtYmVyLCAid2Via2l0LWV4ZWN1dGlvbi1saW5lIik7Ci0gICAgICAgIGRlbGV0ZSB0aGlz
Ll9leGVjdXRpb25MaW5lOworICAgICAgICBpZiAodGhpcy5fdGV4dFZpZXdlcikgeworICAgICAg
ICAgICAgdmFyIHRleHRWaWV3ZXJMaW5lTnVtYmVyID0gdGhpcy5fb3JpZ2luYWxMb2NhdGlvblRv
VGV4dFZpZXdlckxpbmVOdW1iZXIodGhpcy5fZXhlY3V0aW9uTG9jYXRpb24pOworICAgICAgICAg
ICAgdGhpcy5fdGV4dFZpZXdlci5yZW1vdmVEZWNvcmF0aW9uKHRleHRWaWV3ZXJMaW5lTnVtYmVy
LCAid2Via2l0LWV4ZWN1dGlvbi1saW5lIik7CisgICAgICAgIH0KKyAgICAgICAgZGVsZXRlIHRo
aXMuX2V4ZWN1dGlvbkxvY2F0aW9uOworICAgIH0sCisKKyAgICBfc2V0RXhlY3V0aW9uTG9jYXRp
b246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciB0ZXh0Vmlld2VyTGluZU51bWJlciA9
IHRoaXMuX29yaWdpbmFsTG9jYXRpb25Ub1RleHRWaWV3ZXJMaW5lTnVtYmVyKHRoaXMuX2V4ZWN1
dGlvbkxvY2F0aW9uKTsKKyAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5hZGREZWNvcmF0aW9uKHRl
eHRWaWV3ZXJMaW5lTnVtYmVyLCAid2Via2l0LWV4ZWN1dGlvbi1saW5lIik7CiAgICAgfSwKIAog
ICAgIF91cGRhdGVEaWZmRGVjb3JhdGlvbnM6IGZ1bmN0aW9uKCkKQEAgLTQ3Niw3ICs0ODEsNyBA
QCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgcmVz
b2x2ZWQgPSBicmVha3BvaW50LmxvY2F0aW9ucy5sZW5ndGg7CiAgICAgICAgIHZhciBsb2NhdGlv
biA9IHJlc29sdmVkID8gYnJlYWtwb2ludC5sb2NhdGlvbnNbMF0gOiBicmVha3BvaW50OwogCi0g
ICAgICAgIHZhciB0ZXh0Vmlld2VyTGluZU51bWJlciA9IHRoaXMuX29yaWdpbmFsTG9jYXRpb25U
b1RleHRWaWV3ZXJMaW5lTnVtYmVyKGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVt
bk51bWJlcik7CisgICAgICAgIHZhciB0ZXh0Vmlld2VyTGluZU51bWJlciA9IHRoaXMuX29yaWdp
bmFsTG9jYXRpb25Ub1RleHRWaWV3ZXJMaW5lTnVtYmVyKGxvY2F0aW9uKTsKICAgICAgICAgaWYg
KHRleHRWaWV3ZXJMaW5lTnVtYmVyID49IHRoaXMuX3RleHRNb2RlbC5saW5lc0NvdW50KQogICAg
ICAgICAgICAgcmV0dXJuOwogCkBAIC04NjIsNyArODY3LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBsb2NhdGlvbiA9IHRoaXMu
X3RleHRWaWV3ZXJMaW5lTnVtYmVyVG9TY3JpcHRMb2NhdGlvbihsaW5lTnVtYmVyKTsKICAgICAg
ICAgaWYgKGxvY2F0aW9uLnNvdXJjZUlEKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuY29udGludWVUb0xpbmUobG9jYXRpb24uc291cmNlSUQsIGxvY2F0aW9uLmxpbmVO
dW1iZXIpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY29udGludWVU
b0xvY2F0aW9uKGxvY2F0aW9uLnNvdXJjZUlELCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlv
bi5jb2x1bW5OdW1iZXIpOwogICAgIH0sCiAKICAgICBfZG91YmxlQ2xpY2s6IGZ1bmN0aW9uKGV2
ZW50KQpAQCAtOTE0LDExICs5MTksMTEgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmJyZWFr
cG9pbnRGb3JJZChicmVha3BvaW50SWQpOwogICAgIH0sCiAKLSAgICBfb3JpZ2luYWxMb2NhdGlv
blRvVGV4dFZpZXdlckxpbmVOdW1iZXI6IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJl
cikKKyAgICBfb3JpZ2luYWxMb2NhdGlvblRvVGV4dFZpZXdlckxpbmVOdW1iZXI6IGZ1bmN0aW9u
KGxvY2F0aW9uKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9mb3JtYXR0ZWRDb250ZW50KQot
ICAgICAgICAgICAgcmV0dXJuIGxpbmVOdW1iZXI7Ci0gICAgICAgIHJldHVybiB0aGlzLl9mb3Jt
YXR0ZWRDb250ZW50Lm9yaWdpbmFsTG9jYXRpb25Ub0Zvcm1hdHRlZExvY2F0aW9uKGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlcikubGluZU51bWJlcjsKKyAgICAgICAgICAgIHJldHVybiBsb2NhdGlv
bi5saW5lTnVtYmVyOworICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0dGVkQ29udGVudC5vcmln
aW5hbExvY2F0aW9uVG9Gb3JtYXR0ZWRMb2NhdGlvbihsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2Nh
dGlvbi5jb2x1bW5OdW1iZXIpLmxpbmVOdW1iZXI7CiAgICAgfSwKIAogICAgIF90ZXh0Vmlld2Vy
TGluZU51bWJlclRvU2NyaXB0TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCg==
</data>
<flag name="review"
          id="73394"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>