<?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>121341</bug_id>
          
          <creation_ts>2013-09-13 20:59:20 -0700</creation_ts>
          <short_desc>Use a better name than m_invertibleCTM</short_desc>
          <delta_ts>2013-09-13 23:35:49 -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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>929114</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 20:59:20 -0700</bug_when>
    <thetext>Use a better name than m_invertibleCTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929115</commentid>
    <comment_count>1</comment_count>
      <attachid>211615</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 21:24:48 -0700</bug_when>
    <thetext>Created attachment 211615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929122</commentid>
    <comment_count>2</comment_count>
      <attachid>211615</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-13 21:46:26 -0700</bug_when>
    <thetext>Comment on attachment 211615
Patch

Attachment 211615 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1801359</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929126</commentid>
    <comment_count>3</comment_count>
      <attachid>211618</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 21:56:23 -0700</bug_when>
    <thetext>Created attachment 211618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929165</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 23:35:49 -0700</bug_when>
    <thetext>Committed r155752: &lt;http://trac.webkit.org/changeset/155752&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211615</attachid>
            <date>2013-09-13 21:24:48 -0700</date>
            <delta_ts>2013-09-13 21:56:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121341-20130913212447.patch</filename>
            <type>text/plain</type>
            <size>21608</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNiMDM5NWU2MGU1ZjRk
