<?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>90103</bug_id>
          
          <creation_ts>2012-06-27 15:15:12 -0700</creation_ts>
          <short_desc>[chromium] Do not multiply bounds by contentsScale in TiledLayerChromium and CanvasLayerTextureUpdater</short_desc>
          <delta_ts>2012-06-28 09:48:07 -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>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="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
    
    <cc>zlieber</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>658915</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-27 15:15:12 -0700</bug_when>
    <thetext>[chromium] Do not multiply bounds by contentsScale in TiledLayerChromium and CanvasLayerTextureUpdater</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658917</commentid>
    <comment_count>1</comment_count>
      <attachid>149804</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-27 15:23:06 -0700</bug_when>
    <thetext>Created attachment 149804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659045</commentid>
    <comment_count>2</comment_count>
      <attachid>149804</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-06-27 18:07:26 -0700</bug_when>
    <thetext>Comment on attachment 149804
Patch

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

Eep.  Nice catch!  One small nit, but otherwise R=me.

&gt; Source/WebCore/platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:61
&gt; +    if (contentsWidthScale != 1.0 || contentsHeightScale) {

!= 1.0 ??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659061</commentid>
    <comment_count>3</comment_count>
      <attachid>149804</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-27 18:23:24 -0700</bug_when>
    <thetext>Comment on attachment 149804
Patch

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

ty :)

