<?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>60591</bug_id>
          
          <creation_ts>2011-05-10 15:38:01 -0700</creation_ts>
          <short_desc>Switch RenderBoxModelObject::paintBorder to use IntRect instead of four ints</short_desc>
          <delta_ts>2011-05-11 14:33:11 -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>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>
          
          <blocked>60318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>401574</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-10 15:38:01 -0700</bug_when>
    <thetext>paintBorder literally constructs and uses an IntRect at the beginning. Let&apos;s just take one in :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401636</commentid>
    <comment_count>1</comment_count>
      <attachid>93046</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-10 16:34:01 -0700</bug_when>
    <thetext>Created attachment 93046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401662</commentid>
    <comment_count>2</comment_count>
      <attachid>93046</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-10 17:12:52 -0700</bug_when>
    <thetext>Comment on attachment 93046
Patch

This was a good example of tx, ty being just the wrong names for these variables!  You may want to run a few pixel tests just to make sure.  This looks fine though.  the cr-linux EWS runs pixel tests and should catch any failures if you wait for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401675</commentid>
    <comment_count>3</comment_count>
      <attachid>93046</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-10 17:48:32 -0700</bug_when>
    <thetext>Comment on attachment 93046
Patch

Attachment 93046 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8687128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402121</commentid>
    <comment_count>4</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-11 11:21:09 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 93046 [details])
&gt; Attachment 93046 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/8687128

Missed one &quot;w&quot;! Re-uploading...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402122</commentid>
    <comment_count>5</comment_count>
      <attachid>93149</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-11 11:24:11 -0700</bug_when>
    <thetext>Created attachment 93149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402146</commentid>
    <comment_count>6</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-11 12:06:09 -0700</bug_when>
    <thetext>Cool, fixed the build breakage (how do I love EWS, let me count the ways...)!

Eric, can I get that R+ back? ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402204</commentid>
    <comment_count>7</comment_count>
      <attachid>93149</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-11 13:23:09 -0700</bug_when>
    <thetext>Comment on attachment 93149
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402205</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-11 13:23:38 -0700</bug_when>
    <thetext>You should still run a pixel test or two locally to make sure you won&apos;t find out you broke things only when the cr-gardener sees them on the bots. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402291</commentid>
    <comment_count>9</comment_count>
      <attachid>93149</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-11 14:33:06 -0700</bug_when>
    <thetext>Comment on attachment 93149
Patch

Clearing flags on attachment: 93149

Committed r86272: &lt;http://trac.webkit.org/changeset/86272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402292</commentid>
    <comment_count>10</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-11 14:33:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93046</attachid>
            <date>2011-05-10 16:34:01 -0700</date>
            <delta_ts>2011-05-11 11:24:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60591-20110510163400.patch</filename>
            <type>text/plain</type>
            <size>19779</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MTkyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDUtMTAgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN3aXRjaCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRC
