<?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>167045</bug_id>
          
          <creation_ts>2017-01-13 20:04:13 -0800</creation_ts>
          <short_desc>Adopt custom elements API in perf dashboard</short_desc>
          <delta_ts>2017-01-15 16:13:30 -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>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1266765</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-13 20:04:13 -0800</bug_when>
    <thetext>Adopt custom elements API in the perf dashboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266774</commentid>
    <comment_count>1</comment_count>
      <attachid>298845</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-13 20:47:05 -0800</bug_when>
    <thetext>Created attachment 298845
Adopts the API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267081</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-15 16:13:30 -0800</bug_when>
    <thetext>Committed r210783: &lt;http://trac.webkit.org/changeset/210783&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298845</attachid>
            <date>2017-01-13 20:47:05 -0800</date>
            <delta_ts>2017-01-14 21:48:39 -0800</delta_ts>
            <desc>Adopts the API</desc>
            <filename>bug-167045-20170113204529.patch</filename>
            <type>text/plain</type>
            <size>32909</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjEwNzYwKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDY1IEBACisyMDE3LTAxLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEFkb3B0IGN1c3RvbSBlbGVtZW50cyBBUEkgaW4gcGVyZiBkYXNoYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzA0NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IGN1c3Rv
bSBlbGVtZW50cyBBUEkgaW4gQ29tcG9uZW50QmFzZSwgYW5kIGNyZWF0ZSB0aGUgc2hhZG93IHRy
ZWUgbGF6aWx5IGluIGNvbnRlbnQoKSBhbmQgcmVuZGVyKCkKKyAgICAgICAgaW5zdGVhZCBvZiBl
YWdlcmx5IGNyZWF0aW5nIGl0IGluc2lkZSB0aGUgY29uc3RydWN0b3IuCisKKyAgICAgICAgRm9y
IG5vdywgY3JlYXRlIGEgc2VwYXJhdGUgZWxlbWVudCBjbGFzcyBmb3IgZWFjaCBjb21wb25lbnQg
aW4gQ29tcG9uZW50QmFzZS5kZWZpbmVFbGVtZW50IGluc3RlYWQgb2YKKyAgICAgICAgbWFraW5n
IENvbXBvbmVudEJhc2UgaW5oZXJpdCBmcm9tIEhUTUxFbGVtZW50IHRvIHByZXNlcnZlIHRoZSBz
ZW1hbnRpY3Mgd2UgaGF2ZSBhcyB3ZWxsIGFzIHRvIHRlc3QKKyAgICAgICAgdGhlIGJvdW5kYXJp
ZXMgb2Ygd2hhdCBjdXN0b20gZWxlbWVudHMgQVBJIGFsbG93cyBmb3IgZnJhbWV3b3JrIGF1dGhv
cnMuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZW5zdXJlIG9uZS10by1vbmUgY29ycmVzcG9uZGVu
Y2UgYmV0d2VlbiBlbGVtZW50cyBhbmQgdGhlaXIgY29tcG9uZW50cywgd2UgdXNlIGEgc3RhdGlj
IG1hcCwKKyAgICAgICAgQ29tcG9uZW50QmFzZS5fY3VycmVudGx5Q29uc3RydWN0ZWRCeUludGVy
ZmFjZSwgdG8gcmVtZW1iZXIgd2hpY2ggZWxlbWVudCBvciBjb21wb25lbnQgaXMgYmVpbmcgY3Jl
YXRlZAorICAgICAgICBhbmQgdXNlIHRoYXQgaW4gY3VzdG9tIGVsZW1lbnQncyBjb25zdHJ1Y3Rv
ciB0byB1cGRhdGUgZWxlbWVudC5jb21wb25lbnQoKSBhbmQgdGhpcy5fZWxlbWVudC4KKworICAg
ICAgICBBbHNvIGRyb3BwZWQgdGhlIHN1cHBvcnQgZm9yIG5vdCBoYXZpbmcgYXR0YWNoU2hhZG93
IGFzIHdlJ3ZlIHNoaXBwZWQgdGhpcyBmZWF0dXJlIGluIFNhZmFyaSAxMC4KKworICAgICAgICBG
aW5hbGx5LCBhZGRlZCB0ZXN0cyB0byBiZSByYW4gaW5zaWRlIGEgYnJvd3NlciB0byB0ZXN0IHRo
ZSBmcm9udCBlbmQgY29kZSBpbiBicm93c2VyLXRlc3RzLgorCisgICAgICAgICogYnJvd3Nlci10
ZXN0cy9jb21wb25lbnQtYmFzZS10ZXN0cy5qczogQWRkZWQuIEJhc2ljIHRlc3RzIGZvciBDb21w
b25lbnRCYXNlLgorICAgICAgICAqIGJyb3dzZXItdGVzdHMvaW5kZXguaHRtbDogQWRkZWQuCisK
KyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9iYXNlLmpzOgorICAgICAgICAoQ29tcG9u
ZW50QmFzZSk6IERvbid0IGNyZWF0ZSB0aGUgc2hhZG93IHRyZWUuIFVzZSB0aGUgY3VycmVudGx5
IGNvbnN0cnVjdGVkIGVsZW1lbnQgYXMgdGhpcy5fZWxlbWVudCBpZgorICAgICAgICB0aGVyZSBp
cyBvbmUgKHRoZSBjdXN0b20gZWxlbWVudCdzIGNvbnN0cnVjdG9yIGlzIGdldHRpbmcgY2FsbGVk
KS4gT3RoZXJ3aXNlIGNyZWF0ZSBhIG5ldyBlbGVtZW50IGJ1dAorICAgICAgICBzdG9yZSB0aGlz
IGNvbXBvbmVudCBpbiB0aGUgbWFwIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGNvbXBvbmVudCBp
biB0aGUgY3VzdG9tIGVsZW1lbnQncyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKENvbXBvbmVudEJh
c2UucHJvdG90eXBlLmNvbnRlbnQpOiBMYXppbHkgY3JlYXRlIHRoZSBzaGFkb3cgdHJlZSBub3cu
CisgICAgICAgIChDb21wb25lbnRCYXNlLnByb3RvdHlwZS5yZW5kZXIpOiBEaXR0by4KKyAgICAg
ICAgKENvbXBvbmVudEJhc2UucHJvdG90eXBlLl9lbnN1cmVTaGFkb3dUcmVlKTogUmVuYW1lZCBm
cm9tIF9jb25zdHJ1Y3RTaGFkb3dUcmVlLiBEcm9wcGVkIHRoZSBzdXBwb3J0IGZvcgorICAgICAg
ICBub3QgaGF2aW5nIHNoYWRvdyBET00gQVBJLiBUaGlzIGlzIG5vdyByZXF1aXJlZC4gQWxzbyB1
c2UgaW1wb3J0Tm9kZSBpbnN0ZWFkIG9mIGNsb25lTm9kZSBpbiBjbG9uaW5nCisgICAgICAgIHRo
ZSB0ZW1wbGF0ZSBjb250ZW50IHNpbmNlIHRoZSBsYXR0ZXIgd291bGQgbm90IGdldCB1cGdyYWRl
ZC4KKyAgICAgICAgKENvbXBvbmVudEJhc2UucHJvdG90eXBlLl9yZWN1cnNpdmVseVJlcGxhY2VV
bmtub3duRWxlbWVudHNCeUNvbXBvbmVudHMpOiBNb2Rlcm5pemVkIHRoZSBjb2RlLiBEb24ndAor
ICAgICAgICByZS1jcmVhdGUgYSBjb21wb25lbnQgaWYgaXRzIGVsZW1lbnQgaGFkIGFscmVhZHkg
YmVlbiB1cGdyYWRlZCBieSBpdHMgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IuCisgICAgICAg
IChDb21wb25lbnRCYXNlLmRlZmluZUVsZW1lbnQpOiBBZGQgdGhpcyBjb21wb25lbnQgdG8gdGhl
IHN0YXRpYyBtYXBzLiBfY29tcG9uZW50QnlOYW1lIGlzIHVzZWQgYnkKKyAgICAgICAgX3JlY3Vy
c2l2ZWx5UmVwbGFjZVVua25vd25FbGVtZW50c0J5Q29tcG9uZW50cyB0byBpbnN0YW50aWF0ZSBu
ZXcgY29tcG9uZW50cyBpbiB0aGUgYnJvd3NlcnMgdGhhdCBkb24ndAorICAgICAgICBzdXBwb3J0
IGN1c3RvbSBlbGVtZW50cyBBUEkgYW5kIF9jb21wb25lbnRCeUNsYXNzIGlzIHVzZWQgYnkgQ29t
cG9uZW50QmFzZSdzIGNvbnN0cnVjdG9yIHRvIGxvb2t1cCB0aGUKKyAgICAgICAgZWxlbWVudCBu
YW1lLiBUaGUgbGF0dGVyIHNob3VsZCBnbyBhd2F5IG9uY2UgYWxsIGNvbXBvbmVudHMgZnVsbHkg
YWRvcHQgQ29tcG9uZW50QmFzZS5kZWZpbmVFbGVtZW50LgorICAgICAgICAoQ29tcG9uZW50QmFz
ZS5kZWZpbmVFbGVtZW50LmVsZW1lbnRDbGFzcyk6IEEgY2xhc3MgdG8gZGVmaW5lIGEgY3VzdG9t
IGVsZW1lbnQgZm9yIHRoZSBjb21wb25lbnQuCisgICAgICAgIFdlIG5lZWQgdG8gcmVjb25maWd1
cmUgdGhlIHByb3BlcnR5IHNpbmNlIGNsYXNzJ3MgbmFtZSBpcyBub3Qgd3JpdGFibGUgYnV0IGNv
bmZpZ3VyYWJsZS4KKworICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2J1dHRvbi1iYXNl
LmpzOgorICAgICAgICAoQnV0dG9uQmFzZS5odG1sVGVtcGxhdGUpOiBBZGRlZC4gRXh0cmFjdGVk
IHRoZSBjb21tb24gY29kZSBmcm9tIENsb3NlQnV0dG9uIGFuZCBXYXJuaW5nSWNvbi4KKyAgICAg
ICAgKEJ1dHRvbkJhc2UuYnV0dG9uQ29udGVudCk6IEFkZGVkLiBBbiBhYnN0cmFjdCBtZXRob2Qg
b3ZlcnJpZGRlbiBieSBDbG9zZUJ1dHRvbiBhbmQgV2FybmluZ0ljb24uCisgICAgICAgIChCdXR0
b25CYXNlLnNpemVGYWN0b3IpOiBBZGRlZC4gT3ZlcnJpZGRlbiBieSBXYXJuaW5nSWNvbi4KKyAg
ICAgICAgKEJ1dHRvbkJhc2UuY3NzVGVtcGxhdGUpOiBVcGRhdGVkIHRvIHVzZSA6aG9zdC4KKyAg
ICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9jbG9zZS1idXR0b24uanM6CisgICAgICAgIChD
bG9zZUJ1dHRvbi5idXR0b25Db250ZW50KTogUmVuYW1lZCBmcm9tIGh0bWxUZW1wbGF0ZS4KKyAg
ICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9zcGlubmVyLWljb24uanM6CisgICAgICAgIChT
cGlubmVySWNvbi5jc3NUZW1wbGF0ZSk6IFJlbW92ZWQgd2Via2l0IHByZWZpeGVkIHByb3BlcnRp
ZXMsIGFuZCB1cGRhdGVkIGl0IHRvIGFuaW1hdGUgc3Ryb2tlIGluc3RlYWQKKyAgICAgICAgb2Yg
b3BhY2l0eSB0byByZWR1Y2UgdGhlIHBvd2VyIHVzYWdlLgorICAgICAgICAoU3Bpbm5lckljb24u
aHRtbFRlbXBsYXRlKTogRmFjdG9yZWQgc3Ryb2tlLCBzdHJva2Utd2lkdGgsIGFuZCBzdHJva2Ut
bGluZWNhcCBpbnRvIGNzc1RlbXBsYXRlLgorICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRz
L3dhcm5pbmctaWNvbi5qczoKKyAgICAgICAgKFdhcm5pbmdJY29uLmNzc1RlbXBsYXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdhcm5pbmdJY29uLnNpemVGYWN0b3IpOiBBZGRlZC4KKyAgICAgICAg
KFdhcm5pbmdJY29uLmJ1dHRvbkNvbnRlbnQpOiBSZW5hbWVkIGZyb20gaHRtbFRlbXBsYXRlLgor
ICAgICAgICAqIHB1YmxpYy92My9wYWdlcy9zdW1tYXJ5LXBhZ2UuanM6CisgICAgICAgIChTdW1t
YXJ5UGFnZS5fY29uc3RydWN0UmF0aW9HcmFwaCk6IEZpeGVkIGEgYnVnIHRoYXQgd2Ugd2VyZSBu
b3QgbmV2ZXIgY2FsbGluZyBzcGlubmVyLnVwZGF0ZVJlbmRlcmluZygpLgorICAgICAgICAoU3Vt
bWFyeVBhZ2UucHJvdG90eXBlLl9yZW5kZXJDZWxsKToKKwogMjAxNy0wMS0xMyAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBJbnN0cnVtZW50IGNhbGxzIHRvIHJl
bmRlcigpCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21w
b25lbnQtYmFzZS10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvYnJvd3Nlci10ZXN0cy9jb21wb25lbnQtYmFzZS10ZXN0cy5qcwkobm9uZXhpc3RlbnQpCisr
KyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21wb25lbnQtYmFzZS10
ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4NCBAQAorCitkZXNjcmliZSgnQ29t
cG9uZW50QmFzZScsIGZ1bmN0aW9uKCkgeworCisgICAgZnVuY3Rpb24gY3JlYXRlVGVzdFRvQ2hl
Y2tFeGlzdGVuY2VPZlNoYWRvd1RyZWUoY2FsbGJhY2ssIG9wdGlvbnMgPSB7aHRtbFRlbXBsYXRl
OiBmYWxzZSwgY3NzVGVtcGxhdGU6IHRydWV9KQorICAgIHsKKyAgICAgICAgY29uc3QgY29udGV4
dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuaW1wb3J0
U2NyaXB0KCcuLi9wdWJsaWMvdjMvY29tcG9uZW50cy9iYXNlLmpzJywgJ0NvbXBvbmVudEJhc2Un
KS50aGVuKChDb21wb25lbnRCYXNlKSA9PiB7CisgICAgICAgICAgICBjbGFzcyBTb21lQ29tcG9u
ZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7IH0KKyAgICAgICAgICAgIGlmIChvcHRpb25zLmh0
bWxUZW1wbGF0ZSkKKyAgICAgICAgICAgICAgICBTb21lQ29tcG9uZW50Lmh0bWxUZW1wbGF0ZSA9
ICgpID0+IHsgcmV0dXJuICc8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4nOyB9Owor
ICAgICAgICAgICAgaWYgKG9wdGlvbnMuY3NzVGVtcGxhdGUpCisgICAgICAgICAgICAgICAgU29t
ZUNvbXBvbmVudC5jc3NUZW1wbGF0ZSA9ICgpID0+IHsgcmV0dXJuICc6aG9zdCB7IGhlaWdodDog
MTBweDsgfSc7IH07CisKKyAgICAgICAgICAgIGxldCBpbnN0YW5jZSA9IG5ldyBTb21lQ29tcG9u
ZW50KCdzb21lLWNvbXBvbmVudCcpOworICAgICAgICAgICAgaW5zdGFuY2UuZWxlbWVudCgpLnN0
eWxlLmRpc3BsYXkgPSAnYmxvY2snOworICAgICAgICAgICAgY29udGV4dC5kb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGluc3RhbmNlLmVsZW1lbnQoKSk7CisgICAgICAgICAgICByZXR1cm4gY2Fs
bGJhY2soaW5zdGFuY2UsICgpID0+IHsgcmV0dXJuIGluc3RhbmNlLmVsZW1lbnQoKS5vZmZzZXRI
ZWlnaHQgPT0gMTA7IH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBkZXNjcmliZSgnY29u
c3RydWN0b3InLCAoKSA9PiB7CisgICAgICAgIGl0KCdpcyBhIGZ1bmN0aW9uJywgKCkgPT4gewor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBCcm93c2luZ0NvbnRleHQoKS5pbXBvcnRTY3JpcHQoJy4u
L3B1YmxpYy92My9jb21wb25lbnRzL2Jhc2UuanMnLCAnQ29tcG9uZW50QmFzZScpLnRoZW4oKENv
bXBvbmVudEJhc2UpID0+IHsKKyAgICAgICAgICAgICAgICBleHBlY3QoQ29tcG9uZW50QmFzZSku
dG9CZUEoJ2Z1bmN0aW9uJyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgaXQoJ2NhbiBiZSBpbnN0YW50aWF0ZWQnLCAoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4g
bmV3IEJyb3dzaW5nQ29udGV4dCgpLmltcG9ydFNjcmlwdCgnLi4vcHVibGljL3YzL2NvbXBvbmVu
dHMvYmFzZS5qcycsICdDb21wb25lbnRCYXNlJykudGhlbigoQ29tcG9uZW50QmFzZSkgPT4gewor
ICAgICAgICAgICAgICAgIGxldCBjYWxsQ291bnQgPSAwOworICAgICAgICAgICAgICAgIGNsYXNz
IFNvbWVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdXBlcignc29tZS1j
b21wb25lbnQnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxDb3VudCsrOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxldCBp
bnN0YW5jZSA9IG5ldyBTb21lQ29tcG9uZW50OworICAgICAgICAgICAgICAgIGV4cGVjdChpbnN0
YW5jZSkudG9CZUEoQ29tcG9uZW50QmFzZSk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGluc3Rh
bmNlKS50b0JlQShTb21lQ29tcG9uZW50KTsKKyAgICAgICAgICAgICAgICBleHBlY3QoY2FsbENv
dW50KS50b0JlKDEpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0
KCdtdXN0IG5vdCBjcmVhdGUgc2hhZG93IHRyZWUgZWFnZXJseScsICgpID0+IHsKKyAgICAgICAg
ICAgIHJldHVybiBjcmVhdGVUZXN0VG9DaGVja0V4aXN0ZW5jZU9mU2hhZG93VHJlZSgoaW5zdGFu
Y2UsIGhhc1NoYWRvd1RyZWUpID0+IHsKKyAgICAgICAgICAgICAgICBleHBlY3QoaGFzU2hhZG93
VHJlZSgpKS50b0JlKGZhbHNlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
KTsKKworICAgIGRlc2NyaWJlKCdlbGVtZW50KCknLCAoKSA9PiB7CisgICAgICAgIGl0KCdtdXN0
IHJldHVybiBhbiBlbGVtZW50JywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgY29udGV4dCA9
IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmltcG9y
dFNjcmlwdCgnLi4vcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qcycsICdDb21wb25lbnRCYXNl
JykudGhlbigoQ29tcG9uZW50QmFzZSkgPT4geworICAgICAgICAgICAgICAgIGNsYXNzIFNvbWVD
b21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsgfQorICAgICAgICAgICAgICAgIGxldCBp
bnN0YW5jZSA9IG5ldyBTb21lQ29tcG9uZW50KCdzb21lLWNvbXBvbmVudCcpOworICAgICAgICAg
ICAgICAgIGV4cGVjdChpbnN0YW5jZS5lbGVtZW50KCkpLnRvQmVBKGNvbnRleHQuZ2xvYmFsLkhU
TUxFbGVtZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgn
bXVzdCByZXR1cm4gYW4gZWxlbWVudCB3aG9zZSBjb21wb25lbnQoKSBtYXRjaGVzIHRoZSBjb21w
b25lbnQnLCAoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEJyb3dzaW5nQ29udGV4dCgp
LmltcG9ydFNjcmlwdCgnLi4vcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qcycsICdDb21wb25l
bnRCYXNlJykudGhlbigoQ29tcG9uZW50QmFzZSkgPT4geworICAgICAgICAgICAgICAgIGNsYXNz
IFNvbWVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsgfQorICAgICAgICAgICAgICAg
IGxldCBpbnN0YW5jZSA9IG5ldyBTb21lQ29tcG9uZW50KCdzb21lLWNvbXBvbmVudCcpOworICAg
ICAgICAgICAgICAgIGV4cGVjdChpbnN0YW5jZS5lbGVtZW50KCkuY29tcG9uZW50KCkpLnRvQmUo
aW5zdGFuY2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdt
dXN0IG5vdCBjcmVhdGUgc2hhZG93IHRyZWUgZWFnZXJseScsICgpID0+IHsKKyAgICAgICAgICAg
IHJldHVybiBjcmVhdGVUZXN0VG9DaGVja0V4aXN0ZW5jZU9mU2hhZG93VHJlZSgoaW5zdGFuY2Us
IGhhc1NoYWRvd1RyZWUpID0+IHsKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS5lbGVtZW50KCk7
CisgICAgICAgICAgICAgICAgZXhwZWN0KGhhc1NoYWRvd1RyZWUoKSkudG9CZShmYWxzZSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgnY29u
dGVudCgpJywgKCkgPT4geworICAgICAgICBpdCgnbXVzdCBjcmVhdGUgc2hhZG93IHRyZWUnLCAo
KSA9PiB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdFRvQ2hlY2tFeGlzdGVuY2VPZlNo
YWRvd1RyZWUoKGluc3RhbmNlLCBoYXNTaGFkb3dUcmVlKSA9PiB7CisgICAgICAgICAgICAgICAg
aW5zdGFuY2UuY29udGVudCgpOworICAgICAgICAgICAgICAgIGV4cGVjdChoYXNTaGFkb3dUcmVl
KCkpLnRvQmUodHJ1ZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
aXQoJ211c3QgcmV0dXJuIHRoZSBzYW1lIHNoYWRvdyB0cmVlIGVhY2ggdGltZSBpdCBpcyBjYWxs
ZWQnLCAoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdFRvQ2hlY2tFeGlzdGVu
Y2VPZlNoYWRvd1RyZWUoKGluc3RhbmNlLCBoYXNTaGFkb3dUcmVlKSA9PiB7CisgICAgICAgICAg
ICAgICAgZXhwZWN0KGluc3RhbmNlLmNvbnRlbnQoKSkudG9CZShpbnN0YW5jZS5jb250ZW50KCkp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUo
J3JlbmRlcigpJywgKCkgPT4geworICAgICAgICBpdCgnbXVzdCBjcmVhdGUgc2hhZG93IHRyZWUn
LCAoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdFRvQ2hlY2tFeGlzdGVuY2VP
ZlNoYWRvd1RyZWUoKGluc3RhbmNlLCBoYXNTaGFkb3dUcmVlKSA9PiB7CisgICAgICAgICAgICAg
ICAgaW5zdGFuY2UucmVuZGVyKCk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGhhc1NoYWRvd1Ry
ZWUoKSkudG9CZSh0cnVlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAg
ICBpdCgnbXVzdCBub3QgY3JlYXRlIHNoYWRvdyB0cmVlIHdoZW4gbmVpdGhlciBodG1sVGVtcGxh
dGUgbm9yIGNzc1RlbXBsYXRlIGFyZSBwcmVzZW50JywgKCkgPT4geworICAgICAgICAgICAgcmV0
dXJuIGNyZWF0ZVRlc3RUb0NoZWNrRXhpc3RlbmNlT2ZTaGFkb3dUcmVlKChpbnN0YW5jZSwgaGFz
U2hhZG93VHJlZSkgPT4geworICAgICAgICAgICAgICAgIGluc3RhbmNlLnJlbmRlcigpOworICAg
ICAgICAgICAgICAgIGV4cGVjdChoYXNTaGFkb3dUcmVlKCkpLnRvQmUoZmFsc2UpOworICAgICAg
ICAgICAgfSwge2h0bWxUZW1wbGF0ZTogZmFsc2UsIGNzc1RlbXBsYXRlOiBmYWxzZX0pOworICAg
ICAgICB9KTsKKworICAgICAgICBpdCgnbXVzdCBjcmVhdGUgc2hhZG93IHRyZWUgd2hlbiBodG1s
VGVtcGxhdGUgaXMgcHJlc2VudCBhbmQgY3NzVGVtcGxhdGUgaXMgbm90JywgKCkgPT4geworICAg
ICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RUb0NoZWNrRXhpc3RlbmNlT2ZTaGFkb3dUcmVlKChp
bnN0YW5jZSwgaGFzU2hhZG93VHJlZSkgPT4geworICAgICAgICAgICAgICAgIGluc3RhbmNlLnJl
bmRlcigpOworICAgICAgICAgICAgICAgIGV4cGVjdChoYXNTaGFkb3dUcmVlKCkpLnRvQmUodHJ1
ZSk7CisgICAgICAgICAgICB9LCB7aHRtbFRlbXBsYXRlOiB0cnVlLCBjc3NUZW1wbGF0ZTogZmFs
c2V9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ211c3QgY3JlYXRlIHNoYWRvdyB0cmVl
IHdoZW4gY3NzVGVtcGxhdGUgaXMgcHJlc2VudCBhbmQgaHRtbFRlbXBsYXRlIGlzIG5vdCcsICgp
ID0+IHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0VG9DaGVja0V4aXN0ZW5jZU9mU2hh
ZG93VHJlZSgoaW5zdGFuY2UsIGhhc1NoYWRvd1RyZWUpID0+IHsKKyAgICAgICAgICAgICAgICBp
bnN0YW5jZS5yZW5kZXIoKTsKKyAgICAgICAgICAgICAgICBleHBlY3QoaGFzU2hhZG93VHJlZSgp
KS50b0JlKHRydWUpOworICAgICAgICAgICAgfSwge2h0bWxUZW1wbGF0ZTogZmFsc2UsIGNzc1Rl
bXBsYXRlOiB0cnVlfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoJ2Rl
ZmluZUVsZW1lbnQoKScsICgpID0+IHsKKworICAgICAgICBpdCgnbXVzdCBkZWZpbmUgYSBjdXN0
b20gZWxlbWVudCB3aXRoIGEgY2xhc3Mgb2YgYW4gYXBwcm9wcmlhdGUgbmFtZScsICgpID0+IHsK
KyAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CisgICAg
ICAgICAgICByZXR1cm4gY29udGV4dC5pbXBvcnRTY3JpcHQoJy4uL3B1YmxpYy92My9jb21wb25l
bnRzL2Jhc2UuanMnLCAnQ29tcG9uZW50QmFzZScpLnRoZW4oKENvbXBvbmVudEJhc2UpID0+IHsK
KyAgICAgICAgICAgICAgICBjbGFzcyBTb21lQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFz
ZSB7IH0KKyAgICAgICAgICAgICAgICBDb21wb25lbnRCYXNlLmRlZmluZUVsZW1lbnQoJ3NvbWUt
Y29tcG9uZW50JywgU29tZUNvbXBvbmVudCk7CisKKyAgICAgICAgICAgICAgICBsZXQgZWxlbWVu
dENsYXNzID0gY29udGV4dC5nbG9iYWwuY3VzdG9tRWxlbWVudHMuZ2V0KCdzb21lLWNvbXBvbmVu
dCcpOworICAgICAgICAgICAgICAgIGV4cGVjdChlbGVtZW50Q2xhc3MpLnRvQmVBKCdmdW5jdGlv
bicpOworICAgICAgICAgICAgICAgIGV4cGVjdChlbGVtZW50Q2xhc3MubmFtZSkudG9CZSgnU29t
ZUNvbXBvbmVudEVsZW1lbnQnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnbXVzdCBkZWZpbmUgYSBjdXN0b20gZWxlbWVudCB0aGF0IGNhbiBiZSBpbnN0YW50
aWF0ZWQgdmlhIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQnLCAoKSA9PiB7CisgICAgICAgICAgICBj
b25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICAgICAgcmV0dXJu
IGNvbnRleHQuaW1wb3J0U2NyaXB0KCcuLi9wdWJsaWMvdjMvY29tcG9uZW50cy9iYXNlLmpzJywg
J0NvbXBvbmVudEJhc2UnKS50aGVuKChDb21wb25lbnRCYXNlKSA9PiB7CisgICAgICAgICAgICAg
ICAgbGV0IGluc3RhbmNlcyA9IFtdOworICAgICAgICAgICAgICAgIGNsYXNzIFNvbWVDb21wb25l
bnQgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0
b3IoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaW5zdGFuY2VzLnB1c2godGhpcyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQ29tcG9uZW50QmFzZS5kZWZpbmVFbGVt
ZW50KCdzb21lLWNvbXBvbmVudCcsIFNvbWVDb21wb25lbnQpOworCisgICAgICAgICAgICAgICAg
ZXhwZWN0KGluc3RhbmNlcy5sZW5ndGgpLnRvQmUoMCk7CisgICAgICAgICAgICAgICAgbGV0IGVs
ZW1lbnQgPSBjb250ZXh0LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NvbWUtY29tcG9uZW50Jyk7
CisgICAgICAgICAgICAgICAgZXhwZWN0KGluc3RhbmNlcy5sZW5ndGgpLnRvQmUoMSk7CisKKyAg
ICAgICAgICAgICAgICBleHBlY3QoZWxlbWVudCkudG9CZUEoY29udGV4dC5nbG9iYWwuSFRNTEVs
ZW1lbnQpOworICAgICAgICAgICAgICAgIGV4cGVjdChlbGVtZW50LmNvbXBvbmVudCgpKS50b0Jl
KGluc3RhbmNlc1swXSk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGluc3RhbmNlc1swXS5lbGVt
ZW50KCkpLnRvQmUoZWxlbWVudCk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGluc3RhbmNlcy5s
ZW5ndGgpLnRvQmUoMSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
aXQoJ211c3QgZGVmaW5lIGEgY3VzdG9tIGVsZW1lbnQgdGhhdCBjYW4gYmUgaW5zdGFudGlhdGVk
IHZpYSBuZXcnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dz
aW5nQ29udGV4dCgpOworICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuaW1wb3J0U2NyaXB0KCcu
Li9wdWJsaWMvdjMvY29tcG9uZW50cy9iYXNlLmpzJywgJ0NvbXBvbmVudEJhc2UnKS50aGVuKChD
b21wb25lbnRCYXNlKSA9PiB7CisgICAgICAgICAgICAgICAgbGV0IGluc3RhbmNlcyA9IFtdOwor
ICAgICAgICAgICAgICAgIGNsYXNzIFNvbWVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRCYXNl
IHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2VzLnB1c2go
dGhpcyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgQ29tcG9uZW50QmFzZS5kZWZpbmVFbGVtZW50KCdzb21lLWNvbXBvbmVudCcsIFNv
bWVDb21wb25lbnQpOworCisgICAgICAgICAgICAgICAgZXhwZWN0KGluc3RhbmNlcy5sZW5ndGgp
LnRvQmUoMCk7CisgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IG5ldyBTb21lQ29tcG9u
ZW50OworICAgICAgICAgICAgICAgIGV4cGVjdChpbnN0YW5jZXMubGVuZ3RoKS50b0JlKDEpOwor
CisgICAgICAgICAgICAgICAgZXhwZWN0KGNvbXBvbmVudCkudG9CZShpbnN0YW5jZXNbMF0pOwor
ICAgICAgICAgICAgICAgIGV4cGVjdChjb21wb25lbnQuZWxlbWVudCgpKS50b0JlQShjb250ZXh0
Lmdsb2JhbC5IVE1MRWxlbWVudCk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGNvbXBvbmVudC5l
bGVtZW50KCkuY29tcG9uZW50KCkpLnRvQmUoY29tcG9uZW50KTsKKyAgICAgICAgICAgICAgICBl
eHBlY3QoaW5zdGFuY2VzLmxlbmd0aCkudG9CZSgxKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKworICAgIH0pOworCit9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9i
cm93c2VyLXRlc3RzL2luZGV4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL2Jyb3dzZXItdGVzdHMvaW5kZXguaHRtbAkobm9uZXhpc3RlbnQpCisrKyBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9pbmRleC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLnJhd2dpdC5jb20vbW9jaGFqcy9t
b2NoYS8yLjIuNS9tb2NoYS5jc3MiPgorPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRm
bGFyZS5jb20vYWpheC9saWJzL21vY2hhLzIuMi41L21vY2hhLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9leHBlY3QvMS4y
MC4yL2V4cGVjdC5taW4uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworbW9jaGEuc2V0dXAoJ2Jk
ZCcpOworCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibW9jaGEiPjwvZGl2
PgorPHNjcmlwdCBzcmM9ImNvbXBvbmVudC1iYXNlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisKK2FmdGVyRWFjaCgoKSA9PiB7CisgICAgQnJvd3NpbmdDb250ZXh0LmNsZWFudXAoKTsK
K30pOworCitjbGFzcyBCcm93c2luZ0NvbnRleHQgeworCisgICAgY29uc3RydWN0b3IoKQorICAg
IHsKKyAgICAgICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScp
OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgICAgIGlm
cmFtZS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CisgICAgICAgIGlmcmFtZS5zdHlsZS5s
ZWZ0ID0gJzBweCc7CisgICAgICAgIGlmcmFtZS5zdHlsZS50b3AgPSAnMHB4JzsKKyAgICAgICAg
QnJvd3NpbmdDb250ZXh0Ll9pZnJhbWVzLnB1c2goaWZyYW1lKTsKKworICAgICAgICB0aGlzLl9p
ZnJhbWUgPSBpZnJhbWU7CisgICAgICAgIHRoaXMuc3ltYm9scyA9IHt9OworICAgICAgICB0aGlz
Lmdsb2JhbCA9IHRoaXMuX2lmcmFtZS5jb250ZW50V2luZG93OworICAgICAgICB0aGlzLmRvY3Vt
ZW50ID0gdGhpcy5faWZyYW1lLmNvbnRlbnREb2N1bWVudDsKKyAgICB9CisKKyAgICBpbXBvcnRT
Y3JpcHQocGF0aCwgLi4uc3ltYm9sTGlzdCkKKyAgICB7CisgICAgICAgIGNvbnN0IGRvYyA9IHRo
aXMuX2lmcmFtZS5jb250ZW50RG9jdW1lbnQ7CisgICAgICAgIGNvbnN0IGdsb2JhbCA9IHRoaXMu
X2lmcmFtZS5jb250ZW50V2luZG93OworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgbGV0IHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVt
ZW50KCdzY3JpcHQnKTsKKyAgICAgICAgICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
JywgcmVzb2x2ZSk7CisgICAgICAgICAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3In
LCByZWplY3QpOworICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHBhdGg7CisgICAgICAgICAgICBk
b2MuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAg
ICAgICAgICAgIHNjcmlwdC50ZXh0Q29udGVudCA9IGB3aW5kb3cuaW1wb3J0ZWRTeW1ib2xzID0g
WyR7c3ltYm9sTGlzdC5qb2luKCcsICcpfV07YDsKKyAgICAgICAgICAgIGRvYy5ib2R5LmFwcGVu
ZENoaWxkKHNjcmlwdCk7CisKKyAgICAgICAgICAgIGNvbnN0IGltcG9ydGVkU3ltYm9scyA9IGds
b2JhbC5pbXBvcnRlZFN5bWJvbHM7CisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN5
bWJvbExpc3QubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgdGhpcy5zeW1ib2xzW3N5bWJv
bExpc3RbaV1dID0gaW1wb3J0ZWRTeW1ib2xzW2ldOworCisgICAgICAgICAgICByZXR1cm4gc3lt
Ym9sTGlzdC5sZW5ndGggPT0gMSA/IGltcG9ydGVkU3ltYm9sc1swXSA6IGltcG9ydGVkU3ltYm9s
czsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIGNsZWFudXAoKQorICAgIHsKKyAg
ICAgICAgQnJvd3NpbmdDb250ZXh0Ll9pZnJhbWVzLmZvckVhY2goKGlmcmFtZSkgPT4geyBpZnJh
bWUucmVtb3ZlKCk7IH0pOworICAgICAgICBCcm93c2luZ0NvbnRleHQuX2lmcmFtZXMgPSBbXTsK
KyAgICB9CisKKyAgICBzdGF0aWMgY3JlYXRlV2l0aFNjcmlwdHMoc2NyaXB0TGlzdCkKKyAgICB7
CisgICAgICAgIGxldCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsK
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgICAgICBjb25z
dCBkb2MgPSBpZnJhbWUuY29udGVudERvY3VtZW50OworCisgICAgICAgIGxldCBzeW1ib2xMaXN0
ID0gW107CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChzY3JpcHRMaXN0Lm1hcCgoZW50cnkp
ID0+IHsKKyAgICAgICAgICAgIGxldCBbcGF0aCwgLi4uc3ltYm9sc10gPSBlbnRyeTsKKyAgICAg
ICAgICAgIHN5bWJvbExpc3QgPSBzeW1ib2xMaXN0LmNvbmNhdChzeW1ib2xzKTsKKyAgICAgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAg
ICAgICAgbGV0IHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgICAgICAg
ICAgICAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJlc29sdmUpOworICAgICAg
ICAgICAgICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7CisgICAg
ICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHBhdGg7CisgICAgICAgICAgICAgICAgZG9jLmJvZHku
YXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KSkudGhlbigo
KSA9PiB7CisgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2MuY3JlYXRlRWxlbWVudCgnc2Ny
aXB0Jyk7CisgICAgICAgICAgICBzY3JpcHQudGV4dENvbnRlbnQgPSBgdmFyIHN5bWJvbHMgPSB7
ICR7c3ltYm9sTGlzdC5qb2luKCcsICcpfSB9O2A7CisgICAgICAgICAgICBkb2MuYm9keS5hcHBl
bmRDaGlsZChzY3JpcHQpOworICAgICAgICAgICAgcmV0dXJuIGlmcmFtZS5jb250ZW50V2luZG93
OworICAgICAgICB9KTsKKyAgICB9Cit9CitCcm93c2luZ0NvbnRleHQuX2lmcmFtZXMgPSBbXTsK
KworbW9jaGEuY2hlY2tMZWFrcygpOworbW9jaGEuZ2xvYmFscyhbJ2V4cGVjdCcsICdCcm93c2lu
Z0NvbnRleHQnXSk7Cittb2NoYS5ydW4oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21haW4uanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tYWluLmpzCShyZXZp
c2lvbiAyMTA3NjApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21haW4u
anMJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNywxNyBAQCBjbGFzcyBTcGlubmluZ1BhZ2UgZXh0
ZW5kcyBQYWdlIHsKIH0KIAogZnVuY3Rpb24gbWFpbigpIHsKKyAgICBjb25zdCByZXF1cmllZEZl
YXR1cmVzID0geworICAgICAgICAnQ3VzdG9tIEVsZW1lbnRzIEFQSSc6ICgpID0+IHsgcmV0dXJu
ICEhd2luZG93LmN1c3RvbUVsZW1lbnRzOyB9LAorICAgICAgICAnU2hhZG93IERPTSBBUEknOiAo
KSA9PiB7IHJldHVybiAhIUVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdzsgfSwKKyAgICAg
ICAgJ0xhdGVzdCBET00nOiAoKSA9PiB7IHJldHVybiAhIUVsZW1lbnQucHJvdG90eXBlLmdldFJv
b3ROb2RlOyB9LAorICAgIH07CisKKyAgICBmb3IgKGxldCBuYW1lIGluIHJlcXVyaWVkRmVhdHVy
ZXMpIHsKKyAgICAgICAgaWYgKCFyZXF1cmllZEZlYXR1cmVzW25hbWVdKCkpCisgICAgICAgICAg
ICByZXR1cm4gYWxlcnQoYFlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0ICR7bmFtZX0uIFRy
eSB1c2luZyB0aGUgbGF0ZXN0IFNhZmFyaSBvciBDaHJvbWUuYCk7CisgICAgfQorCiAgICAgKG5l
dyBTcGlubmluZ1BhZ2UpLm9wZW4oKTsKIAogICAgIE1hbmlmZXN0LmZldGNoKCkudGhlbihmdW5j
dGlvbiAobWFuaWZlc3QpIHsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvY29tcG9uZW50cy9iYXNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9iYXNlLmpzCShyZXZpc2lvbiAyMTA3NjApCisrKyBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMSwxNiArMSwzMCBAQAogCi0vLyBGSVhNRTogQ29tcG9uZW50QmFzZSBz
aG91bGQgaW5oZXJpdCBmcm9tIEhUTUxFbGVtZW50IHdoZW4gY3VzdG9tIGVsZW1lbnRzIEFQSSBp
cyBhdmFpbGFibGUuCiBjbGFzcyBDb21wb25lbnRCYXNlIHsKICAgICBjb25zdHJ1Y3RvcihuYW1l
KQogICAgIHsKLSAgICAgICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
bmFtZSk7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQuY29tcG9uZW50ID0gKGZ1bmN0aW9uICgpIHsg
cmV0dXJuIHRoaXM7IH0pLmJpbmQodGhpcyk7Ci0gICAgICAgIHRoaXMuX3NoYWRvdyA9IHRoaXMu
X2NvbnN0cnVjdFNoYWRvd1RyZWUoKTsKKyAgICAgICAgdGhpcy5fY29tcG9uZW50TmFtZSA9IG5h
bWUgfHwgQ29tcG9uZW50QmFzZS5fY29tcG9uZW50QnlDbGFzcy5nZXQobmV3LnRhcmdldCk7CisK
KyAgICAgICAgY29uc3QgY3VycmVudGx5Q29uc3RydWN0ZWQgPSBDb21wb25lbnRCYXNlLl9jdXJy
ZW50bHlDb25zdHJ1Y3RlZEJ5SW50ZXJmYWNlOworICAgICAgICBsZXQgZWxlbWVudCA9IGN1cnJl
bnRseUNvbnN0cnVjdGVkLmdldChuZXcudGFyZ2V0KTsKKyAgICAgICAgaWYgKCFlbGVtZW50KSB7
CisgICAgICAgICAgICBjdXJyZW50bHlDb25zdHJ1Y3RlZC5zZXQobmV3LnRhcmdldCwgdGhpcyk7
CisgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLl9jb21w
b25lbnROYW1lKTsKKyAgICAgICAgICAgIGN1cnJlbnRseUNvbnN0cnVjdGVkLmRlbGV0ZShuZXcu
dGFyZ2V0KTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50LmNvbXBvbmVudCA9ICgpID0+IHsg
cmV0dXJuIHRoaXMgfTsKKworICAgICAgICB0aGlzLl9lbGVtZW50ID0gZWxlbWVudDsKKyAgICAg
ICAgdGhpcy5fc2hhZG93ID0gbnVsbDsKICAgICB9CiAKICAgICBlbGVtZW50KCkgeyByZXR1cm4g
dGhpcy5fZWxlbWVudDsgfQotICAgIGNvbnRlbnQoKSB7IHJldHVybiB0aGlzLl9zaGFkb3c7IH0K
LSAgICByZW5kZXIoKSB7IH0KKyAgICBjb250ZW50KCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Vu
c3VyZVNoYWRvd1RyZWUoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NoYWRvdzsKKyAgICB9CisK
KyAgICByZW5kZXIoKSB7IHRoaXMuX2Vuc3VyZVNoYWRvd1RyZWUoKTsgfQogCiAgICAgdXBkYXRl
UmVuZGVyaW5nKCkKICAgICB7CkBAIC0yOCw1MiArNDIsNDUgQEAgY2xhc3MgQ29tcG9uZW50QmFz
ZSB7CiAgICAgICAgICAgICBDb21wb25lbnRCYXNlLl9hZGRDb250ZW50VG9FbGVtZW50KGVsZW1l
bnQsIGNvbnRlbnQpOwogICAgIH0KIAotICAgIF9jb25zdHJ1Y3RTaGFkb3dUcmVlKCkKKyAgICBf
ZW5zdXJlU2hhZG93VHJlZSgpCiAgICAgewotICAgICAgICB2YXIgbmV3VGFyZ2V0ID0gdGhpcy5f
X3Byb3RvX18uY29uc3RydWN0b3I7CisgICAgICAgIGlmICh0aGlzLl9zaGFkb3cpCisgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIGh0bWxUZW1wbGF0ZSA9IG5ld1RhcmdldFsnaHRt
bFRlbXBsYXRlJ107Ci0gICAgICAgIHZhciBjc3NUZW1wbGF0ZSA9IG5ld1RhcmdldFsnY3NzVGVt
cGxhdGUnXTsKKyAgICAgICAgY29uc3QgbmV3VGFyZ2V0ID0gdGhpcy5fX3Byb3RvX18uY29uc3Ry
dWN0b3I7CisgICAgICAgIGNvbnN0IGh0bWxUZW1wbGF0ZSA9IG5ld1RhcmdldFsnaHRtbFRlbXBs
YXRlJ107CisgICAgICAgIGNvbnN0IGNzc1RlbXBsYXRlID0gbmV3VGFyZ2V0Wydjc3NUZW1wbGF0
ZSddOwogCiAgICAgICAgIGlmICghaHRtbFRlbXBsYXRlICYmICFjc3NUZW1wbGF0ZSkKLSAgICAg
ICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhciBz
aGFkb3cgPSBudWxsOwotICAgICAgICBpZiAoJ2F0dGFjaFNoYWRvdycgaW4gRWxlbWVudC5wcm90
b3R5cGUpCi0gICAgICAgICAgICBzaGFkb3cgPSB0aGlzLl9lbGVtZW50LmF0dGFjaFNoYWRvdyh7
bW9kZTogJ2Nsb3NlZCd9KTsKLSAgICAgICAgZWxzZSBpZiAoJ2NyZWF0ZVNoYWRvd1Jvb3QnIGlu
IEVsZW1lbnQucHJvdG90eXBlKSAvLyBMZWdhY3kgQ2hyb21pdW0gQVBJLgotICAgICAgICAgICAg
c2hhZG93ID0gdGhpcy5fZWxlbWVudC5jcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHNoYWRvdyA9IHRoaXMuX2VsZW1lbnQ7CisgICAgICAgIGNvbnN0IHNoYWRv
dyA9IHRoaXMuX2VsZW1lbnQuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwogCiAgICAg
ICAgIGlmIChodG1sVGVtcGxhdGUpIHsKLSAgICAgICAgICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7CisgICAgICAgICAgICBjb25zdCB0ZW1wbGF0
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7CiAgICAgICAgICAgICB0ZW1w
bGF0ZS5pbm5lckhUTUwgPSBuZXdUYXJnZXQuaHRtbFRlbXBsYXRlKCk7Ci0gICAgICAgICAgICBz
aGFkb3cuYXBwZW5kQ2hpbGQodGVtcGxhdGUuY29udGVudC5jbG9uZU5vZGUodHJ1ZSkpOworICAg
ICAgICAgICAgc2hhZG93LmFwcGVuZENoaWxkKGRvY3VtZW50LmltcG9ydE5vZGUodGVtcGxhdGUu
Y29udGVudCwgdHJ1ZSkpOwogICAgICAgICAgICAgdGhpcy5fcmVjdXJzaXZlbHlSZXBsYWNlVW5r
bm93bkVsZW1lbnRzQnlDb21wb25lbnRzKHNoYWRvdyk7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAoY3NzVGVtcGxhdGUpIHsKLSAgICAgICAgICAgIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3N0eWxlJyk7CisgICAgICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7CiAgICAgICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IG5l
d1RhcmdldC5jc3NUZW1wbGF0ZSgpOwogICAgICAgICAgICAgc2hhZG93LmFwcGVuZENoaWxkKHN0
eWxlKTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBzaGFkb3c7CisgICAgICAgIHRoaXMu
X3NoYWRvdyA9IHNoYWRvdzsKICAgICB9CiAKICAgICBfcmVjdXJzaXZlbHlSZXBsYWNlVW5rbm93
bkVsZW1lbnRzQnlDb21wb25lbnRzKHBhcmVudCkKICAgICB7Ci0gICAgICAgIGlmICghQ29tcG9u
ZW50QmFzZS5fbWFwKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBuZXh0U2li
bGluZzsKLSAgICAgICAgZm9yICh2YXIgY2hpbGQgPSBwYXJlbnQuZmlyc3RDaGlsZDsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpIHsKLSAgICAgICAgICAgIGlmIChjaGlsZCBpbnN0
YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCB8fCBjaGlsZCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50
KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGVsZW1lbnRJbnRlcmZhY2UgPSBDb21wb25lbnRCYXNl
Ll9tYXBbY2hpbGQubG9jYWxOYW1lXTsKKyAgICAgICAgbGV0IG5leHRTaWJsaW5nOworICAgICAg
ICBmb3IgKGxldCBjaGlsZCA9IHBhcmVudC5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC5uZXh0U2libGluZykgeworICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgSFRNTEVs
ZW1lbnQgJiYgIWNoaWxkLmNvbXBvbmVudCkgeworICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1l
bnRJbnRlcmZhY2UgPSBDb21wb25lbnRCYXNlLl9jb21wb25lbnRCeU5hbWUuZ2V0KGNoaWxkLmxv
Y2FsTmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRJbnRlcmZhY2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgdmFyIGNvbXBvbmVudCA9IG5ldyBlbGVtZW50SW50ZXJmYWNlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIHZhciBuZXdDaGlsZCA9IGNvbXBvbmVudC5lbGVtZW50KCk7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IG5ldyBlbGVtZW50SW50ZXJmYWNl
KCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NoaWxkID0gY29tcG9uZW50LmVsZW1l
bnQoKTsKICAgICAgICAgICAgICAgICAgICAgcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCwg
Y2hpbGQpOwogICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IG5ld0NoaWxkOwogICAgICAgICAg
ICAgICAgIH0KQEAgLTg0LDkgKzkxLDMwIEBAIGNsYXNzIENvbXBvbmVudEJhc2UgewogCiAgICAg
c3RhdGljIGRlZmluZUVsZW1lbnQobmFtZSwgZWxlbWVudEludGVyZmFjZSkKICAgICB7Ci0gICAg
ICAgIGlmICghQ29tcG9uZW50QmFzZS5fbWFwKQotICAgICAgICAgICAgQ29tcG9uZW50QmFzZS5f
bWFwID0ge307Ci0gICAgICAgIENvbXBvbmVudEJhc2UuX21hcFtuYW1lXSA9IGVsZW1lbnRJbnRl
cmZhY2U7CisgICAgICAgIENvbXBvbmVudEJhc2UuX2NvbXBvbmVudEJ5TmFtZS5zZXQobmFtZSwg
ZWxlbWVudEludGVyZmFjZSk7CisgICAgICAgIENvbXBvbmVudEJhc2UuX2NvbXBvbmVudEJ5Q2xh
c3Muc2V0KGVsZW1lbnRJbnRlcmZhY2UsIG5hbWUpOworCisgICAgICAgIGNsYXNzIGVsZW1lbnRD
bGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdXBlcigpOworCisgICAgICAgICAgICAgICAg
Y29uc3QgY3VycmVudGx5Q29uc3RydWN0ZWQgPSBDb21wb25lbnRCYXNlLl9jdXJyZW50bHlDb25z
dHJ1Y3RlZEJ5SW50ZXJmYWNlOworICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGN1
cnJlbnRseUNvbnN0cnVjdGVkLmdldChlbGVtZW50SW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAg
ICBpZiAoY29tcG9uZW50KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIENvbXBvbmVu
dEJhc2UncyBjb25zdHJ1Y3RvciB3aWxsIHRha2UgY2FyZSBvZiB0aGUgcmVzdC4KKworICAgICAg
ICAgICAgICAgIGN1cnJlbnRseUNvbnN0cnVjdGVkLnNldChlbGVtZW50SW50ZXJmYWNlLCB0aGlz
KTsKKyAgICAgICAgICAgICAgICBuZXcgZWxlbWVudEludGVyZmFjZSgpOworICAgICAgICAgICAg
ICAgIGN1cnJlbnRseUNvbnN0cnVjdGVkLmRlbGV0ZShlbGVtZW50SW50ZXJmYWNlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IG5hbWVEZXNjcmlwdG9yID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50Q2xhc3MsICduYW1lJyk7CisgICAg
ICAgIG5hbWVEZXNjcmlwdG9yLnZhbHVlID0gYCR7ZWxlbWVudEludGVyZmFjZS5uYW1lfUVsZW1l
bnRgOworICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudENsYXNzLCAnbmFtZScs
IG5hbWVEZXNjcmlwdG9yKTsKKworICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUobmFtZSwg
ZWxlbWVudENsYXNzKTsKICAgICB9CiAKICAgICBzdGF0aWMgY3JlYXRlRWxlbWVudChuYW1lLCBh
dHRyaWJ1dGVzLCBjb250ZW50KQpAQCAtMTU5LDYgKzE4NywxMCBAQCBjbGFzcyBDb21wb25lbnRC
YXNlIHsKICAgICB9CiB9CiAKK0NvbXBvbmVudEJhc2UuX2NvbXBvbmVudEJ5TmFtZSA9IG5ldyBN
YXA7CitDb21wb25lbnRCYXNlLl9jb21wb25lbnRCeUNsYXNzID0gbmV3IE1hcDsKK0NvbXBvbmVu
dEJhc2UuX2N1cnJlbnRseUNvbnN0cnVjdGVkQnlJbnRlcmZhY2UgPSBuZXcgTWFwOworCiBDb21w
b25lbnRCYXNlLmNzcyA9IFN5bWJvbCgpOwogQ29tcG9uZW50QmFzZS5odG1sID0gU3ltYm9sKCk7
CiBDb21wb25lbnRCYXNlLm1hcCA9IHt9OwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9jb21wb25lbnRzL2J1dHRvbi1iYXNlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9idXR0b24tYmFzZS5qcwko
cmV2aXNpb24gMjEwNzYwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9j
b21wb25lbnRzL2J1dHRvbi1iYXNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMCwyMSArMTAsMzcg
QEAgY2xhc3MgQnV0dG9uQmFzZSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICB0aGlz
LmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCdhJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBD
b21wb25lbnRCYXNlLmNyZWF0ZUFjdGlvbkhhbmRsZXIoY2FsbGJhY2spKTsKICAgICB9CiAKKyAg
ICBzdGF0aWMgaHRtbFRlbXBsYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBgPGEgY2xhc3M9
ImJ1dHRvbiIgaHJlZj0iIyI+PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+JHt0aGlzLmJ1dHRv
bkNvbnRlbnQoKX08L3N2Zz48L2E+YDsKKyAgICB9CisKKyAgICBzdGF0aWMgYnV0dG9uQ29udGVu
dCgpIHsgdGhyb3cgJ05vdEltcGxlbWVudGVkJzsgfQorICAgIHN0YXRpYyBzaXplRmFjdG9yKCkg
eyByZXR1cm4gMTsgfQorCiAgICAgc3RhdGljIGNzc1RlbXBsYXRlKCkKICAgICB7CisgICAgICAg
IGNvbnN0IHNpemVGYWN0b3IgPSB0aGlzLnNpemVGYWN0b3IoKTsKICAgICAgICAgcmV0dXJuIGAK
KyAgICAgICAgICAgIDpob3N0IHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7CisgICAgICAgICAgICAgICAgd2lkdGg6ICR7c2l6ZUZhY3Rvcn1yZW07CisgICAgICAgICAg
ICAgICAgaGVpZ2h0OiAke3NpemVGYWN0b3J9cmVtOworICAgICAgICAgICAgfQorCiAgICAgICAg
ICAgICAuYnV0dG9uIHsKICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwot
ICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICAgICAgICAgICAgICB3
aWR0aDogMXJlbTsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDFyZW07CisgICAgICAgICAgICAg
ICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAg
ICAgICAgfQogCisgICAgICAgICAgICAuYnV0dG9uIHN2ZyB7CisgICAgICAgICAgICAgICAgZGlz
cGxheTogYmxvY2s7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIC5idXR0b246aG92ZXIg
ewogICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICAgICAgIH0KICAgICAgICAg
YDsKICAgICB9Ci0KIH0KSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
Y29tcG9uZW50cy9jbG9zZS1idXR0b24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2Nsb3NlLWJ1dHRvbi5qcwkocmV2aXNpb24g
MjEwNzYwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRz
L2Nsb3NlLWJ1dHRvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtNSwxNiArNSwxMyBAQCBjbGFzcyBD
bG9zZUJ1dHRvbiBleHRlbmRzIEJ1dHRvbkJhc2UgewogICAgICAgICBzdXBlcignY2xvc2UtYnV0
dG9uJyk7CiAgICAgfQogCi0gICAgc3RhdGljIGh0bWxUZW1wbGF0ZSgpCisgICAgc3RhdGljIGJ1
dHRvbkNvbnRlbnQoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGAKLSAgICAgICAgICAgIDxhIGNs
YXNzPSJidXR0b24iIGhyZWY9IiMiPjxzdmcgdmlld0JveD0iMCAwIDEwMCAxMDAiPgotICAgICAg
ICAgICAgICAgIDxnIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTAiPgotICAgICAgICAg
ICAgICAgICAgICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSI0NSIgZmlsbD0idHJhbnNwYXJl
bnQiLz4KLSAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCwzMCA3MCw3MCIg
Lz4KLSAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCw3MCA3MCwzMCIgLz4K
LSAgICAgICAgICAgICAgICA8L2c+Ci0gICAgICAgICAgICA8L3N2Zz48L2E+YDsKKyAgICAgICAg
cmV0dXJuIGA8ZyBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEwIj4KKyAgICAgICAgICAg
IDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQ1IiBmaWxsPSJ0cmFuc3BhcmVudCIvPgorICAg
ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCwzMCA3MCw3MCIgLz4KKyAgICAgICAgICAgIDxw
b2x5Z29uIHBvaW50cz0iMzAsNzAgNzAsMzAiIC8+CisgICAgICAgIDwvZz5gOwogICAgIH0KIH0K
IApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Nw
aW5uZXItaWNvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL2NvbXBvbmVudHMvc3Bpbm5lci1pY29uLmpzCShyZXZpc2lvbiAyMTA3NjApCisrKyBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvc3Bpbm5lci1pY29u
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC04LDc2ICs4LDQzIEBAIGNsYXNzIFNwaW5uZXJJY29uIGV4
dGVuZHMgQ29tcG9uZW50QmFzZSAKICAgICBzdGF0aWMgY3NzVGVtcGxhdGUoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGAKLSAgICAgICAgLnNwaW5uZXIgeworICAgICAgICA6aG9zdCB7CisgICAg
ICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgICB3aWR0aDogMnJlbTsK
ICAgICAgICAgICAgIGhlaWdodDogMnJlbTsKLSAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGVaKDApOworICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7IC8qIFRo
cmVyZSBpcyBubyB3aWxsLWNoYW5nZTogc3Ryb2tlLiAqLwogICAgICAgICB9Ci0gICAgICAgIC5z
cGlubmVyIGxpbmUgeworICAgICAgICBsaW5lIHsKICAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bp
bm5lci1hbmltYXRpb24gMS42cyBsaW5lYXIgaW5maW5pdGU7Ci0gICAgICAgICAgICAtd2Via2l0
LWFuaW1hdGlvbjogc3Bpbm5lci1hbmltYXRpb24gMS42cyBsaW5lYXIgaW5maW5pdGU7Ci0gICAg
ICAgICAgICBvcGFjaXR5OiAwLjE7Ci0gICAgICAgIH0KLSAgICAgICAgLnNwaW5uZXIgbGluZTpu
dGgtY2hpbGQoMCkgewotICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMHM7
Ci0gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMHM7Ci0gICAgICAgIH0KLSAgICAgICAg
LnNwaW5uZXIgbGluZTpudGgtY2hpbGQoMSkgewotICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRp
b24tZGVsYXk6IDAuMnM7Ci0gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMnM7Ci0gICAg
ICAgIH0KLSAgICAgICAgLnNwaW5uZXIgbGluZTpudGgtY2hpbGQoMikgewotICAgICAgICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNHM7Ci0gICAgICAgICAgICBhbmltYXRpb24tZGVs
YXk6IDAuNHM7Ci0gICAgICAgIH0KLSAgICAgICAgLnNwaW5uZXIgbGluZTpudGgtY2hpbGQoMykg
ewotICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNnM7Ci0gICAgICAgICAg
ICBhbmltYXRpb24tZGVsYXk6IDAuNnM7Ci0gICAgICAgIH0KLSAgICAgICAgLnNwaW5uZXIgbGlu
ZTpudGgtY2hpbGQoNCkgewotICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAu
OHM7Ci0gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuOHM7Ci0gICAgICAgIH0KLSAgICAg
ICAgLnNwaW5uZXIgbGluZTpudGgtY2hpbGQoNSkgewotICAgICAgICAgICAgLXdlYmtpdC1hbmlt
YXRpb24tZGVsYXk6IDFzOwotICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxczsKLSAgICAg
ICAgfQotICAgICAgICAuc3Bpbm5lciBsaW5lOm50aC1jaGlsZCg2KSB7Ci0gICAgICAgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS4yczsKLSAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxh
eTogMS4yczsKLSAgICAgICAgfQotICAgICAgICAuc3Bpbm5lciBsaW5lOm50aC1jaGlsZCg3KSB7
Ci0gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS40czsKLSAgICAgICAgICAg
IGFuaW1hdGlvbi1kZWxheTogMS40czsKLSAgICAgICAgfQotICAgICAgICAuc3Bpbm5lciBsaW5l
Om50aC1jaGlsZCg4KSB7Ci0gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS42
czsKLSAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMS42czsKLSAgICAgICAgfQorICAgICAg
ICAgICAgc3Ryb2tlOiByZ2IoMjMwLCAyMzAsIDIzMCk7CisgICAgICAgICAgICBzdHJva2Utd2lk
dGg6IDEwOworICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOworICAgICAgICB9Cisg
ICAgICAgIGxpbmU6bnRoLWNoaWxkKDApIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjBzOyB9CisgICAg
ICAgIGxpbmU6bnRoLWNoaWxkKDEpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjJzOyB9CisgICAgICAg
IGxpbmU6bnRoLWNoaWxkKDIpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjRzOyB9CisgICAgICAgIGxp
bmU6bnRoLWNoaWxkKDMpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjZzOyB9CisgICAgICAgIGxpbmU6
bnRoLWNoaWxkKDQpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjhzOyB9CisgICAgICAgIGxpbmU6bnRo
LWNoaWxkKDUpIHsgYW5pbWF0aW9uLWRlbGF5OiAxLjBzOyB9CisgICAgICAgIGxpbmU6bnRoLWNo
aWxkKDYpIHsgYW5pbWF0aW9uLWRlbGF5OiAxLjJzOyB9CisgICAgICAgIGxpbmU6bnRoLWNoaWxk
KDcpIHsgYW5pbWF0aW9uLWRlbGF5OiAxLjRzOyB9CiAgICAgICAgIEBrZXlmcmFtZXMgc3Bpbm5l
ci1hbmltYXRpb24gewotICAgICAgICAgICAgMCUgeyBvcGFjaXR5OiAwLjk7IH0KLSAgICAgICAg
ICAgIDUwJSB7IG9wYWNpdHk6IDAuMTsgfQotICAgICAgICAgICAgMTAwJSB7IG9wYWNpdHk6IDAu
MTsgfQotICAgICAgICB9Ci0gICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBzcGlubmVyLWFuaW1h
dGlvbiB7Ci0gICAgICAgICAgICAwJSB7IG9wYWNpdHk6IDAuOTsgfQotICAgICAgICAgICAgNTAl
IHsgb3BhY2l0eTogMC4xOyB9Ci0gICAgICAgICAgICAxMDAlIHsgb3BhY2l0eTogMC4xOyB9Ci0g
ICAgICAgIH0KLSAgICAgICAgYDsKKyAgICAgICAgICAgIDAlIHsgc3Ryb2tlOiByZ2IoMjUsIDI1
LCAyNSk7IH0KKyAgICAgICAgICAgIDUwJSB7IHN0cm9rZTogcmdiKDIzMCwgMjMwLCAyMzApOyB9
CisgICAgICAgIH1gOwogICAgIH0KIAogICAgIHN0YXRpYyBodG1sVGVtcGxhdGUoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGA8c3ZnIGNsYXNzPSJzcGlubmVyIiB2aWV3Qm94PSIwIDAgMTAwIDEw
MCI+Ci0gICAgICAgICAgICA8bGluZSB4MT0iMTAiIHkxPSI1MCIgeDI9IjMwIiB5Mj0iNTAiIHN0
cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgot
ICAgICAgICAgICAgPGxpbmUgeDE9IjIxLjcyIiB5MT0iMjEuNzIiIHgyPSIzNS44NiIgeTI9IjM1
Ljg2IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEwIiBzdHJva2UtbGluZWNhcD0icm91
bmQiLz4KLSAgICAgICAgICAgIDxsaW5lIHgxPSI1MCIgeTE9IjEwIiB4Mj0iNTAiIHkyPSIzMCIg
c3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIxMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+
Ci0gICAgICAgICAgICA8bGluZSB4MT0iNzguMjgiIHkxPSIyMS43MiIgeDI9IjY0LjE0IiB5Mj0i
MzUuODYiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTAiIHN0cm9rZS1saW5lY2FwPSJy
b3VuZCIvPgotICAgICAgICAgICAgPGxpbmUgeDE9IjcwIiB5MT0iNTAiIHgyPSI5MCIgeTI9IjUw
IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEwIiBzdHJva2UtbGluZWNhcD0icm91bmQi
Lz4KLSAgICAgICAgICAgIDxsaW5lIHgxPSI2NS44NiIgeTE9IjY1Ljg2IiB4Mj0iNzguMjgiIHky
PSI3OC4yOCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIxMCIgc3Ryb2tlLWxpbmVjYXA9
InJvdW5kIi8+Ci0gICAgICAgICAgICA8bGluZSB4MT0iNTAiIHkxPSI3MCIgeDI9IjUwIiB5Mj0i
OTAiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTAiIHN0cm9rZS1saW5lY2FwPSJyb3Vu
ZCIvPgotICAgICAgICAgICAgPGxpbmUgeDE9IjIxLjcyIiB5MT0iNzguMjgiIHgyPSIzNS44NiIg
eTI9IjY1Ljg2IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEwIiBzdHJva2UtbGluZWNh
cD0icm91bmQiLz4KKyAgICAgICAgICAgIDxsaW5lIHgxPSIxMCIgeTE9IjUwIiB4Mj0iMzAiIHky
PSI1MCIvPgorICAgICAgICAgICAgPGxpbmUgeDE9IjIxLjcyIiB5MT0iMjEuNzIiIHgyPSIzNS44
NiIgeTI9IjM1Ljg2Ii8+CisgICAgICAgICAgICA8bGluZSB4MT0iNTAiIHkxPSIxMCIgeDI9IjUw
IiB5Mj0iMzAiLz4KKyAgICAgICAgICAgIDxsaW5lIHgxPSI3OC4yOCIgeTE9IjIxLjcyIiB4Mj0i
NjQuMTQiIHkyPSIzNS44NiIvPgorICAgICAgICAgICAgPGxpbmUgeDE9IjcwIiB5MT0iNTAiIHgy
PSI5MCIgeTI9IjUwIi8+CisgICAgICAgICAgICA8bGluZSB4MT0iNjUuODYiIHkxPSI2NS44NiIg
eDI9Ijc4LjI4IiB5Mj0iNzguMjgiLz4KKyAgICAgICAgICAgIDxsaW5lIHgxPSI1MCIgeTE9Ijcw
IiB4Mj0iNTAiIHkyPSI5MCIvPgorICAgICAgICAgICAgPGxpbmUgeDE9IjIxLjcyIiB5MT0iNzgu
MjgiIHgyPSIzNS44NiIgeTI9IjY1Ljg2Ii8+CiAgICAgICAgIDwvc3ZnPmA7CiAgICAgfQogCklu
ZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvd2Fybmlu
Zy1pY29uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvY29tcG9uZW50cy93YXJuaW5nLWljb24uanMJKHJldmlzaW9uIDIxMDc2MCkKKysrIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy93YXJuaW5nLWljb24uanMJ
KHdvcmtpbmcgY29weSkKQEAgLTUsMjkgKzUsMTQgQEAgY2xhc3MgV2FybmluZ0ljb24gZXh0ZW5k
cyBCdXR0b25CYXNlIHsKICAgICAgICAgc3VwZXIoJ3dhcm5pbmctaWNvbicpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBjc3NUZW1wbGF0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gc3VwZXIuY3Nz
VGVtcGxhdGUoKSArIGAKLSAgICAgICAgICAgIC5idXR0b24gewotICAgICAgICAgICAgICAgIGRp
c3BsYXk6IGJsb2NrOwotICAgICAgICAgICAgICAgIHdpZHRoOiAwLjdyZW07Ci0gICAgICAgICAg
ICAgICAgaGVpZ2h0OiAwLjdyZW07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAuYnV0dG9u
IHN2ZyB7Ci0gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIGA7Ci0gICAgfQorICAgIHN0YXRpYyBzaXplRmFjdG9yKCkgeyByZXR1cm4gMC43OyB9
CiAKLSAgICBzdGF0aWMgaHRtbFRlbXBsYXRlKCkKKyAgICBzdGF0aWMgYnV0dG9uQ29udGVudCgp
CiAgICAgewotICAgICAgICByZXR1cm4gYDxhIGNsYXNzPSJidXR0b24iIGhyZWY9IiMiPjxzdmcg
dmlld0JveD0iMCAwIDEwMCAxMDAiPgotICAgICAgICAgICAgPGcgc3Ryb2tlPSIjOWY2MDAwIiBm
aWxsPSIjOWY2MDAwIiBzdHJva2Utd2lkdGg9IjciPgorICAgICAgICByZXR1cm4gYDxnIHN0cm9r
ZT0iIzlmNjAwMCIgZmlsbD0iIzlmNjAwMCIgc3Ryb2tlLXdpZHRoPSI3Ij4KICAgICAgICAgICAg
ICAgICA8cG9seWdvbiBwb2ludHM9IjAsMCwgMTAwLDAsIDAsMTAwIiAvPgotICAgICAgICAgICAg
PC9nPgotICAgICAgICA8L3N2Zz48L2E+YDsKKyAgICAgICAgICAgIDwvZz5gOwogICAgIH0KLQog
fQogCiBDb21wb25lbnRCYXNlLmRlZmluZUVsZW1lbnQoJ3dhcm5pbmctaWNvbicsIFdhcm5pbmdJ
Y29uKTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvc3Vt
bWFyeS1wYWdlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvcGFnZXMvc3VtbWFyeS1wYWdlLmpzCShyZXZpc2lvbiAyMTA3NjApCisrKyBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL3N1bW1hcnktcGFnZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMTEyLDE0ICsxMTIsMTcgQEAgY2xhc3MgU3VtbWFyeVBhZ2UgZXh0ZW5kcyBQ
YWdlV2l0aEhlYWRpbgogCiAgICAgICAgIHZhciBzdGF0ZSA9IENoYXJ0c1BhZ2UuY3JlYXRlU3Rh
dGVGb3JDb25maWd1cmF0aW9uTGlzdChjb25maWd1cmF0aW9uTGlzdCk7CiAgICAgICAgIHZhciBh
bmNob3IgPSBsaW5rKHJhdGlvR3JhcGgsIHRoaXMucm91dGVyKCkudXJsKCdjaGFydHMnLCBzdGF0
ZSkpOwotICAgICAgICB2YXIgY2VsbCA9IGVsZW1lbnQoJ3RkJywgW2FuY2hvciwgbmV3IFNwaW5u
ZXJJY29uXSk7CisgICAgICAgIHZhciBzcGlubmVyID0gbmV3IFNwaW5uZXJJY29uOworICAgICAg
ICB2YXIgY2VsbCA9IGVsZW1lbnQoJ3RkJywgW2FuY2hvciwgc3Bpbm5lcl0pOwogCi0gICAgICAg
IHRoaXMuX3JlbmRlclF1ZXVlLnB1c2godGhpcy5fcmVuZGVyQ2VsbC5iaW5kKHRoaXMsIGNlbGws
IGFuY2hvciwgcmF0aW9HcmFwaCwgY29uZmlndXJhdGlvbkdyb3VwKSk7CisgICAgICAgIHRoaXMu
X3JlbmRlclF1ZXVlLnB1c2godGhpcy5fcmVuZGVyQ2VsbC5iaW5kKHRoaXMsIGNlbGwsIHNwaW5u
ZXIsIGFuY2hvciwgcmF0aW9HcmFwaCwgY29uZmlndXJhdGlvbkdyb3VwKSk7CiAgICAgICAgIHJl
dHVybiBjZWxsOwogICAgIH0KIAotICAgIF9yZW5kZXJDZWxsKGNlbGwsIGFuY2hvciwgcmF0aW9H
cmFwaCwgY29uZmlndXJhdGlvbkdyb3VwKQorICAgIF9yZW5kZXJDZWxsKGNlbGwsIHNwaW5uZXIs
IGFuY2hvciwgcmF0aW9HcmFwaCwgY29uZmlndXJhdGlvbkdyb3VwKQogICAgIHsKKyAgICAgICAg
c3Bpbm5lci51cGRhdGVSZW5kZXJpbmcoKTsKKwogICAgICAgICBpZiAoY29uZmlndXJhdGlvbkdy
b3VwLmlzRmV0Y2hpbmcoKSkKICAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LmFkZCgnZmV0Y2hp
bmcnKTsKICAgICAgICAgZWxzZQo=
</data>
<flag name="review"
          id="320940"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>