<?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>32674</bug_id>
          
          <creation_ts>2009-12-17 10:45:47 -0800</creation_ts>
          <short_desc>Fix link failure on LTCG builds on Windows for chromium port</short_desc>
          <delta_ts>2009-12-17 13:52:35 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Marc-Antoine Ruel">maruel</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>sfalken</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>172868</commentid>
    <comment_count>0</comment_count>
      <attachid>45090</attachid>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2009-12-17 10:45:47 -0800</bug_when>
    <thetext>Created attachment 45090
Patch

Reenable SVGAllInOne.cpp. This required some fixups.

Namely, there was conflicts in constants between HTMLNames and
SVGNames, and conflicts between static functions names.

No new tests as functionality has not changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172871</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 10:46:32 -0800</bug_when>
    <thetext>Attachment 45090 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/svg/SVGAllInOne.cpp:99:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/svg/SVGAllInOne.cpp:105:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/svg/SVGAllInOne.cpp:137:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/svg/SVGAllInOne.cpp:138:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/svg/SVGAllInOne.cpp:151:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172872</commentid>
    <comment_count>2</comment_count>
      <attachid>45091</attachid>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2009-12-17 10:49:58 -0800</bug_when>
    <thetext>Created attachment 45091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172873</commentid>
    <comment_count>3</comment_count>
      <attachid>45092</attachid>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2009-12-17 10:51:55 -0800</bug_when>
    <thetext>Created attachment 45092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172874</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 10:51:59 -0800</bug_when>
    <thetext>Attachment 45091 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/svg/SVGAllInOne.cpp:152:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172875</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 10:52:17 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45092 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172880</commentid>
    <comment_count>6</comment_count>
      <attachid>45092</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-17 11:04:20 -0800</bug_when>
    <thetext>Comment on attachment 45092
Patch

Do we have a build-bot which uses this (or that will), otherwise this will certainly break again.

This is kinda an ugly fix, but that&apos;s because any of the AllInOne filese are kinda hacks.  What is a LTCG build?  Why should we be prefixing the SVGNames which conflict with HTMLNames instead of the reverse?

It seems that at least some of these changes need comments.  Like the naming of mapSvgAttributeToCSSProperty should have a comment.  maybe we should just share that code using StyledElement.h/StyledElement.cpp instead of renaming our copy?  Or does the copy actually do something different in the SVG case?

This looks fine, but would be nice to hear answers to above before landing.

Better to leave the &quot;Reviewed by&quot; line as the default &quot;Reviewed by NOBODY(OOPS!)&quot; because our scripts like svn-apply, the commit-queue and normal bugzilla-tool land-diff/land-patches know how to fix that up with the proper reviewer from the bug anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172881</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-17 11:05:51 -0800</bug_when>
    <thetext>The chromium side of this was:
http://codereview.chromium.org/500099
and:
http://code.google.com/p/chromium/issues/detail?id=30494</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172883</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-17 11:06:47 -0800</bug_when>
    <thetext>It&apos;s possible that Apple&apos;s windows builders will want to use a similar optimization.  CCing the Apple windows build folks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172892</commentid>
    <comment_count>9</comment_count>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2009-12-17 11:20:04 -0800</bug_when>
    <thetext>LTCG means link time code generation.

SVGNames are the only one conflicting. I use the SVG ones because it is SVG compile units.

I&apos;ll look at removing mapSvgAttributeToCSSProperty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172893</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-17 11:27:06 -0800</bug_when>
    <thetext>Thank you very much.  Certainly not required that we remove mapSvgAttributeToCSSProperty, but if it&apos;s obvious to share code there, we might as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172918</commentid>
    <comment_count>11</comment_count>
      <attachid>45102</attachid>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2009-12-17 12:49:58 -0800</bug_when>
    <thetext>Created attachment 45102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172921</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 12:51:24 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45102 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172922</commentid>
    <comment_count>13</comment_count>
      <attachid>45103</attachid>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2009-12-17 12:52:07 -0800</bug_when>
    <thetext>Created attachment 45103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172926</commentid>
    <comment_count>14</comment_count>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2009-12-17 12:53:33 -0800</bug_when>
    <thetext>- Removed the duplicate function.
- Running try jobs (experimental):
http://build.chromium.org/buildbot/webkit-try/builders/Try%20Apple%20Leopard%20Intel%20Debug/builds/15
http://build.chromium.org/buildbot/webkit-try/builders/Try%20Apple%20Windows%20Debug/builds/14</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172928</commentid>
    <comment_count>15</comment_count>
      <attachid>45103</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-17 12:54:44 -0800</bug_when>
    <thetext>Comment on attachment 45103
Patch

Yay!  Thank you for the update ChangeLog.

I think I would have just made it a protected static member of SVGStyledElement, the callsite in SVGFontFaceElement would not have had to change.

But also think this is totally fine as a free function.

r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172938</commentid>
    <comment_count>16</comment_count>
      <attachid>45103</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-17 13:11:31 -0800</bug_when>
    <thetext>Comment on attachment 45103
Patch

Ah.  I keep forgetting you&apos;re not a committer.  cq+ too! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172943</commentid>
    <comment_count>17</comment_count>
      <attachid>45103</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-17 13:52:26 -0800</bug_when>
    <thetext>Comment on attachment 45103
Patch

Clearing flags on attachment: 45103

Committed r52288: &lt;http://trac.webkit.org/changeset/52288&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172944</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-17 13:52:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45090</attachid>
            <date>2009-12-17 10:45:47 -0800</date>
            <delta_ts>2009-12-17 10:49:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>20091217104546.patch</filename>
            <type>text/plain</type>
            <size>19978</size>
            <attacher name="Marc-Antoine Ruel">maruel</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDktMTItMTcgIE1hcmMtQW50b2luZSBSdWVsICA8bWFydWVsQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNpZWRlbC4KKworICAgICAg
