<?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>98728</bug_id>
          
          <creation_ts>2012-10-09 01:03:50 -0700</creation_ts>
          <short_desc>[Texmap] Swizzling BGRA to RGBA in temp buffer while USE(TEXMAP_OPENGL_ES_2)</short_desc>
          <delta_ts>2012-10-21 18:27:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>0</everconfirmed>
          <reporter name="Hyungchan Kim">hyungchan2.kim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>noam</cc>
    
    <cc>philn</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>737506</commentid>
    <comment_count>0</comment_count>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-09 01:03:50 -0700</bug_when>
    <thetext>[Texmap] Swizzling BGRA to RGBA in temp buffer while USE(TEXMAP_OPENGL_ES_2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737515</commentid>
    <comment_count>1</comment_count>
      <attachid>167706</attachid>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-09 01:16:16 -0700</bug_when>
    <thetext>Created attachment 167706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737524</commentid>
    <comment_count>2</comment_count>
      <attachid>167708</attachid>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-09 01:25:38 -0700</bug_when>
    <thetext>Created attachment 167708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737544</commentid>
    <comment_count>3</comment_count>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-09 01:47:29 -0700</bug_when>
    <thetext>This problem happens in QtWebKit for Pandaboard ES.
Launched QtTestBrowser under X with -graphicsbased, -gl-viewport options.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737646</commentid>
    <comment_count>4</comment_count>
      <attachid>167708</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-09 04:18:19 -0700</bug_when>
    <thetext>Comment on attachment 167708
Patch

Attachment 167708 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14245039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737652</commentid>
    <comment_count>5</comment_count>
      <attachid>167708</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-09 04:28:05 -0700</bug_when>
    <thetext>Comment on attachment 167708
Patch

This image is usually the backing store of a temporary ImageBuffer. This would create an extra unnecessary deep copy in the common case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737733</commentid>
    <comment_count>6</comment_count>
      <attachid>167746</attachid>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-09 06:20:35 -0700</bug_when>
    <thetext>Created attachment 167746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737746</commentid>
    <comment_count>7</comment_count>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-09 06:40:51 -0700</bug_when>
    <thetext>Thanks for reviewing, I agree with you.
I didn&apos;t consider that common case, but I think swizzleBGRAToRGBA seems have a problem.
In BitmapTextureGL::updateContents, const char *imageData should not be modified by swizzleBGRAToRGBA because 
1) const_cast used
2) seems to be shared textures which point same NativeImagePtr

A and B keep changing its data from BGRA to RGBA or from RGBA to BGRA. So, both A and B cannot have correct color simultaneously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739569</commentid>
    <comment_count>8</comment_count>
      <attachid>167746</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-10 20:44:35 -0700</bug_when>
    <thetext>Comment on attachment 167746
Patch

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

In some cases it&apos;s ok to swizzle the actual data (when it&apos;s a backing store for a temporary ImageBuffer), and in some cases it&apos;s not (when it&apos;s a directly composited image). We should add an enum parameter to updateContents that stands for whether it&apos;s ok to swizzle the actual data without copying.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:726
&gt; +        void* srcData = reinterpret_cast&lt;void *&gt;(const_cast&lt;char*&gt;(imageData));

why do you need srcData? If you&apos;re copying, you can use imageData directly...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742716</commentid>
    <comment_count>9</comment_count>
      <attachid>168839</attachid>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-15 19:17:07 -0700</bug_when>
    <thetext>Created attachment 168839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742804</commentid>
    <comment_count>10</comment_count>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-15 22:20:07 -0700</bug_when>
    <thetext>Thanks for your review. I modified some code to use temp buffer only for directly composited image and did refactoring to use same temp buffer which was already used for driverSupportsSubImage() condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743174</commentid>
    <comment_count>11</comment_count>
      <attachid>168839</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-16 08:43:49 -0700</bug_when>
    <thetext>Comment on attachment 168839
Patch

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

This is getting closer - however this should be an enum that gets passed along updateContents, not a bool member; Also this is not about directly composited images, it&apos;s about whether BitmapTexture is allowed to modify the original image. Something like enum UpdateContentsFlag { UpdateCanModifyOriginalImageData = 0x01 }

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperBackingStore.cpp:76
&gt; +void TextureMapperTile::updateContents(TextureMapper* textureMapper, Image* image, const IntRect&amp; dirtyRect, bool isDirectlyCompositedImage)

This is a boolean trap... it should be an enum, like ContentUpdateOptions

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperBackingStore.cpp:98
&gt; +    if (isDirectlyCompositedImage)
&gt; +        m_texture-&gt;setDirectlyCompositedFlag();
&gt;      m_texture-&gt;updateContents(image, targetRect, sourceOffset);
&gt; +    if (isDirectlyCompositedImage)
&gt; +        m_texture-&gt;resetDirectlyCompositedFlag();

You don&apos;t really need this as a member. Pass it through the updateContents functions instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743885</commentid>
    <comment_count>12</comment_count>
      <attachid>169095</attachid>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-16 23:11:54 -0700</bug_when>
    <thetext>Created attachment 169095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744242</commentid>
    <comment_count>13</comment_count>
      <attachid>169095</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-17 08:05:22 -0700</bug_when>
    <thetext>Comment on attachment 169095
Patch

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

Great! Please fix nits and then commit or cq?

&gt; Source/WebCore/ChangeLog:13
&gt; +        BitmapTextureGL::updateContents() try to swizzle source Image if opengl
&gt; +        driver doesn&apos;t support BGRA format.
&gt; +        In case of directly composited image, swizzling source image
&gt; +        should not be modified because another BitmapTexture will also try
&gt; +        to swizzle.
&gt; +
&gt; +        BitmapTexture now provide UpdateContentsFlag to separate whether
&gt; +        source image can be modified or not

Some rewording:
BitmapTexture swizzles the source image if the OpenGL driver doesn&apos;t support the BGRA extension.
In case of directly composited images, the source image should not be modified.

BitmapTexture::updateContents now accepts an UpdateContentsFlag argument to separate the different cases.

&gt; Source/WebCore/ChangeLog:19
&gt; +        No new tests.

This should be tested - there are a few current test cases for directly composited images, do they test this?

&gt; Source/WebCore/platform/graphics/texmap/TextureMapper.h:62
&gt; +    enum UpdateContentsFlag {
&gt; +        UpdateCanModifyOriginalImageData = 0x01,
&gt; +        UpdateCannotModifyOriginalImageData = 0x02
&gt; +    };

Any reason to use 0x01 and 0x02 instead of 0 and 1?

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.cpp:57
&gt; +void BitmapTextureImageBuffer::updateContents(Image* image, const IntRect&amp; targetRect, const IntPoint&amp; offset, UpdateContentsFlag /*updatecontentsflag*/)

You don&apos;t need the comment, just omit the argument name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744248</commentid>
    <comment_count>14</comment_count>
      <attachid>169095</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-17 08:12:25 -0700</bug_when>
    <thetext>Comment on attachment 169095
Patch

Sorry, changed to r- until we figure out if the existing tests actually cover this. I don&apos;t want this regressing in the future...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745017</commentid>
    <comment_count>15</comment_count>
      <attachid>169353</attachid>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-17 23:51:52 -0700</bug_when>
    <thetext>Created attachment 169353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745024</commentid>
    <comment_count>16</comment_count>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-18 00:00:43 -0700</bug_when>
    <thetext>I fixed ChangeLog and removed some comments of unused parameters.
But, I have no idea how to write test only for Qt Linux with OpenGLES.

It would be great if you can give me some guide for writing test for this issue.
I can compose a test for this, but it will always succeed under OpenGL support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745210</commentid>
    <comment_count>17</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-18 06:30:32 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; I fixed ChangeLog and removed some comments of unused parameters.
&gt; But, I have no idea how to write test only for Qt Linux with OpenGLES.
&gt; 
&gt; It would be great if you can give me some guide for writing test for this issue.
&gt; I can compose a test for this, but it will always succeed under OpenGL support.

OK - please update the changelog to say that this is only testable on specific hardware not currently available in the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745292</commentid>
    <comment_count>18</comment_count>
      <attachid>169423</attachid>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-18 08:50:48 -0700</bug_when>
    <thetext>Created attachment 169423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747171</commentid>
    <comment_count>19</comment_count>
    <who name="Hyungchan Kim">hyungchan2.kim</who>
    <bug_when>2012-10-21 17:11:00 -0700</bug_when>
    <thetext>Can someone set cq+ for me? 
Or please let me know if there is something to get cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747185</commentid>
    <comment_count>20</comment_count>
      <attachid>169423</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-21 18:27:37 -0700</bug_when>
    <thetext>Comment on attachment 169423
Patch

Clearing flags on attachment: 169423

Committed r132019: &lt;http://trac.webkit.org/changeset/132019&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747186</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-21 18:27:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167706</attachid>
            <date>2012-10-09 01:16:16 -0700</date>
            <delta_ts>2012-10-09 01:25:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98728-20121009171518.patch</filename>
            <type>text/plain</type>
            <size>10016</size>
            <attacher name="Hyungchan Kim">hyungchan2.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE0YzExOWUwZDNkNDRiNDlmZmFhNWYx
YzE4ZjQzODcyMzQ1NTIxOGYuLjgwYmQxMTljZTExNjNiYTI4YWNiZTQ3ZjgzNDdiOTM1ZTVmYmY2
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMDkgIEh5dW5nY2hhbiBLaW0gIDxoeXVu
Z2NoYW4yLmtpbUBsZ2UuY29tPgorCisgICAgICAgIFtUZXhtYXBdIFN3aXp6bGluZyBCR1JBIHRv
IFJHQkEgaW4gdGVtcCBidWZmZXIgd2hpbGUgVVNFKFRFWE1BUF9PUEVOR0xfRVNfMikKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NzI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZv
cm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNl
IGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAg
KiBXVEYudmNwcm9qL1dURi5zbG46CisKIDIwMTItMTAtMDggIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEdlbmVyYWxpemUgbW92aW5nIFVSTENvbXBv
bmVudCdzIGJlZ2luIHBvc2l0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ5MDMyZjU1MzNiNGU2Y2YwYTgy
YTJkZDIzMjI3MmM5YzkwZTM3Ni4uYmY2NTMwNDAxZDVhNDYyNWFhMzUzMjlhNTgwMzBmYzMyZjY2
ZDlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEwLTA5ICBIeXVuZ2NoYW4g
S2ltICA8aHl1bmdjaGFuMi5raW1AbGdlLmNvbT4KKworICAgICAgICBbVGV4bWFwXSBTd2l6emxp
bmcgQkdSQSB0byBSR0JBIGluIHRlbXAgYnVmZmVyIHdoaWxlIFVTRShURVhNQVBfT1BFTkdMX0VT
XzIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODcy
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4g
YW4gaW1hZ2UgaGFzIG1vcmUgdGhhbiBvbmUgcmVmIGluIHRoZSBwYWdlLCBzd2l6emxpbmcgaGFw
cGVucworICAgICAgICBtdWx0aXBsZSB0aW1lcyBpZiBlbmFibGVkIFVTRShURVhNQVBfT1BFTkdM
X0VTXzIpCisgICAgICAgIFRoaXMgY2hhbmdlIHdpbGwgcHJldmVudCBzaG93aW5nIGFuIHIgYW5k
IGIgc3dhcHBlZCBpbWFnZS4KKworICAgICAgICBodHRwOi8vd3d3LnNhdGluZS5vcmcvcmVzZWFy
Y2gvd2Via2l0L3Nub3dsZW9wYXJkL3Nub3dzdGFjay5odG1sCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1c2VQcmVTd2l6emxlZEltYWdlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6dXBkYXRl
Q29udGVudHMpOgorCiAyMDEyLTEwLTA4ICBLaXJhbiBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUu
Y29tPgogCiAgICAgICAgIFRocm90dGxlIERPTSB0aW1lcnMgb24gaGlkZGVuIHBhZ2VzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi5zbG4gYi9Tb3VyY2UvV1RGL1dURi52
Y3Byb2ovV1RGLnNsbgppbmRleCA3NmRjNjMxMGYxYmY2OWM2NTViZTY3NzM0MzAyN2U4NjJhNzYw
N2IxLi4zOTZkMWMyMTc0MGM2ZThlZDNlNmZiOTIyNTZiZjgxN2VjZWExNzdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnNsbgorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3By
b2ovV1RGLnNsbgpAQCAtMSw0OSArMSw0OSBAQAot77u/DQotTWljcm9zb2Z0IFZpc3VhbCBTdHVk
aW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gOS4wMA0KLSMgVmlzdWFsIFN0dWRpbyAy
MDA1DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9
ICJXVEZHZW5lcmF0ZWQiLCAiV1RGR2VuZXJhdGVkLnZjcHJvaiIsICJ7NUFFNUY1RTQtNzgyRC00
RjYzLUI0RDctMzk3N0I1MkI5OTUwfSINCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4
LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJXVEYiLCAiV1RGLnZjcHJvaiIsICJ7
QUE4QTVBODUtNTkyQi00MzU3LUJDNjAtRTBFOTFFMDI2QUY2fSINCi0JUHJvamVjdFNlY3Rpb24o
UHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezVBRTVGNUU0LTc4MkQtNEY2
My1CNEQ3LTM5NzdCNTJCOTk1MH0gPSB7NUFFNUY1RTQtNzgyRC00RjYzLUI0RDctMzk3N0I1MkI5
OTUwfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1HbG9iYWwNCi0JR2xvYmFs
U2VjdGlvbihTb2x1dGlvbkNvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcHJlU29sdXRpb24NCi0J
CURlYnVnX0FsbHxXaW4zMiA9IERlYnVnX0FsbHxXaW4zMg0KLQkJRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyID0gRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyDQotCQlEZWJ1Z3xXaW4zMiA9IERlYnVn
fFdpbjMyDQotCQlQcm9kdWN0aW9ufFdpbjMyID0gUHJvZHVjdGlvbnxXaW4zMg0KLQkJUmVsZWFz
ZV9DYWlyb19DRkxpdGV8V2luMzIgPSBSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMg0KLQkJUmVs
ZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzINCi0JRW5kR2xvYmFsU2VjdGlvbg0KLQlHbG9iYWxT
ZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHBvc3RTb2x1dGlvbg0KLQkJ
ezVBRTVGNUU0LTc4MkQtNEY2My1CNEQ3LTM5NzdCNTJCOTk1MH0uRGVidWdfQWxsfFdpbjMyLkFj
dGl2ZUNmZyA9IERlYnVnX0FsbHxXaW4zMg0KLQkJezVBRTVGNUU0LTc4MkQtNEY2My1CNEQ3LTM5
NzdCNTJCOTk1MH0uRGVidWdfQWxsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19BbGx8V2luMzINCi0J
CXs1QUU1RjVFNC03ODJELTRGNjMtQjRENy0zOTc3QjUyQjk5NTB9LkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzINCi0JCXs1QUU1RjVF
NC03ODJELTRGNjMtQjRENy0zOTc3QjUyQjk5NTB9LkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMi5C
dWlsZC4wID0gRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyDQotCQl7NUFFNUY1RTQtNzgyRC00RjYz
LUI0RDctMzk3N0I1MkI5OTUwfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0K
LQkJezVBRTVGNUU0LTc4MkQtNEY2My1CNEQ3LTM5NzdCNTJCOTk1MH0uRGVidWd8V2luMzIuQnVp
bGQuMCA9IERlYnVnfFdpbjMyDQotCQl7NUFFNUY1RTQtNzgyRC00RjYzLUI0RDctMzk3N0I1MkI5
OTUwfS5Qcm9kdWN0aW9ufFdpbjMyLkFjdGl2ZUNmZyA9IFByb2R1Y3Rpb258V2luMzINCi0JCXs1
QUU1RjVFNC03ODJELTRGNjMtQjRENy0zOTc3QjUyQjk5NTB9LlByb2R1Y3Rpb258V2luMzIuQnVp
bGQuMCA9IFByb2R1Y3Rpb258V2luMzINCi0JCXs1QUU1RjVFNC03ODJELTRGNjMtQjRENy0zOTc3
QjUyQjk5NTB9LlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2Vf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyDQotCQl7NUFFNUY1RTQtNzgyRC00RjYzLUI0RDctMzk3N0I1MkI5
OTUwfS5SZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZV9DYWlyb19D
RkxpdGV8V2luMzINCi0JCXs1QUU1RjVFNC03ODJELTRGNjMtQjRENy0zOTc3QjUyQjk5NTB9LlJl
bGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezVBRTVGNUU0LTc4MkQt
NEY2My1CNEQ3LTM5NzdCNTJCOTk1MH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxX
aW4zMg0KLQkJe0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0uRGVidWdfQWxs
fFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0FsbHxXaW4zMg0KLQkJe0FBOEE1QTg1LTU5MkItNDM1
Ny1CQzYwLUUwRTkxRTAyNkFGNn0uRGVidWdfQWxsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19BbGx8
V2luMzINCi0JCXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LkRlYnVnX0Nh
aXJvX0NGTGl0ZXxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzINCi0J
CXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMi5CdWlsZC4wID0gRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyDQotCQl7QUE4QTVBODUt
NTkyQi00MzU3LUJDNjAtRTBFOTFFMDI2QUY2fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1
Z3xXaW4zMg0KLQkJe0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0uRGVidWd8
V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7QUE4QTVBODUtNTkyQi00MzU3LUJDNjAt
RTBFOTFFMDI2QUY2fS5Qcm9kdWN0aW9ufFdpbjMyLkFjdGl2ZUNmZyA9IFByb2R1Y3Rpb258V2lu
MzINCi0JCXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LlByb2R1Y3Rpb258
V2luMzIuQnVpbGQuMCA9IFByb2R1Y3Rpb258V2luMzINCi0JCXtBQThBNUE4NS01OTJCLTQzNTct
QkM2MC1FMEU5MUUwMjZBRjZ9LlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyLkFjdGl2ZUNmZyA9
IFJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyDQotCQl7QUE4QTVBODUtNTkyQi00MzU3LUJDNjAt
RTBFOTFFMDI2QUY2fS5SZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFz
ZV9DYWlyb19DRkxpdGV8V2luMzINCi0JCXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUw
MjZBRjZ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0FBOEE1
QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0g
UmVsZWFzZXxXaW4zMg0KLQlFbmRHbG9iYWxTZWN0aW9uDQotCUdsb2JhbFNlY3Rpb24oU29sdXRp
b25Qcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uDQotCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UN
Ci0JRW5kR2xvYmFsU2VjdGlvbg0KLUVuZEdsb2JhbA0KK++7vworTWljcm9zb2Z0IFZpc3VhbCBT
dHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gOS4wMAorIyBWaXN1YWwgU3R1ZGlv
IDIwMDUKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9Iikg
PSAiV1RGR2VuZXJhdGVkIiwgIldURkdlbmVyYXRlZC52Y3Byb2oiLCAiezVBRTVGNUU0LTc4MkQt
NEY2My1CNEQ3LTM5NzdCNTJCOTk1MH0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgt
OEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIldURiIsICJXVEYudmNwcm9qIiwgIntB
QThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9IgorCVByb2plY3RTZWN0aW9uKFBy
b2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJezVBRTVGNUU0LTc4MkQtNEY2My1C
NEQ3LTM5NzdCNTJCOTk1MH0gPSB7NUFFNUY1RTQtNzgyRC00RjYzLUI0RDctMzk3N0I1MkI5OTUw
fQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitHbG9iYWwKKwlHbG9iYWxTZWN0aW9u
KFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbgorCQlEZWJ1Z19B
bGx8V2luMzIgPSBEZWJ1Z19BbGx8V2luMzIKKwkJRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyID0g
RGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyCisJCURlYnVnfFdpbjMyID0gRGVidWd8V2luMzIKKwkJ
UHJvZHVjdGlvbnxXaW4zMiA9IFByb2R1Y3Rpb258V2luMzIKKwkJUmVsZWFzZV9DYWlyb19DRkxp
dGV8V2luMzIgPSBSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMgorCQlSZWxlYXNlfFdpbjMyID0g
UmVsZWFzZXxXaW4zMgorCUVuZEdsb2JhbFNlY3Rpb24KKwlHbG9iYWxTZWN0aW9uKFByb2plY3RD
b25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHBvc3RTb2x1dGlvbgorCQl7NUFFNUY1RTQtNzgyRC00
RjYzLUI0RDctMzk3N0I1MkI5OTUwfS5EZWJ1Z19BbGx8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWdf
QWxsfFdpbjMyCisJCXs1QUU1RjVFNC03ODJELTRGNjMtQjRENy0zOTc3QjUyQjk5NTB9LkRlYnVn
X0FsbHxXaW4zMi5CdWlsZC4wID0gRGVidWdfQWxsfFdpbjMyCisJCXs1QUU1RjVFNC03ODJELTRG
NjMtQjRENy0zOTc3QjUyQjk5NTB9LkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMi5BY3RpdmVDZmcg
PSBEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIKKwkJezVBRTVGNUU0LTc4MkQtNEY2My1CNEQ3LTM5
NzdCNTJCOTk1MH0uRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIKKwkJezVBRTVGNUU0LTc4MkQtNEY2My1CNEQ3LTM5NzdCNTJCOTk1MH0u
RGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJezVBRTVGNUU0LTc4MkQtNEY2
My1CNEQ3LTM5NzdCNTJCOTk1MH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJ
CXs1QUU1RjVFNC03ODJELTRGNjMtQjRENy0zOTc3QjUyQjk5NTB9LlByb2R1Y3Rpb258V2luMzIu
QWN0aXZlQ2ZnID0gUHJvZHVjdGlvbnxXaW4zMgorCQl7NUFFNUY1RTQtNzgyRC00RjYzLUI0RDct
Mzk3N0I1MkI5OTUwfS5Qcm9kdWN0aW9ufFdpbjMyLkJ1aWxkLjAgPSBQcm9kdWN0aW9ufFdpbjMy
CisJCXs1QUU1RjVFNC03ODJELTRGNjMtQjRENy0zOTc3QjUyQjk5NTB9LlJlbGVhc2VfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyCisJCXs1
QUU1RjVFNC03ODJELTRGNjMtQjRENy0zOTc3QjUyQjk5NTB9LlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMgorCQl7NUFFNUY1RTQt
NzgyRC00RjYzLUI0RDctMzk3N0I1MkI5OTUwfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJl
bGVhc2V8V2luMzIKKwkJezVBRTVGNUU0LTc4MkQtNEY2My1CNEQ3LTM5NzdCNTJCOTk1MH0uUmVs
ZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7QUE4QTVBODUtNTkyQi00MzU3
LUJDNjAtRTBFOTFFMDI2QUY2fS5EZWJ1Z19BbGx8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWdfQWxs
fFdpbjMyCisJCXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LkRlYnVnX0Fs
bHxXaW4zMi5CdWlsZC4wID0gRGVidWdfQWxsfFdpbjMyCisJCXtBQThBNUE4NS01OTJCLTQzNTct
QkM2MC1FMEU5MUUwMjZBRjZ9LkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMi5BY3RpdmVDZmcgPSBE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIKKwkJe0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkx
RTAyNkFGNn0uRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIKKwkJe0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0uRGVi
dWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJe0FBOEE1QTg1LTU5MkItNDM1Ny1C
QzYwLUUwRTkxRTAyNkFGNn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXtB
QThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LlByb2R1Y3Rpb258V2luMzIuQWN0
aXZlQ2ZnID0gUHJvZHVjdGlvbnxXaW4zMgorCQl7QUE4QTVBODUtNTkyQi00MzU3LUJDNjAtRTBF
OTFFMDI2QUY2fS5Qcm9kdWN0aW9ufFdpbjMyLkJ1aWxkLjAgPSBQcm9kdWN0aW9ufFdpbjMyCisJ
CXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LlJlbGVhc2VfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyCisJCXtBQThB
NUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyLkJ1aWxkLjAgPSBSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMgorCQl7QUE4QTVBODUtNTky
Qi00MzU3LUJDNjAtRTBFOTFFMDI2QUY2fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVh
c2V8V2luMzIKKwkJe0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0uUmVsZWFz
ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCUVuZEdsb2JhbFNlY3Rpb24KKwlHbG9i
YWxTZWN0aW9uKFNvbHV0aW9uUHJvcGVydGllcykgPSBwcmVTb2x1dGlvbgorCQlIaWRlU29sdXRp
b25Ob2RlID0gRkFMU0UKKwlFbmRHbG9iYWxTZWN0aW9uCitFbmRHbG9iYWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKaW5kZXggOTE2OWJmYjA5YjM2YWUyOGI0ODcxNjVmMTM3MGI4M2M5MjIwYTAzYi4u
MmQ3ZTY2MTIyODNmMDUwMmZjMmI1MzdhZTg5Njg5MjRlOTU4YjNkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKQEAgLTYxOCw2ICs2MTgsMTYgQEAgc3RhdGljIGJvb2wgZHJpdmVyU3VwcG9ydHNT
dWJJbWFnZSgpCiAjZW5kaWYKIH0KIAorc3RhdGljIGJvb2wgdXNlUHJlU3dpenpsZWRJbWFnZURh
dGEoKQoreworI2lmIFBMQVRGT1JNKFFUKQorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworCiB2b2lkIEJpdG1hcFRleHR1cmVHTDo6ZGlkUmVz
ZXQoKQogewogICAgIGlmICghbV9pZCkKQEAgLTcwNiw3ICs3MTYsMTggQEAgdm9pZCBCaXRtYXBU
ZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgdGFy
Z2V0UmVjdCwgY28KICAgICBieXRlc1BlckxpbmUgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9z
dHJpZGUoc3VyZmFjZSk7CiAjZW5kaWYKIAotICAgIHVwZGF0ZUNvbnRlbnRzKGltYWdlRGF0YSwg
dGFyZ2V0UmVjdCwgb2Zmc2V0LCBieXRlc1BlckxpbmUpOworICAgIGlmICh1c2VQcmVTd2l6emxl
ZEltYWdlRGF0YSgpKSB7CisgICAgICAgIHVuc2lnbmVkIGJ5dGVzID0gYnl0ZXNQZXJMaW5lICog
cUltYWdlLmhlaWdodCgpOworICAgICAgICB2b2lkKiBzcmNEYXRhID0gcmVpbnRlcnByZXRfY2Fz
dDx2b2lkICo+KGNvbnN0X2Nhc3Q8Y2hhcio+KGltYWdlRGF0YSkpOworICAgICAgICB2b2lkKiBj
b3BpZWRJbWFnZURhdGEgPSBmYXN0TWFsbG9jKGJ5dGVzKTsKKyAgICAgICAgaWYgKGNvcGllZElt
YWdlRGF0YSkgeworICAgICAgICAgICAgbWVtY3B5KGNvcGllZEltYWdlRGF0YSwgc3JjRGF0YSwg
Ynl0ZXMpOworICAgICAgICAgICAgdXBkYXRlQ29udGVudHMoY29waWVkSW1hZ2VEYXRhLCB0YXJn
ZXRSZWN0LCBvZmZzZXQsIGJ5dGVzUGVyTGluZSk7CisgICAgICAgICAgICBmcmVlKGNvcGllZElt
YWdlRGF0YSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdXBkYXRlQ29udGVudHMoaW1h
Z2VEYXRhLCB0YXJnZXRSZWN0LCBvZmZzZXQsIGJ5dGVzUGVyTGluZSk7CisgICAgfSBlbHNlCisg
ICAgICAgIHVwZGF0ZUNvbnRlbnRzKGltYWdlRGF0YSwgdGFyZ2V0UmVjdCwgb2Zmc2V0LCBieXRl
c1BlckxpbmUpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167708</attachid>
            <date>2012-10-09 01:25:38 -0700</date>
            <delta_ts>2012-10-09 06:20:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98728-20121009172440.patch</filename>
            <type>text/plain</type>
            <size>2563</size>
            <attacher name="Hyungchan Kim">hyungchan2.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ5MDMyZjU1MzNiNGU2
