<?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>75166</bug_id>
          
          <creation_ts>2011-12-23 00:53:25 -0800</creation_ts>
          <short_desc>Web Inspector: Implement a worker for parsing out JavaScript function data</short_desc>
          <delta_ts>2011-12-23 07:41:15 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75092</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>526768</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-23 00:53:25 -0800</bug_when>
    <thetext>This is necessary for implementing the Go to Function dialog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526773</commentid>
    <comment_count>1</comment_count>
      <attachid>120443</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-23 01:42:15 -0800</bug_when>
    <thetext>Created attachment 120443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526800</commentid>
    <comment_count>2</comment_count>
      <attachid>120443</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-23 03:12:08 -0800</bug_when>
    <thetext>Comment on attachment 120443
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=120443&amp;action=review

&gt; Source/WebCore/inspector/front-end/ScriptOutlineWorker.js:68
&gt; +    buildScriptOutline();

I think you should combine this worker with the one that formats source.

&gt; Source/WebCore/inspector/front-end/ScriptOutlineWorker.js:140
&gt; +                setTimeout(buildScriptOutline, 0);

You should not use setTimeout in worker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526815</commentid>
    <comment_count>3</comment_count>
      <attachid>120454</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-23 03:50:05 -0800</bug_when>
    <thetext>Created attachment 120454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526816</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-23 03:51:20 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 120443 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120443&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ScriptOutlineWorker.js:68
&gt; &gt; +    buildScriptOutline();
&gt; 
&gt; I think you should combine this worker with the one that formats source.

As agreed offline, we shall forcefully terminate the worker if a new source needs to be reparsed, so retaining this as a separate worker.

&gt; &gt; Source/WebCore/inspector/front-end/ScriptOutlineWorker.js:140
&gt; &gt; +                setTimeout(buildScriptOutline, 0);
&gt; 
&gt; You should not use setTimeout in worker.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526825</commentid>
    <comment_count>5</comment_count>
      <attachid>120457</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-23 04:36:25 -0800</bug_when>
    <thetext>Created attachment 120457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526842</commentid>
    <comment_count>6</comment_count>
      <attachid>120462</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-23 05:40:49 -0800</bug_when>
    <thetext>Created attachment 120462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526854</commentid>
    <comment_count>7</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-23 07:41:15 -0800</bug_when>
    <thetext>Committed r103627: &lt;http://trac.webkit.org/changeset/103627&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120443</attachid>
            <date>2011-12-23 01:42:15 -0800</date>
            <delta_ts>2011-12-23 03:49:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75166-20111223134213.patch</filename>
            <type>text/plain</type>
            <size>18058</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU2ODE0ZjE2MzBjYzhi
