<?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>78999</bug_id>
          
          <creation_ts>2012-02-19 13:37:44 -0800</creation_ts>
          <short_desc>webkitpy: merge message_broker.py into manager_worker_broker.py</short_desc>
          <delta_ts>2012-02-21 11:33:25 -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>New Bugs</component>
          <version>528+ (Nightly build)</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>
          <dependson>78997</dependson>
          <blocked>78187</blocked>
    
    <blocked>79000</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>559940</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-19 13:37:44 -0800</bug_when>
    <thetext>webkitpy: merge message_broker.py into manager_worker_broker.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559941</commentid>
    <comment_count>1</comment_count>
      <attachid>127740</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-19 13:41:23 -0800</bug_when>
    <thetext>Created attachment 127740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561079</commentid>
    <comment_count>2</comment_count>
      <attachid>127740</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-21 11:28:05 -0800</bug_when>
    <thetext>Comment on attachment 127740
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561085</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-21 11:33:25 -0800</bug_when>
    <thetext>Committed r108378: &lt;http://trac.webkit.org/changeset/108378&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127740</attachid>
            <date>2012-02-19 13:41:23 -0800</date>
            <delta_ts>2012-02-21 11:28:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78999-20120219134124.patch</filename>
            <type>text/plain</type>
            <size>17918</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MTgyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTk5YTk0YjNjY2I2MWJhZTM0YTNkOWZjMzEzYWI3MDNk