Y2YwYTgyYTJkZDIzMjI3MmM5YzkwZTM3Ni4uYmY2NTMwNDAxZDVhNDYyNWFhMzUzMjlhNTgwMzBm
YzMyZjY2ZDlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEwLTA5ICBIeXVu
Z2NoYW4gS2ltICA8aHl1bmdjaGFuMi5raW1AbGdlLmNvbT4KKworICAgICAgICBbVGV4bWFwXSBT
d2l6emxpbmcgQkdSQSB0byBSR0JBIGluIHRlbXAgYnVmZmVyIHdoaWxlIFVTRShURVhNQVBfT1BF
TkdMX0VTXzIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05ODcyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoZW4gYW4gaW1hZ2UgaGFzIG1vcmUgdGhhbiBvbmUgcmVmIGluIHRoZSBwYWdlLCBzd2l6emxp
bmcgaGFwcGVucworICAgICAgICBtdWx0aXBsZSB0aW1lcyBpZiBlbmFibGVkIFVTRShURVhNQVBf
T1BFTkdMX0VTXzIpCisgICAgICAgIFRoaXMgY2hhbmdlIHdpbGwgcHJldmVudCBzaG93aW5nIGFu
IHIgYW5kIGIgc3dhcHBlZCBpbWFnZS4KKworICAgICAgICBodHRwOi8vd3d3LnNhdGluZS5vcmcv
cmVzZWFyY2gvd2Via2l0L3Nub3dsZW9wYXJkL3Nub3dzdGFjay5odG1sCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1c2VQcmVTd2l6emxlZEltYWdlRGF0YSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6
dXBkYXRlQ29udGVudHMpOgorCiAyMDEyLTEwLTA4ICBLaXJhbiBNdXBwYWxhICA8Y211cHBhbGFA
YXBwbGUuY29tPgogCiAgICAgICAgIFRocm90dGxlIERPTSB0aW1lcnMgb24gaGlkZGVuIHBhZ2Vz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCA5MTY5YmZiMDliMzZhZTI4YjQ4NzE2NWYxMzcw
YjgzYzkyMjBhMDNiLi4yZDdlNjYxMjI4M2YwNTAyZmMyYjUzN2FlODk2ODkyNGU5NThiM2QzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtNjE4LDYgKzYxOCwxNiBAQCBzdGF0aWMgYm9vbCBk
cml2ZXJTdXBwb3J0c1N1YkltYWdlKCkKICNlbmRpZgogfQogCitzdGF0aWMgYm9vbCB1c2VQcmVT
d2l6emxlZEltYWdlRGF0YSgpCit7CisjaWYgUExBVEZPUk0oUVQpCisgICAgcmV0dXJuIHRydWU7
CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisKIHZvaWQgQml0bWFwVGV4
dHVyZUdMOjpkaWRSZXNldCgpCiB7CiAgICAgaWYgKCFtX2lkKQpAQCAtNzA2LDcgKzcxNiwxOCBA
QCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoSW1hZ2UqIGltYWdlLCBjb25z
dCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjbwogICAgIGJ5dGVzUGVyTGluZSA9IGNhaXJvX2ltYWdl
X3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlKTsKICNlbmRpZgogCi0gICAgdXBkYXRlQ29udGVu
dHMoaW1hZ2VEYXRhLCB0YXJnZXRSZWN0LCBvZmZzZXQsIGJ5dGVzUGVyTGluZSk7CisgICAgaWYg
KHVzZVByZVN3aXp6bGVkSW1hZ2VEYXRhKCkpIHsKKyAgICAgICAgdW5zaWduZWQgYnl0ZXMgPSBi
eXRlc1BlckxpbmUgKiBxSW1hZ2UuaGVpZ2h0KCk7CisgICAgICAgIHZvaWQqIHNyY0RhdGEgPSBy
ZWludGVycHJldF9jYXN0PHZvaWQgKj4oY29uc3RfY2FzdDxjaGFyKj4oaW1hZ2VEYXRhKSk7Cisg
ICAgICAgIHZvaWQqIGNvcGllZEltYWdlRGF0YSA9IGZhc3RNYWxsb2MoYnl0ZXMpOworICAgICAg
ICBpZiAoY29waWVkSW1hZ2VEYXRhKSB7CisgICAgICAgICAgICBtZW1jcHkoY29waWVkSW1hZ2VE
YXRhLCBzcmNEYXRhLCBieXRlcyk7CisgICAgICAgICAgICB1cGRhdGVDb250ZW50cyhjb3BpZWRJ
bWFnZURhdGEsIHRhcmdldFJlY3QsIG9mZnNldCwgYnl0ZXNQZXJMaW5lKTsKKyAgICAgICAgICAg
IGZyZWUoY29waWVkSW1hZ2VEYXRhKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB1cGRh
dGVDb250ZW50cyhpbWFnZURhdGEsIHRhcmdldFJlY3QsIG9mZnNldCwgYnl0ZXNQZXJMaW5lKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgdXBkYXRlQ29udGVudHMoaW1hZ2VEYXRhLCB0YXJnZXRSZWN0
LCBvZmZzZXQsIGJ5dGVzUGVyTGluZSk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167746</attachid>
            <date>2012-10-09 06:20:35 -0700</date>
            <delta_ts>2012-10-15 19:17:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98728-20121009221936.patch</filename>
            <type>text/plain</type>
            <size>2807</size>
            <attacher name="Hyungchan Kim">hyungchan2.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc2OWExZGI3OTNhODNi
ZGQ5ZjRlYTg5Yjg3YmI5OTVlYzI4YzA0Mi4uMTkxMTkyOGIxMzZhOTI1NmU3M2MxZWNjZmNiYTEz
NmI0MzdjZDc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEwLTA5ICBIeXVu
Z2NoYW4gS2ltICA8aHl1bmdjaGFuMi5raW1AbGdlLmNvbT4KKworICAgICAgICBbVGV4bWFwXSBT
d2l6emxpbmcgQkdSQSB0byBSR0JBIGluIHRlbXAgYnVmZmVyIHdoaWxlIFVTRShURVhNQVBfT1BF
TkdMX0VTXzIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05ODcyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoZW4gYW4gaW1hZ2UgaGFzIG1vcmUgdGhhbiBvbmUgcmVmIGluIHRoZSBwYWdlLCBzd2l6emxp
bmcgaGFwcGVucworICAgICAgICBtdWx0aXBsZSB0aW1lcyBpZiBlbmFibGVkIFVTRShURVhNQVBf
T1BFTkdMX0VTXzIpCisgICAgICAgIFRoaXMgY2hhbmdlIHdpbGwgcHJldmVudCBzaG93aW5nIGFu
IHIgYW5kIGIgc3dhcHBlZCBpbWFnZS4KKworICAgICAgICBodHRwOi8vd3d3LnNhdGluZS5vcmcv
cmVzZWFyY2gvd2Via2l0L3Nub3dsZW9wYXJkL3Nub3dzdGFjay5odG1sCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1c2VQcmVTd2l6emxlZEltYWdlRGF0YSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6
dXBkYXRlQ29udGVudHMpOgorCiAyMDEyLTEwLTA5ICBBcnBpdGEgQmFodWd1bmEgIDxhcnBpdGFi
YWh1Z3VuYUBnbWFpbC5jb20+CiAKICAgICAgICAgVGV4dCBkZWNvcmF0aW9ucyBzcGVjaWZpZWQg
b24gdGhlIGNvbnRhaW5pbmcgYmxvY2sgYXJlIG5vdCBwcm9wZXJseSBhcHBsaWVkIHdoZW4gOjpm
aXJzdC1saW5lIGlzIHByZXNlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDkxNjliZmIw
OWIzNmFlMjhiNDg3MTY1ZjEzNzBiODNjOTIyMGEwM2IuLjFhODliNDY5YTMyNGQ3NDFiY2JkMjFl
NzhhM2JlZDQ0OTA4MzgzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC02MTgsNiArNjE4
LDE1IEBAIHN0YXRpYyBib29sIGRyaXZlclN1cHBvcnRzU3ViSW1hZ2UoKQogI2VuZGlmCiB9CiAK
K3N0YXRpYyBib29sIHVzZVByZVN3aXp6bGVkSW1hZ2VEYXRhKCkKK3sKKyNpZiBkZWZpbmVkKFRF
WE1BUF9PUEVOR0xfRVNfMikKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgcmV0dXJuIGZh
bHNlOworI2VuZGlmCit9CisKIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpkaWRSZXNldCgpCiB7CiAg
ICAgaWYgKCFtX2lkKQpAQCAtNzA2LDcgKzcxNSwyNCBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6
dXBkYXRlQ29udGVudHMoSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBj
bwogICAgIGJ5dGVzUGVyTGluZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJm
YWNlKTsKICNlbmRpZgogCi0gICAgdXBkYXRlQ29udGVudHMoaW1hZ2VEYXRhLCB0YXJnZXRSZWN0
LCBvZmZzZXQsIGJ5dGVzUGVyTGluZSk7CisgICAgaWYgKHVzZVByZVN3aXp6bGVkSW1hZ2VEYXRh
KCkpIHsKKyAgICAgICAgaW50IGhlaWdodDsKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAgaGVp
Z2h0ID0gcUltYWdlLmhlaWdodCgpOworI2VsaWYgVVNFKENBSVJPKQorICAgICAgICBoZWlnaHQg
PSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoc3VyZmFjZSk7CisjZW5kaWYKKyAgICAg
ICAgdW5zaWduZWQgYnl0ZXMgPSBieXRlc1BlckxpbmUgKiBoZWlnaHQ7CisgICAgICAgIHZvaWQq
IHNyY0RhdGEgPSByZWludGVycHJldF9jYXN0PHZvaWQgKj4oY29uc3RfY2FzdDxjaGFyKj4oaW1h
Z2VEYXRhKSk7CisgICAgICAgIHZvaWQqIGNvcGllZEltYWdlRGF0YSA9IGZhc3RNYWxsb2MoYnl0
ZXMpOworICAgICAgICBpZiAoY29waWVkSW1hZ2VEYXRhKSB7CisgICAgICAgICAgICBtZW1jcHko
Y29waWVkSW1hZ2VEYXRhLCBzcmNEYXRhLCBieXRlcyk7CisgICAgICAgICAgICB1cGRhdGVDb250
ZW50cyhjb3BpZWRJbWFnZURhdGEsIHRhcmdldFJlY3QsIG9mZnNldCwgYnl0ZXNQZXJMaW5lKTsK
KyAgICAgICAgICAgIGZhc3RGcmVlKGNvcGllZEltYWdlRGF0YSk7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgdXBkYXRlQ29udGVudHMoaW1hZ2VEYXRhLCB0YXJnZXRSZWN0LCBvZmZzZXQs
IGJ5dGVzUGVyTGluZSk7CisgICAgfSBlbHNlCisgICAgICAgIHVwZGF0ZUNvbnRlbnRzKGltYWdl
RGF0YSwgdGFyZ2V0UmVjdCwgb2Zmc2V0LCBieXRlc1BlckxpbmUpOwogfQogCiAjaWYgRU5BQkxF
KENTU19GSUxURVJTKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168839</attachid>
            <date>2012-10-15 19:17:07 -0700</date>
            <delta_ts>2012-10-16 23:11:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98728-20121016111557.patch</filename>
            <type>text/plain</type>
            <size>12537</size>
            <attacher name="Hyungchan Kim">hyungchan2.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE0Zjc5NjE3OTU5ZGE4