MTU3ZmE4MTA0M2VkYjY3NTc4NjUwMjRiZC4uMTIwNjdmOGU2NGFlNjA3MmYyYTBiNjhlZDc0ZTYx
ZjY5MjZjZjJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTEyLTIzICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW1wbGVtZW50IGEgd29ya2VyIGZvciBwYXJzaW5nIG91dCBKYXZhU2NyaXB0IGZ1bmN0
aW9uIGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc1MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUuaHRtbAorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIGd5cC9zdHJlYW1saW5lLWluc3BlY3Rvci1zb3VyY2Uuc2g6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRPdXRsaW5lV29ya2VyLmpzOiBBZGRl
ZC4KKyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAgIChnZXRDaHVua0NvdW50KToKKyAgICAg
ICAgKCk6CisgICAgICAgIChBcnJheS5wcm90b3R5cGUua2V5U2V0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisKIDIwMTEtMTItMjIgIE1hcml1c3ogR3J6ZWdv
cmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gTWlzc2luZyBw
bHVnaW5zIHN1cHBvcnQgZm9yIGVmbCBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGY0MDcxYTI1NzIxMTI4YzBmM2VkNWU5ZTJiZGViNWM0YzYyZDU2YTMuLmFkZjYzNDY5OWQzNDQz
NDgyNjJlOTAyYjgzNGI0ZWEyZjZkMjE3NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTEtMTItMjMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgYSB3b3JrZXIg
Zm9yIHBhcnNpbmcgb3V0IEphdmFTY3JpcHQgZnVuY3Rpb24gZGF0YQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisKIDIwMTEtMTIt
MjEgIFBldGVyIEtvdHdpY3ogIDxwa290d2ljekBnb29nbGUuY29tPgogCiAgICAgICAgIFBsdW1i
cyByZWZyZXNoIHJhdGUgdGhyb3VnaCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDExMjExZjNhYmNhNjRkMDQ1N2MxZjRiNTdmYjZkZDdmMTJkM2NkZmUuLjhk
ZTJjNDU4NmUwMmRiOWVmNmM1YTM3OWQyNzBkZTdiY2FhZDY5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTY0NjgsNiArNjQ2OCw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0
dGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRl
cldvcmtlci5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRPdXRs
aW5lV29ya2VyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNO
YXZpZ2F0b3IuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFyY2hT
Y29wZS5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGUwMTk4MDEyMjRhNjE1ZTk4YTUxZWZkYjAyMjhhMjM5ZThmNzc4OWQuLmJjYjc3MDJh
ZTU5NGNhNzgwMGU5ZjU5ZWFlZDY2NGExYTc4MTExYTEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03MTkyOSw2ICs3MTkyOSwxMCBAQAogCQkJ
CQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVj
dG9yXGZyb250LWVuZFxTY3JpcHRPdXRsaW5lV29ya2VyLmpzIgorCQkJCQk+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxT
Y3JpcHRzTmF2aWdhdG9yLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZ3lwL3N0cmVhbWxpbmUtaW5zcGVjdG9yLXNvdXJjZS5zaCBiL1NvdXJjZS9X
ZWJDb3JlL2d5cC9zdHJlYW1saW5lLWluc3BlY3Rvci1zb3VyY2Uuc2gKaW5kZXggYjVhMWM1YTNk
ODYxNzJmZmQ4ODE0YjU2MWI0ZGYyZjBhZmI3NjE4OC4uYzVjOGNiNWZkZjdkMjM1YzQ5Y2MwMzJk
MDNlYTNjY2UzM2I4MTkwMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvZ3lwL3N0cmVhbWxp
bmUtaW5zcGVjdG9yLXNvdXJjZS5zaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9neXAvc3RyZWFtbGlu
ZS1pbnNwZWN0b3Itc291cmNlLnNoCkBAIC0xNCw2ICsxNCw5IEBAIGZpCiAjIElubGluZSBzY3Jp
cHQgaW1wb3J0cyBpbiBTY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMgZmlsZS4KICIkU1JDUk9PVC8u
Li9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3JpcHQtaW1wb3J0cy5weSIgIiR7U1JDUk9PVH0vLi4v
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMiICIke1NSQ1JPT1R9
Ly4uL2luc3BlY3Rvci9mcm9udC1lbmQiICIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvc2Ny
aXB0Rm9ybWF0dGVyV29ya2VyLmpzIgogCisjIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBTY3Jp
cHRPdXRsaW5lV29ya2VyLmpzIGZpbGUuCisiJFNSQ1JPT1QvLi4vaW5zcGVjdG9yL2lubGluZS1q
YXZhc2NyaXB0LWltcG9ydHMucHkiICIke1NSQ1JPT1R9Ly4uL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0T3V0bGluZVdvcmtlci5qcyIgIiR7U1JDUk9PVH0vLi4vaW5zcGVjdG9yL2Zyb250LWVu
ZCIgIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9TY3JpcHRPdXRsaW5lV29ya2VyLmpzIgor
CiBpZiBbIC1kICIke1RBUkdFVF9CVUlMRF9ESVJ9LyR7VU5MT0NBTElaRURfUkVTT1VSQ0VTX0ZP
TERFUl9QQVRIfS9pbnNwZWN0b3IiIF07IHRoZW4KICAgICAjIFJlbW92ZSBhbnkgSmF2YVNjcmlw
dCBmaWxlcywgc2luY2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIGNvbWJpbmVkIGZp
bGVzLgogICAgIGNkICIke1RBUkdFVF9CVUlMRF9ESVJ9LyR7VU5MT0NBTElaRURfUkVTT1VSQ0VT
X0ZPTERFUl9QQVRIfS9pbnNwZWN0b3IiCkBAIC0yNCw0ICsyNyw1IEBAIGlmIFsgLWQgIiR7VEFS
R0VUX0JVSUxEX0RJUn0vJHtVTkxPQ0FMSVpFRF9SRVNPVVJDRVNfRk9MREVSX1BBVEh9L2luc3Bl
Y3RvciIgXTsKICAgICBjcCAiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL2luc3BlY3Rvci5q
cyIgaW5zcGVjdG9yLmpzCiAgICAgY3AgIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9IZWFw
U25hcHNob3RXb3JrZXIuanMiIEhlYXBTbmFwc2hvdFdvcmtlci5qcwogICAgIGNwICIke0RFUklW
RURfRklMRV9ESVJ9L1dlYkNvcmUvc2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzIiBzY3JpcHRGb3Jt
YXR0ZXJXb3JrZXIuanMKKyAgICBjcCAiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1Njcmlw
dE91dGxpbmVXb3JrZXIuanMiIFNjcmlwdE91dGxpbmVXb3JrZXIuanMKIGZpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE91dGxpbmVXb3JrZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE91dGxpbmVXb3Jr
ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODFhYjk4NjEwNWE1OTNiMDVhMThhYjU2Y2ViMDE3NDRmOWU5NDU5
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0T3V0bGluZVdvcmtlci5qcwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2NvbnN0IGNodW5rU2l6ZSA9
IDEwMDAwMDsgLy8gY2hhcmFjdGVycyBwZXIgZGF0YSBjaHVuawordmFyIGRhdGE7Cit2YXIgdG9r
ZW5pemVyOwordmFyIG91dGxpbmVDaHVuazsKK3ZhciBwcmV2aW91c0lkZW50aWZpZXI7Cit2YXIg
cHJldmlvdXNUb2tlbjsKK3ZhciBwcmV2aW91c1Rva2VuVHlwZTsKK3ZhciBsaW5lczsKK3ZhciBz
dGFydExpbmU7Cit2YXIgY29sdW1uOwordmFyIHRvdGFsTGVuZ3RoOwordmFyIGNodW5rQ291bnQ7
Cit2YXIgY3VycmVudENodW5rOwordmFyIHByb2Nlc3NlZENodW5rQ2hhcmFjdGVyczsKK3ZhciBh
ZGRlZEZ1bmN0aW9uOwordmFyIGlzUmVhZGluZ0FyZ3VtZW50czsKK3ZhciBhcmd1bWVudHNUZXh0
OwordmFyIGN1cnJlbnRGdW5jdGlvbjsKKworb25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICBkYXRhID0gZXZlbnQuZGF0YTsKKyAgICB0b2tlbml6ZXIuY29uZGl0aW9uID0gdG9rZW5p
emVyLmNyZWF0ZUluaXRpYWxDb25kaXRpb24oKTsKKyAgICBvdXRsaW5lQ2h1bmsgPSBbXTsKKyAg
ICBwcmV2aW91c0lkZW50aWZpZXIgPSBudWxsOworICAgIHByZXZpb3VzVG9rZW4gPSBudWxsOwor
ICAgIHByZXZpb3VzVG9rZW5UeXBlID0gbnVsbDsKKyAgICBsaW5lcyA9IGRhdGEuY29udGVudC5z
cGxpdCgiXG4iKTsKKyAgICBzdGFydExpbmUgPSBsaW5lc1swXS5sZW5ndGggPyAwIDogMTsKKyAg
ICBjb2x1bW4gPSAwOworICAgIHRvdGFsTGVuZ3RoID0gZGF0YS5jb250ZW50Lmxlbmd0aDsKKyAg
ICBjaHVua0NvdW50ID0gZ2V0Q2h1bmtDb3VudCh0b3RhbExlbmd0aCwgY2h1bmtTaXplKTsKKyAg
ICBjdXJyZW50Q2h1bmsgPSAxOworICAgIHByb2Nlc3NlZENodW5rQ2hhcmFjdGVycyA9IDA7Cisg
ICAgYWRkZWRGdW5jdGlvbiA9IGZhbHNlOworICAgIGlzUmVhZGluZ0FyZ3VtZW50cyA9IGZhbHNl
OworICAgIGFyZ3VtZW50c1RleHQgPSAiIjsKKyAgICBjdXJyZW50RnVuY3Rpb24gPSBudWxsOwor
ICAgIGJ1aWxkU2NyaXB0T3V0bGluZSgpOworfTsKKworZnVuY3Rpb24gZ2V0Q2h1bmtDb3VudCh0
b3RhbExlbmd0aCwgY2h1bmtTaXplKQoreworICAgIGlmICh0b3RhbExlbmd0aCA8PSBjaHVua1Np
emUpCisgICAgICAgIHJldHVybiAxOworCisgICAgdmFyIHJlbWFpbmRlciA9IHRvdGFsTGVuZ3Ro
ICUgY2h1bmtTaXplOworICAgIHZhciBwYXJ0aWFsTGVuZ3RoID0gdG90YWxMZW5ndGggLSByZW1h
aW5kZXI7CisgICAgcmV0dXJuIChwYXJ0aWFsTGVuZ3RoIC8gY2h1bmtTaXplKSArIChyZW1haW5k
ZXIgPyAxIDogMCk7Cit9CisKK2Z1bmN0aW9uIGJ1aWxkU2NyaXB0T3V0bGluZSgpCit7CisgICAg
aWYgKCFkYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHZhciBpID0gc3RhcnRMaW5l
OyBpIDwgbGluZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGxpbmUgPSBsaW5lc1tpXTsK
KyAgICAgICAgdG9rZW5pemVyLmxpbmUgPSBsaW5lOworICAgICAgICBkbyB7CisgICAgICAgICAg
ICB2YXIgbmV3Q29sdW1uID0gdG9rZW5pemVyLm5leHRUb2tlbihjb2x1bW4pOworICAgICAgICAg
ICAgdmFyIHRva2VuVHlwZSA9IHRva2VuaXplci50b2tlblR5cGU7CisgICAgICAgICAgICB2YXIg
dG9rZW5WYWx1ZSA9IGxpbmUuc3Vic3RyaW5nKGNvbHVtbiwgbmV3Q29sdW1uKTsKKyAgICAgICAg
ICAgIGlmICh0b2tlblR5cGUgPT09ICJqYXZhc2NyaXB0LWlkZW50IikgeworICAgICAgICAgICAg
ICAgIHByZXZpb3VzSWRlbnRpZmllciA9IHRva2VuVmFsdWU7CisgICAgICAgICAgICAgICAgaWYg
KHRva2VuVmFsdWUgJiYgcHJldmlvdXNUb2tlbiA9PT0gImZ1bmN0aW9uIikgeworICAgICAgICAg
ICAgICAgICAgICAvLyBBIG5hbWVkIGZ1bmN0aW9uOiAiZnVuY3Rpb24gZi4uLiIuCisgICAgICAg
ICAgICAgICAgICAgIGN1cnJlbnRGdW5jdGlvbiA9IHsgbGluZTogaSwgbmFtZTogdG9rZW5WYWx1
ZSB9OworICAgICAgICAgICAgICAgICAgICBhZGRlZEZ1bmN0aW9uID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICAgICAgcHJldmlvdXNJZGVudGlmaWVyID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuVHlwZSA9PT0gImphdmFzY3JpcHQta2V5d29y
ZCIpIHsKKyAgICAgICAgICAgICAgICBpZiAodG9rZW5WYWx1ZSA9PT0gImZ1bmN0aW9uIikgewor
ICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNJZGVudGlmaWVyICYmIChwcmV2aW91c1Rv
a2VuID09PSAiPSIgfHwgcHJldmlvdXNUb2tlbiA9PT0gIjoiKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gQW5vbnltb3VzIGZ1bmN0aW9uIGFzc2lnbmVkIHRvIGFuIGlkZW50aWZpZXI6
ICIuLi5mID0gZnVuY3Rpb24uLi4iCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvciAiZnVu
Y05hbWU6IGZ1bmN0aW9uLi4uIi4KKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGdW5j
dGlvbiA9IHsgbGluZTogaSwgbmFtZTogcHJldmlvdXNJZGVudGlmaWVyIH07CisgICAgICAgICAg
ICAgICAgICAgICAgICBhZGRlZEZ1bmN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHByZXZpb3VzSWRlbnRpZmllciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuVmFsdWUgPT09ICIu
IiAmJiBwcmV2aW91c1Rva2VuVHlwZSA9PT0gImphdmFzY3JpcHQtaWRlbnQiKQorICAgICAgICAg
ICAgICAgIHByZXZpb3VzSWRlbnRpZmllciArPSAiLiI7CisgICAgICAgICAgICBlbHNlIGlmICh0
b2tlblZhbHVlID09PSAiKCIgJiYgYWRkZWRGdW5jdGlvbikKKyAgICAgICAgICAgICAgICBpc1Jl
YWRpbmdBcmd1bWVudHMgPSB0cnVlOworICAgICAgICAgICAgaWYgKGlzUmVhZGluZ0FyZ3VtZW50
cyAmJiB0b2tlblZhbHVlKQorICAgICAgICAgICAgICAgIGFyZ3VtZW50c1RleHQgKz0gdG9rZW5W
YWx1ZTsKKworICAgICAgICAgICAgaWYgKHRva2VuVmFsdWUgPT09ICIpIiAmJiBpc1JlYWRpbmdB
cmd1bWVudHMpIHsKKyAgICAgICAgICAgICAgICBhZGRlZEZ1bmN0aW9uID0gZmFsc2U7CisgICAg
ICAgICAgICAgICAgaXNSZWFkaW5nQXJndW1lbnRzID0gZmFsc2U7CisgICAgICAgICAgICAgICAg
YXJndW1lbnRzVGV4dCA9IGFyZ3VtZW50c1RleHQucmVwbGFjZSgvLFtcclxuXHNdKi9nLCAiLCAi
KS5yZXBsYWNlKC8oW14sXSlbXHJcblxzXSsvZywgIiQxIik7CisgICAgICAgICAgICAgICAgY3Vy
cmVudEZ1bmN0aW9uLmFyZ3VtZW50cyA9IGFyZ3VtZW50c1RleHQ7CisgICAgICAgICAgICAgICAg
YXJndW1lbnRzVGV4dCA9ICIiOworICAgICAgICAgICAgICAgIG91dGxpbmVDaHVuay5wdXNoKGN1
cnJlbnRGdW5jdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0b2tlblZh
bHVlLnRyaW0oKS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAvLyBTa2lwIHdoaXRlc3BhY2Ug
dG9rZW5zLgorICAgICAgICAgICAgICAgIHByZXZpb3VzVG9rZW4gPSB0b2tlblZhbHVlOworICAg
ICAgICAgICAgICAgIHByZXZpb3VzVG9rZW5UeXBlID0gdG9rZW5UeXBlOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgcHJvY2Vzc2VkQ2h1bmtDaGFyYWN0ZXJzICs9IG5ld0NvbHVtbiAtIGNv
bHVtbjsKKyAgICAgICAgICAgIGNvbHVtbiA9IG5ld0NvbHVtbjsKKworICAgICAgICAgICAgaWYg
KHByb2Nlc3NlZENodW5rQ2hhcmFjdGVycyA+PSBjaHVua1NpemUpIHsKKyAgICAgICAgICAgICAg
ICBwb3N0TWVzc2FnZSh7IGNodW5rOiBvdXRsaW5lQ2h1bmssIGlkOiBkYXRhLmlkLCB0b3RhbDog
Y2h1bmtDb3VudCwgaW5kZXg6IGN1cnJlbnRDaHVuaysrLCByZXF1ZXN0SWQ6IGRhdGEucmVxdWVz
dElkIH0pOworICAgICAgICAgICAgICAgIG91dGxpbmVDaHVuayA9IFtdOworICAgICAgICAgICAg
ICAgIHByb2Nlc3NlZENodW5rQ2hhcmFjdGVycyA9IDA7CisgICAgICAgICAgICAgICAgc3RhcnRM
aW5lID0gaTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGJ1aWxkU2NyaXB0T3V0bGluZSwg
MCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9IHdo
aWxlIChjb2x1bW4gPCBsaW5lLmxlbmd0aCk7CisgICAgICAgIGNvbHVtbiA9IDA7CisgICAgfQor
ICAgIHBvc3RNZXNzYWdlKHsgY2h1bms6IG91dGxpbmVDaHVuaywgaWQ6IGRhdGEuaWQsIHRvdGFs
OiBjaHVua0NvdW50LCBpbmRleDogY2h1bmtDb3VudCwgcmVxdWVzdElkOiBkYXRhLnJlcXVlc3RJ
ZCB9KTsKKyAgICBkYXRhID0gbnVsbDsKK30KKworV2ViSW5zcGVjdG9yID0ge307CisKK0FycmF5
LnByb3RvdHlwZS5rZXlTZXQgPSBmdW5jdGlvbigpCit7CisgICAgdmFyIGtleXMgPSB7fTsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyArK2kpCisgICAgICAgIGtleXNbdGhp
c1tpXV0gPSB0cnVlOworICAgIHJldHVybiBrZXlzOworfTsKKworaW1wb3J0U2NyaXB0cygiU291
cmNlVG9rZW5pemVyLmpzIik7CitpbXBvcnRTY3JpcHRzKCJTb3VyY2VKYXZhU2NyaXB0VG9rZW5p
emVyLmpzIik7CisKK3Rva2VuaXplciA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlSmF2YVNjcmlw
dFRva2VuaXplcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJL
aXQucXJjCmluZGV4IDU4NzRkOTZlYTQ2MWVkMzQ3ZjNhNzJhNWJiZjFkYzBjNzk5YmM4MzAuLmEy
OTlmNjdlMmNkZTE1YzZmNjViMTgzNThjMGQxYzVmNWZmYjE1NzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTExMSw2ICsxMTEsNyBAQAog
ICAgIDxmaWxlPlNjcmlwdC5qczwvZmlsZT4KICAgICA8ZmlsZT5TY3JpcHRGb3JtYXR0ZXIuanM8
L2ZpbGU+CiAgICAgPGZpbGU+U2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzPC9maWxlPgorICAgIDxm
aWxlPlNjcmlwdE91dGxpbmVXb3JrZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+U2NyaXB0c1BhbmVs
LmpzPC9maWxlPgogICAgIDxmaWxlPlNjcmlwdHNOYXZpZ2F0b3IuanM8L2ZpbGU+CiAgICAgPGZp
bGU+U2NyaXB0c1NlYXJjaFNjb3BlLmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CmluZGV4IDc0NzZiMjY3YzRiZTdlMzVmNDcxMWUwZTM3MzhjMDk3YzBjZTllMTEuLmMwMjhmNGFl
NDE5NTQyOTY5MWYzNThhZmI4YmE0NzYxZTFhYTA3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKQEAgLTg1NSw2ICs4NTUsNyBAQAogICAgICAgICAgICAgICAgICAgICAnZGVwZW5kZW5j
aWVzJzogWydjb25jYXRlbmF0ZWRfZGV2dG9vbHNfanMnLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfaGVhcF9zbmFwc2hvdF93b3JrZXJfanMnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfc2NyaXB0
X2Zvcm1hdHRlcl93b3JrZXJfanMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdjb25jYXRlbmF0ZWRfc2NyaXB0X291dGxpbmVfd29ya2VyX2pzJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX2NzcyddLAog
ICAgICAgICAgICAgICAgIH1dLAogICAgICAgICAgICAgXSwKQEAgLTkzNSw2ICs5MzYsNyBAQAog
ICAgICAgICAgICAgICAgICAgICAnZGVwZW5kZW5jaWVzJzogWydjb25jYXRlbmF0ZWRfZGV2dG9v
bHNfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0
ZWRfaGVhcF9zbmFwc2hvdF93b3JrZXJfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdjb25jYXRlbmF0ZWRfc2NyaXB0X2Zvcm1hdHRlcl93b3JrZXJfanMnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfc2NyaXB0X291
dGxpbmVfd29ya2VyX2pzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
Y29uY2F0ZW5hdGVkX2RldnRvb2xzX2NzcyddLAogICAgICAgICAgICAgICAgIH0sewogICAgICAg
ICAgICAgICAgICAgICAjIElmIHdlJ3JlIG5vdCBjb25jYXRlbmF0aW5nIGRldnRvb2xzIGZpbGVz
LCB3ZSB3YW50IHRvCkBAIC05NTEsNiArOTUzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL3Jlc291cmNlcy9pbnNwZWN0b3IvRGV2VG9vbHMuanMnLAogICAgICAgICAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9IZWFwU25hcHNo
b3RXb3JrZXIuanMnLAogICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3Vy
Y2VzL2luc3BlY3Rvci9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMnLAorICAgICAgICAgICAgICAg
ICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9TY3JpcHRPdXRsaW5lV29y
a2VyLmpzJywKICAgICAgICAgICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL3Jlc291cmNlcy9p
bnNwZWN0b3IvZGV2VG9vbHMuY3NzJywKICAgICAgICAgICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL3Jlc291cmNlcy9pbnNwZWN0b3IvZGV2dG9vbHNfZXh0ZW5zaW9uX2FwaS5qcycsCiAgICAg
ICAgICAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3Jfc3RhbmRhbG9uZV9jc3NfZmlsZXMpJywK
QEAgLTk4Niw2ICs5ODksNyBAQAogICAgICAgICAgICAgICAgICAgICAnLi4vLi4vV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFdvcmtlci5qcycsCiAgICAgICAgICAgICAg
ICAgICAgICcuLi8uLi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdEZvcm1h
dHRlci5qcycsCiAgICAgICAgICAgICAgICAgICAgICcuLi8uLi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzJywKKyAgICAgICAgICAgICAgICAgICAg
Jy4uLy4uL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRPdXRsaW5lV29ya2VyLmpz
JywKICAgICAgICAgICAgICAgICAgICAgJzxAKHdlYmluc3BlY3Rvcl91Z2xpZnlqc19maWxlcykn
CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAnaW5wdXRzJzogWwpAQCAtMTEw
Niw2ICsxMTEwLDI0IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJzogWydweXRo
b24nLCAnPEAoX3NjcmlwdF9uYW1lKScsICc8QChfaW5wdXRfZmlsZSknLCAnPEAoX3NlYXJjaF9w
YXRoKScsICc8QChfb3V0cHV0cyknXSwKICAgICAgICAgICAgICAgICAgICAgfV0sCiAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Rhcmdl
dF9uYW1lJzogJ2NvbmNhdGVuYXRlZF9zY3JpcHRfb3V0bGluZV93b3JrZXJfanMnLAorICAgICAg
ICAgICAgICAgICAgICAndHlwZSc6ICdub25lJywKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlv
bnMnOiBbeworICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ2NvbmNhdGVu
YXRlX3NjcmlwdF9vdXRsaW5lX3dvcmtlcl9qcycsCisgICAgICAgICAgICAgICAgICAgICAgICAn
c2NyaXB0X25hbWUnOiAnc2NyaXB0cy9pbmxpbmVfanNfaW1wb3J0cy5weScsCisgICAgICAgICAg
ICAgICAgICAgICAgICAnaW5wdXRfZmlsZSc6ICcuLi8uLi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0T3V0bGluZVdvcmtlci5qcycsCisgICAgICAgICAgICAgICAgICAgICAgICAn
aW5wdXRzJzogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8QChfc2NyaXB0X25hbWUp
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPEAoX2lucHV0X2ZpbGUpJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnLi4vLi4vV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZVRva2VuaXplci5qcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uLy4u
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLmpz
JywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAn
c2VhcmNoX3BhdGgnOiAnLi4vLi4vV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICdvdXRwdXRzJzogWyc8KFBST0RVQ1RfRElSKS9yZXNvdXJjZXMv
aW5zcGVjdG9yL1NjcmlwdE91dGxpbmVXb3JrZXIuanMnXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICdhY3Rpb24nOiBbJ3B5dGhvbicsICc8QChfc2NyaXB0X25hbWUpJywgJzxAKF9pbnB1dF9m
aWxlKScsICc8QChfc2VhcmNoX3BhdGgpJywgJzxAKF9vdXRwdXRzKSddLAorICAgICAgICAgICAg
ICAgICAgICB9XSwKKyAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgJ3RhcmdldF9uYW1lJzogJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc19jc3Mn
LAogICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdub25lJywKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4N2NkMmIwMWIy
YTI4MjBjZTA3MDc2MmNjYmM2OWU5MmNlMTM0NDM2Li5kZWM1ZTZjY2Q4YjdmZTJlNzI0MzgwY2Vh
YWMzOWI2MDYxZDU5NTAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTItMjMgIEFsZXhh
bmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBJbXBsZW1lbnQgYSB3b3JrZXIgZm9yIHBhcnNpbmcgb3V0IEphdmFTY3JpcHQgZnVuY3Rp
b24gZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzUxNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFjdC1vdXRsaW5lLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxp
bmUuaHRtbDogQWRkZWQuCisKIDIwMTEtMTItMjIgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFjdC1vdXRsaW5lLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFj
dC1vdXRsaW5lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjgxM2E0YjEyMzhlMGFiZDlmZjM1
NTU2NjE4NTQ4NjI4ZmU1OGQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorVGVzdHMgdGhlIHNjcmlwdCBvdXRsaW5lIGV4dHJhY3Rpb24gZnVuY3Rpb25hbGl0
eS4KKworeyJjaHVuayI6W3sibGluZSI6MCwibmFtZSI6ImZpcnN0IiwiYXJndW1lbnRzIjoiKHgs
IHkpIn0seyJsaW5lIjoxLCJuYW1lIjoic2Vjb25kIiwiYXJndW1lbnRzIjoiKHksIHopIn0seyJs
aW5lIjo0LCJuYW1lIjoiT2JqZWN0IiwiYXJndW1lbnRzIjoiKGFyZykifSx7ImxpbmUiOjYsIm5h
bWUiOiJmdW5jdGlvbk9uUHJvdG90eXBlIiwiYXJndW1lbnRzIjoiKGEsIGIsIGMsIGQsIGUsIGYp
In0seyJsaW5lIjo4LCJuYW1lIjoiaW5uZXJGdW5jdGlvbjEiLCJhcmd1bWVudHMiOiIoKSJ9LHsi
bGluZSI6OSwibmFtZSI6ImlubmVyRnVuY3Rpb24yIiwiYXJndW1lbnRzIjoiKGFyZzEsIGFyZzIp
In1dLCJpZCI6MSwidG90YWwiOjEsImluZGV4IjoxLCJyZXF1ZXN0SWQiOjF9CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFjdC1vdXRsaW5l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWV4dHJhY3Qtb3V0
bGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MGVkYmU3MDY2M2FiZDU5NzhlYWYzYjI3NmIxYTczOGRl
Y2M5MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0LWV4dHJhY3Qtb3V0bGluZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9vYmZ1c2NhdGVkLmpzIj48
L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHRlc3QgPSBmdW5jdGlvbigpCit7CisgICAgdmFy
IHdvcmtlciA9IG5ldyBXb3JrZXIoIlNjcmlwdE91dGxpbmVXb3JrZXIuanMiKTsKKyAgICB2YXIg
cGFyc2VkU2NyaXB0ID0gImZ1bmN0aW9uIGZpcnN0KHgseSkgeyB9XG4gdmFyIHNlY29uZCA9IGZ1
bmN0aW9uKHkgXG4gLCBcbnopIHsgfVxuIE9iamVjdCA9IGZ1bmN0aW9uKGFyZykge1xufVxuIE9i
amVjdC5wcm90b3R5cGUuZnVuY3Rpb25PblByb3RvdHlwZSA9IGZ1bmN0aW9uICAoICBhLCAgYiAg
LCAgXG4gIGMsICBkICAgLCAgXG4gIGUgICwgIGYgKSAgICB7IGZ1bmN0aW9uIGlubmVyRnVuY3Rp
b24xKCkge1xuIHZhciBpbm5lckZ1bmN0aW9uMiA9IGZ1bmN0aW9uKGFyZzEsYXJnMikge30gfSB9
IjsKKworICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGZ1bmN0
aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoSlNPTi5z
dHJpbmdpZnkoZXZlbnQuZGF0YSkpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOworICAgIH0pOworCisgICAgd29ya2VyLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFcnJvciBpbiB3b3JrZXI6ICIg
KyBldmVudC5kYXRhKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAg
ICB9OworCisgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsgY29udGVudDogcGFyc2VkU2NyaXB0LCBp
ZDogMSwgcmVxdWVzdElkOiAxIH0pOworfQorCis8L3NjcmlwdD4KKworPC9oZWFkPgorCis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0aGUgc2NyaXB0IG91dGxpbmUgZXh0cmFj
dGlvbiBmdW5jdGlvbmFsaXR5LgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120454</attachid>
            <date>2011-12-23 03:50:05 -0800</date>
            <delta_ts>2011-12-23 04:36:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75166-20111223155003.patch</filename>
            <type>text/plain</type>
            <size>17458</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU2ODE0ZjE2MzBjYzhi