MGM1NjRiMC4uOWI3MTc2MDE3YWIwM2QwNjFlNDNjNGY5YmExMmNkYzlhOTIyMGFhNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQx
IEBACiAyMDEyLTAyLTE5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIHdlYmtpdHB5OiBtZXJnZSBtZXNzYWdlX2Jyb2tlci5weSBpbnRvIG1hbmFnZXJfd29y
a2VyX2Jyb2tlci5weQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Nzg5OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGlzIHByZXR0eSBtdWNoIGEgc3RyYWlnaHQgY3V0LWFuZC1wYXN0ZSBvZiBvbmUg
ZmlsZSBpbnRvCisgICAgICAgIGFub3RoZXIgKGJyb2tlbiB1cCBzbyB0aGF0IGRvY3N0cmluZ3Mg
YW5kIGltcG9ydHMgYXJlIGluIHRoZQorICAgICAgICByaWdodCBwbGFjZSkuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3dvcmtl
cl9icm9rZXIucHk6CisgICAgICAgIChCcm9rZXJDbGllbnQpOgorICAgICAgICAoQnJva2VyQ2xp
ZW50LmlzX2RvbmUpOgorICAgICAgICAoQnJva2VyQ2xpZW50Lm5hbWUpOgorICAgICAgICAoQnJv
a2VyKToKKyAgICAgICAgKEJyb2tlci5fX2luaXRfXyk6CisgICAgICAgIChCcm9rZXIuYWRkX3Rv
cGljKToKKyAgICAgICAgKEJyb2tlci5fZ2V0X3F1ZXVlX2Zvcl90b3BpYyk6CisgICAgICAgIChC
cm9rZXIucG9zdF9tZXNzYWdlKToKKyAgICAgICAgKEJyb2tlci5ydW5fbWVzc2FnZV9sb29wKToK
KyAgICAgICAgKEJyb2tlci5ydW5fYWxsX3BlbmRpbmcpOgorICAgICAgICAoQnJva2VyLl9ydW5f
bG9vcCk6CisgICAgICAgIChCcm9rZXIuX2Rpc3BhdGNoX21lc3NhZ2UpOgorICAgICAgICAoX01l
c3NhZ2UpOgorICAgICAgICAoX01lc3NhZ2UubG9hZHMpOgorICAgICAgICAoX01lc3NhZ2UuX19p
bml0X18pOgorICAgICAgICAoX01lc3NhZ2UuZHVtcHMpOgorICAgICAgICAoX01lc3NhZ2UuX19y
ZXByX18pOgorICAgICAgICAoQnJva2VyQ29ubmVjdGlvbik6CisgICAgICAgIChCcm9rZXJDb25u
ZWN0aW9uLl9faW5pdF9fKToKKyAgICAgICAgKEJyb2tlckNvbm5lY3Rpb24ucnVuX21lc3NhZ2Vf
bG9vcCk6CisgICAgICAgIChCcm9rZXJDb25uZWN0aW9uLnBvc3RfbWVzc2FnZSk6CisgICAgICAg
IChCcm9rZXJDb25uZWN0aW9uLnJhaXNlX2V4Y2VwdGlvbik6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWVzc2FnZV9icm9rZXIucHk6IFJlbW92
ZWQuCisKKzIwMTItMDItMTkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgd2Via2l0cHk6IHByZXBhcmUgdG8gZGVsZXRlIG1lc3NhZ2VfYnJva2VyLnB5CiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk5NwogCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9tYW5hZ2VyX3dvcmtlcl9icm9rZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3dvcmtlcl9icm9rZXIucHkKaW5kZXggZTA1YzIy
NmYyMGJkZTUwNDgxMTFlMTg0MGMwNWZkOGRkMTA5YmNiMi4uZDFhODJkNDI5NWYyOWJlMmUyYTBi
ODQyNTA3ZTdiZDk4NTg5ZTI5NyAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl93b3JrZXJfYnJva2VyLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfd29y
a2VyX2Jyb2tlci5weQpAQCAtMzksMTUgKzM5LDQyIEBAIFRoZXkgaW50ZXJhY3QgbW9yZSBvciBs
ZXNzIGxpa2U6CiAgICAgIF4gICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgICAgICAvICAg
ICAgICAgICAgICBeCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICB2ICAgICAgICAgICAgIHYg
ICAgICAgICAgICAgICB8CiAgICAgIFwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgQnJva2VyICAg
LS0tLS0tLS0tLS0tLS0tLS8KKworVGhlIGJyb2tlciBzaW1wbHkgZGlzdHJpYnV0ZXMgbWVzc2Fn
ZXMgb250byB0b3BpY3MgKG5hbWVkIHF1ZXVlcyk7IHRoZSBhY3R1YWwKK3F1ZXVlcyB0aGVtc2Vs
dmVzIGFyZSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLCBhcyB0aGUgcXVldWUncyBpbXBsZW1lbnRh
dGlvbgorcmVxdWlyZW1lbnRzIHZhcmllcyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgZGVzaXJlZCBj
b25jdXJyZW5jeSBtb2RlbAorKG5vbmUvdGhyZWFkcy9wcm9jZXNzZXMpLgorCitJbiBvcmRlciBm
b3Igc2hhcmVkLW5vdGhpbmcgbWVzc2FnaW5nIGJldHdlZW4gcHJvY2Vzc2luZyB0byBiZSBwb3Nz
aWJsZSwKK01lc3NhZ2VzIG11c3QgYmUgcGlja2xhYmxlLgorCitUaGUgbW9kdWxlIGRlZmluZXMg
b25lIGludGVyZmFjZSBhbmQgdHdvIGNsYXNzZXMuIENhbGxlcnMgb2YgdGhpcyBwYWNrYWdlCitt
dXN0IGltcGxlbWVudCB0aGUgQnJva2VyQ2xpZW50IGludGVyZmFjZSwgYW5kIG1vc3QgY2FsbGVy
cyB3aWxsIGNyZWF0ZQorQnJva2VyQ29ubmVjdGlvbnMgYXMgd2VsbCBhcyBCcm9rZXJzLgorCitU
aGUgY2xhc3NlcyByZWxhdGUgdG8gZWFjaCBvdGhlciBhczoKKworICAgIEJyb2tlckNsaWVudCAg
IC0tLS0tLT4gICAgQnJva2VyQ29ubmVjdGlvbgorICAgICAgICAgXiAgICAgICAgICAgICAgICAg
ICAgICAgICB8CisgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHYKKyAgICAgICAg
IFwtLS0tLS0tLS0tLS0tLS0tICAgICAgQnJva2VyCisKKyhUaGUgQnJva2VyQ2xpZW50IG5ldmVy
IGNhbGxzIGJyb2tlciBkaXJlY3RseSBhZnRlciBpdCBpcyBjcmVhdGVkLCBvbmx5CitCcm9rZXJD
b25uZWN0aW9uLiAgQnJva2VyQ29ubmVjdGlvbiBwYXNzZXMgYSByZWZlcmVuY2UgdG8gQnJva2Vy
Q2xpZW50IHRvCitCcm9rZXIsIGFuZCBCcm9rZXIgb25seSBpbnZva2VzIHRoYXQgcmVmZXJlbmNl
LCBuZXZlciB0YWxraW5nIGRpcmVjdGx5IHRvCitCcm9rZXJDb25uZWN0aW9uKS4KICIiIgogCitp
bXBvcnQgY1BpY2tsZQogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBtdWx0aXByb2Nlc3NpbmcKIGlt
cG9ydCBvcHRwYXJzZQogaW1wb3J0IFF1ZXVlCiBpbXBvcnQgc3lzCitpbXBvcnQgdHJhY2ViYWNr
CisKIAotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMubWVzc2FnZV9icm9r
ZXIgaW1wb3J0IEJyb2tlciwgQnJva2VyQ2xpZW50LCBCcm9rZXJDb25uZWN0aW9uLCBfTWVzc2Fn
ZQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBzdGFja191dGlscwogCiAKIF9s
b2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKQEAgLTg1LDYgKzExMiwxMzcgQEAgZGVm
IGdldCh3b3JrZXJfbW9kZWwsIGNsaWVudCwgd29ya2VyX2NsYXNzKToKICAgICByZXR1cm4gbWFu
YWdlcl9jbGFzcyhicm9rZXIsIGNsaWVudCwgd29ya2VyX2NsYXNzKQogCiAKK2NsYXNzIEJyb2tl
ckNsaWVudChvYmplY3QpOgorICAgICIiIkFic3RyYWN0IGJhc2UgY2xhc3MgLyBpbnRlcmZhY2Ug
dGhhdCBhbGwgbWVzc2FnZSBicm9rZXIgY2xpZW50cyBtdXN0CisgICAgaW1wbGVtZW50LiBJbiBh
ZGRpdGlvbiB0byB0aGUgbWV0aG9kcyBiZWxvdywgYnkgY29udmVudGlvbiBjbGllbnRzCisgICAg
aW1wbGVtZW50IHJvdXRpbmVzIG9mIHRoZSBzaWduYXR1cmUgdHlwZQorCisgICAgICAgIGhhbmRs
ZV9NRVNTQUdFX05BTUUoc2VsZiwgc3JjLCAuLi4pOgorCisgICAgd2hlcmUgTUVTU0FHRV9OQU1F
IG1hdGNoZXMgdGhlIHN0cmluZyBwYXNzZWQgdG8gcG9zdF9tZXNzYWdlKCksIGFuZAorICAgIHNy
YyBpbmRpY2F0ZXMgdGhlIG5hbWUgb2YgdGhlIHNlbmRlci4gSWYgdGhlIG1lc3NhZ2UgY29udGFp
bnMgdmFsdWVzIGluCisgICAgdGhlIG1lc3NhZ2UgYm9keSwgdGhvc2Ugd2lsbCBiZSBwcm92aWRl
ZCBhcyBvcHRwYXJhbXMuIiIiCisKKyAgICBkZWYgaXNfZG9uZShzZWxmKToKKyAgICAgICAgIiIi
Q2FsbGVkIGZyb20gaW5zaWRlIHJ1bl9tZXNzYWdlX2xvb3AoKSB0byBpbmRpY2F0ZSB3aGV0aGVy
IHRvIGV4aXQuIiIiCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRl
ZiBuYW1lKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gYSBuYW1lIHRoYXQgaWRlbnRpZmllcyB0
aGUgY2xpZW50LiIiIgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKworY2xh
c3MgQnJva2VyKG9iamVjdCk6CisgICAgIiIiQnJva2VycyBwcm92aWRlIHRoZSBiYXNpYyBtb2Rl
bCBvZiBhIHNldCBvZiB0b3BpY3MuIENsaWVudHMgY2FuIHBvc3QgYQorICAgIG1lc3NhZ2UgdG8g
YW55IHRvcGljIHVzaW5nIHBvc3RfbWVzc2FnZSgpLCBhbmQgY2FuIHByb2Nlc3MgbWVzc2FnZXMg
b24gb25lCisgICAgdG9waWMgYXQgYSB0aW1lIHVzaW5nIHJ1bl9tZXNzYWdlX2xvb3AoKS4iIiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBxdWV1ZV9tYWtlcik6CisgICAgICAgICIiIkFyZ3M6
CisgICAgICAgICAgICBxdWV1ZV9tYWtlcjogYSBmYWN0b3J5IG1ldGhvZCB0aGF0IHJldHVybnMg
b2JqZWN0cyBpbXBsZW1lbnRpbmcgYQorICAgICAgICAgICAgICAgIFF1ZXVlIGludGVyZmFjZSAo
cHV0KCkvZ2V0KCkpLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fcXVldWVfbWFrZXIgPSBx
dWV1ZV9tYWtlcgorICAgICAgICBzZWxmLl90b3BpY3MgPSB7fQorCisgICAgZGVmIGFkZF90b3Bp
YyhzZWxmLCB0b3BpY19uYW1lKToKKyAgICAgICAgaWYgdG9waWNfbmFtZSBub3QgaW4gc2VsZi5f
dG9waWNzOgorICAgICAgICAgICAgc2VsZi5fdG9waWNzW3RvcGljX25hbWVdID0gc2VsZi5fcXVl
dWVfbWFrZXIoKQorCisgICAgZGVmIF9nZXRfcXVldWVfZm9yX3RvcGljKHNlbGYsIHRvcGljX25h
bWUpOgorICAgICAgICByZXR1cm4gc2VsZi5fdG9waWNzW3RvcGljX25hbWVdCisKKyAgICBkZWYg
cG9zdF9tZXNzYWdlKHNlbGYsIGNsaWVudCwgdG9waWNfbmFtZSwgbWVzc2FnZV9uYW1lLCAqbWVz
c2FnZV9hcmdzKToKKyAgICAgICAgIiIiUG9zdCBhIG1lc3NhZ2UgdG8gdGhlIGFwcHJvcHJpYXRl
IHRvcGljIG5hbWUuCisKKyAgICAgICAgTWVzc2FnZXMgaGF2ZSBhIG5hbWUgYW5kIGEgdHVwbGUg
b2Ygb3B0aW9uYWwgYXJndW1lbnRzLiBCb3RoIG11c3QgYmUgcGlja2xhYmxlLiIiIgorICAgICAg
ICBtZXNzYWdlID0gX01lc3NhZ2UoY2xpZW50Lm5hbWUoKSwgdG9waWNfbmFtZSwgbWVzc2FnZV9u
YW1lLCBtZXNzYWdlX2FyZ3MpCisgICAgICAgIHF1ZXVlID0gc2VsZi5fZ2V0X3F1ZXVlX2Zvcl90
b3BpYyh0b3BpY19uYW1lKQorICAgICAgICBxdWV1ZS5wdXQoX01lc3NhZ2UuZHVtcHMobWVzc2Fn
ZSkpCisKKyAgICBkZWYgcnVuX21lc3NhZ2VfbG9vcChzZWxmLCB0b3BpY19uYW1lLCBjbGllbnQs
IGRlbGF5X3NlY3M9Tm9uZSk6CisgICAgICAgICIiIkxvb3AgcHJvY2Vzc2luZyBtZXNzYWdlcyB1
bnRpbCBjbGllbnQuaXNfZG9uZSgpIG9yIGRlbGF5IHBhc3Nlcy4KKworICAgICAgICBUbyBydW4g
aW5kZWZpbml0ZWx5LCBzZXQgZGVsYXlfc2VjcyB0byBOb25lLiIiIgorICAgICAgICBhc3NlcnQg
ZGVsYXlfc2VjcyBpcyBOb25lIG9yIGRlbGF5X3NlY3MgPiAwCisgICAgICAgIHNlbGYuX3J1bl9s
b29wKHRvcGljX25hbWUsIGNsaWVudCwgYmxvY2s9VHJ1ZSwgZGVsYXlfc2Vjcz1kZWxheV9zZWNz
KQorCisgICAgZGVmIHJ1bl9hbGxfcGVuZGluZyhzZWxmLCB0b3BpY19uYW1lLCBjbGllbnQpOgor
ICAgICAgICAiIiJQcm9jZXNzIG1lc3NhZ2VzIHVudGlsIGNsaWVudC5pc19kb25lKCkgb3IgY2Fs
bGVyIHdvdWxkIGJsb2NrLiIiIgorICAgICAgICBzZWxmLl9ydW5fbG9vcCh0b3BpY19uYW1lLCBj
bGllbnQsIGJsb2NrPUZhbHNlLCBkZWxheV9zZWNzPU5vbmUpCisKKyAgICBkZWYgX3J1bl9sb29w
KHNlbGYsIHRvcGljX25hbWUsIGNsaWVudCwgYmxvY2ssIGRlbGF5X3NlY3MpOgorICAgICAgICBx
dWV1ZSA9IHNlbGYuX2dldF9xdWV1ZV9mb3JfdG9waWModG9waWNfbmFtZSkKKyAgICAgICAgd2hp
bGUgbm90IGNsaWVudC5pc19kb25lKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgcyA9IHF1ZXVlLmdldChibG9jaywgZGVsYXlfc2VjcykKKyAgICAgICAgICAgIGV4Y2VwdCBR
dWV1ZS5FbXB0eToKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIG1zZyA9IF9N
ZXNzYWdlLmxvYWRzKHMpCisgICAgICAgICAgICBzZWxmLl9kaXNwYXRjaF9tZXNzYWdlKG1zZywg
Y2xpZW50KQorCisgICAgZGVmIF9kaXNwYXRjaF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGNsaWVu
dCk6CisgICAgICAgIGlmIG5vdCBoYXNhdHRyKGNsaWVudCwgJ2hhbmRsZV8nICsgbWVzc2FnZS5u
YW1lKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAiJXM6
IHJlY2VpdmVkIG1lc3NhZ2UgJyVzJyBpdCBjb3VsZG4ndCBoYW5kbGUiICUKKyAgICAgICAgICAg
ICAgIChjbGllbnQubmFtZSgpLCBtZXNzYWdlLm5hbWUpKQorICAgICAgICBvcHRhcmdzID0gbWVz
c2FnZS5hcmdzCisgICAgICAgIG1lc3NhZ2VfaGFuZGxlciA9IGdldGF0dHIoY2xpZW50LCAnaGFu
ZGxlXycgKyBtZXNzYWdlLm5hbWUpCisgICAgICAgIG1lc3NhZ2VfaGFuZGxlcihtZXNzYWdlLnNy
YywgKm9wdGFyZ3MpCisKKworY2xhc3MgX01lc3NhZ2Uob2JqZWN0KToKKyAgICBAc3RhdGljbWV0
aG9kCisgICAgZGVmIGxvYWRzKHN0cmluZ192YWx1ZSk6CisgICAgICAgIG9iaiA9IGNQaWNrbGUu
bG9hZHMoc3RyaW5nX3ZhbHVlKQorICAgICAgICBhc3NlcnQoaXNpbnN0YW5jZShvYmosIF9NZXNz
YWdlKSkKKyAgICAgICAgcmV0dXJuIG9iagorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNyYywg
dG9waWNfbmFtZSwgbWVzc2FnZV9uYW1lLCBtZXNzYWdlX2FyZ3MpOgorICAgICAgICBzZWxmLnNy
YyA9IHNyYworICAgICAgICBzZWxmLnRvcGljX25hbWUgPSB0b3BpY19uYW1lCisgICAgICAgIHNl
bGYubmFtZSA9IG1lc3NhZ2VfbmFtZQorICAgICAgICBzZWxmLmFyZ3MgPSBtZXNzYWdlX2FyZ3MK
KworICAgIGRlZiBkdW1wcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGNQaWNrbGUuZHVtcHMoc2Vs
ZikKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICgiX01lc3NhZ2Uo
ZnJvbT0nJXMnLCB0b3BpY19uYW1lPSclcycsIG1lc3NhZ2VfbmFtZT0nJXMnKSIgJQorICAgICAg
ICAgICAgICAgIChzZWxmLnNyYywgc2VsZi50b3BpY19uYW1lLCBzZWxmLm5hbWUpKQorCisKK2Ns
YXNzIEJyb2tlckNvbm5lY3Rpb24ob2JqZWN0KToKKyAgICAiIiJCcm9rZXJDb25uZWN0aW9uIHBy
b3ZpZGVzIGEgY29ubmVjdGlvbi1vcmllbnRlZCBmYWNhZGUgb24gdG9wIG9mIGEKKyAgICBCcm9r
ZXIsIHNvIHRoYXQgY2FsbGVycyBkb24ndCBoYXZlIHRvIHJlcGVhdGVkbHkgcGFzcyB0aGUgc2Ft
ZSB0b3BpYworICAgIG5hbWVzIG92ZXIgYW5kIG92ZXIuIiIiCisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgYnJva2VyLCBjbGllbnQsIHJ1bl90b3BpYywgcG9zdF90b3BpYyk6CisgICAgICAgICIi
IkNyZWF0ZSBhIEJyb2tlckNvbm5lY3Rpb24gb24gdG9wIG9mIGEgQnJva2VyLiBOb3RlIHRoYXQg
dGhlIEJyb2tlcgorICAgICAgICBpcyBwYXNzZWQgaW4gcmF0aGVyIHRoYW4gY3JlYXRlZCBzbyB0
aGF0IGEgc2luZ2xlIEJyb2tlciBjYW4gYmUgdXNlZAorICAgICAgICBieSBtdWx0aXBsZSBCcm9r
ZXJDb25uZWN0aW9ucy4iIiIKKyAgICAgICAgc2VsZi5fYnJva2VyID0gYnJva2VyCisgICAgICAg
IHNlbGYuX2NsaWVudCA9IGNsaWVudAorICAgICAgICBzZWxmLl9wb3N0X3RvcGljID0gcG9zdF90
b3BpYworICAgICAgICBzZWxmLl9ydW5fdG9waWMgPSBydW5fdG9waWMKKyAgICAgICAgYnJva2Vy
LmFkZF90b3BpYyhydW5fdG9waWMpCisgICAgICAgIGJyb2tlci5hZGRfdG9waWMocG9zdF90b3Bp
YykKKworICAgIGRlZiBydW5fbWVzc2FnZV9sb29wKHNlbGYsIGRlbGF5X3NlY3M9Tm9uZSk6Cisg
ICAgICAgIHNlbGYuX2Jyb2tlci5ydW5fbWVzc2FnZV9sb29wKHNlbGYuX3J1bl90b3BpYywgc2Vs
Zi5fY2xpZW50LCBkZWxheV9zZWNzKQorCisgICAgZGVmIHBvc3RfbWVzc2FnZShzZWxmLCBtZXNz
YWdlX25hbWUsICptZXNzYWdlX2FyZ3MpOgorICAgICAgICBzZWxmLl9icm9rZXIucG9zdF9tZXNz
YWdlKHNlbGYuX2NsaWVudCwgc2VsZi5fcG9zdF90b3BpYywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlX25hbWUsICptZXNzYWdlX2FyZ3MpCisKKyAgICBkZWYgcmFp
c2VfZXhjZXB0aW9uKHNlbGYsIGV4Y19pbmZvKToKKyAgICAgICAgIyBTaW5jZSB0cmFjZWJhY2tz
IGFyZW4ndCBwaWNrbGFibGUsIHNlbmQgdGhlIGV4dHJhY3RlZCBzdGFjayBpbnN0ZWFkLgorICAg
ICAgICBleGNlcHRpb25fdHlwZSwgZXhjZXB0aW9uX3ZhbHVlLCBleGNlcHRpb25fdHJhY2ViYWNr
ID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgc3RhY2tfdXRpbHMubG9nX3RyYWNlYmFjayhfbG9n
LmRlYnVnLCBleGNlcHRpb25fdHJhY2ViYWNrKQorICAgICAgICBzdGFjayA9IHRyYWNlYmFjay5l
eHRyYWN0X3RiKGV4Y2VwdGlvbl90cmFjZWJhY2spCisgICAgICAgIHNlbGYuX2Jyb2tlci5wb3N0
X21lc3NhZ2Uoc2VsZi5fY2xpZW50LCBzZWxmLl9wb3N0X3RvcGljLCAnZXhjZXB0aW9uJywgZXhj
ZXB0aW9uX3R5cGUsIGV4Y2VwdGlvbl92YWx1ZSwgc3RhY2spCisKKwogY2xhc3MgQWJzdHJhY3RX
b3JrZXIoQnJva2VyQ2xpZW50KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgd29ya2VyX2Nvbm5l
Y3Rpb24sIHdvcmtlcl9hcmd1bWVudHM9Tm9uZSk6CiAgICAgICAgICIiIlRoZSBjb25zdHJ1Y3Rv
ciBzaG91bGQgYmUgdXNlZCB0byBkbyBhbnkgc2ltcGxlIGluaXRpYWxpemF0aW9uCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tZXNz
YWdlX2Jyb2tlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL21lc3NhZ2VfYnJva2VyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
NjRkMzZkNGI0NWU0NWZmZWFlZTNhMThjODk3NWU4N2QzYmE1NmYzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21lc3NhZ2VfYnJva2VyLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMjAwICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJNb2R1bGUgZm9yIGhhbmRsaW5n
IG1lc3NhZ2luZyBmb3IgcnVuLXdlYmtpdC10ZXN0cy4KLQotVGhpcyBtb2R1bGUgaW1wbGVtZW50
cyBhIHNpbXBsZSBtZXNzYWdlIGJyb2tlciBhYnN0cmFjdGlvbiB0aGF0IHdpbGwgYmUKLXVzZWQg
dG8gY29vcmRpbmF0ZSBtZXNzYWdlcyBiZXR3ZWVuIHRoZSBtYWluIHJ1bi13ZWJraXQtdGVzdHMg
dGhyZWFkCi0oYWthIFRlc3RSdW5uZXIpIGFuZCB0aGUgaW5kaXZpZHVhbCB3b3JrZXIgdGhyZWFk
cyAocHJldmlvdXNseSBrbm93biBhcwotZHVtcF9yZW5kZXJfdHJlZV90aHJlYWRzKS4KLQotVGhl
IGJyb2tlciBzaW1wbHkgZGlzdHJpYnV0ZXMgbWVzc2FnZXMgb250byB0b3BpY3MgKG5hbWVkIHF1
ZXVlcyk7IHRoZSBhY3R1YWwKLXF1ZXVlcyB0aGVtc2VsdmVzIGFyZSBwcm92aWRlZCBieSB0aGUg
Y2FsbGVyLCBhcyB0aGUgcXVldWUncyBpbXBsZW1lbnRhdGlvbgotcmVxdWlyZW1lbnRzIHZhcmll
cyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgZGVzaXJlZCBjb25jdXJyZW5jeSBtb2RlbAotKG5vbmUv
dGhyZWFkcy9wcm9jZXNzZXMpLgotCi1JbiBvcmRlciBmb3Igc2hhcmVkLW5vdGhpbmcgbWVzc2Fn
aW5nIGJldHdlZW4gcHJvY2Vzc2luZyB0byBiZSBwb3NzaWJsZSwKLU1lc3NhZ2VzIG11c3QgYmUg
cGlja2xhYmxlLgotCi1UaGUgbW9kdWxlIGRlZmluZXMgb25lIGludGVyZmFjZSBhbmQgdHdvIGNs
YXNzZXMuIENhbGxlcnMgb2YgdGhpcyBwYWNrYWdlCi1tdXN0IGltcGxlbWVudCB0aGUgQnJva2Vy
Q2xpZW50IGludGVyZmFjZSwgYW5kIG1vc3QgY2FsbGVycyB3aWxsIGNyZWF0ZQotQnJva2VyQ29u
bmVjdGlvbnMgYXMgd2VsbCBhcyBCcm9rZXJzLgotCi1UaGUgY2xhc3NlcyByZWxhdGUgdG8gZWFj
aCBvdGhlciBhczoKLQotICAgIEJyb2tlckNsaWVudCAgIC0tLS0tLT4gICAgQnJva2VyQ29ubmVj
dGlvbgotICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICAgICB8ICAg
ICAgICAgICAgICAgICAgICAgICAgIHYKLSAgICAgICAgIFwtLS0tLS0tLS0tLS0tLS0tICAgICAg
QnJva2VyCi0KLShUaGUgQnJva2VyQ2xpZW50IG5ldmVyIGNhbGxzIGJyb2tlciBkaXJlY3RseSBh
ZnRlciBpdCBpcyBjcmVhdGVkLCBvbmx5Ci1Ccm9rZXJDb25uZWN0aW9uLiAgQnJva2VyQ29ubmVj
dGlvbiBwYXNzZXMgYSByZWZlcmVuY2UgdG8gQnJva2VyQ2xpZW50IHRvCi1Ccm9rZXIsIGFuZCBC
cm9rZXIgb25seSBpbnZva2VzIHRoYXQgcmVmZXJlbmNlLCBuZXZlciB0YWxraW5nIGRpcmVjdGx5
IHRvCi1Ccm9rZXJDb25uZWN0aW9uKS4KLSIiIgotaW1wb3J0IHN5cwotaW1wb3J0IHRyYWNlYmFj
awotCi1pbXBvcnQgY1BpY2tsZQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBRdWV1ZQotCi1mcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHN0YWNrX3V0aWxzCi0KLV9sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBCcm9rZXJDbGllbnQob2JqZWN0KToK
LSAgICAiIiJBYnN0cmFjdCBiYXNlIGNsYXNzIC8gaW50ZXJmYWNlIHRoYXQgYWxsIG1lc3NhZ2Ug
YnJva2VyIGNsaWVudHMgbXVzdAotICAgIGltcGxlbWVudC4gSW4gYWRkaXRpb24gdG8gdGhlIG1l
dGhvZHMgYmVsb3csIGJ5IGNvbnZlbnRpb24gY2xpZW50cwotICAgIGltcGxlbWVudCByb3V0aW5l
cyBvZiB0aGUgc2lnbmF0dXJlIHR5cGUKLQotICAgICAgICBoYW5kbGVfTUVTU0FHRV9OQU1FKHNl
bGYsIHNyYywgLi4uKToKLQotICAgIHdoZXJlIE1FU1NBR0VfTkFNRSBtYXRjaGVzIHRoZSBzdHJp
bmcgcGFzc2VkIHRvIHBvc3RfbWVzc2FnZSgpLCBhbmQKLSAgICBzcmMgaW5kaWNhdGVzIHRoZSBu
YW1lIG9mIHRoZSBzZW5kZXIuIElmIHRoZSBtZXNzYWdlIGNvbnRhaW5zIHZhbHVlcyBpbgotICAg
IHRoZSBtZXNzYWdlIGJvZHksIHRob3NlIHdpbGwgYmUgcHJvdmlkZWQgYXMgb3B0cGFyYW1zLiIi
IgotCi0gICAgZGVmIGlzX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIkNhbGxlZCBmcm9tIGluc2lk
ZSBydW5fbWVzc2FnZV9sb29wKCkgdG8gaW5kaWNhdGUgd2hldGhlciB0byBleGl0LiIiIgotICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCi0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAg
ICAgICAgIiIiUmV0dXJuIGEgbmFtZSB0aGF0IGlkZW50aWZpZXMgdGhlIGNsaWVudC4iIiIKLSAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgotCi0KLWNsYXNzIEJyb2tlcihvYmplY3Qp
OgotICAgICIiIkJyb2tlcnMgcHJvdmlkZSB0aGUgYmFzaWMgbW9kZWwgb2YgYSBzZXQgb2YgdG9w
aWNzLiBDbGllbnRzIGNhbiBwb3N0IGEKLSAgICBtZXNzYWdlIHRvIGFueSB0b3BpYyB1c2luZyBw
b3N0X21lc3NhZ2UoKSwgYW5kIGNhbiBwcm9jZXNzIG1lc3NhZ2VzIG9uIG9uZQotICAgIHRvcGlj
IGF0IGEgdGltZSB1c2luZyBydW5fbWVzc2FnZV9sb29wKCkuIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgcXVldWVfbWFrZXIpOgotICAgICAgICAiIiJBcmdzOgotICAgICAgICAgICAgcXVl
dWVfbWFrZXI6IGEgZmFjdG9yeSBtZXRob2QgdGhhdCByZXR1cm5zIG9iamVjdHMgaW1wbGVtZW50
aW5nIGEKLSAgICAgICAgICAgICAgICBRdWV1ZSBpbnRlcmZhY2UgKHB1dCgpL2dldCgpKS4KLSAg
ICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3F1ZXVlX21ha2VyID0gcXVldWVfbWFrZXIKLSAgICAg
ICAgc2VsZi5fdG9waWNzID0ge30KLQotICAgIGRlZiBhZGRfdG9waWMoc2VsZiwgdG9waWNfbmFt
ZSk6Ci0gICAgICAgIGlmIHRvcGljX25hbWUgbm90IGluIHNlbGYuX3RvcGljczoKLSAgICAgICAg
ICAgIHNlbGYuX3RvcGljc1t0b3BpY19uYW1lXSA9IHNlbGYuX3F1ZXVlX21ha2VyKCkKLQotICAg
IGRlZiBfZ2V0X3F1ZXVlX2Zvcl90b3BpYyhzZWxmLCB0b3BpY19uYW1lKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX3RvcGljc1t0b3BpY19uYW1lXQotCi0gICAgZGVmIHBvc3RfbWVzc2FnZShzZWxm
LCBjbGllbnQsIHRvcGljX25hbWUsIG1lc3NhZ2VfbmFtZSwgKm1lc3NhZ2VfYXJncyk6Ci0gICAg
ICAgICIiIlBvc3QgYSBtZXNzYWdlIHRvIHRoZSBhcHByb3ByaWF0ZSB0b3BpYyBuYW1lLgotCi0g
ICAgICAgIE1lc3NhZ2VzIGhhdmUgYSBuYW1lIGFuZCBhIHR1cGxlIG9mIG9wdGlvbmFsIGFyZ3Vt
ZW50cy4gQm90aCBtdXN0IGJlIHBpY2tsYWJsZS4iIiIKLSAgICAgICAgbWVzc2FnZSA9IF9NZXNz
YWdlKGNsaWVudC5uYW1lKCksIHRvcGljX25hbWUsIG1lc3NhZ2VfbmFtZSwgbWVzc2FnZV9hcmdz
KQotICAgICAgICBxdWV1ZSA9IHNlbGYuX2dldF9xdWV1ZV9mb3JfdG9waWModG9waWNfbmFtZSkK
LSAgICAgICAgcXVldWUucHV0KF9NZXNzYWdlLmR1bXBzKG1lc3NhZ2UpKQotCi0gICAgZGVmIHJ1
bl9tZXNzYWdlX2xvb3Aoc2VsZiwgdG9waWNfbmFtZSwgY2xpZW50LCBkZWxheV9zZWNzPU5vbmUp
OgotICAgICAgICAiIiJMb29wIHByb2Nlc3NpbmcgbWVzc2FnZXMgdW50aWwgY2xpZW50LmlzX2Rv
bmUoKSBvciBkZWxheSBwYXNzZXMuCi0KLSAgICAgICAgVG8gcnVuIGluZGVmaW5pdGVseSwgc2V0
IGRlbGF5X3NlY3MgdG8gTm9uZS4iIiIKLSAgICAgICAgYXNzZXJ0IGRlbGF5X3NlY3MgaXMgTm9u
ZSBvciBkZWxheV9zZWNzID4gMAotICAgICAgICBzZWxmLl9ydW5fbG9vcCh0b3BpY19uYW1lLCBj
bGllbnQsIGJsb2NrPVRydWUsIGRlbGF5X3NlY3M9ZGVsYXlfc2VjcykKLQotICAgIGRlZiBydW5f
YWxsX3BlbmRpbmcoc2VsZiwgdG9waWNfbmFtZSwgY2xpZW50KToKLSAgICAgICAgIiIiUHJvY2Vz
cyBtZXNzYWdlcyB1bnRpbCBjbGllbnQuaXNfZG9uZSgpIG9yIGNhbGxlciB3b3VsZCBibG9jay4i
IiIKLSAgICAgICAgc2VsZi5fcnVuX2xvb3AodG9waWNfbmFtZSwgY2xpZW50LCBibG9jaz1GYWxz
ZSwgZGVsYXlfc2Vjcz1Ob25lKQotCi0gICAgZGVmIF9ydW5fbG9vcChzZWxmLCB0b3BpY19uYW1l
LCBjbGllbnQsIGJsb2NrLCBkZWxheV9zZWNzKToKLSAgICAgICAgcXVldWUgPSBzZWxmLl9nZXRf
cXVldWVfZm9yX3RvcGljKHRvcGljX25hbWUpCi0gICAgICAgIHdoaWxlIG5vdCBjbGllbnQuaXNf
ZG9uZSgpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHMgPSBxdWV1ZS5nZXQo
YmxvY2ssIGRlbGF5X3NlY3MpCi0gICAgICAgICAgICBleGNlcHQgUXVldWUuRW1wdHk6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBtc2cgPSBfTWVzc2FnZS5sb2FkcyhzKQot
ICAgICAgICAgICAgc2VsZi5fZGlzcGF0Y2hfbWVzc2FnZShtc2csIGNsaWVudCkKLQotICAgIGRl
ZiBfZGlzcGF0Y2hfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBjbGllbnQpOgotICAgICAgICBpZiBu
b3QgaGFzYXR0cihjbGllbnQsICdoYW5kbGVfJyArIG1lc3NhZ2UubmFtZSk6Ci0gICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgIiVzOiByZWNlaXZlZCBtZXNzYWdl
ICclcycgaXQgY291bGRuJ3QgaGFuZGxlIiAlCi0gICAgICAgICAgICAgICAoY2xpZW50Lm5hbWUo
KSwgbWVzc2FnZS5uYW1lKSkKLSAgICAgICAgb3B0YXJncyA9IG1lc3NhZ2UuYXJncwotICAgICAg
ICBtZXNzYWdlX2hhbmRsZXIgPSBnZXRhdHRyKGNsaWVudCwgJ2hhbmRsZV8nICsgbWVzc2FnZS5u
YW1lKQotICAgICAgICBtZXNzYWdlX2hhbmRsZXIobWVzc2FnZS5zcmMsICpvcHRhcmdzKQotCi0K
LWNsYXNzIF9NZXNzYWdlKG9iamVjdCk6Ci0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBsb2Fk
cyhzdHJpbmdfdmFsdWUpOgotICAgICAgICBvYmogPSBjUGlja2xlLmxvYWRzKHN0cmluZ192YWx1
ZSkKLSAgICAgICAgYXNzZXJ0KGlzaW5zdGFuY2Uob2JqLCBfTWVzc2FnZSkpCi0gICAgICAgIHJl
dHVybiBvYmoKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzcmMsIHRvcGljX25hbWUsIG1lc3Nh
Z2VfbmFtZSwgbWVzc2FnZV9hcmdzKToKLSAgICAgICAgc2VsZi5zcmMgPSBzcmMKLSAgICAgICAg
c2VsZi50b3BpY19uYW1lID0gdG9waWNfbmFtZQotICAgICAgICBzZWxmLm5hbWUgPSBtZXNzYWdl
X25hbWUKLSAgICAgICAgc2VsZi5hcmdzID0gbWVzc2FnZV9hcmdzCi0KLSAgICBkZWYgZHVtcHMo
c2VsZik6Ci0gICAgICAgIHJldHVybiBjUGlja2xlLmR1bXBzKHNlbGYpCi0KLSAgICBkZWYgX19y
ZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAoIl9NZXNzYWdlKGZyb209JyVzJywgdG9waWNf
bmFtZT0nJXMnLCBtZXNzYWdlX25hbWU9JyVzJykiICUKLSAgICAgICAgICAgICAgICAoc2VsZi5z
cmMsIHNlbGYudG9waWNfbmFtZSwgc2VsZi5uYW1lKSkKLQotCi1jbGFzcyBCcm9rZXJDb25uZWN0
aW9uKG9iamVjdCk6Ci0gICAgIiIiQnJva2VyQ29ubmVjdGlvbiBwcm92aWRlcyBhIGNvbm5lY3Rp
b24tb3JpZW50ZWQgZmFjYWRlIG9uIHRvcCBvZiBhCi0gICAgQnJva2VyLCBzbyB0aGF0IGNhbGxl
cnMgZG9uJ3QgaGF2ZSB0byByZXBlYXRlZGx5IHBhc3MgdGhlIHNhbWUgdG9waWMKLSAgICBuYW1l
cyBvdmVyIGFuZCBvdmVyLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb2tlciwgY2xp
ZW50LCBydW5fdG9waWMsIHBvc3RfdG9waWMpOgotICAgICAgICAiIiJDcmVhdGUgYSBCcm9rZXJD
b25uZWN0aW9uIG9uIHRvcCBvZiBhIEJyb2tlci4gTm90ZSB0aGF0IHRoZSBCcm9rZXIKLSAgICAg
ICAgaXMgcGFzc2VkIGluIHJhdGhlciB0aGFuIGNyZWF0ZWQgc28gdGhhdCBhIHNpbmdsZSBCcm9r
ZXIgY2FuIGJlIHVzZWQKLSAgICAgICAgYnkgbXVsdGlwbGUgQnJva2VyQ29ubmVjdGlvbnMuIiIi
Ci0gICAgICAgIHNlbGYuX2Jyb2tlciA9IGJyb2tlcgotICAgICAgICBzZWxmLl9jbGllbnQgPSBj
bGllbnQKLSAgICAgICAgc2VsZi5fcG9zdF90b3BpYyA9IHBvc3RfdG9waWMKLSAgICAgICAgc2Vs
Zi5fcnVuX3RvcGljID0gcnVuX3RvcGljCi0gICAgICAgIGJyb2tlci5hZGRfdG9waWMocnVuX3Rv
cGljKQotICAgICAgICBicm9rZXIuYWRkX3RvcGljKHBvc3RfdG9waWMpCi0KLSAgICBkZWYgcnVu
X21lc3NhZ2VfbG9vcChzZWxmLCBkZWxheV9zZWNzPU5vbmUpOgotICAgICAgICBzZWxmLl9icm9r
ZXIucnVuX21lc3NhZ2VfbG9vcChzZWxmLl9ydW5fdG9waWMsIHNlbGYuX2NsaWVudCwgZGVsYXlf
c2VjcykKLQotICAgIGRlZiBwb3N0X21lc3NhZ2Uoc2VsZiwgbWVzc2FnZV9uYW1lLCAqbWVzc2Fn
ZV9hcmdzKToKLSAgICAgICAgc2VsZi5fYnJva2VyLnBvc3RfbWVzc2FnZShzZWxmLl9jbGllbnQs
IHNlbGYuX3Bvc3RfdG9waWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZV9uYW1lLCAqbWVzc2FnZV9hcmdzKQotCi0gICAgZGVmIHJhaXNlX2V4Y2VwdGlvbihzZWxm
LCBleGNfaW5mbyk6Ci0gICAgICAgICMgU2luY2UgdHJhY2ViYWNrcyBhcmVuJ3QgcGlja2xhYmxl
LCBzZW5kIHRoZSBleHRyYWN0ZWQgc3RhY2sgaW5zdGVhZC4KLSAgICAgICAgZXhjZXB0aW9uX3R5
cGUsIGV4Y2VwdGlvbl92YWx1ZSwgZXhjZXB0aW9uX3RyYWNlYmFjayA9IHN5cy5leGNfaW5mbygp
Ci0gICAgICAgIHN0YWNrX3V0aWxzLmxvZ190cmFjZWJhY2soX2xvZy5kZWJ1ZywgZXhjZXB0aW9u
X3RyYWNlYmFjaykKLSAgICAgICAgc3RhY2sgPSB0cmFjZWJhY2suZXh0cmFjdF90YihleGNlcHRp
b25fdHJhY2ViYWNrKQotICAgICAgICBzZWxmLl9icm9rZXIucG9zdF9tZXNzYWdlKHNlbGYuX2Ns
aWVudCwgc2VsZi5fcG9zdF90b3BpYywgJ2V4Y2VwdGlvbicsIGV4Y2VwdGlvbl90eXBlLCBleGNl
cHRpb25fdmFsdWUsIHN0YWNrKQo=
</data>
<flag name="review"
          id="129945"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>