<?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>92375</bug_id>
          
          <creation_ts>2012-07-26 06:09:42 -0700</creation_ts>
          <short_desc>[WebGL] Align contents of drawbuffer-test.html layout test with the one in the WebGL conformance suite.</short_desc>
          <delta_ts>2012-07-27 23:56:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</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>91976</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nayan Kumar K">nayankk</reporter>
          <assigned_to name="Nayan Kumar K">nayankk</assigned_to>
          <cc>gman</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>679234</commentid>
    <comment_count>0</comment_count>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2012-07-26 06:09:42 -0700</bug_when>
    <thetext>As per the discussion in https://bugs.webkit.org/show_bug.cgi?id=91976, contents of Layouttests/canvas/webgl/drawbuffer-test.html need to be aligned with conformance/canvas/drawingbuffer-test.html in the WebGL conformance suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679251</commentid>
    <comment_count>1</comment_count>
      <attachid>154636</attachid>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2012-07-26 06:18:00 -0700</bug_when>
    <thetext>Created attachment 154636
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679896</commentid>
    <comment_count>2</comment_count>
      <attachid>154636</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-26 16:13:26 -0700</bug_when>
    <thetext>Comment on attachment 154636
Proposed patch

Thanks for doing this. I&apos;m clearing the r? bit for now. Please update the patch once https://bugs.webkit.org/show_bug.cgi?id=91976 lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680117</commentid>
    <comment_count>3</comment_count>
      <attachid>154841</attachid>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2012-07-26 22:08:43 -0700</bug_when>
    <thetext>Created attachment 154841
Reworked patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680204</commentid>
    <comment_count>4</comment_count>
      <attachid>154865</attachid>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2012-07-27 00:33:01 -0700</bug_when>
    <thetext>Created attachment 154865
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681080</commentid>
    <comment_count>5</comment_count>
      <attachid>154865</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-27 14:14:11 -0700</bug_when>
    <thetext>Comment on attachment 154865
Rebased patch

Fantastic. Thanks. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681359</commentid>
    <comment_count>6</comment_count>
      <attachid>154865</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-27 23:56:06 -0700</bug_when>
    <thetext>Comment on attachment 154865
Rebased patch

Clearing flags on attachment: 154865

Committed r123956: &lt;http://trac.webkit.org/changeset/123956&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681360</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-27 23:56:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154636</attachid>
            <date>2012-07-26 06:18:00 -0700</date>
            <delta_ts>2012-07-26 22:08:34 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-92375-20120726184123.patch</filename>
            <type>text/plain</type>
            <size>17065</size>
            <attacher name="Nayan Kumar K">nayankk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwODA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmNlZTM5MDY1OWIwZWE0NjZmZGJh