NTU2ZDYzOTliNzg3ZmI0ZmNmZGViOGQyNC4uNzZjMDlkZjVjYzhmNTAxMGY1OGYxOGUyMDM0NDI2
NTBlZDUxZjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisKKzIwMTItMTAtMTUgIEh5
dW5nY2hhbiBLaW0gIDxoeXVuZ2NoYW4yLmtpbUBsZ2UuY29tPgorCisgICAgICAgIFtUZXhtYXBd
IFVzZSB0ZW1wb3JhcnkgYnVmZmVyIGZvciBiYWNraW5nIGRpcmVjdGx5IGNvbXBvc2l0ZWQgaW1h
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NzI4
CisKKyAgICAgICAgV2hlbiBkcml2ZXJTdXBwb3J0c0JHUkFTd2l6emxpbmcoKSByZXR1cm5zIGZh
bHNlLCBpdCBzd2l6emxlcyB0aGUKKyAgICAgICAgc291cmNlIGRhdGEgb2YgaW1hZ2UgaW4gQml0
bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cy4KKyAgICAgICAgSWYgdGhlIHNhbWUgdHdvICJk
aXJlY3RseSBjb21wb3NpdGVkIGltYWdlIiB3ZXJlIHVzZWQgZm9yIGFuaW1hdGlvbiwKKyAgICAg
ICAgYXQgbGVhc3Qgb25lIG9mIHRoZW0gd2lsbCBoYXZlIHJnYiBzd2FwcGVkIGNvbG9yLgorCisg
ICAgICAgIFRoaXMgY2hhbmdlIHdpbGwgbWFrZSBCaXRtYXBUZXh0dXJlR0wgdXNlIHRlbXBvcmFy
eSBidWZmZXIgb25seSBmb3IKKyAgICAgICAgZGlyZWN0bHkgY29tcG9zaXRlZCBpbWFnZS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5o
OgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZTo6c2V0RGlyZWN0bHlDb21wb3NpdGVk
RmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlOjpyZXNldERpcmVjdGx5Q29t
cG9zaXRlZEZsYWcpOgorICAgICAgICAoQml0bWFwVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCaXRtYXBUZXh0dXJlOjppc0RpcmVjdGx5Q29tcG9zaXRlZEltYWdlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZTo6dXBkYXRlQ29udGVudHMpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250
ZW50c0Zyb21JbWFnZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJU
aWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChUZXh0
dXJlTWFwcGVyVGlsZSk6CisgICAgICAgIChUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRh
dGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNv
bnRlbnRzKToKKwogMjAxMi0xMC0xNSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzEzNjcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaApp
bmRleCBhOTBkYmU0ZjE1YTEyNzdmZmEyMDcxMzYyY2YwYWNlNDYzMDUyYTE1Li5mZDM5MThjM2Vi
ZmI1NzEwMDVmZWVhYWJlM2ZjOTNlZjY4N2FlMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTUzLDcg
KzUzLDggQEAgY2xhc3MgVGV4dHVyZU1hcHBlcjsKIGNsYXNzIEJpdG1hcFRleHR1cmUgIDogcHVi
bGljIFJlZkNvdW50ZWQ8Qml0bWFwVGV4dHVyZT4gewogcHVibGljOgogICAgIGVudW0gRmxhZyB7
Ci0gICAgICAgIFN1cHBvcnRzQWxwaGEgPSAweDAxCisgICAgICAgIFN1cHBvcnRzQWxwaGEgPSAx
IDw8IDAsCisgICAgICAgIFN1cHBvcnRzRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UgPSAxIDw8IDEK
ICAgICB9OwogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFnczsKQEAgLTgyLDkgKzgzLDEzIEBA
IHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2V0KCkgeyB9CiAKKyAgICBp
bmxpbmUgdm9pZCBzZXREaXJlY3RseUNvbXBvc2l0ZWRGbGFnKCkgeyBtX2ZsYWdzIHw9IFN1cHBv
cnRzRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2U7IH0KKyAgICBpbmxpbmUgdm9pZCByZXNldERpcmVj
dGx5Q29tcG9zaXRlZEZsYWcoKSB7IG1fZmxhZ3MgJj0gflN1cHBvcnRzRGlyZWN0bHlDb21wb3Np
dGVkSW1hZ2U7IH0KKwogICAgIGlubGluZSBJbnRTaXplIGNvbnRlbnRTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZW50U2l6ZTsgfQogICAgIGlubGluZSBpbnQgbnVtYmVyT2ZCeXRlcygpIGNv
bnN0IHsgcmV0dXJuIHNpemUoKS53aWR0aCgpICogc2l6ZSgpLmhlaWdodCgpICogYnBwKCkgPj4g
MzsgfQogICAgIGlubGluZSBib29sIGlzT3BhcXVlKCkgY29uc3QgeyByZXR1cm4gIShtX2ZsYWdz
ICYgU3VwcG9ydHNBbHBoYSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc0RpcmVjdGx5Q29tcG9zaXRl
ZEltYWdlKCkgY29uc3QgeyByZXR1cm4gIShtX2ZsYWdzICYgU3VwcG9ydHNEaXJlY3RseUNvbXBv
c2l0ZWRJbWFnZSk7IH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gYXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIqLCBjb25z
dCBCaXRtYXBUZXh0dXJlJiBjb250ZW50VGV4dHVyZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYp
IHsgcmV0dXJuIHRoaXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNw
cAppbmRleCA5OTVjYzc5ZGE2MzJiY2Q5NDFjODY0ZDI5OTdjYTMyZTY0N2RmMWVlLi44NjU3NmQy
N2MxNTlmODczOTIyNDc1NTllNGU2Yzc2YjI5Njc2ZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJCYWNraW5nU3RvcmUuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgVGV4dHVyZU1hcHBl
clN1cmZhY2VCYWNraW5nU3RvcmU6OnNldFN1cmZhY2UoUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZh
Y2U+IHN1CiB9CiAjZW5kaWYKIAotdm9pZCBUZXh0dXJlTWFwcGVyVGlsZTo6dXBkYXRlQ29udGVu
dHMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRS
ZWN0JiBkaXJ0eVJlY3QpCit2b2lkIFRleHR1cmVNYXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyhU
ZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3Qm
IGRpcnR5UmVjdCwgYm9vbCBpc0RpcmVjdGx5Q29tcG9zaXRlZEltYWdlKQogewogICAgIEludFJl
Y3QgdGFyZ2V0UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QobV9yZWN0KTsKICAgICB0YXJnZXRSZWN0
LmludGVyc2VjdChkaXJ0eVJlY3QpOwpAQCAtOTEsNyArOTEsMTEgQEAgdm9pZCBUZXh0dXJlTWFw
cGVyVGlsZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgSW1h
Z2UqIGltYWcKICAgICAgICAgbV90ZXh0dXJlLT5yZXNldCh0YXJnZXRSZWN0LnNpemUoKSwgaW1h
Z2UtPmN1cnJlbnRGcmFtZUhhc0FscGhhKCkgPyBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhh
IDogMCk7CiAgICAgfQogCisgICAgaWYgKGlzRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UpCisgICAg
ICAgIG1fdGV4dHVyZS0+c2V0RGlyZWN0bHlDb21wb3NpdGVkRmxhZygpOwogICAgIG1fdGV4dHVy
ZS0+dXBkYXRlQ29udGVudHMoaW1hZ2UsIHRhcmdldFJlY3QsIHNvdXJjZU9mZnNldCk7CisgICAg
aWYgKGlzRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UpCisgICAgICAgIG1fdGV4dHVyZS0+cmVzZXRE
aXJlY3RseUNvbXBvc2l0ZWRGbGFnKCk7CiB9CiAKIHZvaWQgVGV4dHVyZU1hcHBlclRpbGU6OnBh
aW50KFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2ssIGNvbnN0
IHVuc2lnbmVkIGV4cG9zZWRFZGdlcykKQEAgLTExMCw3ICsxMTQsNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHNGcm9tSW1hZ2VJZk5lZWRlZChU
ZXh0dXJlTWFwcAogICAgIGlmICghbV9pbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBk
YXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgbV9pbWFnZS5nZXQoKSk7CisgICAgdXBkYXRlQ29u
dGVudHModGV4dHVyZU1hcHBlciwgbV9pbWFnZS5nZXQoKSwgdHJ1ZSk7CiAgICAgbV9pbWFnZS5j
bGVhcigpOwogfQogCkBAIC0yMDQsMTEgKzIwOCwxMSBAQCB2b2lkIFRleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZTo6Y3JlYXRlT3JEZXN0cm95VGlsZXNJZk5lZWRlZChjb25zdCBGbG9hdFNp
egogICAgICAgICBtX3RpbGVzLnJlbW92ZSh0aWxlSW5kaWNlc1RvUmVtb3ZlW2ldKTsKIH0KIAot
dm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1
cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEltYWdlKiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiB0
b3RhbFNpemUsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgVGV4dHVyZU1hcHBlclRp
bGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFw
cGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxTaXplLCBjb25zdCBJbnRS
ZWN0JiBkaXJ0eVJlY3QsIGJvb2wgaXNEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZSkKIHsKICAgICBj
cmVhdGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVkKHRvdGFsU2l6ZSwgdGV4dHVyZU1hcHBlci0+bWF4
VGV4dHVyZVNpemUoKSwgaW1hZ2UtPmN1cnJlbnRGcmFtZUhhc0FscGhhKCkpOwogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV90aWxlcy5zaXplKCk7ICsraSkKLSAgICAgICAgbV90aWxlc1tp
XS51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZSwgZGlydHlSZWN0KTsKKyAgICAg
ICAgbV90aWxlc1tpXS51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZSwgZGlydHlS
ZWN0LCBpc0RpcmVjdGx5Q29tcG9zaXRlZEltYWdlKTsKIH0KIAogUGFzc1JlZlB0cjxCaXRtYXBU
ZXh0dXJlPiBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnRleHR1cmUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgKaW5kZXggOTNkZTNkYTA2ZjBmZDlm
NTkxMTYwNjgyNTA3NjRmYWU5MzI4NzkyNy4uNDIyNzRmNDM4MWQ1MTBkOWJhODJmYzQ4OGMxNzRl
ZDlkYjcyYWUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oCkBAIC03
Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgdm9pZCBzZXRUZXh0dXJlKEJpdG1hcFRl
eHR1cmUqIHRleHR1cmUpIHsgbV90ZXh0dXJlID0gdGV4dHVyZTsgfQogICAgIGlubGluZSB2b2lk
IHNldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSB7IG1fcmVjdCA9IHJlY3Q7IH0KIAotICAg
IHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciosIEltYWdlKiwgY29uc3QgSW50UmVj
dCYpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciosIEltYWdlKiwgY29u
c3QgSW50UmVjdCYsIGJvb2wgaXNEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZSA9IGZhbHNlKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoVGV4dHVyZU1hcHBlciosIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgZmxvYXQsIEJpdG1hcFRleHR1cmUqLCBjb25zdCB1bnNpZ25lZCBleHBvc2VkRWRn
ZXMpOwogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJUaWxlKCkgeyB9CiAKQEAgLTk3LDggKzk3
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9y
ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFw
cGVyKiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9h
dCwgQml0bWFwVGV4dHVyZSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJl
PiB0ZXh0dXJlKCkgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVy
KiwgSW1hZ2UqLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgdm9pZCB1
cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2Up
IHsgdXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UsIGltYWdlLT5zaXplKCksIGlt
YWdlLT5yZWN0KCkpOyB9CisgICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiwg
SW1hZ2UqLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbnRSZWN0JiwgYm9vbCBpc0RpcmVjdGx5
Q29tcG9zaXRlZEltYWdlID0gZmFsc2UpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlLCBib29sIGlzRGlyZWN0bHlDb21w
b3NpdGVkSW1hZ2UgPSBmYWxzZSkgeyB1cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFn
ZSwgaW1hZ2UtPnNpemUoKSwgaW1hZ2UtPnJlY3QoKSwgaXNEaXJlY3RseUNvbXBvc2l0ZWRJbWFn
ZSk7IH0KICAgICBpbmxpbmUgRmxvYXRSZWN0IHJlY3QoKSBjb25zdCB7IHJldHVybiBGbG9hdFJl
Y3QoRmxvYXRQb2ludDo6emVybygpLCBtX3NpemUpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKTsgfQogICAgIHZvaWQgc2V0Q29u
dGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkgeyBtX2ltYWdlID0gaW1hZ2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAKaW5kZXggZTUyODk0NzNiNWY1MWE2MzAwYmM1MTZhNjM1ZTU5NGY0OGEzOTcw
Ny4uYmQ1YjYwM2M5NzFiNzg4NjhkMDVhYWVjOWEwYjQ5ZmI3ZWFiMzNhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAKQEAgLTYzOSwzNyArNjM5LDQzIEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpk
aWRSZXNldCgpCiB9CiAKIAotdm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKGNv
bnN0IHZvaWQqIGRhdGEsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50
JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUpCit2b2lkIEJpdG1hcFRleHR1cmVHTDo6
dXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCogc3JjRGF0YSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0
UmVjdCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSkKIHsK
ICAgICBQbGF0Zm9ybTNET2JqZWN0IGdsRm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE7
CiAgICAgbV9jb250ZXh0M0QtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
XzJELCBtX2lkKTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIGJ5dGVzUGVyUGl4ZWwgPSA0OworICAg
IGNoYXIqIGRhdGEgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdF9jYXN0PHZvaWQqPihz
cmNEYXRhKSk7CisgICAgVmVjdG9yPGNoYXI+IHRlbXBvcmFyeURhdGE7CisKKyAgICAvLyBwcmVw
YXJlIHRlbXBvcmFyeURhdGEgaWYgbmVjZXNzYXJ5CisgICAgaWYgKCghZHJpdmVyU3VwcG9ydHNC
R1JBU3dpenpsaW5nKCkgJiYgaXNEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZSgpKSB8fCAhZHJpdmVy
U3VwcG9ydHNTdWJJbWFnZSgpKSB7CisgICAgICAgIHRlbXBvcmFyeURhdGEucmVzaXplKHRhcmdl
dFJlY3Qud2lkdGgoKSAqIHRhcmdldFJlY3QuaGVpZ2h0KCkgKiBieXRlc1BlclBpeGVsKTsKKyAg
ICAgICAgZGF0YSA9IHRlbXBvcmFyeURhdGEuZGF0YSgpOworICAgICAgICBjb25zdCBjaGFyKiBi
aXRzID0gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KHNyY0RhdGEpOworICAgICAgICBjb25zdCBj
aGFyKiBzcmMgPSBiaXRzICsgc291cmNlT2Zmc2V0LnkoKSAqIGJ5dGVzUGVyTGluZSArIHNvdXJj
ZU9mZnNldC54KCkgKiBieXRlc1BlclBpeGVsOworICAgICAgICBjaGFyKiBkc3QgPSBkYXRhOwor
ICAgICAgICBjb25zdCBpbnQgdGFyZ2V0Qnl0ZXNQZXJMaW5lID0gdGFyZ2V0UmVjdC53aWR0aCgp
ICogYnl0ZXNQZXJQaXhlbDsKKyAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCB0YXJnZXRSZWN0
LmhlaWdodCgpOyArK3kpIHsKKyAgICAgICAgICAgIG1lbWNweShkc3QsIHNyYywgdGFyZ2V0Qnl0
ZXNQZXJMaW5lKTsKKyAgICAgICAgICAgIHNyYyArPSBieXRlc1BlckxpbmU7CisgICAgICAgICAg
ICBkc3QgKz0gdGFyZ2V0Qnl0ZXNQZXJMaW5lOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYg
KGRyaXZlclN1cHBvcnRzQkdSQVN3aXp6bGluZygpKQogICAgICAgICBnbEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpCR1JBOwogICAgIGVsc2UKLSAgICAgICAgc3dpenpsZUJHUkFUb1JHQkEo
cmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGRhdGEpKSwgSW50
UmVjdChzb3VyY2VPZmZzZXQsIHRhcmdldFJlY3Quc2l6ZSgpKSwgYnl0ZXNQZXJMaW5lIC8gYnl0
ZXNQZXJQaXhlbCk7CisgICAgICAgIHN3aXp6bGVCR1JBVG9SR0JBKHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDMyX3QqPihkYXRhKSwgSW50UmVjdChzb3VyY2VPZmZzZXQsIHRhcmdldFJlY3Quc2l6ZSgp
KSwgYnl0ZXNQZXJMaW5lIC8gYnl0ZXNQZXJQaXhlbCk7CiAKICAgICBpZiAoYnl0ZXNQZXJMaW5l
ID09IHRhcmdldFJlY3Qud2lkdGgoKSAqIGJ5dGVzUGVyUGl4ZWwgJiYgc291cmNlT2Zmc2V0ID09
IEludFBvaW50Ojp6ZXJvKCkpIHsKLSAgICAgICAgbV9jb250ZXh0M0QtPnRleFN1YkltYWdlMkQo
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRS
ZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1h
dCwgREVGQVVMVF9URVhUVVJFX1BJWEVMX1RSQU5TRkVSX1RZUEUsIChjb25zdCBjaGFyKilkYXRh
KTsKKyAgICAgICAgbV9jb250ZXh0M0QtPnRleFN1YkltYWdlMkQoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSwgdGFyZ2V0UmVj
dC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgREVGQVVMVF9URVhUVVJF
X1BJWEVMX1RSQU5TRkVSX1RZUEUsIGRhdGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgLy8gRm9yIEVTIGRyaXZlcnMgdGhhdCBkb24ndCBzdXBwb3J0IHN1Yi1pbWFnZXMuCiAgICAg
aWYgKCFkcml2ZXJTdXBwb3J0c1N1YkltYWdlKCkpIHsKLSAgICAgICAgY29uc3QgY2hhciogYml0
cyA9IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihkYXRhKTsKLSAgICAgICAgY29uc3QgY2hhciog
c3JjID0gYml0cyArIHNvdXJjZU9mZnNldC55KCkgKiBieXRlc1BlckxpbmUgKyBzb3VyY2VPZmZz
ZXQueCgpICogYnl0ZXNQZXJQaXhlbDsKLSAgICAgICAgVmVjdG9yPGNoYXI+IHRlbXBvcmFyeURh
dGEodGFyZ2V0UmVjdC53aWR0aCgpICogdGFyZ2V0UmVjdC5oZWlnaHQoKSAqIGJ5dGVzUGVyUGl4
ZWwpOwotICAgICAgICBjaGFyKiBkc3QgPSB0ZW1wb3JhcnlEYXRhLmRhdGEoKTsKLQotICAgICAg
ICBjb25zdCBpbnQgdGFyZ2V0Qnl0ZXNQZXJMaW5lID0gdGFyZ2V0UmVjdC53aWR0aCgpICogYnl0
ZXNQZXJQaXhlbDsKLSAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCB0YXJnZXRSZWN0LmhlaWdo
dCgpOyArK3kpIHsKLSAgICAgICAgICAgIG1lbWNweShkc3QsIHNyYywgdGFyZ2V0Qnl0ZXNQZXJM
aW5lKTsKLSAgICAgICAgICAgIHNyYyArPSBieXRlc1BlckxpbmU7Ci0gICAgICAgICAgICBkc3Qg
Kz0gdGFyZ2V0Qnl0ZXNQZXJMaW5lOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9jb250ZXh0M0Qt
PnRleFN1YkltYWdlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJl
Y3QueCgpLCB0YXJnZXRSZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0Lmhl
aWdodCgpLCBnbEZvcm1hdCwgREVGQVVMVF9URVhUVVJFX1BJWEVMX1RSQU5TRkVSX1RZUEUsIHRl
bXBvcmFyeURhdGEuZGF0YSgpKTsKKyAgICAgICAgbV9jb250ZXh0M0QtPnRleFN1YkltYWdlMkQo
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRS
ZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1h
dCwgREVGQVVMVF9URVhUVVJFX1BJWEVMX1RSQU5TRkVSX1RZUEUsIGRhdGEpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC02NzgsNyArNjg0LDcgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6
OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIGRhdGEsIGNvbnN0IEludFJlY3QmIHRhcmdldFJl
Y3QKICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR0xfVU5QQUNLX1JPV19MRU5HVEgsIGJ5
dGVzUGVyTGluZSAvIGJ5dGVzUGVyUGl4ZWwpOwogICAgIG1fY29udGV4dDNELT5waXhlbFN0b3Jl
aShHTF9VTlBBQ0tfU0tJUF9ST1dTLCBzb3VyY2VPZmZzZXQueSgpKTsKICAgICBtX2NvbnRleHQz
RC0+cGl4ZWxTdG9yZWkoR0xfVU5QQUNLX1NLSVBfUElYRUxTLCBzb3VyY2VPZmZzZXQueCgpKTsK
LSAgICBtX2NvbnRleHQzRC0+dGV4U3ViSW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV8yRCwgMCwgdGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRo
KCksIHRhcmdldFJlY3QuaGVpZ2h0KCksIGdsRm9ybWF0LCBERUZBVUxUX1RFWFRVUkVfUElYRUxf
VFJBTlNGRVJfVFlQRSwgKGNvbnN0IGNoYXIqKWRhdGEpOworICAgIG1fY29udGV4dDNELT50ZXhT
dWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCB0YXJnZXRSZWN0Lngo
KSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFyZ2V0UmVjdC5oZWlnaHQo
KSwgZ2xGb3JtYXQsIERFRkFVTFRfVEVYVFVSRV9QSVhFTF9UUkFOU0ZFUl9UWVBFLCBkYXRhKTsK
ICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR0xfVU5QQUNLX1JPV19MRU5HVEgsIDApOwog
ICAgIG1fY29udGV4dDNELT5waXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9ST1dTLCAwKTsKICAg
ICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR0xfVU5QQUNLX1NLSVBfUElYRUxTLCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169095</attachid>
            <date>2012-10-16 23:11:54 -0700</date>
            <delta_ts>2012-10-17 23:51:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98728-20121017151041.patch</filename>
            <type>text/plain</type>
            <size>23384</size>
            <attacher name="Hyungchan Kim">hyungchan2.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE3ZDEwY2Y1MDk5YzM1
