<?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>86634</bug_id>
          
          <creation_ts>2012-05-16 08:17:09 -0700</creation_ts>
          <short_desc>Web Inspector: extract CompositeUISourceCodeProvider from DebuggerScriptMapping.</short_desc>
          <delta_ts>2012-05-16 09:37:48 -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>625452</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 08:17:09 -0700</bug_when>
    <thetext>Extract refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625476</commentid>
    <comment_count>1</comment_count>
      <attachid>142271</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 08:39:27 -0700</bug_when>
    <thetext>Created attachment 142271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625487</commentid>
    <comment_count>2</comment_count>
      <attachid>142271</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-05-16 08:46:16 -0700</bug_when>
    <thetext>Comment on attachment 142271
Patch

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

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:84
&gt; +    WebInspector.OpenScriptDialog.install(this, this._uiSourceCodeProvider, this.editorView.mainElement);

You should do the same change in Tests.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625545</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 09:37:48 -0700</bug_when>
    <thetext>Committed r117302: &lt;http://trac.webkit.org/changeset/117302&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142271</attachid>
            <date>2012-05-16 08:39:27 -0700</date>
            <delta_ts>2012-05-16 08:46:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86634-20120516193925.patch</filename>
            <type>text/plain</type>
            <size>23980</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3Mjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBjYzk1NjdjZWVkYTg4
