<?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>84590</bug_id>
          
          <creation_ts>2012-04-23 06:15:45 -0700</creation_ts>
          <short_desc>Web Inspector: improve the way heap snapshot diff is calculated</short_desc>
          <delta_ts>2012-04-23 10:16:57 -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="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>alph</cc>
    
    <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>607626</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-04-23 06:15:45 -0700</bug_when>
    <thetext>Now front-end will create nodes for each class and ask each of them to calculate diff for given class. After that classes with zero diff will be dropped. This creates unnecessary traffic between the DataGrid nodes and snapshot workers. Would be more efficient to first collect necessary data from the base snapshot and pass it once to the second snapshot so that it can perform all processing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607630</commentid>
    <comment_count>1</comment_count>
      <attachid>138332</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-04-23 06:25:16 -0700</bug_when>
    <thetext>Created attachment 138332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607640</commentid>
    <comment_count>2</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-04-23 06:43:50 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=138332) [details]
&gt; Patch

The patch makes diff calculation about twice as fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607644</commentid>
    <comment_count>3</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-04-23 06:49:22 -0700</bug_when>
    <thetext>Committed r114894: &lt;http://trac.webkit.org/changeset/114894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607786</commentid>
    <comment_count>4</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-04-23 10:16:57 -0700</bug_when>
    <thetext>Why no push to addedIndexes at 1583?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138332</attachid>
            <date>2012-04-23 06:25:16 -0700</date>
            <delta_ts>2012-04-23 06:27:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84590-20120423172514.patch</filename>
            <type>text/plain</type>
            <size>25207</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0ODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk2MDBiNjU2ZDg0YjY2
