Description

The protein encoded by this gene is the fourth major glycoprotein of the platelet surface and serves as a receptor for thrombospondin in platelets and various cell lines. Since thrombospondins are widely distributed proteins involved in a variety of adhesive processes, this protein may have important functions as a cell adhesion molecule. It binds to collagen, thrombospondin, anionic phospholipids and oxidized LDL. It directly mediates cytoadherence of Plasmodium falciparum parasitized erythrocytes and it binds long chain fatty acids and may function in the transport and/or as a regulator of fatty acid transport. Mutations in this gene cause platelet glycoprotein deficiency. Multiple alternatively spliced transcript variants have been found for this gene. [provided by RefSeq, Feb 2014]

Isoforms

Stats on raw UMI counts:

id transcript_id biotype cds_length sum total_gene perc is_major is_top
CD36-201 ENST00000309881 protein_coding 1419 327 483 67.701863 TRUE TRUE
CD36-202 ENST00000394788 protein_coding 1419 130 483 26.915114 TRUE FALSE
CD36-214 ENST00000447544 protein_coding 1419 26 483 5.383023 FALSE FALSE

Cell-type expression:

Switches

1 switches found for CD36

geneId t1 c1 p1 log2fc1 t2 c2 p2 log2fc2
CD36 ENST00000309881 Mid cap C3 1.55e-23 -1.8 ENST00000394788 Lymphatic endo C3 5.25e-10 1.1
LS0tCnRpdGxlOiAiYHIgcGFyYW1zJGdlbmVgIGdlbmUgcmVwb3J0IgpwYXJhbXM6CiAgc2V1cmF0IDogImEiCiAgbWFya2VycyA6ICJiIiAKICBnZW5lIDogImMiIApvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogCiAgICBjc3M6IHN0eWxlLmNzcwogICAgY29kZV9mb2xkaW5nOiBub25lCiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICBjc3M6ICJzdHlsZS5jc3MiCiAgICBjb2RlX2ZvbGRpbmc6IG5vbmUKICAgIHRoZW1lOiBqb3VybmFsCiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiAzCiAgICB0b2NfZmxvYXQ6IHllcwogIHBkZl9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6ICczJwotLS0KCgoKCmBgYHtyIHNldHVwLCBlY2hvPUZBTFNFLCB3YXJuaW5ncz1GQUxTRX0KCgprbml0cjo6b3B0c19jaHVuayRzZXQoCgllY2hvID0gRkFMU0UsCgltZXNzYWdlID0gRkFMU0UsCgljYWNoZSA9IEZBTFNFLAoJY2FjaGUubGF6eSA9IEZBTFNFLAoJdGlkeSA9IFRSVUUKKQoKc2V1cmF0IDwtIHBhcmFtcyRzZXVyYXQKc2V0d2QoIi9kYXRhLzEweF9kYXRhLzEweF81cHNhbmdlci8iKQpzb3VyY2UoIi4vaXNvc3dpdGNoLzAwLmNvbW1vbi5pbXBvcnQuUiIpCnNvdXJjZSgiLi9pc29zd2l0Y2gvMDAudmlzdWFsLlIiKQpsaWJyYXJ5KHJlbnRyZXopCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkodGliYmxlKQpsaWJyYXJ5KGZvcmNhdHMpCmxpYnJhcnkoZ2d0cmFuc2NyaXB0KQoKbGlicmFyeShybWFya2Rvd24pCiNybWFya2Rvd246OnBhZ2VkX3RhYmxlKHBhcmFtcyRtYXJrZXJzKQpsaWJyYXJ5KGtuaXRyKQoja25pdHI6OmthYmxlKCkKYGBgCgoKIyMgRGVzY3JpcHRpb24KCmBgYHtyIGVjaG89RkFMU0V9CgppZighZXhpc3RzKCdnZW5lX21ldGFfZGYnKSkKICBnZW5lX21ldGFfZGYgPC0gcmVhZFJEUygiL2RhdGEvMTB4X2RhdGEvMTB4XzVwc2FuZ2VyL2lzb3N3aXRjaC9kYXRhL2FkdWx0X2dlbl9tZXRhZGF0YS5yZHMiKSAKCiMgcmV0cmlldmUgZ2VuZSBkZXNjcmlwdGlvbgpnZW5lX21ldGEgPC0gZ2VuZV9tZXRhX2RmICU+JQogIGZpbHRlcihleHRlcm5hbF9nZW5lX25hbWUgPT0gcGFyYW1zJGdlbmUpCgppZihucm93KGdlbmVfbWV0YSk9PTApIHsKICBkZXNjcmlwdGlvbiA8LSAiIgp9IGVsc2UgewogIGVudHJlel9pZCA8LSBnZW5lX21ldGEkZW50cmV6Z2VuZV9pZFtbMV1dCiAgCiAgaWYoaXMubmEoZW50cmV6X2lkKSkKICAgIGRlc2NyaXB0aW9uIDwtIGdlbmVfbWV0YSRkZXNjcmlwdGlvbltbMV1dCiAgZWxzZSB7CiAgICBlbnRyZXpfZGF0YSA8LSBlbnRyZXpfc3VtbWFyeShkYj0iZ2VuZSIsIGlkPWVudHJlel9pZCkKICAgIGRlc2NyaXB0aW9uIDwtIGVudHJlel9kYXRhJHN1bW1hcnkKICB9Cn0KCmBgYAoKYHIgZGVzY3JpcHRpb25gCgpgYGB7ciBlY2hvPUZBTFNFLCBmaWcud2lkdGg9NiwgZmlnLmhlaWdodD00fQpEZWZhdWx0QXNzYXkoc2V1cmF0KSA8LSAiUk5BIgpGZWF0dXJlUGxvdChzZXVyYXQsIGZlYXR1cmVzPXBhcmFtcyRnZW5lLCBsYWJlbD1UUlVFLCBsYWJlbC5zaXplPTIuNSwgcmVwZWw9VFJVRSwgcmFzdGVyPVRSVUUpCmBgYAoKCmBgYHtyIGluY2x1ZGU9RkFMU0V9IAoKIyB1Z2x5IHRlbXBvcmFyeSBoYWNrOyBleHBvcnQgdGhpcyBwcm9wZXJseSBmcm9tIGlzb3N3aXRjaAoKLl9yZXBvcnQubG9jdXMgPC0gZnVuY3Rpb24oZ3RmX2RmLCBnZW5lLCBtZXRhLCBsZWdlbmQ9VFJVRSl7CiAgIAogICAjIGdldCBleG9ucyBmb3IgdGhpcyBnZW5lIChvbmx5IHRyYW5zY3JpcHRzIHNob3duKQogICBleG9ucyA8LSBndGZfZGYgJT4lIAogICAgIGZpbHRlcihnZW5lX25hbWU9PWdlbmUsIAogICAgICAgICAgICB0cmFuc2NyaXB0X2lkICVpbiUgbWV0YSR0cmFuc2NyaXB0X2lkLAogICAgICAgICAgICB0eXBlPT0iZXhvbiIpICU+JQogICAgIGxlZnRfam9pbihtZXRhLCBieT0idHJhbnNjcmlwdF9pZCIpCiAgIAogICAjIGZvcmNlIGNvbG9yIG1hcHBpbmcgZm9yIGVhY2ggZmVhdHVyZQogICBtYW51YWxfY29sb3JzIDwtIGRlZnJhbWUoZHBseXI6OnNlbGVjdChtZXRhLCBleHRlcm5hbF90cmFuc2NyaXB0X25hbWUsIGNvbG9yKSkKICAgCiAgIHAxIDwtIGdncGxvdChleG9ucywgYWVzKHhzdGFydCA9IHN0YXJ0LCB4ZW5kID0gZW5kLCB5ID0gZmFjdG9yKGV4dGVybmFsX3RyYW5zY3JpcHRfbmFtZSwgbGV2ZWxzPW1ldGEkZXh0ZXJuYWxfdHJhbnNjcmlwdF9uYW1lKSkpICsKICAgICBnZW9tX3JhbmdlKGFlcyhmaWxsID0gZXh0ZXJuYWxfdHJhbnNjcmlwdF9uYW1lKSApICsKICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBtYW51YWxfY29sb3JzKSArIAogICAgIHNjYWxlX3lfZGlzY3JldGUobGltaXRzPXJldikgKwogICAgIGdlb21faW50cm9uKGRhdGEgPSB0b19pbnRyb24oZXhvbnMsICJ0cmFuc2NyaXB0X2lkIiksIGFlcyhzdHJhbmQgPSBzdHJhbmQpKSArCiAgICAgbGFicyh5PU5VTEwsIGZpbGw9IlRyYW5zY3JpcHQiKSArIAogICAgIHRoZW1lX21pbmltYWwoKSAKICAgCiAgIGlmKGxlZ2VuZCkKICAgICBwMSA8LSBwMSArICB0aGVtZShsZWdlbmQua2V5LmhlaWdodD0gdW5pdCgwLjE1LCAnY20nKSwKICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQua2V5LndpZHRoPSB1bml0KDAuNDAsICdjbScpKQogICBlbHNlCiAgICAgcDEgPC0gcDEgKyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCiAgIAogICByZXR1cm4ocDEpCn0KCgoKIC5faXNvc3dpdGNoX3JlcG9ydC5qdW5jdGlvbnMgPC0gZnVuY3Rpb24ob2JqLCBhc3NheSwgZ3RmX2RmLCBnZW5lLCBtZXRhKXsKICAgCiAgIGp1bmN0aW9uX2NvdW50cyA8LSBvYmpAYXNzYXlzW1thc3NheV1dQGNvdW50cwogICBpZHggPC0gZ3JlcChwYXN0ZSgiXiIsIGdlbmUsIlxcLiIsIHNlcD0iIiksIHJvd25hbWVzKGp1bmN0aW9uX2NvdW50cyksIHZhbHVlPVRSVUUpCiAgIGdlbmVfanVuY3Rpb25zIDwtIGp1bmN0aW9uX2NvdW50c1tpZHgsIF0KICAgCiAgICMgY2hyL3N0cmFuZCBsb29rdXAKICAgZ2VuZV9sb2NhdGlvbiA8LSBndGZfZGYgJT4lIAogICAgIGRwbHlyOjpzZWxlY3QoZ2VuZV9uYW1lLCBzZXFuYW1lcywgc3RyYW5kKSAlPiUKICAgICBmaWx0ZXIoZ2VuZV9uYW1lPT1nZW5lKSAlPiUgaGVhZCgxKSAgCiAgIAogICAjIGdldCBqdW5jdGlvbiBkYXRhIChzdGFydCwgZW5kLCBxdWFudGlmKSwga2VlcCBvbmx5IGpjdHMgb3ZlciAwLjEgVU1JL2NlbGwKICAgamN0X2RmIDwtIGRhdGEuZnJhbWUoanVuY3Rpb24gPSByb3duYW1lcyhnZW5lX2p1bmN0aW9ucykpICU+JQogICAgIHNlcGFyYXRlKGp1bmN0aW9uLCBpbnRvPWMoImdlbmVfaWQiLCJjb29yZHMiKSwgc2VwPSJcXC5cXC4iKSAlPiUKICAgICBzZXBhcmF0ZShjb29yZHMsIGludG89Yygic3RhcnQiLCJlbmQiKSwgc2VwPSItIiwgY29udmVydD1UUlVFKSAlPiUKICAgICBtdXRhdGUoYXZnID0gcm93U3VtcyhnZW5lX2p1bmN0aW9ucykvbmNvbChnZW5lX2p1bmN0aW9ucykpICU+JSAKICAgICBsZWZ0X2pvaW4oZ2VuZV9sb2NhdGlvbiwgYnk9YygiZ2VuZV9pZCI9ImdlbmVfbmFtZSIpKSAlPiUKICAgICBtdXRhdGUodHJhbnNjcmlwdF9pZCA9ICJBTExfRVhPTlMiKSU+JQogICAgIGZpbHRlcihhdmcgPj0gMC4xKQogICAKICAgIyBjb2xsYXBzZSBleG9ucyBmb3IgdGhpcyBnZW5lIChvbmx5IHRyYW5zY3JpcHRzIHNob3duKSBpbnRvIGEgZmFrZSBzaW5nbGUgaWQKICAgZXhvbnMgPC0gZ3RmX2RmICU+JQogICAgIGZpbHRlcihnZW5lX25hbWU9PWdlbmUsIAogICAgICAgICAgICB0eXBlPT0iZXhvbiIsIAogICAgICAgICAgICB0cmFuc2NyaXB0X2lkICVpbiUgbWV0YSR0cmFuc2NyaXB0X2lkKSAlPiUKICAgICBtdXRhdGUodHJhbnNjcmlwdF9pZCA9ICJBTExfRVhPTlMiKQogICAKICAgZ2dwbG90KGV4b25zLCBhZXMoeHN0YXJ0ID0gc3RhcnQsIHhlbmQgPSBlbmQsIHkgPSB0cmFuc2NyaXB0X2lkKSkgKwogICAgIGdlb21fcmFuZ2UoKSArCiAgICAgZ2VvbV9pbnRyb24oZGF0YSA9IHRvX2ludHJvbihleG9ucywgInRyYW5zY3JpcHRfbmFtZSIpLCBhZXMoc3RyYW5kID0gc3RyYW5kKSkgKwogICAgIGdlb21fanVuY3Rpb24oZGF0YSA9IGpjdF9kZiwganVuY3Rpb24ueS5tYXggPSAwLjU1KSArCiAgICAgZ2VvbV9qdW5jdGlvbl9sYWJlbF9yZXBlbChkYXRhID0gamN0X2RmLCBhZXMobGFiZWwgPSByb3VuZChhdmcsIDEpKSwgZm9yY2U9MywganVuY3Rpb24ueS5tYXggPSAxLCBsYWJlbC5zaXplPTAuMTIsIHNpemU9Mi40KSArCiAgICAgdGhlbWVfbWluaW1hbCgpICsgCiAgICAgbGFicyh5PU5VTEwpCiB9CgogLl9yZXBvcnQudW1pX2NvdW50cyA8LSBmdW5jdGlvbihvYmosIGdlbmUsIG1ldGEsIGxlZ2VuZD1GQUxTRSkgeyAKICAgCiAgICMgZ2V0IGNlbGx0eXBlX2ZlYXR1cmVzIGRhdGEgZm9yIGVhY2ggY2VsbCB0eXBlCiAgIGRmIDwtIG1hcF9kZihsZXZlbHMob2JqQGFjdGl2ZS5pZGVudCksIAogICAgICAgICAgICAgICAgY2VsbHR5cGVfZmVhdHVyZXMsIG9iaj1vYmosIGNvdW50X21hdHJpeD1vYmpAYXNzYXlzJG11bHRpQGNvdW50cywgZmVhdHVyZXM9bWV0YSRmZWF0dXJlKQogICAKICAgIyBzb3J0IGNlbGwgdHlwZXMgYnkgZXhwcmVzaW9uIG9mIG1ham9yIGlzb2Zvcm0gLSByZXVzZSBzb3J0aW5nIGluIG1ldGEKICAgY2VsbHR5cGVfb3JkZXIgPC0gZmlsdGVyKGRmLCB0cmFuc2NyaXB0X2lkID09IG1ldGEkdHJhbnNjcmlwdF9pZFtbMV1dKSAlPiUgCiAgICAgYXJyYW5nZShhdmcpICU+JSAKICAgICBwdWxsKGNlbGxfdHlwZSkgCiAgIAogICAjIHJlbGV2ZWwgZmFjdG9ycywgaXNvZm9ybXMgYnkgYXZlcmFnZSB0b3RhbCBVTUkgc3VtCiAgIGRmIDwtIG11dGF0ZShkZiwgCiAgICAgICAgICAgICAgICB0cmFuc2NyaXB0X2lkID0gZm9yY2F0czo6ZmN0X3Jlb3JkZXIodHJhbnNjcmlwdF9pZCwgYXMubnVtZXJpYyhhdmcpLCAuZnVuID0gbWVhbiksCiAgICAgICAgICAgICAgICBjZWxsX3R5cGUgPSBmY3RfcmVsZXZlbChjZWxsX3R5cGUsIGxldmVscyA9IGNlbGx0eXBlX29yZGVyKSkgCiAgIAogICAjIGZvcmNlIGNvbG9yIG1hcHBpbmcgZm9yIGVhY2ggZmVhdHVyZQogICBjb2xvcl9tYXBwaW5nIDwtIGRwbHlyOjpzZWxlY3QobWV0YSwgdHJhbnNjcmlwdF9pZCwgY29sb3IpICU+JSBkZWZyYW1lKCkKICAgCiAgIHAxPC0gZ2dwbG90KGRmLCBhZXMoeT1jZWxsX3R5cGUsIHg9YXZnLCBmaWxsPXRyYW5zY3JpcHRfaWQpKSArCiAgICAgZ2VvbV9iYXIocG9zaXRpb249InN0YWNrIiwgc3RhdD0iaWRlbnRpdHkiKSArCiAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY29sb3JfbWFwcGluZywgbGFiZWxzPW1ldGEkZXh0ZXJuYWxfdHJhbnNjcmlwdF9uYW1lKSArIAogICAgIHRoZW1lX21pbmltYWwoKSArCiAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGU9NDUsIGhqdXN0PTEsIHNpemU9NyksCiAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZT03KSwKICAgICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZT03KSkgKyAKICAgICBndWlkZXMoZmlsbCA9IGd1aWRlX2xlZ2VuZChucm93ID0gMSwgcmV2ZXJzZSA9IFRSVUUpKSArCiAgICAgbGFicyh4PSJBdmcgVU1JIHBlciBjZWxsIiwgeT1OVUxMLCBmaWxsPSIiKSArIAogICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCiAgIHJldHVybihwMSkKfQoKIAouX3JlcG9ydC5kb3Rwb3QgPC0gZnVuY3Rpb24ob2JqLCBvYmpfYXNzYXksIG1ldGEsIGNlbGx0eXBlX29yZGVyPU5VTEwsIHN3aXRjaD1OVUxMKSB7CgogICBub3JtYWxfZGF0YSA8LSBvYmpAYXNzYXlzW1tvYmpfYXNzYXldXUBkYXRhCiAgIHNjYWxlZF9kYXRhIDwtIG9iakBhc3NheXNbW29ial9hc3NheV1dQHNjYWxlLmRhdGEKCiAgIGRmIDwtIGRhdGEuZnJhbWUoKQogICBmb3IoY2VsbF90eXBlIGluIGxldmVscyhvYmpAYWN0aXZlLmlkZW50KSkgewoKCiAgICAgY2VsbF9saXN0IDwtIFdoaWNoQ2VsbHMob2JqLCBpZGVudCA9IGNlbGxfdHlwZSkKICAgICBuX2NlbGxzID0gbGVuZ3RoKGNlbGxfbGlzdCkKICAgICBpc29mcyA8LSBtZXRhJGZlYXR1cmUKCiAgICAgbm9ybWFsX2NvdW50cyA8LSBub3JtYWxfZGF0YVtpc29mcywgY2VsbF9saXN0LCBkcm9wPUZBTFNFXQoKICAgICBjZWxsX2RmIDwtIGRhdGEuZnJhbWUoZmVhdHVyZSA9IHJvd25hbWVzKG5vcm1hbF9jb3VudHMpKSAlPiUKICAgICAgIHNlcGFyYXRlKGZlYXR1cmUsIGludG89YygiZ2VuZV9pZCIsICJ0cmFuc2NyaXB0X2lkIiksIHNlcD0iXFwuXFwuIiwgcmVtb3ZlPUZBTFNFKSAlPiUKICAgICAgIG11dGF0ZShhdmdfc2NhbGVkX3ZhbHVlID0gcm93U3VtcyhzY2FsZWRfZGF0YVtpc29mcywgY2VsbF9saXN0LCBkcm9wPUZBTFNFXSkgLyBuX2NlbGxzLAogICAgICAgICAgICAgIGNlbGxfZXhwciAgPSByb3dTdW1zKG5vcm1hbF9jb3VudHMgPiAwKSwKICAgICAgICAgICAgICBjZWxsX2NvdW50ID0gbl9jZWxscywKICAgICAgICAgICAgICB0eXBlID0gY2VsbF90eXBlKQoKICAgICBkZiA8LSByYmluZChkZiwgY2VsbF9kZikKICAgfQoKICAgIyBBcHBseSBzYW1lIGxvZ2ljIG9uIHdoaWNoIGNlbGxfdHlwZXMgdG8gc2hvdyBhcyAuX2lzb3N3aXRjaF9yZXBvcnQudW1pX2NvdW50cwogICAjIC0+IGNlbGxfdHlwZXMgd2l0aCBOTyBjb3VudHMgYXJlIHJlbW92ZWQKICAgIyAtPiBGb3IgY3RzIHdpdGggY291bnRzIDwgMSUsIGtlZXAgdGhlbSBidXQgc2V0IHRvIDAgdG8gYXZvaWQgZHJhd2luZyBkb3Qgb24gZG90cGxvdAogICBkMiA8LSBkZiAlPiUKICAgICBmaWx0ZXIoY2VsbF9leHByID4gMCApICU+JQogICAgIG11dGF0ZShwZXJjX2V4cHIgPSAoY2VsbF9leHByL2NlbGxfY291bnQpKjEwMCkgJT4lCiAgICAgbXV0YXRlKHBlcmNfZXhwciA9IGlmX2Vsc2UocGVyY19leHByIDwgMSwgMCwgcGVyY19leHByKSkgJT4lCiAgICAgbGVmdF9qb2luKG1ldGEsIGJ5PSJ0cmFuc2NyaXB0X2lkIikKCiAgICMgbGltaXRzIGZvciB0aGUgZXhwcmVzc2lvbiBzY2FsZSwgZW5zdXJlcyBpdCdzIHN5bW1ldHJpYyBhcm91bmQgemVybwogICB0b3BfdmFsdWUgPC0gbWF4KGFicyhkZiRhdmdfc2NhbGVkX3ZhbHVlKSkKCiAgICMgbWFpbiBkb3RwbG90IGZpZ3VyZQogICBwMiA8LSBnZ3Bsb3QoZDIsCiAgICAgICAgICAgICAgICBhZXMoeD1mYWN0b3IoZXh0ZXJuYWxfdHJhbnNjcmlwdF9uYW1lLCBsZXZlbHM9bWV0YSRleHRlcm5hbF90cmFuc2NyaXB0X25hbWUpLAogICAgICAgICAgICAgICAgICAgIHk9ZmFjdG9yKHR5cGUsIGxldmVscz1jZWxsdHlwZV9vcmRlciksCiAgICAgICAgICAgICAgICAgICAgZmlsbCA9IGF2Z19zY2FsZWRfdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IHBlcmNfZXhwcikpICsKICAgICBnZW9tX3BvaW50KHNoYXBlPTIxLCBjb2xvcj0iIzMzMzMzMyIpICsKICAgICBzY2FsZV9maWxsX2Rpc3RpbGxlcihwYWxldHRlPSJSZEJ1IiwgbGltaXRzPWMoLXRvcF92YWx1ZSwgdG9wX3ZhbHVlKSkgKwogICAgIHRoZW1lX21pbmltYWwoKSArCiAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGU9MCwgaGp1c3Q9MC41LCBzaXplPTgpLAogICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemU9OCksCiAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemU9OSksCiAgICAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgICBwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgICAgIGF4aXMubGluZSA9IGVsZW1lbnRfYmxhbmsoKSkgKwogICAgIGxhYnMoeD1OVUxMLCB5PU5VTEwsIGZpbGw9IkV4cHJlc3Npb24iLCBzaXplPSIlIGNlbGxzIikKCiAgIHJldHVybihwMikKIH0KCmBgYAoKIyBJc29mb3JtcwpgYGB7ciBlY2hvPUZBTFNFLCBmaWcud2lkdGg9MTAsIGZpZy5oZWlnaHQ9MX0gCiBEZWZhdWx0QXNzYXkoc2V1cmF0KSA8LSAibXVsdGkiCiBub3JtYWxfZGF0YSA8LSBzZXVyYXRAYXNzYXlzJG11bHRpQGRhdGEKIHNjYWxlZF9kYXRhIDwtIHNldXJhdEBhc3NheXMkbXVsdGlAc2NhbGUuZGF0YQogCiAjIGV4dHJhY3QgaXNvZm9ybXMgZm9yIHRoaXMgZ2VuZSBmcm9tIG1hdHJpeCBjb3VudCwgb3JkZXIgYnkgZXhwcmVzc2lvbgogaXNvZnMgPC0gZ3JlcChwYXN0ZSgiXiIsIHBhcmFtcyRnZW5lLCJcXC4iLCBzZXA9IiIpLCByb3duYW1lcyhub3JtYWxfZGF0YSksIHZhbHVlPVRSVUUpICAKIG9yZGVyZWRfaXNvZnMgPC0gZGF0YS5mcmFtZShpc29mcyA9IGlzb2ZzLCBleHByID0gcm93U3Vtcyhub3JtYWxfZGF0YVtpc29mcywgXSkpICU+JQogICBhcnJhbmdlKGRlc2MoZXhwcikpICU+JQogICBwdWxsKGlzb2ZzKQogCiAjIGN1c3RvbSBzY2FsZSwgYnJld2VyLnBhbChuPTEwLCBuYW1lPSJTZXQzIikgcmVvcmRlcmVkCiBjdXN0b21fY29sb3JzID0gYygiI0ZCODA3MiIsIiM4MEIxRDMiLCIjOEREM0M3IiwiI0ZGRkZCMyIsIiNCRUJBREEiLAogICAgICAgICAgICAgICAgICAgIiNGREI0NjIiLCIjQjNERTY5IiwiI0ZDQ0RFNSIsIiNEOUQ5RDkiLCIjQkM4MEJEIikKICAgCiAjIGJ1aWxkIGZlYXR1cmUgbWV0YWRhdGEgKGZlYXR1cmUgPT4gc2hvcnRfbmFtZSwgY29sb3IsIG9yZGVyKSBzaGFyZWQgYnkgYWxsIHBhbmVscyAKIG1ldGEgPC0gZGF0YS5mcmFtZSggZmVhdHVyZSA9IG9yZGVyZWRfaXNvZnMgKSAlPiUKICAgc2VwYXJhdGUoZmVhdHVyZSwgaW50bz1jKCJnZW5lX2lkIiwgInRyYW5zY3JpcHRfaWQiKSwgc2VwPSJcXC5cXC4iLCByZW1vdmU9RkFMU0UpICU+JQogICBsZWZ0X2pvaW4odHJhbnNjcmlwdF9tZXRhZGF0YSwgYnk9YygidHJhbnNjcmlwdF9pZCI9ImVuc2VtYmxfdHJhbnNjcmlwdF9pZCIpKSAlPiUKICAgbXV0YXRlKGNvbG9yID0gY3VzdG9tX2NvbG9yc1sxOmxlbmd0aChpc29mcyldKQogCiAKIGxvY19wbG90IDwtIC5fcmVwb3J0LmxvY3VzKGd0Zl9kZiwgcGFyYW1zJGdlbmUsIG1ldGEpCiBwcmludChsb2NfcGxvdCkKYGBgCgojIyMgU3RhdHMgb24gcmF3IFVNSSBjb3VudHM6CmBgYHtyIGZpZy53aWR0aD0xMCwgZmlnLmhlaWdodD0xfQpzdGF0cyA8LSBpc29fY29tcHV0ZV9zdGF0cyhzZXVyYXRAYXNzYXlzJG11bHRpQGNvdW50cykgJT4lCiAgZmlsdGVyKGdlbmVfaWQgPT0gcGFyYW1zJGdlbmUpICU+JQogIGRwbHlyOjpzZWxlY3QoLWMoZ2VuZV9pZCwgZmVhdHVyZSxtYXhfc3VtLCBuX2lzb2ZzKSkgJT4lCiAgbGVmdF9qb2luKGRwbHlyOjpzZWxlY3QobWV0YSwgdHJhbnNjcmlwdF9pZCwgZXh0ZXJuYWxfdHJhbnNjcmlwdF9uYW1lLCB0cmFuc2NyaXB0X2Jpb3R5cGUsIGNkc19sZW5ndGgpLCBieT0idHJhbnNjcmlwdF9pZCIpICU+JQogIHJlbmFtZShpZCA9IGV4dGVybmFsX3RyYW5zY3JpcHRfbmFtZSkgJT4lCiAgcmVuYW1lKGJpb3R5cGUgPSB0cmFuc2NyaXB0X2Jpb3R5cGUpICU+JQogIHJlbG9jYXRlKGMoYmlvdHlwZSxjZHNfbGVuZ3RoKSwgLmFmdGVyPXRyYW5zY3JpcHRfaWQpICU+JQogIHJlbG9jYXRlKGlkKQoKa25pdHI6OmthYmxlKHN0YXRzKQogICAgICAgICAgICAgICAgICAgICAgICAgCmBgYAoKIyMjIENlbGwtdHlwZSBleHByZXNzaW9uOgpgYGB7ciBmaWcuaGVpZ2h0PTMuNSwgZmlnLndpZHRoPTEyLCB3YXJuaW5nPUZBTFNFfQp1bWlfcGxvdCA8LSAuX3JlcG9ydC51bWlfY291bnRzKHNldXJhdCwgcGFyYW1zJGdlbmUsIG1ldGEpCmRvdF9wbG90IDwtIC5fcmVwb3J0LmRvdHBvdChzZXVyYXQsICJtdWx0aSIsIG1ldGEsIGNlbGx0eXBlX29yZGVyPWxldmVscyh1bWlfcGxvdCRkYXRhJGNlbGxfdHlwZSkpCnByaW50KHVtaV9wbG90IHwgZG90X3Bsb3QpCmBgYAoKCmBgYHtyIGZpZy53aWR0aD0xMiwgZmlnLmhlaWdodD00fQpEZWZhdWx0QXNzYXkoc2V1cmF0KSA8LSAibXVsdGkiCnByaW50KEZlYXR1cmVQbG90KHNldXJhdCwgZmVhdHVyZXMgPSBtZXRhJGZlYXR1cmUsIG5jb2w9NCwgcmFzdGVyPVRSVUUpKQpgYGAKCgojIFN3aXRjaGVzCiAgIApgYGB7ciB9CmdlbmVfc3dpdGNoZXMgPC0gY29tcHV0ZV9zd2l0Y2hlcyhwYXJhbXMkbWFya2VycywgZ2VuZT1wYXJhbXMkZ2VuZSkKYGBgCgpgciBucm93KGdlbmVfc3dpdGNoZXMpYCBzd2l0Y2hlcyBmb3VuZCBmb3IgYHIgcGFyYW1zJGdlbmVgCmBgYHtyfQprbml0cjo6a2FibGUoZm9ybWF0X3N3aXRjaF90YWJsZShnZW5lX3N3aXRjaGVzKSkKYGBgCgo=