ZWU1YmRmZThjNDIwOTg2Njk5Y2I5MWEwMi4uNjZlZjQzYmY4MjgwNjEyOWJiNDZlYWVjZjRkNmE4
OTAyYjRjNTViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTA5LTEzICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBiZXR0ZXIgbmFtZSB0
aGFuIG1faW52ZXJ0aWJsZUNUTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIxMzQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIGlzVHJhbnNmb3JtSW52ZXJ0aWJsZSB0byBoYXNJbnZlcnRpYmxl
VHJhbnNmb3JtLCBhbmQKKyAgICAgICAgbV9pbnZlcnRpYmxlQ1RNIHRvIG1faGFzSW52ZXJ0aWJs
ZVRyYW5zZm9ybS4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1BhdGhNZXRob2RzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1BhdGhNZXRob2RzOjptb3ZlVG8pOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzUGF0aE1ldGhvZHM6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpDYW52YXNQYXRoTWV0aG9kczo6cXVhZHJhdGljQ3VydmVUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpDYW52YXNQYXRoTWV0aG9kczo6YmV6aWVyQ3VydmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNQYXRoTWV0aG9kczo6YXJjVG8pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUGF0aE1l
dGhvZHM6OmFyYyk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNQYXRoTWV0aG9kczo6cmVjdCk6
CisgICAgICAgIFVwZGF0ZWQgZm9yIG5hbWUgY2hhbmdlLiBOb3QgcmVhbGx5IHN1cmUgdGhlIG5h
bWUgaXMgZ29vZCBoZXJlLAorICAgICAgICBiZWNhdXNlIERPTVBhdGggZG9lc24ndCBoYXZlIGEg
dHJhbnNmb3JtIGF0IGFsbDsgc2hvdWxkIHN3aXRjaAorICAgICAgICB0byBhIGJldHRlciBuYW1l
IHNvbWUgZGF5LgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUGF0aE1ldGhvZHMuaDog
UmVuYW1lZCwgYWRkZWQgYSBuZXcgY29uc3RydWN0b3IsCisgICAgICAgIGFuZCBtYWRlIHRoZSB2
aXJ0dWFsIGZ1bmN0aW9uIHByaXZhdGUuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpTdGF0ZTo6U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpTdGF0ZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpyb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjp0cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjp0cmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpzZXRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpmaWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6c3Ryb2tlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OmlzUG9pbnRJblBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjppc1BvaW50SW5TdHJva2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnN0cm9rZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6CisgICAgICAgIFVwZGF0ZWQgZm9yIG5hbWUg
Y2hhbmdlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Lmg6IFVwZGF0ZWQgZm9yIG5hbWUgY2hhbmdlLAorICAgICAgICBtYXJrZWQgdGhlIGNsYXNzIGZp
bmFsLCBhbmQgbWFya2VkIHRoZSBvdmVycmlkZS4gQWxzbyBnb3QgcmlkIG9mCisgICAgICAgIHVu
bmVlZGVkIGNvbmRpdGlvbmFsIGFyb3VuZCBmb3J3YXJkIGNsYXNzIGRlY2xhcmF0aW9uLgorCisg
ICAgICAgICogaHRtbC9jYW52YXMvRE9NUGF0aC5oOiBNb3ZlZCBTVkctc3BlY2lmaWMgaW5jbHVk
ZSBpbnRvIGEKKyAgICAgICAgc2VwYXJhdGUgcGFyYWdyYXBoLiBNYXJrZWQgY2xhc3MgZmluYWwu
IFJlbW92ZWQgdW5uZWVkZWQgaW52b2NhdGlvbgorICAgICAgICBvZiBXVEZfTUFLRV9OT05DT1BZ
QUJMRSwgd2hpY2ggaXMgYWxyZWFkeSB0cnVlIHNpbmNlIHdlIGluaGVyaXQKKyAgICAgICAgZnJv
bSBSZWZDb3VudGVkLiBDaGFuZ2VkIGNyZWF0ZSBmdW5jdGlvbiBhcmd1bWVudCB0byBiZSBhIGNv
bnN0Ki4KKyAgICAgICAgRWxpbWluYXRlZCBleHRyYSBjb25zdHJ1Y3RvcnMgdGhhdCB3ZXJlIHVu
bmVlZGVkLiBNYWRlIHRoZSBwYXRoLQorICAgICAgICBwYXJzaW5nIGNyZWF0ZSBmdW5jdGlvbiBT
Vkctb25seSwgcmF0aGVyIHRoYW4gY29tcGlsaW5nIGEgdXNlbGVzcworICAgICAgICBlbXB0eSBv
bmUgd2hlbiBjb21waWxpbmcgd2l0aG91dCBTVkcuCisKIDIwMTMtMDktMTIgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTUHJvcGVydHlBbmltYXRpb246OmVu
c3VyZVByb3BlcnR5TWFwKCkgaXMgbGFyZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1BhdGhNZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1BhdGhNZXRob2RzLmNwcAppbmRleCAwNDE1NDFkYjhkMTAzNzMxYzQzOWU1YTMw
OTU3NDJhZDU3OGY5N2VjLi45MzMyNzAwZTdmYjljOGQxOWU0NmY4N2E2ZTM0YzUyMjZiMjE4NGNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoTWV0aG9k
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0aE1ldGhvZHMu
Y3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQ2FudmFzUGF0aE1ldGhvZHM6Om1vdmVUbyhmbG9h
dCB4LCBmbG9hdCB5KQogewogICAgIGlmICghc3RkOjppc2Zpbml0ZSh4KSB8fCAhc3RkOjppc2Zp
bml0ZSh5KSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghaXNUcmFuc2Zvcm1JbnZlcnRpYmxl
KCkpCisgICAgaWYgKCFoYXNJbnZlcnRpYmxlVHJhbnNmb3JtKCkpCiAgICAgICAgIHJldHVybjsK
ICAgICBtX3BhdGgubW92ZVRvKEZsb2F0UG9pbnQoeCwgeSkpOwogfQpAQCAtNjQsNyArNjQsNyBA
QCB2b2lkIENhbnZhc1BhdGhNZXRob2RzOjpsaW5lVG8oZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAg
ICBpZiAoIXN0ZDo6aXNmaW5pdGUoeCkgfHwgIXN0ZDo6aXNmaW5pdGUoeSkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAoIWlzVHJhbnNmb3JtSW52ZXJ0aWJsZSgpKQorICAgIGlmICghaGFzSW52
ZXJ0aWJsZVRyYW5zZm9ybSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBGbG9hdFBvaW50IHAx
ID0gRmxvYXRQb2ludCh4LCB5KTsKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBDYW52YXNQYXRoTWV0
aG9kczo6cXVhZHJhdGljQ3VydmVUbyhmbG9hdCBjcHgsIGZsb2F0IGNweSwgZmxvYXQgeCwgZmxv
YXQgeSkKIHsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoY3B4KSB8fCAhc3RkOjppc2Zpbml0ZShj
cHkpIHx8ICFzdGQ6OmlzZmluaXRlKHgpIHx8ICFzdGQ6OmlzZmluaXRlKHkpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKCFpc1RyYW5zZm9ybUludmVydGlibGUoKSkKKyAgICBpZiAoIWhhc0lu
dmVydGlibGVUcmFuc2Zvcm0oKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9wYXRoLmhh
c0N1cnJlbnRQb2ludCgpKQogICAgICAgICBtX3BhdGgubW92ZVRvKEZsb2F0UG9pbnQoY3B4LCBj
cHkpKTsKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBDYW52YXNQYXRoTWV0aG9kczo6YmV6aWVyQ3Vy
dmVUbyhmbG9hdCBjcDF4LCBmbG9hdCBjcDF5LCBmbG9hdCBjcDJ4LCBmbG9hdAogewogICAgIGlm
ICghc3RkOjppc2Zpbml0ZShjcDF4KSB8fCAhc3RkOjppc2Zpbml0ZShjcDF5KSB8fCAhc3RkOjpp
c2Zpbml0ZShjcDJ4KSB8fCAhc3RkOjppc2Zpbml0ZShjcDJ5KSB8fCAhc3RkOjppc2Zpbml0ZSh4
KSB8fCAhc3RkOjppc2Zpbml0ZSh5KSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghaXNUcmFu
c2Zvcm1JbnZlcnRpYmxlKCkpCisgICAgaWYgKCFoYXNJbnZlcnRpYmxlVHJhbnNmb3JtKCkpCiAg
ICAgICAgIHJldHVybjsKICAgICBpZiAoIW1fcGF0aC5oYXNDdXJyZW50UG9pbnQoKSkKICAgICAg
ICAgbV9wYXRoLm1vdmVUbyhGbG9hdFBvaW50KGNwMXgsIGNwMXkpKTsKQEAgLTExNiw3ICsxMTYs
NyBAQCB2b2lkIENhbnZhc1BhdGhNZXRob2RzOjphcmNUbyhmbG9hdCB4MSwgZmxvYXQgeTEsIGZs
b2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgciwgRQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKCFpc1RyYW5zZm9ybUludmVydGlibGUoKSkKKyAgICBpZiAoIWhhc0ludmVydGlibGVU
cmFuc2Zvcm0oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgRmxvYXRQb2ludCBwMSA9IEZsb2F0
UG9pbnQoeDEsIHkxKTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIENhbnZhc1BhdGhNZXRob2Rz
OjphcmMoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgciwgZmxvYXQgc2EsIGZsb2F0IGVhLCBib29s
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIWlzVHJhbnNmb3JtSW52ZXJ0aWJs
ZSgpKQorICAgIGlmICghaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSgpKQogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBJZiAnc2EnIGFuZCAnZWEnIGRpZmZlciBieSBtb3JlIHRoYW4gMlBpLCBqdXN0
IGFkZCBhIGNpcmNsZSBzdGFydGluZy9lbmRpbmcgYXQgJ3NhJy4KQEAgLTE2NSw3ICsxNjUsNyBA
QCB2b2lkIENhbnZhc1BhdGhNZXRob2RzOjphcmMoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgciwg
ZmxvYXQgc2EsIGZsb2F0IGVhLCBib29sCiAKIHZvaWQgQ2FudmFzUGF0aE1ldGhvZHM6OnJlY3Qo
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkKIHsKLSAgICBpZiAo
IWlzVHJhbnNmb3JtSW52ZXJ0aWJsZSgpKQorICAgIGlmICghaGFzSW52ZXJ0aWJsZVRyYW5zZm9y
bSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoeCkgfHwgIXN0
ZDo6aXNmaW5pdGUoeSkgfHwgIXN0ZDo6aXNmaW5pdGUod2lkdGgpIHx8ICFzdGQ6OmlzZmluaXRl
KGhlaWdodCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQ
YXRoTWV0aG9kcy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0aE1ldGhv
ZHMuaAppbmRleCAwOTliNGExNjcxZDQxNDMyMWFkNDU1NGFlNDQ4NmEwZTE2YTA5Y2U3Li4wNDE4
MDhkZjFmYTRlYzExMjEyYmU0ZTZjOWFkM2Y1MjljOWNlMGJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoTWV0aG9kcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdGhNZXRob2RzLmgKQEAgLTUwLDEyICs1MCwxNSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhcmMoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgciwgZmxvYXQgc2Es
IGZsb2F0IGVhLCBib29sIGFudGljbG9ja3dpc2UsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNUcmFuc2Zvcm1JbnZlcnRpYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQotCiBwcm90ZWN0ZWQ6CiAgICAgQ2FudmFzUGF0aE1ldGhvZHMoKSB7IH0KKyAgICBDYW52
YXNQYXRoTWV0aG9kcyhjb25zdCBQYXRoJiBwYXRoKSA6IG1fcGF0aChwYXRoKSB7IH0KKworICAg
IHZpcnR1YWwgYm9vbCBoYXNJbnZlcnRpYmxlVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorCiAgICAgUGF0aCBtX3BhdGg7CiB9OworCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
aW5kZXggMjEyNTkyYWNkZTFlZWI4Y2IxM2RhZGYwOWQyNzM1ZWQ2NjlmYjM1My4uNTZmZjAzYjdl
Y2E5Y2NhYjlkNmE4MGYxODA3MTM0Mzg2MDA2YTU0MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xODMs
NyArMTgzLDcgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpTdGF0ZTo6U3RhdGUoKQogICAg
ICwgbV9nbG9iYWxBbHBoYSgxKQogICAgICwgbV9nbG9iYWxDb21wb3NpdGUoQ29tcG9zaXRlU291
cmNlT3ZlcikKICAgICAsIG1fZ2xvYmFsQmxlbmQoQmxlbmRNb2RlTm9ybWFsKQotICAgICwgbV9p
bnZlcnRpYmxlQ1RNKHRydWUpCisgICAgLCBtX2hhc0ludmVydGlibGVUcmFuc2Zvcm0odHJ1ZSkK
ICAgICAsIG1fbGluZURhc2hPZmZzZXQoMCkKICAgICAsIG1faW1hZ2VTbW9vdGhpbmdFbmFibGVk
KHRydWUpCiAgICAgLCBtX3RleHRBbGlnbihTdGFydFRleHRBbGlnbikKQEAgLTIxMCw3ICsyMTAs
NyBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OlN0YXRlOjpTdGF0ZShjb25zdCBTdGF0ZSYg
b3RoZXIpCiAgICAgLCBtX2dsb2JhbENvbXBvc2l0ZShvdGhlci5tX2dsb2JhbENvbXBvc2l0ZSkK
ICAgICAsIG1fZ2xvYmFsQmxlbmQob3RoZXIubV9nbG9iYWxCbGVuZCkKICAgICAsIG1fdHJhbnNm
b3JtKG90aGVyLm1fdHJhbnNmb3JtKQotICAgICwgbV9pbnZlcnRpYmxlQ1RNKG90aGVyLm1faW52
ZXJ0aWJsZUNUTSkKKyAgICAsIG1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybShvdGhlci5tX2hhc0lu
dmVydGlibGVUcmFuc2Zvcm0pCiAgICAgLCBtX2xpbmVEYXNoT2Zmc2V0KG90aGVyLm1fbGluZURh
c2hPZmZzZXQpCiAgICAgLCBtX2ltYWdlU21vb3RoaW5nRW5hYmxlZChvdGhlci5tX2ltYWdlU21v
b3RoaW5nRW5hYmxlZCkKICAgICAsIG1fdGV4dEFsaWduKG90aGVyLm1fdGV4dEFsaWduKQpAQCAt
MjQ2LDcgKzI0Niw3IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGUmIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6Om9wZXJhdG9yPShjb25zCiAgICAgbV9nbG9iYWxDb21w
b3NpdGUgPSBvdGhlci5tX2dsb2JhbENvbXBvc2l0ZTsKICAgICBtX2dsb2JhbEJsZW5kID0gb3Ro
ZXIubV9nbG9iYWxCbGVuZDsKICAgICBtX3RyYW5zZm9ybSA9IG90aGVyLm1fdHJhbnNmb3JtOwot
ICAgIG1faW52ZXJ0aWJsZUNUTSA9IG90aGVyLm1faW52ZXJ0aWJsZUNUTTsKKyAgICBtX2hhc0lu
dmVydGlibGVUcmFuc2Zvcm0gPSBvdGhlci5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm07CiAgICAg
bV9pbWFnZVNtb290aGluZ0VuYWJsZWQgPSBvdGhlci5tX2ltYWdlU21vb3RoaW5nRW5hYmxlZDsK
ICAgICBtX3RleHRBbGlnbiA9IG90aGVyLm1fdGV4dEFsaWduOwogICAgIG1fdGV4dEJhc2VsaW5l
ID0gb3RoZXIubV90ZXh0QmFzZWxpbmU7CkBAIC02MjEsNyArNjIxLDcgQEAgdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OnNjYWxlKGZsb2F0IHN4LCBmbG9hdCBzeSkKICAgICBHcmFwaGlj
c0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0
dXJuOwotICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCisgICAgaWYgKCFzdGF0ZSgp
Lm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFz
dGQ6OmlzZmluaXRlKHN4KSB8ICFzdGQ6OmlzZmluaXRlKHN5KSkKQEAgLTYzNSw3ICs2MzUsNyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2NhbGUoZmxvYXQgc3gsIGZsb2F0IHN5
KQogICAgIHJlYWxpemVTYXZlcygpOwogCiAgICAgaWYgKCFuZXdUcmFuc2Zvcm0uaXNJbnZlcnRp
YmxlKCkpIHsKLSAgICAgICAgbW9kaWZpYWJsZVN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNID0gZmFs
c2U7CisgICAgICAgIG1vZGlmaWFibGVTdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSA9
IGZhbHNlOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NDksNyArNjQ5LDcgQEAgdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJvdGF0ZShmbG9hdCBhbmdsZUluUmFkaWFucykK
ICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykK
ICAgICAgICAgcmV0dXJuOwotICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCisgICAg
aWYgKCFzdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKGFuZ2xlSW5SYWRpYW5zKSkKQEAgLTY2Myw3ICs2NjMs
NyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cm90YXRlKGZsb2F0IGFuZ2xlSW5S
YWRpYW5zKQogICAgIHJlYWxpemVTYXZlcygpOwogCiAgICAgaWYgKCFuZXdUcmFuc2Zvcm0uaXNJ
bnZlcnRpYmxlKCkpIHsKLSAgICAgICAgbW9kaWZpYWJsZVN0YXRlKCkubV9pbnZlcnRpYmxlQ1RN
ID0gZmFsc2U7CisgICAgICAgIG1vZGlmaWFibGVTdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5z
Zm9ybSA9IGZhbHNlOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NzcsNyArNjc3LDcg
QEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnRyYW5zbGF0ZShmbG9hdCB0eCwgZmxv
YXQgdHkpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBp
ZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RN
KQorICAgIGlmICghc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmICghc3RkOjppc2Zpbml0ZSh0eCkgfCAhc3RkOjppc2Zpbml0ZSh0eSkp
CkBAIC02OTEsNyArNjkxLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnRyYW5z
bGF0ZShmbG9hdCB0eCwgZmxvYXQgdHkpCiAgICAgcmVhbGl6ZVNhdmVzKCk7CiAKICAgICBpZiAo
IW5ld1RyYW5zZm9ybS5pc0ludmVydGlibGUoKSkgewotICAgICAgICBtb2RpZmlhYmxlU3RhdGUo
KS5tX2ludmVydGlibGVDVE0gPSBmYWxzZTsKKyAgICAgICAgbW9kaWZpYWJsZVN0YXRlKCkubV9o
YXNJbnZlcnRpYmxlVHJhbnNmb3JtID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTcwNSw3ICs3MDUsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dHJhbnNm
b3JtKGZsb2F0IG0xMSwgZmxvYXQgbTEyLCBmbG9hdCBtMjEsIGZsb2F0CiAgICAgR3JhcGhpY3ND
b250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVy
bjsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5t
X2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghc3Rk
Ojppc2Zpbml0ZShtMTEpIHwgIXN0ZDo6aXNmaW5pdGUobTIxKSB8ICFzdGQ6OmlzZmluaXRlKGR4
KSB8ICFzdGQ6OmlzZmluaXRlKG0xMikgfCAhc3RkOjppc2Zpbml0ZShtMjIpIHwgIXN0ZDo6aXNm
aW5pdGUoZHkpKQpAQCAtNzE5LDcgKzcxOSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjp0cmFuc2Zvcm0oZmxvYXQgbTExLCBmbG9hdCBtMTIsIGZsb2F0IG0yMSwgZmxvYXQKICAg
ICByZWFsaXplU2F2ZXMoKTsKIAogICAgIGlmICghbmV3VHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgp
KSB7Ci0gICAgICAgIG1vZGlmaWFibGVTdGF0ZSgpLm1faW52ZXJ0aWJsZUNUTSA9IGZhbHNlOwor
ICAgICAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0gPSBmYWxz
ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzQ3LDcgKzc0Nyw3IEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRUcmFuc2Zvcm0oZmxvYXQgbTExLCBmbG9hdCBtMTIs
IGZsb2F0IG0yMSwgZmxvCiAgICAgbW9kaWZpYWJsZVN0YXRlKCkubV90cmFuc2Zvcm0gPSBBZmZp
bmVUcmFuc2Zvcm0oKTsKICAgICBtX3BhdGgudHJhbnNmb3JtKGN0bSk7CiAKLSAgICBtb2RpZmlh
YmxlU3RhdGUoKS5tX2ludmVydGlibGVDVE0gPSB0cnVlOworICAgIG1vZGlmaWFibGVTdGF0ZSgp
Lm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSA9IHRydWU7CiAgICAgdHJhbnNmb3JtKG0xMSwgbTEy
LCBtMjEsIG0yMiwgZHgsIGR5KTsKIH0KIApAQCAtODQxLDYgKzg0MSw3IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpiZWdpblBhdGgoKQogfQogCiAjaWYgRU5BQkxFKENBTlZBU19Q
QVRIKQorCiBQYXNzUmVmUHRyPERPTVBhdGg+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3Vy
cmVudFBhdGgoKQogewogICAgIHJldHVybiBET01QYXRoOjpjcmVhdGUobV9wYXRoKTsKQEAgLTg1
Miw2ICs4NTMsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Q3VycmVudFBh
dGgoRE9NUGF0aCogcGF0aCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGF0aCA9IHBhdGgtPnBh
dGgoKTsKIH0KKwogI2VuZGlmCiAKIHN0YXRpYyBib29sIHZhbGlkYXRlUmVjdEZvckNhbnZhcyhm
bG9hdCYgeCwgZmxvYXQmIHksIGZsb2F0JiB3aWR0aCwgZmxvYXQmIGhlaWdodCkKQEAgLTkwOCw3
ICs5MTAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbChjb25zdCBTdHJp
bmcmIHdpbmRpbmdSdWxlU3RyaW5nKQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdD
b250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFzdGF0ZSgp
Lm1faW52ZXJ0aWJsZUNUTSkKKyAgICBpZiAoIXN0YXRlKCkubV9oYXNJbnZlcnRpYmxlVHJhbnNm
b3JtKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiBncmFkaWVudCBzaXplIGlzIHplcm8s
IHRoZW4gcGFpbnQgbm90aGluZy4KQEAgLTk0OCw3ICs5NTAsNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6c3Ryb2tlKCkKICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5n
Q29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghc3RhdGUo
KS5tX2ludmVydGlibGVDVE0pCisgICAgaWYgKCFzdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5z
Zm9ybSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgZ3JhZGllbnQgc2l6ZSBpcyB6ZXJv
LCB0aGVuIHBhaW50IG5vdGhpbmcuCkBAIC05NzQsNyArOTc2LDcgQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmNsaXAoY29uc3QgU3RyaW5nJiB3aW5kaW5nUnVsZVN0cmluZykKICAg
ICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAg
ICAgICAgcmV0dXJuOwotICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCisgICAgaWYg
KCFzdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgV2luZFJ1bGUgbmV3V2luZFJ1bGUgPSBSVUxFX05PTlpFUk87CkBAIC05OTQsNyArOTk2LDcg
QEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmlzUG9pbnRJblBhdGgoY29uc3QgZmxv
YXQgeCwgY29uc3QgZmxvYXQgeSwgY29uc3QKICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3
aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
ICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCisgICAgaWYgKCFzdGF0ZSgpLm1faGFzSW52ZXJ0
aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgRmxvYXRQb2ludCBw
b2ludCh4LCB5KTsKQEAgLTEwMTYsNyArMTAxOCw3IEBAIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjppc1BvaW50SW5TdHJva2UoY29uc3QgZmxvYXQgeCwgY29uc3QgZmxvYXQgeSkKICAg
ICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCisg
ICAgaWYgKCFzdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgRmxvYXRQb2ludCBwb2ludCh4LCB5KTsKQEAgLTEwMzYsNyArMTAzOCw3
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhclJlY3QoZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsK
LSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5tX2hh
c0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKICAgICBGbG9hdFJlY3QgcmVj
dCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIApAQCAtMTA3NCw3ICsxMDc2LDcgQEAgdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZpbGxSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdp
ZHRoLCBmbG9hdCBoZWkKICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgp
OwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghc3RhdGUoKS5tX2ludmVy
dGlibGVDVE0pCisgICAgaWYgKCFzdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gZnJvbSB0aGUgSFRNTDUgQ2FudmFzIHNwZWM6CkBAIC0x
MTEwLDcgKzExMTIsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVj
dChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaAogICAgIEdyYXBoaWNzQ29u
dGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47
Ci0gICAgaWYgKCFzdGF0ZSgpLm1faW52ZXJ0aWJsZUNUTSkKKyAgICBpZiAoIXN0YXRlKCkubV9o
YXNJbnZlcnRpYmxlVHJhbnNmb3JtKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCEoc3RhdGUo
KS5tX2xpbmVXaWR0aCA+PSAwKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI5OCw3ICsxMzAwLDcg
QEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJbWFnZShIVE1MSW1hZ2VFbGVt
ZW50KiBpbWFnZSwgY29uc3QgRmxvYXRSZWMKICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3
aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghc3Rh
dGUoKS5tX2ludmVydGlibGVDVE0pCisgICAgaWYgKCFzdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRy
YW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdl
ID0gaW1hZ2UtPmNhY2hlZEltYWdlKCk7CkBAIC0xMzY5LDcgKzEzNzEsNyBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlKEhUTUxDYW52YXNFbGVtZW50KiBzb3VyY2VD
YW52YXMsIGNvbnN0CiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsK
ICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRp
YmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5k
ZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0IEFQSS4KQEAgLTE0NjAsNyArMTQ2Miw3IEBAIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UoSFRNTFZpZGVvRWxlbWVudCogdmlk
ZW8sIGNvbnN0IEZsb2F0UmVjCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRl
eHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIXN0YXRlKCkubV9p
bnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0p
CiAgICAgICAgIHJldHVybjsKIAogICAgIGNoZWNrT3JpZ2luKHZpZGVvKTsKQEAgLTE3MzMsNyAr
MTczNSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkaWREcmF3KGNvbnN0IEZs
b2F0UmVjdCYgciwgdW5zaWduZWQgb3B0aW9ucykKICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBk
cmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwotICAgIGlmICgh
c3RhdGUoKS5tX2ludmVydGlibGVDVE0pCisgICAgaWYgKCFzdGF0ZSgpLm1faGFzSW52ZXJ0aWJs
ZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJE
X0NBTlZBUykgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtMjE2Miw3ICsyMTY0
LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29u
c3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBmbG8KICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBk
cmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwotICAgIGlmICgh
c3RhdGUoKS5tX2ludmVydGlibGVDVE0pCisgICAgaWYgKCFzdGF0ZSgpLm1faGFzSW52ZXJ0aWJs
ZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghc3RkOjppc2Zpbml0ZSh4KSB8
ICFzdGQ6OmlzZmluaXRlKHkpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4IDNmYTJh
MDRkODAzNmQwNWQ3YWJkMDVhNzViNGFlMjYwMDA3ZTM4NjIuLjZiYjA5MWEwZjRkM2UwOWFkODk2
OTM4ZTJmYmQwNDRiZTIwYWM5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC00OCw5ICs0OCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FudmFzR3JhZGllbnQ7CiBjbGFzcyBDYW52YXNQYXR0
ZXJuOwotI2lmIEVOQUJMRShDQU5WQVNfUEFUSCkKIGNsYXNzIERPTVBhdGg7Ci0jZW5kaWYKIGNs
YXNzIEZsb2F0UmVjdDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEhUTUxDYW52YXNF
bGVtZW50OwpAQCAtNjEsNyArNTksNyBAQCBjbGFzcyBUZXh0TWV0cmljczsKIAogdHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKIAotY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIDogcHVi
bGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQsIHB1YmxpYyBDYW52YXNQYXRoTWV0aG9kcyB7Citj
bGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgRklOQUwgOiBwdWJsaWMgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCwgcHVibGljIENhbnZhc1BhdGhNZXRob2RzIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc093blB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IGNyZWF0ZShIVE1MQ2FudmFz
RWxlbWVudCogY2FudmFzLCBib29sIHVzZXNDU1NDb21wYXRpYmlsaXR5UGFyc2VNb2RlLCBib29s
IHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSkKICAgICB7CkBAIC0xNDMsNiArMTQxLDcg
QEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8RE9NUGF0aD4gY3VycmVudFBhdGgoKTsKICAgICB2
b2lkIHNldEN1cnJlbnRQYXRoKERPTVBhdGgqKTsKICNlbmRpZgorCiAgICAgdm9pZCBmaWxsKGNv
bnN0IFN0cmluZyYgd2luZGluZyA9ICJub256ZXJvIik7CiAgICAgdm9pZCBzdHJva2UoKTsKICAg
ICB2b2lkIGNsaXAoY29uc3QgU3RyaW5nJiB3aW5kaW5nID0gIm5vbnplcm8iKTsKQEAgLTI1MSw3
ICsyNTAsNyBAQCBwcml2YXRlOgogICAgICAgICBDb21wb3NpdGVPcGVyYXRvciBtX2dsb2JhbENv
bXBvc2l0ZTsKICAgICAgICAgQmxlbmRNb2RlIG1fZ2xvYmFsQmxlbmQ7CiAgICAgICAgIEFmZmlu
ZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsKLSAgICAgICAgYm9vbCBtX2ludmVydGlibGVDVE07Cisg
ICAgICAgIGJvb2wgbV9oYXNJbnZlcnRpYmxlVHJhbnNmb3JtOwogICAgICAgICBWZWN0b3I8Zmxv
YXQ+IG1fbGluZURhc2g7CiAgICAgICAgIGZsb2F0IG1fbGluZURhc2hPZmZzZXQ7CiAgICAgICAg
IGJvb2wgbV9pbWFnZVNtb290aGluZ0VuYWJsZWQ7CkBAIC0zMjksNyArMzI4LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXMyZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IE9WRVJSSURFOwogCi0g
ICAgdmlydHVhbCBib29sIGlzVHJhbnNmb3JtSW52ZXJ0aWJsZSgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRlKCkubV9pbnZlcnRpYmxlQ1RNOyB9CisgICAgdmlydHVhbCBib29sIGhhc0ludmVydGlibGVU
cmFuc2Zvcm0oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdGF0ZSgpLm1faGFzSW52ZXJ0aWJs
ZVRyYW5zZm9ybTsgfQogCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJiYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxh
dGZvcm1MYXllcigpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvRE9NUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRE9NUGF0
aC5oCmluZGV4IDAxMGU0NWQ1MTFlYTJlM2U1NGU1ZDcxMGU2YWFiZWQwNmYwYTI0YjQuLmVmYWIz
YzYzZDdlODJmMDcxNjZiOTAwMDdiMWQ2YzM2MjhlYzgyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0RPTVBhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9ET01QYXRoLmgKQEAgLTI5LDQ5ICsyOSw0MiBAQAogI2RlZmluZSBET01QYXRoX2gKIAog
I2lmIEVOQUJMRShDQU5WQVNfUEFUSCkKKwogI2luY2x1ZGUgIkNhbnZhc1BhdGhNZXRob2RzLmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdQYXRoVXRpbGl0aWVzLmgiCiAjZW5k
aWYKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRE9NUGF0aCA6IHB1YmxpYyBSZWZD
b3VudGVkPERPTVBhdGg+LCBwdWJsaWMgQ2FudmFzUGF0aE1ldGhvZHMgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKERPTVBhdGgpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK2NsYXNzIERP
TVBhdGggRklOQUwgOiBwdWJsaWMgUmVmQ291bnRlZDxET01QYXRoPiwgcHVibGljIENhbnZhc1Bh
dGhNZXRob2RzIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxET01QYXRoPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
RE9NUGF0aCk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QYXRoPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBwYXRoRGF0YSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTVBhdGgocGF0aERhdGEp
KTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVBhdGg+IGNyZWF0ZShET01QYXRoKiBwYXRo
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NUGF0aChwYXRoKSk7IH0KLQogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPERPTVBhdGg+IGNyZWF0ZShjb25zdCBQYXRoJiBwYXRoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgRE9NUGF0aChwYXRoKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QYXRo
PiBjcmVhdGUoY29uc3QgRE9NUGF0aCogcGF0aCkgeyByZXR1cm4gY3JlYXRlKHBhdGgtPnBhdGgo
KSk7IH0KIAotICAgIGNvbnN0IFBhdGgmIHBhdGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGg7IH0K
LQotICAgIHZpcnR1YWwgfkRPTVBhdGgoKSB7IH0KLXByaXZhdGU6Ci0gICAgRE9NUGF0aCgpIDog
Q2FudmFzUGF0aE1ldGhvZHMoKSB7IH0KLSAgICBET01QYXRoKGNvbnN0IFBhdGgmIHBhdGgpCi0g
ICAgICAgIDogQ2FudmFzUGF0aE1ldGhvZHMoKQotICAgIHsKLSAgICAgICAgbV9wYXRoID0gcGF0
aDsKLSAgICB9Ci0gICAgRE9NUGF0aChET01QYXRoKiBwYXRoKQotICAgICAgICA6IENhbnZhc1Bh
dGhNZXRob2RzKCkKKyNpZiBFTkFCTEUoU1ZHKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVBh
dGg+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGhEYXRhKQogICAgIHsKLSAgICAgICAgbV9wYXRo
ID0gcGF0aC0+cGF0aCgpOworICAgICAgICBQYXRoIHBhdGg7CisgICAgICAgIGJ1aWxkUGF0aEZy
b21TdHJpbmcocGF0aERhdGEsIHBhdGgpOworICAgICAgICByZXR1cm4gY3JlYXRlKHBhdGgpOwog
ICAgIH0KLSAgICBET01QYXRoKGNvbnN0IFN0cmluZyYgcGF0aERhdGEpCi0gICAgICAgIDogQ2Fu
dmFzUGF0aE1ldGhvZHMoKQotICAgIHsKLSNpZiBFTkFCTEUoU1ZHKQotICAgICAgICBidWlsZFBh
dGhGcm9tU3RyaW5nKHBhdGhEYXRhLCBtX3BhdGgpOwotI2Vsc2UKLSAgICAgICAgVU5VU0VEX1BB
UkFNKHBhdGhEYXRhKTsKICNlbmRpZgotICAgIH0KKworICAgIGNvbnN0IFBhdGgmIHBhdGgoKSBj
b25zdCB7IHJldHVybiBtX3BhdGg7IH0KKworcHJpdmF0ZToKKyAgICBET01QYXRoKCkgeyB9Cisg
ICAgRE9NUGF0aChjb25zdCBQYXRoJiBwYXRoKSA6IENhbnZhc1BhdGhNZXRob2RzKHBhdGgpIHsg
fQogfTsKKwogfQorCiAjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWI3YWQ2OTBjYWY1ZjYxYTU1YTc2ZDZlNmYwYWE0
MWMyODYwYTk0Zi4uYzI1YzY4MGQ3YWM3N2ZjYjI4MGZlN2JkY2RkYTRlODBkMzlmZjMwYyAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDE0IEBACiAyMDEzLTA5LTEzICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAg
ICAgICBVc2UgYSBiZXR0ZXIgbmFtZSB0aGFuIG1faW52ZXJ0aWJsZUNUTQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMzQxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2RvLXdlYmNvcmUt
cmVuYW1lOiBVcGRhdGVkIHRvIGRvIHRoaXMgcmVwbGFjZSBhcyB3ZSBkby4KKworMjAxMy0wOS0x
MyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKICAgICAgICAgUmVuYW1lIGNvbmZ1
c2luZ2x5IG5hbWVkICJydW50aW1lT2JqZWN0IiBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTMzOQogCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1lIGIvVG9vbHMvU2NyaXB0cy9kby13ZWJjb3JlLXJl
bmFtZQppbmRleCAzNmYxMzU4YjJkN2ZmMDNkMWFlYWI1MWRiNWRkMzZjYzdiNDE5N2ZmLi42YmRm
ZGRlYWY0NzhlNjc0ZTE3OTkzNDJlMDg4OTkxZmVhYTRiNzk2IDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1lCisrKyBiL1Rvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1y
ZW5hbWUKQEAgLTk2LDEwICs5Niw4IEBAIHN1YiB3YW50ZWQKIG15ICRpc0RPTVR5cGVSZW5hbWUg
PSAxOwogbXkgJXJlbmFtZXMgPSAoCiAgICAgIyBSZW5hbWVzIGdvIGhlcmUgaW4gdGhlIGZvcm0g
b2Y6Ci0gICAgInJ1bnRpbWVPYmplY3RQcm9wZXJ0eUdldHRlciIgPT4gInBsdWdpbkVsZW1lbnRQ
cm9wZXJ0eUdldHRlciIsCi0gICAgInJ1bnRpbWVPYmplY3RDdXN0b21HZXRPd25Qcm9wZXJ0eVNs
b3QiID0+ICJwbHVnaW5FbGVtZW50Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90IiwKLSAgICAicnVu
dGltZU9iamVjdEN1c3RvbVB1dCIgPT4gInBsdWdpbkVsZW1lbnRDdXN0b21QdXQiLAotICAgICJy
dW50aW1lT2JqZWN0R2V0Q2FsbERhdGEiID0+ICJwbHVnaW5FbGVtZW50R2V0Q2FsbERhdGEiLAor
ICAgICJpc1RyYW5zZm9ybUludmVydGlibGUiID0+ICJoYXNJbnZlcnRpYmxlVHJhbnNmb3JtIiwK
KyAgICAibV9pbnZlcnRpYmxlQ1RNIiA9PiAibV9oYXNJbnZlcnRpYmxlVHJhbnNmb3JtIiwKICk7
CiAKIG15ICVyZW5hbWVzQ29udGVtcGxhdGVkRm9yVGhlRnV0dXJlID0gKApAQCAtMTM5LDkgKzEz
Nyw2IEBAIG15ICVyZW5hbWVzQ29udGVtcGxhdGVkRm9yVGhlRnV0dXJlID0gKAogICAgICJMZWdh
Y3lXZWJBcmNoaXZlIiA9PiAiV2ViQXJjaGl2ZSIsCiAgICAgIkxlZ2FjeVdlYkFyY2hpdmVfaCIg
PT4gIldlYkFyY2hpdmVfaCIsCiAKLSAgICAiaXNUcmFuc2Zvcm1JbnZlcnRpYmxlIiA9PiAiaGFz
SW52ZXJ0aWJsZVRyYW5zZm9ybSIsCi0gICAgIm1faW52ZXJ0aWJsZUNUTSIgPT4gIm1faGFzSW52
ZXJ0aWJsZVRyYW5zZm9ybSIsCi0KICAgICAiTmF0aXZlRnVuY3Rpb25XcmFwcGVyX2giID0+ICJK
U0hvc3RGdW5jdGlvbl9oIiwKICAgICAiTmF0aXZlRnVuY3Rpb25XcmFwcGVyIiA9PiAiSlNIb3N0
RnVuY3Rpb24iLAogICAgICJuYXRpdmVGdW5jdGlvblRodW5rIiA9PiAiaG9zdEZ1bmN0aW9uVGh1
bmsiLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211618</attachid>
            <date>2013-09-13 21:56:23 -0700</date>
            <delta_ts>2013-09-13 23:31:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121341-20130913215622.patch</filename>
            <type>text/plain</type>
            <size>21001</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhhY2I4Yzk5MDM1MWI4