OWJjOTU3MmZkN2QyYWZmOTQ0OTAzZTEyMC4uNjFmODM2YzRmNGY1YjBlM2ExMmVmMmE2Nzk1ZDZk
YmFkMzAxYzU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTIzICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGltcHJvdmUgdGhlIHdheSBoZWFwIHNuYXBzaG90IGRpZmYgaXMgY2FsY3VsYXRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ1OTAKKworICAg
ICAgICBEaWZmIGNhbGN1bGF0aW9uIG5vdyBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nIHN0ZXBz
OgorICAgICAgICAxLiBDb2xsZWN0IGRhdGEgYWJvdXQgbm9kZXMgaW4gdGhlIGJhc2UgaGVhcCBz
bmFwc2hvdAorICAgICAgICAyLiBQYXNzIGl0IHRvIHRoZSBzZWNvbmQgc25hcHNob3QuCisgICAg
ICAgIDMuIENhbGN1bGF0ZSBkZWx0YSBmb3IgZWFjaCBjbGFzcy4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZS5kaXNwb3NlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlLmFnZ3JlZ2F0ZXNGb3JEaWZm
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlLmNhbGN1bGF0
ZVNuYXBzaG90RGlmZik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3Rv
dHlwZS5fY2FsY3VsYXRlRGlmZkZvckNsYXNzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFw
U25hcHNob3QucHJvdG90eXBlLmNyZWF0ZUFkZGVkTm9kZXNQcm92aWRlcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZS5jcmVhdGVEZWxldGVkTm9kZXNQcm92
aWRlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3REYXRhR3Jp
ZHMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RGlmZkRhdGFHcmlkLnBy
b3RvdHlwZS5fcG9wdWxhdGVDaGlsZHJlbi5hZ2dyZWdhdGVzRm9yRGlmZlJlY2VpdmVkLmRpZENh
bGN1bGF0ZVNuYXBzaG90RGlmZik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
RGlmZkRhdGFHcmlkLnByb3RvdHlwZS5fcG9wdWxhdGVDaGlsZHJlbik6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90SXRlcmF0b3JzVHVwbGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdERpZmZOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25h
cHNob3REaWZmTm9kZS5wcm90b3R5cGUuX2NyZWF0ZUNoaWxkTm9kZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90RGlmZk5vZGUucHJvdG90eXBlLl9jcmVhdGVOb2Rlc1Byb3Zp
ZGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFByb3h5Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3h5LnByb3RvdHlwZS5hZ2dy
ZWdhdGVzRm9yRGlmZik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJveHku
cHJvdG90eXBlLmNhbGN1bGF0ZVNuYXBzaG90RGlmZik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90UHJveHkucHJvdG90eXBlLmNyZWF0ZUFkZGVkTm9kZXNQcm92aWRlcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJveHkucHJvdG90eXBlLmNyZWF0ZURl
bGV0ZWROb2Rlc1Byb3ZpZGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBT
bmFwc2hvdFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Vmlldy5w
cm90b3R5cGUuX2NoYW5nZUJhc2UpOgorCiAyMDEyLTA0LTIyICBZdXJ5IFNlbWlraGF0c2t5ICA8
eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2UgcG9wdWxh
dGVDaGlsZHJlbiBtZXRob2RzIHByaXZhdGUgaW4gaGVhcCBwcm9maWxlciBmcm9udC1lbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMK
aW5kZXggN2RkMTFlYTU5OTZkNmY5ZDdhMGU2NGJiZWYwNjQ5NDVkYTEwYjU4Mi4uMzZkMjI2NjAw
ZmQ4NTg4Y2M4NGFjZGQ2MDNhZjZkNTEwMDFmOWZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKQEAgLTgzNSw2ICs4MzUsOSBA
QCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90ID0gZnVuY3Rpb24ocHJvZmlsZSkKICAgICB0aGlz
Ll9tZXRhTm9kZSA9IHByb2ZpbGUuc25hcHNob3QubWV0YTsKICAgICB0aGlzLl9zdHJpbmdzID0g
cHJvZmlsZS5zdHJpbmdzOwogCisgICAgdGhpcy5fc25hcHNob3REaWZmcyA9IHt9OworICAgIHRo
aXMuX2FnZ3JlZ2F0ZXNGb3JEaWZmID0gbnVsbDsKKwogICAgIHRoaXMuX2luaXQoKTsKIH0KIApA
QCAtMTEwMiw3ICsxMTA1LDYgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fYWdncmVnYXRlczsKICAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLl9hZ2dyZWdhdGVzU29ydGVkRmxhZ3M7CiAgICAgICAgIH0KLSAgICAgICAgZGVs
ZXRlIHRoaXMuX2Jhc2VOb2RlSWRzOwogICAgICAgICBkZWxldGUgdGhpcy5fZG9taW5hdGVkTm9k
ZXM7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9maXJzdERvbWluYXRlZE5vZGVJbmRleDsKICAgICAg
ICAgZGVsZXRlIHRoaXMuX2ZsYWdzOwpAQCAtMTExNCwxNyArMTExNiw2IEBAIFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3QucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5IZWFwU25hcHNob3ROb2RlSXRlcmF0b3IodGhpcy5yb290Tm9kZSk7CiAgICAgfSwKIAot
ICAgIG5vZGVGaWVsZFZhbHVlc0J5SW5kZXg6IGZ1bmN0aW9uKGZpZWxkTmFtZSwgaW5kZXhlcykK
LSAgICB7Ci0gICAgICAgIHZhciBub2RlID0gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RO
b2RlKHRoaXMpOwotICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5KGluZGV4ZXMubGVuZ3Ro
KTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBpbmRleGVzLmxlbmd0aDsgaSA8IGw7ICsr
aSkgewotICAgICAgICAgICAgbm9kZS5ub2RlSW5kZXggPSBpbmRleGVzW2ldOwotICAgICAgICAg
ICAgcmVzdWx0W2ldID0gbm9kZVtmaWVsZE5hbWVdOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgfSwKLQogICAgIGdldCByb290Tm9kZSgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2RlKHRoaXMsIHRoaXMuX3Jvb3RO
b2RlSW5kZXgpOwpAQCAtMTE5NSw2ICsxMTg2LDM1IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3QucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gYWdncmVnYXRlc0J5Q2xhc3NOYW1lOwog
ICAgIH0sCiAKKyAgICBhZ2dyZWdhdGVzRm9yRGlmZjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2FnZ3JlZ2F0ZXNGb3JEaWZmKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X2FnZ3JlZ2F0ZXNGb3JEaWZmOworCisgICAgICAgIHZhciBhZ2dyZWdhdGVzQnlDbGFzc05hbWUg
PSB0aGlzLmFnZ3JlZ2F0ZXModHJ1ZSwgImFsbE9iamVjdHMiKTsKKyAgICAgICAgdGhpcy5fYWdn
cmVnYXRlc0ZvckRpZmYgID0ge307CisKKyAgICAgICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdE5vZGUodGhpcyk7CisgICAgICAgIGZvciAodmFyIGNsYXNzTmFtZSBp
biBhZ2dyZWdhdGVzQnlDbGFzc05hbWUpIHsKKyAgICAgICAgICAgIHZhciBhZ2dyZWdhdGUgPSBh
Z2dyZWdhdGVzQnlDbGFzc05hbWVbY2xhc3NOYW1lXTsKKyAgICAgICAgICAgIHZhciBpbmRleGVz
ID0gYWdncmVnYXRlLmlkeHM7CisgICAgICAgICAgICB2YXIgaWRzID0gbmV3IEFycmF5KGluZGV4
ZXMubGVuZ3RoKTsKKyAgICAgICAgICAgIHZhciBzZWxmU2l6ZXMgPSBuZXcgQXJyYXkoaW5kZXhl
cy5sZW5ndGgpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmRleGVzLmxlbmd0
aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgbm9kZS5ub2RlSW5kZXggPSBpbmRleGVzW2ldOwor
ICAgICAgICAgICAgICAgIGlkc1tpXSA9IG5vZGUuaWQ7CisgICAgICAgICAgICAgICAgc2VsZlNp
emVzW2ldID0gbm9kZS5zZWxmU2l6ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhp
cy5fYWdncmVnYXRlc0ZvckRpZmZbY2xhc3NOYW1lXSA9IHsKKyAgICAgICAgICAgICAgICBpbmRl
eGVzOiBpbmRleGVzLAorICAgICAgICAgICAgICAgIGlkczogaWRzLAorICAgICAgICAgICAgICAg
IHNlbGZTaXplczogc2VsZlNpemVzCisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAg
IHJldHVybiB0aGlzLl9hZ2dyZWdhdGVzRm9yRGlmZjsKKyAgICB9LAorCiAgICAgX2NhbGN1bGF0
ZU9iamVjdFRvV2luZG93RGlzdGFuY2U6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMu
X2Rpc3RhbmNlc1RvV2luZG93ID0gbmV3IEFycmF5KHRoaXMubm9kZUNvdW50KTsKQEAgLTE1MDks
MjMgKzE1MjksODIgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX21hcmtRdWVyaWFibGVIZWFwT2JqZWN0cygpOwogICAgIH0sCiAKLSAgICBi
YXNlU25hcHNob3RIYXNOb2RlOiBmdW5jdGlvbihiYXNlU25hcHNob3RJZCwgY2xhc3NOYW1lLCBu
b2RlSWQpCisgICAgY2FsY3VsYXRlU25hcHNob3REaWZmOiBmdW5jdGlvbihiYXNlU25hcHNob3RJ
ZCwgYmFzZVNuYXBzaG90QWdncmVnYXRlcykKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9i
YXNlTm9kZUlkc1tiYXNlU25hcHNob3RJZF1bY2xhc3NOYW1lXS5iaW5hcnlJbmRleE9mKG5vZGVJ
ZCwgdGhpcy5fbnVtYmVyc0NvbXBhcmF0b3IpICE9PSAtMTsKLSAgICB9LAorICAgICAgICB2YXIg
c25hcHNob3REaWZmID0gdGhpcy5fc25hcHNob3REaWZmc1tiYXNlU25hcHNob3RJZF07CisgICAg
ICAgIGlmIChzbmFwc2hvdERpZmYpCisgICAgICAgICAgICByZXR1cm4gc25hcHNob3REaWZmOwor
ICAgICAgICBzbmFwc2hvdERpZmYgPSB7fTsKIAotICAgIHB1c2hCYXNlSWRzOiBmdW5jdGlvbihi
YXNlU25hcHNob3RJZCwgY2xhc3NOYW1lLCBub2RlSWRzKQotICAgIHsKLSAgICAgICAgaWYgKCF0
aGlzLl9iYXNlTm9kZUlkcykKLSAgICAgICAgICAgIHRoaXMuX2Jhc2VOb2RlSWRzID0gW107Ci0g
ICAgICAgIGlmICghdGhpcy5fYmFzZU5vZGVJZHNbYmFzZVNuYXBzaG90SWRdKQotICAgICAgICAg
ICAgdGhpcy5fYmFzZU5vZGVJZHNbYmFzZVNuYXBzaG90SWRdID0ge307Ci0gICAgICAgIHRoaXMu
X2Jhc2VOb2RlSWRzW2Jhc2VTbmFwc2hvdElkXVtjbGFzc05hbWVdID0gbm9kZUlkczsKKyAgICAg
ICAgdmFyIGFnZ3JlZ2F0ZXMgPSB0aGlzLmFnZ3JlZ2F0ZXModHJ1ZSwgImFsbE9iamVjdHMiKTsK
KyAgICAgICAgZm9yICh2YXIgY2xhc3NOYW1lIGluIGJhc2VTbmFwc2hvdEFnZ3JlZ2F0ZXMpIHsK
KyAgICAgICAgICAgIHZhciBiYXNlQWdncmVnYXRlID0gYmFzZVNuYXBzaG90QWdncmVnYXRlc1tj
bGFzc05hbWVdOworICAgICAgICAgICAgdmFyIGRpZmYgPSB0aGlzLl9jYWxjdWxhdGVEaWZmRm9y
Q2xhc3MoYmFzZUFnZ3JlZ2F0ZSwgYWdncmVnYXRlc1tjbGFzc05hbWVdKTsKKyAgICAgICAgICAg
IGlmIChkaWZmKQorICAgICAgICAgICAgICAgIHNuYXBzaG90RGlmZltjbGFzc05hbWVdID0gZGlm
ZjsKKyAgICAgICAgfQorICAgICAgICB2YXIgZW1wdHlCYXNlQWdncmVnYXRlID0geyBpZHM6IFtd
LCBpbmRleGVzOiBbXSwgc2VsZlNpemVzOiBbXSB9OworICAgICAgICBmb3IgKHZhciBjbGFzc05h
bWUgaW4gYWdncmVnYXRlcykgeworICAgICAgICAgICAgaWYgKGNsYXNzTmFtZSBpbiBiYXNlU25h
cHNob3RBZ2dyZWdhdGVzKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
c25hcHNob3REaWZmW2NsYXNzTmFtZV0gPSB0aGlzLl9jYWxjdWxhdGVEaWZmRm9yQ2xhc3MoZW1w
dHlCYXNlQWdncmVnYXRlLCBhZ2dyZWdhdGVzW2NsYXNzTmFtZV0pOworICAgICAgICB9CisKKyAg
ICAgICAgdGhpcy5fc25hcHNob3REaWZmc1tiYXNlU25hcHNob3RJZF0gPSBzbmFwc2hvdERpZmY7
CisgICAgICAgIHJldHVybiBzbmFwc2hvdERpZmY7CiAgICAgfSwKIAotICAgIGNyZWF0ZURpZmY6
IGZ1bmN0aW9uKGNsYXNzTmFtZSkKKyAgICBfY2FsY3VsYXRlRGlmZkZvckNsYXNzOiBmdW5jdGlv
bihiYXNlQWdncmVnYXRlLCBhZ2dyZWdhdGUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3RzRGlmZih0aGlzLCBjbGFzc05hbWUpOworICAgICAgICB2
YXIgYmFzZUlkcyA9IGJhc2VBZ2dyZWdhdGUuaWRzOworICAgICAgICB2YXIgYmFzZUluZGV4ZXMg
PSBiYXNlQWdncmVnYXRlLmluZGV4ZXM7CisgICAgICAgIHZhciBiYXNlU2VsZlNpemVzID0gYmFz
ZUFnZ3JlZ2F0ZS5zZWxmU2l6ZXM7CisKKyAgICAgICAgdmFyIGluZGV4ZXMgPSBhZ2dyZWdhdGUg
PyBhZ2dyZWdhdGUuaWR4cyA6IFtdOworCisgICAgICAgIHZhciBpID0gMCwgbCA9IGJhc2VJZHMu
bGVuZ3RoOworICAgICAgICB2YXIgaiA9IDAsIG0gPSBpbmRleGVzLmxlbmd0aDsKKyAgICAgICAg
dmFyIGRpZmYgPSB7IGFkZGVkQ291bnQ6IDAsCisgICAgICAgICAgICAgICAgICAgICByZW1vdmVk
Q291bnQ6IDAsCisgICAgICAgICAgICAgICAgICAgICBhZGRlZFNpemU6IDAsCisgICAgICAgICAg
ICAgICAgICAgICByZW1vdmVkU2l6ZTogMCwKKyAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZWRJ
bmRleGVzOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgIGFkZGVkSW5kZXhlczogW10gfTsKKwor
ICAgICAgICB2YXIgbm9kZUIgPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUodGhp
cywgaW5kZXhlc1tqXSk7CisgICAgICAgIHdoaWxlIChpIDwgbCAmJiBqIDwgbSkgeworICAgICAg
ICAgICAgdmFyIG5vZGVBSWQgPSBiYXNlSWRzW2ldOworICAgICAgICAgICAgaWYgKG5vZGVBSWQg
PCBub2RlQi5pZCkgeworICAgICAgICAgICAgICAgIGRpZmYuZGVsZXRlZEluZGV4ZXMucHVzaChi
YXNlSW5kZXhlc1tpXSk7CisgICAgICAgICAgICAgICAgZGlmZi5yZW1vdmVkQ291bnQrKzsKKyAg
ICAgICAgICAgICAgICBkaWZmLnJlbW92ZWRTaXplICs9IGJhc2VTZWxmU2l6ZXNbaV07CisgICAg
ICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlQUlkID4gbm9kZUIu
aWQpIHsKKyAgICAgICAgICAgICAgICBkaWZmLmFkZGVkQ291bnQrKzsKKyAgICAgICAgICAgICAg
ICBkaWZmLmFkZGVkU2l6ZSArPSBub2RlQi5zZWxmU2l6ZTsKKyAgICAgICAgICAgICAgICBub2Rl
Qi5ub2RlSW5kZXggPSBpbmRleGVzWysral07CisgICAgICAgICAgICB9IGVsc2UgeyAvLyBub2Rl
QUlkID09PSBub2RlQi5pZAorICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICBu
b2RlQi5ub2RlSW5kZXggPSBpbmRleGVzWysral07CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgd2hpbGUgKGkgPCBsKSB7CisgICAgICAgICAgICBkaWZmLmRlbGV0ZWRJbmRleGVz
LnB1c2goYmFzZUluZGV4ZXNbaV0pOworICAgICAgICAgICAgZGlmZi5yZW1vdmVkQ291bnQrKzsK
KyAgICAgICAgICAgIGRpZmYucmVtb3ZlZFNpemUgKz0gYmFzZVNlbGZTaXplc1tpXTsKKyAgICAg
ICAgICAgICsraTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoaiA8IG0pIHsKKyAgICAgICAg
ICAgIGRpZmYuYWRkZWRJbmRleGVzLnB1c2goaW5kZXhlc1tqXSk7CisgICAgICAgICAgICBkaWZm
LmFkZGVkQ291bnQrKzsKKyAgICAgICAgICAgIGRpZmYuYWRkZWRTaXplICs9IG5vZGVCLnNlbGZT
aXplOworICAgICAgICAgICAgbm9kZUIubm9kZUluZGV4ID0gaW5kZXhlc1srK2pdOworICAgICAg
ICB9CisgICAgICAgIGRpZmYuY291bnREZWx0YSA9IGRpZmYuYWRkZWRDb3VudCAtIGRpZmYucmVt
b3ZlZENvdW50OworICAgICAgICBkaWZmLnNpemVEZWx0YSA9IGRpZmYuYWRkZWRTaXplIC0gZGlm
Zi5yZW1vdmVkU2l6ZTsKKyAgICAgICAgaWYgKCFkaWZmLmFkZGVkQ291bnQgJiYgIWRpZmYucmVt
b3ZlZENvdW50KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHJldHVybiBkaWZm
OwogICAgIH0sCiAKICAgICBfcGFyc2VGaWx0ZXI6IGZ1bmN0aW9uKGZpbHRlcikKQEAgLTE1NDgs
NiArMTYyNywxOCBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RWRnZXNQcm92aWRlcih0
aGlzLCBub2RlSW5kZXgsIHRoaXMuX3BhcnNlRmlsdGVyKGZpbHRlciksIG5vZGUucmV0YWluZXJz
KTsKICAgICB9LAogCisgICAgY3JlYXRlQWRkZWROb2Rlc1Byb3ZpZGVyOiBmdW5jdGlvbihiYXNl
U25hcHNob3RJZCwgY2xhc3NOYW1lKQorICAgIHsKKyAgICAgICAgdmFyIHNuYXBzaG90RGlmZiA9
IHRoaXMuX3NuYXBzaG90RGlmZnNbYmFzZVNuYXBzaG90SWRdOworICAgICAgICB2YXIgZGlmZkZv
ckNsYXNzID0gc25hcHNob3REaWZmW2NsYXNzTmFtZV07CisgICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGVzUHJvdmlkZXIodGhpcywgbnVsbCwgZGlmZkZvckNs
YXNzLmFkZGVkSW5kZXhlcyk7CisgICAgfSwKKworICAgIGNyZWF0ZURlbGV0ZWROb2Rlc1Byb3Zp
ZGVyOiBmdW5jdGlvbihub2RlSW5kZXhlcykKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGVzUHJvdmlkZXIodGhpcywgbnVsbCwgbm9kZUluZGV4
ZXMpOworICAgIH0sCisKICAgICBjcmVhdGVOb2Rlc1Byb3ZpZGVyOiBmdW5jdGlvbihmaWx0ZXIp
CiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2Rl
c1Byb3ZpZGVyKHRoaXMsIHRoaXMuX3BhcnNlRmlsdGVyKGZpbHRlcikpOwpAQCAtMTg1Miw2MyAr
MTk0MywzIEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2Rlc1Byb3ZpZGVyLnByb3RvdHlw
ZSA9IHsKIH07CiAKIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2Rlc1Byb3ZpZGVyLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RmlsdGVyZWRPcmRlcmVk
SXRlcmF0b3IucHJvdG90eXBlOwotCi0vKioKLSAqIEBjb25zdHJ1Y3RvcgotICovCi1XZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90c0RpZmYgPSBmdW5jdGlvbihzbmFwc2hvdCwgY2xhc3NOYW1lKQot
ewotICAgIHRoaXMuX3NuYXBzaG90ID0gc25hcHNob3Q7Ci0gICAgdGhpcy5fY2xhc3NOYW1lID0g
Y2xhc3NOYW1lOwotfTsKLQotV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdHNEaWZmLnByb3RvdHlw
ZSA9IHsKLSAgICBjYWxjdWxhdGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBhZ2dy
ZWdhdGVzID0gdGhpcy5fc25hcHNob3QuYWdncmVnYXRlcyh0cnVlKVt0aGlzLl9jbGFzc05hbWVd
OwotICAgICAgICB2YXIgaW5kZXhlcyA9IGFnZ3JlZ2F0ZXMgPyBhZ2dyZWdhdGVzLmlkeHMgOiBb
XTsKLSAgICAgICAgdmFyIGkgPSAwLCBsID0gdGhpcy5fYmFzZUlkcy5sZW5ndGg7Ci0gICAgICAg
IHZhciBqID0gMCwgbSA9IGluZGV4ZXMubGVuZ3RoOwotICAgICAgICB2YXIgZGlmZiA9IHsgYWRk
ZWRDb3VudDogMCwgcmVtb3ZlZENvdW50OiAwLCBhZGRlZFNpemU6IDAsIHJlbW92ZWRTaXplOiAw
IH07Ci0KLSAgICAgICAgdmFyIG5vZGVCID0gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RO
b2RlKHRoaXMuX3NuYXBzaG90LCBpbmRleGVzW2pdKTsKLSAgICAgICAgd2hpbGUgKGkgPCBsICYm
IGogPCBtKSB7Ci0gICAgICAgICAgICB2YXIgbm9kZUFJZCA9IHRoaXMuX2Jhc2VJZHNbaV07Ci0g
ICAgICAgICAgICBpZiAobm9kZUFJZCA8IG5vZGVCLmlkKSB7Ci0gICAgICAgICAgICAgICAgZGlm
Zi5yZW1vdmVkQ291bnQrKzsKLSAgICAgICAgICAgICAgICBkaWZmLnJlbW92ZWRTaXplICs9IHRo
aXMuX2Jhc2VTZWxmU2l6ZXNbaV07Ci0gICAgICAgICAgICAgICAgKytpOwotICAgICAgICAgICAg
fSBlbHNlIGlmIChub2RlQUlkID4gbm9kZUIuaWQpIHsKLSAgICAgICAgICAgICAgICBkaWZmLmFk
ZGVkQ291bnQrKzsKLSAgICAgICAgICAgICAgICBkaWZmLmFkZGVkU2l6ZSArPSBub2RlQi5zZWxm
U2l6ZTsKLSAgICAgICAgICAgICAgICBub2RlQi5ub2RlSW5kZXggPSBpbmRleGVzWysral07Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICsraTsKLSAgICAgICAgICAgICAg
ICBub2RlQi5ub2RlSW5kZXggPSBpbmRleGVzWysral07Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgd2hpbGUgKGkgPCBsKSB7Ci0gICAgICAgICAgICBkaWZmLnJlbW92ZWRDb3Vu
dCsrOwotICAgICAgICAgICAgZGlmZi5yZW1vdmVkU2l6ZSArPSB0aGlzLl9iYXNlU2VsZlNpemVz
W2ldOwotICAgICAgICAgICAgKytpOwotICAgICAgICB9Ci0gICAgICAgIHdoaWxlIChqIDwgbSkg
ewotICAgICAgICAgICAgZGlmZi5hZGRlZENvdW50Kys7Ci0gICAgICAgICAgICBkaWZmLmFkZGVk
U2l6ZSArPSBub2RlQi5zZWxmU2l6ZTsKLSAgICAgICAgICAgIG5vZGVCLm5vZGVJbmRleCA9IGlu
ZGV4ZXNbKytqXTsKLSAgICAgICAgfQotICAgICAgICBkaWZmLmNvdW50RGVsdGEgPSBkaWZmLmFk
ZGVkQ291bnQgLSBkaWZmLnJlbW92ZWRDb3VudDsKLSAgICAgICAgZGlmZi5zaXplRGVsdGEgPSBk
aWZmLmFkZGVkU2l6ZSAtIGRpZmYucmVtb3ZlZFNpemU7Ci0gICAgICAgIHJldHVybiBkaWZmOwot
ICAgIH0sCi0KLSAgICBwdXNoQmFzZUlkczogZnVuY3Rpb24oYmFzZUlkcykKLSAgICB7Ci0gICAg
ICAgIHRoaXMuX2Jhc2VJZHMgPSBiYXNlSWRzOwotICAgIH0sCi0KLSAgICBwdXNoQmFzZVNlbGZT
aXplczogZnVuY3Rpb24oYmFzZVNlbGZTaXplcykKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Jhc2VT
ZWxmU2l6ZXMgPSBiYXNlU2VsZlNpemVzOwotICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdERhdGFHcmlkcy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpz
CmluZGV4IGQxNzAyZjQ5OTE4MTgwODU2YzJkMzk1Y2NlMzc1NDZlM2E4MTJiNjcuLjgxNGY1N2E0
YjljZmMxODdhYjkzMWViMTgxMzdiNWJmYzc1NmZiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpz
CkBAIC01MTUsMTEgKzUxNSw5IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REaWZmRGF0YUdy
aWQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnNuYXBzaG90ID0gc25hcHNob3Q7CiAgICAg
fSwKIAotICAgIF9iYXNlUHJvZmlsZUluZGV4Q2hhbmdlZDogZnVuY3Rpb24obG9hZGVyLCBwcm9m
aWxlSW5kZXgpCi0gICAgewotICAgICAgICBsb2FkZXIocHJvZmlsZUluZGV4LCB0aGlzLnNldEJh
c2VEYXRhU291cmNlLmJpbmQodGhpcykpOwotICAgIH0sCi0KKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eX0gYmFzZVNuYXBzaG90CisgICAgICov
CiAgICAgc2V0QmFzZURhdGFTb3VyY2U6IGZ1bmN0aW9uKGJhc2VTbmFwc2hvdCkKICAgICB7CiAg
ICAgICAgIHRoaXMuYmFzZVNuYXBzaG90ID0gYmFzZVNuYXBzaG90OwpAQCAtNTM1LDM0ICs1MzMs
MjIgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZEYXRhR3JpZC5wcm90b3R5cGUgPSB7
CiAKICAgICBfcG9wdWxhdGVDaGlsZHJlbjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgZnVu
Y3Rpb24gYmFzZUFnZ3JlZ2F0ZXNSZWNlaXZlZChiYXNlQ2xhc3NlcykKKyAgICAgICAgZnVuY3Rp
b24gYWdncmVnYXRlc0ZvckRpZmZSZWNlaXZlZChhZ2dyZWdhdGVzRm9yRGlmZikKICAgICAgICAg
ewotICAgICAgICAgICAgZnVuY3Rpb24gYWdncmVnYXRlc1JlY2VpdmVkKGNsYXNzZXMpCisgICAg
ICAgICAgICB0aGlzLnNuYXBzaG90LmNhbGN1bGF0ZVNuYXBzaG90RGlmZih0aGlzLmJhc2VTbmFw
c2hvdC51aWQsIGFnZ3JlZ2F0ZXNGb3JEaWZmLCBkaWRDYWxjdWxhdGVTbmFwc2hvdERpZmYuYmlu
ZCh0aGlzKSk7CisgICAgICAgICAgICBmdW5jdGlvbiBkaWRDYWxjdWxhdGVTbmFwc2hvdERpZmYo
ZGlmZkJ5Q2xhc3NOYW1lKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBub2Rl
Q291bnQgPSAwOwotICAgICAgICAgICAgICAgIHZhciBub2RlcyA9IFtdOwotICAgICAgICAgICAg
ICAgIGZvciAodmFyIGNsc3MgaW4gYmFzZUNsYXNzZXMpCi0gICAgICAgICAgICAgICAgICAgIG5v
ZGVzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REaWZmTm9kZSh0aGlzLCBjbHNz
LCBiYXNlQ2xhc3Nlc1tjbHNzXSwgY2xhc3Nlc1tjbHNzXSkpOwotICAgICAgICAgICAgICAgIGZv
ciAoY2xzcyBpbiBjbGFzc2VzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghKGNsc3MgaW4g
YmFzZUNsYXNzZXMpKQotICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXMucHVzaChuZXcgV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZOb2RlKHRoaXMsIGNsc3MsIG51bGwsIGNsYXNzZXNb
Y2xzc10pKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbm9kZUNvdW50ID0g
bm9kZXMubGVuZ3RoOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkZE5vZGVJZk5vblplcm9E
aWZmKGJvdW5kTm9kZSwgemVyb0RpZmYpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICBpZiAoIXplcm9EaWZmKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBl
bmRUb3BMZXZlbE5vZGUoYm91bmROb2RlKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCEtLW5v
ZGVDb3VudCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc29ydGluZ0NoYW5nZWQoKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBu
b2Rlcy5sZW5ndGg7IGkgPCBsOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIG5vZGUg
PSBub2Rlc1tpXTsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5jYWxjdWxhdGVEaWZmKHRoaXMs
IGFkZE5vZGVJZk5vblplcm9EaWZmLmJpbmQodGhpcywgbm9kZSkpOworICAgICAgICAgICAgICAg
IGZvciAoY2xhc3NOYW1lIGluIGRpZmZCeUNsYXNzTmFtZSkgeworICAgICAgICAgICAgICAgICAg
ICB2YXIgZGlmZiA9IGRpZmZCeUNsYXNzTmFtZVtjbGFzc05hbWVdOworICAgICAgICAgICAgICAg
ICAgICB0aGlzLmFwcGVuZFRvcExldmVsTm9kZShuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dERpZmZOb2RlKHRoaXMsIGNsYXNzTmFtZSwgZGlmZikpOwogICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB0aGlzLnNvcnRpbmdDaGFuZ2VkKCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB0aGlzLnNuYXBzaG90LmFnZ3JlZ2F0ZXModHJ1ZSwgImFsbE9iamVjdHMiLCBudWxs
LCBhZ2dyZWdhdGVzUmVjZWl2ZWQuYmluZCh0aGlzKSk7CiAgICAgICAgIH0KLSAgICAgICAgdGhp
cy5iYXNlU25hcHNob3QuYWdncmVnYXRlcyh0cnVlLCAiYWxsT2JqZWN0cyIsIG51bGwsIGJhc2VB
Z2dyZWdhdGVzUmVjZWl2ZWQuYmluZCh0aGlzKSk7CisgICAgICAgIC8vIFR3byBzbmFwc2hvdHMg
bGl2ZSBpbiBkaWZmZXJlbnQgd29ya2VycyBpc29sYXRlZCBmcm9tIGVhY2ggb3RoZXIuIFRoYXQg
aXMgd2h5CisgICAgICAgIC8vIHdlIGZpcnN0IG5lZWQgdG8gY29sbGVjdCBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgbm9kZXMgaW4gdGhlIGZpcnN0IHNuYXBzaG90IGFuZAorICAgICAgICAvLyB0aGVu
IHBhc3MgaXQgdG8gdGhlIHNlY29uZCBzbmFwc2hvdCB0byBjYWxjbHVsYXRlIHRoZSBkaWZmLgor
ICAgICAgICB0aGlzLmJhc2VTbmFwc2hvdC5hZ2dyZWdhdGVzRm9yRGlmZihhZ2dyZWdhdGVzRm9y
RGlmZlJlY2VpdmVkLmJpbmQodGhpcykpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90R3JpZE5vZGVzLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMu
anMKaW5kZXggM2YzYWVkMDAyODkzMzM3Mjg2ZWNhYTYzZjZjZTQ3MzFjNmE0OGU0YS4uNGZjYWVj
MTE3YzIzNDQwZGU4ODllMzM2NjI5MjY2M2M2MGIwZTE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMu
anMKQEAgLTY5MCwxMSArNjkwLDE1IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RDb25zdHJ1
Y3Rvck5vZGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5IZWFwCiAgKiBAY29u
c3RydWN0b3IKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3ZpZGVyUHJv
eHl9IGl0MQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvdmlkZXJQcm94
eX0gaXQyCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eX0gYmFzZVNu
YXBzaG90CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eX0gc25hcHNo
b3QKICAqLwotV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEl0ZXJhdG9yc1R1cGxlID0gZnVuY3Rp
b24oaXQxLCBpdDIpCitXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90SXRlcmF0b3JzVHVwbGUgPSBm
dW5jdGlvbihpdDEsIGl0MiwgYmFzZVNuYXBzaG90LCBzbmFwc2hvdCkKIHsKICAgICB0aGlzLl9p
dDEgPSBpdDE7CiAgICAgdGhpcy5faXQyID0gaXQyOworICAgIHRoaXMuYmFzZVNuYXBzaG90ID0g
YmFzZVNuYXBzaG90OworICAgIHRoaXMuc25hcHNob3QgPSBzbmFwc2hvdDsKIH0KIAogV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdEl0ZXJhdG9yc1R1cGxlLnByb3RvdHlwZSA9IHsKQEAgLTcxOCw4
MiArNzIyLDQzIEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RJdGVyYXRvcnNUdXBsZS5wcm90
b3R5cGUgPSB7CiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90R3JpZE5vZGV9CiAgKi8KLVdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REaWZmTm9k
ZSA9IGZ1bmN0aW9uKHRyZWUsIGNsYXNzTmFtZSwgYmFzZUFnZ3JlZ2F0ZSwgYWdncmVnYXRlKQor
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZOb2RlID0gZnVuY3Rpb24odHJlZSwgY2xhc3NO
YW1lLCBkaWZmRm9yQ2xhc3MpCiB7CiAgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdyaWRO
b2RlLmNhbGwodGhpcywgdHJlZSwgdHJ1ZSk7CiAgICAgdGhpcy5fbmFtZSA9IGNsYXNzTmFtZTsK
LSAgICB0aGlzLl9iYXNlSW5kZXhlcyA9IGJhc2VBZ2dyZWdhdGUgPyBiYXNlQWdncmVnYXRlLmlk
eHMgOiBbXTsKLSAgICB0aGlzLl9pbmRleGVzID0gYWdncmVnYXRlID8gYWdncmVnYXRlLmlkeHMg
OiBbXTsKKworICAgIHRoaXMuX2FkZGVkQ291bnQgPSBkaWZmRm9yQ2xhc3MuYWRkZWRDb3VudDsK
KyAgICB0aGlzLl9yZW1vdmVkQ291bnQgPSBkaWZmRm9yQ2xhc3MucmVtb3ZlZENvdW50OworICAg
IHRoaXMuX2NvdW50RGVsdGEgPSBkaWZmRm9yQ2xhc3MuY291bnREZWx0YTsKKyAgICB0aGlzLl9h
ZGRlZFNpemUgPSBkaWZmRm9yQ2xhc3MuYWRkZWRTaXplOworICAgIHRoaXMuX3JlbW92ZWRTaXpl
ID0gZGlmZkZvckNsYXNzLnJlbW92ZWRTaXplOworICAgIHRoaXMuX3NpemVEZWx0YSA9IGRpZmZG
b3JDbGFzcy5zaXplRGVsdGE7CisKKyAgICB0aGlzLl9kZWxldGVkSW5kZXhlcyA9IGRpZmZGb3JD
bGFzcy5kZWxldGVkSW5kZXhlczsKIAogICAgIC8qKgogICAgICAqIEB0eXBlIHtXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90SXRlcmF0b3JzVHVwbGV9CiAgICAgICovCi0gICAgdGhpcy5fcHJvdmlk
ZXIgPSB0aGlzLl9jcmVhdGVOb2Rlc1Byb3ZpZGVyKHRyZWUuYmFzZVNuYXBzaG90LCB0cmVlLnNu
YXBzaG90LCBhZ2dyZWdhdGUgPyBhZ2dyZWdhdGUudHlwZSA6IGJhc2VBZ2dyZWdhdGUudHlwZSwg
Y2xhc3NOYW1lKTsKKyAgICB0aGlzLl9wcm92aWRlciA9IHRoaXMuX2NyZWF0ZU5vZGVzUHJvdmlk
ZXIodHJlZS5iYXNlU25hcHNob3QsIHRyZWUuc25hcHNob3QsIGNsYXNzTmFtZSk7CiB9CiAKIFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3REaWZmTm9kZS5wcm90b3R5cGUgPSB7Ci0gICAgY2FsY3Vs
YXRlRGlmZjogZnVuY3Rpb24oZGF0YUdyaWQsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgdmFy
IGRpZmYgPSBkYXRhR3JpZC5zbmFwc2hvdC5jcmVhdGVEaWZmKHRoaXMuX25hbWUpOwotCi0gICAg
ICAgIGZ1bmN0aW9uIGRpZmZDYWxjdWxhdGVkKGRpZmZSZXN1bHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGRpZmYuZGlzcG9zZSgpOwotICAgICAgICAgICAgdGhpcy5fYWRkZWRDb3VudCA9IGRp
ZmZSZXN1bHQuYWRkZWRDb3VudDsKLSAgICAgICAgICAgIHRoaXMuX3JlbW92ZWRDb3VudCA9IGRp
ZmZSZXN1bHQucmVtb3ZlZENvdW50OwotICAgICAgICAgICAgdGhpcy5fY291bnREZWx0YSA9IGRp
ZmZSZXN1bHQuY291bnREZWx0YTsKLSAgICAgICAgICAgIHRoaXMuX2FkZGVkU2l6ZSA9IGRpZmZS
ZXN1bHQuYWRkZWRTaXplOwotICAgICAgICAgICAgdGhpcy5fcmVtb3ZlZFNpemUgPSBkaWZmUmVz
dWx0LnJlbW92ZWRTaXplOwotICAgICAgICAgICAgdGhpcy5fc2l6ZURlbHRhID0gZGlmZlJlc3Vs
dC5zaXplRGVsdGE7Ci0gICAgICAgICAgICB0aGlzLl9iYXNlSW5kZXhlcyA9IG51bGw7Ci0gICAg
ICAgICAgICB0aGlzLl9pbmRleGVzID0gbnVsbDsKLSAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMu
X2FkZGVkU2l6ZSA9PT0gMCAmJiB0aGlzLl9yZW1vdmVkU2l6ZSA9PT0gMCk7Ci0gICAgICAgIH0K
LSAgICAgICAgZnVuY3Rpb24gYmFzZVNlbGZTaXplc1JlY2VpdmVkKGJhc2VTZWxmU2l6ZXMpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGRpZmYucHVzaEJhc2VTZWxmU2l6ZXMoYmFzZVNlbGZTaXpl
cyk7Ci0gICAgICAgICAgICBkaWZmLmNhbGN1bGF0ZShkaWZmQ2FsY3VsYXRlZC5iaW5kKHRoaXMp
KTsKLSAgICAgICAgfQotICAgICAgICBmdW5jdGlvbiBiYXNlSWRzUmVjZWl2ZWQoYmFzZUlkcykK
LSAgICAgICAgewotICAgICAgICAgICAgZGlmZi5wdXNoQmFzZUlkcyhiYXNlSWRzKTsKLSAgICAg
ICAgICAgIGRhdGFHcmlkLnNuYXBzaG90LnB1c2hCYXNlSWRzKGRhdGFHcmlkLmJhc2VTbmFwc2hv
dC51aWQsIHRoaXMuX25hbWUsIGJhc2VJZHMpOwotICAgICAgICAgICAgZGF0YUdyaWQuYmFzZVNu
YXBzaG90Lm5vZGVGaWVsZFZhbHVlc0J5SW5kZXgoInNlbGZTaXplIiwgdGhpcy5fYmFzZUluZGV4
ZXMsIGJhc2VTZWxmU2l6ZXNSZWNlaXZlZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgfQotICAgICAg
ICBmdW5jdGlvbiBpZHNSZWNlaXZlZChpZHMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGRhdGFH
cmlkLmJhc2VTbmFwc2hvdC5wdXNoQmFzZUlkcyhkYXRhR3JpZC5zbmFwc2hvdC51aWQsIHRoaXMu
X25hbWUsIGlkcyk7Ci0gICAgICAgIH0KLSAgICAgICAgZGF0YUdyaWQuYmFzZVNuYXBzaG90Lm5v
ZGVGaWVsZFZhbHVlc0J5SW5kZXgoImlkIiwgdGhpcy5fYmFzZUluZGV4ZXMsIGJhc2VJZHNSZWNl
aXZlZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgZGF0YUdyaWQuc25hcHNob3Qubm9kZUZpZWxkVmFs
dWVzQnlJbmRleCgiaWQiLCB0aGlzLl9pbmRleGVzLCBpZHNSZWNlaXZlZC5iaW5kKHRoaXMpKTsK
LSAgICB9LAotCiAgICAgX2NyZWF0ZUNoaWxkTm9kZTogZnVuY3Rpb24oaXRlbSwgcHJvdmlkZXIp
CiAgICAgewogICAgICAgICBpZiAocHJvdmlkZXIgPT09IHRoaXMuX3Byb3ZpZGVyLl9pdDEpCi0g
ICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RJbnN0YW5jZU5v
ZGUodGhpcy5fZGF0YUdyaWQsIG51bGwsIHByb3ZpZGVyLnNuYXBzaG90LCBpdGVtKTsKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEluc3RhbmNlTm9kZSh0
aGlzLl9kYXRhR3JpZCwgbnVsbCwgdGhpcy5fcHJvdmlkZXIuc25hcHNob3QsIGl0ZW0pOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3RJbnN0YW5jZU5vZGUodGhpcy5fZGF0YUdyaWQsIHByb3ZpZGVyLnNuYXBzaG90LCBudWxsLCBp
dGVtKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdElu
c3RhbmNlTm9kZSh0aGlzLl9kYXRhR3JpZCwgdGhpcy5fcHJvdmlkZXIuYmFzZVNuYXBzaG90LCBu
dWxsLCBpdGVtKTsKICAgICB9LAogCi0gICAgX2NyZWF0ZU5vZGVzUHJvdmlkZXI6IGZ1bmN0aW9u
KGJhc2VTbmFwc2hvdCwgc25hcHNob3QsIG5vZGVUeXBlLCBub2RlQ2xhc3NOYW1lKQorICAgIF9j
cmVhdGVOb2Rlc1Byb3ZpZGVyOiBmdW5jdGlvbihiYXNlU25hcHNob3QsIHNuYXBzaG90KQogICAg
IHsKICAgICAgICAgdmFyIGNsYXNzTmFtZSA9IHRoaXMuX25hbWU7CiAgICAgICAgIHJldHVybiBu
ZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEl0ZXJhdG9yc1R1cGxlKAotICAgICAgICAgICAg
Y3JlYXRlUHJvdmlkZXIoc25hcHNob3QsIGJhc2VTbmFwc2hvdCksIGNyZWF0ZVByb3ZpZGVyKGJh
c2VTbmFwc2hvdCwgc25hcHNob3QpKTsKLQotICAgICAgICBmdW5jdGlvbiBjcmVhdGVQcm92aWRl
cihzbmFwc2hvdCwgb3RoZXJTbmFwc2hvdCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIG90
aGVyU25hcHNob3RJZCA9IG90aGVyU25hcHNob3QudWlkOwotICAgICAgICAgICAgdmFyIHByb3Zp
ZGVyID0gc25hcHNob3QuY3JlYXRlTm9kZXNQcm92aWRlcigKLSAgICAgICAgICAgICAgICAiZnVu
Y3Rpb24gKG5vZGUpIHsiICsKLSAgICAgICAgICAgICAgICAiICAgICByZXR1cm4gbm9kZS50eXBl
ID09PSBcIiIgKyBub2RlVHlwZSArICJcIiAiICsKLSAgICAgICAgICAgICAgICAobm9kZUNsYXNz
TmFtZSAhPT0gbnVsbCA/ICImJiBub2RlLmNsYXNzTmFtZSA9PT0gXCIiICsgbm9kZUNsYXNzTmFt
ZSArICJcIiIgOiAiIikgKwotICAgICAgICAgICAgICAgICIgICAgICAgICAmJiAhdGhpcy5iYXNl
U25hcHNob3RIYXNOb2RlKCIgKyBvdGhlclNuYXBzaG90SWQgKyAiLCBcIiIgKyBjbGFzc05hbWUg
KyAiXCIsIG5vZGUuaWQpOyIgKwotICAgICAgICAgICAgICAgICJ9Iik7Ci0gICAgICAgICAgICBw
cm92aWRlci5zbmFwc2hvdCA9IHNuYXBzaG90OwotICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVy
OwotICAgICAgICB9CisgICAgICAgICAgICBzbmFwc2hvdC5jcmVhdGVBZGRlZE5vZGVzUHJvdmlk
ZXIoYmFzZVNuYXBzaG90LnVpZCwgY2xhc3NOYW1lKSwKKyAgICAgICAgICAgIGJhc2VTbmFwc2hv
dC5jcmVhdGVEZWxldGVkTm9kZXNQcm92aWRlcih0aGlzLl9kZWxldGVkSW5kZXhlcyksCisgICAg
ICAgICAgICBiYXNlU25hcHNob3QsCisgICAgICAgICAgICBzbmFwc2hvdCk7CiAgICAgfSwKIAog
ICAgIF9jaGlsZEhhc2hGb3JFbnRpdHk6IGZ1bmN0aW9uKG5vZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFByb3h5LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RQcm94eS5qcwppbmRl
eCA5ODNmNzM2NTU4MjAyNjI2ZWY5YzQ3ZjJjZDgxOTk0ZWM5NTk2OTkwLi5hMzIyZGM0ZjgxM2Jj
YWQyZTMzM2ViNjI3ODE0ZjI0NTM1YzdlYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFByb3h5LmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90UHJveHkuanMKQEAgLTM3Miw5ICsz
NzIsMTQgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3h5LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5jYWxsTWV0aG9kKGNhbGxiYWNrLCAiYWdncmVnYXRlcyIsIHNvcnRlZEluZGV4
ZXMsIGtleSwgZmlsdGVyKTsKICAgICB9LAogCi0gICAgY3JlYXRlRGlmZjogZnVuY3Rpb24oY2xh
c3NOYW1lKQorICAgIGFnZ3JlZ2F0ZXNGb3JEaWZmOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLmNhbGxGYWN0b3J5TWV0aG9kKG51bGwsICJjcmVhdGVEaWZm
IiwgICJXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90c0RpZmZQcm94eSIsIGNsYXNzTmFtZSk7Cisg
ICAgICAgIHRoaXMuY2FsbE1ldGhvZChjYWxsYmFjaywgImFnZ3JlZ2F0ZXNGb3JEaWZmIik7Cisg
ICAgfSwKKworICAgIGNhbGN1bGF0ZVNuYXBzaG90RGlmZjogZnVuY3Rpb24oYmFzZVNuYXBzaG90
SWQsIGJhc2VTbmFwc2hvdEFnZ3JlZ2F0ZXMsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdGhp
cy5jYWxsTWV0aG9kKGNhbGxiYWNrLCAiY2FsY3VsYXRlU25hcHNob3REaWZmIiwgYmFzZVNuYXBz
aG90SWQsIGJhc2VTbmFwc2hvdEFnZ3JlZ2F0ZXMpOwogICAgIH0sCiAKICAgICBjcmVhdGVFZGdl
c1Byb3ZpZGVyOiBmdW5jdGlvbihub2RlSW5kZXgsIGZpbHRlcikKQEAgLTM4Nyw2ICszOTIsMTYg
QEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3h5LnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIHRoaXMuY2FsbEZhY3RvcnlNZXRob2QobnVsbCwgImNyZWF0ZVJldGFpbmluZ0VkZ2Vz
UHJvdmlkZXIiLCAiV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3ZpZGVyUHJveHkiLCBub2Rl
SW5kZXgsIGZpbHRlcik7CiAgICAgfSwKIAorICAgIGNyZWF0ZUFkZGVkTm9kZXNQcm92aWRlcjog
ZnVuY3Rpb24oYmFzZVNuYXBzaG90SWQsIGNsYXNzTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmNhbGxGYWN0b3J5TWV0aG9kKG51bGwsICJjcmVhdGVBZGRlZE5vZGVzUHJvdmlkZXIi
LCAiV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3ZpZGVyUHJveHkiLCBiYXNlU25hcHNob3RJ
ZCwgY2xhc3NOYW1lKTsKKyAgICB9LAorCisgICAgY3JlYXRlRGVsZXRlZE5vZGVzUHJvdmlkZXI6
IGZ1bmN0aW9uKG5vZGVJbmRleGVzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEZh
Y3RvcnlNZXRob2QobnVsbCwgImNyZWF0ZURlbGV0ZWROb2Rlc1Byb3ZpZGVyIiwgIldlYkluc3Bl
Y3Rvci5IZWFwU25hcHNob3RQcm92aWRlclByb3h5Iiwgbm9kZUluZGV4ZXMpOworICAgIH0sCisK
ICAgICBjcmVhdGVOb2Rlc1Byb3ZpZGVyOiBmdW5jdGlvbihmaWx0ZXIpCiAgICAgewogICAgICAg
ICByZXR1cm4gdGhpcy5jYWxsRmFjdG9yeU1ldGhvZChudWxsLCAiY3JlYXRlTm9kZXNQcm92aWRl
ciIsICJXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvdmlkZXJQcm94eSIsIGZpbHRlcik7CkBA
IC00MjIsMjEgKzQzNywxMSBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJveHkucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc3RhdGljRGF0YS5ub2RlQ291bnQ7CiAgICAg
fSwKIAotICAgIG5vZGVGaWVsZFZhbHVlc0J5SW5kZXg6IGZ1bmN0aW9uKGZpZWxkTmFtZSwgaW5k
ZXhlcywgY2FsbGJhY2spCi0gICAgewotICAgICAgICB0aGlzLmNhbGxNZXRob2QoY2FsbGJhY2ss
ICJub2RlRmllbGRWYWx1ZXNCeUluZGV4IiwgZmllbGROYW1lLCBpbmRleGVzKTsKLSAgICB9LAot
CiAgICAgZ2V0IG5vZGVGbGFncygpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fc3RhdGlj
RGF0YS5ub2RlRmxhZ3M7CiAgICAgfSwKIAotICAgIHB1c2hCYXNlSWRzOiBmdW5jdGlvbihzbmFw
c2hvdElkLCBjbGFzc05hbWUsIG5vZGVJZHMpCi0gICAgewotICAgICAgICB0aGlzLmNhbGxNZXRo
b2QobnVsbCwgInB1c2hCYXNlSWRzIiwgc25hcHNob3RJZCwgY2xhc3NOYW1lLCBub2RlSWRzKTsK
LSAgICB9LAotCiAgICAgZ2V0IHJvb3ROb2RlSW5kZXgoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRoaXMuX3N0YXRpY0RhdGEucm9vdE5vZGVJbmRleDsKQEAgLTQ5OCwzMSArNTAzLDMgQEAgV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3ZpZGVyUHJveHkucHJvdG90eXBlID0gewogfTsKIAog
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3ZpZGVyUHJveHkucHJvdG90eXBlLl9fcHJvdG9f
XyA9IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eU9iamVjdC5wcm90b3R5cGU7Ci0KLS8q
KgotICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dFByb3h5T2JqZWN0fQotICovCi1XZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90c0RpZmZQcm94eSA9
IGZ1bmN0aW9uKHdvcmtlciwgb2JqZWN0SWQpCi17Ci0gICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdFByb3h5T2JqZWN0LmNhbGwodGhpcywgd29ya2VyLCBvYmplY3RJZCk7Ci19Ci0KLVdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3RzRGlmZlByb3h5LnByb3RvdHlwZSA9IHsKLSAgICBjYWxjdWxh
dGU6IGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgdGhpcy5jYWxsTWV0aG9kKGNh
bGxiYWNrLCAiY2FsY3VsYXRlIik7Ci0gICAgfSwKLQotICAgIHB1c2hCYXNlSWRzOiBmdW5jdGlv
bihiYXNlSWRzKQotICAgIHsKLSAgICAgICAgdGhpcy5jYWxsTWV0aG9kKG51bGwsICJwdXNoQmFz
ZUlkcyIsIGJhc2VJZHMpOwotICAgIH0sCi0KLSAgICBwdXNoQmFzZVNlbGZTaXplczogZnVuY3Rp
b24oYmFzZVNlbGZTaXplcykKLSAgICB7Ci0gICAgICAgIHRoaXMuY2FsbE1ldGhvZChudWxsLCAi
cHVzaEJhc2VTZWxmU2l6ZXMiLCBiYXNlU2VsZlNpemVzKTsKLSAgICB9Ci19OwotCi1XZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90c0RpZmZQcm94eS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdFByb3h5T2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcwppbmRl
eCA3ODM0NjIwNDU0NTQzYWVjMGI2ODZiNzU3OTk0YzYwZDRjZDRkMTMyLi4xNDIwNWY0YTU1M2Mw
MmFkNWZmMDAzZTgzMjhiMDQyYmI5ZGJkNDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCkBAIC0zNzAsNyArMzcw
LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFZpZXcucHJvdG90eXBlID0gewogCiAgICAg
ICAgIHRoaXMuX2Jhc2VQcm9maWxlVWlkID0gdGhpcy5fcHJvZmlsZXMoKVt0aGlzLmJhc2VTZWxl
Y3RFbGVtZW50LnNlbGVjdGVkSW5kZXhdLnVpZDsKICAgICAgICAgdmFyIGRhdGFHcmlkID0gLyoq
IEB0eXBlIHtXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RGlmZkRhdGFHcmlkfSAqLyB0aGlzLmRh
dGFHcmlkOwotICAgICAgICBkYXRhR3JpZC5fYmFzZVByb2ZpbGVJbmRleENoYW5nZWQodGhpcy5f
bG9hZFByb2ZpbGVCeUluZGV4LmJpbmQodGhpcyksIHRoaXMuYmFzZVNlbGVjdEVsZW1lbnQuc2Vs
ZWN0ZWRJbmRleCk7CisgICAgICAgIHRoaXMuX2xvYWRQcm9maWxlKHRoaXMuX2Jhc2VQcm9maWxl
VWlkLCBkYXRhR3JpZC5zZXRCYXNlRGF0YVNvdXJjZS5iaW5kKGRhdGFHcmlkKSk7CiAKICAgICAg
ICAgaWYgKCF0aGlzLmN1cnJlbnRRdWVyeSB8fCAhdGhpcy5fc2VhcmNoRmluaXNoZWRDYWxsYmFj
ayB8fCAhdGhpcy5fc2VhcmNoUmVzdWx0cykKICAgICAgICAgICAgIHJldHVybjsKQEAgLTQyNSwx
MiArNDI1LDYgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFZpZXcucHJvdG90eXBlID0gewog
ICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLmxvYWRIZWFwU25hcHNob3QocHJv
ZmlsZVVpZCwgY2FsbGJhY2spOwogICAgIH0sCiAKLSAgICBfbG9hZFByb2ZpbGVCeUluZGV4OiBm
dW5jdGlvbihwcm9maWxlSW5kZXgsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgdmFyIHByb2Zp
bGVVaWQgPSB0aGlzLl9wcm9maWxlcygpW3Byb2ZpbGVJbmRleF0udWlkOwotICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLmxvYWRIZWFwU25hcHNob3QocHJvZmlsZVVpZCwgY2Fs
bGJhY2spOwotICAgIH0sCi0KICAgICBpc0RldGFpbGVkU25hcHNob3Q6IGZ1bmN0aW9uKHNuYXBz
aG90KQogICAgIHsKICAgICAgICAgdmFyIHMgPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dChzbmFwc2hvdCk7Cg==
</data>
<flag name="review"
          id="143652"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>