NzIwYmUwYzQwMzI5MzhmODU2NDQ0ZmNiYS4uNGFlNzEzYTNlY2Q2NjgxMmJlM2ZlZTljZTMzZTgx
YTNkYmQ1YWU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEwLTE2ICBIeXVu
Z2NoYW4gS2ltICA8aHl1bmdjaGFuMi5raW1AbGdlLmNvbT4KKworICAgICAgICBBZGQgYSBzZXBh
cmF0ZSBmbGFnIGZvciByZ2Igc3dpenpsaW5nIHdoZXRoZXIgaXQgY2FuIGJlIG1vZGlmaWVkIG9y
IG5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg3
MjgKKworICAgICAgICBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKCkgdHJ5IHRvIHN3
aXp6bGUgc291cmNlIEltYWdlIGlmIG9wZW5nbAorICAgICAgICBkcml2ZXIgZG9lc24ndCBzdXBw
b3J0IEJHUkEgZm9ybWF0LgorICAgICAgICBJbiBjYXNlIG9mIGRpcmVjdGx5IGNvbXBvc2l0ZWQg
aW1hZ2UsIHN3aXp6bGluZyBzb3VyY2UgaW1hZ2UKKyAgICAgICAgc2hvdWxkIG5vdCBiZSBtb2Rp
ZmllZCBiZWNhdXNlIGFub3RoZXIgQml0bWFwVGV4dHVyZSB3aWxsIGFsc28gdHJ5CisgICAgICAg
IHRvIHN3aXp6bGUuCisKKyAgICAgICAgQml0bWFwVGV4dHVyZSBub3cgcHJvdmlkZSBVcGRhdGVD
b250ZW50c0ZsYWcgdG8gc2VwYXJhdGUgd2hldGhlcgorICAgICAgICBzb3VyY2UgaW1hZ2UgY2Fu
IGJlIG1vZGlmaWVkIG9yIG5vdAorCisgICAgICAgIGh0dHA6Ly93d3cuc2F0aW5lLm9yZy9yZXNl
YXJjaC93ZWJraXQvc25vd2xlb3BhcmQvc25vd3N0YWNrLmh0bWwKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAoQml0
bWFwVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRp
bGU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHNGcm9tSW1hZ2VJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tp
bmdTdG9yZS5oOgorICAgICAgICAoVGV4dHVyZU1hcHBlclRpbGUpOgorICAgICAgICAoVGV4dHVy
ZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlckdMOjpkcmF3UmVwYWludENvdW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Qml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oOgorICAgICAgICAoQml0bWFwVGV4dHVyZUdM
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdl
QnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6
dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVySW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZl
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnVwZGF0ZUJhY2tp
bmdTdG9yZSk6CisKIDIwMTItMTAtMTYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KIAogICAgICAgICBIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uU2VsZWN0ZWRCeVVzZXIg
Y29uZnVzZXMgbGlzdEluZGV4IGFuZCBvcHRpb25JbmRleApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDNmMWQwNjll
MWE1N2QwYzBlOGVjNzE1MWFlMzUzYzI0NGY5ZmMwZTEuLmQ5Yjk2MTBjMDI4YmM5YjFlZmU5ZDc2
NzljMjNiYTdhNjUwODdhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMi0xMC0x
NiAgSHl1bmdjaGFuIEtpbSAgPGh5dW5nY2hhbjIua2ltQGxnZS5jb20+CisKKyAgICAgICAgQWRk
IGEgc2VwYXJhdGUgZmxhZyBmb3IgcmdiIHN3aXp6bGluZyB3aGV0aGVyIGl0IGNhbiBiZSBtb2Rp
ZmllZCBvciBub3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk4NzI4CisKKyAgICAgICAgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cygpIHRy
eSB0byBzd2l6emxlIHNvdXJjZSBJbWFnZSBpZiBvcGVuZ2wKKyAgICAgICAgZHJpdmVyIGRvZXNu
J3Qgc3VwcG9ydCBCR1JBIGZvcm1hdC4KKyAgICAgICAgSW4gY2FzZSBvZiBkaXJlY3RseSBjb21w
b3NpdGVkIGltYWdlLCBzd2l6emxpbmcgc291cmNlIGltYWdlCisgICAgICAgIHNob3VsZCBub3Qg
YmUgbW9kaWZpZWQgYmVjYXVzZSBhbm90aGVyIEJpdG1hcFRleHR1cmUgd2lsbCBhbHNvIHRyeQor
ICAgICAgICB0byBzd2l6emxlLgorCisgICAgICAgIEJpdG1hcFRleHR1cmUgbm93IHByb3ZpZGUg
VXBkYXRlQ29udGVudHNGbGFnIHRvIHNlcGFyYXRlIHdoZXRoZXIKKyAgICAgICAgc291cmNlIGlt
YWdlIGNhbiBiZSBtb2RpZmllZCBvciBub3QKKworICAgICAgICBodHRwOi8vd3d3LnNhdGluZS5v
cmcvcmVzZWFyY2gvd2Via2l0L3Nub3dsZW9wYXJkL3Nub3dzdGFjay5odG1sCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaDoKKyAgICAg
ICAgKEJpdG1hcFRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVD
b250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFRleHR1cmVNYXBwZXJUaWxlKToKKyAgICAgICAg
KFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaDoKKyAgICAgICAgKEJpdG1hcFRl
eHR1cmVHTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJJbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlSW1hZ2VC
dWZmZXI6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmg6CisgICAgICAgIChCaXRtYXBUZXh0dXJlSW1h
Z2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjp1cGRh
dGVCYWNraW5nU3RvcmUpOgorCiAyMDEyLTEwLTE2ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZW5hbWUgZmVhdHVyZSBkZWZpbmUgRU5BQkxFX1dJREdFVF9SRUdJ
T04gdG8gRU5BQkxFX0RSQUdHQkFMRV9SRUdJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCmluZGV4IGE5MGRiZTRm
MTVhMTI3N2ZmYTIwNzEzNjJjZjBhY2U0NjMwNTJhMTUuLmVhNGE4ZmI0ZTJhNzM4MGNlNGRlMTM0
ZmYyN2I2N2UyOGQ2OTU5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaApAQCAtNTYsNiArNTYsMTEgQEAgcHVi
bGljOgogICAgICAgICBTdXBwb3J0c0FscGhhID0gMHgwMQogICAgIH07CiAKKyAgICBlbnVtIFVw
ZGF0ZUNvbnRlbnRzRmxhZyB7CisgICAgICAgIFVwZGF0ZUNhbk1vZGlmeU9yaWdpbmFsSW1hZ2VE
YXRhID0gMHgwMSwKKyAgICAgICAgVXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEg
PSAweDAyCisgICAgfTsKKwogICAgIHR5cGVkZWYgdW5zaWduZWQgRmxhZ3M7CiAKICAgICBCaXRt
YXBUZXh0dXJlKCkKQEAgLTY3LDggKzcyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c0JhY2tlZEJ5T3BlbkdMKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
SW50U2l6ZSBzaXplKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50
cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYgb2Zmc2V0KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0
JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBvZmZzZXQsIGludCBieXRlc1BlckxpbmUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoSW1hZ2UqLCBjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgSW50UG9pbnQmIG9mZnNldCwgVXBkYXRlQ29udGVudHNGbGFnKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJn
ZXQsIGNvbnN0IEludFBvaW50JiBvZmZzZXQsIGludCBieXRlc1BlckxpbmUsIFVwZGF0ZUNvbnRl
bnRzRmxhZykgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgPSAwOwogICAg
IGlubGluZSBGbGFncyBmbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDk5NWNjNzlkYTYzMmJjZDk0
MWM4NjRkMjk5N2NhMzJlNjQ3ZGYxZWUuLjExMmZiNDJkZTdhYzYzOThhODRiNjQ0NmZhOGUzZjQ0
YWI3Mjk1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAKQEAg
LTczLDcgKzczLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZTo6c2V0
U3VyZmFjZShQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gc3UKIH0KICNlbmRpZgogCi12b2lk
IFRleHR1cmVNYXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJl
TWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgVGV4
dHVyZU1hcHBlclRpbGU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBw
ZXIsIEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0LCBCaXRtYXBUZXh0dXJl
OjpVcGRhdGVDb250ZW50c0ZsYWcgdXBkYXRlQ29udGVudHNGbGFnKQogewogICAgIEludFJlY3Qg
dGFyZ2V0UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QobV9yZWN0KTsKICAgICB0YXJnZXRSZWN0Lmlu
dGVyc2VjdChkaXJ0eVJlY3QpOwpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJU
aWxlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSog
aW1hZwogICAgICAgICBtX3RleHR1cmUtPnJlc2V0KHRhcmdldFJlY3Quc2l6ZSgpLCBpbWFnZS0+
Y3VycmVudEZyYW1lSGFzQWxwaGEoKSA/IEJpdG1hcFRleHR1cmU6OlN1cHBvcnRzQWxwaGEgOiAw
KTsKICAgICB9CiAKLSAgICBtX3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLCB0YXJnZXRS
ZWN0LCBzb3VyY2VPZmZzZXQpOworICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoaW1hZ2Us
IHRhcmdldFJlY3QsIHNvdXJjZU9mZnNldCwgdXBkYXRlQ29udGVudHNGbGFnKTsKIH0KIAogdm9p
ZCBUZXh0dXJlTWFwcGVyVGlsZTo6cGFpbnQoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0
bWFwVGV4dHVyZSogbWFzaywgY29uc3QgdW5zaWduZWQgZXhwb3NlZEVkZ2VzKQpAQCAtMTEwLDcg
KzExMCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250
ZW50c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBwCiAgICAgaWYgKCFtX2ltYWdlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBtX2ltYWdl
LmdldCgpKTsKKyAgICB1cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBtX2ltYWdlLmdldCgp
LCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CiAg
ICAgbV9pbWFnZS5jbGVhcigpOwogfQogCkBAIC0yMDQsMTEgKzIwNCwxMSBAQCB2b2lkIFRleHR1
cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlT3JEZXN0cm95VGlsZXNJZk5lZWRlZChj
b25zdCBGbG9hdFNpegogICAgICAgICBtX3RpbGVzLnJlbW92ZSh0aWxlSW5kaWNlc1RvUmVtb3Zl
W2ldKTsKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNv
bnRlbnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEltYWdlKiBpbWFnZSwgY29uc3Qg
RmxvYXRTaXplJiB0b3RhbFNpemUsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgVGV4
dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVy
KiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxTaXpl
LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNvbnRlbnRz
RmxhZyB1cGRhdGVDb250ZW50c0ZsYWcpCiB7CiAgICAgY3JlYXRlT3JEZXN0cm95VGlsZXNJZk5l
ZWRlZCh0b3RhbFNpemUsIHRleHR1cmVNYXBwZXItPm1heFRleHR1cmVTaXplKCksIGltYWdlLT5j
dXJyZW50RnJhbWVIYXNBbHBoYSgpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdGls
ZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fdGlsZXNbaV0udXBkYXRlQ29udGVudHModGV4dHVy
ZU1hcHBlciwgaW1hZ2UsIGRpcnR5UmVjdCk7CisgICAgICAgIG1fdGlsZXNbaV0udXBkYXRlQ29u
dGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UsIGRpcnR5UmVjdCwgdXBkYXRlQ29udGVudHNGbGFn
KTsKIH0KIAogUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBUZXh0dXJlTWFwcGVyVGlsZWRCYWNr
aW5nU3RvcmU6OnRleHR1cmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0
b3JlLmgKaW5kZXggOTNkZTNkYTA2ZjBmZDlmNTkxMTYwNjgyNTA3NjRmYWU5MzI4NzkyNy4uYzQ1
NDMwZTMyNmJiYzMzYTJkYjE1MGU3NmYzNzJkNmVmZTM0OTQyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckJhY2tpbmdTdG9yZS5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBpbmxp
bmUgdm9pZCBzZXRUZXh0dXJlKEJpdG1hcFRleHR1cmUqIHRleHR1cmUpIHsgbV90ZXh0dXJlID0g
dGV4dHVyZTsgfQogICAgIGlubGluZSB2b2lkIHNldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KSB7IG1fcmVjdCA9IHJlY3Q7IH0KIAotICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1h
cHBlciosIEltYWdlKiwgY29uc3QgSW50UmVjdCYpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHMo
VGV4dHVyZU1hcHBlciosIEltYWdlKiwgY29uc3QgSW50UmVjdCYsIEJpdG1hcFRleHR1cmU6OlVw
ZGF0ZUNvbnRlbnRzRmxhZyBVcGRhdGVDYW5Nb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CiAgICAg
dmlydHVhbCB2b2lkIHBhaW50KFRleHR1cmVNYXBwZXIqLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYsIGZsb2F0LCBCaXRtYXBUZXh0dXJlKiwgY29uc3QgdW5zaWduZWQgZXhwb3NlZEVkZ2Vz
KTsKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyVGlsZSgpIHsgfQogCkBAIC05Nyw4ICs5Nyw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBl
ciosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQs
IEJpdG1hcFRleHR1cmUqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4g
dGV4dHVyZSgpIGNvbnN0OwotICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlcios
IEltYWdlKiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW50UmVjdCYpOwotICAgIHZvaWQgdXBk
YXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlKSB7
IHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLCBpbWFnZS0+c2l6ZSgpLCBpbWFn
ZS0+cmVjdCgpKTsgfQorICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciosIElt
YWdlKiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW50UmVjdCYsIEJpdG1hcFRleHR1cmU6OlVw
ZGF0ZUNvbnRlbnRzRmxhZyk7CisgICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVy
KiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNvbnRl
bnRzRmxhZyB1cGRhdGVDb250ZW50c0ZsYWcpIHsgdXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBl
ciwgaW1hZ2UsIGltYWdlLT5zaXplKCksIGltYWdlLT5yZWN0KCksIHVwZGF0ZUNvbnRlbnRzRmxh
Zyk7IH0KICAgICBpbmxpbmUgRmxvYXRSZWN0IHJlY3QoKSBjb25zdCB7IHJldHVybiBGbG9hdFJl
Y3QoRmxvYXRQb2ludDo6emVybygpLCBtX3NpemUpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKTsgfQogICAgIHZvaWQgc2V0Q29u
dGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkgeyBtX2ltYWdlID0gaW1hZ2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAKaW5kZXggOTRlNDQ5MzQ1OTk2NTM2OGU2NWRmOGM4NGI2ZjkwMjM1YWJkNDNl
OS4uNWI2MDFlMDRlNjY4NmI1MjI3N2RkN2FmNzVhYTM5OGVhYWQ5YWM5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAKQEAgLTM0Miw3ICszNDIsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJh
d1JlcGFpbnRDb3VudGVyKGludCB2YWx1ZSwgaW50IHBvaW50U2l6ZSwgY29uc3QgRmxvYXRQbwog
CiAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUgPSBhY3F1aXJlVGV4dHVyZUZyb21Q
b29sKHNpemUpOwogICAgIGNvbnN0IHVjaGFyKiBiaXRzID0gaW1hZ2UuYml0cygpOwotICAgIHRl
eHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGJpdHMsIHNvdXJjZVJlY3QsIEludFBvaW50Ojp6ZXJvKCks
IGltYWdlLmJ5dGVzUGVyTGluZSgpKTsKKyAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhiaXRz
LCBzb3VyY2VSZWN0LCBJbnRQb2ludDo6emVybygpLCBpbWFnZS5ieXRlc1BlckxpbmUoKSwgQml0
bWFwVGV4dHVyZTo6VXBkYXRlQ2FuTW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEpOwogICAgIGRyYXdU
ZXh0dXJlKCp0ZXh0dXJlLCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIDEuMGYsIDAsIEFs
bEVkZ2VzKTsKICNlbHNlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTYzMiwzOCArNjMyLDQ0
IEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpkaWRSZXNldCgpCiAgICAgbV9jb250ZXh0M0QtPnRl
eEltYWdlMkREaXJlY3QoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBLCBtX3RleHR1cmVTaXplLndpZHRoKCksIG1fdGV4dHVyZVNpemUuaGVp
Z2h0KCksIDAsIGZvcm1hdCwgREVGQVVMVF9URVhUVVJFX1BJWEVMX1RSQU5TRkVSX1RZUEUsIDAp
OwogfQogCi0KLXZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyhjb25zdCB2b2lk
KiBkYXRhLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQb2ludCYgc291cmNl
T2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lKQordm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNv
bnRlbnRzKGNvbnN0IHZvaWQqIHNyY0RhdGEsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNv
bnN0IEludFBvaW50JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUsIFVwZGF0ZUNvbnRl
bnRzRmxhZyB1cGRhdGVDb250ZW50c0ZsYWcpCiB7CiAgICAgUGxhdGZvcm0zRE9iamVjdCBnbEZv
cm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOwogICAgIG1fY29udGV4dDNELT5iaW5kVGV4
dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgbV9pZCk7CiAKICAgICBjb25zdCB1
bnNpZ25lZCBieXRlc1BlclBpeGVsID0gNDsKKyAgICBjaGFyKiBkYXRhID0gcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4oY29uc3RfY2FzdDx2b2lkKj4oc3JjRGF0YSkpOworICAgIFZlY3RvcjxjaGFy
PiB0ZW1wb3JhcnlEYXRhOworCisgICAgLy8gcHJlcGFyZSB0ZW1wb3JhcnlEYXRhIGlmIG5lY2Vz
c2FyeQorICAgIGlmICgoIWRyaXZlclN1cHBvcnRzQkdSQVN3aXp6bGluZygpICYmIHVwZGF0ZUNv
bnRlbnRzRmxhZyA9PSBVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSkKKyAgICAg
ICAgfHwgIWRyaXZlclN1cHBvcnRzU3ViSW1hZ2UoKSkgeworICAgICAgICB0ZW1wb3JhcnlEYXRh
LnJlc2l6ZSh0YXJnZXRSZWN0LndpZHRoKCkgKiB0YXJnZXRSZWN0LmhlaWdodCgpICogYnl0ZXNQ
ZXJQaXhlbCk7CisgICAgICAgIGRhdGEgPSB0ZW1wb3JhcnlEYXRhLmRhdGEoKTsKKyAgICAgICAg
Y29uc3QgY2hhciogYml0cyA9IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihzcmNEYXRhKTsKKyAg
ICAgICAgY29uc3QgY2hhciogc3JjID0gYml0cyArIHNvdXJjZU9mZnNldC55KCkgKiBieXRlc1Bl
ckxpbmUgKyBzb3VyY2VPZmZzZXQueCgpICogYnl0ZXNQZXJQaXhlbDsKKyAgICAgICAgY2hhciog
ZHN0ID0gZGF0YTsKKyAgICAgICAgY29uc3QgaW50IHRhcmdldEJ5dGVzUGVyTGluZSA9IHRhcmdl
dFJlY3Qud2lkdGgoKSAqIGJ5dGVzUGVyUGl4ZWw7CisgICAgICAgIGZvciAoaW50IHkgPSAwOyB5
IDwgdGFyZ2V0UmVjdC5oZWlnaHQoKTsgKyt5KSB7CisgICAgICAgICAgICBtZW1jcHkoZHN0LCBz
cmMsIHRhcmdldEJ5dGVzUGVyTGluZSk7CisgICAgICAgICAgICBzcmMgKz0gYnl0ZXNQZXJMaW5l
OworICAgICAgICAgICAgZHN0ICs9IHRhcmdldEJ5dGVzUGVyTGluZTsKKyAgICAgICAgfQorICAg
IH0KKwogICAgIGlmIChkcml2ZXJTdXBwb3J0c0JHUkFTd2l6emxpbmcoKSkKICAgICAgICAgZ2xG
b3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQTsKICAgICBlbHNlCi0gICAgICAgIHN3aXp6
bGVCR1JBVG9SR0JBKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihjb25zdF9jYXN0PHZvaWQq
PihkYXRhKSksIEludFJlY3Qoc291cmNlT2Zmc2V0LCB0YXJnZXRSZWN0LnNpemUoKSksIGJ5dGVz
UGVyTGluZSAvIGJ5dGVzUGVyUGl4ZWwpOworICAgICAgICBzd2l6emxlQkdSQVRvUkdCQShyZWlu
dGVycHJldF9jYXN0PHVpbnQzMl90Kj4oZGF0YSksIEludFJlY3Qoc291cmNlT2Zmc2V0LCB0YXJn
ZXRSZWN0LnNpemUoKSksIGJ5dGVzUGVyTGluZSAvIGJ5dGVzUGVyUGl4ZWwpOwogCiAgICAgaWYg
KGJ5dGVzUGVyTGluZSA9PSB0YXJnZXRSZWN0LndpZHRoKCkgKiBieXRlc1BlclBpeGVsICYmIHNv
dXJjZU9mZnNldCA9PSBJbnRQb2ludDo6emVybygpKSB7Ci0gICAgICAgIG1fY29udGV4dDNELT50
ZXhTdWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCB0YXJnZXRSZWN0
LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFyZ2V0UmVjdC5oZWln
aHQoKSwgZ2xGb3JtYXQsIERFRkFVTFRfVEVYVFVSRV9QSVhFTF9UUkFOU0ZFUl9UWVBFLCAoY29u
c3QgY2hhciopZGF0YSk7CisgICAgICAgIG1fY29udGV4dDNELT50ZXhTdWJJbWFnZTJEKEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCB0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55
KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFyZ2V0UmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQsIERF
RkFVTFRfVEVYVFVSRV9QSVhFTF9UUkFOU0ZFUl9UWVBFLCBkYXRhKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIC8vIEZvciBFUyBkcml2ZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBzdWIt
aW1hZ2VzLgogICAgIGlmICghZHJpdmVyU3VwcG9ydHNTdWJJbWFnZSgpKSB7Ci0gICAgICAgIGNv
bnN0IGNoYXIqIGJpdHMgPSBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSk7Ci0gICAgICAg
IGNvbnN0IGNoYXIqIHNyYyA9IGJpdHMgKyBzb3VyY2VPZmZzZXQueSgpICogYnl0ZXNQZXJMaW5l
ICsgc291cmNlT2Zmc2V0LngoKSAqIGJ5dGVzUGVyUGl4ZWw7Ci0gICAgICAgIFZlY3RvcjxjaGFy
PiB0ZW1wb3JhcnlEYXRhKHRhcmdldFJlY3Qud2lkdGgoKSAqIHRhcmdldFJlY3QuaGVpZ2h0KCkg
KiBieXRlc1BlclBpeGVsKTsKLSAgICAgICAgY2hhciogZHN0ID0gdGVtcG9yYXJ5RGF0YS5kYXRh
KCk7Ci0KLSAgICAgICAgY29uc3QgaW50IHRhcmdldEJ5dGVzUGVyTGluZSA9IHRhcmdldFJlY3Qu
d2lkdGgoKSAqIGJ5dGVzUGVyUGl4ZWw7Ci0gICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgdGFy
Z2V0UmVjdC5oZWlnaHQoKTsgKyt5KSB7Ci0gICAgICAgICAgICBtZW1jcHkoZHN0LCBzcmMsIHRh
cmdldEJ5dGVzUGVyTGluZSk7Ci0gICAgICAgICAgICBzcmMgKz0gYnl0ZXNQZXJMaW5lOwotICAg
ICAgICAgICAgZHN0ICs9IHRhcmdldEJ5dGVzUGVyTGluZTsKLSAgICAgICAgfQotCi0gICAgICAg
IG1fY29udGV4dDNELT50ZXhTdWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJE
LCAwLCB0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwg
dGFyZ2V0UmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQsIERFRkFVTFRfVEVYVFVSRV9QSVhFTF9UUkFO
U0ZFUl9UWVBFLCB0ZW1wb3JhcnlEYXRhLmRhdGEoKSk7CisgICAgICAgIG1fY29udGV4dDNELT50
ZXhTdWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCB0YXJnZXRSZWN0
LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFyZ2V0UmVjdC5oZWln
aHQoKSwgZ2xGb3JtYXQsIERFRkFVTFRfVEVYVFVSRV9QSVhFTF9UUkFOU0ZFUl9UWVBFLCBkYXRh
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNjcyLDE0ICs2NzgsMTQgQEAgdm9pZCBC
aXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIGRhdGEsIGNvbnN0IElu
dFJlY3QmIHRhcmdldFJlY3QKICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR0xfVU5QQUNL
X1JPV19MRU5HVEgsIGJ5dGVzUGVyTGluZSAvIGJ5dGVzUGVyUGl4ZWwpOwogICAgIG1fY29udGV4
dDNELT5waXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9ST1dTLCBzb3VyY2VPZmZzZXQueSgpKTsK
ICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR0xfVU5QQUNLX1NLSVBfUElYRUxTLCBzb3Vy
Y2VPZmZzZXQueCgpKTsKLSAgICBtX2NvbnRleHQzRC0+dGV4U3ViSW1hZ2UyRChHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgdGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0
YXJnZXRSZWN0LndpZHRoKCksIHRhcmdldFJlY3QuaGVpZ2h0KCksIGdsRm9ybWF0LCBERUZBVUxU
X1RFWFRVUkVfUElYRUxfVFJBTlNGRVJfVFlQRSwgKGNvbnN0IGNoYXIqKWRhdGEpOworICAgIG1f
Y29udGV4dDNELT50ZXhTdWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAw
LCB0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFy
Z2V0UmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQsIERFRkFVTFRfVEVYVFVSRV9QSVhFTF9UUkFOU0ZF
Ul9UWVBFLCBkYXRhKTsKICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR0xfVU5QQUNLX1JP
V19MRU5HVEgsIDApOwogICAgIG1fY29udGV4dDNELT5waXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJ
UF9ST1dTLCAwKTsKICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR0xfVU5QQUNLX1NLSVBf
UElYRUxTLCAwKTsKICNlbmRpZgogfQogCi12b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29u
dGVudHMoSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQ
b2ludCYgb2Zmc2V0KQordm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKEltYWdl
KiBpbWFnZSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIG9mZnNl
dCwgVXBkYXRlQ29udGVudHNGbGFnIHVwZGF0ZUNvbnRlbnRzRmxhZykKIHsKICAgICBpZiAoIWlt
YWdlKQogICAgICAgICByZXR1cm47CkBAIC03MDAsNyArNzA2LDcgQEAgdm9pZCBCaXRtYXBUZXh0
dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0
UmVjdCwgY28KICAgICBieXRlc1BlckxpbmUgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9zdHJp
ZGUoc3VyZmFjZSk7CiAjZW5kaWYKIAotICAgIHVwZGF0ZUNvbnRlbnRzKGltYWdlRGF0YSwgdGFy
Z2V0UmVjdCwgb2Zmc2V0LCBieXRlc1BlckxpbmUpOworICAgIHVwZGF0ZUNvbnRlbnRzKGltYWdl
RGF0YSwgdGFyZ2V0UmVjdCwgb2Zmc2V0LCBieXRlc1BlckxpbmUsIHVwZGF0ZUNvbnRlbnRzRmxh
Zyk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKaW5kZXgg
NjRiZmZhZmU1NDI2ZjNmOTc2NjkwNjM2NzNmYTdkODA1YjFkNTk2Yi4uY2I1OWU0ZmM0M2U1YjYx
MzczZGEyYjRmMWRhZmM3YTAxN2JjZjUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApAQCAtMTM5LDgg
KzEzOSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVpbnQzMl90IGlkKCkgY29uc3QgeyByZXR1
cm4gbV9pZDsgfQogICAgIHVpbnQzMl90IHRleHR1cmVUYXJnZXQoKSBjb25zdCB7IHJldHVybiBH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRDsgfQogICAgIEludFNpemUgdGV4dHVyZVNpemUo
KSBjb25zdCB7IHJldHVybiBtX3RleHR1cmVTaXplOyB9Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50
cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYpOwotICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiwgY29uc3QgSW50UmVjdCYgdGFyZ2V0LCBj
b25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lKTsKKyAgICB2b2lk
IHVwZGF0ZUNvbnRlbnRzKEltYWdlKiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50Jiwg
VXBkYXRlQ29udGVudHNGbGFnKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29u
c3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9m
ZnNldCwgaW50IGJ5dGVzUGVyTGluZSwgVXBkYXRlQ29udGVudHNGbGFnKTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNCYWNrZWRCeU9wZW5HTCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5jcHAK
aW5kZXggOTI4Mjk1OWRlZWM5NzQ0NGZjYmQwMTM5ZThiNDM3OGE2OGNlNjMzZi4uZWVjYWJhYWE4
M2M0ZjAyYmQ2NzI3MGEwYTljMDI2MTBhMmYzNGVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJJbWFnZUJ1ZmZlci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBVU0UoVEVYVFVSRV9NQVBQ
RVIpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgQml0bWFwVGV4dHVyZUltYWdlQnVmZmVy
Ojp1cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiBkYXRhLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRS
ZWN0LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lKQordm9p
ZCBCaXRtYXBUZXh0dXJlSW1hZ2VCdWZmZXI6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIGRh
dGEsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBzb3VyY2VPZmZz
ZXQsIGludCBieXRlc1BlckxpbmUsIFVwZGF0ZUNvbnRlbnRzRmxhZyB1cGRhdGVDb250ZW50c0Zs
YWcpCiB7CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgUUltYWdlIGltYWdlKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWNoYXIqPihkYXRhKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0Lmhl
aWdodCgpLCBieXRlc1BlckxpbmUsIE5hdGl2ZUltYWdlUXQ6OmRlZmF1bHRGb3JtYXRGb3JBbHBo
YUVuYWJsZWRJbWFnZXMoKSk7CkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgQml0bWFwVGV4dHVyZUlt
YWdlQnVmZmVyOjpkaWRSZXNldCgpCiAgICAgbV9pbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
Y29udGVudFNpemUoKSk7CiB9CiAKLXZvaWQgQml0bWFwVGV4dHVyZUltYWdlQnVmZmVyOjp1cGRh
dGVDb250ZW50cyhJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0
IEludFBvaW50JiBvZmZzZXQpCit2b2lkIEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6dXBkYXRl
Q29udGVudHMoSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJ
bnRQb2ludCYgb2Zmc2V0LCBVcGRhdGVDb250ZW50c0ZsYWcgLyp1cGRhdGVjb250ZW50c2ZsYWcq
LykKIHsKICAgICBtX2ltYWdlLT5jb250ZXh0KCktPmRyYXdJbWFnZShpbWFnZSwgQ29sb3JTcGFj
ZURldmljZVJHQiwgdGFyZ2V0UmVjdCwgSW50UmVjdChvZmZzZXQsIHRhcmdldFJlY3Quc2l6ZSgp
KSwgQ29tcG9zaXRlQ29weSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgK
aW5kZXggN2Q1MWU4ODA1YTNmMmVjOTAyZWI2MzliNjNkMTkwZmQxNjM2ZGRmNy4uZDFmYzExOWFm
NDNlZGU4ZjZmMTMzZmZiODlmOWQ5NjAxZDNiOTU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
SW1hZ2VCdWZmZXIuaApAQCAtMzQsOCArMzQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlc2V0KCk7CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBt
X2ltYWdlOyB9CiAgICAgaW5saW5lIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0KCkg
eyByZXR1cm4gbV9pbWFnZSA/IG1faW1hZ2UtPmNvbnRleHQoKSA6IDA7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlQ29udGVudHMoSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9p
bnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0
IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVz
UGVyTGluZSk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKEltYWdlKiwgY29uc3Qg
SW50UmVjdCYsIGNvbnN0IEludFBvaW50JiwgVXBkYXRlQ29udGVudHNGbGFnKTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRhcmdl
dCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSwgVXBkYXRl
Q29udGVudHNGbGFnKTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgUGFzc1JlZlB0cjxC
aXRtYXBUZXh0dXJlPiBhcHBseUZpbHRlcnMoVGV4dHVyZU1hcHBlciosIGNvbnN0IEJpdG1hcFRl
eHR1cmUmLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJMYXllci5jcHAKaW5kZXggZTM2ZGJjOTQ4YWY0YmQ4YTE5NjdhYmYyM2RjYjRkNTVjNGJkNGFm
NS4uYTI3OGY2MTg3YmFmMjIwMjFhNTMyMWIxNjEyMWExNjcxMTExZTgyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJMYXllci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJM
YXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEdy
YXBoaQogCiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGltYWdlQnVmZmVyLT5jb3B5SW1hZ2Uo
RG9udENvcHlCYWNraW5nU3RvcmUpOwogICAgIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9y
ZSogYmFja2luZ1N0b3JlID0gc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0
b3JlKj4obV9iYWNraW5nU3RvcmUuZ2V0KCkpOwotICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlQ29u
dGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UuZ2V0KCksIG1fc2l6ZSwgZGlydHlSZWN0KTsKKyAg
ICBiYWNraW5nU3RvcmUtPnVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLmdldCgp
LCBtX3NpemUsIGRpcnR5UmVjdCwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2FuTW9kaWZ5T3JpZ2lu
YWxJbWFnZURhdGEpOwogCiAgICAgYmFja2luZ1N0b3JlLT5zZXRTaG93RGVidWdCb3JkZXJzKGxh
eWVyLT5zaG93RGVidWdCb3JkZXJzKCkpOwogICAgIGJhY2tpbmdTdG9yZS0+c2V0RGVidWdCb3Jk
ZXIobV9kZWJ1Z0JvcmRlckNvbG9yLCBtX2RlYnVnQm9yZGVyV2lkdGgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwCmluZGV4IGJlMDkzZTBjMDQxZTEwNGYxMGI5
MjA3ODhmZGYwMWI2MjNiYjM3YWYuLmU3M2UyNWUwNzVkZjY0MGM4YjkwMjEwZmU0YzFmOWIyMTQz
ZGI2ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAKQEAg
LTE5NSwxMyArMTk1LDEzIEBAIHZvaWQgU2hhcmVhYmxlU3VyZmFjZTo6Y29weVRvVGV4dHVyZShQ
YXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHBhc3NUZXh0CiAgICAgICAgIH0KIAog
ICAgICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9ncmFwaGljc1N1cmZhY2UtPmNyZWF0ZVJl
YWRPbmx5SW1hZ2UoSW50UmVjdChzb3VyY2VPZmZzZXQsIHRhcmdldC5zaXplKCkpKTsKLSAgICAg
ICAgdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoaW1hZ2UuZ2V0KCksIHRhcmdldCwgSW50UG9pbnQ6
Onplcm8oKSk7CisgICAgICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLmdldCgpLCB0
YXJnZXQsIEludFBvaW50Ojp6ZXJvKCksIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbk1vZGlmeU9y
aWdpbmFsSW1hZ2VEYXRhKTsKICAgICB9CiAjZW5kaWYKIAogICAgIEFTU0VSVChtX2JpdG1hcCk7
CiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IG1fYml0bWFwLT5jcmVhdGVJbWFnZSgpOwotICAg
IHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLmdldCgpLCB0YXJnZXQsIHNvdXJjZU9mZnNl
dCk7CisgICAgdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoaW1hZ2UuZ2V0KCksIHRhcmdldCwgc291
cmNlT2Zmc2V0LCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5Nb2RpZnlPcmlnaW5hbEltYWdlRGF0
YSk7CiAgICAgcmV0dXJuOwogfQogI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAppbmRleCBmMDUzYTU3YTY5ZjNjODJlYTkzZTg5
YTVhNzk2YTUwNTMwYTYxM2FmLi5mMWM1ZTI1YmE5ZTJiYTc1YTYwNzIwNmExOGM2OWMwMWEwNzE1
NTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0zNjAsNyArMzYw
LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlSW1hZ2UoaW50NjRfdCBpbWFnZUlE
LCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4KICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFw
PiBiaXRtYXAgPSB3ZWFrQml0bWFwOwogICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyVGlsZWRCYWNr
aW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6
Y3JlYXRlKCk7CiAgICAgbV9kaXJlY3RseUNvbXBvc2l0ZWRJbWFnZXMuc2V0KGltYWdlSUQsIGJh
Y2tpbmdTdG9yZSk7Ci0gICAgYmFja2luZ1N0b3JlLT51cGRhdGVDb250ZW50cyhtX3RleHR1cmVN
YXBwZXIuZ2V0KCksIGJpdG1hcC0+Y3JlYXRlSW1hZ2UoKS5nZXQoKSk7CisgICAgYmFja2luZ1N0
b3JlLT51cGRhdGVDb250ZW50cyhtX3RleHR1cmVNYXBwZXIuZ2V0KCksIGJpdG1hcC0+Y3JlYXRl
SW1hZ2UoKS5nZXQoKSwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJ
bWFnZURhdGEpOwogfQogCiB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpkZXN0cm95SW1hZ2UoaW50
NjRfdCBpbWFnZUlEKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169353</attachid>
            <date>2012-10-17 23:51:52 -0700</date>
            <delta_ts>2012-10-18 08:50:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98728-20121018155038.patch</filename>
            <type>text/plain</type>
            <size>23007</size>
            <attacher name="Hyungchan Kim">hyungchan2.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjA5Njc0NDlmMTg3YTM1