NGRiOTAyMGE5MDA3YzEzNTMwOS4uZTI3MzhkMjAwZGM4ODY1YzYyN2Y3ZmI0Njk4NGQzZGViMWZi
MjZkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA3LTI2ICBOYXlhbiBLdW1hciBLICA8
bmF5YW5ra0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBbGlnbiBjb250ZW50cyBv
ZiBkcmF3YnVmZmVyLXRlc3QuaHRtbCBsYXlvdXQgdGVzdCB3aXRoIHRoZSBvbmUgaW4gdGhlIFdl
YkdMIGNvbmZvcm1hbmNlIHN1aXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTIzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2RyYXdpbmdidWZmZXItdGVzdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2luZ2J1ZmZlci10ZXN0
Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanM6CisgICAgICAgIChXZWJHTFRlc3RVdGlscyk6CisKIDIwMTItMDctMjMgIE5heWFu
IEt1bWFyIEsgIDxuYXlhbmtrQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEluaXRp
YWwgc2l6ZSBvZiBjYW52YXMgY2FuIGJlIGxhcmdlciB0aGFuIE1BWF9WSUVXUE9SVF9ESU1TLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2luZ2J1ZmZlci10
ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RyYXdpbmdi
dWZmZXItdGVzdC1leHBlY3RlZC50eHQKaW5kZXggYmM3OTNjNjEyNmE3YzZlZjVjZWFlMTI0ODJj
ODY2NDZlZjMwMDAzYy4uYTRmYWQyY2RkNmJlYzZmOWJkNTMzNGI5Y2MzNzdlMTQzNWRmNTRkNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2luZ2J1ZmZlci10
ZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3
aW5nYnVmZmVyLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0yLDMzICsyLDY1IEBAIFRoaXMgdGVzdCBl
bnN1cmVzIFdlYkdMIGltcGxlbWVudGF0aW9ucyBjb3JyZWN0bHkgaW1wbGVtZW50IGRyYXdpbmdi
dWZmZXJXaWR0aC9ICiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAotCiBQQVNTIGNvbnRl
eHQgZXhpc3RzCi1DaGVja2luZyBkcmF3aW5nQnVmZmVyV2lkdGgvZHJhd2luZ0J1ZmZlckhlaWdo
dAorUEFTUyBnbC5kcmF3aW5nQnVmZmVyV2lkdGggaXMgZ2wuY2FudmFzLndpZHRoCitQQVNTIGds
LmRyYXdpbmdCdWZmZXJIZWlnaHQgaXMgZ2wuY2FudmFzLmhlaWdodAogUEFTUyBtYXhTaXplWzBd
ID4gMCBpcyB0cnVlCiBQQVNTIG1heFNpemVbMV0gPiAwIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2lu
Z0J1ZmZlcldpZHRoID4gMCBpcyB0cnVlCi1QQVNTIGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPiAw
IGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZlcldpZHRoIDw9IG1heFNpemVbMF0gaXMgdHJ1
ZQotUEFTUyBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0IDw9IG1heFNpemVbMV0gaXMgdHJ1ZQogCi1Q
QVNTIGNvbnRleHQgZXhpc3RzCiBDaGVja2luZyBkcmF3aW5nQnVmZmVyV2lkdGgvZHJhd2luZ0J1
ZmZlckhlaWdodAotUEFTUyBtYXhTaXplWzBdID4gMCBpcyB0cnVlCi1QQVNTIG1heFNpemVbMV0g
PiAwIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZlcldpZHRoID4gMCBpcyB0cnVlCi1QQVNT
IGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPiAwIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZl
cldpZHRoIDw9IG1heFNpemVbMF0gaXMgdHJ1ZQotUEFTUyBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0
IDw9IG1heFNpemVbMV0gaXMgdHJ1ZQotCiBQQVNTIGNvbnRleHQgZXhpc3RzCitQQVNTIGdsLmdl
dFBhcmFtZXRlcihnbC5NQVhfVklFV1BPUlRfRElNUylbMF0gaXMgbWF4U2l6ZVswXQorUEFTUyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJRVdQT1JUX0RJTVMpWzFdIGlzIG1heFNpemVbMV0KK1BB
U1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVswXSBpcyAwCitQQVNTIGdsLmdldFBhcmFt
ZXRlcihnbC5WSUVXUE9SVClbMV0gaXMgMAorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BP
UlQpWzJdIGlzIGdsLmRyYXdpbmdCdWZmZXJXaWR0aAorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wu
VklFV1BPUlQpWzNdIGlzIGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQKK1BBU1MgZ2wuZ2V0RXJyb3Io
KSBpcyBnbC5OT19FUlJPUgorUEFTUyBncmlkIHJlbmRlcmVkIGNvcnJlY3RseQorUEFTUyBzaG91
bGQgYmUgZ3JlZW4KK1BBU1Mgc2hvdWxkIGJlIGJsYWNrCitQQVNTIHNob3VsZCBiZSBibGFjawor
UEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCisKK1Rlc3RpbmcgcmVzaXppbmcgY2Fu
dmFzCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbMF0gaXMgb2xkVmlld3BvcnRb
MF0KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVsxXSBpcyBvbGRWaWV3cG9ydFsx
XQorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzJdIGlzIG9sZFZpZXdwb3J0WzJd
CitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbM10gaXMgb2xkVmlld3BvcnRbM10K
K1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBncmlkIHJlbmRlcmVkIGNv
cnJlY3RseQorUEFTUyBzaG91bGQgYmUgZ3JlZW4KK1BBU1Mgc2hvdWxkIGJlIGJsYWNrCitQQVNT
IHNob3VsZCBiZSBibGFjaworUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCisKIENo
ZWNraW5nIGRyYXdpbmdCdWZmZXJXaWR0aC9kcmF3aW5nQnVmZmVySGVpZ2h0Ci1QQVNTIG1heFNp
emVbMF0gPiAwIGlzIHRydWUKLVBBU1MgbWF4U2l6ZVsxXSA+IDAgaXMgdHJ1ZQotUEFTUyBnbC5k
cmF3aW5nQnVmZmVyV2lkdGggPiAwIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZlckhlaWdo
dCA+IDAgaXMgdHJ1ZQotUEFTUyBnbC5kcmF3aW5nQnVmZmVyV2lkdGggPD0gbWF4U2l6ZVswXSBp
cyB0cnVlCi1QQVNTIGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPD0gbWF4U2l6ZVsxXSBpcyB0cnVl
CitQQVNTIGNvbnRleHQgZXhpc3RzCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVklFV1BP
UlRfRElNUylbMF0gaXMgbWF4U2l6ZVswXQorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJ
RVdQT1JUX0RJTVMpWzFdIGlzIG1heFNpemVbMV0KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJ
RVdQT1JUKVswXSBpcyAwCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbMV0gaXMg
MAorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzJdIGlzIGdsLmRyYXdpbmdCdWZm
ZXJXaWR0aAorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzNdIGlzIGdsLmRyYXdp
bmdCdWZmZXJIZWlnaHQKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBn
cmlkIHJlbmRlcmVkIGNvcnJlY3RseQorUEFTUyBzaG91bGQgYmUgZ3JlZW4KK1BBU1Mgc2hvdWxk
IGJlIGJsYWNrCitQQVNTIHNob3VsZCBiZSBibGFjaworUEFTUyBnbC5nZXRFcnJvcigpIGlzIGds
Lk5PX0VSUk9SCisKK1Rlc3RpbmcgcmVzaXppbmcgY2FudmFzCitQQVNTIGdsLmdldFBhcmFtZXRl
cihnbC5WSUVXUE9SVClbMF0gaXMgb2xkVmlld3BvcnRbMF0KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVy
KGdsLlZJRVdQT1JUKVsxXSBpcyBvbGRWaWV3cG9ydFsxXQorUEFTUyBnbC5nZXRQYXJhbWV0ZXIo
Z2wuVklFV1BPUlQpWzJdIGlzIG9sZFZpZXdwb3J0WzJdCitQQVNTIGdsLmdldFBhcmFtZXRlcihn
bC5WSUVXUE9SVClbM10gaXMgb2xkVmlld3BvcnRbM10KK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBn
bC5OT19FUlJPUgorUEFTUyBncmlkIHJlbmRlcmVkIGNvcnJlY3RseQorUEFTUyBzaG91bGQgYmUg
Z3JlZW4KK1BBU1Mgc2hvdWxkIGJlIGJsYWNrCitQQVNTIHNob3VsZCBiZSBibGFjaworUEFTUyBn
bC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2lu
Z2J1ZmZlci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3aW5n
YnVmZmVyLXRlc3QuaHRtbAppbmRleCAzMDk5MjY0M2QyMDc1ZjFlNzYyM2IyYjE0ZmQyYmJhOGUw
M2ZlZTE0Li43NDlmODEwNjdjYjY5YmVhZGE1NGE3N2NkMzJiYjEzM2U5MGIwMGUzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3aW5nYnVmZmVyLXRlc3QuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3aW5nYnVmZmVyLXRlc3Qu
aHRtbApAQCAtMTAsNTcgKzEwLDIxMCBAQAogPGJvZHk+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgaWQ9InZzaGFkZXJHcmlk
IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOwor
dm9pZCBtYWluKCkKK3sKKyAgZ2xfUG9zaXRpb24gPSBhX3Bvc2l0aW9uOworfQorPC9zY3JpcHQ+
CisKKzxzY3JpcHQgaWQ9ImZzaGFkZXJHcmlkIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4K
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owordm9pZCBtYWluKCkKK3sKKyAgZmxvYXQgciA9IG1v
ZChnbF9GcmFnQ29vcmQueCwgMi4wKSA8IDEuMCA/IDAuMCA6IDEuMDsKKyAgZmxvYXQgZyA9IG1v
ZChnbF9GcmFnQ29vcmQueSwgMi4wKSA8IDEuMCA/IDAuMCA6IDEuMDsKKyAgZ2xfRnJhZ0NvbG9y
ID0gdmVjNChyLCBnLCAwLCAxKTsKK30KKzwvc2NyaXB0PgogPHNjcmlwdD4KIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgY29ycmVjdGx5IGltcGxl
bWVudCBkcmF3aW5nYnVmZmVyV2lkdGgvSGVpZ2h0LiIpOwogCi1kZWJ1ZygiIik7CitmdW5jdGlv
biBnZXRNYXhWaWV3cG9ydERpbWVuc2lvbnMoKSB7CisgIC8vIGNyZWF0ZSBhIGZyZXNoIGNhbnZh
cy4gVGhpcyBjYW52YXMgd2lsbCBiZSBkaXNjYXJkZWQKKyAgLy8gYWZ0ZXIgZXhpdGluZyB0aGlz
IGZ1bmN0aW9uLgorICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFz
Iik7CisgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIHthbnRpYWxpYXM6IGZhbHNl
fSk7CisgIGlmICghZ2wpIHsKKyAgICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0
Iik7CisgICAgcmV0dXJuIFswLCAwXTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJjb250
ZXh0IGV4aXN0cyIpOworCisgICAgLy8gRm9yIGEgZGVmYXVsdCBzaXplIGNhbnZhcyB0aGVzZSBz
aG91bGQgYmUgZXF1YWwuCisgICAgLy8gV2ViR0wgY29udGV4dHMgYXJlIG5vdCBhbGxvd2VkIHRv
IGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZHJhd2luZ0J1ZmZlcgorICAgIC8vIGZvciB0aGluZ3Mg
bGlrZSBoaS1yZXMgZGlzcGxheXMuCisgICAgc2hvdWxkQmUoJ2dsLmRyYXdpbmdCdWZmZXJXaWR0
aCcsICdnbC5jYW52YXMud2lkdGgnKTsKKyAgICBzaG91bGRCZSgnZ2wuZHJhd2luZ0J1ZmZlckhl
aWdodCcsICdnbC5jYW52YXMuaGVpZ2h0Jyk7CisgICAgcmV0dXJuIGdsLmdldFBhcmFtZXRlcihn
bC5NQVhfVklFV1BPUlRfRElNUyk7CisgIH0KK30KKworLy8gVGhpcyB1c2VzIGdsX0ZyYWdDb29y
ZCB0byBkcmF3IGEgZGV2aWNlIHBpeGVsIHJlbGF2ZW50IHBhdHRlcm4uCisvLyBJZiBkcmF3QnVm
ZmVyV2lkdGggb3IgZHJhd0J1ZmZlckhlaWdodCBhcmUgbm90IGluIGRldmljZSBwaXhlbHMKKy8v
IHRoaXMgdGVzdCBzaG91bGQgZmFpbC4KK2Z1bmN0aW9uIGNoZWNrR3JpZChnbCkgeworICB2YXIg
cHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlckdyaWQiLCAiZnNoYWRlckdy
aWQiXSwgWyJhX3Bvc2l0aW9uIl0pOworICB3dHUuc2V0dXBVbml0UXVhZChnbCk7CisgIGdsLnVz
ZVByb2dyYW0ocHJvZ3JhbSk7CisgIHNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VS
Uk9SJyk7CisKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKworICB2YXIgcGl4ZWxzID0gbmV3IFVpbnQ4
QXJyYXkoZ2wuZHJhd2luZ0J1ZmZlcldpZHRoICogZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCAqIDQp
OworICBnbC5yZWFkUGl4ZWxzKDAsIDAsIGdsLmRyYXdpbmdCdWZmZXJXaWR0aCwgZ2wuZHJhd2lu
Z0J1ZmZlckhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgcGl4ZWxzKTsKKworICB2
YXIgY29sb3JzID0gWworICAgIFsgeyBjb2xvcjogWzAsICAgMCwgMCwgMjU1XSwgbmFtZTogImJs
YWNrIiB9LCAgeyBjb2xvcjogWzI1NSwgICAwLCAwLCAyNTVdLCBuYW1lOiAicmVkIiAgICB9IF0s
CisgICAgWyB7IGNvbG9yOiBbMCwgMjU1LCAwLCAyNTVdLCBuYW1lOiAiZ3JlZW4iIH0sICB7IGNv
bG9yOiBbMjU1LCAyNTUsIDAsIDI1NV0sIG5hbWU6ICJ5ZWxsb3ciIH0gXSwKKyAgXTsKKworICBm
b3IgKHZhciB5eSA9IDA7IHl5IDwgZ2wuZHJhd2luZ0J1ZmZlckhlaWdodDsgKyt5eSkgeworICAg
IGZvciAodmFyIHh4ID0gMDsgeHggPCBnbC5kcmF3aW5nQnVmZmVyV2lkdGg7ICsreHgpIHsKKyAg
ICAgIHZhciBpbmZvID0gY29sb3JzW3l5ICUgMl1beHggJSAyXTsKKyAgICAgIHZhciBjb2xvciA9
IGluZm8uY29sb3I7CisgICAgICB2YXIgb2Zmc2V0ID0gKHl5ICogZ2wuZHJhd2luZ0J1ZmZlcldp
ZHRoICsgeHgpICogNDsKKyAgICAgIGZvciAodmFyIGpqID0gMDsgamogPCA0OyArK2pqKSB7Cisg
ICAgICAgIGlmIChwaXhlbHNbb2Zmc2V0ICsgampdICE9IGNvbG9yW2pqXSkgeworICAgICAgICAg
IHZhciBhY3R1YWwgPSBbcGl4ZWxzW29mZnNldF0sIHBpeGVsc1tvZmZzZXQgKyAxXSwgcGl4ZWxz
W29mZnNldCArIDJdLCBwaXhlbHNbb2Zmc2V0ICsgM11dOworICAgICAgICAgIHRlc3RGYWlsZWQo
ImF0ICIgKyB4eCArICIsICIgKyB5eSArICIgZXhwZWN0ZWQgIiArIGNvbG9yICsgIigiICsgaW5m
by5uYW1lICsgIikgd2FzICIgKyBhY3R1YWwpOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgfQorICAgIH0KKyAgfQorICB0ZXN0UGFzc2VkKCJncmlkIHJlbmRlcmVkIGNvcnJl
Y3RseSIpOworfQorCisvLyBUaGlzIHBhc3NlcyBkZXZpY2UgY29vcmRpbmF0ZSB2ZXJ0aWNlcyBp
biB0byBtYWtlIHN1cmUgZ2wudmlld3BvcnQgaXMgbm90IGJlaW5nIG11Y2tlZCB3aXRoLgorZnVu
Y3Rpb24gY2hlY2tRdWFkKGdsKSB7CisgIHZhciBkZXZpY2VUb0NsaXBTcGFjZSA9IGZ1bmN0aW9u
KHZhbHVlLCByYW5nZSkgeworICAgIHJldHVybiB2YWx1ZSAvIHJhbmdlICogMiAtIDE7CisgIH0K
KworICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cENvbG9yUXVhZChnbCk7CisKKyAgLy8gZHJhdyBh
IHNtYWxsIGdyZWVuIHNxdWFyZSBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lci4KKyAgdmFyIGRldmlj
ZVgxID0gZ2wuZHJhd2luZ0J1ZmZlcldpZHRoIC0gNDsKKyAgdmFyIGRldmljZVgyID0gZ2wuZHJh
d2luZ0J1ZmZlcldpZHRoOworICB2YXIgZGV2aWNlWTEgPSBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0
IC0gNDsKKyAgdmFyIGRldmljZVkyID0gZ2wuZHJhd2luZ0J1ZmZlckhlaWdodDsKKworICB2YXIg
Y2xpcFgxID0gZGV2aWNlVG9DbGlwU3BhY2UoZGV2aWNlWDEsIGdsLmRyYXdpbmdCdWZmZXJXaWR0
aCk7CisgIHZhciBjbGlwWDIgPSBkZXZpY2VUb0NsaXBTcGFjZShkZXZpY2VYMiwgZ2wuZHJhd2lu
Z0J1ZmZlcldpZHRoKTsKKyAgdmFyIGNsaXBZMSA9IGRldmljZVRvQ2xpcFNwYWNlKGRldmljZVkx
LCBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0KTsKKyAgdmFyIGNsaXBZMiA9IGRldmljZVRvQ2xpcFNw
YWNlKGRldmljZVkyLCBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0KTsKKworICB2YXIgdmVydGV4T2Jq
ZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVS
LCB2ZXJ0ZXhPYmplY3QpOworICBnbC5idWZmZXJEYXRhKAorICAgICAgZ2wuQVJSQVlfQlVGRkVS
LAorICAgICAgbmV3IEZsb2F0MzJBcnJheSgKKyAgICAgICAgWyBjbGlwWDIsIGNsaXBZMiwKKyAg
ICAgICAgICBjbGlwWDEsIGNsaXBZMiwKKyAgICAgICAgICBjbGlwWDEsIGNsaXBZMSwKKyAgICAg
ICAgICBjbGlwWDIsIGNsaXBZMiwKKyAgICAgICAgICBjbGlwWDEsIGNsaXBZMSwKKyAgICAgICAg
ICBjbGlwWDIsIGNsaXBZMV0pLAorICAgICAgZ2wuU1RBVElDX0RSQVcpOworICBnbC5lbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAyLCBnbC5G
TE9BVCwgZmFsc2UsIDAsIDApOworCisgIHZhciBncmVlbiA9IFswLCAyNTUsIDAsIDI1NV07Cisg
IHZhciBibGFjayA9IFswLCAwLCAwLCAwXTsKKyAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAwKTsK
KyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CisgIHd0dS5kcmF3VUJ5dGVDb2xvclF1
YWQoZ2wsIFswLCAyNTUsIDAsIDI1NV0pOworCisgIHZhciBzcXVhcmVXaWR0aCA9IGRldmljZVgy
IC0gZGV2aWNlWDE7CisgIHZhciBzcXVhcmVIZWlnaHQgPSBkZXZpY2VZMiAtIGRldmljZVkxOwor
CisgIC8vIGNoZWNrIHRoZSBzcXVhcmUuCisgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIGRldmlj
ZVgxLCBkZXZpY2VZMSwgc3F1YXJlV2lkdGgsIHNxdWFyZUhlaWdodCwgZ3JlZW4sICJzaG91bGQg
YmUgZ3JlZW4iKTsKKyAgLy8gY2hlY2sgb3V0c2lkZSB0aGUgc3F1YXJlLgorICB3dHUuY2hlY2tD
YW52YXNSZWN0KGdsLCAwLCAwLCBnbC5kcmF3aW5nQnVmZmVyV2lkdGgsIGdsLmRyYXdpbmdCdWZm
ZXJIZWlnaHQgLSBzcXVhcmVIZWlnaHQsIGJsYWNrLCAic2hvdWxkIGJlIGJsYWNrIik7CisgIHd0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgLSBzcXVhcmVI
ZWlnaHQsIGdsLmRyYXdpbmdCdWZmZXJXaWR0aCAtIHNxdWFyZVdpZHRoLCBzcXVhcmVIZWlnaHQs
IGJsYWNrLCAic2hvdWxkIGJlIGJsYWNrIik7Cit9CiAKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGls
czsKLXZhciBjYW52YXM7Ci12YXIgZ2w7Ci12YXIgbWF4U2l6ZTsKIAogZnVuY3Rpb24gdGVzdChk
ZXNpcmVkV2lkdGgsIGRlc2lyZWRIZWlnaHQpIHsKLSAgdmFyIGVycjsKLSAgY2FudmFzID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gIGlmICh0eXBlb2YgZGVzaXJlZFdpZHRo
ICE9ICJ1bmRlZmluZWQiKQotICAgIGNhbnZhcy53aWR0aCA9IGRlc2lyZWRXaWR0aDsKLSAgaWYg
KHR5cGVvZiBkZXNpcmVkSGVpZ2h0ICE9ICJ1bmRlZmluZWQiKQotICAgIGNhbnZhcy5oZWlnaHQg
PSBkZXNpcmVkSGVpZ2h0OwotCi0gIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwor
ICBkZWJ1ZygiIik7CisgIGRlYnVnKCJDaGVja2luZyBkcmF3aW5nQnVmZmVyV2lkdGgvZHJhd2lu
Z0J1ZmZlckhlaWdodCIpOworCisgIC8vIE1ha2UgYSBmcmVzaCBjYW52YXMuCisgIHZhciBjYW52
YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgY2FudmFzLndpZHRoID0g
ZGVzaXJlZFdpZHRoOworICBjYW52YXMuaGVpZ2h0ID0gZGVzaXJlZEhlaWdodDsKKworICAvLyBU
aGlzICdnbCcgbXVzdCBiZSBnbG9iYWwgZm9yIHNob3VsZEJlIHRvIHdvcmsuCisgIGdsID0gd3R1
LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIHthbnRpYWxpYXM6IGZhbHNlfSk7CiAgIGlmICghZ2wp
IHsKICAgICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7CiAgIH0gZWxzZSB7
CiAgICAgdGVzdFBhc3NlZCgiY29udGV4dCBleGlzdHMiKTsKLSAgICBkZWJ1ZygiQ2hlY2tpbmcg
ZHJhd2luZ0J1ZmZlcldpZHRoL2RyYXdpbmdCdWZmZXJIZWlnaHQiKTsKLQotICAgIC8vIENoZWNr
IHRoYXQgYSBjYW52YXMgd2l0aCBubyB3aWR0aCBvciBoZWlnaHQgaXMgMzAweDE1MCBwaXhlbHMK
LSAgICBpZiAoZGVzaXJlZFdpZHRoID09PSAidW5kZWZpbmVkIikKLSAgICAgIHNob3VsZEJlKCdn
bC5kcmF3aW5nQnVmZmVyV2lkdGgnLCAnY2FudmFzLndpZHRoJyk7Ci0gICAgaWYgKGRlc2lyZWRI
ZWlnaHQgPT09ICJ1bmRlZmluZWQiKQotICAgICAgc2hvdWxkQmUoJ2dsLmRyYXdpbmdCdWZmZXJI
ZWlnaHQnLCAnY2FudmFzLmhlaWdodCcpOwotCi0gICAgLy8gQ2hlY2sgdGhhdCBjaGFuZ2luZyB0
aGUgY2FudmFzIHNpemUgdG8gc29tZXRoaW5nIHRvbyBsYXJnZSBmYWxscyBiYWNrIHRvIHJlYXNv
bmFibGUgdmFsdWVzLgotICAgIG1heFNpemUgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJRVdQ
T1JUX0RJTVMpOwotICAgIHNob3VsZEJlVHJ1ZSgnbWF4U2l6ZVswXSA+IDAnKTsKLSAgICBzaG91
bGRCZVRydWUoJ21heFNpemVbMV0gPiAwJyk7Ci0KLSAgICAvLyBkZWJ1ZygiTUFYX1ZJRVdQT1JU
X0RJTVMgPSAiICsgbWF4U2l6ZVswXSArICJ4IiArIG1heFNpemVbMV0pOwotICAgIGNhbnZhcy53
aWR0aCA9IG1heFNpemVbMF0gKiAyOwotICAgIGNhbnZhcy5oZWlnaHQgPSBtYXhTaXplWzFdICog
MjsKLSAgICBzaG91bGRCZVRydWUoJ2dsLmRyYXdpbmdCdWZmZXJXaWR0aCA+IDAnKTsKLSAgICBz
aG91bGRCZVRydWUoJ2dsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPiAwJyk7Ci0gICAgc2hvdWxkQmVU
cnVlKCdnbC5kcmF3aW5nQnVmZmVyV2lkdGggPD0gbWF4U2l6ZVswXScpOwotICAgIHNob3VsZEJl
VHJ1ZSgnZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCA8PSBtYXhTaXplWzFdJyk7CisKKyAgICAvLyBW
ZXJpZnkgdGhlc2Ugc3RhdHMgZGlkbid0IGNoYW5nZSBzaW5jZSB0aGV5IGNvbWUgZnJvbSBhIGRp
ZmZlcmVudAorICAgIC8vIGNvbnRleHQuCisgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFtZXRlcihn
bC5NQVhfVklFV1BPUlRfRElNUylbMF0nLCAnbWF4U2l6ZVswXScpOworICAgIHNob3VsZEJlKCdn
bC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJRVdQT1JUX0RJTVMpWzFdJywgJ21heFNpemVbMV0nKTsK
KworICAgIC8vIGNoZWNrIHRoZSBpbml0aWFsIHZpZXdwb3J0IG1hdGNoZXMgdGhlIGRyYXdpbmdC
dWZmZXJXaWR0aCBhbmQgZHJhd2luZ0J1ZmZlckhlaWdodAorICAgIHNob3VsZEJlKCdnbC5nZXRQ
YXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzBdJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UGFy
YW1ldGVyKGdsLlZJRVdQT1JUKVsxXScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFt
ZXRlcihnbC5WSUVXUE9SVClbMl0nLCAnZ2wuZHJhd2luZ0J1ZmZlcldpZHRoJyk7CisgICAgc2hv
dWxkQmUoJ2dsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbM10nLCAnZ2wuZHJhd2luZ0J1ZmZl
ckhlaWdodCcpOworCisgICAgLy8gRHJhdyBhIHBpeGVsIGdyaWQgdXNpbmcgYSBzaGFkZXIgdGhh
dCBkcmF3cyBpbiBkZXZpY2UgY29vcmRpbmF0ZXMKKyAgICBjaGVja0dyaWQoZ2wpOworICAgIC8v
IERyYXcgYSBxdWFkIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyLgorICAgIGNoZWNrUXVhZChnbCk7
CisKKyAgICBzaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5OT19FUlJPUicpOworCisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0aW5nIHJlc2l6aW5nIGNhbnZhcyIpOworCisgICAg
b2xkVmlld3BvcnQgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpOworCisgICAgLy8gZmxp
cCB3aWR0aCBhbmQgaGVpZ2h0CisgICAgY2FudmFzLndpZHRoID0gZGVzaXJlZEhlaWdodDsKKyAg
ICBjYW52YXMuaGVpZ2h0ID0gZGVzaXJlZFdpZHRoOworCisgICAgLy8gVmVyaWZ5IHRoZSB2aWV3
cG9ydCBkaWRuJ3QgY2hhbmdlLgorICAgIHNob3VsZEJlKCdnbC5nZXRQYXJhbWV0ZXIoZ2wuVklF
V1BPUlQpWzBdJywgJ29sZFZpZXdwb3J0WzBdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFt
ZXRlcihnbC5WSUVXUE9SVClbMV0nLCAnb2xkVmlld3BvcnRbMV0nKTsKKyAgICBzaG91bGRCZSgn
Z2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVsyXScsICdvbGRWaWV3cG9ydFsyXScpOworICAg
IHNob3VsZEJlKCdnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzNdJywgJ29sZFZpZXdwb3J0
WzNdJyk7CisKKyAgICAvLyBmaXggdGhlIHZpZXdwb3J0CisgICAgZ2wudmlld3BvcnQoMCwgMCwg
Z2wuZHJhd2luZ0J1ZmZlcldpZHRoLCBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0KTsKKworICAgIC8v
IERyYXcgYSBwaXhlbCBncmlkIHVzaW5nIGEgc2hhZGVyIHRoYXQgZHJhd3MgaW4gZGV2aWNlIGNv
b3JkaW5hdGVzCisgICAgY2hlY2tHcmlkKGdsKTsKKworICAgIC8vIERyYXcgYSBxdWFkIGluIHRo
ZSB0b3AgcmlnaHQgY29ybmVyLgorICAgIGNoZWNrUXVhZChnbCk7CisgICAgc2hvdWxkQmUoJ2ds
LmdldEVycm9yKCknLCAnZ2wuTk9fRVJST1InKTsKICAgfQotICBkZWJ1ZygiIikKIH0KIAotdGVz
dCgpCi10ZXN0KG1heFNpemVbMF0rMTAwLCAxMDApCi10ZXN0KDEwMCwgbWF4U2l6ZVsxXSsxMDAp
Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgbWF4U2l6ZSA9IGdldE1heFZpZXdwb3J0
RGltZW5zaW9ucygpOworCitzaG91bGRCZVRydWUoJ21heFNpemVbMF0gPiAwJyk7CitzaG91bGRC
ZVRydWUoJ21heFNpemVbMV0gPiAwJyk7CisKKy8vIHRlc3QgYSBzbWFsbCBzaXplIHRvIG1ha2Ug
c3VyZSBpdCB3b3JrcyBhdCBhbGwuCit0ZXN0KDE2LCAzMik7CisKKy8vIE1ha2UgYSBjYW52YXMg
c2xpZ2h0bHkgbGFyZ2VyIHRoYW4gdGhlIG1heCBzaXplIFdlYkdMIGNhbiBoYW5kbGUuCisvLyBG
cm9tIHNlY3Rpb24gMi4yIG9mIHRoZSBzcGVjIHRoZSBXZWJHTCBpbXBsZW1lbnRhdGlvbiBzaG91
bGQgYWxsb3cgdGhpcyB0byB3b3JrLgorCisvLyB0ZXN0IGEgc2l6ZSBsYXJnZXIgdGhhbiBNQVhf
VklFV1BPUlRfRElNUyBpbiBib3RoIGRpbWVuc2lvbnMKK3Rlc3QobWF4U2l6ZVswXSArIDMyLCA4
KTsKIAorZGVidWcoIiIpCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMKaW5kZXggNGNlYmM5NTcwOGViNGNjN2U5OTYwYTA1YTE0NmUwN2Q3M2I3YmYzYS4uZTYwMDY2
NjdkOGMzNmFhMTE5YjAzYjcwNzA3MjJmYTMwNWM4NDAyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMKQEAgLTEwOCw2ICsxMDgsMjcgQEAgdmFyIHNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlciA9
IFsKICAgJ30nXS5qb2luKCdcbicpOwogCiAvKioKKyAqIEEgdmVydGV4IHNoYWRlciBmb3IgYSBz
aW5nbGUgdGV4dHVyZS4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVDb2xvclZl
cnRleFNoYWRlciA9IFsKKyAgJ2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsnLAorICAndm9pZCBt
YWluKCkgeycsCisgICcgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKKyAgJ30nXS5qb2lu
KCdcbicpOworCisvKioKKyAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciBhIGNvbG9yLgorICogQHR5
cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIgPSBbCisgICdw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsnLAorICAndW5pZm9ybSB2ZWM0IHVfY29sb3I7JywKKyAg
J3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdV9jb2xvcjsnLAorICAn
fSddLmpvaW4oJ1xuJyk7CisKKy8qKgogICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0dXJlIHZlcnRl
eCBzaGFkZXIuCiAgKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQg
dG8gdXNlLgogICogQHJldHVybiB7IVdlYkdMU2hhZGVyfQpAQCAtMjU5LDYgKzI4MCwyMyBAQCB2
YXIgc2V0dXBUZXh0dXJlZFF1YWQgPSBmdW5jdGlvbigKIH07CiAKIC8qKgorICogQ3JlYXRlcyBh
IHByb2dyYW0gYW5kIGJ1ZmZlcnMgZm9yIHJlbmRlcmluZyBhIGNvbG9yIHF1YWQuCisgKiBAcGFy
YW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFt
IHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBv
c2l0aW9uLgorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0KKyAqLwordmFyIHNldHVwQ29sb3JR
dWFkID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uKSB7CisgIG9wdF9wb3NpdGlv
bkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgdmFyIHByb2dyYW0gPSB3
dHUuc2V0dXBQcm9ncmFtKAorICAgICAgZ2wsCisgICAgICBbc2ltcGxlQ29sb3JWZXJ0ZXhTaGFk
ZXIsIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXJdLAorICAgICAgWyd2UG9zaXRpb24nXSwKKyAg
ICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbl0pOworICBzZXR1cFVuaXRRdWFkKGdsLCBvcHRfcG9z
aXRpb25Mb2NhdGlvbik7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCiAgKiBDcmVhdGVz
IGEgdW5pdCBxdWFkIHdpdGggb25seSBwb3NpdGlvbnMgb2YgYSBnaXZlbiByZXoKICAqIEBwYXJh
bSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCiAgKiBAcGFyYW0g
e251bWJlcn0gZ3JpZFJleiBUaGUgcmVzb2x1dGlvbiBvZiB0aGUgbWVzaCBncmlkLgpAQCAtMzY1
LDYgKzQwMywzOSBAQCB2YXIgY3JlYXRlQ29sb3JlZFRleHR1cmUgPSBmdW5jdGlvbihnbCwgd2lk
dGgsIGhlaWdodCwgY29sb3IpIHsKICAgcmV0dXJuIHRleDsKIH07CiAKK3ZhciB1Ynl0ZVRvRmxv
YXQgPSBmdW5jdGlvbihjKSB7CisgIHJldHVybiBjIC8gMjU1OworfTsKKworLyoqCisgKiBEcmF3
cyBhIHByZXZpb3VzbHkgc2V0dXAgcXVhZCBpbiB0aGUgZ2l2ZW4gY29sb3IuCisgKiBAcGFyYW0g
eyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHsh
QXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBkcmF3IHdpdGguIEEgNAorICogICAg
ICAgIGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRv
CisgKiAgICAgICAgMjU1LgorICovCit2YXIgZHJhd1VCeXRlQ29sb3JRdWFkID0gZnVuY3Rpb24o
Z2wsIGNvbG9yKSB7CisgIHZhciBmbG9hdENvbG9yID0gW107CisgIGZvciAodmFyIGlpID0gMDsg
aWkgPCBjb2xvci5sZW5ndGg7ICsraWkpIHsKKyAgICBmbG9hdENvbG9yW2lpXSA9IHVieXRlVG9G
bG9hdChjb2xvcltpaV0pOworICB9CisgIGRyYXdGbG9hdENvbG9yUXVhZChnbCwgZmxvYXRDb2xv
cik7Cit9OworCisvKioKKyAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkIGluIHRoZSBn
aXZlbiBjb2xvci4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4
dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRv
IGRyYXcgd2l0aC4gQSA0CisgKiAgICAgICAgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1l
bnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KKyAqICAgICAgICAxLgorICovCit2YXIgZHJhd0Zsb2F0
Q29sb3JRdWFkID0gZnVuY3Rpb24oZ2wsIGNvbG9yKSB7CisgIHZhciBwcm9ncmFtID0gZ2wuZ2V0
UGFyYW1ldGVyKGdsLkNVUlJFTlRfUFJPR1JBTSk7CisgIHZhciBjb2xvckxvY2F0aW9uID0gZ2wu
Z2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ1X2NvbG9yIik7CisgIGdsLnVuaWZvcm00ZnYo
Y29sb3JMb2NhdGlvbiwgY29sb3IpOworICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwg
Nik7Cit9OworCiAvKioKICAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkLgogICogQHBh
cmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KQEAgLTEyMzAs
NiArMTMwMSw4IEBAIHJldHVybiB7CiAgIGNoZWNrQ2FudmFzUmVjdDogY2hlY2tDYW52YXNSZWN0
LAogICBjcmVhdGVDb2xvcmVkVGV4dHVyZTogY3JlYXRlQ29sb3JlZFRleHR1cmUsCiAgIGRyYXdR
dWFkOiBkcmF3UXVhZCwKKyAgZHJhd1VCeXRlQ29sb3JRdWFkOiBkcmF3VUJ5dGVDb2xvclF1YWQs
CisgIGRyYXdGbG9hdENvbG9yUXVhZDogZHJhd0Zsb2F0Q29sb3JRdWFkLAogICBlbmRzV2l0aDog
ZW5kc1dpdGgsCiAgIGdldEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzOiBnZXRFeHRlbnNpb25X
aXRoS25vd25QcmVmaXhlcywKICAgZ2V0RmlsZUxpc3RBc3luYzogZ2V0RmlsZUxpc3RBc3luYywK
QEAgLTEyNTUsNiArMTMyOCw3IEBAIHJldHVybiB7CiAgIGxvZzogbG9nLAogICBsb2dnaW5nT2Zm
OiBsb2dnaW5nT2ZmLAogICBlcnJvcjogZXJyb3IsCisgIHNldHVwQ29sb3JRdWFkOiBzZXR1cENv
bG9yUXVhZCwKICAgc2V0dXBQcm9ncmFtOiBzZXR1cFByb2dyYW0sCiAgIHNldHVwUXVhZDogc2V0
dXBRdWFkLAogICBzZXR1cFNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlcjogc2V0dXBTaW1wbGVU
ZXh0dXJlRnJhZ21lbnRTaGFkZXIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154841</attachid>
            <date>2012-07-26 22:08:43 -0700</date>
            <delta_ts>2012-07-27 00:32:52 -0700</delta_ts>
            <desc>Reworked patch</desc>
            <filename>bug-92375-20120727103203.patch</filename>
            <type>text/plain</type>
            <size>17065</size>
            <attacher name="Nayan Kumar K">nayankk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwODA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmNlZTM5MDY1OWIwZWE0NjZmZGJh
