<?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>101918</bug_id>
          
          <creation_ts>2012-11-12 03:16:27 -0800</creation_ts>
          <short_desc>[Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser</short_desc>
          <delta_ts>2012-11-12 23:50:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Balazs Kelemen">kbalazs</assigned_to>
          <cc>dongseong.hwang</cc>
    
    <cc>hausmann</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764196</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-12 03:16:27 -0800</bug_when>
    <thetext>We have issues with that before (bug 76546), and we workarounded the problem by forcing the resize via QWindowSystemInterface. The assumption was that if we have an actual platform window it should work without the workaround but it seems like that&apos;s not the case. I&apos;m not sure where is the bug but going through QWindowSystemInterface solves it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764280</commentid>
    <comment_count>1</comment_count>
      <attachid>173622</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-12 04:57:10 -0800</bug_when>
    <thetext>Created attachment 173622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764404</commentid>
    <comment_count>2</comment_count>
      <attachid>173622</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-12 07:33:43 -0800</bug_when>
    <thetext>Comment on attachment 173622
Patch

Although it fixes some tests there are still too many failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764442</commentid>
    <comment_count>3</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-12 08:15:43 -0800</bug_when>
    <thetext>History of pixel bot and bisecting shows it went wrong in http://trac.webkit.org/changeset/134142. Please, take a look. The visual effect is that the content is compressed by the x-axis (however it is ok in MiniBrowser).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764652</commentid>
    <comment_count>4</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-12 12:09:33 -0800</bug_when>
    <thetext>It also shown in MiniBrowser, when loading some non-trivial page the tiles are overscaled at first. Scrolling fixes them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764810</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-12 14:11:43 -0800</bug_when>
    <thetext>I think that patch needs to be rolled out. It breaks some implicit behavior of tiled backing store.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764829</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-12 14:24:37 -0800</bug_when>
    <thetext>I&apos;m sorry for this regression.

Could you tell me what layout tests failed? and What sites show compressed effect?

I want to take a look at.

I think r134142 keeps the invariant between TiledBackingStore and CoordinatedTiledBacking, but there maybe invariant breakers related to WebView. IMHO, we can fix it instead of putting workaround.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764881</commentid>
    <comment_count>7</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-12 15:20:05 -0800</bug_when>
    <thetext>I have looked at it a while, and I found TiledBackingStore::m_rect.size()) and GraphicsLayer::m_size can be different.
I think it is timing issue.
I keep finding the root of bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764938</commentid>
    <comment_count>8</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-12 16:20:22 -0800</bug_when>
    <thetext>I found the reason of the bug.

I made a mistake.

r134142 sends the size of a layer via a CreateTile message from Web Process to UI Process. But even if the layer&apos;s size is changed, we do not need to create any tiles. So CoordinatedBackingStore can keep an outdated backing size.

And I found other small bugs too. I&apos;ll post some patches in separate bugs to fix them.

Finally, thanks for reporting this bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765129</commentid>
    <comment_count>9</comment_count>
      <attachid>173795</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-12 19:18:19 -0800</bug_when>
    <thetext>Created attachment 173795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765164</commentid>
    <comment_count>10</comment_count>
      <attachid>173795</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-12 20:39:08 -0800</bug_when>
    <thetext>Comment on attachment 173795
Patch

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

Good catch!
Some suggestions for improvement inline.

&gt; Source/WebKit2/ChangeLog:16
&gt; +        This patch updates the size of CoordinatedBackingStore when receiving an
&gt; +        UpdateTile or RemoveTile message also, because changing the size of
&gt; +        GrahpicsLayer causes an UpdateTile or RemoveTile message too.

Some wording improvement:
This patch makes sure that we reset the backing store&apos;s size to the layer size when UpdateTile or RemoveTile are called.

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:428
&gt; +void LayerTreeRenderer::setBackingStoreSize(CoordinatedBackingStore* backingStore, WebLayerID layerID)