b3JkZXIgdG8gdXNlIEludFJlY3QgaW5zdGVhZCBvZiBmb3VyIGludHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNTkxCisKKyAgICAgICAgU3dpdGNo
aW5nIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlciB0byB1c2UgSW50UmVjdCBpbnN0
ZWFkIG9mIGZvdXIgaW50cyByZXByZXNlbnRpbmcgYSByZWN0LgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyBzaW5jZSB0aGVyZSBpcyBubyBmdW5jdGlvbmFsaXR5IGNoYW5nZS4KKworICAgICAgICAq
IHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZs
b3dCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25z
V2l0aFNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWVs
ZHNldDo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpwYWludEJveERlY29yYXRp
b25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEt
MDUtMTAgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAJKHJldmlzaW9uIDg2MTkwKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTI3LDcgKzExMjcs
NyBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoCiAgICAgICAgICAg
ICAvLyBUaGUgc2ltcGxlIGNhc2UgaXMgd2hlcmUgd2UgZWl0aGVyIGhhdmUgbm8gYm9yZGVyIGlt
YWdlIG9yIHdlIGFyZSB0aGUgb25seSBib3ggZm9yIHRoaXMgb2JqZWN0LiAgSW4gdGhvc2UKICAg
ICAgICAgICAgIC8vIGNhc2VzIG9ubHkgYSBzaW5nbGUgY2FsbCB0byBkcmF3IGlzIHJlcXVpcmVk
LgogICAgICAgICAgICAgaWYgKCFoYXNCb3JkZXJJbWFnZSB8fCAoIXByZXZMaW5lQm94KCkgJiYg
IW5leHRMaW5lQm94KCkpKQotICAgICAgICAgICAgICAgIGJveE1vZGVsT2JqZWN0KCktPnBhaW50
Qm9yZGVyKGNvbnRleHQsIHR4LCB0eSwgdywgaCwgcmVuZGVyZXIoKS0+c3R5bGUoKSwgQmFja2dy
b3VuZEJsZWVkTm9uZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSgpLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSgpKTsKKyAgICAgICAgICAgICAgICBib3hNb2RlbE9iamVjdCgpLT5wYWludEJvcmRl
cihjb250ZXh0LCBJbnRSZWN0KHR4LCB0eSwgdywgaCksIHJlbmRlcmVyKCktPnN0eWxlKCksIEJh
Y2tncm91bmRCbGVlZE5vbmUsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UoKSwgaW5jbHVkZUxvZ2lj
YWxSaWdodEVkZ2UoKSk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBX
ZSBoYXZlIGEgYm9yZGVyIGltYWdlIHRoYXQgc3BhbnMgbXVsdGlwbGUgbGluZXMuCiAgICAgICAg
ICAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdHggYW5kIHR5IGJ5IHRoZSB3aWR0aCBvZiBh
bGwgcHJldmlvdXMgbGluZXMuCkBAIC0xMTUwLDcgKzExNTAsNyBAQCB2b2lkIElubGluZUZsb3dC
b3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoCiAKICAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOwogICAgICAgICAgICAgICAgIGNvbnRl
eHQtPmNsaXAoSW50UmVjdCh0eCwgdHksIHcsIGgpKTsKLSAgICAgICAgICAgICAgICBib3hNb2Rl
bE9iamVjdCgpLT5wYWludEJvcmRlcihjb250ZXh0LCBzdHJpcFgsIHN0cmlwWSwgc3RyaXBXaWR0
aCwgc3RyaXBIZWlnaHQsIHJlbmRlcmVyKCktPnN0eWxlKCkpOworICAgICAgICAgICAgICAgIGJv
eE1vZGVsT2JqZWN0KCktPnBhaW50Qm9yZGVyKGNvbnRleHQsIEludFJlY3Qoc3RyaXBYLCBzdHJp
cFksIHN0cmlwV2lkdGgsIHN0cmlwSGVpZ2h0KSwgcmVuZGVyZXIoKS0+c3R5bGUoKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAkocmV2aXNpb24gODYxOTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODczLDcgKzg3Myw3IEBAIHZvaWQg
UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zV2l0aFMKIAogICAgIC8vIFRoZSB0aGVtZSB3
aWxsIHRlbGwgdXMgd2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIGFsc28gcGFpbnQgdGhlIENTUyBi
b3JkZXIuCiAgICAgaWYgKCghc3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpIHx8ICghdGhlbWVQYWlu
dGVkICYmIHRoZW1lKCktPnBhaW50Qm9yZGVyT25seSh0aGlzLCBwYWludEluZm8sIEludFJlY3Qo
dHgsIHR5LCB3aWR0aCwgaGVpZ2h0KSkpKSAmJiBzdHlsZSgpLT5oYXNCb3JkZXIoKSkKLSAgICAg
ICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLmNvbnRleHQsIHR4LCB0eSwgd2lkdGgsIGhlaWdodCwg
c3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOworICAgICAgICBwYWludEJvcmRlcihwYWludEluZm8u
Y29udGV4dCwgSW50UmVjdCh0eCwgdHksIHdpZHRoLCBoZWlnaHQpLCBzdHlsZSgpLCBibGVlZEF2
b2lkYW5jZSk7CiAKICAgICBpZiAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVkVXNl
VHJhbnNwYXJlbmN5TGF5ZXIpCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5lbmRUcmFuc3Bh
cmVuY3lMYXllcigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiA4NjE5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
NDYsMTEgKzEzNDYsMTEgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1
YwogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoR3Jh
cGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGludCB0eCwgaW50IHR5LCBpbnQgdywgaW50
IGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGUsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwgYm9v
bCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKQor
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoR3JhcGhpY3NDb250ZXh0KiBn
cmFwaGljc0NvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlclN0eWxlKiBz
dHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tncm91bmRC
bGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdl
LCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKQogewogICAgIC8vIGJvcmRlci1pbWFnZSBp
cyBub3QgYWZmZWN0ZWQgYnkgYm9yZGVyLXJhZGl1cy4KLSAgICBpZiAocGFpbnROaW5lUGllY2VJ
bWFnZShncmFwaGljc0NvbnRleHQsIEludFJlY3QodHgsIHR5LCB3LCBoKSwgc3R5bGUsIHN0eWxl
LT5ib3JkZXJJbWFnZSgpKSkKKyAgICBpZiAocGFpbnROaW5lUGllY2VJbWFnZShncmFwaGljc0Nv
bnRleHQsIHJlY3QsIHN0eWxlLCBzdHlsZS0+Ym9yZGVySW1hZ2UoKSkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChncmFwaGljc0NvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKQEAgLTEz
NTksOSArMTM1OSw4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcK
ICAgICBCb3JkZXJFZGdlIGVkZ2VzWzRdOwogICAgIGdldEJvcmRlckVkZ2VJbmZvKGVkZ2VzLCBp
bmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAKLSAgICBJ
bnRSZWN0IGJvcmRlclJlY3QodHgsIHR5LCB3LCBoKTsKLSAgICBSb3VuZGVkSW50UmVjdCBvdXRl
ckJvcmRlciA9IHN0eWxlLT5nZXRSb3VuZGVkQm9yZGVyRm9yKGJvcmRlclJlY3QsIGluY2x1ZGVM
b2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKLSAgICBSb3VuZGVkSW50
UmVjdCBpbm5lckJvcmRlciA9IHN0eWxlLT5nZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IoYm9yZGVy
UmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwor
ICAgIFJvdW5kZWRJbnRSZWN0IG91dGVyQm9yZGVyID0gc3R5bGUtPmdldFJvdW5kZWRCb3JkZXJG
b3IocmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Up
OworICAgIFJvdW5kZWRJbnRSZWN0IGlubmVyQm9yZGVyID0gc3R5bGUtPmdldFJvdW5kZWRJbm5l
ckJvcmRlckZvcihyZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSk7CiAKICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGN1cnJlbnRDVE0gPSBncmFw
aGljc0NvbnRleHQtPmdldENUTSgpOwogICAgIC8vIEZJWE1FOiB0aGlzIGlzbid0IHF1aXRlIGNv
cnJlY3QuIFdlIG1heSB3YW50IHRvIGFudGlhbGlhcyB3aGVuIHNjYWxlZCBieSBhIG5vbi1pbnRl
Z3JhbCB2YWx1ZSwgb3Igd2hlbiB0aGUgdHJhbnNsYXRpb24gaXMgbm9uLWludGVncmFsLgpAQCAt
MTU4NywxMiArMTU4NiwxMiBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkcmF3Qm94U2lk
ZUZyCiAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3UmVjdChib3JkZXJSZWN0KTsKIH0KICNlbHNl
Ci12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCwgaW50IHR4LCBpbnQgdHksIGludCB3LCBpbnQgaCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwg
QmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJv
b2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpw
YWludEJvcmRlcihHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVj
dCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVM
b2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCiB7CiAgICAgLy8g
RklYTUU6IFRoaXMgb2xkIHZlcnNpb24gb2YgcGFpbnRCb3JkZXIgc2hvdWxkIGJlIHJlbW92ZWQg
d2hlbiBhbGwgcG9ydHMgaW1wbGVtZW50IAogICAgIC8vIEdyYXBoaWNzQ29udGV4dDo6Y2xpcENv
bnZleFBvbHlnb24oKSEhIFRoaXMgc2hvdWxkIGhhcHBlbiBzb29uLgotICAgIGlmIChwYWludE5p
bmVQaWVjZUltYWdlKGdyYXBoaWNzQ29udGV4dCwgSW50UmVjdCh0eCwgdHksIHcsIGgpLCBzdHls
ZSwgc3R5bGUtPmJvcmRlckltYWdlKCkpKQorICAgIGlmIChwYWludE5pbmVQaWVjZUltYWdlKGdy
YXBoaWNzQ29udGV4dCwgcmVjdCwgc3R5bGUsIHN0eWxlLT5ib3JkZXJJbWFnZSgpKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgY29uc3QgQ29sb3ImIHRvcENvbG9yID0gc3R5bGUtPnZpc2l0ZWRE
ZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yKTsKQEAgLTE2MTcsNyArMTYx
Niw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICBib29s
IHJlbmRlckJvdHRvbSA9IGJvdHRvbVN0eWxlID4gQkhJRERFTiAmJiAhYm90dG9tVHJhbnNwYXJl
bnQgJiYgKGhvcml6b250YWwgfHwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwogCiAKLSAgICBS
b3VuZGVkSW50UmVjdCBib3JkZXIodHgsIHR5LCB3LCBoKTsKKyAgICBSb3VuZGVkSW50UmVjdCBi
b3JkZXIocmVjdCk7CiAgICAgCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKCpncmFwaGljc0NvbnRleHQsIGZhbHNlKTsKICAgICBpZiAoc3R5bGUtPmhhc0JvcmRlclJh
ZGl1cygpKSB7CkBAIC0xNjQ2LDE4ICsxNjQ1LDE4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50Qm9yZGVyKEcKICAgICAgICAgICAgIHx8ICh0b3BDb2xvciA9PSByaWdodENvbG9y
ICYmIHRvcFRyYW5zcGFyZW50ID09IHJpZ2h0VHJhbnNwYXJlbnQgJiYgdG9wU3R5bGUgPj0gT1VU
U0VUCiAgICAgICAgICAgICAgICAgJiYgKHJpZ2h0U3R5bGUgPT0gRE9UVEVEIHx8IHJpZ2h0U3R5
bGUgPT0gREFTSEVEIHx8IHJpZ2h0U3R5bGUgPT0gU09MSUQgfHwgcmlnaHRTdHlsZSA9PSBJTlNF
VCkpOwogCi0gICAgICAgIGludCB4ID0gdHg7Ci0gICAgICAgIGludCB4MiA9IHR4ICsgdzsKKyAg
ICAgICAgaW50IHggPSByZWN0LngoKTsKKyAgICAgICAgaW50IHgyID0gcmVjdC5tYXhYKCk7CiAg
ICAgICAgIGlmIChyZW5kZXJSYWRpaSkgewogICAgICAgICAgICAgeCArPSBib3JkZXIucmFkaWko
KS50b3BMZWZ0KCkud2lkdGgoKTsKICAgICAgICAgICAgIHgyIC09IGJvcmRlci5yYWRpaSgpLnRv
cFJpZ2h0KCkud2lkdGgoKTsKICAgICAgICAgfQogCi0gICAgICAgIGRyYXdMaW5lRm9yQm94U2lk
ZShncmFwaGljc0NvbnRleHQsIHgsIHR5LCB4MiwgdHkgKyBzdHlsZS0+Ym9yZGVyVG9wV2lkdGgo
KSwgQlNUb3AsIHRvcENvbG9yLCB0b3BTdHlsZSwKKyAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRl
KGdyYXBoaWNzQ29udGV4dCwgeCwgcmVjdC55KCksIHgyLCByZWN0LnkoKSArIHN0eWxlLT5ib3Jk
ZXJUb3BXaWR0aCgpLCBCU1RvcCwgdG9wQ29sb3IsIHRvcFN0eWxlLAogICAgICAgICAgICAgICAg
ICAgIGlnbm9yZUxlZnQgPyAwIDogc3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpLCBpZ25vcmVSaWdo
dCA/IDAgOiBzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpKTsKIAogICAgICAgICBpZiAocmVuZGVy
UmFkaWkpIHsKLSAgICAgICAgICAgIGludCBsZWZ0WSA9IHR5OworICAgICAgICAgICAgaW50IGxl
ZnRZID0gcmVjdC55KCk7CiAKICAgICAgICAgICAgIC8vIFdlIG1ha2UgdGhlIGFyYyBkb3VibGUg
dGhpY2sgYW5kIGxldCB0aGUgY2xpcCByZWN0IHRha2UgY2FyZSBvZiBjbGlwcGluZyB0aGUgZXh0
cmEgb2ZmLgogICAgICAgICAgICAgLy8gV2UncmUgZG9pbmcgdGhpcyBiZWNhdXNlIGl0IGRvZXNu
J3Qgc2VlbSBwb3NzaWJsZSB0byBtYXRjaCB0aGUgY3VydmUgb2YgdGhlIGNsaXAgZXhhY3RseQpA
QCAtMTY2NSw3ICsxNjY0LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3Jk
ZXIoRwogICAgICAgICAgICAgdGhpY2tuZXNzID0gc3R5bGUtPmJvcmRlclRvcFdpZHRoKCkgKiAy
OwogCiAgICAgICAgICAgICBpZiAoYm9yZGVyLnJhZGlpKCkudG9wTGVmdCgpLndpZHRoKCkpIHsK
LSAgICAgICAgICAgICAgICBpbnQgbGVmdFggPSB0eDsKKyAgICAgICAgICAgICAgICBpbnQgbGVm
dFggPSByZWN0LngoKTsKICAgICAgICAgICAgICAgICAvLyBUaGUgaW5uZXIgY2xpcCBjbGlwcyBp
bnNpZGUgdGhlIGFyYy4gVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBmb3IgMXB4IGJvcmRl
cnMuCiAgICAgICAgICAgICAgICAgYm9vbCBhcHBseUxlZnRJbm5lckNsaXAgPSAoc3R5bGUtPmJv
cmRlckxlZnRXaWR0aCgpIDwgYm9yZGVyLnJhZGlpKCkudG9wTGVmdCgpLndpZHRoKCkpCiAgICAg
ICAgICAgICAgICAgICAgICYmIChzdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSA8IGJvcmRlci5yYWRp
aSgpLnRvcExlZnQoKS5oZWlnaHQoKSkKQEAgLTE2ODUsNyArMTY4NCw3IEBAIHZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKGJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkud2lkdGgoKSkgewotICAgICAgICAgICAg
ICAgIGludCByaWdodFggPSB0eCArIHcgLSBib3JkZXIucmFkaWkoKS50b3BSaWdodCgpLndpZHRo
KCkgKiAyOworICAgICAgICAgICAgICAgIGludCByaWdodFggPSByZWN0Lm1heFgoKSAtIGJvcmRl
ci5yYWRpaSgpLnRvcFJpZ2h0KCkud2lkdGgoKSAqIDI7CiAgICAgICAgICAgICAgICAgYm9vbCBh
cHBseVJpZ2h0SW5uZXJDbGlwID0gKHN0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkgPCBib3JkZXIu
cmFkaWkoKS50b3BSaWdodCgpLndpZHRoKCkpCiAgICAgICAgICAgICAgICAgICAgICYmIChzdHls
ZS0+Ym9yZGVyVG9wV2lkdGgoKSA8IGJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkp
CiAgICAgICAgICAgICAgICAgICAgICYmICh0b3BTdHlsZSAhPSBET1VCTEUgfHwgc3R5bGUtPmJv
cmRlclRvcFdpZHRoKCkgPiA2KTsKQEAgLTE3MTksMjIgKzE3MTgsMjIgQEAgdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoRwogICAgICAgICAgICAgfHwgKGJvdHRvbUNvbG9y
ID09IHJpZ2h0Q29sb3IgJiYgYm90dG9tVHJhbnNwYXJlbnQgPT0gcmlnaHRUcmFuc3BhcmVudCAm
JiBib3R0b21TdHlsZSA+PSBPVVRTRVQKICAgICAgICAgICAgICAgICAmJiAocmlnaHRTdHlsZSA9
PSBET1RURUQgfHwgcmlnaHRTdHlsZSA9PSBEQVNIRUQgfHwgcmlnaHRTdHlsZSA9PSBTT0xJRCB8
fCByaWdodFN0eWxlID09IElOU0VUKSk7CiAKLSAgICAgICAgaW50IHggPSB0eDsKLSAgICAgICAg
aW50IHgyID0gdHggKyB3OworICAgICAgICBpbnQgeCA9IHJlY3QueCgpOworICAgICAgICBpbnQg
eDIgPSByZWN0Lm1heFgoKTsKICAgICAgICAgaWYgKHJlbmRlclJhZGlpKSB7CiAgICAgICAgICAg
ICB4ICs9IGJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQoKS53aWR0aCgpOwogICAgICAgICAgICAg
eDIgLT0gYm9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpOwogICAgICAgICB9CiAK
LSAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgeCwgdHkgKyBoIC0g
c3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCksIHgyLCB0eSArIGgsIEJTQm90dG9tLCBib3R0b21D
b2xvciwgYm90dG9tU3R5bGUsCisgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0Nv
bnRleHQsIHgsIHJlY3QubWF4WSgpIC0gc3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCksIHgyLCBy
ZWN0Lm1heFkoKSwgQlNCb3R0b20sIGJvdHRvbUNvbG9yLCBib3R0b21TdHlsZSwKICAgICAgICAg
ICAgICAgICAgICBpZ25vcmVMZWZ0ID8gMCA6IHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSwgaWdu
b3JlUmlnaHQgPyAwIDogc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSk7CiAKICAgICAgICAgaWYg
KHJlbmRlclJhZGlpKSB7CiAgICAgICAgICAgICB0aGlja25lc3MgPSBzdHlsZS0+Ym9yZGVyQm90
dG9tV2lkdGgoKSAqIDI7CiAKICAgICAgICAgICAgIGlmIChib3JkZXIucmFkaWkoKS5ib3R0b21M
ZWZ0KCkud2lkdGgoKSkgewotICAgICAgICAgICAgICAgIGludCBsZWZ0WCA9IHR4OwotICAgICAg
ICAgICAgICAgIGludCBsZWZ0WSA9IHR5ICsgaCAtIGJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQo
KS5oZWlnaHQoKSAqIDI7CisgICAgICAgICAgICAgICAgaW50IGxlZnRYID0gcmVjdC54KCk7Cisg
ICAgICAgICAgICAgICAgaW50IGxlZnRZID0gcmVjdC5tYXhZKCkgLSBib3JkZXIucmFkaWkoKS5i
b3R0b21MZWZ0KCkuaGVpZ2h0KCkgKiAyOwogICAgICAgICAgICAgICAgIGJvb2wgYXBwbHlMZWZ0
SW5uZXJDbGlwID0gKHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSA8IGJvcmRlci5yYWRpaSgpLmJv
dHRvbUxlZnQoKS53aWR0aCgpKQogICAgICAgICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRl
ckJvdHRvbVdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCkuaGVpZ2h0KCkpCiAg
ICAgICAgICAgICAgICAgICAgICYmIChib3R0b21TdHlsZSAhPSBET1VCTEUgfHwgc3R5bGUtPmJv
cmRlckJvdHRvbVdpZHRoKCkgPiA2KTsKQEAgLTE3NTgsOCArMTc1Nyw4IEBAIHZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKGJvcmRlci5yYWRpaSgpLmJvdHRvbVJpZ2h0KCkud2lkdGgoKSkgewotICAgICAgICAg
ICAgICAgIGludCByaWdodFkgPSB0eSArIGggLSBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgp
LmhlaWdodCgpICogMjsKLSAgICAgICAgICAgICAgICBpbnQgcmlnaHRYID0gdHggKyB3IC0gYm9y
ZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpICogMjsKKyAgICAgICAgICAgICAgICBp
bnQgcmlnaHRZID0gcmVjdC5tYXhZKCkgLSBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLmhl
aWdodCgpICogMjsKKyAgICAgICAgICAgICAgICBpbnQgcmlnaHRYID0gcmVjdC5tYXhYKCkgLSBi
b3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLndpZHRoKCkgKiAyOwogICAgICAgICAgICAgICAg
IGJvb2wgYXBwbHlSaWdodElubmVyQ2xpcCA9IChzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpIDwg
Ym9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpKQogICAgICAgICAgICAgICAgICAg
ICAmJiAoc3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS5ib3R0b21S
aWdodCgpLmhlaWdodCgpKQogICAgICAgICAgICAgICAgICAgICAmJiAoYm90dG9tU3R5bGUgIT0g
RE9VQkxFIHx8IHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpID4gNik7CkBAIC0xNzg4LDIyICsx
Nzg3LDIyIEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICAg
ICAgICAgIHx8IChib3R0b21Db2xvciA9PSBsZWZ0Q29sb3IgJiYgYm90dG9tVHJhbnNwYXJlbnQg
PT0gbGVmdFRyYW5zcGFyZW50ICYmIGxlZnRTdHlsZSA+PSBPVVRTRVQKICAgICAgICAgICAgICAg
ICAmJiAoYm90dG9tU3R5bGUgPT0gRE9UVEVEIHx8IGJvdHRvbVN0eWxlID09IERBU0hFRCB8fCBi
b3R0b21TdHlsZSA9PSBTT0xJRCB8fCBib3R0b21TdHlsZSA9PSBJTlNFVCkpOwogCi0gICAgICAg
IGludCB5ID0gdHk7Ci0gICAgICAgIGludCB5MiA9IHR5ICsgaDsKKyAgICAgICAgaW50IHkgPSBy
ZWN0LnkoKTsKKyAgICAgICAgaW50IHkyID0gcmVjdC5tYXhZKCk7CiAgICAgICAgIGlmIChyZW5k
ZXJSYWRpaSkgewogICAgICAgICAgICAgeSArPSBib3JkZXIucmFkaWkoKS50b3BMZWZ0KCkuaGVp
Z2h0KCk7CiAgICAgICAgICAgICB5MiAtPSBib3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCkuaGVp
Z2h0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3ND
b250ZXh0LCB0eCwgeSwgdHggKyBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCksIHkyLCBCU0xlZnQs
IGxlZnRDb2xvciwgbGVmdFN0eWxlLAorICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhp
Y3NDb250ZXh0LCByZWN0LngoKSwgeSwgcmVjdC54KCkgKyBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRo
KCksIHkyLCBCU0xlZnQsIGxlZnRDb2xvciwgbGVmdFN0eWxlLAogICAgICAgICAgICAgICAgICAg
IGlnbm9yZVRvcCA/IDAgOiBzdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSwgaWdub3JlQm90dG9tID8g
MCA6IHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpKTsKIAogICAgICAgICBpZiAocmVuZGVyUmFk
aWkgJiYgKCF1cHBlckxlZnRCb3JkZXJTdHlsZXNNYXRjaCB8fCAhbG93ZXJMZWZ0Qm9yZGVyU3R5
bGVzTWF0Y2gpKSB7Ci0gICAgICAgICAgICBpbnQgdG9wWCA9IHR4OworICAgICAgICAgICAgaW50
IHRvcFggPSByZWN0LngoKTsKICAgICAgICAgICAgIHRoaWNrbmVzcyA9IHN0eWxlLT5ib3JkZXJM
ZWZ0V2lkdGgoKSAqIDI7CiAKICAgICAgICAgICAgIGlmICghdXBwZXJMZWZ0Qm9yZGVyU3R5bGVz
TWF0Y2ggJiYgYm9yZGVyLnJhZGlpKCkudG9wTGVmdCgpLndpZHRoKCkpIHsKLSAgICAgICAgICAg
ICAgICBpbnQgdG9wWSA9IHR5OworICAgICAgICAgICAgICAgIGludCB0b3BZID0gcmVjdC55KCk7
CiAgICAgICAgICAgICAgICAgYm9vbCBhcHBseVRvcElubmVyQ2xpcCA9IChzdHlsZS0+Ym9yZGVy
TGVmdFdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS50b3BMZWZ0KCkud2lkdGgoKSkKICAgICAgICAg
ICAgICAgICAgICAgJiYgKHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpIDwgYm9yZGVyLnJhZGlpKCku
dG9wTGVmdCgpLmhlaWdodCgpKQogICAgICAgICAgICAgICAgICAgICAmJiAobGVmdFN0eWxlICE9
IERPVUJMRSB8fCBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkgPiA2KTsKQEAgLTE4MjIsNyArMTgy
MSw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgaWYgKCFsb3dlckxlZnRCb3JkZXJTdHlsZXNNYXRjaCAmJiBi
b3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCkud2lkdGgoKSkgewotICAgICAgICAgICAgICAgIGlu
dCBib3R0b21ZID0gdHkgKyBoIC0gYm9yZGVyLnJhZGlpKCkuYm90dG9tTGVmdCgpLmhlaWdodCgp
ICogMjsKKyAgICAgICAgICAgICAgICBpbnQgYm90dG9tWSA9IHJlY3QubWF4WSgpIC0gYm9yZGVy
LnJhZGlpKCkuYm90dG9tTGVmdCgpLmhlaWdodCgpICogMjsKICAgICAgICAgICAgICAgICBib29s
IGFwcGx5Qm90dG9tSW5uZXJDbGlwID0gKHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSA8IGJvcmRl
ci5yYWRpaSgpLmJvdHRvbUxlZnQoKS53aWR0aCgpKQogICAgICAgICAgICAgICAgICAgICAmJiAo
c3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCku
aGVpZ2h0KCkpCiAgICAgICAgICAgICAgICAgICAgICYmIChsZWZ0U3R5bGUgIT0gRE9VQkxFIHx8
IHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSA+IDYpOwpAQCAtMTg1MywyMiArMTg1MiwyMiBAQCB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihHCiAgICAgICAgICAgICAgICAg
JiYgKHJpZ2h0U3R5bGUgPj0gRE9UVEVEIHx8IHJpZ2h0U3R5bGUgPT0gSU5TRVQpCiAgICAgICAg
ICAgICAgICAgJiYgKGJvdHRvbVN0eWxlID09IERPVFRFRCB8fCBib3R0b21TdHlsZSA9PSBEQVNI
RUQgfHwgYm90dG9tU3R5bGUgPT0gU09MSUQgfHwgYm90dG9tU3R5bGUgPT0gSU5TRVQpKTsKIAot
ICAgICAgICBpbnQgeSA9IHR5OwotICAgICAgICBpbnQgeTIgPSB0eSArIGg7CisgICAgICAgIGlu
dCB5ID0gcmVjdC55KCk7CisgICAgICAgIGludCB5MiA9IHJlY3QubWF4WSgpOwogICAgICAgICBp
ZiAocmVuZGVyUmFkaWkpIHsKICAgICAgICAgICAgIHkgKz0gYm9yZGVyLnJhZGlpKCkudG9wUmln
aHQoKS5oZWlnaHQoKTsKICAgICAgICAgICAgIHkyIC09IGJvcmRlci5yYWRpaSgpLmJvdHRvbVJp
Z2h0KCkuaGVpZ2h0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUo
Z3JhcGhpY3NDb250ZXh0LCB0eCArIHcgLSBzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpLCB5LCB0
eCArIHcsIHkyLCBCU1JpZ2h0LCByaWdodENvbG9yLCByaWdodFN0eWxlLAorICAgICAgICBkcmF3
TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCByZWN0LngoKSArIHcgLSBzdHlsZS0+Ym9y
ZGVyUmlnaHRXaWR0aCgpLCB5LCByZWN0Lm1heFgoKSwgeTIsIEJTUmlnaHQsIHJpZ2h0Q29sb3Is
IHJpZ2h0U3R5bGUsCiAgICAgICAgICAgICAgICAgICAgaWdub3JlVG9wID8gMCA6IHN0eWxlLT5i
b3JkZXJUb3BXaWR0aCgpLCBpZ25vcmVCb3R0b20gPyAwIDogc3R5bGUtPmJvcmRlckJvdHRvbVdp
ZHRoKCkpOwogCiAgICAgICAgIGlmIChyZW5kZXJSYWRpaSAmJiAoIXVwcGVyUmlnaHRCb3JkZXJT
dHlsZXNNYXRjaCB8fCAhbG93ZXJSaWdodEJvcmRlclN0eWxlc01hdGNoKSkgewogICAgICAgICAg
ICAgdGhpY2tuZXNzID0gc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSAqIDI7CiAKICAgICAgICAg
ICAgIGlmICghdXBwZXJSaWdodEJvcmRlclN0eWxlc01hdGNoICYmIGJvcmRlci5yYWRpaSgpLnRv
cFJpZ2h0KCkud2lkdGgoKSkgewotICAgICAgICAgICAgICAgIGludCB0b3BYID0gdHggKyB3IC0g
Ym9yZGVyLnJhZGlpKCkudG9wUmlnaHQoKS53aWR0aCgpICogMjsKLSAgICAgICAgICAgICAgICBp
bnQgdG9wWSA9IHR5OworICAgICAgICAgICAgICAgIGludCB0b3BYID0gcmVjdC5tYXhYKCkgLSBi
b3JkZXIucmFkaWkoKS50b3BSaWdodCgpLndpZHRoKCkgKiAyOworICAgICAgICAgICAgICAgIGlu
dCB0b3BZID0gcmVjdC55KCk7CiAgICAgICAgICAgICAgICAgYm9vbCBhcHBseVRvcElubmVyQ2xp
cCA9IChzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpIDwgYm9yZGVyLnJhZGlpKCkudG9wUmlnaHQo
KS53aWR0aCgpKQogICAgICAgICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRlclRvcFdpZHRo
KCkgPCBib3JkZXIucmFkaWkoKS50b3BSaWdodCgpLmhlaWdodCgpKQogICAgICAgICAgICAgICAg
ICAgICAmJiAocmlnaHRTdHlsZSAhPSBET1VCTEUgfHwgc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgo
KSA+IDYpOwpAQCAtMTg4Nyw4ICsxODg2LDggQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnRCb3JkZXIoRwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIWxvd2VyUmln
aHRCb3JkZXJTdHlsZXNNYXRjaCAmJiBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLndpZHRo
KCkpIHsKLSAgICAgICAgICAgICAgICBpbnQgYm90dG9tWCA9IHR4ICsgdyAtIGJvcmRlci5yYWRp
aSgpLmJvdHRvbVJpZ2h0KCkud2lkdGgoKSAqIDI7Ci0gICAgICAgICAgICAgICAgaW50IGJvdHRv
bVkgPSB0eSArIGggLSBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLmhlaWdodCgpICogMjsK
KyAgICAgICAgICAgICAgICBpbnQgYm90dG9tWCA9IHJlY3QubWF4WCgpIC0gYm9yZGVyLnJhZGlp
KCkuYm90dG9tUmlnaHQoKS53aWR0aCgpICogMjsKKyAgICAgICAgICAgICAgICBpbnQgYm90dG9t
WSA9IHJlY3QubWF4WSgpIC0gYm9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS5oZWlnaHQoKSAq
IDI7CiAgICAgICAgICAgICAgICAgYm9vbCBhcHBseUJvdHRvbUlubmVyQ2xpcCA9IChzdHlsZS0+
Ym9yZGVyUmlnaHRXaWR0aCgpIDwgYm9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgp
KQogICAgICAgICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgPCBi
b3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLmhlaWdodCgpKQogICAgICAgICAgICAgICAgICAg
ICAmJiAocmlnaHRTdHlsZSAhPSBET1VCTEUgfHwgc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSA+
IDYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmgJKHJldmlzaW9uIDg2MTkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRCZWNhbWVOb25JbmxpbmUoUmVuZGVyT2Jq
ZWN0KiAvKmNoaWxkKi8pIHsgfQogCi0gICAgdm9pZCBwYWludEJvcmRlcihHcmFwaGljc0NvbnRl
eHQqLCBpbnQgdHgsIGludCB0eSwgaW50IHcsIGludCBoLCBjb25zdCBSZW5kZXJTdHlsZSosIEJh
Y2tncm91bmRCbGVlZEF2b2lkYW5jZSA9IEJhY2tncm91bmRCbGVlZE5vbmUsIGJvb2wgaW5jbHVk
ZUxvZ2ljYWxMZWZ0RWRnZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0
cnVlKTsKKyAgICB2b2lkIHBhaW50Qm9yZGVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJl
Y3QmLCBjb25zdCBSZW5kZXJTdHlsZSosIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSA9IEJhY2tn
cm91bmRCbGVlZE5vbmUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSA9IHRydWUsIGJvb2wg
aW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKTsKICAgICBib29sIHBhaW50TmluZVBpZWNl
SW1hZ2UoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxl
KiwgY29uc3QgTmluZVBpZWNlSW1hZ2UmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNv
dXJjZU92ZXIpOwogICAgIHZvaWQgcGFpbnRCb3hTaGFkb3coR3JhcGhpY3NDb250ZXh0KiwgaW50
IHR4LCBpbnQgdHksIGludCB3LCBpbnQgaCwgY29uc3QgUmVuZGVyU3R5bGUqLCBTaGFkb3dTdHls
ZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNh
bFJpZ2h0RWRnZSA9IHRydWUpOwogICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25z
dCBQYWludEluZm8mLCBjb25zdCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciosIGludCB0eCwgaW50
IHR5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgSW5s
aW5lRmxvd0JveCogPSAwLCBpbnQgaW5saW5lQm94V2lkdGggPSAwLCBpbnQgaW5saW5lQm94SGVp
Z2h0ID0gMCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZW5kZXJP
YmplY3QqIGJhY2tncm91bmRPYmplY3QgPSAwKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGaWVsZHNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcAkocmV2aXNpb24gODYxOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcs
NyArMTY3LDcgQEAgdm9pZCBSZW5kZXJGaWVsZHNldDo6cGFpbnRCb3hEZWNvcmF0aW9ucwogICAg
ICAgICBncmFwaGljc0NvbnRleHQtPmNsaXBPdXQoSW50UmVjdChjbGlwTGVmdCwgdHkgKyBsZWdl
bmQtPnkoKSwgY2xpcFdpZHRoLCBsZWdlbmQtPmhlaWdodCgpKSk7CiAgICAgfQogCi0gICAgcGFp
bnRCb3JkZXIocGFpbnRJbmZvLmNvbnRleHQsIHR4LCB0eSwgdywgaCwgc3R5bGUoKSk7CisgICAg
cGFpbnRCb3JkZXIocGFpbnRJbmZvLmNvbnRleHQsIEludFJlY3QodHgsIHR5LCB3LCBoKSwgc3R5
bGUoKSk7CiB9CiAKIHZvaWQgUmVuZGVyRmllbGRzZXQ6OnBhaW50TWFzayhQYWludEluZm8mIHBh
aW50SW5mbywgaW50IHR4LCBpbnQgdHkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5jcHAJKHJldmlzaW9uIDg2MTkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcwLDcgKzU3MCw3IEBAIHZv
aWQgUmVuZGVyVGFibGU6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGEKICAgICBwYWludEJveFNoYWRv
dyhwYWludEluZm8uY29udGV4dCwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJl
Y3QuaGVpZ2h0KCksIHN0eWxlKCksIEluc2V0KTsKIAogICAgIGlmIChzdHlsZSgpLT5oYXNCb3Jk
ZXIoKSAmJiAhY29sbGFwc2VCb3JkZXJzKCkpCi0gICAgICAgIHBhaW50Qm9yZGVyKHBhaW50SW5m
by5jb250ZXh0LCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQo
KSwgc3R5bGUoKSk7CisgICAgICAgIHBhaW50Qm9yZGVyKHBhaW50SW5mby5jb250ZXh0LCByZWN0
LCBzdHlsZSgpKTsKIH0KIAogdm9pZCBSZW5kZXJUYWJsZTo6cGFpbnRNYXNrKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNlbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCShyZXZpc2lvbiA4NjE5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIw
LDcgKzEwMjAsNyBAQCB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6cGFpbnRCb3hEZWNvcmF0aW9uCiAg
ICAgaWYgKCFzdHlsZSgpLT5oYXNCb3JkZXIoKSB8fCB0YWJsZUVsdC0+Y29sbGFwc2VCb3JkZXJz
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhaW50Qm9yZGVyKHBhaW50SW5mby5jb250ZXh0
LCB0eCwgdHksIHcsIGgsIHN0eWxlKCkpOworICAgIHBhaW50Qm9yZGVyKHBhaW50SW5mby5jb250
ZXh0LCBJbnRSZWN0KHR4LCB0eSwgdywgaCksIHN0eWxlKCkpOwogfQogCiB2b2lkIFJlbmRlclRh
YmxlQ2VsbDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93149</attachid>
            <date>2011-05-11 11:24:11 -0700</date>
            <delta_ts>2011-05-11 14:33:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60591-20110511112410.patch</filename>
            <type>text/plain</type>
            <size>19778</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MTkyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDUtMTAgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN3aXRjaCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRC
b3JkZXIgdG8gdXNlIEludFJlY3QgaW5zdGVhZCBvZiBmb3VyIGludHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNTkxCisKKyAgICAgICAgU3dpdGNo
aW5nIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlciB0byB1c2UgSW50UmVjdCBpbnN0
ZWFkIG9mIGZvdXIgaW50cyByZXByZXNlbnRpbmcgYSByZWN0LgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyBzaW5jZSB0aGVyZSBpcyBubyBmdW5jdGlvbmFsaXR5IGNoYW5nZS4KKworICAgICAgICAq
IHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZs
b3dCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25z
V2l0aFNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWVs
ZHNldDo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpwYWludEJveERlY29yYXRp
b25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEt
MDUtMTAgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAJKHJldmlzaW9uIDg2MTkwKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTI3LDcgKzExMjcs
NyBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoCiAgICAgICAgICAg
ICAvLyBUaGUgc2ltcGxlIGNhc2UgaXMgd2hlcmUgd2UgZWl0aGVyIGhhdmUgbm8gYm9yZGVyIGlt
YWdlIG9yIHdlIGFyZSB0aGUgb25seSBib3ggZm9yIHRoaXMgb2JqZWN0LiAgSW4gdGhvc2UKICAg
ICAgICAgICAgIC8vIGNhc2VzIG9ubHkgYSBzaW5nbGUgY2FsbCB0byBkcmF3IGlzIHJlcXVpcmVk
LgogICAgICAgICAgICAgaWYgKCFoYXNCb3JkZXJJbWFnZSB8fCAoIXByZXZMaW5lQm94KCkgJiYg
IW5leHRMaW5lQm94KCkpKQotICAgICAgICAgICAgICAgIGJveE1vZGVsT2JqZWN0KCktPnBhaW50
Qm9yZGVyKGNvbnRleHQsIHR4LCB0eSwgdywgaCwgcmVuZGVyZXIoKS0+c3R5bGUoKSwgQmFja2dy
b3VuZEJsZWVkTm9uZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSgpLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSgpKTsKKyAgICAgICAgICAgICAgICBib3hNb2RlbE9iamVjdCgpLT5wYWludEJvcmRl
cihjb250ZXh0LCBJbnRSZWN0KHR4LCB0eSwgdywgaCksIHJlbmRlcmVyKCktPnN0eWxlKCksIEJh
Y2tncm91bmRCbGVlZE5vbmUsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UoKSwgaW5jbHVkZUxvZ2lj
YWxSaWdodEVkZ2UoKSk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBX
ZSBoYXZlIGEgYm9yZGVyIGltYWdlIHRoYXQgc3BhbnMgbXVsdGlwbGUgbGluZXMuCiAgICAgICAg
ICAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdHggYW5kIHR5IGJ5IHRoZSB3aWR0aCBvZiBh
bGwgcHJldmlvdXMgbGluZXMuCkBAIC0xMTUwLDcgKzExNTAsNyBAQCB2b2lkIElubGluZUZsb3dC
b3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoCiAKICAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOwogICAgICAgICAgICAgICAgIGNvbnRl
eHQtPmNsaXAoSW50UmVjdCh0eCwgdHksIHcsIGgpKTsKLSAgICAgICAgICAgICAgICBib3hNb2Rl
bE9iamVjdCgpLT5wYWludEJvcmRlcihjb250ZXh0LCBzdHJpcFgsIHN0cmlwWSwgc3RyaXBXaWR0
aCwgc3RyaXBIZWlnaHQsIHJlbmRlcmVyKCktPnN0eWxlKCkpOworICAgICAgICAgICAgICAgIGJv
eE1vZGVsT2JqZWN0KCktPnBhaW50Qm9yZGVyKGNvbnRleHQsIEludFJlY3Qoc3RyaXBYLCBzdHJp
cFksIHN0cmlwV2lkdGgsIHN0cmlwSGVpZ2h0KSwgcmVuZGVyZXIoKS0+c3R5bGUoKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAkocmV2aXNpb24gODYxOTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODczLDcgKzg3Myw3IEBAIHZvaWQg
UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zV2l0aFMKIAogICAgIC8vIFRoZSB0aGVtZSB3
aWxsIHRlbGwgdXMgd2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIGFsc28gcGFpbnQgdGhlIENTUyBi
b3JkZXIuCiAgICAgaWYgKCghc3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpIHx8ICghdGhlbWVQYWlu
dGVkICYmIHRoZW1lKCktPnBhaW50Qm9yZGVyT25seSh0aGlzLCBwYWludEluZm8sIEludFJlY3Qo
dHgsIHR5LCB3aWR0aCwgaGVpZ2h0KSkpKSAmJiBzdHlsZSgpLT5oYXNCb3JkZXIoKSkKLSAgICAg
ICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLmNvbnRleHQsIHR4LCB0eSwgd2lkdGgsIGhlaWdodCwg
c3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOworICAgICAgICBwYWludEJvcmRlcihwYWludEluZm8u
Y29udGV4dCwgSW50UmVjdCh0eCwgdHksIHdpZHRoLCBoZWlnaHQpLCBzdHlsZSgpLCBibGVlZEF2
b2lkYW5jZSk7CiAKICAgICBpZiAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVkVXNl
VHJhbnNwYXJlbmN5TGF5ZXIpCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5lbmRUcmFuc3Bh
cmVuY3lMYXllcigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiA4NjE5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
NDYsMTEgKzEzNDYsMTEgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1
YwogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoR3Jh
cGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGludCB0eCwgaW50IHR5LCBpbnQgdywgaW50
IGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGUsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwgYm9v
bCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKQor
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoR3JhcGhpY3NDb250ZXh0KiBn
cmFwaGljc0NvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlclN0eWxlKiBz
dHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tncm91bmRC
bGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdl
LCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKQogewogICAgIC8vIGJvcmRlci1pbWFnZSBp
cyBub3QgYWZmZWN0ZWQgYnkgYm9yZGVyLXJhZGl1cy4KLSAgICBpZiAocGFpbnROaW5lUGllY2VJ
bWFnZShncmFwaGljc0NvbnRleHQsIEludFJlY3QodHgsIHR5LCB3LCBoKSwgc3R5bGUsIHN0eWxl
LT5ib3JkZXJJbWFnZSgpKSkKKyAgICBpZiAocGFpbnROaW5lUGllY2VJbWFnZShncmFwaGljc0Nv
bnRleHQsIHJlY3QsIHN0eWxlLCBzdHlsZS0+Ym9yZGVySW1hZ2UoKSkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChncmFwaGljc0NvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKQEAgLTEz
NTksOSArMTM1OSw4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcK
ICAgICBCb3JkZXJFZGdlIGVkZ2VzWzRdOwogICAgIGdldEJvcmRlckVkZ2VJbmZvKGVkZ2VzLCBp
bmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAKLSAgICBJ
bnRSZWN0IGJvcmRlclJlY3QodHgsIHR5LCB3LCBoKTsKLSAgICBSb3VuZGVkSW50UmVjdCBvdXRl
ckJvcmRlciA9IHN0eWxlLT5nZXRSb3VuZGVkQm9yZGVyRm9yKGJvcmRlclJlY3QsIGluY2x1ZGVM
b2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKLSAgICBSb3VuZGVkSW50
UmVjdCBpbm5lckJvcmRlciA9IHN0eWxlLT5nZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IoYm9yZGVy
UmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwor
ICAgIFJvdW5kZWRJbnRSZWN0IG91dGVyQm9yZGVyID0gc3R5bGUtPmdldFJvdW5kZWRCb3JkZXJG
b3IocmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Up
OworICAgIFJvdW5kZWRJbnRSZWN0IGlubmVyQm9yZGVyID0gc3R5bGUtPmdldFJvdW5kZWRJbm5l
ckJvcmRlckZvcihyZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSk7CiAKICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGN1cnJlbnRDVE0gPSBncmFw
aGljc0NvbnRleHQtPmdldENUTSgpOwogICAgIC8vIEZJWE1FOiB0aGlzIGlzbid0IHF1aXRlIGNv
cnJlY3QuIFdlIG1heSB3YW50IHRvIGFudGlhbGlhcyB3aGVuIHNjYWxlZCBieSBhIG5vbi1pbnRl
Z3JhbCB2YWx1ZSwgb3Igd2hlbiB0aGUgdHJhbnNsYXRpb24gaXMgbm9uLWludGVncmFsLgpAQCAt
MTU4NywxMiArMTU4NiwxMiBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkcmF3Qm94U2lk
ZUZyCiAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3UmVjdChib3JkZXJSZWN0KTsKIH0KICNlbHNl
Ci12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCwgaW50IHR4LCBpbnQgdHksIGludCB3LCBpbnQgaCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwg
QmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJv
b2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpw
YWludEJvcmRlcihHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVj
dCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVM
b2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCiB7CiAgICAgLy8g
RklYTUU6IFRoaXMgb2xkIHZlcnNpb24gb2YgcGFpbnRCb3JkZXIgc2hvdWxkIGJlIHJlbW92ZWQg
d2hlbiBhbGwgcG9ydHMgaW1wbGVtZW50IAogICAgIC8vIEdyYXBoaWNzQ29udGV4dDo6Y2xpcENv
bnZleFBvbHlnb24oKSEhIFRoaXMgc2hvdWxkIGhhcHBlbiBzb29uLgotICAgIGlmIChwYWludE5p
bmVQaWVjZUltYWdlKGdyYXBoaWNzQ29udGV4dCwgSW50UmVjdCh0eCwgdHksIHcsIGgpLCBzdHls
ZSwgc3R5bGUtPmJvcmRlckltYWdlKCkpKQorICAgIGlmIChwYWludE5pbmVQaWVjZUltYWdlKGdy
YXBoaWNzQ29udGV4dCwgcmVjdCwgc3R5bGUsIHN0eWxlLT5ib3JkZXJJbWFnZSgpKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgY29uc3QgQ29sb3ImIHRvcENvbG9yID0gc3R5bGUtPnZpc2l0ZWRE
ZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yKTsKQEAgLTE2MTcsNyArMTYx
Niw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICBib29s
IHJlbmRlckJvdHRvbSA9IGJvdHRvbVN0eWxlID4gQkhJRERFTiAmJiAhYm90dG9tVHJhbnNwYXJl
bnQgJiYgKGhvcml6b250YWwgfHwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwogCiAKLSAgICBS
b3VuZGVkSW50UmVjdCBib3JkZXIodHgsIHR5LCB3LCBoKTsKKyAgICBSb3VuZGVkSW50UmVjdCBi
b3JkZXIocmVjdCk7CiAgICAgCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKCpncmFwaGljc0NvbnRleHQsIGZhbHNlKTsKICAgICBpZiAoc3R5bGUtPmhhc0JvcmRlclJh
ZGl1cygpKSB7CkBAIC0xNjQ2LDE4ICsxNjQ1LDE4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50Qm9yZGVyKEcKICAgICAgICAgICAgIHx8ICh0b3BDb2xvciA9PSByaWdodENvbG9y
ICYmIHRvcFRyYW5zcGFyZW50ID09IHJpZ2h0VHJhbnNwYXJlbnQgJiYgdG9wU3R5bGUgPj0gT1VU
U0VUCiAgICAgICAgICAgICAgICAgJiYgKHJpZ2h0U3R5bGUgPT0gRE9UVEVEIHx8IHJpZ2h0U3R5
bGUgPT0gREFTSEVEIHx8IHJpZ2h0U3R5bGUgPT0gU09MSUQgfHwgcmlnaHRTdHlsZSA9PSBJTlNF
VCkpOwogCi0gICAgICAgIGludCB4ID0gdHg7Ci0gICAgICAgIGludCB4MiA9IHR4ICsgdzsKKyAg
ICAgICAgaW50IHggPSByZWN0LngoKTsKKyAgICAgICAgaW50IHgyID0gcmVjdC5tYXhYKCk7CiAg
ICAgICAgIGlmIChyZW5kZXJSYWRpaSkgewogICAgICAgICAgICAgeCArPSBib3JkZXIucmFkaWko
KS50b3BMZWZ0KCkud2lkdGgoKTsKICAgICAgICAgICAgIHgyIC09IGJvcmRlci5yYWRpaSgpLnRv
cFJpZ2h0KCkud2lkdGgoKTsKICAgICAgICAgfQogCi0gICAgICAgIGRyYXdMaW5lRm9yQm94U2lk
ZShncmFwaGljc0NvbnRleHQsIHgsIHR5LCB4MiwgdHkgKyBzdHlsZS0+Ym9yZGVyVG9wV2lkdGgo
KSwgQlNUb3AsIHRvcENvbG9yLCB0b3BTdHlsZSwKKyAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRl
KGdyYXBoaWNzQ29udGV4dCwgeCwgcmVjdC55KCksIHgyLCByZWN0LnkoKSArIHN0eWxlLT5ib3Jk
ZXJUb3BXaWR0aCgpLCBCU1RvcCwgdG9wQ29sb3IsIHRvcFN0eWxlLAogICAgICAgICAgICAgICAg
ICAgIGlnbm9yZUxlZnQgPyAwIDogc3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpLCBpZ25vcmVSaWdo
dCA/IDAgOiBzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpKTsKIAogICAgICAgICBpZiAocmVuZGVy
UmFkaWkpIHsKLSAgICAgICAgICAgIGludCBsZWZ0WSA9IHR5OworICAgICAgICAgICAgaW50IGxl
ZnRZID0gcmVjdC55KCk7CiAKICAgICAgICAgICAgIC8vIFdlIG1ha2UgdGhlIGFyYyBkb3VibGUg
dGhpY2sgYW5kIGxldCB0aGUgY2xpcCByZWN0IHRha2UgY2FyZSBvZiBjbGlwcGluZyB0aGUgZXh0
cmEgb2ZmLgogICAgICAgICAgICAgLy8gV2UncmUgZG9pbmcgdGhpcyBiZWNhdXNlIGl0IGRvZXNu
J3Qgc2VlbSBwb3NzaWJsZSB0byBtYXRjaCB0aGUgY3VydmUgb2YgdGhlIGNsaXAgZXhhY3RseQpA
QCAtMTY2NSw3ICsxNjY0LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3Jk
ZXIoRwogICAgICAgICAgICAgdGhpY2tuZXNzID0gc3R5bGUtPmJvcmRlclRvcFdpZHRoKCkgKiAy
OwogCiAgICAgICAgICAgICBpZiAoYm9yZGVyLnJhZGlpKCkudG9wTGVmdCgpLndpZHRoKCkpIHsK
LSAgICAgICAgICAgICAgICBpbnQgbGVmdFggPSB0eDsKKyAgICAgICAgICAgICAgICBpbnQgbGVm
dFggPSByZWN0LngoKTsKICAgICAgICAgICAgICAgICAvLyBUaGUgaW5uZXIgY2xpcCBjbGlwcyBp
bnNpZGUgdGhlIGFyYy4gVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBmb3IgMXB4IGJvcmRl
cnMuCiAgICAgICAgICAgICAgICAgYm9vbCBhcHBseUxlZnRJbm5lckNsaXAgPSAoc3R5bGUtPmJv
cmRlckxlZnRXaWR0aCgpIDwgYm9yZGVyLnJhZGlpKCkudG9wTGVmdCgpLndpZHRoKCkpCiAgICAg
ICAgICAgICAgICAgICAgICYmIChzdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSA8IGJvcmRlci5yYWRp
aSgpLnRvcExlZnQoKS5oZWlnaHQoKSkKQEAgLTE2ODUsNyArMTY4NCw3IEBAIHZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKGJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkud2lkdGgoKSkgewotICAgICAgICAgICAg
ICAgIGludCByaWdodFggPSB0eCArIHcgLSBib3JkZXIucmFkaWkoKS50b3BSaWdodCgpLndpZHRo
KCkgKiAyOworICAgICAgICAgICAgICAgIGludCByaWdodFggPSByZWN0Lm1heFgoKSAtIGJvcmRl
ci5yYWRpaSgpLnRvcFJpZ2h0KCkud2lkdGgoKSAqIDI7CiAgICAgICAgICAgICAgICAgYm9vbCBh
cHBseVJpZ2h0SW5uZXJDbGlwID0gKHN0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkgPCBib3JkZXIu
cmFkaWkoKS50b3BSaWdodCgpLndpZHRoKCkpCiAgICAgICAgICAgICAgICAgICAgICYmIChzdHls
ZS0+Ym9yZGVyVG9wV2lkdGgoKSA8IGJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkp
CiAgICAgICAgICAgICAgICAgICAgICYmICh0b3BTdHlsZSAhPSBET1VCTEUgfHwgc3R5bGUtPmJv
cmRlclRvcFdpZHRoKCkgPiA2KTsKQEAgLTE3MTksMjIgKzE3MTgsMjIgQEAgdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoRwogICAgICAgICAgICAgfHwgKGJvdHRvbUNvbG9y
ID09IHJpZ2h0Q29sb3IgJiYgYm90dG9tVHJhbnNwYXJlbnQgPT0gcmlnaHRUcmFuc3BhcmVudCAm
JiBib3R0b21TdHlsZSA+PSBPVVRTRVQKICAgICAgICAgICAgICAgICAmJiAocmlnaHRTdHlsZSA9
PSBET1RURUQgfHwgcmlnaHRTdHlsZSA9PSBEQVNIRUQgfHwgcmlnaHRTdHlsZSA9PSBTT0xJRCB8
fCByaWdodFN0eWxlID09IElOU0VUKSk7CiAKLSAgICAgICAgaW50IHggPSB0eDsKLSAgICAgICAg
aW50IHgyID0gdHggKyB3OworICAgICAgICBpbnQgeCA9IHJlY3QueCgpOworICAgICAgICBpbnQg
eDIgPSByZWN0Lm1heFgoKTsKICAgICAgICAgaWYgKHJlbmRlclJhZGlpKSB7CiAgICAgICAgICAg
ICB4ICs9IGJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQoKS53aWR0aCgpOwogICAgICAgICAgICAg
eDIgLT0gYm9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpOwogICAgICAgICB9CiAK
LSAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgeCwgdHkgKyBoIC0g
c3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCksIHgyLCB0eSArIGgsIEJTQm90dG9tLCBib3R0b21D
b2xvciwgYm90dG9tU3R5bGUsCisgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0Nv
bnRleHQsIHgsIHJlY3QubWF4WSgpIC0gc3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCksIHgyLCBy
ZWN0Lm1heFkoKSwgQlNCb3R0b20sIGJvdHRvbUNvbG9yLCBib3R0b21TdHlsZSwKICAgICAgICAg
ICAgICAgICAgICBpZ25vcmVMZWZ0ID8gMCA6IHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSwgaWdu
b3JlUmlnaHQgPyAwIDogc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSk7CiAKICAgICAgICAgaWYg
KHJlbmRlclJhZGlpKSB7CiAgICAgICAgICAgICB0aGlja25lc3MgPSBzdHlsZS0+Ym9yZGVyQm90
dG9tV2lkdGgoKSAqIDI7CiAKICAgICAgICAgICAgIGlmIChib3JkZXIucmFkaWkoKS5ib3R0b21M
ZWZ0KCkud2lkdGgoKSkgewotICAgICAgICAgICAgICAgIGludCBsZWZ0WCA9IHR4OwotICAgICAg
ICAgICAgICAgIGludCBsZWZ0WSA9IHR5ICsgaCAtIGJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQo
KS5oZWlnaHQoKSAqIDI7CisgICAgICAgICAgICAgICAgaW50IGxlZnRYID0gcmVjdC54KCk7Cisg
ICAgICAgICAgICAgICAgaW50IGxlZnRZID0gcmVjdC5tYXhZKCkgLSBib3JkZXIucmFkaWkoKS5i
b3R0b21MZWZ0KCkuaGVpZ2h0KCkgKiAyOwogICAgICAgICAgICAgICAgIGJvb2wgYXBwbHlMZWZ0
SW5uZXJDbGlwID0gKHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSA8IGJvcmRlci5yYWRpaSgpLmJv
dHRvbUxlZnQoKS53aWR0aCgpKQogICAgICAgICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRl
ckJvdHRvbVdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCkuaGVpZ2h0KCkpCiAg
ICAgICAgICAgICAgICAgICAgICYmIChib3R0b21TdHlsZSAhPSBET1VCTEUgfHwgc3R5bGUtPmJv
cmRlckJvdHRvbVdpZHRoKCkgPiA2KTsKQEAgLTE3NTgsOCArMTc1Nyw4IEBAIHZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKGJvcmRlci5yYWRpaSgpLmJvdHRvbVJpZ2h0KCkud2lkdGgoKSkgewotICAgICAgICAg
ICAgICAgIGludCByaWdodFkgPSB0eSArIGggLSBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgp
LmhlaWdodCgpICogMjsKLSAgICAgICAgICAgICAgICBpbnQgcmlnaHRYID0gdHggKyB3IC0gYm9y
ZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpICogMjsKKyAgICAgICAgICAgICAgICBp
bnQgcmlnaHRZID0gcmVjdC5tYXhZKCkgLSBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLmhl
aWdodCgpICogMjsKKyAgICAgICAgICAgICAgICBpbnQgcmlnaHRYID0gcmVjdC5tYXhYKCkgLSBi
b3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLndpZHRoKCkgKiAyOwogICAgICAgICAgICAgICAg
IGJvb2wgYXBwbHlSaWdodElubmVyQ2xpcCA9IChzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpIDwg
Ym9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpKQogICAgICAgICAgICAgICAgICAg
ICAmJiAoc3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS5ib3R0b21S
aWdodCgpLmhlaWdodCgpKQogICAgICAgICAgICAgICAgICAgICAmJiAoYm90dG9tU3R5bGUgIT0g
RE9VQkxFIHx8IHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpID4gNik7CkBAIC0xNzg4LDIyICsx
Nzg3LDIyIEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICAg
ICAgICAgIHx8IChib3R0b21Db2xvciA9PSBsZWZ0Q29sb3IgJiYgYm90dG9tVHJhbnNwYXJlbnQg
PT0gbGVmdFRyYW5zcGFyZW50ICYmIGxlZnRTdHlsZSA+PSBPVVRTRVQKICAgICAgICAgICAgICAg
ICAmJiAoYm90dG9tU3R5bGUgPT0gRE9UVEVEIHx8IGJvdHRvbVN0eWxlID09IERBU0hFRCB8fCBi
b3R0b21TdHlsZSA9PSBTT0xJRCB8fCBib3R0b21TdHlsZSA9PSBJTlNFVCkpOwogCi0gICAgICAg
IGludCB5ID0gdHk7Ci0gICAgICAgIGludCB5MiA9IHR5ICsgaDsKKyAgICAgICAgaW50IHkgPSBy
ZWN0LnkoKTsKKyAgICAgICAgaW50IHkyID0gcmVjdC5tYXhZKCk7CiAgICAgICAgIGlmIChyZW5k
ZXJSYWRpaSkgewogICAgICAgICAgICAgeSArPSBib3JkZXIucmFkaWkoKS50b3BMZWZ0KCkuaGVp
Z2h0KCk7CiAgICAgICAgICAgICB5MiAtPSBib3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCkuaGVp
Z2h0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3ND
b250ZXh0LCB0eCwgeSwgdHggKyBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCksIHkyLCBCU0xlZnQs
IGxlZnRDb2xvciwgbGVmdFN0eWxlLAorICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhp
Y3NDb250ZXh0LCByZWN0LngoKSwgeSwgcmVjdC54KCkgKyBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRo
KCksIHkyLCBCU0xlZnQsIGxlZnRDb2xvciwgbGVmdFN0eWxlLAogICAgICAgICAgICAgICAgICAg
IGlnbm9yZVRvcCA/IDAgOiBzdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSwgaWdub3JlQm90dG9tID8g
MCA6IHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpKTsKIAogICAgICAgICBpZiAocmVuZGVyUmFk
aWkgJiYgKCF1cHBlckxlZnRCb3JkZXJTdHlsZXNNYXRjaCB8fCAhbG93ZXJMZWZ0Qm9yZGVyU3R5
bGVzTWF0Y2gpKSB7Ci0gICAgICAgICAgICBpbnQgdG9wWCA9IHR4OworICAgICAgICAgICAgaW50
IHRvcFggPSByZWN0LngoKTsKICAgICAgICAgICAgIHRoaWNrbmVzcyA9IHN0eWxlLT5ib3JkZXJM
ZWZ0V2lkdGgoKSAqIDI7CiAKICAgICAgICAgICAgIGlmICghdXBwZXJMZWZ0Qm9yZGVyU3R5bGVz
TWF0Y2ggJiYgYm9yZGVyLnJhZGlpKCkudG9wTGVmdCgpLndpZHRoKCkpIHsKLSAgICAgICAgICAg
ICAgICBpbnQgdG9wWSA9IHR5OworICAgICAgICAgICAgICAgIGludCB0b3BZID0gcmVjdC55KCk7
CiAgICAgICAgICAgICAgICAgYm9vbCBhcHBseVRvcElubmVyQ2xpcCA9IChzdHlsZS0+Ym9yZGVy
TGVmdFdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS50b3BMZWZ0KCkud2lkdGgoKSkKICAgICAgICAg
ICAgICAgICAgICAgJiYgKHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpIDwgYm9yZGVyLnJhZGlpKCku
dG9wTGVmdCgpLmhlaWdodCgpKQogICAgICAgICAgICAgICAgICAgICAmJiAobGVmdFN0eWxlICE9
IERPVUJMRSB8fCBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkgPiA2KTsKQEAgLTE4MjIsNyArMTgy
MSw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKEcKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgaWYgKCFsb3dlckxlZnRCb3JkZXJTdHlsZXNNYXRjaCAmJiBi
b3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCkud2lkdGgoKSkgewotICAgICAgICAgICAgICAgIGlu
dCBib3R0b21ZID0gdHkgKyBoIC0gYm9yZGVyLnJhZGlpKCkuYm90dG9tTGVmdCgpLmhlaWdodCgp
ICogMjsKKyAgICAgICAgICAgICAgICBpbnQgYm90dG9tWSA9IHJlY3QubWF4WSgpIC0gYm9yZGVy
LnJhZGlpKCkuYm90dG9tTGVmdCgpLmhlaWdodCgpICogMjsKICAgICAgICAgICAgICAgICBib29s
IGFwcGx5Qm90dG9tSW5uZXJDbGlwID0gKHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSA8IGJvcmRl
ci5yYWRpaSgpLmJvdHRvbUxlZnQoKS53aWR0aCgpKQogICAgICAgICAgICAgICAgICAgICAmJiAo
c3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCku
aGVpZ2h0KCkpCiAgICAgICAgICAgICAgICAgICAgICYmIChsZWZ0U3R5bGUgIT0gRE9VQkxFIHx8
IHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSA+IDYpOwpAQCAtMTg1MywyMiArMTg1MiwyMiBAQCB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihHCiAgICAgICAgICAgICAgICAg
JiYgKHJpZ2h0U3R5bGUgPj0gRE9UVEVEIHx8IHJpZ2h0U3R5bGUgPT0gSU5TRVQpCiAgICAgICAg
ICAgICAgICAgJiYgKGJvdHRvbVN0eWxlID09IERPVFRFRCB8fCBib3R0b21TdHlsZSA9PSBEQVNI
RUQgfHwgYm90dG9tU3R5bGUgPT0gU09MSUQgfHwgYm90dG9tU3R5bGUgPT0gSU5TRVQpKTsKIAot
ICAgICAgICBpbnQgeSA9IHR5OwotICAgICAgICBpbnQgeTIgPSB0eSArIGg7CisgICAgICAgIGlu
dCB5ID0gcmVjdC55KCk7CisgICAgICAgIGludCB5MiA9IHJlY3QubWF4WSgpOwogICAgICAgICBp
ZiAocmVuZGVyUmFkaWkpIHsKICAgICAgICAgICAgIHkgKz0gYm9yZGVyLnJhZGlpKCkudG9wUmln
aHQoKS5oZWlnaHQoKTsKICAgICAgICAgICAgIHkyIC09IGJvcmRlci5yYWRpaSgpLmJvdHRvbVJp
Z2h0KCkuaGVpZ2h0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUo
Z3JhcGhpY3NDb250ZXh0LCB0eCArIHcgLSBzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpLCB5LCB0
eCArIHcsIHkyLCBCU1JpZ2h0LCByaWdodENvbG9yLCByaWdodFN0eWxlLAorICAgICAgICBkcmF3
TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCByZWN0Lm1heFgoKSAtIHN0eWxlLT5ib3Jk
ZXJSaWdodFdpZHRoKCksIHksIHJlY3QubWF4WCgpLCB5MiwgQlNSaWdodCwgcmlnaHRDb2xvciwg
cmlnaHRTdHlsZSwKICAgICAgICAgICAgICAgICAgICBpZ25vcmVUb3AgPyAwIDogc3R5bGUtPmJv
cmRlclRvcFdpZHRoKCksIGlnbm9yZUJvdHRvbSA/IDAgOiBzdHlsZS0+Ym9yZGVyQm90dG9tV2lk
dGgoKSk7CiAKICAgICAgICAgaWYgKHJlbmRlclJhZGlpICYmICghdXBwZXJSaWdodEJvcmRlclN0
eWxlc01hdGNoIHx8ICFsb3dlclJpZ2h0Qm9yZGVyU3R5bGVzTWF0Y2gpKSB7CiAgICAgICAgICAg
ICB0aGlja25lc3MgPSBzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpICogMjsKIAogICAgICAgICAg
ICAgaWYgKCF1cHBlclJpZ2h0Qm9yZGVyU3R5bGVzTWF0Y2ggJiYgYm9yZGVyLnJhZGlpKCkudG9w
UmlnaHQoKS53aWR0aCgpKSB7Ci0gICAgICAgICAgICAgICAgaW50IHRvcFggPSB0eCArIHcgLSBi
b3JkZXIucmFkaWkoKS50b3BSaWdodCgpLndpZHRoKCkgKiAyOwotICAgICAgICAgICAgICAgIGlu
dCB0b3BZID0gdHk7CisgICAgICAgICAgICAgICAgaW50IHRvcFggPSByZWN0Lm1heFgoKSAtIGJv
cmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkud2lkdGgoKSAqIDI7CisgICAgICAgICAgICAgICAgaW50
IHRvcFkgPSByZWN0LnkoKTsKICAgICAgICAgICAgICAgICBib29sIGFwcGx5VG9wSW5uZXJDbGlw
ID0gKHN0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS50b3BSaWdodCgp
LndpZHRoKCkpCiAgICAgICAgICAgICAgICAgICAgICYmIChzdHlsZS0+Ym9yZGVyVG9wV2lkdGgo
KSA8IGJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkpCiAgICAgICAgICAgICAgICAg
ICAgICYmIChyaWdodFN0eWxlICE9IERPVUJMRSB8fCBzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgp
ID4gNik7CkBAIC0xODg3LDggKzE4ODYsOCBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpw
YWludEJvcmRlcihHCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICghbG93ZXJSaWdo
dEJvcmRlclN0eWxlc01hdGNoICYmIGJvcmRlci5yYWRpaSgpLmJvdHRvbVJpZ2h0KCkud2lkdGgo
KSkgewotICAgICAgICAgICAgICAgIGludCBib3R0b21YID0gdHggKyB3IC0gYm9yZGVyLnJhZGlp
KCkuYm90dG9tUmlnaHQoKS53aWR0aCgpICogMjsKLSAgICAgICAgICAgICAgICBpbnQgYm90dG9t
WSA9IHR5ICsgaCAtIGJvcmRlci5yYWRpaSgpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCkgKiAyOwor
ICAgICAgICAgICAgICAgIGludCBib3R0b21YID0gcmVjdC5tYXhYKCkgLSBib3JkZXIucmFkaWko
KS5ib3R0b21SaWdodCgpLndpZHRoKCkgKiAyOworICAgICAgICAgICAgICAgIGludCBib3R0b21Z
ID0gcmVjdC5tYXhZKCkgLSBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLmhlaWdodCgpICog
MjsKICAgICAgICAgICAgICAgICBib29sIGFwcGx5Qm90dG9tSW5uZXJDbGlwID0gKHN0eWxlLT5i
b3JkZXJSaWdodFdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLndpZHRoKCkp
CiAgICAgICAgICAgICAgICAgICAgICYmIChzdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSA8IGJv
cmRlci5yYWRpaSgpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCkpCiAgICAgICAgICAgICAgICAgICAg
ICYmIChyaWdodFN0eWxlICE9IERPVUJMRSB8fCBzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpID4g
Nik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuaAkocmV2aXNpb24gODYxOTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZEJlY2FtZU5vbklubGluZShSZW5kZXJPYmpl
Y3QqIC8qY2hpbGQqLykgeyB9CiAKLSAgICB2b2lkIHBhaW50Qm9yZGVyKEdyYXBoaWNzQ29udGV4
dCosIGludCB0eCwgaW50IHR5LCBpbnQgdywgaW50IGgsIGNvbnN0IFJlbmRlclN0eWxlKiwgQmFj
a2dyb3VuZEJsZWVkQXZvaWRhbmNlID0gQmFja2dyb3VuZEJsZWVkTm9uZSwgYm9vbCBpbmNsdWRl
TG9naWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRy
dWUpOworICAgIHZvaWQgcGFpbnRCb3JkZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVj
dCYsIGNvbnN0IFJlbmRlclN0eWxlKiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlID0gQmFja2dy
b3VuZEJsZWVkTm9uZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBp
bmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRydWUpOwogICAgIGJvb2wgcGFpbnROaW5lUGllY2VJ
bWFnZShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUq
LCBjb25zdCBOaW5lUGllY2VJbWFnZSYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291
cmNlT3Zlcik7CiAgICAgdm9pZCBwYWludEJveFNoYWRvdyhHcmFwaGljc0NvbnRleHQqLCBpbnQg
dHgsIGludCB0eSwgaW50IHcsIGludCBoLCBjb25zdCBSZW5kZXJTdHlsZSosIFNoYWRvd1N0eWxl
LCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBib29sIGluY2x1ZGVMb2dpY2Fs
UmlnaHRFZGdlID0gdHJ1ZSk7CiAgICAgdm9pZCBwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVyKiwgaW50IHR4LCBpbnQg
dHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBJbmxp
bmVGbG93Qm94KiA9IDAsIGludCBpbmxpbmVCb3hXaWR0aCA9IDAsIGludCBpbmxpbmVCb3hIZWln
aHQgPSAwLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlbmRlck9i
amVjdCogYmFja2dyb3VuZE9iamVjdCA9IDApOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZpZWxkc2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCShyZXZpc2lvbiA4NjE5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw3
ICsxNjcsNyBAQCB2b2lkIFJlbmRlckZpZWxkc2V0OjpwYWludEJveERlY29yYXRpb25zCiAgICAg
ICAgIGdyYXBoaWNzQ29udGV4dC0+Y2xpcE91dChJbnRSZWN0KGNsaXBMZWZ0LCB0eSArIGxlZ2Vu
ZC0+eSgpLCBjbGlwV2lkdGgsIGxlZ2VuZC0+aGVpZ2h0KCkpKTsKICAgICB9CiAKLSAgICBwYWlu
dEJvcmRlcihwYWludEluZm8uY29udGV4dCwgdHgsIHR5LCB3LCBoLCBzdHlsZSgpKTsKKyAgICBw
YWludEJvcmRlcihwYWludEluZm8uY29udGV4dCwgSW50UmVjdCh0eCwgdHksIHcsIGgpLCBzdHls
ZSgpKTsKIH0KIAogdm9pZCBSZW5kZXJGaWVsZHNldDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBpbnQgdHgsIGludCB0eSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlLmNwcAkocmV2aXNpb24gODYxOTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzAsNyArNTcwLDcgQEAgdm9p
ZCBSZW5kZXJUYWJsZTo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYQogICAgIHBhaW50Qm94U2hhZG93
KHBhaW50SW5mby5jb250ZXh0LCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVj
dC5oZWlnaHQoKSwgc3R5bGUoKSwgSW5zZXQpOwogCiAgICAgaWYgKHN0eWxlKCktPmhhc0JvcmRl
cigpICYmICFjb2xsYXBzZUJvcmRlcnMoKSkKLSAgICAgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZv
LmNvbnRleHQsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgp
LCBzdHlsZSgpKTsKKyAgICAgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLmNvbnRleHQsIHJlY3Qs
IHN0eWxlKCkpOwogfQogCiB2b2lkIFJlbmRlclRhYmxlOjpwYWludE1hc2soUGFpbnRJbmZvJiBw
YWludEluZm8sIGludCB0eCwgaW50IHR5KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAJKHJldmlzaW9uIDg2MTkwKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjAs
NyArMTAyMCw3IEBAIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpwYWludEJveERlY29yYXRpb24KICAg
ICBpZiAoIXN0eWxlKCktPmhhc0JvcmRlcigpIHx8IHRhYmxlRWx0LT5jb2xsYXBzZUJvcmRlcnMo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLmNvbnRleHQs
IHR4LCB0eSwgdywgaCwgc3R5bGUoKSk7CisgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLmNvbnRl
eHQsIEludFJlY3QodHgsIHR5LCB3LCBoKSwgc3R5bGUoKSk7CiB9CiAKIHZvaWQgUmVuZGVyVGFi
bGVDZWxsOjpwYWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>