MTU3ZmE4MTA0M2VkYjY3NTc4NjUwMjRiZC4uMTIwNjdmOGU2NGFlNjA3MmYyYTBiNjhlZDc0ZTYx
ZjY5MjZjZjJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTEyLTIzICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW1wbGVtZW50IGEgd29ya2VyIGZvciBwYXJzaW5nIG91dCBKYXZhU2NyaXB0IGZ1bmN0
aW9uIGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc1MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUuaHRtbAorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIGd5cC9zdHJlYW1saW5lLWluc3BlY3Rvci1zb3VyY2Uuc2g6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRPdXRsaW5lV29ya2VyLmpzOiBBZGRl
ZC4KKyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAgIChnZXRDaHVua0NvdW50KToKKyAgICAg
ICAgKCk6CisgICAgICAgIChBcnJheS5wcm90b3R5cGUua2V5U2V0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisKIDIwMTEtMTItMjIgIE1hcml1c3ogR3J6ZWdv
cmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gTWlzc2luZyBw
bHVnaW5zIHN1cHBvcnQgZm9yIGVmbCBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGY0MDcxYTI1NzIxMTI4YzBmM2VkNWU5ZTJiZGViNWM0YzYyZDU2YTMuLmFkZjYzNDY5OWQzNDQz
NDgyNjJlOTAyYjgzNGI0ZWEyZjZkMjE3NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTEtMTItMjMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgYSB3b3JrZXIg
Zm9yIHBhcnNpbmcgb3V0IEphdmFTY3JpcHQgZnVuY3Rpb24gZGF0YQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisKIDIwMTEtMTIt
MjEgIFBldGVyIEtvdHdpY3ogIDxwa290d2ljekBnb29nbGUuY29tPgogCiAgICAgICAgIFBsdW1i
cyByZWZyZXNoIHJhdGUgdGhyb3VnaCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDExMjExZjNhYmNhNjRkMDQ1N2MxZjRiNTdmYjZkZDdmMTJkM2NkZmUuLjhk
ZTJjNDU4NmUwMmRiOWVmNmM1YTM3OWQyNzBkZTdiY2FhZDY5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTY0NjgsNiArNjQ2OCw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0
dGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRl
cldvcmtlci5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRPdXRs
aW5lV29ya2VyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNO
YXZpZ2F0b3IuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFyY2hT
Y29wZS5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGUwMTk4MDEyMjRhNjE1ZTk4YTUxZWZkYjAyMjhhMjM5ZThmNzc4OWQuLmJjYjc3MDJh
ZTU5NGNhNzgwMGU5ZjU5ZWFlZDY2NGExYTc4MTExYTEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03MTkyOSw2ICs3MTkyOSwxMCBAQAogCQkJ
CQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVj
dG9yXGZyb250LWVuZFxTY3JpcHRPdXRsaW5lV29ya2VyLmpzIgorCQkJCQk+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxT
Y3JpcHRzTmF2aWdhdG9yLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZ3lwL3N0cmVhbWxpbmUtaW5zcGVjdG9yLXNvdXJjZS5zaCBiL1NvdXJjZS9X
ZWJDb3JlL2d5cC9zdHJlYW1saW5lLWluc3BlY3Rvci1zb3VyY2Uuc2gKaW5kZXggYjVhMWM1YTNk
ODYxNzJmZmQ4ODE0YjU2MWI0ZGYyZjBhZmI3NjE4OC4uYzVjOGNiNWZkZjdkMjM1YzQ5Y2MwMzJk
MDNlYTNjY2UzM2I4MTkwMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvZ3lwL3N0cmVhbWxp
bmUtaW5zcGVjdG9yLXNvdXJjZS5zaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9neXAvc3RyZWFtbGlu
ZS1pbnNwZWN0b3Itc291cmNlLnNoCkBAIC0xNCw2ICsxNCw5IEBAIGZpCiAjIElubGluZSBzY3Jp
cHQgaW1wb3J0cyBpbiBTY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMgZmlsZS4KICIkU1JDUk9PVC8u
Li9pbnNwZWN0b3IvaW5saW5lLWphdmFzY3JpcHQtaW1wb3J0cy5weSIgIiR7U1JDUk9PVH0vLi4v
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMiICIke1NSQ1JPT1R9
Ly4uL2luc3BlY3Rvci9mcm9udC1lbmQiICIke0RFUklWRURfRklMRV9ESVJ9L1dlYkNvcmUvc2Ny
aXB0Rm9ybWF0dGVyV29ya2VyLmpzIgogCisjIElubGluZSBzY3JpcHQgaW1wb3J0cyBpbiBTY3Jp
cHRPdXRsaW5lV29ya2VyLmpzIGZpbGUuCisiJFNSQ1JPT1QvLi4vaW5zcGVjdG9yL2lubGluZS1q
YXZhc2NyaXB0LWltcG9ydHMucHkiICIke1NSQ1JPT1R9Ly4uL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0T3V0bGluZVdvcmtlci5qcyIgIiR7U1JDUk9PVH0vLi4vaW5zcGVjdG9yL2Zyb250LWVu
ZCIgIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9TY3JpcHRPdXRsaW5lV29ya2VyLmpzIgor
CiBpZiBbIC1kICIke1RBUkdFVF9CVUlMRF9ESVJ9LyR7VU5MT0NBTElaRURfUkVTT1VSQ0VTX0ZP
TERFUl9QQVRIfS9pbnNwZWN0b3IiIF07IHRoZW4KICAgICAjIFJlbW92ZSBhbnkgSmF2YVNjcmlw
dCBmaWxlcywgc2luY2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIGNvbWJpbmVkIGZp
bGVzLgogICAgIGNkICIke1RBUkdFVF9CVUlMRF9ESVJ9LyR7VU5MT0NBTElaRURfUkVTT1VSQ0VT
X0ZPTERFUl9QQVRIfS9pbnNwZWN0b3IiCkBAIC0yNCw0ICsyNyw1IEBAIGlmIFsgLWQgIiR7VEFS
R0VUX0JVSUxEX0RJUn0vJHtVTkxPQ0FMSVpFRF9SRVNPVVJDRVNfRk9MREVSX1BBVEh9L2luc3Bl
Y3RvciIgXTsKICAgICBjcCAiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL2luc3BlY3Rvci5q
cyIgaW5zcGVjdG9yLmpzCiAgICAgY3AgIiR7REVSSVZFRF9GSUxFX0RJUn0vV2ViQ29yZS9IZWFw
U25hcHNob3RXb3JrZXIuanMiIEhlYXBTbmFwc2hvdFdvcmtlci5qcwogICAgIGNwICIke0RFUklW
RURfRklMRV9ESVJ9L1dlYkNvcmUvc2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzIiBzY3JpcHRGb3Jt
YXR0ZXJXb3JrZXIuanMKKyAgICBjcCAiJHtERVJJVkVEX0ZJTEVfRElSfS9XZWJDb3JlL1Njcmlw
dE91dGxpbmVXb3JrZXIuanMiIFNjcmlwdE91dGxpbmVXb3JrZXIuanMKIGZpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE91dGxpbmVXb3JrZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE91dGxpbmVXb3Jr
ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzQwYmY1ZTUxOWI1YzExNjdhYWY1MTg3N2M2NzVhZmZhY2RkNGJh
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0T3V0bGluZVdvcmtlci5qcwpAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK29ubWVzc2FnZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgYnVpbGRTY3JpcHRPdXRsaW5lKGV2ZW50LmRhdGEpOworfTsKKwor
ZnVuY3Rpb24gZ2V0Q2h1bmtDb3VudCh0b3RhbExlbmd0aCwgY2h1bmtTaXplKQoreworICAgIGlm
ICh0b3RhbExlbmd0aCA8PSBjaHVua1NpemUpCisgICAgICAgIHJldHVybiAxOworCisgICAgdmFy
IHJlbWFpbmRlciA9IHRvdGFsTGVuZ3RoICUgY2h1bmtTaXplOworICAgIHZhciBwYXJ0aWFsTGVu
Z3RoID0gdG90YWxMZW5ndGggLSByZW1haW5kZXI7CisgICAgcmV0dXJuIChwYXJ0aWFsTGVuZ3Ro
IC8gY2h1bmtTaXplKSArIChyZW1haW5kZXIgPyAxIDogMCk7Cit9CisKK2Z1bmN0aW9uIGJ1aWxk
U2NyaXB0T3V0bGluZShkYXRhKQoreworICAgIGNvbnN0IGNodW5rU2l6ZSA9IDEwMDAwMDsgLy8g
Y2hhcmFjdGVycyBwZXIgZGF0YSBjaHVuaworICAgIGNvbnN0IHRvdGFsTGVuZ3RoID0gZGF0YS5j
b250ZW50Lmxlbmd0aDsKKyAgICBjb25zdCBsaW5lcyA9IGRhdGEuY29udGVudC5zcGxpdCgiXG4i
KTsKKyAgICBjb25zdCBjaHVua0NvdW50ID0gZ2V0Q2h1bmtDb3VudCh0b3RhbExlbmd0aCwgY2h1
bmtTaXplKTsKKyAgICB2YXIgb3V0bGluZUNodW5rID0gW107CisgICAgdmFyIHByZXZpb3VzSWRl
bnRpZmllciA9IG51bGw7CisgICAgdmFyIHByZXZpb3VzVG9rZW4gPSBudWxsOworICAgIHZhciBw
cmV2aW91c1Rva2VuVHlwZSA9IG51bGw7CisgICAgdmFyIGNvbHVtbiA9IDA7CisgICAgdmFyIGN1
cnJlbnRDaHVuayA9IDE7CisgICAgdmFyIHByb2Nlc3NlZENodW5rQ2hhcmFjdGVycyA9IDA7Cisg
ICAgdmFyIGFkZGVkRnVuY3Rpb24gPSBmYWxzZTsKKyAgICB2YXIgaXNSZWFkaW5nQXJndW1lbnRz
ID0gZmFsc2U7CisgICAgdmFyIGFyZ3VtZW50c1RleHQgPSAiIjsKKyAgICB2YXIgY3VycmVudEZ1
bmN0aW9uID0gbnVsbDsKKyAgICB0b2tlbml6ZXIuY29uZGl0aW9uID0gdG9rZW5pemVyLmNyZWF0
ZUluaXRpYWxDb25kaXRpb24oKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGxpbmUgPSBsaW5lc1tpXTsKKyAgICAgICAgdG9rZW5p
emVyLmxpbmUgPSBsaW5lOworICAgICAgICBkbyB7CisgICAgICAgICAgICB2YXIgbmV3Q29sdW1u
ID0gdG9rZW5pemVyLm5leHRUb2tlbihjb2x1bW4pOworICAgICAgICAgICAgdmFyIHRva2VuVHlw
ZSA9IHRva2VuaXplci50b2tlblR5cGU7CisgICAgICAgICAgICB2YXIgdG9rZW5WYWx1ZSA9IGxp
bmUuc3Vic3RyaW5nKGNvbHVtbiwgbmV3Q29sdW1uKTsKKyAgICAgICAgICAgIGlmICh0b2tlblR5
cGUgPT09ICJqYXZhc2NyaXB0LWlkZW50IikgeworICAgICAgICAgICAgICAgIHByZXZpb3VzSWRl
bnRpZmllciA9IHRva2VuVmFsdWU7CisgICAgICAgICAgICAgICAgaWYgKHRva2VuVmFsdWUgJiYg
cHJldmlvdXNUb2tlbiA9PT0gImZ1bmN0aW9uIikgeworICAgICAgICAgICAgICAgICAgICAvLyBB
IG5hbWVkIGZ1bmN0aW9uOiAiZnVuY3Rpb24gZi4uLiIuCisgICAgICAgICAgICAgICAgICAgIGN1
cnJlbnRGdW5jdGlvbiA9IHsgbGluZTogaSwgbmFtZTogdG9rZW5WYWx1ZSB9OworICAgICAgICAg
ICAgICAgICAgICBhZGRlZEZ1bmN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgcHJl
dmlvdXNJZGVudGlmaWVyID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
IGVsc2UgaWYgKHRva2VuVHlwZSA9PT0gImphdmFzY3JpcHQta2V5d29yZCIpIHsKKyAgICAgICAg
ICAgICAgICBpZiAodG9rZW5WYWx1ZSA9PT0gImZ1bmN0aW9uIikgeworICAgICAgICAgICAgICAg
ICAgICBpZiAocHJldmlvdXNJZGVudGlmaWVyICYmIChwcmV2aW91c1Rva2VuID09PSAiPSIgfHwg
cHJldmlvdXNUb2tlbiA9PT0gIjoiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5v
bnltb3VzIGZ1bmN0aW9uIGFzc2lnbmVkIHRvIGFuIGlkZW50aWZpZXI6ICIuLi5mID0gZnVuY3Rp
b24uLi4iCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvciAiZnVuY05hbWU6IGZ1bmN0aW9u
Li4uIi4KKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGdW5jdGlvbiA9IHsgbGluZTog
aSwgbmFtZTogcHJldmlvdXNJZGVudGlmaWVyIH07CisgICAgICAgICAgICAgICAgICAgICAgICBh
ZGRlZEZ1bmN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzSWRl
bnRpZmllciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuVmFsdWUgPT09ICIuIiAmJiBwcmV2aW91c1Rv
a2VuVHlwZSA9PT0gImphdmFzY3JpcHQtaWRlbnQiKQorICAgICAgICAgICAgICAgIHByZXZpb3Vz
SWRlbnRpZmllciArPSAiLiI7CisgICAgICAgICAgICBlbHNlIGlmICh0b2tlblZhbHVlID09PSAi
KCIgJiYgYWRkZWRGdW5jdGlvbikKKyAgICAgICAgICAgICAgICBpc1JlYWRpbmdBcmd1bWVudHMg
PSB0cnVlOworICAgICAgICAgICAgaWYgKGlzUmVhZGluZ0FyZ3VtZW50cyAmJiB0b2tlblZhbHVl
KQorICAgICAgICAgICAgICAgIGFyZ3VtZW50c1RleHQgKz0gdG9rZW5WYWx1ZTsKKworICAgICAg
ICAgICAgaWYgKHRva2VuVmFsdWUgPT09ICIpIiAmJiBpc1JlYWRpbmdBcmd1bWVudHMpIHsKKyAg
ICAgICAgICAgICAgICBhZGRlZEZ1bmN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaXNS
ZWFkaW5nQXJndW1lbnRzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgY3VycmVudEZ1bmN0aW9u
LmFyZ3VtZW50cyA9IGFyZ3VtZW50c1RleHQucmVwbGFjZSgvLFtcclxuXHNdKi9nLCAiLCAiKS5y
ZXBsYWNlKC8oW14sXSlbXHJcblxzXSsvZywgIiQxIik7CisgICAgICAgICAgICAgICAgYXJndW1l
bnRzVGV4dCA9ICIiOworICAgICAgICAgICAgICAgIG91dGxpbmVDaHVuay5wdXNoKGN1cnJlbnRG
dW5jdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0b2tlblZhbHVlLnRy
aW0oKS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAvLyBTa2lwIHdoaXRlc3BhY2UgdG9rZW5z
LgorICAgICAgICAgICAgICAgIHByZXZpb3VzVG9rZW4gPSB0b2tlblZhbHVlOworICAgICAgICAg
ICAgICAgIHByZXZpb3VzVG9rZW5UeXBlID0gdG9rZW5UeXBlOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgcHJvY2Vzc2VkQ2h1bmtDaGFyYWN0ZXJzICs9IG5ld0NvbHVtbiAtIGNvbHVtbjsK
KyAgICAgICAgICAgIGNvbHVtbiA9IG5ld0NvbHVtbjsKKworICAgICAgICAgICAgaWYgKHByb2Nl
c3NlZENodW5rQ2hhcmFjdGVycyA+PSBjaHVua1NpemUpIHsKKyAgICAgICAgICAgICAgICBwb3N0
TWVzc2FnZSh7IGNodW5rOiBvdXRsaW5lQ2h1bmssIGlkOiBkYXRhLmlkLCB0b3RhbDogY2h1bmtD
b3VudCwgaW5kZXg6IGN1cnJlbnRDaHVuaysrIH0pOworICAgICAgICAgICAgICAgIG91dGxpbmVD
aHVuayA9IFtdOworICAgICAgICAgICAgICAgIHByb2Nlc3NlZENodW5rQ2hhcmFjdGVycyA9IDA7
CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKGNvbHVtbiA8IGxpbmUubGVuZ3RoKTsK
KyAgICAgICAgY29sdW1uID0gMDsKKyAgICB9CisgICAgcG9zdE1lc3NhZ2UoeyBjaHVuazogb3V0
bGluZUNodW5rLCBpZDogZGF0YS5pZCwgdG90YWw6IGNodW5rQ291bnQsIGluZGV4OiBjaHVua0Nv
dW50IH0pOworfQorCitXZWJJbnNwZWN0b3IgPSB7fTsKKworQXJyYXkucHJvdG90eXBlLmtleVNl
dCA9IGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIga2V5cyA9IHt9OworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGhpcy5sZW5ndGg7ICsraSkKKyAgICAgICAga2V5c1t0aGlzW2ldXSA9IHRydWU7Cisg
ICAgcmV0dXJuIGtleXM7Cit9OworCitpbXBvcnRTY3JpcHRzKCJTb3VyY2VUb2tlbml6ZXIuanMi
KTsKK2ltcG9ydFNjcmlwdHMoIlNvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIuanMiKTsKKwordG9r
ZW5pemVyID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggNTg3
NGQ5NmVhNDYxZWQzNDdmM2E3MmE1YmJmMWRjMGM3OTliYzgzMC4uYTI5OWY2N2UyY2RlMTVjNmY2
NWIxODM1OGMwZDFjNWY1ZmZiMTU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtMTExLDYgKzExMSw3IEBACiAgICAgPGZpbGU+U2NyaXB0
LmpzPC9maWxlPgogICAgIDxmaWxlPlNjcmlwdEZvcm1hdHRlci5qczwvZmlsZT4KICAgICA8Zmls
ZT5TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanM8L2ZpbGU+CisgICAgPGZpbGU+U2NyaXB0T3V0bGlu
ZVdvcmtlci5qczwvZmlsZT4KICAgICA8ZmlsZT5TY3JpcHRzUGFuZWwuanM8L2ZpbGU+CiAgICAg
PGZpbGU+U2NyaXB0c05hdmlnYXRvci5qczwvZmlsZT4KICAgICA8ZmlsZT5TY3JpcHRzU2VhcmNo
U2NvcGUuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggNzQ3NmIyNjdj
NGJlN2UzNWY0NzExZTBlMzczOGMwOTdjMGNlOWUxMS4uYzAyOGY0YWU0MTk1NDI5NjkxZjM1OGFm
YjhiYTQ3NjFlMWFhMDdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtODU1LDYg
Kzg1NSw3IEBACiAgICAgICAgICAgICAgICAgICAgICdkZXBlbmRlbmNpZXMnOiBbJ2NvbmNhdGVu
YXRlZF9kZXZ0b29sc19qcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2NvbmNhdGVuYXRlZF9oZWFwX3NuYXBzaG90X3dvcmtlcl9qcycsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZF9zY3JpcHRfZm9ybWF0dGVyX3dvcmtl
cl9qcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRl
ZF9zY3JpcHRfb3V0bGluZV93b3JrZXJfanMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2dG9vbHNfY3NzJ10sCiAgICAgICAgICAgICAgICAg
fV0sCiAgICAgICAgICAgICBdLApAQCAtOTM1LDYgKzkzNiw3IEBACiAgICAgICAgICAgICAgICAg
ICAgICdkZXBlbmRlbmNpZXMnOiBbJ2NvbmNhdGVuYXRlZF9kZXZ0b29sc19qcycsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZF9oZWFwX3NuYXBzaG90
X3dvcmtlcl9qcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmNh
dGVuYXRlZF9zY3JpcHRfZm9ybWF0dGVyX3dvcmtlcl9qcycsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZF9zY3JpcHRfb3V0bGluZV93b3JrZXJfanMn
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWRfZGV2
dG9vbHNfY3NzJ10sCiAgICAgICAgICAgICAgICAgfSx7CiAgICAgICAgICAgICAgICAgICAgICMg
SWYgd2UncmUgbm90IGNvbmNhdGVuYXRpbmcgZGV2dG9vbHMgZmlsZXMsIHdlIHdhbnQgdG8KQEAg
LTk1MSw2ICs5NTMsNyBAQAogICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVz
b3VyY2VzL2luc3BlY3Rvci9EZXZUb29scy5qcycsCiAgICAgICAgICAgICAgICAgICAgICc8KFBS
T0RVQ1RfRElSKS9yZXNvdXJjZXMvaW5zcGVjdG9yL0hlYXBTbmFwc2hvdFdvcmtlci5qcycsCiAg
ICAgICAgICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9yZXNvdXJjZXMvaW5zcGVjdG9yL1Nj
cmlwdEZvcm1hdHRlcldvcmtlci5qcycsCisgICAgICAgICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9yZXNvdXJjZXMvaW5zcGVjdG9yL1NjcmlwdE91dGxpbmVXb3JrZXIuanMnLAogICAgICAg
ICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9kZXZUb29s
cy5jc3MnLAogICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2lu
c3BlY3Rvci9kZXZ0b29sc19leHRlbnNpb25fYXBpLmpzJywKICAgICAgICAgICAgICAgICAgICAg
JzxAKHdlYmluc3BlY3Rvcl9zdGFuZGFsb25lX2Nzc19maWxlcyknLApAQCAtOTg2LDYgKzk4OSw3
IEBACiAgICAgICAgICAgICAgICAgICAgICcuLi8uLi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSGVhcFNuYXBzaG90V29ya2VyLmpzJywKICAgICAgICAgICAgICAgICAgICAgJy4uLy4uL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Rm9ybWF0dGVyLmpzJywKICAgICAg
ICAgICAgICAgICAgICAgJy4uLy4uL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRG
b3JtYXR0ZXJXb3JrZXIuanMnLAorICAgICAgICAgICAgICAgICAgICAnLi4vLi4vV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE91dGxpbmVXb3JrZXIuanMnLAogICAgICAgICAgICAg
ICAgICAgICAnPEAod2ViaW5zcGVjdG9yX3VnbGlmeWpzX2ZpbGVzKScKICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgICAgICdpbnB1dHMnOiBbCkBAIC0xMTA2LDYgKzExMTAsMjQgQEAK
ICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nOiBbJ3B5dGhvbicsICc8QChfc2NyaXB0
X25hbWUpJywgJzxAKF9pbnB1dF9maWxlKScsICc8QChfc2VhcmNoX3BhdGgpJywgJzxAKF9vdXRw
dXRzKSddLAogICAgICAgICAgICAgICAgICAgICB9XSwKICAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndGFyZ2V0X25hbWUnOiAnY29uY2F0
ZW5hdGVkX3NjcmlwdF9vdXRsaW5lX3dvcmtlcl9qcycsCisgICAgICAgICAgICAgICAgICAgICd0
eXBlJzogJ25vbmUnLAorICAgICAgICAgICAgICAgICAgICAnYWN0aW9ucyc6IFt7CisgICAgICAg
ICAgICAgICAgICAgICAgICAnYWN0aW9uX25hbWUnOiAnY29uY2F0ZW5hdGVfc2NyaXB0X291dGxp
bmVfd29ya2VyX2pzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzY3JpcHRfbmFtZSc6ICdz
Y3JpcHRzL2lubGluZV9qc19pbXBvcnRzLnB5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdp
bnB1dF9maWxlJzogJy4uLy4uL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRPdXRs
aW5lV29ya2VyLmpzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dHMnOiBbCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJzxAKF9zY3JpcHRfbmFtZSknLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICc8QChfaW5wdXRfZmlsZSknLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcuLi8uLi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVG9rZW5pemVy
LmpzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLi4vLi4vV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIuanMnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzZWFyY2hfcGF0aCc6ICcu
Li8uLi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ291dHB1dHMnOiBbJzwoUFJPRFVDVF9ESVIpL3Jlc291cmNlcy9pbnNwZWN0b3IvU2NyaXB0
T3V0bGluZVdvcmtlci5qcyddLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbic6IFsn
cHl0aG9uJywgJzxAKF9zY3JpcHRfbmFtZSknLCAnPEAoX2lucHV0X2ZpbGUpJywgJzxAKF9zZWFy
Y2hfcGF0aCknLCAnPEAoX291dHB1dHMpJ10sCisgICAgICAgICAgICAgICAgICAgIH1dLAorICAg
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAn
dGFyZ2V0X25hbWUnOiAnY29uY2F0ZW5hdGVkX2RldnRvb2xzX2NzcycsCiAgICAgICAgICAgICAg
ICAgICAgICd0eXBlJzogJ25vbmUnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg3Y2QyYjAxYjJhMjgyMGNlMDcwNzYyY2Ni
YzY5ZTkyY2UxMzQ0MzYuLmRlYzVlNmNjZDhiN2ZlMmU3MjQzODBjZWFhYzM5YjYwNjFkNTk1MDAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMi0yMyAgQWxleGFuZGVyIFBhdmxvdiAgPGFw
YXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBh
IHdvcmtlciBmb3IgcGFyc2luZyBvdXQgSmF2YVNjcmlwdCBmdW5jdGlvbiBkYXRhCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE2NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVn
Z2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWV4dHJhY3Qtb3V0bGluZS5odG1sOiBBZGRlZC4K
KwogMjAxMS0xMi0yMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE3YjdkMDIxNzBlZTE3ZTc5NDAwODY1YzUyYjlmN2UxZGRlODZl
NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0LWV4dHJhY3Qtb3V0bGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0cyB0
aGUgc2NyaXB0IG91dGxpbmUgZXh0cmFjdGlvbiBmdW5jdGlvbmFsaXR5LgorCit7ImNodW5rIjpb
eyJsaW5lIjowLCJuYW1lIjoiZmlyc3QiLCJhcmd1bWVudHMiOiIoeCwgeSkifSx7ImxpbmUiOjEs
Im5hbWUiOiJzZWNvbmQiLCJhcmd1bWVudHMiOiIoeSwgeikifSx7ImxpbmUiOjQsIm5hbWUiOiJP
YmplY3QiLCJhcmd1bWVudHMiOiIoYXJnKSJ9LHsibGluZSI6NiwibmFtZSI6ImZ1bmN0aW9uT25Q
cm90b3R5cGUiLCJhcmd1bWVudHMiOiIoYSwgYiwgYywgZCwgZSwgZikifSx7ImxpbmUiOjgsIm5h
bWUiOiJpbm5lckZ1bmN0aW9uMSIsImFyZ3VtZW50cyI6IigpIn0seyJsaW5lIjo5LCJuYW1lIjoi
aW5uZXJGdW5jdGlvbjIiLCJhcmd1bWVudHMiOiIoYXJnMSwgYXJnMikifV0sImlkIjoxLCJ0b3Rh
bCI6MSwiaW5kZXgiOjF9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHQtZXh0cmFjdC1vdXRsaW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc2NyaXB0LWV4dHJhY3Qtb3V0bGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MGVkYmU3
MDY2M2FiZDU5NzhlYWYzYjI3NmIxYTczOGRlY2M5MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWV4dHJhY3Qtb3V0bGluZS5odG1sCkBA
IC0wLDAgKzEsMzcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9vYmZ1c2NhdGVkLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHRl
c3QgPSBmdW5jdGlvbigpCit7CisgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoIlNjcmlwdE91
dGxpbmVXb3JrZXIuanMiKTsKKyAgICB2YXIgcGFyc2VkU2NyaXB0ID0gImZ1bmN0aW9uIGZpcnN0
KHgseSkgeyB9XG4gdmFyIHNlY29uZCA9IGZ1bmN0aW9uKHkgXG4gLCBcbnopIHsgfVxuIE9iamVj
dCA9IGZ1bmN0aW9uKGFyZykge1xufVxuIE9iamVjdC5wcm90b3R5cGUuZnVuY3Rpb25PblByb3Rv
dHlwZSA9IGZ1bmN0aW9uICAoICBhLCAgYiAgLCAgXG4gIGMsICBkICAgLCAgXG4gIGUgICwgIGYg
KSAgICB7IGZ1bmN0aW9uIGlubmVyRnVuY3Rpb24xKCkge1xuIHZhciBpbm5lckZ1bmN0aW9uMiA9
IGZ1bmN0aW9uKGFyZzEsYXJnMikge30gfSB9IjsKKworICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBJ
bnNwZWN0b3JUZXN0LnNhZmVXcmFwKGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoSlNPTi5zdHJpbmdpZnkoZXZlbnQuZGF0YSkpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0pOworCisgICAgd29ya2VyLm9u
ZXJyb3IgPSBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJFcnJvciBpbiB3b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9OworCisgICAgd29ya2VyLnBvc3RNZXNzYWdl
KHsgY29udGVudDogcGFyc2VkU2NyaXB0LCBpZDogMSwgcmVxdWVzdElkOiAxIH0pOworfQorCis8
L3NjcmlwdD4KKworPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0
cyB0aGUgc2NyaXB0IG91dGxpbmUgZXh0cmFjdGlvbiBmdW5jdGlvbmFsaXR5LgorPC9wPgorCis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120457</attachid>
            <date>2011-12-23 04:36:25 -0800</date>
            <delta_ts>2011-12-23 05:40:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75166-20111223163623.patch</filename>
            <type>text/plain</type>
            <size>8900</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE4ZDliNzQwYWUxNjZi