This seems somewhat inefficient and verbose, since you call layerByID twice (getBackingStore calls layerByID).
How about if we changed the function signature to getBackingStore(GraphicsLayer*) , and then you can have a function resetBackingStoreSizeToLayerSize(GraphicsLayer*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765216</commentid>
    <comment_count>11</comment_count>
      <attachid>173816</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-12 21:44:20 -0800</bug_when>
    <thetext>Created attachment 173816
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765217</commentid>
    <comment_count>12</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-12 21:45:30 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 173795 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173795&amp;action=review
&gt; 
&gt; Good catch!
&gt; Some suggestions for improvement inline.

Thank you for review!

&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:16
&gt; &gt; +        This patch updates the size of CoordinatedBackingStore when receiving an
&gt; &gt; +        UpdateTile or RemoveTile message also, because changing the size of
&gt; &gt; +        GrahpicsLayer causes an UpdateTile or RemoveTile message too.
&gt; 
&gt; Some wording improvement:
&gt; This patch makes sure that we reset the backing store&apos;s size to the layer size when UpdateTile or RemoveTile are called.

Done.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:428
&gt; &gt; +void LayerTreeRenderer::setBackingStoreSize(CoordinatedBackingStore* backingStore, WebLayerID layerID)
&gt; 
&gt; This seems somewhat inefficient and verbose, since you call layerByID twice (getBackingStore calls layerByID).
&gt; How about if we changed the function signature to getBackingStore(GraphicsLayer*) , and then you can have a function resetBackingStoreSizeToLayerSize(GraphicsLayer*)

Great idea! Done.
I changed removeBackingStoreIfNeeded() as well as getBackingStore() for the same purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765228</commentid>
    <comment_count>13</comment_count>
      <attachid>173816</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-12 21:54:33 -0800</bug_when>
    <thetext>Comment on attachment 173816
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by NOBODY (OOPS!).

Oops, sorry. I&apos;ll change this next time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765317</commentid>
    <comment_count>14</comment_count>
      <attachid>173816</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 23:49:57 -0800</bug_when>
    <thetext>Comment on attachment 173816
Patch

Clearing flags on attachment: 173816

Committed r134375: &lt;http://trac.webkit.org/changeset/134375&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765318</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 23:50:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173622</attachid>
            <date>2012-11-12 04:57:10 -0800</date>
            <delta_ts>2012-11-12 07:33:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101918-20121112135507.patch</filename>
            <type>text/plain</type>
            <size>2402</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzOTU2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjA4ODA1MDMxNTA3N2VjODZhMmNjYmJjMWVmYmRkM2M0
YjI2ZWVkYi4uOTcxOTFmNTZiMzlkZjIyZDAzMTk4YjRiYzUzYjRkN2I1MTYzOWY0MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4
IEBACiAyMDEyLTExLTEyICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAor
ICAgICAgICBbUXRdIExvdHMgb2YgdGVzdCBmYWlsdXJlcyBkdWUgdG8gd3Jvbmcgd2luZG93IHNp
emUgaW4gd2luZG93U2hhcHNob3RFbmFibGVkIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTkxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltbWVkaWF0ZWx5IGZsdXNoIHdpbmRvdyBnZW9tZXRy
eSBjaGFuZ2VzIHRvIGZpeCB0ZXN0cy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvcXQv
UGxhdGZvcm1XZWJWaWV3UXQuY3BwOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnJl
c2l6ZVRvKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dGcmFtZSk6
CisKKzIwMTItMTEtMTIgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCiAg
ICAgICAgIFtRdF1bV1RSXSBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbCBzaG91bGQg
bm90IGRvIGJ1c3kgd2FpdGluZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAxMzI3CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
cXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0
Zm9ybVdlYlZpZXdRdC5jcHAKaW5kZXggZTFjY2U0OGE1ZTIxYjZiMjdkMTU5MWVmNTNlMGQ1OTVi
YjcxNGI3MS4uZjU0MTEyNThhNzExZDYxNjc4ODQ4OGJlMDY4NDdjYzYwODU5ZTZjZSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKQEAgLTk2
LDE2ICs5NiwxMCBAQCBQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQogCiB2b2lk
IFBsYXRmb3JtV2ViVmlldzo6cmVzaXplVG8odW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdo
dCkKIHsKLSAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSBhIHBsYXRmb3JtIHdpbmRvdyB3ZSB3aWxs
IG5ldmVyIGdldCB0aGUgbmVjZXNzYXJ5Ci0gICAgLy8gcmVzaXplIGV2ZW50LCBzbyBzaW11bGF0
ZSBpdCBpbiB0aGF0IGNhc2UgdG8gbWFrZSBzdXJlIHRoZSBxdWlja3ZpZXcgaXMKLSAgICAvLyBy
ZXNpemVkIHRvIHdoYXQgdGhlIGxheW91dCB0ZXN0IGV4cGVjdHMuCi0gICAgaWYgKCFtX3dpbmRv
dy0+aGFuZGxlKCkpIHsKLSAgICAgICAgUVJlY3QgbmV3R2VvbWV0cnkobV93aW5kb3ctPngoKSwg
bV93aW5kb3ctPnkoKSwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIFFXaW5kb3dTeXN0ZW1JbnRl
cmZhY2U6OmhhbmRsZUdlb21ldHJ5Q2hhbmdlKG1fd2luZG93LCBuZXdHZW9tZXRyeSk7Ci0gICAg
ICAgIFFXaW5kb3dTeXN0ZW1JbnRlcmZhY2U6OmZsdXNoV2luZG93U3lzdGVtRXZlbnRzKCk7Ci0g
ICAgfQotCiAgICAgbV93aW5kb3ctPnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKworICAgIFFXaW5k
b3dTeXN0ZW1JbnRlcmZhY2U6OmhhbmRsZUdlb21ldHJ5Q2hhbmdlKG1fd2luZG93LCBtX3dpbmRv
dy0+Z2VvbWV0cnkoKSk7CisgICAgUVdpbmRvd1N5c3RlbUludGVyZmFjZTo6Zmx1c2hXaW5kb3dT
eXN0ZW1FdmVudHMoKTsKIH0KIAogV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpCkBA
IC0xMzIsNiArMTI2LDkgQEAgV0tSZWN0IFBsYXRmb3JtV2ViVmlldzo6d2luZG93RnJhbWUoKQog
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNldFdpbmRvd0ZyYW1lKFdLUmVjdCB3a1JlY3QpCiB7CiAg
ICAgbV93aW5kb3ctPnNldEdlb21ldHJ5KHdrUmVjdC5vcmlnaW4ueCwgd2tSZWN0Lm9yaWdpbi55
LCB3a1JlY3Quc2l6ZS53aWR0aCwgd2tSZWN0LnNpemUuaGVpZ2h0KTsKKworICAgIFFXaW5kb3dT
eXN0ZW1JbnRlcmZhY2U6OmhhbmRsZUdlb21ldHJ5Q2hhbmdlKG1fd2luZG93LCBtX3dpbmRvdy0+
Z2VvbWV0cnkoKSk7CisgICAgUVdpbmRvd1N5c3RlbUludGVyZmFjZTo6Zmx1c2hXaW5kb3dTeXN0
ZW1FdmVudHMoKTsKIH0KIAogYm9vbCBQbGF0Zm9ybVdlYlZpZXc6OnNlbmRFdmVudChRRXZlbnQq
IGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173795</attachid>
            <date>2012-11-12 19:18:19 -0800</date>
            <delta_ts>2012-11-12 21:44:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101918-20121113121556.patch</filename>
            <type>text/plain</type>
            <size>21421</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODM2ZDk3ZTI0ZGNmZTBj
YWEwZWNkOTFiYWUxMTA2ODM0MDc2OGNkYy4uYzI1MjZjNTIzM2UxZTYyMmE3M2I5ZTkwYjNlOTIx
NTI3NjY5MGVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTEyICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtRdF0gUkVH
UkVTU0lPTigxMzQxNDIpOiBvdmVyc2NhbGVkIHRpbGVzIGluIHBpeGVsIHRlc3QgcmVzdWx0cyBh
bmQgTWluaUJyb3dzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTkxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSBUaWxlZEJhY2tpbmdTdG9yZTo6cmVjdCgpLCBiZWNhdXNlIGl0IGlzIG5v
dCB1c2VkIGFueW1vcmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tp
bmdTdG9yZS5oOgorICAgICAgICAoVGlsZWRCYWNraW5nU3RvcmUpOgorCiAyMDEyLTExLTExICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTM0MTQ0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDRjMzZiYjA5MzA2NTY5
Nzc3YjY4Y2UxZDg3NDk5NjViZjE2YmRhMzMuLmRlYjNjMWRkY2E5NGRmNDIxNWVlNWI2NzFjZjhl
MzVjNGEzNzU1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxMi0xMS0xMiAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBbUXRdIFJF
R1JFU1NJT04oMTM0MTQyKTogb3ZlcnNjYWxlZCB0aWxlcyBpbiBwaXhlbCB0ZXN0IHJlc3VsdHMg
YW5kIE1pbmlCcm93c2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDdXJyZW50bHksIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIGNhbiBrZWVwIG91dC1k
YXRlZCBjb250ZW50cyBzaXplLCBiZWNhdXNlIHRoZQorICAgICAgICBzaXplIG9mIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlIGlzIHNldCBieSBvbmx5IExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVU
aWxlKCkuCisgICAgICAgIEFsdGhvdWdoIHRoZSBzaXplIG9mIEdyYXBoaWNzTGF5ZXIgaXMgY2hh
bmdlZCwgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUoKQorICAgICAgICBpcyBub3QgY2Fs
bGVkLiBIb3dldmVyLCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZSgpIGlzIGFsd2F5cyBj
YWxsZWQsIHdoZW4KKyAgICAgICAgdGhlIGNvbnRlbnRzIHNjYWxlIG9mIEdyYXBoaWNzTGF5ZXIg
aXMgY2hhbmdlZC4KKworICAgICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIHNpemUgb2YgQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUgd2hlbiByZWNlaXZpbmcgYW4KKyAgICAgICAgVXBkYXRlVGls
ZSBvciBSZW1vdmVUaWxlIG1lc3NhZ2UgYWxzbywgYmVjYXVzZSBjaGFuZ2luZyB0aGUgc2l6ZSBv
ZgorICAgICAgICBHcmFocGljc0xheWVyIGNhdXNlcyBhbiBVcGRhdGVUaWxlIG9yIFJlbW92ZVRp
bGUgbWVzc2FnZSB0b28uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5h
dGVkQmFja2luZ1N0b3JlOjpzZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRC
YWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAo
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpjcmVhdGVUaWxlRm9yTGF5ZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlUmVuZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y3Jl
YXRlVGlsZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxl
KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6c2V0QmFja2luZ1N0b3JlU2l6ZSk6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6Y3JlYXRlVGlsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgIChDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQpOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZFRpbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZFRpbGU6OnVw
ZGF0ZUJhY2tCdWZmZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRUaWxlQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3Jk
aW5hdG9yOjpjcmVhdGVUaWxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oOgorICAgICAgICAoTGF5ZXJUcmVl
Q29vcmRpbmF0b3IpOgorCiAyMDEyLTExLTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM0MTQ0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNr
aW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2lu
Z1N0b3JlLmgKaW5kZXggMjc4MzQxM2UwZWYxZTVhYmQ1NmE2ODdiMjdmYTBlM2QzODk1NTk4OS4u
MDgyYmU3MGM4ZWIyNzUxNzkwYjdhYjg3NzU2OTQ5YmFjODFhNmQyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCkBAIC03
Miw3ICs3Miw2IEBAIHB1YmxpYzoKICAgICBUaWxlOjpDb29yZGluYXRlIHRpbGVDb29yZGluYXRl
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICBkb3VibGUgdGlsZURpc3RhbmNl
KGNvbnN0IEludFJlY3QmIHZpZXdwb3J0LCBjb25zdCBUaWxlOjpDb29yZGluYXRlJikgY29uc3Q7
CiAKLSAgICBJbnRSZWN0IHJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlY3Q7IH0KICAgICBJbnRS
ZWN0IGNvdmVyUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY292ZXJSZWN0OyB9CiAgICAgYm9vbCB2
aXNpYmxlQXJlYUlzQ292ZXJlZCgpIGNvbnN0OwogICAgIHZvaWQgcmVtb3ZlQWxsTm9uVmlzaWJs
ZVRpbGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAK
aW5kZXggMzg1YWY0ZGRmZjI1MDUwYWUwOTU4NGEzODJhZTFmY2VjN2FiMWUwZS4uZDA1NGU2MTA4
MmQyOGMxOGM3ZjM5OTJkYmZhMDJhZGU4ZTZjYmEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIFBhc3NSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnRleHR1cmUoKSBjb25zdAog
ICAgIHJldHVybiBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+KCk7CiB9CiAKLXZvaWQgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU6OnNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkK
K3ZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnNldFNpemUoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBzaXplKQogewogICAgIG1fc2l6ZSA9IHNpemU7CiB9CkBAIC0xMTQsMTUgKzExNCw2
IEBAIHN0YXRpYyBib29sIHNob3VsZFNob3dUaWxlRGVidWdWaXN1YWxzKCkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLS8vIFRoaXMgZnVuY3Rpb24gaXMgY29waWVkIGZyb20gVGlsZWRCYWNraW5n
U3RvcmU6Om1hcFRvQ29udGVudHMoKS4KLXN0YXRpYyBJbnRSZWN0IG1hcFRvQ29udGVudHMoY29u
c3QgSW50UmVjdCYgcmVjdCwgZmxvYXQgc2NhbGUpCi17Ci0gICAgcmV0dXJuIGVuY2xvc2luZ0lu
dFJlY3QoRmxvYXRSZWN0KHJlY3QueCgpIC8gc2NhbGUsCi0gICAgICAgIHJlY3QueSgpIC8gc2Nh
bGUsCi0gICAgICAgIHJlY3Qud2lkdGgoKSAvIHNjYWxlLAotICAgICAgICByZWN0LmhlaWdodCgp
IC8gc2NhbGUpKTsKLX0KLQogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUaWxl
c1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiYgdGlsZXMsIFRleHR1
cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFu
c2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2ssIGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRpbGVzLnNpemUoKTsgKytp
KSB7CkBAIC0xNjUsNyArMTU2LDcgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFp
bnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwKICAgICB9CiAK
ICAgICBBU1NFUlQoIW1fc2l6ZS5pc1plcm8oKSk7Ci0gICAgRmxvYXRSZWN0IHJlY3RPbkNvbnRl
bnRzID0gbWFwVG9Db250ZW50cyhJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIG1fc2l6ZSksIG1f
c2NhbGUpOworICAgIEZsb2F0UmVjdCByZWN0T25Db250ZW50cyhGbG9hdFBvaW50Ojp6ZXJvKCks
IG1fc2l6ZSk7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0
cmFuc2Zvcm07CiAgICAgLy8gdGFyZ2V0UmVjdCBpcyBvbiB0aGUgY29udGVudHMgY29vcmRpbmF0
ZSBzeXN0ZW0sIHNvIHdlIG11c3QgY29tcGFyZSB0d28gcmVjdHMgb24gdGhlIGNvbnRlbnRzIGNv
b3JkaW5hdGUgc3lzdGVtLgogICAgIC8vIFNlZSBUaWxlZEJhY2tpbmdTdG9yZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4IDBiMjQ4MjY3NjE2ZGJkYWRm
MzljMTI0MzNkNGIzMDJhNDEzMzQ3N2UuLmJkYjg0ZGZlYTZlMGQxNDE2NjE3MmJmNTAwNTliOWRk
ZGVjYmQ5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaApA
QCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29vcmRpbmF0
ZWRCYWNraW5nU3RvcmU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb29yZGluYXRl
ZEJhY2tpbmdTdG9yZSk7IH0KICAgICB2b2lkIGNvbW1pdFRpbGVPcGVyYXRpb25zKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXIqKTsKICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+
IHRleHR1cmUoKSBjb25zdDsKLSAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpOworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcios
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgZmxvYXQsIFdlYkNvcmU6OkJpdG1hcFRleHR1cmUqKTsKIAogcHJpdmF0ZToKQEAg
LTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8aW50LCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZVRpbGU+IG1fdGlsZXM7CiAgICAgSGFzaFNldDxpbnQ+IG1fdGlsZXNUb1JlbW92
ZTsKLSAgICBXZWJDb3JlOjpJbnRTaXplIG1fc2l6ZTsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUg
bV9zaXplOwogICAgIGZsb2F0IG1fc2NhbGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDE3ZmEyZWE5NWMzZWRlODNlZjkwZTFh
YTdhYzhkNTg2NDQ0NWQxYTUuLmIzZDE0MGZhNzQ0YjVmN2JlMzNjYTYxYzEyNjRiODQ1ZTliNDg4
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3Bw
CkBAIC01Niw5ICs1Niw5IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6ZGlzcGF0
Y2hVcGRhdGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiAgICAgbV9yZW5kZXJl
ci0+YXBwZW5kVXBkYXRlKGZ1bmN0aW9uKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNr
aW5nU2l6ZSwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKK3Zv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKGludCBsYXll
cklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3Qg
V2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKIHsKLSAgICBkaXNwYXRjaFVw
ZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZSwgbV9yZW5kZXJlci5nZXQo
KSwgbGF5ZXJJRCwgdGlsZUlELCB1cGRhdGVJbmZvLnNjYWxlRmFjdG9yLCBiYWNraW5nU2l6ZSkp
OworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxl
LCBtX3JlbmRlcmVyLmdldCgpLCBsYXllcklELCB0aWxlSUQsIHVwZGF0ZUluZm8uc2NhbGVGYWN0
b3IpKTsKICAgICB1cGRhdGVUaWxlRm9yTGF5ZXIobGF5ZXJJRCwgdGlsZUlELCB0aWxlUmVjdCwg
dXBkYXRlSW5mbyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkuaAppbmRleCBkMzQ4Njg3OGQ4OGQ0M2RhNTA0MDA4MWNkNWVjMTMzMzFmNmU5NGQ4Li42
NDY4MDExNjhmMjRhNzg5YjdlYjgwNzFjZjRiNmY4YTRjNGZiOTdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCkBAIC02Miw3ICs2Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsK
ICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiwgZmxvYXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0
b3IpOwogICAgIHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29u
dGVudHNTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCk7Ci0gICAgdm9p
ZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6
ZSwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKKyAgICB2b2lkIGNyZWF0ZVRpbGVGb3JMYXll
cihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0
IFN1cmZhY2VVcGRhdGVJbmZvJik7CiAgICAgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IGxh
eWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNl
VXBkYXRlSW5mbyYpOwogICAgIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKGludCBsYXllcklELCBp
bnQgdGlsZUlEKTsKICAgICB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBjb25z
dCBTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGU1ZTY0YTkzYTdh
MDc2Y2U5MzNmMDI5Yzk2NWE0Njk3M2E3ODNmN2QuLmNkMzJlZDk4MjBhM2U0YmQ0MjE4YzViYzJh
MzE0MGFkNWI2MjMzZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQCBtZXNzYWdlcyAt
PiBMYXllclRyZWVDb29yZGluYXRvclByb3h5IHsKICNlbmRpZgogICAgIFNldFJvb3RDb21wb3Np
dGluZ0xheWVyKHVpbnQzMl90IGlkKQogICAgIERlbGV0ZUNvbXBvc2l0aW5nTGF5ZXIodWludDMy
X3QgaWQpCi0gICAgQ3JlYXRlVGlsZUZvckxheWVyKHVpbnQzMl90IGxheWVySUQsIGludCB0aWxl
SUQsIFdlYkNvcmU6OkludFJlY3QgdGlsZVJlY3QsIFdlYkNvcmU6OkludFNpemUgYmFja2luZ1Np
emUsIFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8gdXBkYXRlSW5mbykKKyAgICBDcmVhdGVUaWxl
Rm9yTGF5ZXIodWludDMyX3QgbGF5ZXJJRCwgaW50IHRpbGVJRCwgV2ViQ29yZTo6SW50UmVjdCB0
aWxlUmVjdCwgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyB1cGRhdGVJbmZvKQogICAgIFVwZGF0
ZVRpbGVGb3JMYXllcih1aW50MzJfdCBsYXllcklELCBpbnQgdGlsZUlELCBXZWJDb3JlOjpJbnRS
ZWN0IHRpbGVSZWN0LCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAg
UmVtb3ZlVGlsZUZvckxheWVyKHVpbnQzMl90IGxheWVySUQsIGludCB0aWxlSUQpCiAgICAgQ3Jl
YXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIFdlYktpdDo6U2hhcmVhYmxlU3VyZmFjZTo6SGFu
ZGxlIGhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAppbmRleCAxM2Qw
MjY5OTU0YTNiZjc2MDc4NmQzM2I3MDA4ZjQ4OGZmNzNmMDUzLi44NjQ0YTk4NDg1NGQ1NmM3NDYx
MjhlYTg5NzY5NWI4NDhkNjMwOGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIu
Y3BwCkBAIC0zNzcsMTYgKzM3NywxOCBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVC
YWNraW5nU3RvcmVJZk5lZWRlZChXZWJMYXllcklEIGxheWVySUQsIGludCAvKnRpbAogICAgICAg
ICBsYXllci0+c2V0QmFja2luZ1N0b3JlKDApOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVy
OjpjcmVhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgZmxvYXQgc2NhbGUs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tpbmdTaXplKQordm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6Y3JlYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGZsb2F0IHNj
YWxlKQogewogICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3Jl
ID0gZ2V0QmFja2luZ1N0b3JlKGxheWVySUQpOwogICAgIGJhY2tpbmdTdG9yZS0+Y3JlYXRlVGls
ZSh0aWxlSUQsIHNjYWxlKTsKLSAgICBiYWNraW5nU3RvcmUtPnNldFNpemUoYmFja2luZ1NpemUp
OworICAgIHNldEJhY2tpbmdTdG9yZVNpemUoYmFja2luZ1N0b3JlLmdldCgpLCBsYXllcklEKTsK
IH0KIAogdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlVGlsZShXZWJMYXllcklEIGxheWVy
SUQsIGludCB0aWxlSUQpCiB7Ci0gICAgZ2V0QmFja2luZ1N0b3JlKGxheWVySUQpLT5yZW1vdmVU
aWxlKHRpbGVJRCk7CisgICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5n
U3RvcmUgPSBnZXRCYWNraW5nU3RvcmUobGF5ZXJJRCk7CisgICAgYmFja2luZ1N0b3JlLT5yZW1v
dmVUaWxlKHRpbGVJRCk7CisgICAgc2V0QmFja2luZ1N0b3JlU2l6ZShiYWNraW5nU3RvcmUuZ2V0
KCksIGxheWVySUQpOwogICAgIHJlbW92ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKGxheWVySUQsIHRp
bGVJRCk7CiB9CiAKQEAgLTM5NCw2ICszOTYsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjp1
cGRhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgVGlsZVVwZAog
ewogICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gZ2V0
QmFja2luZ1N0b3JlKGxheWVySUQpOwogICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlVGlsZSh0aWxl
SUQsIHVwZGF0ZS5zb3VyY2VSZWN0LCB1cGRhdGUudGlsZVJlY3QsIHVwZGF0ZS5zdXJmYWNlLCB1
cGRhdGUub2Zmc2V0KTsKKyAgICBzZXRCYWNraW5nU3RvcmVTaXplKGJhY2tpbmdTdG9yZS5nZXQo
KSwgbGF5ZXJJRCk7CiAgICAgbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzLmFkZChi
YWNraW5nU3RvcmUpOwogfQogCkBAIC00MjIsNiArNDI1LDEzIEBAIHZvaWQgTGF5ZXJUcmVlUmVu
ZGVyZXI6OmFzc2lnbkltYWdlVG9MYXllcihHcmFwaGljc0xheWVyKiBsYXllciwgaW50NjRfdCBp
bWFnZUlECiAgICAgbGF5ZXItPnNldENvbnRlbnRzVG9NZWRpYShpdC0+dmFsdWUuZ2V0KCkpOwog
fQogCit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRCYWNraW5nU3RvcmVTaXplKENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIFdlYkxheWVySUQgbGF5ZXJJRCkKK3sKKyAg
ICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChsYXllcklEKTsKKyAgICBBU1NFUlQo
bGF5ZXIpOworICAgIGJhY2tpbmdTdG9yZS0+c2V0U2l6ZShsYXllci0+c2l6ZSgpKTsKK30KKwog
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y29tbWl0VGlsZU9wZXJhdGlvbnMoKQogewogICAgIEhh
c2hTZXQ8UmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiA+OjppdGVyYXRvciBlbmQgPSBt
X2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJl
ci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlUmVuZGVyZXIuaAppbmRleCA2N2JmZjE2OWY0MGM5NGVkNjM4MTk5ODE5N2EyNDU2YTlkM2E2
MmQyLi42MzUwOGQxZmE0NGU5ZDY3OTdiOTJlYTBlNGYyYjQwNDRiYmFhM2I1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0TGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnMmKTsKICNlbmRpZgogCi0gICAgdm9pZCBjcmVhdGVUaWxlKFdlYkxheWVySUQsIGludCwg
ZmxvYXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2b2lkIGNyZWF0ZVRp
bGUoV2ViTGF5ZXJJRCwgaW50LCBmbG9hdCBzY2FsZSk7CiAgICAgdm9pZCByZW1vdmVUaWxlKFdl
YkxheWVySUQsIGludCk7CiAgICAgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQsIGludCwgY29u
c3QgVGlsZVVwZGF0ZSYpOwogICAgIHZvaWQgZmx1c2hMYXllckNoYW5nZXMoKTsKQEAgLTExNCw2
ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVy
cygpOwogCiAgICAgdm9pZCBhc3NpZ25JbWFnZVRvTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciosIGludDY0X3QgaW1hZ2VJRCk7CisgICAgdm9pZCBzZXRCYWNraW5nU3RvcmVTaXplKENvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlKiwgV2ViTGF5ZXJJRCk7CiAgICAgdm9pZCBlbnN1cmVSb290TGF5
ZXIoKTsKICAgICB2b2lkIGVuc3VyZUxheWVyKFdlYkxheWVySUQpOwogICAgIHZvaWQgY29tbWl0
VGlsZU9wZXJhdGlvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDk5YmJjNjY2Nzg0MzNhNTBjNGM3NDdm
YzgzZGQ4YWI1MDQ1M2JlMGYuLjc1OTIzZTQ3M2I1NGFkM2FmYzUyZTA3YjBkMzRjNDI0ODRhOWNj
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcApAQCAtNjU1LDkgKzY1NSw5IEBAIFBhc3NPd25QdHI8V2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0PiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmJlZ2luQ29udGVudFVw
ZGF0CiAgICAgcmV0dXJuIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5iZWdpbkNv
bnRlbnRVcGRhdGUoc2l6ZSwgY29udGVudHNPcGFxdWUoKSA/IDAgOiBTaGFyZWFibGVCaXRtYXA6
OlN1cHBvcnRzQWxwaGEsIGF0bGFzLCBvZmZzZXQpOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6Y3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5m
byYgdXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGJhY2tpbmdTaXplKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0
ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRpbGVSZWN0KQogewotICAgIG1fQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5jcmVhdGVUaWxlKGlkKCksIHRpbGVJRCwgdXBkYXRl
SW5mbywgdGlsZVJlY3QsIGJhY2tpbmdTaXplKTsKKyAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudC0+Y3JlYXRlVGlsZShpZCgpLCB0aWxlSUQsIHVwZGF0ZUluZm8sIHRpbGVSZWN0
KTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZVRpbGUoaW50IHRp
bGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IEludFJlY3Qm
IHRpbGVSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaAppbmRleCAyYTk0MzY5MWYwYTRhYjNlYzVjNTljYTVkZTNlMTg0MWU0
MWQxYzhmLi4wNDY2OGFhNDlhNjIzMzQ2ZmQzNzAzMDljMzUwNGI1NDIyNmZkNzM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
aApAQCAtNTAsNyArNTAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgLy8gQ29vcmRpbmF0ZWRUaWxlQ2xp
ZW50Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwg
Y29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBk
YXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUlu
Zm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQpID0gMDsKIApAQCAtMTQ2LDcgKzE0Niw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIENvbG9yIHRpbGVkQmFja2luZ1N0b3JlQmFja2dyb3VuZENv
bG9yKCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICAvLyBDb29yZGluYXRlZFRpbGVDbGllbnQKLSAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBXZWJLaXQ6OlN1cmZh
Y2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGJhY2tpbmdTaXplKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiwg
Y29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKGlu
dCB0aWxlSUQsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBJbnRSZWN0
JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGUoaW50IHRpbGVJRCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250
ZW50VXBkYXRlKGNvbnN0IEludFNpemUmLCBpbnQmIGF0bGFzSUQsIEludFBvaW50JikgT1ZFUlJJ
REU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmNwcAppbmRl
eCA3ZTg2ZDFmMmE3MGNhNTE3ODQxOWRjZTcxOGU4NDNkMTI5ODdmYTNlLi41NDhkNDlkMzI3ZjAz
NTUzMjc0NmZkMmZiNTk1NWJkNjFkYThiYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkVGlsZS5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgVmVjdG9yPEludFJlY3Q+
IENvb3JkaW5hdGVkVGlsZTo6dXBkYXRlQmFja0J1ZmZlcigpCiAgICAgc3RhdGljIGludCBpZCA9
IDA7CiAgICAgaWYgKCFtX0lEKSB7CiAgICAgICAgIG1fSUQgPSArK2lkOwotICAgICAgICBtX2Ns
aWVudC0+Y3JlYXRlVGlsZShtX0lELCB1cGRhdGVJbmZvLCBtX3JlY3QsIG1fdGlsZWRCYWNraW5n
U3RvcmUtPnJlY3QoKS5zaXplKCkpOworICAgICAgICBtX2NsaWVudC0+Y3JlYXRlVGlsZShtX0lE
LCB1cGRhdGVJbmZvLCBtX3JlY3QpOwogICAgIH0gZWxzZQogICAgICAgICBtX2NsaWVudC0+dXBk
YXRlVGlsZShtX0lELCB1cGRhdGVJbmZvLCBtX3JlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZFRpbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oCmluZGV4IGU4ZjMxMzdkNWI1YThiYTkzYmE3ZjUyMzYx
MzhlOGIzNmE2YjA3N2UuLjMyZmY0ZTdjNzkxZjJiZTM0YjUwMzgwMDg1NjU4Mzg2ZWUxZWM2Mzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oCkBAIC03NSw3
ICs3NSw3IEBAIHByaXZhdGU6CiBjbGFzcyBDb29yZGluYXRlZFRpbGVDbGllbnQgewogcHVibGlj
OgogICAgIHZpcnR1YWwgfkNvb3JkaW5hdGVkVGlsZUNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJh
Y2tpbmdTaXplKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoaW50IHRpbGVJRCwg
Y29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRh
dGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlVGlsZShpbnQgdGlsZUlEKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmLCBpbnQmIGF0bGFzSUQsIFdlYkNvcmU6OkludFBvaW50JikgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDQz
M2JjZTlhZDUwNjM3NmZlZjc1ODkyOWY3OGE1ZTlmMzA1NzA4ZDAuLjJmYzRjN2E3ZTAzODZiM2U2
ODAxNTk0YjU5Mjc3MDAyZmM0Y2Y0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTU5NCwxMCArNTk0LDEwIEBAIGJvb2wg
TGF5ZXJUcmVlSG9zdDo6c3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVGlsZShXZWJM
YXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRh
dGVJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgYmFja2luZ1NpemUpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVU
aWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUlu
Zm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRpbGVSZWN0KQogewogICAg
IG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKLSAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6
OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0ZVRpbGVGb3JMYXllcihsYXllcklELCB0
aWxlSUQsIHRpbGVSZWN0LCBiYWNraW5nU2l6ZSwgdXBkYXRlSW5mbykpOworICAgIG1fd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Q3JlYXRlVGlsZUZv
ckxheWVyKGxheWVySUQsIHRpbGVJRCwgdGlsZVJlY3QsIHVwZGF0ZUluZm8pKTsKIH0KIAogdm9p
ZCBMYXllclRyZWVDb29yZGluYXRvcjo6dXBkYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGlu
dCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiB0aWxlUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IGY2YjM4YzFjNGUwMGFlNThkZTVhYjQxNGFlN2U0
ZTNkMjAwYmVmY2YuLjQwMTdlMWZjNDAwNjAzMzRjODk1ZTg1YWM5NTg1Y2M4OTJkNWQ2N2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQ2NF90IGFkb3B0SW1hZ2VC
YWNraW5nU3RvcmUoV2ViQ29yZTo6SW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUlt
YWdlQmFja2luZ1N0b3JlKGludDY0X3QpOwogCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUo
V2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2lu
Z1NpemUpOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKFdlYkxheWVySUQsIGludCB0aWxl
SUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0
IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQpOwogICAgIHZpcnR1YWwg
V2ViQ29yZTo6SW50UmVjdCB2aXNpYmxlQ29udGVudHNSZWN0KCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173816</attachid>
            <date>2012-11-12 21:44:20 -0800</date>
            <delta_ts>2012-11-12 23:49:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101918-20121113144156.patch</filename>
            <type>text/plain</type>
            <size>23184</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI2ZmJiNzE5MGZiNWY3
YTQ3MTNlMzkwMWE4ODdkM2M0OTU1Zjk1YS4uMzcyZWI3NzNlMzBlOTljZjNlMDRhM2I3MjFhNTU3
NmU2YTVkYzJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTEyICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtRdF0gUkVH
UkVTU0lPTigxMzQxNDIpOiBvdmVyc2NhbGVkIHRpbGVzIGluIHBpeGVsIHRlc3QgcmVzdWx0cyBh
bmQgTWluaUJyb3dzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTkxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSBUaWxlZEJhY2tpbmdTdG9yZTo6cmVjdCgpLCBiZWNhdXNlIGl0IGlzIG5v
dCB1c2VkIGFueW1vcmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tp
bmdTdG9yZS5oOgorICAgICAgICAoVGlsZWRCYWNraW5nU3RvcmUpOgorCiAyMDEyLTExLTEyICBB
bGV4ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgYW4gb3B0aW9uIHRvIHN3aXRjaCBkaXNwbGF5IG9mICJPdGhlciIgbWVtb3J5IG9u
L29mZiBpbiBOTUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ZGRmMjJjYjA3YTc1YTExN2MxYzQ1NjUwYmNjOWE1
MzIzM2IyZjVkLi4zOTNiMTk1ODBmZTFjNmM3YjgzNzdlZmM1NTJlZDJlOGQ1ZmIzOGYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTItMTEtMTIgIEh1YW5nIERvbmdzdW5nICA8bHV4
dGVsbGFAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1F0XSBSRUdSRVNTSU9OKDEzNDE0Mik6
IG92ZXJzY2FsZWQgdGlsZXMgaW4gcGl4ZWwgdGVzdCByZXN1bHRzIGFuZCBNaW5pQnJvd3Nlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTE4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5
LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSBjYW4ga2VlcCBvdXQtZGF0ZWQgY29udGVudHMgc2l6
ZSwgYmVjYXVzZSB0aGUKKyAgICAgICAgc2l6ZSBvZiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSBp
cyBzZXQgYnkgb25seSBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZSgpLgorICAgICAgICBB
bHRob3VnaCB0aGUgc2l6ZSBvZiBHcmFwaGljc0xheWVyIGlzIGNoYW5nZWQsIExheWVyVHJlZVJl
bmRlcmVyOjpjcmVhdGVUaWxlKCkKKyAgICAgICAgaXMgbm90IGNhbGxlZC4gSG93ZXZlciwgTGF5
ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUoKSBpcyBhbHdheXMgY2FsbGVkLCB3aGVuCisgICAg
ICAgIHRoZSBjb250ZW50cyBzY2FsZSBvZiBHcmFwaGljc0xheWVyIGlzIGNoYW5nZWQuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBtYWtlcyBzdXJlIHRoYXQgd2UgcmVzZXQgdGhlIGJhY2tpbmcgc3Rv
cmUncyBzaXplIHRvIHRoZQorICAgICAgICBsYXllciBzaXplIHdoZW4gVXBkYXRlVGlsZSBvciBS
ZW1vdmVUaWxlIGFyZSBjYWxsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNv
b3JkaW5hdGVkQmFja2luZ1N0b3JlOjpzZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oOgorICAg
ICAgICAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpjcmVhdGVUaWxlRm9yTGF5ZXIpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlUmVuZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJl
cjo6Z2V0QmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6
OnJlbW92ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
UmVuZGVyZXI6OnJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6dXBkYXRlVGlsZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAg
KExheWVyVHJlZVJlbmRlcmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVUaWxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAg
ICAgIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNvb3JkaW5hdGVkVGlsZTo6dXBkYXRlQmFja0J1ZmZlcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmg6Cisg
ICAgICAgIChDb29yZGluYXRlZFRpbGVDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVRpbGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yLmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvcik6CisKIDIwMTItMTEtMTIgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4
IGFmdGVyIHIxMzQzNDYgYW5kIDEzNDM0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCmluZGV4IDI3ODM0MTNlMGVmMWU1YWJk
NTZhNjg3YjI3ZmEwZTNkMzg5NTU5ODkuLjA4MmJlNzBjOGViMjc1MTc5MGI3YWI4Nzc1Njk0OWJh
YzgxYTZkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Rp
bGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VGlsZWRCYWNraW5nU3RvcmUuaApAQCAtNzIsNyArNzIsNiBAQCBwdWJsaWM6CiAgICAgVGlsZTo6
Q29vcmRpbmF0ZSB0aWxlQ29vcmRpbmF0ZUZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7
CiAgICAgZG91YmxlIHRpbGVEaXN0YW5jZShjb25zdCBJbnRSZWN0JiB2aWV3cG9ydCwgY29uc3Qg
VGlsZTo6Q29vcmRpbmF0ZSYpIGNvbnN0OwogCi0gICAgSW50UmVjdCByZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWN0OyB9CiAgICAgSW50UmVjdCBjb3ZlclJlY3QoKSBjb25zdCB7IHJldHVybiBt
X2NvdmVyUmVjdDsgfQogICAgIGJvb2wgdmlzaWJsZUFyZWFJc0NvdmVyZWQoKSBjb25zdDsKICAg
ICB2b2lkIHJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDM4NWFmNGRkZmYyNTA1MGFlMDk1ODRhMzgy
YWUxZmNlYzdhYjFlMGUuLmQwNTRlNjEwODJkMjhjMThjN2YzOTkyZGJmYTAyYWRlOGU2Y2JhMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTEw
MSw3ICsxMDEsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlOjp0ZXh0dXJlKCkgY29uc3QKICAgICByZXR1cm4gUGFzc1JlZlB0cjxCaXRtYXBUZXh0
dXJlPigpOwogfQogCi12b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpzZXRTaXplKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIHNpemUpCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpz
ZXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSkKIHsKICAgICBtX3NpemUgPSBz
aXplOwogfQpAQCAtMTE0LDE1ICsxMTQsNiBAQCBzdGF0aWMgYm9vbCBzaG91bGRTaG93VGlsZURl
YnVnVmlzdWFscygpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0vLyBUaGlzIGZ1bmN0aW9uIGlz
IGNvcGllZCBmcm9tIFRpbGVkQmFja2luZ1N0b3JlOjptYXBUb0NvbnRlbnRzKCkuCi1zdGF0aWMg
SW50UmVjdCBtYXBUb0NvbnRlbnRzKGNvbnN0IEludFJlY3QmIHJlY3QsIGZsb2F0IHNjYWxlKQot
ewotICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVjdChyZWN0LngoKSAvIHNjYWxl
LAotICAgICAgICByZWN0LnkoKSAvIHNjYWxlLAotICAgICAgICByZWN0LndpZHRoKCkgLyBzY2Fs
ZSwKLSAgICAgICAgcmVjdC5oZWlnaHQoKSAvIHNjYWxlKSk7Ci19Ci0KIHZvaWQgQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmU6OnBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIoVmVjdG9yPFRleHR1cmVN
YXBwZXJUaWxlKj4mIHRpbGVzLCBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0
dXJlKiBtYXNrLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0aWxlcy5zaXplKCk7ICsraSkgewpAQCAtMTY1LDcgKzE1Niw3IEBAIHZvaWQgQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIq
IHRleHR1cmVNYXBwZXIsCiAgICAgfQogCiAgICAgQVNTRVJUKCFtX3NpemUuaXNaZXJvKCkpOwot
ICAgIEZsb2F0UmVjdCByZWN0T25Db250ZW50cyA9IG1hcFRvQ29udGVudHMoSW50UmVjdChJbnRQ
b2ludDo6emVybygpLCBtX3NpemUpLCBtX3NjYWxlKTsKKyAgICBGbG9hdFJlY3QgcmVjdE9uQ29u
dGVudHMoRmxvYXRQb2ludDo6emVybygpLCBtX3NpemUpOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IGFkanVzdGVkVHJhbnNmb3JtID0gdHJhbnNmb3JtOwogICAgIC8vIHRhcmdldFJlY3QgaXMg
b24gdGhlIGNvbnRlbnRzIGNvb3JkaW5hdGUgc3lzdGVtLCBzbyB3ZSBtdXN0IGNvbXBhcmUgdHdv
IHJlY3RzIG9uIHRoZSBjb250ZW50cyBjb29yZGluYXRlIHN5c3RlbS4KICAgICAvLyBTZWUgVGls
ZWRCYWNraW5nU3RvcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUu
aAppbmRleCAwYjI0ODI2NzYxNmRiZGFkZjM5YzEyNDMzZDRiMzAyYTQxMzM0NzdlLi5iZGI4NGRm
ZWE2ZTBkMTQxNjYxNzJiZjUwMDU5YjlkZGRlY2JkOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUpOyB9CiAgICAgdm9pZCBjb21t
aXRUaWxlT3BlcmF0aW9ucyhXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKik7CiAgICAgUGFzc1JlZlB0
cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRT
aXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2b2lkIHNldFNpemUoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVy
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25z
dCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBU
ZXh0dXJlKik7CiAKIHByaXZhdGU6CkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAKICAgICBI
YXNoTWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVzOwogICAgIEhh
c2hTZXQ8aW50PiBtX3RpbGVzVG9SZW1vdmU7Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7
CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fc2l6ZTsKICAgICBmbG9hdCBtX3NjYWxlOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcAppbmRl
eCAxN2ZhMmVhOTVjM2VkZTgzZWY5MGUxYWE3YWM4ZDU4NjQ0NDVkMWE1Li5iM2QxNDBmYTc0NGI1
ZjdiZTMzY2E2MWMxMjY0Yjg0NWU5YjQ4ODkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTYsOSArNTYsOSBAQCB2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OmRpc3BhdGNoVXBkYXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4m
IGZ1bmN0aW9uKQogICAgIG1fcmVuZGVyZXItPmFwcGVuZFVwZGF0ZShmdW5jdGlvbik7CiB9CiAK
LXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKGludCBs
YXllcklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVw
ZGF0ZUluZm8mIHVwZGF0ZUluZm8pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNy
ZWF0ZVRpbGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0
ZUluZm8pCiB7Ci0gICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OmNy
ZWF0ZVRpbGUsIG1fcmVuZGVyZXIuZ2V0KCksIGxheWVySUQsIHRpbGVJRCwgdXBkYXRlSW5mby5z
Y2FsZUZhY3RvciwgYmFja2luZ1NpemUpKTsKKyAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXll
clRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZSwgbV9yZW5kZXJlci5nZXQoKSwgbGF5ZXJJRCwgdGls
ZUlELCB1cGRhdGVJbmZvLnNjYWxlRmFjdG9yKSk7CiAgICAgdXBkYXRlVGlsZUZvckxheWVyKGxh
eWVySUQsIHRpbGVJRCwgdGlsZVJlY3QsIHVwZGF0ZUluZm8pOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKaW5kZXggZDM0ODY4NzhkODhkNDNkYTUw
NDAwODFjZDVlYzEzMzMxZjZlOTRkOC4uNjQ2ODAxMTY4ZjI0YTc4OWI3ZWI4MDcxY2Y0YjZmOGE0
YzRmYjk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHku
aApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsKICAgICB2b2lkIGRpZFJlbmRlckZyYW1lKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgY292ZXJlZFJlY3QpOwotICAgIHZvaWQgY3JlYXRlVGlsZUZvckxheWVyKGludCBsYXllcklE
LCBpbnQgdGlsZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJik7Cisg
ICAgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOwogICAgIHZvaWQg
dXBkYXRlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKICAgICB2b2lkIHJlbW92ZVRp
bGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCk7CiAgICAgdm9pZCBjcmVhdGVVcGRh
dGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3QgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNz
YWdlcy5pbgppbmRleCBlNWU2NGE5M2E3YTA3NmNlOTMzZjAyOWM5NjVhNDY5NzNhNzgzZjdkLi5j
ZDMyZWQ5ODIwYTNlNGJkNDIxOGM1YmMyYTMxNDBhZDViNjIzM2Q3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAg
LTI2LDcgKzI2LDcgQEAgbWVzc2FnZXMgLT4gTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7CiAj
ZW5kaWYKICAgICBTZXRSb290Q29tcG9zaXRpbmdMYXllcih1aW50MzJfdCBpZCkKICAgICBEZWxl
dGVDb21wb3NpdGluZ0xheWVyKHVpbnQzMl90IGlkKQotICAgIENyZWF0ZVRpbGVGb3JMYXllcih1
aW50MzJfdCBsYXllcklELCBpbnQgdGlsZUlELCBXZWJDb3JlOjpJbnRSZWN0IHRpbGVSZWN0LCBX
ZWJDb3JlOjpJbnRTaXplIGJhY2tpbmdTaXplLCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvIHVw
ZGF0ZUluZm8pCisgICAgQ3JlYXRlVGlsZUZvckxheWVyKHVpbnQzMl90IGxheWVySUQsIGludCB0
aWxlSUQsIFdlYkNvcmU6OkludFJlY3QgdGlsZVJlY3QsIFdlYktpdDo6U3VyZmFjZVVwZGF0ZUlu
Zm8gdXBkYXRlSW5mbykKICAgICBVcGRhdGVUaWxlRm9yTGF5ZXIodWludDMyX3QgbGF5ZXJJRCwg
aW50IHRpbGVJRCwgV2ViQ29yZTo6SW50UmVjdCB0aWxlUmVjdCwgV2ViS2l0OjpTdXJmYWNlVXBk
YXRlSW5mbyB1cGRhdGVJbmZvKQogICAgIFJlbW92ZVRpbGVGb3JMYXllcih1aW50MzJfdCBsYXll
cklELCBpbnQgdGlsZUlEKQogICAgIENyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBXZWJL
aXQ6OlNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZSBoYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVSZW5kZXJlci5jcHAKaW5kZXggMjVhMjcwZWUzM2JjZTM5NGMwZTIzYjk5ZGI3ZWM3ZjZmN2I2
NzZjMy4uMTFlZDAzYmIxMTE0NmQ4ZTU5YjI0YzM3OWEyM2VjYjMwZGQxZTcyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApAQCAtMzU1LDkgKzM1NSw5IEBAIHZvaWQgTGF5
ZXJUcmVlUmVuZGVyZXI6OnNldFJvb3RMYXllcklEKFdlYkxheWVySUQgbGF5ZXJJRCkKICAgICBt
X3Jvb3RMYXllci0+YWRkQ2hpbGQobGF5ZXIpOwogfQogCi1QYXNzUmVmUHRyPENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlPiBMYXllclRyZWVSZW5kZXJlcjo6Z2V0QmFja2luZ1N0b3JlKFdlYkxheWVy
SUQgaWQpCitQYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBMYXllclRyZWVSZW5k
ZXJlcjo6Z2V0QmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7Ci0g
ICAgVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciA9IHRvVGV4dHVyZU1hcHBlckxheWVyKGxheWVy
QnlJRChpZCkpOworICAgIFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIgPSB0b1RleHR1cmVNYXBw
ZXJMYXllcihncmFwaGljc0xheWVyKTsKICAgICBBU1NFUlQobGF5ZXIpOwogICAgIFJlZlB0cjxD
b29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gc3RhdGljX2Nhc3Q8Q29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUqPihsYXllci0+YmFja2luZ1N0b3JlKCkuZ2V0KCkpOwogICAgIGlm
ICghYmFja2luZ1N0b3JlKSB7CkBAIC0zNjgsOSArMzY4LDkgQEAgUGFzc1JlZlB0cjxDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZT4gTGF5ZXJUcmVlUmVuZGVyZXI6OmdldEJhY2tpbmdTdG9yZShXZWJM
YXllckkKICAgICByZXR1cm4gYmFja2luZ1N0b3JlOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRl
cmVyOjpyZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRlZChXZWJMYXllcklEIGxheWVySUQsIGludCAv
KnRpbGVJRCovKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlQmFja2luZ1N0b3JlSWZO
ZWVkZWQoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKLSAgICBUZXh0dXJlTWFwcGVy
TGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIobGF5ZXJCeUlEKGxheWVySUQpKTsK
KyAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIoZ3Jh
cGhpY3NMYXllcik7CiAgICAgQVNTRVJUKGxheWVyKTsKICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRC
YWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlKj4obGF5ZXItPmJhY2tpbmdTdG9yZSgpLmdldCgpKTsKICAgICBBU1NFUlQoYmFja2lu
Z1N0b3JlKTsKQEAgLTM3OCwyMyArMzc4LDQxIEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJl
bW92ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IC8qdGlsCiAg
ICAgICAgIGxheWVyLT5zZXRCYWNraW5nU3RvcmUoMCk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVu
ZGVyZXI6OmNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBmbG9hdCBz
Y2FsZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpCit2b2lkIExheWVyVHJl
ZVJlbmRlcmVyOjpyZXNldEJhY2tpbmdTdG9yZVNpemVUb0xheWVyU2l6ZShHcmFwaGljc0xheWVy
KiBncmFwaGljc0xheWVyKQogewotICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4g
YmFja2luZ1N0b3JlID0gZ2V0QmFja2luZ1N0b3JlKGxheWVySUQpOworICAgIFRleHR1cmVNYXBw
ZXJMYXllciogbGF5ZXIgPSB0b1RleHR1cmVNYXBwZXJMYXllcihncmFwaGljc0xheWVyKTsKKyAg
ICBBU1NFUlQobGF5ZXIpOworICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFj
a2luZ1N0b3JlID0gc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUqPihsYXllci0+
YmFja2luZ1N0b3JlKCkuZ2V0KCkpOworICAgIEFTU0VSVChiYWNraW5nU3RvcmUpOworICAgIGJh
Y2tpbmdTdG9yZS0+c2V0U2l6ZShncmFwaGljc0xheWVyLT5zaXplKCkpOworfQorCit2b2lkIExh
eWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJ
RCwgZmxvYXQgc2NhbGUpCit7CisgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQo
bGF5ZXJJRCk7CisgICAgQVNTRVJUKGxheWVyKTsKKyAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNr
aW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7CiAgICAgYmFj
a2luZ1N0b3JlLT5jcmVhdGVUaWxlKHRpbGVJRCwgc2NhbGUpOwotICAgIGJhY2tpbmdTdG9yZS0+
c2V0U2l6ZShiYWNraW5nU2l6ZSk7CisgICAgcmVzZXRCYWNraW5nU3RvcmVTaXplVG9MYXllclNp
emUobGF5ZXIpOwogfQogCiB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlKFdlYkxh
eWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCkKIHsKLSAgICBnZXRCYWNraW5nU3RvcmUobGF5ZXJJ
RCktPnJlbW92ZVRpbGUodGlsZUlEKTsKLSAgICByZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRlZChs
YXllcklELCB0aWxlSUQpOworICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGxh
eWVySUQpOworICAgIEFTU0VSVChsYXllcik7CisgICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlPiBiYWNraW5nU3RvcmUgPSBnZXRCYWNraW5nU3RvcmUobGF5ZXIpOworICAgIGJhY2tp
bmdTdG9yZS0+cmVtb3ZlVGlsZSh0aWxlSUQpOworICAgIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRv
TGF5ZXJTaXplKGxheWVyKTsKKyAgICByZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRlZChsYXllcik7
CiB9CiAKIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXll
cklELCBpbnQgdGlsZUlELCBjb25zdCBUaWxlVXBkYXRlJiB1cGRhdGUpCiB7Ci0gICAgUmVmUHRy
PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBnZXRCYWNraW5nU3RvcmUo
bGF5ZXJJRCk7CisgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQobGF5ZXJJRCk7
CisgICAgQVNTRVJUKGxheWVyKTsKKyAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+
IGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXllcik7CiAgICAgYmFja2luZ1N0b3Jl
LT51cGRhdGVUaWxlKHRpbGVJRCwgdXBkYXRlLnNvdXJjZVJlY3QsIHVwZGF0ZS50aWxlUmVjdCwg
dXBkYXRlLnN1cmZhY2UsIHVwZGF0ZS5vZmZzZXQpOworICAgIHJlc2V0QmFja2luZ1N0b3JlU2l6
ZVRvTGF5ZXJTaXplKGxheWVyKTsKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZl
cnMuYWRkKGJhY2tpbmdTdG9yZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5o
CmluZGV4IDYwNDM1Yzk5MWFkYjZmZWNjYjU5NDJiZTVjMzlmNTg1YmI3ZDZhNzkuLjJlZjAxZWNi
MTgwNWI4OGRjYWRhN2RmZTA4ZmFhM2VlOWRiZGMwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYXllckZp
bHRlcnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogI2Vu
ZGlmCiAKLSAgICB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBmbG9hdCBzY2FsZSwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklE
LCBpbnQsIGZsb2F0IHNjYWxlKTsKICAgICB2b2lkIHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50
KTsKICAgICB2b2lkIHVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBjb25zdCBUaWxlVXBkYXRl
Jik7CiAgICAgdm9pZCBmbHVzaExheWVyQ2hhbmdlcygpOwpAQCAtMTI2LDggKzEyNiw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKTsKICAgICB2b2lkIHB1cmdlQmFja2lu
Z1N0b3JlcygpOwogCi0gICAgUGFzc1JlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gZ2V0
QmFja2luZ1N0b3JlKFdlYkxheWVySUQpOwotICAgIHZvaWQgcmVtb3ZlQmFja2luZ1N0b3JlSWZO
ZWVkZWQoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCk7CisgICAgUGFzc1JlZlB0cjxDb29yZGluYXRl
ZEJhY2tpbmdTdG9yZT4gZ2V0QmFja2luZ1N0b3JlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsK
KyAgICB2b2lkIHJlbW92ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKTsKKyAgICB2b2lkIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXllcklELCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKj4gTGF5ZXJNYXA7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1f
Y29udGVudHNTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggOTliYmM2NjY3ODQzM2E1MGM0Yzc0N2ZjODNk
ZDhhYjUwNDUzYmUwZi4uNzU5MjNlNDczYjU0YWQzYWZjNTJlMDdiMGQzNGM0MjQ4NGE5Y2MzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCkBAIC02NTUsOSArNjU1LDkgQEAgUGFzc093blB0cjxXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ+IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXQK
ICAgICByZXR1cm4gbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmJlZ2luQ29udGVu
dFVwZGF0ZShzaXplLCBjb250ZW50c09wYXF1ZSgpID8gMCA6IFNoYXJlYWJsZUJpdG1hcDo6U3Vw
cG9ydHNBbHBoYSwgYXRsYXMsIG9mZnNldCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpjcmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1
cGRhdGVJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
Y3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5m
bywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJlY3QpCiB7Ci0gICAgbV9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmNyZWF0ZVRpbGUoaWQoKSwgdGlsZUlELCB1cGRhdGVJbmZv
LCB0aWxlUmVjdCwgYmFja2luZ1NpemUpOworICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50LT5jcmVhdGVUaWxlKGlkKCksIHRpbGVJRCwgdXBkYXRlSW5mbywgdGlsZVJlY3QpOwog
fQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlVGlsZShpbnQgdGlsZUlE
LCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgSW50UmVjdCYgdGls
ZVJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oCmluZGV4IDJhOTQzNjkxZjBhNGFiM2VjNWM1OWNhNWRlM2UxODQxZTQxZDFj
OGYuLjA0NjY4YWE0OWE2MjMzNDZmZDM3MDMwOWMzNTA0YjU0MjI2ZmQ3MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBA
IC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICAvLyBDb29yZGluYXRlZFRpbGVDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBjb25z
dCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJ
bmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRp
bGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCkgPSAwOwogCkBAIC0xNDYsNyArMTQ2LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgQ29sb3IgdGlsZWRCYWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3Io
KSBjb25zdCBPVkVSUklERTsKIAogICAgIC8vIENvb3JkaW5hdGVkVGlsZUNsaWVudAotICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVw
ZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8mLCBjb25z
dCBJbnRSZWN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoaW50IHRp
bGVJRCwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IEludFJlY3QmKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShpbnQgdGlsZUlEKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRV
cGRhdGUoY29uc3QgSW50U2l6ZSYsIGludCYgYXRsYXNJRCwgSW50UG9pbnQmKSBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuY3BwCmluZGV4IDdl
ODZkMWYyYTcwY2E1MTc4NDE5ZGNlNzE4ZTg0M2QxMjk4N2ZhM2UuLjU0OGQ0OWQzMjdmMDM1NTMy
NzQ2ZmQyZmI1OTU1YmQ2MWRhOGJhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRUaWxlLmNwcApAQCAtODgsNyArODgsNyBAQCBWZWN0b3I8SW50UmVjdD4gQ29v
cmRpbmF0ZWRUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKCkKICAgICBzdGF0aWMgaW50IGlkID0gMDsK
ICAgICBpZiAoIW1fSUQpIHsKICAgICAgICAgbV9JRCA9ICsraWQ7Ci0gICAgICAgIG1fY2xpZW50
LT5jcmVhdGVUaWxlKG1fSUQsIHVwZGF0ZUluZm8sIG1fcmVjdCwgbV90aWxlZEJhY2tpbmdTdG9y
ZS0+cmVjdCgpLnNpemUoKSk7CisgICAgICAgIG1fY2xpZW50LT5jcmVhdGVUaWxlKG1fSUQsIHVw
ZGF0ZUluZm8sIG1fcmVjdCk7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fY2xpZW50LT51cGRhdGVU
aWxlKG1fSUQsIHVwZGF0ZUluZm8sIG1fcmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGls
ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRUaWxlLmgKaW5kZXggZThmMzEzN2Q1YjVhOGJhOTNiYTdmNTIzNjEzOGU4
YjM2YTZiMDc3ZS4uMzJmZjRlN2M3OTFmMmJlMzRiNTAzODAwODU2NTgzODZlZTFlYzYzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmgKQEAgLTc1LDcgKzc1
LDcgQEAgcHJpdmF0ZToKIGNsYXNzIENvb3JkaW5hdGVkVGlsZUNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+Q29vcmRpbmF0ZWRUaWxlQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IGNyZWF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2lu
Z1NpemUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25z
dCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUlu
Zm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVUaWxlKGludCB0aWxlSUQpID0gMDsKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYsIGludCYgYXRsYXNJRCwgV2ViQ29yZTo6SW50UG9pbnQmKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKaW5kZXggNDMzYmNl
OWFkNTA2Mzc2ZmVmNzU4OTI5Zjc4YTVlOWYzMDU3MDhkMC4uMmZjNGM3YTdlMDM4NmIzZTY4MDE1
OTRiNTkyNzcwMDJmYzRjZjRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtNTk0LDEwICs1OTQsMTAgQEAgYm9vbCBMYXll
clRyZWVIb3N0OjpzdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKQogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVUaWxlKFdlYkxheWVy
SUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUlu
Zm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBiYWNraW5nU2l6ZSkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVRpbGUo
V2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYg
dXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJlY3QpCiB7CiAgICAgbV9z
aG91bGRTeW5jRnJhbWUgPSB0cnVlOwotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Q3JlYXRlVGlsZUZvckxheWVyKGxheWVySUQsIHRpbGVJ
RCwgdGlsZVJlY3QsIGJhY2tpbmdTaXplLCB1cGRhdGVJbmZvKSk7CisgICAgbV93ZWJQYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpDcmVhdGVUaWxlRm9yTGF5
ZXIobGF5ZXJJRCwgdGlsZUlELCB0aWxlUmVjdCwgdXBkYXRlSW5mbykpOwogfQogCiB2b2lkIExh
eWVyVHJlZUNvb3JkaW5hdG9yOjp1cGRhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRp
bGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHRpbGVSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggZjZiMzhjMWM0ZTAwYWU1OGRlNWFiNDE0YWU3ZTRlM2Qy
MDBiZWZjZi4uNDAxN2UxZmM0MDA2MDMzNGM4OTVlODVhYzk1ODVjYzg5MmQ1ZDY3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC03
MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludDY0X3QgYWRvcHRJbWFnZUJhY2tp
bmdTdG9yZShXZWJDb3JlOjpJbWFnZSopOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlSW1hZ2VC
YWNraW5nU3RvcmUoaW50NjRfdCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShXZWJM
YXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6
ZSk7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwg
Y29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3Vy
ZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCk7CiAgICAgdmlydHVhbCBXZWJD
b3JlOjpJbnRSZWN0IHZpc2libGVDb250ZW50c1JlY3QoKSBjb25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>