NGRiOTAyMGE5MDA3YzEzNTMwOS4uZTI3MzhkMjAwZGM4ODY1YzYyN2Y3ZmI0Njk4NGQzZGViMWZi
MjZkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA3LTI2ICBOYXlhbiBLdW1hciBLICA8
bmF5YW5ra0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBbGlnbiBjb250ZW50cyBv
ZiBkcmF3YnVmZmVyLXRlc3QuaHRtbCBsYXlvdXQgdGVzdCB3aXRoIHRoZSBvbmUgaW4gdGhlIFdl
YkdMIGNvbmZvcm1hbmNlIHN1aXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTIzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2RyYXdpbmdidWZmZXItdGVzdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2luZ2J1ZmZlci10ZXN0
Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanM6CisgICAgICAgIChXZWJHTFRlc3RVdGlscyk6CisKIDIwMTItMDctMjMgIE5heWFu
IEt1bWFyIEsgIDxuYXlhbmtrQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEluaXRp
YWwgc2l6ZSBvZiBjYW52YXMgY2FuIGJlIGxhcmdlciB0aGFuIE1BWF9WSUVXUE9SVF9ESU1TLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2luZ2J1ZmZlci10
ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RyYXdpbmdi
dWZmZXItdGVzdC1leHBlY3RlZC50eHQKaW5kZXggYmM3OTNjNjEyNmE3YzZlZjVjZWFlMTI0ODJj
ODY2NDZlZjMwMDAzYy4uYTRmYWQyY2RkNmJlYzZmOWJkNTMzNGI5Y2MzNzdlMTQzNWRmNTRkNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2luZ2J1ZmZlci10
ZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3
aW5nYnVmZmVyLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0yLDMzICsyLDY1IEBAIFRoaXMgdGVzdCBl
bnN1cmVzIFdlYkdMIGltcGxlbWVudGF0aW9ucyBjb3JyZWN0bHkgaW1wbGVtZW50IGRyYXdpbmdi
dWZmZXJXaWR0aC9ICiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAotCiBQQVNTIGNvbnRl
eHQgZXhpc3RzCi1DaGVja2luZyBkcmF3aW5nQnVmZmVyV2lkdGgvZHJhd2luZ0J1ZmZlckhlaWdo
dAorUEFTUyBnbC5kcmF3aW5nQnVmZmVyV2lkdGggaXMgZ2wuY2FudmFzLndpZHRoCitQQVNTIGds
LmRyYXdpbmdCdWZmZXJIZWlnaHQgaXMgZ2wuY2FudmFzLmhlaWdodAogUEFTUyBtYXhTaXplWzBd
ID4gMCBpcyB0cnVlCiBQQVNTIG1heFNpemVbMV0gPiAwIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2lu
Z0J1ZmZlcldpZHRoID4gMCBpcyB0cnVlCi1QQVNTIGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPiAw
IGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZlcldpZHRoIDw9IG1heFNpemVbMF0gaXMgdHJ1
ZQotUEFTUyBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0IDw9IG1heFNpemVbMV0gaXMgdHJ1ZQogCi1Q
QVNTIGNvbnRleHQgZXhpc3RzCiBDaGVja2luZyBkcmF3aW5nQnVmZmVyV2lkdGgvZHJhd2luZ0J1
ZmZlckhlaWdodAotUEFTUyBtYXhTaXplWzBdID4gMCBpcyB0cnVlCi1QQVNTIG1heFNpemVbMV0g
PiAwIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZlcldpZHRoID4gMCBpcyB0cnVlCi1QQVNT
IGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPiAwIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZl
cldpZHRoIDw9IG1heFNpemVbMF0gaXMgdHJ1ZQotUEFTUyBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0
IDw9IG1heFNpemVbMV0gaXMgdHJ1ZQotCiBQQVNTIGNvbnRleHQgZXhpc3RzCitQQVNTIGdsLmdl
dFBhcmFtZXRlcihnbC5NQVhfVklFV1BPUlRfRElNUylbMF0gaXMgbWF4U2l6ZVswXQorUEFTUyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJRVdQT1JUX0RJTVMpWzFdIGlzIG1heFNpemVbMV0KK1BB
U1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVswXSBpcyAwCitQQVNTIGdsLmdldFBhcmFt
ZXRlcihnbC5WSUVXUE9SVClbMV0gaXMgMAorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BP
UlQpWzJdIGlzIGdsLmRyYXdpbmdCdWZmZXJXaWR0aAorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wu
VklFV1BPUlQpWzNdIGlzIGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQKK1BBU1MgZ2wuZ2V0RXJyb3Io
KSBpcyBnbC5OT19FUlJPUgorUEFTUyBncmlkIHJlbmRlcmVkIGNvcnJlY3RseQorUEFTUyBzaG91
bGQgYmUgZ3JlZW4KK1BBU1Mgc2hvdWxkIGJlIGJsYWNrCitQQVNTIHNob3VsZCBiZSBibGFjawor
UEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCisKK1Rlc3RpbmcgcmVzaXppbmcgY2Fu
dmFzCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbMF0gaXMgb2xkVmlld3BvcnRb
MF0KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVsxXSBpcyBvbGRWaWV3cG9ydFsx
XQorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzJdIGlzIG9sZFZpZXdwb3J0WzJd
CitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbM10gaXMgb2xkVmlld3BvcnRbM10K
K1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBncmlkIHJlbmRlcmVkIGNv
cnJlY3RseQorUEFTUyBzaG91bGQgYmUgZ3JlZW4KK1BBU1Mgc2hvdWxkIGJlIGJsYWNrCitQQVNT
IHNob3VsZCBiZSBibGFjaworUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCisKIENo
ZWNraW5nIGRyYXdpbmdCdWZmZXJXaWR0aC9kcmF3aW5nQnVmZmVySGVpZ2h0Ci1QQVNTIG1heFNp
emVbMF0gPiAwIGlzIHRydWUKLVBBU1MgbWF4U2l6ZVsxXSA+IDAgaXMgdHJ1ZQotUEFTUyBnbC5k
cmF3aW5nQnVmZmVyV2lkdGggPiAwIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZlckhlaWdo
dCA+IDAgaXMgdHJ1ZQotUEFTUyBnbC5kcmF3aW5nQnVmZmVyV2lkdGggPD0gbWF4U2l6ZVswXSBp
cyB0cnVlCi1QQVNTIGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPD0gbWF4U2l6ZVsxXSBpcyB0cnVl
CitQQVNTIGNvbnRleHQgZXhpc3RzCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVklFV1BP
UlRfRElNUylbMF0gaXMgbWF4U2l6ZVswXQorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJ
RVdQT1JUX0RJTVMpWzFdIGlzIG1heFNpemVbMV0KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJ
RVdQT1JUKVswXSBpcyAwCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbMV0gaXMg
MAorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzJdIGlzIGdsLmRyYXdpbmdCdWZm
ZXJXaWR0aAorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzNdIGlzIGdsLmRyYXdp
bmdCdWZmZXJIZWlnaHQKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBn
cmlkIHJlbmRlcmVkIGNvcnJlY3RseQorUEFTUyBzaG91bGQgYmUgZ3JlZW4KK1BBU1Mgc2hvdWxk
IGJlIGJsYWNrCitQQVNTIHNob3VsZCBiZSBibGFjaworUEFTUyBnbC5nZXRFcnJvcigpIGlzIGds
Lk5PX0VSUk9SCisKK1Rlc3RpbmcgcmVzaXppbmcgY2FudmFzCitQQVNTIGdsLmdldFBhcmFtZXRl
cihnbC5WSUVXUE9SVClbMF0gaXMgb2xkVmlld3BvcnRbMF0KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVy
KGdsLlZJRVdQT1JUKVsxXSBpcyBvbGRWaWV3cG9ydFsxXQorUEFTUyBnbC5nZXRQYXJhbWV0ZXIo
Z2wuVklFV1BPUlQpWzJdIGlzIG9sZFZpZXdwb3J0WzJdCitQQVNTIGdsLmdldFBhcmFtZXRlcihn
bC5WSUVXUE9SVClbM10gaXMgb2xkVmlld3BvcnRbM10KK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBn
bC5OT19FUlJPUgorUEFTUyBncmlkIHJlbmRlcmVkIGNvcnJlY3RseQorUEFTUyBzaG91bGQgYmUg
Z3JlZW4KK1BBU1Mgc2hvdWxkIGJlIGJsYWNrCitQQVNTIHNob3VsZCBiZSBibGFjaworUEFTUyBn
bC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2lu
Z2J1ZmZlci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3aW5n
YnVmZmVyLXRlc3QuaHRtbAppbmRleCAzMDk5MjY0M2QyMDc1ZjFlNzYyM2IyYjE0ZmQyYmJhOGUw
M2ZlZTE0Li43NDlmODEwNjdjYjY5YmVhZGE1NGE3N2NkMzJiYjEzM2U5MGIwMGUzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3aW5nYnVmZmVyLXRlc3QuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3aW5nYnVmZmVyLXRlc3Qu
aHRtbApAQCAtMTAsNTcgKzEwLDIxMCBAQAogPGJvZHk+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgaWQ9InZzaGFkZXJHcmlk
IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOwor
dm9pZCBtYWluKCkKK3sKKyAgZ2xfUG9zaXRpb24gPSBhX3Bvc2l0aW9uOworfQorPC9zY3JpcHQ+
CisKKzxzY3JpcHQgaWQ9ImZzaGFkZXJHcmlkIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4K
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owordm9pZCBtYWluKCkKK3sKKyAgZmxvYXQgciA9IG1v
ZChnbF9GcmFnQ29vcmQueCwgMi4wKSA8IDEuMCA/IDAuMCA6IDEuMDsKKyAgZmxvYXQgZyA9IG1v
ZChnbF9GcmFnQ29vcmQueSwgMi4wKSA8IDEuMCA/IDAuMCA6IDEuMDsKKyAgZ2xfRnJhZ0NvbG9y
ID0gdmVjNChyLCBnLCAwLCAxKTsKK30KKzwvc2NyaXB0PgogPHNjcmlwdD4KIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgY29ycmVjdGx5IGltcGxl
bWVudCBkcmF3aW5nYnVmZmVyV2lkdGgvSGVpZ2h0LiIpOwogCi1kZWJ1ZygiIik7CitmdW5jdGlv
biBnZXRNYXhWaWV3cG9ydERpbWVuc2lvbnMoKSB7CisgIC8vIGNyZWF0ZSBhIGZyZXNoIGNhbnZh
cy4gVGhpcyBjYW52YXMgd2lsbCBiZSBkaXNjYXJkZWQKKyAgLy8gYWZ0ZXIgZXhpdGluZyB0aGlz
IGZ1bmN0aW9uLgorICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFz
Iik7CisgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIHthbnRpYWxpYXM6IGZhbHNl
fSk7CisgIGlmICghZ2wpIHsKKyAgICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0
Iik7CisgICAgcmV0dXJuIFswLCAwXTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJjb250
ZXh0IGV4aXN0cyIpOworCisgICAgLy8gRm9yIGEgZGVmYXVsdCBzaXplIGNhbnZhcyB0aGVzZSBz
aG91bGQgYmUgZXF1YWwuCisgICAgLy8gV2ViR0wgY29udGV4dHMgYXJlIG5vdCBhbGxvd2VkIHRv
IGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZHJhd2luZ0J1ZmZlcgorICAgIC8vIGZvciB0aGluZ3Mg
bGlrZSBoaS1yZXMgZGlzcGxheXMuCisgICAgc2hvdWxkQmUoJ2dsLmRyYXdpbmdCdWZmZXJXaWR0
aCcsICdnbC5jYW52YXMud2lkdGgnKTsKKyAgICBzaG91bGRCZSgnZ2wuZHJhd2luZ0J1ZmZlckhl
aWdodCcsICdnbC5jYW52YXMuaGVpZ2h0Jyk7CisgICAgcmV0dXJuIGdsLmdldFBhcmFtZXRlcihn
bC5NQVhfVklFV1BPUlRfRElNUyk7CisgIH0KK30KKworLy8gVGhpcyB1c2VzIGdsX0ZyYWdDb29y
ZCB0byBkcmF3IGEgZGV2aWNlIHBpeGVsIHJlbGF2ZW50IHBhdHRlcm4uCisvLyBJZiBkcmF3QnVm
ZmVyV2lkdGggb3IgZHJhd0J1ZmZlckhlaWdodCBhcmUgbm90IGluIGRldmljZSBwaXhlbHMKKy8v
IHRoaXMgdGVzdCBzaG91bGQgZmFpbC4KK2Z1bmN0aW9uIGNoZWNrR3JpZChnbCkgeworICB2YXIg
cHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlckdyaWQiLCAiZnNoYWRlckdy
aWQiXSwgWyJhX3Bvc2l0aW9uIl0pOworICB3dHUuc2V0dXBVbml0UXVhZChnbCk7CisgIGdsLnVz
ZVByb2dyYW0ocHJvZ3JhbSk7CisgIHNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VS
Uk9SJyk7CisKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKworICB2YXIgcGl4ZWxzID0gbmV3IFVpbnQ4
QXJyYXkoZ2wuZHJhd2luZ0J1ZmZlcldpZHRoICogZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCAqIDQp
OworICBnbC5yZWFkUGl4ZWxzKDAsIDAsIGdsLmRyYXdpbmdCdWZmZXJXaWR0aCwgZ2wuZHJhd2lu
Z0J1ZmZlckhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgcGl4ZWxzKTsKKworICB2
YXIgY29sb3JzID0gWworICAgIFsgeyBjb2xvcjogWzAsICAgMCwgMCwgMjU1XSwgbmFtZTogImJs
YWNrIiB9LCAgeyBjb2xvcjogWzI1NSwgICAwLCAwLCAyNTVdLCBuYW1lOiAicmVkIiAgICB9IF0s
CisgICAgWyB7IGNvbG9yOiBbMCwgMjU1LCAwLCAyNTVdLCBuYW1lOiAiZ3JlZW4iIH0sICB7IGNv
bG9yOiBbMjU1LCAyNTUsIDAsIDI1NV0sIG5hbWU6ICJ5ZWxsb3ciIH0gXSwKKyAgXTsKKworICBm
b3IgKHZhciB5eSA9IDA7IHl5IDwgZ2wuZHJhd2luZ0J1ZmZlckhlaWdodDsgKyt5eSkgeworICAg
IGZvciAodmFyIHh4ID0gMDsgeHggPCBnbC5kcmF3aW5nQnVmZmVyV2lkdGg7ICsreHgpIHsKKyAg
ICAgIHZhciBpbmZvID0gY29sb3JzW3l5ICUgMl1beHggJSAyXTsKKyAgICAgIHZhciBjb2xvciA9
IGluZm8uY29sb3I7CisgICAgICB2YXIgb2Zmc2V0ID0gKHl5ICogZ2wuZHJhd2luZ0J1ZmZlcldp
ZHRoICsgeHgpICogNDsKKyAgICAgIGZvciAodmFyIGpqID0gMDsgamogPCA0OyArK2pqKSB7Cisg
ICAgICAgIGlmIChwaXhlbHNbb2Zmc2V0ICsgampdICE9IGNvbG9yW2pqXSkgeworICAgICAgICAg
IHZhciBhY3R1YWwgPSBbcGl4ZWxzW29mZnNldF0sIHBpeGVsc1tvZmZzZXQgKyAxXSwgcGl4ZWxz
W29mZnNldCArIDJdLCBwaXhlbHNbb2Zmc2V0ICsgM11dOworICAgICAgICAgIHRlc3RGYWlsZWQo
ImF0ICIgKyB4eCArICIsICIgKyB5eSArICIgZXhwZWN0ZWQgIiArIGNvbG9yICsgIigiICsgaW5m
by5uYW1lICsgIikgd2FzICIgKyBhY3R1YWwpOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgfQorICAgIH0KKyAgfQorICB0ZXN0UGFzc2VkKCJncmlkIHJlbmRlcmVkIGNvcnJl
Y3RseSIpOworfQorCisvLyBUaGlzIHBhc3NlcyBkZXZpY2UgY29vcmRpbmF0ZSB2ZXJ0aWNlcyBp
biB0byBtYWtlIHN1cmUgZ2wudmlld3BvcnQgaXMgbm90IGJlaW5nIG11Y2tlZCB3aXRoLgorZnVu
Y3Rpb24gY2hlY2tRdWFkKGdsKSB7CisgIHZhciBkZXZpY2VUb0NsaXBTcGFjZSA9IGZ1bmN0aW9u
KHZhbHVlLCByYW5nZSkgeworICAgIHJldHVybiB2YWx1ZSAvIHJhbmdlICogMiAtIDE7CisgIH0K
KworICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cENvbG9yUXVhZChnbCk7CisKKyAgLy8gZHJhdyBh
IHNtYWxsIGdyZWVuIHNxdWFyZSBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lci4KKyAgdmFyIGRldmlj
ZVgxID0gZ2wuZHJhd2luZ0J1ZmZlcldpZHRoIC0gNDsKKyAgdmFyIGRldmljZVgyID0gZ2wuZHJh
d2luZ0J1ZmZlcldpZHRoOworICB2YXIgZGV2aWNlWTEgPSBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0
IC0gNDsKKyAgdmFyIGRldmljZVkyID0gZ2wuZHJhd2luZ0J1ZmZlckhlaWdodDsKKworICB2YXIg
Y2xpcFgxID0gZGV2aWNlVG9DbGlwU3BhY2UoZGV2aWNlWDEsIGdsLmRyYXdpbmdCdWZmZXJXaWR0
aCk7CisgIHZhciBjbGlwWDIgPSBkZXZpY2VUb0NsaXBTcGFjZShkZXZpY2VYMiwgZ2wuZHJhd2lu
Z0J1ZmZlcldpZHRoKTsKKyAgdmFyIGNsaXBZMSA9IGRldmljZVRvQ2xpcFNwYWNlKGRldmljZVkx
LCBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0KTsKKyAgdmFyIGNsaXBZMiA9IGRldmljZVRvQ2xpcFNw
YWNlKGRldmljZVkyLCBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0KTsKKworICB2YXIgdmVydGV4T2Jq
ZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVS
LCB2ZXJ0ZXhPYmplY3QpOworICBnbC5idWZmZXJEYXRhKAorICAgICAgZ2wuQVJSQVlfQlVGRkVS
LAorICAgICAgbmV3IEZsb2F0MzJBcnJheSgKKyAgICAgICAgWyBjbGlwWDIsIGNsaXBZMiwKKyAg
ICAgICAgICBjbGlwWDEsIGNsaXBZMiwKKyAgICAgICAgICBjbGlwWDEsIGNsaXBZMSwKKyAgICAg
ICAgICBjbGlwWDIsIGNsaXBZMiwKKyAgICAgICAgICBjbGlwWDEsIGNsaXBZMSwKKyAgICAgICAg
ICBjbGlwWDIsIGNsaXBZMV0pLAorICAgICAgZ2wuU1RBVElDX0RSQVcpOworICBnbC5lbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAyLCBnbC5G
TE9BVCwgZmFsc2UsIDAsIDApOworCisgIHZhciBncmVlbiA9IFswLCAyNTUsIDAsIDI1NV07Cisg
IHZhciBibGFjayA9IFswLCAwLCAwLCAwXTsKKyAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAwKTsK
KyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CisgIHd0dS5kcmF3VUJ5dGVDb2xvclF1
YWQoZ2wsIFswLCAyNTUsIDAsIDI1NV0pOworCisgIHZhciBzcXVhcmVXaWR0aCA9IGRldmljZVgy
IC0gZGV2aWNlWDE7CisgIHZhciBzcXVhcmVIZWlnaHQgPSBkZXZpY2VZMiAtIGRldmljZVkxOwor
CisgIC8vIGNoZWNrIHRoZSBzcXVhcmUuCisgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIGRldmlj
ZVgxLCBkZXZpY2VZMSwgc3F1YXJlV2lkdGgsIHNxdWFyZUhlaWdodCwgZ3JlZW4sICJzaG91bGQg
YmUgZ3JlZW4iKTsKKyAgLy8gY2hlY2sgb3V0c2lkZSB0aGUgc3F1YXJlLgorICB3dHUuY2hlY2tD
YW52YXNSZWN0KGdsLCAwLCAwLCBnbC5kcmF3aW5nQnVmZmVyV2lkdGgsIGdsLmRyYXdpbmdCdWZm
ZXJIZWlnaHQgLSBzcXVhcmVIZWlnaHQsIGJsYWNrLCAic2hvdWxkIGJlIGJsYWNrIik7CisgIHd0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgLSBzcXVhcmVI
ZWlnaHQsIGdsLmRyYXdpbmdCdWZmZXJXaWR0aCAtIHNxdWFyZVdpZHRoLCBzcXVhcmVIZWlnaHQs
IGJsYWNrLCAic2hvdWxkIGJlIGJsYWNrIik7Cit9CiAKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGls
czsKLXZhciBjYW52YXM7Ci12YXIgZ2w7Ci12YXIgbWF4U2l6ZTsKIAogZnVuY3Rpb24gdGVzdChk
ZXNpcmVkV2lkdGgsIGRlc2lyZWRIZWlnaHQpIHsKLSAgdmFyIGVycjsKLSAgY2FudmFzID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gIGlmICh0eXBlb2YgZGVzaXJlZFdpZHRo
ICE9ICJ1bmRlZmluZWQiKQotICAgIGNhbnZhcy53aWR0aCA9IGRlc2lyZWRXaWR0aDsKLSAgaWYg
KHR5cGVvZiBkZXNpcmVkSGVpZ2h0ICE9ICJ1bmRlZmluZWQiKQotICAgIGNhbnZhcy5oZWlnaHQg
PSBkZXNpcmVkSGVpZ2h0OwotCi0gIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwor
ICBkZWJ1ZygiIik7CisgIGRlYnVnKCJDaGVja2luZyBkcmF3aW5nQnVmZmVyV2lkdGgvZHJhd2lu
Z0J1ZmZlckhlaWdodCIpOworCisgIC8vIE1ha2UgYSBmcmVzaCBjYW52YXMuCisgIHZhciBjYW52
YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgY2FudmFzLndpZHRoID0g
ZGVzaXJlZFdpZHRoOworICBjYW52YXMuaGVpZ2h0ID0gZGVzaXJlZEhlaWdodDsKKworICAvLyBU
aGlzICdnbCcgbXVzdCBiZSBnbG9iYWwgZm9yIHNob3VsZEJlIHRvIHdvcmsuCisgIGdsID0gd3R1
LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIHthbnRpYWxpYXM6IGZhbHNlfSk7CiAgIGlmICghZ2wp
IHsKICAgICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7CiAgIH0gZWxzZSB7
CiAgICAgdGVzdFBhc3NlZCgiY29udGV4dCBleGlzdHMiKTsKLSAgICBkZWJ1ZygiQ2hlY2tpbmcg
ZHJhd2luZ0J1ZmZlcldpZHRoL2RyYXdpbmdCdWZmZXJIZWlnaHQiKTsKLQotICAgIC8vIENoZWNr
IHRoYXQgYSBjYW52YXMgd2l0aCBubyB3aWR0aCBvciBoZWlnaHQgaXMgMzAweDE1MCBwaXhlbHMK
LSAgICBpZiAoZGVzaXJlZFdpZHRoID09PSAidW5kZWZpbmVkIikKLSAgICAgIHNob3VsZEJlKCdn
bC5kcmF3aW5nQnVmZmVyV2lkdGgnLCAnY2FudmFzLndpZHRoJyk7Ci0gICAgaWYgKGRlc2lyZWRI
ZWlnaHQgPT09ICJ1bmRlZmluZWQiKQotICAgICAgc2hvdWxkQmUoJ2dsLmRyYXdpbmdCdWZmZXJI
ZWlnaHQnLCAnY2FudmFzLmhlaWdodCcpOwotCi0gICAgLy8gQ2hlY2sgdGhhdCBjaGFuZ2luZyB0
aGUgY2FudmFzIHNpemUgdG8gc29tZXRoaW5nIHRvbyBsYXJnZSBmYWxscyBiYWNrIHRvIHJlYXNv
bmFibGUgdmFsdWVzLgotICAgIG1heFNpemUgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJRVdQ
T1JUX0RJTVMpOwotICAgIHNob3VsZEJlVHJ1ZSgnbWF4U2l6ZVswXSA+IDAnKTsKLSAgICBzaG91
bGRCZVRydWUoJ21heFNpemVbMV0gPiAwJyk7Ci0KLSAgICAvLyBkZWJ1ZygiTUFYX1ZJRVdQT1JU
X0RJTVMgPSAiICsgbWF4U2l6ZVswXSArICJ4IiArIG1heFNpemVbMV0pOwotICAgIGNhbnZhcy53
aWR0aCA9IG1heFNpemVbMF0gKiAyOwotICAgIGNhbnZhcy5oZWlnaHQgPSBtYXhTaXplWzFdICog
MjsKLSAgICBzaG91bGRCZVRydWUoJ2dsLmRyYXdpbmdCdWZmZXJXaWR0aCA+IDAnKTsKLSAgICBz
aG91bGRCZVRydWUoJ2dsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPiAwJyk7Ci0gICAgc2hvdWxkQmVU
cnVlKCdnbC5kcmF3aW5nQnVmZmVyV2lkdGggPD0gbWF4U2l6ZVswXScpOwotICAgIHNob3VsZEJl
VHJ1ZSgnZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCA8PSBtYXhTaXplWzFdJyk7CisKKyAgICAvLyBW
ZXJpZnkgdGhlc2Ugc3RhdHMgZGlkbid0IGNoYW5nZSBzaW5jZSB0aGV5IGNvbWUgZnJvbSBhIGRp
ZmZlcmVudAorICAgIC8vIGNvbnRleHQuCisgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFtZXRlcihn
bC5NQVhfVklFV1BPUlRfRElNUylbMF0nLCAnbWF4U2l6ZVswXScpOworICAgIHNob3VsZEJlKCdn
bC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJRVdQT1JUX0RJTVMpWzFdJywgJ21heFNpemVbMV0nKTsK
KworICAgIC8vIGNoZWNrIHRoZSBpbml0aWFsIHZpZXdwb3J0IG1hdGNoZXMgdGhlIGRyYXdpbmdC
dWZmZXJXaWR0aCBhbmQgZHJhd2luZ0J1ZmZlckhlaWdodAorICAgIHNob3VsZEJlKCdnbC5nZXRQ
YXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzBdJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UGFy
YW1ldGVyKGdsLlZJRVdQT1JUKVsxXScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFt
ZXRlcihnbC5WSUVXUE9SVClbMl0nLCAnZ2wuZHJhd2luZ0J1ZmZlcldpZHRoJyk7CisgICAgc2hv
dWxkQmUoJ2dsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbM10nLCAnZ2wuZHJhd2luZ0J1ZmZl
ckhlaWdodCcpOworCisgICAgLy8gRHJhdyBhIHBpeGVsIGdyaWQgdXNpbmcgYSBzaGFkZXIgdGhh
dCBkcmF3cyBpbiBkZXZpY2UgY29vcmRpbmF0ZXMKKyAgICBjaGVja0dyaWQoZ2wpOworICAgIC8v
IERyYXcgYSBxdWFkIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyLgorICAgIGNoZWNrUXVhZChnbCk7
CisKKyAgICBzaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5OT19FUlJPUicpOworCisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0aW5nIHJlc2l6aW5nIGNhbnZhcyIpOworCisgICAg
b2xkVmlld3BvcnQgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpOworCisgICAgLy8gZmxp
cCB3aWR0aCBhbmQgaGVpZ2h0CisgICAgY2FudmFzLndpZHRoID0gZGVzaXJlZEhlaWdodDsKKyAg
ICBjYW52YXMuaGVpZ2h0ID0gZGVzaXJlZFdpZHRoOworCisgICAgLy8gVmVyaWZ5IHRoZSB2aWV3
cG9ydCBkaWRuJ3QgY2hhbmdlLgorICAgIHNob3VsZEJlKCdnbC5nZXRQYXJhbWV0ZXIoZ2wuVklF
V1BPUlQpWzBdJywgJ29sZFZpZXdwb3J0WzBdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFt
ZXRlcihnbC5WSUVXUE9SVClbMV0nLCAnb2xkVmlld3BvcnRbMV0nKTsKKyAgICBzaG91bGRCZSgn
Z2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVsyXScsICdvbGRWaWV3cG9ydFsyXScpOworICAg
IHNob3VsZEJlKCdnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzNdJywgJ29sZFZpZXdwb3J0
WzNdJyk7CisKKyAgICAvLyBmaXggdGhlIHZpZXdwb3J0CisgICAgZ2wudmlld3BvcnQoMCwgMCwg
Z2wuZHJhd2luZ0J1ZmZlcldpZHRoLCBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0KTsKKworICAgIC8v
IERyYXcgYSBwaXhlbCBncmlkIHVzaW5nIGEgc2hhZGVyIHRoYXQgZHJhd3MgaW4gZGV2aWNlIGNv
b3JkaW5hdGVzCisgICAgY2hlY2tHcmlkKGdsKTsKKworICAgIC8vIERyYXcgYSBxdWFkIGluIHRo
ZSB0b3AgcmlnaHQgY29ybmVyLgorICAgIGNoZWNrUXVhZChnbCk7CisgICAgc2hvdWxkQmUoJ2ds
LmdldEVycm9yKCknLCAnZ2wuTk9fRVJST1InKTsKICAgfQotICBkZWJ1ZygiIikKIH0KIAotdGVz
dCgpCi10ZXN0KG1heFNpemVbMF0rMTAwLCAxMDApCi10ZXN0KDEwMCwgbWF4U2l6ZVsxXSsxMDAp
Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgbWF4U2l6ZSA9IGdldE1heFZpZXdwb3J0
RGltZW5zaW9ucygpOworCitzaG91bGRCZVRydWUoJ21heFNpemVbMF0gPiAwJyk7CitzaG91bGRC
ZVRydWUoJ21heFNpemVbMV0gPiAwJyk7CisKKy8vIHRlc3QgYSBzbWFsbCBzaXplIHRvIG1ha2Ug
c3VyZSBpdCB3b3JrcyBhdCBhbGwuCit0ZXN0KDE2LCAzMik7CisKKy8vIE1ha2UgYSBjYW52YXMg
c2xpZ2h0bHkgbGFyZ2VyIHRoYW4gdGhlIG1heCBzaXplIFdlYkdMIGNhbiBoYW5kbGUuCisvLyBG
cm9tIHNlY3Rpb24gMi4yIG9mIHRoZSBzcGVjIHRoZSBXZWJHTCBpbXBsZW1lbnRhdGlvbiBzaG91
bGQgYWxsb3cgdGhpcyB0byB3b3JrLgorCisvLyB0ZXN0IGEgc2l6ZSBsYXJnZXIgdGhhbiBNQVhf
VklFV1BPUlRfRElNUyBpbiBib3RoIGRpbWVuc2lvbnMKK3Rlc3QobWF4U2l6ZVswXSArIDMyLCA4
KTsKIAorZGVidWcoIiIpCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMKaW5kZXggNGNlYmM5NTcwOGViNGNjN2U5OTYwYTA1YTE0NmUwN2Q3M2I3YmYzYS4uZTYwMDY2
NjdkOGMzNmFhMTE5YjAzYjcwNzA3MjJmYTMwNWM4NDAyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMKQEAgLTEwOCw2ICsxMDgsMjcgQEAgdmFyIHNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlciA9
IFsKICAgJ30nXS5qb2luKCdcbicpOwogCiAvKioKKyAqIEEgdmVydGV4IHNoYWRlciBmb3IgYSBz
aW5nbGUgdGV4dHVyZS4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVDb2xvclZl
cnRleFNoYWRlciA9IFsKKyAgJ2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsnLAorICAndm9pZCBt
YWluKCkgeycsCisgICcgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKKyAgJ30nXS5qb2lu
KCdcbicpOworCisvKioKKyAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciBhIGNvbG9yLgorICogQHR5
cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIgPSBbCisgICdw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsnLAorICAndW5pZm9ybSB2ZWM0IHVfY29sb3I7JywKKyAg
J3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdV9jb2xvcjsnLAorICAn
fSddLmpvaW4oJ1xuJyk7CisKKy8qKgogICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0dXJlIHZlcnRl
eCBzaGFkZXIuCiAgKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQg
dG8gdXNlLgogICogQHJldHVybiB7IVdlYkdMU2hhZGVyfQpAQCAtMjU5LDYgKzI4MCwyMyBAQCB2
YXIgc2V0dXBUZXh0dXJlZFF1YWQgPSBmdW5jdGlvbigKIH07CiAKIC8qKgorICogQ3JlYXRlcyBh
IHByb2dyYW0gYW5kIGJ1ZmZlcnMgZm9yIHJlbmRlcmluZyBhIGNvbG9yIHF1YWQuCisgKiBAcGFy
YW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFt
IHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBv
c2l0aW9uLgorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0KKyAqLwordmFyIHNldHVwQ29sb3JR
dWFkID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uKSB7CisgIG9wdF9wb3NpdGlv
bkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgdmFyIHByb2dyYW0gPSB3
dHUuc2V0dXBQcm9ncmFtKAorICAgICAgZ2wsCisgICAgICBbc2ltcGxlQ29sb3JWZXJ0ZXhTaGFk
ZXIsIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXJdLAorICAgICAgWyd2UG9zaXRpb24nXSwKKyAg
ICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbl0pOworICBzZXR1cFVuaXRRdWFkKGdsLCBvcHRfcG9z
aXRpb25Mb2NhdGlvbik7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCiAgKiBDcmVhdGVz
IGEgdW5pdCBxdWFkIHdpdGggb25seSBwb3NpdGlvbnMgb2YgYSBnaXZlbiByZXoKICAqIEBwYXJh
bSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCiAgKiBAcGFyYW0g
e251bWJlcn0gZ3JpZFJleiBUaGUgcmVzb2x1dGlvbiBvZiB0aGUgbWVzaCBncmlkLgpAQCAtMzY1
LDYgKzQwMywzOSBAQCB2YXIgY3JlYXRlQ29sb3JlZFRleHR1cmUgPSBmdW5jdGlvbihnbCwgd2lk
dGgsIGhlaWdodCwgY29sb3IpIHsKICAgcmV0dXJuIHRleDsKIH07CiAKK3ZhciB1Ynl0ZVRvRmxv
YXQgPSBmdW5jdGlvbihjKSB7CisgIHJldHVybiBjIC8gMjU1OworfTsKKworLyoqCisgKiBEcmF3
cyBhIHByZXZpb3VzbHkgc2V0dXAgcXVhZCBpbiB0aGUgZ2l2ZW4gY29sb3IuCisgKiBAcGFyYW0g
eyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHsh
QXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBkcmF3IHdpdGguIEEgNAorICogICAg
ICAgIGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRv
CisgKiAgICAgICAgMjU1LgorICovCit2YXIgZHJhd1VCeXRlQ29sb3JRdWFkID0gZnVuY3Rpb24o
Z2wsIGNvbG9yKSB7CisgIHZhciBmbG9hdENvbG9yID0gW107CisgIGZvciAodmFyIGlpID0gMDsg
aWkgPCBjb2xvci5sZW5ndGg7ICsraWkpIHsKKyAgICBmbG9hdENvbG9yW2lpXSA9IHVieXRlVG9G
bG9hdChjb2xvcltpaV0pOworICB9CisgIGRyYXdGbG9hdENvbG9yUXVhZChnbCwgZmxvYXRDb2xv
cik7Cit9OworCisvKioKKyAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkIGluIHRoZSBn
aXZlbiBjb2xvci4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4
dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRv
IGRyYXcgd2l0aC4gQSA0CisgKiAgICAgICAgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1l
bnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KKyAqICAgICAgICAxLgorICovCit2YXIgZHJhd0Zsb2F0
Q29sb3JRdWFkID0gZnVuY3Rpb24oZ2wsIGNvbG9yKSB7CisgIHZhciBwcm9ncmFtID0gZ2wuZ2V0
UGFyYW1ldGVyKGdsLkNVUlJFTlRfUFJPR1JBTSk7CisgIHZhciBjb2xvckxvY2F0aW9uID0gZ2wu
Z2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ1X2NvbG9yIik7CisgIGdsLnVuaWZvcm00ZnYo
Y29sb3JMb2NhdGlvbiwgY29sb3IpOworICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwg
Nik7Cit9OworCiAvKioKICAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkLgogICogQHBh
cmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KQEAgLTEyMzAs
NiArMTMwMSw4IEBAIHJldHVybiB7CiAgIGNoZWNrQ2FudmFzUmVjdDogY2hlY2tDYW52YXNSZWN0
LAogICBjcmVhdGVDb2xvcmVkVGV4dHVyZTogY3JlYXRlQ29sb3JlZFRleHR1cmUsCiAgIGRyYXdR
dWFkOiBkcmF3UXVhZCwKKyAgZHJhd1VCeXRlQ29sb3JRdWFkOiBkcmF3VUJ5dGVDb2xvclF1YWQs
CisgIGRyYXdGbG9hdENvbG9yUXVhZDogZHJhd0Zsb2F0Q29sb3JRdWFkLAogICBlbmRzV2l0aDog
ZW5kc1dpdGgsCiAgIGdldEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzOiBnZXRFeHRlbnNpb25X
aXRoS25vd25QcmVmaXhlcywKICAgZ2V0RmlsZUxpc3RBc3luYzogZ2V0RmlsZUxpc3RBc3luYywK
QEAgLTEyNTUsNiArMTMyOCw3IEBAIHJldHVybiB7CiAgIGxvZzogbG9nLAogICBsb2dnaW5nT2Zm
OiBsb2dnaW5nT2ZmLAogICBlcnJvcjogZXJyb3IsCisgIHNldHVwQ29sb3JRdWFkOiBzZXR1cENv
bG9yUXVhZCwKICAgc2V0dXBQcm9ncmFtOiBzZXR1cFByb2dyYW0sCiAgIHNldHVwUXVhZDogc2V0
dXBRdWFkLAogICBzZXR1cFNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlcjogc2V0dXBTaW1wbGVU
ZXh0dXJlRnJhZ21lbnRTaGFkZXIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154865</attachid>
            <date>2012-07-27 00:33:01 -0700</date>
            <delta_ts>2012-07-27 23:56:06 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>bug-92375-20120727125622.patch</filename>
            <type>text/plain</type>
            <size>13324</size>
            <attacher name="Nayan Kumar K">nayankk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODQxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGI4MTM3ZTc2Yjc0ZjIyN2VkZDBl