MTdiYWU3YjQwY2NkNGVmNWQ5MTJmYWQ4Ni4uZTE0YzIzOTFjYjU4N2UyZTgxZTdkMjJhMjQ4Yzkw
OWQ1ODMwOGFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTIzICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW1wbGVtZW50IGEgd29ya2VyIGZvciBwYXJzaW5nIG91dCBKYXZhU2NyaXB0IGZ1bmN0
aW9uIGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc1MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUuaHRtbAorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanM6Cisg
ICAgICAgIChvbm1lc3NhZ2UpOgorICAgICAgICAoZ2V0Q2h1bmtDb3VudCk6CisgICAgICAgIChi
dWlsZFNjcmlwdE91dGxpbmUpOgorICAgICAgICAoQXJyYXkucHJvdG90eXBlLmtleVNldCk6CisK
IDIwMTEtMTItMTkgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgQ1NTU3R5bGVTZWxlY3RvciBpbnN0cnVtZW50YXRp
b24gY2FsbHMgdG93YXJkcyBpbXBsZW1lbnRpbmcgYSBDU1Mgc2VsZWN0b3IgcHJvZmlsZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0
dGVyV29ya2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRG
b3JtYXR0ZXJXb3JrZXIuanMKaW5kZXggMGEwNjdlZTJkZmNhMDdiYTg2NDcyYzk1NzczNzY1M2E1
ODk0ZDA0NS4uNTk4NWEwMTRjYTllZjdlODMwMzZjNTgyNTM3OTc1ZTMwYzc3Y2U4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJX
b3JrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRG
b3JtYXR0ZXJXb3JrZXIuanMKQEAgLTI5LDYgKzI5LDExIEBACiAgKi8KIAogb25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0YS5jb21tYW5kID09PSAib3V0bGlu
ZSIpIHsKKyAgICAgICAgYnVpbGRTY3JpcHRPdXRsaW5lKGV2ZW50LmRhdGEpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgLy8gRGVmYXVsdCB0byBhIDQtc3BhY2UgaW5kZW50LgogICAg
IHZhciBpbmRlbnRTdHJpbmcgPSBldmVudC5kYXRhLmluZGVudFN0cmluZyB8fCAiICAgICI7CiAg
ICAgdmFyIHJlc3VsdCA9IHt9OwpAQCAtNDMsNiArNDgsOTUgQEAgb25tZXNzYWdlID0gZnVuY3Rp
b24oZXZlbnQpIHsKICAgICBwb3N0TWVzc2FnZShyZXN1bHQpOwogfTsKIAorZnVuY3Rpb24gZ2V0
Q2h1bmtDb3VudCh0b3RhbExlbmd0aCwgY2h1bmtTaXplKQoreworICAgIGlmICh0b3RhbExlbmd0
aCA8PSBjaHVua1NpemUpCisgICAgICAgIHJldHVybiAxOworCisgICAgdmFyIHJlbWFpbmRlciA9
IHRvdGFsTGVuZ3RoICUgY2h1bmtTaXplOworICAgIHZhciBwYXJ0aWFsTGVuZ3RoID0gdG90YWxM
ZW5ndGggLSByZW1haW5kZXI7CisgICAgcmV0dXJuIChwYXJ0aWFsTGVuZ3RoIC8gY2h1bmtTaXpl
KSArIChyZW1haW5kZXIgPyAxIDogMCk7Cit9CisKK2Z1bmN0aW9uIGJ1aWxkU2NyaXB0T3V0bGlu
ZShkYXRhKQoreworICAgIGNvbnN0IGNodW5rU2l6ZSA9IDEwMDAwMDsgLy8gY2hhcmFjdGVycyBw
ZXIgZGF0YSBjaHVuaworICAgIGNvbnN0IHRvdGFsTGVuZ3RoID0gZGF0YS5jb250ZW50Lmxlbmd0
aDsKKyAgICBjb25zdCBsaW5lcyA9IGRhdGEuY29udGVudC5zcGxpdCgiXG4iKTsKKyAgICBjb25z
dCBjaHVua0NvdW50ID0gZ2V0Q2h1bmtDb3VudCh0b3RhbExlbmd0aCwgY2h1bmtTaXplKTsKKyAg
ICB2YXIgb3V0bGluZUNodW5rID0gW107CisgICAgdmFyIHByZXZpb3VzSWRlbnRpZmllciA9IG51
bGw7CisgICAgdmFyIHByZXZpb3VzVG9rZW4gPSBudWxsOworICAgIHZhciBwcmV2aW91c1Rva2Vu
VHlwZSA9IG51bGw7CisgICAgdmFyIGNvbHVtbiA9IDA7CisgICAgdmFyIGN1cnJlbnRDaHVuayA9
IDE7CisgICAgdmFyIHByb2Nlc3NlZENodW5rQ2hhcmFjdGVycyA9IDA7CisgICAgdmFyIGFkZGVk
RnVuY3Rpb24gPSBmYWxzZTsKKyAgICB2YXIgaXNSZWFkaW5nQXJndW1lbnRzID0gZmFsc2U7Cisg
ICAgdmFyIGFyZ3VtZW50c1RleHQgPSAiIjsKKyAgICB2YXIgY3VycmVudEZ1bmN0aW9uID0gbnVs
bDsKKyAgICB2YXIgc2NyaXB0VG9rZW5pemVyID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VKYXZh
U2NyaXB0VG9rZW5pemVyKCk7CisgICAgc2NyaXB0VG9rZW5pemVyLmNvbmRpdGlvbiA9IHNjcmlw
dFRva2VuaXplci5jcmVhdGVJbml0aWFsQ29uZGl0aW9uKCk7CisKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGxpbmVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBsaW5lID0gbGluZXNbaV07
CisgICAgICAgIHNjcmlwdFRva2VuaXplci5saW5lID0gbGluZTsKKyAgICAgICAgZG8geworICAg
ICAgICAgICAgdmFyIG5ld0NvbHVtbiA9IHNjcmlwdFRva2VuaXplci5uZXh0VG9rZW4oY29sdW1u
KTsKKyAgICAgICAgICAgIHZhciB0b2tlblR5cGUgPSBzY3JpcHRUb2tlbml6ZXIudG9rZW5UeXBl
OworICAgICAgICAgICAgdmFyIHRva2VuVmFsdWUgPSBsaW5lLnN1YnN0cmluZyhjb2x1bW4sIG5l
d0NvbHVtbik7CisgICAgICAgICAgICBpZiAodG9rZW5UeXBlID09PSAiamF2YXNjcmlwdC1pZGVu
dCIpIHsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0lkZW50aWZpZXIgPSB0b2tlblZhbHVlOwor
ICAgICAgICAgICAgICAgIGlmICh0b2tlblZhbHVlICYmIHByZXZpb3VzVG9rZW4gPT09ICJmdW5j
dGlvbiIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQSBuYW1lZCBmdW5jdGlvbjogImZ1bmN0
aW9uIGYuLi4iLgorICAgICAgICAgICAgICAgICAgICBjdXJyZW50RnVuY3Rpb24gPSB7IGxpbmU6
IGksIG5hbWU6IHRva2VuVmFsdWUgfTsKKyAgICAgICAgICAgICAgICAgICAgYWRkZWRGdW5jdGlv
biA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzSWRlbnRpZmllciA9IG51bGw7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlblR5cGUgPT09
ICJqYXZhc2NyaXB0LWtleXdvcmQiKSB7CisgICAgICAgICAgICAgICAgaWYgKHRva2VuVmFsdWUg
PT09ICJmdW5jdGlvbiIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzSWRlbnRp
ZmllciAmJiAocHJldmlvdXNUb2tlbiA9PT0gIj0iIHx8IHByZXZpb3VzVG9rZW4gPT09ICI6Iikp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFub255bW91cyBmdW5jdGlvbiBhc3NpZ25l
ZCB0byBhbiBpZGVudGlmaWVyOiAiLi4uZiA9IGZ1bmN0aW9uLi4uIgorICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gb3IgImZ1bmNOYW1lOiBmdW5jdGlvbi4uLiIuCisgICAgICAgICAgICAgICAg
ICAgICAgICBjdXJyZW50RnVuY3Rpb24gPSB7IGxpbmU6IGksIG5hbWU6IHByZXZpb3VzSWRlbnRp
ZmllciB9OworICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWRGdW5jdGlvbiA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0lkZW50aWZpZXIgPSBudWxsOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlm
ICh0b2tlblZhbHVlID09PSAiLiIgJiYgcHJldmlvdXNUb2tlblR5cGUgPT09ICJqYXZhc2NyaXB0
LWlkZW50IikKKyAgICAgICAgICAgICAgICBwcmV2aW91c0lkZW50aWZpZXIgKz0gIi4iOworICAg
ICAgICAgICAgZWxzZSBpZiAodG9rZW5WYWx1ZSA9PT0gIigiICYmIGFkZGVkRnVuY3Rpb24pCisg
ICAgICAgICAgICAgICAgaXNSZWFkaW5nQXJndW1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChpc1JlYWRpbmdBcmd1bWVudHMgJiYgdG9rZW5WYWx1ZSkKKyAgICAgICAgICAgICAgICBhcmd1
bWVudHNUZXh0ICs9IHRva2VuVmFsdWU7CisKKyAgICAgICAgICAgIGlmICh0b2tlblZhbHVlID09
PSAiKSIgJiYgaXNSZWFkaW5nQXJndW1lbnRzKSB7CisgICAgICAgICAgICAgICAgYWRkZWRGdW5j
dGlvbiA9IGZhbHNlOworICAgICAgICAgICAgICAgIGlzUmVhZGluZ0FyZ3VtZW50cyA9IGZhbHNl
OworICAgICAgICAgICAgICAgIGN1cnJlbnRGdW5jdGlvbi5hcmd1bWVudHMgPSBhcmd1bWVudHNU
ZXh0LnJlcGxhY2UoLyxbXHJcblxzXSovZywgIiwgIikucmVwbGFjZSgvKFteLF0pW1xyXG5cc10r
L2csICIkMSIpOworICAgICAgICAgICAgICAgIGFyZ3VtZW50c1RleHQgPSAiIjsKKyAgICAgICAg
ICAgICAgICBvdXRsaW5lQ2h1bmsucHVzaChjdXJyZW50RnVuY3Rpb24pOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAodG9rZW5WYWx1ZS50cmltKCkubGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgLy8gU2tpcCB3aGl0ZXNwYWNlIHRva2Vucy4KKyAgICAgICAgICAgICAgICBwcmV2
aW91c1Rva2VuID0gdG9rZW5WYWx1ZTsKKyAgICAgICAgICAgICAgICBwcmV2aW91c1Rva2VuVHlw
ZSA9IHRva2VuVHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb2Nlc3NlZENodW5r
Q2hhcmFjdGVycyArPSBuZXdDb2x1bW4gLSBjb2x1bW47CisgICAgICAgICAgICBjb2x1bW4gPSBu
ZXdDb2x1bW47CisKKyAgICAgICAgICAgIGlmIChwcm9jZXNzZWRDaHVua0NoYXJhY3RlcnMgPj0g
Y2h1bmtTaXplKSB7CisgICAgICAgICAgICAgICAgcG9zdE1lc3NhZ2UoeyBjaHVuazogb3V0bGlu
ZUNodW5rLCBpZDogZGF0YS5pZCwgdG90YWw6IGNodW5rQ291bnQsIGluZGV4OiBjdXJyZW50Q2h1
bmsrKyB9KTsKKyAgICAgICAgICAgICAgICBvdXRsaW5lQ2h1bmsgPSBbXTsKKyAgICAgICAgICAg
ICAgICBwcm9jZXNzZWRDaHVua0NoYXJhY3RlcnMgPSAwOworICAgICAgICAgICAgfQorICAgICAg
ICB9IHdoaWxlIChjb2x1bW4gPCBsaW5lLmxlbmd0aCk7CisgICAgICAgIGNvbHVtbiA9IDA7Cisg
ICAgfQorICAgIHBvc3RNZXNzYWdlKHsgY2h1bms6IG91dGxpbmVDaHVuaywgaWQ6IGRhdGEuaWQs
IHRvdGFsOiBjaHVua0NvdW50LCBpbmRleDogY2h1bmtDb3VudCB9KTsKK30KKwogZnVuY3Rpb24g
Zm9ybWF0U2NyaXB0KGNvbnRlbnQsIG1hcHBpbmcsIG9mZnNldCwgZm9ybWF0dGVkT2Zmc2V0LCBp
bmRlbnRTdHJpbmcpCiB7CiAgICAgdmFyIGZvcm1hdHRlZENvbnRlbnQ7CkBAIC01OSw4ICsxNTMs
MTggQEAgZnVuY3Rpb24gZm9ybWF0U2NyaXB0KGNvbnRlbnQsIG1hcHBpbmcsIG9mZnNldCwgZm9y
bWF0dGVkT2Zmc2V0LCBpbmRlbnRTdHJpbmcpCiB9CiAKIFdlYkluc3BlY3RvciA9IHt9OworCitB
cnJheS5wcm90b3R5cGUua2V5U2V0ID0gZnVuY3Rpb24oKQoreworICAgIHZhciBrZXlzID0ge307
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgKytpKQorICAgICAgICBrZXlz
W3RoaXNbaV1dID0gdHJ1ZTsKKyAgICByZXR1cm4ga2V5czsKK307CisKIGltcG9ydFNjcmlwdHMo
IlNvdXJjZVRva2VuaXplci5qcyIpOwogaW1wb3J0U2NyaXB0cygiU291cmNlSFRNTFRva2VuaXpl
ci5qcyIpOworaW1wb3J0U2NyaXB0cygiU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5qcyIpOwog
CiBIVE1MU2NyaXB0Rm9ybWF0dGVyID0gZnVuY3Rpb24oaW5kZW50U3RyaW5nKQogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGU1NDYyMzZkZGVlZjIzMGM2ZmE0ZGQ1ZTRjNzQ2ODgwZDIyZjI0MTguLjdjMGYwOGYwMTQ0NGUw
MTg4ZDIxMDZiMWQ2Mjc0YzU5Njk3ZjVkZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0x
Mi0yMyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBhIHdvcmtlciBmb3IgcGFyc2luZyBvdXQgSmF2YVNj
cmlwdCBmdW5jdGlvbiBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NTE2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWV4
dHJhY3Qtb3V0bGluZS5odG1sOiBBZGRlZC4KKwogMjAxMS0xMi0yMyAgSWx5YSBUaWtob25vdnNr
eSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCB1cHN0cmVhbSBl
eHBlY3RhdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0LWV4dHJhY3Qtb3V0bGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0LWV4dHJhY3Qtb3V0bGluZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTdiN2QwMjE3MGVlMTdlNzk0MDA4NjVjNTJiOWY3ZTFkZGU4NmU1OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFjdC1vdXRs
aW5lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3RzIHRoZSBzY3JpcHQgb3V0bGlu
ZSBleHRyYWN0aW9uIGZ1bmN0aW9uYWxpdHkuCisKK3siY2h1bmsiOlt7ImxpbmUiOjAsIm5hbWUi
OiJmaXJzdCIsImFyZ3VtZW50cyI6Iih4LCB5KSJ9LHsibGluZSI6MSwibmFtZSI6InNlY29uZCIs
ImFyZ3VtZW50cyI6Iih5LCB6KSJ9LHsibGluZSI6NCwibmFtZSI6Ik9iamVjdCIsImFyZ3VtZW50
cyI6IihhcmcpIn0seyJsaW5lIjo2LCJuYW1lIjoiZnVuY3Rpb25PblByb3RvdHlwZSIsImFyZ3Vt
ZW50cyI6IihhLCBiLCBjLCBkLCBlLCBmKSJ9LHsibGluZSI6OCwibmFtZSI6ImlubmVyRnVuY3Rp
b24xIiwiYXJndW1lbnRzIjoiKCkifSx7ImxpbmUiOjksIm5hbWUiOiJpbm5lckZ1bmN0aW9uMiIs
ImFyZ3VtZW50cyI6IihhcmcxLCBhcmcyKSJ9XSwiaWQiOjEsInRvdGFsIjoxLCJpbmRleCI6MX0K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRy
YWN0LW91dGxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQt
ZXh0cmFjdC1vdXRsaW5lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjllZGYzMTkwNjViNzUwMzc4ZjQ3ZmU1
ZTBlMGRkYmM0YWYxODRkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFjdC1vdXRsaW5lLmh0bWwKQEAgLTAsMCArMSwzNyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29iZnVz
Y2F0ZWQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkK
K3sKKyAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigiU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpz
Iik7CisgICAgdmFyIHBhcnNlZFNjcmlwdCA9ICJmdW5jdGlvbiBmaXJzdCh4LHkpIHsgfVxuIHZh
ciBzZWNvbmQgPSBmdW5jdGlvbih5IFxuICwgXG56KSB7IH1cbiBPYmplY3QgPSBmdW5jdGlvbihh
cmcpIHtcbn1cbiBPYmplY3QucHJvdG90eXBlLmZ1bmN0aW9uT25Qcm90b3R5cGUgPSBmdW5jdGlv
biAgKCAgYSwgIGIgICwgIFxuICBjLCAgZCAgICwgIFxuICBlICAsICBmICkgICAgeyBmdW5jdGlv
biBpbm5lckZ1bmN0aW9uMSgpIHtcbiB2YXIgaW5uZXJGdW5jdGlvbjIgPSBmdW5jdGlvbihhcmcx
LGFyZzIpIHt9IH0gfSI7CisKKyAgICB3b3JrZXIub25tZXNzYWdlID0gSW5zcGVjdG9yVGVzdC5z
YWZlV3JhcChmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KEpTT04uc3RyaW5naWZ5KGV2ZW50LmRhdGEpKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9KTsKKworICAgIHdvcmtlci5vbmVycm9yID0gZnVuY3Rp
b24oZXZlbnQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXJyb3Ig
aW4gd29ya2VyOiAiICsgZXZlbnQuZGF0YSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7CisgICAgfTsKKworICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7IGNvbnRlbnQ6IHBh
cnNlZFNjcmlwdCwgaWQ6IDEsIGNvbW1hbmQ6ICJvdXRsaW5lIiB9KTsKK30KKworPC9zY3JpcHQ+
CisKKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgdGhlIHNj
cmlwdCBvdXRsaW5lIGV4dHJhY3Rpb24gZnVuY3Rpb25hbGl0eS4KKzwvcD4KKworPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120462</attachid>
            <date>2011-12-23 05:40:49 -0800</date>
            <delta_ts>2011-12-23 07:22:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75166-20111223174047.patch</filename>
            <type>text/plain</type>
            <size>11817</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE4ZDliNzQwYWUxNjZi
