<?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>84722</bug_id>
          
          <creation_ts>2012-04-24 07:21:22 -0700</creation_ts>
          <short_desc>Web Inspector: encapsulate live location into the Script.</short_desc>
          <delta_ts>2012-04-25 08:37:41 -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>
          <dependson>84866</dependson>
          
          <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>608636</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-24 07:21:22 -0700</bug_when>
    <thetext>Live location is just a location on the script. The way it is implemented today involves too many indirections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608643</commentid>
    <comment_count>1</comment_count>
      <attachid>138556</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-24 07:30:58 -0700</bug_when>
    <thetext>Created attachment 138556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608719</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-24 08:46:57 -0700</bug_when>
    <thetext>Committed r115064: &lt;http://trac.webkit.org/changeset/115064&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138556</attachid>
            <date>2012-04-24 07:30:58 -0700</date>
            <delta_ts>2012-04-24 08:33:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84722-20120424183056.patch</filename>
            <type>text/plain</type>
            <size>26756</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI5OTRkOTkzZTZmM2Q4
ZGFhNTU5Y2RiNjZlMTlkMTlkYTNlYWRhNS4uMTU0ODZmNDA4NzczZTQ2ZjU0YTdmNmZiM2I5Y2M0
MjU2NDQwNDFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA0LTI0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGVuY2Fwc3VsYXRlIGxpdmUgbG9jYXRpb24gaW50byB0aGUgU2NyaXB0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ3MjIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMaXZlIGxvY2F0aW9uIGlzIGp1
c3QgYSBsb2NhdGlvbiBvbiB0aGUgc2NyaXB0LiBUaGUgd2F5IGl0IGlzIGltcGxlbWVudGVkIHRv
ZGF5IGludm9sdmVzIHRvbyBtYW55IGluZGlyZWN0aW9ucy4KKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50QnlTY3JpcHRMb2NhdGlvbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuc2NyaXB0Rm9ySWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3Rv
dHlwZS5jcmVhdGVMaXZlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9hZGRDb25zb2xlTWVzc2FnZVRvU2NyaXB0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlw
ZS5fZGVidWdnZXJQYXVzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLnNldCBzZWxlY3RlZENhbGxGcmFtZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZS51aUxvY2F0aW9uKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkNhbGxGcmFt
ZVBsYWNhcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwuTGlua2lmaWVyLnByb3RvdHlwZS5saW5raWZ5UmF3TG9jYXRpb24pOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlLmFkZFNjcmlwdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fdWlTb3VyY2VDb2Rl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnBy
b3RvdHlwZS5fYmluZFNjcmlwdFRvUmF3U291cmNlQ29kZSk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBlLmlzSW5saW5lU2NyaXB0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBlLnNldFNvdXJjZU1hcHBpbmcpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5cGUuY3JlYXRlTG9jYXRpb24pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdC5Mb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2NyaXB0LkxvY2F0aW9uLnByb3RvdHlwZS5kaXNwb3NlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHQuTG9jYXRpb24ucHJvdG90eXBlLl91cGRhdGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5VSUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5yYXdMb2NhdGlvblRv
VUlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZy5wcm90b3R5
cGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1haW5T
Y3JpcHRNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFwcGluZy5w
cm90b3R5cGUuYWRkU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU25p
cHBldHNNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBp
bmcucHJvdG90eXBlLl9jcmVhdGVVSVNvdXJjZUNvZGVGb3JTY3JpcHQpOgorCiAyMDEyLTA0LTI0
ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBNZXJnZSBMb2Nh
bGl6ZWRDYWxlbmRhciBpbnRvIExvY2FsaXplZERhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKaW5k
ZXggZDhkMjkyZDg5M2E3MjU3OThhNzQ3Y2RkYmUwYzNkMTVmMGViNjY4My4uYTY5NWFhNGZkMWFm
Mjk5YzViMDg0OTlkOGQ5MjZiZTIwZWFlNTkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKQEAg
LTEwMCw4ICsxMDAsNyBAQCBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMuX3NjcmlwdEZvclNvdXJjZU1hcC5nZXQoc291cmNl
TWFwKSkgewogICAgICAgICAgICAgdGhpcy5fc291cmNlTWFwRm9yU2NyaXB0SWRbc2NyaXB0LnNj
cmlwdElkXSA9IHNvdXJjZU1hcDsKICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gdGhp
cy5fdWlTb3VyY2VDb2Rlc0ZvclNvdXJjZU1hcChzb3VyY2VNYXApOwotICAgICAgICAgICAgdmFy
IGRhdGEgPSB7IHNjcmlwdElkOiBzY3JpcHQuc2NyaXB0SWQsIHVpU291cmNlQ29kZXM6IHVpU291
cmNlQ29kZXMgfTsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5TY3JpcHRCb3VuZCwgZGF0YSk7CisgICAg
ICAgICAgICBzY3JpcHQuc2V0U291cmNlTWFwcGluZyh0aGlzKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC0xMjksOCArMTI4LDcgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVy
U2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3NjcmlwdEZvclNvdXJj
ZU1hcC5wdXQoc291cmNlTWFwLCBzY3JpcHQpOwogICAgICAgICB2YXIgZGF0YSA9IHsgcmVtb3Zl
ZEl0ZW1zOiBbXSwgYWRkZWRJdGVtczogdWlTb3VyY2VDb2RlTGlzdCB9OwogICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZy5FdmVu
dHMuVUlTb3VyY2VDb2RlTGlzdENoYW5nZWQsIGRhdGEpOwotICAgICAgICBkYXRhID0geyBzY3Jp
cHRJZDogc2NyaXB0LnNjcmlwdElkLCB1aVNvdXJjZUNvZGVzOiB1aVNvdXJjZUNvZGVMaXN0IH07
Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3Jp
cHRNYXBwaW5nLkV2ZW50cy5TY3JpcHRCb3VuZCwgZGF0YSk7CisgICAgICAgIHNjcmlwdC5zZXRT
b3VyY2VNYXBwaW5nKHRoaXMpOwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCA4NGQ5NmM4
MzI2ZGExNTA1OGVkMzI0ZGQxMWNkYmNjMmM0NzA3YzBjLi4zNGYxNjAxNTA4ZjE3YjQzMDYwN2Rh
YjhkNWQyYWM3ZWEzYzljMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCkBAIC0xMzksNyArMTM5LDcgQEAgV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHNldEJyZWFrcG9p
bnRCeVNjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihsb2NhdGlvbiwgY29uZGl0aW9uLCBjYWxsYmFj
aykKICAgICB7Ci0gICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLnNjcmlwdEZvclNvdXJjZUlEKGxv
Y2F0aW9uLnNjcmlwdElkKTsKKyAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuc2NyaXB0Rm9ySWQo
bG9jYXRpb24uc2NyaXB0SWQpOwogICAgICAgICBpZiAoc2NyaXB0LnNvdXJjZVVSTCkKICAgICAg
ICAgICAgIHRoaXMuc2V0QnJlYWtwb2ludChzY3JpcHQuc291cmNlVVJMLCBsb2NhdGlvbi5saW5l
TnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgY2FsbGJhY2spOwogICAg
ICAgICBlbHNlCkBAIC0yMzgsNyArMjM4LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
cHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7RGVidWdnZXJBZ2VudC5TY3JpcHRJZH0gc2Ny
aXB0SWQKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuU2NyaXB0fQogICAgICAqLwotICAg
IHNjcmlwdEZvclNvdXJjZUlEOiBmdW5jdGlvbihzY3JpcHRJZCkKKyAgICBzY3JpcHRGb3JJZDog
ZnVuY3Rpb24oc2NyaXB0SWQpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0c1tz
Y3JpcHRJZF0gfHwgbnVsbDsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmlu
ZGV4IDc1NDI1ZDkzNTNlNmFkODFhZTA0MmZmM2ZiMzZmMjQwNjRlZjVhMDAuLjI2NjBjMTBkMGQ4
YTNjN2JiODVkZjU1MTVkMTE3ZTQ0MGRhZjg0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwuanMKQEAgLTExNSwxMiArMTE1LDEzIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7RGVidWdn
ZXJBZ2VudC5Mb2NhdGlvbn0gcmF3TG9jYXRpb24KLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdl
Ykluc3BlY3Rvci5VSUxvY2F0aW9uKX0gdXBkYXRlRGVsZWdhdGUKLSAgICAgKiBAcmV0dXJuIHtX
ZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9ufQorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5z
cGVjdG9yLlVJTG9jYXRpb24pOihib29sZWFufHVuZGVmaW5lZCl9IHVwZGF0ZURlbGVnYXRlCisg
ICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlNjcmlwdC5Mb2NhdGlvbn0KICAgICAgKi8KICAg
ICBjcmVhdGVMaXZlTG9jYXRpb246IGZ1bmN0aW9uKHJhd0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRNYXBwaW5nLmNyZWF0ZUxpdmVM
b2NhdGlvbihyYXdMb2NhdGlvbiwgdXBkYXRlRGVsZWdhdGUpOworICAgICAgICB2YXIgc2NyaXB0
ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQocmF3TG9jYXRpb24uc2Ny
aXB0SWQpOworICAgICAgICByZXR1cm4gc2NyaXB0LmNyZWF0ZUxvY2F0aW9uKHJhd0xvY2F0aW9u
LCB1cGRhdGVEZWxlZ2F0ZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTkxLDcgKzE5Miw3IEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAg
ICBzZXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbmV3U291cmNlLCBjYWxs
YmFjaykKICAgICB7CiAgICAgICAgIHZhciByYXdMb2NhdGlvbiA9IHRoaXMudWlMb2NhdGlvblRv
UmF3TG9jYXRpb24odWlTb3VyY2VDb2RlLCAwLCAwKTsKLSAgICAgICAgdmFyIHNjcmlwdCA9IFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKHJhd0xvY2F0aW9uLnNj
cmlwdElkKTsKKyAgICAgICAgdmFyIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVs
LnNjcmlwdEZvcklkKHJhd0xvY2F0aW9uLnNjcmlwdElkKTsKIAogICAgICAgICAvKioKICAgICAg
ICAgICogQHRoaXMge1dlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsfQpAQCAt
MjUyLDcgKzI1Myw2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIHVpTG9jYXRpb24udWlTb3VyY2VDb2RlLmNvbnNvbGVN
ZXNzYWdlQWRkZWQocHJlc2VudGF0aW9uTWVzc2FnZSk7CiAgICAgICAgIH0KICAgICAgICAgdmFy
IGxpdmVMb2NhdGlvbiA9IHRoaXMuY3JlYXRlTGl2ZUxvY2F0aW9uKHJhd0xvY2F0aW9uLCB1cGRh
dGVMb2NhdGlvbi5iaW5kKHRoaXMpKTsKLSAgICAgICAgbGl2ZUxvY2F0aW9uLmluaXQoKTsKICAg
ICAgICAgdGhpcy5fY29uc29sZU1lc3NhZ2VMaXZlTG9jYXRpb25zLnB1c2gobGl2ZUxvY2F0aW9u
KTsKICAgICB9LAogCkBAIC0zMjMsNyArMzIzLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25D
YWxsRnJhbWVzID0gW107CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbEZyYW1lcy5s
ZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07
Ci0gICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291
cmNlSUQoY2FsbEZyYW1lLmxvY2F0aW9uLnNjcmlwdElkKSkKKyAgICAgICAgICAgIGlmIChXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JJZChjYWxsRnJhbWUubG9jYXRpb24uc2Ny
aXB0SWQpKQogICAgICAgICAgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbkNhbGxGcmFtZXMucHVz
aChuZXcgV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlvbkNhbGxGcmFtZShjYWxsRnJhbWUsIGksIHRo
aXMpKTsKICAgICAgICAgfQogICAgICAgICB2YXIgZGV0YWlscyA9IFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1vZGVsLmRlYnVnZ2VyUGF1c2VkRGV0YWlscygpOwpAQCAtMzU2LDcgKzM1Niw2IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5FeGVjdXRpb25MaW5lQ2hhbmdlZCwgdWlMb2NhdGlv
bik7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fZXhlY3V0aW9uTGluZUxpdmVMb2NhdGlvbiA9
IHRoaXMuY3JlYXRlTGl2ZUxvY2F0aW9uKGNhbGxGcmFtZS5fY2FsbEZyYW1lLmxvY2F0aW9uLCB1
cGRhdGVFeGVjdXRpb25MaW5lLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9leGVjdXRpb25M
aW5lTGl2ZUxvY2F0aW9uLmluaXQoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC01NTMsMTAgKzU1
Miw5IEBAIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJhbWUucHJvdG90eXBlID0gewog
ICAgICAgICBmdW5jdGlvbiBsb2NhdGlvblVwZGF0ZWQodWlMb2NhdGlvbikKICAgICAgICAgewog
ICAgICAgICAgICAgY2FsbGJhY2sodWlMb2NhdGlvbik7Ci0gICAgICAgICAgICBsaXZlTG9jYXRp
b24uZGlzcG9zZSgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KLSAgICAg
ICAgdmFyIGxpdmVMb2NhdGlvbiA9IHRoaXMuX21vZGVsLmNyZWF0ZUxpdmVMb2NhdGlvbih0aGlz
Ll9jYWxsRnJhbWUubG9jYXRpb24sIGxvY2F0aW9uVXBkYXRlZC5iaW5kKHRoaXMpKTsKLSAgICAg
ICAgbGl2ZUxvY2F0aW9uLmluaXQoKTsKKyAgICAgICAgdGhpcy5fbW9kZWwuY3JlYXRlTGl2ZUxv
Y2F0aW9uKHRoaXMuX2NhbGxGcmFtZS5sb2NhdGlvbiwgbG9jYXRpb25VcGRhdGVkLmJpbmQodGhp
cykpOwogICAgIH0KIH0KIApAQCAtNTcwLDcgKzU2OCw2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLkNhbGxGcmFtZVBsYWNhcmQgPSBmdW5jdGlvbihjYWxsRnJhbWUs
IG1vCiB7CiAgICAgV2ViSW5zcGVjdG9yLlBsYWNhcmQuY2FsbCh0aGlzLCBjYWxsRnJhbWUuX2Nh
bGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIoYW5vbnltb3Vz
IGZ1bmN0aW9uKSIpLCAiIik7CiAgICAgdGhpcy5fbGl2ZUxvY2F0aW9uID0gbW9kZWwuY3JlYXRl
TGl2ZUxvY2F0aW9uKGNhbGxGcmFtZS5fY2FsbEZyYW1lLmxvY2F0aW9uLCB0aGlzLl91cGRhdGUu
YmluZCh0aGlzKSk7Ci0gICAgdGhpcy5fbGl2ZUxvY2F0aW9uLmluaXQoKTsKIH0KIAogV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuQ2FsbEZyYW1lUGxhY2FyZC5wcm90b3R5
cGUgPSB7CkBAIC03NDUsMTEgKzc0MiwxMCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5MaW5raWZpZXIucHJvdG90eXBlID0gewogICAgICAqLwogICAgIGxpbmtpZnlS
YXdMb2NhdGlvbjogZnVuY3Rpb24ocmF3TG9jYXRpb24sIGNsYXNzZXMpCiAgICAgewotICAgICAg
ICBpZiAoIVdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKHJhd0xv
Y2F0aW9uLnNjcmlwdElkKSkKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2Rl
bC5zY3JpcHRGb3JJZChyYXdMb2NhdGlvbi5zY3JpcHRJZCkpCiAgICAgICAgICAgICByZXR1cm4g
bnVsbDsKICAgICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2Rl
KCIiLCAiIiwgY2xhc3NlcywgZmFsc2UpOwogICAgICAgICB2YXIgbGl2ZUxvY2F0aW9uID0gdGhp
cy5fbW9kZWwuY3JlYXRlTGl2ZUxvY2F0aW9uKHJhd0xvY2F0aW9uLCB0aGlzLl91cGRhdGVBbmNo
b3IuYmluZCh0aGlzLCBhbmNob3IpKTsKLSAgICAgICAgbGl2ZUxvY2F0aW9uLmluaXQoKTsKICAg
ICAgICAgdGhpcy5fbGl2ZUxvY2F0aW9ucy5wdXNoKGxpdmVMb2NhdGlvbik7CiAgICAgICAgIHJl
dHVybiBhbmNob3I7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmF3U291cmNlQ29kZS5qcwppbmRleCA0M2YwZTIwY2MzMDg3OGY4ZDliZTM3NTJh
OTYyNzQ3Y2I2YWJmZjVhLi42M2Y3YzkxYzQ2OTdiN2ZiNTIzOTJmMTUxNTY5ZDkzY2Q5ODFhODIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJj
ZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SYXdTb3Vy
Y2VDb2RlLmpzCkBAIC0yMzksNiArMjM5LDcgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUu
cHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwogCiAv
KioKICAqIEBpbnRlcmZhY2UKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwcGlu
Z30KICAqLwogV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuU291cmNlTWFwcGluZyA9IGZ1bmN0
aW9uKCkKIHsKQEAgLTI0NiwyMCArMjQ3LDYgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUu
U291cmNlTWFwcGluZyA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUu
U291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtEZWJ1
Z2dlckFnZW50LkxvY2F0aW9ufSByYXdMb2NhdGlvbgotICAgICAqIEByZXR1cm4ge1dlYkluc3Bl
Y3Rvci5VSUxvY2F0aW9ufQotICAgICAqLwotICAgIHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uOiBm
dW5jdGlvbihyYXdMb2NhdGlvbikgeyB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKLSAgICAgKiBAcGFyYW0ge251bWJl
cn0gbGluZU51bWJlcgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb2x1bW5OdW1iZXIKLSAgICAg
KiBAcmV0dXJuIHtEZWJ1Z2dlckFnZW50LkxvY2F0aW9ufQotICAgICAqLwotICAgIHVpTG9jYXRp
b25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlcikgeyB9LAotCi0gICAgLyoqCiAgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZX0KICAgICAgKi8KICAgICB1aVNvdXJjZUNvZGU6IGZ1bmN0aW9uKCkgeyB9CkBA
IC0zNTMsMTYgKzM0MCwzIEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkZvcm1hdHRlZFNv
dXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fdWlTb3VyY2VD
b2RlOwogICAgIH0KIH0KLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCi0gKiBAcGFyYW0ge251bWJlcn0gbGlu
ZU51bWJlcgotICogQHBhcmFtIHtudW1iZXJ9IGNvbHVtbk51bWJlcgotICovCi1XZWJJbnNwZWN0
b3IuVUlMb2NhdGlvbiA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgY29sdW1u
TnVtYmVyKQotewotICAgIHRoaXMudWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwotICAgIHRo
aXMubGluZU51bWJlciA9IGxpbmVOdW1iZXI7Ci0gICAgdGhpcy5jb2x1bW5OdW1iZXIgPSBjb2x1
bW5OdW1iZXI7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCmluZGV4IGJkZjM4ZWZlOWUyOGI2YTZm
YTEzOTc3NmVjNmVjZGVkYWVjN2NjYjQuLjIwYjkxZmUwODgzNWI2NTQxMmVhMTk0NjMyOWU4MTBm
NjMwNTQ4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCkBAIC0xMTcsNyArMTE3LDYgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZh
ciByYXdTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKHNjcmlwdC5z
Y3JpcHRJZCwgc2NyaXB0LCByZXNvdXJjZSwgcmVxdWVzdCwgdGhpcy5fZm9ybWF0dGVyLCB0aGlz
Ll9mb3JtYXRTb3VyY2UpOwogICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2Rlcy5wdXNoKHJhd1Nv
dXJjZUNvZGUpOwogICAgICAgICB0aGlzLl9iaW5kU2NyaXB0VG9SYXdTb3VyY2VDb2RlKHNjcmlw
dCwgcmF3U291cmNlQ29kZSk7Ci0KICAgICAgICAgaWYgKGlzSW5saW5lU2NyaXB0KQogICAgICAg
ICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvckRvY3VtZW50VVJMW3NjcmlwdC5zb3VyY2VVUkxd
ID0gcmF3U291cmNlQ29kZTsKIApAQCAtMTQ5LDI3ICsxNDgsMTUgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9yYXdT
b3VyY2VDb2RlRm9yVUlTb3VyY2VDb2RlLnB1dChhZGRlZEl0ZW0sIHJhd1NvdXJjZUNvZGUpOwog
CiAgICAgICAgIHZhciBzY3JpcHRJZHMgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByYXdTb3VyY2VDb2RlLl9zY3JpcHRzLmxlbmd0aDsgKytpKQorICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHJhd1NvdXJjZUNvZGUuX3NjcmlwdHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAg
ICAgIHNjcmlwdElkcy5wdXNoKHJhd1NvdXJjZUNvZGUuX3NjcmlwdHNbaV0uc2NyaXB0SWQpOwor
ICAgICAgICAgICAgcmF3U291cmNlQ29kZS5fc2NyaXB0c1tpXS5zZXRTb3VyY2VNYXBwaW5nKHRo
aXMpOworICAgICAgICB9CiAgICAgICAgIHZhciByZW1vdmVkSXRlbXMgPSByZW1vdmVkSXRlbSA/
IFtyZW1vdmVkSXRlbV0gOiBbXTsKICAgICAgICAgdmFyIGFkZGVkSXRlbXMgPSBhZGRlZEl0ZW0g
PyBbYWRkZWRJdGVtXSA6IFtdOwogCi0gICAgICAgIGlmIChyZW1vdmVkSXRlbSkgewotICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRJZHMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgZGF0YSA9IHsgc2NyaXB0SWQ6IHNjcmlwdElkc1tpXSwgdWlTb3VyY2VD
b2RlczogW3JlbW92ZWRJdGVtXSB9OwotICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5TY3JpcHRVbmJv
dW5kLCBkYXRhKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCiAgICAgICAgIHZhciBkYXRh
ID0geyByZW1vdmVkSXRlbXM6IHJlbW92ZWRJdGVtcywgYWRkZWRJdGVtczogYWRkZWRJdGVtcyB9
OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU2Ny
aXB0TWFwcGluZy5FdmVudHMuVUlTb3VyY2VDb2RlTGlzdENoYW5nZWQsIGRhdGEpOwotCi0gICAg
ICAgIGlmIChhZGRlZEl0ZW0pIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2Ny
aXB0SWRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgZGF0YSA9IHsgc2NyaXB0SWQ6
IHNjcmlwdElkc1tpXSwgdWlTb3VyY2VDb2RlczogW2FkZGVkSXRlbV0gfTsKLSAgICAgICAgICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU2NyaXB0TWFw
cGluZy5FdmVudHMuU2NyaXB0Qm91bmQsIGRhdGEpOwotICAgICAgICAgICAgfQotICAgICAgICB9
CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTgwLDYgKzE2Nyw3IEBAIFdlYkluc3BlY3Rvci5SZXNv
dXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdGhpcy5fcmF3
U291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF0gPSByYXdTb3VyY2VDb2RlOwog
ICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yVVJMW3NjcmlwdC5zb3VyY2VVUkxdID0gcmF3
U291cmNlQ29kZTsKKyAgICAgICAgc2NyaXB0LnNldFNvdXJjZU1hcHBpbmcodGhpcyk7CiAgICAg
fSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dC5qcwppbmRleCBkYTE0MWU1MmRiMmQzNjEzZjE4NDI0N2Y1ZDhmNzExNGFhN2IzN2U5Li40Yzlm
MjdhYmIwMmI2M2I2MDBmMzA4MDI0ZTU0ZmNiNGNiNTZiYTJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwpAQCAtNDQsNiArNDQsNyBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0ID0gZnVuY3Rpb24oc2NyaXB0SWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBz
dGFydENvbHVtbiwgZW5kTAogICAgIHRoaXMuZW5kQ29sdW1uID0gZW5kQ29sdW1uOwogICAgIHRo
aXMuaXNDb250ZW50U2NyaXB0ID0gaXNDb250ZW50U2NyaXB0OwogICAgIHRoaXMuc291cmNlTWFw
VVJMID0gc291cmNlTWFwVVJMOworICAgIHRoaXMuX2xvY2F0aW9ucyA9IFtdOwogfQogCiBXZWJJ
bnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKQEAgLTEzNyw1ICsxMzgsNjEgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgaXNJbmxpbmVTY3JpcHQ6IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIHJldHVybiAhIXRoaXMuc291cmNlVVJMICYmIHRoaXMubGluZU9m
ZnNldCAhPT0gMCAmJiB0aGlzLmNvbHVtbk9mZnNldCAhPT0gMDsKKyAgICB9LAorCisgICAgCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZ30gc291cmNl
TWFwcGluZworICAgICAqLworICAgIHNldFNvdXJjZU1hcHBpbmc6IGZ1bmN0aW9uKHNvdXJjZU1h
cHBpbmcpCisgICAgeworICAgICAgICB0aGlzLl9zb3VyY2VNYXBwaW5nID0gc291cmNlTWFwcGlu
ZzsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9sb2NhdGlvbnMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICB0aGlzLl9sb2NhdGlvbnNbaV0uX3VwZGF0ZSgpOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259IHJhd0xvY2F0
aW9uCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbik6KGJv
b2xlYW58dW5kZWZpbmVkKX0gdXBkYXRlRGVsZWdhdGUKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNw
ZWN0b3IuU2NyaXB0LkxvY2F0aW9ufQorICAgICAqLworICAgIGNyZWF0ZUxvY2F0aW9uOiBmdW5j
dGlvbihyYXdMb2NhdGlvbiwgdXBkYXRlRGVsZWdhdGUpCisgICAgeworICAgICAgICB2YXIgbG9j
YXRpb24gPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdC5Mb2NhdGlvbih0aGlzLCByYXdMb2NhdGlv
biwgdXBkYXRlRGVsZWdhdGUpOworICAgICAgICB0aGlzLl9sb2NhdGlvbnMucHVzaChsb2NhdGlv
bik7CisgICAgICAgIGxvY2F0aW9uLl91cGRhdGUoKTsKKyAgICAgICAgcmV0dXJuIGxvY2F0aW9u
OworICAgIH0KK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlNjcmlwdH0gc2NyaXB0CisgKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259IHJh
d0xvY2F0aW9uCisgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKToo
Ym9vbGVhbnx1bmRlZmluZWQpfSB1cGRhdGVEZWxlZ2F0ZQorICovCitXZWJJbnNwZWN0b3IuU2Ny
aXB0LkxvY2F0aW9uID0gZnVuY3Rpb24oc2NyaXB0LCByYXdMb2NhdGlvbiwgdXBkYXRlRGVsZWdh
dGUpCit7CisgICAgdGhpcy5fc2NyaXB0ID0gc2NyaXB0OworICAgIHRoaXMuX3Jhd0xvY2F0aW9u
ID0gcmF3TG9jYXRpb247CisgICAgdGhpcy5fdXBkYXRlRGVsZWdhdGUgPSB1cGRhdGVEZWxlZ2F0
ZTsKK30KKworV2ViSW5zcGVjdG9yLlNjcmlwdC5Mb2NhdGlvbi5wcm90b3R5cGUgPSB7CisgICAg
ZGlzcG9zZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2NyaXB0Ll9sb2NhdGlv
bnMucmVtb3ZlKHRoaXMpOworICAgIH0sCisKKyAgICBfdXBkYXRlOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICBpZiAoIXRoaXMuX3NjcmlwdC5fc291cmNlTWFwcGluZykKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgdmFyIHVpTG9jYXRpb24gPSB0aGlzLl9zY3JpcHQuX3NvdXJjZU1h
cHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24odGhpcy5fcmF3TG9jYXRpb24pOworICAgICAg
ICBpZiAodWlMb2NhdGlvbikgeworICAgICAgICAgICAgdmFyIG9uZVRpbWUgPSB0aGlzLl91cGRh
dGVEZWxlZ2F0ZSh1aUxvY2F0aW9uKTsKKyAgICAgICAgICAgIGlmIChvbmVUaW1lKQorICAgICAg
ICAgICAgICAgIHRoaXMuZGlzcG9zZSgpOworICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRNYXBwaW5nLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRNYXBwaW5nLmpzCmluZGV4
IGIxMzY1ZjBkYmU2NjE3ZDJjNjMxZDQxMWExMDMwNTFjZmJkY2RjZjMuLjU5NzQyZTk4MTY3OTky
Mjk3OTI0MjFjNGE5ODU2ZGYxNDNiNDQ3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0TWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE1hcHBpbmcuanMKQEAgLTMwLDE2ICszMCw1MSBAQAog
CiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlfSB1aVNvdXJjZUNvZGUKKyAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgKiBAcGFy
YW0ge251bWJlcn0gY29sdW1uTnVtYmVyCisgKi8KK1dlYkluc3BlY3Rvci5VSUxvY2F0aW9uID0g
ZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCit7CisgICAg
dGhpcy51aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7CisgICAgdGhpcy5saW5lTnVtYmVyID0g
bGluZU51bWJlcjsKKyAgICB0aGlzLmNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlcjsKK30KKwor
LyoqCisgKiBAaW50ZXJmYWNlCisgKi8KK1dlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nID0gZnVu
Y3Rpb24oKQoreworfQorCitXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtEZWJ1Z2dlckFnZW50LkxvY2F0aW9ufSByYXdMb2Nh
dGlvbgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSUxvY2F0aW9ufQorICAgICAqLwor
ICAgIHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uOiBmdW5jdGlvbihyYXdMb2NhdGlvbikgeyB9LAor
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNv
dXJjZUNvZGUKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBjb2x1bW5OdW1iZXIKKyAgICAgKiBAcmV0dXJuIHtEZWJ1Z2dlckFnZW50Lkxv
Y2F0aW9ufQorICAgICAqLworICAgIHVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbih1
aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikgeyB9Cit9CisKKy8qKgorICog
QGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KKyAqIEBpbXBs
ZW1lbnRzIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZ30KICAqLwogV2ViSW5zcGVjdG9yLlNj
cmlwdE1hcHBpbmcgPSBmdW5jdGlvbigpCiB7CiB9CiAKIFdlYkluc3BlY3Rvci5TY3JpcHRNYXBw
aW5nLkV2ZW50cyA9IHsKLSAgICBVSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZDogInVpLXNvdXJjZS1j
b2RlLWxpc3QtY2hhbmdlZCIsCi0gICAgU2NyaXB0Qm91bmQ6ICJzY3JpcHQtYm91bmQiLAotICAg
IFNjcmlwdFVuYm91bmQ6ICJzY3JpcHQtdW5ib3VuZCIsCisgICAgVUlTb3VyY2VDb2RlTGlzdENo
YW5nZWQ6ICJ1aS1zb3VyY2UtY29kZS1saXN0LWNoYW5nZWQiCiB9CiAKIFdlYkluc3BlY3Rvci5T
Y3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKQEAgLTgwLDE1ICsxMTUsMTEgQEAgV2ViSW5zcGVj
dG9yLk1haW5TY3JpcHRNYXBwaW5nID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3NuaXBwZXRzTWFw
cGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nKCk7CiAgICAgdGhp
cy5fbWFwcGluZ3MucHVzaCh0aGlzLl9zbmlwcGV0c01hcHBpbmcpOwogCi0gICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB0aGlzLl9tYXBwaW5ncy5sZW5ndGg7ICsraSkgeworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGhpcy5fbWFwcGluZ3MubGVuZ3RoOyArK2kpCiAgICAgICAgIHRoaXMuX21hcHBp
bmdzW2ldLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRz
LlVJU291cmNlQ29kZUxpc3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVVSVNvdXJjZUNvZGVMaXN0Q2hh
bmdlZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX21hcHBpbmdzW2ldLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRzLlNjcmlwdEJvdW5kLCB0aGlzLl9oYW5k
bGVTY3JpcHRCb3VuZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX21hcHBpbmdzW2ldLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRzLlNjcmlwdFVuYm91bmQs
IHRoaXMuX2hhbmRsZVNjcmlwdFVuYm91bmQsIHRoaXMpOwotICAgIH0KIAogICAgIHRoaXMuX21h
cHBpbmdGb3JTY3JpcHRJZCA9IHt9OwogICAgIHRoaXMuX21hcHBpbmdGb3JVSVNvdXJjZUNvZGUg
PSBuZXcgTWFwKCk7Ci0gICAgdGhpcy5fbGl2ZUxvY2F0aW9uc0ZvclNjcmlwdElkID0ge307CiB9
CiAKIFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFwcGluZy5FdmVudHMgPSB7CkBAIC0xMTcsMzUg
KzE0OCw2IEBAIFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAg
ICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7RGVidWdnZXJBZ2VudC5Mb2NhdGlvbn0g
cmF3TG9jYXRpb24KLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0
aW9uKX0gdXBkYXRlRGVsZWdhdGUKLSAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuTGl2ZUxv
Y2F0aW9ufQotICAgICAqLwotICAgIGNyZWF0ZUxpdmVMb2NhdGlvbjogZnVuY3Rpb24ocmF3TG9j
YXRpb24sIHVwZGF0ZURlbGVnYXRlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuTGl2ZUxvY2F0aW9uKHRoaXMsIHJhd0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0ZSk7Ci0g
ICAgfSwKLQotICAgIF9yZWdpc3RlckxpdmVMb2NhdGlvbjogZnVuY3Rpb24oc2NyaXB0SWQsIGxp
dmVMb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIHRoaXMuX2xpdmVMb2NhdGlvbnNGb3JTY3JpcHRJ
ZFtzY3JpcHRJZF0ucHVzaChsaXZlTG9jYXRpb24pCi0gICAgICAgIGxpdmVMb2NhdGlvbi5fdXBk
YXRlKCk7Ci0gICAgfSwKLQotICAgIF91bnJlZ2lzdGVyTGl2ZUxvY2F0aW9uOiBmdW5jdGlvbihz
Y3JpcHRJZCwgbGl2ZUxvY2F0aW9uKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2xpdmVMb2Nh
dGlvbnNGb3JTY3JpcHRJZFtzY3JpcHRJZF0pCi0gICAgICAgICAgICB0aGlzLl9saXZlTG9jYXRp
b25zRm9yU2NyaXB0SWRbc2NyaXB0SWRdLnJlbW92ZShsaXZlTG9jYXRpb24pOwotICAgIH0sCi0K
LSAgICBfdXBkYXRlTGl2ZUxvY2F0aW9uOiBmdW5jdGlvbihzY3JpcHRJZCkKLSAgICB7Ci0gICAg
ICAgIHZhciBsaXZlTG9jYXRpb25zID0gdGhpcy5fbGl2ZUxvY2F0aW9uc0ZvclNjcmlwdElkW3Nj
cmlwdElkXTsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaXZlTG9jYXRpb25zLmxlbmd0
aDsgKytqKQotICAgICAgICAgICAgbGl2ZUxvY2F0aW9uc1tqXS5fdXBkYXRlKCk7Ci0gICAgfSwK
LQotICAgIC8qKgogICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlPn0KICAgICAgKi8KICAgICB1aVNvdXJjZUNvZGVMaXN0OiBmdW5jdGlvbigpCkBAIC0xNjQs
OCArMTY2LDYgQEAgV2ViSW5zcGVjdG9yLk1haW5TY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsK
ICAgICAgKi8KICAgICBhZGRTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKICAgICB7Ci0gICAgICAg
IHRoaXMuX2xpdmVMb2NhdGlvbnNGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0gW107Ci0K
ICAgICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9tYXBwaW5nRm9yU2NyaXB0KHNjcmlwdCk7CiAg
ICAgICAgIHRoaXMuX21hcHBpbmdGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0gbWFwcGlu
ZzsKICAgICAgICAgbWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKQEAgLTIwNywyNSArMjA3LDYg
QEAgV2ViSW5zcGVjdG9yLk1haW5TY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICB9LAog
CiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50Ci0gICAg
ICovCi0gICAgX2hhbmRsZVNjcmlwdEJvdW5kOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAg
ICAgIHZhciBzY3JpcHRJZCA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyBldmVudC5kYXRhLnNjcmlw
dElkOwotICAgICAgICB0aGlzLl91cGRhdGVMaXZlTG9jYXRpb24oc2NyaXB0SWQpOwotICAgIH0s
Ci0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKLSAg
ICAgKi8KLSAgICBfaGFuZGxlU2NyaXB0VW5ib3VuZDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewot
ICAgICAgICB2YXIgc2NyaXB0SWQgPSAvKiogQHR5cGUge251bWJlcn0gKi8gZXZlbnQuZGF0YS5z
Y3JpcHRJZDsKLSAgICAgICAgdGhpcy5fdXBkYXRlTGl2ZUxvY2F0aW9uKHNjcmlwdElkKTsKLSAg
ICB9LAotCi0KLSAgICAvKioKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGZvcm1hdFNvdXJjZQog
ICAgICAqLwogICAgIHNldEZvcm1hdFNvdXJjZTogZnVuY3Rpb24oZm9ybWF0U291cmNlKQpAQCAt
MjQ4LDQwICsyMjksNyBAQCBXZWJJbnNwZWN0b3IuTWFpblNjcmlwdE1hcHBpbmcucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgdGhpcy5fbWFwcGluZ3NbaV0ucmVzZXQoKTsKICAgICAgICAgdGhp
cy5fbWFwcGluZ0ZvclNjcmlwdElkID0ge307CiAgICAgICAgIHRoaXMuX21hcHBpbmdGb3JVSVNv
dXJjZUNvZGUgPSBuZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMuX2xpdmVMb2NhdGlvbnNGb3JTY3Jp
cHRJZCA9IHt9OwogICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLk1haW5TY3JpcHRNYXBwaW5nLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKLQotLyoq
Ci0gKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk1haW5TY3JpcHRNYXBw
aW5nfSBzY3JpcHRNYXBwaW5nCi0gKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259IHJh
d0xvY2F0aW9uCi0gKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKX0g
dXBkYXRlRGVsZWdhdGUKLSAqLwotV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbiA9IGZ1bmN0aW9u
KHNjcmlwdE1hcHBpbmcsIHJhd0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0ZSkKLXsKLSAgICB0aGlz
Ll9zY3JpcHRNYXBwaW5nID0gc2NyaXB0TWFwcGluZzsKLSAgICB0aGlzLl9yYXdMb2NhdGlvbiA9
IHJhd0xvY2F0aW9uOwotICAgIHRoaXMuX3VwZGF0ZURlbGVnYXRlID0gdXBkYXRlRGVsZWdhdGU7
Ci19Ci0KLVdlYkluc3BlY3Rvci5MaXZlTG9jYXRpb24ucHJvdG90eXBlID0gewotICAgIGluaXQ6
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3NjcmlwdE1hcHBpbmcuX3JlZ2lzdGVy
TGl2ZUxvY2F0aW9uKHRoaXMuX3Jhd0xvY2F0aW9uLnNjcmlwdElkLCB0aGlzKTsKLSAgICB9LAot
Ci0gICAgZGlzcG9zZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2NyaXB0TWFw
cGluZy5fdW5yZWdpc3RlckxpdmVMb2NhdGlvbih0aGlzLl9yYXdMb2NhdGlvbi5zY3JpcHRJZCwg
dGhpcyk7Ci0gICAgfSwKLQotICAgIF91cGRhdGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IHZhciB1aUxvY2F0aW9uID0gdGhpcy5fc2NyaXB0TWFwcGluZy5yYXdMb2NhdGlvblRvVUlMb2Nh
dGlvbih0aGlzLl9yYXdMb2NhdGlvbik7Ci0gICAgICAgIGlmICh1aUxvY2F0aW9uKQotICAgICAg
ICAgICAgdGhpcy5fdXBkYXRlRGVsZWdhdGUodWlMb2NhdGlvbik7Ci0gICAgfQotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01vZGVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01vZGVsLmpzCmlu
ZGV4IDU4OWE1MTkxZGIzZTJiMzZkOTBkNGQ4OTMwMTg4OTMyMGU3ZDE4MzEuLmNjMDk4NTdmNzk1
ODYzNDhjNTk5NTUwYTUzMDRkNjQyZjFkYTE3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldHNNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRzTW9kZWwuanMKQEAgLTM3NCw4ICszNzQsNyBA
QCBXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IHVpU291
cmNlQ29kZTsKICAgICAgICAgdGhpcy5fc25pcHBldEZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJ
ZF0gPSBzbmlwcGV0OwogICAgICAgICB0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNvZGUucHV0KHVp
U291cmNlQ29kZSwgc2NyaXB0KTsKLSAgICAgICAgdmFyIGRhdGEgPSB7IHNjcmlwdElkOiBzY3Jp
cHQuc2NyaXB0SWQsIHVpU291cmNlQ29kZXM6IFt1aVNvdXJjZUNvZGVdIH07Ci0gICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2
ZW50cy5TY3JpcHRCb3VuZCwgZGF0YSk7CisgICAgICAgIHNjcmlwdC5zZXRTb3VyY2VNYXBwaW5n
KHRoaXMpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTQyMiwxMiArNDIxLDkgQEAgV2ViSW5zcGVj
dG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBvbGRV
SVNvdXJjZUNvZGUgPSB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0
SWRdOwogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0
SWRdID0gdWlTb3VyY2VDb2RlOwogICAgICAgICB0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNvZGUu
cHV0KHVpU291cmNlQ29kZSwgc2NyaXB0KTsKLSAgICAgICAgdmFyIGRhdGEgPSB7IHNjcmlwdElk
OiBzY3JpcHQuc2NyaXB0SWQsIHVpU291cmNlQ29kZXM6IFtvbGRVSVNvdXJjZUNvZGVdIH07Ci0g
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRN
YXBwaW5nLkV2ZW50cy5TY3JpcHRVbmJvdW5kLCBkYXRhKTsKLSAgICAgICAgZGF0YSA9IHsgcmVt
b3ZlZEl0ZW1zOiBbXSwgYWRkZWRJdGVtczogW3VpU291cmNlQ29kZV0gfTsKKyAgICAgICAgdmFy
IGRhdGEgPSB7IHJlbW92ZWRJdGVtczogW10sIGFkZGVkSXRlbXM6IFt1aVNvdXJjZUNvZGVdIH07
CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3Jp
cHRNYXBwaW5nLkV2ZW50cy5VSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCwgZGF0YSk7Ci0gICAgICAg
IGRhdGEgPSB7IHNjcmlwdElkOiBzY3JpcHQuc2NyaXB0SWQsIHVpU291cmNlQ29kZXM6IFt1aVNv
dXJjZUNvZGVdIH07Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5TY3JpcHRCb3VuZCwgZGF0YSk7CisgICAgICAg
IHNjcmlwdC5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOwogICAgIH0sCiAKICAgICAvKioKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBlYzg5NDAzNDRhMjQyNzg4YWU5YzcwYzIxYTBhYzM1Njc3MjYwNDA3Li4yZTkzMWRjZTVmMjAx
MGFkOGJkMjI0MWZkNDRlZmVmOGQ4NjkyMGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTIt
MDQtMjQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogZW5jYXBzdWxhdGUgbGl2ZSBsb2NhdGlvbiBpbnRvIHRoZSBTY3JpcHQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDcyMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfRGVi
dWdnZXJUZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWw6
CisKIDIwMTItMDQtMjQgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIt
dGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3Qu
anMKaW5kZXggMWVkY2Y4YTc4NDU3YjQ1YTRiNTBlYTRjZDU2OGY2ZWIwYTA4OWU1NS4uZTNkZTkw
YzI5YzZkM2Y1ODQ2ZTM3MjQ1ZjM1YzY5ZjcyMGZhMzk4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCkBAIC0xMDUsNyArMTA1LDcg
QEAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZXMs
IGRyb3BMaW5lTnVtYmVycykKICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ2FsbCBzdGFj
azoiKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxGcmFtZXMubGVuZ3RoOyBpKyspIHsK
ICAgICAgICAgdmFyIGZyYW1lID0gY2FsbEZyYW1lc1tpXTsKLSAgICAgICAgdmFyIHNjcmlwdCA9
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKGZyYW1lLmxvY2F0
aW9uLnNjcmlwdElkKTsKKyAgICAgICAgdmFyIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLnNjcmlwdEZvcklkKGZyYW1lLmxvY2F0aW9uLnNjcmlwdElkKTsKICAgICAgICAgdmFy
IHVybDsKICAgICAgICAgdmFyIGxpbmVOdW1iZXI7CiAgICAgICAgIGlmIChzY3JpcHQpIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbAppbmRleCBmZmZi
NTlhMjNmMWFiNjdkOWM1ZjkwZjg2NDRhNWJhYjgxNDFhZjI4Li4wMDBjMzI0N2IwYTNjMGM3YThk
YWFiN2ZiZjkwZDliNTRjZTZkMTk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvbGlua2lmaWVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2xpbmtpZmllci5odG1sCkBAIC0xMCw2ICsxMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAg
ICAgdmFyIGxpbmtpZmllcjsKICAgICB2YXIgbGluazsKKyAgICB2YXIgc2NyaXB0OwogCiAgICAg
ZnVuY3Rpb24gd2FpdEZvclNjcmlwdHMoKQogICAgIHsKQEAgLTE5LDcgKzIwLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgICAgICBpZiAoY29udGludWVkKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICAgICAgdmFyIHNjcmlwdCA9IGV2ZW50LmRhdGE7CisgICAgICAgICAg
ICBzY3JpcHQgPSBldmVudC5kYXRhOwogICAgICAgICAgICAgaWYgKHNjcmlwdC5zb3VyY2VVUkwg
PT09IFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMKSB7CiAgICAgICAgICAgICAgICAgY29u
dGludWVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGRlYnVnZ2VyVGVzdCwg
MCk7CkBAIC02NywxMSArNjgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIGxp
dmVMb2NhdGlvbnNDb3VudCgpCiAgICAgewotICAgICAgICB2YXIgbG9jYXRpb25zID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuX3NjcmlwdE1hcHBpbmcuX2xpdmVMb2Nh
dGlvbnNGb3JTY3JpcHRJZDsKLSAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgZm9yIChp
ZCBpbiBsb2NhdGlvbnMpCi0gICAgICAgICAgICBjb3VudCArPSBsb2NhdGlvbnNbaWRdLmxlbmd0
aDsKLSAgICAgICAgcmV0dXJuIGNvdW50OworICAgICAgICByZXR1cm4gc2NyaXB0Ll9sb2NhdGlv
bnMubGVuZ3RoOwogICAgIH0KIH0KIAo=
</data>
<flag name="review"
          id="143942"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>