ICBGaXggbGluayBmYWlsdXJlIG9uIExUQ0cgYnVpbGRzIG9uIFdpbmRvd3MgZm9yIGNocm9taXVt
IHBvcnQuCisKKyAgICAgICAgUmVlbmFibGUgU1ZHQWxsSW5PbmUuY3BwLiBUaGlzIHJlcXVpcmVk
IHNvbWUgZml4dXBzLgorCisgICAgICAgIE5hbWVseSwgdGhlcmUgd2FzIGNvbmZsaWN0cyBpbiBj
b25zdGFudHMgYmV0d2VlbiBIVE1MTmFtZXMgYW5kCisgICAgICAgIFNWR05hbWVzLCBhbmQgY29u
ZmxpY3RzIGJldHdlZW4gc3RhdGljIGZ1bmN0aW9ucyBuYW1lcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMgYXMgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGNoYW5nZWQuCisKKyAgICAgICAgKiBXZWJD
b3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Rm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9udEZhY2UpOgorICAgICAgICAqIHN2Zy9TVkdHbHlw
aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhFbGVtZW50OjppbnZhbGlk
YXRlR2x5cGhDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaEVsZW1lbnQ6OmJ1aWxk
R2x5cGhJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHSEtlcm5FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0hLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHSEtlcm5FbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KToK
KyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1N0eWxlRWxlbWVudDo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6
OnNldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnNldE1lZGlhKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5
bGVFbGVtZW50OjpzZXRUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6
OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjptYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZEVsZW1lbnQ6OmNzc1Byb3BlcnR5SWRGb3JTVkdBdHRy
aWJ1dGVOYW1lKToKKwogMjAwOS0xMi0xNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtNjQ3LDggKzY0NywxMiBAQAogICAg
ICAgICAjIG9mIHRoZWlyIGVuY2xvc2luZyBkaXJlY3RvcmllcyBhbmQgdGFncyBhdCB0aGUgZW5k
cyBvZiB0aGVpcgogICAgICAgICAjIGZpbGVuYW1lcy4KICAgICAgICAgWydleGNsdWRlJywgJyhh
bmRyb2lkfGNhaXJvfGNmfGNnfGN1cmx8Z3RrfGhhaWt1fGxpbnV4fG1hY3xvcGVudHlwZXxwb3Np
eHxxdHxzb3VwfHN5bWJpYW58d2lufHd4KS8nXSwKLSAgICAgICAgWydleGNsdWRlJywgJyg/PCFD
aHJvbWl1bSkoU1ZHQWxsSW5PbmV8QW5kcm9pZHxDYWlyb3xDRnxDR3xDdXJsfEd0a3xMaW51eHxN
YWN8T3BlblR5cGV8UE9TSVh8UG9zaXh8UXR8U2FmYXJpfFNvdXB8U3ltYmlhbnxXaW58V3gpXFwu
KGNwcHxtbT8pJCddLAorICAgICAgICBbJ2V4Y2x1ZGUnLCAnKD88IUNocm9taXVtKShBbmRyb2lk
fENhaXJvfENGfENHfEN1cmx8R3RrfExpbnV4fE1hY3xPcGVuVHlwZXxQT1NJWHxQb3NpeHxRdHxT
YWZhcml8U291cHxTeW1iaWFufFdpbnxXeClcXC4oY3BwfG1tPykkJ10sCiAgICAgICAgIFsnaW5j
bHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVNhbml0aXplclxcLmNw
cCQnXSwKKyAgICAgICAgIyBFeGNsdWRlIGV2ZXJ5dGhpbmcgaW4gc3ZnLyBkaXJlY3RseSBidXQg
bm90IGluIHN1YmRpcmVjdG9yaWVzLgorICAgICAgICAjIEV2ZXJ5dGhpbmcgaW4gc3ZnLyouY3Bw
IGlzIGluY2x1ZGVkIGluIHN2Zy9TVkdBbGxJbk9uZS5jcHAuCisgICAgICAgIFsnZXhjbHVkZScs
ICdzdmcvW14vXStcXC5jcHAkJ10sCisgICAgICAgIFsnaW5jbHVkZScsICdzdmcvU1ZHQWxsSW5P
bmVcXC5jcHAkJ10sCiAKICAgICAgICAgIyBKU0Mtb25seS4KICAgICAgICAgWydleGNsdWRlJywg
J2luc3BlY3Rvci9KYXZhU2NyaXB0W14vXSpcXC5jcHAkJ10sCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3Bw
CShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDExIEBACiAjaW5jbHVkZSAiU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcCIKICNpbmNsdWRlICJTVkdBbmdsZS5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAiCisjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRQb2ludHMuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUGF0aERh
dGEuY3BwIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUG9pbnRzLmNwcCIKICNpbmNsdWRlICJTVkdB
bmltYXRpb25FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdDaXJjbGVFbGVtZW50LmNwcCIKICNp
bmNsdWRlICJTVkdDbGlwUGF0aEVsZW1lbnQuY3BwIgpAQCAtODAsMjUgKzgwLDI5IEBACiAjaW5j
bHVkZSAiU1ZHRm9udC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9udERhdGEuY3BwIgogI2luY2x1ZGUg
IlNWR0ZvbnRFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuY3BwIgog
I2luY2x1ZGUgIlNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VTcmNFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdHRWxlbWVudC5jcHAiCisjaW5j
bHVkZSAiU1ZHR2x5cGhFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdHcmFkaWVudEVsZW1lbnQu
Y3BwIgorI2luY2x1ZGUgIlNWR0hLZXJuRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHSW1hZ2VF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdJbWFnZUxvYWRlci5jcHAiCiAjaW5jbHVkZSAiU1ZH
TGFuZ1NwYWNlLmNwcCIKICNpbmNsdWRlICJTVkdMZW5ndGguY3BwIgogI2luY2x1ZGUgIlNWR0xl
bmd0aExpc3QuY3BwIgotI2luY2x1ZGUgIlNWR0xpbmVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJT
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIlNWR0xpbmVFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTVkdMb2NhdGFibGUuY3BwIgotI2luY2x1ZGUgIlNWR01QYXRoRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiU1ZHTWFya2VyRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHTWFz
a0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR01ldGFkYXRhRWxlbWVudC5jcHAiCiAjaW5jbHVk
ZSAiU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHTVBhdGhFbGVtZW50
LmNwcCIKICNpbmNsdWRlICJTVkdOdW1iZXJMaXN0LmNwcCIKICNpbmNsdWRlICJTVkdQYWludC5j
cHAiCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcCIKQEAgLTEyMiwxOCArMTI2LDE4
IEBACiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5jcHAiCiAjaW5jbHVkZSAiU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdSZWN0RWxlbWVudC5jcHAi
Ci0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiU1ZHU2V0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHU3RvcEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3QuY3BwIgogI2luY2x1ZGUgIlNWR1N0
eWxhYmxlLmNwcCIKKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJT
VkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHU3R5bGVFbGVtZW50LmNwcCIKKyNpbmNs
dWRlICJTVkdTVkdFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdTd2l0Y2hFbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJTVkdTeW1ib2xFbGVtZW50LmNwcCIKLSNpbmNsdWRlICJTVkdUUmVmRWxlbWVu
dC5jcHAiCi0jaW5jbHVkZSAiU1ZHVFNwYW5FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdUZXN0
cy5jcHAiCiAjaW5jbHVkZSAiU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJT
VkdUZXh0RWxlbWVudC5jcHAiCkBAIC0xNDEsOSArMTQ1LDExIEBACiAjaW5jbHVkZSAiU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHVGl0bGVFbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uY3BwIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGUu
Y3BwIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybURpc3RhbmNlLmNwcCIKICNpbmNsdWRlICJTVkdU
cmFuc2Zvcm1MaXN0LmNwcCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1hYmxlLmNwcCIKKyNpbmNs
dWRlICJTVkdUUmVmRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHVFNwYW5FbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2UuY3BwIgogI2luY2x1ZGUgIlNWR1VzZUVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIlNWR1ZpZXdFbGVtZW50LmNwcCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VFbGVtZW50LmNwcAkocmV2aXNpb24gNTIyNjApCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsNyArMjgyLDcgQEAgdm9pZCBTVkdG
b250RmFjZUVsZW1lbnQ6OnJlYnVpbGRGb250RmFjZQogICAgICAgICAgICAgc3JjRWxlbWVudCA9
IHN0YXRpY19jYXN0PFNWR0ZvbnRGYWNlU3JjRWxlbWVudCo+KGNoaWxkKTsKICAgICB9CiAKLSAg
ICBib29sIGRlc2NyaWJlc1BhcmVudEZvbnQgPSBwYXJlbnROb2RlKCktPmhhc1RhZ05hbWUoZm9u
dFRhZyk7CisgICAgYm9vbCBkZXNjcmliZXNQYXJlbnRGb250ID0gcGFyZW50Tm9kZSgpLT5oYXNU
YWdOYW1lKFNWR05hbWVzOjpmb250VGFnKTsKICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0
OwogCiAgICAgaWYgKGRlc2NyaWJlc1BhcmVudEZvbnQpIHsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R0dseXBoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVt
ZW50LmNwcAkocmV2aXNpb24gNTIyNjApCisrKyBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIFNWR0dseXBoRWxlbWVudDo6flNW
R0dseXBoRWxlbWVudCgpCiB2b2lkIFNWR0dseXBoRWxlbWVudDo6aW52YWxpZGF0ZUdseXBoQ2Fj
aGUoKQogewogICAgIE5vZGUqIGZvbnROb2RlID0gcGFyZW50Tm9kZSgpOwotICAgIGlmIChmb250
Tm9kZSAmJiBmb250Tm9kZS0+aGFzVGFnTmFtZShmb250VGFnKSkgeworICAgIGlmIChmb250Tm9k
ZSAmJiBmb250Tm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9udFRhZykpIHsKICAgICAgICAg
aWYgKFNWR0ZvbnRFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRm9udEVsZW1lbnQq
Pihmb250Tm9kZSkpCiAgICAgICAgICAgICBlbGVtZW50LT5pbnZhbGlkYXRlR2x5cGhDYWNoZSgp
OwogICAgIH0KQEAgLTE2Nyw3ICsxNjcsNyBAQCBTVkdHbHlwaElkZW50aWZpZXIgU1ZHR2x5cGhF
bGVtZW50OjpidWlsCiAgICAgaWRlbnRpZmllci5vcmllbnRhdGlvbiA9IHBhcnNlT3JpZW50YXRp
b24oZ2V0QXR0cmlidXRlKG9yaWVudGF0aW9uQXR0cikpOwogICAgIGlkZW50aWZpZXIuYXJhYmlj
Rm9ybSA9IHBhcnNlQXJhYmljRm9ybShnZXRBdHRyaWJ1dGUoYXJhYmljX2Zvcm1BdHRyKSk7CiAK
LSAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBnZXRBdHRyaWJ1dGUobGFuZ0F0dHIpOworICAgIFN0cmlu
ZyBsYW5ndWFnZSA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6bGFuZ0F0dHIpOwogICAgIGlmICgh
bGFuZ3VhZ2UuaXNFbXB0eSgpKQogICAgICAgICBpZGVudGlmaWVyLmxhbmd1YWdlcyA9IHBhcnNl
RGVsaW1pdGVkU3RyaW5nKGxhbmd1YWdlLCAnLCcpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdI
S2VybkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBTVkdIS2VybkVsZW1lbnQ6On5TVkdI
S2VybkVsZW1lbnQoKQogdm9pZCBTVkdIS2VybkVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50
KCkKIHsKICAgICBOb2RlKiBmb250Tm9kZSA9IHBhcmVudE5vZGUoKTsKLSAgICBpZiAoZm9udE5v
ZGUgJiYgZm9udE5vZGUtPmhhc1RhZ05hbWUoZm9udFRhZykpIHsKKyAgICBpZiAoZm9udE5vZGUg
JiYgZm9udE5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvbnRUYWcpKSB7CiAgICAgICAgIGlm
IChTVkdGb250RWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0ZvbnRFbGVtZW50Kj4o
Zm9udE5vZGUpKQogICAgICAgICAgICAgZWxlbWVudC0+aW52YWxpZGF0ZUdseXBoQ2FjaGUoKTsK
ICAgICB9CkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgU1ZHSEtlcm5FbGVtZW50OjppbnNlcnRlZElu
dG9Eb2N1bWUKIHZvaWQgU1ZHSEtlcm5FbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCkKIHsK
ICAgICBOb2RlKiBmb250Tm9kZSA9IHBhcmVudE5vZGUoKTsKLSAgICBpZiAoZm9udE5vZGUgJiYg
Zm9udE5vZGUtPmhhc1RhZ05hbWUoZm9udFRhZykpIHsKKyAgICBpZiAoZm9udE5vZGUgJiYgZm9u
dE5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvbnRUYWcpKSB7CiAgICAgICAgIGlmIChTVkdG
b250RWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0ZvbnRFbGVtZW50Kj4oZm9udE5v
ZGUpKQogICAgICAgICAgICAgZWxlbWVudC0+aW52YWxpZGF0ZUdseXBoQ2FjaGUoKTsKICAgICB9
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNDAgKzQ2LDQw
IEBAIFNWR1N0eWxlRWxlbWVudDo6U1ZHU3R5bGVFbGVtZW50KGNvbnN0IFEKIGNvbnN0IEF0b21p
Y1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvY3NzIikp
OwotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGdldEF0dHJpYnV0ZSh0eXBlQXR0cik7Cisg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0gZ2V0QXR0cmlidXRlKFNWR05hbWVzOjp0eXBlQXR0
cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwogfQogCiB2b2lk
IFNWR1N0eWxlRWxlbWVudDo6c2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewotICAgIHNldEF0dHJpYnV0ZSh0eXBlQXR0ciwgdHlwZSwgZWMpOwor
ICAgIHNldEF0dHJpYnV0ZShTVkdOYW1lczo6dHlwZUF0dHIsIHR5cGUsIGVjKTsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBTVkdTdHlsZUVsZW1lbnQ6Om1lZGlhKCkgY29uc3QKIHsKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoImFs
bCIpKTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUobWVkaWFBdHRy
KTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6Om1l
ZGlhQXR0cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwogfQog
CiB2b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0TWVkaWEoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRp
YSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgc2V0QXR0cmlidXRlKG1lZGlhQXR0ciwgbWVk
aWEsIGVjKTsKKyAgICBzZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6Om1lZGlhQXR0ciwgbWVkaWEsIGVj
KTsKIH0KIAogU3RyaW5nIFNWR1N0eWxlRWxlbWVudDo6dGl0bGUoKSBjb25zdAogewotICAgIHJl
dHVybiBnZXRBdHRyaWJ1dGUodGl0bGVBdHRyKTsKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlKFNW
R05hbWVzOjp0aXRsZUF0dHIpOwogfQogCiB2b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0VGl0bGUo
Y29uc3QgQXRvbWljU3RyaW5nJiB0aXRsZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgc2V0
QXR0cmlidXRlKHRpdGxlQXR0ciwgdGl0bGUsIGVjKTsKKyAgICBzZXRBdHRyaWJ1dGUoU1ZHTmFt
ZXM6OnRpdGxlQXR0ciwgdGl0bGUsIGVjKTsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKIHsKLSAgICBpZiAoYXR0
ci0+bmFtZSgpID09IHRpdGxlQXR0ciAmJiBtX3NoZWV0KQorICAgIGlmIChhdHRyLT5uYW1lKCkg
PT0gU1ZHTmFtZXM6OnRpdGxlQXR0ciAmJiBtX3NoZWV0KQogICAgICAgICBtX3NoZWV0LT5zZXRU
aXRsZShhdHRyLT52YWx1ZSgpKTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKFNWR0xhbmdTcGFj
ZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdHls
ZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50
LmNwcAkocmV2aXNpb24gNTIyNjApCisrKyBXZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEsNyBAQCBib29sIFNWR1N0eWxlZEVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgdm9pZCBt
YXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIGludD4q
IHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQorc3Rh
dGljIHZvaWQgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShIYXNoTWFwPEF0b21pY1N0cmlu
Z0ltcGwqLCBpbnQ+KiBwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKIHsKICAgICBpbnQgcHJvcGVydHlJZCA9IGNzc1Byb3BlcnR5SUQoYXR0ck5hbWUu
bG9jYWxOYW1lKCkpOwogICAgIEFTU0VSVChwcm9wZXJ0eUlkID4gMCk7CkBAIC04Nyw2NCArODcs
NjQgQEAgaW50IFNWR1N0eWxlZEVsZW1lbnQ6OmNzc1Byb3BlcnR5SWRGb3JTVgogICAgIGlmICgh
cHJvcGVydHlOYW1lVG9JZE1hcCkgewogICAgICAgICBwcm9wZXJ0eU5hbWVUb0lkTWFwID0gbmV3
IEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIGludD47CiAgICAgICAgIC8vIFRoaXMgaXMgYSBs
aXN0IG9mIGFsbCBiYXNlIENTUyBhbmQgU1ZHIENTUyBwcm9wZXJ0aWVzIHdoaWNoIGFyZSBleHBv
c2VkIGFzIFNWRyBYTUwgYXR0cmlidXRlcwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGFsaWdubWVudF9iYXNlbGluZUF0dHIpOwotICAgICAg
ICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGJhc2VsaW5l
X3NoaWZ0QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlO
YW1lVG9JZE1hcCwgY2xpcEF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNsaXBfcGF0aEF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1
dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNsaXBfcnVsZUF0dHIpOwotICAg
ICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9y
QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgY29sb3JfaW50ZXJwb2xhdGlvbkF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX2ludGVycG9sYXRpb25fZmlsdGVy
c0F0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRv
SWRNYXAsIGNvbG9yX3Byb2ZpbGVBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvcl9yZW5kZXJpbmdBdHRyKTsgCi0gICAgICAg
IG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY3Vyc29yQXR0
cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgZGlyZWN0aW9uQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJv
cGVydHlOYW1lVG9JZE1hcCwgZGlzcGxheUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGRvbWluYW50X2Jhc2VsaW5lQXR0cik7Ci0g
ICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZW5h
YmxlX2JhY2tncm91bmRBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShw
cm9wZXJ0eU5hbWVUb0lkTWFwLCBmaWxsQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NT
UHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZmlsbF9vcGFjaXR5QXR0cik7Ci0gICAgICAg
IG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZmlsbF9ydWxl
QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgZmlsdGVyQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJv
cGVydHlOYW1lVG9JZE1hcCwgZmxvb2RfY29sb3JBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRl
VG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmbG9vZF9vcGFjaXR5QXR0cik7Ci0g
ICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9u
dF9mYW1pbHlBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCBmb250X3NpemVBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmb250X3N0cmV0Y2hBdHRyKTsKLSAgICAgICAg
bWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmb250X3N0eWxl
QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgZm9udF92YXJpYW50QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9udF93ZWlnaHRBdHRyKTsKLSAgICAgICAgbWFwQXR0
cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBnbHlwaF9vcmllbnRhdGlv
bl9ob3Jpem9udGFsQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJv
cGVydHlOYW1lVG9JZE1hcCwgZ2x5cGhfb3JpZW50YXRpb25fdmVydGljYWxBdHRyKTsKLSAgICAg
ICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBpbWFnZV9y
ZW5kZXJpbmdBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCBrZXJuaW5nQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgbGV0dGVyX3NwYWNpbmdBdHRyKTsKLSAgICAgICAg
bWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBsaWdodGluZ19j
b2xvckF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIG1hcmtlcl9lbmRBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBtYXJrZXJfbWlkQXR0cik7Ci0gICAgICAgIG1hcEF0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgbWFya2VyX3N0YXJ0QXR0
cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgbWFza0F0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5
TmFtZVRvSWRNYXAsIG9wYWNpdHlBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBvdmVyZmxvd0F0dHIpOwotICAgICAgICBtYXBBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHBvaW50ZXJfZXZlbnRzQXR0
cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgc2hhcGVfcmVuZGVyaW5nQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3RvcF9jb2xvckF0dHIpOwotICAgICAgICBtYXBBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0b3Bfb3BhY2l0eUF0dHIp
OwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IHN0cm9rZUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5
TmFtZVRvSWRNYXAsIHN0cm9rZV9kYXNoYXJyYXlBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRl
VG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfZGFzaG9mZnNldEF0dHIp
OwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IHN0cm9rZV9saW5lY2FwQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHko
cHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX2xpbmVqb2luQXR0cik7Ci0gICAgICAgIG1hcEF0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX21pdGVybGlt
aXRBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBzdHJva2Vfb3BhY2l0eUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1By
b3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0cm9rZV93aWR0aEF0dHIpOwotICAgICAgICBt
YXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHRleHRfYW5jaG9y
QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgdGV4dF9kZWNvcmF0aW9uQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdGV4dF9yZW5kZXJpbmdBdHRyKTsKLSAgICAgICAg
bWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB1bmljb2RlX2Jp
ZGlBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCB2aXNpYmlsaXR5QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgd29yZF9zcGFjaW5nQXR0cik7Ci0gICAgICAgIG1hcEF0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgd3JpdGluZ19tb2RlQXR0
cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgYWxpZ25tZW50X2Jhc2VsaW5lQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRv
Q1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgYmFzZWxpbmVfc2hpZnRBdHRyKTsKKyAg
ICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBj
bGlwQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlO
YW1lVG9JZE1hcCwgY2xpcF9wYXRoQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NT
UHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY2xpcF9ydWxlQXR0cik7CisgICAgICAgIG1h
cFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgU1ZHTmFtZXM6
OmNvbG9yQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVy
dHlOYW1lVG9JZE1hcCwgY29sb3JfaW50ZXJwb2xhdGlvbkF0dHIpOworICAgICAgICBtYXBTdmdB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX2ludGVycG9s
YXRpb25fZmlsdGVyc0F0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX3Byb2ZpbGVBdHRyKTsKKyAgICAgICAgbWFwU3Zn
QXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvcl9yZW5kZXJp
bmdBdHRyKTsgCisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlO
YW1lVG9JZE1hcCwgY3Vyc29yQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgU1ZHTmFtZXM6OmRpcmVjdGlvbkF0dHIpOworICAg
ICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGRp
c3BsYXlBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCBkb21pbmFudF9iYXNlbGluZUF0dHIpOworICAgICAgICBtYXBTdmdBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGVuYWJsZV9iYWNrZ3JvdW5k
QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1l
VG9JZE1hcCwgZmlsbEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZpbGxfb3BhY2l0eUF0dHIpOworICAgICAgICBtYXBTdmdB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZpbGxfcnVsZUF0dHIp
OworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIGZpbHRlckF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHBy
b3BlcnR5TmFtZVRvSWRNYXAsIGZsb29kX2NvbG9yQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJp
YnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZmxvb2Rfb3BhY2l0eUF0dHIp
OworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIGZvbnRfZmFtaWx5QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9udF9zaXplQXR0cik7CisgICAgICAgIG1hcFN2Z0F0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9udF9zdHJldGNoQXR0
cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgZm9udF9zdHlsZUF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfdmFyaWFudEF0dHIpOworICAgICAgICBtYXBT
dmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfd2VpZ2h0
QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1l
VG9JZE1hcCwgZ2x5cGhfb3JpZW50YXRpb25faG9yaXpvbnRhbEF0dHIpOworICAgICAgICBtYXBT
dmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGdseXBoX29yaWVu
dGF0aW9uX3ZlcnRpY2FsQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgaW1hZ2VfcmVuZGVyaW5nQXR0cik7CisgICAgICAgIG1h
cFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwga2VybmluZ0F0
dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRv
SWRNYXAsIGxldHRlcl9zcGFjaW5nQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NT
UHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgbGlnaHRpbmdfY29sb3JBdHRyKTsKKyAgICAg
ICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBtYXJr
ZXJfZW5kQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVy
dHlOYW1lVG9JZE1hcCwgbWFya2VyX21pZEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVU
b0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIG1hcmtlcl9zdGFydEF0dHIpOworICAg
ICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIG1h
c2tBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCBvcGFjaXR5QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgb3ZlcmZsb3dBdHRyKTsKKyAgICAgICAgbWFwU3Zn
QXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBwb2ludGVyX2V2ZW50
c0F0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIHNoYXBlX3JlbmRlcmluZ0F0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVU
b0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0b3BfY29sb3JBdHRyKTsKKyAgICAg
ICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdG9w
X29wYWNpdHlBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9w
ZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9D
U1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfZGFzaGFycmF5QXR0cik7Cisg
ICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwg
c3Ryb2tlX2Rhc2hvZmZzZXRBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfbGluZWNhcEF0dHIpOworICAgICAgICBt
YXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0cm9rZV9s
aW5lam9pbkF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3Bl
cnR5TmFtZVRvSWRNYXAsIHN0cm9rZV9taXRlcmxpbWl0QXR0cik7CisgICAgICAgIG1hcFN2Z0F0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX29wYWNpdHlB
dHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBzdHJva2Vfd2lkdGhBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB0ZXh0X2FuY2hvckF0dHIpOworICAgICAgICBt
YXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHRleHRfZGVj
b3JhdGlvbkF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3Bl
cnR5TmFtZVRvSWRNYXAsIHRleHRfcmVuZGVyaW5nQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJp
YnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdW5pY29kZV9iaWRpQXR0cik7
CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgdmlzaWJpbGl0eUF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIHdvcmRfc3BhY2luZ0F0dHIpOworICAgICAgICBtYXBTdmdB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHdyaXRpbmdfbW9kZUF0
dHIpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gcHJvcGVydHlOYW1lVG9JZE1hcC0+Z2V0KGF0
dHJOYW1lLmxvY2FsTmFtZSgpLmltcGwoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45091</attachid>
            <date>2009-12-17 10:49:58 -0800</date>
            <delta_ts>2009-12-17 10:51:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32674-20091217104956.patch</filename>
            <type>text/plain</type>
            <size>19481</size>
            <attacher name="Marc-Antoine Ruel">maruel</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDktMTItMTcgIE1hcmMtQW50b2luZSBSdWVsICA8bWFydWVsQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNpZWRlbC4KKworICAgICAg