MTdiYWU3YjQwY2NkNGVmNWQ5MTJmYWQ4Ni4uOGY3N2ZiODNhNTljYjY5MDdmZDlkYWM0ODViNjBk
NjAyMzQxYzc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEyLTIzICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW1wbGVtZW50IGEgd29ya2VyIGZvciBwYXJzaW5nIG91dCBKYXZhU2NyaXB0IGZ1bmN0
aW9uIGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc1MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUuaHRtbAorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnByb3RvdHlwZS5mb3JtYXRDb250ZW50KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlcldvcmtlci5qczoK
KyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAgIChmb3JtYXQpOgorICAgICAgICAoZ2V0Q2h1
bmtDb3VudCk6CisgICAgICAgICgpOgorICAgICAgICAoQXJyYXkucHJvdG90eXBlLmtleVNldCk6
CisKIDIwMTEtMTItMTkgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgQ1NTU3R5bGVTZWxlY3RvciBpbnN0cnVtZW50
YXRpb24gY2FsbHMgdG93YXJkcyBpbXBsZW1lbnRpbmcgYSBDU1Mgc2VsZWN0b3IgcHJvZmlsZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9y
bWF0dGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3Jt
YXR0ZXIuanMKaW5kZXggZGExYWNmMzhiZmRjN2VhMmRhMmMxMTZlMGZiMDg5YjcwMTU5ZThmNy4u
YjA5OTcwY2FlNGZlZGZhY2Q0ZmQwNmNlZjdkOTQ1YTQ5ZTcxNDBjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMKQEAg
LTU3LDkgKzU3LDEwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucHJvdG90eXBlID0g
ewogICAgIGZvcm1hdENvbnRlbnQ6IGZ1bmN0aW9uKG1pbWVUeXBlLCBjb250ZW50LCBjYWxsYmFj
aykKICAgICB7CiAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL1xyXG4/fFtcblx1
MjAyOFx1MjAyOV0vZywgIlxuIikucmVwbGFjZSgvXlx1RkVGRi8sICcnKTsKLSAgICAgICAgdmFy
IGRhdGEgPSB7IG1pbWVUeXBlOiBtaW1lVHlwZSwgY29udGVudDogY29udGVudCwgaW5kZW50U3Ry
aW5nOiAiICAgICIgIH07Ci0gICAgICAgIHRoaXMuX3Rhc2tzLnB1c2goeyBkYXRhOiBkYXRhLCBj
YWxsYmFjazogY2FsbGJhY2sgfSk7Ci0gICAgICAgIHRoaXMuX3dvcmtlci5wb3N0TWVzc2FnZShk
YXRhKTsKKyAgICAgICAgY29uc3QgbWV0aG9kID0gImZvcm1hdCI7CisgICAgICAgIHZhciBwYXJh
bWV0ZXJzID0geyBtaW1lVHlwZTogbWltZVR5cGUsIGNvbnRlbnQ6IGNvbnRlbnQsIGluZGVudFN0
cmluZzogIiAgICAiICB9OworICAgICAgICB0aGlzLl90YXNrcy5wdXNoKHsgZGF0YTogcGFyYW1l
dGVycywgY2FsbGJhY2s6IGNhbGxiYWNrIH0pOworICAgICAgICB0aGlzLl93b3JrZXIucG9zdE1l
c3NhZ2UoeyBtZXRob2Q6IG1ldGhvZCwgcGFyYW1zOiBwYXJhbWV0ZXJzIH0pOwogICAgIH0sCiAK
ICAgICBfZGlkRm9ybWF0Q29udGVudDogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlcldvcmtlci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2Vy
LmpzCmluZGV4IDBhMDY3ZWUyZGZjYTA3YmE4NjQ3MmM5NTc3Mzc2NTNhNTg5NGQwNDUuLjdjNjcx
MjczMzdkNzdkMjA0NzRjMmIxMTUzNGU1NTExYTE5ZTVhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2Vy
LmpzCkBAIC0yOSwxOSArMjksMTE2IEBACiAgKi8KIAogb25tZXNzYWdlID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICBpZiAoIWV2ZW50LmRhdGEubWV0aG9kKQorICAgICAgICByZXR1cm47CisKKyAg
ICBzZWxmW2V2ZW50LmRhdGEubWV0aG9kXShldmVudC5kYXRhLnBhcmFtcyk7Cit9OworCitmdW5j
dGlvbiBmb3JtYXQocGFyYW1zKQorewogICAgIC8vIERlZmF1bHQgdG8gYSA0LXNwYWNlIGluZGVu
dC4KLSAgICB2YXIgaW5kZW50U3RyaW5nID0gZXZlbnQuZGF0YS5pbmRlbnRTdHJpbmcgfHwgIiAg
ICAiOworICAgIHZhciBpbmRlbnRTdHJpbmcgPSBwYXJhbXMuaW5kZW50U3RyaW5nIHx8ICIgICAg
IjsKICAgICB2YXIgcmVzdWx0ID0ge307CiAKLSAgICBpZiAoZXZlbnQuZGF0YS5taW1lVHlwZSA9
PT0gInRleHQvaHRtbCIpIHsKKyAgICBpZiAocGFyYW1zLm1pbWVUeXBlID09PSAidGV4dC9odG1s
IikgewogICAgICAgICB2YXIgZm9ybWF0dGVyID0gbmV3IEhUTUxTY3JpcHRGb3JtYXR0ZXIoaW5k
ZW50U3RyaW5nKTsKLSAgICAgICAgcmVzdWx0ID0gZm9ybWF0dGVyLmZvcm1hdChldmVudC5kYXRh
LmNvbnRlbnQpOworICAgICAgICByZXN1bHQgPSBmb3JtYXR0ZXIuZm9ybWF0KHBhcmFtcy5jb250
ZW50KTsKICAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQubWFwcGluZyA9IHsgb3JpZ2luYWw6
IFswXSwgZm9ybWF0dGVkOiBbMF0gfTsKLSAgICAgICAgcmVzdWx0LmNvbnRlbnQgPSBmb3JtYXRT
Y3JpcHQoZXZlbnQuZGF0YS5jb250ZW50LCByZXN1bHQubWFwcGluZywgMCwgMCwgaW5kZW50U3Ry
aW5nKTsKKyAgICAgICAgcmVzdWx0LmNvbnRlbnQgPSBmb3JtYXRTY3JpcHQocGFyYW1zLmNvbnRl
bnQsIHJlc3VsdC5tYXBwaW5nLCAwLCAwLCBpbmRlbnRTdHJpbmcpOwogICAgIH0KICAgICBwb3N0
TWVzc2FnZShyZXN1bHQpOwotfTsKK30KKworZnVuY3Rpb24gZ2V0Q2h1bmtDb3VudCh0b3RhbExl
bmd0aCwgY2h1bmtTaXplKQoreworICAgIGlmICh0b3RhbExlbmd0aCA8PSBjaHVua1NpemUpCisg
ICAgICAgIHJldHVybiAxOworCisgICAgdmFyIHJlbWFpbmRlciA9IHRvdGFsTGVuZ3RoICUgY2h1
bmtTaXplOworICAgIHZhciBwYXJ0aWFsTGVuZ3RoID0gdG90YWxMZW5ndGggLSByZW1haW5kZXI7
CisgICAgcmV0dXJuIChwYXJ0aWFsTGVuZ3RoIC8gY2h1bmtTaXplKSArIChyZW1haW5kZXIgPyAx
IDogMCk7Cit9CisKK2Z1bmN0aW9uIG91dGxpbmUocGFyYW1zKQoreworICAgIGNvbnN0IGNodW5r
U2l6ZSA9IDEwMDAwMDsgLy8gY2hhcmFjdGVycyBwZXIgZGF0YSBjaHVuaworICAgIGNvbnN0IHRv
dGFsTGVuZ3RoID0gcGFyYW1zLmNvbnRlbnQubGVuZ3RoOworICAgIGNvbnN0IGxpbmVzID0gcGFy
YW1zLmNvbnRlbnQuc3BsaXQoIlxuIik7CisgICAgY29uc3QgY2h1bmtDb3VudCA9IGdldENodW5r
Q291bnQodG90YWxMZW5ndGgsIGNodW5rU2l6ZSk7CisgICAgdmFyIG91dGxpbmVDaHVuayA9IFtd
OworICAgIHZhciBwcmV2aW91c0lkZW50aWZpZXIgPSBudWxsOworICAgIHZhciBwcmV2aW91c1Rv
a2VuID0gbnVsbDsKKyAgICB2YXIgcHJldmlvdXNUb2tlblR5cGUgPSBudWxsOworICAgIHZhciBj
b2x1bW4gPSAwOworICAgIHZhciBjdXJyZW50Q2h1bmsgPSAxOworICAgIHZhciBwcm9jZXNzZWRD
aHVua0NoYXJhY3RlcnMgPSAwOworICAgIHZhciBhZGRlZEZ1bmN0aW9uID0gZmFsc2U7CisgICAg
dmFyIGlzUmVhZGluZ0FyZ3VtZW50cyA9IGZhbHNlOworICAgIHZhciBhcmd1bWVudHNUZXh0ID0g
IiI7CisgICAgdmFyIGN1cnJlbnRGdW5jdGlvbiA9IG51bGw7CisgICAgdmFyIHNjcmlwdFRva2Vu
aXplciA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlSmF2YVNjcmlwdFRva2VuaXplcigpOworICAg
IHNjcmlwdFRva2VuaXplci5jb25kaXRpb24gPSBzY3JpcHRUb2tlbml6ZXIuY3JlYXRlSW5pdGlh
bENvbmRpdGlvbigpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7ICsr
aSkgeworICAgICAgICB2YXIgbGluZSA9IGxpbmVzW2ldOworICAgICAgICBzY3JpcHRUb2tlbml6
ZXIubGluZSA9IGxpbmU7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHZhciBuZXdDb2x1bW4g
PSBzY3JpcHRUb2tlbml6ZXIubmV4dFRva2VuKGNvbHVtbik7CisgICAgICAgICAgICB2YXIgdG9r
ZW5UeXBlID0gc2NyaXB0VG9rZW5pemVyLnRva2VuVHlwZTsKKyAgICAgICAgICAgIHZhciB0b2tl
blZhbHVlID0gbGluZS5zdWJzdHJpbmcoY29sdW1uLCBuZXdDb2x1bW4pOworICAgICAgICAgICAg
aWYgKHRva2VuVHlwZSA9PT0gImphdmFzY3JpcHQtaWRlbnQiKSB7CisgICAgICAgICAgICAgICAg
cHJldmlvdXNJZGVudGlmaWVyID0gdG9rZW5WYWx1ZTsKKyAgICAgICAgICAgICAgICBpZiAodG9r
ZW5WYWx1ZSAmJiBwcmV2aW91c1Rva2VuID09PSAiZnVuY3Rpb24iKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIEEgbmFtZWQgZnVuY3Rpb246ICJmdW5jdGlvbiBmLi4uIi4KKyAgICAgICAgICAg
ICAgICAgICAgY3VycmVudEZ1bmN0aW9uID0geyBsaW5lOiBpLCBuYW1lOiB0b2tlblZhbHVlIH07
CisgICAgICAgICAgICAgICAgICAgIGFkZGVkRnVuY3Rpb24gPSB0cnVlOworICAgICAgICAgICAg
ICAgICAgICBwcmV2aW91c0lkZW50aWZpZXIgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW5UeXBlID09PSAiamF2YXNjcmlwdC1rZXl3b3JkIikg
eworICAgICAgICAgICAgICAgIGlmICh0b2tlblZhbHVlID09PSAiZnVuY3Rpb24iKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0lkZW50aWZpZXIgJiYgKHByZXZpb3VzVG9rZW4g
PT09ICI9IiB8fCBwcmV2aW91c1Rva2VuID09PSAiOiIpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBBbm9ueW1vdXMgZnVuY3Rpb24gYXNzaWduZWQgdG8gYW4gaWRlbnRpZmllcjogIi4u
LmYgPSBmdW5jdGlvbi4uLiIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9yICJmdW5jTmFt
ZTogZnVuY3Rpb24uLi4iLgorICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZ1bmN0aW9u
ID0geyBsaW5lOiBpLCBuYW1lOiBwcmV2aW91c0lkZW50aWZpZXIgfTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFkZGVkRnVuY3Rpb24gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAg
cHJldmlvdXNJZGVudGlmaWVyID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW5WYWx1ZSA9PT0gIi4iICYm
IHByZXZpb3VzVG9rZW5UeXBlID09PSAiamF2YXNjcmlwdC1pZGVudCIpCisgICAgICAgICAgICAg
ICAgcHJldmlvdXNJZGVudGlmaWVyICs9ICIuIjsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRva2Vu
VmFsdWUgPT09ICIoIiAmJiBhZGRlZEZ1bmN0aW9uKQorICAgICAgICAgICAgICAgIGlzUmVhZGlu
Z0FyZ3VtZW50cyA9IHRydWU7CisgICAgICAgICAgICBpZiAoaXNSZWFkaW5nQXJndW1lbnRzICYm
IHRva2VuVmFsdWUpCisgICAgICAgICAgICAgICAgYXJndW1lbnRzVGV4dCArPSB0b2tlblZhbHVl
OworCisgICAgICAgICAgICBpZiAodG9rZW5WYWx1ZSA9PT0gIikiICYmIGlzUmVhZGluZ0FyZ3Vt
ZW50cykgeworICAgICAgICAgICAgICAgIGFkZGVkRnVuY3Rpb24gPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICBpc1JlYWRpbmdBcmd1bWVudHMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBjdXJy
ZW50RnVuY3Rpb24uYXJndW1lbnRzID0gYXJndW1lbnRzVGV4dC5yZXBsYWNlKC8sW1xyXG5cc10q
L2csICIsICIpLnJlcGxhY2UoLyhbXixdKVtcclxuXHNdKy9nLCAiJDEiKTsKKyAgICAgICAgICAg
ICAgICBhcmd1bWVudHNUZXh0ID0gIiI7CisgICAgICAgICAgICAgICAgb3V0bGluZUNodW5rLnB1
c2goY3VycmVudEZ1bmN0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRv
a2VuVmFsdWUudHJpbSgpLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIC8vIFNraXAgd2hpdGVz
cGFjZSB0b2tlbnMuCisgICAgICAgICAgICAgICAgcHJldmlvdXNUb2tlbiA9IHRva2VuVmFsdWU7
CisgICAgICAgICAgICAgICAgcHJldmlvdXNUb2tlblR5cGUgPSB0b2tlblR5cGU7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBwcm9jZXNzZWRDaHVua0NoYXJhY3RlcnMgKz0gbmV3Q29sdW1u
IC0gY29sdW1uOworICAgICAgICAgICAgY29sdW1uID0gbmV3Q29sdW1uOworCisgICAgICAgICAg
ICBpZiAocHJvY2Vzc2VkQ2h1bmtDaGFyYWN0ZXJzID49IGNodW5rU2l6ZSkgeworICAgICAgICAg
ICAgICAgIHBvc3RNZXNzYWdlKHsgY2h1bms6IG91dGxpbmVDaHVuaywgaWQ6IHBhcmFtcy5pZCwg
dG90YWw6IGNodW5rQ291bnQsIGluZGV4OiBjdXJyZW50Q2h1bmsrKyB9KTsKKyAgICAgICAgICAg
ICAgICBvdXRsaW5lQ2h1bmsgPSBbXTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzZWRDaHVua0No
YXJhY3RlcnMgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChjb2x1bW4gPCBs
aW5lLmxlbmd0aCk7CisgICAgICAgIGNvbHVtbiA9IDA7CisgICAgfQorICAgIHBvc3RNZXNzYWdl
KHsgY2h1bms6IG91dGxpbmVDaHVuaywgaWQ6IHBhcmFtcy5pZCwgdG90YWw6IGNodW5rQ291bnQs
IGluZGV4OiBjaHVua0NvdW50IH0pOworfQogCiBmdW5jdGlvbiBmb3JtYXRTY3JpcHQoY29udGVu
dCwgbWFwcGluZywgb2Zmc2V0LCBmb3JtYXR0ZWRPZmZzZXQsIGluZGVudFN0cmluZykKIHsKQEAg
LTU5LDggKzE1NiwxOCBAQCBmdW5jdGlvbiBmb3JtYXRTY3JpcHQoY29udGVudCwgbWFwcGluZywg
b2Zmc2V0LCBmb3JtYXR0ZWRPZmZzZXQsIGluZGVudFN0cmluZykKIH0KIAogV2ViSW5zcGVjdG9y
ID0ge307CisKK0FycmF5LnByb3RvdHlwZS5rZXlTZXQgPSBmdW5jdGlvbigpCit7CisgICAgdmFy
IGtleXMgPSB7fTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyArK2kpCisg
ICAgICAgIGtleXNbdGhpc1tpXV0gPSB0cnVlOworICAgIHJldHVybiBrZXlzOworfTsKKwogaW1w
b3J0U2NyaXB0cygiU291cmNlVG9rZW5pemVyLmpzIik7CiBpbXBvcnRTY3JpcHRzKCJTb3VyY2VI
VE1MVG9rZW5pemVyLmpzIik7CitpbXBvcnRTY3JpcHRzKCJTb3VyY2VKYXZhU2NyaXB0VG9rZW5p
emVyLmpzIik7CiAKIEhUTUxTY3JpcHRGb3JtYXR0ZXIgPSBmdW5jdGlvbihpbmRlbnRTdHJpbmcp
CiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZTU0NjIzNmRkZWVmMjMwYzZmYTRkZDVlNGM3NDY4ODBkMjJmMjQxOC4uNjRl
YjdjZTdlMTVjOGZkNzI5NDMxNmFkNmU2Zjc1N2JjMTU1YjRhMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDExLTEyLTIzICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IGEgd29ya2VyIGZvciBwYXJzaW5n
IG91dCBKYXZhU2NyaXB0IGZ1bmN0aW9uIGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWV4dHJhY3Qt
b3V0bGluZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9zY3JpcHQtZXh0cmFjdC1vdXRsaW5lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLmh0bWw6CisKIDIwMTEtMTItMjMgIElseWEgVGlr
aG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdXBz
dHJlYW0gZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE3YjdkMDIxNzBlZTE3ZTc5NDAwODY1YzUyYjlmN2UxZGRlODZlNTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWV4dHJh
Y3Qtb3V0bGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0cyB0aGUgc2NyaXB0
IG91dGxpbmUgZXh0cmFjdGlvbiBmdW5jdGlvbmFsaXR5LgorCit7ImNodW5rIjpbeyJsaW5lIjow
LCJuYW1lIjoiZmlyc3QiLCJhcmd1bWVudHMiOiIoeCwgeSkifSx7ImxpbmUiOjEsIm5hbWUiOiJz
ZWNvbmQiLCJhcmd1bWVudHMiOiIoeSwgeikifSx7ImxpbmUiOjQsIm5hbWUiOiJPYmplY3QiLCJh
cmd1bWVudHMiOiIoYXJnKSJ9LHsibGluZSI6NiwibmFtZSI6ImZ1bmN0aW9uT25Qcm90b3R5cGUi
LCJhcmd1bWVudHMiOiIoYSwgYiwgYywgZCwgZSwgZikifSx7ImxpbmUiOjgsIm5hbWUiOiJpbm5l
ckZ1bmN0aW9uMSIsImFyZ3VtZW50cyI6IigpIn0seyJsaW5lIjo5LCJuYW1lIjoiaW5uZXJGdW5j
dGlvbjIiLCJhcmd1bWVudHMiOiIoYXJnMSwgYXJnMikifV0sImlkIjoxLCJ0b3RhbCI6MSwiaW5k
ZXgiOjF9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHQtZXh0cmFjdC1vdXRsaW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0LWV4dHJhY3Qtb3V0bGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxYjM4NzBlYzVhNjM4NDE1
Zjk1NjRjNDE1MmRkZDcxMjUwYTliNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWV4dHJhY3Qtb3V0bGluZS5odG1sCkBAIC0wLDAgKzEs
MzcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9vYmZ1c2NhdGVkLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHRlc3QgPSBmdW5j
dGlvbigpCit7CisgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoIlNjcmlwdEZvcm1hdHRlcldv
cmtlci5qcyIpOworICAgIHZhciBwYXJzZWRTY3JpcHQgPSAiZnVuY3Rpb24gZmlyc3QoeCx5KSB7
IH1cbiB2YXIgc2Vjb25kID0gZnVuY3Rpb24oeSBcbiAsIFxueikgeyB9XG4gT2JqZWN0ID0gZnVu
Y3Rpb24oYXJnKSB7XG59XG4gT2JqZWN0LnByb3RvdHlwZS5mdW5jdGlvbk9uUHJvdG90eXBlID0g
ZnVuY3Rpb24gICggIGEsICBiICAsICBcbiAgYywgIGQgICAsICBcbiAgZSAgLCAgZiApICAgIHsg
ZnVuY3Rpb24gaW5uZXJGdW5jdGlvbjEoKSB7XG4gdmFyIGlubmVyRnVuY3Rpb24yID0gZnVuY3Rp
b24oYXJnMSxhcmcyKSB7fSB9IH0iOworCisgICAgd29ya2VyLm9ubWVzc2FnZSA9IEluc3BlY3Rv
clRlc3Quc2FmZVdyYXAoZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChKU09OLnN0cmluZ2lmeShldmVudC5kYXRhKSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfSk7CisKKyAgICB3b3JrZXIub25lcnJvciA9
IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkVycm9yIGluIHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOworICAgIH07CisKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBtZXRo
b2Q6ICJvdXRsaW5lIiwgcGFyYW1zOiB7IGNvbnRlbnQ6IHBhcnNlZFNjcmlwdCwgaWQ6IDEgfSB9
KTsKK30KKworPC9zY3JpcHQ+CisKKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPHA+VGVzdHMgdGhlIHNjcmlwdCBvdXRsaW5lIGV4dHJhY3Rpb24gZnVuY3Rpb25hbGl0eS4K
KzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLmh0bWwKaW5kZXggNmQ3YzMxNGY0MWU3MDkxM2M1
NTUyYmM4MDliZGNhYWQ4OWU2NWJiMi4uZmMxN2FmZmQ2YjRjODcyMjU4ZTcxYjI4ZTc1YWY3ZDIw
ZjNjMWQzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dC1mb3JtYXR0ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0LWZvcm1hdHRlci5odG1sCkBAIC0yNiw3ICsyNiw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAg
IHdvcmtlci5wb3N0TWVzc2FnZSh7IG1pbWVUeXBlOiAidGV4dC9qYXZhc2NyaXB0IiwgY29udGVu
dDogInZhciB4PTAiIH0pOworICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsgbWV0aG9k
OiAiZm9ybWF0IiwgcGFyYW1zOiB7IG1pbWVUeXBlOiAidGV4dC9qYXZhc2NyaXB0IiwgY29udGVu
dDogInZhciB4PTAiIH0gfSk7CiAgICAgICAgIH0sCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdFNv
dXJjZU1hcHBpbmcobmV4dCkKQEAgLTg5LDcgKzg5LDcgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICB9OwogCiAgICAgICAgICAgICB2YXIgY29udGVudCA9ICI8aHRtbD48Ym9k
eT48c2NyaXB0PmZ1bmN0aW9uIGYoKXt9PCIgKyAiL3NjcmlwdD48c2NyaXB0PmZ1bmN0aW9uIGco
KXt2YXIgYTtpZiAoYSkgcmV0dXJuO308IiArICIvc2NyaXB0PjwvYm9keT48L2h0bWw+IjsKLSAg
ICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7IG1pbWVUeXBlOiAidGV4dC9odG1sIiwgY29u
dGVudDogY29udGVudCwgaW5kZW50U3RyaW5nOiAiKioiIH0pOworICAgICAgICAgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKHsgbWV0aG9kOiAiZm9ybWF0IiwgcGFyYW1zOiB7IG1pbWVUeXBlOiAidGV4
dC9odG1sIiwgY29udGVudDogY29udGVudCwgaW5kZW50U3RyaW5nOiAiKioiIH0gfSk7CiAgICAg
ICAgIH0KICAgICBdKTsKIH0K
</data>
<flag name="review"
          id="120735"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>