<?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>81242</bug_id>
          
          <creation_ts>2012-03-15 11:22:08 -0700</creation_ts>
          <short_desc>[chromium] Remove surface damage client from occlusion tracker</short_desc>
          <delta_ts>2012-03-16 10:00:03 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>81222</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>579559</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 11:22:08 -0700</bug_when>
    <thetext>[chromium] Remove surface damage client from occlusion tracker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579561</commentid>
    <comment_count>1</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 11:23:28 -0700</bug_when>
    <thetext>I claim that the root surface damage rect will cull at least as well as the (bounding box of the) rect transformed into the current target surface.

Proof by picture http://imgur.com/r5I1s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579573</commentid>
    <comment_count>2</comment_count>
      <attachid>132085</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 11:32:24 -0700</bug_when>
    <thetext>Created attachment 132085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579610</commentid>
    <comment_count>3</comment_count>
      <attachid>132085</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-15 11:59:11 -0700</bug_when>
    <thetext>Comment on attachment 132085
Patch


Looks great... but I have to admit I&apos;m not wrapping my brain fully around the proof of equivalence yet.  But if someone else already feels confident about it, then that&apos;s good enough for me =)  Otherwise I&apos;ll take a closer look later tonight.


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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp:321
&gt;  {

Maybe we should now rename this function and the variables inside it, since it is not really a &quot;scissor&quot; anymore.  Its just the clipRect, right?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp:324
&gt;      if (!layer-&gt;clipRect().isEmpty())

Since we&apos;re driving by, could we add a FIXME referring to the usesLayerClipping bug?  https://bugs.webkit.org/show_bug.cgi?id=80622</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579614</commentid>
    <comment_count>4</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 12:05:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 132085 [details])