YmViZGUwMWY1YzNkMTMyMjliOGJkNzczMy4uNTAzMzcyZWU3ZGE5ZDk1NTdhNmY2Njc5OGFhNTJi
NDRmNDE2M2M1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEwLTE2ICBIeXVu
Z2NoYW4gS2ltICA8aHl1bmdjaGFuMi5raW1AbGdlLmNvbT4KKworICAgICAgICBBZGQgYSBzZXBh
cmF0ZSBmbGFnIGZvciByZ2Igc3dpenpsaW5nIHdoZXRoZXIgaXQgY2FuIGJlIG1vZGlmaWVkIG9y
IG5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg3
MjgKKworICAgICAgICBCaXRtYXBUZXh0dXJlIHN3aXp6bGVzIHRoZSBzb3VyY2UgaW1hZ2UgaWYg
dGhlIE9wZW5HTCBkcml2ZXIKKyAgICAgICAgZG9lc24ndCBzdXBwb3J0IHRoZSBCR1JBIGV4dGVu
c2lvbi4KKyAgICAgICAgSW4gY2FzZSBvZiBkaXJlY3RseSBjb21wb3NpdGVkIGltYWdlcywgdGhl
IHNvdXJjZSBpbWFnZSBzaG91bGQgbm90CisgICAgICAgIGJlIG1vZGlmaWVkLgorCisgICAgICAg
IGh0dHA6Ly93d3cuc2F0aW5lLm9yZy9yZXNlYXJjaC93ZWJraXQvc25vd2xlb3BhcmQvc25vd3N0
YWNrLmh0bWwKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlci5oOgorICAgICAgICAoQml0bWFwVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHNG
cm9tSW1hZ2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoVGV4dHVyZU1h
cHBlclRpbGUpOgorICAgICAgICAoVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29u
dGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3UmVwYWludENv
dW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5o
OgorICAgICAgICAoQml0bWFwVGV4dHVyZUdMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaDoKKyAgICAg
ICAgKEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyTGF5ZXI6OnVwZGF0ZUJhY2tpbmdTdG9yZSk6CisKIDIwMTItMTAtMTcgIFBhbiBE
ZW5nICA8cGFuLmRlbmdAaW50ZWwuY29tPgogCiAgICAgICAgIFtVc2VyIFRpbWluZ10gaW1wbGVt
ZW50IG1haW4gaW50ZXJmYWNlIGluIG9mIFVzZXIgVGltaW5nLCBhY2NvcmRpbmcgdG8gaHR0cDov
L3d3dy53My5vcmcvVFIvMjAxMi9DUi11c2VyLXRpbWluZy0yMDEyMDcyNi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA1NTA5NjlmOWUwYjkzYmM4MjU0ZDUzYzI2OTdlMzc1ZDAyN2ZjYzg3Li5hMjYwZWE3YzEzZDE4
MjllNmMzYjhjNzEwYmY0ZmUwZDc2NDdmZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMTItMTAtMTYgIEh5dW5nY2hhbiBLaW0gIDxoeXVuZ2NoYW4yLmtpbUBsZ2UuY29tPgorCisg
ICAgICAgIEFkZCBhIHNlcGFyYXRlIGZsYWcgZm9yIHJnYiBzd2l6emxpbmcgd2hldGhlciBpdCBj
YW4gYmUgbW9kaWZpZWQgb3Igbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05ODcyOAorCisgICAgICAgIEJpdG1hcFRleHR1cmUgc3dpenpsZXMgdGhl
IHNvdXJjZSBpbWFnZSBpZiB0aGUgT3BlbkdMIGRyaXZlcgorICAgICAgICBkb2Vzbid0IHN1cHBv
cnQgdGhlIEJHUkEgZXh0ZW5zaW9uLgorICAgICAgICBJbiBjYXNlIG9mIGRpcmVjdGx5IGNvbXBv
c2l0ZWQgaW1hZ2VzLCB0aGUgc291cmNlIGltYWdlIHNob3VsZCBub3QKKyAgICAgICAgYmUgbW9k
aWZpZWQuCisKKyAgICAgICAgaHR0cDovL3d3dy5zYXRpbmUub3JnL3Jlc2VhcmNoL3dlYmtpdC9z
bm93bGVvcGFyZC9zbm93c3RhY2suaHRtbAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CisgICAgICAgIChCaXRtYXBUZXh0dXJlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZTo6dXBkYXRlQ29u
dGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3Jl
Ojp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmg6Cisg
ICAgICAgIChUZXh0dXJlTWFwcGVyVGlsZSk6CisgICAgICAgIChUZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2lu
Z1N0b3JlOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
R0w6OmRyYXdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
R0w6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgIChCaXRtYXBUZXh0dXJlR0wpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUltYWdlQnVmZmVyOjp1cGRhdGVDb250ZW50
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFn
ZUJ1ZmZlci5oOgorICAgICAgICAoQml0bWFwVGV4dHVyZUltYWdlQnVmZmVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKToKKwog
MjAxMi0xMC0xNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFr
ZSBzdWJjbGFzc2luZyBvZiBXS1ZpZXcgc2FmZXIgYnkgbmFtZXNwYWNpbmcgbWV0aG9kcyBhbmQg
ZWxpbWluYXRpbmcgaXRzIHVzZSBhcyBhbiBvYnNlcnZlciBhbmQgZGVsZWdhdGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5oCmluZGV4IDg2YTU1ZGY0OWU5ZDdkZDY4MDNmNDM2MzEzNjA0ODFiYmM5ZjAwZTEuLjI4MmJm
MmNhNGQ5Yjg3ZTQ3NzliMDJhNDNmZDcyMWM0MGYxOTc0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaApAQCAt
NTYsNiArNTYsMTEgQEAgcHVibGljOgogICAgICAgICBTdXBwb3J0c0FscGhhID0gMHgwMQogICAg
IH07CiAKKyAgICBlbnVtIFVwZGF0ZUNvbnRlbnRzRmxhZyB7CisgICAgICAgIFVwZGF0ZUNhbk1v
ZGlmeU9yaWdpbmFsSW1hZ2VEYXRhLAorICAgICAgICBVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5h
bEltYWdlRGF0YQorICAgIH07CisKICAgICB0eXBlZGVmIHVuc2lnbmVkIEZsYWdzOwogCiAgICAg
Qml0bWFwVGV4dHVyZSgpCkBAIC02Nyw4ICs3Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNCYWNrZWRCeU9wZW5HTCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0
dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29u
dGVudHMoSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiwgY29uc3QgSW50
UmVjdCYgdGFyZ2V0LCBjb25zdCBJbnRQb2ludCYgb2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKEltYWdlKiwgY29uc3QgSW50UmVj
dCYsIGNvbnN0IEludFBvaW50JiBvZmZzZXQsIFVwZGF0ZUNvbnRlbnRzRmxhZykgPSAwOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiwgY29uc3QgSW50UmVjdCYg
dGFyZ2V0LCBjb25zdCBJbnRQb2ludCYgb2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCBVcGRhdGVD
b250ZW50c0ZsYWcpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0ID0gMDsK
ICAgICBpbmxpbmUgRmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcAppbmRleCA5OTVjYzc5ZGE2MzJi
Y2Q5NDFjODY0ZDI5OTdjYTMyZTY0N2RmMWVlLi4xMTJmYjQyZGU3YWM2Mzk4YTg0YjY0NDZmYThl
M2Y0NGFiNzI5NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3Bw
CkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU6
OnNldFN1cmZhY2UoUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+IHN1CiB9CiAjZW5kaWYKIAot
dm9pZCBUZXh0dXJlTWFwcGVyVGlsZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciogdGV4
dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCit2b2lk
IFRleHR1cmVNYXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJl
TWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCwgQml0bWFwVGV4
dHVyZTo6VXBkYXRlQ29udGVudHNGbGFnIHVwZGF0ZUNvbnRlbnRzRmxhZykKIHsKICAgICBJbnRS
ZWN0IHRhcmdldFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KG1fcmVjdCk7CiAgICAgdGFyZ2V0UmVj
dC5pbnRlcnNlY3QoZGlydHlSZWN0KTsKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBUZXh0dXJlTWFw
cGVyVGlsZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgSW1h
Z2UqIGltYWcKICAgICAgICAgbV90ZXh0dXJlLT5yZXNldCh0YXJnZXRSZWN0LnNpemUoKSwgaW1h
Z2UtPmN1cnJlbnRGcmFtZUhhc0FscGhhKCkgPyBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhh
IDogMCk7CiAgICAgfQogCi0gICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhpbWFnZSwgdGFy
Z2V0UmVjdCwgc291cmNlT2Zmc2V0KTsKKyAgICBtX3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGlt
YWdlLCB0YXJnZXRSZWN0LCBzb3VyY2VPZmZzZXQsIHVwZGF0ZUNvbnRlbnRzRmxhZyk7CiB9CiAK
IHZvaWQgVGV4dHVyZU1hcHBlclRpbGU6OnBhaW50KFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBw
ZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHks
IEJpdG1hcFRleHR1cmUqIG1hc2ssIGNvbnN0IHVuc2lnbmVkIGV4cG9zZWRFZGdlcykKQEAgLTEx
MCw3ICsxMTAsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRl
Q29udGVudHNGcm9tSW1hZ2VJZk5lZWRlZChUZXh0dXJlTWFwcAogICAgIGlmICghbV9pbWFnZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgbV9p
bWFnZS5nZXQoKSk7CisgICAgdXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgbV9pbWFnZS5n
ZXQoKSwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEp
OwogICAgIG1faW1hZ2UuY2xlYXIoKTsKIH0KIApAQCAtMjA0LDExICsyMDQsMTEgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZU9yRGVzdHJveVRpbGVzSWZOZWVk
ZWQoY29uc3QgRmxvYXRTaXoKICAgICAgICAgbV90aWxlcy5yZW1vdmUodGlsZUluZGljZXNUb1Jl
bW92ZVtpXSk7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRh
dGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNv
bnN0IEZsb2F0U2l6ZSYgdG90YWxTaXplLCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCit2b2lk
IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIHRvdGFs
U2l6ZSwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0LCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDb250
ZW50c0ZsYWcgdXBkYXRlQ29udGVudHNGbGFnKQogewogICAgIGNyZWF0ZU9yRGVzdHJveVRpbGVz
SWZOZWVkZWQodG90YWxTaXplLCB0ZXh0dXJlTWFwcGVyLT5tYXhUZXh0dXJlU2l6ZSgpLCBpbWFn
ZS0+Y3VycmVudEZyYW1lSGFzQWxwaGEoKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X3RpbGVzLnNpemUoKTsgKytpKQotICAgICAgICBtX3RpbGVzW2ldLnVwZGF0ZUNvbnRlbnRzKHRl
eHR1cmVNYXBwZXIsIGltYWdlLCBkaXJ0eVJlY3QpOworICAgICAgICBtX3RpbGVzW2ldLnVwZGF0
ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLCBkaXJ0eVJlY3QsIHVwZGF0ZUNvbnRlbnRz
RmxhZyk7CiB9CiAKIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlOjp0ZXh0dXJlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tp
bmdTdG9yZS5oCmluZGV4IDkzZGUzZGEwNmYwZmQ5ZjU5MTE2MDY4MjUwNzY0ZmFlOTMyODc5Mjcu
LmM0NTQzMGUzMjZiYmMzM2EyZGIxNTBlNzZmMzcyZDZlZmUzNDk0MmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2lu
Z1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAg
aW5saW5lIHZvaWQgc2V0VGV4dHVyZShCaXRtYXBUZXh0dXJlKiB0ZXh0dXJlKSB7IG1fdGV4dHVy
ZSA9IHRleHR1cmU7IH0KICAgICBpbmxpbmUgdm9pZCBzZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCkgeyBtX3JlY3QgPSByZWN0OyB9CiAKLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFRleHR1
cmVNYXBwZXIqLCBJbWFnZSosIGNvbnN0IEludFJlY3QmKTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRl
bnRzKFRleHR1cmVNYXBwZXIqLCBJbWFnZSosIGNvbnN0IEludFJlY3QmLCBCaXRtYXBUZXh0dXJl
OjpVcGRhdGVDb250ZW50c0ZsYWcgVXBkYXRlQ2FuTW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEpOwog
ICAgIHZpcnR1YWwgdm9pZCBwYWludChUZXh0dXJlTWFwcGVyKiwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmLCBmbG9hdCwgQml0bWFwVGV4dHVyZSosIGNvbnN0IHVuc2lnbmVkIGV4cG9zZWRF
ZGdlcyk7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlclRpbGUoKSB7IH0KIApAQCAtOTcsOCAr
OTcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0
b3JlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVN
YXBwZXIqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZs
b2F0LCBCaXRtYXBUZXh0dXJlKik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1
cmU+IHRleHR1cmUoKSBjb25zdDsKLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBw
ZXIqLCBJbWFnZSosIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEludFJlY3QmKTsKLSAgICB2b2lk
IHVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEltYWdlKiBpbWFn
ZSkgeyB1cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZSwgaW1hZ2UtPnNpemUoKSwg
aW1hZ2UtPnJlY3QoKSk7IH0KKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIq
LCBJbWFnZSosIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBCaXRtYXBUZXh0dXJl
OjpVcGRhdGVDb250ZW50c0ZsYWcpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVD
b250ZW50c0ZsYWcgdXBkYXRlQ29udGVudHNGbGFnKSB7IHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVN
YXBwZXIsIGltYWdlLCBpbWFnZS0+c2l6ZSgpLCBpbWFnZS0+cmVjdCgpLCB1cGRhdGVDb250ZW50
c0ZsYWcpOyB9CiAgICAgaW5saW5lIEZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gRmxv
YXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsgfQogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSk7IH0KICAgICB2b2lkIHNl
dENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpIHsgbV9pbWFnZSA9IGltYWdlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0wuY3BwCmluZGV4IDE5ZmVhZTg2OGMyYTMzN2FkNTczNmU2YWNiZjY2NTVjOTk2
ZmJlMzguLmQ0MDE1YTdjN2Q4NWMxMjFhOWYzOWUyMTBhNzU0NDk4ZDgzNDBlMjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0wuY3BwCkBAIC0zNDIsNyArMzQyLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6
OmRyYXdSZXBhaW50Q291bnRlcihpbnQgdmFsdWUsIGludCBwb2ludFNpemUsIGNvbnN0IEZsb2F0
UG8KIAogICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gYWNxdWlyZVRleHR1cmVG
cm9tUG9vbChzaXplKTsKICAgICBjb25zdCB1Y2hhciogYml0cyA9IGltYWdlLmJpdHMoKTsKLSAg
ICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhiaXRzLCBzb3VyY2VSZWN0LCBJbnRQb2ludDo6emVy
bygpLCBpbWFnZS5ieXRlc1BlckxpbmUoKSk7CisgICAgdGV4dHVyZS0+dXBkYXRlQ29udGVudHMo
Yml0cywgc291cmNlUmVjdCwgSW50UG9pbnQ6Onplcm8oKSwgaW1hZ2UuYnl0ZXNQZXJMaW5lKCks
IEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbk1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKICAgICBk
cmF3VGV4dHVyZSgqdGV4dHVyZSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCAxLjBmLCAw
LCBBbGxFZGdlcyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CkBAIC02MzYsMzgg
KzYzNiw0NCBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6ZGlkUmVzZXQoKQogICAgIG1fY29udGV4
dDNELT50ZXhJbWFnZTJERGlyZWN0KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCBH
cmFwaGljc0NvbnRleHQzRDo6UkdCQSwgbV90ZXh0dXJlU2l6ZS53aWR0aCgpLCBtX3RleHR1cmVT
aXplLmhlaWdodCgpLCAwLCBmb3JtYXQsIERFRkFVTFRfVEVYVFVSRV9QSVhFTF9UUkFOU0ZFUl9U
WVBFLCAwKTsKIH0KIAotCi12b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoY29u
c3Qgdm9pZCogZGF0YSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQm
IHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSkKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjp1
cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiBzcmNEYXRhLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRS
ZWN0LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCBVcGRh
dGVDb250ZW50c0ZsYWcgdXBkYXRlQ29udGVudHNGbGFnKQogewogICAgIFBsYXRmb3JtM0RPYmpl
Y3QgZ2xGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTsKICAgICBtX2NvbnRleHQzRC0+
YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1faWQpOwogCiAgICAg
Y29uc3QgdW5zaWduZWQgYnl0ZXNQZXJQaXhlbCA9IDQ7CisgICAgY2hhciogZGF0YSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KHNyY0RhdGEpKTsKKyAgICBWZWN0
b3I8Y2hhcj4gdGVtcG9yYXJ5RGF0YTsKKworICAgIC8vIHByZXBhcmUgdGVtcG9yYXJ5RGF0YSBp
ZiBuZWNlc3NhcnkKKyAgICBpZiAoKCFkcml2ZXJTdXBwb3J0c0JHUkFTd2l6emxpbmcoKSAmJiB1
cGRhdGVDb250ZW50c0ZsYWcgPT0gVXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEp
CisgICAgICAgIHx8ICFkcml2ZXJTdXBwb3J0c1N1YkltYWdlKCkpIHsKKyAgICAgICAgdGVtcG9y
YXJ5RGF0YS5yZXNpemUodGFyZ2V0UmVjdC53aWR0aCgpICogdGFyZ2V0UmVjdC5oZWlnaHQoKSAq
IGJ5dGVzUGVyUGl4ZWwpOworICAgICAgICBkYXRhID0gdGVtcG9yYXJ5RGF0YS5kYXRhKCk7Cisg
ICAgICAgIGNvbnN0IGNoYXIqIGJpdHMgPSBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oc3JjRGF0
YSk7CisgICAgICAgIGNvbnN0IGNoYXIqIHNyYyA9IGJpdHMgKyBzb3VyY2VPZmZzZXQueSgpICog
Ynl0ZXNQZXJMaW5lICsgc291cmNlT2Zmc2V0LngoKSAqIGJ5dGVzUGVyUGl4ZWw7CisgICAgICAg
IGNoYXIqIGRzdCA9IGRhdGE7CisgICAgICAgIGNvbnN0IGludCB0YXJnZXRCeXRlc1BlckxpbmUg
PSB0YXJnZXRSZWN0LndpZHRoKCkgKiBieXRlc1BlclBpeGVsOworICAgICAgICBmb3IgKGludCB5
ID0gMDsgeSA8IHRhcmdldFJlY3QuaGVpZ2h0KCk7ICsreSkgeworICAgICAgICAgICAgbWVtY3B5
KGRzdCwgc3JjLCB0YXJnZXRCeXRlc1BlckxpbmUpOworICAgICAgICAgICAgc3JjICs9IGJ5dGVz
UGVyTGluZTsKKyAgICAgICAgICAgIGRzdCArPSB0YXJnZXRCeXRlc1BlckxpbmU7CisgICAgICAg
IH0KKyAgICB9CisKICAgICBpZiAoZHJpdmVyU3VwcG9ydHNCR1JBU3dpenpsaW5nKCkpCiAgICAg
ICAgIGdsRm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkE7CiAgICAgZWxzZQotICAgICAg
ICBzd2l6emxlQkdSQVRvUkdCQShyZWludGVycHJldF9jYXN0PHVpbnQzMl90Kj4oY29uc3RfY2Fz
dDx2b2lkKj4oZGF0YSkpLCBJbnRSZWN0KHNvdXJjZU9mZnNldCwgdGFyZ2V0UmVjdC5zaXplKCkp
LCBieXRlc1BlckxpbmUgLyBieXRlc1BlclBpeGVsKTsKKyAgICAgICAgc3dpenpsZUJHUkFUb1JH
QkEocmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KGRhdGEpLCBJbnRSZWN0KHNvdXJjZU9mZnNl
dCwgdGFyZ2V0UmVjdC5zaXplKCkpLCBieXRlc1BlckxpbmUgLyBieXRlc1BlclBpeGVsKTsKIAog
ICAgIGlmIChieXRlc1BlckxpbmUgPT0gdGFyZ2V0UmVjdC53aWR0aCgpICogYnl0ZXNQZXJQaXhl
bCAmJiBzb3VyY2VPZmZzZXQgPT0gSW50UG9pbnQ6Onplcm8oKSkgewotICAgICAgICBtX2NvbnRl
eHQzRC0+dGV4U3ViSW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgdGFy
Z2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRoKCksIHRhcmdldFJl
Y3QuaGVpZ2h0KCksIGdsRm9ybWF0LCBERUZBVUxUX1RFWFRVUkVfUElYRUxfVFJBTlNGRVJfVFlQ
RSwgKGNvbnN0IGNoYXIqKWRhdGEpOworICAgICAgICBtX2NvbnRleHQzRC0+dGV4U3ViSW1hZ2Uy
RChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgdGFyZ2V0UmVjdC54KCksIHRhcmdl
dFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRoKCksIHRhcmdldFJlY3QuaGVpZ2h0KCksIGdsRm9y
bWF0LCBERUZBVUxUX1RFWFRVUkVfUElYRUxfVFJBTlNGRVJfVFlQRSwgZGF0YSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICAvLyBGb3IgRVMgZHJpdmVycyB0aGF0IGRvbid0IHN1cHBv
cnQgc3ViLWltYWdlcy4KICAgICBpZiAoIWRyaXZlclN1cHBvcnRzU3ViSW1hZ2UoKSkgewotICAg
ICAgICBjb25zdCBjaGFyKiBiaXRzID0gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpOwot
ICAgICAgICBjb25zdCBjaGFyKiBzcmMgPSBiaXRzICsgc291cmNlT2Zmc2V0LnkoKSAqIGJ5dGVz
UGVyTGluZSArIHNvdXJjZU9mZnNldC54KCkgKiBieXRlc1BlclBpeGVsOwotICAgICAgICBWZWN0
b3I8Y2hhcj4gdGVtcG9yYXJ5RGF0YSh0YXJnZXRSZWN0LndpZHRoKCkgKiB0YXJnZXRSZWN0Lmhl
aWdodCgpICogYnl0ZXNQZXJQaXhlbCk7Ci0gICAgICAgIGNoYXIqIGRzdCA9IHRlbXBvcmFyeURh
dGEuZGF0YSgpOwotCi0gICAgICAgIGNvbnN0IGludCB0YXJnZXRCeXRlc1BlckxpbmUgPSB0YXJn
ZXRSZWN0LndpZHRoKCkgKiBieXRlc1BlclBpeGVsOwotICAgICAgICBmb3IgKGludCB5ID0gMDsg
eSA8IHRhcmdldFJlY3QuaGVpZ2h0KCk7ICsreSkgewotICAgICAgICAgICAgbWVtY3B5KGRzdCwg
c3JjLCB0YXJnZXRCeXRlc1BlckxpbmUpOwotICAgICAgICAgICAgc3JjICs9IGJ5dGVzUGVyTGlu
ZTsKLSAgICAgICAgICAgIGRzdCArPSB0YXJnZXRCeXRlc1BlckxpbmU7Ci0gICAgICAgIH0KLQot
ICAgICAgICBtX2NvbnRleHQzRC0+dGV4U3ViSW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV8yRCwgMCwgdGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRSZWN0Lndp
ZHRoKCksIHRhcmdldFJlY3QuaGVpZ2h0KCksIGdsRm9ybWF0LCBERUZBVUxUX1RFWFRVUkVfUElY
RUxfVFJBTlNGRVJfVFlQRSwgdGVtcG9yYXJ5RGF0YS5kYXRhKCkpOworICAgICAgICBtX2NvbnRl
eHQzRC0+dGV4U3ViSW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgdGFy
Z2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRoKCksIHRhcmdldFJl
Y3QuaGVpZ2h0KCksIGdsRm9ybWF0LCBERUZBVUxUX1RFWFRVUkVfUElYRUxfVFJBTlNGRVJfVFlQ
RSwgZGF0YSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY3NiwxNCArNjgyLDE0IEBA
IHZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiBkYXRhLCBj
b25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0CiAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3RvcmVpKEdM
X1VOUEFDS19ST1dfTEVOR1RILCBieXRlc1BlckxpbmUgLyBieXRlc1BlclBpeGVsKTsKICAgICBt
X2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR0xfVU5QQUNLX1NLSVBfUk9XUywgc291cmNlT2Zmc2V0
LnkoKSk7CiAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3RvcmVpKEdMX1VOUEFDS19TS0lQX1BJWEVM
Uywgc291cmNlT2Zmc2V0LngoKSk7Ci0gICAgbV9jb250ZXh0M0QtPnRleFN1YkltYWdlMkQoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0
LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwg
REVGQVVMVF9URVhUVVJFX1BJWEVMX1RSQU5TRkVSX1RZUEUsIChjb25zdCBjaGFyKilkYXRhKTsK
KyAgICBtX2NvbnRleHQzRC0+dGV4U3ViSW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV8yRCwgMCwgdGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRo
KCksIHRhcmdldFJlY3QuaGVpZ2h0KCksIGdsRm9ybWF0LCBERUZBVUxUX1RFWFRVUkVfUElYRUxf
VFJBTlNGRVJfVFlQRSwgZGF0YSk7CiAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3RvcmVpKEdMX1VO
UEFDS19ST1dfTEVOR1RILCAwKTsKICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR0xfVU5Q
QUNLX1NLSVBfUk9XUywgMCk7CiAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3RvcmVpKEdMX1VOUEFD
S19TS0lQX1BJWEVMUywgMCk7CiAjZW5kaWYKIH0KIAotdm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVw
ZGF0ZUNvbnRlbnRzKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29u
c3QgSW50UG9pbnQmIG9mZnNldCkKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50
cyhJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50
JiBvZmZzZXQsIFVwZGF0ZUNvbnRlbnRzRmxhZyB1cGRhdGVDb250ZW50c0ZsYWcpCiB7CiAgICAg
aWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNzA0LDcgKzcxMCw3IEBAIHZvaWQgQml0
bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyhJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3Qm
IHRhcmdldFJlY3QsIGNvCiAgICAgYnl0ZXNQZXJMaW5lID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9n
ZXRfc3RyaWRlKHN1cmZhY2UpOwogI2VuZGlmCiAKLSAgICB1cGRhdGVDb250ZW50cyhpbWFnZURh
dGEsIHRhcmdldFJlY3QsIG9mZnNldCwgYnl0ZXNQZXJMaW5lKTsKKyAgICB1cGRhdGVDb250ZW50
cyhpbWFnZURhdGEsIHRhcmdldFJlY3QsIG9mZnNldCwgYnl0ZXNQZXJMaW5lLCB1cGRhdGVDb250
ZW50c0ZsYWcpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5o
CmluZGV4IDY0YmZmYWZlNTQyNmYzZjk3NjY5MDYzNjczZmE3ZDgwNWIxZDU5NmIuLmNiNTllNGZj
NDNlNWI2MTM3M2RhMmI0ZjFkYWZjN2EwMTdiY2Y1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKQEAg
LTEzOSw4ICsxMzksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1aW50MzJfdCBpZCgpIGNvbnN0
IHsgcmV0dXJuIG1faWQ7IH0KICAgICB1aW50MzJfdCB0ZXh0dXJlVGFyZ2V0KCkgY29uc3QgeyBy
ZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQ7IH0KICAgICBJbnRTaXplIHRleHR1
cmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0dXJlU2l6ZTsgfQotICAgIHZvaWQgdXBkYXRl
Q29udGVudHMoSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRh
cmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSk7Cisg
ICAgdm9pZCB1cGRhdGVDb250ZW50cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQ
b2ludCYsIFVwZGF0ZUNvbnRlbnRzRmxhZyk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRl
bnRzKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBz
b3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUsIFVwZGF0ZUNvbnRlbnRzRmxhZyk7CiAgICAg
dmlydHVhbCBib29sIGlzQmFja2VkQnlPcGVuR0woKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAK
ICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZm
ZXIuY3BwCmluZGV4IDc4MDJiM2YwZTM0YTYwYjQ5ODVhYzlmNjI5ZGRjNTlmN2RjM2JiYzguLjg0
MzQzMzI1MzE0ZTExMGNiZDczNzlhYjAyMDI1N2E3Mzk5NWE4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZm
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVySW1hZ2VCdWZmZXIuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgVVNFKFRFWFRV
UkVfTUFQUEVSKQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEJpdG1hcFRleHR1cmVJbWFn
ZUJ1ZmZlcjo6dXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCogZGF0YSwgY29uc3QgSW50UmVjdCYg
dGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGlu
ZSkKK3ZvaWQgQml0bWFwVGV4dHVyZUltYWdlQnVmZmVyOjp1cGRhdGVDb250ZW50cyhjb25zdCB2
b2lkKiBkYXRhLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQb2ludCYgc291
cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCBVcGRhdGVDb250ZW50c0ZsYWcpCiB7CiAjaWYg
UExBVEZPUk0oUVQpCiAgICAgUUltYWdlIGltYWdlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWNo
YXIqPihkYXRhKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBieXRl
c1BlckxpbmUsIE5hdGl2ZUltYWdlUXQ6OmRlZmF1bHRGb3JtYXRGb3JBbHBoYUVuYWJsZWRJbWFn
ZXMoKSk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgQml0bWFwVGV4dHVyZUltYWdlQnVmZmVyOjpk
aWRSZXNldCgpCiAgICAgbV9pbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoY29udGVudFNpemUo
KSk7CiB9CiAKLXZvaWQgQml0bWFwVGV4dHVyZUltYWdlQnVmZmVyOjp1cGRhdGVDb250ZW50cyhJ
bWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBv
ZmZzZXQpCit2b2lkIEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6dXBkYXRlQ29udGVudHMoSW1h
Z2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQb2ludCYgb2Zm
c2V0LCBVcGRhdGVDb250ZW50c0ZsYWcpCiB7CiAgICAgbV9pbWFnZS0+Y29udGV4dCgpLT5kcmF3
SW1hZ2UoaW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHRhcmdldFJlY3QsIEludFJlY3Qob2Zm
c2V0LCB0YXJnZXRSZWN0LnNpemUoKSksIENvbXBvc2l0ZUNvcHkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCmluZGV4IGZlOTc3NGEzMmQxM2RjNTljMGU0NzU0NDVlNWI3
YjNlNDlkNjhlMTMuLjJlN2UyMzI2YmRlNDE2NDI5ZWQ3MDA2OGI3NjM1YjhiY2VhZGM0M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVySW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgKQEAgLTM0LDggKzM0LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNldCgpOwogICAgIHZpcnR1YWwgYm9vbCBpc1Zh
bGlkKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZTsgfQogICAgIGlubGluZSBHcmFwaGljc0NvbnRl
eHQqIGdyYXBoaWNzQ29udGV4dCgpIHsgcmV0dXJuIG1faW1hZ2UgPyBtX2ltYWdlLT5jb250ZXh0
KCkgOiAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKEltYWdlKiwgY29uc3Qg
SW50UmVjdCYsIGNvbnN0IEludFBvaW50Jik7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRl
bnRzKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBz
b3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVD
b250ZW50cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYsIFVwZGF0ZUNv
bnRlbnRzRmxhZyk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQq
LCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBzb3VyY2VPZmZzZXQsIGlu
dCBieXRlc1BlckxpbmUsIFVwZGF0ZUNvbnRlbnRzRmxhZyk7CiAjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQogICAgIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gYXBwbHlGaWx0ZXJzKFRleHR1cmVN
YXBwZXIqLCBjb25zdCBCaXRtYXBUZXh0dXJlJiwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IGI5NTQ0NjA5ZTdiZjE1N2M4
ZGEyYmU3MDVjNmYzNjU4YWVhMDI4YmMuLjIxYmQ3YjIzNTZjOTZhMjJlN2I1NWM0NzExNWExZjA2
ZmMwODAwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC0xMzYsNyArMTM2LDcg
QEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnVwZGF0ZUJhY2tpbmdTdG9yZShUZXh0dXJlTWFw
cGVyKiB0ZXh0dXJlTWFwcGVyLCBHcmFwaGkKIAogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBp
bWFnZUJ1ZmZlci0+Y29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKTsKICAgICBUZXh0dXJl
TWFwcGVyVGlsZWRCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSA9IHN0YXRpY19jYXN0PFRleHR1
cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSo+KG1fYmFja2luZ1N0b3JlLmdldCgpKTsKLSAgICBi
YWNraW5nU3RvcmUtPnVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLmdldCgpLCBt
X3NpemUsIGRpcnR5UmVjdCk7CisgICAgYmFja2luZ1N0b3JlLT51cGRhdGVDb250ZW50cyh0ZXh0
dXJlTWFwcGVyLCBpbWFnZS5nZXQoKSwgbV9zaXplLCBkaXJ0eVJlY3QsIEJpdG1hcFRleHR1cmU6
OlVwZGF0ZUNhbk1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKIAogICAgIGJhY2tpbmdTdG9yZS0+
c2V0U2hvd0RlYnVnQm9yZGVycyhsYXllci0+c2hvd0RlYnVnQm9yZGVycygpKTsKICAgICBiYWNr
aW5nU3RvcmUtPnNldERlYnVnQm9yZGVyKG1fZGVidWdCb3JkZXJDb2xvciwgbV9kZWJ1Z0JvcmRl
cldpZHRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcAppbmRl
eCBiZTA5M2UwYzA0MWUxMDRmMTBiOTIwNzg4ZmRmMDFiNjIzYmIzN2FmLi5lNzNlMjVlMDc1ZGY2
NDBjOGI5MDIxMGZlNGMxZjliMjE0M2RiNmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1No
YXJlYWJsZVN1cmZhY2UuY3BwCkBAIC0xOTUsMTMgKzE5NSwxMyBAQCB2b2lkIFNoYXJlYWJsZVN1
cmZhY2U6OmNvcHlUb1RleHR1cmUoUGFzc1JlZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiBw
YXNzVGV4dAogICAgICAgICB9CiAKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IG1fZ3Jh
cGhpY3NTdXJmYWNlLT5jcmVhdGVSZWFkT25seUltYWdlKEludFJlY3Qoc291cmNlT2Zmc2V0LCB0
YXJnZXQuc2l6ZSgpKSk7Ci0gICAgICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLmdl
dCgpLCB0YXJnZXQsIEludFBvaW50Ojp6ZXJvKCkpOworICAgICAgICB0ZXh0dXJlLT51cGRhdGVD
b250ZW50cyhpbWFnZS5nZXQoKSwgdGFyZ2V0LCBJbnRQb2ludDo6emVybygpLCBCaXRtYXBUZXh0
dXJlOjpVcGRhdGVDYW5Nb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CiAgICAgfQogI2VuZGlmCiAK
ICAgICBBU1NFUlQobV9iaXRtYXApOwogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBtX2JpdG1h
cC0+Y3JlYXRlSW1hZ2UoKTsKLSAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhpbWFnZS5nZXQo
KSwgdGFyZ2V0LCBzb3VyY2VPZmZzZXQpOworICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGlt
YWdlLmdldCgpLCB0YXJnZXQsIHNvdXJjZU9mZnNldCwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2Fu
TW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEpOwogICAgIHJldHVybjsKIH0KICNlbmRpZiAvLyBVU0Uo
VEVYVFVSRV9NQVBQRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKaW5kZXgg
ZTg0ZjMyMzZlNTI5Zjk3NWYwZThiZmNkMzllMTcyZWE3YjViNGI4MS4uODJlNThmM2YyNThiZjhm
ZDI2NDBmNTEwMjI4YzlmODM1YTljNWViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0
ZUltYWdlKGludDY0X3QgaW1hZ2VJRCwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+CiAgICAg
UmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gd2Vha0JpdG1hcDsKICAgICBSZWZQdHI8
VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBUZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZSgpOwogICAgIG1fZGlyZWN0bHlDb21wb3NpdGVk
SW1hZ2VzLnNldChpbWFnZUlELCBiYWNraW5nU3RvcmUpOwotICAgIGJhY2tpbmdTdG9yZS0+dXBk
YXRlQ29udGVudHMobV90ZXh0dXJlTWFwcGVyLmdldCgpLCBiaXRtYXAtPmNyZWF0ZUltYWdlKCku
Z2V0KCkpOworICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlQ29udGVudHMobV90ZXh0dXJlTWFwcGVy
LmdldCgpLCBiaXRtYXAtPmNyZWF0ZUltYWdlKCkuZ2V0KCksIEJpdG1hcFRleHR1cmU6OlVwZGF0
ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKIH0KIAogdm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6ZGVzdHJveUltYWdlKGludDY0X3QgaW1hZ2VJRCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169423</attachid>
            <date>2012-10-18 08:50:48 -0700</date>
            <delta_ts>2012-10-21 18:27:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98728-20121019004932.patch</filename>
            <type>text/plain</type>
            <size>23101</size>
            <attacher name="Hyungchan Kim">hyungchan2.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNlYTA1MjFmOGUwYjI3