ICBGaXggbGluayBmYWlsdXJlIG9uIExUQ0cgYnVpbGRzIG9uIFdpbmRvd3MgZm9yIGNocm9taXVt
IHBvcnQuCisKKyAgICAgICAgUmVlbmFibGUgU1ZHQWxsSW5PbmUuY3BwLiBUaGlzIHJlcXVpcmVk
IHNvbWUgZml4dXBzLgorCisgICAgICAgIE5hbWVseSwgdGhlcmUgd2FzIGNvbmZsaWN0cyBpbiBj
b25zdGFudHMgYmV0d2VlbiBIVE1MTmFtZXMgYW5kCisgICAgICAgIFNWR05hbWVzLCBhbmQgY29u
ZmxpY3RzIGJldHdlZW4gc3RhdGljIGZ1bmN0aW9ucyBuYW1lcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMgYXMgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGNoYW5nZWQuCisKKyAgICAgICAgKiBXZWJD
b3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Rm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9udEZhY2UpOgorICAgICAgICAqIHN2Zy9TVkdHbHlw
aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhFbGVtZW50OjppbnZhbGlk
YXRlR2x5cGhDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaEVsZW1lbnQ6OmJ1aWxk
R2x5cGhJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHSEtlcm5FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0hLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHSEtlcm5FbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KToK
KyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1N0eWxlRWxlbWVudDo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6
OnNldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnNldE1lZGlhKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5
bGVFbGVtZW50OjpzZXRUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6
OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjptYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZEVsZW1lbnQ6OmNzc1Byb3BlcnR5SWRGb3JTVkdBdHRy
aWJ1dGVOYW1lKToKKwogMjAwOS0xMi0xNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtNjQ3LDggKzY0NywxMiBAQAogICAg
ICAgICAjIG9mIHRoZWlyIGVuY2xvc2luZyBkaXJlY3RvcmllcyBhbmQgdGFncyBhdCB0aGUgZW5k
cyBvZiB0aGVpcgogICAgICAgICAjIGZpbGVuYW1lcy4KICAgICAgICAgWydleGNsdWRlJywgJyhh
bmRyb2lkfGNhaXJvfGNmfGNnfGN1cmx8Z3RrfGhhaWt1fGxpbnV4fG1hY3xvcGVudHlwZXxwb3Np
eHxxdHxzb3VwfHN5bWJpYW58d2lufHd4KS8nXSwKLSAgICAgICAgWydleGNsdWRlJywgJyg/PCFD
aHJvbWl1bSkoU1ZHQWxsSW5PbmV8QW5kcm9pZHxDYWlyb3xDRnxDR3xDdXJsfEd0a3xMaW51eHxN
YWN8T3BlblR5cGV8UE9TSVh8UG9zaXh8UXR8U2FmYXJpfFNvdXB8U3ltYmlhbnxXaW58V3gpXFwu
KGNwcHxtbT8pJCddLAorICAgICAgICBbJ2V4Y2x1ZGUnLCAnKD88IUNocm9taXVtKShBbmRyb2lk
fENhaXJvfENGfENHfEN1cmx8R3RrfExpbnV4fE1hY3xPcGVuVHlwZXxQT1NJWHxQb3NpeHxRdHxT
YWZhcml8U291cHxTeW1iaWFufFdpbnxXeClcXC4oY3BwfG1tPykkJ10sCiAgICAgICAgIFsnaW5j
bHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVNhbml0aXplclxcLmNw
cCQnXSwKKyAgICAgICAgIyBFeGNsdWRlIGV2ZXJ5dGhpbmcgaW4gc3ZnLyBkaXJlY3RseSBidXQg
bm90IGluIHN1YmRpcmVjdG9yaWVzLgorICAgICAgICAjIEV2ZXJ5dGhpbmcgaW4gc3ZnLyouY3Bw
IGlzIGluY2x1ZGVkIGluIHN2Zy9TVkdBbGxJbk9uZS5jcHAuCisgICAgICAgIFsnZXhjbHVkZScs
ICdzdmcvW14vXStcXC5jcHAkJ10sCisgICAgICAgIFsnaW5jbHVkZScsICdzdmcvU1ZHQWxsSW5P
bmVcXC5jcHAkJ10sCiAKICAgICAgICAgIyBKU0Mtb25seS4KICAgICAgICAgWydleGNsdWRlJywg
J2luc3BlY3Rvci9KYXZhU2NyaXB0W14vXSpcXC5jcHAkJ10sCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3Bw
CShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDExIEBACiAjaW5jbHVkZSAiU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcCIKICNpbmNsdWRlICJTVkdBbmdsZS5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAiCisjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRQb2ludHMuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUGF0aERh
dGEuY3BwIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUG9pbnRzLmNwcCIKICNpbmNsdWRlICJTVkdB
bmltYXRpb25FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdDaXJjbGVFbGVtZW50LmNwcCIKICNp
bmNsdWRlICJTVkdDbGlwUGF0aEVsZW1lbnQuY3BwIgpAQCAtODAsMTMgKzgwLDE2IEBACiAjaW5j
bHVkZSAiU1ZHRm9udC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9udERhdGEuY3BwIgogI2luY2x1ZGUg
IlNWR0ZvbnRFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuY3BwIgog
I2luY2x1ZGUgIlNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VTcmNFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdHRWxlbWVudC5jcHAiCisjaW5j
bHVkZSAiU1ZHR2x5cGhFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdHcmFkaWVudEVsZW1lbnQu
Y3BwIgorI2luY2x1ZGUgIlNWR0hLZXJuRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHSW1hZ2VF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdJbWFnZUxvYWRlci5jcHAiCiAjaW5jbHVkZSAiU1ZH
TGFuZ1NwYWNlLmNwcCIKQEAgLTk3LDYgKzEwMCw3IEBACiAjaW5jbHVkZSAiU1ZHTG9jYXRhYmxl
LmNwcCIKICNpbmNsdWRlICJTVkdNUGF0aEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR01hcmtl
ckVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIlNWR01hc2tFbGVtZW50LmNwcCIKICNpbmNsdWRlICJT
VkdNZXRhZGF0YUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR01pc3NpbmdHbHlwaEVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIlNWR051bWJlckxpc3QuY3BwIgpAQCAtMTI4LDEyICsxMzIsMTMgQEAK
ICNpbmNsdWRlICJTVkdTdG9wRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdC5j
cHAiCiAjaW5jbHVkZSAiU1ZHU3R5bGFibGUuY3BwIgorI2luY2x1ZGUgIlNWR1N0eWxlRWxlbWVu
dC5jcHAiCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHU3R5
bGVkTG9jYXRhYmxlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1N3aXRjaEVsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IlNWR1N5bWJvbEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1RSZWZFbGVtZW50LmNwcCIKLSNp
bmNsdWRlICJTVkdUU3BhbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1Rlc3RzLmNwcCIKICNp
bmNsdWRlICJTVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1RleHRFbGVt
ZW50LmNwcCIKQEAgLTE0MSw5ICsxNDYsMTAgQEAKICNpbmNsdWRlICJTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdUaXRsZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IlNWR1RyYW5zZm9ybS5jcHAiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZS5jcHAiCiAjaW5j
bHVkZSAiU1ZHVHJhbnNmb3JtRGlzdGFuY2UuY3BwIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxp
c3QuY3BwIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGUuY3BwIgorI2luY2x1ZGUgIlNWR1RT
cGFuRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmNwcCIKICNpbmNsdWRl
ICJTVkdVc2VFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdWaWV3RWxlbWVudC5jcHAiCkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDcgKzI4
Miw3IEBAIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9udEZhY2UKICAgICAgICAg
ICAgIHNyY0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGb250RmFjZVNyY0VsZW1lbnQqPihjaGls
ZCk7CiAgICAgfQogCi0gICAgYm9vbCBkZXNjcmliZXNQYXJlbnRGb250ID0gcGFyZW50Tm9kZSgp
LT5oYXNUYWdOYW1lKGZvbnRUYWcpOworICAgIGJvb2wgZGVzY3JpYmVzUGFyZW50Rm9udCA9IHBh
cmVudE5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9udFRhZyk7CiAgICAgUmVmUHRyPENT
U1ZhbHVlTGlzdD4gbGlzdDsKIAogICAgIGlmIChkZXNjcmliZXNQYXJlbnRGb250KSB7CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR0dseXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9zdmcv
U1ZHR2x5cGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBTVkdH
bHlwaEVsZW1lbnQ6On5TVkdHbHlwaEVsZW1lbnQoKQogdm9pZCBTVkdHbHlwaEVsZW1lbnQ6Omlu
dmFsaWRhdGVHbHlwaENhY2hlKCkKIHsKICAgICBOb2RlKiBmb250Tm9kZSA9IHBhcmVudE5vZGUo
KTsKLSAgICBpZiAoZm9udE5vZGUgJiYgZm9udE5vZGUtPmhhc1RhZ05hbWUoZm9udFRhZykpIHsK
KyAgICBpZiAoZm9udE5vZGUgJiYgZm9udE5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvbnRU
YWcpKSB7CiAgICAgICAgIGlmIChTVkdGb250RWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0
PFNWR0ZvbnRFbGVtZW50Kj4oZm9udE5vZGUpKQogICAgICAgICAgICAgZWxlbWVudC0+aW52YWxp
ZGF0ZUdseXBoQ2FjaGUoKTsKICAgICB9CkBAIC0xNjcsNyArMTY3LDcgQEAgU1ZHR2x5cGhJZGVu
dGlmaWVyIFNWR0dseXBoRWxlbWVudDo6YnVpbAogICAgIGlkZW50aWZpZXIub3JpZW50YXRpb24g
PSBwYXJzZU9yaWVudGF0aW9uKGdldEF0dHJpYnV0ZShvcmllbnRhdGlvbkF0dHIpKTsKICAgICBp
ZGVudGlmaWVyLmFyYWJpY0Zvcm0gPSBwYXJzZUFyYWJpY0Zvcm0oZ2V0QXR0cmlidXRlKGFyYWJp
Y19mb3JtQXR0cikpOwogCi0gICAgU3RyaW5nIGxhbmd1YWdlID0gZ2V0QXR0cmlidXRlKGxhbmdB
dHRyKTsKKyAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmxhbmdB
dHRyKTsKICAgICBpZiAoIWxhbmd1YWdlLmlzRW1wdHkoKSkKICAgICAgICAgaWRlbnRpZmllci5s
YW5ndWFnZXMgPSBwYXJzZURlbGltaXRlZFN0cmluZyhsYW5ndWFnZSwgJywnKTsKIApJbmRleDog
V2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdIS2VybkVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvc3ZnL1NW
R0hLZXJuRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgU1ZHSEtl
cm5FbGVtZW50Ojp+U1ZHSEtlcm5FbGVtZW50KCkKIHZvaWQgU1ZHSEtlcm5FbGVtZW50OjppbnNl
cnRlZEludG9Eb2N1bWVudCgpCiB7CiAgICAgTm9kZSogZm9udE5vZGUgPSBwYXJlbnROb2RlKCk7
Ci0gICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKGZvbnRUYWcpKSB7Cisg
ICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb250VGFn
KSkgewogICAgICAgICBpZiAoU1ZHRm9udEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxT
VkdGb250RWxlbWVudCo+KGZvbnROb2RlKSkKICAgICAgICAgICAgIGVsZW1lbnQtPmludmFsaWRh
dGVHbHlwaENhY2hlKCk7CiAgICAgfQpAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFNWR0hLZXJuRWxl
bWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lCiB2b2lkIFNWR0hLZXJuRWxlbWVudDo6cmVtb3ZlZEZy
b21Eb2N1bWVudCgpCiB7CiAgICAgTm9kZSogZm9udE5vZGUgPSBwYXJlbnROb2RlKCk7Ci0gICAg
aWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKGZvbnRUYWcpKSB7CisgICAgaWYg
KGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb250VGFnKSkgewog
ICAgICAgICBpZiAoU1ZHRm9udEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGb250
RWxlbWVudCo+KGZvbnROb2RlKSkKICAgICAgICAgICAgIGVsZW1lbnQtPmludmFsaWRhdGVHbHlw
aENhY2hlKCk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA1
MjI2MCkKKysrIFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDQwICs0Niw0MCBAQCBTVkdTdHlsZUVsZW1lbnQ6OlNWR1N0eWxlRWxlbWVudChjb25z
dCBRCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0CiB7
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1
ZSwgKCJ0ZXh0L2NzcyIpKTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBnZXRBdHRyaWJ1
dGUodHlwZUF0dHIpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGdldEF0dHJpYnV0ZShT
VkdOYW1lczo6dHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVl
IDogbjsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBzZXRBdHRyaWJ1dGUodHlwZUF0
dHIsIHR5cGUsIGVjKTsKKyAgICBzZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnR5cGVBdHRyLCB0eXBl
LCBlYyk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50OjptZWRpYSgp
IGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRl
ZmF1bHRWYWx1ZSwgKCJhbGwiKSk7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0gZ2V0QXR0
cmlidXRlKG1lZGlhQXR0cik7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0gZ2V0QXR0cmli
dXRlKFNWR05hbWVzOjptZWRpYUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVs
dFZhbHVlIDogbjsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldE1lZGlhKGNvbnN0IEF0
b21pY1N0cmluZyYgbWVkaWEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHNldEF0dHJpYnV0
ZShtZWRpYUF0dHIsIG1lZGlhLCBlYyk7CisgICAgc2V0QXR0cmlidXRlKFNWR05hbWVzOjptZWRp
YUF0dHIsIG1lZGlhLCBlYyk7CiB9CiAKIFN0cmluZyBTVkdTdHlsZUVsZW1lbnQ6OnRpdGxlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHRpdGxlQXR0cik7CisgICAgcmV0dXJu
IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dGl0bGVBdHRyKTsKIH0KIAogdm9pZCBTVkdTdHlsZUVs
ZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0b21pY1N0cmluZyYgdGl0bGUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIHNldEF0dHJpYnV0ZSh0aXRsZUF0dHIsIHRpdGxlLCBlYyk7CisgICAgc2V0
QXR0cmlidXRlKFNWR05hbWVzOjp0aXRsZUF0dHIsIHRpdGxlLCBlYyk7CiB9CiAKIHZvaWQgU1ZH
U3R5bGVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIp
CiB7Ci0gICAgaWYgKGF0dHItPm5hbWUoKSA9PSB0aXRsZUF0dHIgJiYgbV9zaGVldCkKKyAgICBp
ZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp0aXRsZUF0dHIgJiYgbV9zaGVldCkKICAgICAg
ICAgbV9zaGVldC0+c2V0VGl0bGUoYXR0ci0+dmFsdWUoKSk7CiAgICAgZWxzZSB7CiAgICAgICAg
IGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQpJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHU3R5bGVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9zdmcvU1ZH
U3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDcgQEAgYm9vbCBT
VkdTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotc3RhdGljIHZvaWQgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShIYXNoTWFwPEF0b21pY1N0
cmluZ0ltcGwqLCBpbnQ+KiBwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKK3N0YXRpYyB2b2lkIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkoSGFz
aE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgaW50PiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaW50IHByb3BlcnR5SWQgPSBjc3NQcm9w
ZXJ0eUlEKGF0dHJOYW1lLmxvY2FsTmFtZSgpKTsKICAgICBBU1NFUlQocHJvcGVydHlJZCA+IDAp
OwpAQCAtODcsNjQgKzg3LDY0IEBAIGludCBTVkdTdHlsZWRFbGVtZW50Ojpjc3NQcm9wZXJ0eUlk
Rm9yU1YKICAgICBpZiAoIXByb3BlcnR5TmFtZVRvSWRNYXApIHsKICAgICAgICAgcHJvcGVydHlO
YW1lVG9JZE1hcCA9IG5ldyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBpbnQ+OwogICAgICAg
ICAvLyBUaGlzIGlzIGEgbGlzdCBvZiBhbGwgYmFzZSBDU1MgYW5kIFNWRyBDU1MgcHJvcGVydGll
cyB3aGljaCBhcmUgZXhwb3NlZCBhcyBTVkcgWE1MIGF0dHJpYnV0ZXMKLSAgICAgICAgbWFwQXR0
cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBhbGlnbm1lbnRfYmFzZWxp
bmVBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBiYXNlbGluZV9zaGlmdEF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1By
b3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNsaXBBdHRyKTsKLSAgICAgICAgbWFwQXR0cmli
dXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjbGlwX3BhdGhBdHRyKTsKLSAg
ICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjbGlw
X3J1bGVBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCBjb2xvckF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX2ludGVycG9sYXRpb25BdHRyKTsKLSAgICAgICAg
bWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvcl9pbnRl
cnBvbGF0aW9uX2ZpbHRlcnNBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvcl9wcm9maWxlQXR0cik7Ci0gICAgICAgIG1hcEF0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY29sb3JfcmVuZGVyaW5n
QXR0cik7IAotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRv
SWRNYXAsIGN1cnNvckF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHBy
b3BlcnR5TmFtZVRvSWRNYXAsIGRpcmVjdGlvbkF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVU
b0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGRpc3BsYXlBdHRyKTsKLSAgICAgICAg
bWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBkb21pbmFudF9i
YXNlbGluZUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5
TmFtZVRvSWRNYXAsIGVuYWJsZV9iYWNrZ3JvdW5kQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0
ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZmlsbEF0dHIpOwotICAgICAgICBt
YXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZpbGxfb3BhY2l0
eUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRv
SWRNYXAsIGZpbGxfcnVsZUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZpbHRlckF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVU
b0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZsb29kX2NvbG9yQXR0cik7Ci0gICAg
ICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZmxvb2Rf
b3BhY2l0eUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5
TmFtZVRvSWRNYXAsIGZvbnRfZmFtaWx5QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NT
UHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9udF9zaXplQXR0cik7Ci0gICAgICAgIG1h
cEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9udF9zdHJldGNo
QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgZm9udF9zdHlsZUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfdmFyaWFudEF0dHIpOwotICAgICAgICBtYXBBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfd2VpZ2h0QXR0cik7
Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwg
Z2x5cGhfb3JpZW50YXRpb25faG9yaXpvbnRhbEF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVU
b0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGdseXBoX29yaWVudGF0aW9uX3ZlcnRp
Y2FsQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1l
VG9JZE1hcCwgaW1hZ2VfcmVuZGVyaW5nQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NT
UHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwga2VybmluZ0F0dHIpOwotICAgICAgICBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGxldHRlcl9zcGFjaW5n
QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgbGlnaHRpbmdfY29sb3JBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBtYXJrZXJfZW5kQXR0cik7Ci0gICAgICAgIG1hcEF0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgbWFya2VyX21pZEF0dHIp
OwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IG1hcmtlcl9zdGFydEF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHBy
b3BlcnR5TmFtZVRvSWRNYXAsIG1hc2tBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBvcGFjaXR5QXR0cik7Ci0gICAgICAgIG1hcEF0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgb3ZlcmZsb3dBdHRyKTsK
LSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBw
b2ludGVyX2V2ZW50c0F0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHBy
b3BlcnR5TmFtZVRvSWRNYXAsIHNoYXBlX3JlbmRlcmluZ0F0dHIpOwotICAgICAgICBtYXBBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0b3BfY29sb3JBdHRyKTsK
LSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBz
dG9wX29wYWNpdHlBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9w
ZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfZGFzaGFycmF5QXR0cik7Ci0gICAg
ICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tl
X2Rhc2hvZmZzZXRBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9w
ZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfbGluZWNhcEF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1
dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0cm9rZV9saW5lam9pbkF0dHIp
OwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IHN0cm9rZV9taXRlcmxpbWl0QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX29wYWNpdHlBdHRyKTsKLSAgICAgICAgbWFw
QXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2Vfd2lkdGhB
dHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lk
TWFwLCB0ZXh0X2FuY2hvckF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIHRleHRfZGVjb3JhdGlvbkF0dHIpOwotICAgICAgICBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHRleHRfcmVuZGVyaW5n
QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgdW5pY29kZV9iaWRpQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdmlzaWJpbGl0eUF0dHIpOwotICAgICAgICBtYXBBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHdvcmRfc3BhY2luZ0F0dHIp
OwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IHdyaXRpbmdfbW9kZUF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIGFsaWdubWVudF9iYXNlbGluZUF0dHIpOworICAgICAgICBt
YXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGJhc2VsaW5l
X3NoaWZ0QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVy
dHlOYW1lVG9JZE1hcCwgY2xpcEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1By
b3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNsaXBfcGF0aEF0dHIpOworICAgICAgICBtYXBT
dmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNsaXBfcnVsZUF0
dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRv
SWRNYXAsIFNWR05hbWVzOjpjb2xvckF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX2ludGVycG9sYXRpb25BdHRyKTsK
KyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCBjb2xvcl9pbnRlcnBvbGF0aW9uX2ZpbHRlcnNBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmli
dXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvcl9wcm9maWxlQXR0cik7
CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgY29sb3JfcmVuZGVyaW5nQXR0cik7IAorICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1By
b3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGN1cnNvckF0dHIpOworICAgICAgICBtYXBTdmdB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIFNWR05hbWVzOjpkaXJl
Y3Rpb25BdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCBkaXNwbGF5QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NT
UHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZG9taW5hbnRfYmFzZWxpbmVBdHRyKTsKKyAg
ICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBl
bmFibGVfYmFja2dyb3VuZEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZpbGxBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmli
dXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmaWxsX29wYWNpdHlBdHRyKTsK
KyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCBmaWxsX3J1bGVBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShw
cm9wZXJ0eU5hbWVUb0lkTWFwLCBmaWx0ZXJBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRl
VG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmbG9vZF9jb2xvckF0dHIpOworICAg
ICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZs
b29kX29wYWNpdHlBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShw
cm9wZXJ0eU5hbWVUb0lkTWFwLCBmb250X2ZhbWlseUF0dHIpOworICAgICAgICBtYXBTdmdBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfc2l6ZUF0dHIpOwor
ICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IGZvbnRfc3RyZXRjaEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfc3R5bGVBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0
cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmb250X3ZhcmlhbnRBdHRy
KTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lk
TWFwLCBmb250X3dlaWdodEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGdseXBoX29yaWVudGF0aW9uX2hvcml6b250YWxBdHRy
KTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lk
TWFwLCBnbHlwaF9vcmllbnRhdGlvbl92ZXJ0aWNhbEF0dHIpOworICAgICAgICBtYXBTdmdBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGltYWdlX3JlbmRlcmluZ0F0
dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRv
SWRNYXAsIGtlcm5pbmdBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBsZXR0ZXJfc3BhY2luZ0F0dHIpOworICAgICAgICBtYXBT
dmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGxpZ2h0aW5nX2Nv
bG9yQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlO
YW1lVG9JZE1hcCwgbWFya2VyX2VuZEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIG1hcmtlcl9taWRBdHRyKTsKKyAgICAgICAg
bWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBtYXJrZXJf
c3RhcnRBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCBtYXNrQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgb3BhY2l0eUF0dHIpOworICAgICAgICBtYXBTdmdB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIG92ZXJmbG93QXR0cik7
CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgcG9pbnRlcl9ldmVudHNBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzaGFwZV9yZW5kZXJpbmdBdHRyKTsKKyAgICAgICAg
bWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdG9wX2Nv
bG9yQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlO
YW1lVG9JZE1hcCwgc3RvcF9vcGFjaXR5QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRv
Q1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlQXR0cik7CisgICAgICAgIG1h
cFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX2Rh
c2hhcnJheUF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3Bl
cnR5TmFtZVRvSWRNYXAsIHN0cm9rZV9kYXNob2Zmc2V0QXR0cik7CisgICAgICAgIG1hcFN2Z0F0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX2xpbmVjYXBB
dHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBzdHJva2VfbGluZWpvaW5BdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9D
U1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfbWl0ZXJsaW1pdEF0dHIpOwor
ICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IHN0cm9rZV9vcGFjaXR5QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX3dpZHRoQXR0cik7CisgICAgICAgIG1hcFN2
Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdGV4dF9hbmNob3JB
dHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCB0ZXh0X2RlY29yYXRpb25BdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9D
U1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB0ZXh0X3JlbmRlcmluZ0F0dHIpOworICAg
ICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHVu
aWNvZGVfYmlkaUF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHBy
b3BlcnR5TmFtZVRvSWRNYXAsIHZpc2liaWxpdHlBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmli
dXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB3b3JkX3NwYWNpbmdBdHRyKTsK
KyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCB3cml0aW5nX21vZGVBdHRyKTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHByb3BlcnR5TmFt
ZVRvSWRNYXAtPmdldChhdHRyTmFtZS5sb2NhbE5hbWUoKS5pbXBsKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45092</attachid>
            <date>2009-12-17 10:51:55 -0800</date>
            <delta_ts>2009-12-17 12:49:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32674-20091217105154.patch</filename>
            <type>text/plain</type>
            <size>19256</size>
            <attacher name="Marc-Antoine Ruel">maruel</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDktMTItMTcgIE1hcmMtQW50b2luZSBSdWVsICA8bWFydWVsQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNpZWRlbC4KKworICAgICAg