&gt;&gt; Source/WebCore/platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:61
&gt;&gt; +    if (contentsWidthScale != 1.0 || contentsHeightScale) {
&gt; 
&gt; != 1.0 ??

er.. nice catch yourself! oops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659507</commentid>
    <comment_count>4</comment_count>
      <attachid>149956</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-28 08:05:15 -0700</bug_when>
    <thetext>Created attachment 149956
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659569</commentid>
    <comment_count>5</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-28 09:47:36 -0700</bug_when>
    <thetext>Committed r121436: &lt;http://trac.webkit.org/changeset/121436&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149804</attachid>
            <date>2012-06-27 15:23:06 -0700</date>
            <delta_ts>2012-06-28 08:05:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90103-20120627182305.patch</filename>
            <type>text/plain</type>
            <size>24308</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBiNTBhZjA5YTc2MGZj
OWI3YzNlNTZmYzA0NGUzMTBkZmU5YWEzZC4uMjY0YWRjNTIxMWRmYzgxZmJhZmU0MjY0ZjRlYmM5
ZmQxMTcxY2M5ZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA2LTI3ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRG8g
bm90IG11bHRpcGx5IGJvdW5kcyBieSBjb250ZW50c1NjYWxlIGluIFRpbGVkTGF5ZXJDaHJvbWl1
bSBhbmQgQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAxMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBOb24taW50ZWdlciBzY2FsZSBmYWN0b3JzIGNhbiBzY2Fs
ZSB0aGUgYm91bmRzIG9mIGEgbGF5ZXIgc3VjaCB0aGF0CisgICAgICAgIGRpZmZlcmVudCByb3Vu
ZGluZyBpcyBhcHBsaWVkIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGluIHRoZSBjb250ZW50Cisg
ICAgICAgIGJvdW5kcy4gV2Ugc2hvdWxkIG5ldmVyIG11bHRpcGx5IGJvdW5kcyBieSBjb250ZW50
c1NjYWxlIGluIG9yZGVyIHRvCisgICAgICAgIHdvcmsgY29ycmVjdGx5IHdpdGggbm9uLWludGVn
ZXIgc2NhbGUgZmFjdG9ycy4gSW5zdGVhZCwgYWx3YXlzIHVzZSB0aGUKKyAgICAgICAgY29udGVu
dEJvdW5kcy9ib3VuZHMgcmF0aW8gZm9yIHdpZHRoIGFuZCBoZWlnaHQgaW5kZXBlbmRlbnRseS4K
KworICAgICAgICBUZXN0czogVGlsZWRMYXllckNocm9taXVtVGVzdC5ub25JbnRlZ2VyQ29udGVu
dHNTY2FsZUlzTm90RGlzdG9ydGVkRHVyaW5nUGFpbnQKKyAgICAgICAgICAgICAgIFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3Qubm9uSW50ZWdlckNvbnRlbnRzU2NhbGVJc05vdERpc3RvcnRlZER1cmlu
Z0ludmFsaWRhdGlvbgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0
bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXIuaDoKKyAgICAgICAgKEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwU2tQaWN0dXJlQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyLmg6CisgICAgICAgIChCaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXI6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoKKyAgICAgICAgKENhbnZhc0xheWVyVGV4
dHVyZVVwZGF0ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
VGV4dHVyZVVwZGF0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGV4dHVyZVVwZGF0ZXI6
OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
U2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJM
YXllckNocm9taXVtOjp1cGRhdGVQYXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1Vw
ZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAoU2tQaWN0dXJlQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGls
ZWRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1
bTo6c2V0TmVlZHNEaXNwbGF5UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hy
b21pdW06OnVwZGF0ZVRpbGVzKToKKwogMjAxMi0wNi0yNiAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0
ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbVGV4bWFwXSBCdWcgZml4IHR5cG8gYWJv
dXQgY29tcHV0aW5nIGJ5dGVzUGVyTGluZSBpbiBCaXRtYXBUZXh0dXJlR0wuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDhkMzU4OTgzYjgzZjM4YmE4MjBiODMxMWQyNTEyZjNlZDZiMGIy
ZmQuLmFlMGJhMjc3ZWRmNTY2YjNiNTRmNmUxMTExZmJmODc3OWViZWNjNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMjcgIERhbmEgSmFuc2Vu
cyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBEbyBub3QgbXVs
dGlwbHkgYm91bmRzIGJ5IGNvbnRlbnRzU2NhbGUgaW4gVGlsZWRMYXllckNocm9taXVtIGFuZCBD
YW52YXNMYXllclRleHR1cmVVcGRhdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MDEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHA6CisgICAg
ICAgIChXZWJLaXRUZXN0czo6RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0
ZSk6CisgICAgICAgICogdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oOgorICAgICAgICAo
RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogdGVzdHMvVGlsZWRMYXllckNocm9t
aXVtVGVzdC5jcHA6CisKIDIwMTItMDYtMjYgIEp1biBNdWthaSAgPG11a2FpQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBBbGxvdyB1c2luZyA8aW5wdXQgdHlwZT0iY29sb3IiPiBVSSBpbiBDaHJv
bWVPUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
ci5jcHAKaW5kZXggZjg1Mjg1ZjNiZjI2MmJkMzgyM2ExOTI0N2ZmM2Q5OTAzNTJhYjYwZS4uZWQ2
ZjBjZjVjYTVjZTY0YTczNTQyMjllODI5YjQ2YzNiY2UwNzFlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0
dXJlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKQEAgLTgwLDcgKzgwLDcg
QEAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0IEJpdG1hcENhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXI6OnNhbXBsZWQKICAgICAgICAgICAgIExheWVyVGV4dHVyZVVwZGF0
ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkEgOiBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVk
VGV4ZWxGb3JtYXRCR1JBOwogfQogCi12b2lkIEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXI6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50
U2l6ZSYgdGlsZVNpemUsIGZsb2F0IGNvbnRlbnRzU2NhbGUsIEludFJlY3QmIHJlc3VsdGluZ09w
YXF1ZVJlY3QpCit2b2lkIEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVU
b1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNp
emUsIGZsb2F0IGNvbnRlbnRzV2lkdGhTY2FsZSwgZmxvYXQgY29udGVudHNIZWlnaHRTY2FsZSwg
SW50UmVjdCYgcmVzdWx0aW5nT3BhcXVlUmVjdCkKIHsKICAgICBtX3RleFN1YkltYWdlLnNldFN1
YkltYWdlU2l6ZSh0aWxlU2l6ZSk7CiAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBCaXRtYXBDYW52
YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29u
dGVudFJlY3QKICAgICAgICAgbV9jYW52YXMgPSBhZG9wdFB0cihza2lhOjpDcmVhdGVCaXRtYXBD
YW52YXMobV9jYW52YXNTaXplLndpZHRoKCksIG1fY2FudmFzU2l6ZS5oZWlnaHQoKSwgbV9vcGFx
dWUpKTsKICAgICB9CiAKLSAgICBwYWludENvbnRlbnRzKG1fY2FudmFzLmdldCgpLCBjb250ZW50
UmVjdCwgY29udGVudHNTY2FsZSwgcmVzdWx0aW5nT3BhcXVlUmVjdCk7CisgICAgcGFpbnRDb250
ZW50cyhtX2NhbnZhcy5nZXQoKSwgY29udGVudFJlY3QsIGNvbnRlbnRzV2lkdGhTY2FsZSwgY29u
dGVudHNIZWlnaHRTY2FsZSwgcmVzdWx0aW5nT3BhcXVlUmVjdCk7CiB9CiAKIHZvaWQgQml0bWFw
Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6dXBkYXRlVGV4dHVyZVJlY3QoQ0NHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIFRleHR1cmVBbGxvY2F0b3IqIGFsbG9jYXRvciwgTWFuYWdlZFRleHR1
cmUqIHRleHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRl
c3RSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
ci5oCmluZGV4IDNjOTUzODBjZTkzMmFjZjQ4YTliNWYyMDgxYTRhOGMyNzhlZDYyYWEuLjI4ZDJi
YTEwOWVhNmEyMDM5Y2I0MzM1MWM3NDBmMzdmNWRmMTg0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVy
ZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPExheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1
cmU+IGNyZWF0ZVRleHR1cmUoVGV4dHVyZU1hbmFnZXIqKTsKICAgICB2aXJ0dWFsIFNhbXBsZWRU
ZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVj
dCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGZsb2F0IGNvbnRlbnRzU2NhbGUsIEludFJlY3Qm
IHJlc3VsdGluZ09wYXF1ZVJlY3QpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVT
aXplLCBmbG9hdCBjb250ZW50c1dpZHRoU2NhbGUsIGZsb2F0IGNvbnRlbnRzSGVpZ2h0U2NhbGUs
IEludFJlY3QmIHJlc3VsdGluZ09wYXF1ZVJlY3QpIE9WRVJSSURFOwogICAgIHZvaWQgdXBkYXRl
VGV4dHVyZVJlY3QoQ0NHcmFwaGljc0NvbnRleHQqLCBUZXh0dXJlQWxsb2NhdG9yKiwgTWFuYWdl
ZFRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0
UmVjdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wpIE9WRVJSSURFOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFw
U2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1
cmVVcGRhdGVyLmNwcAppbmRleCA3MWIzOTBmNWJjMmI1NjFjOWU3Mzk0MGI5YzhhMTMwZmQyNDVk
MTUyLi5hODU0MDUwM2Q3MWIzYTk2YjMxNThjMTE1OGFhMmVlNDE3NGNhZjY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1
cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyLmNwcApAQCAtOTAsMTAgKzkwLDEwIEBAIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBs
ZWRUZXhlbEZvcm1hdCBCaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyCiAg
ICAgICAgICAgICBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRSR0JBIDog
TGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0QkdSQTsKIH0KIAotdm9pZCBC
aXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUo
Y29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBmbG9h
dCBjb250ZW50c1NjYWxlLCBJbnRSZWN0JiByZXN1bHRpbmdPcGFxdWVSZWN0KQordm9pZCBCaXRt
YXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUoY29u
c3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBmbG9hdCBj
b250ZW50c1dpZHRoU2NhbGUsIGZsb2F0IGNvbnRlbnRzSGVpZ2h0U2NhbGUsIEludFJlY3QmIHJl
c3VsdGluZ09wYXF1ZVJlY3QpCiB7CiAgICAgbV90ZXhTdWJJbWFnZS5zZXRTdWJJbWFnZVNpemUo
dGlsZVNpemUpOwotICAgIFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBh
cmVUb1VwZGF0ZShjb250ZW50UmVjdCwgdGlsZVNpemUsIGNvbnRlbnRzU2NhbGUsIHJlc3VsdGlu
Z09wYXF1ZVJlY3QpOworICAgIFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnBy
ZXBhcmVUb1VwZGF0ZShjb250ZW50UmVjdCwgdGlsZVNpemUsIGNvbnRlbnRzV2lkdGhTY2FsZSwg
Y29udGVudHNIZWlnaHRTY2FsZSwgcmVzdWx0aW5nT3BhcXVlUmVjdCk7CiB9CiAKIHZvaWQgQml0
bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnRDb250ZW50c1JlY3Qo
U2tDYW52YXMqIGNhbnZhcywgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcFNrUGljdHVy
ZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0JpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIu
aAppbmRleCAwOTQ4MWQyODQxMDEwOGFkZTExZmJiY2U5N2I4YmY4NjJkOGQxZjJlLi4wODI0Yzkw
ODYzMDYxZTVjN2U1NjEzMjQ5Yzc0M2EwODgyYWU0MzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC01
Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxMYXllclRleHR1
cmVVcGRhdGVyOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKFRleHR1cmVNYW5hZ2VyKikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0KEdD
M0RlbnVtIHRleHR1cmVGb3JtYXQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVT
aXplLCBmbG9hdCBjb250ZW50c1NjYWxlLCBJbnRSZWN0JiByZXN1bHRpbmdPcGFxdWVSZWN0KSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3Qm
IGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgZmxvYXQgY29udGVudHNXaWR0
aFNjYWxlLCBmbG9hdCBjb250ZW50c0hlaWdodFNjYWxlLCBJbnRSZWN0JiByZXN1bHRpbmdPcGFx
dWVSZWN0KSBPVkVSUklERTsKICAgICB2b2lkIHBhaW50Q29udGVudHNSZWN0KFNrQ2FudmFzKiwg
Y29uc3QgSW50UmVjdCYgc291cmNlUmVjdCk7CiAgICAgdm9pZCB1cGRhdGVUZXh0dXJlUmVjdChD
Q0dyYXBoaWNzQ29udGV4dCosIEdDM0RlbnVtIGZvcm1hdCwgY29uc3QgSW50UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IHVpbnQ4X3QqIHBpeGVscyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlci5jcHAKaW5kZXggNTMwYmIyZjcxYzQxZGM0OWE2ZGY4NGY4MWMzNTMyMzAw
ZTkzNDhmZi4uOTExNjc1NTAwMTRlMTMzYWE1MmY0NWUxNDQyYWQ3ODliZTIzNGJlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKQEAgLTUwLDcgKzUwLDcg
QEAgQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6fkNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIo
KQogewogfQogCi12b2lkIENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnBhaW50Q29udGVudHMo
U2tDYW52YXMqIGNhbnZhcywgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGZsb2F0IGNvbnRl
bnRzU2NhbGUsIEludFJlY3QmIHJlc3VsdGluZ09wYXF1ZVJlY3QpCit2b2lkIENhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXI6OnBhaW50Q29udGVudHMoU2tDYW52YXMqIGNhbnZhcywgY29uc3QgSW50
UmVjdCYgY29udGVudFJlY3QsIGZsb2F0IGNvbnRlbnRzV2lkdGhTY2FsZSwgZmxvYXQgY29udGVu
dHNIZWlnaHRTY2FsZSwgSW50UmVjdCYgcmVzdWx0aW5nT3BhcXVlUmVjdCkKIHsKICAgICBUUkFD
RV9FVkVOVDAoImNjIiwgIkNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnBhaW50Q29udGVudHMi
KTsKICAgICBjYW52YXMtPnNhdmUoKTsKQEAgLTU4LDExICs1OCwxMSBAQCB2b2lkIENhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXI6OnBhaW50Q29udGVudHMoU2tDYW52YXMqIGNhbnZhcywgY29uc3Qg
SW50UmVjdCYgYwogCiAgICAgSW50UmVjdCBzY2FsZWRDb250ZW50UmVjdCA9IGNvbnRlbnRSZWN0
OwogCi0gICAgaWYgKGNvbnRlbnRzU2NhbGUgIT0gMS4wKSB7Ci0gICAgICAgIGNhbnZhcy0+c2Nh
bGUoV2ViQ29yZUZsb2F0VG9Ta1NjYWxhcihjb250ZW50c1NjYWxlKSwgV2ViQ29yZUZsb2F0VG9T
a1NjYWxhcihjb250ZW50c1NjYWxlKSk7CisgICAgaWYgKGNvbnRlbnRzV2lkdGhTY2FsZSAhPSAx
LjAgfHwgY29udGVudHNIZWlnaHRTY2FsZSkgeworICAgICAgICBjYW52YXMtPnNjYWxlKFdlYkNv
cmVGbG9hdFRvU2tTY2FsYXIoY29udGVudHNXaWR0aFNjYWxlKSwgV2ViQ29yZUZsb2F0VG9Ta1Nj
YWxhcihjb250ZW50c0hlaWdodFNjYWxlKSk7CiAKICAgICAgICAgRmxvYXRSZWN0IHJlY3QgPSBj
b250ZW50UmVjdDsKLSAgICAgICAgcmVjdC5zY2FsZSgxIC8gY29udGVudHNTY2FsZSk7CisgICAg
ICAgIHJlY3Quc2NhbGUoMSAvIGNvbnRlbnRzV2lkdGhTY2FsZSwgMSAvIGNvbnRlbnRzSGVpZ2h0
U2NhbGUpOwogICAgICAgICBzY2FsZWRDb250ZW50UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocmVj
dCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKaW5k
ZXggYzk1MWU5M2ZlZDY2ODQwMDFmZDdlNDQ5MjBhN2M2YTNkYWE0Mjk5Mi4uYjQ0MWU0ZTc0ZjE0
ZWJhNTgxMWNmMWU1N2RhZmFjMzEyMjY0Nzk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXIuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAg
ICAgZXhwbGljaXQgQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcihQYXNzT3duUHRyPExheWVyUGFp
bnRlckNocm9taXVtPik7CiAKLSAgICB2b2lkIHBhaW50Q29udGVudHMoU2tDYW52YXMqLCBjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCwgZmxvYXQgY29udGVudHNTY2FsZSwgSW50UmVjdCYgcmVz
dWx0aW5nT3BhcXVlUmVjdCk7CisgICAgdm9pZCBwYWludENvbnRlbnRzKFNrQ2FudmFzKiwgY29u
c3QgSW50UmVjdCYgY29udGVudFJlY3QsIGZsb2F0IGNvbnRlbnRzV2lkdGhTY2FsZSwgZmxvYXQg
Y29udGVudHNIZWlnaHRTY2FsZSwgSW50UmVjdCYgcmVzdWx0aW5nT3BhcXVlUmVjdCk7CiAgICAg
Y29uc3QgSW50UmVjdCYgY29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRSZWN0
OyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgKaW5kZXggY2VjOGVi
Y2Q4NmE0YWI5YjdmODA3OWQwODQwY2M4MmU0ZWU1YjE3Yy4uNjEzMGU5MWUxNTI0MTVjMjNkY2Rl
NDBhYTRkZDE1OGUwMTg2YjVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaApAQCAt
NzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2Ft
cGxlZFRleGVsRm9ybWF0KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpID0gMDsKICAgICAvLyBUaGUg
fHJlc3VsdGluZ09wYXF1ZVJlY3R8IGdpdmVzIGJhY2sgYSByZWdpb24gb2YgdGhlIGxheWVyIHRo
YXQgd2FzIHBhaW50ZWQgb3BhcXVlLiBJZiB0aGUgbGF5ZXIgaXMgbWFya2VkIG9wYXF1ZSBpbiB0
aGUgdXBkYXRlciwKICAgICAvLyB0aGVuIHRoaXMgcmVnaW9uIHNob3VsZCBiZSBpZ25vcmVkIGlu
IHByZWZlcmVuY2UgZm9yIHRoZSBlbnRpcmUgbGF5ZXIncyBhcmVhLgotICAgIHZpcnR1YWwgdm9p
ZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNp
emUmIHRpbGVTaXplLCBmbG9hdCBjb250ZW50c1NjYWxlLCBJbnRSZWN0JiByZXN1bHRpbmdPcGFx
dWVSZWN0KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJl
Y3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgZmxvYXQgY29udGVudHNX
aWR0aFNjYWxlLCBmbG9hdCBjb250ZW50c0hlaWdodFNjYWxlLCBJbnRSZWN0JiByZXN1bHRpbmdP
cGFxdWVSZWN0KSB7IH0KIAogICAgIC8vIFNldCB0cnVlIGJ5IHRoZSBsYXllciB3aGVuIGl0IGlz
IGtub3duIHRoYXQgdGhlIGVudGlyZSBvdXRwdXQgaXMgZ29pbmcgdG8gYmUgb3BhcXVlLgogICAg
IHZpcnR1YWwgdm9pZCBzZXRPcGFxdWUoYm9vbCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxiYXJMYXllckNocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxh
eWVyQ2hyb21pdW0uY3BwCmluZGV4IDVlMjNlOTM0NTJkYmZjMDI0NmMyMjJlNjFmZGJmMDBmNjlk
ZDVkNzAuLmJlYWUwNDBmYmM4NmYwOTIwZTczNmUzYzY4N2Y1MWU3ZmEyNDg1ZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxh
eWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCkBAIC0yMzcsNyArMjM3LDcgQEAgdm9p
ZCBTY3JvbGxiYXJMYXllckNocm9taXVtOjp1cGRhdGVQYXJ0KExheWVyVGV4dHVyZVVwZGF0ZXIq
IHBhaW50ZXIsIExheWVyVGV4dHUKIAogICAgIC8vIFBhaW50IGFuZCB1cGxvYWQgdGhlIGVudGly
ZSBwYXJ0LgogICAgIEludFJlY3QgcGFpbnRlZE9wYXF1ZVJlY3Q7Ci0gICAgcGFpbnRlci0+cHJl
cGFyZVRvVXBkYXRlKHJlY3QsIHJlY3Quc2l6ZSgpLCAxLCBwYWludGVkT3BhcXVlUmVjdCk7Cisg
ICAgcGFpbnRlci0+cHJlcGFyZVRvVXBkYXRlKHJlY3QsIHJlY3Quc2l6ZSgpLCAxLCAxLCBwYWlu
dGVkT3BhcXVlUmVjdCk7CiAgICAgdGV4dHVyZS0+cHJlcGFyZVJlY3QocmVjdCk7CiAKICAgICBJ
bnRSZWN0IGRlc3RSZWN0KEludFBvaW50KCksIHJlY3Quc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKaW5kZXggYzEx
NzdmYmNkMzE2NzVkNmI5ZjQ2MWQ0Nzk0MDkzOTQ5ZmVlZmI0Yy4uM2RmMzg3M2M0MzQzZmZmNGE1
MjE2MzdiMDczNDcxMzI5OWY1OWM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0
dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKQEAgLTQ4LDEwICs0OCwxMCBAQCBTa1Bp
Y3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjp+U2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0
dXJlVXBkYXRlcigpCiB7CiB9CiAKLXZvaWQgU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlcjo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJ
bnRTaXplJiwgZmxvYXQgY29udGVudHNTY2FsZSwgSW50UmVjdCYgcmVzdWx0aW5nT3BhcXVlUmVj
dCkKK3ZvaWQgU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBk
YXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiwgZmxvYXQgY29u
dGVudHNXaWR0aFNjYWxlLCBmbG9hdCBjb250ZW50c0hlaWdodFNjYWxlLCBJbnRSZWN0JiByZXN1
bHRpbmdPcGFxdWVSZWN0KQogewogICAgIFNrQ2FudmFzKiBjYW52YXMgPSBtX3BpY3R1cmUuYmVn
aW5SZWNvcmRpbmcoY29udGVudFJlY3Qud2lkdGgoKSwgY29udGVudFJlY3QuaGVpZ2h0KCkpOwot
ICAgIHBhaW50Q29udGVudHMoY2FudmFzLCBjb250ZW50UmVjdCwgY29udGVudHNTY2FsZSwgcmVz
dWx0aW5nT3BhcXVlUmVjdCk7CisgICAgcGFpbnRDb250ZW50cyhjYW52YXMsIGNvbnRlbnRSZWN0
LCBjb250ZW50c1dpZHRoU2NhbGUsIGNvbnRlbnRzSGVpZ2h0U2NhbGUsIHJlc3VsdGluZ09wYXF1
ZVJlY3QpOwogICAgIG1fcGljdHVyZS5lbmRSZWNvcmRpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCmluZGV4IGUyOTdl
MDUwZTA2ZjM2NTEyMDdiZjVjMDFkNGU4ZGViZGZmZDM3ZTYuLmE1MWY0NGY1OTgxOTVkOTAwZTdi
MmNiZDBiMGZjMzU0ZDE3ZTJjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVD
YW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIo
UGFzc093blB0cjxMYXllclBhaW50ZXJDaHJvbWl1bT4pOwogCi0gICAgdmlydHVhbCB2b2lkIHBy
ZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYg
dGlsZVNpemUsIGZsb2F0IGNvbnRlbnRzU2NhbGUsIEludFJlY3QmIHJlc3VsdGluZ09wYXF1ZVJl
Y3QpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50
UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBmbG9hdCBjb250ZW50
c1dpZHRoU2NhbGUsIGZsb2F0IGNvbnRlbnRzSGVpZ2h0U2NhbGUsIEludFJlY3QmIHJlc3VsdGlu
Z09wYXF1ZVJlY3QpIE9WRVJSSURFOwogICAgIHZvaWQgZHJhd1BpY3R1cmUoU2tDYW52YXMqKTsK
IAogICAgIGJvb2wgbGF5ZXJJc09wYXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJJc09wYXF1
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNmUwNTJiN2ZhZGIzN2Yy
YzI4NjkwY2M0YjNlNTIzMzA4MGE5OTQxYi4uMDQ3M2M2ZGU0NTE5MWYzNzZhNWUzMGZjMDAzMWZl
OGYyYWZkZmRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCkBAIC0yNzksOCAr
Mjc5LDEwIEBAIFVwZGF0YWJsZVRpbGUqIFRpbGVkTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGlsZShp
bnQgaSwgaW50IGopCiAKIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpzZXROZWVkc0Rpc3BsYXlS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KQogeworICAgIGZsb2F0IGNvbnRlbnRzV2lk
dGhTY2FsZSA9IHN0YXRpY19jYXN0PGZsb2F0Pihjb250ZW50Qm91bmRzKCkud2lkdGgoKSkgLyBi
b3VuZHMoKS53aWR0aCgpOworICAgIGZsb2F0IGNvbnRlbnRzSGVpZ2h0U2NhbGUgPSBzdGF0aWNf
Y2FzdDxmbG9hdD4oY29udGVudEJvdW5kcygpLmhlaWdodCgpKSAvIGJvdW5kcygpLmhlaWdodCgp
OwogICAgIEZsb2F0UmVjdCBzY2FsZWREaXJ0eVJlY3QoZGlydHlSZWN0KTsKLSAgICBzY2FsZWRE
aXJ0eVJlY3Quc2NhbGUoY29udGVudHNTY2FsZSgpKTsKKyAgICBzY2FsZWREaXJ0eVJlY3Quc2Nh
bGUoY29udGVudHNXaWR0aFNjYWxlLCBjb250ZW50c0hlaWdodFNjYWxlKTsKICAgICBJbnRSZWN0
IGRpcnR5ID0gZW5jbG9zaW5nSW50UmVjdChzY2FsZWREaXJ0eVJlY3QpOwogICAgIGludmFsaWRh
dGVSZWN0KGRpcnR5KTsKICAgICBMYXllckNocm9taXVtOjpzZXROZWVkc0Rpc3BsYXlSZWN0KGRp
cnR5UmVjdCk7CkBAIC00NTUsNyArNDU3LDcgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVw
ZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW4KICAg
ICAvLyBzbyB3ZSBncmFiIGEgbG9jYWwgcmVmZXJlbmNlIGhlcmUgdG8gaG9sZCB0aGUgdXBkYXRl
ciBhbGl2ZSB1bnRpbCB0aGUgcGFpbnQgY29tcGxldGVzLgogICAgIFJlZlB0cjxMYXllclRleHR1
cmVVcGRhdGVyPiBwcm90ZWN0b3IodGV4dHVyZVVwZGF0ZXIoKSk7CiAgICAgSW50UmVjdCBwYWlu
dGVkT3BhcXVlUmVjdDsKLSAgICB0ZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlVG9VcGRhdGUocGFp
bnRSZWN0LCBtX3RpbGVyLT50aWxlU2l6ZSgpLCBjb250ZW50c1NjYWxlKCksIHBhaW50ZWRPcGFx
dWVSZWN0KTsKKyAgICB0ZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlVG9VcGRhdGUocGFpbnRSZWN0
LCBtX3RpbGVyLT50aWxlU2l6ZSgpLCAxIC8gd2lkdGhTY2FsZSwgMSAvIGhlaWdodFNjYWxlLCBw
YWludGVkT3BhcXVlUmVjdCk7CiAgICAgbV9kaWRQYWludCA9IHRydWU7CiAKICAgICBmb3IgKGlu
dCBqID0gdG9wOyBqIDw9IGJvdHRvbTsgKytqKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcAppbmRleCA3NDg0Yjcw
ZjNjY2UyODgxZjQ2YjdlNjFjMmNjYmIxYzVlMTA1ZjI0Li5mMDE0ZGQ0NzlkNzJjZjJjNjQ0Njgz
MWI0MGRiMDM0MTI2MTZlNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgRmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXI6On5GYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpCiB7CiB9CiAK
LXZvaWQgRmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRS
ZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYsIGZsb2F0LCBJbnRSZWN0JiByZXN1bHRp
bmdPcGFxdWVSZWN0KQordm9pZCBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBk
YXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiwgZmxvYXQsIGZs
b2F0LCBJbnRSZWN0JiByZXN1bHRpbmdPcGFxdWVSZWN0KQogewogICAgIG1fcHJlcGFyZUNvdW50
Kys7CiAgICAgbV9sYXN0VXBkYXRlUmVjdCA9IGNvbnRlbnRSZWN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uaAppbmRleCA2
MTRlMWVlYjI1YTNmZWIyNGE5YmQwZjJlNjRlNzQ5YjBkMTg4NmYzLi4xNzJhYjI1NTg3ZTJjNjE2
NDJlYjc1NjNjOWMzNTc5YWU5MTZlMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uaApAQCAtNjEsNyArNjEsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkxheWVyVGV4dHVyZVVwZGF0
ZXI6OlRleHR1cmU+IGNyZWF0ZVRleHR1cmUoV2ViQ29yZTo6VGV4dHVyZU1hbmFnZXIqKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQo
R0MzRGVudW0pIE9WRVJSSURFIHsgcmV0dXJuIFNhbXBsZWRUZXhlbEZvcm1hdFJHQkE7IH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCwgV2ViQ29yZTo6SW50
UmVjdCYgcmVzdWx0aW5nT3BhcXVlUmVjdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBy
ZXBhcmVUb1VwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0LCBmbG9hdCwgV2ViQ29yZTo6SW50UmVjdCYgcmVzdWx0
aW5nT3BhcXVlUmVjdCkgT1ZFUlJJREU7CiAgICAgLy8gU2V0cyB0aGUgcmVjdCB0byBpbnZhbGlk
YXRlIGR1cmluZyB0aGUgbmV4dCBjYWxsIHRvIHByZXBhcmVUb1VwZGF0ZSgpLiBBZnRlciB0aGUg
bmV4dAogICAgIC8vIGNhbGwgdG8gcHJlcGFyZVRvVXBkYXRlKCkgdGhlIHJlY3QgaXMgcmVzZXQu
CiAgICAgdm9pZCBzZXRSZWN0VG9JbnZhbGlkYXRlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBG
YWtlVGlsZWRMYXllckNocm9taXVtKik7CkBAIC0xMjgsMTAgKzEyOCwxMSBAQCBwdWJsaWM6CiAg
ICAgRmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIqIGZha2VMYXllclRleHR1cmVVcGRhdGVyKCkgeyBy
ZXR1cm4gbV9mYWtlVGV4dHVyZVVwZGF0ZXIuZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpGbG9hdFJl
Y3QgdXBkYXRlUmVjdCgpIHsgcmV0dXJuIG1fdXBkYXRlUmVjdDsgfQogCi1wcml2YXRlOgorcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6TGF5ZXJUZXh0dXJlVXBkYXRlciogdGV4dHVy
ZVVwZGF0ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2Zha2VUZXh0dXJlVXBkYXRlci5n
ZXQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCkg
T1ZFUlJJREUgeyB9CiAKK3ByaXZhdGU6CiAgICAgUmVmUHRyPEZha2VMYXllclRleHR1cmVVcGRh
dGVyPiBtX2Zha2VUZXh0dXJlVXBkYXRlcjsKICAgICBXZWJDb3JlOjpUZXh0dXJlTWFuYWdlciog
bV90ZXh0dXJlTWFuYWdlcjsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9sYXN0TmVlZHNEaXNw
bGF5UmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRM
YXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDA0YjNjMzgyZWJmNWQ3MzQ5ZmZmMzcyY2FjMTFl
MjViOTgzYjIzZGUuLmYwOTEwNmQyNWVkNzFkOWExYzA3ODQwNjBmZTEwZTIyYTg3OWI5ZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVt
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hy
b21pdW1UZXN0LmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAKICNpbmNsdWRlICJUaWxlZExheWVy
Q2hyb21pdW0uaCIKIAorI2luY2x1ZGUgIkJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIu
aCIKICNpbmNsdWRlICJDQ0FuaW1hdGlvblRlc3RDb21tb24uaCIKICNpbmNsdWRlICJDQ0xheWVy
VHJlZVRlc3RDb21tb24uaCIKICNpbmNsdWRlICJDQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmgiCiAj
aW5jbHVkZSAiRmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudC5oIgorI2luY2x1ZGUgIkxheWVyUGFp
bnRlckNocm9taXVtLmgiCiAjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgImNj
L0NDT3ZlcmRyYXdNZXRyaWNzLmgiCiAjaW5jbHVkZSAiY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5o
IiAvLyBGb3IgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkCkBAIC0xMzc3LDQgKzEzNzksOTkgQEAg
VEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwaXhlbHNQYWludGVkTWV0cmljcykKICAgICBF
WFBFQ1RfRVEoMCwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxv
YWQoKSk7CiB9CiAKK2NsYXNzIFRyYWNraW5nTGF5ZXJQYWludGVyIDogcHVibGljIExheWVyUGFp
bnRlckNocm9taXVtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxUcmFja2luZ0xh
eWVyUGFpbnRlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFRyYWNraW5nTGF5ZXJQ
YWludGVyKCkpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoU2tDYW52YXMqLCBjb25zdCBJ
bnRSZWN0JiBjb250ZW50UmVjdCwgSW50UmVjdCYpCisgICAgeworICAgICAgICBtX3BhaW50ZWRS
ZWN0ID0gY29udGVudFJlY3Q7CisgICAgfQorCisgICAgY29uc3QgSW50UmVjdCYgcGFpbnRlZFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3BhaW50ZWRSZWN0OyB9CisgICAgdm9pZCByZXNldFBhaW50
ZWRSZWN0KCkgeyBtX3BhaW50ZWRSZWN0ID0gSW50UmVjdCgpOyB9CisKK3ByaXZhdGU6CisgICAg
VHJhY2tpbmdMYXllclBhaW50ZXIoKSB7IH0KKworICAgIEludFJlY3QgbV9wYWludGVkUmVjdDsK
K307CisKK2NsYXNzIFVwZGF0ZVRyYWNraW5nVGlsZWRMYXllckNocm9taXVtIDogcHVibGljIEZh
a2VUaWxlZExheWVyQ2hyb21pdW0geworcHVibGljOgorICAgIGV4cGxpY2l0IFVwZGF0ZVRyYWNr
aW5nVGlsZWRMYXllckNocm9taXVtKFdlYkNvcmU6OlRleHR1cmVNYW5hZ2VyKiBtYW5hZ2VyKQor
ICAgICAgICA6IEZha2VUaWxlZExheWVyQ2hyb21pdW0obWFuYWdlcikKKyAgICB7CisgICAgICAg
IE93blB0cjxUcmFja2luZ0xheWVyUGFpbnRlcj4gdHJhY2tpbmdMYXllclBhaW50ZXIoVHJhY2tp
bmdMYXllclBhaW50ZXI6OmNyZWF0ZSgpKTsKKyAgICAgICAgbV90cmFja2luZ0xheWVyUGFpbnRl
ciA9IHRyYWNraW5nTGF5ZXJQYWludGVyLmdldCgpOworICAgICAgICBtX2xheWVyVGV4dHVyZVVw
ZGF0ZXIgPSBCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUodHJhY2tpbmdM
YXllclBhaW50ZXIucmVsZWFzZSgpLCBmYWxzZSk7CisgICAgfQorICAgIHZpcnR1YWwgflVwZGF0
ZVRyYWNraW5nVGlsZWRMYXllckNocm9taXVtKCkgeyB9CisKKyAgICBUcmFja2luZ0xheWVyUGFp
bnRlciogdHJhY2tpbmdMYXllclBhaW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3RyYWNraW5nTGF5
ZXJQYWludGVyOyB9CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkxheWVyVGV4
dHVyZVVwZGF0ZXIqIHRleHR1cmVVcGRhdGVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9s
YXllclRleHR1cmVVcGRhdGVyLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgVHJhY2tpbmdMYXll
clBhaW50ZXIqIG1fdHJhY2tpbmdMYXllclBhaW50ZXI7CisgICAgUmVmUHRyPEJpdG1hcENhbnZh
c0xheWVyVGV4dHVyZVVwZGF0ZXI+IG1fbGF5ZXJUZXh0dXJlVXBkYXRlcjsKK307CisKK1RFU1Qo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgbm9uSW50ZWdlckNvbnRlbnRzU2NhbGVJc05vdERpc3Rv
cnRlZER1cmluZ1BhaW50KQoreworICAgIE93blB0cjxUZXh0dXJlTWFuYWdlcj4gdGV4dHVyZU1h
bmFnZXIoVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg0MDAwMDAwLCA0MDAwMDAwLCA0MDAwMDAwKSk7
CisgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOworCisgICAgUmVmUHRyPFVwZGF0ZVRyYWNr
aW5nVGlsZWRMYXllckNocm9taXVtPiBsYXllciA9IGFkb3B0UmVmKG5ldyBVcGRhdGVUcmFja2lu
Z1RpbGVkTGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOworCisgICAgSW50UmVj
dCBsYXllclJlY3QoMCwgMCwgMzAsIDMxKTsKKyAgICBsYXllci0+c2V0UG9zaXRpb24obGF5ZXJS
ZWN0LmxvY2F0aW9uKCkpOworICAgIGxheWVyLT5zZXRCb3VuZHMobGF5ZXJSZWN0LnNpemUoKSk7
CisgICAgbGF5ZXItPnNldENvbnRlbnRzU2NhbGUoMS41KTsKKworICAgIEludFJlY3QgY29udGVu
dFJlY3QoMCwgMCwgNDUsIDQ3KTsKKyAgICBFWFBFQ1RfRVEoY29udGVudFJlY3Quc2l6ZSgpLCBs
YXllci0+Y29udGVudEJvdW5kcygpKTsKKyAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdChj
b250ZW50UmVjdCk7CisKKyAgICAvLyBVcGRhdGUgdGhlIHdob2xlIHRpbGUuCisgICAgbGF5ZXIt
PnVwZGF0ZUxheWVyUmVjdCh1cGRhdGVyLCBjb250ZW50UmVjdCwgMCk7CisgICAgbGF5ZXItPnRy
YWNraW5nTGF5ZXJQYWludGVyKCktPnJlc2V0UGFpbnRlZFJlY3QoKTsKKworICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KCksIGxheWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigpLT5wYWlu
dGVkUmVjdCgpKTsKKworICAgIC8vIEludmFsaWRhdGUgdGhlIGVudGlyZSBsYXllciBpbiBjb250
ZW50IHNwYWNlLiBXaGVuIHBhaW50aW5nLCB0aGUgcmVjdCBnaXZlbiB0byB3ZWJraXQgc2hvdWxk
IG1hdGNoIHRoZSBsYXllcidzIGJvdW5kcy4KKyAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoY29u
dGVudFJlY3QpOworICAgIGxheWVyLT51cGRhdGVMYXllclJlY3QodXBkYXRlciwgY29udGVudFJl
Y3QsIDApOworCisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGxheWVyUmVjdCwgbGF5ZXItPnRyYWNr
aW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOworfQorCitURVNUKFRpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QsIG5vbkludGVnZXJDb250ZW50c1NjYWxlSXNOb3REaXN0b3J0ZWREdXJpbmdJ
bnZhbGlkYXRpb24pCit7CisgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdl
cihUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQwMDAwMDAsIDQwMDAwMDAsIDQwMDAwMDApKTsKKyAg
ICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7CisKKyAgICBSZWZQdHI8VXBkYXRlVHJhY2tpbmdU
aWxlZExheWVyQ2hyb21pdW0+IGxheWVyID0gYWRvcHRSZWYobmV3IFVwZGF0ZVRyYWNraW5nVGls
ZWRMYXllckNocm9taXVtKHRleHR1cmVNYW5hZ2VyLmdldCgpKSk7CisKKyAgICBJbnRSZWN0IGxh
eWVyUmVjdCgwLCAwLCAzMCwgMzEpOworICAgIGxheWVyLT5zZXRQb3NpdGlvbihsYXllclJlY3Qu
bG9jYXRpb24oKSk7CisgICAgbGF5ZXItPnNldEJvdW5kcyhsYXllclJlY3Quc2l6ZSgpKTsKKyAg
ICBsYXllci0+c2V0Q29udGVudHNTY2FsZSgxLjMpOworCisgICAgSW50UmVjdCBjb250ZW50UmVj
dChJbnRQb2ludCgpLCBsYXllci0+Y29udGVudEJvdW5kcygpKTsKKworICAgIC8vIFVwZGF0ZSB0
aGUgd2hvbGUgdGlsZS4KKyAgICBsYXllci0+dXBkYXRlTGF5ZXJSZWN0KHVwZGF0ZXIsIGNvbnRl
bnRSZWN0LCAwKTsKKyAgICBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cmVzZXRQYWlu
dGVkUmVjdCgpOworCisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoKSwgbGF5ZXItPnRy
YWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOworCisgICAgLy8gSW52YWxpZGF0
ZSB0aGUgZW50aXJlIGxheWVyIGluIGxheWVyIHNwYWNlLiBXaGVuIHBhaW50aW5nLCB0aGUgcmVj
dCBnaXZlbiB0byB3ZWJraXQgc2hvdWxkIG1hdGNoIHRoZSBsYXllcidzIGJvdW5kcy4KKyAgICBs
YXllci0+c2V0TmVlZHNEaXNwbGF5UmVjdChsYXllclJlY3QpOworICAgIGxheWVyLT51cGRhdGVM
YXllclJlY3QodXBkYXRlciwgY29udGVudFJlY3QsIDApOworCisgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0
KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149956</attachid>
            <date>2012-06-28 08:05:15 -0700</date>
            <delta_ts>2012-06-28 09:48:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-90103-20120628110515.patch</filename>
            <type>text/plain</type>
            <size>24313</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBiNTBhZjA5YTc2MGZj
OWI3YzNlNTZmYzA0NGUzMTBkZmU5YWEzZC4uZTQ0ZWIyNDgwNmEzYzQ4NzNjY2I3OTVmYTA4Y2Yy
YTc1ZjE5NTRlNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA2LTI3ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRG8g
bm90IG11bHRpcGx5IGJvdW5kcyBieSBjb250ZW50c1NjYWxlIGluIFRpbGVkTGF5ZXJDaHJvbWl1
bSBhbmQgQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAxMDMKKworICAgICAgICBSZXZpZXdlZCBieSBBZHJp
ZW5uZSBXYWxrZXIuCisKKyAgICAgICAgTm9uLWludGVnZXIgc2NhbGUgZmFjdG9ycyBjYW4gc2Nh
bGUgdGhlIGJvdW5kcyBvZiBhIGxheWVyIHN1Y2ggdGhhdAorICAgICAgICBkaWZmZXJlbnQgcm91
bmRpbmcgaXMgYXBwbGllZCB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBpbiB0aGUgY29udGVudAor
ICAgICAgICBib3VuZHMuIFdlIHNob3VsZCBuZXZlciBtdWx0aXBseSBib3VuZHMgYnkgY29udGVu
dHNTY2FsZSBpbiBvcmRlciB0bworICAgICAgICB3b3JrIGNvcnJlY3RseSB3aXRoIG5vbi1pbnRl
Z2VyIHNjYWxlIGZhY3RvcnMuIEluc3RlYWQsIGFsd2F5cyB1c2UgdGhlCisgICAgICAgIGNvbnRl
bnRCb3VuZHMvYm91bmRzIHJhdGlvIGZvciB3aWR0aCBhbmQgaGVpZ2h0IGluZGVwZW5kZW50bHku
CisKKyAgICAgICAgVGVzdHM6IFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qubm9uSW50ZWdlckNvbnRl
bnRzU2NhbGVJc05vdERpc3RvcnRlZER1cmluZ1BhaW50CisgICAgICAgICAgICAgICBUaWxlZExh
eWVyQ2hyb21pdW1UZXN0Lm5vbkludGVnZXJDb250ZW50c1NjYWxlSXNOb3REaXN0b3J0ZWREdXJp
bmdJbnZhbGlkYXRpb24KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Jp
dG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyLmg6CisgICAgICAgIChCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFNrUGljdHVyZUNh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJl
VXBkYXRlci5oOgorICAgICAgICAoQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmg6CisgICAgICAgIChDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clRleHR1cmVVcGRhdGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllclRleHR1cmVVcGRhdGVy
OjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
TGF5ZXJDaHJvbWl1bTo6dXBkYXRlUGFydCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9V
cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoKKyAgICAgICAgKFNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21p
dW06OnNldE5lZWRzRGlzcGxheVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNo
cm9taXVtOjp1cGRhdGVUaWxlcyk6CisKIDIwMTItMDYtMjYgIEh1YW5nIERvbmdzdW5nICA8bHV4
dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgW1RleG1hcF0gQnVnIGZpeCB0eXBvIGFi
b3V0IGNvbXB1dGluZyBieXRlc1BlckxpbmUgaW4gQml0bWFwVGV4dHVyZUdMLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCA4ZDM1ODk4M2I4M2YzOGJhODIwYjgzMTFkMjUxMmYzZWQ2YjBi
MmZkLi5mOWUyNTdjN2FhZDNhNmU4ZjJmMmU1OGRjNWNhNzZhNjc2MDgxZWNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA2LTI3ICBEYW5hIEphbnNl
bnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRG8gbm90IG11
bHRpcGx5IGJvdW5kcyBieSBjb250ZW50c1NjYWxlIGluIFRpbGVkTGF5ZXJDaHJvbWl1bSBhbmQg
Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTAxMDMKKworICAgICAgICBSZXZpZXdlZCBieSBBZHJpZW5uZSBX
YWxrZXIuCisKKyAgICAgICAgKiB0ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdFRlc3RzOjpGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBk
YXRlKToKKyAgICAgICAgKiB0ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmg6CisgICAgICAg
IChGYWtlVGlsZWRMYXllckNocm9taXVtKToKKyAgICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hy
b21pdW1UZXN0LmNwcDoKKwogMjAxMi0wNi0yNiAgSnVuIE11a2FpICA8bXVrYWlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEFsbG93IHVzaW5nIDxpbnB1dCB0eXBlPSJjb2xvciI+IFVJIGluIENo
cm9tZU9TLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyLmNwcAppbmRleCBmODUyODVmM2JmMjYyYmQzODIzYTE5MjQ3ZmYzZDk5MDM1MmFiNjBlLi5l
ZDZmMGNmNWNhNWNlNjRhNzM1NDIyOWU4MjliNDZjM2JjZTA3MWVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApAQCAtODAsNyArODAs
NyBAQCBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXQgQml0bWFwQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcjo6c2FtcGxlZAogICAgICAgICAgICAgTGF5ZXJUZXh0dXJlVXBk
YXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQSA6IExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBs
ZWRUZXhlbEZvcm1hdEJHUkE7CiB9CiAKLXZvaWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlcjo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJ
bnRTaXplJiB0aWxlU2l6ZSwgZmxvYXQgY29udGVudHNTY2FsZSwgSW50UmVjdCYgcmVzdWx0aW5n
T3BhcXVlUmVjdCkKK3ZvaWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFy
ZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxl
U2l6ZSwgZmxvYXQgY29udGVudHNXaWR0aFNjYWxlLCBmbG9hdCBjb250ZW50c0hlaWdodFNjYWxl
LCBJbnRSZWN0JiByZXN1bHRpbmdPcGFxdWVSZWN0KQogewogICAgIG1fdGV4U3ViSW1hZ2Uuc2V0
U3ViSW1hZ2VTaXplKHRpbGVTaXplKTsKIApAQCAtODksNyArODksNyBAQCB2b2lkIEJpdG1hcENh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBj
b250ZW50UmVjdAogICAgICAgICBtX2NhbnZhcyA9IGFkb3B0UHRyKHNraWE6OkNyZWF0ZUJpdG1h
cENhbnZhcyhtX2NhbnZhc1NpemUud2lkdGgoKSwgbV9jYW52YXNTaXplLmhlaWdodCgpLCBtX29w
YXF1ZSkpOwogICAgIH0KIAotICAgIHBhaW50Q29udGVudHMobV9jYW52YXMuZ2V0KCksIGNvbnRl
bnRSZWN0LCBjb250ZW50c1NjYWxlLCByZXN1bHRpbmdPcGFxdWVSZWN0KTsKKyAgICBwYWludENv
bnRlbnRzKG1fY2FudmFzLmdldCgpLCBjb250ZW50UmVjdCwgY29udGVudHNXaWR0aFNjYWxlLCBj
b250ZW50c0hlaWdodFNjYWxlLCByZXN1bHRpbmdPcGFxdWVSZWN0KTsKIH0KIAogdm9pZCBCaXRt
YXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjp1cGRhdGVUZXh0dXJlUmVjdChDQ0dyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgVGV4dHVyZUFsbG9jYXRvciogYWxsb2NhdG9yLCBNYW5hZ2VkVGV4
dHVyZSogdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYg
ZGVzdFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyLmgKaW5kZXggM2M5NTM4MGNlOTMyYWNmNDhhOWI1ZjIwODFhNGE4YzI3OGVkNjJhYS4uMjhk
MmJhMTA5ZWE2YTIwMzljYjQzMzUxYzc0MGYzN2Y1ZGYxODRkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0
dXJlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaApAQCAtNjEsNyArNjEsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4
dHVyZT4gY3JlYXRlVGV4dHVyZShUZXh0dXJlTWFuYWdlciopOwogICAgIHZpcnR1YWwgU2FtcGxl
ZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZvcm1hdChHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KTsK
LSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRS
ZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgZmxvYXQgY29udGVudHNTY2FsZSwgSW50UmVj
dCYgcmVzdWx0aW5nT3BhcXVlUmVjdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByZXBh
cmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGls
ZVNpemUsIGZsb2F0IGNvbnRlbnRzV2lkdGhTY2FsZSwgZmxvYXQgY29udGVudHNIZWlnaHRTY2Fs
ZSwgSW50UmVjdCYgcmVzdWx0aW5nT3BhcXVlUmVjdCkgT1ZFUlJJREU7CiAgICAgdm9pZCB1cGRh
dGVUZXh0dXJlUmVjdChDQ0dyYXBoaWNzQ29udGV4dCosIFRleHR1cmVBbGxvY2F0b3IqLCBNYW5h
Z2VkVGV4dHVyZSosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRl
c3RSZWN0KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFxdWUoYm9vbCkgT1ZFUlJJREU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRt
YXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4
dHVyZVVwZGF0ZXIuY3BwCmluZGV4IDcxYjM5MGY1YmMyYjU2MWM5ZTczOTQwYjljOGExMzBmZDI0
NWQxNTIuLmE4NTQwNTAzZDcxYjNhOTZiMzE1OGMxMTU4YWEyZWU0MTc0Y2FmNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcFNrUGlj
dHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVy
ZVVwZGF0ZXIuY3BwCkBAIC05MCwxMCArOTAsMTAgQEAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2Ft
cGxlZFRleGVsRm9ybWF0IEJpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIK
ICAgICAgICAgICAgIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkEg
OiBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRCR1JBOwogfQogCi12b2lk
IEJpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0
ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGZs
b2F0IGNvbnRlbnRzU2NhbGUsIEludFJlY3QmIHJlc3VsdGluZ09wYXF1ZVJlY3QpCit2b2lkIEJp
dG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZShj
b25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGZsb2F0
IGNvbnRlbnRzV2lkdGhTY2FsZSwgZmxvYXQgY29udGVudHNIZWlnaHRTY2FsZSwgSW50UmVjdCYg
cmVzdWx0aW5nT3BhcXVlUmVjdCkKIHsKICAgICBtX3RleFN1YkltYWdlLnNldFN1YkltYWdlU2l6
ZSh0aWxlU2l6ZSk7Ci0gICAgU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJl
cGFyZVRvVXBkYXRlKGNvbnRlbnRSZWN0LCB0aWxlU2l6ZSwgY29udGVudHNTY2FsZSwgcmVzdWx0
aW5nT3BhcXVlUmVjdCk7CisgICAgU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6
cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRSZWN0LCB0aWxlU2l6ZSwgY29udGVudHNXaWR0aFNjYWxl
LCBjb250ZW50c0hlaWdodFNjYWxlLCByZXN1bHRpbmdPcGFxdWVSZWN0KTsKIH0KIAogdm9pZCBC
aXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwYWludENvbnRlbnRzUmVj
dChTa0NhbnZhcyogY2FudmFzLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwU2tQaWN0
dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
ci5oCmluZGV4IDA5NDgxZDI4NDEwMTA4YWRlMTFmYmJjZTk3YjhiZjg2MmQ4ZDFmMmUuLjA4MjRj
OTA4NjMwNjFlNWM3ZTU2MTMyNDljNzQzYTA4ODJhZTQzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcFNrUGljdHVyZUNhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKQEAg
LTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPExheWVyVGV4
dHVyZVVwZGF0ZXI6OlRleHR1cmU+IGNyZWF0ZVRleHR1cmUoVGV4dHVyZU1hbmFnZXIqKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQo
R0MzRGVudW0gdGV4dHVyZUZvcm1hdCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBh
cmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGls
ZVNpemUsIGZsb2F0IGNvbnRlbnRzU2NhbGUsIEludFJlY3QmIHJlc3VsdGluZ09wYXF1ZVJlY3Qp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVj
dCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBmbG9hdCBjb250ZW50c1dp
ZHRoU2NhbGUsIGZsb2F0IGNvbnRlbnRzSGVpZ2h0U2NhbGUsIEludFJlY3QmIHJlc3VsdGluZ09w
YXF1ZVJlY3QpIE9WRVJSSURFOwogICAgIHZvaWQgcGFpbnRDb250ZW50c1JlY3QoU2tDYW52YXMq
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KTsKICAgICB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0
KENDR3JhcGhpY3NDb250ZXh0KiwgR0MzRGVudW0gZm9ybWF0LCBjb25zdCBJbnRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgdWludDhfdCogcGl4ZWxzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmNwcAppbmRleCA1MzBiYjJmNzFjNDFkYzQ5YTZkZjg0ZjgxYzM1MzIz
MDBlOTM0OGZmLi41NTMzOTA4MmFkODk0ZGFhMjllODkwNTczMzhjYTU2MWEyNjUzNDAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNM
YXllclRleHR1cmVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApAQCAtNTAsNyArNTAs
NyBAQCBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjp+Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
cigpCiB7CiB9CiAKLXZvaWQgQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnRDb250ZW50
cyhTa0NhbnZhcyogY2FudmFzLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgZmxvYXQgY29u
dGVudHNTY2FsZSwgSW50UmVjdCYgcmVzdWx0aW5nT3BhcXVlUmVjdCkKK3ZvaWQgQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnRDb250ZW50cyhTa0NhbnZhcyogY2FudmFzLCBjb25zdCBJ
bnRSZWN0JiBjb250ZW50UmVjdCwgZmxvYXQgY29udGVudHNXaWR0aFNjYWxlLCBmbG9hdCBjb250
ZW50c0hlaWdodFNjYWxlLCBJbnRSZWN0JiByZXN1bHRpbmdPcGFxdWVSZWN0KQogewogICAgIFRS
QUNFX0VWRU5UMCgiY2MiLCAiQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnRDb250ZW50
cyIpOwogICAgIGNhbnZhcy0+c2F2ZSgpOwpAQCAtNTgsMTEgKzU4LDExIEBAIHZvaWQgQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnRDb250ZW50cyhTa0NhbnZhcyogY2FudmFzLCBjb25z
dCBJbnRSZWN0JiBjCiAKICAgICBJbnRSZWN0IHNjYWxlZENvbnRlbnRSZWN0ID0gY29udGVudFJl
Y3Q7CiAKLSAgICBpZiAoY29udGVudHNTY2FsZSAhPSAxLjApIHsKLSAgICAgICAgY2FudmFzLT5z
Y2FsZShXZWJDb3JlRmxvYXRUb1NrU2NhbGFyKGNvbnRlbnRzU2NhbGUpLCBXZWJDb3JlRmxvYXRU
b1NrU2NhbGFyKGNvbnRlbnRzU2NhbGUpKTsKKyAgICBpZiAoY29udGVudHNXaWR0aFNjYWxlICE9
IDEgfHwgY29udGVudHNIZWlnaHRTY2FsZSAhPSAxKSB7CisgICAgICAgIGNhbnZhcy0+c2NhbGUo
V2ViQ29yZUZsb2F0VG9Ta1NjYWxhcihjb250ZW50c1dpZHRoU2NhbGUpLCBXZWJDb3JlRmxvYXRU
b1NrU2NhbGFyKGNvbnRlbnRzSGVpZ2h0U2NhbGUpKTsKIAogICAgICAgICBGbG9hdFJlY3QgcmVj
dCA9IGNvbnRlbnRSZWN0OwotICAgICAgICByZWN0LnNjYWxlKDEgLyBjb250ZW50c1NjYWxlKTsK
KyAgICAgICAgcmVjdC5zY2FsZSgxIC8gY29udGVudHNXaWR0aFNjYWxlLCAxIC8gY29udGVudHNI
ZWlnaHRTY2FsZSk7CiAgICAgICAgIHNjYWxlZENvbnRlbnRSZWN0ID0gZW5jbG9zaW5nSW50UmVj
dChyZWN0KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIu
aAppbmRleCBjOTUxZTkzZmVkNjY4NDAwMWZkN2U0NDkyMGE3YzZhM2RhYTQyOTkyLi5iNDQxZTRl
NzRmMTRlYmE1ODExY2YxZTU3ZGFmYWMzMTIyNjQ3OTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyKFBhc3NPd25QdHI8TGF5
ZXJQYWludGVyQ2hyb21pdW0+KTsKIAotICAgIHZvaWQgcGFpbnRDb250ZW50cyhTa0NhbnZhcyos
IGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBmbG9hdCBjb250ZW50c1NjYWxlLCBJbnRSZWN0
JiByZXN1bHRpbmdPcGFxdWVSZWN0KTsKKyAgICB2b2lkIHBhaW50Q29udGVudHMoU2tDYW52YXMq
LCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgZmxvYXQgY29udGVudHNXaWR0aFNjYWxlLCBm
bG9hdCBjb250ZW50c0hlaWdodFNjYWxlLCBJbnRSZWN0JiByZXN1bHRpbmdPcGFxdWVSZWN0KTsK
ICAgICBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVu
dFJlY3Q7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaAppbmRleCBj
ZWM4ZWJjZDg2YTRhYjliN2Y4MDc5ZDA4NDBjYzgyZTRlZTViMTdjLi42MTMwZTkxZTE1MjQxNWMy
M2RjZGU0MGFhNGRkMTU4ZTAxODZiNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5o
CkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1h
dCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCkgPSAwOwogICAgIC8v
IFRoZSB8cmVzdWx0aW5nT3BhcXVlUmVjdHwgZ2l2ZXMgYmFjayBhIHJlZ2lvbiBvZiB0aGUgbGF5
ZXIgdGhhdCB3YXMgcGFpbnRlZCBvcGFxdWUuIElmIHRoZSBsYXllciBpcyBtYXJrZWQgb3BhcXVl
IGluIHRoZSB1cGRhdGVyLAogICAgIC8vIHRoZW4gdGhpcyByZWdpb24gc2hvdWxkIGJlIGlnbm9y
ZWQgaW4gcHJlZmVyZW5jZSBmb3IgdGhlIGVudGlyZSBsYXllcidzIGFyZWEuCi0gICAgdmlydHVh
bCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3Qg
SW50U2l6ZSYgdGlsZVNpemUsIGZsb2F0IGNvbnRlbnRzU2NhbGUsIEludFJlY3QmIHJlc3VsdGlu
Z09wYXF1ZVJlY3QpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3Qg
SW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBmbG9hdCBjb250
ZW50c1dpZHRoU2NhbGUsIGZsb2F0IGNvbnRlbnRzSGVpZ2h0U2NhbGUsIEludFJlY3QmIHJlc3Vs
dGluZ09wYXF1ZVJlY3QpIHsgfQogCiAgICAgLy8gU2V0IHRydWUgYnkgdGhlIGxheWVyIHdoZW4g
aXQgaXMga25vd24gdGhhdCB0aGUgZW50aXJlIG91dHB1dCBpcyBnb2luZyB0byBiZSBvcGFxdWUu
CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2Nyb2xs
YmFyTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNWUyM2U5MzQ1MmRiZmMwMjQ2YzIyMmU2MWZkYmYw
MGY2OWRkNWQ3MC4uYmVhZTA0MGZiYzg2ZjA5MjBlNzM2ZTNjNjg3ZjUxZTdmYTI0ODVlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2Nyb2xs
YmFyTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTIzNyw3ICsyMzcsNyBA
QCB2b2lkIFNjcm9sbGJhckxheWVyQ2hyb21pdW06OnVwZGF0ZVBhcnQoTGF5ZXJUZXh0dXJlVXBk
YXRlciogcGFpbnRlciwgTGF5ZXJUZXh0dQogCiAgICAgLy8gUGFpbnQgYW5kIHVwbG9hZCB0aGUg
ZW50aXJlIHBhcnQuCiAgICAgSW50UmVjdCBwYWludGVkT3BhcXVlUmVjdDsKLSAgICBwYWludGVy
LT5wcmVwYXJlVG9VcGRhdGUocmVjdCwgcmVjdC5zaXplKCksIDEsIHBhaW50ZWRPcGFxdWVSZWN0
KTsKKyAgICBwYWludGVyLT5wcmVwYXJlVG9VcGRhdGUocmVjdCwgcmVjdC5zaXplKCksIDEsIDEs
IHBhaW50ZWRPcGFxdWVSZWN0KTsKICAgICB0ZXh0dXJlLT5wcmVwYXJlUmVjdChyZWN0KTsKIAog
ICAgIEludFJlY3QgZGVzdFJlY3QoSW50UG9pbnQoKSwgcmVjdC5zaXplKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRl
eCBjMTE3N2ZiY2QzMTY3NWQ2YjlmNDYxZDQ3OTQwOTM5NDlmZWVmYjRjLi4zZGYzODczYzQzNDNm
ZmY0YTUyMTYzN2IwNzM0NzEzMjk5ZjU5Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9T
a1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApAQCAtNDgsMTAgKzQ4LDEwIEBA
IFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6On5Ta1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyKCkKIHsKIH0KIAotdm9pZCBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1
cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNv
bnN0IEludFNpemUmLCBmbG9hdCBjb250ZW50c1NjYWxlLCBJbnRSZWN0JiByZXN1bHRpbmdPcGFx
dWVSZWN0KQordm9pZCBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmLCBmbG9h
dCBjb250ZW50c1dpZHRoU2NhbGUsIGZsb2F0IGNvbnRlbnRzSGVpZ2h0U2NhbGUsIEludFJlY3Qm
IHJlc3VsdGluZ09wYXF1ZVJlY3QpCiB7CiAgICAgU2tDYW52YXMqIGNhbnZhcyA9IG1fcGljdHVy
ZS5iZWdpblJlY29yZGluZyhjb250ZW50UmVjdC53aWR0aCgpLCBjb250ZW50UmVjdC5oZWlnaHQo
KSk7Ci0gICAgcGFpbnRDb250ZW50cyhjYW52YXMsIGNvbnRlbnRSZWN0LCBjb250ZW50c1NjYWxl
LCByZXN1bHRpbmdPcGFxdWVSZWN0KTsKKyAgICBwYWludENvbnRlbnRzKGNhbnZhcywgY29udGVu
dFJlY3QsIGNvbnRlbnRzV2lkdGhTY2FsZSwgY29udGVudHNIZWlnaHRTY2FsZSwgcmVzdWx0aW5n
T3BhcXVlUmVjdCk7CiAgICAgbV9waWN0dXJlLmVuZFJlY29yZGluZygpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVD
YW52YXNMYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKaW5kZXgg
ZTI5N2UwNTBlMDZmMzY1MTIwN2JmNWMwMWQ0ZThkZWJkZmZkMzdlNi4uYTUxZjQ0ZjU5ODE5NWQ5
MDBlN2IyY2JkMGIwZmMzNTRkMTdlMmM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrUGlj
dHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlcihQYXNzT3duUHRyPExheWVyUGFpbnRlckNocm9taXVtPik7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRT
aXplJiB0aWxlU2l6ZSwgZmxvYXQgY29udGVudHNTY2FsZSwgSW50UmVjdCYgcmVzdWx0aW5nT3Bh
cXVlUmVjdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGZsb2F0IGNv
bnRlbnRzV2lkdGhTY2FsZSwgZmxvYXQgY29udGVudHNIZWlnaHRTY2FsZSwgSW50UmVjdCYgcmVz
dWx0aW5nT3BhcXVlUmVjdCkgT1ZFUlJJREU7CiAgICAgdm9pZCBkcmF3UGljdHVyZShTa0NhbnZh
cyopOwogCiAgICAgYm9vbCBsYXllcklzT3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV9sYXllcklz
T3BhcXVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAppbmRleCA2ZTA1MmI3ZmFk
YjM3ZjJjMjg2OTBjYzRiM2U1MjMzMDgwYTk5NDFiLi4wNDczYzZkZTQ1MTkxZjM3NmE1ZTMwZmMw
MDMxZmU4ZjJhZmRmZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTI3
OSw4ICsyNzksMTAgQEAgVXBkYXRhYmxlVGlsZSogVGlsZWRMYXllckNocm9taXVtOjpjcmVhdGVU
aWxlKGludCBpLCBpbnQgaikKIAogdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnNldE5lZWRzRGlz
cGxheVJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCiB7CisgICAgZmxvYXQgY29udGVu
dHNXaWR0aFNjYWxlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbnRlbnRCb3VuZHMoKS53aWR0aCgp
KSAvIGJvdW5kcygpLndpZHRoKCk7CisgICAgZmxvYXQgY29udGVudHNIZWlnaHRTY2FsZSA9IHN0
YXRpY19jYXN0PGZsb2F0Pihjb250ZW50Qm91bmRzKCkuaGVpZ2h0KCkpIC8gYm91bmRzKCkuaGVp
Z2h0KCk7CiAgICAgRmxvYXRSZWN0IHNjYWxlZERpcnR5UmVjdChkaXJ0eVJlY3QpOwotICAgIHNj
YWxlZERpcnR5UmVjdC5zY2FsZShjb250ZW50c1NjYWxlKCkpOworICAgIHNjYWxlZERpcnR5UmVj
dC5zY2FsZShjb250ZW50c1dpZHRoU2NhbGUsIGNvbnRlbnRzSGVpZ2h0U2NhbGUpOwogICAgIElu
dFJlY3QgZGlydHkgPSBlbmNsb3NpbmdJbnRSZWN0KHNjYWxlZERpcnR5UmVjdCk7CiAgICAgaW52
YWxpZGF0ZVJlY3QoZGlydHkpOwogICAgIExheWVyQ2hyb21pdW06OnNldE5lZWRzRGlzcGxheVJl
Y3QoZGlydHlSZWN0KTsKQEAgLTQ1NSw3ICs0NTcsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1
bTo6dXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBp
bgogICAgIC8vIHNvIHdlIGdyYWIgYSBsb2NhbCByZWZlcmVuY2UgaGVyZSB0byBob2xkIHRoZSB1
cGRhdGVyIGFsaXZlIHVudGlsIHRoZSBwYWludCBjb21wbGV0ZXMuCiAgICAgUmVmUHRyPExheWVy
VGV4dHVyZVVwZGF0ZXI+IHByb3RlY3Rvcih0ZXh0dXJlVXBkYXRlcigpKTsKICAgICBJbnRSZWN0
IHBhaW50ZWRPcGFxdWVSZWN0OwotICAgIHRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVUb1VwZGF0
ZShwYWludFJlY3QsIG1fdGlsZXItPnRpbGVTaXplKCksIGNvbnRlbnRzU2NhbGUoKSwgcGFpbnRl
ZE9wYXF1ZVJlY3QpOworICAgIHRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVUb1VwZGF0ZShwYWlu
dFJlY3QsIG1fdGlsZXItPnRpbGVTaXplKCksIDEgLyB3aWR0aFNjYWxlLCAxIC8gaGVpZ2h0U2Nh
bGUsIHBhaW50ZWRPcGFxdWVSZWN0KTsKICAgICBtX2RpZFBhaW50ID0gdHJ1ZTsKIAogICAgIGZv
ciAoaW50IGogPSB0b3A7IGogPD0gYm90dG9tOyArK2opIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uY3BwCmluZGV4IDc0
ODRiNzBmM2NjZTI4ODFmNDZiN2U2MWMyY2NiYjFjNWUxMDVmMjQuLmYwMTRkZDQ3OWQ3MmNmMmM2
NDQ2ODMxYjQwZGIwMzQxMjYxNmU1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcApAQCAtNjMsNyArNjMsNyBA
QCBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6fkZha2VMYXllclRleHR1cmVVcGRhdGVyKCkKIHsK
IH0KIAotdm9pZCBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0
IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiwgZmxvYXQsIEludFJlY3QmIHJl
c3VsdGluZ09wYXF1ZVJlY3QpCit2b2lkIEZha2VMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmLCBmbG9h
dCwgZmxvYXQsIEludFJlY3QmIHJlc3VsdGluZ09wYXF1ZVJlY3QpCiB7CiAgICAgbV9wcmVwYXJl
Q291bnQrKzsKICAgICBtX2xhc3RVcGRhdGVSZWN0ID0gY29udGVudFJlY3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oCmlu
ZGV4IDYxNGUxZWViMjVhM2ZlYjI0YTliZDBmMmU2NGU3NDliMGQxODg2ZjMuLjE3MmFiMjU1ODdl
MmM2MTY0MmViNzU2M2M5YzM1NzlhZTkxNmUwMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oCkBAIC02MSw3ICs2MSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6TGF5ZXJUZXh0dXJl
VXBkYXRlcjo6VGV4dHVyZT4gY3JlYXRlVGV4dHVyZShXZWJDb3JlOjpUZXh0dXJlTWFuYWdlciop
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZv
cm1hdChHQzNEZW51bSkgT1ZFUlJJREUgeyByZXR1cm4gU2FtcGxlZFRleGVsRm9ybWF0UkdCQTsg
fQogCi0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0LCBXZWJDb3Jl
OjpJbnRSZWN0JiByZXN1bHRpbmdPcGFxdWVSZWN0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvbnRlbnRSZWN0LCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQsIGZsb2F0LCBXZWJDb3JlOjpJbnRSZWN0JiBy
ZXN1bHRpbmdPcGFxdWVSZWN0KSBPVkVSUklERTsKICAgICAvLyBTZXRzIHRoZSByZWN0IHRvIGlu
dmFsaWRhdGUgZHVyaW5nIHRoZSBuZXh0IGNhbGwgdG8gcHJlcGFyZVRvVXBkYXRlKCkuIEFmdGVy
IHRoZSBuZXh0CiAgICAgLy8gY2FsbCB0byBwcmVwYXJlVG9VcGRhdGUoKSB0aGUgcmVjdCBpcyBy
ZXNldC4KICAgICB2b2lkIHNldFJlY3RUb0ludmFsaWRhdGUoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIEZha2VUaWxlZExheWVyQ2hyb21pdW0qKTsKQEAgLTEyOCwxMCArMTI4LDExIEBAIHB1Ymxp
YzoKICAgICBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlciogZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KSB7IHJldHVybiBtX2Zha2VUZXh0dXJlVXBkYXRlci5nZXQoKTsgfQogICAgIFdlYkNvcmU6OkZs
b2F0UmVjdCB1cGRhdGVSZWN0KCkgeyByZXR1cm4gbV91cGRhdGVSZWN0OyB9CiAKLXByaXZhdGU6
Citwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpMYXllclRleHR1cmVVcGRhdGVyKiB0
ZXh0dXJlVXBkYXRlcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fZmFrZVRleHR1cmVVcGRh
dGVyLmdldCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRleHR1cmVVcGRhdGVySWZOZWVk
ZWQoKSBPVkVSUklERSB7IH0KIAorcHJpdmF0ZToKICAgICBSZWZQdHI8RmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXI+IG1fZmFrZVRleHR1cmVVcGRhdGVyOwogICAgIFdlYkNvcmU6OlRleHR1cmVNYW5h
Z2VyKiBtX3RleHR1cmVNYW5hZ2VyOwogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX2xhc3ROZWVk
c0Rpc3BsYXlSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9U
aWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
VGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMDRiM2MzODJlYmY1ZDczNDlmZmYzNzJj
YWMxMWUyNWI5ODNiMjNkZS4uZjA5MTA2ZDI1ZWQ3MWQ5YTFjMDc4NDA2MGZlMTBlMjJhODc5Yjll
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hy
b21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKIAogI2luY2x1ZGUgIlRpbGVk
TGF5ZXJDaHJvbWl1bS5oIgogCisjaW5jbHVkZSAiQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlci5oIgogI2luY2x1ZGUgIkNDQW5pbWF0aW9uVGVzdENvbW1vbi5oIgogI2luY2x1ZGUgIkND
TGF5ZXJUcmVlVGVzdENvbW1vbi5oIgogI2luY2x1ZGUgIkNDVGlsZWRMYXllclRlc3RDb21tb24u
aCIKICNpbmNsdWRlICJGYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgiCisjaW5jbHVkZSAiTGF5
ZXJQYWludGVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCiAjaW5jbHVk
ZSAiY2MvQ0NPdmVyZHJhd01ldHJpY3MuaCIKICNpbmNsdWRlICJjYy9DQ1NpbmdsZVRocmVhZFBy
b3h5LmgiIC8vIEZvciBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQKQEAgLTEzNzcsNCArMTM3OSw5
OSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBpeGVsc1BhaW50ZWRNZXRyaWNzKQog
ICAgIEVYUEVDVF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZv
clVwbG9hZCgpKTsKIH0KIAorY2xhc3MgVHJhY2tpbmdMYXllclBhaW50ZXIgOiBwdWJsaWMgTGF5
ZXJQYWludGVyQ2hyb21pdW0geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFRyYWNr
aW5nTGF5ZXJQYWludGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgVHJhY2tpbmdM
YXllclBhaW50ZXIoKSk7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwYWludChTa0NhbnZhcyosIGNv
bnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBJbnRSZWN0JikKKyAgICB7CisgICAgICAgIG1fcGFp
bnRlZFJlY3QgPSBjb250ZW50UmVjdDsKKyAgICB9CisKKyAgICBjb25zdCBJbnRSZWN0JiBwYWlu
dGVkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRlZFJlY3Q7IH0KKyAgICB2b2lkIHJlc2V0
UGFpbnRlZFJlY3QoKSB7IG1fcGFpbnRlZFJlY3QgPSBJbnRSZWN0KCk7IH0KKworcHJpdmF0ZToK
KyAgICBUcmFja2luZ0xheWVyUGFpbnRlcigpIHsgfQorCisgICAgSW50UmVjdCBtX3BhaW50ZWRS
ZWN0OworfTsKKworY2xhc3MgVXBkYXRlVHJhY2tpbmdUaWxlZExheWVyQ2hyb21pdW0gOiBwdWJs
aWMgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXBkYXRl
VHJhY2tpbmdUaWxlZExheWVyQ2hyb21pdW0oV2ViQ29yZTo6VGV4dHVyZU1hbmFnZXIqIG1hbmFn
ZXIpCisgICAgICAgIDogRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bShtYW5hZ2VyKQorICAgIHsKKyAg
ICAgICAgT3duUHRyPFRyYWNraW5nTGF5ZXJQYWludGVyPiB0cmFja2luZ0xheWVyUGFpbnRlcihU
cmFja2luZ0xheWVyUGFpbnRlcjo6Y3JlYXRlKCkpOworICAgICAgICBtX3RyYWNraW5nTGF5ZXJQ
YWludGVyID0gdHJhY2tpbmdMYXllclBhaW50ZXIuZ2V0KCk7CisgICAgICAgIG1fbGF5ZXJUZXh0
dXJlVXBkYXRlciA9IEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0ZSh0cmFj
a2luZ0xheWVyUGFpbnRlci5yZWxlYXNlKCksIGZhbHNlKTsKKyAgICB9CisgICAgdmlydHVhbCB+
VXBkYXRlVHJhY2tpbmdUaWxlZExheWVyQ2hyb21pdW0oKSB7IH0KKworICAgIFRyYWNraW5nTGF5
ZXJQYWludGVyKiB0cmFja2luZ0xheWVyUGFpbnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tp
bmdMYXllclBhaW50ZXI7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgV2ViQ29yZTo6TGF5
ZXJUZXh0dXJlVXBkYXRlciogdGV4dHVyZVVwZGF0ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX2xheWVyVGV4dHVyZVVwZGF0ZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBUcmFja2lu
Z0xheWVyUGFpbnRlciogbV90cmFja2luZ0xheWVyUGFpbnRlcjsKKyAgICBSZWZQdHI8Qml0bWFw
Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcj4gbV9sYXllclRleHR1cmVVcGRhdGVyOworfTsKKwor
VEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBub25JbnRlZ2VyQ29udGVudHNTY2FsZUlzTm90
RGlzdG9ydGVkRHVyaW5nUGFpbnQpCit7CisgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0
dXJlTWFuYWdlcihUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQwMDAwMDAsIDQwMDAwMDAsIDQwMDAw
MDApKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7CisKKyAgICBSZWZQdHI8VXBkYXRl
VHJhY2tpbmdUaWxlZExheWVyQ2hyb21pdW0+IGxheWVyID0gYWRvcHRSZWYobmV3IFVwZGF0ZVRy
YWNraW5nVGlsZWRMYXllckNocm9taXVtKHRleHR1cmVNYW5hZ2VyLmdldCgpKSk7CisKKyAgICBJ
bnRSZWN0IGxheWVyUmVjdCgwLCAwLCAzMCwgMzEpOworICAgIGxheWVyLT5zZXRQb3NpdGlvbihs
YXllclJlY3QubG9jYXRpb24oKSk7CisgICAgbGF5ZXItPnNldEJvdW5kcyhsYXllclJlY3Quc2l6
ZSgpKTsKKyAgICBsYXllci0+c2V0Q29udGVudHNTY2FsZSgxLjUpOworCisgICAgSW50UmVjdCBj
b250ZW50UmVjdCgwLCAwLCA0NSwgNDcpOworICAgIEVYUEVDVF9FUShjb250ZW50UmVjdC5zaXpl
KCksIGxheWVyLT5jb250ZW50Qm91bmRzKCkpOworICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJS
ZWN0KGNvbnRlbnRSZWN0KTsKKworICAgIC8vIFVwZGF0ZSB0aGUgd2hvbGUgdGlsZS4KKyAgICBs
YXllci0+dXBkYXRlTGF5ZXJSZWN0KHVwZGF0ZXIsIGNvbnRlbnRSZWN0LCAwKTsKKyAgICBsYXll
ci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cmVzZXRQYWludGVkUmVjdCgpOworCisgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoKSwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCkt
PnBhaW50ZWRSZWN0KCkpOworCisgICAgLy8gSW52YWxpZGF0ZSB0aGUgZW50aXJlIGxheWVyIGlu
IGNvbnRlbnQgc3BhY2UuIFdoZW4gcGFpbnRpbmcsIHRoZSByZWN0IGdpdmVuIHRvIHdlYmtpdCBz
aG91bGQgbWF0Y2ggdGhlIGxheWVyJ3MgYm91bmRzLgorICAgIGxheWVyLT5pbnZhbGlkYXRlUmVj
dChjb250ZW50UmVjdCk7CisgICAgbGF5ZXItPnVwZGF0ZUxheWVyUmVjdCh1cGRhdGVyLCBjb250
ZW50UmVjdCwgMCk7CisKKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEobGF5ZXJSZWN0LCBsYXllci0+
dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cGFpbnRlZFJlY3QoKSk7Cit9CisKK1RFU1QoVGlsZWRM
YXllckNocm9taXVtVGVzdCwgbm9uSW50ZWdlckNvbnRlbnRzU2NhbGVJc05vdERpc3RvcnRlZER1
cmluZ0ludmFsaWRhdGlvbikKK3sKKyAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+IHRleHR1cmVN
YW5hZ2VyKFRleHR1cmVNYW5hZ2VyOjpjcmVhdGUoNDAwMDAwMCwgNDAwMDAwMCwgNDAwMDAwMCkp
OworICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKKworICAgIFJlZlB0cjxVcGRhdGVUcmFj
a2luZ1RpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgVXBkYXRlVHJhY2tp
bmdUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0KCkpKTsKKworICAgIEludFJl
Y3QgbGF5ZXJSZWN0KDAsIDAsIDMwLCAzMSk7CisgICAgbGF5ZXItPnNldFBvc2l0aW9uKGxheWVy
UmVjdC5sb2NhdGlvbigpKTsKKyAgICBsYXllci0+c2V0Qm91bmRzKGxheWVyUmVjdC5zaXplKCkp
OworICAgIGxheWVyLT5zZXRDb250ZW50c1NjYWxlKDEuMyk7CisKKyAgICBJbnRSZWN0IGNvbnRl
bnRSZWN0KEludFBvaW50KCksIGxheWVyLT5jb250ZW50Qm91bmRzKCkpOworCisgICAgLy8gVXBk
YXRlIHRoZSB3aG9sZSB0aWxlLgorICAgIGxheWVyLT51cGRhdGVMYXllclJlY3QodXBkYXRlciwg
Y29udGVudFJlY3QsIDApOworICAgIGxheWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigpLT5yZXNl
dFBhaW50ZWRSZWN0KCk7CisKKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBsYXll
ci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cGFpbnRlZFJlY3QoKSk7CisKKyAgICAvLyBJbnZh
bGlkYXRlIHRoZSBlbnRpcmUgbGF5ZXIgaW4gbGF5ZXIgc3BhY2UuIFdoZW4gcGFpbnRpbmcsIHRo
ZSByZWN0IGdpdmVuIHRvIHdlYmtpdCBzaG91bGQgbWF0Y2ggdGhlIGxheWVyJ3MgYm91bmRzLgor
ICAgIGxheWVyLT5zZXROZWVkc0Rpc3BsYXlSZWN0KGxheWVyUmVjdCk7CisgICAgbGF5ZXItPnVw
ZGF0ZUxheWVyUmVjdCh1cGRhdGVyLCBjb250ZW50UmVjdCwgMCk7CisKKyAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEobGF5ZXJSZWN0LCBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cGFpbnRl
ZFJlY3QoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>