<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>生信菜鸟团 &#187; 直播我的个人基因组</title>
	<atom:link href="http://www.bio-info-trainee.com/category/%e7%9b%b4%e6%92%ad%e6%88%91%e7%9a%84%e4%b8%aa%e4%ba%ba%e5%9f%ba%e5%9b%a0%e7%bb%84/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bio-info-trainee.com</link>
	<description>欢迎去论坛biotrainee.com留言参与讨论，或者关注同名微信公众号biotrainee</description>
	<lastBuildDate>Sat, 28 Jun 2025 14:30:13 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.33</generator>
	<item>
		<title>测序深度和GC含量的问题</title>
		<link>http://www.bio-info-trainee.com/2780.html</link>
		<comments>http://www.bio-info-trainee.com/2780.html#comments</comments>
		<pubDate>Fri, 27 Oct 2017 07:25:29 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2780</guid>
		<description><![CDATA[在前面我们提到了用ChIP-seq的分析方法可视化了一下我的WGS数据，结果我们 &#8230; <a href="http://www.bio-info-trainee.com/2780.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div>在前面我们提到了用ChIP-seq的分析方法可视化了一下我的WGS数据，结果我们的测序深度分布居然是跟基因组的genomic feature相关的~~~</div>
<p><span id="more-2780"></span></p>
<div>比如在TSS附近，就很明显看到了一个测序深度峰值，那么前面我们并没有给出直接的解答，而且简单的提了一下这是二代测序的特点，GC含量片段偏好性！</div>
<div>作为一个合格的生物信息学工程师，我当然要把这个理论用自己的代码和数据来亲身实践一遍~</div>
<div>我首先把全基因组的bam文件用mpileup模式输出，根据1000bp的窗口滑动来统计每个窗口的测到的碱基数，GC碱基数，测序总深度！</div>
<div>代码比较复杂，一般人可能理解不来的！</div>
<div>samtools mpileup -f ~/reference/genome/human_g1k_v37/human_g1k_v37.fasta ../P_jmzeng.final.bam|head -1000000 |perl -alne '{$pos=int($F[1]/1000); $key="$F[0]\t$pos";$GC{$key}++ if $F[2]=~/[GC]/;$counts_sum{$key}+=$F[3];$number{$key}++;}END{print "$_\t$number{$_}\t$GC{$_}\t$counts_sum{$_}" foreach sort{$a&lt;=&gt;$b} keys %number}'</div>
<div>而且我代码写的不好，跑10万行需要 4s，跑一百万行需要36s，我估计把这8.9亿行的bam运行完，怎么着也得15个小时。不过不要紧，我们就拿前面的百万行数据做一个测试就好了。</div>
<div>结果如下：</div>
<div></div>
<div>前面两行是窗口的坐标，第几号染色体的第几个窗口，后面3行是数据，分别是每个窗口的测到的碱基数，GC碱基数，测序总深度！</div>
<div>上面的文件就可以导入到R里面进行可视化啦！</div>
<div></div>
<div>PS:这个线性回归图不会看到，自己去搜索哈！(或者去我们生信技能树论坛：<a href="http://www.biotrainee.com/thread-695-1-1.html">http://www.biotrainee.com/thread-695-1-1.html</a> 复制链接到浏览器打开，或者点击阅读原文咯！)</div>
<div>我觉得我这次画的图还不错，很明显能看到这个趋势，GC含量比较高的窗口，有着相应比较高的测序深度！</div>
<div>完美的证明成功啦~</div>
<div>给自己一百个赞，虽然我没有对全基因组数据做验证，但是基因组差异没那么大，我也随机抽样了几次，发现都有这个趋势。</div>
<div><a href="http://www.bio-info-trainee.com/wp-content/uploads/2017/10/GC-content-depth.png"><img class="alignnone size-full wp-image-2781" src="http://www.bio-info-trainee.com/wp-content/uploads/2017/10/GC-content-depth.png" alt="gc-content-depth" width="652" height="537" /></a></div>
<div></div>
<div>我的R代码如下：</div>
<div>a=read.table('../tmp.txt')</div>
<div>a$GC = a[,4]/a[,3]</div>
<div>a$depth = a[,5]/a[,3]</div>
<div>a = a[a$depth&lt;100,]</div>
<div>plot(a$GC,a$depth)</div>
<div>library(ggplot2)</div>
<div># GET EQUATION AND R-SQUARED AS STRING</div>
<div># SOURCE: http://goo.gl/K4yh</div>
<div>lm_eqn &lt;- function(x,y){</div>
<div>m &lt;- lm(y ~ x);</div>
<div>eq &lt;- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2,</div>
<div>list(a = format(coef(m)[1], digits = 2),</div>
<div>b = format(coef(m)[2], digits = 2),</div>
<div>r2 = format(summary(m)$r.squared, digits = 3)))</div>
<div>as.character(as.expression(eq));</div>
<div>}</div>
<div>p=ggplot(a,aes(GC,depth)) + geom_point() +</div>
<div>geom_smooth(method='lm',formula=y~x)+</div>
<div>geom_text(x = 0.5, y = 100, label = lm_eqn(a$GC , a$depth), parse = TRUE)</div>
<div>p=p+theme_set(theme_set(theme_bw(base_size=20)))</div>
<div>p=p+theme(text=element_text(face='bold'),</div>
<div>axis.text.x=element_text(angle=30,hjust=1,size =15),</div>
<div>plot.title = element_text(hjust = 0.5) ,</div>
<div>panel.grid = element_blank(),</div>
<div>#panel.border = element_blank()</div>
<div>)</div>
<div>print(p)</div>
<div></div>
<div></div>
<div></div>
<div>画图参考：<a href="http://stackoverflow.com/questions/7549694/ggplot2-adding-regression-line-equation-and-r2-on-graph">http://stackoverflow.com/questions/7549694/ggplot2-adding-regression-line-equation-and-r2-on-graph</a></div>
<p><!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImxpbmUtaGVpZ2h0IjoxLjg3NSwiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MH0sImJsb2NrSWQiOiI2Mmx3aW4xNDg0ODA5NDkyMDk2IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6IuWcqCJ9LHsiY2hhciI6IuWJjSJ9LHsiY2hhciI6IumdoiJ9LHsiY2hhciI6IuaIkSJ9LHsiY2hhciI6IuS7rCJ9LHsiY2hhciI6IuaPkCJ9LHsiY2hhciI6IuWIsCJ9LHsiY2hhciI6IuS6hiJ9LHsiY2hhciI6IueUqCJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoiSSJ9LHsiY2hhciI6IlAifSx7ImNoYXIiOiItIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJxIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5YiGIn0seyJjaGFyIjoi5p6QIn0seyJjaGFyIjoi5pa5In0seyJjaGFyIjoi5rOVIn0seyJjaGFyIjoi5Y+vIn0seyJjaGFyIjoi6KeGIn0seyJjaGFyIjoi5YyWIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5LiLIn0seyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoiVyJ9LHsiY2hhciI6IkcifSx7ImNoYXIiOiJTIn0seyJjaGFyIjoi5pWwIn0seyJjaGFyIjoi5o2uIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi57uTIn0seyJjaGFyIjoi5p6cIn0seyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi5LusIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5rWLIn0seyJjaGFyIjoi5bqPIn0seyJjaGFyIjoi5rexIn0seyJjaGFyIjoi5bqmIn0seyJjaGFyIjoi5YiGIn0seyJjaGFyIjoi5biDIn0seyJjaGFyIjoi5bGFIn0seyJjaGFyIjoi54S2In0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi6LefIn0seyJjaGFyIjoi5Z+6In0seyJjaGFyIjoi5ZugIn0seyJjaGFyIjoi57uEIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoiZyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoiYyJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJmIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoidSJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoi55u4In0seyJjaGFyIjoi5YWzIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoifiJ9LHsiY2hhciI6In4ifSx7ImNoYXIiOiJ+In1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjMzaHVucDE0ODQ4MDk1NzAzOTEiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoi5q+UIn0seyJjaGFyIjoi5aaCIn0seyJjaGFyIjoi5ZyoIn0seyJjaGFyIjoiVCJ9LHsiY2hhciI6IlMifSx7ImNoYXIiOiJTIn0seyJjaGFyIjoi6ZmEIn0seyJjaGFyIjoi6L+RIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5bCxIn0seyJjaGFyIjoi5b6IIn0seyJjaGFyIjoi5piOIn0seyJjaGFyIjoi5pi+In0seyJjaGFyIjoi55yLIn0seyJjaGFyIjoi5YiwIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi5rWLIn0seyJjaGFyIjoi5bqPIn0seyJjaGFyIjoi5rexIn0seyJjaGFyIjoi5bqmIn0seyJjaGFyIjoi5bOwIn0seyJjaGFyIjoi5YC8In0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi6YKjIn0seyJjaGFyIjoi5LmIIn0seyJjaGFyIjoi5YmNIn0seyJjaGFyIjoi6Z2iIn0seyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi5LusIn0seyJjaGFyIjoi5bm2In0seyJjaGFyIjoi5rKhIn0seyJjaGFyIjoi5pyJIn0seyJjaGFyIjoi57uZIn0seyJjaGFyIjoi5Ye6In0seyJjaGFyIjoi55u0In0seyJjaGFyIjoi5o6lIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi6KejIn0seyJjaGFyIjoi562UIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi6ICMIn0seyJjaGFyIjoi5LiUIn0seyJjaGFyIjoi566AIn0seyJjaGFyIjoi5Y2VIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5o+QIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5LiLIn0seyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5LqMIn0seyJjaGFyIjoi5LujIn0seyJjaGFyIjoi5rWLIn0seyJjaGFyIjoi5bqPIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi54m5In0seyJjaGFyIjoi54K5In0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoiRyJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiLlkKsifSx7ImNoYXIiOiLph48ifSx7ImNoYXIiOiLniYcifSx7ImNoYXIiOiLmrrUifSx7ImNoYXIiOiLlgY8ifSx7ImNoYXIiOiLlpb0ifSx7ImNoYXIiOiLmgKcifSx7ImNoYXIiOiLvvIEifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJsaW5lLWhlaWdodCI6MS44NzUsImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiOTV5bWFzMTQ4NDgwOTYyMDM4MiIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiLkvZwifSx7ImNoYXIiOiLkuLoifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLlkIgifSx7ImNoYXIiOiLmoLwifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLnlJ8ifSx7ImNoYXIiOiLniakifSx7ImNoYXIiOiLkv6EifSx7ImNoYXIiOiLmga8ifSx7ImNoYXIiOiLlraYifSx7ImNoYXIiOiLlt6UifSx7ImNoYXIiOiLnqIsifSx7ImNoYXIiOiLluIgifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmiJEifSx7ImNoYXIiOiLlvZMifSx7ImNoYXIiOiLnhLYifSx7ImNoYXIiOiLopoEifSx7ImNoYXIiOiLmiooifSx7ImNoYXIiOiLov5kifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLnkIYifSx7ImNoYXIiOiLorroifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLoh6oifSx7ImNoYXIiOiLlt7EifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLku6MifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLlkowifSx7ImNoYXIiOiLmlbAifSx7ImNoYXIiOiLmja4ifSx7ImNoYXIiOiLmnaUifSx7ImNoYXIiOiLkurIifSx7ImNoYXIiOiLouqsifSx7ImNoYXIiOiLlrp4ifSx7ImNoYXIiOiLot7UifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLpgY0ifSx7ImNoYXIiOiJ+In1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjEwbW56aTE0ODQ4MDk4NTU3MzMiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi6aaWIn0seyJjaGFyIjoi5YWIIn0seyJjaGFyIjoi5oqKIn0seyJjaGFyIjoi5YWoIn0seyJjaGFyIjoi5Z+6In0seyJjaGFyIjoi5ZugIn0seyJjaGFyIjoi57uEIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoiYiJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoi5paHIn0seyJjaGFyIjoi5Lu2In0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoicCJ9LHsiY2hhciI6IuaooSJ9LHsiY2hhciI6IuW8jyJ9LHsiY2hhciI6Iui+kyJ9LHsiY2hhciI6IuWHuiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuaguSJ9LHsiY2hhciI6IuaNriJ9LHsiY2hhciI6IjEifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoiMCJ9LHsiY2hhciI6IjAifSx7ImNoYXIiOiJiIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IueqlyJ9LHsiY2hhciI6IuWPoyJ9LHsiY2hhciI6Iua7kSJ9LHsiY2hhciI6IuWKqCJ9LHsiY2hhciI6IuadpSJ9LHsiY2hhciI6Iue7nyJ9LHsiY2hhciI6IuiuoSJ9LHsiY2hhciI6IuavjyJ9LHsiY2hhciI6IuS4qiJ9LHsiY2hhciI6IueqlyJ9LHsiY2hhciI6IuWPoyJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6Iua1iyJ9LHsiY2hhciI6IuWIsCJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IueisSJ9LHsiY2hhciI6IuWfuiJ9LHsiY2hhciI6IuaVsCJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IkcifSx7ImNoYXIiOiJDIn0seyJjaGFyIjoi56KxIn0seyJjaGFyIjoi5Z+6In0seyJjaGFyIjoi5pWwIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5rWLIn0seyJjaGFyIjoi5bqPIn0seyJjaGFyIjoi5oC7In0seyJjaGFyIjoi5rexIn0seyJjaGFyIjoi5bqmIn0seyJjaGFyIjoi77yBIn1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjY5amZsbTE0ODQ4MDk5MjI2NjEiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoi5LujIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi5q+UIn0seyJjaGFyIjoi6L6DIn0seyJjaGFyIjoi5aSNIn0seyJjaGFyIjoi5p2CIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi6IisIn0seyJjaGFyIjoi5Lq6In0seyJjaGFyIjoi5Y+vIn0seyJjaGFyIjoi6IO9In0seyJjaGFyIjoi55CGIn0seyJjaGFyIjoi6KejIn0seyJjaGFyIjoi5LiNIn0seyJjaGFyIjoi5p2lIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi77yBIn1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjQ5ZGRsajE0ODQ4MDk5MzQ0MDUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoicyJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoicCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiItIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJ+In0seyJjaGFyIjoiLyJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJnIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiIvIn0seyJjaGFyIjoiaCJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoiZyJ9LHsiY2hhciI6IjEifSx7ImNoYXIiOiJrIn0seyJjaGFyIjoiXyJ9LHsiY2hhciI6InYifSx7ImNoYXIiOiIzIn0seyJjaGFyIjoiNyJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoidSJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJnIn0seyJjaGFyIjoiMSJ9LHsiY2hhciI6ImsifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoidiJ9LHsiY2hhciI6IjMifSx7ImNoYXIiOiI3In0seyJjaGFyIjoiLiJ9LHsiY2hhciI6ImYifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiIuIn0seyJjaGFyIjoiLyJ9LHsiY2hhciI6IlAifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoiaiJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJ6In0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJnIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6ImYifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6InwifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6Ii0ifSx7ImNoYXIiOiIxIn0seyJjaGFyIjoiMCJ9LHsiY2hhciI6IjAifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoiMCJ9LHsiY2hhciI6IjAifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoifCJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiLSJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiJyJ9LHsiY2hhciI6InsifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiRiJ9LHsiY2hhciI6IlsifSx7ImNoYXIiOiIxIn0seyJjaGFyIjoiXSJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiIxIn0seyJjaGFyIjoiMCJ9LHsiY2hhciI6IjAifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IjsifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJrIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InkifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiXCIifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiRiJ9LHsiY2hhciI6IlsifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoiXSJ9LHsiY2hhciI6IlxcIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJcIiJ9LHsiY2hhciI6IjsifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiRyJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiJ7In0seyJjaGFyIjoiJCJ9LHsiY2hhciI6ImsifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoieSJ9LHsiY2hhciI6In0ifSx7ImNoYXIiOiIrIn0seyJjaGFyIjoiKyJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiRiJ9LHsiY2hhciI6IlsifSx7ImNoYXIiOiIyIn0seyJjaGFyIjoiXSJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiJ+In0seyJjaGFyIjoiLyJ9LHsiY2hhciI6IlsifSx7ImNoYXIiOiJHIn0seyJjaGFyIjoiQyJ9LHsiY2hhciI6Il0ifSx7ImNoYXIiOiIvIn0seyJjaGFyIjoiOyJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoieyJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJrIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InkifSx7ImNoYXIiOiJ9In0seyJjaGFyIjoiKyJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiRiJ9LHsiY2hhciI6IlsifSx7ImNoYXIiOiIzIn0seyJjaGFyIjoiXSJ9LHsiY2hhciI6IjsifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiYiJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoieyJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJrIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InkifSx7ImNoYXIiOiJ9In0seyJjaGFyIjoiKyJ9LHsiY2hhciI6IisifSx7ImNoYXIiOiI7In0seyJjaGFyIjoifSJ9LHsiY2hhciI6IkUifSx7ImNoYXIiOiJOIn0seyJjaGFyIjoiRCJ9LHsiY2hhciI6InsifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJcIiJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoiXFwifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiJCJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoibSJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6InsifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiXyJ9LHsiY2hhciI6In0ifSx7ImNoYXIiOiJcXCJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiRyJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiJ7In0seyJjaGFyIjoiJCJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJ9In0seyJjaGFyIjoiXFwifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiJCJ9LHsiY2hhciI6ImMifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoidSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoicyJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoidSJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJ7In0seyJjaGFyIjoiJCJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJ9In0seyJjaGFyIjoiXCIifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoiaCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoieyJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiPCJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiI+In0seyJjaGFyIjoiJCJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJ9In0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImsifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoieSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiJSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoibSJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6In0ifSx7ImNoYXIiOiInIn0seyJjaGFyIjoiICJ9XX19LHsiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImxpbmUtaGVpZ2h0IjoxLjg3NSwiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MH0sImJsb2NrSWQiOiI5N2x1a3cxNDg0ODA5OTU5NTAyIiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6IuiAjCJ9LHsiY2hhciI6IuS4lCJ9LHsiY2hhciI6IuaIkSJ9LHsiY2hhciI6IuS7oyJ9LHsiY2hhciI6IueggSJ9LHsiY2hhciI6IuWGmSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuS4jSJ9LHsiY2hhciI6IuWlvSJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6Iui3kSJ9LHsiY2hhciI6IjEifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoi5LiHIn0seyJjaGFyIjoi6KGMIn0seyJjaGFyIjoi6ZyAIn0seyJjaGFyIjoi6KaBIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IjQifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi6LeRIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi55m+In0seyJjaGFyIjoi5LiHIn0seyJjaGFyIjoi6KGMIn0seyJjaGFyIjoi6ZyAIn0seyJjaGFyIjoi6KaBIn0seyJjaGFyIjoiMyJ9LHsiY2hhciI6IjYifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi5LywIn0seyJjaGFyIjoi6K6hIn0seyJjaGFyIjoi5oqKIn0seyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoiOCJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiI5In0seyJjaGFyIjoi5Lq/In0seyJjaGFyIjoi6KGMIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoiYiJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoi6L+QIn0seyJjaGFyIjoi6KGMIn0seyJjaGFyIjoi5a6MIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5oCOIn0seyJjaGFyIjoi5LmIIn0seyJjaGFyIjoi552AIn0seyJjaGFyIjoi5LmfIn0seyJjaGFyIjoi5b6XIn0seyJjaGFyIjoiMSJ9LHsiY2hhciI6IjUifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLlsI8ifSx7ImNoYXIiOiLml7YifSx7ImNoYXIiOiLjgIIifSx7ImNoYXIiOiLkuI0ifSx7ImNoYXIiOiLov4cifSx7ImNoYXIiOiLkuI0ifSx7ImNoYXIiOiLopoEifSx7ImNoYXIiOiLntKcifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmiJEifSx7ImNoYXIiOiLku6wifSx7ImNoYXIiOiLlsLEifSx7ImNoYXIiOiLmi78ifSx7ImNoYXIiOiLliY0ifSx7ImNoYXIiOiLpnaIifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLnmb4ifSx7ImNoYXIiOiLkuIcifSx7ImNoYXIiOiLooYwifSx7ImNoYXIiOiLmlbAifSx7ImNoYXIiOiLmja4ifSx7ImNoYXIiOiLlgZoifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLmtYsifSx7ImNoYXIiOiLor5UifSx7ImNoYXIiOiLlsLEifSx7ImNoYXIiOiLlpb0ifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLjgIIifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJsaW5lLWhlaWdodCI6MS44NzUsImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiOTVhZ2ZjMTQ4NDgxMDAzMzAwOCIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiLnu5MifSx7ImNoYXIiOiLmnpwifSx7ImNoYXIiOiLlpoIifSx7ImNoYXIiOiLkuIsifSx7ImNoYXIiOiLvvJoifV19fSx7ImJsb2NrVHlwZSI6ImltYWdlIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsIndpZHRoIjpudWxsLCJmbG9hdCI6Im5vbmUiLCJoZWlnaHQiOjMzNH0sImJsb2NrSWQiOiIyMnp5amwxNDg0ODEwMDQ2NDQ3Iiwic291cmNlIjoiLy9ub3RlLnlvdWRhby5jb20vc3JjL0I3QjYwQTM0NkVENjQzQUQ4RURBMEI3RDY0NzM3QjcxIiwidGl0bGUiOiIifSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJsaW5lLWhlaWdodCI6MS44NzUsImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiNzRvcHplMTQ4NDgxMDA0NjQ0NyIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiLliY0ifSx7ImNoYXIiOiLpnaIifSx7ImNoYXIiOiLkuKQifSx7ImNoYXIiOiLooYwifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLnqpcifSx7ImNoYXIiOiLlj6MifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLlnZAifSx7ImNoYXIiOiLmoIcifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLnrKwifSx7ImNoYXIiOiLlh6AifSx7ImNoYXIiOiLlj7cifSx7ImNoYXIiOiLmn5MifSx7ImNoYXIiOiLoibIifSx7ImNoYXIiOiLkvZMifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLnrKwifSx7ImNoYXIiOiLlh6AifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLnqpcifSx7ImNoYXIiOiLlj6MifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlkI4ifSx7ImNoYXIiOiLpnaIifSx7ImNoYXIiOiIzIn0seyJjaGFyIjoi6KGMIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5pWwIn0seyJjaGFyIjoi5o2uIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5YiGIn0seyJjaGFyIjoi5YirIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5q+PIn0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi56qXIn0seyJjaGFyIjoi5Y+jIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5rWLIn0seyJjaGFyIjoi5YiwIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi56KxIn0seyJjaGFyIjoi5Z+6In0seyJjaGFyIjoi5pWwIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoiRyJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiLnorEifSx7ImNoYXIiOiLln7oifSx7ImNoYXIiOiLmlbAifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmtYsifSx7ImNoYXIiOiLluo8ifSx7ImNoYXIiOiLmgLsifSx7ImNoYXIiOiLmt7EifSx7ImNoYXIiOiLluqYifSx7ImNoYXIiOiLvvIEifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJsaW5lLWhlaWdodCI6MS44NzUsImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiOTN2Y2hxMTQ4NDgxMDA5MDIxMyIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiLkuIoifSx7ImNoYXIiOiLpnaIifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLmlocifSx7ImNoYXIiOiLku7YifSx7ImNoYXIiOiLlsLEifSx7ImNoYXIiOiLlj68ifSx7ImNoYXIiOiLku6UifSx7ImNoYXIiOiLlr7wifSx7ImNoYXIiOiLlhaUifSx7ImNoYXIiOiLliLAifSx7ImNoYXIiOiJSIn0seyJjaGFyIjoi6YeMIn0seyJjaGFyIjoi6Z2iIn0seyJjaGFyIjoi6L+bIn0seyJjaGFyIjoi6KGMIn0seyJjaGFyIjoi5Y+vIn0seyJjaGFyIjoi6KeGIn0seyJjaGFyIjoi5YyWIn0seyJjaGFyIjoi5ZWmIn0seyJjaGFyIjoi77yBIn1dfX0seyJibG9ja1R5cGUiOiJpbWFnZSIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJ3aWR0aCI6bnVsbCwiZmxvYXQiOiJub25lIiwiaGVpZ2h0Ijo1MTF9LCJibG9ja0lkIjoiOTdqaHpqMTQ4NDgwOTc5Njg0NCIsInNvdXJjZSI6Ii8vbm90ZS55b3VkYW8uY29tL3NyYy81ODExNjkyNTEyQTM0Qzk0OTdEMDY3REQ5MDMyNURGRCIsInRpdGxlIjoiIn0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjY3bGhqZzE0ODQ4MDk4NDU5MTIiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoiUCJ9LHsiY2hhciI6IlMifSx7ImNoYXIiOiI6In0seyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi57q/In0seyJjaGFyIjoi5oCnIn0seyJjaGFyIjoi5ZueIn0seyJjaGFyIjoi5b2SIn0seyJjaGFyIjoi5Zu+In0seyJjaGFyIjoi5LiNIn0seyJjaGFyIjoi5LyaIn0seyJjaGFyIjoi55yLIn0seyJjaGFyIjoi5YiwIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi6IeqIn0seyJjaGFyIjoi5bexIn0seyJjaGFyIjoi5Y67In0seyJjaGFyIjoi5pCcIn0seyJjaGFyIjoi57SiIn0seyJjaGFyIjoi5ZOIIn0seyJjaGFyIjoi77yBIn0seyJjaGFyIjoiKCJ9LHsiY2hhciI6IuaIliJ9LHsiY2hhciI6IuiAhSJ9LHsiY2hhciI6IuWOuyJ9LHsiY2hhciI6IuaIkSJ9LHsiY2hhciI6IuS7rCJ9LHsiY2hhciI6IueUnyJ9LHsiY2hhciI6IuS/oSJ9LHsiY2hhciI6IuaKgCJ9LHsiY2hhciI6IuiDvSJ9LHsiY2hhciI6IuagkSJ9LHsiY2hhciI6IuiuuiJ9LHsiY2hhciI6IuWdmyJ9LHsiY2hhciI6Iu+8miJ9LHsiY2hhciI6ImgiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InAiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6IjoiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Ii8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Ii8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InciLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InciLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InciLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Ii4iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImIiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImkiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImEiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImkiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Im4iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Ii4iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImMiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Im0iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Ii8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImgiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImEiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImQiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Ii0iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6IjYiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6IjkiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6IjUiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Ii0iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6IjEiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Ii0iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6IjEiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Ii4iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImgiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6Im0iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6ImwiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEtMS5odG1sIn19LHsiY2hhciI6IiAifSx7ImNoYXIiOiLlpI0ifSx7ImNoYXIiOiLliLYifSx7ImNoYXIiOiLpk74ifSx7ImNoYXIiOiLmjqUifSx7ImNoYXIiOiLliLAifSx7ImNoYXIiOiLmtY8ifSx7ImNoYXIiOiLop4gifSx7ImNoYXIiOiLlmagifSx7ImNoYXIiOiLmiZMifSx7ImNoYXIiOiLlvIAifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmiJYifSx7ImNoYXIiOiLogIUifSx7ImNoYXIiOiLngrkifSx7ImNoYXIiOiLlh7sifSx7ImNoYXIiOiLpmIUifSx7ImNoYXIiOiLor7sifSx7ImNoYXIiOiLljp8ifSx7ImNoYXIiOiLmlocifSx7ImNoYXIiOiLlkq8ifSx7ImNoYXIiOiLvvIEifSx7ImNoYXIiOiIpIn1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjM1dGNjaDE0ODQ4MTAzMzA3MzQiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi6KeJIn0seyJjaGFyIjoi5b6XIn0seyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoi5qyhIn0seyJjaGFyIjoi55S7In0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5Zu+In0seyJjaGFyIjoi6L+YIn0seyJjaGFyIjoi5LiNIn0seyJjaGFyIjoi6ZSZIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5b6IIn0seyJjaGFyIjoi5piOIn0seyJjaGFyIjoi5pi+In0seyJjaGFyIjoi6IO9In0seyJjaGFyIjoi55yLIn0seyJjaGFyIjoi5YiwIn0seyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi6LaLIn0seyJjaGFyIjoi5Yq/In0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoiRyJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiLlkKsifSx7ImNoYXIiOiLph48ifSx7ImNoYXIiOiLmr5QifSx7ImNoYXIiOiLovoMifSx7ImNoYXIiOiLpq5gifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLnqpcifSx7ImNoYXIiOiLlj6MifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmnIkifSx7ImNoYXIiOiLnnYAifSx7ImNoYXIiOiLnm7gifSx7ImNoYXIiOiLlupQifSx7ImNoYXIiOiLmr5QifSx7ImNoYXIiOiLovoMifSx7ImNoYXIiOiLpq5gifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLmtYsifSx7ImNoYXIiOiLluo8ifSx7ImNoYXIiOiLmt7EifSx7ImNoYXIiOiLluqYifSx7ImNoYXIiOiLvvIEifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJsaW5lLWhlaWdodCI6MS44NzUsImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiNjVqZmVoMTQ4NDgxMDEzNzU3NiIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiLlrowifSx7ImNoYXIiOiLnvo4ifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLor4EifSx7ImNoYXIiOiLmmI4ifSx7ImNoYXIiOiLmiJAifSx7ImNoYXIiOiLlip8ifSx7ImNoYXIiOiLllaYifSx7ImNoYXIiOiJ+In1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjYycXBmdzE0ODQ4MTAxNjM3MTgiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoi57uZIn0seyJjaGFyIjoi6IeqIn0seyJjaGFyIjoi5bexIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi55m+In0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi6LWeIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi6Jm9In0seyJjaGFyIjoi54S2In0seyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi5rKhIn0seyJjaGFyIjoi5pyJIn0seyJjaGFyIjoi5a+5In0seyJjaGFyIjoi5YWoIn0seyJjaGFyIjoi5Z+6In0seyJjaGFyIjoi5ZugIn0seyJjaGFyIjoi57uEIn0seyJjaGFyIjoi5pWwIn0seyJjaGFyIjoi5o2uIn0seyJjaGFyIjoi5YGaIn0seyJjaGFyIjoi6aqMIn0seyJjaGFyIjoi6K+BIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5L2GIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5Z+6In0seyJjaGFyIjoi5ZugIn0seyJjaGFyIjoi57uEIn0seyJjaGFyIjoi5beuIn0seyJjaGFyIjoi5byCIn0seyJjaGFyIjoi5rKhIn0seyJjaGFyIjoi6YKjIn0seyJjaGFyIjoi5LmIIn0seyJjaGFyIjoi5aSnIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi5LmfIn0seyJjaGFyIjoi6ZqPIn0seyJjaGFyIjoi5py6In0seyJjaGFyIjoi5oq9In0seyJjaGFyIjoi5qC3In0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi5YegIn0seyJjaGFyIjoi5qyhIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5Y+RIn0seyJjaGFyIjoi546wIn0seyJjaGFyIjoi6YO9In0seyJjaGFyIjoi5pyJIn0seyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi6LaLIn0seyJjaGFyIjoi5Yq/In0seyJjaGFyIjoi44CCIn1dfX0seyJibG9ja1R5cGUiOiJpbWFnZSIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJ3aWR0aCI6bnVsbCwiZmxvYXQiOiJub25lIiwiaGVpZ2h0IjoyOTV9LCJibG9ja0lkIjoiODB3eGJmMTQ4NDgwOTg0NTkxMiIsInNvdXJjZSI6Ii8vbm90ZS55b3VkYW8uY29tL3NyYy9GOTM5NkM3REI5MUU0ODBFQUZDMUUwNkRDNzczRThDNSIsInRpdGxlIjoiIn0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjUwc2plazE0ODQ4MDk4NDQyMjEiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbXX19LHsiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImxpbmUtaGVpZ2h0IjoxLjg3NSwiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MH0sImJsb2NrSWQiOiI2NnhvZHgxNDg0ODA5ODQ0NDc3IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6IuaIkSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IlIifSx7ImNoYXIiOiLku6MifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLlpoIifSx7ImNoYXIiOiLkuIsifSx7ImNoYXIiOiLvvJoifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJsaW5lLWhlaWdodCI6MS44NzUsImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiNjlhaW9iMTQ4NDgwOTY5MjM5NyIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiJhIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6ImQifSx7ImNoYXIiOiIuIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJiIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoiJyJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiIuIn0seyJjaGFyIjoiLyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoieCJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiInIn0seyJjaGFyIjoiKSJ9XX19LHsiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImxpbmUtaGVpZ2h0IjoxLjg3NSwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MH0sImJsb2NrSWQiOiIzN2J4cGwxNDg0ODA5NjkzODI1IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6ImEifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiRyJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiWyJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiI0In0seyJjaGFyIjoiXSJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiWyJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiIzIn0seyJjaGFyIjoiXSJ9XX19LHsiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImxpbmUtaGVpZ2h0IjoxLjg3NSwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MH0sImJsb2NrSWQiOiI3M25pcXIxNDg0ODA5NjkzODI1IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6ImEifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiZCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImgifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiWyJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiI1In0seyJjaGFyIjoiXSJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiWyJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiIzIn0seyJjaGFyIjoiXSJ9XX19LHsiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImxpbmUtaGVpZ2h0IjoxLjg3NSwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MH0sImJsb2NrSWQiOiI4N2Vvc2QxNDg0ODA5NjkzODI1IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6ImEifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiWyJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiZCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImgifSx7ImNoYXIiOiI8In0seyJjaGFyIjoiMSJ9LHsiY2hhciI6IjAifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoiLCJ9LHsiY2hhciI6Il0ifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiNzZubG9jMTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiJwIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiKCJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiIkIn0seyJjaGFyIjoiRyJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiIsIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiaCJ9LHsiY2hhciI6IikifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiMTdqZGRuMTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiJsIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoiKCJ9LHsiY2hhciI6ImcifSx7ImNoYXIiOiJnIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6IjIifSx7ImNoYXIiOiIpIn1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwibGluZS1oZWlnaHQiOjEuODc1LCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6Ijg0bWtrbDE0ODQ4MDk2OTM4MjUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoiIyJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJHIn0seyJjaGFyIjoiRSJ9LHsiY2hhciI6IlQifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiRSJ9LHsiY2hhciI6IlEifSx7ImNoYXIiOiJVIn0seyJjaGFyIjoiQSJ9LHsiY2hhciI6IlQifSx7ImNoYXIiOiJJIn0seyJjaGFyIjoiTyJ9LHsiY2hhciI6Ik4ifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiQSJ9LHsiY2hhciI6Ik4ifSx7ImNoYXIiOiJEIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IlIifSx7ImNoYXIiOiItIn0seyJjaGFyIjoiUyJ9LHsiY2hhciI6IlEifSx7ImNoYXIiOiJVIn0seyJjaGFyIjoiQSJ9LHsiY2hhciI6IlIifSx7ImNoYXIiOiJFIn0seyJjaGFyIjoiRCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJBIn0seyJjaGFyIjoiUyJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJTIn0seyJjaGFyIjoiVCJ9LHsiY2hhciI6IlIifSx7ImNoYXIiOiJJIn0seyJjaGFyIjoiTiJ9LHsiY2hhciI6IkcifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiMmlvbnkxNDg0ODA5NjkzODI1IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6IiMifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiUyJ9LHsiY2hhciI6Ik8ifSx7ImNoYXIiOiJVIn0seyJjaGFyIjoiUiJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiJFIn0seyJjaGFyIjoiOiJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoiOiJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiIvIn0seyJjaGFyIjoiZyJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6ImcifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoiLyJ9LHsiY2hhciI6IksifSx7ImNoYXIiOiI0In0seyJjaGFyIjoieSJ9LHsiY2hhciI6ImgifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiMzhoanNyMTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiJsIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoicSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiPCJ9LHsiY2hhciI6Ii0ifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoiYyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoieCJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoiKSJ9LHsiY2hhciI6InsifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiM2Z6Z2UxNDg0ODA5NjkzODI1IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiI8In0seyJjaGFyIjoiLSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoiICJ9LHsiY2hhciI6In4ifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoieCJ9LHsiY2hhciI6IikifSx7ImNoYXIiOiI7In1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwibGluZS1oZWlnaHQiOjEuODc1LCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjE0em10ZTE0ODQ4MDk2OTM4MjUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoicSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiI8In0seyJjaGFyIjoiLSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoidSJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoidSJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiKCJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiYSJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoiYyJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IisifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiYiJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIlIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6IiUifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoiKCJ9LHsiY2hhciI6IngifSx7ImNoYXIiOiIpIn0seyJjaGFyIjoiKiJ9LHsiY2hhciI6IlwiIn0seyJjaGFyIjoiLCJ9LHsiY2hhciI6IlwiIn0seyJjaGFyIjoifiJ9LHsiY2hhciI6In4ifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6ImMifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6IikifSx7ImNoYXIiOiJeIn0seyJjaGFyIjoiMiJ9LHsiY2hhciI6In4ifSx7ImNoYXIiOiJcIiJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiJcIiJ9LHsiY2hhciI6In4ifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiMiJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiIgIn1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwibGluZS1oZWlnaHQiOjEuODc1LCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjMzcG54eDE0ODQ4MDk2OTM4MjUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImYifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJmIn0seyJjaGFyIjoiKCJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiIpIn0seyJjaGFyIjoiWyJ9LHsiY2hhciI6IjEifSx7ImNoYXIiOiJdIn0seyJjaGFyIjoiLCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6ImcifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIyIn0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiIgIn1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwibGluZS1oZWlnaHQiOjEuODc1LCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjQyeG5kYzE0ODQ4MDk2OTM4MjUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiYiJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImYifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJmIn0seyJjaGFyIjoiKCJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiIpIn0seyJjaGFyIjoiWyJ9LHsiY2hhciI6IjIifSx7ImNoYXIiOiJdIn0seyJjaGFyIjoiLCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6ImcifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIyIn0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiIgIn1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwibGluZS1oZWlnaHQiOjEuODc1LCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjgxcGplZzE0ODQ4MDk2OTM4MjUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6IjIifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJmIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoieSJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJxIn0seyJjaGFyIjoidSJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImQifSx7ImNoYXIiOiIsIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImQifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoiZyJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoicyJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiICJ9LHsiY2hhciI6IjMifSx7ImNoYXIiOiIpIn0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IikifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiMzlmcWRuMTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6ImMifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiYyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoieCJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoiKCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJxIn0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IikifSx7ImNoYXIiOiI7In0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiMjloenZ1MTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiJ9In1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwibGluZS1oZWlnaHQiOjEuODc1LCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjcydHp3bjE0ODQ4MDk2OTM4MjUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoicCJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiJnIn0seyJjaGFyIjoiZyJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoiRyJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiIsIn0seyJjaGFyIjoiZCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImgifSx7ImNoYXIiOiIpIn0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiKyJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJnIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiXyJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiKCJ9LHsiY2hhciI6IikifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiKyJ9LHsiY2hhciI6IiAifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiODVibXl0MTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImcifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoiKCJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImgifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoiZCJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiInIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiInIn0seyJjaGFyIjoiLCJ9LHsiY2hhciI6ImYifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiI9In0seyJjaGFyIjoieSJ9LHsiY2hhciI6In4ifSx7ImNoYXIiOiJ4In0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IisifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiNzVhYWZmMTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImcifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJ4In0seyJjaGFyIjoidCJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJ4In0seyJjaGFyIjoiICJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiMCJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiI1In0seyJjaGFyIjoiLCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoiICJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiMSJ9LHsiY2hhciI6IjAifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoiLCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiXyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJxIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiJCJ9LHsiY2hhciI6IkcifSx7ImNoYXIiOiJDIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6IiQifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiaCJ9LHsiY2hhciI6IikifSx7ImNoYXIiOiIsIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiVCJ9LHsiY2hhciI6IlIifSx7ImNoYXIiOiJVIn0seyJjaGFyIjoiRSJ9LHsiY2hhciI6IikifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiNDVzYmdxMTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiJwIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiIrIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImgifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiKCJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiXyJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiaCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJiIn0seyJjaGFyIjoidyJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJiIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiXyJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoieiJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiMiJ9LHsiY2hhciI6IjAifSx7ImNoYXIiOiIpIn0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IikifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiNDFpYnN6MTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiJwIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiIrIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImgifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJ4In0seyJjaGFyIjoidCJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiXyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoieCJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiInIn0seyJjaGFyIjoiYiJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoiZCJ9LHsiY2hhciI6IicifSx7ImNoYXIiOiIpIn0seyJjaGFyIjoiLCJ9XX19LHsiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImxpbmUtaGVpZ2h0IjoxLjg3NSwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MH0sImJsb2NrSWQiOiI1NWZqYm8xNDg0ODA5NjkzODI1IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoieCJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoieCJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIuIn0seyJjaGFyIjoieCJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiXyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoieCJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJnIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiMyJ9LHsiY2hhciI6IjAifSx7ImNoYXIiOiIsIn0seyJjaGFyIjoiaCJ9LHsiY2hhciI6ImoifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoicyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiMSJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6InoifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiIxIn0seyJjaGFyIjoiNSJ9LHsiY2hhciI6IikifSx7ImNoYXIiOiIsIn1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwibGluZS1oZWlnaHQiOjEuODc1LCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6Ijk5bWVwZzE0ODQ4MDk2OTM4MjUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIuIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiXyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoieCJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoiaCJ9LHsiY2hhciI6ImoifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoicyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6IjUifSx7ImNoYXIiOiIpIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiwifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiMjlvY2RnMTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiIuIn0seyJjaGFyIjoiZyJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoiZCJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoiYiJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6ImsifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoiKSJ9LHsiY2hhciI6IiwifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiOWNrd2QxNDg0ODA5NjkzODI1IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIjIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiIuIn0seyJjaGFyIjoiYiJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiZCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJiIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoiayJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiIpIn1dfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwibGluZS1oZWlnaHQiOjEuODc1LCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjE5cGZ3YjE0ODQ4MDk2OTM4MjUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoiKSJ9XX19LHsiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImxpbmUtaGVpZ2h0IjoxLjg3NSwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MH0sImJsb2NrSWQiOiIwbGFnazE0ODQ4MDk2OTM4MjUiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoicCJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIoIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6IikifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJsaW5lLWhlaWdodCI6MS44NzUsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjB9LCJibG9ja0lkIjoiMzJwdmp3MTQ4NDgwOTY5MzgyNSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOltdfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjNzZ2plMTQ4NDgwOTY2MTE3MSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOltdfX0seyJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsibGluZS1oZWlnaHQiOjEuODc1LCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowfSwiYmxvY2tJZCI6IjYxbWZndzE0ODQ4MDk2NjEyMDQiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbXX19LHsiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImxpbmUtaGVpZ2h0IjoxLjg3NSwiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MH0sImJsb2NrSWQiOiI2MW5teXYxNDg0ODA5NjYxMjM2IiwicmljaFRleHQiOnsiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZSwiZGF0YSI6W3siY2hhciI6IueUuyJ9LHsiY2hhciI6IuWbviJ9LHsiY2hhciI6IuWPgiJ9LHsiY2hhciI6IuiAgyJ9LHsiY2hhciI6Iu+8miJ9LHsiY2hhciI6ImgiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoidCIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InAiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiOiIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiIvIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Ii8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImEiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiYyIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJrIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoidiIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiZiIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJsIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoidyIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiIuIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImMiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoibyIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJtIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Ii8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoicSIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJ1Iiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImkiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoibyIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJuIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InMiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiLyIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiI3Iiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6IjUiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiNCIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiI5Iiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6IjYiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiOSIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiI0Iiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Ii8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiZyIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJnIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InAiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoibCIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJvIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiMiIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiItIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImEiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiZCIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJkIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImkiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoibiIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJnIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Ii0iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiciIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImciLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiciIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InMiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJpIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoibiIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiItIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImwiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiaSIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJuIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiLSIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InEiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoidSIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJhIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiaSIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJvIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Im4iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiLSIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJhIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Im4iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiZCIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiItIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiMiIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiItIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoibiIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiItIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6ImciLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiciIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fSx7ImNoYXIiOiJhIiwic3R5bGVzIjp7InVuZGVybGluZSI6dHJ1ZSwiY29sb3IiOiIjMDAwMGZmIiwiaHJlZiI6Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBoIn19LHsiY2hhciI6InAiLCJzdHlsZXMiOnsidW5kZXJsaW5lIjp0cnVlLCJjb2xvciI6IiMwMDAwZmYiLCJocmVmIjoiaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgifX0seyJjaGFyIjoiaCIsInN0eWxlcyI6eyJ1bmRlcmxpbmUiOnRydWUsImNvbG9yIjoiIzAwMDBmZiIsImhyZWYiOiJodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRpbmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaCJ9fV19fV0=--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2780.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>从WGS测序得到的VCF文件里面提取位于EXON区域的</title>
		<link>http://www.bio-info-trainee.com/2510.html</link>
		<comments>http://www.bio-info-trainee.com/2510.html#comments</comments>
		<pubDate>Thu, 31 Aug 2017 14:23:39 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2510</guid>
		<description><![CDATA[首先要下载并且得到人类基因组的外显子坐标记录文件 这里我用的参考基因组版本仍然是 &#8230; <a href="http://www.bio-info-trainee.com/2510.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="markdown-here-wrapper" data-md-url="http://www.bio-info-trainee.com/wp-admin/post-new.php">
<h2 id="-" style="margin: 1.3em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.4em; border-bottom: 1px solid #eeeeee;">首先要下载并且得到人类基因组的外显子坐标记录文件</h2>
<blockquote style="margin: 1.2em 0px; border-left: 4px solid #dddddd; padding: 0px 1em; color: #777777; quotes: none;">
<p style="margin: 0px 0px 1.2em !important;">这里我用的参考基因组版本仍然是hg19，所以去CCDS数据库里面下载对应版本，并且格式化成BED文件。</p>
<pre style="font-size: 1em; font-family: Consolas, Inconsolata, Courier, monospace; line-height: 1.2em; margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0.5em 0.7em; white-space: pre; border: 1px solid #cccccc; background-color: #f8f8f8; border-radius: 3px; display: block !important; overflow: auto;">wget ftp://ftp.ncbi.nlm.nih.gov/pub/CCDS/archive/Hs37.3/CCDS.20110907.txt
cat CCDS.20110907.txt |perl -alne '{/[(.*?)]/;next unless $1;$exons=$1;$exons=~s/\s//g;$exons=~s/-/\t/g;print "$F[0]\t$" foreach split/,/,$exons;}' &gt;hg19exon.bed
</code></pre>
<div class="markdown-here-wrapper" data-md-url="http://www.bio-info-trainee.com/wp-admin/post-new.php">
<div title="MDH:PHA+IyMg6aaW5YWI6KaB5LiL6L295bm25LiU5b6X5Yiw5Lq657G75Z+65Zug57uE55qE5aSW5pi+
5a2Q5Z2Q5qCH6K6w5b2V5paH5Lu2PGJyPjwvcD48cD4mZ3Q7IOi/memHjOaIkeeUqOeahOWPguiA
g+WfuuWboOe7hOeJiOacrOS7jeeEtuaYr2hnMTnvvIzmiYDku6XljrtDQ0RT5pWw5o2u5bqT6YeM
6Z2i5LiL6L295a+55bqU54mI5pys77yM5bm25LiU5qC85byP5YyW5oiQQkVE5paH5Lu244CCPC9w
PjxwPmBgYDwvcD48cD53Z2V0IGZ0cDovL2Z0cC5uY2JpLm5sbS5uaWguZ292L3B1Yi9DQ0RTL2Fy
Y2hpdmUvSHMzNy4zL0NDRFMuMjAxMTA5MDcudHh0PC9wPjxwPmNhdCBDQ0RTLjIwMTEwOTA3LnR4
dCB8cGVybCAtYWxuZSAney9bKC4qPyldLztuZXh0IHVubGVzcyAkMTskZXhvbnM9JDE7JGV4b25z
PX5zL1xzLy9nOyRleG9ucz1+cy8tL1x0L2c7cHJpbnQgIiRGWzBdXHQkIiBmb3JlYWNoIHNwbGl0
LywvLCRleG9uczt9JyAmZ3Q7aGcxOWV4b24uYmVkPC9wPjxwPmBgYDwvcD48cD7liLbkvZzlpb3n
moRiZWTmoLzlvI/nmoTkurrnsbvlhajpg6jnmoRleG9u5Yy65Z+f5Z2Q5qCH5paH5Lu25aaC5LiL
77yaPC9wPjxwPmBgYDxicj4xIDgwMTk0MiA4MDI0MzM8YnI+MSA4NjEzMjEgODYxMzkyPGJyPjEg
ODY1NTM0IDg2NTcxNTxicj4xIDg2NjQxOCA4NjY0Njg8YnI+MSA4NzExNTEgODcxMjc1PGJyPjEg
ODc0NDE5IDg3NDUwODxicj4xIDg3NDY1NCA4NzQ4MznDpTxicj4xIDg3NjUyMyA4NzY2ODU8YnI+
MSA4Nzc1MTUgODc3NjMwPGJyPjEgODc3Nzg5IDg3Nzg2Nzxicj5gYGA8L3A+PHA+IyMg5LuOVkNG
5paH5Lu26YeM6Z2i5qC55o2uQkVE5paH5Lu26L+b6KGM5oq95o+QPC9wPjxwPiZndDsg6L+Z6YeM
5bCx5LiN6Ieq5bex6YCg6L2u5a2Q5LqG77yM55So546w5oiQ55qE5bel5YW377yM6ICM5LiU5piv
5oiR5Lus55So6L+H5b6I5aSa5qyh55qEKipTbnBFZmYqKuWll+S7tu+8jOS7o+eggeWmguS4izwv
cD48cD5gYGA8YnI+Y2F0IHNucC52Y2YgfCBqYXZhIC1qYXIgfi9iaW9zb2Z0L1NucEVmZi9zbnBF
ZmYvU25wU2lmdC5qYXIgaW50ZXJ2YWxzIGhnMTlleG9uLmJlZCAmZ3Q7aGcxOWV4b24uc25wLnZj
ZjwvcD48cD5jYXQgaW5kZWwudmNmIHwgamF2YSAtamFyIH4vYmlvc29mdC9TbnBFZmYvc25wRWZm
L1NucFNpZnQuamFyIGludGVydmFscyBoZzE5ZXhvbi5iZWQgJmd0O2hnMTlleG9uLmluZGVsLnZj
ZjwvcD48cD5gYGA8L3A+PHA+5Y+v5Lul5oqK5oiR57uP55SxR0FUSyBiZXN0IHByYWN0aWNl5rWB
56iL5b6X5Yiw55qEU05QL0lOREVM6K6w5b2V55qEVkNG5paH5Lu26YO96L+b6KGM5o+Q5Y+W77yM
55So5Luj56CBIGBgd2MgLWwgKnZjZmBg566A5Y2V57uf6K6h5LiA5LiL5o+Q5Y+W55qE5pWI5p6c
77yM5aaC5LiL77yaPC9wPjxwPmBgYDxicj4gMTA0MiBoZzE5X2V4b24uaW5kZWwudmNmPGJyPiAy
NTA2NyBoZzE5X2V4b24uc25wLnZjZjxicj4gNzU0NzU1IGluZGVsLnZjZjxicj4gMzc4NDM0MyBz
bnAudmNmPGJyPmBgYDwvcD48cD7lvojmmI7mmL7lj6/ku6XnnIvliLDvvIzkvY3kuo7lpJbmmL7l
rZDljLrln5/nmoRtdXRhdGlvbuavleern+aYr+WwkeaVsO+8jOi/meaXtuWAmei/mOWPr+S7pee7
p+e7reeci+eci+mCo+S6m+WcqOWkluaYvuWtkOS4iumdouWNtOayoeacieiiq2RiU05Q5pWw5o2u
5bqT6K6w5b2V55qEbXV0YXRpb27ov5jmnInlpJrlsJE6PC9wPjxwPmBgY2F0IGhnMTlfZXhvbi5z
bnAudmNmIHxncmVwIC12ICJeIyIgfGN1dCAtZiAzIHxncmVwICdcLicgfHdjYGA8L3A+PHA+5LuN
54S25pyJMjMxNeS4qlNOVuWcqOWkluaYvuWtkOWMuuWfn++8jOWNtOayoeacieiiq2RiU05Q5pWw
5o2u5bqT6K6w5b2V77yM5Y+v6IO95piv5oiR55qE5a625peP54m55byC5oCn55qE5L2N54K577yM
5bGe5LqO5q2j5bi455qE5Z+65Zug5Z6L5aSa5qC35oCn77yM5Lmf5pyJ5p6B5bCP55qE5Y+v6IO9
5oCn6L+Z5Lqb5L2N54K55piv5ZCO5Y+R56qB5Y+Y77yM5Lmf5bCx5piv6YCa5bi455mM55eH56CU
56m26aKG5Z+f55qEc29tYXRpYyBtdXRhdGlvbiDjgII8L3A+PHA+55So5LiL6Z2i55qE5Luj56CB
5Y+v5Lul566A5Y2V5rWP6KeI5LiA5LiL6L+Z5Lqb5Zyo5aSW5pi+5a2Q5LiK6Z2i55qE5pyq55+l
56qB5Y+Y55qE5oOF5Ya144CCPC9wPjxwPmBgYDxicj5jYXQgaGcxOV9leG9uLnNucC52Y2YgfHBl
cmwgLWFsbmUgJ3twcmludCBpZiAkRlsyXSBlcSAiLiJ9JyB8bGVzcyAtUzwvcD48cD5jYXQgaGcx
OV9leG9uLmluZGVsLnZjZiB8cGVybCAtYWxuZSAne3ByaW50IGlmICRGWzJdIGVxICIuIn0nIHxs
ZXNzIC1TPC9wPjxwPmBgYDwvcD48cD7kuIvkuIDorrLmiJHku6zlho3ov5vkuIDmraXms6jph4rj
gII8L3A+">​</div>
</div>
<p><span id="more-2510"></span></p>
<p style="margin: 0px 0px 1.2em !important;">制作好的bed格式的人类全部的exon区域坐标文件如下：</p>
<pre style="font-size: 1em; font-family: Consolas, Inconsolata, Courier, monospace; line-height: 1.2em; margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0.5em 0.7em; white-space: pre; border: 1px solid #cccccc; background-color: #f8f8f8; border-radius: 3px; display: block !important; overflow: auto;">1 801942 802433
1 861321 861392
1 865534 865715
1 866418 866468
1 871151 871275
1 874419 874508
1 874654 874839å
1 876523 876685
1 877515 877630
1 877789 877867
</code></pre>
<h2 id="-vcf-bed-" style="margin: 1.3em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.4em; border-bottom: 1px solid #eeeeee;">从VCF文件里面根据BED文件进行抽提</h2>
<p style="margin: 0px 0px 1.2em !important;">这里就不自己造轮子了，用现成的工具，而且是我们用过很多次的<strong>SnpEff</strong>套件，代码如下</p>
<pre style="font-size: 1em; font-family: Consolas, Inconsolata, Courier, monospace; line-height: 1.2em; margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0.5em 0.7em; white-space: pre; border: 1px solid #cccccc; background-color: #f8f8f8; border-radius: 3px; display: block !important; overflow: auto;">cat snp.vcf | java -jar ~/biosoft/SnpEff/snpEff/SnpSift.jar intervals hg19exon.bed &gt;hg19exon.snp.vcf
cat indel.vcf | java -jar ~/biosoft/SnpEff/snpEff/SnpSift.jar intervals hg19exon.bed &gt;hg19exon.indel.vcf
</code></pre>
<p style="margin: 0px 0px 1.2em !important;">可以把我经由GATK best practice流程得到的SNP/INDEL记录的VCF文件都进行提取，用代码 <code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid #eaeaea; background-color: #f8f8f8; border-radius: 3px; display: inline;">wc -l *vcf</code>简单统计一下提取的效果，如下：</p>
<pre style="font-size: 1em; font-family: Consolas, Inconsolata, Courier, monospace; line-height: 1.2em; margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0.5em 0.7em; white-space: pre; border: 1px solid #cccccc; background-color: #f8f8f8; border-radius: 3px; display: block !important; overflow: auto;"> 1042 hg19_exon.indel.vcf
 25067 hg19_exon.snp.vcf
 754755 indel.vcf
 3784343 snp.vcf
</code></pre>
<p style="margin: 0px 0px 1.2em !important;">很明显可以看到，位于外显子区域的mutation毕竟是少数，这时候还可以继续看看那些在外显子上面却没有被dbSNP数据库记录的mutation还有多少:<br />
<code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid #eaeaea; background-color: #f8f8f8; border-radius: 3px; display: inline;">cat hg19_exon.snp.vcf |grep -v "^#" |cut -f 3 |grep '\.' |wc</code><br />
仍然有2315个SNV在外显子区域，却没有被dbSNP数据库记录，可能是我的家族特异性的位点，属于正常的基因型多样性，也有极小的可能性这些位点是后发突变，也就是通常癌症研究领域的somatic mutation 。<br />
用下面的代码可以简单浏览一下这些在外显子上面的未知突变的情况。</p>
<pre style="font-size: 1em; font-family: Consolas, Inconsolata, Courier, monospace; line-height: 1.2em; margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0.5em 0.7em; white-space: pre; border: 1px solid #cccccc; background-color: #f8f8f8; border-radius: 3px; display: block !important; overflow: auto;">cat hg19_exon.snp.vcf |perl -alne '{print if $F[2] eq "."}' |less -S
cat hg19_exon.indel.vcf |perl -alne '{print if $F[2] eq "."}' |less -S
</code></pre>
<p style="margin: 0px 0px 1.2em !important;">下一讲我们再进一步注释。</p>
</blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2510.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>测序深度和GC含量的问题！【直播】我的基因组 47</title>
		<link>http://www.bio-info-trainee.com/2309.html</link>
		<comments>http://www.bio-info-trainee.com/2309.html#comments</comments>
		<pubDate>Thu, 19 Jan 2017 07:32:01 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2309</guid>
		<description><![CDATA[在前面我们提到了用ChIP-seq的分析方法可视化了一下我的WGS数据，结果我们 &#8230; <a href="http://www.bio-info-trainee.com/2309.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="markdown-here-wrapper" data-md-url="http://www.bio-info-trainee.com/wp-admin/post.php?post=2309&amp;action=edit">
<p style="margin: 0px 0px 1.2em !important;">在前面我们提到了用ChIP-seq的分析方法可视化了一下我的WGS数据，结果我们的测序深度分布居然是跟基因组的genomic feature相关的~~~<br />
比如在TSS附近，就很明显看到了一个测序深度峰值，那么前面我们并没有给出直接的解答，而且简单的提了一下这是二代测序的特点，GC含量片段偏好性！<br />
作为一个合格的生物信息学工程师，我当然要把这个理论用自己的代码和数据来亲身实践一遍~<br />
我首先把全基因组的bam文件用mpileup模式输出，根据1000bp的窗口滑动来统计每个窗口的测到的碱基数，GC碱基数，测序总深度！<br />
代码比较复杂，一般人可能理解不来的！</p>
<p style="margin: 0px 0px 1.2em !important;"><span id="more-2309"></span></p>
<pre style="font-size: 1em; font-family: Consolas, Inconsolata, Courier, monospace; line-height: 1.2em; margin: 1.2em 0px;"><code class="hljs language-shell" style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0.5em; white-space: pre; border: 1px solid #cccccc; background-color: #f8f8f8; border-radius: 3px; display: block; overflow: auto; overflow-x: auto; color: #333333; background: #f8f8f8; text-size-adjust: none;">samtools mpileup -f ~/reference/genome/human_g1k_v37/human_g1k_v37.fasta ../P_jmzeng.final.bam|head -1000000 |perl -alne '{$pos=int($F[1]/1000); $key="$F[0]\t$pos";$GC{$key}++ if $F[2]=~/[GC]/;$counts_sum{$key}+=$F[3];$number{$key}++;}END{print "$_\t$number{$_}\t$GC{$_}\t$counts_sum{$_}" foreach sort{$a&lt;=&gt;$b} keys %number}'
</code></pre>
<p style="margin: 0px 0px 1.2em !important;">而且我代码写的不好，跑10万行需要 4s，跑一百万行需要36s，我估计把这8.9亿行的bam运行完，怎么着也得15个小时。不过不要紧，我们就拿前面的百万行数据做一个测试就好了。<br />
结果如下：<br />
<a href="http://www.bio-info-trainee.com/wp-content/uploads/2017/01/16.png"><img class="alignnone size-full wp-image-2310" src="http://www.bio-info-trainee.com/wp-content/uploads/2017/01/16.png" alt="1" width="271" height="334" /></a><br />
前面两行是窗口的坐标，第几号染色体的第几个窗口，后面3行是数据，分别是每个窗口的测到的碱基数，GC碱基数，测序总深度！<br />
上面的文件就可以导入到R里面进行可视化啦！<br />
<img class="alignnone size-full wp-image-2311" src="http://www.bio-info-trainee.com/wp-content/uploads/2017/01/23.png" alt="2" width="652" height="537" /><br />
PS:这个线性回归图不会看到，自己去搜索哈！(或者去我们生信技能树论坛：<a href="http://www.biotrainee.com/thread-695-1-1.html">http://www.biotrainee.com/thread-695-1-1.html</a> 复制链接到浏览器打开，或者点击阅读原文咯！)<br />
我觉得我这次画的图还不错，很明显能看到这个趋势，GC含量比较高的窗口，有着相应比较高的测序深度！<br />
<img class="alignnone size-full wp-image-2312" src="http://www.bio-info-trainee.com/wp-content/uploads/2017/01/32.png" alt="3" width="513" height="295" /><br />
完美的证明成功啦~<br />
给自己一百个赞，虽然我没有对全基因组数据做验证，但是基因组差异没那么大，我也随机抽样了几次，发现都有这个趋势。</p>
<p style="margin: 0px 0px 1.2em !important;">我的R代码如下：</p>
<pre style="font-size: 1em; font-family: Consolas, Inconsolata, Courier, monospace; line-height: 1.2em; margin: 1.2em 0px;"><code class="hljs language-R" style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0.5em; white-space: pre; border: 1px solid #cccccc; background-color: #f8f8f8; border-radius: 3px; display: block; overflow: auto; overflow-x: auto; color: #333333; background: #f8f8f8; text-size-adjust: none;">a=read.table(<span class="hljs-string" style="color: #dd1144;">'../tmp.txt'</span>)
a$GC = a[,<span class="hljs-number" style="color: #008080;">4</span>]/a[,<span class="hljs-number" style="color: #008080;">3</span>]
a$depth = a[,<span class="hljs-number" style="color: #008080;">5</span>]/a[,<span class="hljs-number" style="color: #008080;">3</span>]
a = a[a$depth&lt;<span class="hljs-number" style="color: #008080;">100</span>,]
plot(a$GC,a$depth)
<span class="hljs-keyword" style="color: #333333; font-weight: bold;">library</span>(ggplot2)
<span class="hljs-comment" style="color: #999988; font-style: italic;"># GET EQUATION AND R-SQUARED AS STRING</span>
<span class="hljs-comment" style="color: #999988; font-style: italic;"># SOURCE: http://goo.gl/K4yh</span>
lm_eqn &lt;- <span class="hljs-keyword" style="color: #333333; font-weight: bold;">function</span>(x,y){
m &lt;- lm(y ~ x);
eq &lt;- substitute(italic(y) == a + b %.% italic(x)*<span class="hljs-string" style="color: #dd1144;">","</span>~~italic(r)^<span class="hljs-number" style="color: #008080;">2</span>~<span class="hljs-string" style="color: #dd1144;">"="</span>~r2,
list(a = format(coef(m)[<span class="hljs-number" style="color: #008080;">1</span>], digits = <span class="hljs-number" style="color: #008080;">2</span>),
b = format(coef(m)[<span class="hljs-number" style="color: #008080;">2</span>], digits = <span class="hljs-number" style="color: #008080;">2</span>),
r2 = format(summary(m)$r.squared, digits = <span class="hljs-number" style="color: #008080;">3</span>)))
as.character(as.expression(eq));
}
p=ggplot(a,aes(GC,depth)) + geom_point() +
geom_smooth(method=<span class="hljs-string" style="color: #dd1144;">'lm'</span>,formula=y~x)+
geom_text(x = <span class="hljs-number" style="color: #008080;">0.5</span>, y = <span class="hljs-number" style="color: #008080;">100</span>, label = lm_eqn(a$GC , a$depth), parse = <span class="hljs-literal">TRUE</span>)
p=p+theme_set(theme_set(theme_bw(base_size=<span class="hljs-number" style="color: #008080;">20</span>)))
p=p+theme(text=element_text(face=<span class="hljs-string" style="color: #dd1144;">'bold'</span>),
axis.text.x=element_text(angle=<span class="hljs-number" style="color: #008080;">30</span>,hjust=<span class="hljs-number" style="color: #008080;">1</span>,size =<span class="hljs-number" style="color: #008080;">15</span>),
plot.title = element_text(hjust = <span class="hljs-number" style="color: #008080;">0.5</span>) ,
panel.grid = element_blank(),
<span class="hljs-comment" style="color: #999988; font-style: italic;">#panel.border = element_blank()</span>
)
print(p)
</code></pre>
<p style="margin: 0px 0px 1.2em !important;">画图参考：<a href="http://stackoverflow.com/questions/7549694/ggplot2-adding-regression-line-equation-and-r2-on-graph">http://stackoverflow.com/questions/7549694/ggplot2-adding-regression-line-equation-and-r2-on-graph</a></p>
<div style="height: 0; width: 0; max-height: 0; max-width: 0; overflow: hidden; font-size: 0em; padding: 0; margin: 0;" title="MDH:PGRpdj7lnKjliY3pnaLmiJHku6zmj5DliLDkuobnlKhDaElQLXNlceeahOWIhuaekOaWueazleWP
r+inhuWMluS6huS4gOS4i+aIkeeahFdHU+aVsOaNru+8jOe7k+aenOaIkeS7rOeahOa1i+W6j+a3
seW6puWIhuW4g+WxheeEtuaYr+i3n+WfuuWboOe7hOeahGdlbm9taWMgZmVhdHVyZeebuOWFs+ea
hH5+fjwvZGl2PjxkaXY+5q+U5aaC5ZyoVFNT6ZmE6L+R77yM5bCx5b6I5piO5pi+55yL5Yiw5LqG
5LiA5Liq5rWL5bqP5rex5bqm5bOw5YC877yM6YKj5LmI5YmN6Z2i5oiR5Lus5bm25rKh5pyJ57uZ
5Ye655u05o6l55qE6Kej562U77yM6ICM5LiU566A5Y2V55qE5o+Q5LqG5LiA5LiL6L+Z5piv5LqM
5Luj5rWL5bqP55qE54m554K577yMR0PlkKvph4/niYfmrrXlgY/lpb3mgKfvvIE8L2Rpdj48ZGl2
PuS9nOS4uuS4gOS4quWQiOagvOeahOeUn+eJqeS/oeaBr+WtpuW3peeoi+W4iO+8jOaIkeW9k+eE
tuimgeaKiui/meS4queQhuiuuueUqOiHquW3seeahOS7o+eggeWSjOaVsOaNruadpeS6sui6q+Wu
nui3teS4gOmBjX48L2Rpdj48ZGl2PuaIkemmluWFiOaKiuWFqOWfuuWboOe7hOeahGJhbeaWh+S7
tueUqG1waWxldXDmqKHlvI/ovpPlh7rvvIzmoLnmja4xMDAwYnDnmoTnqpflj6Pmu5HliqjmnaXn
u5/orqHmr4/kuKrnqpflj6PnmoTmtYvliLDnmoTnorHln7rmlbDvvIxHQ+eiseWfuuaVsO+8jOa1
i+W6j+aAu+a3seW6pu+8gTwvZGl2PjxkaXY+5Luj56CB5q+U6L6D5aSN5p2C77yM5LiA6Iis5Lq6
5Y+v6IO955CG6Kej5LiN5p2l55qE77yBPC9kaXY+PHA+PGltZyBjbGFzcz0id3AtbW9yZS10YWcg
bWNlLXdwLW1vcmUiIHRpdGxlPSLpmIXor7vmm7TlpJrigKYiIHNyYz0iZGF0YTppbWFnZS9naWY7
YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFB
SUJSQUE3IiBhbHQ9IiIgZGF0YS13cC1tb3JlPSJtb3JlIiBkYXRhLXdwLW1vcmUtdGV4dD0iIiBk
YXRhLW1jZS1yZXNpemU9ImZhbHNlIiBkYXRhLW1jZS1wbGFjZWhvbGRlcj0iMSIgZGF0YS1tY2Ut
c3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJB
RUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTciPjwvcD48ZGl2PmBgYHNoZWxsPC9kaXY+PGRpdj5z
YW10b29scyBtcGlsZXVwIC1mIH4vcmVmZXJlbmNlL2dlbm9tZS9odW1hbl9nMWtfdjM3L2h1bWFu
X2cxa192MzcuZmFzdGEgLi4vUF9qbXplbmcuZmluYWwuYmFtfGhlYWQgLTEwMDAwMDAgfHBlcmwg
LWFsbmUgJ3skcG9zPWludCgkRlsxXS8xMDAwKTsgJGtleT0iJEZbMF1cdCRwb3MiOyRHQ3ska2V5
fSsrIGlmICRGWzJdPX4vW0dDXS87JGNvdW50c19zdW17JGtleX0rPSRGWzNdOyRudW1iZXJ7JGtl
eX0rKzt9RU5Ee3ByaW50ICIkX1x0JG51bWJlcnskX31cdCRHQ3skX31cdCRjb3VudHNfc3VteyRf
fSIgZm9yZWFjaCBzb3J0eyRhJmx0Oz0mZ3Q7JGJ9IGtleXMgJW51bWJlcn0nPC9kaXY+PGRpdj5g
YGA8L2Rpdj48ZGl2PjxiciBkYXRhLW1jZS1ib2d1cz0iMSI+PC9kaXY+PGRpdj7ogIzkuJTmiJHk
u6PnoIHlhpnnmoTkuI3lpb3vvIzot5ExMOS4h+ihjOmcgOimgSA0c++8jOi3keS4gOeZvuS4h+ih
jOmcgOimgTM2c++8jOaIkeS8sOiuoeaKiui/mTguOeS6v+ihjOeahGJhbei/kOihjOWujO+8jOaA
juS5iOedgOS5n+W+lzE15Liq5bCP5pe244CC5LiN6L+H5LiN6KaB57Sn77yM5oiR5Lus5bCx5ou/
5YmN6Z2i55qE55m+5LiH6KGM5pWw5o2u5YGa5LiA5Liq5rWL6K+V5bCx5aW95LqG44CCPC9kaXY+
PGRpdj7nu5PmnpzlpoLkuIvvvJo8L2Rpdj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly93d3cuYmlvLWlu
Zm8tdHJhaW5lZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDEvMTYucG5nIiBkYXRhLW1j
ZS1ocmVmPSJodHRwOi8vd3d3LmJpby1pbmZvLXRyYWluZWUuY29tL3dwLWNvbnRlbnQvdXBsb2Fk
cy8yMDE3LzAxLzE2LnBuZyI+PGltZyBjbGFzcz0iYWxpZ25ub25lIHNpemUtZnVsbCB3cC1pbWFn
ZS0yMzEwIiBzcmM9Imh0dHA6Ly93d3cuYmlvLWluZm8tdHJhaW5lZS5jb20vd3AtY29udGVudC91
cGxvYWRzLzIwMTcvMDEvMTYucG5nIiBhbHQ9IjEiIHdpZHRoPSIyNzEiIGhlaWdodD0iMzM0IiBk
YXRhLW1jZS1zcmM9Imh0dHA6Ly93d3cuYmlvLWluZm8tdHJhaW5lZS5jb20vd3AtY29udGVudC91
cGxvYWRzLzIwMTcvMDEvMTYucG5nIj48L2E+PC9kaXY+PGRpdj7liY3pnaLkuKTooYzmmK/nqpfl
j6PnmoTlnZDmoIfvvIznrKzlh6Dlj7fmn5PoibLkvZPnmoTnrKzlh6DkuKrnqpflj6PvvIzlkI7p
naIz6KGM5piv5pWw5o2u77yM5YiG5Yir5piv5q+P5Liq56qX5Y+j55qE5rWL5Yiw55qE56Kx5Z+6
5pWw77yMR0PnorHln7rmlbDvvIzmtYvluo/mgLvmt7HluqbvvIE8L2Rpdj48ZGl2PuS4iumdouea
hOaWh+S7tuWwseWPr+S7peWvvOWFpeWIsFLph4zpnaLov5vooYzlj6/op4bljJbllabvvIE8L2Rp
dj48ZGl2PjxpbWcgY2xhc3M9ImFsaWdubm9uZSBzaXplLWZ1bGwgd3AtaW1hZ2UtMjMxMSIgc3Jj
PSJodHRwOi8vd3d3LmJpby1pbmZvLXRyYWluZWUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE3
LzAxLzIzLnBuZyIgYWx0PSIyIiB3aWR0aD0iNjUyIiBoZWlnaHQ9IjUzNyIgZGF0YS1tY2Utc3Jj
PSJodHRwOi8vd3d3LmJpby1pbmZvLXRyYWluZWUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE3
LzAxLzIzLnBuZyI+PC9kaXY+PGRpdj5QUzrov5nkuKrnur/mgKflm57lvZLlm77kuI3kvJrnnIvl
iLDvvIzoh6rlt7HljrvmkJzntKLlk4jvvIEo5oiW6ICF5Y675oiR5Lus55Sf5L+h5oqA6IO95qCR
6K665Z2b77yaPGEgaHJlZj0iaHR0cDovL3d3dy5iaW90cmFpbmVlLmNvbS90aHJlYWQtNjk1LTEt
MS5odG1sIiBkYXRhLW1jZS1ocmVmPSJodHRwOi8vd3d3LmJpb3RyYWluZWUuY29tL3RocmVhZC02
OTUtMS0xLmh0bWwiPmh0dHA6Ly93d3cuYmlvdHJhaW5lZS5jb20vdGhyZWFkLTY5NS0xLTEuaHRt
bDwvYT4g5aSN5Yi26ZO+5o6l5Yiw5rWP6KeI5Zmo5omT5byA77yM5oiW6ICF54K55Ye76ZiF6K+7
5Y6f5paH5ZKv77yBKTwvZGl2PjxkaXY+5oiR6KeJ5b6X5oiR6L+Z5qyh55S755qE5Zu+6L+Y5LiN
6ZSZ77yM5b6I5piO5pi+6IO955yL5Yiw6L+Z5Liq6LaL5Yq/77yMR0PlkKvph4/mr5TovoPpq5jn
moTnqpflj6PvvIzmnInnnYDnm7jlupTmr5TovoPpq5jnmoTmtYvluo/mt7HluqbvvIE8L2Rpdj48
ZGl2PjxpbWcgY2xhc3M9ImFsaWdubm9uZSBzaXplLWZ1bGwgd3AtaW1hZ2UtMjMxMiIgc3JjPSJo
dHRwOi8vd3d3LmJpby1pbmZvLXRyYWluZWUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE3LzAx
LzMyLnBuZyIgYWx0PSIzIiB3aWR0aD0iNTEzIiBoZWlnaHQ9IjI5NSIgZGF0YS1tY2Utc3JjPSJo
dHRwOi8vd3d3LmJpby1pbmZvLXRyYWluZWUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE3LzAx
LzMyLnBuZyI+PC9kaXY+PGRpdj7lroznvo7nmoTor4HmmI7miJDlip/llaZ+PC9kaXY+PGRpdj7n
u5noh6rlt7HkuIDnmb7kuKrotZ7vvIzomb3nhLbmiJHmsqHmnInlr7nlhajln7rlm6Dnu4TmlbDm
ja7lgZrpqozor4HvvIzkvYbmmK/ln7rlm6Dnu4Tlt67lvILmsqHpgqPkuYjlpKfvvIzmiJHkuZ/p
mo/mnLrmir3moLfkuoblh6DmrKHvvIzlj5HnjrDpg73mnInov5nkuKrotovlir/jgII8L2Rpdj48
ZGl2PiZuYnNwOzxicj48L2Rpdj48ZGl2PuaIkeeahFLku6PnoIHlpoLkuIvvvJo8L2Rpdj48ZGl2
PmBgYFI8L2Rpdj48ZGl2PmE9cmVhZC50YWJsZSgnLi4vdG1wLnR4dCcpPC9kaXY+PGRpdj5hJEdD
ID0gYVssNF0vYVssM108L2Rpdj48ZGl2PmEkZGVwdGggPSBhWyw1XS9hWywzXTwvZGl2PjxkaXY+
YSA9IGFbYSRkZXB0aCZsdDsxMDAsXTwvZGl2PjxkaXY+cGxvdChhJEdDLGEkZGVwdGgpPC9kaXY+
PGRpdj5saWJyYXJ5KGdncGxvdDIpPC9kaXY+PGRpdj4jIEdFVCBFUVVBVElPTiBBTkQgUi1TUVVB
UkVEIEFTIFNUUklORzwvZGl2PjxkaXY+IyBTT1VSQ0U6IGh0dHA6Ly9nb28uZ2wvSzR5aDwvZGl2
PjxkaXY+bG1fZXFuICZsdDstIGZ1bmN0aW9uKHgseSl7PC9kaXY+PGRpdj5tICZsdDstIGxtKHkg
fiB4KTs8L2Rpdj48ZGl2PmVxICZsdDstIHN1YnN0aXR1dGUoaXRhbGljKHkpID09IGEgKyBiICUu
JSBpdGFsaWMoeCkqIiwifn5pdGFsaWMocileMn4iPSJ+cjIsPC9kaXY+PGRpdj5saXN0KGEgPSBm
b3JtYXQoY29lZihtKVsxXSwgZGlnaXRzID0gMiksPC9kaXY+PGRpdj5iID0gZm9ybWF0KGNvZWYo
bSlbMl0sIGRpZ2l0cyA9IDIpLDwvZGl2PjxkaXY+cjIgPSBmb3JtYXQoc3VtbWFyeShtKSRyLnNx
dWFyZWQsIGRpZ2l0cyA9IDMpKSk8L2Rpdj48ZGl2PmFzLmNoYXJhY3Rlcihhcy5leHByZXNzaW9u
KGVxKSk7PC9kaXY+PGRpdj59PC9kaXY+PGRpdj5wPWdncGxvdChhLGFlcyhHQyxkZXB0aCkpICsg
Z2VvbV9wb2ludCgpICs8L2Rpdj48ZGl2Pmdlb21fc21vb3RoKG1ldGhvZD0nbG0nLGZvcm11bGE9
eX54KSs8L2Rpdj48ZGl2Pmdlb21fdGV4dCh4ID0gMC41LCB5ID0gMTAwLCBsYWJlbCA9IGxtX2Vx
bihhJEdDICwgYSRkZXB0aCksIHBhcnNlID0gVFJVRSk8L2Rpdj48ZGl2PnA9cCt0aGVtZV9zZXQo
dGhlbWVfc2V0KHRoZW1lX2J3KGJhc2Vfc2l6ZT0yMCkpKTwvZGl2PjxkaXY+cD1wK3RoZW1lKHRl
eHQ9ZWxlbWVudF90ZXh0KGZhY2U9J2JvbGQnKSw8L2Rpdj48ZGl2PmF4aXMudGV4dC54PWVsZW1l
bnRfdGV4dChhbmdsZT0zMCxoanVzdD0xLHNpemUgPTE1KSw8L2Rpdj48ZGl2PnBsb3QudGl0bGUg
PSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpICw8L2Rpdj48ZGl2PnBhbmVsLmdyaWQgPSBlbGVt
ZW50X2JsYW5rKCksPC9kaXY+PGRpdj4jcGFuZWwuYm9yZGVyID0gZWxlbWVudF9ibGFuaygpPC9k
aXY+PGRpdj4pPC9kaXY+PGRpdj5wcmludChwKTwvZGl2PjxkaXY+Jm5ic3A7YGBgPGJyPjwvZGl2
PjxkaXY+Jm5ic3A7PGJyPjwvZGl2PjxkaXY+Jm5ic3A7PGJyPjwvZGl2PjxkaXY+55S75Zu+5Y+C
6ICD77yaPGEgaHJlZj0iaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTQ5Njk0
L2dncGxvdDItYWRkaW5nLXJlZ3Jlc3Npb24tbGluZS1lcXVhdGlvbi1hbmQtcjItb24tZ3JhcGgi
IGRhdGEtbWNlLWhyZWY9Imh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzU0OTY5
NC9nZ3Bsb3QyLWFkZGluZy1yZWdyZXNzaW9uLWxpbmUtZXF1YXRpb24tYW5kLXIyLW9uLWdyYXBo
Ij5odHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc1NDk2OTQvZ2dwbG90Mi1hZGRp
bmctcmVncmVzc2lvbi1saW5lLWVxdWF0aW9uLWFuZC1yMi1vbi1ncmFwaDwvYT48L2Rpdj4=">​</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2309.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【直播】我的基因组22：用IGV查看具体某个位点是否变异</title>
		<link>http://www.bio-info-trainee.com/2169.html</link>
		<comments>http://www.bio-info-trainee.com/2169.html#comments</comments>
		<pubDate>Mon, 19 Dec 2016 05:11:40 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>
		<category><![CDATA[基因组]]></category>
		<category><![CDATA[直播]]></category>
		<category><![CDATA[遗传咨询]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2169</guid>
		<description><![CDATA[下载IGV和导入文件的方法我就不多说了，可以直接在windows平台下使用，就跟 &#8230; <a href="http://www.bio-info-trainee.com/2169.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>下载IGV和导入文件的方法我就不多说了，可以直接在windows平台下使用，就跟你操作QQ一样，自己摸索就好了！</p>
<p>著名芬兰运动员Eero Mäntyranta，他拿过七枚奥运奖牌。他的血红细胞远超正常人水平，甚至一度被奥组委误以为服用了禁药。后来经过研究发现，他的EPOR基因上的一个位点rs121918116，发生了一个G&gt;A的变异，使得他的血氧含量达到了普通人的150%，所以他耐力惊人。</p>
<p>在snpPedia里面可以查看这个位点的信息：<a>http://snpedia.com/index.php/Rs121918116</a><span id="more-2169"></span></p>
<p>rs121918116, also known as c.1317G&gt;A, p.Trp439Ter or W439X,is a rare mutation in the <a>EPOR</a> erythropoietin receptor gene on chromosome 19.</p>
<p>看得出来这个变异造成了EPOR基因翻译的蛋白的氨基酸的改变，对EPOR基因的功能是有影响的</p>
<p>在dbSNP里面可以查看它在人的hg19坐标系的定位是chr19:11488870</p>
<p>(<a>https://www.ncbi.nlm.nih.gov/SNP/snp_ref.cgi?rs=121918116</a>)</p>
<p>前面我们已经把55G的bam文件按照染色体拆分了，那么我们就在IGB里面直接打开我们的19号染色体的bam文件来查看这个位点吧！</p>
<p>首先在坐标输入框里面输入EPOR基因，可以定位到整个基因，看看基因的全景。</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzo6z6ehXICMYzNOVPVWoB8y58BHwdVeiaLDt388vG7yGJNyVW0wvo1PdoJlcfpDD9tbjWEJiaBMNEw/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.7335640138408305" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzo6z6ehXICMYzNOVPVWoB8y58BHwdVeiaLDt388vG7yGJNyVW0wvo1PdoJlcfpDD9tbjWEJiaBMNEw/0?wx_fmt=png" data-type="png" data-w="1156" data-fail="0" /></p>
<p>然后输入具体的坐标：</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzo6z6ehXICMYzNOVPVWoB8qnQ5nmxn5ibV6Z6iahFyo3CLbDrwsQUpOfkmyAM6jEL5YSjOvCaLibNDQ/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="1.4184549356223175" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzo6z6ehXICMYzNOVPVWoB8qnQ5nmxn5ibV6Z6iahFyo3CLbDrwsQUpOfkmyAM6jEL5YSjOvCaLibNDQ/0?wx_fmt=png" data-type="png" data-w="466" data-fail="0" /></p>
<p>可以看到，我的这个位点，跟参考基因组这个位点的碱基是一模一样的，唉，看来我是没有传说中的运动天赋了。可是我觉得我跳远跳高都还不错呀。(大学记录，立定跳远是2.6米)</p>
<p>(当然，没有这个变异位点其实也是好事，所谓的运动天赋其实是一种病——家族性良性红细胞增多症，这种病会导致人脸红（可能关羽也有这种病，千里走单骑，耐力超好）、嗜睡、容易头痛。)</p>
<p>理论上这种方法可以把我的全基因组数据全部check一遍，这样就知道每个位点是否跟参考基因组不一致了，但是这个工作量太大了，我们作为数据分析人员不会选择这种方式，而是用已经被公认的软件来批量处理。后面我们会讲到，但是软件得到的变异情况，如果某个位点非常重要，推荐用IGV加载bam文件，然后定位到具体的坐标来仔细检查。</p>
<p>比如下面，可以大体上看到RGL3这个基因跟hg19参考基因组不同的地方还真不少，但是呢，这些variation真的影响健康吗？意义大吗？这就需要后面来具体探讨了。</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzo6z6ehXICMYzNOVPVWoB8w3HBibxENnemiaW7w18SM5xKsq1jonMHUgdpJMPlKISwr5zQmh5nGXibw/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.5743362831858407" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzo6z6ehXICMYzNOVPVWoB8w3HBibxENnemiaW7w18SM5xKsq1jonMHUgdpJMPlKISwr5zQmh5nGXibw/0?wx_fmt=png" data-type="png" data-w="1130" data-fail="0" /></p>
<p>也可以顺便看看第12讲提到的两个rs位点：</p>
<p>6 32666295 :Rs9275319--HLA-DQ</p>
<p>2 191964633 :Rs7574865--STAT4</p>
<p>但是需要载入不同的bam文件，分别是6号染色体和2号染色体，这样可以验证一下是不是我们的bcftools整个软件没有call到变异，是否是假阴性。</p>
<p>参考：</p>
<p><a>http://wap.sciencenet.cn/blogview.aspx?id=37068</a></p>
<p>好了 这一集就讲到这里，下面我们会详细讲解用软件CALL SNP 的细节</p>
<p>敬请期待！</p>
<p>请扫描以下二维码关注我们，获取直播系列的所有帖子！</p>
<div id="attachment_1965" style="width: 644px" class="wp-caption alignnone"><a href="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png"><img class="size-full wp-image-1965" src="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png" alt="菜鸟团公众号二维码" width="634" height="589" /></a><p class="wp-caption-text">菜鸟团公众号二维码</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2169.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【直播】我的基因组（20）:覆盖度详细探究</title>
		<link>http://www.bio-info-trainee.com/2165.html</link>
		<comments>http://www.bio-info-trainee.com/2165.html#comments</comments>
		<pubDate>Mon, 19 Dec 2016 05:10:03 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>
		<category><![CDATA[基因组]]></category>
		<category><![CDATA[直播]]></category>
		<category><![CDATA[遗传咨询]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2165</guid>
		<description><![CDATA[前面我们在第8讲提到了公司给我的一个报告的统计表格，有人反映不会做。 本来应该只 &#8230; <a href="http://www.bio-info-trainee.com/2165.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>前面我们在第8讲提到了公司给我的一个报告的统计表格，有人反映不会做。</p>
<p>本来应该只需要给我6亿条reads的（PE150测序，人30X），但是足足给了我8.9亿条！（但事实上很多paper发表的基因组高于60X的也不少）</p>
<p>表格里面提到了好几个概念，比如duplicate的reads，一般说的PCR造成的duplicate，在找变异的时候需要去除掉。然后是那些比对到了不同染色体的reads pair，虽然只有2.29% ，也是需要重点分析的。（前面我也讲了如何提取以及分别分析它们！）<span id="more-2165"></span></p>
<p>如果只是想重新前面的这些统计指标，非常很简单，就是samtools工具提供了一个flagstat功能，用法及结果如下：</p>
<p>samtools flagstat P_jmzeng.final.bam</p>
<p>&nbsp;</p>
<p>899361748 + 0 in total (QC-passed reads + QC-failed reads)</p>
<p>8597742 + 0 secondary</p>
<p>0 + 0 supplementary</p>
<p>132556557 + 0 duplicates</p>
<p>890858540 + 0 mapped (99.05% : N/A)</p>
<p>890764006 + 0 paired in sequencing</p>
<p>445382003 + 0 read1</p>
<p>445382003 + 0 read2</p>
<p>853255862 + 0 properly paired (95.79% : N/A)</p>
<p>881249604 + 0 with itself and mate mapped</p>
<p>1011194 + 0 singletons (0.11% : N/A)</p>
<p>20382234 + 0 with mate mapped to a different chr</p>
<p>12511988 + 0 with mate mapped to a different chr (mapQ&gt;=5)</p>
<p>从结果很明显可以看到，公司的确给了我8.9亿的reads，这个没错，duplicate的情况也的确是132556557/899361748 = 14.73%，而mapping的情况和proper mapping的情况也都显示好了，<strong>可以看到公司用的是同样的命令和方法！没有什么神秘的，我们生信工程师，做得就是这个，而且可以做得更好。</strong></p>
<p>后面的探索全基因组区域中碱基覆盖深度不低于多少X的比例，是需要画一个图，有非常多的现成的工具可以使用，包括 <a>BedTools' genomeCov</a> 、 <a>GATK's DepthOfCoverage</a>，还有<a>Picard suite</a>的几个命令。</p>
<p>其实本身原理很简单，就是把全基因组的每个坐标的depth都得到，然后得到depth的频数，然后画图。</p>
<p>我们可以对每条染色体单独来绘图，也可以针对全基因组来绘图，当然，公司给我们的数据是针对全基因组的。 脚本很简单：</p>
<p>samtools mpileup P_jmzeng.final.bam |perl -alne '{if($F[3]&gt;100){$depth{"over100"}++}else{$depth{$F[3]}++}}END{print "$_\t$depth{$_}" foreach sort{$a &lt;=&gt; $b}keys %depth}' 当是需要运行很久，毕竟全基因组的bam文件太大了。</p>
<p>如果分开运行，可以对下面的各条染色体bam文件批量跑一个脚本</p>
<p><img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0z14TU3axtmIaiaxiacwSbro1gLfe9SJaufzxVicrdJncHkE9keXLvOBMhA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0z14TU3axtmIaiaxiacwSbro1gLfe9SJaufzxVicrdJncHkE9keXLvOBMhA/0?wx_fmt=png" data-ratio="1.119241192411924" data-w="369" data-fail="0" /></p>
<p>脚本如下：</p>
<p>ls P_jmzeng.final.REF*.bam |while read id</p>
<p>do</p>
<p>echo $id</p>
<p>samtools mpileup $id |perl -alne '{if($F[3]&gt;100){$depth{"over100"}++}else{$depth{$F[3]}++}}END{print "$_\t$depth{$_}" foreach sort{$a &lt;=&gt; $b}keys %depth}' &gt;$id.depth.txt</p>
<p>done</p>
<p>跑完之后，对每条染色体都会输出如下文件：</p>
<p>over100 110789</p>
<p>0 27065</p>
<p>1 1730286</p>
<p>2 2219409</p>
<p>3 2728526</p>
<p>4 3251046</p>
<p>5 3774335</p>
<p>6 4303971</p>
<p>~~~~~~~~~~~~~~~~~~~~~~~</p>
<p>后面省略94行，每一行都是两列，第一列是测序深度，第二列是有着该测序深度的位点是多少个！所以行的第二列加起来，就是染色体的长度！！！面这个例子是X染色体的，绘图如下，可以看到X染色体的测序深度其实并不怎么好，全基因组测序深度平均高达44X，可是这个X染色体超过44X的只占极少的比例。</p>
<p>我用excel表格简单画个图如下：（当然，作为一个高级生物信息学工程师，用excel表格是有点low，但是这里只是为了说明一个问题，我们后面还是写程序的，用R语言）</p>
<p><img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0zHvKzAG7YPBVSF8IB9cRq3XjTBltLf1OhY8Aa4l0RjyUbtLXwJRo3vA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0zHvKzAG7YPBVSF8IB9cRq3XjTBltLf1OhY8Aa4l0RjyUbtLXwJRo3vA/0?wx_fmt=png" data-ratio="0.864951768488746" data-w="622" data-fail="0" /></p>
<p>比如我们再看看10号染色体，我随意在R里面画了个图：</p>
<p>a=read.table('P_jmzeng.final.REF_10.bam.depth.txt',stringsAsFactors = F)</p>
<p>plot(a[,2],type = 'l',xaxt="n",lwd=3)</p>
<p>axis(1, at = 1:nrow(a),labels =a[,1] , las=1)</p>
<p>abline(v=44)</p>
<p>可以看到10号染色体的测序深度要显著好于X染色体，大部分的测序深度都超过了30X！！（不过，这里虽然用来R，但是出图很丑，虽然不是专业做可视化的，但是想调整美观一点问题也不大，就是好耗费时间。）</p>
<p><img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0zMlDQ8wfS9rhBXoeDBCicicewwOCSn2NgorPzhSEbGm9SFzuMugEoBF5A/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0zMlDQ8wfS9rhBXoeDBCicicewwOCSn2NgorPzhSEbGm9SFzuMugEoBF5A/0?wx_fmt=png" data-ratio="0.7027914614121511" data-w="609" data-fail="0" /></p>
<p>做出depth的累积曲线图了，也是很简单的！</p>
<p>a=read.table('P_jmzeng.final.REF_10.bam.depth.txt',stringsAsFactors = F)</p>
<p>over100=a[1,]</p>
<p>a=a[-1,]</p>
<p>a=rbind(a,over100)</p>
<p>a[,3]= cumsum(a[,2])</p>
<p>a[,4]= 1-a[,3]/sum(a[,2])</p>
<p>plot(a[,4],type = 'l',xaxt="n",lwd=3)</p>
<p>axis(1, at = 1:nrow(a),labels =a[,1] , las=1)</p>
<p>abline(v=10);abline(v=20);abline(v=30)</p>
<p>最后得到的数据如下：第4列，就是不低于多少X的比例</p>
<p><img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0zePIunpEoiaFcIgIlraxPDib5Vc1bvgqqcqw19RU3fF1SLTDAzpRg8sbw/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0zePIunpEoiaFcIgIlraxPDib5Vc1bvgqqcqw19RU3fF1SLTDAzpRg8sbw/0?wx_fmt=png" data-ratio="1.1027667984189724" data-w="253" data-fail="0" /></p>
<p>可以看到大于10X测序深度的比例仍然高达92.88%，效果杠杠的！！</p>
<p><img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0zwbUJY13Nf5SAIYW6icl4aMwEj4b5b0f0AgTrUCc4Xex6UC37mI1oUkg/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxrNQricUl9ibMnKmwLHWjt0zwbUJY13Nf5SAIYW6icl4aMwEj4b5b0f0AgTrUCc4Xex6UC37mI1oUkg/0?wx_fmt=png" data-ratio="0.6887417218543046" data-w="604" data-fail="0" /><br />
这个测序深度累积分布图，就是很多人的重点！！！！（请大家仔细学习我上面的统计脚本和画图方法）</p>
<p>加油吧，骚年！！！！</p>
<p>请扫描以下二维码关注我们，获取直播系列的所有帖子！</p>
<div id="attachment_1965" style="width: 644px" class="wp-caption alignnone"><a href="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png"><img class="size-full wp-image-1965" src="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png" alt="菜鸟团公众号二维码" width="634" height="589" /></a><p class="wp-caption-text">菜鸟团公众号二维码</p></div>
<p>参考：</p>
<p><a>https://www.biostars.org/p/104063/</a></p>
<p><a>http://www.gettinggeneticsdone.com/2014/03/visualize-coverage-exome-targeted-ngs-bedtools.html</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2165.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【直播】我的基因组（19）:根据比对结果来统计测序深度和覆盖度</title>
		<link>http://www.bio-info-trainee.com/2163.html</link>
		<comments>http://www.bio-info-trainee.com/2163.html#comments</comments>
		<pubDate>Mon, 19 Dec 2016 05:08:43 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>
		<category><![CDATA[基因组]]></category>
		<category><![CDATA[直播]]></category>
		<category><![CDATA[遗传咨询]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2163</guid>
		<description><![CDATA[看来本次直播我的基因组分析流程效果还不错，不少朋友跟着自己动手开始分析全基因组测 &#8230; <a href="http://www.bio-info-trainee.com/2163.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>看来本次直播我的基因组分析流程效果还不错，不少朋友跟着自己动手开始分析全基因组测试数据了，值得表扬。其中有好几个朋友留言向我反映公司给的统计报告里面的覆盖度的问题，如下图：<span id="more-2163"></span></p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DhflTP6jqamDXMtxU5Oon7mhib62N5prjpH7kzaicXWosApX6H1gbHNtA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.5101214574898786" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DhflTP6jqamDXMtxU5Oon7mhib62N5prjpH7kzaicXWosApX6H1gbHNtA/0?wx_fmt=png" data-type="png" data-w="741" data-fail="0" /></p>
<p><strong>我在第 8讲中写道，每条染色体的覆盖度都接近于100%，而且测序深度大多在40X以上，不少读者表示看晕了，明明这个条形图显示覆盖度不到60%呀！</strong>其实是公司的这个图没有做好，它里面的覆盖度用的是最上面的曲线显示的，条形图是测序深度！！！</p>
<p>测序深度和覆盖度的示意图如下：</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DOZ3nPtAkYBUNVULSW6N1ArLCnOet1icjZRHnRickYrQPYrxsUCxarkvw/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.2712975098296199" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DOZ3nPtAkYBUNVULSW6N1ArLCnOet1icjZRHnRickYrQPYrxsUCxarkvw/0?wx_fmt=png" data-type="png" data-w="763" data-fail="0" /></p>
<p>那么我们就来自己动手统计一下比对好的sam/bam文件的测序深度和覆盖度吧！</p>
<p>这个统计主要依赖于samtools的depth功能，或者说mpileup功能，输入文件都是sort好bam格式的比对文件。事实上，你如果读samtools的源代码就会发现，其实depth功能调用的就是mpileup的函数。但是mpileup可以设置一系列的过滤参数。而depth命令是纯天然的，所以mpileup的结果一定会小于depth的测序深度。对mpileup，可以不选择-u -f 参数指定参考基因组，因为我们只需要测序深度情况，还有，可以指定-q 1 来过滤掉多比对情况。还可以用-Q来过滤低质量的碱基(base pair),用-A来过滤无法定位的reads，结果如下：</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DkvZ6CIPk3JIXEPGS2rUYAotjQl6ZbQoDcgyiaTzfib48AGGbkwxibeXmQ/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="1.2964912280701755" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DkvZ6CIPk3JIXEPGS2rUYAotjQl6ZbQoDcgyiaTzfib48AGGbkwxibeXmQ/0?wx_fmt=png" data-type="png" data-w="570" data-fail="0" /></p>
<p>针对这个全基因组位点的统计结果，我们很容易写脚本来计算每条平均的测序深度和各个染色体的覆盖度。</p>
<p>nohup time samtools mpileup P_jmzeng.final.bam |perl -alne '{$pos{$F[0]}++;$depth{$F[0]}+=$F[3]} END{print "$_\t$pos{$_}\t$depth{$_}" foreach sort keys %pos}' 1&gt;coverage_depth.txt 2&gt;coverage_depth.log &amp;</p>
<p>nohup ... &amp; ...为命令 表明命令后台执行  也可以</p>
<p>nohup ... &amp; &gt; *.log 将运行结果 写入到一个log文件里面</p>
<p>time 命令 可以统计 命令 运行的时间</p>
<p>这个脚本运行会比较慢，因为是针对整个55G的bam文件。耗时如下：</p>
<p>real 130m34.855s</p>
<p>user 237m14.308s</p>
<p>sys 1m45.692s</p>
<p>结果如下：</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_jpg/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DciaUEbicv9S8xIepNfkeufuEdhj85BmZq0ReULPTgOS81QTVkduibicN9w/640?wx_fmt=jpeg&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="1.5690021231422506" data-src="http://mmbiz.qpic.cn/mmbiz_jpg/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DciaUEbicv9S8xIepNfkeufuEdhj85BmZq0ReULPTgOS81QTVkduibicN9w/0?wx_fmt=jpeg" data-type="jpeg" data-w="471" data-fail="0" /></p>
<p>其中chromosome的长度在bam文件里面可以看到，用samtools view -H P_jmzeng.final.bam 即可！！！把上面的表格可视化，就是文章最开头的figure。<strong>但是很明显公司给我的各个指标均高于我自己算出来的！尤其是其中几个染色体的coverage非常差。</strong>当然平均测序深度，我在这里选择的是整个染色体的长度作为分母，对于那些覆盖度很差的染色体，平均测序深度就被被拉低。所以我起初猜想是不是问题出在<strong>我用的是samtools的mpileup命令，而不是depth命令！（因为我以前从来没有如此细致的去比较它们的差别，其实这这个命令的确有差别，但是对全基因组层面的统计指标几乎没什么影响）</strong></p>
<p>下面的表格，是我用depth命令的结果，而且平均测序深度我选择被覆盖到的染色体长度作为分母，所以看到测序深度有些许提升，但是有几条染色体的覆盖度堪忧。与公司给我的报告不符合！</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DE97g3nFFhW8LlrDd8jCaSElX71ZuOSWHibHZOWG6Z1WRTFyKIVxiaMZA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.6167979002624672" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DE97g3nFFhW8LlrDd8jCaSElX71ZuOSWHibHZOWG6Z1WRTFyKIVxiaMZA/0?wx_fmt=png" data-type="png" data-w="762" data-fail="0" /></p>
<p>先不要急着怪公司，请听下回分解</p>
<p>这个问题我会详细讲解，请关注后面的帖子：</p>
<p>或者不用重复造轮子，bedtools有这个命令：<a>http://bedtools.readthedocs.io/en/latest/content/tools/genomecov.html</a></p>
<p>而且Qualimap软件也可以做到，后面我们会讲到！</p>
<p>请扫描以下二维码关注我们，获取直播系列的所有帖子！</p>
<div id="attachment_1965" style="width: 644px" class="wp-caption alignnone"><a href="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png"><img class="size-full wp-image-1965" src="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png" alt="菜鸟团公众号二维码" width="634" height="589" /></a><p class="wp-caption-text">菜鸟团公众号二维码</p></div>
<p>参考：</p>
<p><a>http://seqanswers.com/forums/showthread.php?t=17438</a></p>
<p><a>https://www.biostars.org/p/218049/ </a></p>
<p><a>https://www.biostars.org/p/3326/</a></p>
<p><a>http://www.danielecook.com/calculate-depth-coverage-bam-file/</a></p>
<p><a>Should Samtools Pileup Be Performed On Uniquely Mapped Reads Or All The Reads?</a></p>
<p><a>Genomic Coverage - Samtool's undocumented "depth" verses the poorly documented pileup.</a></p>
<p><a>Discrepancy In Samtools Mpileup/Depth And Bedtools Genomecoveragebed Counts</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2163.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【直播】我的基因组（18）:初步分析PCR duplication的情况</title>
		<link>http://www.bio-info-trainee.com/2161.html</link>
		<comments>http://www.bio-info-trainee.com/2161.html#comments</comments>
		<pubDate>Mon, 19 Dec 2016 05:07:37 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>
		<category><![CDATA[基因组]]></category>
		<category><![CDATA[直播]]></category>
		<category><![CDATA[遗传咨询]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2161</guid>
		<description><![CDATA[我博客里面有详细讲读原文查解去除PCR duplication的reads的原理 &#8230; <a href="http://www.bio-info-trainee.com/2161.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>我博客里面有详细讲读原文查解去除PCR duplication的reads的原理和方法，还比较了samtools和picard这两个软件的区别，请点击阅看（<a>仔细探究samtools的rmdup是如何行使去除PCR重复reads功能的</a>），或者复制链接（<a target="_blank">http://www.bio-info-trainee.com/2003.html</a>）到浏览器查看。<span id="more-2161"></span></p>
<p>去除PCR duplication的reads用samtools或者picard均可，对单端测序数据来说，去除掉比对到同一个基因组坐标的reads即可，当然要保证比对的flag是一致的。但是单端测序比对flag情况只有0,4,16，flag很容易一致。然而对于双端测序来说，去除PCR重复不仅仅需要它们比对到的染色体起始终止位置相同，更重要的是flag的一致。在双端测序里面存在着一大堆的flag情况，如果flag不一致，比对到基因组同一坐标也不会认为是PCR的duplication。还有要考虑插入片段的大小，就是第9列，如果第9列不一致，这个双端测序也不会被当做PCR duplication而去除。</p>
<p>很明显，公司给我的bam文件里面并没有去除pcr duplicate，比如下面：</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwmxXDBcphVNADOa1kll9Wx0DBaOiclq99a9VFdZsjZkwJA6ozqY90KmVjRTvMsnS6eOJK7tzk6Kxw/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.8339350180505415" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwmxXDBcphVNADOa1kll9Wx0DBaOiclq99a9VFdZsjZkwJA6ozqY90KmVjRTvMsnS6eOJK7tzk6Kxw/0?wx_fmt=png" data-type="png" data-w="831" data-fail="0" /></p>
<p>这3条reads虽然都比对到了1号染色体的第13145个碱基的位置，但是尾号为63261的reads跟另外两个的flag不一致，所以它被保留下来，而另外两条reads虽然flag一致，但是第九列插入片段不一致，也不会被当做duplication被去除。</p>
<p>下面这种情况才是需要去除的PCR duplication，而且它们的flag是1017，代表它们的另一端read并没有成功比对。</p>
<p><img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DaRpIQ60fiaiaDLicUicyQcRDfDoMCKWqCg45hc5kdwicicXmMicsWLcOv0aVQ/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyDhu5bib9SicUHVkhHeJ2q7DaRpIQ60fiaiaDLicUicyQcRDfDoMCKWqCg45hc5kdwicicXmMicsWLcOv0aVQ/0?wx_fmt=png" data-ratio="0.0834403080872914" data-w="779" data-fail="0" /><br />
（请务必反复看这个示意图，并且自己找bam文件来理解我说的这段话）</p>
<p>而且他们给我的报告里面提到过有15%的duplication情况，我用Qualimap软件可视化如下：</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwmxXDBcphVNADOa1kll9WxrrbLviagjDq1AdjDrsUAF9N1xE8sJGThHekiatLTA3ficgDUTSl1lIzsA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.75" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwmxXDBcphVNADOa1kll9WxrrbLviagjDq1AdjDrsUAF9N1xE8sJGThHekiatLTA3ficgDUTSl1lIzsA/0?wx_fmt=png" data-type="png" data-w="1024" data-fail="0" /></p>
<p>可以看到大部分情况是duplicate一次，很少有多次重复的。</p>
<p>那么为什么要去除这个duplication呢？主要是因为在call snp的时候，如果某个变异位点的变异碱基都是来自于PCR重复，而我们却认为它深度足够判断是真的变异位点，这个结论其实有很大可能是假阳性。</p>
<p>请扫描以下二维码关注我们，获取直播系列的所有帖子！</p>
<div id="attachment_1965" style="width: 644px" class="wp-caption alignnone"><a href="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png"><img class="size-full wp-image-1965" src="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png" alt="菜鸟团公众号二维码" width="634" height="589" /></a><p class="wp-caption-text">菜鸟团公众号二维码</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2161.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【直播】我的基因组（17）:初步分析一下multiple mapping 的情况</title>
		<link>http://www.bio-info-trainee.com/2159.html</link>
		<comments>http://www.bio-info-trainee.com/2159.html#comments</comments>
		<pubDate>Mon, 19 Dec 2016 05:06:17 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>
		<category><![CDATA[基因组]]></category>
		<category><![CDATA[直播]]></category>
		<category><![CDATA[遗传咨询]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2159</guid>
		<description><![CDATA[分析multiple mapping的情况，还是先用公司已经提供的bam文件来吧 &#8230; <a href="http://www.bio-info-trainee.com/2159.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>分析multiple mapping的情况，还是先用公司已经提供的bam文件来吧，后面我会用自己比对得到的bam文件再重新分析一次。</p>
<p>公司给我的bam数据是把有效测序数据通过 BWA（<em>Li H et al.</em>）比对到参考基因组 (b37)，这是目前使用率很高的一个软件。在比对过程中，如果一个或一对 read(s) 在基因上可以有多个比对位置，<strong>BWA 的处理策略是从中选择一个最好的，如果有两个或以上最好的比对位置，则从中随机选择一个。</strong>这种多重比对（multiple hits）的处理对 SNP、INDEL 以及 CNV 等的检测有重要影响。<span id="more-2159"></span></p>
<p>通常检测 SNP 或 INDEL 的时候要使用高质量的比对结果(alignment)， 即比对质量值[MAPQ]大于0或更高。</p>
<p>前面我们详细讲了sam文件格式，在sam文件的第五列是MAPQ值，对某些软件，比如BWA，直接通过它就可以区分unique mapping和mutiple mapping的情况，就是判断这条reads是否只比对到参考基因组的唯一的位点。所以对于这种情况下的sam文件，提取unique mapping非常简单，用samtools view -q 1 （过滤掉MAPQ值低于1的情况）。</p>
<p>正好公司提供的bam文件就是这样的情况，因为他们在使用bwa这个软件来把测序数据比对到参考基因组的时候并没有加上-a这个参数，那么输出的sam文件里面，bwa会对每一个有multiple mapping情况的reads的MAPQ值设置为0，所以提前multiple mapping的reads是非常容易的。</p>
<p>但其它软件，其它参数产生的sam比对文件，如果我们要提取multiple mapping的reads就不那么容易了，因为MAPQ为0，并不一定就是multiple mapping。如下：</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzXdStck6VjzdaIbhnDBF5VjL0dGomLOwhxcovyLt4vHsicV8k9LoUZzicRA7fMQJX7rhw3NRwxeTUA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.9805194805194806" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzXdStck6VjzdaIbhnDBF5VjL0dGomLOwhxcovyLt4vHsicV8k9LoUZzicRA7fMQJX7rhw3NRwxeTUA/0?wx_fmt=png" data-type="png" data-w="770" data-fail="0" /></p>
<p>可以看到上面很多序列都是150M，但是mapping的quality都是0，也有很多其它比对序列也是quality为0，它们在IGV显示如下：</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzXdStck6VjzdaIbhnDBF5V5x2JeqWiaFOTIcFuzV1mD5iacPpNSzGVFg2zhXsXR7aM6uAe1WeDRBicQ/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.709154113557358" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzXdStck6VjzdaIbhnDBF5V5x2JeqWiaFOTIcFuzV1mD5iacPpNSzGVFg2zhXsXR7aM6uAe1WeDRBicQ/0?wx_fmt=png" data-type="png" data-w="863" data-fail="0" /></p>
<p>每一个矩形箭头都是一条比对好的reads，如果是白色的说明比对质量值为0，如果是灰色的，说明是正常的reads。</p>
<p>那么这个地方为什么会集中一大堆的multiple mapping的reads呢？</p>
<p>一些软件在根据bam文件来选择变异位点的时候会忽略掉这些mapping quality为0的reads。</p>
<p>也就是说对于这部分软件来说，这些mapping quality为0的reads是没有用的，相当于损失掉了，假设整体基因组的覆盖深度是很平均的，那这些MAPQ为0的位置的覆盖深度相当于降低了。这很有可能影响SNV位点的可信度。</p>
<p>那有multiple mapping情况的reads都集中在基因组的哪些区域呢？在哪些基因附近呢？</p>
<p>我们可以先用公司提供的bam文件提取出MAPQ为0的reads[里面包含大多数 multiple reads]，看一下大致的分布，后面再用我自己比对得到的bam作进更加准确的分析。</p>
<p>&nbsp;</p>
<p>请扫描以下二维码关注我们，获取直播系列的所有帖子！</p>
<div id="attachment_1965" style="width: 644px" class="wp-caption alignnone"><a href="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png"><img class="size-full wp-image-1965" src="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png" alt="菜鸟团公众号二维码" width="634" height="589" /></a><p class="wp-caption-text">菜鸟团公众号二维码</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2159.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【直播】我的基因组（16）:提取左右端测序数据比对到不同染色体的PE reads</title>
		<link>http://www.bio-info-trainee.com/2157.html</link>
		<comments>http://www.bio-info-trainee.com/2157.html#comments</comments>
		<pubDate>Mon, 19 Dec 2016 05:05:04 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>
		<category><![CDATA[基因组]]></category>
		<category><![CDATA[直播]]></category>
		<category><![CDATA[遗传咨询]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2157</guid>
		<description><![CDATA[这类情况仅仅针对于双端测序数据，因为根据实验原理来看，对一个DNA片段，会把它的 &#8230; <a href="http://www.bio-info-trainee.com/2157.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>这类情况仅仅针对于双端测序数据，因为根据实验原理来看，对一个DNA片段，会把它的左右两端分别测序，但是测序仪器的测序长度有限，对本次实验来说，打断的DNA片段长度在350个碱基左右(这个长度只是一个分布，并不是真实值)，理论来说测序是左右各150，加起来也就300，也就是说DNA片段中间还有50个碱基是测不到的（当然，实际上是有可能测通的）。而对这个配对的reads来说，来自于同一个DNA片段，所以理论上它们应该比对到同一条染色体的。也还是基于对sam格式的文件的理解，前面我们提到了sam文件的第3，7列指明了该reads比对到哪条染色体，以及该reads的配对reads比对到了哪条染色体(如果比对到同一条染色体，那么第7列是=符号)。所以我们只需要写脚本来提取即可！<span id="more-2157"></span></p>
<p>而左右端测序数据比对到不同染色体的情况，比较有意义，可能是融合基因，也可能是基因之间本来就相似性很大。</p>
<p>在sam文件里面左右端测序数据比对到不同染色体情况如下所示：</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzXdStck6VjzdaIbhnDBF5VrfVYtqxgRZibTfrLQbCDKWunicgdOjZozIfCKP8lHoRUia5ZLXfMvDzjw/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.19541984732824427" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzXdStck6VjzdaIbhnDBF5VrfVYtqxgRZibTfrLQbCDKWunicgdOjZozIfCKP8lHoRUia5ZLXfMvDzjw/0?wx_fmt=png" data-type="png" data-w="655" data-fail="0" /></p>
<p>提取的脚本很简单是：samtools view P_jmzeng.final.bam|perl -alne '{print if $F[6] ne "="}'  &gt;unpaired.sam  可以看到这样的情况还是挺多的，14G的sam文件，当然，里面有非常多的是没有比对上的，下面的统计可以看出。</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzXdStck6VjzdaIbhnDBF5V1Q2LNeNgt6tZIPzIMbHaZreBj4QhRcgSqVQZ4hxwNBt0HfVRu33A0Q/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="0.6083499005964215" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wzXdStck6VjzdaIbhnDBF5V1Q2LNeNgt6tZIPzIMbHaZreBj4QhRcgSqVQZ4hxwNBt0HfVRu33A0Q/0?wx_fmt=png" data-type="png" data-w="503" data-fail="0" /></p>
<p>可以用命令 cut -f 3,7 unpaired.sam |sort |uniq -c 简单统计一下</p>
<p>先提取出来，我们后面再讲如何应用这个数据。</p>
<p>三种具有代表性的肿瘤融合基因BCR-ABL、SLC45A3-ELK4 和. PAX3-FOXO1</p>
<p>融合基因（英语：Fusion gene）是指两个基因的全部或一部分的序列相互融合为一个新的基因的过程。 其有可能是染色体易位、中间缺失或染色体倒置所致的结果。</p>
<p>请扫描以下二维码关注我们，获取直播系列的所有帖子！</p>
<div id="attachment_1965" style="width: 644px" class="wp-caption alignnone"><a href="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png"><img class="size-full wp-image-1965" src="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png" alt="菜鸟团公众号二维码" width="634" height="589" /></a><p class="wp-caption-text">菜鸟团公众号二维码</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2157.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【直播】我的基因组（15）:提取未比对的测序数据</title>
		<link>http://www.bio-info-trainee.com/2155.html</link>
		<comments>http://www.bio-info-trainee.com/2155.html#comments</comments>
		<pubDate>Mon, 19 Dec 2016 05:03:59 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[直播我的个人基因组]]></category>
		<category><![CDATA[基因组]]></category>
		<category><![CDATA[直播]]></category>
		<category><![CDATA[遗传咨询]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2155</guid>
		<description><![CDATA[之前我们说了比对上的数据，那么会有人想到有没有没有比对上的数据呢？ 既然是从我的 &#8230; <a href="http://www.bio-info-trainee.com/2155.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>之前我们说了比对上的数据，那么会有人想到有没有没有比对上的数据呢？</p>
<p>既然是从我的血液里面提取到的DNA进行测序的，那么理论上测序仪出来的所有测序reads都应该是我的，也应该都可以比对到人类的参考基因组，但是实际过程中的确存在着未必对上的数据。</p>
<p>现有人类基因组毕竟只是个参考，也许我有某些独特的DNA序列呢？而且也不一定测序数据就都是人类的，也许我血液里面会有那么些微不纯粹呢？也有可能是某些片段变异的太多了，超过了常见的比对软件的承受能力，可以试用SHRIMP这个软件来提取一下。当然，这不是本讲的重点。<span id="more-2155"></span></p>
<p>前面我们已经详细讲解了sam文件的格式，就是为了给这个做铺垫，如果还不清楚的，可以回过头再仔细阅读(<a>http://genome.sph.umich.edu/wiki/SAM</a>)。sam格式文件的第3和第7列，可以用来判断某条reads是否比对成功到了基因组的染色体，左右两条reads是否比对到同一条染色体。有两个方法可以提取未比对成功的测序数据，sam文件的第3列是*的(如果是PE数据，需要考虑第6,7列)，或者sam文件的flag标签包含0x4的，代码如下：</p>
<section class="" data-source="bj.96weixin.com">
<section class="">
<section>samtools view -f4 sample.bam &gt; sample.unmapped.samsamtools view sample.bam |perl -alne '{print if $F[2] eq "*" or $F[5] eq "*" }' &gt; sample.unmapped.sam</p>
</section>
</section>
</section>
<p>虽然上面两个方法得到的结果是一模一样的，但是这个perl脚本运行速度远远比不上上面的samtools自带的参数。</p>
<p>sam文件的说明书里面有这样一句话;https://samtools.github.io/hts-specs/SAMv1.pdf</p>
<p>An unmapped segment without coordinate has a ‘*’ at this field.  However, an unmapped segment may also have an ordinary coordinate such that it can be placed at a desired position after sorting. If RNAME is ‘*’, no assumptions can be made about POS and CIGAR.</p>
<p>（其实也不一定要自己写脚本，我们前面讲到的用来把巨大的bam文件按照染色体分割的小软件bamtools也可以完成这个需求，用 bamtools -split -in my.bam -mapped 即可！）</p>
<p>小写的f是提取，大写的F是过滤。因为我们测序数据的双端的，那么sam文件的第3列是reads1的比对情况，第6列是reads2的比对情况。所以未比对成功的测序数据可以分成3类，仅reads1，仅reads2，和两端reads都没有比对成功。</p>
<p>也可以用下面的代码分步提取这3类未比对成功的reads:</p>
<section class="" data-source="bj.96weixin.com">
<section class="">
<section>samtools view -u  -f 4 -F264 alignments.bam  &gt; tmps1.bam samtools view -u -f 8 -F 260 alignments.bam  &gt; tmps2.bam samtools view -u -f 12 -F 256 alignments.bam &gt; tmps3.bamsamtools merge -u - tmps[123].bam | samtools sort -n - unmapped</p>
<p>bamToFastq -bam unmapped.bam -fq1 unmapped_reads1.fastq -fq2 unmapped_reads2.fastq</p>
</section>
</section>
</section>
<p>可以简单的统计一下未比对成功的reads有多少：</p>
<section class="" data-source="bj.96weixin.com">
<section>cut -f 3,6 P_jmzeng.unmapped.sam |sort |uniq -c &gt;unmapped.counts</section>
</section>
<p>结果如下</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wz9sAEuxobgFyrDBERr4ict0Wn9sWfZXcibVbtqAR1q2owXJcs7b9hURu1AmAyBX5ia1ljj3j61LZ6bA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-ratio="2.1021505376344085" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wz9sAEuxobgFyrDBERr4ict0Wn9sWfZXcibVbtqAR1q2owXJcs7b9hURu1AmAyBX5ia1ljj3j61LZ6bA/0?wx_fmt=png" data-type="png" data-w="186" data-fail="0" /></p>
<p>如果对bamtools软件的结果来统计：</p>
<p>samtools view P_jmzeng.final.REF_unmapped.bam |cut -f 3,7 |sort |uniq -c &gt;unmapped.counts</p>
<p>得到的结果只有7492014 * * 说明它只考虑了PE reads均为比对成功的情况。</p>
<p>很奇怪，看起来我的未比对成功的测序数据里面竟然没有右端成功，而左端失败的情况，这个我没办法解释。 我也还需要学习才能搞明白这件事。</p>
<p>(其实之前我也搞错了，如果PE reads的左右两端均没有比对成功，那么第3,6,7列都是*，4，5，8，9都是0，第2列flag只有77,141这两种情况。(77代表PE,而且PE的两条reads都是unmanned的，141跟77一样，只是它们分别指代unmanned的的PE的reads的两端,结合<a>https://broadinstitute.github.io/picard/explain-flags.html</a>来理解)</p>
<p><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wz9sAEuxobgFyrDBERr4ict0AZiaib53uf01TUibh6ic7WsoQliapnP2R4XVnXDXYkHc0iaokSAfIOOpia3oA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wz9sAEuxobgFyrDBERr4ict0AZiaib53uf01TUibh6ic7WsoQliapnP2R4XVnXDXYkHc0iaokSAfIOOpia3oA/0?wx_fmt=png" data-type="png" data-ratio="0.9142091152815014" data-w="373" data-fail="0" /></p>
<p>如果是左右两端reads<strong>只有一个比对成功，另一个reads没有比对上</strong>，如果是read1比对了，read2失败了，那么第3列应该是read1的染色体，第7列应该是*号表明read2没有比对成功。同理，如果read2比对成功，read1失败，按照道理，我们应该看得第7列有染色体，第3列是*号，但是我们在提取的unmapped文件里面，没有发现这种情况。</p>
<p>但其实不管是左端还是右端，第3列都是有染色体的，第7列是=号，但这并不能说明左端跟右端有着同样的比对结果。而第6列CIGAR是*，这个才是判断左右端是否匹配失败的标准。</p>
<p>sam文件的说明书里面有这样一句话;https://samtools.github.io/hts-specs/SAMv1.pdf</p>
<p>对于第6列CIGAR来说，An unmapped segment without coordinate has a ‘*’ at this field. However, an unmapped segment may also have an ordinary coordinate such that it can be placed at a desired position after sorting. If RNAME is ‘*’, no assumptions can be made about POS and CIGAR.</p>
<p><strong>这也就是我为什么没有发现第7列有染色体，第3列是*号的reads。即使PE reads的右端匹配，左端未匹配，它只会把这个read比对的染色体写在第3列，而不是第7列！所以说要想探究它是左端还是右端未比对成功，得看flag。</strong></p>
<p><strong><img class="" src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wz9sAEuxobgFyrDBERr4ict0WebABCETInhXo9zia87zPrcTJ2XOdnokZ5F1GJAd4SD2AzuwDIc2NJA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wz9sAEuxobgFyrDBERr4ict0WebABCETInhXo9zia87zPrcTJ2XOdnokZ5F1GJAd4SD2AzuwDIc2NJA/0?wx_fmt=png" data-type="png" data-ratio="0.08184143222506395" data-w="782" data-fail="0" /></strong></p>
<p>这样就提取出来了未比对的测序数据，但是还需要做进一步分析，看看这些reads究竟是何方大神！具体要在第25讲之后了，敬请期待！</p>
<p>请扫描以下二维码关注我们，获取直播系列的所有帖子！</p>
<div id="attachment_1965" style="width: 644px" class="wp-caption alignnone"><a href="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png"><img class="size-full wp-image-1965" src="http://www.bio-info-trainee.com/wp-content/uploads/2016/10/12.png" alt="菜鸟团公众号二维码" width="634" height="589" /></a><p class="wp-caption-text">菜鸟团公众号二维码</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2155.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