ICBGaXggbGluayBmYWlsdXJlIG9uIExUQ0cgYnVpbGRzIG9uIFdpbmRvd3MgZm9yIGNocm9taXVt
IHBvcnQuCisKKyAgICAgICAgUmVlbmFibGUgU1ZHQWxsSW5PbmUuY3BwLiBUaGlzIHJlcXVpcmVk
IHNvbWUgZml4dXBzLgorCisgICAgICAgIE5hbWVseSwgdGhlcmUgd2FzIGNvbmZsaWN0cyBpbiBj
b25zdGFudHMgYmV0d2VlbiBIVE1MTmFtZXMgYW5kCisgICAgICAgIFNWR05hbWVzLCBhbmQgY29u
ZmxpY3RzIGJldHdlZW4gc3RhdGljIGZ1bmN0aW9ucyBuYW1lcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMgYXMgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGNoYW5nZWQuCisKKyAgICAgICAgKiBXZWJD
b3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Rm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9udEZhY2UpOgorICAgICAgICAqIHN2Zy9TVkdHbHlw
aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhFbGVtZW50OjppbnZhbGlk
YXRlR2x5cGhDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaEVsZW1lbnQ6OmJ1aWxk
R2x5cGhJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHSEtlcm5FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0hLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHSEtlcm5FbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KToK
KyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1N0eWxlRWxlbWVudDo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6
OnNldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnNldE1lZGlhKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5
bGVFbGVtZW50OjpzZXRUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6
OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjptYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZEVsZW1lbnQ6OmNzc1Byb3BlcnR5SWRGb3JTVkdBdHRy
aWJ1dGVOYW1lKToKKwogMjAwOS0xMi0xNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtNjQ3LDggKzY0NywxMiBAQAogICAg
ICAgICAjIG9mIHRoZWlyIGVuY2xvc2luZyBkaXJlY3RvcmllcyBhbmQgdGFncyBhdCB0aGUgZW5k
cyBvZiB0aGVpcgogICAgICAgICAjIGZpbGVuYW1lcy4KICAgICAgICAgWydleGNsdWRlJywgJyhh
bmRyb2lkfGNhaXJvfGNmfGNnfGN1cmx8Z3RrfGhhaWt1fGxpbnV4fG1hY3xvcGVudHlwZXxwb3Np
eHxxdHxzb3VwfHN5bWJpYW58d2lufHd4KS8nXSwKLSAgICAgICAgWydleGNsdWRlJywgJyg/PCFD
aHJvbWl1bSkoU1ZHQWxsSW5PbmV8QW5kcm9pZHxDYWlyb3xDRnxDR3xDdXJsfEd0a3xMaW51eHxN
YWN8T3BlblR5cGV8UE9TSVh8UG9zaXh8UXR8U2FmYXJpfFNvdXB8U3ltYmlhbnxXaW58V3gpXFwu
KGNwcHxtbT8pJCddLAorICAgICAgICBbJ2V4Y2x1ZGUnLCAnKD88IUNocm9taXVtKShBbmRyb2lk
fENhaXJvfENGfENHfEN1cmx8R3RrfExpbnV4fE1hY3xPcGVuVHlwZXxQT1NJWHxQb3NpeHxRdHxT
YWZhcml8U291cHxTeW1iaWFufFdpbnxXeClcXC4oY3BwfG1tPykkJ10sCiAgICAgICAgIFsnaW5j
bHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVNhbml0aXplclxcLmNw
cCQnXSwKKyAgICAgICAgIyBFeGNsdWRlIGV2ZXJ5dGhpbmcgaW4gc3ZnLyBkaXJlY3RseSBidXQg
bm90IGluIHN1YmRpcmVjdG9yaWVzLgorICAgICAgICAjIEV2ZXJ5dGhpbmcgaW4gc3ZnLyouY3Bw
IGlzIGluY2x1ZGVkIGluIHN2Zy9TVkdBbGxJbk9uZS5jcHAuCisgICAgICAgIFsnZXhjbHVkZScs
ICdzdmcvW14vXStcXC5jcHAkJ10sCisgICAgICAgIFsnaW5jbHVkZScsICdzdmcvU1ZHQWxsSW5P
bmVcXC5jcHAkJ10sCiAKICAgICAgICAgIyBKU0Mtb25seS4KICAgICAgICAgWydleGNsdWRlJywg
J2luc3BlY3Rvci9KYXZhU2NyaXB0W14vXSpcXC5jcHAkJ10sCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3Bw
CShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDExIEBACiAjaW5jbHVkZSAiU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcCIKICNpbmNsdWRlICJTVkdBbmdsZS5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAiCisjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRQb2ludHMuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUGF0aERh
dGEuY3BwIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUG9pbnRzLmNwcCIKICNpbmNsdWRlICJTVkdB
bmltYXRpb25FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdDaXJjbGVFbGVtZW50LmNwcCIKICNp
bmNsdWRlICJTVkdDbGlwUGF0aEVsZW1lbnQuY3BwIgpAQCAtODAsMTMgKzgwLDE2IEBACiAjaW5j
bHVkZSAiU1ZHRm9udC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9udERhdGEuY3BwIgogI2luY2x1ZGUg
IlNWR0ZvbnRFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuY3BwIgog
I2luY2x1ZGUgIlNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VTcmNFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdHRWxlbWVudC5jcHAiCisjaW5j
bHVkZSAiU1ZHR2x5cGhFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdHcmFkaWVudEVsZW1lbnQu
Y3BwIgorI2luY2x1ZGUgIlNWR0hLZXJuRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHSW1hZ2VF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdJbWFnZUxvYWRlci5jcHAiCiAjaW5jbHVkZSAiU1ZH
TGFuZ1NwYWNlLmNwcCIKQEAgLTk3LDYgKzEwMCw3IEBACiAjaW5jbHVkZSAiU1ZHTG9jYXRhYmxl
LmNwcCIKICNpbmNsdWRlICJTVkdNUGF0aEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR01hcmtl
ckVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIlNWR01hc2tFbGVtZW50LmNwcCIKICNpbmNsdWRlICJT
VkdNZXRhZGF0YUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR01pc3NpbmdHbHlwaEVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIlNWR051bWJlckxpc3QuY3BwIgpAQCAtMTI4LDYgKzEzMiw4IEBACiAj
aW5jbHVkZSAiU1ZHU3RvcEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3QuY3Bw
IgogI2luY2x1ZGUgIlNWR1N0eWxhYmxlLmNwcCIKKyNpbmNsdWRlICJTVkdTdHlsZUVsZW1lbnQu
Y3BwIgorI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdTd2l0Y2hFbGVtZW50LmNwcCIKQEAgLTE0MSw5ICsx
NDcsOSBAQAogI2luY2x1ZGUgIlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIlNWR1RpdGxlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtLmNwcCIKKyNp
bmNsdWRlICJTVkdUcmFuc2Zvcm1hYmxlLmNwcCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1EaXN0
YW5jZS5jcHAiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdC5jcHAiCi0jaW5jbHVkZSAiU1ZH
VHJhbnNmb3JtYWJsZS5jcHAiCiAjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmNwcCIKICNpbmNs
dWRlICJTVkdVc2VFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdWaWV3RWxlbWVudC5jcHAiCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDcg
KzI4Miw3IEBAIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9udEZhY2UKICAgICAg
ICAgICAgIHNyY0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGb250RmFjZVNyY0VsZW1lbnQqPihj
aGlsZCk7CiAgICAgfQogCi0gICAgYm9vbCBkZXNjcmliZXNQYXJlbnRGb250ID0gcGFyZW50Tm9k
ZSgpLT5oYXNUYWdOYW1lKGZvbnRUYWcpOworICAgIGJvb2wgZGVzY3JpYmVzUGFyZW50Rm9udCA9
IHBhcmVudE5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9udFRhZyk7CiAgICAgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gbGlzdDsKIAogICAgIGlmIChkZXNjcmliZXNQYXJlbnRGb250KSB7Cklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL1NWR0dseXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9z
dmcvU1ZHR2x5cGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBT
VkdHbHlwaEVsZW1lbnQ6On5TVkdHbHlwaEVsZW1lbnQoKQogdm9pZCBTVkdHbHlwaEVsZW1lbnQ6
OmludmFsaWRhdGVHbHlwaENhY2hlKCkKIHsKICAgICBOb2RlKiBmb250Tm9kZSA9IHBhcmVudE5v
ZGUoKTsKLSAgICBpZiAoZm9udE5vZGUgJiYgZm9udE5vZGUtPmhhc1RhZ05hbWUoZm9udFRhZykp
IHsKKyAgICBpZiAoZm9udE5vZGUgJiYgZm9udE5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZv
bnRUYWcpKSB7CiAgICAgICAgIGlmIChTVkdGb250RWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19j
YXN0PFNWR0ZvbnRFbGVtZW50Kj4oZm9udE5vZGUpKQogICAgICAgICAgICAgZWxlbWVudC0+aW52
YWxpZGF0ZUdseXBoQ2FjaGUoKTsKICAgICB9CkBAIC0xNjcsNyArMTY3LDcgQEAgU1ZHR2x5cGhJ
ZGVudGlmaWVyIFNWR0dseXBoRWxlbWVudDo6YnVpbAogICAgIGlkZW50aWZpZXIub3JpZW50YXRp
b24gPSBwYXJzZU9yaWVudGF0aW9uKGdldEF0dHJpYnV0ZShvcmllbnRhdGlvbkF0dHIpKTsKICAg
ICBpZGVudGlmaWVyLmFyYWJpY0Zvcm0gPSBwYXJzZUFyYWJpY0Zvcm0oZ2V0QXR0cmlidXRlKGFy
YWJpY19mb3JtQXR0cikpOwogCi0gICAgU3RyaW5nIGxhbmd1YWdlID0gZ2V0QXR0cmlidXRlKGxh
bmdBdHRyKTsKKyAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6Omxh
bmdBdHRyKTsKICAgICBpZiAoIWxhbmd1YWdlLmlzRW1wdHkoKSkKICAgICAgICAgaWRlbnRpZmll
ci5sYW5ndWFnZXMgPSBwYXJzZURlbGltaXRlZFN0cmluZyhsYW5ndWFnZSwgJywnKTsKIApJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3N2Zy9TVkdIS2VybkVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvc3Zn
L1NWR0hLZXJuRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgU1ZH
SEtlcm5FbGVtZW50Ojp+U1ZHSEtlcm5FbGVtZW50KCkKIHZvaWQgU1ZHSEtlcm5FbGVtZW50Ojpp
bnNlcnRlZEludG9Eb2N1bWVudCgpCiB7CiAgICAgTm9kZSogZm9udE5vZGUgPSBwYXJlbnROb2Rl
KCk7Ci0gICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKGZvbnRUYWcpKSB7
CisgICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb250
VGFnKSkgewogICAgICAgICBpZiAoU1ZHRm9udEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxTVkdGb250RWxlbWVudCo+KGZvbnROb2RlKSkKICAgICAgICAgICAgIGVsZW1lbnQtPmludmFs
aWRhdGVHbHlwaENhY2hlKCk7CiAgICAgfQpAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFNWR0hLZXJu
RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lCiB2b2lkIFNWR0hLZXJuRWxlbWVudDo6cmVtb3Zl
ZEZyb21Eb2N1bWVudCgpCiB7CiAgICAgTm9kZSogZm9udE5vZGUgPSBwYXJlbnROb2RlKCk7Ci0g
ICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKGZvbnRUYWcpKSB7CisgICAg
aWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb250VGFnKSkg
ewogICAgICAgICBpZiAoU1ZHRm9udEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdG
b250RWxlbWVudCo+KGZvbnROb2RlKSkKICAgICAgICAgICAgIGVsZW1lbnQtPmludmFsaWRhdGVH
bHlwaENhY2hlKCk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCShyZXZpc2lv
biA1MjI2MCkKKysrIFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDQwICs0Niw0MCBAQCBTVkdTdHlsZUVsZW1lbnQ6OlNWR1N0eWxlRWxlbWVudChj
b25zdCBRCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0
CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRW
YWx1ZSwgKCJ0ZXh0L2NzcyIpKTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBnZXRBdHRy
aWJ1dGUodHlwZUF0dHIpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGdldEF0dHJpYnV0
ZShTVkdOYW1lczo6dHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZh
bHVlIDogbjsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBzZXRBdHRyaWJ1dGUodHlw
ZUF0dHIsIHR5cGUsIGVjKTsKKyAgICBzZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnR5cGVBdHRyLCB0
eXBlLCBlYyk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50OjptZWRp
YSgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGRlZmF1bHRWYWx1ZSwgKCJhbGwiKSk7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0gZ2V0
QXR0cmlidXRlKG1lZGlhQXR0cik7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0gZ2V0QXR0
cmlidXRlKFNWR05hbWVzOjptZWRpYUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVm
YXVsdFZhbHVlIDogbjsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldE1lZGlhKGNvbnN0
IEF0b21pY1N0cmluZyYgbWVkaWEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHNldEF0dHJp
YnV0ZShtZWRpYUF0dHIsIG1lZGlhLCBlYyk7CisgICAgc2V0QXR0cmlidXRlKFNWR05hbWVzOjpt
ZWRpYUF0dHIsIG1lZGlhLCBlYyk7CiB9CiAKIFN0cmluZyBTVkdTdHlsZUVsZW1lbnQ6OnRpdGxl
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHRpdGxlQXR0cik7CisgICAgcmV0
dXJuIGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dGl0bGVBdHRyKTsKIH0KIAogdm9pZCBTVkdTdHls
ZUVsZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0b21pY1N0cmluZyYgdGl0bGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIHNldEF0dHJpYnV0ZSh0aXRsZUF0dHIsIHRpdGxlLCBlYyk7CisgICAg
c2V0QXR0cmlidXRlKFNWR05hbWVzOjp0aXRsZUF0dHIsIHRpdGxlLCBlYyk7CiB9CiAKIHZvaWQg
U1ZHU3R5bGVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0
dHIpCiB7Ci0gICAgaWYgKGF0dHItPm5hbWUoKSA9PSB0aXRsZUF0dHIgJiYgbV9zaGVldCkKKyAg
ICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp0aXRsZUF0dHIgJiYgbV9zaGVldCkKICAg
ICAgICAgbV9zaGVldC0+c2V0VGl0bGUoYXR0ci0+dmFsdWUoKSk7CiAgICAgZWxzZSB7CiAgICAg
ICAgIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9zdmcv
U1ZHU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDcgQEAgYm9v
bCBTVkdTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotc3RhdGljIHZvaWQgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShIYXNoTWFwPEF0b21p
Y1N0cmluZ0ltcGwqLCBpbnQ+KiBwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKK3N0YXRpYyB2b2lkIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHko
SGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgaW50PiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaW50IHByb3BlcnR5SWQgPSBjc3NQ
cm9wZXJ0eUlEKGF0dHJOYW1lLmxvY2FsTmFtZSgpKTsKICAgICBBU1NFUlQocHJvcGVydHlJZCA+
IDApOwpAQCAtODcsNjQgKzg3LDY0IEBAIGludCBTVkdTdHlsZWRFbGVtZW50Ojpjc3NQcm9wZXJ0
eUlkRm9yU1YKICAgICBpZiAoIXByb3BlcnR5TmFtZVRvSWRNYXApIHsKICAgICAgICAgcHJvcGVy
dHlOYW1lVG9JZE1hcCA9IG5ldyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBpbnQ+OwogICAg
ICAgICAvLyBUaGlzIGlzIGEgbGlzdCBvZiBhbGwgYmFzZSBDU1MgYW5kIFNWRyBDU1MgcHJvcGVy
dGllcyB3aGljaCBhcmUgZXhwb3NlZCBhcyBTVkcgWE1MIGF0dHJpYnV0ZXMKLSAgICAgICAgbWFw
QXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBhbGlnbm1lbnRfYmFz
ZWxpbmVBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCBiYXNlbGluZV9zaGlmdEF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNsaXBBdHRyKTsKLSAgICAgICAgbWFwQXR0
cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjbGlwX3BhdGhBdHRyKTsK
LSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBj
bGlwX3J1bGVBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCBjb2xvckF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX2ludGVycG9sYXRpb25BdHRyKTsKLSAgICAg
ICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvcl9p
bnRlcnBvbGF0aW9uX2ZpbHRlcnNBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvcl9wcm9maWxlQXR0cik7Ci0gICAgICAgIG1h
cEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY29sb3JfcmVuZGVy
aW5nQXR0cik7IAotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIGN1cnNvckF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIGRpcmVjdGlvbkF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1
dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGRpc3BsYXlBdHRyKTsKLSAgICAg
ICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBkb21pbmFu
dF9iYXNlbGluZUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3Bl
cnR5TmFtZVRvSWRNYXAsIGVuYWJsZV9iYWNrZ3JvdW5kQXR0cik7Ci0gICAgICAgIG1hcEF0dHJp
YnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZmlsbEF0dHIpOwotICAgICAg
ICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZpbGxfb3Bh
Y2l0eUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIGZpbGxfcnVsZUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZpbHRlckF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1
dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZsb29kX2NvbG9yQXR0cik7Ci0g
ICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZmxv
b2Rfb3BhY2l0eUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3Bl
cnR5TmFtZVRvSWRNYXAsIGZvbnRfZmFtaWx5QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRv
Q1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9udF9zaXplQXR0cik7Ci0gICAgICAg
IG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9udF9zdHJl
dGNoQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1l
VG9JZE1hcCwgZm9udF9zdHlsZUF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfdmFyaWFudEF0dHIpOwotICAgICAgICBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfd2VpZ2h0QXR0
cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgZ2x5cGhfb3JpZW50YXRpb25faG9yaXpvbnRhbEF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1
dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGdseXBoX29yaWVudGF0aW9uX3Zl
cnRpY2FsQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlO
YW1lVG9JZE1hcCwgaW1hZ2VfcmVuZGVyaW5nQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRv
Q1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwga2VybmluZ0F0dHIpOwotICAgICAgICBt
YXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGxldHRlcl9zcGFj
aW5nQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1l
VG9JZE1hcCwgbGlnaHRpbmdfY29sb3JBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBtYXJrZXJfZW5kQXR0cik7Ci0gICAgICAgIG1h
cEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgbWFya2VyX21pZEF0
dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIG1hcmtlcl9zdGFydEF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIG1hc2tBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9D
U1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBvcGFjaXR5QXR0cik7Ci0gICAgICAgIG1h
cEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgb3ZlcmZsb3dBdHRy
KTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCBwb2ludGVyX2V2ZW50c0F0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIHNoYXBlX3JlbmRlcmluZ0F0dHIpOwotICAgICAgICBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0b3BfY29sb3JBdHRy
KTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCBzdG9wX29wYWNpdHlBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShw
cm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9D
U1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfZGFzaGFycmF5QXR0cik7Ci0g
ICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ry
b2tlX2Rhc2hvZmZzZXRBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShw
cm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfbGluZWNhcEF0dHIpOwotICAgICAgICBtYXBBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0cm9rZV9saW5lam9pbkF0
dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIHN0cm9rZV9taXRlcmxpbWl0QXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX29wYWNpdHlBdHRyKTsKLSAgICAgICAg
bWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2Vfd2lk
dGhBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCB0ZXh0X2FuY2hvckF0dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHRleHRfZGVjb3JhdGlvbkF0dHIpOwotICAgICAgICBt
YXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHRleHRfcmVuZGVy
aW5nQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1l
VG9JZE1hcCwgdW5pY29kZV9iaWRpQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdmlzaWJpbGl0eUF0dHIpOwotICAgICAgICBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHdvcmRfc3BhY2luZ0F0
dHIpOwotICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIHdyaXRpbmdfbW9kZUF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGFsaWdubWVudF9iYXNlbGluZUF0dHIpOworICAgICAg
ICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGJhc2Vs
aW5lX3NoaWZ0QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJv
cGVydHlOYW1lVG9JZE1hcCwgY2xpcEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNsaXBfcGF0aEF0dHIpOworICAgICAgICBt
YXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNsaXBfcnVs
ZUF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIFNWR05hbWVzOjpjb2xvckF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVU
b0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX2ludGVycG9sYXRpb25BdHRy
KTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lk
TWFwLCBjb2xvcl9pbnRlcnBvbGF0aW9uX2ZpbHRlcnNBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0
cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvcl9wcm9maWxlQXR0
cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgY29sb3JfcmVuZGVyaW5nQXR0cik7IAorICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGN1cnNvckF0dHIpOworICAgICAgICBtYXBT
dmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIFNWR05hbWVzOjpk
aXJlY3Rpb25BdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9w
ZXJ0eU5hbWVUb0lkTWFwLCBkaXNwbGF5QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRv
Q1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZG9taW5hbnRfYmFzZWxpbmVBdHRyKTsK
KyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCBlbmFibGVfYmFja2dyb3VuZEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1By
b3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZpbGxBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0
cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmaWxsX29wYWNpdHlBdHRy
KTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lk
TWFwLCBmaWxsX3J1bGVBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmaWx0ZXJBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmli
dXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmbG9vZF9jb2xvckF0dHIpOwor
ICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IGZsb29kX29wYWNpdHlBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmb250X2ZhbWlseUF0dHIpOworICAgICAgICBtYXBTdmdB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfc2l6ZUF0dHIp
OworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIGZvbnRfc3RyZXRjaEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfc3R5bGVBdHRyKTsKKyAgICAgICAgbWFwU3Zn
QXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmb250X3ZhcmlhbnRB
dHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBmb250X3dlaWdodEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1By
b3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGdseXBoX29yaWVudGF0aW9uX2hvcml6b250YWxB
dHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBnbHlwaF9vcmllbnRhdGlvbl92ZXJ0aWNhbEF0dHIpOworICAgICAgICBtYXBTdmdB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGltYWdlX3JlbmRlcmlu
Z0F0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIGtlcm5pbmdBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBsZXR0ZXJfc3BhY2luZ0F0dHIpOworICAgICAgICBt
YXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGxpZ2h0aW5n
X2NvbG9yQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVy
dHlOYW1lVG9JZE1hcCwgbWFya2VyX2VuZEF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVU
b0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIG1hcmtlcl9taWRBdHRyKTsKKyAgICAg
ICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBtYXJr
ZXJfc3RhcnRBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9w
ZXJ0eU5hbWVUb0lkTWFwLCBtYXNrQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NT
UHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgb3BhY2l0eUF0dHIpOworICAgICAgICBtYXBT
dmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIG92ZXJmbG93QXR0
cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgcG9pbnRlcl9ldmVudHNBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzaGFwZV9yZW5kZXJpbmdBdHRyKTsKKyAgICAg
ICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdG9w
X2NvbG9yQXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVy
dHlOYW1lVG9JZE1hcCwgc3RvcF9vcGFjaXR5QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0
ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlQXR0cik7CisgICAgICAg
IG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tl
X2Rhc2hhcnJheUF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHBy
b3BlcnR5TmFtZVRvSWRNYXAsIHN0cm9rZV9kYXNob2Zmc2V0QXR0cik7CisgICAgICAgIG1hcFN2
Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX2xpbmVj
YXBBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCBzdHJva2VfbGluZWpvaW5BdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRl
VG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfbWl0ZXJsaW1pdEF0dHIp
OworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIHN0cm9rZV9vcGFjaXR5QXR0cik7CisgICAgICAgIG1hcFN2Z0F0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX3dpZHRoQXR0cik7CisgICAgICAgIG1h
cFN2Z0F0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdGV4dF9hbmNo
b3JBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCB0ZXh0X2RlY29yYXRpb25BdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRl
VG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB0ZXh0X3JlbmRlcmluZ0F0dHIpOwor
ICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IHVuaWNvZGVfYmlkaUF0dHIpOworICAgICAgICBtYXBTdmdBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIHZpc2liaWxpdHlBdHRyKTsKKyAgICAgICAgbWFwU3ZnQXR0
cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB3b3JkX3NwYWNpbmdBdHRy
KTsKKyAgICAgICAgbWFwU3ZnQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lk
TWFwLCB3cml0aW5nX21vZGVBdHRyKTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHByb3BlcnR5
TmFtZVRvSWRNYXAtPmdldChhdHRyTmFtZS5sb2NhbE5hbWUoKS5pbXBsKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45102</attachid>
            <date>2009-12-17 12:49:58 -0800</date>
            <delta_ts>2009-12-17 12:52:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32674-20091217124957.patch</filename>
            <type>text/plain</type>
            <size>11266</size>
            <attacher name="Marc-Antoine Ruel">maruel</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkocmV2aXNpb24gNTIyNjApCisrKyBXZWJDb3Jl