N2QwMTBlMzQyOTE5ZjRhMjM1YzE1NzUxYS4uYjMyM2M4YTQyZWYyZjBiYTRiNmIwNGUyYzQ2MDFl
ZDU1NDk2NjE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTA1LTE2ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGV4dHJhY3QgQ29tcG9zaXRlVUlTb3VyY2VDb2RlUHJvdmlkZXIgZnJvbSBEZWJ1Z2dlclNj
cmlwdE1hcHBpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjYzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEV4dHJhY3QgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUudWlTb3VyY2VDb2RlUHJvdmlkZXJzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9wYXJzZWRTY3JpcHRTb3VyY2Up
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2xvYWRVSVNvdXJjZUNvZGVz
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl90b2dnbGVG
b3JtYXRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBvc2l0ZVVJU291cmNlQ29k
ZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21wb3NpdGVVSVNvdXJjZUNvZGVQ
cm92aWRlci5wcm90b3R5cGUuX3JlZ2lzdGVyVUlTb3VyY2VDb2RlUHJvdmlkZXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbXBvc2l0ZVVJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5f
aGFuZGxlVUlTb3VyY2VDb2RlQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBvc2l0
ZVVJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5faGFuZGxlVUlTb3VyY2VDb2RlUmVwbGFj
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBvc2l0ZVVJU291cmNlQ29kZVByb3ZpZGVy
LnByb3RvdHlwZS5faGFuZGxlVUlTb3VyY2VDb2RlUmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29tcG9zaXRlVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlLnVpU291cmNlQ29k
ZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS51aVNvdXJj
ZUNvZGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5wcm90
b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlUHJvdmlkZXIucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorCisyMDEyLTA1LTE2
ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IHNwbGl0IFNjcmlwdE1hcHBpbmcgaW50byBVSVNvdXJjZUNvZGVQcm92aWRlciBh
bmQgU291cmNlTWFwcGluZy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2NjE2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBpbmcuanMKaW5kZXggMjM1Zjc3ZTIyN2Yw
YTg3ZTM3NzliNGQ4YWQ1ZDg1NzYyNzRiOGU1Mi4uMWU1YmMwNmVhNzU4NTZjNTAwYzMzNzYwOWY1
YmNhYjEzYTIxNTNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBpbmcuanMKQEAgLTMwLDggKzMwLDYgQEAK
IAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0
fQotICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0KICAq
LwogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9uKCkKIHsKQEAg
LTQzLDExICs0MSw2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcgPSBmdW5j
dGlvbigpCiAgICAgdGhpcy5fbWFwcGluZ3MucHVzaCh0aGlzLl9jb21waWxlck1hcHBpbmcpOwog
ICAgIHRoaXMuX3NuaXBwZXRNYXBwaW5nID0gV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2Rl
bC5zY3JpcHRNYXBwaW5nOwogICAgIHRoaXMuX21hcHBpbmdzLnB1c2godGhpcy5fc25pcHBldE1h
cHBpbmcpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fbWFwcGluZ3MubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgdGhpcy5fbWFwcGluZ3NbaV0uYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlz
Ll9oYW5kbGVVSVNvdXJjZUNvZGVBZGRlZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX21hcHBpbmdz
W2ldLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2
ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhpcy5faGFuZGxlVUlTb3VyY2VDb2RlUmVwbGFj
ZWQsIHRoaXMpOwotICAgICAgICB0aGlzLl9tYXBwaW5nc1tpXS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3Zl
ZCwgdGhpcy5faGFuZGxlVUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcyk7Ci0gICAgfQogCiAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5FdmVudHMuUGFyc2VkU2NyaXB0U291cmNlLCB0aGlzLl9wYXJzZWRTY3Jp
cHRTb3VyY2UsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkZhaWxlZFRvUGFyc2VT
Y3JpcHRTb3VyY2UsIHRoaXMuX3BhcnNlZFNjcmlwdFNvdXJjZSwgdGhpcyk7CkBAIC01Niw1MSAr
NDksMjEgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9uKCkK
IAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAg
LyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICogQHJl
dHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcj59CiAgICAgICov
Ci0gICAgX3BhcnNlZFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oZXZlbnQpCisgICAgdWlTb3VyY2VD
b2RlUHJvdmlkZXJzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgc2NyaXB0ID0gLyoq
IEB0eXBlIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSAqLyBldmVudC5kYXRhOwotICAgICAgICB2YXIg
bWFwcGluZyA9IHRoaXMuX21hcHBpbmdGb3JTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgbWFwcGlu
Zy5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHJldHVybiB7
QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQotICAgICAqLwotICAgIHVpU291cmNl
Q29kZXM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBbXTsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9tYXBwaW5ncy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgdmFyIHVpU291cmNlQ29kZUxpc3QgPSB0aGlzLl9tYXBwaW5nc1tpXS51aVNvdXJj
ZUNvZGVzKCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHVpU291cmNlQ29kZUxp
c3QubGVuZ3RoOyArK2opCi0gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godWlTb3VyY2VDb2Rl
TGlzdFtqXSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX21hcHBpbmdzOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5FdmVudH0gZXZlbnQKICAgICAgKi8KLSAgICBfaGFuZGxlVUlTb3VyY2VDb2Rl
QWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNv
dXJjZUNvZGVBZGRlZCwgZXZlbnQuZGF0YSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAotICAgICAqLwotICAgIF9oYW5kbGVVSVNv
dXJjZUNvZGVSZXBsYWNlZDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIu
RXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCBldmVudC5kYXRhKTsKLSAgICB9LAotCi0gICAg
LyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50Ci0gICAgICovCi0g
ICAgX2hhbmRsZVVJU291cmNlQ29kZVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIF9wYXJz
ZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2
ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCBldmVudC5kYXRhKTsKKyAgICAgICAgdmFyIHNjcmlw
dCA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNjcmlwdH0gKi8gZXZlbnQuZGF0YTsKKyAgICAg
ICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9tYXBwaW5nRm9yU2NyaXB0KHNjcmlwdCk7CisgICAgICAg
IG1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTI4LDUg
KzkxLDMgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB0aGlzLl9tYXBwaW5nc1tpXS5yZXNldCgpOwogICAgIH0KIH0KLQotV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGRmMGYwMGNlMmJkNmNiODBmNDIy
ZTAzYWQ1ODBiYmU0MmMzZTQ0OGEuLjdjNTZhOTczMjAyNThjYWFlN2M0MDcyZjFlMjk3ODA0NzYx
MmI2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCkBAIC0yOCw5ICsyOCw5IEBACiAgKiBAY29uc3RydWN0b3IKICAqIEBpbXBs
ZW1lbnRzIHtXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyRGVsZWdhdGV9CiAgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlBhbmVsfQotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRGVi
dWdnZXJTY3JpcHRNYXBwaW5nPX0gc2NyaXB0TWFwcGluZ0ZvclRlc3QKKyAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLkNvbXBvc2l0ZVVJU291cmNlQ29kZVByb3ZpZGVyPX0gdWlTb3VyY2VDb2RlUHJv
dmlkZXJGb3JUZXN0CiAgKi8KLVdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbihz
Y3JpcHRNYXBwaW5nRm9yVGVzdCkKK1dlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlv
bih1aVNvdXJjZUNvZGVQcm92aWRlckZvclRlc3QpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlBhbmVs
LmNhbGwodGhpcywgInNjcmlwdHMiKTsKICAgICB0aGlzLnJlZ2lzdGVyUmVxdWlyZWRDU1MoInNj
cmlwdHNQYW5lbC5jc3MiKTsKQEAgLTM5LDkgKzM5LDExIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwgPSBmdW5jdGlvbihzY3JpcHRNYXBwaW5nRm9yVGVzdCkKICAgICBXZWJJbnNwZWN0b3Iu
c2V0dGluZ3MubmF2aWdhdG9yV2FzT25jZUhpZGRlbiA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5j
cmVhdGVTZXR0aW5nKCJuYXZpZ2F0b3JXYXNPbmNlSGlkZGVuIiwgZmFsc2UpOwogICAgIFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5kZWJ1Z2dlclNpZGViYXJIaWRkZW4gPSBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MuY3JlYXRlU2V0dGluZygiZGVidWdnZXJTaWRlYmFySGlkZGVuIiwgZmFsc2UpOwogCi0g
ICAgdGhpcy5fc2NyaXB0TWFwcGluZyA9IHNjcmlwdE1hcHBpbmdGb3JUZXN0IHx8IG5ldyBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKCk7Ci0gICAgbmV3IFdlYkluc3BlY3Rvci5Q
cmVzZW50YXRpb25Db25zb2xlTWVzc2FnZUhlbHBlcih0aGlzLl9zY3JpcHRNYXBwaW5nKTsKLSAg
ICBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUmVzb3VyY2VCaW5kaW5nKHRoaXMuX3NjcmlwdE1h
cHBpbmcpOworICAgIHZhciBzY3JpcHRNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clNjcmlwdE1hcHBpbmcoKTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGVQcm92aWRlciA9IHVpU291
cmNlQ29kZVByb3ZpZGVyRm9yVGVzdCB8fCBuZXcgV2ViSW5zcGVjdG9yLkNvbXBvc2l0ZVVJU291
cmNlQ29kZVByb3ZpZGVyKHNjcmlwdE1hcHBpbmcudWlTb3VyY2VDb2RlUHJvdmlkZXJzKCkpOwor
CisgICAgbmV3IFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25Db25zb2xlTWVzc2FnZUhlbHBlcih0
aGlzLl91aVNvdXJjZUNvZGVQcm92aWRlcik7CisgICAgbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clJlc291cmNlQmluZGluZyh0aGlzLl91aVNvdXJjZUNvZGVQcm92aWRlcik7CiAKICAgICBmdW5j
dGlvbiB2aWV3R2V0dGVyKCkKICAgICB7CkBAIC03OSw3ICs4MSw3IEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwgPSBmdW5jdGlvbihzY3JpcHRNYXBwaW5nRm9yVGVzdCkKIAogICAgIHRoaXMu
X2VkaXRvckNvbnRhaW5lciA9IG5ldyBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVy
KHRoaXMsICJwcmV2aW91c2x5Vmlld2VkRmlsZXMiKTsKICAgICB0aGlzLl9lZGl0b3JDb250YWlu
ZXIuc2hvdyh0aGlzLmVkaXRvclZpZXcubWFpbkVsZW1lbnQpOwotICAgIFdlYkluc3BlY3Rvci5P
cGVuU2NyaXB0RGlhbG9nLmluc3RhbGwodGhpcywgdGhpcy5fc2NyaXB0TWFwcGluZywgdGhpcy5l
ZGl0b3JWaWV3Lm1haW5FbGVtZW50KTsKKyAgICBXZWJJbnNwZWN0b3IuT3BlblNjcmlwdERpYWxv
Zy5pbnN0YWxsKHRoaXMsIHRoaXMuX3VpU291cmNlQ29kZVByb3ZpZGVyLCB0aGlzLmVkaXRvclZp
ZXcubWFpbkVsZW1lbnQpOwogCiAgICAgdGhpcy5fbmF2aWdhdG9yQ29udHJvbGxlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuTmF2aWdhdG9yT3ZlcmxheUNvbnRyb2xsZXIodGhpcywgdGhpcy5lZGl0b3JW
aWV3LCB0aGlzLl9uYXZpZ2F0b3IudmlldywgdGhpcy5fZWRpdG9yQ29udGFpbmVyLnZpZXcpOwog
CkBAIC0xNzIsMTUgKzE3NCwxNSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rp
b24oc2NyaXB0TWFwcGluZ0ZvclRlc3QpCiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuR2xvYmFs
T2JqZWN0Q2xlYXJlZCwgdGhpcy5fcmVzZXQuYmluZCh0aGlzLCBmYWxzZSkpOwogICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRzQWN0aXZlU3RhdGVDaGFuZ2VkLCB0aGlzLl9icmVh
a3BvaW50c0FjdGl2ZVN0YXRlQ2hhbmdlZCwgdGhpcyk7CiAKLSAgICB0aGlzLl9zY3JpcHRNYXBw
aW5nLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2
ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdGhpcy5faGFuZGxlVUlTb3VyY2VDb2RlQWRkZWQsIHRo
aXMpOwotICAgIHRoaXMuX3NjcmlwdE1hcHBpbmcuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCB0aGlz
Ll91aVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhpcyk7Ci0gICAgdGhpcy5fc2NyaXB0TWFwcGluZy5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMu
VUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcy5fdWlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcyk7Cisg
ICAgdGhpcy5fdWlTb3VyY2VDb2RlUHJvdmlkZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlzLl9o
YW5kbGVVSVNvdXJjZUNvZGVBZGRlZCwgdGhpcyk7CisgICAgdGhpcy5fdWlTb3VyY2VDb2RlUHJv
dmlkZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIu
RXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCB0aGlzLl91aVNvdXJjZUNvZGVSZXBsYWNlZCwg
dGhpcyk7CisgICAgdGhpcy5fdWlTb3VyY2VDb2RlUHJvdmlkZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92
ZWQsIHRoaXMuX3VpU291cmNlQ29kZVJlbW92ZWQsIHRoaXMpOwogCiAgICAgdmFyIGVuYWJsZURl
YnVnZ2VyID0gIUNhcGFiaWxpdGllcy5kZWJ1Z2dlckNhdXNlc1JlY29tcGlsYXRpb24gfHwgV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLmRlYnVnZ2VyRW5hYmxlZC5nZXQoKTsKICAgICBpZiAoZW5hYmxl
RGVidWdnZXIpCiAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmVuYWJsZURlYnVn
Z2VyKCk7CiAKLSAgICBXZWJJbnNwZWN0b3IuYWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnJlZ2lz
dGVyU2VhcmNoU2NvcGUobmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzU2VhcmNoU2NvcGUodGhpcy5f
c2NyaXB0TWFwcGluZykpOworICAgIFdlYkluc3BlY3Rvci5hZHZhbmNlZFNlYXJjaENvbnRyb2xs
ZXIucmVnaXN0ZXJTZWFyY2hTY29wZShuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29w
ZSh0aGlzLl91aVNvdXJjZUNvZGVQcm92aWRlcikpOwogfQogCiAvLyBLZWVwIHRoZXNlIGluIHN5
bmMgd2l0aCBXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcgpAQCAtMjM0LDcgKzIzNiw3IEBAIFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2xvYWRVSVNvdXJj
ZUNvZGVzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHRo
aXMuX3NjcmlwdE1hcHBpbmcudWlTb3VyY2VDb2RlcygpOworICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlcyA9IHRoaXMuX3VpU291cmNlQ29kZVByb3ZpZGVyLnVpU291cmNlQ29kZXMoKTsKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2Rlc1tpXSk7CiAgICAgfSwK
QEAgLTkxMyw3ICs5MTUsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICBfdG9nZ2xlRm9ybWF0U291cmNlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0
aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VCdXR0b24udG9nZ2xlZCA9ICF0aGlzLl90b2dnbGVGb3Jt
YXRTb3VyY2VCdXR0b24udG9nZ2xlZDsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlz
Ll9zY3JpcHRNYXBwaW5nLnVpU291cmNlQ29kZXMoKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29k
ZXMgPSB0aGlzLl91aVNvdXJjZUNvZGVQcm92aWRlci51aVNvdXJjZUNvZGVzKCk7CiAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkKICAgICAgICAg
ICAgIHVpU291cmNlQ29kZXNbaV0uc2V0Rm9ybWF0dGVkKHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJj
ZUJ1dHRvbi50b2dnbGVkKTsKICAgICB9LApAQCAtOTkzLDcgKzk5NSw3OSBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aGlzLl9uYXZp
Z2F0b3JDb250cm9sbGVyLmhpZGVOYXZpZ2F0b3JPdmVybGF5KCk7CiAgICAgICAgICAgICB0aGlz
Ll9zaG93U291cmNlTGluZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICB9CisgICAgfSwKKworICAg
IC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyfSB1
aVNvdXJjZUNvZGVQcm92aWRlcgorICAgICAqLworICAgIHJlZ2lzdGVyVUlTb3VyY2VDb2RlUHJv
dmlkZXI6IGZ1bmN0aW9uKHVpU291cmNlQ29kZVByb3ZpZGVyKQorICAgIHsKKyAgICAgICAgdGhp
cy5fdWlTb3VyY2VDb2RlUHJvdmlkZXIuX3JlZ2lzdGVyVUlTb3VyY2VDb2RlUHJvdmlkZXIodWlT
b3VyY2VDb2RlUHJvdmlkZXIpOwogICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZTsKKwor
LyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQor
ICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0KKyAqIEBw
YXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcj59IHVpU291cmNl
Q29kZVByb3ZpZGVycworICovCitXZWJJbnNwZWN0b3IuQ29tcG9zaXRlVUlTb3VyY2VDb2RlUHJv
dmlkZXIgPSBmdW5jdGlvbih1aVNvdXJjZUNvZGVQcm92aWRlcnMpCit7CisgICAgV2ViSW5zcGVj
dG9yLk9iamVjdC5jYWxsKHRoaXMpOworICAgIHRoaXMuX3VpU291cmNlQ29kZVByb3ZpZGVycyA9
IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2RlUHJvdmlkZXJzLmxlbmd0
aDsgKytpKQorICAgICAgICB0aGlzLl9yZWdpc3RlclVJU291cmNlQ29kZVByb3ZpZGVyKHVpU291
cmNlQ29kZVByb3ZpZGVyc1tpXSk7Cit9CisKK1dlYkluc3BlY3Rvci5Db21wb3NpdGVVSVNvdXJj
ZUNvZGVQcm92aWRlci5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXJ9IHVpU291cmNlQ29kZVByb3ZpZGVyCisgICAg
ICovCisgICAgX3JlZ2lzdGVyVUlTb3VyY2VDb2RlUHJvdmlkZXI6IGZ1bmN0aW9uKHVpU291cmNl
Q29kZVByb3ZpZGVyKQorICAgIHsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlUHJvdmlkZXJz
LnB1c2godWlTb3VyY2VDb2RlUHJvdmlkZXIpOworICAgICAgICB1aVNvdXJjZUNvZGVQcm92aWRl
ci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVu
dHMuVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMuX2hhbmRsZVVJU291cmNlQ29kZUFkZGVkLCB0aGlz
KTsKKyAgICAgICAgdWlTb3VyY2VDb2RlUHJvdmlkZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCB0
aGlzLl9oYW5kbGVVSVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhpcyk7CisgICAgICAgIHVpU291cmNl
Q29kZVByb3ZpZGVyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVBy
b3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzLl9oYW5kbGVVSVNvdXJjZUNv
ZGVSZW1vdmVkLCB0aGlzKTsKKyAgICB9LAorCisgICAgX2hhbmRsZVVJU291cmNlQ29kZUFkZGVk
OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VD
b2RlQWRkZWQsIGV2ZW50LmRhdGEpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfaGFuZGxlVUlTb3VyY2VD
b2RlUmVwbGFjZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50
cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgZXZlbnQuZGF0YSk7CisgICAgfSwKKworICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAorICAgICAqLworICAgIF9o
YW5kbGVVSVNvdXJjZUNvZGVSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQ
cm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwgZXZlbnQuZGF0YSk7CisgICAgfSwK
KworICAgIC8qKgorICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlPn0KKyAgICAgKi8KKyAgICB1aVNvdXJjZUNvZGVzOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB2YXIgcmVzdWx0ID0gW107CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5f
dWlTb3VyY2VDb2RlUHJvdmlkZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlcyA9IHRoaXMuX3VpU291cmNlQ29kZVByb3ZpZGVyc1tpXS51aVNvdXJjZUNvZGVz
KCk7CisgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHVpU291cmNlQ29kZXMubGVuZ3Ro
OyArK2opCisgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godWlTb3VyY2VDb2Rlc1tqXSk7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rv
ci5Db21wb3NpdGVVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCmluZGV4IDZhOThmNjVkZmQ5MTAxOGUyY2Yz
ZGIzMDA4MjY3MGYwYzkyODQ0ZjQuLmJhZGZmYTU4MmM3NjI3ZDA4ZjU3NGZlNWVhYzRhOWExN2Fh
NGQwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzCkBAIC0zMDYsNyArMzA2LDIxIEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGVQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHJldHVybiB7QXJyYXku
PFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQogICAgICAqLwotICAgIHVpU291cmNlQ29kZXM6
IGZ1bmN0aW9uKCkge30KKyAgICB1aVNvdXJjZUNvZGVzOiBmdW5jdGlvbigpIHt9LAorCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50VHlwZQorICAgICAqIEBwYXJhbSB7ZnVu
Y3Rpb24oV2ViSW5zcGVjdG9yLkV2ZW50KX0gbGlzdGVuZXIKKyAgICAgKiBAcGFyYW0ge09iamVj
dD19IHRoaXNPYmplY3QKKyAgICAgKi8KKyAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbihl
dmVudFR5cGUsIGxpc3RlbmVyLCB0aGlzT2JqZWN0KSB7IH0sCisKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge3N0cmluZ30gZXZlbnRUeXBlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNw
ZWN0b3IuRXZlbnQpfSBsaXN0ZW5lcgorICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gdGhpc09iamVj
dAorICAgICAqLworICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZSwg
bGlzdGVuZXIsIHRoaXNPYmplY3QpIHsgfQogfQogCiAvKioKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyN2IxYzVjNTE3NWMx
ZTM4OTRlMWM2YzRhNTA3ZmRkMzNhNTAzMjlmLi5lODVmYmExNDkwM2FjMDNlYzBjNTY0ZWQxZmNh
Mjg3ZDk1MDYyN2Q3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTItMDUtMTYgIFBhdmVsIEZl
bGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
ZXh0cmFjdCBDb21wb3NpdGVVSVNvdXJjZUNvZGVQcm92aWRlciBmcm9tIERlYnVnZ2VyU2NyaXB0
TWFwcGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg2NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanM6CisgICAgICAgIChp
bml0aWFsaXplX0RlYnVnZ2VyVGVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2xp
bmtpZmllci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVs
Lmh0bWw6CisKKzIwMTItMDUtMTYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5v
cmc+CisKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3BsaXQgU2NyaXB0TWFwcGluZyBpbnRvIFVJ
U291cmNlQ29kZVByb3ZpZGVyIGFuZCBTb3VyY2VNYXBwaW5nLgogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2MTYKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5n
Lmh0bWwKaW5kZXggNTdlM2ViMWI2MzRlZWI2OGUyZGNkZmU4MGFhNGU0YTg5ZTczNGFmMS4uYTk3
NjdmMTRmNzkwZGVjNjg3ZDA4MGE0MWQ3NTkyY2YyOTkyNGYxMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFw
cGluZy5odG1sCkBAIC0xOTMsNyArMTkzLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc291cmNlTWFwc0VuYWJsZWQuc2V0KHRydWUpOwogICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuX3Jlc2V0KCk7CiAgICAgICAgICAg
ICB2YXIgZGVidWdnZXJTY3JpcHRNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNj
cmlwdE1hcHBpbmcoKTsKLSAgICAgICAgICAgIGRlYnVnZ2VyU2NyaXB0TWFwcGluZy5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3Vy
Y2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVkKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJj
ZUNvZGVQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ29tcG9zaXRlVUlTb3VyY2VDb2RlUHJv
dmlkZXIoZGVidWdnZXJTY3JpcHRNYXBwaW5nLnVpU291cmNlQ29kZVByb3ZpZGVycygpKTsKKyAg
ICAgICAgICAgIHVpU291cmNlQ29kZVByb3ZpZGVyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3Vy
Y2VDb2RlQWRkZWQpOwogCiAgICAgICAgICAgICB2YXIgc2NyaXB0ID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVTY3JpcHRNb2NrKCJjb21waWxlZC5qcyIsIDAsIDAsIHRydWUsICIiKTsKICAgICAgICAg
ICAgIHNjcmlwdC5zb3VyY2VNYXBVUkwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZXMvc291cmNlLW1hcC5qc29uXyI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcwppbmRleCBhYzM2MTEyZmFiZWNlZGMxZTIw
MDJjYmQ1MzBlMjM2YTYxNmRmZTAxLi42YWE1NTkzNjBmNTU2Y2QwZDc5MzU0YzVhNGY3NTcyYzM3
MDUzMjY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyLXRlc3QuanMKQEAgLTE1NSw3ICsxNTUsNyBAQCBJbnNwZWN0b3JUZXN0Ll9yZXN1bWVkU2Ny
aXB0ID0gZnVuY3Rpb24oKQogCiBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2VPblNjcmlw
dHNQYW5lbCA9IGZ1bmN0aW9uKHBhbmVsLCBzY3JpcHROYW1lLCBjYWxsYmFjaykKIHsKLSAgICB2
YXIgdWlTb3VyY2VDb2RlcyA9IHBhbmVsLl9zY3JpcHRNYXBwaW5nLnVpU291cmNlQ29kZXMoKTsK
KyAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHBhbmVsLl91aVNvdXJjZUNvZGVQcm92aWRlci51aVNv
dXJjZUNvZGVzKCk7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0
aDsgKytpKSB7CiAgICAgICAgIGlmICh1aVNvdXJjZUNvZGVzW2ldLnBhcnNlZFVSTC5sYXN0UGF0
aENvbXBvbmVudCA9PT0gc2NyaXB0TmFtZSkgewogICAgICAgICAgICAgcGFuZWwuc2hvd1VJU291
cmNlQ29kZSh1aVNvdXJjZUNvZGVzW2ldKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9saW5raWZpZXIuaHRtbAppbmRleCAwYmEyM2M3ZjIxMGMwMzBiZTUxZGQyZDI3ZDZkZDk4
M2Q3MTM2NzA4Li4xYzEwNTNlN2U0ZTVjY2NjYjc4ODQwN2NkN2RjZDg5ODI1NDg2N2FhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci5odG1sCkBAIC0zMyw3
ICszMyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gV2ViSW5zcGVj
dG9yLnBhbmVscy5zY3JpcHRzLl9zY3JpcHRNYXBwaW5nLnVpU291cmNlQ29kZXMoKTsKKyAgICAg
ICAgdmFyIHVpU291cmNlQ29kZXMgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuX3VpU291
cmNlQ29kZVByb3ZpZGVyLnVpU291cmNlQ29kZXMoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICBpZiAodWlTb3Vy
Y2VDb2Rlc1tpXS51cmwgPT09IFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMKSB7CiAgICAg
ICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2Rlc1tpXTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4IDQyNTc4
MzcwMjNmNzFkYTBhNTBhOGMyMGNhMjM5YzkyNjJjY2RjY2UuLjA5ZDlhZGM0MWQwYzhmYTdmMWFl
ZmJkMjljYzA5ZjNhOWY4MjdkNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbApAQCAtMTgsMzIgKzE4LDI5IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICBzZXQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnRzKSB7IHBlcnNpc3RlbnRCcmVh
a3BvaW50cyA9IGJyZWFrcG9pbnRzOyB9CiAgICAgfTsKIAotICAgIGZ1bmN0aW9uIGNyZWF0ZURl
YnVnZ2VyU2NyaXB0TWFwcGluZ01vY2soKQorICAgIGZ1bmN0aW9uIGNyZWF0ZVVJU291cmNlQ29k
ZVByb3ZpZGVyTW9jaygpCiAgICAgewotICAgICAgICB2YXIgbW9kZWwgPSBuZXcgV2ViSW5zcGVj
dG9yLk9iamVjdCgpOwotICAgICAgICBtb2RlbC5icmVha3BvaW50c0ZvclVJU291cmNlQ29kZSA9
IGZ1bmN0aW9uKCkgeyByZXR1cm4gW107IH07Ci0gICAgICAgIG1vZGVsLm1lc3NhZ2VzRm9yVUlT
b3VyY2VDb2RlID0gZnVuY3Rpb24oKSB7IHJldHVybiBbXTsgfTsKLSAgICAgICAgbW9kZWwuY2Fu
RWRpdFNjcmlwdFNvdXJjZSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfTsKKyAgICAgICAg
dmFyIHByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3QoKTsKICAgICAgICAgdWlTb3Vy
Y2VDb2RlcyA9IFtdOwotICAgICAgICBtb2RlbC51aVNvdXJjZUNvZGVzID0gZnVuY3Rpb24oKSB7
IHJldHVybiB1aVNvdXJjZUNvZGVzLnNsaWNlKCk7IH07Ci0gICAgICAgIG1vZGVsLl9hZGRVSVNv
dXJjZUNvZGUgPSBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCisgICAgICAgIHByb3ZpZGVyLnVpU291
cmNlQ29kZXMgPSBmdW5jdGlvbigpIHsgcmV0dXJuIHVpU291cmNlQ29kZXMuc2xpY2UoKTsgfTsK
KyAgICAgICAgcHJvdmlkZXIuX2FkZFVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHVpU291cmNlQ29k
ZSkKICAgICAgICAgewogICAgICAgICAgICAgdWlTb3VyY2VDb2Rlcy5wdXNoKHVpU291cmNlQ29k
ZSk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJj
ZUNvZGUpOwogICAgICAgICB9Ci0gICAgICAgIG1vZGVsLl9yZXNldCA9IGZ1bmN0aW9uKHByZXNl
cnZlZEl0ZW1zKQorICAgICAgICBwcm92aWRlci5fcmVzZXQgPSBmdW5jdGlvbihwcmVzZXJ2ZWRJ
dGVtcykKICAgICAgICAgewogICAgICAgICAgICAgdWlTb3VyY2VDb2RlcyA9IHByZXNlcnZlZEl0
ZW1zIHx8IFtdOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9i
YWxPYmplY3RDbGVhcmVkKTsKICAgICAgICAgfQotICAgICAgICBtb2RlbC5fcmVwbGFjZVVJU291
cmNlQ29kZSA9IGZ1bmN0aW9uKG9sZFVJU291cmNlQ29kZSwgdWlTb3VyY2VDb2RlKQorICAgICAg
ICBwcm92aWRlci5fcmVwbGFjZVVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKG9sZFVJU291cmNlQ29k
ZSwgdWlTb3VyY2VDb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGVzLnJl
bW92ZShvbGRVSVNvdXJjZUNvZGUpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2Rlcy5wdXNoKHVp
U291cmNlQ29kZSk7CiAgICAgICAgICAgICB2YXIgZGF0YSA9IHsgb2xkVUlTb3VyY2VDb2RlOiBv
bGRVSVNvdXJjZUNvZGUsIHVpU291cmNlQ29kZTogdWlTb3VyY2VDb2RlIH07CiAgICAgICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
UHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCBkYXRhKTsKICAgICAgICAgfQot
ICAgICAgICByZXR1cm4gbW9kZWw7CisgICAgICAgIHJldHVybiBwcm92aWRlcjsKICAgICB9CiAg
ICAgZnVuY3Rpb24gY3JlYXRlVUlTb3VjZUNvZGUodXJsKQogICAgIHsKQEAgLTYwLDIwICs1Nywy
MCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCiAg
ICAgICAgIGZ1bmN0aW9uIHRlc3RJbml0aWFsTG9hZChuZXh0KQogICAgICAgICB7Ci0gICAgICAg
ICAgICB2YXIgbWFwcGluZyA9IGNyZWF0ZURlYnVnZ2VyU2NyaXB0TWFwcGluZ01vY2soKTsKKyAg
ICAgICAgICAgIHZhciBwcm92aWRlciA9IGNyZWF0ZVVJU291cmNlQ29kZVByb3ZpZGVyTW9jaygp
OwogICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IGNyZWF0ZVVJU291Y2VDb2RlKCJmb29i
YXIuanMiKTsKICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVGb28gPSBjcmVhdGVVSVNvdWNl
Q29kZSgiZm9vLmpzIik7CiAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlQmFyID0gY3JlYXRl
VUlTb3VjZUNvZGUoImJhci5qcyIpOwogICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZUJheiA9
IGNyZWF0ZVVJU291Y2VDb2RlKCJiYXouanMiKTsKIAotICAgICAgICAgICAgbWFwcGluZy5fYWRk
VUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgICAgICBwcm92aWRlci5fYWRkVUlT
b3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CiAKLSAgICAgICAgICAgIHZhciBwYW5lbCA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKG1hcHBpbmcpOworICAgICAgICAgICAgdmFyIHBhbmVs
ID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwocHJvdmlkZXIpOwogICAgICAgICAgICAg
cGFuZWwuc2hvdygpOwogCi0gICAgICAgICAgICBtYXBwaW5nLl9hZGRVSVNvdXJjZUNvZGUodWlT
b3VyY2VDb2RlRm9vKTsKLSAgICAgICAgICAgIG1hcHBpbmcuX2FkZFVJU291cmNlQ29kZSh1aVNv
dXJjZUNvZGVCYXIpOwotICAgICAgICAgICAgbWFwcGluZy5fYWRkVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZUJheik7CisgICAgICAgICAgICBwcm92aWRlci5fYWRkVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZUZvbyk7CisgICAgICAgICAgICBwcm92aWRlci5fYWRkVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZUJhcik7CisgICAgICAgICAgICBwcm92aWRlci5fYWRkVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZUJheik7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZp
Z2F0b3IocGFuZWwuX25hdmlnYXRvcik7CiAKQEAgLTg2LDIxICs4MywyMSBAQCBmdW5jdGlvbiB0
ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0UmVzZXQobmV4dCkKICAgICAgICAgewotICAg
ICAgICAgICAgdmFyIG1hcHBpbmcgPSBjcmVhdGVEZWJ1Z2dlclNjcmlwdE1hcHBpbmdNb2NrKCk7
Ci0gICAgICAgICAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCht
YXBwaW5nKTsKKyAgICAgICAgICAgIHZhciBwcm92aWRlciA9IGNyZWF0ZVVJU291cmNlQ29kZVBy
b3ZpZGVyTW9jaygpOworICAgICAgICAgICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwocHJvdmlkZXIpOwogICAgICAgICAgICAgcGFuZWwuc2hvdygpOwogCiAgICAg
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlRm9vID0gY3JlYXRlVUlTb3VjZUNvZGUoImZvby5qcyIp
OwogICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZUJhciA9IGNyZWF0ZVVJU291Y2VDb2RlKCJi
YXIuanMiKTsKICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVCYXogPSBjcmVhdGVVSVNvdWNl
Q29kZSgiYmF6LmpzIik7CiAKLSAgICAgICAgICAgIG1hcHBpbmcuX2FkZFVJU291cmNlQ29kZSh1
aVNvdXJjZUNvZGVGb28pOwotICAgICAgICAgICAgbWFwcGluZy5fYWRkVUlTb3VyY2VDb2RlKHVp
U291cmNlQ29kZUJhcik7Ci0gICAgICAgICAgICBtYXBwaW5nLl9hZGRVSVNvdXJjZUNvZGUodWlT
b3VyY2VDb2RlQmF6KTsKKyAgICAgICAgICAgIHByb3ZpZGVyLl9hZGRVSVNvdXJjZUNvZGUodWlT
b3VyY2VDb2RlRm9vKTsKKyAgICAgICAgICAgIHByb3ZpZGVyLl9hZGRVSVNvdXJjZUNvZGUodWlT
b3VyY2VDb2RlQmFyKTsKKyAgICAgICAgICAgIHByb3ZpZGVyLl9hZGRVSVNvdXJjZUNvZGUodWlT
b3VyY2VDb2RlQmF6KTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05h
dmlnYXRvcihwYW5lbC5fbmF2aWdhdG9yKTsKIAotICAgICAgICAgICAgbWFwcGluZy5fcmVzZXQo
W3VpU291cmNlQ29kZUJhcl0pOworICAgICAgICAgICAgcHJvdmlkZXIuX3Jlc2V0KFt1aVNvdXJj
ZUNvZGVCYXJdKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0
b3IocGFuZWwuX25hdmlnYXRvcik7CiAKICAgICAgICAgICAgIHBhbmVsLmRldGFjaCgpOwpAQCAt
MTA5LDIwICsxMDYsMjAgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVz
dFNvdXJjZVJlcGxhY2VkKG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBtYXBwaW5n
ID0gY3JlYXRlRGVidWdnZXJTY3JpcHRNYXBwaW5nTW9jaygpOwotICAgICAgICAgICAgdmFyIHBh
bmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwobWFwcGluZyk7CisgICAgICAgICAg
ICB2YXIgcHJvdmlkZXIgPSBjcmVhdGVVSVNvdXJjZUNvZGVQcm92aWRlck1vY2soKTsKKyAgICAg
ICAgICAgIHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKHByb3ZpZGVy
KTsKICAgICAgICAgICAgIHBhbmVsLnNob3coKTsKIAogICAgICAgICAgICAgdmFyIHVpU291cmNl
Q29kZUZvbyA9IGNyZWF0ZVVJU291Y2VDb2RlKCJmb28uanMiKTsKLSAgICAgICAgICAgIG1hcHBp
bmcuX2FkZFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVGb28pOworICAgICAgICAgICAgcHJvdmlk
ZXIuX2FkZFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVGb28pOwogICAgICAgICAgICAgdmFyIGNv
bXBpbGVkU291cmNlQ29kZSA9IGNyZWF0ZVVJU291Y2VDb2RlKCJjb21waWxlZC5qcyIpOwotICAg
ICAgICAgICAgbWFwcGluZy5fYWRkVUlTb3VyY2VDb2RlKGNvbXBpbGVkU291cmNlQ29kZSk7Cisg
ICAgICAgICAgICBwcm92aWRlci5fYWRkVUlTb3VyY2VDb2RlKGNvbXBpbGVkU291cmNlQ29kZSk7
CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwu
X25hdmlnYXRvcik7CiAKICAgICAgICAgICAgIC8vIFBsdWcgY29tcGlsZXIgc291cmNlIG1hcHBp
bmcuCiAgICAgICAgICAgICB2YXIgc291cmNlU291cmNlQ29kZSA9IGNyZWF0ZVVJU291Y2VDb2Rl
KCJzb3VyY2UuanMiKTsKLSAgICAgICAgICAgIG1hcHBpbmcuX3JlcGxhY2VVSVNvdXJjZUNvZGUo
Y29tcGlsZWRTb3VyY2VDb2RlLCBzb3VyY2VTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIHByb3Zp
ZGVyLl9yZXBsYWNlVUlTb3VyY2VDb2RlKGNvbXBpbGVkU291cmNlQ29kZSwgc291cmNlU291cmNl
Q29kZSk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3Io
cGFuZWwuX25hdmlnYXRvcik7CiAgICAgICAgICAgICBuZXh0KCk7Cg==
</data>
<flag name="review"
          id="148553"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>