MzUxZTM3Yzg4M2M3MGIxNjI3Mzc2OTJlNC4uMmQxYTkwMTc0YjI0YTBhNTU5MjdlMzYwMTZlZGQ1
OTQ2ZjFkZThhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEwLTE4ICBIeXVu
Z2NoYW4gS2ltICA8aHl1bmdjaGFuMi5raW1AbGdlLmNvbT4KKworICAgICAgICBBZGQgYSBzZXBh
cmF0ZSBmbGFnIGZvciByZ2Igc3dpenpsaW5nIHdoZXRoZXIgaXQgY2FuIGJlIG1vZGlmaWVkIG9y
IG5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg3
MjgKKworICAgICAgICBCaXRtYXBUZXh0dXJlIHN3aXp6bGVzIHRoZSBzb3VyY2UgaW1hZ2UgaWYg
dGhlIE9wZW5HTCBkcml2ZXIKKyAgICAgICAgZG9lc24ndCBzdXBwb3J0IHRoZSBCR1JBIGV4dGVu
c2lvbi4KKyAgICAgICAgSW4gY2FzZSBvZiBkaXJlY3RseSBjb21wb3NpdGVkIGltYWdlcywgdGhl
IHNvdXJjZSBpbWFnZSBzaG91bGQgbm90CisgICAgICAgIGJlIG1vZGlmaWVkLgorCisgICAgICAg
IGh0dHA6Ly93d3cuc2F0aW5lLm9yZy9yZXNlYXJjaC93ZWJraXQvc25vd2xlb3BhcmQvc25vd3N0
YWNrLmh0bWwKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYXMgdGhpcyBpcyBvbmx5IHRlc3RhYmxlIG9uIHNwZWNpZmljIGhhcmR3
YXJlIGFuZAorICAgICAgICBjdXJyZW50bHkgbm90IGF2YWlhYmxlIGluIHRoZSBib3RzLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaDoKKyAgICAg
ICAgKEJpdG1hcFRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVD
b250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFRleHR1cmVNYXBwZXJUaWxlKToKKyAgICAgICAg
KFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaDoKKyAgICAgICAgKEJpdG1hcFRl
eHR1cmVHTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJJbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlSW1hZ2VC
dWZmZXI6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmg6CisgICAgICAgIChCaXRtYXBUZXh0dXJlSW1h
Z2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjp1cGRh
dGVCYWNraW5nU3RvcmUpOgorCiAyMDEyLTEwLTE3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBdWRpb0J1c0d0ayBzb21ldGltZXMgZmFp
bHMgdG8gbG9hZCB0aGUgSFJURiBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI0NmNjNDc1NTU1NmYx
ZTljOTg5ODAwMTViNGM5MTkyNzljZTFhMjcuLjIwZjNjYjYzMGMzYzc4OWQxYTk1YjRmMjI0N2U3
ODk5M2VjZDBhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMi0xMC0xOCAgSHl1
bmdjaGFuIEtpbSAgPGh5dW5nY2hhbjIua2ltQGxnZS5jb20+CisKKyAgICAgICAgQWRkIGEgc2Vw
YXJhdGUgZmxhZyBmb3IgcmdiIHN3aXp6bGluZyB3aGV0aGVyIGl0IGNhbiBiZSBtb2RpZmllZCBv
ciBub3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
NzI4CisKKyAgICAgICAgQml0bWFwVGV4dHVyZSBzd2l6emxlcyB0aGUgc291cmNlIGltYWdlIGlm
IHRoZSBPcGVuR0wgZHJpdmVyCisgICAgICAgIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgQkdSQSBleHRl
bnNpb24uCisgICAgICAgIEluIGNhc2Ugb2YgZGlyZWN0bHkgY29tcG9zaXRlZCBpbWFnZXMsIHRo
ZSBzb3VyY2UgaW1hZ2Ugc2hvdWxkIG5vdAorICAgICAgICBiZSBtb2RpZmllZC4KKworICAgICAg
ICBodHRwOi8vd3d3LnNhdGluZS5vcmcvcmVzZWFyY2gvd2Via2l0L3Nub3dsZW9wYXJkL3Nub3dz
dGFjay5odG1sCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGFzIHRoaXMgaXMgb25seSB0ZXN0YWJsZSBvbiBzcGVjaWZpYyBoYXJk
d2FyZSBhbmQKKyAgICAgICAgY3VycmVudGx5IG5vdCBhdmFpYWJsZSBpbiB0aGUgYm90cy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CisgICAg
ICAgIChCaXRtYXBUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyVGlsZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRl
Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChUZXh0dXJlTWFwcGVyVGlsZSk6CisgICAgICAg
IChUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgIChCaXRtYXBU
ZXh0dXJlR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVySW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUltYWdl
QnVmZmVyOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoQml0bWFwVGV4dHVyZUlt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6dXBk
YXRlQmFja2luZ1N0b3JlKToKKwogMjAxMi0xMC0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRG9uJ3QgdXNlIHRoZSBDIEFQSSBp
bnRlcm5hbGx5IGluIFdlYktpdFNldHRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCA4NmE1NWRmNDll
OWQ3ZGQ2ODAzZjQzNjMxMzYwNDgxYmJjOWYwMGUxLi4yODJiZjJjYTRkOWI4N2U0Nzc5YjAyYTQz
ZmQ3MjFjNDBmMTk3NGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTU2LDYgKzU2LDExIEBAIHB1Ymxp
YzoKICAgICAgICAgU3VwcG9ydHNBbHBoYSA9IDB4MDEKICAgICB9OwogCisgICAgZW51bSBVcGRh
dGVDb250ZW50c0ZsYWcgeworICAgICAgICBVcGRhdGVDYW5Nb2RpZnlPcmlnaW5hbEltYWdlRGF0
YSwKKyAgICAgICAgVXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEKKyAgICB9Owor
CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFnczsKIAogICAgIEJpdG1hcFRleHR1cmUoKQpAQCAt
NjcsOCArNzIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQmFja2VkQnlPcGVuR0wo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBJbnRTaXplIHNpemUoKSBj
b25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKEltYWdlKiwgY29uc3Qg
SW50UmVjdCYsIGNvbnN0IEludFBvaW50JiBvZmZzZXQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRhcmdldCwgY29uc3Qg
SW50UG9pbnQmIG9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVDb250ZW50cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYg
b2Zmc2V0LCBVcGRhdGVDb250ZW50c0ZsYWcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
Q29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9p
bnQmIG9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSwgVXBkYXRlQ29udGVudHNGbGFnKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCA9IDA7CiAgICAgaW5saW5lIEZsYWdzIGZs
YWdzKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckJhY2tpbmdTdG9yZS5jcHAKaW5kZXggOTk1Y2M3OWRhNjMyYmNkOTQxYzg2NGQyOTk3Y2EzMmU2
NDdkZjFlZS4uMTEyZmI0MmRlN2FjNjM5OGE4NGI2NDQ2ZmE4ZTNmNDRhYjcyOTVjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2
b2lkIFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlOjpzZXRTdXJmYWNlKFBhc3NSZWZQ
dHI8R3JhcGhpY3NTdXJmYWNlPiBzdQogfQogI2VuZGlmCiAKLXZvaWQgVGV4dHVyZU1hcHBlclRp
bGU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEltYWdlKiBp
bWFnZSwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQordm9pZCBUZXh0dXJlTWFwcGVyVGlsZTo6
dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdl
LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNvbnRlbnRz
RmxhZyB1cGRhdGVDb250ZW50c0ZsYWcpCiB7CiAgICAgSW50UmVjdCB0YXJnZXRSZWN0ID0gZW5j
bG9zaW5nSW50UmVjdChtX3JlY3QpOwogICAgIHRhcmdldFJlY3QuaW50ZXJzZWN0KGRpcnR5UmVj
dCk7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGU6OnVwZGF0ZUNvbnRl
bnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEltYWdlKiBpbWFnCiAgICAgICAgIG1f
dGV4dHVyZS0+cmVzZXQodGFyZ2V0UmVjdC5zaXplKCksIGltYWdlLT5jdXJyZW50RnJhbWVIYXNB
bHBoYSgpID8gQml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSA6IDApOwogICAgIH0KIAotICAg
IG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoaW1hZ2UsIHRhcmdldFJlY3QsIHNvdXJjZU9mZnNl
dCk7CisgICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhpbWFnZSwgdGFyZ2V0UmVjdCwgc291
cmNlT2Zmc2V0LCB1cGRhdGVDb250ZW50c0ZsYWcpOwogfQogCiB2b2lkIFRleHR1cmVNYXBwZXJU
aWxlOjpwYWludChUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0dXJlKiBtYXNr
LCBjb25zdCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdlSWZO
ZWVkZWQoVGV4dHVyZU1hcHAKICAgICBpZiAoIW1faW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCkpOworICAgIHVw
ZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCksIEJpdG1hcFRleHR1cmU6
OlVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKICAgICBtX2ltYWdlLmNsZWFy
KCk7CiB9CiAKQEAgLTIwNCwxMSArMjA0LDExIEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFj
a2luZ1N0b3JlOjpjcmVhdGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVkKGNvbnN0IEZsb2F0U2l6CiAg
ICAgICAgIG1fdGlsZXMucmVtb3ZlKHRpbGVJbmRpY2VzVG9SZW1vdmVbaV0pOwogfQogCi12b2lk
IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIHRvdGFs
U2l6ZSwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQordm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIs
IEltYWdlKiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiB0b3RhbFNpemUsIGNvbnN0IEludFJlY3Qm
IGRpcnR5UmVjdCwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ29udGVudHNGbGFnIHVwZGF0ZUNvbnRl
bnRzRmxhZykKIHsKICAgICBjcmVhdGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVkKHRvdGFsU2l6ZSwg
dGV4dHVyZU1hcHBlci0+bWF4VGV4dHVyZVNpemUoKSwgaW1hZ2UtPmN1cnJlbnRGcmFtZUhhc0Fs
cGhhKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90aWxlcy5zaXplKCk7ICsraSkK
LSAgICAgICAgbV90aWxlc1tpXS51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZSwg
ZGlydHlSZWN0KTsKKyAgICAgICAgbV90aWxlc1tpXS51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFw
cGVyLCBpbWFnZSwgZGlydHlSZWN0LCB1cGRhdGVDb250ZW50c0ZsYWcpOwogfQogCiBQYXNzUmVm
UHRyPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dGV4dHVy
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaAppbmRleCA5M2Rl
M2RhMDZmMGZkOWY1OTExNjA2ODI1MDc2NGZhZTkzMjg3OTI3Li5jNDU0MzBlMzI2YmJjMzNhMmRi
MTUwZTc2ZjM3MmQ2ZWZlMzQ5NDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0
b3JlLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIGlubGluZSB2b2lkIHNldFRleHR1
cmUoQml0bWFwVGV4dHVyZSogdGV4dHVyZSkgeyBtX3RleHR1cmUgPSB0ZXh0dXJlOyB9CiAgICAg
aW5saW5lIHZvaWQgc2V0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpIHsgbV9yZWN0ID0gcmVj
dDsgfQogCi0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiwgSW1hZ2UqLCBj
b25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiwg
SW1hZ2UqLCBjb25zdCBJbnRSZWN0JiwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ29udGVudHNGbGFn
IFVwZGF0ZUNhbk1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnQoVGV4dHVyZU1hcHBlciosIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIEJp
dG1hcFRleHR1cmUqLCBjb25zdCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpOwogICAgIHZpcnR1YWwg
flRleHR1cmVNYXBwZXJUaWxlKCkgeyB9CiAKQEAgLTk3LDggKzk3LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgflRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSgpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCwgQml0bWFwVGV4dHVyZSop
OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3Q7
Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiwgSW1hZ2UqLCBjb25zdCBG
bG9hdFNpemUmLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0
dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UpIHsgdXBkYXRlQ29udGVudHMo
dGV4dHVyZU1hcHBlciwgaW1hZ2UsIGltYWdlLT5zaXplKCksIGltYWdlLT5yZWN0KCkpOyB9Cisg
ICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiwgSW1hZ2UqLCBjb25zdCBGbG9h
dFNpemUmLCBjb25zdCBJbnRSZWN0JiwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ29udGVudHNGbGFn
KTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIs
IEltYWdlKiBpbWFnZSwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ29udGVudHNGbGFnIHVwZGF0ZUNv
bnRlbnRzRmxhZykgeyB1cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZSwgaW1hZ2Ut
PnNpemUoKSwgaW1hZ2UtPnJlY3QoKSwgdXBkYXRlQ29udGVudHNGbGFnKTsgfQogICAgIGlubGlu
ZSBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6
ZXJvKCksIG1fc2l6ZSk7IH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmUpOyB9CiAgICAgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoSW1h
Z2UqIGltYWdlKSB7IG1faW1hZ2UgPSBpbWFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRl
eCAxOWZlYWU4NjhjMmEzMzdhZDU3MzZlNmFjYmY2NjU1Yzk5NmZiZTM4Li5kNDAxNWE3YzdkODVj
MTIxYTlmMzllMjEwYTc1NDQ5OGQ4MzQwZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAt
MzQyLDcgKzM0Miw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3UmVwYWludENvdW50ZXIo
aW50IHZhbHVlLCBpbnQgcG9pbnRTaXplLCBjb25zdCBGbG9hdFBvCiAKICAgICBSZWZQdHI8Qml0
bWFwVGV4dHVyZT4gdGV4dHVyZSA9IGFjcXVpcmVUZXh0dXJlRnJvbVBvb2woc2l6ZSk7CiAgICAg
Y29uc3QgdWNoYXIqIGJpdHMgPSBpbWFnZS5iaXRzKCk7Ci0gICAgdGV4dHVyZS0+dXBkYXRlQ29u
dGVudHMoYml0cywgc291cmNlUmVjdCwgSW50UG9pbnQ6Onplcm8oKSwgaW1hZ2UuYnl0ZXNQZXJM
aW5lKCkpOworICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGJpdHMsIHNvdXJjZVJlY3QsIElu
dFBvaW50Ojp6ZXJvKCksIGltYWdlLmJ5dGVzUGVyTGluZSgpLCBCaXRtYXBUZXh0dXJlOjpVcGRh
dGVDYW5Nb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CiAgICAgZHJhd1RleHR1cmUoKnRleHR1cmUs
IHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgMS4wZiwgMCwgQWxsRWRnZXMpOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0odmFsdWUpOwpAQCAtNjM2LDM4ICs2MzYsNDQgQEAgdm9pZCBCaXRt
YXBUZXh0dXJlR0w6OmRpZFJlc2V0KCkKICAgICBtX2NvbnRleHQzRC0+dGV4SW1hZ2UyRERpcmVj
dChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QkEsIG1fdGV4dHVyZVNpemUud2lkdGgoKSwgbV90ZXh0dXJlU2l6ZS5oZWlnaHQoKSwgMCwgZm9y
bWF0LCBERUZBVUxUX1RFWFRVUkVfUElYRUxfVFJBTlNGRVJfVFlQRSwgMCk7CiB9CiAKLQotdm9p
ZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIGRhdGEsIGNvbnN0
IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBzb3VyY2VPZmZzZXQsIGludCBi
eXRlc1BlckxpbmUpCit2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoY29uc3Qg
dm9pZCogc3JjRGF0YSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQm
IHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSwgVXBkYXRlQ29udGVudHNGbGFnIHVwZGF0
ZUNvbnRlbnRzRmxhZykKIHsKICAgICBQbGF0Zm9ybTNET2JqZWN0IGdsRm9ybWF0ID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQkE7CiAgICAgbV9jb250ZXh0M0QtPmJpbmRUZXh0dXJlKEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFXzJELCBtX2lkKTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIGJ5dGVz
UGVyUGl4ZWwgPSA0OworICAgIGNoYXIqIGRhdGEgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihj
b25zdF9jYXN0PHZvaWQqPihzcmNEYXRhKSk7CisgICAgVmVjdG9yPGNoYXI+IHRlbXBvcmFyeURh
dGE7CisKKyAgICAvLyBwcmVwYXJlIHRlbXBvcmFyeURhdGEgaWYgbmVjZXNzYXJ5CisgICAgaWYg
KCghZHJpdmVyU3VwcG9ydHNCR1JBU3dpenpsaW5nKCkgJiYgdXBkYXRlQ29udGVudHNGbGFnID09
IFVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKQorICAgICAgICB8fCAhZHJpdmVy
U3VwcG9ydHNTdWJJbWFnZSgpKSB7CisgICAgICAgIHRlbXBvcmFyeURhdGEucmVzaXplKHRhcmdl
dFJlY3Qud2lkdGgoKSAqIHRhcmdldFJlY3QuaGVpZ2h0KCkgKiBieXRlc1BlclBpeGVsKTsKKyAg
ICAgICAgZGF0YSA9IHRlbXBvcmFyeURhdGEuZGF0YSgpOworICAgICAgICBjb25zdCBjaGFyKiBi
aXRzID0gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KHNyY0RhdGEpOworICAgICAgICBjb25zdCBj
aGFyKiBzcmMgPSBiaXRzICsgc291cmNlT2Zmc2V0LnkoKSAqIGJ5dGVzUGVyTGluZSArIHNvdXJj
ZU9mZnNldC54KCkgKiBieXRlc1BlclBpeGVsOworICAgICAgICBjaGFyKiBkc3QgPSBkYXRhOwor
ICAgICAgICBjb25zdCBpbnQgdGFyZ2V0Qnl0ZXNQZXJMaW5lID0gdGFyZ2V0UmVjdC53aWR0aCgp
ICogYnl0ZXNQZXJQaXhlbDsKKyAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCB0YXJnZXRSZWN0
LmhlaWdodCgpOyArK3kpIHsKKyAgICAgICAgICAgIG1lbWNweShkc3QsIHNyYywgdGFyZ2V0Qnl0
ZXNQZXJMaW5lKTsKKyAgICAgICAgICAgIHNyYyArPSBieXRlc1BlckxpbmU7CisgICAgICAgICAg
ICBkc3QgKz0gdGFyZ2V0Qnl0ZXNQZXJMaW5lOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYg
KGRyaXZlclN1cHBvcnRzQkdSQVN3aXp6bGluZygpKQogICAgICAgICBnbEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpCR1JBOwogICAgIGVsc2UKLSAgICAgICAgc3dpenpsZUJHUkFUb1JHQkEo
cmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGRhdGEpKSwgSW50
UmVjdChzb3VyY2VPZmZzZXQsIHRhcmdldFJlY3Quc2l6ZSgpKSwgYnl0ZXNQZXJMaW5lIC8gYnl0
ZXNQZXJQaXhlbCk7CisgICAgICAgIHN3aXp6bGVCR1JBVG9SR0JBKHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDMyX3QqPihkYXRhKSwgSW50UmVjdChzb3VyY2VPZmZzZXQsIHRhcmdldFJlY3Quc2l6ZSgp
KSwgYnl0ZXNQZXJMaW5lIC8gYnl0ZXNQZXJQaXhlbCk7CiAKICAgICBpZiAoYnl0ZXNQZXJMaW5l
ID09IHRhcmdldFJlY3Qud2lkdGgoKSAqIGJ5dGVzUGVyUGl4ZWwgJiYgc291cmNlT2Zmc2V0ID09
IEludFBvaW50Ojp6ZXJvKCkpIHsKLSAgICAgICAgbV9jb250ZXh0M0QtPnRleFN1YkltYWdlMkQo
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRS
ZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1h
dCwgREVGQVVMVF9URVhUVVJFX1BJWEVMX1RSQU5TRkVSX1RZUEUsIChjb25zdCBjaGFyKilkYXRh
KTsKKyAgICAgICAgbV9jb250ZXh0M0QtPnRleFN1YkltYWdlMkQoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSwgdGFyZ2V0UmVj
dC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgREVGQVVMVF9URVhUVVJF
X1BJWEVMX1RSQU5TRkVSX1RZUEUsIGRhdGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgLy8gRm9yIEVTIGRyaXZlcnMgdGhhdCBkb24ndCBzdXBwb3J0IHN1Yi1pbWFnZXMuCiAgICAg
aWYgKCFkcml2ZXJTdXBwb3J0c1N1YkltYWdlKCkpIHsKLSAgICAgICAgY29uc3QgY2hhciogYml0
cyA9IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihkYXRhKTsKLSAgICAgICAgY29uc3QgY2hhciog
c3JjID0gYml0cyArIHNvdXJjZU9mZnNldC55KCkgKiBieXRlc1BlckxpbmUgKyBzb3VyY2VPZmZz
ZXQueCgpICogYnl0ZXNQZXJQaXhlbDsKLSAgICAgICAgVmVjdG9yPGNoYXI+IHRlbXBvcmFyeURh
dGEodGFyZ2V0UmVjdC53aWR0aCgpICogdGFyZ2V0UmVjdC5oZWlnaHQoKSAqIGJ5dGVzUGVyUGl4
ZWwpOwotICAgICAgICBjaGFyKiBkc3QgPSB0ZW1wb3JhcnlEYXRhLmRhdGEoKTsKLQotICAgICAg
ICBjb25zdCBpbnQgdGFyZ2V0Qnl0ZXNQZXJMaW5lID0gdGFyZ2V0UmVjdC53aWR0aCgpICogYnl0
ZXNQZXJQaXhlbDsKLSAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCB0YXJnZXRSZWN0LmhlaWdo
dCgpOyArK3kpIHsKLSAgICAgICAgICAgIG1lbWNweShkc3QsIHNyYywgdGFyZ2V0Qnl0ZXNQZXJM
aW5lKTsKLSAgICAgICAgICAgIHNyYyArPSBieXRlc1BlckxpbmU7Ci0gICAgICAgICAgICBkc3Qg
Kz0gdGFyZ2V0Qnl0ZXNQZXJMaW5lOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9jb250ZXh0M0Qt
PnRleFN1YkltYWdlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJl
Y3QueCgpLCB0YXJnZXRSZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0Lmhl
aWdodCgpLCBnbEZvcm1hdCwgREVGQVVMVF9URVhUVVJFX1BJWEVMX1RSQU5TRkVSX1RZUEUsIHRl
bXBvcmFyeURhdGEuZGF0YSgpKTsKKyAgICAgICAgbV9jb250ZXh0M0QtPnRleFN1YkltYWdlMkQo
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRS
ZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1h
dCwgREVGQVVMVF9URVhUVVJFX1BJWEVMX1RSQU5TRkVSX1RZUEUsIGRhdGEpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC02NzYsMTQgKzY4MiwxNCBAQCB2b2lkIEJpdG1hcFRleHR1cmVH
TDo6dXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCogZGF0YSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0
UmVjdAogICAgIG1fY29udGV4dDNELT5waXhlbFN0b3JlaShHTF9VTlBBQ0tfUk9XX0xFTkdUSCwg
Ynl0ZXNQZXJMaW5lIC8gYnl0ZXNQZXJQaXhlbCk7CiAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3Rv
cmVpKEdMX1VOUEFDS19TS0lQX1JPV1MsIHNvdXJjZU9mZnNldC55KCkpOwogICAgIG1fY29udGV4
dDNELT5waXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9QSVhFTFMsIHNvdXJjZU9mZnNldC54KCkp
OwotICAgIG1fY29udGV4dDNELT50ZXhTdWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCAwLCB0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lk
dGgoKSwgdGFyZ2V0UmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQsIERFRkFVTFRfVEVYVFVSRV9QSVhF
TF9UUkFOU0ZFUl9UWVBFLCAoY29uc3QgY2hhciopZGF0YSk7CisgICAgbV9jb250ZXh0M0QtPnRl
eFN1YkltYWdlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3Qu
eCgpLCB0YXJnZXRSZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdo
dCgpLCBnbEZvcm1hdCwgREVGQVVMVF9URVhUVVJFX1BJWEVMX1RSQU5TRkVSX1RZUEUsIGRhdGEp
OwogICAgIG1fY29udGV4dDNELT5waXhlbFN0b3JlaShHTF9VTlBBQ0tfUk9XX0xFTkdUSCwgMCk7
CiAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3RvcmVpKEdMX1VOUEFDS19TS0lQX1JPV1MsIDApOwog
ICAgIG1fY29udGV4dDNELT5waXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9QSVhFTFMsIDApOwog
I2VuZGlmCiB9CiAKLXZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyhJbWFnZSog
aW1hZ2UsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBvZmZzZXQp
Cit2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoSW1hZ2UqIGltYWdlLCBjb25z
dCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQb2ludCYgb2Zmc2V0LCBVcGRhdGVDb250
ZW50c0ZsYWcgdXBkYXRlQ29udGVudHNGbGFnKQogewogICAgIGlmICghaW1hZ2UpCiAgICAgICAg
IHJldHVybjsKQEAgLTcwNCw3ICs3MTAsNyBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRl
Q29udGVudHMoSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjbwogICAg
IGJ5dGVzUGVyTGluZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlKTsK
ICNlbmRpZgogCi0gICAgdXBkYXRlQ29udGVudHMoaW1hZ2VEYXRhLCB0YXJnZXRSZWN0LCBvZmZz
ZXQsIGJ5dGVzUGVyTGluZSk7CisgICAgdXBkYXRlQ29udGVudHMoaW1hZ2VEYXRhLCB0YXJnZXRS
ZWN0LCBvZmZzZXQsIGJ5dGVzUGVyTGluZSwgdXBkYXRlQ29udGVudHNGbGFnKTsKIH0KIAogI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAppbmRleCA2NGJmZmFmZTU0MjZm
M2Y5NzY2OTA2MzY3M2ZhN2Q4MDViMWQ1OTZiLi5jYjU5ZTRmYzQzZTViNjEzNzNkYTJiNGYxZGFm
YzdhMDE3YmNmNTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCkBAIC0xMzksOCArMTM5LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdWludDMyX3QgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAg
ICAgdWludDMyX3QgdGV4dHVyZVRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFXzJEOyB9CiAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdGV4dHVyZVNpemU7IH0KLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKEltYWdlKiwgY29u
c3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50Jik7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNv
bnRlbnRzKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50
JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUpOworICAgIHZvaWQgdXBkYXRlQ29udGVu
dHMoSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmLCBVcGRhdGVDb250ZW50
c0ZsYWcpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiwgY29u
c3QgSW50UmVjdCYgdGFyZ2V0LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0
ZXNQZXJMaW5lLCBVcGRhdGVDb250ZW50c0ZsYWcpOwogICAgIHZpcnR1YWwgYm9vbCBpc0JhY2tl
ZEJ5T3BlbkdMKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcAppbmRleCA3ODAyYjNm
MGUzNGE2MGI0OTg1YWM5ZjYyOWRkYzU5ZjdkYzNiYmM4Li44NDM0MzMyNTMxNGUxMTBjYmQ3Mzc5
YWIwMjAyNTdhNzM5OTVhODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVy
LmNwcApAQCAtMjksNyArMjksNyBAQAogI2lmIFVTRShURVhUVVJFX01BUFBFUikKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdm9pZCBCaXRtYXBUZXh0dXJlSW1hZ2VCdWZmZXI6OnVwZGF0ZUNvbnRl
bnRzKGNvbnN0IHZvaWQqIGRhdGEsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IElu
dFBvaW50JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUpCit2b2lkIEJpdG1hcFRleHR1
cmVJbWFnZUJ1ZmZlcjo6dXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCogZGF0YSwgY29uc3QgSW50
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVz
UGVyTGluZSwgVXBkYXRlQ29udGVudHNGbGFnKQogewogI2lmIFBMQVRGT1JNKFFUKQogICAgIFFJ
bWFnZSBpbWFnZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVjaGFyKj4oZGF0YSksIHRhcmdldFJl
Y3Qud2lkdGgoKSwgdGFyZ2V0UmVjdC5oZWlnaHQoKSwgYnl0ZXNQZXJMaW5lLCBOYXRpdmVJbWFn
ZVF0OjpkZWZhdWx0Rm9ybWF0Rm9yQWxwaGFFbmFibGVkSW1hZ2VzKCkpOwpAQCAtNTksNyArNTks
NyBAQCB2b2lkIEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6ZGlkUmVzZXQoKQogICAgIG1faW1h
Z2UgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNvbnRlbnRTaXplKCkpOwogfQogCi12b2lkIEJpdG1h
cFRleHR1cmVJbWFnZUJ1ZmZlcjo6dXBkYXRlQ29udGVudHMoSW1hZ2UqIGltYWdlLCBjb25zdCBJ
bnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQb2ludCYgb2Zmc2V0KQordm9pZCBCaXRtYXBU
ZXh0dXJlSW1hZ2VCdWZmZXI6OnVwZGF0ZUNvbnRlbnRzKEltYWdlKiBpbWFnZSwgY29uc3QgSW50
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCwgVXBkYXRlQ29udGVudHNG
bGFnKQogewogICAgIG1faW1hZ2UtPmNvbnRleHQoKS0+ZHJhd0ltYWdlKGltYWdlLCBDb2xvclNw
YWNlRGV2aWNlUkdCLCB0YXJnZXRSZWN0LCBJbnRSZWN0KG9mZnNldCwgdGFyZ2V0UmVjdC5zaXpl
KCkpLCBDb21wb3NpdGVDb3B5KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIu
aAppbmRleCBmZTk3NzRhMzJkMTNkYzU5YzBlNDc1NDQ1ZTViN2IzZTQ5ZDY4ZTEzLi4yZTdlMjMy
NmJkZTQxNjQyOWVkNzAwNjhiNzYzNWI4YmNlYWRjNDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJJbWFnZUJ1ZmZlci5oCkBAIC0zNCw4ICszNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVzZXQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJu
IG1faW1hZ2U7IH0KICAgICBpbmxpbmUgR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQo
KSB7IHJldHVybiBtX2ltYWdlID8gbV9pbWFnZS0+Y29udGV4dCgpIDogMDsgfQotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVDb250ZW50cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQ
b2ludCYpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiwgY29u
c3QgSW50UmVjdCYgdGFyZ2V0LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0
ZXNQZXJMaW5lKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoSW1hZ2UqLCBjb25z
dCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmLCBVcGRhdGVDb250ZW50c0ZsYWcpOworICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiwgY29uc3QgSW50UmVjdCYgdGFy
Z2V0LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCBVcGRh
dGVDb250ZW50c0ZsYWcpOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBQYXNzUmVmUHRy
PEJpdG1hcFRleHR1cmU+IGFwcGx5RmlsdGVycyhUZXh0dXJlTWFwcGVyKiwgY29uc3QgQml0bWFw
VGV4dHVyZSYsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckxheWVyLmNwcAppbmRleCBiOTU0NDYwOWU3YmYxNTdjOGRhMmJlNzA1YzZmMzY1OGFlYTAy
OGJjLi4yMWJkN2IyMzU2Yzk2YTIyZTdiNTVjNDcxMTVhMWYwNmZjMDgwMDRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgVGV4dHVyZU1hcHBl
ckxheWVyOjp1cGRhdGVCYWNraW5nU3RvcmUoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwg
R3JhcGhpCiAKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gaW1hZ2VCdWZmZXItPmNvcHlJbWFn
ZShEb250Q29weUJhY2tpbmdTdG9yZSk7CiAgICAgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0
b3JlKiBiYWNraW5nU3RvcmUgPSBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5n
U3RvcmUqPihtX2JhY2tpbmdTdG9yZS5nZXQoKSk7Ci0gICAgYmFja2luZ1N0b3JlLT51cGRhdGVD
b250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZS5nZXQoKSwgbV9zaXplLCBkaXJ0eVJlY3QpOwor
ICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UuZ2V0
KCksIG1fc2l6ZSwgZGlydHlSZWN0LCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5Nb2RpZnlPcmln
aW5hbEltYWdlRGF0YSk7CiAKICAgICBiYWNraW5nU3RvcmUtPnNldFNob3dEZWJ1Z0JvcmRlcnMo
bGF5ZXItPnNob3dEZWJ1Z0JvcmRlcnMoKSk7CiAgICAgYmFja2luZ1N0b3JlLT5zZXREZWJ1Z0Jv
cmRlcihtX2RlYnVnQm9yZGVyQ29sb3IsIG1fZGVidWdCb3JkZXJXaWR0aCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAKaW5kZXggYjEyNWExMDc0OGU3YjBlNGYz
MDZhMzQyOGMyYzAwNTI3NTQ4YzhlNy4uZjcwNzY5ODk1M2ViMzk0Y2I0MzJiZGZiZGI3MTFiNTE0
YWJkZTE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcApA
QCAtMTk2LDEzICsxOTYsMTMgQEAgdm9pZCBTaGFyZWFibGVTdXJmYWNlOjpjb3B5VG9UZXh0dXJl
KFBhc3NSZWZQdHI8V2ViQ29yZTo6Qml0bWFwVGV4dHVyZT4gcGFzc1RleHQKICAgICAgICAgfQog
CiAgICAgICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBtX2dyYXBoaWNzU3VyZmFjZS0+Y3JlYXRl
UmVhZE9ubHlJbWFnZShJbnRSZWN0KHNvdXJjZU9mZnNldCwgdGFyZ2V0LnNpemUoKSkpOwotICAg
ICAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhpbWFnZS5nZXQoKSwgdGFyZ2V0LCBJbnRQb2lu
dDo6emVybygpKTsKKyAgICAgICAgdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoaW1hZ2UuZ2V0KCks
IHRhcmdldCwgSW50UG9pbnQ6Onplcm8oKSwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2FuTW9kaWZ5
T3JpZ2luYWxJbWFnZURhdGEpOwogICAgIH0KICNlbmRpZgogCiAgICAgQVNTRVJUKG1fYml0bWFw
KTsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9iaXRtYXAtPmNyZWF0ZUltYWdlKCk7Ci0g
ICAgdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoaW1hZ2UuZ2V0KCksIHRhcmdldCwgc291cmNlT2Zm
c2V0KTsKKyAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhpbWFnZS5nZXQoKSwgdGFyZ2V0LCBz
b3VyY2VPZmZzZXQsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbk1vZGlmeU9yaWdpbmFsSW1hZ2VE
YXRhKTsKICAgICByZXR1cm47CiB9CiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCmluZGV4IGU4NGYzMjM2ZTUyOWY5NzVmMGU4
YmZjZDM5ZTE3MmVhN2I1YjRiODEuLjgyZTU4ZjNmMjU4YmY4ZmQyNjQwZjUxMDIyOGM5ZjgzNWE5
YzVlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKQEAgLTM2MCw3ICsz
NjAsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVJbWFnZShpbnQ2NF90IGltYWdl
SUQsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPgogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRt
YXA+IGJpdG1hcCA9IHdlYWtCaXRtYXA7CiAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJUaWxlZEJh
Y2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3Jl
OjpjcmVhdGUoKTsKICAgICBtX2RpcmVjdGx5Q29tcG9zaXRlZEltYWdlcy5zZXQoaW1hZ2VJRCwg
YmFja2luZ1N0b3JlKTsKLSAgICBiYWNraW5nU3RvcmUtPnVwZGF0ZUNvbnRlbnRzKG1fdGV4dHVy
ZU1hcHBlci5nZXQoKSwgYml0bWFwLT5jcmVhdGVJbWFnZSgpLmdldCgpKTsKKyAgICBiYWNraW5n
U3RvcmUtPnVwZGF0ZUNvbnRlbnRzKG1fdGV4dHVyZU1hcHBlci5nZXQoKSwgYml0bWFwLT5jcmVh
dGVJbWFnZSgpLmdldCgpLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5h
bEltYWdlRGF0YSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lJbWFnZShp
bnQ2NF90IGltYWdlSUQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>