<?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>77249</bug_id>
          
          <creation_ts>2012-01-27 15:08:55 -0800</creation_ts>
          <short_desc>Get rid of TransformOperationList</short_desc>
          <delta_ts>2012-01-30 16:03:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>igor.oliveira</cc>
    
    <cc>noam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>544413</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2012-01-27 15:08:55 -0800</bug_when>
    <thetext>This is a list generated by the GraphicsLayer::fetchTransformOperationList function. The real purpose of this function is to validate the transform operation lists in a keyframe animation. But it also generates a list of the operations themselves. The thing is, this list is already in the keyframes themselves. So it is not really needed and it will make it harder to add support for Filter animations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544439</commentid>
    <comment_count>1</comment_count>
      <attachid>124382</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2012-01-27 15:29:33 -0800</bug_when>
    <thetext>Created attachment 124382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544447</commentid>
    <comment_count>2</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-01-27 15:35:26 -0800</bug_when>
    <thetext>TextureMapper uses fetchTransformOperationList, so it also needs to be changed.

(In reply to comment #1)
&gt; Created an attachment (id=124382) [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544460</commentid>
    <comment_count>3</comment_count>
      <attachid>124382</attachid>
    <who name="">mitz</who>
    <bug_when>2012-01-27 15:46:11 -0800</bug_when>
    <thetext>Comment on attachment 124382
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:431
&gt; +    static int validateTransformOperations(const KeyframeValueList&amp;, bool&amp; hasBigRotation);

The patch looks fine but I wish the name of this function better explained what its return value was. indexOfOperationsThatMatch() or some such.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544494</commentid>
    <comment_count>4</comment_count>
      <attachid>124393</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2012-01-27 16:17:03 -0800</bug_when>
    <thetext>Created attachment 124393
Patch adding fix for TextureMapper</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544508</commentid>
    <comment_count>5</comment_count>
      <attachid>124399</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2012-01-27 16:46:49 -0800</bug_when>
    <thetext>Created attachment 124399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544517</commentid>
    <comment_count>6</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-27 16:53:59 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=124399) [details]
&gt; Patch

TextureMapper changes look good to me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544530</commentid>
    <comment_count>7</comment_count>
      <attachid>124399</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-27 17:16:53 -0800</bug_when>
    <thetext>Comment on attachment 124399
Patch

Attachment 124399 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11359234</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544541</commentid>
    <comment_count>8</comment_count>
      <attachid>124408</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2012-01-27 17:43:47 -0800</bug_when>
    <thetext>Created attachment 124408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544668</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2012-01-28 11:02:49 -0800</bug_when>
    <thetext>Committed r106190: &lt;http://trac.webkit.org/changeset/106190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545535</commentid>
    <comment_count>10</comment_count>
      <attachid>124408</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-30 16:03:42 -0800</bug_when>
    <thetext>Comment on attachment 124408
Patch

Cleared review? from attachment 124408 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124382</attachid>
            <date>2012-01-27 15:29:33 -0800</date>
            <delta_ts>2012-01-27 16:25:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77249-20120127152932.patch</filename>
            <type>text/plain</type>
            <size>10790</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUzNDlkMjVkN2E0Y2Mz
ZWUyYzM3OTY3Y2ZiYjJmMGFkOGVjMzA4Ni4uODY1MGY4ZWQzNjZhZDEzY2QyZTc0ZDVlMTc5YzI1
MDk5MDE5ZGU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAxLTI3ICBDaHJp
cyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIFRyYW5z
Zm9ybU9wZXJhdGlvbkxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3MjQ5CisKKyAgICAgICAgQ2hhbmdlZCBmZXRjaFRyYW5zZm9ybU9wZXJhdGlv
bkxpc3QgdG8gdmFsaWRhdGVUcmFuc2Zvcm1PcGVyYXRpb25zIGFuZCBnb3QgcmlkIG9mIHNlcGFy
YXRlbHkgZ2VuZXJhdGVkIGxpc3QKKyAgICAgICAgb2YgdHJhbnNmb3JtIG9wZXJhdGlvbnMuIFRo
ZXNlIGFyZSBub3QgbmVlZGVkLCB0aGV5IGFyZSBhbHJlYWR5IGF2YWlsYWJsZSBpbiB0aGUga2V5
ZnJhbWUgbGlzdHMgYW5kIHRoZXkKKyAgICAgICAgbWFrZSBpdCBtb3JlIGRpZmZpY3VsdCB0byBh
ZGQgc3VwcG9ydCBmb3IgaGFyZHdhcmUgYW5pbWF0ZWQgZmlsdGVycy4gTm8gYmVoYXZpb3IgY2hh
bmdlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zvcm1PcGVyYXRpb25zKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1l
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisK
IDIwMTItMDEtMjMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAg
IEF0dGVtcHQgdG8gZml4IFF0IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCA2YmVjYzU0NjMwN2RkMDc4OTI4ZWNk
ZTU0YzIwOWQ4NzJiZjc5NmZhLi4yYTVjNDVkNDA1MTg5NjZhOWNmZTQ0YmM2NTI3MTI3MTNhZDk5
MDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcApAQCAtMzg1LDE2ICszODUsMTQgQEAgc3RhdGljIGlubGluZSBjb25zdCBUcmFu
c2Zvcm1PcGVyYXRpb25zKiBvcGVyYXRpb25zQXQoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHYK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUqPih2
YWx1ZUxpc3QuYXQoaW5kZXgpKS0+dmFsdWUoKTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyOjpm
ZXRjaFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVl
TGlzdCwgVHJhbnNmb3JtT3BlcmF0aW9uTGlzdCYgbGlzdCwgYm9vbCYgaXNWYWxpZCwgYm9vbCYg
aGFzQmlnUm90YXRpb24pCitpbnQgR3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zvcm1PcGVy
YXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGJvb2wmIGhhc0JpZ1Jv
dGF0aW9uKQogewogICAgIEFTU0VSVCh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFBy
b3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKIAotICAgIGxpc3QuY2xlYXIoKTsKLSAgICBpc1ZhbGlk
ID0gZmFsc2U7CiAgICAgaGFzQmlnUm90YXRpb24gPSBmYWxzZTsKICAgICAKICAgICBpZiAodmFs
dWVMaXN0LnNpemUoKSA8IDIpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIC0xOwog
ICAgIAogICAgIC8vIEVtcHR5IHRyYW5zZm9ybXMgbWF0Y2ggYW55dGhpbmcsIHNvIGZpbmQgdGhl
IGZpcnN0IG5vbi1lbXB0eSBlbnRyeSBhcyB0aGUgcmVmZXJlbmNlLgogICAgIHNpemVfdCBmaXJz
dEluZGV4ID0gMDsKQEAgLTQwNCw3ICs0MDIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmZldGNo
VHJhbnNmb3JtT3BlcmF0aW9uTGlzdChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaQog
ICAgIH0KICAgICAKICAgICBpZiAoZmlyc3RJbmRleCA+PSB2YWx1ZUxpc3Quc2l6ZSgpKQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgCiAgICAgY29uc3QgVHJh
bnNmb3JtT3BlcmF0aW9ucyogZmlyc3RWYWwgPSBvcGVyYXRpb25zQXQodmFsdWVMaXN0LCBmaXJz
dEluZGV4KTsKICAgICAKQEAgLTQxNywxOSArNDE1LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6
ZmV0Y2hUcmFuc2Zvcm1PcGVyYXRpb25MaXN0KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1
ZUxpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAogICAgICAgICBpZiAoIWZp
cnN0VmFsLT5vcGVyYXRpb25zTWF0Y2goKnZhbCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCi0gICAgLy8gS2V5ZnJhbWVzIGFyZSB2YWxpZCwg
ZmlsbCBpbiB0aGUgbGlzdC4KLSAgICBpc1ZhbGlkID0gdHJ1ZTsKLSAgICAKKyAgICAvLyBLZXlm
cmFtZXMgYXJlIHZhbGlkLCBjaGVjayBmb3IgYmlnIHJvdGF0aW9ucy4gICAgCiAgICAgZG91Ymxl
IGxhc3RSb3RBbmdsZSA9IDAuMDsKICAgICBkb3VibGUgbWF4Um90QW5nbGUgPSAtMS4wOwogICAg
ICAgICAKLSAgICBsaXN0LnJlc2l6ZShmaXJzdFZhbC0+b3BlcmF0aW9ucygpLnNpemUoKSk7CiAg
ICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBmaXJzdFZhbC0+b3BlcmF0aW9ucygpLnNpemUoKTsg
KytqKSB7CiAgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlID0g
Zmlyc3RWYWwtPm9wZXJhdGlvbnMoKS5hdChqKS0+Z2V0T3BlcmF0aW9uVHlwZSgpOwotICAgICAg
ICBsaXN0W2pdID0gdHlwZTsKICAgICAgICAgCiAgICAgICAgIC8vIGlmIHRoaXMgaXMgYSByb3Rh
dGlvbiBlbnRyeSwgd2UgbmVlZCB0byBzZWUgaWYgYW55IGFuZ2xlIGRpZmZlcmVuY2VzIGFyZSA+
PSAxODAgZGVnCiAgICAgICAgIGlmICh0eXBlID09IFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9UQVRF
X1ggfHwKQEAgLTQ1Myw2ICs0NDcsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmZldGNoVHJhbnNm
b3JtT3BlcmF0aW9uTGlzdChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaQogICAgIH0K
ICAgICAKICAgICBoYXNCaWdSb3RhdGlvbiA9IG1heFJvdEFuZ2xlID49IDE4MC4wOworICAgIAor
ICAgIHJldHVybiBmaXJzdEluZGV4OwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCBhNjkzNmMyNzlmNjE1ODcwODc0N2Mz
Mjk3MWU3ODY1Yzg5ODU3NGMyLi5mODA2NmM2ZmIyODNhMmI4MmQ2MTI1YzVkYTMxZTU3MzVhOWQ3
NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5oCkBAIC00MjMsMTAgKzQyMywxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjbGVhckZp
bHRlcnMoKSB7IG1fZmlsdGVycy5jbGVhcigpOyB9CiAjZW5kaWYKIAotICAgIHR5cGVkZWYgVmVj
dG9yPFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZT4gVHJhbnNmb3JtT3BlcmF0aW9u
TGlzdDsKLSAgICAvLyBHaXZlbiBhIGxpc3Qgb2YgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWVzLCBy
ZXR1cm4gYW4gYXJyYXkgb2YgdHJhbnNmb3JtIG9wZXJhdGlvbnMuCi0gICAgLy8gT24gcmV0dXJu
LCBpZiBoYXNCaWdSb3RhdGlvbiBpcyB0cnVlLCBmdW5jdGlvbnMgY29udGFpbiByb3RhdGlvbnMg
b2YgPj0gMTgwIGRlZ3JlZXMKLSAgICBzdGF0aWMgdm9pZCBmZXRjaFRyYW5zZm9ybU9wZXJhdGlv
bkxpc3QoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0Jiwg
Ym9vbCYgaXNWYWxpZCwgYm9vbCYgaGFzQmlnUm90YXRpb24pOworICAgIC8vIEdpdmVuIGEgbGlz
dCBvZiBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZXMsIHNlZSBpZiBhbGwgdGhlIG9wZXJhdGlvbnMg
Zm9yIGVhY2gga2V5ZnJhbWUgbWF0Y2guIElmIHNvCisgICAgLy8gcmV0dXJuIHRoZSBpbmRleCBv
ZiB0aGUgS2V5ZnJhbWVWYWx1ZUxpc3QgZW50cnkgdGhhdCBoYXMgdGhhdCBsaXN0IG9mIG9wZXJh
dGlvbnMgKGl0IG1heSBub3QgYmUKKyAgICAvLyB0aGUgZmlyc3QgZW50cnkgYmVjYXVzZSBzb21l
IGtleWZyYW1lcyBtaWdodCBoYXZlIGFuIGVtcHR5IHRyYW5zZm9ybSBhbmQgdGhvc2UgbWF0Y2gg
YW55IGxpc3QpLgorICAgIC8vIElmIHRoZSBsaXN0cyBkb24ndCBtYXRjaCByZXR1cm4gLTEuIE9u
IHJldHVybiwgaWYgaGFzQmlnUm90YXRpb24gaXMgdHJ1ZSwgZnVuY3Rpb25zIGNvbnRhaW4gCisg
ICAgLy8gcm90YXRpb25zIG9mID49IDE4MCBkZWdyZWVzCisgICAgc3RhdGljIGludCB2YWxpZGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBib29sJiBoYXNC
aWdSb3RhdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0eUludGVybmFsKGZsb2F0
KSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggZDRkMjBhZTRkZGVmNWY0YzkzNWMwYzQ1YzJjNWM5
MzExNDg2NGNhOC4uMGJhM2M3Y2VkNTNiM2FhYmM0ZjBiNGQwNGVmYzY5ZmMyY2NlNGVkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCkBAIC0xNzU2LDkgKzE3NTYsOSBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6
Y3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFs
dQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9V
bmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwg
Y29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uTGlzdCYgZnVuY3Rpb25MaXN0LCBjb25zdCBBbmltYXRp
b24qIGFuaW1hdGlvbiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25zdCBJbnRTaXpl
JiBib3hTaXplLCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0LCBib29sIGlz
TWF0cml4QW5pbWF0aW9uKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0
ZWRBbmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IFRy
YW5zZm9ybU9wZXJhdGlvbnMqIG9wZXJhdGlvbnMsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9u
LCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGlu
dCBhbmltYXRpb25JbmRleCwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wgaXNNYXRyaXhBbmltYXRp
b24pCiB7Ci0gICAgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHRyYW5zZm9ybU9w
ID0gaXNNYXRyaXhBbmltYXRpb24gPyBUcmFuc2Zvcm1PcGVyYXRpb246Ok1BVFJJWF8zRCA6IGZ1
bmN0aW9uTGlzdFthbmltYXRpb25JbmRleF07CisgICAgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVy
YXRpb25UeXBlIHRyYW5zZm9ybU9wID0gaXNNYXRyaXhBbmltYXRpb24gPyBUcmFuc2Zvcm1PcGVy
YXRpb246Ok1BVFJJWF8zRCA6IG9wZXJhdGlvbnMtPm9wZXJhdGlvbnMoKS5hdChhbmltYXRpb25J
bmRleCktPmdldE9wZXJhdGlvblR5cGUoKTsKICAgICBib29sIGFkZGl0aXZlID0gYW5pbWF0aW9u
SW5kZXggPiAwOwogICAgIGJvb2wgaXNLZXlmcmFtZSA9IHZhbHVlTGlzdC5zaXplKCkgPiAyOwog
CkBAIC0xNzgzLDE0ICsxNzgzLDE0IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFu
c2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiB7CiAgICAg
QVNTRVJUKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFu
c2Zvcm0pOwogCi0gICAgVHJhbnNmb3JtT3BlcmF0aW9uTGlzdCBmdW5jdGlvbkxpc3Q7Ci0gICAg
Ym9vbCBsaXN0c01hdGNoLCBoYXNCaWdSb3RhdGlvbjsKLSAgICBmZXRjaFRyYW5zZm9ybU9wZXJh
dGlvbkxpc3QodmFsdWVMaXN0LCBmdW5jdGlvbkxpc3QsIGxpc3RzTWF0Y2gsIGhhc0JpZ1JvdGF0
aW9uKTsKKyAgICBib29sIGhhc0JpZ1JvdGF0aW9uOworICAgIGludCBsaXN0SW5kZXggPSB2YWxp
ZGF0ZVRyYW5zZm9ybU9wZXJhdGlvbnModmFsdWVMaXN0LCBoYXNCaWdSb3RhdGlvbik7CisgICAg
Y29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogb3BlcmF0aW9ucyA9IChsaXN0SW5kZXggPj0gMCkg
PyBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5h
dChsaXN0SW5kZXgpKS0+dmFsdWUoKSA6IDA7CiAKICAgICAvLyBXZSBuZWVkIHRvIGZhbGwgYmFj
ayB0byBzb2Z0d2FyZSBhbmltYXRpb24gaWYgd2UgZG9uJ3QgaGF2ZSBzZXRWYWx1ZUZ1bmN0aW9u
OiwgYW5kCiAgICAgLy8gd2Ugd291bGQgbmVlZCB0byBhbmltYXRlIGVhY2ggaW5jb21pbmcgdHJh
bnNmb3JtIGZ1bmN0aW9uIHNlcGFyYXRlbHkuIFRoaXMgaXMgdGhlCiAgICAgLy8gY2FzZSBpZiB3
ZSBoYXZlIGEgcm90YXRpb24gPj0gMTgwIG9yIHdlIGhhdmUgbW9yZSB0aGFuIG9uZSB0cmFuc2Zv
cm0gZnVuY3Rpb24uCi0gICAgaWYgKChoYXNCaWdSb3RhdGlvbiB8fCBmdW5jdGlvbkxpc3Quc2l6
ZSgpID4gMSkgJiYgIVBsYXRmb3JtQ0FBbmltYXRpb246OnN1cHBvcnRzVmFsdWVGdW5jdGlvbigp
KQorICAgIGlmICgoaGFzQmlnUm90YXRpb24gfHwgKG9wZXJhdGlvbnMgJiYgb3BlcmF0aW9ucy0+
c2l6ZSgpID4gMSkpICYmICFQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzdXBwb3J0c1ZhbHVlRnVuY3Rp
b24oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCB2YWxpZE1hdHJpY2VzID0g
dHJ1ZTsKQEAgLTE3OTgsOCArMTc5OCw4IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVU
cmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAgICAg
Ly8gSWYgZnVuY3Rpb25MaXN0cyBkb24ndCBtYXRjaCB3ZSBkbyBhIG1hdHJpeCBhbmltYXRpb24s
IG90aGVyd2lzZSB3ZSBkbyBhIGNvbXBvbmVudCBoYXJkd2FyZSBhbmltYXRpb24uCiAgICAgLy8g
QWxzbywgd2UgY2FuJ3QgZG8gY29tcG9uZW50IGFuaW1hdGlvbiB1bmxlc3Mgd2UgaGF2ZSB2YWx1
ZUZ1bmN0aW9uLCBzbyB3ZSBuZWVkIHRvIGRvIG1hdHJpeCBhbmltYXRpb24KICAgICAvLyBpZiB0
aGF0J3Mgbm90IHRydWUgYXMgd2VsbC4KLSAgICBib29sIGlzTWF0cml4QW5pbWF0aW9uID0gIWxp
c3RzTWF0Y2ggfHwgIVBsYXRmb3JtQ0FBbmltYXRpb246OnN1cHBvcnRzVmFsdWVGdW5jdGlvbigp
OwotICAgIGludCBudW1BbmltYXRpb25zID0gaXNNYXRyaXhBbmltYXRpb24gPyAxIDogZnVuY3Rp
b25MaXN0LnNpemUoKTsKKyAgICBib29sIGlzTWF0cml4QW5pbWF0aW9uID0gbGlzdEluZGV4IDwg
MCB8fCAhUGxhdGZvcm1DQUFuaW1hdGlvbjo6c3VwcG9ydHNWYWx1ZUZ1bmN0aW9uKCk7CisgICAg
aW50IG51bUFuaW1hdGlvbnMgPSBpc01hdHJpeEFuaW1hdGlvbiA/IDEgOiBvcGVyYXRpb25zLT5z
aXplKCk7CiAKICAgICBib29sIHJldmVyc2VBbmltYXRpb25MaXN0ID0gdHJ1ZTsKICNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFQTEFURk9STShXSU4pCkBAIC0xODE0
LDE0ICsxODE0LDE0IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1Bbmlt
YXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAjZW5kaWYKICAgICBpZiAo
cmV2ZXJzZUFuaW1hdGlvbkxpc3QpIHsKICAgICAgICAgZm9yIChpbnQgYW5pbWF0aW9uSW5kZXgg
PSBudW1BbmltYXRpb25zIC0gMTsgYW5pbWF0aW9uSW5kZXggPj0gMDsgLS1hbmltYXRpb25JbmRl
eCkgewotICAgICAgICAgICAgaWYgKCFhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyh2YWx1
ZUxpc3QsIGZ1bmN0aW9uTGlzdCwgYW5pbWF0aW9uLCBhbmltYXRpb25OYW1lLCBib3hTaXplLCBh
bmltYXRpb25JbmRleCwgdGltZU9mZnNldCwgaXNNYXRyaXhBbmltYXRpb24pKSB7CisgICAgICAg
ICAgICBpZiAoIWFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKHZhbHVlTGlzdCwgb3BlcmF0
aW9ucywgYW5pbWF0aW9uLCBhbmltYXRpb25OYW1lLCBib3hTaXplLCBhbmltYXRpb25JbmRleCwg
dGltZU9mZnNldCwgaXNNYXRyaXhBbmltYXRpb24pKSB7CiAgICAgICAgICAgICAgICAgdmFsaWRN
YXRyaWNlcyA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9yIChpbnQgYW5pbWF0aW9uSW5kZXgg
PSAwOyBhbmltYXRpb25JbmRleCA8IG51bUFuaW1hdGlvbnM7ICsrYW5pbWF0aW9uSW5kZXgpIHsK
LSAgICAgICAgICAgIGlmICghYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnModmFsdWVMaXN0
LCBmdW5jdGlvbkxpc3QsIGFuaW1hdGlvbiwgYW5pbWF0aW9uTmFtZSwgYm94U2l6ZSwgYW5pbWF0
aW9uSW5kZXgsIHRpbWVPZmZzZXQsIGlzTWF0cml4QW5pbWF0aW9uKSkgeworICAgICAgICAgICAg
aWYgKCFhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyh2YWx1ZUxpc3QsIG9wZXJhdGlvbnMs
IGFuaW1hdGlvbiwgYW5pbWF0aW9uTmFtZSwgYm94U2l6ZSwgYW5pbWF0aW9uSW5kZXgsIHRpbWVP
ZmZzZXQsIGlzTWF0cml4QW5pbWF0aW9uKSkgewogICAgICAgICAgICAgICAgIHZhbGlkTWF0cmlj
ZXMgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmgKaW5kZXggOTNlMGU2NGNkNzgyMGQwNDE3ZDcxNGMwNDI1ZGE0MzgyODUyYzE3NC4uZjBkYTYz
MDg0YTQ3OTc4YWYzZjk3YjU5ZWY4M2IwNWZlYmQ2OWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTMyMSw3
ICszMjEsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIG1vdmVPckNvcHlMYXllckFuaW1h
dGlvbihNb3ZlT3JDb3B5LCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkZW50aWZpZXIsIFBsYXRm
b3JtQ0FMYXllciAqZnJvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXIgKnRvTGF5ZXIpOwogICAgIHZv
aWQgbW92ZU9yQ29weUFuaW1hdGlvbnNGb3JQcm9wZXJ0eShNb3ZlT3JDb3B5LCBBbmltYXRlZFBy
b3BlcnR5SUQsIFBsYXRmb3JtQ0FMYXllciAqIGZyb21MYXllciwgUGxhdGZvcm1DQUxheWVyICog
dG9MYXllcik7CiAgICAgCi0gICAgYm9vbCBhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyhj
b25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QmLCBj
b25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGNvbnN0IEludFNp
emUmIGJveFNpemUsIGludCBhbmltYXRpb25JbmRleCwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wg
aXNNYXRyaXhBbmltYXRpb24pOworICAgIGJvb2wgYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlv
bnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiwg
Y29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25zdCBJbnRT
aXplJiBib3hTaXplLCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0LCBib29s
IGlzTWF0cml4QW5pbWF0aW9uKTsKICAgICAKICAgICBlbnVtIExheWVyQ2hhbmdlIHsKICAgICAg
ICAgTm9DaGFuZ2UgPSAwLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124393</attachid>
            <date>2012-01-27 16:17:03 -0800</date>
            <delta_ts>2012-01-27 16:46:46 -0800</delta_ts>
            <desc>Patch adding fix for TextureMapper</desc>
            <filename>bug-77249-20120127161702.patch</filename>
            <type>text/plain</type>
            <size>13732</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUzNDlkMjVkN2E0Y2Mz
ZWUyYzM3OTY3Y2ZiYjJmMGFkOGVjMzA4Ni4uMWZiNGQ1NGI2Y2I0NjRlYzAyMjAzMzU1NWRkMzVj
ZWJhMzdmMjZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTI3ICBDaHJp
cyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIFRyYW5z
Zm9ybU9wZXJhdGlvbkxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3MjQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2hhbmdlZCBmZXRjaFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QgdG8gdmFsaWRhdGVU
cmFuc2Zvcm1PcGVyYXRpb25zIGFuZCBnb3QgcmlkIG9mIHNlcGFyYXRlbHkgZ2VuZXJhdGVkIGxp
c3QKKyAgICAgICAgb2YgdHJhbnNmb3JtIG9wZXJhdGlvbnMuIFRoZXNlIGFyZSBub3QgbmVlZGVk
LCB0aGV5IGFyZSBhbHJlYWR5IGF2YWlsYWJsZSBpbiB0aGUga2V5ZnJhbWUgbGlzdHMgYW5kIHRo
ZXkKKyAgICAgICAgbWFrZSBpdCBtb3JlIGRpZmZpY3VsdCB0byBhZGQgc3VwcG9ydCBmb3IgaGFy
ZHdhcmUgYW5pbWF0ZWQgZmlsdGVycy4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zvcm1PcGVyYXRpb25zKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1l
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjph
ZGRBbmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6YXBw
bHlUcmFuc2Zvcm1BbmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTm9kZS5oOgorCiAyMDEyLTAxLTIzICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBBdHRlbXB0IHRvIGZpeCBRdCBidWlsZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5k
ZXggNmJlY2M1NDYzMDdkZDA3ODkyOGVjZGU1NGMyMDlkODcyYmY3OTZmYS4uMmE1YzQ1ZDQwNTE4
OTY2YTljZmU0NGJjNjUyNzEyNzEzYWQ5OTAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTM4NSwxNiArMzg1LDE0IEBA
IHN0YXRpYyBpbmxpbmUgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogb3BlcmF0aW9uc0F0KGNv
bnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFRy
YW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGluZGV4KSktPnZhbHVlKCk7CiB9
CiAKLXZvaWQgR3JhcGhpY3NMYXllcjo6ZmV0Y2hUcmFuc2Zvcm1PcGVyYXRpb25MaXN0KGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QmIGxp
c3QsIGJvb2wmIGlzVmFsaWQsIGJvb2wmIGhhc0JpZ1JvdGF0aW9uKQoraW50IEdyYXBoaWNzTGF5
ZXI6OnZhbGlkYXRlVHJhbnNmb3JtT3BlcmF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYg
dmFsdWVMaXN0LCBib29sJiBoYXNCaWdSb3RhdGlvbikKIHsKICAgICBBU1NFUlQodmFsdWVMaXN0
LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CiAKLSAgICBs
aXN0LmNsZWFyKCk7Ci0gICAgaXNWYWxpZCA9IGZhbHNlOwogICAgIGhhc0JpZ1JvdGF0aW9uID0g
ZmFsc2U7CiAgICAgCiAgICAgaWYgKHZhbHVlTGlzdC5zaXplKCkgPCAyKQotICAgICAgICByZXR1
cm47CisgICAgICAgIHJldHVybiAtMTsKICAgICAKICAgICAvLyBFbXB0eSB0cmFuc2Zvcm1zIG1h
dGNoIGFueXRoaW5nLCBzbyBmaW5kIHRoZSBmaXJzdCBub24tZW1wdHkgZW50cnkgYXMgdGhlIHJl
ZmVyZW5jZS4KICAgICBzaXplX3QgZmlyc3RJbmRleCA9IDA7CkBAIC00MDQsNyArNDAyLDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyOjpmZXRjaFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QoY29uc3QgS2V5
ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGkKICAgICB9CiAgICAgCiAgICAgaWYgKGZpcnN0SW5kZXgg
Pj0gdmFsdWVMaXN0LnNpemUoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gLTE7
CiAgICAgICAgIAogICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIGZpcnN0VmFsID0gb3Bl
cmF0aW9uc0F0KHZhbHVlTGlzdCwgZmlyc3RJbmRleCk7CiAgICAgCkBAIC00MTcsMTkgKzQxNSwx
NSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmZldGNoVHJhbnNmb3JtT3BlcmF0aW9uTGlzdChjb25z
dCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICAKICAgICAgICAgaWYgKCFmaXJzdFZhbC0+b3BlcmF0aW9uc01hdGNoKCp2YWwpKQot
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAg
IC8vIEtleWZyYW1lcyBhcmUgdmFsaWQsIGZpbGwgaW4gdGhlIGxpc3QuCi0gICAgaXNWYWxpZCA9
IHRydWU7Ci0gICAgCisgICAgLy8gS2V5ZnJhbWVzIGFyZSB2YWxpZCwgY2hlY2sgZm9yIGJpZyBy
b3RhdGlvbnMuICAgIAogICAgIGRvdWJsZSBsYXN0Um90QW5nbGUgPSAwLjA7CiAgICAgZG91Ymxl
IG1heFJvdEFuZ2xlID0gLTEuMDsKICAgICAgICAgCi0gICAgbGlzdC5yZXNpemUoZmlyc3RWYWwt
Pm9wZXJhdGlvbnMoKS5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZmlyc3RW
YWwtPm9wZXJhdGlvbnMoKS5zaXplKCk7ICsraikgewogICAgICAgICBUcmFuc2Zvcm1PcGVyYXRp
b246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IGZpcnN0VmFsLT5vcGVyYXRpb25zKCkuYXQoaiktPmdl
dE9wZXJhdGlvblR5cGUoKTsKLSAgICAgICAgbGlzdFtqXSA9IHR5cGU7CiAgICAgICAgIAogICAg
ICAgICAvLyBpZiB0aGlzIGlzIGEgcm90YXRpb24gZW50cnksIHdlIG5lZWQgdG8gc2VlIGlmIGFu
eSBhbmdsZSBkaWZmZXJlbmNlcyBhcmUgPj0gMTgwIGRlZwogICAgICAgICBpZiAodHlwZSA9PSBU
cmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV9YIHx8CkBAIC00NTMsNiArNDQ3LDggQEAgdm9pZCBH
cmFwaGljc0xheWVyOjpmZXRjaFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QoY29uc3QgS2V5ZnJhbWVW
YWx1ZUxpc3QmIHZhbHVlTGkKICAgICB9CiAgICAgCiAgICAgaGFzQmlnUm90YXRpb24gPSBtYXhS
b3RBbmdsZSA+PSAxODAuMDsKKyAgICAKKyAgICByZXR1cm4gZmlyc3RJbmRleDsKIH0KIAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5k
ZXggYTY5MzZjMjc5ZjYxNTg3MDg3NDdjMzI5NzFlNzg2NWM4OTg1NzRjMi4uZjgwNjZjNmZiMjgz
YTJiODJkNjEyNWM1ZGEzMWU1NzM1YTlkNzc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNDIzLDEwICs0MjMsMTIgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgY2xlYXJGaWx0ZXJzKCkgeyBtX2ZpbHRlcnMuY2xlYXIoKTsgfQog
I2VuZGlmCiAKLSAgICB0eXBlZGVmIFZlY3RvcjxUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlv
blR5cGU+IFRyYW5zZm9ybU9wZXJhdGlvbkxpc3Q7Ci0gICAgLy8gR2l2ZW4gYSBsaXN0IG9mIFRy
YW5zZm9ybUFuaW1hdGlvblZhbHVlcywgcmV0dXJuIGFuIGFycmF5IG9mIHRyYW5zZm9ybSBvcGVy
YXRpb25zLgotICAgIC8vIE9uIHJldHVybiwgaWYgaGFzQmlnUm90YXRpb24gaXMgdHJ1ZSwgZnVu
Y3Rpb25zIGNvbnRhaW4gcm90YXRpb25zIG9mID49IDE4MCBkZWdyZWVzCi0gICAgc3RhdGljIHZv
aWQgZmV0Y2hUcmFuc2Zvcm1PcGVyYXRpb25MaXN0KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0Jiwg
VHJhbnNmb3JtT3BlcmF0aW9uTGlzdCYsIGJvb2wmIGlzVmFsaWQsIGJvb2wmIGhhc0JpZ1JvdGF0
aW9uKTsKKyAgICAvLyBHaXZlbiBhIGxpc3Qgb2YgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWVzLCBz
ZWUgaWYgYWxsIHRoZSBvcGVyYXRpb25zIGZvciBlYWNoIGtleWZyYW1lIG1hdGNoLiBJZiBzbwor
ICAgIC8vIHJldHVybiB0aGUgaW5kZXggb2YgdGhlIEtleWZyYW1lVmFsdWVMaXN0IGVudHJ5IHRo
YXQgaGFzIHRoYXQgbGlzdCBvZiBvcGVyYXRpb25zIChpdCBtYXkgbm90IGJlCisgICAgLy8gdGhl
IGZpcnN0IGVudHJ5IGJlY2F1c2Ugc29tZSBrZXlmcmFtZXMgbWlnaHQgaGF2ZSBhbiBlbXB0eSB0
cmFuc2Zvcm0gYW5kIHRob3NlIG1hdGNoIGFueSBsaXN0KS4KKyAgICAvLyBJZiB0aGUgbGlzdHMg
ZG9uJ3QgbWF0Y2ggcmV0dXJuIC0xLiBPbiByZXR1cm4sIGlmIGhhc0JpZ1JvdGF0aW9uIGlzIHRy
dWUsIGZ1bmN0aW9ucyBjb250YWluIAorICAgIC8vIHJvdGF0aW9ucyBvZiA+PSAxODAgZGVncmVl
cworICAgIHN0YXRpYyBpbnQgdmFsaWRhdGVUcmFuc2Zvcm1PcGVyYXRpb25zKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiwgYm9vbCYgaGFzQmlnUm90YXRpb24pOwogCiAgICAgdmlydHVhbCB2b2lk
IHNldE9wYWNpdHlJbnRlcm5hbChmbG9hdCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGQ0ZDIw
YWU0ZGRlZjVmNGM5MzVjMGM0NWMyYzVjOTMxMTQ4NjRjYTguLjI5OWM5MjFmNDRmM2U0N2M3NTc4
NGRiMTQ3ZTQ5NWY5ZWZmOWYxODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMTc1Niw5ICsxNzU2LDkg
QEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUFuaW1hdGlvbkZyb21LZXlmcmFtZXMoY29u
c3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBH
cmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QmIGZ1
bmN0aW9uTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uTmFtZSwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgaW50IGFuaW1hdGlvbkluZGV4LCBk
b3VibGUgdGltZU9mZnNldCwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbikKK2Jvb2wgR3JhcGhpY3NM
YXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYgdmFsdWVMaXN0LCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBvcGVyYXRpb25zLCBj
b25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBj
b25zdCBJbnRTaXplJiBib3hTaXplLCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zm
c2V0LCBib29sIGlzTWF0cml4QW5pbWF0aW9uKQogewotICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6
T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1PcCA9IGlzTWF0cml4QW5pbWF0aW9uID8gVHJhbnNmb3Jt
T3BlcmF0aW9uOjpNQVRSSVhfM0QgOiBmdW5jdGlvbkxpc3RbYW5pbWF0aW9uSW5kZXhdOworICAg
IFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1PcCA9IGlzTWF0cml4
QW5pbWF0aW9uID8gVHJhbnNmb3JtT3BlcmF0aW9uOjpNQVRSSVhfM0QgOiBvcGVyYXRpb25zLT5v
cGVyYXRpb25zKCkuYXQoYW5pbWF0aW9uSW5kZXgpLT5nZXRPcGVyYXRpb25UeXBlKCk7CiAgICAg
Ym9vbCBhZGRpdGl2ZSA9IGFuaW1hdGlvbkluZGV4ID4gMDsKICAgICBib29sIGlzS2V5ZnJhbWUg
PSB2YWx1ZUxpc3Quc2l6ZSgpID4gMjsKIApAQCAtMTc4MywyMyArMTc4MywyMyBAQCBib29sIEdy
YXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29u
c3QgS2V5ZnJhbWVWYWx1ZQogewogICAgIEFTU0VSVCh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBB
bmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKIAotICAgIFRyYW5zZm9ybU9wZXJhdGlv
bkxpc3QgZnVuY3Rpb25MaXN0OwotICAgIGJvb2wgbGlzdHNNYXRjaCwgaGFzQmlnUm90YXRpb247
Ci0gICAgZmV0Y2hUcmFuc2Zvcm1PcGVyYXRpb25MaXN0KHZhbHVlTGlzdCwgZnVuY3Rpb25MaXN0
LCBsaXN0c01hdGNoLCBoYXNCaWdSb3RhdGlvbik7CisgICAgYm9vbCBoYXNCaWdSb3RhdGlvbjsK
KyAgICBpbnQgbGlzdEluZGV4ID0gdmFsaWRhdGVUcmFuc2Zvcm1PcGVyYXRpb25zKHZhbHVlTGlz
dCwgaGFzQmlnUm90YXRpb24pOworICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIG9wZXJh
dGlvbnMgPSAobGlzdEluZGV4ID49IDApID8gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5p
bWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQobGlzdEluZGV4KSktPnZhbHVlKCkgOiAwOwogCiAg
ICAgLy8gV2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gc29mdHdhcmUgYW5pbWF0aW9uIGlmIHdlIGRv
bid0IGhhdmUgc2V0VmFsdWVGdW5jdGlvbjosIGFuZAogICAgIC8vIHdlIHdvdWxkIG5lZWQgdG8g
YW5pbWF0ZSBlYWNoIGluY29taW5nIHRyYW5zZm9ybSBmdW5jdGlvbiBzZXBhcmF0ZWx5LiBUaGlz
IGlzIHRoZQogICAgIC8vIGNhc2UgaWYgd2UgaGF2ZSBhIHJvdGF0aW9uID49IDE4MCBvciB3ZSBo
YXZlIG1vcmUgdGhhbiBvbmUgdHJhbnNmb3JtIGZ1bmN0aW9uLgotICAgIGlmICgoaGFzQmlnUm90
YXRpb24gfHwgZnVuY3Rpb25MaXN0LnNpemUoKSA+IDEpICYmICFQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzdXBwb3J0c1ZhbHVlRnVuY3Rpb24oKSkKKyAgICBpZiAoKGhhc0JpZ1JvdGF0aW9uIHx8IChv
cGVyYXRpb25zICYmIG9wZXJhdGlvbnMtPnNpemUoKSA+IDEpKSAmJiAhUGxhdGZvcm1DQUFuaW1h
dGlvbjo6c3VwcG9ydHNWYWx1ZUZ1bmN0aW9uKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGJvb2wgdmFsaWRNYXRyaWNlcyA9IHRydWU7CiAKLSAgICAvLyBJZiBmdW5jdGlvbkxpc3Rz
IGRvbid0IG1hdGNoIHdlIGRvIGEgbWF0cml4IGFuaW1hdGlvbiwgb3RoZXJ3aXNlIHdlIGRvIGEg
Y29tcG9uZW50IGhhcmR3YXJlIGFuaW1hdGlvbi4KKyAgICAvLyBJZiBmdW5jdGlvbiBsaXN0cyBk
b24ndCBtYXRjaCB3ZSBkbyBhIG1hdHJpeCBhbmltYXRpb24sIG90aGVyd2lzZSB3ZSBkbyBhIGNv
bXBvbmVudCBoYXJkd2FyZSBhbmltYXRpb24uCiAgICAgLy8gQWxzbywgd2UgY2FuJ3QgZG8gY29t
cG9uZW50IGFuaW1hdGlvbiB1bmxlc3Mgd2UgaGF2ZSB2YWx1ZUZ1bmN0aW9uLCBzbyB3ZSBuZWVk
IHRvIGRvIG1hdHJpeCBhbmltYXRpb24KICAgICAvLyBpZiB0aGF0J3Mgbm90IHRydWUgYXMgd2Vs
bC4KLSAgICBib29sIGlzTWF0cml4QW5pbWF0aW9uID0gIWxpc3RzTWF0Y2ggfHwgIVBsYXRmb3Jt
Q0FBbmltYXRpb246OnN1cHBvcnRzVmFsdWVGdW5jdGlvbigpOwotICAgIGludCBudW1BbmltYXRp
b25zID0gaXNNYXRyaXhBbmltYXRpb24gPyAxIDogZnVuY3Rpb25MaXN0LnNpemUoKTsKKyAgICBi
b29sIGlzTWF0cml4QW5pbWF0aW9uID0gbGlzdEluZGV4IDwgMCB8fCAhUGxhdGZvcm1DQUFuaW1h
dGlvbjo6c3VwcG9ydHNWYWx1ZUZ1bmN0aW9uKCk7CisgICAgaW50IG51bUFuaW1hdGlvbnMgPSBp
c01hdHJpeEFuaW1hdGlvbiA/IDEgOiBvcGVyYXRpb25zLT5zaXplKCk7CiAKICAgICBib29sIHJl
dmVyc2VBbmltYXRpb25MaXN0ID0gdHJ1ZTsKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpICYmICFQTEFURk9STShXSU4pCkBAIC0xODE0LDE0ICsxODE0LDE0IEBAIGJvb2wg
R3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZyYW1lcyhj
b25zdCBLZXlmcmFtZVZhbHVlCiAjZW5kaWYKICAgICBpZiAocmV2ZXJzZUFuaW1hdGlvbkxpc3Qp
IHsKICAgICAgICAgZm9yIChpbnQgYW5pbWF0aW9uSW5kZXggPSBudW1BbmltYXRpb25zIC0gMTsg
YW5pbWF0aW9uSW5kZXggPj0gMDsgLS1hbmltYXRpb25JbmRleCkgewotICAgICAgICAgICAgaWYg
KCFhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyh2YWx1ZUxpc3QsIGZ1bmN0aW9uTGlzdCwg
YW5pbWF0aW9uLCBhbmltYXRpb25OYW1lLCBib3hTaXplLCBhbmltYXRpb25JbmRleCwgdGltZU9m
ZnNldCwgaXNNYXRyaXhBbmltYXRpb24pKSB7CisgICAgICAgICAgICBpZiAoIWFwcGVuZFRvVW5j
b21taXR0ZWRBbmltYXRpb25zKHZhbHVlTGlzdCwgb3BlcmF0aW9ucywgYW5pbWF0aW9uLCBhbmlt
YXRpb25OYW1lLCBib3hTaXplLCBhbmltYXRpb25JbmRleCwgdGltZU9mZnNldCwgaXNNYXRyaXhB
bmltYXRpb24pKSB7CiAgICAgICAgICAgICAgICAgdmFsaWRNYXRyaWNlcyA9IGZhbHNlOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNl
IHsKICAgICAgICAgZm9yIChpbnQgYW5pbWF0aW9uSW5kZXggPSAwOyBhbmltYXRpb25JbmRleCA8
IG51bUFuaW1hdGlvbnM7ICsrYW5pbWF0aW9uSW5kZXgpIHsKLSAgICAgICAgICAgIGlmICghYXBw
ZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnModmFsdWVMaXN0LCBmdW5jdGlvbkxpc3QsIGFuaW1h
dGlvbiwgYW5pbWF0aW9uTmFtZSwgYm94U2l6ZSwgYW5pbWF0aW9uSW5kZXgsIHRpbWVPZmZzZXQs
IGlzTWF0cml4QW5pbWF0aW9uKSkgeworICAgICAgICAgICAgaWYgKCFhcHBlbmRUb1VuY29tbWl0
dGVkQW5pbWF0aW9ucyh2YWx1ZUxpc3QsIG9wZXJhdGlvbnMsIGFuaW1hdGlvbiwgYW5pbWF0aW9u
TmFtZSwgYm94U2l6ZSwgYW5pbWF0aW9uSW5kZXgsIHRpbWVPZmZzZXQsIGlzTWF0cml4QW5pbWF0
aW9uKSkgewogICAgICAgICAgICAgICAgIHZhbGlkTWF0cmljZXMgPSBmYWxzZTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggOTNlMGU2NGNkNzgy
MGQwNDE3ZDcxNGMwNDI1ZGE0MzgyODUyYzE3NC4uZjBkYTYzMDg0YTQ3OTc4YWYzZjk3YjU5ZWY4
M2IwNWZlYmQ2OWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTMyMSw3ICszMjEsNyBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyB2b2lkIG1vdmVPckNvcHlMYXllckFuaW1hdGlvbihNb3ZlT3JDb3B5LCBjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbklkZW50aWZpZXIsIFBsYXRmb3JtQ0FMYXllciAqZnJvbUxheWVy
LCBQbGF0Zm9ybUNBTGF5ZXIgKnRvTGF5ZXIpOwogICAgIHZvaWQgbW92ZU9yQ29weUFuaW1hdGlv
bnNGb3JQcm9wZXJ0eShNb3ZlT3JDb3B5LCBBbmltYXRlZFByb3BlcnR5SUQsIFBsYXRmb3JtQ0FM
YXllciAqIGZyb21MYXllciwgUGxhdGZvcm1DQUxheWVyICogdG9MYXllcik7CiAgICAgCi0gICAg
Ym9vbCBhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlz
dCYsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGludCBhbmlt
YXRpb25JbmRleCwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wgaXNNYXRyaXhBbmltYXRpb24pOwor
ICAgIGJvb2wgYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiwgY29uc3QgQW5pbWF0aW9uKiwgY29u
c3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25zdCBJbnRTaXplJiBib3hTaXplLCBpbnQgYW5p
bWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0LCBib29sIGlzTWF0cml4QW5pbWF0aW9uKTsK
ICAgICAKICAgICBlbnVtIExheWVyQ2hhbmdlIHsKICAgICAgICAgTm9DaGFuZ2UgPSAwLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggN2VmOTgxOGVkNmUw
MzAzZjQ5NzYzNjE4NzE0MTQ2NzRkNTgxOTRmNC4uMTZmNGYwMjE4NmIxZGIyZjgxNjZkZTI5Zjgx
ZGEzNDRjOGUzNWEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIu
Y3BwCkBAIC0zODksNyArMzg5LDEwIEBAIGJvb2wgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6
OmFkZEFuaW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0CiAKICAgICBp
ZiAodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9y
bSkgewogICAgICAgICBib29sIGhhc0JpZ1JvdGF0aW9uOyAvLyBOb3QgdXNlZCwgYnV0IHJlcXVp
cmVkIGFzIGEgcG9pbnRlciBwYXJhbWV0ZXIgZm9yIHRoZSBmdW5jdGlvbi4KLSAgICAgICAgZmV0
Y2hUcmFuc2Zvcm1PcGVyYXRpb25MaXN0KHZhbHVlTGlzdCwgYW5pbWF0aW9uLT5mdW5jdGlvbkxp
c3QsIGFuaW1hdGlvbi0+bGlzdHNNYXRjaCwgaGFzQmlnUm90YXRpb24pOworICAgICAgICBpbnQg
aW5kZXggPSB2YWxpZGF0ZVRyYW5zZm9ybU9wZXJhdGlvbnModmFsdWVMaXN0LCBoYXNCaWdSb3Rh
dGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+bGlzdHNNYXRjaCA9IGluZGV4ID49IDA7CisgICAg
ICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIG9wZXJhdGlvbnMgPSAobGlzdEluZGV4ID49
IDApID8gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxp
c3QuYXQobGlzdEluZGV4KSktPnZhbHVlKCkgOiAwOworICAgICAgICBhbmltYXRpb24tPmZ1bmN0
aW9uTGlzdFNpemUgPSBvcGVyYXRpb25zID8gb3BlcmF0aW9ucy0+c2l6ZSgpIDogMDsKICAgICB9
CiAKICAgICBtX2FuaW1hdGlvbnMuYXBwZW5kKGFuaW1hdGlvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJO
b2RlLmNwcAppbmRleCAyNzYyNTE3NzY2Njk3YmIzMmI1ZTU0M2UyM2I5MTc1NmQ5OTQzNTczLi45
YTNjMzM0ZDU3YmU1NzUxZmFhYTRkY2EwYzU2NzBjZWMyNzc3MjgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTm9kZS5jcHAKQEAgLTczMiw3ICs3MzIsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjph
cHBseVRyYW5zZm9ybUFuaW1hdGlvbihjb25zdCBUZXh0dXJlTWFwcGVyQW5pbWF0aW9uJiBhbgog
ICAgICAgICBwcm9ncmVzcyA9IDEuMCAtIHByb2dyZXNzOwogCiAgICAgVHJhbnNmb3JtT3BlcmF0
aW9ucyBibGVuZGVkKCp0byk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhbmltYXRpb24u
ZnVuY3Rpb25MaXN0LnNpemUoKTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYW5p
bWF0aW9uLmZ1bmN0aW9uTGlzdFNpemU7ICsraSkKICAgICAgICAgYmxlbmRlZC5vcGVyYXRpb25z
KClbaV0tPmJsZW5kKGZyb20tPmF0KGkpLCBwcm9ncmVzcywgIWZyb20tPmF0KGkpKS0+YXBwbHko
bWF0cml4LCBhbmltYXRpb24uYm94U2l6ZSk7CiAKICAgICBzZXRUcmFuc2Zvcm0obWF0cml4KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmgKaW5kZXggZTY0NjcyYjkyMzBkMjc2OTc3NDgwNjVkMGQwMDk1
NWNiMDAxMGNhMy4uYTIzMzdhNTRlYzM0OTdiZDk5NjkzNmUwNDE0ODdmZDQxMmIyNDBiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIEludFNp
emUgYm94U2l6ZTsKICAgICBSZWZQdHI8QW5pbWF0aW9uPiBhbmltYXRpb247CiAgICAgYm9vbCBw
YXVzZWQ7Ci0gICAgVmVjdG9yPFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZT4gZnVu
Y3Rpb25MaXN0OworICAgIGludCBmdW5jdGlvbkxpc3RTaXplOwogICAgIGJvb2wgbGlzdHNNYXRj
aDsKICAgICBib29sIGhhc0JpZ1JvdGF0aW9uOwogICAgIGRvdWJsZSBzdGFydFRpbWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124399</attachid>
            <date>2012-01-27 16:46:49 -0800</date>
            <delta_ts>2012-01-27 17:43:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77249-20120127164647.patch</filename>
            <type>text/plain</type>
            <size>15965</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTM4ZTViNDY3NWJjMDg2
YmNhNDk3OGMyNGFhZGVjZGE4M2Y1ODhlZC4uMjgyZDBiMGEzZjY3YTY0NDM0NTRlY2EwNTgwYTM4
NmJjMmU4OGViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAxLTI3ICBDaHJp
cyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIFRyYW5z
Zm9ybU9wZXJhdGlvbkxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3MjQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2hhbmdlZCBmZXRjaFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QgdG8gdmFsaWRhdGVU
cmFuc2Zvcm1PcGVyYXRpb25zIGFuZCBnb3QgcmlkIG9mIHNlcGFyYXRlbHkgZ2VuZXJhdGVkIGxp
c3QKKyAgICAgICAgb2YgdHJhbnNmb3JtIG9wZXJhdGlvbnMuIFRoZXNlIGFyZSBub3QgbmVlZGVk
LCB0aGV5IGFyZSBhbHJlYWR5IGF2YWlsYWJsZSBpbiB0aGUga2V5ZnJhbWUgbGlzdHMgYW5kIHRo
ZXkKKyAgICAgICAgbWFrZSBpdCBtb3JlIGRpZmZpY3VsdCB0byBhZGQgc3VwcG9ydCBmb3IgaGFy
ZHdhcmUgYW5pbWF0ZWQgZmlsdGVycy4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyOjp2YWxpZGF0ZVRyYW5zZm9ybU9wZXJhdGlvbnMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRB
bmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJh
bnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmFkZEFuaW1hdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlUcmFuc2Zvcm1BbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbjo6VGV4dHVyZU1hcHBlckFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9uOjphcHBseUludGVy
bmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFu
aW1hdGlvbi5oOgorICAgICAgICAoVGV4dHVyZU1hcHBlckFuaW1hdGlvbik6CisKIDIwMTItMDEt
MjcgIE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBD
U1MgY2FsYyBwYXJzaW5nIHN0YWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDZiZWNjNTQ2MzA3ZGQwNzg5MjhlY2RlNTRj
MjA5ZDg3MmJmNzk2ZmEuLjJhNWM0NWQ0MDUxODk2NmE5Y2ZlNDRiYzY1MjcxMjcxM2FkOTkwMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCkBAIC0zODUsMTYgKzM4NSwxNCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IFRyYW5zZm9y
bU9wZXJhdGlvbnMqIG9wZXJhdGlvbnNBdChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdgogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVl
TGlzdC5hdChpbmRleCkpLT52YWx1ZSgpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXI6OmZldGNo
VHJhbnNmb3JtT3BlcmF0aW9uTGlzdChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0
LCBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0JiBsaXN0LCBib29sJiBpc1ZhbGlkLCBib29sJiBoYXNC
aWdSb3RhdGlvbikKK2ludCBHcmFwaGljc0xheWVyOjp2YWxpZGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgYm9vbCYgaGFzQmlnUm90YXRp
b24pCiB7CiAgICAgQVNTRVJUKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVkUHJvcGVy
dHlXZWJraXRUcmFuc2Zvcm0pOwogCi0gICAgbGlzdC5jbGVhcigpOwotICAgIGlzVmFsaWQgPSBm
YWxzZTsKICAgICBoYXNCaWdSb3RhdGlvbiA9IGZhbHNlOwogICAgIAogICAgIGlmICh2YWx1ZUxp
c3Quc2l6ZSgpIDwgMikKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gLTE7CiAgICAg
CiAgICAgLy8gRW1wdHkgdHJhbnNmb3JtcyBtYXRjaCBhbnl0aGluZywgc28gZmluZCB0aGUgZmly
c3Qgbm9uLWVtcHR5IGVudHJ5IGFzIHRoZSByZWZlcmVuY2UuCiAgICAgc2l6ZV90IGZpcnN0SW5k
ZXggPSAwOwpAQCAtNDA0LDcgKzQwMiw3IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZmV0Y2hUcmFu
c2Zvcm1PcGVyYXRpb25MaXN0KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpCiAgICAg
fQogICAgIAogICAgIGlmIChmaXJzdEluZGV4ID49IHZhbHVlTGlzdC5zaXplKCkpCi0gICAgICAg
IHJldHVybjsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAKICAgICBjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb25zKiBmaXJzdFZhbCA9IG9wZXJhdGlvbnNBdCh2YWx1ZUxpc3QsIGZpcnN0SW5k
ZXgpOwogICAgIApAQCAtNDE3LDE5ICs0MTUsMTUgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpmZXRj
aFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCiAgICAgICAgIGlmICghZmlyc3RW
YWwtPm9wZXJhdGlvbnNNYXRjaCgqdmFsKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICAvLyBLZXlmcmFtZXMgYXJlIHZhbGlkLCBmaWxs
IGluIHRoZSBsaXN0LgotICAgIGlzVmFsaWQgPSB0cnVlOwotICAgIAorICAgIC8vIEtleWZyYW1l
cyBhcmUgdmFsaWQsIGNoZWNrIGZvciBiaWcgcm90YXRpb25zLiAgICAKICAgICBkb3VibGUgbGFz
dFJvdEFuZ2xlID0gMC4wOwogICAgIGRvdWJsZSBtYXhSb3RBbmdsZSA9IC0xLjA7CiAgICAgICAg
IAotICAgIGxpc3QucmVzaXplKGZpcnN0VmFsLT5vcGVyYXRpb25zKCkuc2l6ZSgpKTsKICAgICBm
b3IgKHNpemVfdCBqID0gMDsgaiA8IGZpcnN0VmFsLT5vcGVyYXRpb25zKCkuc2l6ZSgpOyArK2op
IHsKICAgICAgICAgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSBmaXJz
dFZhbC0+b3BlcmF0aW9ucygpLmF0KGopLT5nZXRPcGVyYXRpb25UeXBlKCk7Ci0gICAgICAgIGxp
c3Rbal0gPSB0eXBlOwogICAgICAgICAKICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIHJvdGF0aW9u
IGVudHJ5LCB3ZSBuZWVkIHRvIHNlZSBpZiBhbnkgYW5nbGUgZGlmZmVyZW5jZXMgYXJlID49IDE4
MCBkZWcKICAgICAgICAgaWYgKHR5cGUgPT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWCB8
fApAQCAtNDUzLDYgKzQ0Nyw4IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZmV0Y2hUcmFuc2Zvcm1P
cGVyYXRpb25MaXN0KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpCiAgICAgfQogICAg
IAogICAgIGhhc0JpZ1JvdGF0aW9uID0gbWF4Um90QW5nbGUgPj0gMTgwLjA7CisgICAgCisgICAg
cmV0dXJuIGZpcnN0SW5kZXg7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IGRjNmU4YjgwNTJhNDliYjA4ZmYwNWQ2ZjU4
OWE2NWZiOTQ2ZmRhNjUuLjkwNjE1MjAzZGU2NjQ4MzBlZDU0N2E3YWNlNTBjMzRhNDJkMTgyZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKQEAgLTQyMywxMCArNDIzLDEyIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFyRmlsdGVy
cygpIHsgbV9maWx0ZXJzLmNsZWFyKCk7IH0KICNlbmRpZgogCi0gICAgdHlwZWRlZiBWZWN0b3I8
VHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlPiBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0
OwotICAgIC8vIEdpdmVuIGEgbGlzdCBvZiBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZXMsIHJldHVy
biBhbiBhcnJheSBvZiB0cmFuc2Zvcm0gb3BlcmF0aW9ucy4KLSAgICAvLyBPbiByZXR1cm4sIGlm
IGhhc0JpZ1JvdGF0aW9uIGlzIHRydWUsIGZ1bmN0aW9ucyBjb250YWluIHJvdGF0aW9ucyBvZiA+
PSAxODAgZGVncmVlcwotICAgIHN0YXRpYyB2b2lkIGZldGNoVHJhbnNmb3JtT3BlcmF0aW9uTGlz
dChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QmLCBib29s
JiBpc1ZhbGlkLCBib29sJiBoYXNCaWdSb3RhdGlvbik7CisgICAgLy8gR2l2ZW4gYSBsaXN0IG9m
IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlcywgc2VlIGlmIGFsbCB0aGUgb3BlcmF0aW9ucyBmb3Ig
ZWFjaCBrZXlmcmFtZSBtYXRjaC4gSWYgc28KKyAgICAvLyByZXR1cm4gdGhlIGluZGV4IG9mIHRo
ZSBLZXlmcmFtZVZhbHVlTGlzdCBlbnRyeSB0aGF0IGhhcyB0aGF0IGxpc3Qgb2Ygb3BlcmF0aW9u
cyAoaXQgbWF5IG5vdCBiZQorICAgIC8vIHRoZSBmaXJzdCBlbnRyeSBiZWNhdXNlIHNvbWUga2V5
ZnJhbWVzIG1pZ2h0IGhhdmUgYW4gZW1wdHkgdHJhbnNmb3JtIGFuZCB0aG9zZSBtYXRjaCBhbnkg
bGlzdCkuCisgICAgLy8gSWYgdGhlIGxpc3RzIGRvbid0IG1hdGNoIHJldHVybiAtMS4gT24gcmV0
dXJuLCBpZiBoYXNCaWdSb3RhdGlvbiBpcyB0cnVlLCBmdW5jdGlvbnMgY29udGFpbiAKKyAgICAv
LyByb3RhdGlvbnMgb2YgPj0gMTgwIGRlZ3JlZXMKKyAgICBzdGF0aWMgaW50IHZhbGlkYXRlVHJh
bnNmb3JtT3BlcmF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGJvb2wmIGhhc0JpZ1Jv
dGF0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5SW50ZXJuYWwoZmxvYXQpIHsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcAppbmRleCBkNGQyMGFlNGRkZWY1ZjRjOTM1YzBjNDVjMmM1YzkzMTE0
ODY0Y2E4Li4yOTljOTIxZjQ0ZjNlNDdjNzU3ODRkYjE0N2U0OTVmOWVmZjlmMTg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5jcHAKQEAgLTE3NTYsOSArMTc1Niw5IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVh
dGVBbmltYXRpb25Gcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29t
bWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25z
dCBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0JiBmdW5jdGlvbkxpc3QsIGNvbnN0IEFuaW1hdGlvbiog
YW5pbWF0aW9uLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGNvbnN0IEludFNpemUmIGJv
eFNpemUsIGludCBhbmltYXRpb25JbmRleCwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wgaXNNYXRy
aXhBbmltYXRpb24pCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFu
aW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9ucyogb3BlcmF0aW9ucywgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNv
bnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgaW50IGFu
aW1hdGlvbkluZGV4LCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbikK
IHsKLSAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHJhbnNmb3JtT3AgPSBp
c01hdHJpeEFuaW1hdGlvbiA/IFRyYW5zZm9ybU9wZXJhdGlvbjo6TUFUUklYXzNEIDogZnVuY3Rp
b25MaXN0W2FuaW1hdGlvbkluZGV4XTsKKyAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlv
blR5cGUgdHJhbnNmb3JtT3AgPSBpc01hdHJpeEFuaW1hdGlvbiA/IFRyYW5zZm9ybU9wZXJhdGlv
bjo6TUFUUklYXzNEIDogb3BlcmF0aW9ucy0+b3BlcmF0aW9ucygpLmF0KGFuaW1hdGlvbkluZGV4
KS0+Z2V0T3BlcmF0aW9uVHlwZSgpOwogICAgIGJvb2wgYWRkaXRpdmUgPSBhbmltYXRpb25JbmRl
eCA+IDA7CiAgICAgYm9vbCBpc0tleWZyYW1lID0gdmFsdWVMaXN0LnNpemUoKSA+IDI7CiAKQEAg
LTE3ODMsMjMgKzE3ODMsMjMgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9y
bUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWUKIHsKICAgICBBU1NF
UlQodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9y
bSk7CiAKLSAgICBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0IGZ1bmN0aW9uTGlzdDsKLSAgICBib29s
IGxpc3RzTWF0Y2gsIGhhc0JpZ1JvdGF0aW9uOwotICAgIGZldGNoVHJhbnNmb3JtT3BlcmF0aW9u
TGlzdCh2YWx1ZUxpc3QsIGZ1bmN0aW9uTGlzdCwgbGlzdHNNYXRjaCwgaGFzQmlnUm90YXRpb24p
OworICAgIGJvb2wgaGFzQmlnUm90YXRpb247CisgICAgaW50IGxpc3RJbmRleCA9IHZhbGlkYXRl
VHJhbnNmb3JtT3BlcmF0aW9ucyh2YWx1ZUxpc3QsIGhhc0JpZ1JvdGF0aW9uKTsKKyAgICBjb25z
dCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBvcGVyYXRpb25zID0gKGxpc3RJbmRleCA+PSAwKSA/IHN0
YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGxp
c3RJbmRleCkpLT52YWx1ZSgpIDogMDsKIAogICAgIC8vIFdlIG5lZWQgdG8gZmFsbCBiYWNrIHRv
IHNvZnR3YXJlIGFuaW1hdGlvbiBpZiB3ZSBkb24ndCBoYXZlIHNldFZhbHVlRnVuY3Rpb246LCBh
bmQKICAgICAvLyB3ZSB3b3VsZCBuZWVkIHRvIGFuaW1hdGUgZWFjaCBpbmNvbWluZyB0cmFuc2Zv
cm0gZnVuY3Rpb24gc2VwYXJhdGVseS4gVGhpcyBpcyB0aGUKICAgICAvLyBjYXNlIGlmIHdlIGhh
dmUgYSByb3RhdGlvbiA+PSAxODAgb3Igd2UgaGF2ZSBtb3JlIHRoYW4gb25lIHRyYW5zZm9ybSBm
dW5jdGlvbi4KLSAgICBpZiAoKGhhc0JpZ1JvdGF0aW9uIHx8IGZ1bmN0aW9uTGlzdC5zaXplKCkg
PiAxKSAmJiAhUGxhdGZvcm1DQUFuaW1hdGlvbjo6c3VwcG9ydHNWYWx1ZUZ1bmN0aW9uKCkpCisg
ICAgaWYgKChoYXNCaWdSb3RhdGlvbiB8fCAob3BlcmF0aW9ucyAmJiBvcGVyYXRpb25zLT5zaXpl
KCkgPiAxKSkgJiYgIVBsYXRmb3JtQ0FBbmltYXRpb246OnN1cHBvcnRzVmFsdWVGdW5jdGlvbigp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIHZhbGlkTWF0cmljZXMgPSB0cnVl
OwogCi0gICAgLy8gSWYgZnVuY3Rpb25MaXN0cyBkb24ndCBtYXRjaCB3ZSBkbyBhIG1hdHJpeCBh
bmltYXRpb24sIG90aGVyd2lzZSB3ZSBkbyBhIGNvbXBvbmVudCBoYXJkd2FyZSBhbmltYXRpb24u
CisgICAgLy8gSWYgZnVuY3Rpb24gbGlzdHMgZG9uJ3QgbWF0Y2ggd2UgZG8gYSBtYXRyaXggYW5p
bWF0aW9uLCBvdGhlcndpc2Ugd2UgZG8gYSBjb21wb25lbnQgaGFyZHdhcmUgYW5pbWF0aW9uLgog
ICAgIC8vIEFsc28sIHdlIGNhbid0IGRvIGNvbXBvbmVudCBhbmltYXRpb24gdW5sZXNzIHdlIGhh
dmUgdmFsdWVGdW5jdGlvbiwgc28gd2UgbmVlZCB0byBkbyBtYXRyaXggYW5pbWF0aW9uCiAgICAg
Ly8gaWYgdGhhdCdzIG5vdCB0cnVlIGFzIHdlbGwuCi0gICAgYm9vbCBpc01hdHJpeEFuaW1hdGlv
biA9ICFsaXN0c01hdGNoIHx8ICFQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzdXBwb3J0c1ZhbHVlRnVu
Y3Rpb24oKTsKLSAgICBpbnQgbnVtQW5pbWF0aW9ucyA9IGlzTWF0cml4QW5pbWF0aW9uID8gMSA6
IGZ1bmN0aW9uTGlzdC5zaXplKCk7CisgICAgYm9vbCBpc01hdHJpeEFuaW1hdGlvbiA9IGxpc3RJ
bmRleCA8IDAgfHwgIVBsYXRmb3JtQ0FBbmltYXRpb246OnN1cHBvcnRzVmFsdWVGdW5jdGlvbigp
OworICAgIGludCBudW1BbmltYXRpb25zID0gaXNNYXRyaXhBbmltYXRpb24gPyAxIDogb3BlcmF0
aW9ucy0+c2l6ZSgpOwogCiAgICAgYm9vbCByZXZlcnNlQW5pbWF0aW9uTGlzdCA9IHRydWU7CiAj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhUExBVEZPUk0oV0lOKQpA
QCAtMTgxNCwxNCArMTgxNCwxNCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNm
b3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZQogI2VuZGlmCiAg
ICAgaWYgKHJldmVyc2VBbmltYXRpb25MaXN0KSB7CiAgICAgICAgIGZvciAoaW50IGFuaW1hdGlv
bkluZGV4ID0gbnVtQW5pbWF0aW9ucyAtIDE7IGFuaW1hdGlvbkluZGV4ID49IDA7IC0tYW5pbWF0
aW9uSW5kZXgpIHsKLSAgICAgICAgICAgIGlmICghYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlv
bnModmFsdWVMaXN0LCBmdW5jdGlvbkxpc3QsIGFuaW1hdGlvbiwgYW5pbWF0aW9uTmFtZSwgYm94
U2l6ZSwgYW5pbWF0aW9uSW5kZXgsIHRpbWVPZmZzZXQsIGlzTWF0cml4QW5pbWF0aW9uKSkgewor
ICAgICAgICAgICAgaWYgKCFhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyh2YWx1ZUxpc3Qs
IG9wZXJhdGlvbnMsIGFuaW1hdGlvbiwgYW5pbWF0aW9uTmFtZSwgYm94U2l6ZSwgYW5pbWF0aW9u
SW5kZXgsIHRpbWVPZmZzZXQsIGlzTWF0cml4QW5pbWF0aW9uKSkgewogICAgICAgICAgICAgICAg
IHZhbGlkTWF0cmljZXMgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAoaW50IGFuaW1hdGlv
bkluZGV4ID0gMDsgYW5pbWF0aW9uSW5kZXggPCBudW1BbmltYXRpb25zOyArK2FuaW1hdGlvbklu
ZGV4KSB7Ci0gICAgICAgICAgICBpZiAoIWFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKHZh
bHVlTGlzdCwgZnVuY3Rpb25MaXN0LCBhbmltYXRpb24sIGFuaW1hdGlvbk5hbWUsIGJveFNpemUs
IGFuaW1hdGlvbkluZGV4LCB0aW1lT2Zmc2V0LCBpc01hdHJpeEFuaW1hdGlvbikpIHsKKyAgICAg
ICAgICAgIGlmICghYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnModmFsdWVMaXN0LCBvcGVy
YXRpb25zLCBhbmltYXRpb24sIGFuaW1hdGlvbk5hbWUsIGJveFNpemUsIGFuaW1hdGlvbkluZGV4
LCB0aW1lT2Zmc2V0LCBpc01hdHJpeEFuaW1hdGlvbikpIHsKICAgICAgICAgICAgICAgICB2YWxp
ZE1hdHJpY2VzID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oCmluZGV4IDkzZTBlNjRjZDc4MjBkMDQxN2Q3MTRjMDQyNWRhNDM4Mjg1MmMxNzQu
LmYwZGE2MzA4NGE0Nzk3OGFmM2Y5N2I1OWVmODNiMDVmZWJkNjliNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBA
IC0zMjEsNyArMzIxLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBtb3ZlT3JDb3B5TGF5
ZXJBbmltYXRpb24oTW92ZU9yQ29weSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZGVudGlmaWVy
LCBQbGF0Zm9ybUNBTGF5ZXIgKmZyb21MYXllciwgUGxhdGZvcm1DQUxheWVyICp0b0xheWVyKTsK
ICAgICB2b2lkIG1vdmVPckNvcHlBbmltYXRpb25zRm9yUHJvcGVydHkoTW92ZU9yQ29weSwgQW5p
bWF0ZWRQcm9wZXJ0eUlELCBQbGF0Zm9ybUNBTGF5ZXIgKiBmcm9tTGF5ZXIsIFBsYXRmb3JtQ0FM
YXllciAqIHRvTGF5ZXIpOwogICAgIAotICAgIGJvb2wgYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1h
dGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25M
aXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25z
dCBJbnRTaXplJiBib3hTaXplLCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0
LCBib29sIGlzTWF0cml4QW5pbWF0aW9uKTsKKyAgICBib29sIGFwcGVuZFRvVW5jb21taXR0ZWRB
bmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgVHJhbnNmb3JtT3BlcmF0
aW9ucyosIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgY29u
c3QgSW50U2l6ZSYgYm94U2l6ZSwgaW50IGFuaW1hdGlvbkluZGV4LCBkb3VibGUgdGltZU9mZnNl
dCwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbik7CiAgICAgCiAgICAgZW51bSBMYXllckNoYW5nZSB7
CiAgICAgICAgIE5vQ2hhbmdlID0gMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuY3BwCmluZGV4IGY0NzhiOWYxZjZiZmFhNTAxZjUxYzBmY2E4YmRiNDRhNjM5ZTkxN2Yu
LmI1MjFkMWEyMWMwMDY2M2JlYTcxMzUyOTBhMDJjYzliZGQ1YzFmYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzY1LDE0ICszNjUsMTMgQEAgYm9v
bCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1l
VmFsdWVMaXN0JiB2YWx1ZUxpc3QKICAgICBpZiAoIWFuaW0gfHwgYW5pbS0+aXNFbXB0eU9yWmVy
b0R1cmF0aW9uKCkgfHwgdmFsdWVMaXN0LnNpemUoKSA8IDIgfHwgKHZhbHVlTGlzdC5wcm9wZXJ0
eSgpICE9IEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0gJiYgdmFsdWVMaXN0LnByb3Bl
cnR5KCkgIT0gQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBib29sIGxpc3RzTWF0Y2g7CisgICAgYm9vbCBsaXN0c01hdGNoID0gZmFsc2U7CiAg
ICAgYm9vbCBoYXNCaWdSb3RhdGlvbjsKLSAgICBWZWN0b3I8VHJhbnNmb3JtT3BlcmF0aW9uOjpP
cGVyYXRpb25UeXBlPiBmdW5jdGlvbkxpc3Q7CiAKICAgICBpZiAodmFsdWVMaXN0LnByb3BlcnR5
KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSkKLSAgICAgICAgZmV0Y2hUcmFu
c2Zvcm1PcGVyYXRpb25MaXN0KHZhbHVlTGlzdCwgZnVuY3Rpb25MaXN0LCBsaXN0c01hdGNoLCBo
YXNCaWdSb3RhdGlvbik7CisgICAgICAgIGxpc3RzTWF0Y2ggPSB2YWxpZGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbnModmFsdWVMaXN0LCBoYXNCaWdSb3RhdGlvbikgPj0gMDsKIAotICAgIG1fYW5pbWF0
aW9ucy5hZGQoa2V5ZnJhbWVzTmFtZSwgVGV4dHVyZU1hcHBlckFuaW1hdGlvbih2YWx1ZUxpc3Qs
IGJveFNpemUsIGFuaW0sIHRpbWVPZmZzZXQsIGZ1bmN0aW9uTGlzdCwgbGlzdHNNYXRjaCkpOwor
ICAgIG1fYW5pbWF0aW9ucy5hZGQoa2V5ZnJhbWVzTmFtZSwgVGV4dHVyZU1hcHBlckFuaW1hdGlv
bih2YWx1ZUxpc3QsIGJveFNpemUsIGFuaW0sIHRpbWVPZmZzZXQsIGxpc3RzTWF0Y2gpKTsKICAg
ICBub3RpZnlDaGFuZ2UoVGV4dHVyZU1hcHBlck5vZGU6OkFuaW1hdGlvbkNoYW5nZSk7CiAgICAg
bV9hbmltYXRpb25TdGFydGVkVGltZXIuc3RhcnRPbmVTaG90KDApOwogICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24uY3BwCmluZGV4IGQ0ZDE5NmQ5NzA3NDJl
MThlNWY1YWQ4MTBmNDUxZDJiMzBiNzM0NDUuLjA5NzE0ZDkwOTkzMThlZWVhZjUwZTNkODlhMjJi
ODEyMjhkMTQ0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFuaW1hdGlvbi5jcHAKQEAgLTg1
LDcgKzg1LDcgQEAgc3RhdGljIGlubGluZSBmbG9hdCBhcHBseVRpbWluZ0Z1bmN0aW9uKGNvbnN0
IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiwgZmwKICAgICByZXR1cm4gcHJvZ3Jlc3M7
CiB9CiAKLXN0YXRpYyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhcHBseVRyYW5zZm9ybUFuaW1hdGlv
bihjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBmcm9tLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b25zKiB0bywgZG91YmxlIHByb2dyZXNzLCBjb25zdCBJbnRTaXplJiBib3hTaXplLCBjb25zdCBW
ZWN0b3I8VHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlPiBmdW5jdGlvbkxpc3QsIGJv
b2wgbGlzdHNNYXRjaCkKK3N0YXRpYyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhcHBseVRyYW5zZm9y
bUFuaW1hdGlvbihjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBmcm9tLCBjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb25zKiB0bywgZG91YmxlIHByb2dyZXNzLCBjb25zdCBJbnRTaXplJiBib3hTaXpl
LCBib29sIGxpc3RzTWF0Y2gpCiB7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4Owog
CkBAIC0xMzQsMTEgKzEzNCwxMCBAQCBzdGF0aWMgVHJhbnNmb3JtYXRpb25NYXRyaXggYXBwbHlU
cmFuc2Zvcm1BbmltYXRpb24oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogZgogfQogCiAKLVRl
eHR1cmVNYXBwZXJBbmltYXRpb246OlRleHR1cmVNYXBwZXJBbmltYXRpb24oY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmIGtleWZyYW1lcywgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5p
bWF0aW9uKiBhbmltYXRpb24sIGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBWZWN0b3I8VHJhbnNm
b3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlPiYgZnVuY3Rpb25MaXN0LCBib29sIGxpc3RzTWF0
Y2gpCitUZXh0dXJlTWFwcGVyQW5pbWF0aW9uOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9uKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiBrZXlmcmFtZXMsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGNv
bnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCBsaXN0c01h
dGNoKQogICAgIDogbV9rZXlmcmFtZXMoa2V5ZnJhbWVzKQogICAgICwgbV9ib3hTaXplKGJveFNp
emUpCiAgICAgLCBtX2FuaW1hdGlvbihBbmltYXRpb246OmNyZWF0ZShhbmltYXRpb24pKQotICAg
ICwgbV9mdW5jdGlvbkxpc3QoZnVuY3Rpb25MaXN0KQogICAgICwgbV9saXN0c01hdGNoKGxpc3Rz
TWF0Y2gpCiAgICAgLCBtX3N0YXJ0VGltZShXVEY6OmN1cnJlbnRUaW1lKCkgLSB0aW1lT2Zmc2V0
KQogICAgICwgbV9wYXVzZVRpbWUoMCkKQEAgLTE1Myw3ICsxNTIsNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJBbmltYXRpb246OmFwcGx5SW50ZXJuYWwoVGV4dHVyZU1hcHBlckFuaW1hdGlvbkNsaWVu
dCogY2xpZW50LAogICAgICAgICBjbGllbnQtPnNldE9wYWNpdHkoYXBwbHlPcGFjaXR5QW5pbWF0
aW9uKChzdGF0aWNfY2FzdDxjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKj4oZnJvbSktPnZhbHVl
KCkpLCAoc3RhdGljX2Nhc3Q8Y29uc3QgRmxvYXRBbmltYXRpb25WYWx1ZSo+KHRvKS0+dmFsdWUo
KSksIHByb2dyZXNzKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEFuaW1hdGVkUHJvcGVy
dHlXZWJraXRUcmFuc2Zvcm06Ci0gICAgICAgIGNsaWVudC0+c2V0VHJhbnNmb3JtKGFwcGx5VHJh
bnNmb3JtQW5pbWF0aW9uKHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVl
Kj4oZnJvbSktPnZhbHVlKCksIHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZh
bHVlKj4odG8pLT52YWx1ZSgpLCBwcm9ncmVzcywgbV9ib3hTaXplLCBtX2Z1bmN0aW9uTGlzdCwg
bV9saXN0c01hdGNoKSk7CisgICAgICAgIGNsaWVudC0+c2V0VHJhbnNmb3JtKGFwcGx5VHJhbnNm
b3JtQW5pbWF0aW9uKHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4o
ZnJvbSktPnZhbHVlKCksIHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVl
Kj4odG8pLT52YWx1ZSgpLCBwcm9ncmVzcywgbV9ib3hTaXplLCBtX2xpc3RzTWF0Y2gpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQW5pbWF0aW9uLmgKaW5kZXggNWUyMjZlOGFlNjQ5ZjM1NTdh
MjVhOGI2ZDMxNWJmY2I3OWUxYjVmMi4uZjY1YWMyZDU0YmU2OWM4MDc1YTAxZmVmMmI1MzFjZTRm
NTlhZDIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFuaW1hdGlvbi5oCkBAIC01NSw3ICs1NSw2
IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX2JveFNpemU7CiAgICAgUmVmUHRyPEFuaW1hdGlv
bj4gbV9hbmltYXRpb247CiAgICAgU3RyaW5nIG1fbmFtZTsKLSAgICBWZWN0b3I8VHJhbnNmb3Jt
T3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlPiBtX2Z1bmN0aW9uTGlzdDsKICAgICBib29sIG1fbGlz
dHNNYXRjaDsKICAgICBib29sIG1faGFzQmlnUm90YXRpb247CiAgICAgZG91YmxlIG1fc3RhcnRU
aW1lOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124408</attachid>
            <date>2012-01-27 17:43:47 -0800</date>
            <delta_ts>2012-01-30 16:03:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77249-20120127174346.patch</filename>
            <type>text/plain</type>
            <size>16461</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTM4ZTViNDY3NWJjMDg2
YmNhNDk3OGMyNGFhZGVjZGE4M2Y1ODhlZC4uMjgyZDBiMGEzZjY3YTY0NDM0NTRlY2EwNTgwYTM4
NmJjMmU4OGViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAxLTI3ICBDaHJp
cyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIFRyYW5z
Zm9ybU9wZXJhdGlvbkxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3MjQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2hhbmdlZCBmZXRjaFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QgdG8gdmFsaWRhdGVU
cmFuc2Zvcm1PcGVyYXRpb25zIGFuZCBnb3QgcmlkIG9mIHNlcGFyYXRlbHkgZ2VuZXJhdGVkIGxp
c3QKKyAgICAgICAgb2YgdHJhbnNmb3JtIG9wZXJhdGlvbnMuIFRoZXNlIGFyZSBub3QgbmVlZGVk
LCB0aGV5IGFyZSBhbHJlYWR5IGF2YWlsYWJsZSBpbiB0aGUga2V5ZnJhbWUgbGlzdHMgYW5kIHRo
ZXkKKyAgICAgICAgbWFrZSBpdCBtb3JlIGRpZmZpY3VsdCB0byBhZGQgc3VwcG9ydCBmb3IgaGFy
ZHdhcmUgYW5pbWF0ZWQgZmlsdGVycy4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyOjp2YWxpZGF0ZVRyYW5zZm9ybU9wZXJhdGlvbnMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRB
bmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJh
bnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmFkZEFuaW1hdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlUcmFuc2Zvcm1BbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbjo6VGV4dHVyZU1hcHBlckFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9uOjphcHBseUludGVy
bmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFu
aW1hdGlvbi5oOgorICAgICAgICAoVGV4dHVyZU1hcHBlckFuaW1hdGlvbik6CisKIDIwMTItMDEt
MjcgIE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBD
U1MgY2FsYyBwYXJzaW5nIHN0YWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDZiZWNjNTQ2MzA3ZGQwNzg5MjhlY2RlNTRj
MjA5ZDg3MmJmNzk2ZmEuLjJhNWM0NWQ0MDUxODk2NmE5Y2ZlNDRiYzY1MjcxMjcxM2FkOTkwMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCkBAIC0zODUsMTYgKzM4NSwxNCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IFRyYW5zZm9y
bU9wZXJhdGlvbnMqIG9wZXJhdGlvbnNBdChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdgogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVl
TGlzdC5hdChpbmRleCkpLT52YWx1ZSgpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXI6OmZldGNo
VHJhbnNmb3JtT3BlcmF0aW9uTGlzdChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0
LCBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0JiBsaXN0LCBib29sJiBpc1ZhbGlkLCBib29sJiBoYXNC
aWdSb3RhdGlvbikKK2ludCBHcmFwaGljc0xheWVyOjp2YWxpZGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgYm9vbCYgaGFzQmlnUm90YXRp
b24pCiB7CiAgICAgQVNTRVJUKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVkUHJvcGVy
dHlXZWJraXRUcmFuc2Zvcm0pOwogCi0gICAgbGlzdC5jbGVhcigpOwotICAgIGlzVmFsaWQgPSBm
YWxzZTsKICAgICBoYXNCaWdSb3RhdGlvbiA9IGZhbHNlOwogICAgIAogICAgIGlmICh2YWx1ZUxp
c3Quc2l6ZSgpIDwgMikKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gLTE7CiAgICAg
CiAgICAgLy8gRW1wdHkgdHJhbnNmb3JtcyBtYXRjaCBhbnl0aGluZywgc28gZmluZCB0aGUgZmly
c3Qgbm9uLWVtcHR5IGVudHJ5IGFzIHRoZSByZWZlcmVuY2UuCiAgICAgc2l6ZV90IGZpcnN0SW5k
ZXggPSAwOwpAQCAtNDA0LDcgKzQwMiw3IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZmV0Y2hUcmFu
c2Zvcm1PcGVyYXRpb25MaXN0KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpCiAgICAg
fQogICAgIAogICAgIGlmIChmaXJzdEluZGV4ID49IHZhbHVlTGlzdC5zaXplKCkpCi0gICAgICAg
IHJldHVybjsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAKICAgICBjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb25zKiBmaXJzdFZhbCA9IG9wZXJhdGlvbnNBdCh2YWx1ZUxpc3QsIGZpcnN0SW5k
ZXgpOwogICAgIApAQCAtNDE3LDE5ICs0MTUsMTUgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpmZXRj
aFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCiAgICAgICAgIGlmICghZmlyc3RW
YWwtPm9wZXJhdGlvbnNNYXRjaCgqdmFsKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICAvLyBLZXlmcmFtZXMgYXJlIHZhbGlkLCBmaWxs
IGluIHRoZSBsaXN0LgotICAgIGlzVmFsaWQgPSB0cnVlOwotICAgIAorICAgIC8vIEtleWZyYW1l
cyBhcmUgdmFsaWQsIGNoZWNrIGZvciBiaWcgcm90YXRpb25zLiAgICAKICAgICBkb3VibGUgbGFz
dFJvdEFuZ2xlID0gMC4wOwogICAgIGRvdWJsZSBtYXhSb3RBbmdsZSA9IC0xLjA7CiAgICAgICAg
IAotICAgIGxpc3QucmVzaXplKGZpcnN0VmFsLT5vcGVyYXRpb25zKCkuc2l6ZSgpKTsKICAgICBm
b3IgKHNpemVfdCBqID0gMDsgaiA8IGZpcnN0VmFsLT5vcGVyYXRpb25zKCkuc2l6ZSgpOyArK2op
IHsKICAgICAgICAgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSBmaXJz
dFZhbC0+b3BlcmF0aW9ucygpLmF0KGopLT5nZXRPcGVyYXRpb25UeXBlKCk7Ci0gICAgICAgIGxp
c3Rbal0gPSB0eXBlOwogICAgICAgICAKICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIHJvdGF0aW9u
IGVudHJ5LCB3ZSBuZWVkIHRvIHNlZSBpZiBhbnkgYW5nbGUgZGlmZmVyZW5jZXMgYXJlID49IDE4
MCBkZWcKICAgICAgICAgaWYgKHR5cGUgPT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWCB8
fApAQCAtNDUzLDYgKzQ0Nyw4IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZmV0Y2hUcmFuc2Zvcm1P
cGVyYXRpb25MaXN0KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpCiAgICAgfQogICAg
IAogICAgIGhhc0JpZ1JvdGF0aW9uID0gbWF4Um90QW5nbGUgPj0gMTgwLjA7CisgICAgCisgICAg
cmV0dXJuIGZpcnN0SW5kZXg7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IGRjNmU4YjgwNTJhNDliYjA4ZmYwNWQ2ZjU4
OWE2NWZiOTQ2ZmRhNjUuLjkwNjE1MjAzZGU2NjQ4MzBlZDU0N2E3YWNlNTBjMzRhNDJkMTgyZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKQEAgLTQyMywxMCArNDIzLDEyIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFyRmlsdGVy
cygpIHsgbV9maWx0ZXJzLmNsZWFyKCk7IH0KICNlbmRpZgogCi0gICAgdHlwZWRlZiBWZWN0b3I8
VHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlPiBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0
OwotICAgIC8vIEdpdmVuIGEgbGlzdCBvZiBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZXMsIHJldHVy
biBhbiBhcnJheSBvZiB0cmFuc2Zvcm0gb3BlcmF0aW9ucy4KLSAgICAvLyBPbiByZXR1cm4sIGlm
IGhhc0JpZ1JvdGF0aW9uIGlzIHRydWUsIGZ1bmN0aW9ucyBjb250YWluIHJvdGF0aW9ucyBvZiA+
PSAxODAgZGVncmVlcwotICAgIHN0YXRpYyB2b2lkIGZldGNoVHJhbnNmb3JtT3BlcmF0aW9uTGlz
dChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QmLCBib29s
JiBpc1ZhbGlkLCBib29sJiBoYXNCaWdSb3RhdGlvbik7CisgICAgLy8gR2l2ZW4gYSBsaXN0IG9m
IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlcywgc2VlIGlmIGFsbCB0aGUgb3BlcmF0aW9ucyBmb3Ig
ZWFjaCBrZXlmcmFtZSBtYXRjaC4gSWYgc28KKyAgICAvLyByZXR1cm4gdGhlIGluZGV4IG9mIHRo
ZSBLZXlmcmFtZVZhbHVlTGlzdCBlbnRyeSB0aGF0IGhhcyB0aGF0IGxpc3Qgb2Ygb3BlcmF0aW9u
cyAoaXQgbWF5IG5vdCBiZQorICAgIC8vIHRoZSBmaXJzdCBlbnRyeSBiZWNhdXNlIHNvbWUga2V5
ZnJhbWVzIG1pZ2h0IGhhdmUgYW4gZW1wdHkgdHJhbnNmb3JtIGFuZCB0aG9zZSBtYXRjaCBhbnkg
bGlzdCkuCisgICAgLy8gSWYgdGhlIGxpc3RzIGRvbid0IG1hdGNoIHJldHVybiAtMS4gT24gcmV0
dXJuLCBpZiBoYXNCaWdSb3RhdGlvbiBpcyB0cnVlLCBmdW5jdGlvbnMgY29udGFpbiAKKyAgICAv
LyByb3RhdGlvbnMgb2YgPj0gMTgwIGRlZ3JlZXMKKyAgICBzdGF0aWMgaW50IHZhbGlkYXRlVHJh
bnNmb3JtT3BlcmF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGJvb2wmIGhhc0JpZ1Jv
dGF0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5SW50ZXJuYWwoZmxvYXQpIHsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcAppbmRleCBkNGQyMGFlNGRkZWY1ZjRjOTM1YzBjNDVjMmM1YzkzMTE0
ODY0Y2E4Li4yOTljOTIxZjQ0ZjNlNDdjNzU3ODRkYjE0N2U0OTVmOWVmZjlmMTg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5jcHAKQEAgLTE3NTYsOSArMTc1Niw5IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVh
dGVBbmltYXRpb25Gcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29t
bWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25z
dCBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0JiBmdW5jdGlvbkxpc3QsIGNvbnN0IEFuaW1hdGlvbiog
YW5pbWF0aW9uLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGNvbnN0IEludFNpemUmIGJv
eFNpemUsIGludCBhbmltYXRpb25JbmRleCwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wgaXNNYXRy
aXhBbmltYXRpb24pCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFu
aW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9ucyogb3BlcmF0aW9ucywgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNv
bnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgaW50IGFu
aW1hdGlvbkluZGV4LCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbikK
IHsKLSAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHJhbnNmb3JtT3AgPSBp
c01hdHJpeEFuaW1hdGlvbiA/IFRyYW5zZm9ybU9wZXJhdGlvbjo6TUFUUklYXzNEIDogZnVuY3Rp
b25MaXN0W2FuaW1hdGlvbkluZGV4XTsKKyAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlv
blR5cGUgdHJhbnNmb3JtT3AgPSBpc01hdHJpeEFuaW1hdGlvbiA/IFRyYW5zZm9ybU9wZXJhdGlv
bjo6TUFUUklYXzNEIDogb3BlcmF0aW9ucy0+b3BlcmF0aW9ucygpLmF0KGFuaW1hdGlvbkluZGV4
KS0+Z2V0T3BlcmF0aW9uVHlwZSgpOwogICAgIGJvb2wgYWRkaXRpdmUgPSBhbmltYXRpb25JbmRl
eCA+IDA7CiAgICAgYm9vbCBpc0tleWZyYW1lID0gdmFsdWVMaXN0LnNpemUoKSA+IDI7CiAKQEAg
LTE3ODMsMjMgKzE3ODMsMjMgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9y
bUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWUKIHsKICAgICBBU1NF
UlQodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9y
bSk7CiAKLSAgICBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0IGZ1bmN0aW9uTGlzdDsKLSAgICBib29s
IGxpc3RzTWF0Y2gsIGhhc0JpZ1JvdGF0aW9uOwotICAgIGZldGNoVHJhbnNmb3JtT3BlcmF0aW9u
TGlzdCh2YWx1ZUxpc3QsIGZ1bmN0aW9uTGlzdCwgbGlzdHNNYXRjaCwgaGFzQmlnUm90YXRpb24p
OworICAgIGJvb2wgaGFzQmlnUm90YXRpb247CisgICAgaW50IGxpc3RJbmRleCA9IHZhbGlkYXRl
VHJhbnNmb3JtT3BlcmF0aW9ucyh2YWx1ZUxpc3QsIGhhc0JpZ1JvdGF0aW9uKTsKKyAgICBjb25z
dCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBvcGVyYXRpb25zID0gKGxpc3RJbmRleCA+PSAwKSA/IHN0
YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGxp
c3RJbmRleCkpLT52YWx1ZSgpIDogMDsKIAogICAgIC8vIFdlIG5lZWQgdG8gZmFsbCBiYWNrIHRv
IHNvZnR3YXJlIGFuaW1hdGlvbiBpZiB3ZSBkb24ndCBoYXZlIHNldFZhbHVlRnVuY3Rpb246LCBh
bmQKICAgICAvLyB3ZSB3b3VsZCBuZWVkIHRvIGFuaW1hdGUgZWFjaCBpbmNvbWluZyB0cmFuc2Zv
cm0gZnVuY3Rpb24gc2VwYXJhdGVseS4gVGhpcyBpcyB0aGUKICAgICAvLyBjYXNlIGlmIHdlIGhh
dmUgYSByb3RhdGlvbiA+PSAxODAgb3Igd2UgaGF2ZSBtb3JlIHRoYW4gb25lIHRyYW5zZm9ybSBm
dW5jdGlvbi4KLSAgICBpZiAoKGhhc0JpZ1JvdGF0aW9uIHx8IGZ1bmN0aW9uTGlzdC5zaXplKCkg
PiAxKSAmJiAhUGxhdGZvcm1DQUFuaW1hdGlvbjo6c3VwcG9ydHNWYWx1ZUZ1bmN0aW9uKCkpCisg
ICAgaWYgKChoYXNCaWdSb3RhdGlvbiB8fCAob3BlcmF0aW9ucyAmJiBvcGVyYXRpb25zLT5zaXpl
KCkgPiAxKSkgJiYgIVBsYXRmb3JtQ0FBbmltYXRpb246OnN1cHBvcnRzVmFsdWVGdW5jdGlvbigp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIHZhbGlkTWF0cmljZXMgPSB0cnVl
OwogCi0gICAgLy8gSWYgZnVuY3Rpb25MaXN0cyBkb24ndCBtYXRjaCB3ZSBkbyBhIG1hdHJpeCBh
bmltYXRpb24sIG90aGVyd2lzZSB3ZSBkbyBhIGNvbXBvbmVudCBoYXJkd2FyZSBhbmltYXRpb24u
CisgICAgLy8gSWYgZnVuY3Rpb24gbGlzdHMgZG9uJ3QgbWF0Y2ggd2UgZG8gYSBtYXRyaXggYW5p
bWF0aW9uLCBvdGhlcndpc2Ugd2UgZG8gYSBjb21wb25lbnQgaGFyZHdhcmUgYW5pbWF0aW9uLgog
ICAgIC8vIEFsc28sIHdlIGNhbid0IGRvIGNvbXBvbmVudCBhbmltYXRpb24gdW5sZXNzIHdlIGhh
dmUgdmFsdWVGdW5jdGlvbiwgc28gd2UgbmVlZCB0byBkbyBtYXRyaXggYW5pbWF0aW9uCiAgICAg
Ly8gaWYgdGhhdCdzIG5vdCB0cnVlIGFzIHdlbGwuCi0gICAgYm9vbCBpc01hdHJpeEFuaW1hdGlv
biA9ICFsaXN0c01hdGNoIHx8ICFQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzdXBwb3J0c1ZhbHVlRnVu
Y3Rpb24oKTsKLSAgICBpbnQgbnVtQW5pbWF0aW9ucyA9IGlzTWF0cml4QW5pbWF0aW9uID8gMSA6
IGZ1bmN0aW9uTGlzdC5zaXplKCk7CisgICAgYm9vbCBpc01hdHJpeEFuaW1hdGlvbiA9IGxpc3RJ
bmRleCA8IDAgfHwgIVBsYXRmb3JtQ0FBbmltYXRpb246OnN1cHBvcnRzVmFsdWVGdW5jdGlvbigp
OworICAgIGludCBudW1BbmltYXRpb25zID0gaXNNYXRyaXhBbmltYXRpb24gPyAxIDogb3BlcmF0
aW9ucy0+c2l6ZSgpOwogCiAgICAgYm9vbCByZXZlcnNlQW5pbWF0aW9uTGlzdCA9IHRydWU7CiAj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhUExBVEZPUk0oV0lOKQpA
QCAtMTgxNCwxNCArMTgxNCwxNCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNm
b3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZQogI2VuZGlmCiAg
ICAgaWYgKHJldmVyc2VBbmltYXRpb25MaXN0KSB7CiAgICAgICAgIGZvciAoaW50IGFuaW1hdGlv
bkluZGV4ID0gbnVtQW5pbWF0aW9ucyAtIDE7IGFuaW1hdGlvbkluZGV4ID49IDA7IC0tYW5pbWF0
aW9uSW5kZXgpIHsKLSAgICAgICAgICAgIGlmICghYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlv
bnModmFsdWVMaXN0LCBmdW5jdGlvbkxpc3QsIGFuaW1hdGlvbiwgYW5pbWF0aW9uTmFtZSwgYm94
U2l6ZSwgYW5pbWF0aW9uSW5kZXgsIHRpbWVPZmZzZXQsIGlzTWF0cml4QW5pbWF0aW9uKSkgewor
ICAgICAgICAgICAgaWYgKCFhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyh2YWx1ZUxpc3Qs
IG9wZXJhdGlvbnMsIGFuaW1hdGlvbiwgYW5pbWF0aW9uTmFtZSwgYm94U2l6ZSwgYW5pbWF0aW9u
SW5kZXgsIHRpbWVPZmZzZXQsIGlzTWF0cml4QW5pbWF0aW9uKSkgewogICAgICAgICAgICAgICAg
IHZhbGlkTWF0cmljZXMgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAoaW50IGFuaW1hdGlv
bkluZGV4ID0gMDsgYW5pbWF0aW9uSW5kZXggPCBudW1BbmltYXRpb25zOyArK2FuaW1hdGlvbklu
ZGV4KSB7Ci0gICAgICAgICAgICBpZiAoIWFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKHZh
bHVlTGlzdCwgZnVuY3Rpb25MaXN0LCBhbmltYXRpb24sIGFuaW1hdGlvbk5hbWUsIGJveFNpemUs
IGFuaW1hdGlvbkluZGV4LCB0aW1lT2Zmc2V0LCBpc01hdHJpeEFuaW1hdGlvbikpIHsKKyAgICAg
ICAgICAgIGlmICghYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnModmFsdWVMaXN0LCBvcGVy
YXRpb25zLCBhbmltYXRpb24sIGFuaW1hdGlvbk5hbWUsIGJveFNpemUsIGFuaW1hdGlvbkluZGV4
LCB0aW1lT2Zmc2V0LCBpc01hdHJpeEFuaW1hdGlvbikpIHsKICAgICAgICAgICAgICAgICB2YWxp
ZE1hdHJpY2VzID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oCmluZGV4IDkzZTBlNjRjZDc4MjBkMDQxN2Q3MTRjMDQyNWRhNDM4Mjg1MmMxNzQu
LmYwZGE2MzA4NGE0Nzk3OGFmM2Y5N2I1OWVmODNiMDVmZWJkNjliNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBA
IC0zMjEsNyArMzIxLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBtb3ZlT3JDb3B5TGF5
ZXJBbmltYXRpb24oTW92ZU9yQ29weSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZGVudGlmaWVy
LCBQbGF0Zm9ybUNBTGF5ZXIgKmZyb21MYXllciwgUGxhdGZvcm1DQUxheWVyICp0b0xheWVyKTsK
ICAgICB2b2lkIG1vdmVPckNvcHlBbmltYXRpb25zRm9yUHJvcGVydHkoTW92ZU9yQ29weSwgQW5p
bWF0ZWRQcm9wZXJ0eUlELCBQbGF0Zm9ybUNBTGF5ZXIgKiBmcm9tTGF5ZXIsIFBsYXRmb3JtQ0FM
YXllciAqIHRvTGF5ZXIpOwogICAgIAotICAgIGJvb2wgYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1h
dGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25M
aXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25z
dCBJbnRTaXplJiBib3hTaXplLCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0
LCBib29sIGlzTWF0cml4QW5pbWF0aW9uKTsKKyAgICBib29sIGFwcGVuZFRvVW5jb21taXR0ZWRB
bmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgVHJhbnNmb3JtT3BlcmF0
aW9ucyosIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgY29u
c3QgSW50U2l6ZSYgYm94U2l6ZSwgaW50IGFuaW1hdGlvbkluZGV4LCBkb3VibGUgdGltZU9mZnNl
dCwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbik7CiAgICAgCiAgICAgZW51bSBMYXllckNoYW5nZSB7
CiAgICAgICAgIE5vQ2hhbmdlID0gMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuY3BwCmluZGV4IGY0NzhiOWYxZjZiZmFhNTAxZjUxYzBmY2E4YmRiNDRhNjM5ZTkxN2Yu
LmI1MjFkMWEyMWMwMDY2M2JlYTcxMzUyOTBhMDJjYzliZGQ1YzFmYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzY1LDE0ICszNjUsMTMgQEAgYm9v
bCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1l
VmFsdWVMaXN0JiB2YWx1ZUxpc3QKICAgICBpZiAoIWFuaW0gfHwgYW5pbS0+aXNFbXB0eU9yWmVy
b0R1cmF0aW9uKCkgfHwgdmFsdWVMaXN0LnNpemUoKSA8IDIgfHwgKHZhbHVlTGlzdC5wcm9wZXJ0
eSgpICE9IEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0gJiYgdmFsdWVMaXN0LnByb3Bl
cnR5KCkgIT0gQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBib29sIGxpc3RzTWF0Y2g7CisgICAgYm9vbCBsaXN0c01hdGNoID0gZmFsc2U7CiAg
ICAgYm9vbCBoYXNCaWdSb3RhdGlvbjsKLSAgICBWZWN0b3I8VHJhbnNmb3JtT3BlcmF0aW9uOjpP
cGVyYXRpb25UeXBlPiBmdW5jdGlvbkxpc3Q7CiAKICAgICBpZiAodmFsdWVMaXN0LnByb3BlcnR5
KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSkKLSAgICAgICAgZmV0Y2hUcmFu
c2Zvcm1PcGVyYXRpb25MaXN0KHZhbHVlTGlzdCwgZnVuY3Rpb25MaXN0LCBsaXN0c01hdGNoLCBo
YXNCaWdSb3RhdGlvbik7CisgICAgICAgIGxpc3RzTWF0Y2ggPSB2YWxpZGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbnModmFsdWVMaXN0LCBoYXNCaWdSb3RhdGlvbikgPj0gMDsKIAotICAgIG1fYW5pbWF0
aW9ucy5hZGQoa2V5ZnJhbWVzTmFtZSwgVGV4dHVyZU1hcHBlckFuaW1hdGlvbih2YWx1ZUxpc3Qs
IGJveFNpemUsIGFuaW0sIHRpbWVPZmZzZXQsIGZ1bmN0aW9uTGlzdCwgbGlzdHNNYXRjaCkpOwor
ICAgIG1fYW5pbWF0aW9ucy5hZGQoa2V5ZnJhbWVzTmFtZSwgVGV4dHVyZU1hcHBlckFuaW1hdGlv
bih2YWx1ZUxpc3QsIGJveFNpemUsIGFuaW0sIHRpbWVPZmZzZXQsIGxpc3RzTWF0Y2gpKTsKICAg
ICBub3RpZnlDaGFuZ2UoVGV4dHVyZU1hcHBlck5vZGU6OkFuaW1hdGlvbkNoYW5nZSk7CiAgICAg
bV9hbmltYXRpb25TdGFydGVkVGltZXIuc3RhcnRPbmVTaG90KDApOwogICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24uY3BwCmluZGV4IGQ0ZDE5NmQ5NzA3NDJl
MThlNWY1YWQ4MTBmNDUxZDJiMzBiNzM0NDUuLjA5NzE0ZDkwOTkzMThlZWVhZjUwZTNkODlhMjJi
ODEyMjhkMTQ0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFuaW1hdGlvbi5jcHAKQEAgLTg1
LDcgKzg1LDcgQEAgc3RhdGljIGlubGluZSBmbG9hdCBhcHBseVRpbWluZ0Z1bmN0aW9uKGNvbnN0
IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiwgZmwKICAgICByZXR1cm4gcHJvZ3Jlc3M7
CiB9CiAKLXN0YXRpYyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhcHBseVRyYW5zZm9ybUFuaW1hdGlv
bihjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBmcm9tLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b25zKiB0bywgZG91YmxlIHByb2dyZXNzLCBjb25zdCBJbnRTaXplJiBib3hTaXplLCBjb25zdCBW
ZWN0b3I8VHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlPiBmdW5jdGlvbkxpc3QsIGJv
b2wgbGlzdHNNYXRjaCkKK3N0YXRpYyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhcHBseVRyYW5zZm9y
bUFuaW1hdGlvbihjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBmcm9tLCBjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb25zKiB0bywgZG91YmxlIHByb2dyZXNzLCBjb25zdCBJbnRTaXplJiBib3hTaXpl
LCBib29sIGxpc3RzTWF0Y2gpCiB7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4Owog
CkBAIC0xMzQsMTEgKzEzNCwxMCBAQCBzdGF0aWMgVHJhbnNmb3JtYXRpb25NYXRyaXggYXBwbHlU
cmFuc2Zvcm1BbmltYXRpb24oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogZgogfQogCiAKLVRl
eHR1cmVNYXBwZXJBbmltYXRpb246OlRleHR1cmVNYXBwZXJBbmltYXRpb24oY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmIGtleWZyYW1lcywgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5p
bWF0aW9uKiBhbmltYXRpb24sIGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBWZWN0b3I8VHJhbnNm
b3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlPiYgZnVuY3Rpb25MaXN0LCBib29sIGxpc3RzTWF0
Y2gpCitUZXh0dXJlTWFwcGVyQW5pbWF0aW9uOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9uKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiBrZXlmcmFtZXMsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGNv
bnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCBsaXN0c01h
dGNoKQogICAgIDogbV9rZXlmcmFtZXMoa2V5ZnJhbWVzKQogICAgICwgbV9ib3hTaXplKGJveFNp
emUpCiAgICAgLCBtX2FuaW1hdGlvbihBbmltYXRpb246OmNyZWF0ZShhbmltYXRpb24pKQotICAg
ICwgbV9mdW5jdGlvbkxpc3QoZnVuY3Rpb25MaXN0KQogICAgICwgbV9saXN0c01hdGNoKGxpc3Rz
TWF0Y2gpCiAgICAgLCBtX3N0YXJ0VGltZShXVEY6OmN1cnJlbnRUaW1lKCkgLSB0aW1lT2Zmc2V0
KQogICAgICwgbV9wYXVzZVRpbWUoMCkKQEAgLTE1Myw3ICsxNTIsNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJBbmltYXRpb246OmFwcGx5SW50ZXJuYWwoVGV4dHVyZU1hcHBlckFuaW1hdGlvbkNsaWVu
dCogY2xpZW50LAogICAgICAgICBjbGllbnQtPnNldE9wYWNpdHkoYXBwbHlPcGFjaXR5QW5pbWF0
aW9uKChzdGF0aWNfY2FzdDxjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKj4oZnJvbSktPnZhbHVl
KCkpLCAoc3RhdGljX2Nhc3Q8Y29uc3QgRmxvYXRBbmltYXRpb25WYWx1ZSo+KHRvKS0+dmFsdWUo
KSksIHByb2dyZXNzKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEFuaW1hdGVkUHJvcGVy
dHlXZWJraXRUcmFuc2Zvcm06Ci0gICAgICAgIGNsaWVudC0+c2V0VHJhbnNmb3JtKGFwcGx5VHJh
bnNmb3JtQW5pbWF0aW9uKHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVl
Kj4oZnJvbSktPnZhbHVlKCksIHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZh
bHVlKj4odG8pLT52YWx1ZSgpLCBwcm9ncmVzcywgbV9ib3hTaXplLCBtX2Z1bmN0aW9uTGlzdCwg
bV9saXN0c01hdGNoKSk7CisgICAgICAgIGNsaWVudC0+c2V0VHJhbnNmb3JtKGFwcGx5VHJhbnNm
b3JtQW5pbWF0aW9uKHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4o
ZnJvbSktPnZhbHVlKCksIHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVl
Kj4odG8pLT52YWx1ZSgpLCBwcm9ncmVzcywgbV9ib3hTaXplLCBtX2xpc3RzTWF0Y2gpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQW5pbWF0aW9uLmgKaW5kZXggNWUyMjZlOGFlNjQ5ZjM1NTdh
MjVhOGI2ZDMxNWJmY2I3OWUxYjVmMi4uYTNmMWNhNjBmZGI0YTkzMTU1MzQ0OGU3YTFlYzBkODhl
NDQwOWVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFuaW1hdGlvbi5oCkBAIC00MSw3ICs0MSw3
IEBAIHB1YmxpYzoKICAgICBUZXh0dXJlTWFwcGVyQW5pbWF0aW9uKCkKICAgICAgICAgOiBtX2tl
eWZyYW1lcyhBbmltYXRlZFByb3BlcnR5SW52YWxpZCkKICAgICB7IH0KLSAgICBUZXh0dXJlTWFw
cGVyQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgSW50U2l6ZSYsIGNv
bnN0IEFuaW1hdGlvbiosIGRvdWJsZSwgY29uc3QgVmVjdG9yPFRyYW5zZm9ybU9wZXJhdGlvbjo6
T3BlcmF0aW9uVHlwZT4mLCBib29sKTsKKyAgICBUZXh0dXJlTWFwcGVyQW5pbWF0aW9uKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEFuaW1hdGlvbiosIGRv
dWJsZSwgYm9vbCk7CiAgICAgdm9pZCBhcHBseShUZXh0dXJlTWFwcGVyQW5pbWF0aW9uQ2xpZW50
Kik7CiAgICAgdm9pZCBwYXVzZShkb3VibGUpOwogICAgIEFuaW1hdGlvblN0YXRlIHN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQpAQCAtNTUsNyArNTUsNiBAQCBwcml2YXRlOgogICAg
IEludFNpemUgbV9ib3hTaXplOwogICAgIFJlZlB0cjxBbmltYXRpb24+IG1fYW5pbWF0aW9uOwog
ICAgIFN0cmluZyBtX25hbWU7Ci0gICAgVmVjdG9yPFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0
aW9uVHlwZT4gbV9mdW5jdGlvbkxpc3Q7CiAgICAgYm9vbCBtX2xpc3RzTWF0Y2g7CiAgICAgYm9v
bCBtX2hhc0JpZ1JvdGF0aW9uOwogICAgIGRvdWJsZSBtX3N0YXJ0VGltZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>