YjQ0MmEwZmM5MTc0OGNmMTRlOTM2Yjg3Yy4uNzNkNDFiOWZjY2NmYTBkY2Q0Y2ZiZTlkMmZmODU1
YzRmN2NkYzcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTA5LTEzICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBiZXR0ZXIgbmFtZSB0
aGFuIG1faW52ZXJ0aWJsZUNUTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIxMzQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIGlzVHJhbnNmb3JtSW52ZXJ0aWJsZSB0byBoYXNJbnZlcnRpYmxl
VHJhbnNmb3JtLCBhbmQKKyAgICAgICAgbV9pbnZlcnRpYmxlQ1RNIHRvIG1faGFzSW52ZXJ0aWJs
ZVRyYW5zZm9ybS4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1BhdGhNZXRob2RzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1BhdGhNZXRob2RzOjptb3ZlVG8pOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzUGF0aE1ldGhvZHM6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpDYW52YXNQYXRoTWV0aG9kczo6cXVhZHJhdGljQ3VydmVUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpDYW52YXNQYXRoTWV0aG9kczo6YmV6aWVyQ3VydmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNQYXRoTWV0aG9kczo6YXJjVG8pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUGF0aE1l
dGhvZHM6OmFyYyk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNQYXRoTWV0aG9kczo6cmVjdCk6
CisgICAgICAgIFVwZGF0ZWQgZm9yIG5hbWUgY2hhbmdlLiBOb3QgcmVhbGx5IHN1cmUgdGhlIG5h
bWUgaXMgZ29vZCBoZXJlLAorICAgICAgICBiZWNhdXNlIERPTVBhdGggZG9lc24ndCBoYXZlIGEg
dHJhbnNmb3JtIGF0IGFsbDsgc2hvdWxkIHN3aXRjaAorICAgICAgICB0byBhIGJldHRlciBuYW1l
IHNvbWUgZGF5LgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUGF0aE1ldGhvZHMuaDog
UmVuYW1lZCwgYWRkZWQgYSBuZXcgY29uc3RydWN0b3IsCisgICAgICAgIGFuZCBtYWRlIHRoZSB2
aXJ0dWFsIGZ1bmN0aW9uIHByaXZhdGUuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpTdGF0ZTo6U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpTdGF0ZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpyb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjp0cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjp0cmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpzZXRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpmaWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6c3Ryb2tlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OmlzUG9pbnRJblBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjppc1BvaW50SW5TdHJva2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnN0cm9rZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6CisgICAgICAgIFVwZGF0ZWQgZm9yIG5hbWUg
Y2hhbmdlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Lmg6IFVwZGF0ZWQgZm9yIG5hbWUgY2hhbmdlLgorICAgICAgICBBbHNvIGdvdCByaWQgb2YgdW5u
ZWVkZWQgY29uZGl0aW9uYWwgYXJvdW5kIGZvcndhcmQgY2xhc3MgZGVjbGFyYXRpb24uCisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9ET01QYXRoLmg6IE1vdmVkIFNWRy1zcGVjaWZpYyBpbmNsdWRl
IGludG8gYQorICAgICAgICBzZXBhcmF0ZSBwYXJhZ3JhcGguIFJlbW92ZWQgdW5uZWVkZWQgaW52
b2NhdGlvbiAgb2YgV1RGX01BS0VfTk9OQ09QWUFCTEUsCisgICAgICAgIHdoaWNoIGlzIGFscmVh
ZHkgdHJ1ZSBzaW5jZSB3ZSBpbmhlcml0IGZyb20gUmVmQ291bnRlZC4gQ2hhbmdlZCBjcmVhdGUK
KyAgICAgICAgZnVuY3Rpb24gYXJndW1lbnQgdG8gYmUgYSBjb25zdCouIEVsaW1pbmF0ZWQgZXh0
cmEgY29uc3RydWN0b3JzIHRoYXQgd2VyZQorICAgICAgICB1bm5lZWRlZC4gTWFkZSB0aGUgcGF0
aC1wYXJzaW5nIGNyZWF0ZSBmdW5jdGlvbiBTVkctb25seSwgcmF0aGVyIHRoYW4KKyAgICAgICAg
Y29tcGlsaW5nIGEgdXNlbGVzcyBlbXB0eSBvbmUgd2hlbiBjb21waWxpbmcgd2l0aG91dCBTVkcu
CisKIDIwMTMtMDktMTMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTU3MzguCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoTWV0aG9kcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoTWV0aG9kcy5jcHAKaW5kZXggMDQxNTQxZGI4
ZDEwMzczMWM0MzllNWEzMDk1NzQyYWQ1NzhmOTdlYy4uOTMzMjcwMGU3ZmI5YzhkMTllNDZmODdh
NmUzNGM1MjI2YjIxODRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUGF0aE1ldGhvZHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1BhdGhNZXRob2RzLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIENhbnZhc1BhdGhNZXRo
b2RzOjptb3ZlVG8oZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUo
eCkgfHwgIXN0ZDo6aXNmaW5pdGUoeSkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWlzVHJh
bnNmb3JtSW52ZXJ0aWJsZSgpKQorICAgIGlmICghaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSgpKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9wYXRoLm1vdmVUbyhGbG9hdFBvaW50KHgsIHkpKTsKIH0K
QEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBDYW52YXNQYXRoTWV0aG9kczo6bGluZVRvKGZsb2F0IHgs
IGZsb2F0IHkpCiB7CiAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKHgpIHx8ICFzdGQ6OmlzZmluaXRl
KHkpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFpc1RyYW5zZm9ybUludmVydGlibGUoKSkK
KyAgICBpZiAoIWhhc0ludmVydGlibGVUcmFuc2Zvcm0oKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgRmxvYXRQb2ludCBwMSA9IEZsb2F0UG9pbnQoeCwgeSk7CkBAIC03OCw3ICs3OCw3IEBAIHZv
aWQgQ2FudmFzUGF0aE1ldGhvZHM6OnF1YWRyYXRpY0N1cnZlVG8oZmxvYXQgY3B4LCBmbG9hdCBj
cHksIGZsb2F0IHgsIGZsb2F0IHkpCiB7CiAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKGNweCkgfHwg
IXN0ZDo6aXNmaW5pdGUoY3B5KSB8fCAhc3RkOjppc2Zpbml0ZSh4KSB8fCAhc3RkOjppc2Zpbml0
ZSh5KSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghaXNUcmFuc2Zvcm1JbnZlcnRpYmxlKCkp
CisgICAgaWYgKCFoYXNJbnZlcnRpYmxlVHJhbnNmb3JtKCkpCiAgICAgICAgIHJldHVybjsKICAg
ICBpZiAoIW1fcGF0aC5oYXNDdXJyZW50UG9pbnQoKSkKICAgICAgICAgbV9wYXRoLm1vdmVUbyhG
bG9hdFBvaW50KGNweCwgY3B5KSk7CkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgQ2FudmFzUGF0aE1l
dGhvZHM6OmJlemllckN1cnZlVG8oZmxvYXQgY3AxeCwgZmxvYXQgY3AxeSwgZmxvYXQgY3AyeCwg
ZmxvYXQKIHsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoY3AxeCkgfHwgIXN0ZDo6aXNmaW5pdGUo
Y3AxeSkgfHwgIXN0ZDo6aXNmaW5pdGUoY3AyeCkgfHwgIXN0ZDo6aXNmaW5pdGUoY3AyeSkgfHwg
IXN0ZDo6aXNmaW5pdGUoeCkgfHwgIXN0ZDo6aXNmaW5pdGUoeSkpCiAgICAgICAgIHJldHVybjsK
LSAgICBpZiAoIWlzVHJhbnNmb3JtSW52ZXJ0aWJsZSgpKQorICAgIGlmICghaGFzSW52ZXJ0aWJs
ZVRyYW5zZm9ybSgpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFtX3BhdGguaGFzQ3VycmVu
dFBvaW50KCkpCiAgICAgICAgIG1fcGF0aC5tb3ZlVG8oRmxvYXRQb2ludChjcDF4LCBjcDF5KSk7
CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBDYW52YXNQYXRoTWV0aG9kczo6YXJjVG8oZmxvYXQg
eDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHIsIEUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGlmICghaXNUcmFuc2Zvcm1JbnZlcnRpYmxlKCkpCisgICAgaWYg
KCFoYXNJbnZlcnRpYmxlVHJhbnNmb3JtKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEZsb2F0
UG9pbnQgcDEgPSBGbG9hdFBvaW50KHgxLCB5MSk7CkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBD
YW52YXNQYXRoTWV0aG9kczo6YXJjKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHIsIGZsb2F0IHNh
LCBmbG9hdCBlYSwgYm9vbAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFpc1Ry
YW5zZm9ybUludmVydGlibGUoKSkKKyAgICBpZiAoIWhhc0ludmVydGlibGVUcmFuc2Zvcm0oKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgJ3NhJyBhbmQgJ2VhJyBkaWZmZXIgYnkgbW9y
ZSB0aGFuIDJQaSwganVzdCBhZGQgYSBjaXJjbGUgc3RhcnRpbmcvZW5kaW5nIGF0ICdzYScuCkBA
IC0xNjUsNyArMTY1LDcgQEAgdm9pZCBDYW52YXNQYXRoTWV0aG9kczo6YXJjKGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IHIsIGZsb2F0IHNhLCBmbG9hdCBlYSwgYm9vbAogCiB2b2lkIENhbnZhc1Bh
dGhNZXRob2RzOjpyZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln
aHQpCiB7Ci0gICAgaWYgKCFpc1RyYW5zZm9ybUludmVydGlibGUoKSkKKyAgICBpZiAoIWhhc0lu
dmVydGlibGVUcmFuc2Zvcm0oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFzdGQ6Omlz
ZmluaXRlKHgpIHx8ICFzdGQ6OmlzZmluaXRlKHkpIHx8ICFzdGQ6OmlzZmluaXRlKHdpZHRoKSB8
fCAhc3RkOjppc2Zpbml0ZShoZWlnaHQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUGF0aE1ldGhvZHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1BhdGhNZXRob2RzLmgKaW5kZXggMDk5YjRhMTY3MWQ0MTQzMjFhZDQ1NTRhZTQ0ODZh
MGUxNmEwOWNlNy4uMDQxODA4ZGYxZmE0ZWMxMTIxMmJlNGU2YzlhZDNmNTI5YzljZTBiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0aE1ldGhvZHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXRoTWV0aG9kcy5oCkBAIC01
MCwxMiArNTAsMTUgQEAgcHVibGljOgogICAgIHZvaWQgYXJjKGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IHIsIGZsb2F0IHNhLCBmbG9hdCBlYSwgYm9vbCBhbnRpY2xvY2t3aXNlLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCByZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9h
dCBoZWlnaHQpOwogCi0gICAgdmlydHVhbCBib29sIGlzVHJhbnNmb3JtSW52ZXJ0aWJsZSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KLQogcHJvdGVjdGVkOgogICAgIENhbnZhc1BhdGhNZXRob2Rz
KCkgeyB9CisgICAgQ2FudmFzUGF0aE1ldGhvZHMoY29uc3QgUGF0aCYgcGF0aCkgOiBtX3BhdGgo
cGF0aCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KKwogICAgIFBhdGggbV9wYXRoOwogfTsKKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwCmluZGV4IDIxMjU5MmFjZGUxZWViOGNiMTNkYWRmMDlkMjczNWVkNjY5
ZmIzNTMuLjU2ZmYwM2I3ZWNhOWNjYWI5ZDZhODBmMTgwNzEzNDM4NjAwNmE1NDEgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3Rh
dGU6OlN0YXRlKCkKICAgICAsIG1fZ2xvYmFsQWxwaGEoMSkKICAgICAsIG1fZ2xvYmFsQ29tcG9z
aXRlKENvbXBvc2l0ZVNvdXJjZU92ZXIpCiAgICAgLCBtX2dsb2JhbEJsZW5kKEJsZW5kTW9kZU5v
cm1hbCkKLSAgICAsIG1faW52ZXJ0aWJsZUNUTSh0cnVlKQorICAgICwgbV9oYXNJbnZlcnRpYmxl
VHJhbnNmb3JtKHRydWUpCiAgICAgLCBtX2xpbmVEYXNoT2Zmc2V0KDApCiAgICAgLCBtX2ltYWdl
U21vb3RoaW5nRW5hYmxlZCh0cnVlKQogICAgICwgbV90ZXh0QWxpZ24oU3RhcnRUZXh0QWxpZ24p
CkBAIC0yMTAsNyArMjEwLDcgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpTdGF0ZTo6U3Rh
dGUoY29uc3QgU3RhdGUmIG90aGVyKQogICAgICwgbV9nbG9iYWxDb21wb3NpdGUob3RoZXIubV9n
bG9iYWxDb21wb3NpdGUpCiAgICAgLCBtX2dsb2JhbEJsZW5kKG90aGVyLm1fZ2xvYmFsQmxlbmQp
CiAgICAgLCBtX3RyYW5zZm9ybShvdGhlci5tX3RyYW5zZm9ybSkKLSAgICAsIG1faW52ZXJ0aWJs
ZUNUTShvdGhlci5tX2ludmVydGlibGVDVE0pCisgICAgLCBtX2hhc0ludmVydGlibGVUcmFuc2Zv
cm0ob3RoZXIubV9oYXNJbnZlcnRpYmxlVHJhbnNmb3JtKQogICAgICwgbV9saW5lRGFzaE9mZnNl
dChvdGhlci5tX2xpbmVEYXNoT2Zmc2V0KQogICAgICwgbV9pbWFnZVNtb290aGluZ0VuYWJsZWQo
b3RoZXIubV9pbWFnZVNtb290aGluZ0VuYWJsZWQpCiAgICAgLCBtX3RleHRBbGlnbihvdGhlci5t
X3RleHRBbGlnbikKQEAgLTI0Niw3ICsyNDYsNyBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OlN0YXRlJiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OlN0YXRlOjpvcGVyYXRvcj0oY29ucwog
ICAgIG1fZ2xvYmFsQ29tcG9zaXRlID0gb3RoZXIubV9nbG9iYWxDb21wb3NpdGU7CiAgICAgbV9n
bG9iYWxCbGVuZCA9IG90aGVyLm1fZ2xvYmFsQmxlbmQ7CiAgICAgbV90cmFuc2Zvcm0gPSBvdGhl
ci5tX3RyYW5zZm9ybTsKLSAgICBtX2ludmVydGlibGVDVE0gPSBvdGhlci5tX2ludmVydGlibGVD
VE07CisgICAgbV9oYXNJbnZlcnRpYmxlVHJhbnNmb3JtID0gb3RoZXIubV9oYXNJbnZlcnRpYmxl
VHJhbnNmb3JtOwogICAgIG1faW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gb3RoZXIubV9pbWFnZVNt
b290aGluZ0VuYWJsZWQ7CiAgICAgbV90ZXh0QWxpZ24gPSBvdGhlci5tX3RleHRBbGlnbjsKICAg
ICBtX3RleHRCYXNlbGluZSA9IG90aGVyLm1fdGV4dEJhc2VsaW5lOwpAQCAtNjIxLDcgKzYyMSw3
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzY2FsZShmbG9hdCBzeCwgZmxvYXQg
c3kpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAo
IWMpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQor
ICAgIGlmICghc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICghc3RkOjppc2Zpbml0ZShzeCkgfCAhc3RkOjppc2Zpbml0ZShzeSkpCkBA
IC02MzUsNyArNjM1LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNjYWxlKGZs
b2F0IHN4LCBmbG9hdCBzeSkKICAgICByZWFsaXplU2F2ZXMoKTsKIAogICAgIGlmICghbmV3VHJh
bnNmb3JtLmlzSW52ZXJ0aWJsZSgpKSB7Ci0gICAgICAgIG1vZGlmaWFibGVTdGF0ZSgpLm1faW52
ZXJ0aWJsZUNUTSA9IGZhbHNlOworICAgICAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX2hhc0ludmVy
dGlibGVUcmFuc2Zvcm0gPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNjQ5
LDcgKzY0OSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyb3RhdGUoZmxvYXQg
YW5nbGVJblJhZGlhbnMpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQo
KTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZl
cnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmICghc3RkOjppc2Zpbml0ZShhbmdsZUluUmFkaWFucykp
CkBAIC02NjMsNyArNjYzLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJvdGF0
ZShmbG9hdCBhbmdsZUluUmFkaWFucykKICAgICByZWFsaXplU2F2ZXMoKTsKIAogICAgIGlmICgh
bmV3VHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKSB7Ci0gICAgICAgIG1vZGlmaWFibGVTdGF0ZSgp
Lm1faW52ZXJ0aWJsZUNUTSA9IGZhbHNlOworICAgICAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX2hh
c0ludmVydGlibGVUcmFuc2Zvcm0gPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNjc3LDcgKzY3Nyw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp0cmFuc2xh
dGUoZmxvYXQgdHgsIGZsb2F0IHR5KQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdD
b250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFzdGF0ZSgp
Lm1faW52ZXJ0aWJsZUNUTSkKKyAgICBpZiAoIXN0YXRlKCkubV9oYXNJbnZlcnRpYmxlVHJhbnNm
b3JtKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodHgpIHwgIXN0
ZDo6aXNmaW5pdGUodHkpKQpAQCAtNjkxLDcgKzY5MSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjp0cmFuc2xhdGUoZmxvYXQgdHgsIGZsb2F0IHR5KQogICAgIHJlYWxpemVTYXZl
cygpOwogCiAgICAgaWYgKCFuZXdUcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpIHsKLSAgICAgICAg
bW9kaWZpYWJsZVN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNID0gZmFsc2U7CisgICAgICAgIG1vZGlm
aWFibGVTdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSA9IGZhbHNlOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC03MDUsNyArNzA1LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OnRyYW5zZm9ybShmbG9hdCBtMTEsIGZsb2F0IG0xMiwgZmxvYXQgbTIxLCBmbG9h
dAogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFj
KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFzdGF0ZSgpLm1faW52ZXJ0aWJsZUNUTSkKKyAg
ICBpZiAoIXN0YXRlKCkubV9oYXNJbnZlcnRpYmxlVHJhbnNmb3JtKQogICAgICAgICByZXR1cm47
CiAKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUobTExKSB8ICFzdGQ6OmlzZmluaXRlKG0yMSkgfCAh
c3RkOjppc2Zpbml0ZShkeCkgfCAhc3RkOjppc2Zpbml0ZShtMTIpIHwgIXN0ZDo6aXNmaW5pdGUo
bTIyKSB8ICFzdGQ6OmlzZmluaXRlKGR5KSkKQEAgLTcxOSw3ICs3MTksNyBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6dHJhbnNmb3JtKGZsb2F0IG0xMSwgZmxvYXQgbTEyLCBmbG9h
dCBtMjEsIGZsb2F0CiAgICAgcmVhbGl6ZVNhdmVzKCk7CiAKICAgICBpZiAoIW5ld1RyYW5zZm9y
bS5pc0ludmVydGlibGUoKSkgewotICAgICAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX2ludmVydGli
bGVDVE0gPSBmYWxzZTsKKyAgICAgICAgbW9kaWZpYWJsZVN0YXRlKCkubV9oYXNJbnZlcnRpYmxl
VHJhbnNmb3JtID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc0Nyw3ICs3
NDcsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0VHJhbnNmb3JtKGZsb2F0
IG0xMSwgZmxvYXQgbTEyLCBmbG9hdCBtMjEsIGZsbwogICAgIG1vZGlmaWFibGVTdGF0ZSgpLm1f
dHJhbnNmb3JtID0gQWZmaW5lVHJhbnNmb3JtKCk7CiAgICAgbV9wYXRoLnRyYW5zZm9ybShjdG0p
OwogCi0gICAgbW9kaWZpYWJsZVN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNID0gdHJ1ZTsKKyAgICBt
b2RpZmlhYmxlU3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0gPSB0cnVlOwogICAgIHRy
YW5zZm9ybShtMTEsIG0xMiwgbTIxLCBtMjIsIGR4LCBkeSk7CiB9CiAKQEAgLTg0MSw2ICs4NDEs
NyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YmVnaW5QYXRoKCkKIH0KIAogI2lm
IEVOQUJMRShDQU5WQVNfUEFUSCkKKwogUGFzc1JlZlB0cjxET01QYXRoPiBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmN1cnJlbnRQYXRoKCkKIHsKICAgICByZXR1cm4gRE9NUGF0aDo6Y3JlYXRl
KG1fcGF0aCk7CkBAIC04NTIsNiArODUzLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OnNldEN1cnJlbnRQYXRoKERPTVBhdGgqIHBhdGgpCiAgICAgICAgIHJldHVybjsKICAgICBt
X3BhdGggPSBwYXRoLT5wYXRoKCk7CiB9CisKICNlbmRpZgogCiBzdGF0aWMgYm9vbCB2YWxpZGF0
ZVJlY3RGb3JDYW52YXMoZmxvYXQmIHgsIGZsb2F0JiB5LCBmbG9hdCYgd2lkdGgsIGZsb2F0JiBo
ZWlnaHQpCkBAIC05MDgsNyArOTEwLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmZpbGwoY29uc3QgU3RyaW5nJiB3aW5kaW5nUnVsZVN0cmluZykKICAgICBHcmFwaGljc0NvbnRl
eHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwot
ICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCisgICAgaWYgKCFzdGF0ZSgpLm1faGFz
SW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgZ3JhZGll
bnQgc2l6ZSBpcyB6ZXJvLCB0aGVuIHBhaW50IG5vdGhpbmcuCkBAIC05NDgsNyArOTUwLDcgQEAg
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZSgpCiAgICAgR3JhcGhpY3NDb250
ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsK
LSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5tX2hh
c0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIGdyYWRp
ZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgpAQCAtOTc0LDcgKzk3Niw3IEBA
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGlwKGNvbnN0IFN0cmluZyYgd2luZGlu
Z1J1bGVTdHJpbmcpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsK
ICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRp
YmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFdpbmRSdWxlIG5ld1dpbmRSdWxlID0gUlVMRV9OT05aRVJPOwpA
QCAtOTk0LDcgKzk5Niw3IEBAIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjppc1BvaW50
SW5QYXRoKGNvbnN0IGZsb2F0IHgsIGNvbnN0IGZsb2F0IHksIGNvbnN0CiAgICAgR3JhcGhpY3ND
b250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3Rh
dGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIEZsb2F0UG9pbnQgcG9pbnQoeCwgeSk7CkBAIC0xMDE2LDcgKzEwMTgsNyBAQCBib29sIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNQb2ludEluU3Ryb2tlKGNvbnN0IGZsb2F0IHgsIGNv
bnN0IGZsb2F0IHkpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsK
ICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIXN0YXRlKCkubV9p
bnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0p
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEZsb2F0UG9pbnQgcG9pbnQoeCwgeSk7CkBA
IC0xMDM2LDcgKzEwMzgsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xlYXJS
ZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZQogICAgIEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0KQog
ICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFzdGF0ZSgpLm1faW52ZXJ0aWJsZUNUTSkKKyAgICBp
ZiAoIXN0YXRlKCkubV9oYXNJbnZlcnRpYmxlVHJhbnNmb3JtKQogICAgICAgICByZXR1cm47CiAg
ICAgRmxvYXRSZWN0IHJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiAKQEAgLTEwNzQsNyArMTA3
Niw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsUmVjdChmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0g
ZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAo
IXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5tX2hhc0ludmVydGli
bGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGZyb20gdGhlIEhUTUw1IENh
bnZhcyBzcGVjOgpAQCAtMTExMCw3ICsxMTEyLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OnN0cm9rZVJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGgK
ICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykK
ICAgICAgICAgcmV0dXJuOwotICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCisgICAg
aWYgKCFzdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICghKHN0YXRlKCkubV9saW5lV2lkdGggPj0gMCkpCiAgICAgICAgIHJldHVybjsKQEAg
LTEyOTgsNyArMTMwMCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1h
Z2UoSFRNTEltYWdlRWxlbWVudCogaW1hZ2UsIGNvbnN0IEZsb2F0UmVjCiAgICAgR3JhcGhpY3ND
b250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVy
bjsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUoKS5t
X2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAogICAgIENhY2hlZElt
YWdlKiBjYWNoZWRJbWFnZSA9IGltYWdlLT5jYWNoZWRJbWFnZSgpOwpAQCAtMTM2OSw3ICsxMzcx
LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJbWFnZShIVE1MQ2FudmFz
RWxlbWVudCogc291cmNlQ2FudmFzLCBjb25zdAogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFz
dGF0ZSgpLm1faW52ZXJ0aWJsZUNUTSkKKyAgICBpZiAoIXN0YXRlKCkubV9oYXNJbnZlcnRpYmxl
VHJhbnNmb3JtKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJv
dWdoIHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCkBAIC0xNDYwLDcg
KzE0NjIsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlKEhUTUxW
aWRlb0VsZW1lbnQqIHZpZGVvLCBjb25zdCBGbG9hdFJlYwogICAgIEdyYXBoaWNzQ29udGV4dCog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAg
aWYgKCFzdGF0ZSgpLm1faW52ZXJ0aWJsZUNUTSkKKyAgICBpZiAoIXN0YXRlKCkubV9oYXNJbnZl
cnRpYmxlVHJhbnNmb3JtKQogICAgICAgICByZXR1cm47CiAKICAgICBjaGVja09yaWdpbih2aWRl
byk7CkBAIC0xNzMzLDcgKzE3MzUsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHIsIHVuc2lnbmVkIG9wdGlvbnMpCiAgICAgR3JhcGhp
Y3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUo
KS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJM
RShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
QEAgLTIxNjIsNyArMjE2NCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3
VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgR3JhcGhp
Y3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQorICAgIGlmICghc3RhdGUo
KS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0
ZDo6aXNmaW5pdGUoeCkgfCAhc3RkOjppc2Zpbml0ZSh5KSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaAppbmRleCAzZmEyYTA0ZDgwMzZkMDVkN2FiZDA1YTc1YjRhZTI2MDAwN2UzODYyLi5lMTIy
ZjVlNDhhYjk4MjI3MmRmMTQxMzM0ZmI5Mzg4MGY0NTVkZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtNDgs
OSArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhbnZhc0dyYWRpZW50Owog
Y2xhc3MgQ2FudmFzUGF0dGVybjsKLSNpZiBFTkFCTEUoQ0FOVkFTX1BBVEgpCiBjbGFzcyBET01Q
YXRoOwotI2VuZGlmCiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBj
bGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKQEAgLTE0Myw2ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAg
UGFzc1JlZlB0cjxET01QYXRoPiBjdXJyZW50UGF0aCgpOwogICAgIHZvaWQgc2V0Q3VycmVudFBh
dGgoRE9NUGF0aCopOwogI2VuZGlmCisKICAgICB2b2lkIGZpbGwoY29uc3QgU3RyaW5nJiB3aW5k
aW5nID0gIm5vbnplcm8iKTsKICAgICB2b2lkIHN0cm9rZSgpOwogICAgIHZvaWQgY2xpcChjb25z
dCBTdHJpbmcmIHdpbmRpbmcgPSAibm9uemVybyIpOwpAQCAtMjUxLDcgKzI1MCw3IEBAIHByaXZh
dGU6CiAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1fZ2xvYmFsQ29tcG9zaXRlOwogICAgICAg
ICBCbGVuZE1vZGUgbV9nbG9iYWxCbGVuZDsKICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG1fdHJh
bnNmb3JtOwotICAgICAgICBib29sIG1faW52ZXJ0aWJsZUNUTTsKKyAgICAgICAgYm9vbCBtX2hh
c0ludmVydGlibGVUcmFuc2Zvcm07CiAgICAgICAgIFZlY3RvcjxmbG9hdD4gbV9saW5lRGFzaDsK
ICAgICAgICAgZmxvYXQgbV9saW5lRGFzaE9mZnNldDsKICAgICAgICAgYm9vbCBtX2ltYWdlU21v
b3RoaW5nRW5hYmxlZDsKQEAgLTMyOSw3ICszMjgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBpczJkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc0FjY2VsZXJhdGVkKCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wg
aXNUcmFuc2Zvcm1JbnZlcnRpYmxlKCkgY29uc3QgeyByZXR1cm4gc3RhdGUoKS5tX2ludmVydGli
bGVDVE07IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHN0YXRlKCkubV9oYXNJbnZlcnRpYmxlVHJhbnNmb3JtOyB9CiAK
ICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAmJiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9ET01Q
YXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9ET01QYXRoLmgKaW5kZXggMDEwZTQ1
ZDUxMWVhMmUzZTU0ZTVkNzEwZTZhYWJlZDA2ZjBhMjRiNC4uNjM1OGU0NjAyNWMwNDM1MWQ1YWRh
NWNjZDgzMzYxYWRjMDQzM2MwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvRE9NUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RPTVBhdGguaApA
QCAtMjksNDkgKzI5LDQyIEBACiAjZGVmaW5lIERPTVBhdGhfaAogCiAjaWYgRU5BQkxFKENBTlZB
U19QQVRIKQorCiAjaW5jbHVkZSAiQ2FudmFzUGF0aE1ldGhvZHMuaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKICNpZiBFTkFCTEUo
U1ZHKQogI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKICNlbmRpZgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBET01QYXRoIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NUGF0aD4s
IHB1YmxpYyBDYW52YXNQYXRoTWV0aG9kcyB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRE9N
UGF0aCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVBhdGg+IGNyZWF0ZSgpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBET01QYXRoKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERP
TVBhdGg+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGhEYXRhKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgRE9NUGF0aChwYXRoRGF0YSkpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NUGF0aD4g
Y3JlYXRlKERPTVBhdGgqIHBhdGgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01QYXRoKHBhdGgp
KTsgfQotCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NUGF0aD4gY3JlYXRlKGNvbnN0IFBhdGgm
IHBhdGgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01QYXRoKHBhdGgpKTsgfQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERPTVBhdGg+IGNyZWF0ZShjb25zdCBET01QYXRoKiBwYXRoKSB7IHJldHVy
biBjcmVhdGUocGF0aC0+cGF0aCgpKTsgfQogCi0gICAgY29uc3QgUGF0aCYgcGF0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGF0aDsgfQotCi0gICAgdmlydHVhbCB+RE9NUGF0aCgpIHsgfQotcHJpdmF0
ZToKLSAgICBET01QYXRoKCkgOiBDYW52YXNQYXRoTWV0aG9kcygpIHsgfQotICAgIERPTVBhdGgo
Y29uc3QgUGF0aCYgcGF0aCkKLSAgICAgICAgOiBDYW52YXNQYXRoTWV0aG9kcygpCi0gICAgewot
ICAgICAgICBtX3BhdGggPSBwYXRoOwotICAgIH0KLSAgICBET01QYXRoKERPTVBhdGgqIHBhdGgp
Ci0gICAgICAgIDogQ2FudmFzUGF0aE1ldGhvZHMoKQorI2lmIEVOQUJMRShTVkcpCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8RE9NUGF0aD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aERhdGEpCiAg
ICAgewotICAgICAgICBtX3BhdGggPSBwYXRoLT5wYXRoKCk7CisgICAgICAgIFBhdGggcGF0aDsK
KyAgICAgICAgYnVpbGRQYXRoRnJvbVN0cmluZyhwYXRoRGF0YSwgcGF0aCk7CisgICAgICAgIHJl
dHVybiBjcmVhdGUocGF0aCk7CiAgICAgfQotICAgIERPTVBhdGgoY29uc3QgU3RyaW5nJiBwYXRo
RGF0YSkKLSAgICAgICAgOiBDYW52YXNQYXRoTWV0aG9kcygpCi0gICAgewotI2lmIEVOQUJMRShT
VkcpCi0gICAgICAgIGJ1aWxkUGF0aEZyb21TdHJpbmcocGF0aERhdGEsIG1fcGF0aCk7Ci0jZWxz
ZQotICAgICAgICBVTlVTRURfUEFSQU0ocGF0aERhdGEpOwogI2VuZGlmCi0gICAgfQorCisgICAg
Y29uc3QgUGF0aCYgcGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQorCitwcml2YXRlOgor
ICAgIERPTVBhdGgoKSB7IH0KKyAgICBET01QYXRoKGNvbnN0IFBhdGgmIHBhdGgpIDogQ2FudmFz
UGF0aE1ldGhvZHMocGF0aCkgeyB9CiB9OworCiB9CisKICNlbmRpZgorCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhYjdhZDY5MGNh
ZjVmNjFhNTVhNzZkNmU2ZjBhYTQxYzI4NjBhOTRmLi5jMjVjNjgwZDdhYzc3ZmNiMjgwZmU3YmRj
ZGRhNGU4MGQzOWZmMzBjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTMtMDktMTMgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCisgICAgICAgIFVzZSBhIGJldHRlciBuYW1lIHRoYW4gbV9pbnZlcnRp
YmxlQ1RNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjEzNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNjcmlwdHMvZG8td2ViY29yZS1yZW5hbWU6IFVwZGF0ZWQgdG8gZG8gdGhpcyByZXBsYWNlIGFz
IHdlIGRvLgorCisyMDEzLTA5LTEzICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKwog
ICAgICAgICBSZW5hbWUgY29uZnVzaW5nbHkgbmFtZWQgInJ1bnRpbWVPYmplY3QiIGZ1bmN0aW9u
cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMzM5
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUgYi9Ub29scy9T
Y3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1lCmluZGV4IDM2ZjEzNThiMmQ3ZmYwM2QxYWVhYjUxZGI1
ZGQzNmNjN2I0MTk3ZmYuLjZiZGZkZGVhZjQ3OGU2NzRlMTc5OTM0MmUwODg5OTFmZWFhNGI3OTYg
MTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUKKysrIGIvVG9vbHMv
U2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZQpAQCAtOTYsMTAgKzk2LDggQEAgc3ViIHdhbnRlZAog
bXkgJGlzRE9NVHlwZVJlbmFtZSA9IDE7CiBteSAlcmVuYW1lcyA9ICgKICAgICAjIFJlbmFtZXMg
Z28gaGVyZSBpbiB0aGUgZm9ybSBvZjoKLSAgICAicnVudGltZU9iamVjdFByb3BlcnR5R2V0dGVy
IiA9PiAicGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyIiwKLSAgICAicnVudGltZU9iamVjdEN1
c3RvbUdldE93blByb3BlcnR5U2xvdCIgPT4gInBsdWdpbkVsZW1lbnRDdXN0b21HZXRPd25Qcm9w
ZXJ0eVNsb3QiLAotICAgICJydW50aW1lT2JqZWN0Q3VzdG9tUHV0IiA9PiAicGx1Z2luRWxlbWVu
dEN1c3RvbVB1dCIsCi0gICAgInJ1bnRpbWVPYmplY3RHZXRDYWxsRGF0YSIgPT4gInBsdWdpbkVs
ZW1lbnRHZXRDYWxsRGF0YSIsCisgICAgImlzVHJhbnNmb3JtSW52ZXJ0aWJsZSIgPT4gImhhc0lu
dmVydGlibGVUcmFuc2Zvcm0iLAorICAgICJtX2ludmVydGlibGVDVE0iID0+ICJtX2hhc0ludmVy
dGlibGVUcmFuc2Zvcm0iLAogKTsKIAogbXkgJXJlbmFtZXNDb250ZW1wbGF0ZWRGb3JUaGVGdXR1
cmUgPSAoCkBAIC0xMzksOSArMTM3LDYgQEAgbXkgJXJlbmFtZXNDb250ZW1wbGF0ZWRGb3JUaGVG
dXR1cmUgPSAoCiAgICAgIkxlZ2FjeVdlYkFyY2hpdmUiID0+ICJXZWJBcmNoaXZlIiwKICAgICAi
TGVnYWN5V2ViQXJjaGl2ZV9oIiA9PiAiV2ViQXJjaGl2ZV9oIiwKIAotICAgICJpc1RyYW5zZm9y
bUludmVydGlibGUiID0+ICJoYXNJbnZlcnRpYmxlVHJhbnNmb3JtIiwKLSAgICAibV9pbnZlcnRp
YmxlQ1RNIiA9PiAibV9oYXNJbnZlcnRpYmxlVHJhbnNmb3JtIiwKLQogICAgICJOYXRpdmVGdW5j
dGlvbldyYXBwZXJfaCIgPT4gIkpTSG9zdEZ1bmN0aW9uX2giLAogICAgICJOYXRpdmVGdW5jdGlv
bldyYXBwZXIiID0+ICJKU0hvc3RGdW5jdGlvbiIsCiAgICAgIm5hdGl2ZUZ1bmN0aW9uVGh1bmsi
ID0+ICJob3N0RnVuY3Rpb25UaHVuayIsCg==
</data>
<flag name="review"
          id="233741"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>