<?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>167191</bug_id>
          
          <creation_ts>2017-01-18 20:07:45 -0800</creation_ts>
          <short_desc>Add a mechanism to dispatch and listen to an action</short_desc>
          <delta_ts>2017-01-19 14:59:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Perf Dashboard</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1267999</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-18 20:07:45 -0800</bug_when>
    <thetext>Right now, various perf dashboard components have methods like setCallback
to do work when some user-initiated or network-initiated events.

Introduce the notion of &quot;action&quot; to standardize this mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268048</commentid>
    <comment_count>1</comment_count>
      <attachid>299235</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-18 23:23:48 -0800</bug_when>
    <thetext>Created attachment 299235
Adds the notion of an action</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268198</commentid>
    <comment_count>2</comment_count>
      <attachid>299235</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-19 14:58:33 -0800</bug_when>
    <thetext>Comment on attachment 299235
Adds the notion of an action

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268200</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-19 14:59:57 -0800</bug_when>
    <thetext>Committed r210938: &lt;http://trac.webkit.org/changeset/210938&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299235</attachid>
            <date>2017-01-18 23:23:48 -0800</date>
            <delta_ts>2017-01-19 14:58:33 -0800</delta_ts>
            <desc>Adds the notion of an action</desc>
            <filename>bug-167191-20170118232218.patch</filename>
            <type>text/plain</type>
            <size>18228</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjEwOTA5KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQyIEBACisyMDE3LTAxLTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEFkZCBhIG1lY2hhbmlzbSB0byBkaXNwYXRjaCBhbmQgbGlzdGVuIHRvIGFuIGFj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3
MTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgdGhlIG5vdGlvbiBvZiBhbiBhY3Rpb24gdG8gY29tcG9uZW50cy4gTGlrZSBET00gZXZlbnRz
LCBpdCBjYW4gYmUgZGlzcGF0Y2hlZCBvciBsaXN0ZW4gdG8uCisKKyAgICAgICAgQWxzbyBhZGRl
ZCBDb21wb25lbnRCYXNlLnByb3RvdHlwZS5wYXJ0IHdoaWNoIGZpbmRzIGEgc3ViLWNvbXBvbmVu
dCBpbnNpZGUgYSBjb21wb25lbnQncyBzaGFkb3cgdHJlZSwKKyAgICAgICAgYW5kIG1hZGUgQ29t
cG9uZW50QmFzZS5wcm90b3R5cGUuY29udGVudCB0YWtlIGFuIGlkIHRvIGZpbmQgYW4gZWxlbWVu
dCB0aGF0IG1hdGNoZXMgaXQuCisKKyAgICAgICAgKiBicm93c2VyLXRlc3RzL2Nsb3NlLWJ1dHRv
bi10ZXN0cy5qczogQWRkZWQuIFRlc3RzIGZvciBDbG9zZUJ1dHRvbi4KKyAgICAgICAgKiBicm93
c2VyLXRlc3RzL2NvbXBvbmVudC1iYXNlLXRlc3RzLmpzOiBBZGRlZCB0ZXN0cyBmb3IgQ29tcG9u
ZW50QmFzZSdzIHBhcnQofiksIGNvbnRlbnQoaWQpLCBkaXNwYXRjaEV2ZW50LgorICAgICAgICAq
IGJyb3dzZXItdGVzdHMvaW5kZXguaHRtbDoKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50
cy9iYXNlLmpzOgorICAgICAgICAoQ29tcG9uZW50QmFzZSk6IEFkZGVkIHRoaXMuX2FjdGlvbkNh
bGxiYWNrcywgd2hpY2ggaXMgYSBtYXAgb2YgYW4gYWN0aW9uIG5hbWUgdG8gYSBjYWxsYmFjayB0
byBiZSBpbnZva2VkLgorICAgICAgICAoQ29tcG9uZW50QmFzZS5wcm90b3R5cGUuY29udGVudCk6
IFJldHVybiBhbiBlbGVtZW50IG9mIHRoZSBnaXZlbiBpZCBpZiBvbmUgaXMgc3BlY2lmaWVkLgor
ICAgICAgICAoQ29tcG9uZW50QmFzZS5wcm90b3R5cGUucGFydCk6IEZpbmQgYSBjb21wb25lbnQg
d2hvc2UgZWxlbWVudCBoYXMgdGhlIG1hdGNoaW5nIGlkLgorICAgICAgICAoQ29tcG9uZW50QmFz
ZS5wcm90b3R5cGUuZGlzcGF0Y2hBY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKENvbXBvbmVudEJh
c2UucHJvdG90eXBlLmxpc3RlblRvQWN0aW9uKTogQWRkZWQuCisgICAgICAgIChDb21wb25lbnRC
YXNlLnByb3RvdHlwZS5fZW5zdXJlU2hhZG93VHJlZSk6IENhbGwgZGlkQ29uc3RydWN0U2hhZG93
VHJlZS4KKyAgICAgICAgKENvbXBvbmVudEJhc2UucHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRv
d1RyZWUpOiBBZGRlZC4KKyAgICAgICAgKENvbXBvbmVudEJhc2UucHJvdG90eXBlLl9yZWN1cnNp
dmVseVJlcGxhY2VVbmtub3duRWxlbWVudHNCeUNvbXBvbmVudHMpOiBDb3B5IGF0dHJpYnV0ZXMg
d2hlbiBpbnN0YW50aWF0aW5nCisgICAgICAgIGFuIGVsZW1lbnQgZm9yIGEgY29tcG9uZW50IHdo
ZW4gdGhlIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGN1c3RvbSBlbGVtZW50cyBBUEkuCisgICAg
ICAgIChDb21wb25lbnRCYXNlLmNyZWF0ZUxpbmspOgorICAgICAgICAoQ29tcG9uZW50QmFzZS5w
cm90b3R5cGUuY3JlYXRlRXZlbnRIYW5kbGVyKTogQWRkZWQuCisgICAgICAgIChDb21wb25lbnRC
YXNlLmNyZWF0ZUV2ZW50SGFuZGxlcik6IFJlbmFtZWQgZnJvbSBjcmVhdGVBY3Rpb25IYW5kbGVy
LgorICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2J1dHRvbi1iYXNlLmpzOgorICAgICAg
ICAoQnV0dG9uQmFzZS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6IEFkZGVkLiBE
aXNwYXRjaCAiYWN0aXZhdGUiIGFjdGlvbiB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC4KKyAg
ICAgICAgKEJ1dHRvbkJhc2UucHJvdG90eXBlLnNldENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgKEJ1dHRvbkJhc2UuaHRtbFRlbXBsYXRlKTogVXNlIGlkIGluc3RlYWQgb2YgY2xhc3Mgc28g
dGhhdCB0aGlzLmNvbnRlbnQoKSBjYW4gZmluZCBpdC4KKyAgICAgICAgKEJ1dHRvbkJhc2UuY3Nz
VGVtcGxhdGUpOiBVcGRhdGVkIHN0eWxlIHJ1bGVzLgorICAgICAgICAqIHB1YmxpYy92My9wYWdl
cy9jaGFydC1wYW5lLmpzOgorICAgICAgICAoQ2hhcnRQYW5lKToKKyAgICAgICAgKENoYXJ0UGFu
ZS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6IEFkZGVkLiBMaXN0ZW4gdG8gImFj
dGl2YXRlIiBhY3Rpb24gb24gdGhlIGNsb3NlIGJ1dHRvbi4KKyAgICAgICAgKENoYXJ0UGFuZS5w
cm90b3R5cGUucmVuZGVyKTogRml4ZWQgYSBidWcgdGhhdCB3ZSB3ZXJlIG5ldmVyIGNhbGxpbmcg
ZW5xdWV1ZVRvUmVuZGVyIG9uIHRoZSBjbG9zZSBidXR0b24uCisgICAgICAgIChDaGFydFBhbmUu
aHRtbFRlbXBsYXRlKTogQWRkIHRoZSBpZCBvbiB0aGUgY2xvc2UgYnV0dG9uLgorCiAyMDE3LTAx
LTE4ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgICdidWlsZGJv
dC1zeW5jZXIuanMnIHNob3VsZCBiZSBhYmxlIHRvIGRldGVybWluZSBmb3JjZSBidWlsZCBhcmd1
bWVudCBmcm9tIGEgbGlzdCBvZiBwb3NzaWJsZSByZXBvc2l0b3JpZXMuCkluZGV4OiBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jbG9zZS1idXR0b24tdGVzdHMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY2xvc2Ut
YnV0dG9uLXRlc3RzLmpzCShub25leGlzdGVudCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9icm93c2VyLXRlc3RzL2Nsb3NlLWJ1dHRvbi10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDI1IEBACisKK2Rlc2NyaWJlKCdDbG9zZUJ1dHRvbicsICgpID0+IHsKKyAgICBjb25z
dCBzY3JpcHRzID0gWydpbnN0cnVtZW50YXRpb24uanMnLCAnY29tcG9uZW50cy9iYXNlLmpzJywg
J2NvbXBvbmVudHMvYnV0dG9uLWJhc2UuanMnLCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24uanMn
XTsKKworICAgIGl0KCdtdXN0IGRpc3BhdGNoICJhY3RpdmF0ZSIgYWN0aW9uIHdoZW4gdGhlIGFu
Y2hvciBpcyBjbGlja2VkJywgKCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IEJy
b3dzaW5nQ29udGV4dCgpOworICAgICAgICByZXR1cm4gY29udGV4dC5pbXBvcnRTY3JpcHRzKHNj
cmlwdHMsICdDbG9zZUJ1dHRvbicpLnRoZW4oKENsb3NlQnV0dG9uKSA9PiB7CisgICAgICAgICAg
ICBjb25zdCBjbG9zZUJ1dHRvbiA9IG5ldyBDbG9zZUJ1dHRvbjsKKyAgICAgICAgICAgIGNvbnRl
eHQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbG9zZUJ1dHRvbi5lbGVtZW50KCkpOworCisg
ICAgICAgICAgICBjbG9zZUJ1dHRvbi5jb250ZW50KCkucXVlcnlTZWxlY3RvcignYScpLmNsaWNr
KCk7CisKKyAgICAgICAgICAgIGxldCBhY3RpdmF0ZUNvdW50ID0gMDsKKyAgICAgICAgICAgIGNs
b3NlQnV0dG9uLmxpc3RlblRvQWN0aW9uKCdhY3RpdmF0ZScsICgpID0+IHsKKyAgICAgICAgICAg
ICAgICBhY3RpdmF0ZUNvdW50Kys7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGV4cGVj
dChhY3RpdmF0ZUNvdW50KS50b0JlKDApOworICAgICAgICAgICAgY2xvc2VCdXR0b24uY29udGVu
dCgpLnF1ZXJ5U2VsZWN0b3IoJ2EnKS5jbGljaygpOworICAgICAgICAgICAgZXhwZWN0KGFjdGl2
YXRlQ291bnQpLnRvQmUoMSk7CisgICAgICAgICAgICBjbG9zZUJ1dHRvbi5jb250ZW50KCkucXVl
cnlTZWxlY3RvcignYScpLmNsaWNrKCk7CisgICAgICAgICAgICBleHBlY3QoYWN0aXZhdGVDb3Vu
dCkudG9CZSgyKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKK30pOwpJbmRleDogV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29tcG9uZW50LWJhc2UtdGVzdHMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29tcG9u
ZW50LWJhc2UtdGVzdHMuanMJKHJldmlzaW9uIDIxMDkwOSkKKysrIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9icm93c2VyLXRlc3RzL2NvbXBvbmVudC1iYXNlLXRlc3RzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC03LDcgKzcsNyBAQCBkZXNjcmliZSgnQ29tcG9uZW50QmFzZScsIGZ1bmN0aW9uKCkg
ewogICAgICAgICByZXR1cm4gY29udGV4dC5pbXBvcnRTY3JpcHQoJ2NvbXBvbmVudHMvYmFzZS5q
cycsICdDb21wb25lbnRCYXNlJykudGhlbigoQ29tcG9uZW50QmFzZSkgPT4gewogICAgICAgICAg
ICAgY2xhc3MgU29tZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEJhc2UgeyB9CiAgICAgICAg
ICAgICBpZiAob3B0aW9ucy5odG1sVGVtcGxhdGUpCi0gICAgICAgICAgICAgICAgU29tZUNvbXBv
bmVudC5odG1sVGVtcGxhdGUgPSAoKSA9PiB7IHJldHVybiAnPGRpdiBzdHlsZT0iaGVpZ2h0OiAx
MHB4OyI+PC9kaXY+JzsgfTsKKyAgICAgICAgICAgICAgICBTb21lQ29tcG9uZW50Lmh0bWxUZW1w
bGF0ZSA9ICgpID0+IHsgcmV0dXJuICc8ZGl2IGlkPSJkaXYiIHN0eWxlPSJoZWlnaHQ6IDEwcHg7
Ij48L2Rpdj4nOyB9OwogICAgICAgICAgICAgaWYgKG9wdGlvbnMuY3NzVGVtcGxhdGUpCiAgICAg
ICAgICAgICAgICAgU29tZUNvbXBvbmVudC5jc3NUZW1wbGF0ZSA9ICgpID0+IHsgcmV0dXJuICc6
aG9zdCB7IGhlaWdodDogMTBweDsgfSc7IH07CiAKQEAgLTg3LDYgKzg3LDgyIEBAIGRlc2NyaWJl
KCdDb21wb25lbnRCYXNlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZXhwZWN0KGlu
c3RhbmNlLmNvbnRlbnQoKSkudG9CZShpbnN0YW5jZS5jb250ZW50KCkpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGl0KCdtdXN0IHJldHVybiB0aGUgZWxlbWVudCBt
YXRjaGluZyB0aGUgaWQgaWYgYW4gaWQgaXMgc3BlY2lmaWVkJywgKCkgPT4geworICAgICAgICAg
ICAgcmV0dXJuIG5ldyBCcm93c2luZ0NvbnRleHQoKS5pbXBvcnRTY3JpcHRzKFsnaW5zdHJ1bWVu
dGF0aW9uLmpzJywgJ2NvbXBvbmVudHMvYmFzZS5qcyddLCAnQ29tcG9uZW50QmFzZScpLnRoZW4o
KENvbXBvbmVudEJhc2UpID0+IHsKKyAgICAgICAgICAgICAgICBjbGFzcyBTb21lQ29tcG9uZW50
IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBodG1s
VGVtcGxhdGUoKSB7IHJldHVybiAnPGRpdiBpZD0icGFydDEiIHRpdGxlPSJmb28iPjwvZGl2Pjxk
aXYgaWQ9InBhcnQxIj48L2Rpdj4nOyB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIENvbXBvbmVudEJhc2UuZGVmaW5lRWxlbWVudCgnc29tZS1jb21wb25lbnQnLCBTb21lQ29t
cG9uZW50KTsKKworICAgICAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IFNvbWVDb21w
b25lbnQ7CisgICAgICAgICAgICAgICAgY29uc3QgcGFydDEgPSBpbnN0YW5jZS5jb250ZW50KCdw
YXJ0MScpOworICAgICAgICAgICAgICAgIGV4cGVjdChwYXJ0MS5sb2NhbE5hbWUpLnRvQmUoJ2Rp
dicpOworICAgICAgICAgICAgICAgIGV4cGVjdChwYXJ0MS50aXRsZSkudG9CZSgnZm9vJyk7Cisg
ICAgICAgICAgICAgICAgZXhwZWN0KGluc3RhbmNlLmNvbnRlbnQoJ3BhcnQyJykpLnRvQmUobnVs
bCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmli
ZSgncGFydCgpJywgKCkgPT4geworICAgICAgICBpdCgnbXVzdCBjcmVhdGUgc2hhZG93IHRyZWUn
LCAoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdFRvQ2hlY2tFeGlzdGVuY2VP
ZlNoYWRvd1RyZWUoKGluc3RhbmNlLCBoYXNTaGFkb3dUcmVlKSA9PiB7CisgICAgICAgICAgICAg
ICAgaW5zdGFuY2UucGFydCgnZm9vJyk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGhhc1NoYWRv
d1RyZWUoKSkudG9CZSh0cnVlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnbXVzdCByZXR1cm4gdGhlIGNvbXBvbmVudCBtYXRjaGluZyB0aGUgaWQgaWYgYW4g
aWQgaXMgc3BlY2lmaWVkJywgKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIG5ldyBCcm93c2lu
Z0NvbnRleHQoKS5pbXBvcnRTY3JpcHRzKFsnaW5zdHJ1bWVudGF0aW9uLmpzJywgJ2NvbXBvbmVu
dHMvYmFzZS5qcyddLCAnQ29tcG9uZW50QmFzZScpLnRoZW4oKENvbXBvbmVudEJhc2UpID0+IHsK
KyAgICAgICAgICAgICAgICBjbGFzcyBTb21lQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFz
ZSB7IH0KKyAgICAgICAgICAgICAgICBDb21wb25lbnRCYXNlLmRlZmluZUVsZW1lbnQoJ3NvbWUt
Y29tcG9uZW50JywgU29tZUNvbXBvbmVudCk7CisKKyAgICAgICAgICAgICAgICBjbGFzcyBPdGhl
ckNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEJhc2UgeworICAgICAgICAgICAgICAgICAgICBz
dGF0aWMgaHRtbFRlbXBsYXRlKCkgeyByZXR1cm4gJzxzb21lLWNvbXBvbmVudCBpZD0iZm9vIj48
L3NvbWUtY29tcG9uZW50Pic7IH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
Q29tcG9uZW50QmFzZS5kZWZpbmVFbGVtZW50KCdvdGhlci1jb21wb25lbnQnLCBPdGhlckNvbXBv
bmVudCk7CisKKyAgICAgICAgICAgICAgICBjb25zdCBvdGhlckNvbXBvbmVudCA9IG5ldyBPdGhl
ckNvbXBvbmVudDsKKyAgICAgICAgICAgICAgICBjb25zdCBzb21lQ29tcG9uZW50ID0gb3RoZXJD
b21wb25lbnQucGFydCgnZm9vJyk7CisgICAgICAgICAgICAgICAgZXhwZWN0KHNvbWVDb21wb25l
bnQpLnRvQmVBKFNvbWVDb21wb25lbnQpOworICAgICAgICAgICAgICAgIGV4cGVjdChzb21lQ29t
cG9uZW50LmVsZW1lbnQoKS5pZCkudG9CZSgnZm9vJyk7CisgICAgICAgICAgICAgICAgZXhwZWN0
KG90aGVyQ29tcG9uZW50LnBhcnQoJ2ZvbycpKS50b0JlKHNvbWVDb21wb25lbnQpOworICAgICAg
ICAgICAgICAgIGV4cGVjdChvdGhlckNvbXBvbmVudC5wYXJ0KCdiYXInKSkudG9CZShudWxsKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCdk
aXNwYXRjaEFjdGlvbigpJywgKCkgPT4geworICAgICAgICBpdCgnbXVzdCBpbnZva2UgYSBjYWxs
YmFjayBzcGVjaWZpZWQgaW4gbGlzdGVuVG9BY3Rpb24nLCAoKSA9PiB7CisgICAgICAgICAgICBy
ZXR1cm4gbmV3IEJyb3dzaW5nQ29udGV4dCgpLmltcG9ydFNjcmlwdHMoWydpbnN0cnVtZW50YXRp
b24uanMnLCAnY29tcG9uZW50cy9iYXNlLmpzJ10sICdDb21wb25lbnRCYXNlJykudGhlbigoQ29t
cG9uZW50QmFzZSkgPT4geworICAgICAgICAgICAgICAgIGNsYXNzIFNvbWVDb21wb25lbnQgZXh0
ZW5kcyBDb21wb25lbnRCYXNlIHsgfQorICAgICAgICAgICAgICAgIENvbXBvbmVudEJhc2UuZGVm
aW5lRWxlbWVudCgnc29tZS1jb21wb25lbnQnLCBTb21lQ29tcG9uZW50KTsKKworICAgICAgICAg
ICAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IFNvbWVDb21wb25lbnQ7CisKKyAgICAgICAgICAg
ICAgICBjb25zdCBjYWxscyA9IFtdOworICAgICAgICAgICAgICAgIGluc3RhbmNlLmxpc3RlblRv
QWN0aW9uKCdhY3Rpb24nLCAoLi4uYXJncykgPT4geworICAgICAgICAgICAgICAgICAgICBjYWxs
cy5wdXNoKGFyZ3MpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGNvbnN0
IG9iamVjdCA9IHsnZm9vJzogMX07CisgICAgICAgICAgICAgICAgaW5zdGFuY2UuZGlzcGF0Y2hB
Y3Rpb24oJ2FjdGlvbicsICdiYXInLCBvYmplY3QsIDUpOworCisgICAgICAgICAgICAgICAgZXhw
ZWN0KGNhbGxzLmxlbmd0aCkudG9CZSgxKTsKKyAgICAgICAgICAgICAgICBleHBlY3QoY2FsbHNb
MF1bMF0pLnRvQmUoJ2JhcicpOworICAgICAgICAgICAgICAgIGV4cGVjdChjYWxsc1swXVsxXSku
dG9CZShvYmplY3QpOworICAgICAgICAgICAgICAgIGV4cGVjdChjYWxsc1swXVsyXSkudG9CZSg1
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnbXVzdCBub3Qg
ZG8gYW55dGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gY2FsbGJhY2tzJywgKCkgPT4geworICAgICAg
ICAgICAgcmV0dXJuIG5ldyBCcm93c2luZ0NvbnRleHQoKS5pbXBvcnRTY3JpcHRzKFsnaW5zdHJ1
bWVudGF0aW9uLmpzJywgJ2NvbXBvbmVudHMvYmFzZS5qcyddLCAnQ29tcG9uZW50QmFzZScpLnRo
ZW4oKENvbXBvbmVudEJhc2UpID0+IHsKKyAgICAgICAgICAgICAgICBjbGFzcyBTb21lQ29tcG9u
ZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7IH0KKyAgICAgICAgICAgICAgICBDb21wb25lbnRC
YXNlLmRlZmluZUVsZW1lbnQoJ3NvbWUtY29tcG9uZW50JywgU29tZUNvbXBvbmVudCk7CisKKyAg
ICAgICAgICAgICAgICBjb25zdCBvYmplY3QgPSB7J2Zvbyc6IDF9OworICAgICAgICAgICAgICAg
IChuZXcgU29tZUNvbXBvbmVudCkuZGlzcGF0Y2hBY3Rpb24oJ2FjdGlvbicsICdiYXInLCBvYmpl
Y3QsIDUpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVz
Y3JpYmUoJ2VucXVldWVUb1JlbmRlcigpJywgKCkgPT4gewpAQCAtMjk4LDYgKzM3NCwzNiBAQCBk
ZXNjcmliZSgnQ29tcG9uZW50QmFzZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGV4
cGVjdChoYXNTaGFkb3dUcmVlKCkpLnRvQmUodHJ1ZSk7CiAgICAgICAgICAgICB9LCB7aHRtbFRl
bXBsYXRlOiBmYWxzZSwgY3NzVGVtcGxhdGU6IHRydWV9KTsKICAgICAgICAgfSk7CisKKyAgICAg
ICAgaXQoJ211c3QgaW52b2tlIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUgYWZ0ZXIgY3JlYXRpbmcg
dGhlIHNoYWRvdyB0cmVlJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IG5l
dyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmltcG9ydFNj
cmlwdHMoWydpbnN0cnVtZW50YXRpb24uanMnLCAnY29tcG9uZW50cy9iYXNlLmpzJ10sICdDb21w
b25lbnRCYXNlJykudGhlbigoQ29tcG9uZW50QmFzZSkgPT4geworICAgICAgICAgICAgICAgIGxl
dCBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlQ291bnQgPSAwOworICAgICAgICAgICAgICAgIGxldCBo
dG1sVGVtcGxhdGVDb3VudCA9IDA7CisKKyAgICAgICAgICAgICAgICBjbGFzcyBTb21lQ29tcG9u
ZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CisgICAgICAgICAgICAgICAgICAgIGRpZENvbnN0
cnVjdFNoYWRvd1RyZWUoKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBleHBlY3QodGhpcy5jb250ZW50KCkpLnRvQmVBKGNvbnRleHQuZ2xvYmFsLlNoYWRv
d1Jvb3QpOworICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ29uc3RydWN0U2hhZG93VHJlZUNv
dW50Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBzdGF0
aWMgaHRtbFRlbXBsYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgaHRtbFRlbXBsYXRlQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAnJzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBDb21wb25lbnRCYXNlLmRlZmluZUVsZW1lbnQoJ3NvbWUtY29tcG9uZW50Jywg
U29tZUNvbXBvbmVudCk7CisKKyAgICAgICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBT
b21lQ29tcG9uZW50OworICAgICAgICAgICAgICAgIGV4cGVjdChkaWRDb25zdHJ1Y3RTaGFkb3dU
cmVlQ291bnQpLnRvQmUoMCk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGh0bWxUZW1wbGF0ZUNv
dW50KS50b0JlKDApOworICAgICAgICAgICAgICAgIGluc3RhbmNlLnJlbmRlcigpOworICAgICAg
ICAgICAgICAgIGV4cGVjdChkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlQ291bnQpLnRvQmUoMSk7Cisg
ICAgICAgICAgICAgICAgZXhwZWN0KGh0bWxUZW1wbGF0ZUNvdW50KS50b0JlKDEpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJ2RlZmluZUVs
ZW1lbnQoKScsICgpID0+IHsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2Vy
LXRlc3RzL2luZGV4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvaW5kZXguaHRtbAkocmV2aXNpb24gMjEwOTA5KQorKysgV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvaW5kZXguaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KKzx0aXRsZT5J
bi1Ccm93c2VyIFRlc3RzIGZvciBQZXJmb3JtYW5jZSBEYXNoYm9hcmQ8L3RpdGxlPgogPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5yYXdnaXQuY29tL21vY2hhanMvbW9j
aGEvMi4yLjUvbW9jaGEuY3NzIj4KIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxh
cmUuY29tL2FqYXgvbGlicy9tb2NoYS8yLjIuNS9tb2NoYS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvZXhwZWN0LzEuMjAu
Mi9leHBlY3QubWluLmpzIj48L3NjcmlwdD4KQEAgLTEzLDYgKzE0LDcgQEAgbW9jaGEuc2V0dXAo
J2JkZCcpOwogPGJvZHk+CiA8ZGl2IGlkPSJtb2NoYSI+PC9kaXY+CiA8c2NyaXB0IHNyYz0iY29t
cG9uZW50LWJhc2UtdGVzdHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImNsb3NlLWJ1dHRv
bi10ZXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCiBhZnRlckVhY2goKCkgPT4gewpAQCAt
NDcsNiArNDksNyBAQCBjbGFzcyBCcm93c2luZ0NvbnRleHQgewogICAgICAgICAgICAgICAgIHNj
cmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcmVzb2x2ZSk7CiAgICAgICAgICAgICAgICAg
c2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgcmVqZWN0KTsKICAgICAgICAgICAgICAg
ICBzY3JpcHQuc3JjID0gJy4uL3B1YmxpYy92My8nICsgcGF0aDsKKyAgICAgICAgICAgICAgICBz
Y3JpcHQuYXN5bmMgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGls
ZChzY3JpcHQpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pKS50aGVuKCgpID0+IHsKSW5k
ZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9iYXNlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9u
ZW50cy9iYXNlLmpzCShyZXZpc2lvbiAyMTA5MDkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMTUsMTgg
KzE1LDQ0IEBAIGNsYXNzIENvbXBvbmVudEJhc2UgewogCiAgICAgICAgIHRoaXMuX2VsZW1lbnQg
PSBlbGVtZW50OwogICAgICAgICB0aGlzLl9zaGFkb3cgPSBudWxsOworICAgICAgICB0aGlzLl9h
Y3Rpb25DYWxsYmFja3MgPSBuZXcgTWFwOwogCiAgICAgICAgIGlmICghd2luZG93LmN1c3RvbUVs
ZW1lbnRzICYmIG5ldy50YXJnZXQuZW5xdWV1ZVRvUmVuZGVyT25SZXNpemUpCiAgICAgICAgICAg
ICBDb21wb25lbnRCYXNlLl9jb25uZWN0ZWRDb21wb25lbnRUb1JlbmRlck9uUmVzaXplKHRoaXMp
OwogICAgIH0KIAogICAgIGVsZW1lbnQoKSB7IHJldHVybiB0aGlzLl9lbGVtZW50OyB9Ci0gICAg
Y29udGVudCgpCisgICAgY29udGVudChpZCA9IG51bGwpCiAgICAgewogICAgICAgICB0aGlzLl9l
bnN1cmVTaGFkb3dUcmVlKCk7CisgICAgICAgIGlmICh0aGlzLl9zaGFkb3cgJiYgaWQgIT0gbnVs
bCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zaGFkb3cuZ2V0RWxlbWVudEJ5SWQoaWQpOwog
ICAgICAgICByZXR1cm4gdGhpcy5fc2hhZG93OwogICAgIH0KIAorICAgIHBhcnQoaWQpCisgICAg
eworICAgICAgICB0aGlzLl9lbnN1cmVTaGFkb3dUcmVlKCk7CisgICAgICAgIGlmICghdGhpcy5f
c2hhZG93KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIGNvbnN0IHBhcnQgPSB0
aGlzLl9zaGFkb3cuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICBpZiAoIXBhcnQpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIHBhcnQuY29tcG9uZW50KCk7Cisg
ICAgfQorCisgICAgZGlzcGF0Y2hBY3Rpb24oYWN0aW9uTmFtZSwgLi4uYXJncykKKyAgICB7Cisg
ICAgICAgIGNvbnN0IGNhbGxiYWNrID0gdGhpcy5fYWN0aW9uQ2FsbGJhY2tzLmdldChhY3Rpb25O
YW1lKTsKKyAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgY2FsbGJhY2suYXBwbHko
dGhpcywgYXJncyk7CisgICAgfQorCisgICAgbGlzdGVuVG9BY3Rpb24oYWN0aW9uTmFtZSwgY2Fs
bGJhY2spCisgICAgeworICAgICAgICB0aGlzLl9hY3Rpb25DYWxsYmFja3Muc2V0KGFjdGlvbk5h
bWUsIGNhbGxiYWNrKTsKKyAgICB9CisKICAgICByZW5kZXIoKSB7IHRoaXMuX2Vuc3VyZVNoYWRv
d1RyZWUoKTsgfQogCiAgICAgZW5xdWV1ZVRvUmVuZGVyKCkKQEAgLTExMiwxMCArMTM4LDEyIEBA
IGNsYXNzIENvbXBvbmVudEJhc2UgewogICAgICAgICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBu
ZXdUYXJnZXQuY3NzVGVtcGxhdGUoKTsKICAgICAgICAgICAgIHNoYWRvdy5hcHBlbmRDaGlsZChz
dHlsZSk7CiAgICAgICAgIH0KLQogICAgICAgICB0aGlzLl9zaGFkb3cgPSBzaGFkb3c7CisgICAg
ICAgIHRoaXMuZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpOwogICAgIH0KIAorICAgIGRpZENvbnN0
cnVjdFNoYWRvd1RyZWUoKSB7IH0KKwogICAgIF9yZWN1cnNpdmVseVJlcGxhY2VVbmtub3duRWxl
bWVudHNCeUNvbXBvbmVudHMocGFyZW50KQogICAgIHsKICAgICAgICAgbGV0IG5leHRTaWJsaW5n
OwpAQCAtMTI1LDYgKzE1MywxMiBAQCBjbGFzcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgICAg
ICAgICBpZiAoZWxlbWVudEludGVyZmFjZSkgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBj
b21wb25lbnQgPSBuZXcgZWxlbWVudEludGVyZmFjZSgpOwogICAgICAgICAgICAgICAgICAgICBj
b25zdCBuZXdDaGlsZCA9IGNvbXBvbmVudC5lbGVtZW50KCk7CisKKyAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZC5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRyID0gY2hpbGQuYXR0cmlidXRlc1tpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLnNldEF0dHJpYnV0ZShhdHRyLm5hbWUs
IGF0dHIudmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgY2hpbGQpOwogICAgICAgICAgICAgICAg
ICAgICBjaGlsZCA9IG5ld0NoaWxkOwogICAgICAgICAgICAgICAgIH0KQEAgLTIzMSwxNCArMjY1
LDE1IEBAIGNsYXNzIENvbXBvbmVudEJhc2UgewogICAgICAgICBpZiAodHlwZW9mKGNhbGxiYWNr
KSA9PT0gJ3N0cmluZycpCiAgICAgICAgICAgICBhdHRyaWJ1dGVzWydocmVmJ10gPSBjYWxsYmFj
azsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYXR0cmlidXRlc1snb25jbGljayddID0gQ29t
cG9uZW50QmFzZS5jcmVhdGVBY3Rpb25IYW5kbGVyKGNhbGxiYWNrKTsKKyAgICAgICAgICAgIGF0
dHJpYnV0ZXNbJ29uY2xpY2snXSA9IENvbXBvbmVudEJhc2UuY3JlYXRlRXZlbnRIYW5kbGVyKGNh
bGxiYWNrKTsKIAogICAgICAgICBpZiAoaXNFeHRlcm5hbCkKICAgICAgICAgICAgIGF0dHJpYnV0
ZXNbJ3RhcmdldCddID0gJ19ibGFuayc7CiAgICAgICAgIHJldHVybiBDb21wb25lbnRCYXNlLmNy
ZWF0ZUVsZW1lbnQoJ2EnLCBhdHRyaWJ1dGVzLCBjb250ZW50KTsKICAgICB9CiAKLSAgICBzdGF0
aWMgY3JlYXRlQWN0aW9uSGFuZGxlcihjYWxsYmFjaykKKyAgICBjcmVhdGVFdmVudEhhbmRsZXIo
Y2FsbGJhY2spIHsgcmV0dXJuIENvbXBvbmVudEJhc2UuY3JlYXRlRXZlbnRIYW5kbGVyKGNhbGxi
YWNrKTsgfQorICAgIHN0YXRpYyBjcmVhdGVFdmVudEhhbmRsZXIoY2FsbGJhY2spCiAgICAgewog
ICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9j
b21wb25lbnRzL2J1dHRvbi1iYXNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9idXR0b24tYmFzZS5qcwkocmV2aXNpb24gMjEw
OTA5KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2J1
dHRvbi1iYXNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4ICsxLDE1IEBACiAKIGNsYXNzIEJ1
dHRvbkJhc2UgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKLSAgICBjb25zdHJ1Y3RvcihuYW1lKQor
ICAgIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQogICAgIHsKLSAgICAgICAgc3VwZXIobmFtZSk7
Ci0gICAgfQotCi0gICAgc2V0Q2FsbGJhY2soY2FsbGJhY2spCi0gICAgewotICAgICAgICB0aGlz
LmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCdhJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBD
b21wb25lbnRCYXNlLmNyZWF0ZUFjdGlvbkhhbmRsZXIoY2FsbGJhY2spKTsKKyAgICAgICAgdGhp
cy5jb250ZW50KCdidXR0b24nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY3JlYXRl
RXZlbnRIYW5kbGVyKCgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Fj
dGl2YXRlJyk7CisgICAgICAgIH0pKTsKICAgICB9CiAKICAgICBzdGF0aWMgaHRtbFRlbXBsYXRl
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBgPGEgY2xhc3M9ImJ1dHRvbiIgaHJlZj0iIyI+PHN2
ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+JHt0aGlzLmJ1dHRvbkNvbnRlbnQoKX08L3N2Zz48L2E+
YDsKKyAgICAgICAgcmV0dXJuIGA8YSBpZD0iYnV0dG9uIiBocmVmPSIjIj48c3ZnIHZpZXdCb3g9
IjAgMCAxMDAgMTAwIj4ke3RoaXMuYnV0dG9uQ29udGVudCgpfTwvc3ZnPjwvYT5gOwogICAgIH0K
IAogICAgIHN0YXRpYyBidXR0b25Db250ZW50KCkgeyB0aHJvdyAnTm90SW1wbGVtZW50ZWQnOyB9
CkBAIC0yOCwxOCArMjUsMTggQEAgY2xhc3MgQnV0dG9uQmFzZSBleHRlbmRzIENvbXBvbmVudEJh
c2UgewogICAgICAgICAgICAgICAgIGhlaWdodDogJHtzaXplRmFjdG9yfXJlbTsKICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgLmJ1dHRvbiB7CisgICAgICAgICAgICBhIHsKICAgICAgICAg
ICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwogICAgICAgICAgICAgICAgIGRpc3BsYXk6
IGJsb2NrOwogICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgLmJ1dHRvbiBzdmcgewotICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2Nr
OworICAgICAgICAgICAgYTpob3ZlciB7CisgICAgICAgICAgICAgICAgb3BhY2l0eTogMC42Owog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAuYnV0dG9uOmhvdmVyIHsKLSAgICAgICAgICAg
ICAgICBvcGFjaXR5OiAwLjY7CisgICAgICAgICAgICBzdmcgeworICAgICAgICAgICAgICAgIGRp
c3BsYXk6IGJsb2NrOwogICAgICAgICAgICAgfQogICAgICAgICBgOwogICAgIH0KSW5kZXg6IFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0
LXBhbmUuanMJKHJldmlzaW9uIDIxMDkwOSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcwkod29ya2luZyBjb3B5KQpAQCAtNzcsMTEgKzc3
LDE2IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2UgewogICAgICAgICB0
aGlzLl90cmVuZExpbmVWZXJzaW9uID0gMDsKICAgICAgICAgdGhpcy5fcmVuZGVyZWRUcmVuZExp
bmVPcHRpb25zID0gZmFsc2U7CiAKLSAgICAgICAgdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3Rv
cignY2xvc2UtYnV0dG9uJykuY29tcG9uZW50KCkuc2V0Q2FsbGJhY2soY2hhcnRzUGFnZS5jbG9z
ZVBhbmUuYmluZChjaGFydHNQYWdlLCB0aGlzKSk7Ci0KICAgICAgICAgdGhpcy5jb25maWd1cmUo
cGxhdGZvcm1JZCwgbWV0cmljSWQpOwogICAgIH0KIAorICAgIGRpZENvbnN0cnVjdFNoYWRvd1Ry
ZWUoKQorICAgIHsKKyAgICAgICAgdGhpcy5wYXJ0KCdjbG9zZScpLmxpc3RlblRvQWN0aW9uKCdh
Y3RpdmF0ZScsICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2NoYXJ0c1BhZ2UuY2xvc2VQYW5l
KHRoaXMpOworICAgICAgICB9KQorICAgIH0KKwogICAgIHNlcmlhbGl6ZVN0YXRlKCkKICAgICB7
CiAgICAgICAgIHZhciBzdGF0ZSA9IFt0aGlzLl9wbGF0Zm9ybUlkLCB0aGlzLl9tZXRyaWNJZF07
CkBAIC0yNTIsNiArMjU3LDggQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFz
ZSB7CiAgICAgICAgIHZhciBsaW5rID0gQ29tcG9uZW50QmFzZS5jcmVhdGVMaW5rOwogICAgICAg
ICB2YXIgc2VsZiA9IHRoaXM7CiAKKyAgICAgICAgdGhpcy5wYXJ0KCdjbG9zZScpLmVucXVldWVU
b1JlbmRlcigpOworCiAgICAgICAgIGlmICh0aGlzLl9jaGFydHNQYWdlLmNhbkJyZWFrZG93bihw
bGF0Zm9ybSwgbWV0cmljKSkgewogICAgICAgICAgICAgYWN0aW9ucy5wdXNoKGVsZW1lbnQoJ2xp
JywgbGluaygnQnJlYWtkb3duJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHNlbGYu
X2NoYXJ0c1BhZ2UuaW5zZXJ0QnJlYWtkb3duUGFuZXNBZnRlcihwbGF0Zm9ybSwgbWV0cmljLCBz
ZWxmKTsKQEAgLTUxNCw3ICs1MjEsNyBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBh
bmVCYXNlIHsKICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImNoYXJ0LXBhbmUtdGl0bGUiPi08
L2gyPgogICAgICAgICAgICAgICAgIDxuYXYgY2xhc3M9ImNoYXJ0LXBhbmUtYWN0aW9ucyI+CiAg
ICAgICAgICAgICAgICAgICAgIDx1bD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFz
cz0iY2xvc2UiPjxjbG9zZS1idXR0b24+PC9jbG9zZS1idXR0b24+PC9saT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT48Y2xvc2UtYnV0dG9uIGlkPSJjbG9zZSI+PC9jbG9zZS1idXR0b24+
PC9saT4KICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgPHVs
IGNsYXNzPSJjaGFydC1wYW5lLWFjdGlvbi1idXR0b25zIGJ1dHRvbmVkLXRvb2xiYXIiPjwvdWw+
CiAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY2hhcnQtcGFuZS1hbHRlcm5hdGl2ZS1w
bGF0Zm9ybXMgcG9wb3ZlciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC91bD4K
</data>
<flag name="review"
          id="321209"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>