L1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC02NDcsOCArNjQ3LDEy
IEBACiAgICAgICAgICMgb2YgdGhlaXIgZW5jbG9zaW5nIGRpcmVjdG9yaWVzIGFuZCB0YWdzIGF0
IHRoZSBlbmRzIG9mIHRoZWlyCiAgICAgICAgICMgZmlsZW5hbWVzLgogICAgICAgICBbJ2V4Y2x1
ZGUnLCAnKGFuZHJvaWR8Y2Fpcm98Y2Z8Y2d8Y3VybHxndGt8aGFpa3V8bGludXh8bWFjfG9wZW50
eXBlfHBvc2l4fHF0fHNvdXB8c3ltYmlhbnx3aW58d3gpLyddLAotICAgICAgICBbJ2V4Y2x1ZGUn
LCAnKD88IUNocm9taXVtKShTVkdBbGxJbk9uZXxBbmRyb2lkfENhaXJvfENGfENHfEN1cmx8R3Rr
fExpbnV4fE1hY3xPcGVuVHlwZXxQT1NJWHxQb3NpeHxRdHxTYWZhcml8U291cHxTeW1iaWFufFdp
bnxXeClcXC4oY3BwfG1tPykkJ10sCisgICAgICAgIFsnZXhjbHVkZScsICcoPzwhQ2hyb21pdW0p
KEFuZHJvaWR8Q2Fpcm98Q0Z8Q0d8Q3VybHxHdGt8TGludXh8TWFjfE9wZW5UeXBlfFBPU0lYfFBv
c2l4fFF0fFNhZmFyaXxTb3VwfFN5bWJpYW58V2lufFd4KVxcLihjcHB8bW0/KSQnXSwKICAgICAg
ICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlU2FuaXRp
emVyXFwuY3BwJCddLAorICAgICAgICAjIEV4Y2x1ZGUgZXZlcnl0aGluZyBpbiBzdmcvIGRpcmVj
dGx5IGJ1dCBub3QgaW4gc3ViZGlyZWN0b3JpZXMuCisgICAgICAgICMgRXZlcnl0aGluZyBpbiBz
dmcvKi5jcHAgaXMgaW5jbHVkZWQgaW4gc3ZnL1NWR0FsbEluT25lLmNwcC4KKyAgICAgICAgWydl
eGNsdWRlJywgJ3N2Zy9bXi9dK1xcLmNwcCQnXSwKKyAgICAgICAgWydpbmNsdWRlJywgJ3N2Zy9T
VkdBbGxJbk9uZVxcLmNwcCQnXSwKIAogICAgICAgICAjIEpTQy1vbmx5LgogICAgICAgICBbJ2V4
Y2x1ZGUnLCAnaW5zcGVjdG9yL0phdmFTY3JpcHRbXi9dKlxcLmNwcCQnXSwKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbGxJ
bk9uZS5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTEgQEAKICNpbmNsdWRlICJTVkdBbHRHbHlw
aEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuZ2xlLmNwcCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFBhdGhEYXRhLmNwcCIK
KyNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50cy5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCIKICNpbmNs
dWRlICJTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRQYXRoRGF0YS5jcHAiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2ludHMuY3BwIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0NpcmNsZUVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIlNWR0NsaXBQYXRoRWxlbWVudC5jcHAiCkBAIC04MCwxMyArODAsMTYg
QEAKICNpbmNsdWRlICJTVkdGb250LmNwcCIKICNpbmNsdWRlICJTVkdGb250RGF0YS5jcHAiCiAj
aW5jbHVkZSAiU1ZHRm9udEVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCIKICNpbmNsdWRl
ICJTVkdGb250RmFjZU5hbWVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdGb250RmFjZVNyY0Vs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAiCiAjaW5jbHVk
ZSAiU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0dFbGVtZW50LmNw
cCIKKyNpbmNsdWRlICJTVkdHbHlwaEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0dyYWRpZW50
RWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHSEtlcm5FbGVtZW50LmNwcCIKICNpbmNsdWRlICJT
VkdJbWFnZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0ltYWdlTG9hZGVyLmNwcCIKICNpbmNs
dWRlICJTVkdMYW5nU3BhY2UuY3BwIgpAQCAtOTcsNiArMTAwLDcgQEAKICNpbmNsdWRlICJTVkdM
b2NhdGFibGUuY3BwIgogI2luY2x1ZGUgIlNWR01QYXRoRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
U1ZHTWFya2VyRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHTWFza0VsZW1lbnQuY3BwIgogI2lu
Y2x1ZGUgIlNWR01ldGFkYXRhRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHTnVtYmVyTGlzdC5jcHAiCkBAIC0xMjgsNiArMTMy
LDggQEAKICNpbmNsdWRlICJTVkdTdG9wRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHU3RyaW5n
TGlzdC5jcHAiCiAjaW5jbHVkZSAiU1ZHU3R5bGFibGUuY3BwIgorI2luY2x1ZGUgIlNWR1N0eWxl
RWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1N3aXRjaEVsZW1lbnQuY3BwIgpAQCAt
MTQxLDkgKzE0Nyw5IEBACiAjaW5jbHVkZSAiU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAi
CiAjaW5jbHVkZSAiU1ZHVGl0bGVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm0u
Y3BwIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGUuY3BwIgogI2luY2x1ZGUgIlNWR1RyYW5z
Zm9ybURpc3RhbmNlLmNwcCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0LmNwcCIKLSNpbmNs
dWRlICJTVkdUcmFuc2Zvcm1hYmxlLmNwcCIKICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2UuY3Bw
IgogI2luY2x1ZGUgIlNWR1VzZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1ZpZXdFbGVtZW50
LmNwcCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAkocmV2aXNpb24gNTIyNjAp
CisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MiwxMyArNjIsNiBAQCBTVkdGb250RmFjZUVsZW1lbnQ6On5TVkdGb250RmFjZUVsZW1lbnQo
CiAgICAgcmVtb3ZlRnJvbU1hcHBlZEVsZW1lbnRTaGVldCgpOwogfQogCi1zdGF0aWMgdm9pZCBt
YXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIGludD4q
IHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQotewot
ICAgIGludCBwcm9wZXJ0eUlkID0gY3NzUHJvcGVydHlJRChhdHRyTmFtZS5sb2NhbE5hbWUoKSk7
Ci0gICAgQVNTRVJUKHByb3BlcnR5SWQgPiAwKTsKLSAgICBwcm9wZXJ0eU5hbWVUb0lkTWFwLT5z
ZXQoYXR0ck5hbWUubG9jYWxOYW1lKCkuaW1wbCgpLCBwcm9wZXJ0eUlkKTsKLX0KLQogc3RhdGlj
IGludCBjc3NQcm9wZXJ0eUlkRm9yU1ZHQXR0cmlidXRlTmFtZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKIHsKICAgICBpZiAoIWF0dHJOYW1lLm5hbWVzcGFjZVVSSSgpLmlzTnVsbCgp
KQpAQCAtMjgyLDcgKzI3NSw3IEBAIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9u
dEZhY2UKICAgICAgICAgICAgIHNyY0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGb250RmFjZVNy
Y0VsZW1lbnQqPihjaGlsZCk7CiAgICAgfQogCi0gICAgYm9vbCBkZXNjcmliZXNQYXJlbnRGb250
ID0gcGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKGZvbnRUYWcpOworICAgIGJvb2wgZGVzY3JpYmVz
UGFyZW50Rm9udCA9IHBhcmVudE5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9udFRhZyk7
CiAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdDsKIAogICAgIGlmIChkZXNjcmliZXNQYXJl
bnRGb250KSB7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMjYwKQor
KysgV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDks
NyArNDksNyBAQCBTVkdHbHlwaEVsZW1lbnQ6On5TVkdHbHlwaEVsZW1lbnQoKQogdm9pZCBTVkdH
bHlwaEVsZW1lbnQ6OmludmFsaWRhdGVHbHlwaENhY2hlKCkKIHsKICAgICBOb2RlKiBmb250Tm9k
ZSA9IHBhcmVudE5vZGUoKTsKLSAgICBpZiAoZm9udE5vZGUgJiYgZm9udE5vZGUtPmhhc1RhZ05h
bWUoZm9udFRhZykpIHsKKyAgICBpZiAoZm9udE5vZGUgJiYgZm9udE5vZGUtPmhhc1RhZ05hbWUo
U1ZHTmFtZXM6OmZvbnRUYWcpKSB7CiAgICAgICAgIGlmIChTVkdGb250RWxlbWVudCogZWxlbWVu
dCA9IHN0YXRpY19jYXN0PFNWR0ZvbnRFbGVtZW50Kj4oZm9udE5vZGUpKQogICAgICAgICAgICAg
ZWxlbWVudC0+aW52YWxpZGF0ZUdseXBoQ2FjaGUoKTsKICAgICB9CkBAIC0xNjcsNyArMTY3LDcg
QEAgU1ZHR2x5cGhJZGVudGlmaWVyIFNWR0dseXBoRWxlbWVudDo6YnVpbAogICAgIGlkZW50aWZp
ZXIub3JpZW50YXRpb24gPSBwYXJzZU9yaWVudGF0aW9uKGdldEF0dHJpYnV0ZShvcmllbnRhdGlv
bkF0dHIpKTsKICAgICBpZGVudGlmaWVyLmFyYWJpY0Zvcm0gPSBwYXJzZUFyYWJpY0Zvcm0oZ2V0
QXR0cmlidXRlKGFyYWJpY19mb3JtQXR0cikpOwogCi0gICAgU3RyaW5nIGxhbmd1YWdlID0gZ2V0
QXR0cmlidXRlKGxhbmdBdHRyKTsKKyAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBnZXRBdHRyaWJ1dGUo
U1ZHTmFtZXM6OmxhbmdBdHRyKTsKICAgICBpZiAoIWxhbmd1YWdlLmlzRW1wdHkoKSkKICAgICAg
ICAgaWRlbnRpZmllci5sYW5ndWFnZXMgPSBwYXJzZURlbGltaXRlZFN0cmluZyhsYW5ndWFnZSwg
JywnKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MjI2MCkKKysr
IFdlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcg
KzQ4LDcgQEAgU1ZHSEtlcm5FbGVtZW50Ojp+U1ZHSEtlcm5FbGVtZW50KCkKIHZvaWQgU1ZHSEtl
cm5FbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCiB7CiAgICAgTm9kZSogZm9udE5vZGUg
PSBwYXJlbnROb2RlKCk7Ci0gICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1l
KGZvbnRUYWcpKSB7CisgICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKFNW
R05hbWVzOjpmb250VGFnKSkgewogICAgICAgICBpZiAoU1ZHRm9udEVsZW1lbnQqIGVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxTVkdGb250RWxlbWVudCo+KGZvbnROb2RlKSkKICAgICAgICAgICAgIGVs
ZW1lbnQtPmludmFsaWRhdGVHbHlwaENhY2hlKCk7CiAgICAgfQpAQCAtNTcsNyArNTcsNyBAQCB2
b2lkIFNWR0hLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lCiB2b2lkIFNWR0hLZXJuRWxl
bWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiB7CiAgICAgTm9kZSogZm9udE5vZGUgPSBwYXJl
bnROb2RlKCk7Ci0gICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKGZvbnRU
YWcpKSB7CisgICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNUYWdOYW1lKFNWR05hbWVz
Ojpmb250VGFnKSkgewogICAgICAgICBpZiAoU1ZHRm9udEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxTVkdGb250RWxlbWVudCo+KGZvbnROb2RlKSkKICAgICAgICAgICAgIGVsZW1lbnQt
PmludmFsaWRhdGVHbHlwaENhY2hlKCk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3R5
bGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDQwICs0Niw0MCBAQCBTVkdTdHlsZUVsZW1lbnQ6OlNWR1N0
eWxlRWxlbWVudChjb25zdCBRCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6
dHlwZSgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGRlZmF1bHRWYWx1ZSwgKCJ0ZXh0L2NzcyIpKTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcm
IG4gPSBnZXRBdHRyaWJ1dGUodHlwZUF0dHIpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9
IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgp
ID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBzZXRB
dHRyaWJ1dGUodHlwZUF0dHIsIHR5cGUsIGVjKTsKKyAgICBzZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6
OnR5cGVBdHRyLCB0eXBlLCBlYyk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVF
bGVtZW50OjptZWRpYSgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJhbGwiKSk7Ci0gICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBuID0gZ2V0QXR0cmlidXRlKG1lZGlhQXR0cik7CisgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBuID0gZ2V0QXR0cmlidXRlKFNWR05hbWVzOjptZWRpYUF0dHIpOwogICAgIHJldHVybiBuLmlz
TnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNl
dE1lZGlhKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewot
ICAgIHNldEF0dHJpYnV0ZShtZWRpYUF0dHIsIG1lZGlhLCBlYyk7CisgICAgc2V0QXR0cmlidXRl
KFNWR05hbWVzOjptZWRpYUF0dHIsIG1lZGlhLCBlYyk7CiB9CiAKIFN0cmluZyBTVkdTdHlsZUVs
ZW1lbnQ6OnRpdGxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHRpdGxlQXR0
cik7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dGl0bGVBdHRyKTsKIH0KIAog
dm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0b21pY1N0cmluZyYgdGl0bGUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHNldEF0dHJpYnV0ZSh0aXRsZUF0dHIsIHRpdGxl
LCBlYyk7CisgICAgc2V0QXR0cmlidXRlKFNWR05hbWVzOjp0aXRsZUF0dHIsIHRpdGxlLCBlYyk7
CiB9CiAKIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRB
dHRyaWJ1dGUqIGF0dHIpCiB7Ci0gICAgaWYgKGF0dHItPm5hbWUoKSA9PSB0aXRsZUF0dHIgJiYg
bV9zaGVldCkKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp0aXRsZUF0dHIgJiYg
bV9zaGVldCkKICAgICAgICAgbV9zaGVldC0+c2V0VGl0bGUoYXR0ci0+dmFsdWUoKSk7CiAgICAg
ZWxzZSB7CiAgICAgICAgIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0
dHIpKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysg
V2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYg
KzQ3LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKIGNoYXIgU1ZHU3R5bGVkRWxlbWVu
dElkZW50aWZpZXJbXSA9ICJTVkdTdHlsZWRFbGVtZW50IjsKIHN0YXRpYyBIYXNoU2V0PGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQqPiogZ0VsZW1lbnRzV2l0aEluc3RhbmNlVXBkYXRlc0Jsb2NrZWQg
PSAwOwogCit2b2lkIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkoSGFzaE1hcDxBdG9taWNTdHJp
bmdJbXBsKiwgaW50PiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCit7CisgICAgaW50IHByb3BlcnR5SWQgPSBjc3NQcm9wZXJ0eUlEKGF0dHJOYW1l
LmxvY2FsTmFtZSgpKTsKKyAgICBBU1NFUlQocHJvcGVydHlJZCA+IDApOworICAgIHByb3BlcnR5
TmFtZVRvSWRNYXAtPnNldChhdHRyTmFtZS5sb2NhbE5hbWUoKS5pbXBsKCksIHByb3BlcnR5SWQp
OworfQorCiBTVkdTdHlsZWRFbGVtZW50OjpTVkdTdHlsZWRFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUs
IGRvYykKICAgICAsIG1fY2xhc3NOYW1lKHRoaXMsIEhUTUxOYW1lczo6Y2xhc3NBdHRyKQpAQCAt
NzEsMTMgKzc4LDYgQEAgYm9vbCBTVkdTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKAog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBpbnQ+KiBwcm9wZXJ0eU5hbWVUb0lkTWFw
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKLXsKLSAgICBpbnQgcHJvcGVydHlJZCA9
IGNzc1Byb3BlcnR5SUQoYXR0ck5hbWUubG9jYWxOYW1lKCkpOwotICAgIEFTU0VSVChwcm9wZXJ0
eUlkID4gMCk7Ci0gICAgcHJvcGVydHlOYW1lVG9JZE1hcC0+c2V0KGF0dHJOYW1lLmxvY2FsTmFt
ZSgpLmltcGwoKSwgcHJvcGVydHlJZCk7Ci19Ci0KIGludCBTVkdTdHlsZWRFbGVtZW50Ojpjc3NQ
cm9wZXJ0eUlkRm9yU1ZHQXR0cmlidXRlTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKICAgICBpZiAoIWF0dHJOYW1lLm5hbWVzcGFjZVVSSSgpLmlzTnVsbCgpKQpAQCAtOTIs
MTMgKzkyLDEzIEBAIGludCBTVkdTdHlsZWRFbGVtZW50Ojpjc3NQcm9wZXJ0eUlkRm9yU1YKICAg
ICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjbGlw
QXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgY2xpcF9wYXRoQXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHko
cHJvcGVydHlOYW1lVG9JZE1hcCwgY2xpcF9ydWxlQXR0cik7Ci0gICAgICAgIG1hcEF0dHJpYnV0
ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY29sb3JBdHRyKTsKKyAgICAgICAg
bWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBTVkdOYW1lczo6
Y29sb3JBdHRyKTsKICAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCBjb2xvcl9pbnRlcnBvbGF0aW9uQXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0
ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY29sb3JfaW50ZXJwb2xhdGlvbl9m
aWx0ZXJzQXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlO
YW1lVG9JZE1hcCwgY29sb3JfcHJvZmlsZUF0dHIpOwogICAgICAgICBtYXBBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX3JlbmRlcmluZ0F0dHIpOyAKICAg
ICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjdXJz
b3JBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBkaXJlY3Rpb25BdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBTVkdOYW1lczo6ZGlyZWN0aW9uQXR0cik7CiAgICAgICAg
IG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZGlzcGxheUF0
dHIpOwogICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIGRvbWluYW50X2Jhc2VsaW5lQXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZW5hYmxlX2JhY2tncm91bmRBdHRyKTsKSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdTdHlsZWRFbGVtZW50LmgJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9zdmcvU1ZH
U3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBleHRlcm4gY2hhciBTVkdTdHlsZWRFbGVtZW50SWRlbnRpZmllcltd
OwogICAgIGNsYXNzIFNWR1Jlc291cmNlOwogCisgICAgdm9pZCBtYXBBdHRyaWJ1dGVUb0NTU1By
b3BlcnR5KEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIGludD4qIHByb3BlcnR5TmFtZVRvSWRN
YXAsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKTsKKwogICAgIGNsYXNzIFNWR1N0eWxl
ZEVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVibGljIFNWR1N0eWxhYmxlIHsKICAgICBwdWJsaWM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45103</attachid>
            <date>2009-12-17 12:52:07 -0800</date>
            <delta_ts>2009-12-17 13:52:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32674-20091217125206.patch</filename>
            <type>text/plain</type>
            <size>12991</size>
            <attacher name="Marc-Antoine Ruel">maruel</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjI3OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMDktMTItMTcgIE1hcmMtQW50b2luZSBSdWVsICA8bWFydWVsQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggbGluayBmYWlsdXJlIG9uIExUQ0cgYnVpbGRzIG9uIFdpbmRvd3MgZm9yIGNocm9t