&gt; 
&gt; Looks great... but I have to admit I&apos;m not wrapping my brain fully around the proof of equivalence yet.  But if someone else already feels confident about it, then that&apos;s good enough for me =)  Otherwise I&apos;ll take a closer look later tonight.
&gt; 
&gt; 
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=132085&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp:321
&gt; &gt;  {
&gt; 
&gt; Maybe we should now rename this function and the variables inside it, since it is not really a &quot;scissor&quot; anymore.  Its just the clipRect, right?

Well, it&apos;s the clip rect + the target&apos;s content bounds. Which is sort of like the visibleLayerRect.. but in this case acts like a scissor. I think the name still makes sense under those terms?

&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp:324
&gt; &gt;      if (!layer-&gt;clipRect().isEmpty())
&gt; 
&gt; Since we&apos;re driving by, could we add a FIXME referring to the usesLayerClipping bug?  https://bugs.webkit.org/show_bug.cgi?id=80622

Sure!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579615</commentid>
    <comment_count>5</comment_count>
      <attachid>132097</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 12:06:29 -0700</bug_when>
    <thetext>Created attachment 132097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579998</commentid>
    <comment_count>6</comment_count>
      <attachid>132097</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-15 18:23:19 -0700</bug_when>
    <thetext>Comment on attachment 132097
Patch

I think I&apos;m convinced that scissoring in screen space is always going to cull just as much (if not more) than mapping the scissor onto a layer and taking the enclosing IntRect and scissoring with that.  Thanks for the diagram.

It&apos;s nice not to have to need this client class.  R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580495</commentid>
    <comment_count>7</comment_count>
      <attachid>132279</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-16 07:30:51 -0700</bug_when>
    <thetext>Created attachment 132279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580611</commentid>
    <comment_count>8</comment_count>
      <attachid>132279</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 09:59:57 -0700</bug_when>
    <thetext>Comment on attachment 132279
Patch

Clearing flags on attachment: 132279

Committed r111021: &lt;http://trac.webkit.org/changeset/111021&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580612</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 10:00:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132085</attachid>
            <date>2012-03-15 11:32:24 -0700</date>
            <delta_ts>2012-03-15 12:06:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81242-20120315143223.patch</filename>
            <type>text/plain</type>
            <size>15393</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUyN2NkOGZjNmFlOTY1
NzFjNGI3NzlhYTA0NjU2NDAxNjc4Yjk3MS4uMjIxYmQwZThkOTkxOGEyMWJjMzA5ZTJkNzc3MWM1
ZjM0NTVlZjNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAzLTE1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHN1cmZhY2UgZGFtYWdlIGNsaWVudCBmcm9tIG9jY2x1c2lvbiB0cmFja2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTI0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvZGUgd2FzIG5vdCB1c2Vk
IHlldCwgc28gbm8gbmV3IHRlc3RzLiBSZW1vdmluZyB0ZXN0cyBpbnN0ZWFkIQorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ojo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjo6OmxheWVyU2Npc3NvclJlY3RJblRhcmdldFN1cmZhY2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNp
b25UcmFja2VyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENDT2NjbHVzaW9uVHJh
Y2tlckJhc2UpOgorCiAyMDEyLTAzLTE0ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgQ29tcGlsZXJTY3Jp
cHRNYXBwaW5nIGZyb20gUmF3U291cmNlQ29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggZjViZWQ0NDg2ODJhZjY4OTA0YzY0ZmMyYzQ1ZjVjMTY1ZTc4ODg1Yy4uMTg2OTI3NzQ0N2I5
Yzc0NGJjNWFiZDViMDRkZWYzYTc4ZGUxYTFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xNSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBzdXJmYWNlIGRhbWFnZSBjbGll
bnQgZnJvbSBvY2NsdXNpb24gdHJhY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODEyNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDMtMTUgIFBldGVyIEJldmVybG9vICA8cGV0ZXJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVz
aW9uVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwCmluZGV4IGIyZGZjYjViNjgwY2M1NzA0OGQ1N2E5
ZjEyMzAxMGIxMGM0NDZjNTkuLjlkMDZmYTJhMjcxZDE1MDgyZjA5ZjM5NmViMzYxOTI4Y2E5YjZh
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDT2NjbHVzaW9uVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmNwcApAQCAtNDEsMTUgKzQx
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlLCB0
eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJU
eXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBz
Y2lzc29yUmVjdEluU2NyZWVuU3BhY2UpCiAgICAgOiBtX3NjaXNzb3JSZWN0SW5TY3JlZW5TcGFj
ZShzY2lzc29yUmVjdEluU2NyZWVuU3BhY2UpCi0gICAgLCBtX3N1cmZhY2VEYW1hZ2VDbGllbnQo
MCkKLSAgICAsIG1fdXNlUGFpbnRUcmFja2luZyh0cnVlKSAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
d2hlbiBwYWludCB0cmFja2luZyBpcyBvbiBmb3IgcGFpbnQgY3VsbGluZy4KLXsKLX0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlLCB0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KLUND
T2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OkNDT2Nj
bHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY2lzc29yUmVjdEluU2NyZWVuU3BhY2UsIGNvbnN0
IERhbWFnZUNsaWVudFR5cGUqIHN1cmZhY2VEYW1hZ2VDbGllbnQpCi0gICAgOiBtX3NjaXNzb3JS
ZWN0SW5TY3JlZW5TcGFjZShzY2lzc29yUmVjdEluU2NyZWVuU3BhY2UpCi0gICAgLCBtX3N1cmZh
Y2VEYW1hZ2VDbGllbnQoc3VyZmFjZURhbWFnZUNsaWVudCkKICAgICAsIG1fdXNlUGFpbnRUcmFj
a2luZyh0cnVlKSAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBwYWludCB0cmFja2luZyBpcyBv
biBmb3IgcGFpbnQgY3VsbGluZy4KIHsKIH0KQEAgLTMzMCw4ICszMjEsNiBAQCBJbnRSZWN0IEND
T2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OmxheWVy
U2Npc3NvclJlY3RJbgogewogICAgIGNvbnN0IFJlbmRlclN1cmZhY2VUeXBlKiB0YXJnZXRTdXJm
YWNlID0gbV9zdGFjay5sYXN0KCkuc3VyZmFjZTsKICAgICBGbG9hdFJlY3QgdG90YWxTY2lzc29y
ID0gdGFyZ2V0U3VyZmFjZS0+Y29udGVudFJlY3QoKTsKLSAgICBpZiAobV9zdXJmYWNlRGFtYWdl
Q2xpZW50KQotICAgICAgICB0b3RhbFNjaXNzb3IuaW50ZXJzZWN0KG1fc3VyZmFjZURhbWFnZUNs
aWVudC0+ZGFtYWdlUmVjdCh0YXJnZXRTdXJmYWNlKSk7CiAgICAgaWYgKCFsYXllci0+Y2xpcFJl
Y3QoKS5pc0VtcHR5KCkpCiAgICAgICAgIHRvdGFsU2Npc3Nvci5pbnRlcnNlY3QobGF5ZXItPmNs
aXBSZWN0KCkpOwogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHRvdGFsU2Npc3Nvcik7CkBA
IC0zNTQsNyArMzQzLDYgQEAgY29uc3QgUmVnaW9uJiBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExh
eWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpjdXJyZW50T2NjbHUKIAogLy8gRGVjbGFyZSB0
aGUgcG9zc2libGUgZnVuY3Rpb25zIGhlcmUgZm9yIHRoZSBsaW5rZXIuCiB0ZW1wbGF0ZSBDQ09j
Y2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46
OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY2lzc29yUmVjdEluU2NyZWVuU3BhY2Up
OwotdGVtcGxhdGUgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5kZXJT
dXJmYWNlQ2hyb21pdW0+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJl
Y3RJblNjcmVlblNwYWNlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXJEYW1hZ2VDbGllbnQqIHN1
cmZhY2VEYW1hZ2VDbGllbnQpOwogdGVtcGxhdGUgdm9pZCBDQ09jY2x1c2lvblRyYWNrZXJCYXNl
PExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46OmVudGVyVGFyZ2V0UmVuZGVy
U3VyZmFjZShjb25zdCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIG5ld1RhcmdldCk7CiB0ZW1wbGF0
ZSB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3VyZmFj
ZUNocm9taXVtPjo6ZmluaXNoZWRUYXJnZXRSZW5kZXJTdXJmYWNlKGNvbnN0IExheWVyQ2hyb21p
dW0qIG93bmluZ0xheWVyLCBjb25zdCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIGZpbmlzaGVkVGFy
Z2V0KTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVt
LCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjpsZWF2ZVRvVGFyZ2V0UmVuZGVyU3VyZmFjZShjb25z
dCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIG5ld1RhcmdldCk7CkBAIC0zNjYsNyArMzU0LDYgQEAg
dGVtcGxhdGUgY29uc3QgUmVnaW9uJiBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21p
dW0sIFJlbmRlclN1cmZhY2VDaHJvbWkKIHRlbXBsYXRlIEludFJlY3QgQ0NPY2NsdXNpb25UcmFj
a2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjpsYXllclNjaXNz
b3JSZWN0SW5UYXJnZXRTdXJmYWNlKGNvbnN0IExheWVyQ2hyb21pdW0qKSBjb25zdDsKIAogdGVt
cGxhdGUgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNl
Pjo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZShJbnRSZWN0IHNjaXNzb3JSZWN0SW5TY3JlZW5TcGFj
ZSk7Ci10ZW1wbGF0ZSBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRl
clN1cmZhY2U+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJblNj
cmVlblNwYWNlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXJEYW1hZ2VDbGllbnRJbXBsKiBzdXJm
YWNlRGFtYWdlQ2xpZW50KTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxD
Q0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6ZW50ZXJUYXJnZXRSZW5kZXJTdXJmYWNlKGNv
bnN0IENDUmVuZGVyU3VyZmFjZSogbmV3VGFyZ2V0KTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNp
b25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6ZmluaXNoZWRUYXJn
ZXRSZW5kZXJTdXJmYWNlKGNvbnN0IENDTGF5ZXJJbXBsKiBvd25pbmdMYXllciwgY29uc3QgQ0NS
ZW5kZXJTdXJmYWNlKiBmaW5pc2hlZFRhcmdldCk7CiB0ZW1wbGF0ZSB2b2lkIENDT2NjbHVzaW9u
VHJhY2tlckJhc2U8Q0NMYXllckltcGwsIENDUmVuZGVyU3VyZmFjZT46OmxlYXZlVG9UYXJnZXRS
ZW5kZXJTdXJmYWNlKGNvbnN0IENDUmVuZGVyU3VyZmFjZSogbmV3VGFyZ2V0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVz
aW9uVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NPY2NsdXNpb25UcmFja2VyLmgKaW5kZXggMTlmYzJjMWRkMGRhYzgyNTViNTY0MjgyNDMy
NzgwM2IxMmFlZWUzNC4uNTk5NmFjNThlY2ExOTNmNTM3N2M0ZDIxNDgxMmFkN2E3MTU5NGZiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NPY2NsdXNpb25UcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmgKQEAgLTM2LDE1ICszNiw2IEBAIGNs
YXNzIENDUmVuZGVyU3VyZmFjZTsKIGNsYXNzIExheWVyQ2hyb21pdW07CiBjbGFzcyBSZW5kZXJT
dXJmYWNlQ2hyb21pdW07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFJlbmRlclN1cmZhY2VUeXBlPgot
Y2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50QmFzZSB7Ci1wdWJsaWM6Ci0gICAg
dmlydHVhbCBGbG9hdFJlY3QgZGFtYWdlUmVjdChjb25zdCBSZW5kZXJTdXJmYWNlVHlwZSopIGNv
bnN0ID0gMDsKLX07Ci0KLXR5cGVkZWYgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50QmFz
ZTxSZW5kZXJTdXJmYWNlQ2hyb21pdW0+IENDT2NjbHVzaW9uVHJhY2tlckRhbWFnZUNsaWVudDsK
LXR5cGVkZWYgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50QmFzZTxDQ1JlbmRlclN1cmZh
Y2U+IENDT2NjbHVzaW9uVHJhY2tlckRhbWFnZUNsaWVudEltcGw7Ci0KIC8vIFRoaXMgY2xhc3Mg
aXMgdXNlZCB0byB0cmFjayBvY2NsdXNpb24gb2YgbGF5ZXJzIHdoaWxlIHRyYXZlcnNpbmcgdGhl
bSBpbiBhIGZyb250LXRvLWJhY2sgb3JkZXIuIEFzIGVhY2ggbGF5ZXIgaXMgdmlzaXRlZCwgb25l
IG9mIHRoZQogLy8gbWV0aG9kcyBpbiB0aGlzIGNsYXNzIGlzIGNhbGxlZCB0byBub3RpZnkgaXQg
YWJvdXQgdGhlIGN1cnJlbnQgdGFyZ2V0IHN1cmZhY2UuCiAvLyBUaGVuLCBvY2NsdXNpb24gaW4g
dGhlIGNvbnRlbnQgc3BhY2Ugb2YgdGhlIGN1cnJlbnQgbGF5ZXIgbWF5IGJlIHF1ZXJpZWQsIHZp
YSBtZXRob2RzIHN1Y2ggYXMgb2NjbHVkZWQoKSBhbmQgdW5vY2NsdWRlZENvbnRlbnRSZWN0KCku
CkBAIC01MywxMCArNDQsOCBAQCB0eXBlZGVmIENDT2NjbHVzaW9uVHJhY2tlckRhbWFnZUNsaWVu
dEJhc2U8Q0NSZW5kZXJTdXJmYWNlPiBDQ09jY2x1c2lvblRyYWNrZXJEYQogdGVtcGxhdGU8dHlw
ZW5hbWUgTGF5ZXJUeXBlLCB0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KIGNsYXNzIENDT2Nj
bHVzaW9uVHJhY2tlckJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENDT2NjbHVzaW9u
VHJhY2tlckJhc2UpOwotICAgIHR5cGVkZWYgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50
QmFzZTxSZW5kZXJTdXJmYWNlVHlwZT4gRGFtYWdlQ2xpZW50VHlwZTsKIHB1YmxpYzoKICAgICBD
Q09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJblNjcmVlblNwYWNlKTsK
LSAgICBDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJblNjcmVlblNw
YWNlLCBjb25zdCBEYW1hZ2VDbGllbnRUeXBlKik7CiAKICAgICAvLyBDYWxsZWQgd2hlbiB2aXNp
dGluZyBhIGxheWVyIHJlcHJlc2VudGluZyBpdHNlbGYuIElmIHRoZSB0YXJnZXQgd2FzIG5vdCBh
bHJlYWR5IGN1cnJlbnQsIHRoZW4gdGhpcyBpbmRpY2F0ZXMgd2UgaGF2ZSBlbnRlcmVkIGEgbmV3
IHN1cmZhY2Ugc3VidHJlZS4KICAgICB2b2lkIGVudGVyVGFyZ2V0UmVuZGVyU3VyZmFjZShjb25z
dCBSZW5kZXJTdXJmYWNlVHlwZSogbmV3VGFyZ2V0KTsKQEAgLTEwNSw3ICs5NCw2IEBAIHByb3Rl
Y3RlZDoKIAogcHJpdmF0ZToKICAgICBJbnRSZWN0IG1fc2Npc3NvclJlY3RJblNjcmVlblNwYWNl
OwotICAgIGNvbnN0IERhbWFnZUNsaWVudFR5cGUqIG1fc3VyZmFjZURhbWFnZUNsaWVudDsKICAg
ICBib29sIG1fdXNlUGFpbnRUcmFja2luZzsgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gcGFp
bnQgdHJhY2tpbmcgaXMgb24gZm9yIHBhaW50IGN1bGxpbmcuCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcApp
bmRleCAyNTQ0MTRkY2I4MTdmMmY3MjZjZDdkOTI0NTM0YzdkZTIyNzExYTE5Li5jM2E1ZjM1YWUz
NTk1ZWE3ZDM2NjNjMzk2MDQyYmZlMGM4MDkzYmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5jcHAKQEAgLTc5LDEy
ICs3OSw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgVGVzdENDT2NjbHVzaW9uVHJh
Y2tlckJhc2UoSW50UmVjdCBzY3JlZW5TY2lzc29yUmVjdCwgY29uc3QgQ0NPY2NsdXNpb25UcmFj
a2VyRGFtYWdlQ2xpZW50QmFzZTxSZW5kZXJTdXJmYWNlVHlwZT4qIGRhbWFnZUNsaWVudCkKLSAg
ICAgICAgOiBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5
cGU+KHNjcmVlblNjaXNzb3JSZWN0LCBkYW1hZ2VDbGllbnQpCi0gICAgICAgICwgbV9vdmVycmlk
ZUxheWVyU2Npc3NvclJlY3QoZmFsc2UpCi0gICAgewotICAgIH0KLQogICAgIFJlZ2lvbiBvY2Ns
dXNpb25JblNjcmVlblNwYWNlKCkgY29uc3QgeyByZXR1cm4gQ0NPY2NsdXNpb25UcmFja2VyQmFz
ZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bV9zdGFjay5sYXN0KCkub2NjbHVzaW9u
SW5TY3JlZW47IH0KICAgICBSZWdpb24gb2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkgY29uc3Qg
eyByZXR1cm4gQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VU
eXBlPjo6bV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5UYXJnZXQ7IH0KIApAQCAtMTAyLDIwICs5
Niw2IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBtX2xheWVyU2Npc3NvclJlY3Q7CiB9OwogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KLWNsYXNzIFRlc3REYW1hZ2VDbGll
bnQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50QmFzZTxSZW5kZXJTdXJm
YWNlVHlwZT4gewotcHVibGljOgotICAgIC8vIFRoZSBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIEZs
b2F0UmVjdCBkYW1hZ2VSZWN0KGNvbnN0IFJlbmRlclN1cmZhY2VUeXBlKikgY29uc3QgeyByZXR1
cm4gbV9kYW1hZ2VSZWN0OyB9Ci0KLSAgICAvLyBUZXN0aW5nIHN0dWZmCi0gICAgVGVzdERhbWFn
ZUNsaWVudChjb25zdCBGbG9hdFJlY3QmIGRhbWFnZVJlY3QpIDogbV9kYW1hZ2VSZWN0KGRhbWFn
ZVJlY3QpIHsgfQotICAgIHZvaWQgc2V0RGFtYWdlUmVjdChjb25zdCBGbG9hdFJlY3QmIGRhbWFn
ZVJlY3QpIHsgbV9kYW1hZ2VSZWN0ID0gZGFtYWdlUmVjdDsgfQotCi1wcml2YXRlOgotICAgIEZs
b2F0UmVjdCBtX2RhbWFnZVJlY3Q7Ci19OwotCiBzdHJ1Y3QgQ0NPY2NsdXNpb25UcmFja2VyVGVz
dE1haW5UaHJlYWRUeXBlcyB7CiAgICAgdHlwZWRlZiBMYXllckNocm9taXVtIExheWVyVHlwZTsK
ICAgICB0eXBlZGVmIFJlbmRlclN1cmZhY2VDaHJvbWl1bSBSZW5kZXJTdXJmYWNlVHlwZTsKQEAg
LTEyNTUsMzEgKzEyMzUsNiBAQCBwcm90ZWN0ZWQ6CiBBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RF
U1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0T3V0c2lkZUNoaWxkKTsK
IAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2Ns
dXNpb25UcmFja2VyVGVzdERhbWFnZVJlY3RPdXRzaWRlQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNp
b25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7Ci1wcm90ZWN0ZWQ6Ci0gICAgdm9p
ZCBydW5NeVRlc3QoKQotICAgIHsKLSAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXll
clR5cGUqIHBhcmVudCA9IHRoaXMtPmNyZWF0ZVJvb3QodGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZs
b2F0UG9pbnQoMCwgMCksIEludFNpemUoMzAwLCAzMDApKTsKLSAgICAgICAgdHlwZW5hbWUgVHlw
ZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2Uo
cGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgy
MDAsIDIwMCksIHRydWUpOwotICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwotCi0g
ICAgICAgIFRlc3REYW1hZ2VDbGllbnQ8dHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBl
PiBkYW1hZ2UoRmxvYXRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpOwotICAgICAgICBUZXN0Q0NP
Y2NsdXNpb25UcmFja2VyQmFzZTx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApLCAmZGFtYWdlKTsKLQotICAgICAgICBvY2NsdXNpb24uZW50ZXJUYXJnZXRSZW5kZXJTdXJm
YWNlKGxheWVyLT5yZW5kZXJTdXJmYWNlKCkpOwotCi0gICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDIwMCwgMjAw
KSkuaXNFbXB0eSgpKTsKLQotICAgICAgICBvY2NsdXNpb24ubWFya09jY2x1ZGVkQmVoaW5kTGF5
ZXIobGF5ZXIpOwotICAgICAgICBvY2NsdXNpb24ubGVhdmVUb1RhcmdldFJlbmRlclN1cmZhY2Uo
cGFyZW50LT5yZW5kZXJTdXJmYWNlKCkpOwotCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJl
Y3QoMjAwLCAxMDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChw
YXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7Ci0gICAgfQotfTsKLQotQUxMX0NDT0ND
TFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3REYW1hZ2VSZWN0T3V0c2lk
ZUNoaWxkKTsKLQotdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgogY2xh
c3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RPdmVyQ2hpbGQgOiBwdWJs
aWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQpAQCAtMTM1NiwzMSArMTMxMSw2IEBAIHByb3RlY3Rl
ZDoKIEFMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0U2Ny
ZWVuU2Npc3NvclJlY3RPdmVyQ2hpbGQpOwogCiB0ZW1wbGF0ZTxjbGFzcyBUeXBlcywgYm9vbCBv
cGFxdWVMYXllcnM+Ci1jbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0RGFtYWdlUmVjdE92ZXJD
aGlsZCA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+
IHsKLXByb3RlY3RlZDoKLSAgICB2b2lkIHJ1bk15VGVzdCgpCi0gICAgewotICAgICAgICB0eXBl
bmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogcGFyZW50ID0gdGhpcy0+Y3JlYXRlUm9vdCh0
aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgzMDAsIDMwMCkp
OwotICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlz
LT5jcmVhdGVEcmF3aW5nU3VyZmFjZShwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9h
dFBvaW50KDAsIDApLCBJbnRTaXplKDIwMCwgMjAwKSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXMtPmNh
bGNEcmF3RXRjKHBhcmVudCk7Ci0KLSAgICAgICAgVGVzdERhbWFnZUNsaWVudDx0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IGRhbWFnZShGbG9hdFJlY3QoMTAwLCAxMDAsIDEwMCwg
MTAwKSk7Ci0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJCYXNlPHR5cGVuYW1lIFR5cGVz
OjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9u
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCksICZkYW1hZ2UpOwotCi0gICAgICAgIG9jY2x1c2lv
bi5lbnRlclRhcmdldFJlbmRlclN1cmZhY2UobGF5ZXItPnJlbmRlclN1cmZhY2UoKSk7Ci0KLSAg
ICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgxMDAsIDEwMCwgMTAwLCAxMDApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGxheWVyLCBJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSkp
OwotCi0gICAgICAgIG9jY2x1c2lvbi5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihsYXllcik7Ci0g
ICAgICAgIG9jY2x1c2lvbi5sZWF2ZVRvVGFyZ2V0UmVuZGVyU3VyZmFjZShwYXJlbnQtPnJlbmRl
clN1cmZhY2UoKSk7Ci0KLSAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKS5pc0VtcHR5KCkpOwot
ICAgIH0KLX07Ci0KLUFMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNr
ZXJUZXN0RGFtYWdlUmVjdE92ZXJDaGlsZCk7Ci0KLXRlbXBsYXRlPGNsYXNzIFR5cGVzLCBib29s
IG9wYXF1ZUxheWVycz4KIGNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllclNjaXNzb3JS
ZWN0UGFydGx5T3ZlckNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMs
IG9wYXF1ZUxheWVycz4gewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0KCkKQEAgLTE0
NjUsMzEgKzEzOTUsNiBAQCBwcm90ZWN0ZWQ6CiBBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1Qo
Q0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0UGFydGx5T3ZlckNoaWxkKTsK
IAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2Ns
dXNpb25UcmFja2VyVGVzdERhbWFnZVJlY3RQYXJ0bHlPdmVyQ2hpbGQgOiBwdWJsaWMgQ0NPY2Ns
dXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7Ci1wcm90ZWN0ZWQ6Ci0gICAg
dm9pZCBydW5NeVRlc3QoKQotICAgIHsKLSAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRM
YXllclR5cGUqIHBhcmVudCA9IHRoaXMtPmNyZWF0ZVJvb3QodGhpcy0+aWRlbnRpdHlNYXRyaXgs
IEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMzAwLCAzMDApKTsKLSAgICAgICAgdHlwZW5hbWUg
VHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZh
Y2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6
ZSgyMDAsIDIwMCksIHRydWUpOwotICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwot
Ci0gICAgICAgIFRlc3REYW1hZ2VDbGllbnQ8dHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VU
eXBlPiBkYW1hZ2UoRmxvYXRSZWN0KDUwLCA1MCwgMjAwLCAyMDApKTsKLSAgICAgICAgVGVzdEND
T2NjbHVzaW9uVHJhY2tlckJhc2U8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUg
VHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAx
MDAwKSwgJmRhbWFnZSk7Ci0KLSAgICAgICAgb2NjbHVzaW9uLmVudGVyVGFyZ2V0UmVuZGVyU3Vy
ZmFjZShsYXllci0+cmVuZGVyU3VyZmFjZSgpKTsKLQotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJ
bnRSZWN0KDUwLCA1MCwgMTUwLCAxNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KGxheWVyLCBJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSkpOwotCi0gICAgICAgIG9jY2x1c2lvbi5t
YXJrT2NjbHVkZWRCZWhpbmRMYXllcihsYXllcik7Ci0gICAgICAgIG9jY2x1c2lvbi5sZWF2ZVRv
VGFyZ2V0UmVuZGVyU3VyZmFjZShwYXJlbnQtPnJlbmRlclN1cmZhY2UoKSk7Ci0KLSAgICAgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCg1MCwgNTAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7Ci0gICAg
fQotfTsKLQotQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRl
c3REYW1hZ2VSZWN0UGFydGx5T3ZlckNoaWxkKTsKLQotdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJv
b2wgb3BhcXVlTGF5ZXJzPgogY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3Nv
clJlY3RPdmVyTm90aGluZyA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBv
cGFxdWVMYXllcnM+IHsKIHByb3RlY3RlZDoKICAgICB2b2lkIHJ1bk15VGVzdCgpCkBAIC0xNTc0
LDMxICsxNDc5LDYgQEAgcHJvdGVjdGVkOgogQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKEND
T2NjbHVzaW9uVHJhY2tlclRlc3RTY3JlZW5TY2lzc29yUmVjdE92ZXJOb3RoaW5nKTsKIAogdGVt
cGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2NsdXNpb25U
cmFja2VyVGVzdERhbWFnZVJlY3RPdmVyTm90aGluZyA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNr
ZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKLXByb3RlY3RlZDoKLSAgICB2b2lkIHJ1bk15
VGVzdCgpCi0gICAgewotICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSog
cGFyZW50ID0gdGhpcy0+Y3JlYXRlUm9vdCh0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2lu
dCgwLCAwKSwgSW50U2l6ZSgzMDAsIDMwMCkpOwotICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29u
dGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nU3VyZmFjZShwYXJlbnQs
IHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDIwMCwgMjAw
KSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7Ci0KLSAgICAgICAg
VGVzdERhbWFnZUNsaWVudDx0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IGRhbWFn
ZShGbG9hdFJlY3QoNTAwLCA1MDAsIDEwMCwgMTAwKSk7Ci0gICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJCYXNlPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpS
ZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCksICZk
YW1hZ2UpOwotCi0gICAgICAgIG9jY2x1c2lvbi5lbnRlclRhcmdldFJlbmRlclN1cmZhY2UobGF5
ZXItPnJlbmRlclN1cmZhY2UoKSk7Ci0KLSAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChsYXllciwgSW50UmVjdCgwLCAwLCAyMDAsIDIwMCkpLmlzRW1w
dHkoKSk7Ci0KLSAgICAgICAgb2NjbHVzaW9uLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGxheWVy
KTsKLSAgICAgICAgb2NjbHVzaW9uLmxlYXZlVG9UYXJnZXRSZW5kZXJTdXJmYWNlKHBhcmVudC0+
cmVuZGVyU3VyZmFjZSgpKTsKLQotICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpLmlzRW1wdHko
KSk7Ci0gICAgfQotfTsKLQotQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9u
VHJhY2tlclRlc3REYW1hZ2VSZWN0T3Zlck5vdGhpbmcpOwotCi10ZW1wbGF0ZTxjbGFzcyBUeXBl
cywgYm9vbCBvcGFxdWVMYXllcnM+CiBjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJT
Y2lzc29yUmVjdEZvckxheWVyT2ZmT3JpZ2luIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRl
c3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4gewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0
KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132097</attachid>
            <date>2012-03-15 12:06:29 -0700</date>
            <delta_ts>2012-03-16 07:30:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81242-20120315150628.patch</filename>
            <type>text/plain</type>
            <size>15516</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUyN2NkOGZjNmFlOTY1
NzFjNGI3NzlhYTA0NjU2NDAxNjc4Yjk3MS4uMjIxYmQwZThkOTkxOGEyMWJjMzA5ZTJkNzc3MWM1
ZjM0NTVlZjNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAzLTE1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHN1cmZhY2UgZGFtYWdlIGNsaWVudCBmcm9tIG9jY2x1c2lvbiB0cmFja2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTI0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvZGUgd2FzIG5vdCB1c2Vk
IHlldCwgc28gbm8gbmV3IHRlc3RzLiBSZW1vdmluZyB0ZXN0cyBpbnN0ZWFkIQorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ojo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjo6OmxheWVyU2Npc3NvclJlY3RJblRhcmdldFN1cmZhY2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNp
b25UcmFja2VyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENDT2NjbHVzaW9uVHJh
Y2tlckJhc2UpOgorCiAyMDEyLTAzLTE0ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgQ29tcGlsZXJTY3Jp
cHRNYXBwaW5nIGZyb20gUmF3U291cmNlQ29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggZjViZWQ0NDg2ODJhZjY4OTA0YzY0ZmMyYzQ1ZjVjMTY1ZTc4ODg1Yy4uMTg2OTI3NzQ0N2I5
Yzc0NGJjNWFiZDViMDRkZWYzYTc4ZGUxYTFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xNSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBzdXJmYWNlIGRhbWFnZSBjbGll
bnQgZnJvbSBvY2NsdXNpb24gdHJhY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODEyNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDMtMTUgIFBldGVyIEJldmVybG9vICA8cGV0ZXJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVz
aW9uVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwCmluZGV4IGIyZGZjYjViNjgwY2M1NzA0OGQ1N2E5
ZjEyMzAxMGIxMGM0NDZjNTkuLmJiZmJlNTZjM2IxNWQzNDMxNzljZjY1NDM0NWFkNDUxM2E2NGZi
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDT2NjbHVzaW9uVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmNwcApAQCAtNDEsMTUgKzQx
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlLCB0
eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJU
eXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBz
Y2lzc29yUmVjdEluU2NyZWVuU3BhY2UpCiAgICAgOiBtX3NjaXNzb3JSZWN0SW5TY3JlZW5TcGFj
ZShzY2lzc29yUmVjdEluU2NyZWVuU3BhY2UpCi0gICAgLCBtX3N1cmZhY2VEYW1hZ2VDbGllbnQo
MCkKLSAgICAsIG1fdXNlUGFpbnRUcmFja2luZyh0cnVlKSAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
d2hlbiBwYWludCB0cmFja2luZyBpcyBvbiBmb3IgcGFpbnQgY3VsbGluZy4KLXsKLX0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlLCB0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KLUND
T2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OkNDT2Nj
bHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY2lzc29yUmVjdEluU2NyZWVuU3BhY2UsIGNvbnN0
IERhbWFnZUNsaWVudFR5cGUqIHN1cmZhY2VEYW1hZ2VDbGllbnQpCi0gICAgOiBtX3NjaXNzb3JS
ZWN0SW5TY3JlZW5TcGFjZShzY2lzc29yUmVjdEluU2NyZWVuU3BhY2UpCi0gICAgLCBtX3N1cmZh
Y2VEYW1hZ2VDbGllbnQoc3VyZmFjZURhbWFnZUNsaWVudCkKICAgICAsIG1fdXNlUGFpbnRUcmFj
a2luZyh0cnVlKSAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBwYWludCB0cmFja2luZyBpcyBv
biBmb3IgcGFpbnQgY3VsbGluZy4KIHsKIH0KQEAgLTMzMCw4ICszMjEsNyBAQCBJbnRSZWN0IEND
T2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OmxheWVy
U2Npc3NvclJlY3RJbgogewogICAgIGNvbnN0IFJlbmRlclN1cmZhY2VUeXBlKiB0YXJnZXRTdXJm
YWNlID0gbV9zdGFjay5sYXN0KCkuc3VyZmFjZTsKICAgICBGbG9hdFJlY3QgdG90YWxTY2lzc29y
ID0gdGFyZ2V0U3VyZmFjZS0+Y29udGVudFJlY3QoKTsKLSAgICBpZiAobV9zdXJmYWNlRGFtYWdl
Q2xpZW50KQotICAgICAgICB0b3RhbFNjaXNzb3IuaW50ZXJzZWN0KG1fc3VyZmFjZURhbWFnZUNs
aWVudC0+ZGFtYWdlUmVjdCh0YXJnZXRTdXJmYWNlKSk7CisgICAgLy8gRklYTUU6IGxheWVyLT5j
bGlwUmVjdCgpIGFuZCBsYXllci0+dXNlc0xheWVyQ2xpcHBpbmcoKSBpcyBjaGFuZ2luZzogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNjIyCiAgICAgaWYgKCFsYXll
ci0+Y2xpcFJlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgIHRvdGFsU2Npc3Nvci5pbnRlcnNlY3Qo
bGF5ZXItPmNsaXBSZWN0KCkpOwogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHRvdGFsU2Np
c3Nvcik7CkBAIC0zNTQsNyArMzQ0LDYgQEAgY29uc3QgUmVnaW9uJiBDQ09jY2x1c2lvblRyYWNr
ZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpjdXJyZW50T2NjbHUKIAogLy8g
RGVjbGFyZSB0aGUgcG9zc2libGUgZnVuY3Rpb25zIGhlcmUgZm9yIHRoZSBsaW5rZXIuCiB0ZW1w
bGF0ZSBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VD
aHJvbWl1bT46OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY2lzc29yUmVjdEluU2Ny
ZWVuU3BhY2UpOwotdGVtcGxhdGUgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVt
LCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qg
c2Npc3NvclJlY3RJblNjcmVlblNwYWNlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXJEYW1hZ2VD
bGllbnQqIHN1cmZhY2VEYW1hZ2VDbGllbnQpOwogdGVtcGxhdGUgdm9pZCBDQ09jY2x1c2lvblRy
YWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46OmVudGVyVGFy
Z2V0UmVuZGVyU3VyZmFjZShjb25zdCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIG5ld1RhcmdldCk7
CiB0ZW1wbGF0ZSB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVu
ZGVyU3VyZmFjZUNocm9taXVtPjo6ZmluaXNoZWRUYXJnZXRSZW5kZXJTdXJmYWNlKGNvbnN0IExh
eWVyQ2hyb21pdW0qIG93bmluZ0xheWVyLCBjb25zdCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIGZp
bmlzaGVkVGFyZ2V0KTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXll
ckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjpsZWF2ZVRvVGFyZ2V0UmVuZGVyU3Vy
ZmFjZShjb25zdCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIG5ld1RhcmdldCk7CkBAIC0zNjYsNyAr
MzU1LDYgQEAgdGVtcGxhdGUgY29uc3QgUmVnaW9uJiBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExh
eWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWkKIHRlbXBsYXRlIEludFJlY3QgQ0NPY2Ns
dXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+Ojps
YXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKGNvbnN0IExheWVyQ2hyb21pdW0qKSBjb25z
dDsKIAogdGVtcGxhdGUgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5k
ZXJTdXJmYWNlPjo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZShJbnRSZWN0IHNjaXNzb3JSZWN0SW5T
Y3JlZW5TcGFjZSk7Ci10ZW1wbGF0ZSBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBs
LCBDQ1JlbmRlclN1cmZhY2U+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3Nv
clJlY3RJblNjcmVlblNwYWNlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXJEYW1hZ2VDbGllbnRJ
bXBsKiBzdXJmYWNlRGFtYWdlQ2xpZW50KTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFj
a2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6ZW50ZXJUYXJnZXRSZW5kZXJT
dXJmYWNlKGNvbnN0IENDUmVuZGVyU3VyZmFjZSogbmV3VGFyZ2V0KTsKIHRlbXBsYXRlIHZvaWQg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6Zmlu
aXNoZWRUYXJnZXRSZW5kZXJTdXJmYWNlKGNvbnN0IENDTGF5ZXJJbXBsKiBvd25pbmdMYXllciwg
Y29uc3QgQ0NSZW5kZXJTdXJmYWNlKiBmaW5pc2hlZFRhcmdldCk7CiB0ZW1wbGF0ZSB2b2lkIEND
T2NjbHVzaW9uVHJhY2tlckJhc2U8Q0NMYXllckltcGwsIENDUmVuZGVyU3VyZmFjZT46OmxlYXZl
VG9UYXJnZXRSZW5kZXJTdXJmYWNlKGNvbnN0IENDUmVuZGVyU3VyZmFjZSogbmV3VGFyZ2V0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDT2NjbHVzaW9uVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmgKaW5kZXggMTlmYzJjMWRkMGRhYzgyNTVi
NTY0MjgyNDMyNzgwM2IxMmFlZWUzNC4uNTk5NmFjNThlY2ExOTNmNTM3N2M0ZDIxNDgxMmFkN2E3
MTU5NGZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmgKQEAgLTM2LDE1ICsz
Niw2IEBAIGNsYXNzIENDUmVuZGVyU3VyZmFjZTsKIGNsYXNzIExheWVyQ2hyb21pdW07CiBjbGFz
cyBSZW5kZXJTdXJmYWNlQ2hyb21pdW07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFJlbmRlclN1cmZh
Y2VUeXBlPgotY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50QmFzZSB7Ci1wdWJs
aWM6Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgZGFtYWdlUmVjdChjb25zdCBSZW5kZXJTdXJmYWNl
VHlwZSopIGNvbnN0ID0gMDsKLX07Ci0KLXR5cGVkZWYgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdl
Q2xpZW50QmFzZTxSZW5kZXJTdXJmYWNlQ2hyb21pdW0+IENDT2NjbHVzaW9uVHJhY2tlckRhbWFn
ZUNsaWVudDsKLXR5cGVkZWYgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50QmFzZTxDQ1Jl
bmRlclN1cmZhY2U+IENDT2NjbHVzaW9uVHJhY2tlckRhbWFnZUNsaWVudEltcGw7Ci0KIC8vIFRo
aXMgY2xhc3MgaXMgdXNlZCB0byB0cmFjayBvY2NsdXNpb24gb2YgbGF5ZXJzIHdoaWxlIHRyYXZl
cnNpbmcgdGhlbSBpbiBhIGZyb250LXRvLWJhY2sgb3JkZXIuIEFzIGVhY2ggbGF5ZXIgaXMgdmlz
aXRlZCwgb25lIG9mIHRoZQogLy8gbWV0aG9kcyBpbiB0aGlzIGNsYXNzIGlzIGNhbGxlZCB0byBu
b3RpZnkgaXQgYWJvdXQgdGhlIGN1cnJlbnQgdGFyZ2V0IHN1cmZhY2UuCiAvLyBUaGVuLCBvY2Ns
dXNpb24gaW4gdGhlIGNvbnRlbnQgc3BhY2Ugb2YgdGhlIGN1cnJlbnQgbGF5ZXIgbWF5IGJlIHF1
ZXJpZWQsIHZpYSBtZXRob2RzIHN1Y2ggYXMgb2NjbHVkZWQoKSBhbmQgdW5vY2NsdWRlZENvbnRl
bnRSZWN0KCkuCkBAIC01MywxMCArNDQsOCBAQCB0eXBlZGVmIENDT2NjbHVzaW9uVHJhY2tlckRh
bWFnZUNsaWVudEJhc2U8Q0NSZW5kZXJTdXJmYWNlPiBDQ09jY2x1c2lvblRyYWNrZXJEYQogdGVt
cGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlLCB0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KIGNs
YXNzIENDT2NjbHVzaW9uVHJhY2tlckJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEND
T2NjbHVzaW9uVHJhY2tlckJhc2UpOwotICAgIHR5cGVkZWYgQ0NPY2NsdXNpb25UcmFja2VyRGFt
YWdlQ2xpZW50QmFzZTxSZW5kZXJTdXJmYWNlVHlwZT4gRGFtYWdlQ2xpZW50VHlwZTsKIHB1Ymxp
YzoKICAgICBDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJblNjcmVl
blNwYWNlKTsKLSAgICBDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJ
blNjcmVlblNwYWNlLCBjb25zdCBEYW1hZ2VDbGllbnRUeXBlKik7CiAKICAgICAvLyBDYWxsZWQg
d2hlbiB2aXNpdGluZyBhIGxheWVyIHJlcHJlc2VudGluZyBpdHNlbGYuIElmIHRoZSB0YXJnZXQg
d2FzIG5vdCBhbHJlYWR5IGN1cnJlbnQsIHRoZW4gdGhpcyBpbmRpY2F0ZXMgd2UgaGF2ZSBlbnRl
cmVkIGEgbmV3IHN1cmZhY2Ugc3VidHJlZS4KICAgICB2b2lkIGVudGVyVGFyZ2V0UmVuZGVyU3Vy
ZmFjZShjb25zdCBSZW5kZXJTdXJmYWNlVHlwZSogbmV3VGFyZ2V0KTsKQEAgLTEwNSw3ICs5NCw2
IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBJbnRSZWN0IG1fc2Npc3NvclJlY3RJblNj
cmVlblNwYWNlOwotICAgIGNvbnN0IERhbWFnZUNsaWVudFR5cGUqIG1fc3VyZmFjZURhbWFnZUNs
aWVudDsKICAgICBib29sIG1fdXNlUGFpbnRUcmFja2luZzsgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IHdoZW4gcGFpbnQgdHJhY2tpbmcgaXMgb24gZm9yIHBhaW50IGN1bGxpbmcuCiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRl
c3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJU
ZXN0LmNwcAppbmRleCAyNTQ0MTRkY2I4MTdmMmY3MjZjZDdkOTI0NTM0YzdkZTIyNzExYTE5Li5j
M2E1ZjM1YWUzNTk1ZWE3ZDM2NjNjMzk2MDQyYmZlMGM4MDkzYmI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5jcHAK
QEAgLTc5LDEyICs3OSw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgVGVzdENDT2Nj
bHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY3JlZW5TY2lzc29yUmVjdCwgY29uc3QgQ0NPY2Ns
dXNpb25UcmFja2VyRGFtYWdlQ2xpZW50QmFzZTxSZW5kZXJTdXJmYWNlVHlwZT4qIGRhbWFnZUNs
aWVudCkKLSAgICAgICAgOiBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVy
U3VyZmFjZVR5cGU+KHNjcmVlblNjaXNzb3JSZWN0LCBkYW1hZ2VDbGllbnQpCi0gICAgICAgICwg
bV9vdmVycmlkZUxheWVyU2Npc3NvclJlY3QoZmFsc2UpCi0gICAgewotICAgIH0KLQogICAgIFJl
Z2lvbiBvY2NsdXNpb25JblNjcmVlblNwYWNlKCkgY29uc3QgeyByZXR1cm4gQ0NPY2NsdXNpb25U
cmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bV9zdGFjay5sYXN0KCku
b2NjbHVzaW9uSW5TY3JlZW47IH0KICAgICBSZWdpb24gb2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkgY29uc3QgeyByZXR1cm4gQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRl
clN1cmZhY2VUeXBlPjo6bV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5UYXJnZXQ7IH0KIApAQCAt
MTAyLDIwICs5Niw2IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBtX2xheWVyU2Npc3NvclJlY3Q7
CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KLWNsYXNzIFRlc3RE
YW1hZ2VDbGllbnQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50QmFzZTxS
ZW5kZXJTdXJmYWNlVHlwZT4gewotcHVibGljOgotICAgIC8vIFRoZSBpbnRlcmZhY2UKLSAgICB2
aXJ0dWFsIEZsb2F0UmVjdCBkYW1hZ2VSZWN0KGNvbnN0IFJlbmRlclN1cmZhY2VUeXBlKikgY29u
c3QgeyByZXR1cm4gbV9kYW1hZ2VSZWN0OyB9Ci0KLSAgICAvLyBUZXN0aW5nIHN0dWZmCi0gICAg
VGVzdERhbWFnZUNsaWVudChjb25zdCBGbG9hdFJlY3QmIGRhbWFnZVJlY3QpIDogbV9kYW1hZ2VS
ZWN0KGRhbWFnZVJlY3QpIHsgfQotICAgIHZvaWQgc2V0RGFtYWdlUmVjdChjb25zdCBGbG9hdFJl
Y3QmIGRhbWFnZVJlY3QpIHsgbV9kYW1hZ2VSZWN0ID0gZGFtYWdlUmVjdDsgfQotCi1wcml2YXRl
OgotICAgIEZsb2F0UmVjdCBtX2RhbWFnZVJlY3Q7Ci19OwotCiBzdHJ1Y3QgQ0NPY2NsdXNpb25U
cmFja2VyVGVzdE1haW5UaHJlYWRUeXBlcyB7CiAgICAgdHlwZWRlZiBMYXllckNocm9taXVtIExh
eWVyVHlwZTsKICAgICB0eXBlZGVmIFJlbmRlclN1cmZhY2VDaHJvbWl1bSBSZW5kZXJTdXJmYWNl
VHlwZTsKQEAgLTEyNTUsMzEgKzEyMzUsNiBAQCBwcm90ZWN0ZWQ6CiBBTExfQ0NPQ0NMVVNJT05U
UkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0T3V0c2lk
ZUNoaWxkKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xh
c3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdERhbWFnZVJlY3RPdXRzaWRlQ2hpbGQgOiBwdWJsaWMg
Q0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7Ci1wcm90ZWN0ZWQ6
Ci0gICAgdm9pZCBydW5NeVRlc3QoKQotICAgIHsKLSAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNv
bnRlbnRMYXllclR5cGUqIHBhcmVudCA9IHRoaXMtPmNyZWF0ZVJvb3QodGhpcy0+aWRlbnRpdHlN
YXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMzAwLCAzMDApKTsKLSAgICAgICAgdHlw
ZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2lu
Z1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwg
SW50U2l6ZSgyMDAsIDIwMCksIHRydWUpOwotICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJl
bnQpOwotCi0gICAgICAgIFRlc3REYW1hZ2VDbGllbnQ8dHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1
cmZhY2VUeXBlPiBkYW1hZ2UoRmxvYXRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpOwotICAgICAg
ICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyQmFzZTx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApLCAmZGFtYWdlKTsKLQotICAgICAgICBvY2NsdXNpb24uZW50ZXJUYXJnZXRS
ZW5kZXJTdXJmYWNlKGxheWVyLT5yZW5kZXJTdXJmYWNlKCkpOwotCi0gICAgICAgIEVYUEVDVF9U
UlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAs
IDIwMCwgMjAwKSkuaXNFbXB0eSgpKTsKLQotICAgICAgICBvY2NsdXNpb24ubWFya09jY2x1ZGVk
QmVoaW5kTGF5ZXIobGF5ZXIpOwotICAgICAgICBvY2NsdXNpb24ubGVhdmVUb1RhcmdldFJlbmRl
clN1cmZhY2UocGFyZW50LT5yZW5kZXJTdXJmYWNlKCkpOwotCi0gICAgICAgIEVYUEVDVF9FUV9S
RUNUKEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7Ci0gICAgfQotfTsKLQot
QUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3REYW1hZ2VS
ZWN0T3V0c2lkZUNoaWxkKTsKLQotdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5
ZXJzPgogY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RPdmVyQ2hp
bGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7
CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQpAQCAtMTM1NiwzMSArMTMxMSw2IEBA
IHByb3RlY3RlZDoKIEFMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNr
ZXJUZXN0U2NyZWVuU2Npc3NvclJlY3RPdmVyQ2hpbGQpOwogCiB0ZW1wbGF0ZTxjbGFzcyBUeXBl
cywgYm9vbCBvcGFxdWVMYXllcnM+Ci1jbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0RGFtYWdl
UmVjdE92ZXJDaGlsZCA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFx
dWVMYXllcnM+IHsKLXByb3RlY3RlZDoKLSAgICB2b2lkIHJ1bk15VGVzdCgpCi0gICAgewotICAg
ICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogcGFyZW50ID0gdGhpcy0+Y3Jl
YXRlUm9vdCh0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgz
MDAsIDMwMCkpOwotICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogbGF5
ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nU3VyZmFjZShwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0
cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDIwMCwgMjAwKSwgdHJ1ZSk7Ci0gICAgICAg
IHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7Ci0KLSAgICAgICAgVGVzdERhbWFnZUNsaWVudDx0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IGRhbWFnZShGbG9hdFJlY3QoMTAwLCAx
MDAsIDEwMCwgMTAwKSk7Ci0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJCYXNlPHR5cGVu
YW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4g
b2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCksICZkYW1hZ2UpOwotCi0gICAgICAg
IG9jY2x1c2lvbi5lbnRlclRhcmdldFJlbmRlclN1cmZhY2UobGF5ZXItPnJlbmRlclN1cmZhY2Uo
KSk7Ci0KLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgxMDAsIDEwMCwgMTAwLCAxMDAp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGxheWVyLCBJbnRSZWN0KDAsIDAsIDIw
MCwgMjAwKSkpOwotCi0gICAgICAgIG9jY2x1c2lvbi5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihs
YXllcik7Ci0gICAgICAgIG9jY2x1c2lvbi5sZWF2ZVRvVGFyZ2V0UmVuZGVyU3VyZmFjZShwYXJl
bnQtPnJlbmRlclN1cmZhY2UoKSk7Ci0KLSAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKS5pc0Vt
cHR5KCkpOwotICAgIH0KLX07Ci0KLUFMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1
c2lvblRyYWNrZXJUZXN0RGFtYWdlUmVjdE92ZXJDaGlsZCk7Ci0KLXRlbXBsYXRlPGNsYXNzIFR5
cGVzLCBib29sIG9wYXF1ZUxheWVycz4KIGNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXll
clNjaXNzb3JSZWN0UGFydGx5T3ZlckNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRl
c3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4gewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0
KCkKQEAgLTE0NjUsMzEgKzEzOTUsNiBAQCBwcm90ZWN0ZWQ6CiBBTExfQ0NPQ0NMVVNJT05UUkFD
S0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0UGFydGx5T3Zl
ckNoaWxkKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xh
c3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdERhbWFnZVJlY3RQYXJ0bHlPdmVyQ2hpbGQgOiBwdWJs
aWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7Ci1wcm90ZWN0
ZWQ6Ci0gICAgdm9pZCBydW5NeVRlc3QoKQotICAgIHsKLSAgICAgICAgdHlwZW5hbWUgVHlwZXM6
OkNvbnRlbnRMYXllclR5cGUqIHBhcmVudCA9IHRoaXMtPmNyZWF0ZVJvb3QodGhpcy0+aWRlbnRp
dHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMzAwLCAzMDApKTsKLSAgICAgICAg
dHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJh
d2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAw
KSwgSW50U2l6ZSgyMDAsIDIwMCksIHRydWUpOwotICAgICAgICB0aGlzLT5jYWxjRHJhd0V0Yyhw
YXJlbnQpOwotCi0gICAgICAgIFRlc3REYW1hZ2VDbGllbnQ8dHlwZW5hbWUgVHlwZXM6OlJlbmRl
clN1cmZhY2VUeXBlPiBkYW1hZ2UoRmxvYXRSZWN0KDUwLCA1MCwgMjAwLCAyMDApKTsKLSAgICAg
ICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlckJhc2U8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwg
dHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAw
LCAxMDAwLCAxMDAwKSwgJmRhbWFnZSk7Ci0KLSAgICAgICAgb2NjbHVzaW9uLmVudGVyVGFyZ2V0
UmVuZGVyU3VyZmFjZShsYXllci0+cmVuZGVyU3VyZmFjZSgpKTsKLQotICAgICAgICBFWFBFQ1Rf
RVFfUkVDVChJbnRSZWN0KDUwLCA1MCwgMTUwLCAxNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KGxheWVyLCBJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSkpOwotCi0gICAgICAgIG9j
Y2x1c2lvbi5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihsYXllcik7Ci0gICAgICAgIG9jY2x1c2lv
bi5sZWF2ZVRvVGFyZ2V0UmVuZGVyU3VyZmFjZShwYXJlbnQtPnJlbmRlclN1cmZhY2UoKSk7Ci0K
LSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCg1MCwgNTAsIDIwMCwgMjAwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDAp
KSk7Ci0gICAgfQotfTsKLQotQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9u
VHJhY2tlclRlc3REYW1hZ2VSZWN0UGFydGx5T3ZlckNoaWxkKTsKLQotdGVtcGxhdGU8Y2xhc3Mg
VHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgogY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExh
eWVyU2Npc3NvclJlY3RPdmVyTm90aGluZyA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0
PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKIHByb3RlY3RlZDoKICAgICB2b2lkIHJ1bk15VGVzdCgp
CkBAIC0xNTc0LDMxICsxNDc5LDYgQEAgcHJvdGVjdGVkOgogQUxMX0NDT0NDTFVTSU9OVFJBQ0tF
Ul9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RTY3JlZW5TY2lzc29yUmVjdE92ZXJOb3RoaW5n
KTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NP
Y2NsdXNpb25UcmFja2VyVGVzdERhbWFnZVJlY3RPdmVyTm90aGluZyA6IHB1YmxpYyBDQ09jY2x1
c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKLXByb3RlY3RlZDoKLSAgICB2
b2lkIHJ1bk15VGVzdCgpCi0gICAgewotICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExh
eWVyVHlwZSogcGFyZW50ID0gdGhpcy0+Y3JlYXRlUm9vdCh0aGlzLT5pZGVudGl0eU1hdHJpeCwg
RmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgzMDAsIDMwMCkpOwotICAgICAgICB0eXBlbmFtZSBU
eXBlczo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nU3VyZmFj
ZShwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXpl
KDIwMCwgMjAwKSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7Ci0K
LSAgICAgICAgVGVzdERhbWFnZUNsaWVudDx0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IGRhbWFnZShGbG9hdFJlY3QoNTAwLCA1MDAsIDEwMCwgMTAwKSk7Ci0gICAgICAgIFRlc3RD
Q09jY2x1c2lvblRyYWNrZXJCYXNlPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCksICZkYW1hZ2UpOwotCi0gICAgICAgIG9jY2x1c2lvbi5lbnRlclRhcmdldFJlbmRlclN1
cmZhY2UobGF5ZXItPnJlbmRlclN1cmZhY2UoKSk7Ci0KLSAgICAgICAgRVhQRUNUX1RSVUUob2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChsYXllciwgSW50UmVjdCgwLCAwLCAyMDAsIDIw
MCkpLmlzRW1wdHkoKSk7Ci0KLSAgICAgICAgb2NjbHVzaW9uLm1hcmtPY2NsdWRlZEJlaGluZExh
eWVyKGxheWVyKTsKLSAgICAgICAgb2NjbHVzaW9uLmxlYXZlVG9UYXJnZXRSZW5kZXJTdXJmYWNl
KHBhcmVudC0+cmVuZGVyU3VyZmFjZSgpKTsKLQotICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkp
LmlzRW1wdHkoKSk7Ci0gICAgfQotfTsKLQotQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKEND
T2NjbHVzaW9uVHJhY2tlclRlc3REYW1hZ2VSZWN0T3Zlck5vdGhpbmcpOwotCi10ZW1wbGF0ZTxj
bGFzcyBUeXBlcywgYm9vbCBvcGFxdWVMYXllcnM+CiBjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJU
ZXN0TGF5ZXJTY2lzc29yUmVjdEZvckxheWVyT2ZmT3JpZ2luIDogcHVibGljIENDT2NjbHVzaW9u
VHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4gewogcHJvdGVjdGVkOgogICAgIHZvaWQg
cnVuTXlUZXN0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132279</attachid>
            <date>2012-03-16 07:30:51 -0700</date>
            <delta_ts>2012-03-16 09:59:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81242-20120316103049.patch</filename>
            <type>text/plain</type>
            <size>15680</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE4MDRkN2E3Mzc5ZjFi
OTc3OTBkZjE3MWMzZGRkZDdiMDQyODJhMi4uYjNjZmIxZjBlMGFmYzk3N2Q3MzFmYWZiYjcyZjc0
YWRmNDJhMmUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAzLTE1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHN1cmZhY2UgZGFtYWdlIGNsaWVudCBmcm9tIG9jY2x1c2lvbiB0cmFja2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTI0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFkcmllbm5lIFdhbGtlci4KKworICAgICAgICBDb2RlIHdhcyBub3QgdXNl
ZCB5ZXQsIHNvIG5vIG5ldyB0ZXN0cy4gUmVtb3ZpbmcgdGVzdHMgaW5zdGVhZCEKKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjo6OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6OjpsYXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVz
aW9uVHJhY2tlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ09jY2x1c2lvblRy
YWNrZXJCYXNlKToKKwogMjAxMi0wMy0xNiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVGhlIElETCBwYXJzZXIgc2hvdWxkIHN1cHBvcnQgc2VxdWVuY2U8
VD4gdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBjZDY4YjFlMjM2Yjk5NWJkY2Ri
OGEyZTBjMzYwYjRkOGE1MzhlZGY1Li40MGE0ZmJlNTViODljM2NkOGUyOTdlMGFjZDU0MDE5NzRi
MTJmZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEy
LTAzLTE1ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtj
aHJvbWl1bV0gUmVtb3ZlIHN1cmZhY2UgZGFtYWdlIGNsaWVudCBmcm9tIG9jY2x1c2lvbiB0cmFj
a2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTI0
MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkcmllbm5lIFdhbGtlci4KKworICAgICAgICAqIHRl
c3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIw
MTItMDMtMTYgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBUaHJlYWRlZCBvcGFjaXR5IGFuaW1hdGlvbiBqdW1wIHRvIG9wYWNpdHkgb2Yg
MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NPY2NsdXNpb25UcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5jcHAKaW5kZXggZTBhM2U0ZjhlYWUw
ZTljMDlmZWIxZGFkYmE5ZWE0ODI4M2U1MDk2OC4uYzY5YTRkOWM4MWQyMTQ4YWUwYWM3ZDc4OTkw
NjEyYThmZWJmOTViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwCkBA
IC00MSwxNiArNDEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBM
YXllclR5cGUsIHR5cGVuYW1lIFJlbmRlclN1cmZhY2VUeXBlPgogQ0NPY2NsdXNpb25UcmFja2Vy
QmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6Q0NPY2NsdXNpb25UcmFja2VyQmFz
ZShJbnRSZWN0IHNjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSkKICAgICA6IG1fc2Npc3NvclJlY3RJ
blNjcmVlblNwYWNlKHNjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSkKLSAgICAsIG1fc3VyZmFjZURh
bWFnZUNsaWVudCgwKQotICAgICwgbV9vdmVyZHJhd01ldHJpY3MoQ0NPdmVyZHJhd01ldHJpY3M6
OmNyZWF0ZSgpKQotICAgICwgbV91c2VQYWludFRyYWNraW5nKHRydWUpIC8vIEZJWE1FOiBSZW1v
dmUgdGhpcyB3aGVuIHBhaW50IHRyYWNraW5nIGlzIG9uIGZvciBwYWludCBjdWxsaW5nLgotewot
fQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBMYXllclR5cGUsIHR5cGVuYW1lIFJlbmRlclN1cmZhY2VU
eXBlPgotQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBl
Pjo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZShJbnRSZWN0IHNjaXNzb3JSZWN0SW5TY3JlZW5TcGFj
ZSwgY29uc3QgRGFtYWdlQ2xpZW50VHlwZSogc3VyZmFjZURhbWFnZUNsaWVudCkKLSAgICA6IG1f
c2Npc3NvclJlY3RJblNjcmVlblNwYWNlKHNjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSkKLSAgICAs
IG1fc3VyZmFjZURhbWFnZUNsaWVudChzdXJmYWNlRGFtYWdlQ2xpZW50KQogICAgICwgbV9vdmVy
ZHJhd01ldHJpY3MoQ0NPdmVyZHJhd01ldHJpY3M6OmNyZWF0ZSgpKQogICAgICwgbV91c2VQYWlu
dFRyYWNraW5nKHRydWUpIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB3aGVuIHBhaW50IHRyYWNraW5n
IGlzIG9uIGZvciBwYWludCBjdWxsaW5nLgogewpAQCAtMzMzLDggKzMyMyw3IEBAIEludFJlY3Qg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bGF5
ZXJTY2lzc29yUmVjdEluCiB7CiAgICAgY29uc3QgUmVuZGVyU3VyZmFjZVR5cGUqIHRhcmdldFN1
cmZhY2UgPSBtX3N0YWNrLmxhc3QoKS5zdXJmYWNlOwogICAgIEZsb2F0UmVjdCB0b3RhbFNjaXNz
b3IgPSB0YXJnZXRTdXJmYWNlLT5jb250ZW50UmVjdCgpOwotICAgIGlmIChtX3N1cmZhY2VEYW1h
Z2VDbGllbnQpCi0gICAgICAgIHRvdGFsU2Npc3Nvci5pbnRlcnNlY3QobV9zdXJmYWNlRGFtYWdl
Q2xpZW50LT5kYW1hZ2VSZWN0KHRhcmdldFN1cmZhY2UpKTsKKyAgICAvLyBGSVhNRTogbGF5ZXIt
PmNsaXBSZWN0KCkgYW5kIGxheWVyLT51c2VzTGF5ZXJDbGlwcGluZygpIGlzIGNoYW5naW5nOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA2MjIKICAgICBpZiAoIWxh
eWVyLT5jbGlwUmVjdCgpLmlzRW1wdHkoKSkKICAgICAgICAgdG90YWxTY2lzc29yLmludGVyc2Vj
dChsYXllci0+Y2xpcFJlY3QoKSk7CiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QodG90YWxT
Y2lzc29yKTsKQEAgLTM1Nyw3ICszNDYsNiBAQCBjb25zdCBSZWdpb24mIENDT2NjbHVzaW9uVHJh
Y2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OmN1cnJlbnRPY2NsdQogCiAv
LyBEZWNsYXJlIHRoZSBwb3NzaWJsZSBmdW5jdGlvbnMgaGVyZSBmb3IgdGhlIGxpbmtlci4KIHRl
bXBsYXRlIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3VyZmFj
ZUNocm9taXVtPjo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZShJbnRSZWN0IHNjaXNzb3JSZWN0SW5T
Y3JlZW5TcGFjZSk7Ci10ZW1wbGF0ZSBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21p
dW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVj
dCBzY2lzc29yUmVjdEluU2NyZWVuU3BhY2UsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlckRhbWFn
ZUNsaWVudCogc3VyZmFjZURhbWFnZUNsaWVudCk7CiB0ZW1wbGF0ZSB2b2lkIENDT2NjbHVzaW9u
VHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3VyZmFjZUNocm9taXVtPjo6ZW50ZXJU
YXJnZXRSZW5kZXJTdXJmYWNlKGNvbnN0IFJlbmRlclN1cmZhY2VDaHJvbWl1bSogbmV3VGFyZ2V0
KTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBS
ZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjpmaW5pc2hlZFRhcmdldFJlbmRlclN1cmZhY2UoY29uc3Qg
TGF5ZXJDaHJvbWl1bSogb3duaW5nTGF5ZXIsIGNvbnN0IFJlbmRlclN1cmZhY2VDaHJvbWl1bSog
ZmluaXNoZWRUYXJnZXQpOwogdGVtcGxhdGUgdm9pZCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExh
eWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46OmxlYXZlVG9UYXJnZXRSZW5kZXJT
dXJmYWNlKGNvbnN0IFJlbmRlclN1cmZhY2VDaHJvbWl1bSogbmV3VGFyZ2V0KTsKQEAgLTM2OSw3
ICszNTcsNiBAQCB0ZW1wbGF0ZSBjb25zdCBSZWdpb24mIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8
TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3VyZmFjZUNocm9taQogdGVtcGxhdGUgSW50UmVjdCBDQ09j
Y2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46
OmxheWVyU2Npc3NvclJlY3RJblRhcmdldFN1cmZhY2UoY29uc3QgTGF5ZXJDaHJvbWl1bSopIGNv
bnN0OwogCiB0ZW1wbGF0ZSBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1Jl
bmRlclN1cmZhY2U+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJ
blNjcmVlblNwYWNlKTsKLXRlbXBsYXRlIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8Q0NMYXllcklt
cGwsIENDUmVuZGVyU3VyZmFjZT46OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY2lz
c29yUmVjdEluU2NyZWVuU3BhY2UsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlckRhbWFnZUNsaWVu
dEltcGwqIHN1cmZhY2VEYW1hZ2VDbGllbnQpOwogdGVtcGxhdGUgdm9pZCBDQ09jY2x1c2lvblRy
YWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1cmZhY2U+OjplbnRlclRhcmdldFJlbmRl
clN1cmZhY2UoY29uc3QgQ0NSZW5kZXJTdXJmYWNlKiBuZXdUYXJnZXQpOwogdGVtcGxhdGUgdm9p
ZCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1cmZhY2U+Ojpm
aW5pc2hlZFRhcmdldFJlbmRlclN1cmZhY2UoY29uc3QgQ0NMYXllckltcGwqIG93bmluZ0xheWVy
LCBjb25zdCBDQ1JlbmRlclN1cmZhY2UqIGZpbmlzaGVkVGFyZ2V0KTsKIHRlbXBsYXRlIHZvaWQg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6bGVh
dmVUb1RhcmdldFJlbmRlclN1cmZhY2UoY29uc3QgQ0NSZW5kZXJTdXJmYWNlKiBuZXdUYXJnZXQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NPY2NsdXNpb25UcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuaAppbmRleCAxMzRkNGNjMmI4MmFhMzNk
NWVkN2NhMmVkNGIxNTM2ZTNlMjE0Yjg5Li4yODJkZWZmZGYyNTY0YmUzZjkwMTNkMmU5MjAyNmU5
YjhkNmUyYWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuaApAQCAtMzcsMTUg
KzM3LDYgQEAgY2xhc3MgQ0NSZW5kZXJTdXJmYWNlOwogY2xhc3MgTGF5ZXJDaHJvbWl1bTsKIGNs
YXNzIFJlbmRlclN1cmZhY2VDaHJvbWl1bTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgUmVuZGVyU3Vy
ZmFjZVR5cGU+Ci1jbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJEYW1hZ2VDbGllbnRCYXNlIHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBkYW1hZ2VSZWN0KGNvbnN0IFJlbmRlclN1cmZh
Y2VUeXBlKikgY29uc3QgPSAwOwotfTsKLQotdHlwZWRlZiBDQ09jY2x1c2lvblRyYWNrZXJEYW1h
Z2VDbGllbnRCYXNlPFJlbmRlclN1cmZhY2VDaHJvbWl1bT4gQ0NPY2NsdXNpb25UcmFja2VyRGFt
YWdlQ2xpZW50OwotdHlwZWRlZiBDQ09jY2x1c2lvblRyYWNrZXJEYW1hZ2VDbGllbnRCYXNlPEND
UmVuZGVyU3VyZmFjZT4gQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50SW1wbDsKLQogLy8g
VGhpcyBjbGFzcyBpcyB1c2VkIHRvIHRyYWNrIG9jY2x1c2lvbiBvZiBsYXllcnMgd2hpbGUgdHJh
dmVyc2luZyB0aGVtIGluIGEgZnJvbnQtdG8tYmFjayBvcmRlci4gQXMgZWFjaCBsYXllciBpcyB2
aXNpdGVkLCBvbmUgb2YgdGhlCiAvLyBtZXRob2RzIGluIHRoaXMgY2xhc3MgaXMgY2FsbGVkIHRv
IG5vdGlmeSBpdCBhYm91dCB0aGUgY3VycmVudCB0YXJnZXQgc3VyZmFjZS4KIC8vIFRoZW4sIG9j
Y2x1c2lvbiBpbiB0aGUgY29udGVudCBzcGFjZSBvZiB0aGUgY3VycmVudCBsYXllciBtYXkgYmUg
cXVlcmllZCwgdmlhIG1ldGhvZHMgc3VjaCBhcyBvY2NsdWRlZCgpIGFuZCB1bm9jY2x1ZGVkQ29u
dGVudFJlY3QoKS4KQEAgLTU0LDEwICs0NSw4IEBAIHR5cGVkZWYgQ0NPY2NsdXNpb25UcmFja2Vy
RGFtYWdlQ2xpZW50QmFzZTxDQ1JlbmRlclN1cmZhY2U+IENDT2NjbHVzaW9uVHJhY2tlckRhCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBMYXllclR5cGUsIHR5cGVuYW1lIFJlbmRlclN1cmZhY2VUeXBlPgog
Y2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyQmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Q0NPY2NsdXNpb25UcmFja2VyQmFzZSk7Ci0gICAgdHlwZWRlZiBDQ09jY2x1c2lvblRyYWNrZXJE
YW1hZ2VDbGllbnRCYXNlPFJlbmRlclN1cmZhY2VUeXBlPiBEYW1hZ2VDbGllbnRUeXBlOwogcHVi
bGljOgogICAgIENDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY2lzc29yUmVjdEluU2Ny
ZWVuU3BhY2UpOwotICAgIENDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY2lzc29yUmVj
dEluU2NyZWVuU3BhY2UsIGNvbnN0IERhbWFnZUNsaWVudFR5cGUqKTsKIAogICAgIC8vIENhbGxl
ZCB3aGVuIHZpc2l0aW5nIGEgbGF5ZXIgcmVwcmVzZW50aW5nIGl0c2VsZi4gSWYgdGhlIHRhcmdl
dCB3YXMgbm90IGFscmVhZHkgY3VycmVudCwgdGhlbiB0aGlzIGluZGljYXRlcyB3ZSBoYXZlIGVu
dGVyZWQgYSBuZXcgc3VyZmFjZSBzdWJ0cmVlLgogICAgIHZvaWQgZW50ZXJUYXJnZXRSZW5kZXJT
dXJmYWNlKGNvbnN0IFJlbmRlclN1cmZhY2VUeXBlKiBuZXdUYXJnZXQpOwpAQCAtMTExLDcgKzEw
MCw2IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBJbnRSZWN0IG1fc2Npc3NvclJlY3RJ
blNjcmVlblNwYWNlOwotICAgIGNvbnN0IERhbWFnZUNsaWVudFR5cGUqIG1fc3VyZmFjZURhbWFn
ZUNsaWVudDsKICAgICBPd25QdHI8Q0NPdmVyZHJhd01ldHJpY3M+IG1fb3ZlcmRyYXdNZXRyaWNz
OwogICAgIGJvb2wgbV91c2VQYWludFRyYWNraW5nOyAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hl
biBwYWludCB0cmFja2luZyBpcyBvbiBmb3IgcGFpbnQgY3VsbGluZy4KIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNw
cAppbmRleCBkZWNhNGFjZWZiZTY2OTEwY2E1MWNiNWU2MWQzNGViODc0MWFlODI5Li5mMjIwMTUy
NDMwYTcxMTliOTlhMTBmNTZhNmFjZWE0ZTU4MDQ4ODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5jcHAKQEAgLTc5
LDEyICs3OSw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgVGVzdENDT2NjbHVzaW9u
VHJhY2tlckJhc2UoSW50UmVjdCBzY3JlZW5TY2lzc29yUmVjdCwgY29uc3QgQ0NPY2NsdXNpb25U
cmFja2VyRGFtYWdlQ2xpZW50QmFzZTxSZW5kZXJTdXJmYWNlVHlwZT4qIGRhbWFnZUNsaWVudCkK
LSAgICAgICAgOiBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFj
ZVR5cGU+KHNjcmVlblNjaXNzb3JSZWN0LCBkYW1hZ2VDbGllbnQpCi0gICAgICAgICwgbV9vdmVy
cmlkZUxheWVyU2Npc3NvclJlY3QoZmFsc2UpCi0gICAgewotICAgIH0KLQogICAgIFJlZ2lvbiBv
Y2NsdXNpb25JblNjcmVlblNwYWNlKCkgY29uc3QgeyByZXR1cm4gQ0NPY2NsdXNpb25UcmFja2Vy
QmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bV9zdGFjay5sYXN0KCkub2NjbHVz
aW9uSW5TY3JlZW47IH0KICAgICBSZWdpb24gb2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkgY29u
c3QgeyByZXR1cm4gQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZh
Y2VUeXBlPjo6bV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5UYXJnZXQ7IH0KIApAQCAtMTAyLDIw
ICs5Niw2IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBtX2xheWVyU2Npc3NvclJlY3Q7CiB9Owog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KLWNsYXNzIFRlc3REYW1hZ2VD
bGllbnQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyRGFtYWdlQ2xpZW50QmFzZTxSZW5kZXJT
dXJmYWNlVHlwZT4gewotcHVibGljOgotICAgIC8vIFRoZSBpbnRlcmZhY2UKLSAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBkYW1hZ2VSZWN0KGNvbnN0IFJlbmRlclN1cmZhY2VUeXBlKikgY29uc3QgeyBy
ZXR1cm4gbV9kYW1hZ2VSZWN0OyB9Ci0KLSAgICAvLyBUZXN0aW5nIHN0dWZmCi0gICAgVGVzdERh
bWFnZUNsaWVudChjb25zdCBGbG9hdFJlY3QmIGRhbWFnZVJlY3QpIDogbV9kYW1hZ2VSZWN0KGRh
bWFnZVJlY3QpIHsgfQotICAgIHZvaWQgc2V0RGFtYWdlUmVjdChjb25zdCBGbG9hdFJlY3QmIGRh
bWFnZVJlY3QpIHsgbV9kYW1hZ2VSZWN0ID0gZGFtYWdlUmVjdDsgfQotCi1wcml2YXRlOgotICAg
IEZsb2F0UmVjdCBtX2RhbWFnZVJlY3Q7Ci19OwotCiBzdHJ1Y3QgQ0NPY2NsdXNpb25UcmFja2Vy
VGVzdE1haW5UaHJlYWRUeXBlcyB7CiAgICAgdHlwZWRlZiBMYXllckNocm9taXVtIExheWVyVHlw
ZTsKICAgICB0eXBlZGVmIFJlbmRlclN1cmZhY2VDaHJvbWl1bSBSZW5kZXJTdXJmYWNlVHlwZTsK
QEAgLTEyNTUsMzEgKzEyMzUsNiBAQCBwcm90ZWN0ZWQ6CiBBTExfQ0NPQ0NMVVNJT05UUkFDS0VS
X1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0T3V0c2lkZUNoaWxk
KTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NP
Y2NsdXNpb25UcmFja2VyVGVzdERhbWFnZVJlY3RPdXRzaWRlQ2hpbGQgOiBwdWJsaWMgQ0NPY2Ns
dXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7Ci1wcm90ZWN0ZWQ6Ci0gICAg
dm9pZCBydW5NeVRlc3QoKQotICAgIHsKLSAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRM
YXllclR5cGUqIHBhcmVudCA9IHRoaXMtPmNyZWF0ZVJvb3QodGhpcy0+aWRlbnRpdHlNYXRyaXgs
IEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMzAwLCAzMDApKTsKLSAgICAgICAgdHlwZW5hbWUg
VHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZh
Y2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6
ZSgyMDAsIDIwMCksIHRydWUpOwotICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwot
Ci0gICAgICAgIFRlc3REYW1hZ2VDbGllbnQ8dHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VU
eXBlPiBkYW1hZ2UoRmxvYXRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpOwotICAgICAgICBUZXN0
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFt
ZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApLCAmZGFtYWdlKTsKLQotICAgICAgICBvY2NsdXNpb24uZW50ZXJUYXJnZXRSZW5kZXJT
dXJmYWNlKGxheWVyLT5yZW5kZXJTdXJmYWNlKCkpOwotCi0gICAgICAgIEVYUEVDVF9UUlVFKG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QobGF5ZXIsIEludFJlY3QoMCwgMCwgMjAwLCAy
MDApKS5pc0VtcHR5KCkpOwotCi0gICAgICAgIG9jY2x1c2lvbi5tYXJrT2NjbHVkZWRCZWhpbmRM
YXllcihsYXllcik7Ci0gICAgICAgIG9jY2x1c2lvbi5sZWF2ZVRvVGFyZ2V0UmVuZGVyU3VyZmFj
ZShwYXJlbnQtPnJlbmRlclN1cmZhY2UoKSk7Ci0KLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50
UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKLSAgICB9Ci19OwotCi1BTExfQ0NP
Q0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdERhbWFnZVJlY3RPdXRz
aWRlQ2hpbGQpOwotCi10ZW1wbGF0ZTxjbGFzcyBUeXBlcywgYm9vbCBvcGFxdWVMYXllcnM+CiBj
bGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJTY2lzc29yUmVjdE92ZXJDaGlsZCA6IHB1
YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHJ1bk15VGVzdCgpCkBAIC0xMzU2LDMxICsxMzExLDYgQEAgcHJvdGVj
dGVkOgogQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RT
Y3JlZW5TY2lzc29yUmVjdE92ZXJDaGlsZCk7CiAKIHRlbXBsYXRlPGNsYXNzIFR5cGVzLCBib29s
IG9wYXF1ZUxheWVycz4KLWNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3REYW1hZ2VSZWN0T3Zl
ckNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVy
cz4gewotcHJvdGVjdGVkOgotICAgIHZvaWQgcnVuTXlUZXN0KCkKLSAgICB7Ci0gICAgICAgIHR5
cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBwYXJlbnQgPSB0aGlzLT5jcmVhdGVSb290
KHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDMwMCwgMzAw
KSk7Ci0gICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRo
aXMtPmNyZWF0ZURyYXdpbmdTdXJmYWNlKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZs
b2F0UG9pbnQoMCwgMCksIEludFNpemUoMjAwLCAyMDApLCB0cnVlKTsKLSAgICAgICAgdGhpcy0+
Y2FsY0RyYXdFdGMocGFyZW50KTsKLQotICAgICAgICBUZXN0RGFtYWdlQ2xpZW50PHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gZGFtYWdlKEZsb2F0UmVjdCgxMDAsIDEwMCwgMTAw
LCAxMDApKTsKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlckJhc2U8dHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNp
b24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSwgJmRhbWFnZSk7Ci0KLSAgICAgICAgb2NjbHVz
aW9uLmVudGVyVGFyZ2V0UmVuZGVyU3VyZmFjZShsYXllci0+cmVuZGVyU3VyZmFjZSgpKTsKLQot
ICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QobGF5ZXIsIEludFJlY3QoMCwgMCwgMjAwLCAyMDAp
KSk7Ci0KLSAgICAgICAgb2NjbHVzaW9uLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGxheWVyKTsK
LSAgICAgICAgb2NjbHVzaW9uLmxlYXZlVG9UYXJnZXRSZW5kZXJTdXJmYWNlKHBhcmVudC0+cmVu
ZGVyU3VyZmFjZSgpKTsKLQotICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpLmlzRW1wdHkoKSk7
Ci0gICAgfQotfTsKLQotQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJh
Y2tlclRlc3REYW1hZ2VSZWN0T3ZlckNoaWxkKTsKLQotdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJv
b2wgb3BhcXVlTGF5ZXJzPgogY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3Nv
clJlY3RQYXJ0bHlPdmVyQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBl
cywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQpAQCAt
MTQ2NSwzMSArMTM5NSw2IEBAIHByb3RlY3RlZDoKIEFMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVT
VChDQ09jY2x1c2lvblRyYWNrZXJUZXN0U2NyZWVuU2Npc3NvclJlY3RQYXJ0bHlPdmVyQ2hpbGQp
OwogCiB0ZW1wbGF0ZTxjbGFzcyBUeXBlcywgYm9vbCBvcGFxdWVMYXllcnM+Ci1jbGFzcyBDQ09j
Y2x1c2lvblRyYWNrZXJUZXN0RGFtYWdlUmVjdFBhcnRseU92ZXJDaGlsZCA6IHB1YmxpYyBDQ09j
Y2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKLXByb3RlY3RlZDoKLSAg
ICB2b2lkIHJ1bk15VGVzdCgpCi0gICAgewotICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVu
dExheWVyVHlwZSogcGFyZW50ID0gdGhpcy0+Y3JlYXRlUm9vdCh0aGlzLT5pZGVudGl0eU1hdHJp
eCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgzMDAsIDMwMCkpOwotICAgICAgICB0eXBlbmFt
ZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nU3Vy
ZmFjZShwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRT
aXplKDIwMCwgMjAwKSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7
Ci0KLSAgICAgICAgVGVzdERhbWFnZUNsaWVudDx0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFj
ZVR5cGU+IGRhbWFnZShGbG9hdFJlY3QoNTAsIDUwLCAyMDAsIDIwMCkpOwotICAgICAgICBUZXN0
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFt
ZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApLCAmZGFtYWdlKTsKLQotICAgICAgICBvY2NsdXNpb24uZW50ZXJUYXJnZXRSZW5kZXJT
dXJmYWNlKGxheWVyLT5yZW5kZXJTdXJmYWNlKCkpOwotCi0gICAgICAgIEVYUEVDVF9FUV9SRUNU
KEludFJlY3QoNTAsIDUwLCAxNTAsIDE1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QobGF5ZXIsIEludFJlY3QoMCwgMCwgMjAwLCAyMDApKSk7Ci0KLSAgICAgICAgb2NjbHVzaW9u
Lm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGxheWVyKTsKLSAgICAgICAgb2NjbHVzaW9uLmxlYXZl
VG9UYXJnZXRSZW5kZXJTdXJmYWNlKHBhcmVudC0+cmVuZGVyU3VyZmFjZSgpKTsKLQotICAgICAg
ICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKLSAg
ICB9Ci19OwotCi1BTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2Vy
VGVzdERhbWFnZVJlY3RQYXJ0bHlPdmVyQ2hpbGQpOwotCi10ZW1wbGF0ZTxjbGFzcyBUeXBlcywg
Ym9vbCBvcGFxdWVMYXllcnM+CiBjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJTY2lz
c29yUmVjdE92ZXJOb3RoaW5nIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMs
IG9wYXF1ZUxheWVycz4gewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0KCkKQEAgLTE1
NzQsMzEgKzE0NzksNiBAQCBwcm90ZWN0ZWQ6CiBBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1Qo
Q0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0T3Zlck5vdGhpbmcpOwogCiB0
ZW1wbGF0ZTxjbGFzcyBUeXBlcywgYm9vbCBvcGFxdWVMYXllcnM+Ci1jbGFzcyBDQ09jY2x1c2lv
blRyYWNrZXJUZXN0RGFtYWdlUmVjdE92ZXJOb3RoaW5nIDogcHVibGljIENDT2NjbHVzaW9uVHJh
Y2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4gewotcHJvdGVjdGVkOgotICAgIHZvaWQgcnVu
TXlUZXN0KCkKLSAgICB7Ci0gICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBl
KiBwYXJlbnQgPSB0aGlzLT5jcmVhdGVSb290KHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBv
aW50KDAsIDApLCBJbnRTaXplKDMwMCwgMzAwKSk7Ci0gICAgICAgIHR5cGVuYW1lIFR5cGVzOjpD
b250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdTdXJmYWNlKHBhcmVu
dCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMjAwLCAy
MDApLCB0cnVlKTsKLSAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKLQotICAgICAg
ICBUZXN0RGFtYWdlQ2xpZW50PHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gZGFt
YWdlKEZsb2F0UmVjdCg1MDAsIDUwMCwgMTAwLCAxMDApKTsKLSAgICAgICAgVGVzdENDT2NjbHVz
aW9uVHJhY2tlckJhc2U8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6
OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSwg
JmRhbWFnZSk7Ci0KLSAgICAgICAgb2NjbHVzaW9uLmVudGVyVGFyZ2V0UmVuZGVyU3VyZmFjZShs
YXllci0+cmVuZGVyU3VyZmFjZSgpKTsKLQotICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KGxheWVyLCBJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSkuaXNF
bXB0eSgpKTsKLQotICAgICAgICBvY2NsdXNpb24ubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIobGF5
ZXIpOwotICAgICAgICBvY2NsdXNpb24ubGVhdmVUb1RhcmdldFJlbmRlclN1cmZhY2UocGFyZW50
LT5yZW5kZXJTdXJmYWNlKCkpOwotCi0gICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkuaXNFbXB0
eSgpKTsKLSAgICB9Ci19OwotCi1BTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNp
b25UcmFja2VyVGVzdERhbWFnZVJlY3RPdmVyTm90aGluZyk7Ci0KLXRlbXBsYXRlPGNsYXNzIFR5
cGVzLCBib29sIG9wYXF1ZUxheWVycz4KIGNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXll
clNjaXNzb3JSZWN0Rm9yTGF5ZXJPZmZPcmlnaW4gOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2Vy
VGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRl
c3QoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>