ZGFjNDQ5ODY1M2UwYThmMTcyNy4uNzU2MTNlY2NiNzQ2YTkyMGE5NDdlZDdjZDIyN2MwM2Q3ZDRh
NDM0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA3LTI2ICBOYXlhbiBLdW1hciBLICA8
bmF5YW5ra0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBbGlnbiBjb250ZW50cyBv
ZiBkcmF3YnVmZmVyLXRlc3QuaHRtbCBsYXlvdXQgdGVzdCB3aXRoIHRoZSBvbmUgaW4gdGhlIFdl
YkdMIGNvbmZvcm1hbmNlIHN1aXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTIzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2RyYXdpbmdidWZmZXItdGVzdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2luZ2J1ZmZlci10ZXN0
Lmh0bWw6CisKIDIwMTItMDctMjcgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbUXRdW1dLMl0gUkVHUkVTU0lPTihyMTE5MTI3KTogcmVzZXR0aW5nIHdp
bmRvdy5pbnRlcm5hbHMgc2V0dGluZ3MgYmV0d2VlbiB0ZXN0cyBkb2Vzbid0IHdvcmsgcHJvcGVy
bHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RyYXdpbmdidWZm
ZXItdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3
aW5nYnVmZmVyLXRlc3QtZXhwZWN0ZWQudHh0CmluZGV4IGJjNzkzYzYxMjZhN2M2ZWY1Y2VhZTEy
NDgyYzg2NjQ2ZWYzMDAwM2MuLmE0ZmFkMmNkZDZiZWM2ZjliZDUzMzRiOWNjMzc3ZTE0MzVkZjU0
ZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RyYXdpbmdidWZm
ZXItdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
ZHJhd2luZ2J1ZmZlci10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMiwzMyArMiw2NSBAQCBUaGlzIHRl
c3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgY29ycmVjdGx5IGltcGxlbWVudCBkcmF3
aW5nYnVmZmVyV2lkdGgvSAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKLQogUEFTUyBj
b250ZXh0IGV4aXN0cwotQ2hlY2tpbmcgZHJhd2luZ0J1ZmZlcldpZHRoL2RyYXdpbmdCdWZmZXJI
ZWlnaHQKK1BBU1MgZ2wuZHJhd2luZ0J1ZmZlcldpZHRoIGlzIGdsLmNhbnZhcy53aWR0aAorUEFT
UyBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0IGlzIGdsLmNhbnZhcy5oZWlnaHQKIFBBU1MgbWF4U2l6
ZVswXSA+IDAgaXMgdHJ1ZQogUEFTUyBtYXhTaXplWzFdID4gMCBpcyB0cnVlCi1QQVNTIGdsLmRy
YXdpbmdCdWZmZXJXaWR0aCA+IDAgaXMgdHJ1ZQotUEFTUyBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0
ID4gMCBpcyB0cnVlCi1QQVNTIGdsLmRyYXdpbmdCdWZmZXJXaWR0aCA8PSBtYXhTaXplWzBdIGlz
IHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCA8PSBtYXhTaXplWzFdIGlzIHRydWUK
IAotUEFTUyBjb250ZXh0IGV4aXN0cwogQ2hlY2tpbmcgZHJhd2luZ0J1ZmZlcldpZHRoL2RyYXdp
bmdCdWZmZXJIZWlnaHQKLVBBU1MgbWF4U2l6ZVswXSA+IDAgaXMgdHJ1ZQotUEFTUyBtYXhTaXpl
WzFdID4gMCBpcyB0cnVlCi1QQVNTIGdsLmRyYXdpbmdCdWZmZXJXaWR0aCA+IDAgaXMgdHJ1ZQot
UEFTUyBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0ID4gMCBpcyB0cnVlCi1QQVNTIGdsLmRyYXdpbmdC
dWZmZXJXaWR0aCA8PSBtYXhTaXplWzBdIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZlckhl
aWdodCA8PSBtYXhTaXplWzFdIGlzIHRydWUKLQogUEFTUyBjb250ZXh0IGV4aXN0cworUEFTUyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJRVdQT1JUX0RJTVMpWzBdIGlzIG1heFNpemVbMF0KK1BB
U1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9WSUVXUE9SVF9ESU1TKVsxXSBpcyBtYXhTaXplWzFd
CitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbMF0gaXMgMAorUEFTUyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzFdIGlzIDAKK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJ
RVdQT1JUKVsyXSBpcyBnbC5kcmF3aW5nQnVmZmVyV2lkdGgKK1BBU1MgZ2wuZ2V0UGFyYW1ldGVy
KGdsLlZJRVdQT1JUKVszXSBpcyBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0CitQQVNTIGdsLmdldEVy
cm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ3JpZCByZW5kZXJlZCBjb3JyZWN0bHkKK1BBU1Mg
c2hvdWxkIGJlIGdyZWVuCitQQVNTIHNob3VsZCBiZSBibGFjaworUEFTUyBzaG91bGQgYmUgYmxh
Y2sKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorCitUZXN0aW5nIHJlc2l6aW5n
IGNhbnZhcworUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzBdIGlzIG9sZFZpZXdw
b3J0WzBdCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbMV0gaXMgb2xkVmlld3Bv
cnRbMV0KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVsyXSBpcyBvbGRWaWV3cG9y
dFsyXQorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzNdIGlzIG9sZFZpZXdwb3J0
WzNdCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ3JpZCByZW5kZXJl
ZCBjb3JyZWN0bHkKK1BBU1Mgc2hvdWxkIGJlIGdyZWVuCitQQVNTIHNob3VsZCBiZSBibGFjawor
UEFTUyBzaG91bGQgYmUgYmxhY2sKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgor
CiBDaGVja2luZyBkcmF3aW5nQnVmZmVyV2lkdGgvZHJhd2luZ0J1ZmZlckhlaWdodAotUEFTUyBt
YXhTaXplWzBdID4gMCBpcyB0cnVlCi1QQVNTIG1heFNpemVbMV0gPiAwIGlzIHRydWUKLVBBU1Mg
Z2wuZHJhd2luZ0J1ZmZlcldpZHRoID4gMCBpcyB0cnVlCi1QQVNTIGdsLmRyYXdpbmdCdWZmZXJI
ZWlnaHQgPiAwIGlzIHRydWUKLVBBU1MgZ2wuZHJhd2luZ0J1ZmZlcldpZHRoIDw9IG1heFNpemVb
MF0gaXMgdHJ1ZQotUEFTUyBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0IDw9IG1heFNpemVbMV0gaXMg
dHJ1ZQorUEFTUyBjb250ZXh0IGV4aXN0cworUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJ
RVdQT1JUX0RJTVMpWzBdIGlzIG1heFNpemVbMF0KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLk1B
WF9WSUVXUE9SVF9ESU1TKVsxXSBpcyBtYXhTaXplWzFdCitQQVNTIGdsLmdldFBhcmFtZXRlcihn
bC5WSUVXUE9SVClbMF0gaXMgMAorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzFd
IGlzIDAKK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVsyXSBpcyBnbC5kcmF3aW5n
QnVmZmVyV2lkdGgKK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVszXSBpcyBnbC5k
cmF3aW5nQnVmZmVySGVpZ2h0CitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BB
U1MgZ3JpZCByZW5kZXJlZCBjb3JyZWN0bHkKK1BBU1Mgc2hvdWxkIGJlIGdyZWVuCitQQVNTIHNo
b3VsZCBiZSBibGFjaworUEFTUyBzaG91bGQgYmUgYmxhY2sKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBp
cyBnbC5OT19FUlJPUgorCitUZXN0aW5nIHJlc2l6aW5nIGNhbnZhcworUEFTUyBnbC5nZXRQYXJh
bWV0ZXIoZ2wuVklFV1BPUlQpWzBdIGlzIG9sZFZpZXdwb3J0WzBdCitQQVNTIGdsLmdldFBhcmFt
ZXRlcihnbC5WSUVXUE9SVClbMV0gaXMgb2xkVmlld3BvcnRbMV0KK1BBU1MgZ2wuZ2V0UGFyYW1l
dGVyKGdsLlZJRVdQT1JUKVsyXSBpcyBvbGRWaWV3cG9ydFsyXQorUEFTUyBnbC5nZXRQYXJhbWV0
ZXIoZ2wuVklFV1BPUlQpWzNdIGlzIG9sZFZpZXdwb3J0WzNdCitQQVNTIGdsLmdldEVycm9yKCkg
aXMgZ2wuTk9fRVJST1IKK1BBU1MgZ3JpZCByZW5kZXJlZCBjb3JyZWN0bHkKK1BBU1Mgc2hvdWxk
IGJlIGdyZWVuCitQQVNTIHNob3VsZCBiZSBibGFjaworUEFTUyBzaG91bGQgYmUgYmxhY2sKK1BB
U1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Ry
YXdpbmdidWZmZXItdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJh
d2luZ2J1ZmZlci10ZXN0Lmh0bWwKaW5kZXggMzA5OTI2NDNkMjA3NWYxZTc2MjNiMmIxNGZkMmJi
YThlMDNmZWUxNC4uNzQ5ZjgxMDY3Y2I2OWJlYWRhNTRhNzdjZDMyYmIxMzNlOTBiMDBlMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2luZ2J1ZmZlci10ZXN0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd2luZ2J1ZmZlci10
ZXN0Lmh0bWwKQEAgLTEwLDU3ICsxMCwyMTAgQEAKIDxib2R5PgogPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGlkPSJ2c2hhZGVy
R3JpZCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlv
bjsKK3ZvaWQgbWFpbigpCit7CisgIGdsX1Bvc2l0aW9uID0gYV9wb3NpdGlvbjsKK30KKzwvc2Ny
aXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVyR3JpZCIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVu
dCI+CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKK3ZvaWQgbWFpbigpCit7CisgIGZsb2F0IHIg
PSBtb2QoZ2xfRnJhZ0Nvb3JkLngsIDIuMCkgPCAxLjAgPyAwLjAgOiAxLjA7CisgIGZsb2F0IGcg
PSBtb2QoZ2xfRnJhZ0Nvb3JkLnksIDIuMCkgPCAxLjAgPyAwLjAgOiAxLjA7CisgIGdsX0ZyYWdD
b2xvciA9IHZlYzQociwgZywgMCwgMSk7Cit9Cis8L3NjcmlwdD4KIDxzY3JpcHQ+CiBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViR0wgaW1wbGVtZW50YXRpb25zIGNvcnJlY3RseSBp
bXBsZW1lbnQgZHJhd2luZ2J1ZmZlcldpZHRoL0hlaWdodC4iKTsKIAotZGVidWcoIiIpOworZnVu
Y3Rpb24gZ2V0TWF4Vmlld3BvcnREaW1lbnNpb25zKCkgeworICAvLyBjcmVhdGUgYSBmcmVzaCBj
YW52YXMuIFRoaXMgY2FudmFzIHdpbGwgYmUgZGlzY2FyZGVkCisgIC8vIGFmdGVyIGV4aXRpbmcg
dGhpcyBmdW5jdGlvbi4KKyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNh
bnZhcyIpOworICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzLCB7YW50aWFsaWFzOiBm
YWxzZX0pOworICBpZiAoIWdsKSB7CisgICAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBl
eGlzdCIpOworICAgIHJldHVybiBbMCwgMF07CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgi
Y29udGV4dCBleGlzdHMiKTsKKworICAgIC8vIEZvciBhIGRlZmF1bHQgc2l6ZSBjYW52YXMgdGhl
c2Ugc2hvdWxkIGJlIGVxdWFsLgorICAgIC8vIFdlYkdMIGNvbnRleHRzIGFyZSBub3QgYWxsb3dl
ZCB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGRyYXdpbmdCdWZmZXIKKyAgICAvLyBmb3IgdGhp
bmdzIGxpa2UgaGktcmVzIGRpc3BsYXlzLgorICAgIHNob3VsZEJlKCdnbC5kcmF3aW5nQnVmZmVy
V2lkdGgnLCAnZ2wuY2FudmFzLndpZHRoJyk7CisgICAgc2hvdWxkQmUoJ2dsLmRyYXdpbmdCdWZm
ZXJIZWlnaHQnLCAnZ2wuY2FudmFzLmhlaWdodCcpOworICAgIHJldHVybiBnbC5nZXRQYXJhbWV0
ZXIoZ2wuTUFYX1ZJRVdQT1JUX0RJTVMpOworICB9Cit9CisKKy8vIFRoaXMgdXNlcyBnbF9GcmFn
Q29vcmQgdG8gZHJhdyBhIGRldmljZSBwaXhlbCByZWxhdmVudCBwYXR0ZXJuLgorLy8gSWYgZHJh
d0J1ZmZlcldpZHRoIG9yIGRyYXdCdWZmZXJIZWlnaHQgYXJlIG5vdCBpbiBkZXZpY2UgcGl4ZWxz
CisvLyB0aGlzIHRlc3Qgc2hvdWxkIGZhaWwuCitmdW5jdGlvbiBjaGVja0dyaWQoZ2wpIHsKKyAg
dmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJHcmlkIiwgImZzaGFk
ZXJHcmlkIl0sIFsiYV9wb3NpdGlvbiJdKTsKKyAgd3R1LnNldHVwVW5pdFF1YWQoZ2wpOworICBn
bC51c2VQcm9ncmFtKHByb2dyYW0pOworICBzaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5O
T19FUlJPUicpOworCisgIHd0dS5kcmF3UXVhZChnbCk7CisKKyAgdmFyIHBpeGVscyA9IG5ldyBV
aW50OEFycmF5KGdsLmRyYXdpbmdCdWZmZXJXaWR0aCAqIGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQg
KiA0KTsKKyAgZ2wucmVhZFBpeGVscygwLCAwLCBnbC5kcmF3aW5nQnVmZmVyV2lkdGgsIGdsLmRy
YXdpbmdCdWZmZXJIZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7CisK
KyAgdmFyIGNvbG9ycyA9IFsKKyAgICBbIHsgY29sb3I6IFswLCAgIDAsIDAsIDI1NV0sIG5hbWU6
ICJibGFjayIgfSwgIHsgY29sb3I6IFsyNTUsICAgMCwgMCwgMjU1XSwgbmFtZTogInJlZCIgICAg
fSBdLAorICAgIFsgeyBjb2xvcjogWzAsIDI1NSwgMCwgMjU1XSwgbmFtZTogImdyZWVuIiB9LCAg
eyBjb2xvcjogWzI1NSwgMjU1LCAwLCAyNTVdLCBuYW1lOiAieWVsbG93IiB9IF0sCisgIF07CisK
KyAgZm9yICh2YXIgeXkgPSAwOyB5eSA8IGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQ7ICsreXkpIHsK
KyAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDwgZ2wuZHJhd2luZ0J1ZmZlcldpZHRoOyArK3h4KSB7
CisgICAgICB2YXIgaW5mbyA9IGNvbG9yc1t5eSAlIDJdW3h4ICUgMl07CisgICAgICB2YXIgY29s
b3IgPSBpbmZvLmNvbG9yOworICAgICAgdmFyIG9mZnNldCA9ICh5eSAqIGdsLmRyYXdpbmdCdWZm
ZXJXaWR0aCArIHh4KSAqIDQ7CisgICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgNDsgKytqaikg
eworICAgICAgICBpZiAocGl4ZWxzW29mZnNldCArIGpqXSAhPSBjb2xvcltqal0pIHsKKyAgICAg
ICAgICB2YXIgYWN0dWFsID0gW3BpeGVsc1tvZmZzZXRdLCBwaXhlbHNbb2Zmc2V0ICsgMV0sIHBp
eGVsc1tvZmZzZXQgKyAyXSwgcGl4ZWxzW29mZnNldCArIDNdXTsKKyAgICAgICAgICB0ZXN0RmFp
bGVkKCJhdCAiICsgeHggKyAiLCAiICsgeXkgKyAiIGV4cGVjdGVkICIgKyBjb2xvciArICIoIiAr
IGluZm8ubmFtZSArICIpIHdhcyAiICsgYWN0dWFsKTsKKyAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgIH0KKyAgICB9CisgIH0KKyAgdGVzdFBhc3NlZCgiZ3JpZCByZW5kZXJlZCBj
b3JyZWN0bHkiKTsKK30KKworLy8gVGhpcyBwYXNzZXMgZGV2aWNlIGNvb3JkaW5hdGUgdmVydGlj
ZXMgaW4gdG8gbWFrZSBzdXJlIGdsLnZpZXdwb3J0IGlzIG5vdCBiZWluZyBtdWNrZWQgd2l0aC4K
K2Z1bmN0aW9uIGNoZWNrUXVhZChnbCkgeworICB2YXIgZGV2aWNlVG9DbGlwU3BhY2UgPSBmdW5j
dGlvbih2YWx1ZSwgcmFuZ2UpIHsKKyAgICByZXR1cm4gdmFsdWUgLyByYW5nZSAqIDIgLSAxOwor
ICB9CisKKyAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBDb2xvclF1YWQoZ2wpOworCisgIC8vIGRy
YXcgYSBzbWFsbCBncmVlbiBzcXVhcmUgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIuCisgIHZhciBk
ZXZpY2VYMSA9IGdsLmRyYXdpbmdCdWZmZXJXaWR0aCAtIDQ7CisgIHZhciBkZXZpY2VYMiA9IGds
LmRyYXdpbmdCdWZmZXJXaWR0aDsKKyAgdmFyIGRldmljZVkxID0gZ2wuZHJhd2luZ0J1ZmZlckhl
aWdodCAtIDQ7CisgIHZhciBkZXZpY2VZMiA9IGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQ7CisKKyAg
dmFyIGNsaXBYMSA9IGRldmljZVRvQ2xpcFNwYWNlKGRldmljZVgxLCBnbC5kcmF3aW5nQnVmZmVy
V2lkdGgpOworICB2YXIgY2xpcFgyID0gZGV2aWNlVG9DbGlwU3BhY2UoZGV2aWNlWDIsIGdsLmRy
YXdpbmdCdWZmZXJXaWR0aCk7CisgIHZhciBjbGlwWTEgPSBkZXZpY2VUb0NsaXBTcGFjZShkZXZp
Y2VZMSwgZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCk7CisgIHZhciBjbGlwWTIgPSBkZXZpY2VUb0Ns
aXBTcGFjZShkZXZpY2VZMiwgZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCk7CisKKyAgdmFyIHZlcnRl
eE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JV
RkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgZ2wuYnVmZmVyRGF0YSgKKyAgICAgIGdsLkFSUkFZX0JV
RkZFUiwKKyAgICAgIG5ldyBGbG9hdDMyQXJyYXkoCisgICAgICAgIFsgY2xpcFgyLCBjbGlwWTIs
CisgICAgICAgICAgY2xpcFgxLCBjbGlwWTIsCisgICAgICAgICAgY2xpcFgxLCBjbGlwWTEsCisg
ICAgICAgICAgY2xpcFgyLCBjbGlwWTIsCisgICAgICAgICAgY2xpcFgxLCBjbGlwWTEsCisgICAg
ICAgICAgY2xpcFgyLCBjbGlwWTFdKSwKKyAgICAgIGdsLlNUQVRJQ19EUkFXKTsKKyAgZ2wuZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoMCk7CisgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMiwg
Z2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKworICB2YXIgZ3JlZW4gPSBbMCwgMjU1LCAwLCAyNTVd
OworICB2YXIgYmxhY2sgPSBbMCwgMCwgMCwgMF07CisgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwg
MCk7CisgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworICB3dHUuZHJhd1VCeXRlQ29s
b3JRdWFkKGdsLCBbMCwgMjU1LCAwLCAyNTVdKTsKKworICB2YXIgc3F1YXJlV2lkdGggPSBkZXZp
Y2VYMiAtIGRldmljZVgxOworICB2YXIgc3F1YXJlSGVpZ2h0ID0gZGV2aWNlWTIgLSBkZXZpY2VZ
MTsKKworICAvLyBjaGVjayB0aGUgc3F1YXJlLgorICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCBk
ZXZpY2VYMSwgZGV2aWNlWTEsIHNxdWFyZVdpZHRoLCBzcXVhcmVIZWlnaHQsIGdyZWVuLCAic2hv
dWxkIGJlIGdyZWVuIik7CisgIC8vIGNoZWNrIG91dHNpZGUgdGhlIHNxdWFyZS4KKyAgd3R1LmNo
ZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgZ2wuZHJhd2luZ0J1ZmZlcldpZHRoLCBnbC5kcmF3aW5n
QnVmZmVySGVpZ2h0IC0gc3F1YXJlSGVpZ2h0LCBibGFjaywgInNob3VsZCBiZSBibGFjayIpOwor
ICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0IC0gc3F1
YXJlSGVpZ2h0LCBnbC5kcmF3aW5nQnVmZmVyV2lkdGggLSBzcXVhcmVXaWR0aCwgc3F1YXJlSGVp
Z2h0LCBibGFjaywgInNob3VsZCBiZSBibGFjayIpOworfQogCi12YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Ci12YXIgY2FudmFzOwotdmFyIGdsOwotdmFyIG1heFNpemU7CiAKIGZ1bmN0aW9uIHRl
c3QoZGVzaXJlZFdpZHRoLCBkZXNpcmVkSGVpZ2h0KSB7Ci0gIHZhciBlcnI7Ci0gIGNhbnZhcyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICBpZiAodHlwZW9mIGRlc2lyZWRX
aWR0aCAhPSAidW5kZWZpbmVkIikKLSAgICBjYW52YXMud2lkdGggPSBkZXNpcmVkV2lkdGg7Ci0g
IGlmICh0eXBlb2YgZGVzaXJlZEhlaWdodCAhPSAidW5kZWZpbmVkIikKLSAgICBjYW52YXMuaGVp
Z2h0ID0gZGVzaXJlZEhlaWdodDsKLQotICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFz
KTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiQ2hlY2tpbmcgZHJhd2luZ0J1ZmZlcldpZHRoL2Ry
YXdpbmdCdWZmZXJIZWlnaHQiKTsKKworICAvLyBNYWtlIGEgZnJlc2ggY2FudmFzLgorICB2YXIg
Y2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgIGNhbnZhcy53aWR0
aCA9IGRlc2lyZWRXaWR0aDsKKyAgY2FudmFzLmhlaWdodCA9IGRlc2lyZWRIZWlnaHQ7CisKKyAg
Ly8gVGhpcyAnZ2wnIG11c3QgYmUgZ2xvYmFsIGZvciBzaG91bGRCZSB0byB3b3JrLgorICBnbCA9
IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzLCB7YW50aWFsaWFzOiBmYWxzZX0pOwogICBpZiAo
IWdsKSB7CiAgICAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOwogICB9IGVs
c2UgewogICAgIHRlc3RQYXNzZWQoImNvbnRleHQgZXhpc3RzIik7Ci0gICAgZGVidWcoIkNoZWNr
aW5nIGRyYXdpbmdCdWZmZXJXaWR0aC9kcmF3aW5nQnVmZmVySGVpZ2h0Iik7Ci0KLSAgICAvLyBD
aGVjayB0aGF0IGEgY2FudmFzIHdpdGggbm8gd2lkdGggb3IgaGVpZ2h0IGlzIDMwMHgxNTAgcGl4
ZWxzCi0gICAgaWYgKGRlc2lyZWRXaWR0aCA9PT0gInVuZGVmaW5lZCIpCi0gICAgICBzaG91bGRC
ZSgnZ2wuZHJhd2luZ0J1ZmZlcldpZHRoJywgJ2NhbnZhcy53aWR0aCcpOwotICAgIGlmIChkZXNp
cmVkSGVpZ2h0ID09PSAidW5kZWZpbmVkIikKLSAgICAgIHNob3VsZEJlKCdnbC5kcmF3aW5nQnVm
ZmVySGVpZ2h0JywgJ2NhbnZhcy5oZWlnaHQnKTsKLQotICAgIC8vIENoZWNrIHRoYXQgY2hhbmdp
bmcgdGhlIGNhbnZhcyBzaXplIHRvIHNvbWV0aGluZyB0b28gbGFyZ2UgZmFsbHMgYmFjayB0byBy
ZWFzb25hYmxlIHZhbHVlcy4KLSAgICBtYXhTaXplID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9W
SUVXUE9SVF9ESU1TKTsKLSAgICBzaG91bGRCZVRydWUoJ21heFNpemVbMF0gPiAwJyk7Ci0gICAg
c2hvdWxkQmVUcnVlKCdtYXhTaXplWzFdID4gMCcpOwotCi0gICAgLy8gZGVidWcoIk1BWF9WSUVX
UE9SVF9ESU1TID0gIiArIG1heFNpemVbMF0gKyAieCIgKyBtYXhTaXplWzFdKTsKLSAgICBjYW52
YXMud2lkdGggPSBtYXhTaXplWzBdICogMjsKLSAgICBjYW52YXMuaGVpZ2h0ID0gbWF4U2l6ZVsx
XSAqIDI7Ci0gICAgc2hvdWxkQmVUcnVlKCdnbC5kcmF3aW5nQnVmZmVyV2lkdGggPiAwJyk7Ci0g
ICAgc2hvdWxkQmVUcnVlKCdnbC5kcmF3aW5nQnVmZmVySGVpZ2h0ID4gMCcpOwotICAgIHNob3Vs
ZEJlVHJ1ZSgnZ2wuZHJhd2luZ0J1ZmZlcldpZHRoIDw9IG1heFNpemVbMF0nKTsKLSAgICBzaG91
bGRCZVRydWUoJ2dsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPD0gbWF4U2l6ZVsxXScpOworCisgICAg
Ly8gVmVyaWZ5IHRoZXNlIHN0YXRzIGRpZG4ndCBjaGFuZ2Ugc2luY2UgdGhleSBjb21lIGZyb20g
YSBkaWZmZXJlbnQKKyAgICAvLyBjb250ZXh0LgorICAgIHNob3VsZEJlKCdnbC5nZXRQYXJhbWV0
ZXIoZ2wuTUFYX1ZJRVdQT1JUX0RJTVMpWzBdJywgJ21heFNpemVbMF0nKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9WSUVXUE9SVF9ESU1TKVsxXScsICdtYXhTaXplWzFd
Jyk7CisKKyAgICAvLyBjaGVjayB0aGUgaW5pdGlhbCB2aWV3cG9ydCBtYXRjaGVzIHRoZSBkcmF3
aW5nQnVmZmVyV2lkdGggYW5kIGRyYXdpbmdCdWZmZXJIZWlnaHQKKyAgICBzaG91bGRCZSgnZ2wu
Z2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVswXScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdl
dFBhcmFtZXRlcihnbC5WSUVXUE9SVClbMV0nLCAnMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRQ
YXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzJdJywgJ2dsLmRyYXdpbmdCdWZmZXJXaWR0aCcpOworICAg
IHNob3VsZEJlKCdnbC5nZXRQYXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzNdJywgJ2dsLmRyYXdpbmdC
dWZmZXJIZWlnaHQnKTsKKworICAgIC8vIERyYXcgYSBwaXhlbCBncmlkIHVzaW5nIGEgc2hhZGVy
IHRoYXQgZHJhd3MgaW4gZGV2aWNlIGNvb3JkaW5hdGVzCisgICAgY2hlY2tHcmlkKGdsKTsKKyAg
ICAvLyBEcmF3IGEgcXVhZCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lci4KKyAgICBjaGVja1F1YWQo
Z2wpOworCisgICAgc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuTk9fRVJST1InKTsKKwor
ICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdGluZyByZXNpemluZyBjYW52YXMiKTsKKwor
ICAgIG9sZFZpZXdwb3J0ID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKTsKKworICAgIC8v
IGZsaXAgd2lkdGggYW5kIGhlaWdodAorICAgIGNhbnZhcy53aWR0aCA9IGRlc2lyZWRIZWlnaHQ7
CisgICAgY2FudmFzLmhlaWdodCA9IGRlc2lyZWRXaWR0aDsKKworICAgIC8vIFZlcmlmeSB0aGUg
dmlld3BvcnQgZGlkbid0IGNoYW5nZS4KKyAgICBzaG91bGRCZSgnZ2wuZ2V0UGFyYW1ldGVyKGds
LlZJRVdQT1JUKVswXScsICdvbGRWaWV3cG9ydFswXScpOworICAgIHNob3VsZEJlKCdnbC5nZXRQ
YXJhbWV0ZXIoZ2wuVklFV1BPUlQpWzFdJywgJ29sZFZpZXdwb3J0WzFdJyk7CisgICAgc2hvdWxk
QmUoJ2dsLmdldFBhcmFtZXRlcihnbC5WSUVXUE9SVClbMl0nLCAnb2xkVmlld3BvcnRbMl0nKTsK
KyAgICBzaG91bGRCZSgnZ2wuZ2V0UGFyYW1ldGVyKGdsLlZJRVdQT1JUKVszXScsICdvbGRWaWV3
cG9ydFszXScpOworCisgICAgLy8gZml4IHRoZSB2aWV3cG9ydAorICAgIGdsLnZpZXdwb3J0KDAs
IDAsIGdsLmRyYXdpbmdCdWZmZXJXaWR0aCwgZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCk7CisKKyAg
ICAvLyBEcmF3IGEgcGl4ZWwgZ3JpZCB1c2luZyBhIHNoYWRlciB0aGF0IGRyYXdzIGluIGRldmlj
ZSBjb29yZGluYXRlcworICAgIGNoZWNrR3JpZChnbCk7CisKKyAgICAvLyBEcmF3IGEgcXVhZCBp
biB0aGUgdG9wIHJpZ2h0IGNvcm5lci4KKyAgICBjaGVja1F1YWQoZ2wpOworICAgIHNob3VsZEJl
KCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VSUk9SJyk7CiAgIH0KLSAgZGVidWcoIiIpCiB9CiAK
LXRlc3QoKQotdGVzdChtYXhTaXplWzBdKzEwMCwgMTAwKQotdGVzdCgxMDAsIG1heFNpemVbMV0r
MTAwKQordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIG1heFNpemUgPSBnZXRNYXhWaWV3
cG9ydERpbWVuc2lvbnMoKTsKKworc2hvdWxkQmVUcnVlKCdtYXhTaXplWzBdID4gMCcpOworc2hv
dWxkQmVUcnVlKCdtYXhTaXplWzFdID4gMCcpOworCisvLyB0ZXN0IGEgc21hbGwgc2l6ZSB0byBt
YWtlIHN1cmUgaXQgd29ya3MgYXQgYWxsLgordGVzdCgxNiwgMzIpOworCisvLyBNYWtlIGEgY2Fu
dmFzIHNsaWdodGx5IGxhcmdlciB0aGFuIHRoZSBtYXggc2l6ZSBXZWJHTCBjYW4gaGFuZGxlLgor
Ly8gRnJvbSBzZWN0aW9uIDIuMiBvZiB0aGUgc3BlYyB0aGUgV2ViR0wgaW1wbGVtZW50YXRpb24g
c2hvdWxkIGFsbG93IHRoaXMgdG8gd29yay4KKworLy8gdGVzdCBhIHNpemUgbGFyZ2VyIHRoYW4g
TUFYX1ZJRVdQT1JUX0RJTVMgaW4gYm90aCBkaW1lbnNpb25zCit0ZXN0KG1heFNpemVbMF0gKyAz
MiwgOCk7CiAKK2RlYnVnKCIiKQogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>