aXVtIHBvcnQuCisKKyAgICAgICAgUmVlbmFibGUgU1ZHQWxsSW5PbmUuY3BwLiBUaGlzIHJlcXVp
cmVkIHNvbWUgZml4dXBzLgorCisgICAgICAgIE5hbWVseSwgdGhlcmUgd2FzIGNvbmZsaWN0cyBp
biBjb25zdGFudHMgYmV0d2VlbiBIVE1MTmFtZXMgYW5kCisgICAgICAgIFNWR05hbWVzLCBhbmQg
Y29uZmxpY3RzIGJldHdlZW4gc3RhdGljIGZ1bmN0aW9ucyBuYW1lcy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgYXMgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGNoYW5nZWQuCisKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRm9udEZhY2VFbGVtZW50OjpyZWJ1aWxkRm9udEZhY2UpOgorICAgICAgICAqIHN2Zy9TVkdH
bHlwaEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhFbGVtZW50OjppbnZh
bGlkYXRlR2x5cGhDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaEVsZW1lbnQ6OmJ1
aWxkR2x5cGhJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHSEtlcm5FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0hLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHSEtlcm5FbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50
KToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1N0eWxlRWxlbWVudDo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1l
bnQ6OnNldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnNldE1lZGlhKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U3R5bGVFbGVtZW50OjpzZXRUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZEVsZW1lbnQ6OmNzc1Byb3BlcnR5SWRGb3JTVkdBdHRy
aWJ1dGVOYW1lKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkRWxlbWVudC5oOgorCiAyMDA5LTEy
LTE3ICBCZW5qYW1pbiBPdHRlICA8b3R0ZUBnbm9tZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBSb2Jlbi4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkocmV2aXNpb24gNTIy
NjApCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBA
IC02NDcsOCArNjQ3LDEyIEBACiAgICAgICAgICMgb2YgdGhlaXIgZW5jbG9zaW5nIGRpcmVjdG9y
aWVzIGFuZCB0YWdzIGF0IHRoZSBlbmRzIG9mIHRoZWlyCiAgICAgICAgICMgZmlsZW5hbWVzLgog
ICAgICAgICBbJ2V4Y2x1ZGUnLCAnKGFuZHJvaWR8Y2Fpcm98Y2Z8Y2d8Y3VybHxndGt8aGFpa3V8
bGludXh8bWFjfG9wZW50eXBlfHBvc2l4fHF0fHNvdXB8c3ltYmlhbnx3aW58d3gpLyddLAotICAg
ICAgICBbJ2V4Y2x1ZGUnLCAnKD88IUNocm9taXVtKShTVkdBbGxJbk9uZXxBbmRyb2lkfENhaXJv
fENGfENHfEN1cmx8R3RrfExpbnV4fE1hY3xPcGVuVHlwZXxQT1NJWHxQb3NpeHxRdHxTYWZhcml8
U291cHxTeW1iaWFufFdpbnxXeClcXC4oY3BwfG1tPykkJ10sCisgICAgICAgIFsnZXhjbHVkZScs
ICcoPzwhQ2hyb21pdW0pKEFuZHJvaWR8Q2Fpcm98Q0Z8Q0d8Q3VybHxHdGt8TGludXh8TWFjfE9w
ZW5UeXBlfFBPU0lYfFBvc2l4fFF0fFNhZmFyaXxTb3VwfFN5bWJpYW58V2lufFd4KVxcLihjcHB8
bW0/KSQnXSwKICAgICAgICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBl
L09wZW5UeXBlU2FuaXRpemVyXFwuY3BwJCddLAorICAgICAgICAjIEV4Y2x1ZGUgZXZlcnl0aGlu
ZyBpbiBzdmcvIGRpcmVjdGx5IGJ1dCBub3QgaW4gc3ViZGlyZWN0b3JpZXMuCisgICAgICAgICMg
RXZlcnl0aGluZyBpbiBzdmcvKi5jcHAgaXMgaW5jbHVkZWQgaW4gc3ZnL1NWR0FsbEluT25lLmNw
cC4KKyAgICAgICAgWydleGNsdWRlJywgJ3N2Zy9bXi9dK1xcLmNwcCQnXSwKKyAgICAgICAgWydp
bmNsdWRlJywgJ3N2Zy9TVkdBbGxJbk9uZVxcLmNwcCQnXSwKIAogICAgICAgICAjIEpTQy1vbmx5
LgogICAgICAgICBbJ2V4Y2x1ZGUnLCAnaW5zcGVjdG9yL0phdmFTY3JpcHRbXi9dKlxcLmNwcCQn
XSwKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9zdmcv
U1ZHQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTEgQEAKICNpbmNs
dWRlICJTVkdBbHRHbHlwaEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuZ2xlLmNwcCIKICNp
bmNsdWRlICJTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdBbmltYXRl
ZFBhdGhEYXRhLmNwcCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50cy5jcHAiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAiCi0jaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2lu
dHMuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNW
R0NpcmNsZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0NsaXBQYXRoRWxlbWVudC5jcHAiCkBA
IC04MCwxMyArODAsMTYgQEAKICNpbmNsdWRlICJTVkdGb250LmNwcCIKICNpbmNsdWRlICJTVkdG
b250RGF0YS5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9udEVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIlNW
R0ZvbnRGYWNlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50
LmNwcCIKICNpbmNsdWRlICJTVkdGb250RmFjZU5hbWVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJT
VkdGb250RmFjZVNyY0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlVXJpRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IlNWR0dFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdHbHlwaEVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIlNWR0dyYWRpZW50RWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHSEtlcm5FbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTVkdJbWFnZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0ltYWdlTG9h
ZGVyLmNwcCIKICNpbmNsdWRlICJTVkdMYW5nU3BhY2UuY3BwIgpAQCAtOTcsNiArMTAwLDcgQEAK
ICNpbmNsdWRlICJTVkdMb2NhdGFibGUuY3BwIgogI2luY2x1ZGUgIlNWR01QYXRoRWxlbWVudC5j
cHAiCiAjaW5jbHVkZSAiU1ZHTWFya2VyRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHTWFza0Vs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR01ldGFkYXRhRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHTnVtYmVyTGlzdC5jcHAi
CkBAIC0xMjgsNiArMTMyLDggQEAKICNpbmNsdWRlICJTVkdTdG9wRWxlbWVudC5jcHAiCiAjaW5j
bHVkZSAiU1ZHU3RyaW5nTGlzdC5jcHAiCiAjaW5jbHVkZSAiU1ZHU3R5bGFibGUuY3BwIgorI2lu
Y2x1ZGUgIlNWR1N0eWxlRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5j
cHAiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR1N3aXRjaEVs
ZW1lbnQuY3BwIgpAQCAtMTQxLDkgKzE0Nyw5IEBACiAjaW5jbHVkZSAiU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHVGl0bGVFbGVtZW50LmNwcCIKICNpbmNsdWRl
ICJTVkdUcmFuc2Zvcm0uY3BwIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGUuY3BwIgogI2lu
Y2x1ZGUgIlNWR1RyYW5zZm9ybURpc3RhbmNlLmNwcCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1M
aXN0LmNwcCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1hYmxlLmNwcCIKICNpbmNsdWRlICJTVkdV
UklSZWZlcmVuY2UuY3BwIgogI2luY2x1ZGUgIlNWR1VzZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IlNWR1ZpZXdFbGVtZW50LmNwcCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAko
cmV2aXNpb24gNTIyNjApCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02MiwxMyArNjIsNiBAQCBTVkdGb250RmFjZUVsZW1lbnQ6On5TVkdG
b250RmFjZUVsZW1lbnQoCiAgICAgcmVtb3ZlRnJvbU1hcHBlZEVsZW1lbnRTaGVldCgpOwogfQog
Ci1zdGF0aWMgdm9pZCBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KEhhc2hNYXA8QXRvbWljU3Ry
aW5nSW1wbCosIGludD4qIHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQotewotICAgIGludCBwcm9wZXJ0eUlkID0gY3NzUHJvcGVydHlJRChhdHRyTmFt
ZS5sb2NhbE5hbWUoKSk7Ci0gICAgQVNTRVJUKHByb3BlcnR5SWQgPiAwKTsKLSAgICBwcm9wZXJ0
eU5hbWVUb0lkTWFwLT5zZXQoYXR0ck5hbWUubG9jYWxOYW1lKCkuaW1wbCgpLCBwcm9wZXJ0eUlk
KTsKLX0KLQogc3RhdGljIGludCBjc3NQcm9wZXJ0eUlkRm9yU1ZHQXR0cmlidXRlTmFtZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAoIWF0dHJOYW1lLm5hbWVzcGFj
ZVVSSSgpLmlzTnVsbCgpKQpAQCAtMjgyLDcgKzI3NSw3IEBAIHZvaWQgU1ZHRm9udEZhY2VFbGVt
ZW50OjpyZWJ1aWxkRm9udEZhY2UKICAgICAgICAgICAgIHNyY0VsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxTVkdGb250RmFjZVNyY0VsZW1lbnQqPihjaGlsZCk7CiAgICAgfQogCi0gICAgYm9vbCBkZXNj
cmliZXNQYXJlbnRGb250ID0gcGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKGZvbnRUYWcpOworICAg
IGJvb2wgZGVzY3JpYmVzUGFyZW50Rm9udCA9IHBhcmVudE5vZGUoKS0+aGFzVGFnTmFtZShTVkdO
YW1lczo6Zm9udFRhZyk7CiAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdDsKIAogICAgIGlm
IChkZXNjcmliZXNQYXJlbnRGb250KSB7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDUyMjYwKQorKysgV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBTVkdHbHlwaEVsZW1lbnQ6On5TVkdHbHlwaEVsZW1l
bnQoKQogdm9pZCBTVkdHbHlwaEVsZW1lbnQ6OmludmFsaWRhdGVHbHlwaENhY2hlKCkKIHsKICAg
ICBOb2RlKiBmb250Tm9kZSA9IHBhcmVudE5vZGUoKTsKLSAgICBpZiAoZm9udE5vZGUgJiYgZm9u
dE5vZGUtPmhhc1RhZ05hbWUoZm9udFRhZykpIHsKKyAgICBpZiAoZm9udE5vZGUgJiYgZm9udE5v
ZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvbnRUYWcpKSB7CiAgICAgICAgIGlmIChTVkdGb250
RWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0ZvbnRFbGVtZW50Kj4oZm9udE5vZGUp
KQogICAgICAgICAgICAgZWxlbWVudC0+aW52YWxpZGF0ZUdseXBoQ2FjaGUoKTsKICAgICB9CkBA
IC0xNjcsNyArMTY3LDcgQEAgU1ZHR2x5cGhJZGVudGlmaWVyIFNWR0dseXBoRWxlbWVudDo6YnVp
bAogICAgIGlkZW50aWZpZXIub3JpZW50YXRpb24gPSBwYXJzZU9yaWVudGF0aW9uKGdldEF0dHJp
YnV0ZShvcmllbnRhdGlvbkF0dHIpKTsKICAgICBpZGVudGlmaWVyLmFyYWJpY0Zvcm0gPSBwYXJz
ZUFyYWJpY0Zvcm0oZ2V0QXR0cmlidXRlKGFyYWJpY19mb3JtQXR0cikpOwogCi0gICAgU3RyaW5n
IGxhbmd1YWdlID0gZ2V0QXR0cmlidXRlKGxhbmdBdHRyKTsKKyAgICBTdHJpbmcgbGFuZ3VhZ2Ug
PSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmxhbmdBdHRyKTsKICAgICBpZiAoIWxhbmd1YWdlLmlz
RW1wdHkoKSkKICAgICAgICAgaWRlbnRpZmllci5sYW5ndWFnZXMgPSBwYXJzZURlbGltaXRlZFN0
cmluZyhsYW5ndWFnZSwgJywnKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuY3BwCShyZXZp
c2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgU1ZHSEtlcm5FbGVtZW50Ojp+U1ZHSEtlcm5FbGVtZW50
KCkKIHZvaWQgU1ZHSEtlcm5FbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCiB7CiAgICAg
Tm9kZSogZm9udE5vZGUgPSBwYXJlbnROb2RlKCk7Ci0gICAgaWYgKGZvbnROb2RlICYmIGZvbnRO
b2RlLT5oYXNUYWdOYW1lKGZvbnRUYWcpKSB7CisgICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2Rl
LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb250VGFnKSkgewogICAgICAgICBpZiAoU1ZHRm9udEVs
ZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGb250RWxlbWVudCo+KGZvbnROb2RlKSkK
ICAgICAgICAgICAgIGVsZW1lbnQtPmludmFsaWRhdGVHbHlwaENhY2hlKCk7CiAgICAgfQpAQCAt
NTcsNyArNTcsNyBAQCB2b2lkIFNWR0hLZXJuRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lCiB2
b2lkIFNWR0hLZXJuRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiB7CiAgICAgTm9kZSog
Zm9udE5vZGUgPSBwYXJlbnROb2RlKCk7Ci0gICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5o
YXNUYWdOYW1lKGZvbnRUYWcpKSB7CisgICAgaWYgKGZvbnROb2RlICYmIGZvbnROb2RlLT5oYXNU
YWdOYW1lKFNWR05hbWVzOjpmb250VGFnKSkgewogICAgICAgICBpZiAoU1ZHRm9udEVsZW1lbnQq
IGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGb250RWxlbWVudCo+KGZvbnROb2RlKSkKICAgICAg
ICAgICAgIGVsZW1lbnQtPmludmFsaWRhdGVHbHlwaENhY2hlKCk7CiAgICAgfQpJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdTdHlsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MjI2MCkKKysrIFdlYkNvcmUvc3ZnL1NWR1N0
eWxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDQwICs0Niw0MCBAQCBTVkdTdHls
ZUVsZW1lbnQ6OlNWR1N0eWxlRWxlbWVudChjb25zdCBRCiBjb25zdCBBdG9taWNTdHJpbmcmIFNW
R1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJ0ZXh0L2NzcyIpKTsKLSAgICBjb25z
dCBBdG9taWNTdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUodHlwZUF0dHIpOworICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgbiA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dHlwZUF0dHIpOwogICAgIHJl
dHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KIAogdm9pZCBTVkdTdHlsZUVs
ZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKLSAgICBzZXRBdHRyaWJ1dGUodHlwZUF0dHIsIHR5cGUsIGVjKTsKKyAgICBzZXRBdHRy
aWJ1dGUoU1ZHTmFtZXM6OnR5cGVBdHRyLCB0eXBlLCBlYyk7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgU1ZHU3R5bGVFbGVtZW50OjptZWRpYSgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJhbGwiKSk7Ci0gICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBuID0gZ2V0QXR0cmlidXRlKG1lZGlhQXR0cik7CisgICAgY29u
c3QgQXRvbWljU3RyaW5nJiBuID0gZ2V0QXR0cmlidXRlKFNWR05hbWVzOjptZWRpYUF0dHIpOwog
ICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KIAogdm9pZCBTVkdT
dHlsZUVsZW1lbnQ6OnNldE1lZGlhKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWEsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewotICAgIHNldEF0dHJpYnV0ZShtZWRpYUF0dHIsIG1lZGlhLCBlYyk7Cisg
ICAgc2V0QXR0cmlidXRlKFNWR05hbWVzOjptZWRpYUF0dHIsIG1lZGlhLCBlYyk7CiB9CiAKIFN0
cmluZyBTVkdTdHlsZUVsZW1lbnQ6OnRpdGxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZ2V0QXR0
cmlidXRlKHRpdGxlQXR0cik7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dGl0
bGVBdHRyKTsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdGl0bGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHNldEF0dHJpYnV0ZSh0
aXRsZUF0dHIsIHRpdGxlLCBlYyk7CisgICAgc2V0QXR0cmlidXRlKFNWR05hbWVzOjp0aXRsZUF0
dHIsIHRpdGxlLCBlYyk7CiB9CiAKIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiB7Ci0gICAgaWYgKGF0dHItPm5hbWUoKSA9
PSB0aXRsZUF0dHIgJiYgbV9zaGVldCkKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVz
Ojp0aXRsZUF0dHIgJiYgbV9zaGVldCkKICAgICAgICAgbV9zaGVldC0+c2V0VGl0bGUoYXR0ci0+
dmFsdWUoKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKGF0dHIpKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHJldmlz
aW9uIDUyMjYwKQorKysgV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ3LDYgKzQ3LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKIGNoYXIg
U1ZHU3R5bGVkRWxlbWVudElkZW50aWZpZXJbXSA9ICJTVkdTdHlsZWRFbGVtZW50IjsKIHN0YXRp
YyBIYXNoU2V0PGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqPiogZ0VsZW1lbnRzV2l0aEluc3RhbmNl
VXBkYXRlc0Jsb2NrZWQgPSAwOwogCit2b2lkIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkoSGFz
aE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgaW50PiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCit7CisgICAgaW50IHByb3BlcnR5SWQgPSBjc3NQcm9w
ZXJ0eUlEKGF0dHJOYW1lLmxvY2FsTmFtZSgpKTsKKyAgICBBU1NFUlQocHJvcGVydHlJZCA+IDAp
OworICAgIHByb3BlcnR5TmFtZVRvSWRNYXAtPnNldChhdHRyTmFtZS5sb2NhbE5hbWUoKS5pbXBs
KCksIHByb3BlcnR5SWQpOworfQorCiBTVkdTdHlsZWRFbGVtZW50OjpTVkdTdHlsZWRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCiAgICAgOiBTVkdF
bGVtZW50KHRhZ05hbWUsIGRvYykKICAgICAsIG1fY2xhc3NOYW1lKHRoaXMsIEhUTUxOYW1lczo6
Y2xhc3NBdHRyKQpAQCAtNzEsMTMgKzc4LDYgQEAgYm9vbCBTVkdTdHlsZWRFbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQgbWFwQXR0
cmlidXRlVG9DU1NQcm9wZXJ0eShIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBpbnQ+KiBwcm9w
ZXJ0eU5hbWVUb0lkTWFwLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKLXsKLSAgICBp
bnQgcHJvcGVydHlJZCA9IGNzc1Byb3BlcnR5SUQoYXR0ck5hbWUubG9jYWxOYW1lKCkpOwotICAg
IEFTU0VSVChwcm9wZXJ0eUlkID4gMCk7Ci0gICAgcHJvcGVydHlOYW1lVG9JZE1hcC0+c2V0KGF0
dHJOYW1lLmxvY2FsTmFtZSgpLmltcGwoKSwgcHJvcGVydHlJZCk7Ci19Ci0KIGludCBTVkdTdHls
ZWRFbGVtZW50Ojpjc3NQcm9wZXJ0eUlkRm9yU1ZHQXR0cmlidXRlTmFtZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAoIWF0dHJOYW1lLm5hbWVzcGFjZVVSSSgpLmlz
TnVsbCgpKQpAQCAtOTIsMTMgKzkyLDEzIEBAIGludCBTVkdTdHlsZWRFbGVtZW50Ojpjc3NQcm9w
ZXJ0eUlkRm9yU1YKICAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCBjbGlwQXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHko
cHJvcGVydHlOYW1lVG9JZE1hcCwgY2xpcF9wYXRoQXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0
ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY2xpcF9ydWxlQXR0cik7Ci0gICAg
ICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY29sb3JB
dHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lk
TWFwLCBTVkdOYW1lczo6Y29sb3JBdHRyKTsKICAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvcl9pbnRlcnBvbGF0aW9uQXR0cik7CiAgICAg
ICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY29sb3Jf
aW50ZXJwb2xhdGlvbl9maWx0ZXJzQXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgY29sb3JfcHJvZmlsZUF0dHIpOwogICAgICAgICBt
YXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX3JlbmRl
cmluZ0F0dHIpOyAKICAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCBjdXJzb3JBdHRyKTsKLSAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBkaXJlY3Rpb25BdHRyKTsKKyAgICAgICAgbWFwQXR0cmli
dXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBTVkdOYW1lczo6ZGlyZWN0aW9u
QXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgZGlzcGxheUF0dHIpOwogICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHBy
b3BlcnR5TmFtZVRvSWRNYXAsIGRvbWluYW50X2Jhc2VsaW5lQXR0cik7CiAgICAgICAgIG1hcEF0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZW5hYmxlX2JhY2tncm91
bmRBdHRyKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgJKHJldmlzaW9uIDUyMjYwKQorKysg
V2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBleHRlcm4gY2hhciBTVkdTdHlsZWRFbGVt
ZW50SWRlbnRpZmllcltdOwogICAgIGNsYXNzIFNWR1Jlc291cmNlOwogCisgICAgdm9pZCBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIGludD4qIHBy
b3BlcnR5TmFtZVRvSWRNYXAsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKTsKKwogICAg
IGNsYXNzIFNWR1N0eWxlZEVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1N0eWxhYmxlIHsKICAgICBwdWJsaWM6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>