lixin 发表于 2020-4-9 11:53:22

VERILOG语法问题【汇总贴】

温馨提示:明德扬2023推出了全新课程——逻辑设计基本功修炼课,降低学习FPGA门槛的同时,增加了学习的趣味性,并组织了考试赢积分活动(点击→了解课程详情)http://www.mdy-edu.com/ffkc/415.html,感兴趣请联系易老师:13112063618(微信同步)



Verilog知识点参考:书籍《FPGA至简设计原理与应用》第一篇FPGA基础知识第三章硬件描述语言Verilog


【问题0】:关于阻塞赋值“=”和非阻塞赋值“<=”的讨论。
答:请看此帖子:http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=932


【问题1】:关于 data的含义。
答:MDY常用的数据选择语句http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=937


【问题2】:关于数组的含义,即regdata的含义。
答:Verilog中数组的表示 http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=946


【问题3】:VERILOG中正负数、小数的表示方法。
答:FPGA中正负数和定点小数的表示方法http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=771


【问题4】:在设计文件中,如何确定信号是什么类型的?
答:【技巧分享】在设计文件中,如何确定信号是reg型还是wire型?http://fpgabbs.com/forum.php?mod ... =621&fromuid=100110
      另外,对于没有定义的信号,默认为1比特wire型。


【问题5】:我设计了一个模块,并且模块命名为latch,为什么软件会提示错误。
答:latch是VERILOG关键词,不能用于自己设计的模块命名或者信号名。所以要注意关键词。


【问题6:ALWAYS不写ESLE表示保持原来的值】:下面是一个ALWAYS语句,当rst_n==1、a==1时,led的值是多少?

回复:当rst_n==1,a==1时,上图中第3、第6和第9行都不满足条件,因此第4、7、10行的赋值语句都不会执行。也就是说led值没有改变。
         所以,时钟上升沿之后,led还会保持原来的值。如果原来的led等于0,之后也是0;原来等于1,之后也是等于1.


【问题7】左移和右移,空出的位置是补0吗?
答:是的。左移就是低位补0,右移就是高位补0。


【问题8】为啥begin后面加这个冒号,以前没见到过。

答:begin后面加冒号,相当于这个begin end块起一个名字。起名字是做区分用,一般情况下,不对begin/end命名,所以这种写法很少见。


【问题9】在verilog中到底应不应该用for循环?
答:在硬件描述语言中for语句的使用较C语言等软件描述语言有较大的区别。在Verilog中除了在Testbench中使用for语句外,在RTL级编码中是却很少使用for循环语句。主要原因就是for循环会被综合器展开为所有变量情况的执行语句,每个变量独立占用寄存器资源,每条执行语句并不能有效的复用逻辑资源,造成巨大的资源浪费。简单来说:for循环几次,就是将相同的电路复制几次,因此循环次数越多,占用面积越大,综合就越慢。


【问题10】在Verilog中想要给一个信号赋值的位宽是可变的,应该怎么做?
答:可以使用下面这个赋值方法:{WID{1'b1}}举例:din <= {WID{1'b1}},当WID为8的时候,din <= 8'b1111_1111
      通过修改WID的值,可使赋值的位宽发生变化。


【问题11】data[b+7:b]<=rx[a+7:a]老师我想用for循环动态给data的区间赋值,但是报错说b不是常量怎么办?
答:verilog中不支持位宽选择时 上边界和下边界均为变量。另外:不要用软件的思维来做FPGA设计


【问题12】提示endmodule语法错误?这个能有什么错误呢?如下图:

答:像这种提示哪几种错误的,就打开代码,找到这一行,前前后后,检查代码有哪些与“平常”不一样的地方。如果 清楚,可以打开一个已经OK的代码,来代码下。


【问题13】请问以下变量后加个"-"意思是取这个变量的某几位吗?

答:上面的按减号带入结果就可以了,例如 data,就是data。 data,就是data。


【问题14】问能不能在适中的下降沿采集数据呢,比如写成always@(negedge clk)
答:整体系统中,建议都使用时钟上升沿,不要使用下降沿,否则不符合设计规范,造成系统的不稳定。
      FPGA系统会对全部路径进行路径分析,会计算两个D触发器之间的延时,确保这个时钟上升沿发出的数据,在下一个时钟上升沿能采到。
      假如上升沿发数据,下降沿来采集(或者下降沿发数据,上升沿采集),相当于时钟周期减半了,时序要求更高了。


【问题15】二进制000-二进制001=111这个最高位怎么算的?
答:参考十进制加减的运算方法,如下图所示得到的。

所不同的是:二进制是 0-0=0,0-1=1,1-0=1,1-1=0。
如果保存结果的位宽只保留最低位的话,那就是111。
更多更详细的资料,请看《FPGA至简设计原理与应用》:http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=989,请看第一篇,第三章5.3 算术运算符的内容。


【问题16】rst_n==1'b0 和!rst_n不同的问题。

LED灯设计为什么LED和计数器复位条件不一样?
答:这两个结果是一样的,都是当rst_n为1时复位。只是写法不同。


【问题17】请问各位老师同学 如何用modelsim获取一段代码的运行时间? 谢谢
答:verilog是硬件描述语言,不是软件。一般情况下,硬件的运行速度仅取决于系统时钟频率。但随着时钟频率的提高,关键路径成为制约硬件速度的瓶颈。至于最高速度,要基于具体的工艺库,并用DC、PT等专业软件做静态时序分析才能得出来。


【问题18】a表示什么意思呢?
答:就是a的意思


【问题19】data <= data_b 表示什么意思?
答:将data_b看作一个矩阵,表示调用矩阵的第0行第2个数据。


【问题20:一个always里有多少信号时的理解问题】如下图所示,第9行代码里的key_reg值,是等于第8行的key的值还是key_reg的值。是先执行第8行,再执行第9行代码吗?

答:当一个always里设计了多个信号时,如上图中设计了key_reg和delay_cnt的值,其实质可拆分成如下代码。

而众所周知,verilog代码中每个always都是独立并且同时执行的。
因此上图中第23行的代码和第32行的判断是同时进行的。假设当前key_reg等于0。在时钟上升沿前key等于1。那么第23行执行后,key_reg值更新为1。同时第32行判断时key_reg值仍然为0,不是最新的值为1。
在此,MDY强烈建议,一个ALWAYS设计一个信号,有助于做逻辑设计,理清思路,避免很多理解上的问题。
而且事实上,一个always设计多个信号更像写“软件”的代码,是用软件思维在设计FPGA,而在FPAG中是不规范的。


【问题21】 always 语句中,不论是赋值 还是 比较,都是针对 时钟上升沿到来前的前面一点点时刻的 寄存器中的数据 来赋值 和 比较的。
答:是的。具体请看下面的波形图规则 :http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=1006


【问题22】问一下关于敏感信号的事情,任何信号都可以被当作敏感信号吗?也就是always模块里面:always @(posedge din_vld or negedge rst_n)begin这样写可以吗?
答:语法上是可以的,但不符合FPGA和ASIC的设计规范。一般这个是写时钟和复位信号。不规范的话,会造成系统的不稳定


【问题23】复位信号必须要放到敏感信号列表吗?
答:异步复位需要将复位信号加到敏感列表,同步信号不需要


【问题24】多个模块的输出信号,可以连到一起,共同驱动另一个模块吗?答:遇到此问题,可以稍微推理一下就能清楚了。例如模块A有一个输出信号a,模块B有一个输出信号b,然后这两个信号连在一起(怎么做的不清楚,先假充有这种情况),      共同均有一个模块C的输入信号c。那么存在这种情况,模块A要输出1,模块B要输出0给模块C,那么模块C收到的是0还是1呢?这种情况下,模块C就不清楚收到什么了。      所以本题答案:两个模块的输出信号不能连在一起。

【问题25】组合逻辑电路可以有反馈吗?答:组合逻辑不可以有反馈的。组合逻辑根据当前输入得到输出,而这个输出信号不能与输入相连,如果相连了,那么输出的值就不确定了。

【问题26】写的代码太复杂/未遇到的语法,不理解/,代码不知道哪里错了/等问题答:FPGA的代码格式都是非常简单的,不推荐也不建议使用复杂的语法。如果使用了使用语法,又出错时,有如下建议
   1. 将复杂代码,使用简单代码代替。
   2. 或者,将代码分解,每添加一行看不行结果,以方便定位哪里有问题。


【问题27】什么时候使用组合逻辑,什么时候使用时序逻辑?
答:请看此篇文章,有详细解释:http://www.mdy-edu.com/wentijieda/20210410/1322.html


【问题28】VERILOG语法中,signed类型的作用。答:1.在verilog中有时会用signed修饰符来修饰定义的数据,运算的时候也会用$signed()任务来强制转换数据,那么signed的修饰是为什么呢,是为了区分有符号数和无符号数的加法和乘法吗?
2.verilog中的加法和乘法操作前,会先对操作数据扩位成结果相同的位宽,然后进行加法或者乘法处理。比如a/b都为4位数据,c为5位数据,c = a + b,这个运算的时候会先把a和b扩位成5位, 然后按照无符号加法进行相加。a/b没有被signed修饰的时候会按照无符号数的扩位方式进行扩位,即高位补0,加法的结果当然也是a、b为无符号数相加的结果。 3.如果想把a、b作为有符号数来相加,那么就得在a/b数据定义的时候用signed修改,或者在计算的时候用$signed()来修饰,这样在c = a + b,这个运算开始的扩位就会按照有符号数的方式进   
行扩位,在高位补符号位,加法得出的结果就是a、b视为有符号数的结果。当然c要视为有符号数据。https://www.cnblogs.com/yuandonghua/p/signed.html

【问题29】VERILOG中定义的类型,是怎么分辨是有符号数、无符号数、或者16进制数的。
      答:要真正理解一点,FPGA的信号,其本质上是二进制数。例如4'b1010。至于这个二进制数,是有符号数,还是无符号数,都是取决于工程师的解释。例如4'b1010,可以理解为无符号数10,也可以 理解为有符号数原码-2,            也可以理解为有符号数补码-6。更多解释,请看《FPGA至简原理与应用》一书中关于verilog和补码由来这一部分:http://www.mdy-edu.com/zhijian/2021/0409/1239.html


【问题30】在FPGA计算中,对于a+b等,对a和b是根据无符号数,还是有符号数来计算的?答:再次强调,真正理解:FPGA信号本质是二进制数,无论a和b是什么类型的信号,最终都是换算成二进制来计算,自然的遵守二进制计算基本法则,       具体请看:http://www.mdy-edu.com/zhijian/2021/0409/1237.html

【问题31】请问generate的使用方法
答:可以参考如下文章:07 generate语法http://www.mdy-edu.com/wentijieda/20210410/1323.html(出处: 明德扬论坛)

【问题32】请问信号定义时,输出类型的定义和信号类型的定义可以放到一起写吗?答:可以的,举例:output   reg    dout;


【问题33】len <= {len,din},len信号的位宽为16bit,din的位宽为8bit,这段代码的意思是什么?答:举例说明,假设din需要传输的数据为8’h55和8‘hd5,len初始为16’h0,则第一次进行赋值时,len为8‘h0,din为8’h55,拼接之后赋值给len,此时len=16‘h0055;
      第二次进行赋值时,len为8’h55,din为8‘hd5,拼接之后赋值给len。此时len=16’h55d5。


【问题34】红色箭头指的那些语句是什么意思?http://www.mdy-edu.com/uploads/allimg/210409/194P46058-9.jpg http://www.mdy-edu.com/uploads/allimg/210409/194P42209-10.jpg
答:这是宏定义的的一种用法。此时表示该.v文件使用的是从“ 'ifndef SIMPLE”到“ 'endif”的代码,如果把“' define SIMPLE”注释掉的话,使用的就是除“ 'ifndef SIMPLE”到“ 'endif”以外的代码。


问题35】好多个模块是只编译顶层模块就可以了吗?
答:无论是仿真还是综合,其综合都是从顶层模块开始的。通过调用顶层模块,然后根据顶层模块的例化代码,就能找到下一层模块,逐级找下去,就能找到所有使用到的模块了


【问题36】fpga乘法可以直接用*吗?答:可以的.加法器 、减法器和乘法器是可以直接使用的,除法器由于占用资源比较大,不建议直接使用


【问题37】问:例化的时候,如果对接口留空是什么结果
答:例化的时候,如果是模块的输入信号,留空的话表示输入0。如果是输出信号,留空的话,没有影响。


【问题38】这个4bit MCU_FSMC_data,拼接有简单的写法吗?
答:data_4 <= {4{MCU_FSMC_data}};


【问题39】这是明德杨语法课的一段代码,左边的写法为什么是错误的呀?

答:那是软件思维,软件思维就是先执行第1行,再执行第2行;右边是硬件思维,在描述b信号的功能。


【问题40】ALWAYS里的 ifelse是否有优化级?是按顺序判断的吗?
答:是否理解“else”的意思?中文含义是叫“否则”,否则是指一个条件的否则。也就是说前面条件不满足,然后再看此条件。
      所以不用纠结于“顺序执行”、“优先级”概念,就按字面上的意思来理解就对了


【问题41】代码中,“if(0)”是什么含义?如下图。

答:verilog里面,if是条件判断语句,如果括号里为真,则执行,则假则不执行。if(0),括号里条件是假,所以不执行。
      因此上面代码中,条件写成if(0)就是表示永远不执行的意思。
      有人好奇为什么这么写?这不是毫无意义吗?嗯,具体原因可以问作者,可能是前期代码要用到,后期发现不用了,又懒得改太多,就写成0吧。


【问题42】FULL和是A_WIDTH都是parameter,FULL是什么表达方式呢?
答: []在VERILOG里用于表示第几比特,例如a表示a的比特0位,a表示a的比特1位。程序里(包括verilog或者c语言)不管定义成什么类型,其最本质的就是二进制数。
      使用parameter定义了FULL和A_WIDTH,其也是二进制数,所以FULL,自然就是FULL的比特A_WIDTH位。


【问题43】always那个括号里面的*号代表什么意思?
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARoAAABpCAYAAADlcuxhAAAgAElEQVR4Aey9+bdVVZbnW39AvfEya0RkRoQKtz3d7vt92tvSXnrppVMEREQREAREBAUVQVEUBVERBaUTWxoBpREEBZVOxD6MJiOzctSozPdyvFE/fd6Y63D0GkFU1agM0DTOHWOPve/a6+xm7bW+a8655vzO//Rv//ZvVLdqG1T7QLUPXMo+8J8u5cWr16523mofqPYB6QNVoKlKdFWJttoHLnkfqAJNtZNd8k5WlWqqUk0VaKpAUwWaah+45H2gCjTVTnbJO1lVoqlKNFWgqQJNFWiqfeCS94Eq0FQ72SXvZFWJpirRVIGmCjRVoKn2gUveB6pAU+1kl7yTVSWaqkRTBZoq0FSBptoHLnkfqAJNtZNd8k5WlWiqEk0VaKpAUwWaah+45H2gCjTVTnbJO1lVoqlKNFWgqQJNFWiqfeCS94Eq0FQ72SXvZFWJpirRVIGmCjRVoKn2gUveB6pAU+1kl7yTVSWaqkRTBZoq0FSBptoHLnkfqAJNtZNd8k5WlWiqEk0VaKpAUwWaah+45H3g3wU0nufxv7O5novvGri+juebeK6D4zn4QYjjRTh2gGuH2JbPuDHXsWPHLj799DxffPEFCxcuJJ/PY9s2vXr1Ys+ePfzud7/j4MGDtLa20rt3b7Zv384f/vAHjh8/zu23345pmliWxeTJk/nwww/5/e9/z5o1a1i8eDFPPvkkN998M9lsliAIVL0/9w6u5+E7Hr48v2fjyzN7Nq7n4Hkurhtg+/IOPp4rbeF+2x6u6+L7vtoqx3I/uZfvyjUqbefieAGO6+N6vnomVcdzieNI3cPxfRzfVffo/BxyTylX51259nf3/3PvVC2vtHt1/5fsC/8rqfUyAo2JKyBTARrfxXZdDFMGbUgU5TENj8CLCIJIDchcLoeu6ySTScIwVMfFYhHHcRRQpFIpBSpyTga1AIwMZjmWRjQMQ9WVMgEqTdPU+QrAVOoKEFys0RUYuAI0ZYCRQa4ARg1oF8cNLoDE90FGriXXlE3uUXkWAT85vjjQBNhOp9+4DqahqbYRABKwLoOZPMOFzfVUuZyXZ6kCTRU8LtaPL0fZjwtoPBlolpJoRCpwZNAFIZ4v0oxH4GdxLZ8ojLGsslRSkQriOFagIY2WyWTUgK0ARKWOnJOBLYAjx/Ib+V+ASerI/wI4cl7KZC///88+RFnyECASQHS+J4koAFCSyJ8CjVxT7iFbFEVqK/9flow6SzRloBDQ8HEcWwFUFJaBQ+qVAa8MhtJulU09t4CkAhwB14sD5v/s/arnquD0l+gDPwqg+W5A2HhKbZBBa2PblhpUvi/Sigx+UbEiHEckAqlTlgxEEpBNgEEAQyQYGbyV8grQCGgI+Mj/lcaT/2WAy//yO6lTGfyVuhXAqvzmT/cymC9sF6QZqVMBge9A47tOK9cUYBMpSqQyVd911TOU71cBjgvXuVBfnk/qyzuo5xaVTAFJBczkd99tlWf4rs53z/Cn71E9V22TS9MHLjvQdB603zuuzMzKNiFShKgjjgKewA+IomzZHuGEWFZZEpCBJtcQqaQiFYg6VJFIpLwCMnJckV7kNwJCck5+J+VSJr+VvZTLXja51sU6n5yrgIMjthAluQS4XlkVKksZFbuN+62kU/ld5bfyv6h7AnIiialnvHAtdV+3DL4KgB0LQ9cRlbFYasYwTHwBSdfGVzYgUZFEjSrbdNTvHVE3HQIB8G8B6S/bmS72Tp3L1HNcmBQuVl45X93/Zb/Lj6k9LyvQSCeTQSwNUJEiZC+ztO2FWLaHbhnYloHnWHiWge+ItCIzvoCBr+p9O5g7DXa5RqVhBTzkPnLtb69v29/eW+rJgK7UEdCpDAAZ8HK+AkQV0KlcW/aV95B7huEFg2yYJWO5aIaDrhsKtCLfxrcy+LaA1Xf2FfmdPJdc5+qrr+a2226jo6OjbDNS7yj2mLINKfA9osAl9h1cyyAKfYYNG8H8OxfihxG+ZZIPxcYkameA50dYdtkmY9sOrmyGTtYXQPoO8Dq/z7/nWN6hM4BXvm8FvOVdK+0r36XSfv+ee1Z/+x8PkH4QoJHO2XmwygBxghz5pjZ69e5Dt7Y2CpFH1reJHIPAtXA8F9sLMP1QSTYXszfINSsduXLcuVNW7tt53/n8H/+2Uu+P68j/MnhCGeCOj2n7dKlP0NytF4OGjuS6CZPo3asnoa0T6I1kPbH1lCWoynOJ9NKzZ08ef/xxpk6dqkBGpKdSUwumF2E4HtlcFktP41sasWuSDRwy6QSlphLzFy5hwcJ7iB2TwDZwRc10RKKK1RZlSzSVWujbqyeekSEvQPM9G9JfrrPKOwlwCkgL0EjbCMCIiifvVCgU1PeW8kobX6xNq2V/uW/yY2vLywo0lU4mHbMiUchxHGeZd9dint24jc+/+DUvbtxAW3MBJ9VA7Br4ronjO1iyciSG4R94BaVscxHJJaMM1W6YY+yEyWx6ZQenzn3OqTMfc/bMKe6ZfzstoU4psDEMXalpMvhkQMr7L126lMcee0wNPvk/CkPSmoEuK2vZAo2JRhwzQz50cDP1NOUCTD1DnM9TauvBjl37uPWGCbiZFPk4wnMDDNMnpXtcPXgEm1/cwt5dO2nNRYRaWi3DX8xe9O/tlBXJUa5TkdTa2toUgI4YMUKBqLxzBWQr+3/vfau//48DTJcVaKSDVTqZDCzplLJ6FIVZbrp1LrPvWMKhQ0fZ8uJGWooxOc8gcjQCT5a+LczAxfTCH3ypVt4hl8uSSSfxvIgefQew+dVdPL1xK0GhhcaUxoTrr+Opxx5k4cwp+Hojrqh2vq9mejEAjx49ms2bN9O/f/9vbUpiHPaCiKTl0tKtJ9NuvZWRwwcR2ho5V8cxkkq6c/2ARs3ittlzeWPLC3S0NBHarlr6t5yQlObSu2MgL23ZzvEj7xLqaQqOhS/L49/65/xlOqm0RUUFFSlGJBj5tvJ+hw8f5sEHHySRSHy7wlf5/lWQ+Mu0/3+Udry0QKNUmbI6Iw1S6ZTlxhGDq4dhGoRBRGPGoybhcO99D/Lcs8/QFPlEVoqskyJ0NLwLQKMrJz5xgKsMmvIKiwwgNYjknpX7qhWZyvJuZRWoXF+pXhdWbMrP8/3rlAdkp7oXVnIqA1XTMxSLBXTTZvHSB3l49ToSdsywsdfz7PMvsPKRFTx8/0K2r1tF1k4ReJ4CGWkDmd3XrVvHww8/jPj65HL5C0ZnF92wqM/Y9OwzkPePH+flLS+S9wxiO6NANwpdTMtB93Pkiy3se/Ul7p8/D70xheeE+GEJJyiSTrvcctOtHNyzlybPIWdq+N+2WaUt/rTNKu+nvteFNlU+Op3e/9t2VmXl95IVQXkv+Z2AjRyL/am9vZv6LjKpCBD5vqySff+bKP+fC88m1+78DOVv89c1KH+K73xJgcZ2fQzTUjNaXV0ttXW1NDQ0kkwmlME3Dn08WbIOIjJ2kQYtYOkDD/Lyphfplo8IzASRq2HpGWrq67iqvo6kZlCXzNC1toZUQ60amHX1jdTX1WHoGWVETWumuo/cr7a+noaGenSxdcgKjuNj6C61tQ3U1HQhkarDtk003aSuroG6mq4kE43YVnmVxrIdGhMp6urqy1ttHY2NDVimiWu7dOvVh2fWb2TcpKkYcYmd+w7x6ONP8tZb+3hq5QPcN/dmxo+6umwQ9Xwy6QyDBg1i//79TLvlZlKpJEEYqBWkHj17cfjYcabdvoCM5bH95ZdZ99RqmiOHLc+u5qlVDxMHAn4BhhOiWz4bn36Kd3a+ipPJKA9q389jORG6GTJz9l0cO3CAKF2PXnMFDbV11NXXkcmkcR1brVgJ+IhjpLx/Q0OCeqlTV6cA0LXMcpvJSpaoZYZ8y0bqamupqaujvr6Rhro6kg3ltpdvabmuuk4ikcQLfLKR+EDpBIG4D4gPk01jOkNdYwOmbpBOJtUzda1rVG2hFgHEUC4gpiaMKsj8FIDnkgJNfdiHto5hvLR5M+dOn+Dsp59y9MNTLF+xjCa3kSh5Bc2RLA0X0L1eNJgxy5ffx9vPraVnnEb3GkmFISPGTuP9c7/mq9//jgVTp/PMtv1884//yKGXV9N32FjePn6G8x+fZNaUa0gEecZNn8/OA4f45LPzHD19hoPHDnDzhH7kU1eR0wtcM2wO57/4F377h/O8sGkJpZLOlFuXcvLEef7bV2fZseUF+vbsiWUG5Ao92PzSLk6f+ZLTpz7m7KmTvPnay4waeA16Iua6G6ayb8dO+vXtxZInHuGRJSvp1W0Q617Ywn1zZnH/XVOZOWsSKcMhZUc0GgGjrp3I0aNHGTlkIFpdF2R1SrcDug0cyfFPf8s//uu/8dCjj7P6ybXceuvN7HnjVf6/f/mvrFu9kubQxc4kyHkOuu0z/valnDiwm+6Rjp1tIdLqyZpJ6uwCoxc9y/7drzNlQJFXnl/LV2fOc+rkB9w28ybytkU3WTWzTLQo5rqbbuPQm4f54vQ5Tp09xYPL76E9TtFsN+JbEWmricFDx/L61o18/eU5Tn32GS/v2sM7e3fx1bkjXDOgnbzn0Xv4KHbsPsxn57/i8z98yaTRV1MIM9hemsgPCHJ9eGjDFjYdeJlxfQbw4spVnDh5mqPn/8DKB5fRlOlCayCrcmncQJb2q0BTBZr/RbCZ3etaDh7/hBefW8f4McNo7tGdyTNm8ubeXdx5y1jyib8jb2vYbhHd66DBzPHA8vs49NwqekUpkk4jWqmVtNPCfY8+y6u79jCstRt9r5nOkQ8/ZM39k6nRPe5Z9iRL77mLprALo6ZO58Dp37L4vkdp69FMvqOD1evXsmPLCgYXDayuBr43lFtmr+Dzr88wZ85QNP3nRKUhrHnsGXZveoruWZfmbI44buLRx9azeu0mRoycyID+Q3jogfv59fmz3DjmBvT6mJumz+LtHTuYNGEsW99+g9smzaS12MGru/dx28TxrLh/FjdPH099WkcPS6TcHFOmz+add96hZ2uRyEyplbW05dPoNdF75EQWP/gIb7/zLm/s3s2Gjc+y9cUNzJg6iR5NOYq+TWhqZG2djOEy/NYlnDn2FoO7xWhBiaLdSN5sIBG20WvWar757GO2r5zP7VMnMLh3f+66ZxGnzhznhmEDKSQSZJIprp85kxdf3cmSBffT0dKDCZOuZeeuzaxZPo8Wsw5bD8m1DOHl1/axYc1KBg3oTr+hw3hlz1sc2fsG659YzOCeObKuR0NYonvv4Yy7dhL7T77DtIkjaPKT6GYdkVpd7MP0B1by3u9OseXRx3lo9jwGDhnKLYsf5/zZk0wd0pOiLhJvEtu9uA/TT2Hg/bW9wyWVaNze17Jm/UtcN3okDV1+QUMmTZ8hwzlwaD8rFs4gn7qCgm9iugUMrzsNRokHlq9g/4ZHlESTcUyMUhu/qklxzcQZbNy6k9G9e2F6vdl9YD8PLhmP5ee44/YHGDdkGKbxc0ZMmcKqp1+nKexFfaoLf9O1nrvuu59//vpdJg6KKFgupt2BkxvKpi1bmDVzNEHYgJNt59577mXadUNJdfkFxSgm9PO8feA4U2+5g9o6k0zaxEinuHvebK4fMQ47GXP7/IXsfvU1Jk26jg2vb2doxxD69R7GoaPvM6CtmYfuvY2JE4crlc8ICqTcLLMX3KOCPku5kMBMqqVrWbmqNWO6GjFtvftzy223s3vvHp588gnGXjOMtkJEsuuvCC2drGOR820FNAMmzuL88YOM7NtEvRFQdBJkzQQ1do5h85/ki3MnuXloKwU7jZcxuDJlcujD99nyxHLyyRReXOCJrduYMXM6V/2qnporG6iv/SXTpk/kyFvbGTeoJ6YR0zF4El/8+p8YNbA3jtlIl8ZGps+5g0M7X6Jvu4uX6oqjWTTErdQnY5qae/HawV3MmXodObMO06on64XU1GdpGzGe1z/cw/wJk2nNmHRpaEBrG8yXn5zjluEdlKwMuazY4CQcpSrR/BRA6ZICzd9pzXRNOoy7Zijzb7+Vhx9fzdoNm/jt737Hwwtn0WLVkHUMNDvG8Jtp0JtZuuxx3nphGd3jDKYfkfLzmI5Be98RrNu4m7k33UDvHtfwu3/6Z3btXkvfPgNYde9q+hRbMIMa/i6ZpKk0iJtHT+PBR5dy/+Pr2bH3EP/vP55kWLdGcnYK0+1Ovd6LmTMWse3FZ2hucug1aCDrn32KJi9D3jUIHZfAzzN9+jx2vXmEJ9c+z7RbZtKUz2Im6/E0CysTMGvOHezb/Sa33z6bpzZvoFupOzdMmMrbBw/T0Vpk+ZLZjBzRH8v1ydghCStg8q2zeefdo/Tr3Q0z0ZWsZ+EGWcx8O7cuuI9jH53hwLtHeea59SxbtpTffPUZW154jutGjyB0dELbIuu6NKZMxk2/i7PH9jOoR4Gkk6XJ14nMJI1uiWsXPcnBfbsopX9BoCWIHY8ufpFVW7Zw7JV1FAyDIddOZs9HJ3lx/eMsf+BRHnpkDfcvns2W7Rv5+rOTzJp8HWktpK3ftZw4dZ7bJl9Lfc3PqUk28ODDK9m19Xla4jQ5RyNycyQLPUnpzfTqNZhd7+5j9o3jyGo1hL5G1hTjfzuFQSN58e3NjOrWi6BLLUEhj9cxik/OnGT6qAHk9BS+RPIHZTvZT2Gg/bW/wyUFmnRpAHPvXsq+Ha+wZcPT3LvsIe5dITr5SVYsmkVJr1FqgBc3YYUF6vVW7lu2lr2b7qNbVsN08+hBkTBKoflFHn7iVVY/tJRFcxZy+Oj7fHj+OA/ddz/PPfAwLY5HOrBoHjiEJx5ey4Etr7Hy8ZXcvWI9G7fu5g9fvcfw3o24+hVknAJdk93p13cCh958i+tGX83td83gvvsXEJpJAtPAlyDOIIfvF7l9ziKeeXoje/fs4/CB/Sy8Yzax65FJmIwcNY6db+zmwRUreG7TFkaPHMfmF7eya9duZtw4gSdW3EPgpdXybkK3yXg5+g8dxTtHjjL2muEEZoZC6FCfSNMxbCy//Zf/wf5jxxk4dCibtm1l+vRpzJ01na8++4Q3Xt5KMRshRlrbtHH8LLfeeR/v7Hmd0GxE87KEVhrfTpNy81w3fyUH971Jdz9BzjFxNZOfey0s3bCZs7ufo+g4dIy+gb1nP2b3trU8/Mgalj3yFBueWcaja1Zy75I76d+9iZp6i3q7G48/9RyH973Cpg2r2bJ9K7v37uOOqRPJuQnlnBjaBbq4raT0Vtpa+7Hn6EFmThhDwWggF5rEuoOpt1AYMJRNB7YwultPmtIZUq6D1WsUJz86zm3jriZMNuCJ/1Qo7hBVieanAFKXFGhGTVvAR2fPM2vaFHwtSU1Dglxbb155YwerH1hIs1GHa6SwsyUylk2j2c69y9bx+vP30J6TlaCsWqp1rV9Sl7S4c8l6Xtu6kWNv7WbOvEWc/Pwf+frUBzw48wachq7Uuy2s2fAq+3ft5NYxV3PFFV34mys8Jtw0l6/OvMP4qz18+1cYUZ6UNwBd78ErL7zG2kdXsPmlpxh4dTd8WyMUPhxLorc9dFNWimwyKZPhQ4ay7L57effgPubfPhvXcuno3Z9NL27jqWee47kXNrN711usX7+e8x+f4aXNGxg/agiemSaXi8mYLqafpdTewa49e7ln4Z2YqXoFDqH40ORbmXzbPJp79KZnn768f/x9li9/gFzWZ9igflw/bjSGJsvUAY4tHskhjz/9HNueW4vZ2AU/24QrKzyOSb3hM3HeAxw5sJ9Qq8PSUmRdn59F3Vj12i4Ob3qEJj+gfeQkthw+zIwJg/jFL+tImjHJrv+Zqxq7YJlpJXG6USt6vh8bNr/MA3fPZv6cqSxYvIiBg4eTzTQQ27IZxG6JRL4PaaONttb+7Dqyn2nXXkNJ3BR8izBlkW7M0XvkOLYd2saI5lZK6QxmHOH0Hcu5j89w0/AOml2LIHSw3bIn8U9hoP21v8MlBZoFjzzDex+eUnaY0ExRU5egvd8Q3ti1l6XzZ1I0atEStaS9GNsP+GWdx7KHN7DjxQcp+hq6EeMHefLelaR0l2sm3MU3X3/Gh+/uYMCAYex6+2v+6xenmTo8h5W6CqcwmiPvf8Gqhxfj1P9nAiumNtPClOl38vXZ97h2YIRjXkFSlnOjPqQyLcyeMpfzH7zPtlefIlswsM2MWvo1dIuWlu6MvGYc6ZSJlrFINjbyy5//F1Y9spzHHnmQbBwSujFz5y1k89bXGDpoBH0GDKRQyNPelGfKDeO5dcoN9OvRjdB3sRwfK4gxgxyPPb6G9U+vpRDaGIlaPD8g4wQ0GB71GY0Ro8dw8vRJHn/8MRxHJ52oIww8tawudBmaZhNni+zYuYuZUyaQaaxF7DyOYxF4LoZXlnY+OH6cvt2bcG2TRE0t9a0D2XbsBE8vmoKfSlG6egzP7d3LukcX4foFNKdAaF9Fa6/uzJ41g57NBVJmHrf1av7hn/+V7S+sYfaMSfQZNADLDfEa68hZ9RQ8EyfjUuu1UpvI09zUweuH9jF94jiCVA3Z2MPPuKQbcjT3G8wrR7ZzdT5HN8si6Tokuw3lzMenuWFIL/xEA6ap4V4g8/prH6Q/hfe/pEAz/ra7OP/lF6x95AHGDhvIxMk389gzmzj+wVnefn0bq+69g/59uuPkmujdrz99h47n6Y1v8PbrG7jx+rH07z+M0PPJ6Vfi+TF+y2DeOXKERx+aS5xt5r5lr3Nizzbaw59jOUkajcG8+OKbHHtvN/csnsyw3oOYNvNutu3Yw6/PnWLN0juZO/dmnOYCtV4BzSrSHrdyfP/b3DJtLJabwPNlud1W/jijR1/HBydOs+yBFUy8/gZGDh/B7TNvYc+u15g9+xYSjTX4hkOu1MbmLTvY/fJeRl1/HUOHDWTB7Gls2vw8C+fOw89o+Kb4+LhEhWauakwx4pqxbNu6hamTrqMYucTZGMP2MAR0hcTLtmlua1UR7KHv4QtTnnjeGjZBXEC3I1Y+tpqVyx+gEIhPjIXjx4poK4xiEimdKdNu48vPv+SRFQ8yfvwEJo+fyOK1G9my/wBjugf4jQka7CxDb7qJD4/uY+PGl+jddwg3ThrOw0+sYu7smeQlIDRqxyj05cn1Gzm47yUOHniddz/8iNOf/oYzR49y6/WD8dNdyFoeRlNPrh4yiRsm3sqRMx+wYsmdXDOwF8WmHJ4ZEFjduG3BPRz9ZD+3jx5Di2lgF3P0vnEen335OZtWLWdQezuahEyE5Sj6n8JA+2t/h0sKNEaxO3PumMfpY/s5fewgu3a9zYhrpzJvwWKOvPkqK++Zi5ZJkO/Wm0dXPcGRD8/x3tmv+Pj9o3z0/rs8v34D1wwZTDbRBUu3sIq9Wbr8EUaM6EkYFxk3bgGP3jMD3/kZbkG8i3vSq1t/Vj/9CAeO7+HkgYM8vnYtQ8aOY+u659m79RXGjBpFY+DS1fUw3Zj2fBMvrHmSvn1KWE6aKF/AEvuLZlIqtbL+2Y1semEr+98+wNF33+HIO2/z+MqH8MMMvq8R6jZpK6KtfRArFz/Km0f2c+LDw+zctpGx111DPogo2gFZ11ROaE6QJWn6SvoQA/L2TRvoaG+m61VXkCs2obsRuhBcCY2oK4RcjqKBEMc31ymz9qU0m2Gjr+f5jZsZ0reH8qspFfNKwpCATIkiF7KwESOvYdbs2cyeO0/ZU947eJTnXt5BnxFDaDZqaDZNDDemxveZfOMkNm18mTMfnWP//h3cPn8eTWIPSjSi21kmzFzE3UuX0VwwaSp5lHr1oa3PMJ59fA1Hdm+iZHQlSGfoO3o86557lffeO8nxz89w/NCbvL3rFabcfCOWHhB6Pdm4/TVO/voYBzZuYGhLC7mOnty98Q1Onz/H8T2vMm/qzTiKzvWCF/FfOGzir33Q/xDvf0mB5krdx3IsElf8LWbdlfzylzVYYTu19TpGzRVkjTocSyNhB2iaRY1m8veJNKmrGtAaUyQStTipetpNjdj3qbF8EmaM4Rj4gY+Z9mkxryRj1qIVWzGdErFhkHBt/u90Gr/uZ2jGVTTaGVJXpvC6+lhGhJbL0TqyH07sMGPSJFbctUAtG7u+R8Z1SRsWcb6EYbikUhqpRIquV16BrqWpr++ClqpVy7W5vImT1HDiZjJmkWw6RxcjSV3jr/AauuAEJlk3S1Z3KPgWQvmg2x5evoWkSCaBz913zuHBe++hb68epNIabpRFE3d9zyWjpZRHretY6JpGNpfDjwr06jOEx9a+QEffQcpBT0I0xG0/rem4cRE314SuGSqqW0IaGjIGac3CTBgkMik0M0G7bxLW1JALszSKBBXk0OpNUl0aaEjUYXk+VqqevJWhqbWDp7fuYf3WbfTtXaCm/hf8fUOaOqvIw8se5c0tT1DSfkbRTNPgBmQyAQ11Gf4ucRVm6iqS9VeQlG/mFynE/fhVTSO1zi/Idu1Cm2NR5xn8X24rtclGsskuZDM6iuJCAOZH4R1cDnf5XnhEJXxFGau/O/8d6VjZiP39cArx6r5Y+U/f4H1JgUbLt2C5Nnk3TdEzsJ0IO2xFNyPlVp8zG4kjDy3I4vs5UraDns0SWwUiL8IPDHKuRqtmKvKmhO+juUXsMIsfeGogFYwrMVyHxrgFL4woeBkyYZau2Xa6ebXY7q+wcw6RFtPu9kZPx8TduvHgc4/ywdljPLNqJeMHD0VrqCeMRdqw8bMFDNdXoRGW7RJJxLiKyRISchNLnOyyMhgaKXkxaTvGcpuJUzHpWNzwkxTsFLZvEJgBTW5EaKYV0Nh+pOwndhAr4GorZrnhujGU8jGeSDKeRKf7xLmsou0UVU7uLXYf3TAxLY/efa5myMjxinum6KYJFPAK4ZaP7maxwzyaVl7NMm2PoNCMYUvsmHDwmMSRQWxk6Om5BKZJJo5IuDlybp7YcLHlnsJUaGUoOhqWxHCNn8bhDz7gzd1bWff8kzyybgNbdx3m7Tf3M/36AeSSf0O3wI058cUAACAASURBVKTOEsqIPHGcp0G8gZ0Uka+pFUE3aMLSW7HCHIngKnraBtlUI+nYo2upA0t4d1I15A3h+RFq1kqs2Q85EAVEyrF1ZdATCVPKJExC4rIurIwp4CkfV1bKygGkZXApH5fpVMvgUwanCvD81PeXFGiEvb/cwMIAJ8RUwvwmdAG+yhYgPDMyAyhWOFcGWbmDe4olrvwxfddRPi2+UBD4EphZ/r1cV7IPqMhu4YcR0icpcy01SCw/VgPQ84wyW5/tE9gRrhrILiPHXMMdd85jzKhriIRRz3ZUzJHqODLghY3uwmz67V51LCGsEm4X8fFw8NVzyyAP1WqQ7bu4vkMg3L4qXscvs+B92zErbHzl64u04timMkBXOptEtAeeT+gHeJJlIYjxHDmWa3l4toMnUdJi+HVshIFQ4qUkc4TllVdrHF/KXVxVPyLwcwRBFk0CHgMfLZ0iL0GQjoVIcjKY5NrBhQhvYeWT0Ai5h8rCEORp79XBjVOncNeiRcy/axE333Irg/v3I7aTRLZEstsYfhbLyyrQk0DYWPxrHF21p+3l0a0cttiSYokmz+CaCRxHU/alwAkphAV8M1BqokSBV9q+0jaXdy99MMSzs4R2QOhYhG4a18vgZW20wMORbBl+jJcxyXoRVlQkyJVIZ1JkY1/RfDi2pcj1bem7MiZMk/hbIvsfEkQv370vKdBUxN4KhWS505Rnqe/K5GUvzFwysNVsUaaT+LaODPAL58pR19/NHGp2+HY2qcwulevI7y5sMvNcuI/rOGiZMlev0Hf6F7IgVIiZys9dec7vZqTK80hnl2O1V2By4XnVcScOX0WdWZ651Ox34Tkr71C5TuW68o6ySTaFbBRhaKbaIvHnESAT0HE9QqdMCBYJSLi+iiD3VNYICy8oLw0HkYMQmAdOgG/5BG6MbgqYZkmmMioVjTyHaeoXUsVIXJFzgX/YIRKAD8qg6tgudhAqgEgbDumMrgJlTS2NbaQJ7Qy+YyqAN/wYU4BEJhPXILKF6kNCCYRLKIcVlG1JljAG+jqB2Lk88VuycXQX1/QJPJFwf2iQqfRLsY3lVDsGrkngZtRza66GFgboFybTnKjEhkXGz6qyYqlAIIwDekoFkwr9hxCkWZZH7Lkq7ETavyzdXL4Bf3mB+rv3urRA8yM14slgrlAaVNjghFNFNgVoP+BzC52CJ1kZlHTmU8gVcUwH2yxLTwKCgTy/a6u9SFK66RLFsVqlsSU/lvD3eBayWhWJZGT7eHaZR1goJm6cchNTp96k3lXsRopzWElcFVB0FZiJFCrGaEdYBB2RGkPEmC15qhTlwwWpJyssf38ENCIhubZOZOkKaAQ4RGWyopwaiIbM6L5VzudlZQiFAM2L8CyP0Bd61PI9fqiBUb6vTFgigZZJxSoThC3SdRQpz3XLDZTbQd61CG0TKxRjvM2oMaNYcOc8WlubFFuBEOzHcQ7LEMnHJ7Akf9lfDyXGXyXQSCeq8KOIeC7/y/6HF9U9pTJEfqSARc9k0NIZRUheVqNcRV4l6pSoUULdYApdhOOT0nQyWhpNT2JaGo6tK/VKBnDkikQTYBom468fr5Ll9e3bV1FXKGBTKmFlBi/bHQLhIBayLF8oOuNyiIQXYjg+tuSyEk5m28QxMspZT1Q4SZYnqpPpdZJoHAEa4XwWZ8UYI5BwkwBTVGahH7UNPEtIvTSlpimydclyIbSkPzCTYgUIbAFbL1B81babxXJzyueoMaWTSWuYmQRWWgzrYoe0sWxbGe6X3LuEO+9c8G2OsTiMsHRTgWqkDN1VoKkA0GVJIPdDzFoiuQitptxbjkWFkln6h3iW7+4phlRRn3zy2QJTp9zExInXK+lFHP6UaiOGSUfEefG7iXCiAuMmTmbGrNnccecdTJ16Iz26tRB5NgIWwqoXSrZM02bw1QN58YUN3HLLzeVkeWGsSLSU9OGWs2lKW4iKGUn2TQESxyYUG1GYRQzYYsy2L6Sn8WxT3ScnKsW3QJPHFIO0Yvwzid2yjcZzbDTXR/NEsonImA6pdIZslGVQ3z60NefR0w2KtlXUQ9cJy3m8LtjJvmuj8vfq/L8cq+f+36hbqSf7zteolHcuU9KMgExgYvo+RiDSWBO604TllJhw7SQW3HEHM6dNZujVPfDdRqUGZuOAhlSC7r07WL32GebMmau4kjzJvGFbyjdMbHBlVf479eJ79/4BpepL8RwVQPlz+58s0MhMXpFihBFOGlfUqT/ugJei0f/cNcv3lmeI6Nbek7f27mPf3l20FGJcM4PvSe4qSR0sBtcCmp3j7vuWsu/QYdatX89rr73Cl59/wopl99OUj741cotkoGV01jy6glUPL1cGc3lnS4iq/BDLi8o8zL4w5PnYjqUyK4jrQRiKXUFWoiK1ma5QqfoU8nll4BdO49CUsAcPR1bgrADNimhta6d7e4lSLBkcJLOFju7JCqMYUGOGjRzLqseeYserO3n1pZcYPqQPll6DJ3abwMd1JGOCqFB/CggiTcmkUAGHznXkuPM5aWv51jKpiJpcUZElI4OUywQjeymXup2vpb6TWlzQMGOftJcn6baQ0JuYNu1Ozp88xzv79rJ31yscOLiLsWMH46W7EnkafhRSl9KYfvsdbH3pZfr0aMNON5IPXTxFqlZmI1Tq2E8MVC7Wv/8cwFTKf7JAU+lUnTtW5+OLNdalL5NBIilbPGwrYOiQoXT0aFOew6ErGQUk71NIlG+hIR3R0mswH5w+w8rHV9G15ioa6rpy842TuG3aVHJhoFatHCdQQNKtR1/2vbGdmyaMRk81EkUhpqhBQRY3ymGIamUL22GMrIRpiXpysahburIt6AI2QYwTSn4tj1QqjZZOEroW7fk8ZtogiIoYbo6E5jFjxm3MuHUqkSzz6w04wpQoWSNyAWnXZvCwMTz/3HY+Ofs1Hx0/wYC+7XhOHb6bxHVNfC+vVhgvNhAFMGSSkIlBAaZlfasKC2hImQCHfE/5v1JX9gJCwmFcyeElPM2SZ/1iQKMM/r6F7SSxI59UUKTeaaX3gOs4+u5p1j+xBjfZQO/uLby66zX27t9Js9dA1kkqp8+atEHfIaPYuftNZk+/BS9dqyhq9YykXpb3+05dvfR964eVnCqA8uf2P2mg+bF93PLACGhp6UOx0EqvHj3o3bMVS6vFNRuIIwEhC8NvImwZyJjJszhy7DCjRg2llA9Uh3e0JHqiHseQZf0I04lJewXm3b2U17duoG97XtkUVI6lOI/mhGhuRFxoxvEjisUS7W2ttBSzBJ6NqWg4Y+JiSWVmSBs2+WJJpYrp3r2dfOSjNzQqv6co14Tm5Bg4dAwnT55i2dLFdG8KaW+S5XUb3XMwIxsjCJQvVSaRZc7MxRx75xgD+7XiuV3xvTo8BTSSokWkmj+VaAQcKtKIZFvo0aOHSsLX3t6uVtNk361bNwUg8p4CSE1NTeTzebX16dMHqSPXaW1tVUBUUZs7TzYCBKEs8btpHIlFC5tp9NpY9+IbnDv9Kb2LOZxEDaHnMGT8ZH7/3/+VOZOGKPZI03GotwKsXCsrHn6Ew/t20B6Z5OyMclkQHiVxofjj9/ux9cm/1PP8OYCplFeB5jKKtWIPKeZbefrpzZz/5Ct+++tfK8/hQqhj6V3xfYOMYXHj9PnsPvIpp778b/yP//Ev/PbX5/j0zPu8f2gPk8aOINA0StkithuTcrLUmDkeWruB51avVHw1KoWNHyjpRPezNOguY66/kZ179/PlV5/z4QcnuPuuOzC0lHIUbG5u5ZnnNvD0+g2Mvm4Cz6x7ls8+/ZT3jh1h1oxbKAURRtokX2rn1Z37OfvpN8jf73/7JZ+dOc4X5z9iwYI5pGyNtKdhBC6G+NMYrcy//QEO73+HgQNa8Nwr8L1aPFE9vCKuI/443wca6fgi0UgmicGDB7N9+3Y+//xzTp8+zSeffMLHH3+sNvn/xIkTdO/enVmzZvHee+/xzTffcObMGXVe9p999hnnz59nyZIlKvungFfngSVLz+JHJOAQRFnqzZhMoScH3zvFG6++SrOXoeAklSNlvv8Yjpz+gpdX302r34CpnE9bMQvtTLn5Fr46+yEdRZ9ITxKGYjCvSjQVkJF9FWguI9AoicaNSKRkybTEKy+9xNOrV5L30pRiyRZhYdguKbvIlVorvYfdwPGjexk2oA0/U0PJS+On68laFrEfk7ECEkLdUOzguZ2HWHb3XJr9tMqVJQZg3Q3pmrKYteBePv/NH1jywINcdVUNgwYO4OvPzvHM2jWk0klKxWaW3L+Mf/7v/w8bNm1jzNhrMQ2Duxcu4KPj7zG4oz+O4RLEzThRC10bdV5/YweL7pqHmeqCrdeiZRqwIhcza2PHAbbbhJ5sZu7M+zn+7gkG9m/C9X6B74udRqgw/jzQSDtVbCwVtUjAp7JVpBMBo7KUWFafKgAlYCKgIucr16nY6b4n0YjdzrbIGxmiME/CzRP1HMjZL7/imadXYjb8F2KjFt0K0dtGs/fE15zatY5eYQO67ZCIWkgEzQwdOYp/+Ows4/q2kTdTBH5ExsldSJ/8p0DaGex+KsedQeVix1WguYxAI7O3ZJrM6DkCv8imjRtZ89hysp4QdomIrqtsnRm/lTqvgz4jpnD83T0M69dEkO5Ks6sRZhrJSypg4b4JSjR6zaSb+vP8rsPcN38mbX4aU8T9MFCE6U09+rP5tTcVqVVTew80Xae5qcSTTzzO0nvvUVw4Gd2krXsH5z77iim33Kyc6errGhk6bCiHD+5j7OChBIZLOuNgeM3UpT3eOnCQJfcsIDDrCaxGFfqgeSZmbGGHHqZdwrV6Mv/2h3jn7SNloHH/Ht/vgi8SjdOkHOUuJtEISMgmgNLY2Eh9fT3JZFLZXsT+IlkcZC+pbKSOGIIbGhrUJuU1NTWk02lVR8or9hoZ1N8DGtcj67m0iJe3HaBHLWjFbpz/zTesemwJgf735N1GNDtLfWkU2976mFM7nqJ3WKuCYuuDEvVeiaHXjOaLk8e4YWgv8mZSGdcNv/jDL99fxr59MXDpXFYFmsv4McQZT1ZuNKeJIG5ly6bNrHrkXpqzGTyzK2GQwc/GNDolav3+9Bx+E+8feotrh/XFSnShFIrXsDjqRZiGrBI1Ywbt1NstrNuyg9XLF9Lk1quQgTB0MFyXa66fxNtH32PSlKnKbT4SgipxtAvaFVlVIaqlUTPJdhvJiZPnGNg7i2Wk0Lw22odez9vHdnLLyF40N3Qh74Sk/e7UWC28tvcQS5csJMxcRXOQxHd1DFnVCsXz2SOdjtDM7sy9YwUHDr7L1QObKOa6EgddcOwUnndxoBEgEJuLSCNiZ1m4cCGrV69Wieok6+cjjzzCypUrVaphUYnENjNmzBiWL1+usoIuW7ZM7aWu5NV69NFHuf7665XKdFHVyXYoWr7iTdZzPTCaOzjzzTc8ufYh3PTPybr1JKyQVPfrefXol5zasYr+cQ1e6NDVCslkm7n+hhv46uz7jOooEBuN+GEWI2xWvjllL/Qf1lB7OaSmzqByseMq0FxOoJH84m5M0pDVm6KiA33i0aWqMxfDJIWcrSK7U2EbXb0+9Bw+hY+OHWTMkD7Y6dpycKXjEAtfjRkooLHCVhr0AsseXstL61fRPaurfFkSI6ZZJjfccivvfnSKa8aMJqOnyIY2OSHjyhQJbA1X+1tyrd3x20Zz+N0PGdBDgChJvd1GtzHTePO915jcP0vvdFfyjk+D284vtCK73znBPYvmUTBrKTn1WFojXrZEEEkck5B2dSehtzLttiUcOHyMwQObsTJ/SyFuIBtZmFZOBXNeTKIRNUcklV69ejF//nwFKg899JACGAEaARABEgEVAZpRo0YpIFqzZo0CIgEXqSOAJMcTJkxQKpSA2PckGqU6ORSF0VDoX80CTvtA3vnoNBs2PomV+DkFrxGxc2W6jeHQ2X/gyKbl9M/WkjaSmKU2Gr0cE2+8gS9OH6PVS1B0NQzLRwualIG5CjT/hgBPFWguO9CId20rSS3g+eef56k1DxM5tdj6FcSRTkrXMeI2ujo96Bg+mSP7dzHq6p7oia5EvqlijsQXxnACHL+AJSslZsyEG2fw1utbGN6nFc9IqsRumm0zevwkjp44yYQbbkTXNQJbR082EPrd6NFSoHtzipqURrHXOA4eOcHQjkg54dVoRQqDxrPv/Z3cNLiF3lo9vmZh5zu4Qs8riebuRXeSt+qJjTp8WW2Ji8q4m5Fkd16R+nSBeQsfZve+t+nXUSQfdEVL/AxbEgfGrYgX7h8DjQBBxRdG1B+5lmyiQomKJJuoUSLxiOok9WVfUa1kL6qS1JPfSD35vczqlSXxygwvxuDIsclKskA3VrQYdkt/Nr+xh6NHD9Gz4OAkfqXsMT1HT+XU1//EY/PG082tIZ3JYBXa0aJmVq1+km0b15LVaikGpvJZsrPN5dTOf+QnVLn3T21/MSmmc1kVaC4z0Ag9ZsYtoTtZXnppG48+fB+BVYdn1RGHBl4YkPaK1FittA8cy3uH9zJh9CDqrvoZoWsQS4I528QWxzsvxgqEfiOm1N6Lg7tf5+7bZ2KkkypjpOUEFFq6s+XlHax6Yi2FQhFNOGGCgLa2QSyaP5fRQ9uxwixO00BOfHiWAa0udrqBTNBO2/CJ7Dm6k4mDWuimNZD35NmaaXBL7HjrEPcuXojZeAXdSz5TJ0+gV98ByuGwkCvg+EVqkiELlqxk3/5DDBnYDc+8gqzfSCjBiFYW2xGntj81loo0I0ZcAQY5rgBPBSykTACmYiiugFPFj6Zik5FyUcMq5y8GNIHEjNkplD9Svjs1Rolpsxdx7sxZ5t0ymTBTSyEXsGDZQ3z6m98wssWjyWhQFB5dUx49B43izb37GT6gg4KTwknXq1gxoVqt+tGUpZmqRHNZQUYMkRLRnKXY3p/e/Yfy5pu72bp5PcMH96Rbs08mWYvj++hegfZB1zH+5rl8evYE9y+azdX9u1HKSjR2mkDS5ga+ssFYQYQeiN0nYOniRby+bQvtTc1oWnmWTmous+ct4uChd3lg6XJ69+zJkEGDWbHiKRbeMZfYqcfLl7hu2gI+++Ibbho9iLxjU6fFjLx5Nqc//4jV98+jt28R2S41KZd00MRTGzfz0vbNjB3Wn4ljh3Dn3FkUSnLftEo3bDpZRo2/mee3vMGXv/6GW2+6jo72gKyXwrUkor6AK0GWfzTjdwYFAYYKuAiIyDmxs8heNjknkouUVerKsaheUl/Oy17OVcBHyiqbSDRiW8pGGoZjYUWt1GRy5Jv78fwzL3Bk9w5uHjecO2bdzLGP3uP+5ffSbDTQZBl4fo6kVeCue0U9e1Ll4WoOLEJLU6RtwqmkgOaP3q9y75/avrP0crHjqkTTqeNd6o8vfjSFYhPPv/gyn37xDefPf8q5Mx/y6ccneHj5YvJZD8OyaOnZj3WbdvLpr3/L+XMf8dm5D/nis9M8tGyJClNwXF2lKjFV/JGvOIjTpkUuyrHlhU0sWriYYrFVBQdKvFRKcxUJ+5439/P73/yeLz79nNvmLMLRJVldil4DB7Hjnfc5/8UX7N36IgPau9O93zA27NzHmfOnOXvsAFNHD6cln8P0siTtgPaOfrzw4ga++uJjXt6ykcED+pJWsU2xim+acsttfPzl15z57HM+OnOKzz89xZG3Xqd/rxYsUeHiAqZQkl5EopHvIGBRMd52BpdKmQCNSDZSV4BEjmV5W8oFXGSr2HrkfAV4KgBV+dbClRNlMxiermwxZtiGYZaIvRLPPb6aX5/7iA/e3cuCO2/FNOooGLqid9UyPkNHTuTZDdvp238woYCdmUGM7ZK3XehiVazTBbqRyv1+qvuLgUvnsirQXEagkdnbdnyVh1vUGhVuEAp9gkHsmcTCDyPRwUKwFDbhxk0ErkFWZkrPUPwnjiMRxDqObyoCLksc3HyheJCgzID+fQexdu06rht/A57ihsmiWSGmcNZ4EbEw21m28g2RJHqRlcGKhP60iVyuiVYZ4I0pUlZAKs5jhw5NoUtRiMCEg9j2MINQxTV5gUehEJOLhazLIA5CPNPGtoSFMMSIQiwJhfAsCrFHVhj3JNWKSCW+RIz/qUTzfzIQ/xg85P/OZZX/O5ep+wgI+CaOn1LtKXFhhlvAdmVpPkdoeRRcW2XsCK167EwNga4TOiH9+lzN/cseZcy4SRimj287ahIoE8AJO1+ZguL/5H3+I/6mM6hc7LgKNJcZaITRTdKm2E6AaVkqGFFIpSSo0hOVQqK4/RDNdklrjkqtoqKshW5B2PZCXzHoua4kmBOWP6FvkM1BN1wyukOppQejr52IZjiEUU6RYQmvjfD0KpuHGJNdn8jxybseuu9Ra9sqJXBzxqFkhSqVbiqMSOsatqHhmjqOcKxItgbfwRK2PdcgnRHPWXHAc1QUeuxLVHas/EyMyEMPLDQ7g5VJEuo6seUQuD6WLXQUZerLH2xgCdBIOwZlfh9heBSWPMfJEoZFxVroGjaeLvmvUhRCYUp0MQ2HXj37MGjQUDwBVL3MLingUt4cdd2/FtIr+X4XA5fOZVWgucxAI6RSijdYiKYk64EjvDC2om2QmBrXLQcQCmObsOWFXqDoRD3bw1FAIc5sZUoJR9GKim+OkJ07OAJgfpbGjLDhxRgiXUg2CFMGgotlSZS12C987EhSowTEptAjBGj5rKICbUq75DIuGdMiIVSqQrgllKNCpSpSjWcgqpstwYih5Jey1f0lJ1VWKE7Vc8qqmEXK09ACAzswFfl8wQ3IuRFC6SnPZf8Y7BdCfCXtqN6tTM+q4p5MF8MWjpqYUEDZNPAMnSCWSaLMXGjbwhxYVtcUhacCTqGHEOlGrvWdPegHA9PL9AydQeVix1WguUwfQnU06dQy4AU8ghDJzySrK1Ho44m0YEsmhfLyroj5anXFCQm9LHGYJwoLhIrovcKrXOY8kVlUpAzNEXL3ED+bxwkiCqUSGU0iiT3iWFQ1Ud1MHNdCEz5iOyBvZzHjkERUBrB2LUuLncUV3uFYCNyzarCJkdqTJHJ2Gt8TG5GDLoMpzuKplR2LrNBPuDFhkMMNA7RQIxOksQPJ2OAQSjoWvcwGKEAqqleFfEqpGhfsNd8N0IoNR4CgQiJVKSv/X657oewCo923dZXE8qf11G/UOQFsAX7hmhZjvbACGjieiRG6aKEQeeXxvCxZ4RV2QlKWQ5QXlU9XdBHKm9sW1sMASzEHCiALD7ZwBZXtNGUpp9PzC8B2etayQbzyDt+dK4NTufy7d5L/f3wAdjFw6VxWBZrL+tHEdiAzucQCCcl42dXeUyRSQuUpIrf13SaiuIjydoxjh4pawhbKTjtUIrvYZKTDqo4q3MJhjJXNYwp/rXDdCjeMSEiuGFZFEimrCJ5v40RCFxoSmzG675K6oBaU0iE5LVaDzgrF3iKpeQP8KEsQyX0zZc/ewMIJPazAwxSSJ9ct5//O2Dh2gBs6Cmj0SPxrhEPXI2vFZK2Q0HYxXa9sMJW8VsqeIdcQ4CyrM1Im/zsX3lGI6ssSldSRuvK7MiWq+o0inC8PQiHWksEoKW1kkAttqrSRXE+ARc4JqIjk4bjCFijcO+J1reP7GazAwIg9MlFE2s9h2Dk8I0dgx+jyvkplNfDshOIYlsh1Id43hYBMgF5dS1b95DnKhGPyrEJsJmUC2iKFCkG8PJtIuWXgEQL68uRRrivPVwbZMvWrcwEQf3xg0xlULnZcBZrLDDSV2UjNcheMlp2NlHJc2Spcv0I65bshgRPjO1mioIhtRlh2uWOHcYRuWsqnxolkZUhUk1Cl4VUrLsIr7F7Y5FgGpW0o47AQULkCQqISKca+gK5ON3KBTSn9M0ViXpCUvbqFXhqAJgTovk+iUfKqJzEarsTwAjJRiZzQLQjvsBPQ6mvUJNPU2R6aZOg0DALHp2AmKOld0MIsdZHEFxnkLIfYLOJKfJR463q1CszEjT8Z9FCGYyfdBU+roTYVk9CFGF1yjdeSsywiL0vadLHyMZlUArs+gZnMkCq42KFJTsuQtR0svxXHa8JOJrGDq2jUkiStVlJeE3mjjh5uDU6mK2a+jXRYUGmcBdRMP48jzoWujRUkkTimjNuiwCVvebjJNKlUHXV2A0k7S2QHFKxGUnFEyorIBVkMyXGWalQe3VfqNm6zQ5z8BU22TjooEHoFUkaOOrdAg96Aof2SINQJss34VkjRMoisFBkBIgn1+DGonZ3GzsXApXNZFWg6NVYFBC7tXmajP52RyuDyfZFY7AaSZyoQonIFNpKSJcY0ZAaU9CoyAMpGZT8MyYiBNRA7TaTyQznCPSzZChyh7ZSVESHNlr1HIQyQnFaiNmQ9E8/MYBlpRcH5q9wgBnf0YGQoDnY2JZXALuQqtzuNbhNxrsSMKRNYeudtzJg6kfY+/TAlDYkpUc0iAXlEmXqGDh7GjHmLmX7nEkaMuRbPTFPUr6BPNkWD7VOb89GzGkXLIq8349otyhGxEHTBcxKk/FYawv4q/e+Yq1u5e85NzL7zUUZeezO5WCMy/p5mx8bJ+BhhnobA5YaJ43lgznzumHE7es8CdqDTYqTIWqJatpPRC3Q0F5mzYCx3Ll7EsGvnUO810ztK0iPzM+V0l4q7kRQaiwvSlXAhW26E7xlEuQwZL1/O7a5l6ZVvZfHsWcyZN52p82eSEO4feR+thsbYV46Pjh5w/TU9uHfuLKbPvpv2EeNJub+gzfgVrY5DnRNjW0WCbA+mzr+buUvmMeWWscShqQzPOTuiZNvEjsSTScqiC1LsZe+73++fncdJZ1C52HEVaH5EH6vzh5NjZbdwrbJhUdQKV+KIpMPHxFFBrXaIf4hSA1xLrWZJpkzbiwgjWTmJCfxyPirfK6dmCZ2ASPJv6SlFsi1J9VwjTeRZjB41kgV338sz+86w+5UtCjRXSgAAIABJREFUTGxP4zsGZjpJU7FEvR4Q9BrJQ6tWc+rQbnZuWsurO3ez6pnn6OjoiWs0Uig2kzZ9hgwewpG9O9i15y3WvbyPXQeO8uDC2QR1f4tnpcpSUDFAi3QKlkXOKOE4Qs7lkxcqCTdNym/jSqs7/QcMYOfWNezfuZltr73LvsMnmTvnFlqz9WS1NLFfQgvyzLhrDmc+fJ+3tr3M4X0HeP6tnQwbNYhcouYC0LTR0XcUb27fwoF3N7N5+1Ze2XOa+Q+upd2pp7v2c1pCgwa/hYxfUiqQqDAVoBFDvWknMLMxCaeZ5tZr2PzUOs69t5/Vqx/h9YNHeejJ1XQvRRQzdVjFiDqvG5NumMEHb65j36vbeXb7fl45eoqJE3rQZFxFYHpkggIt7YN5eu3zvPX2HrbufJnte3fy7HNP06+tQJjKkPXEVib5vcT4LOr1nx/0f9yPLsf/FwOXzmVVoPkRA01Zb79gSxC9XmUNEL5dCQIUqcjGNnU81yAMbcXoZlrlpVbhAZbUK34oGTJl5aq8SbYEUaOKsSwxO4rAyTMy5EKPUaOGs2zFSvZ++i+cPXGEMflatbQtTHG+bZNOGdx49xo+/uwrbp84hGz6SvqPncy7pz9h/RMriN00iVSGYvcBvLrzLU7s3kZ7cxP1QXfuXPY4//TZB1w/qAnTdbAcm4RvYEQGBcskZxRx7BKm7xG6XXEdHS3sQX3Ulx07X+Pw3hcYeXV3rrjSYursJZw9/xFTx/cln0mjpXyuHjORr/7hcx66fzH6lXVk3Yjtx4/y0htb6AgtZMUraTSz4YXX/v/2zvvLqjLN9//B/WHW7bENhAon7xxPqkhVQZGjBDERRJJSKBJVzNqICRUDGFoMSE6CSk6SipwUm8bcPd131u17Z+7cX+763PW8u0pqeugedQbb5Zwfzjqndp2qs8+7n/19n/j9cvboHnr1dklkMtw+60nO/v7/MmfCSOoTwj8TIxk2kPaKijM5cIS4XJQRQlXa96XSljOJuVUseGYNrTu2M+mmflhWhuvGzWT3sQPMnTmJ6kyMuJGkevB4Dh8/z843H6U+8KgIevPk0g0c3PE6Nw5sIJm06Zq0uffBBXx+7jfcct1AYpZJzxvH8vH53/D2gkcIEuXYblFxGofCuewK2JSA5ieZFf8xUP0/9TPaqhKijBk9xFORqpVLvlAglUwg5dWrrvoFscouxCvl5jTp0qUziUSSjK4rITkRk6uMpYhVxolVxIlXxElUVBLv2olkOqnE6YqhQ853EfkXzQ6YuXANB3ZvYXx36Z9J4Qd5DM2kW0N3Pjz2JXv27qeb1QUvcQ3XGDkWvPo2R/bv4Nq+DXQpq2D63Mf57effMHfyDaTKu9DVqaPboJv4+twxnpzbovSppLKTDky0wFIeTU4vYNlVGCKF7JQjap4pvwf9R03nm2/O86v7JlL0k5hmNX5tfw6dPMzrC+eSjcepKvbk9RUbOX56Pz3qctTZPomyGOMfeYyjnxzmtpF9SXetYNgNU/j43BcsnH8PWuaX6LqFVz2YtXtPs33Nm/R1O+Gny8jkGlR4pOagbAEaIXdvIxv3PGJWir7XjeGzL/6Fxc/MJ9CuwTAy2FUDeWf9anZtWUWTp2GFDrPmv8rnX/4js0Y2YpZ35WqzjubRt/HFuR08dvftJNMmTf2vo/XoOd5fvYKsGSfhuEoCevHrv+bjj7YwsKFKNQWKHLIiRneEBMyKqpJtOb3/VNv7AZtvR+/lUq9LHs0PWNQf5aIK0HiiYtDW+SuvBWjaej6C0GPR4hf45ndf8Kc//YH58x9l+rTbOXXyCH/8xz8wb/7jDBg0mBdeWszZT85z4tRZTp88w9lTpzh78gS/PXeSQ4cO0jL1ToSH2FMyvQGJtM2clzdwdN9OxtbHMbUYGS2DYYcMvnE8Z85/zexpLdRYcYoKLKoYcsvtnDx7hpmTrueasjhvrvqAEwf3UWuKKoBHhRGQdKtZvWY1OzYuj3iNzQxpIcjyHaoMg5yRxXLyqqqT81Mqf5TyevLwwmV89vkJBvVxSZdfSc6r5YpEyMIlS/jqk930ynp0bx7Ohr1HWb70WQpyXrqNq/tkB93IvmP7WbLgPmJXduKeB1/g1JlPGDW8G5ZVjq4ZxK1G7nl+KWf2b+e2IfUKaBJeNYa0EjiGUpxsrybJ+INp66TdgClzHuZ3f/xnxgwbTJWVwrE9rk75TJ3zIJ+fO8bEEc0EtbX8evVGdm/dQW26gjCTwi42coVZxcHDu9m+5jXKO13F8HF3cfr4caZNGqe0tHQhR3Oy3DljJp9/+gl3ThqLlUpEEsgy3e4HikdZ+JDbxyvaRzN+FNu8xD1zKXDpeKwENJdYtL/VxfpXn6s8GkfF5ZbnYbYBjelb6GaGjJ6muVczr73xOhe+uMDQYUMoZi1eWvgUTz01j24N9ei2Q0NzHxqae9O9uTc9e/amd8+e9GnuQb9edfTt1wvPD7HScfKer/p1KpMWs19Yx8FdWxhdV4FtxFQIIdWUYRNmc/7sKWbfdgt2sozQ94llTAaMvo0Tn/2e5+6/nSu7xFm39QCtm1dT52WwDS0SwHMLvPDmcs6eaGVE94AgcEl5gfp+VYZJzgix3DwZ6Xz20hhCn5kbwHNvfcixo1voUR8na8XJW3m6mA3MX/wa//TNMQbVFOg7cAw7T13gufnTcCuvoFbCRDOH0+d6Wk+3smHJfDJdKnnyuWUcOnyEgb0k75VQBGIxq5Gp817jq3PHmDNmIE6iK5mwTkn7ijBezs6onJfyaETZ07fVMOU9857lwjfnGdm/D04sTiFbzTUZizvuns8fv7rArEmDyTY0s+HDzWxcuQxfOJe1lOq16ezVsHH3Pj49tAmt7JeMn/kE50/s59bRw6kQ2WCvoDzICRMnc+GbPzLjrhayGSEeS5M2PRqbmtm7dy979uxRnMlChSG207F6+a9s6Uew8Y6gcqnXJaD5ES7CD73oUTJYemWkt0J6KCxM6dkQpr18jrimk6up4/3te1i+ah3TW8Yy76GZai5KlyayIKRTRYKyRIaKeJJYLEGsooJYWRfKO/+C8srOSg63GASqo1foLGNJh9kvrOfQ7q2Mri/HMmLkAo9yPc8NdzzM7z4+yrQxw1QFyXIDKtM6DUPHsu3Yp7z68FS6JEzWbDnAmW0ryetxXEO0o3zKMi73P7+E48ePclOz5Jk0NKGncEMEaLJmgCk8yKGHDDq6Xh1xuw8vL9vGiePv01jTldBOkNUcrtS6MeOp5/ifXx1ieGMtfYbcyu4zX7PwkYkUkleTzRiKKrVrcQjbD+zkvXefJNm5gmeeX0nr0VYGdk9gZ+KqLJ50u3PjrKf57Oxxpt3Yh5wKXYpqVktAJmdHJXv5rlLedn2HykwNv1r4Cl/+j08Y0FhDPm1jm1nKbI9bJj/IpyePc8+UQYSNfdi5ewvrl76Om85SK42SRoZOTpEl63dzZu9q3NjfM3bGM3x+YhujR/YhYRcxzQJ+xmTkdTdx4sLvmTX7DsLEf6feFVrRLDV1TYr0S0i9xKuRCXaRlCkBzU/4Zv6hIHC5/y4qrTpt4vNSzrbVbFPUWSy9KY6Spy3PONw04S627jrMupWvMWJgI+lEF/ysS1hVxa0td/DMS4tZsPBlnlv4Ei8sfJ4Xn1/Aq4ue4qln5jF8xEilEy1zT6FXpDLhMvuFDReBRoYJHZfOqYCbp97HP5w/xYxxw3BS5arPJOkXaBoxntZzX/DifRO4sizNhl3HObFtNU7Z31MlOuG2S8Kv4bGXl3FMgKZvAduoxJCuYydLtW6QlbZ+kTwJpaHOxHHriZl9VZXm2NG1NNV1JR9qeLEkvzQaue+lN/jTV4cYWB3Sa8gEtp/5hoUPjqUqdRVBWojei2S638Kuw3tY9/YjJLtU8vTzqzh4+AADepTji4aWGVKm1TDuocV8ff4sLRLuZCrJ+FWqV6VgJyl0BBrVluDTNRHywNPP89nvP2ZIz1oKmkj/FhRPz61THuL3F37D9HG98Gub2Ll3G2vfeQ273KJWvlfo0cmrYdnGfVw4thm98grGTV/AV2d2MmZ4EylNqot1OFqW4SNG8elX/8C9995JkL6CGjelPD3p1k4mIw5lscP26fXLbZN/7f9fyovpeKzk0fxEQVABjcjdWj6h9L/IxLOan3HUeEFGuFyKjVSKfGtVP95dv5OPj+xk5KAGLL1CzSL5hSK3z5jDA/Of4aHHn+Tx+U/xxPx5PPPkr3jy8Xt56unHGDh4MFo8hpS9PTtPLOEx+4WNCmjG1JdhGRWKPiHlFBl24y2c/+RjfjVzMkH8SrzA5Uq3G31umc6533zK49Nv5OryNK+v3cOpA7tp1q+kyU+T1F06O/W8tX4zB/btYVj/7kpszZK5KKdIjW6q8rPh+6RC4ZBx0cw6ku5A5i9ayccfb6JfT+GxqaSb7XKF2Z35S9/jjxc+om/WoXHQONYe/JRVL0yjNvVLchkDQwux+7Zw4Gwrq359H4lOFTw87y1OnG7lhsFprFQSR/dIeo1Me3YFZ461MmVEM1ldAFAmuD0KVoKCCN616XJLZ7FhBCTskJmPPMyFby4wdkRv/GQZnl3N1bG6KHT6+gx3julJvraBVR9sYtfm92hMOoTCDJjN0TlsZPfu4xzcvprKik6MaZnHuWObuWfyYIxYOZbVQCxTx+0t9/DN1xdouf16PLuc0LNwTekwjipOQuolICOeTPuzspu/gU13BJVLvS4Bzd/govy1naH9dxHQuISWrQin/LZBSsdz0aR5ryChRYEKq5obb7uP2Q89z54tq1n/7mJCP0NSS+CEWcqSGuVpUxGQJ1I66VSCdKISPdUZ00xiSCOY65L1cjhmjsqkx5yFazmwazOj6iuwzAqSThEjqKK5ew/Ofvo5b730DM0iBGdq/J3TnSmPLuTkkT3cMriWLpUpHnp+KZ9d+JLJvR3q9M6kvGr0bkPYuXcf77z1GmEuT07UEwQ87QJVuoRO0q8SAY3t2GSMWlLuQFrmPsUffneAltt6K5E98X66+H14e9cRtqxbTL2VItswjKXbjnBq62L6ZpNIt2467TBwwuPsP9XKg3OGE+9UyfjbHuH8Z2e5586+5B0HI2XjVvfh5U2H+eC9dYxoCrBinTGz1Zi2Td5OkRfWPMVmKP1KMgZSTcKxuWHSeH775Tc88fA08mYFjlEkbgzimUVvcnj/eob1sAmzBRa8sYSzZ04ztlsTQTpJPCyiNQzgNyfPsei5R7mqa2cGjmjhzLFtvLNgJsV0GZbTSBejF/MXvMJnZw8xfFAtupNGd1yqJBcjU/8ylGtFA50SmqqwSQBIjSy0z4ZFoxcdG0TFrtof7bYWPV+6kfRfv+cvl9QvBS4dj5WA5qcMNEK9YBttM1AulpqzCanUDNUBXJnQuHboSJ5+4jn0pMEtt4zjwoULDL12ELqWoJDzcPQ0vjR4qbkfSSoHKv8gncG+Lo1fgZraNuwcGTvHlWUp5j3/Cq0Hd9M9n8BId1K5k4SZV+3zr765jLNnztBcX0Wishy/qp6Nmz9kx/uryFkVxPU0DQNv5vDxL3j1hcfQYleRSjtMmTqTr784w+TxN2LrWQoyaOmZihIjK2RVMu/jyXxWgGsHlFcaFOr64dc0c+qTk7z8yvNqKFRLJOg39EaOf3KeB++dhZVOkMi43DXnfv7xm3OMvn4opqYjcjFLVmxiz/6PaG4qYBpCsVHNrj072fz+CjXFXl5WyZAhwzh3/rfMf3Qu1b5wKmcwpc1f1kem0WUWy/dUbkbOTXOriVs+RjbPqvXvs3PHZhpq85R3Kadv72s5uO8jlrz8BE78anTT5YZbb+Pc+c+Z/+DDJCpiJHWLWXMf5JNTp5gycRRdOl+JqTssf+cdju3fQ0OxQDJtkK9vZPvubaxf8xausBJ6QuhVwHdErsfD8gqkZSpfcnaOjiW5MKEutaKcXjQHJrNtjtJSj66/AIUASjQnpnKAyv6lQzxiJOwISt8VZOR9HUHlUq9LQPMTBRq5eBIq+QI0rqn4ZpTUrBeieSGF2gbunDaNle+8y2NzZpPXdXoNGMbK9zbzySefcuvYUQTSMOYb5Oy0AixxuTVPZqHyqgEvKyGZE5I25HiBbr0HMnri7Rw80qrK5g/dP51hAxpVo2DGqSJthPTsO4TV6zay6YMPmTrlNl5e+DRHD+1izE1DcPUKxVHj5Hswdfp8tu3dwpNPP8bsabP5aNsOlr/9HHVVLq5eULzBjqdjuTL0aeOKxyYPS0In6WoukDYduiQ1xt81i90HDytFgwkTJrDxvQ289eabVNfUYBgy8e5RyAsH82r27d9Py9SpPP74PA4dPMCMGTOi9/i+Yr4bN+5Wdu3azaJFi5gwcSIfbFrL9k0raW4soGXiavDUlC5rNZjqYajeJblZTdVekJbGvWIDsbTJoKHXsXP3Xl5Z/CotUyazZtlbbNm4hubanBrrSNsBcd3luRcXs3X3Rzz06GPcf/99HDzwEU89/pjSP2+szuLpCfr0HMSuXa2sWbOeiRNv4eVFCzjYupPrb7wW3UhH4ZGTw7YLNPa8lvUf7mbrzj10b65H02PkZUhWJuQtSexLnksaN/Uor9fG+yOejNdGYRHRWAjgROATAY383b8dj/kugHMpcOl4rAQ0P3mgkVJsBDSSwxCQSTouN4wey7r33uNE61GeeeQRipbNnLkPsXXXR5w8eZqlb79BY3UO30gSSuew8N644tFkMd2com0oegFZv4BuyQ5ey5iJLWzcupPtu3Zx5NhB9u/9gFdfeoKq6ho0M4sXFkmmTK6/YRSvvfYam97bwNo1y7n5xhF4dpp81iYpg5Z+NZpRy0OP3ce6DcvY9v52nn3iKfr1riKV6ErWq1Peie1qiiVQEt0yuS60CjL5LGGBjE/okqCurqVM05k5517ee28DO3bs4O2331ba4JKXkJtAKDyl6lJXV6ckVrZu3cqGDRuYOnWqouFQdBttjW21tbW0tLSwceNGPty8mVcWvcTA3t3JeTqOlcEPfFzfV59tifcnXpaarpZd30V3fDTbRzTKK+MpJk6azIoVK9i2bQvL3nmTEdcOpCYv1B4WVlAgoTt069GbBx6Zx9r1G9Tnzr3nbqqyPsXQUzI1gZkmFxa5bsTNvPvucnbt2s6q1Uu5buRgHBHb84WM3cWxAxwrR7G2N2s2bWfrzp009agln7PVGEkg62aFiv5DAEWAXOhD7BLQ/OWY77ug6M/9PVLSFm1o2X1UtUlItkVuVaahHY9YPE5Z586Kuc4S1UYvz99dcTWZjE6Xa64i6xgERoLQMdT/iYAmVEDjipJARjhwfEWVYDhZ4oZL0nAoj8Xo3Okqyjr/AkcrU7NUthBW+TlsmcbWdBKJuJIxqawsI5NJEPiOmgL3cx6GqC8UmygvvxpTi6MlMmTiKTUoKURfkqhNpTNUxLoST1aQSJaTTMijkmQipkrwhqGTEtkU1yHt2sRSSaU+KSqVnTp1Uju8cAJLD0k+n1clXpn7klKvvEekWuQhICMPsRX5fbvCpVK0LBMp34Tqfg4dCz2ToTKWIJnRKa9MU5nMUJlIE4+n2+RcEiSSKRKJFLlcQXVoxyor1WdeffU1ZGQcIiOPNJZt4YZ5MpZHQreQGbR0RldrpgjItJQq/cvQqjAr+jKBnjTp2rWceCJGeUUnBTK2k1GNesKOKDNuMkzrerXMe3IhDz7yMF3KrlRNlb5caysCGk8AScIjz4goRzpsphIuXczRRN6L/Bx5Mj/Mm5G17ei9XOp1yaPpcBH+lsAlybz2R/t5iAEoT0Rxr0hXsHCe+IpsKmMK74ujeHpFPzrvelSkNMJiHYYupEuWyjcUA1t1twpgtQONIRPbQjyl24QygJktorshmhtg+FnSuk6xIJQUKXwrgW1mCP0QWyoedqRrLZ2ownksuQNdUXyKDK6JdCwLSbmQdNlWhjCwVTgknDtBGMmk9OkzlCVvvcOqtat4d9VSlq9cysoVS1m1YimrV7yrvLHFi16m74DepM0Mbi7A9mU2y4yIwoTjOJNR1BNCHCaAI49sNvttT4m8bq/EyGv5vfwslRoBI3ktXpCMXRRCD0vT6dnck/nzn2H1uk2sWruJd5evYfmKNaxYvpaVy1exauVK3njjdSZPGI8QzZuGcPxEFR85D8WfYwtfslA5hBjSOJgr4udE8M9C5tBU0ta1yQrZmaUpsBHPJp0UUMgqACsU82S0OJ4vJGUappVRNKyuhG1OjnyxB8OvH0P/gf2xnDSBL42REh67eDJ0KzI2wnPjtQ1gKubGNk4exeXTzukThUqK60e4cn5g2FQCmp8IiLQDx196jowv6oeQ93T8OVQDjdIQFnk1QhFgOjKOIK68UEoahJ6vfh/mqtBNm1whh65lKOQCLD3VlgyWXT0azJQuVxmudEwh3hLgEKoJoZiICMPDnNCIOqSSFdRUBQSy6wpRlG2QD7OYRlTtkJBFyKUk1DAtN+oytkyK+RAtkySXlRtDdJlkx/RIZTKqylVVXc/td0xj2szpTJ0xlbtm3MG0O6cwfVoLM6dNZe6cmdw+eTzZnIcfOsTSMZzApZAvKC9FPldu7Pbyrngs8rM8i9ciIChgIu8rFArqWdZVfhaAaX+PrLPQlGrpDPlcUY09zJx1L1PumE3LnbOZMXMu0+6aybQ7ZzJr+izuunMaLZPG07OpHjOTVN5CLoxAzBWZHN0iyFcpPiBb1jLIYggZvSljA+IR+uoclNaUAL+lU5ULMfU02WxBNU/KOqXTKcWI6HpyvgJO0feTayWVL92S/xuQzqTx/DSBp5H1hDFR8lwCMtmITCsQD0WoYmWTEY9I+Is8bD/AkHBZEsBCxCXMjgqMIs/vL9npXzt+KS+m47GSR/MTAaN2cBFjlAsaufwmeT9L6AUEfkAoigLCXSthisTe6gaWkmbEO6N2VKGAkBtIAEBucpUUlOco8ScT4JGBOd9STcp0txxTpFUiDyvutSMMcAIw0nCnf/ss/0eSr5Z4NJIjERImL4sX5MnoMk1u4Tnyfg3LsMmGOTUuEWazWJJ8DiNPI5FIE0umiGcSaIYoUsbR0nGSEoolKilmfXQjpSoqEgKoHqIOZE+yXu0PWa/29Wt/br8p2n+W53ZgktcCOPIQsvHAlfWVztosqbRJIi3ho0YyI4TvJolYknQiiaWlsNRcWEblvSRcUd3CkjAW1kTlxYQRrYTc1G3rqtZW1r3t/NXnK64hO7pGbcx76jqo98h3k6n9CGQEJKK/FdsQqpAcEsq6UhHz0nji1bgmvngxulC2SmeziyF0rVLZM2REwcLxPDKmVC9zZKvqcHxhF5TrZZKVwoP6zB+WzugIKpd6XQKanwDQiBHJjiyGLx5KFJa0AU7axNRsTF2MWvpODMXXK9PP0YClVERkF4umiy/G2x3j7vbYO4rP1Y2pgKiN86a9t+LbHoz2/ovofwj/iRh9oBQY2v9vewglz+ItyHfItd2wwqGbUt25cuMW66pIGRk0PQI004wTCECphK9FRpcQS0jLbfK+x93TpzN18kS0ZJx83lOAE4qmdwegaQeS7/r8538rgC7HBJSVhyE7ve1he1nFkZwr1qkQSNQjxIuTmzUnInq2JNaN6CFAo4BcgM6PZHK8UM0zRfzB0U3713Mi7SHNxWsUfaf2a9DxePQ6YkUMcTwL300TOEk1AGobDpYm4WE1nkjl+DI3JpuVJNstHPH2ghxpO+SmWydzx/RZuIEk4E18CVFFjeMH3g+XApeOx0pA8wMX9rsa+Hd9X7tbHxm93LQBNTV1DOg1kBHXjlDG7qkGNy2qQkhrv8istKsqKNVH8VouGqbi1lUctB3LlvL7yLtpNyqVOFTHxLgvgo+48Ypn1/MxnUjSxbQMjLacTDKRVB6BI0x90tMhXMAZcfNdvCBDEHYjlnIpS5STkCRp2ieTElCJYWvpiOEvzCrpGct0lec2d9ZsFj75FDXZAo6ukfXlf2tKueHPweK7rm37+wTAZX3bQycBdsnTiMSwSN+4vuSCQqUgkTElxyGhjqU8mbxnKO0t1W4gjIfKWzQjPuI2+g4BfCGnEk8mmo1qX2vJf0Sg034ucp0UAH3Lk3wRwC9eQ7luf37tJOku9KuyEZkEToLATSr9L2lVCF0JAbMkNRvRXs+k4vhWGs+WMNdTShmi2VXX3JcXX32d8RMmYGTiFOWaKU7pPz/P7/ZzR1C51OsS0PwbA/huC3vRYH7I+8UA5XGxS1NuIjF8SXjKjTB69GheWPgiu7ft4dBHhxk+5FpcU0IgaXITfaUIaKS5TATdZAdVHo+42eo7RU1YYvRRj0T758nvIykQZejqHKIQS/VY2HIDyHvFwIVE3ccKQtIiNSuE4kL2HQb06deX6dPu4qaR1+MYstPbZG1bTTGnMymcUKo2WVWKbblrKo/Oe4RHHlrALTePoqYQI2ukyIV5VSr2/Dym7jJu9HhWL11Jc00jWixJQXIJqRT1VUVMXVfr9e0N2rZ20TpGAKlCSHXu7d/14vrKWgvQOLaEK5G0roC7HJMQRL6zSMuIzIwuFKhhjsp4jKbGekYM60/eyxCqG1byGALUbY+2cQBVzVEsiG3gLBSqbaFru/RKtK5ybhHIKOkdCVUVNafYkZxbO01ntP4Sdqn/3WanalOQqpICGkOBjACNJ3Srhks2qEE3Q8WhnHZcrh3cnz6NtVG53ZZ+qRy6lydlhfTsP4SVK1cybvQNaJVdCAPxzH6IPZeqTm3G+cMW7z8GJn/hM1VuQW6AaEZFGZ0CGZdsKOoDkRH269eX229rYeGCRZw4fJxrB/THkAqJqEJKDsQzo2SwVKKCQOUFJK6PboDImCXxpwxV5QeiXI7kXpQb3Zb8U7SQysAv5nOim1fOX5LHAaa42xJahDk0SXpaFtcOHcrhQwdZMP9xnEwjnJaMAAAHvklEQVSaapm6TifJ5eqIZzTsUKOqfjBLlm9i5fpVvPzqQtas+oAvz5/n/rvHold0VioMmiX5BiFcL7Ls7eXMaJmGGc9Q5WXJCTOgaZEPQ2xVor64ZtFNKbkLORattdI2l/BKHYvWQMBXEXnLezxfleaz2Tz9+/VXvTgiPyPdtZYKRW0lmJevqWXCpEm8+tpiDh3ax+uLnqW5PsA3Et+CxEWQbrvO6hzaPlPluCKQU/1BSu1AErJtwCdeY9t5q9xOG5hEG0Ub0CvPUoZpo4HaSPUhyp1FCd/Io/ElRHWEitUg8LPomkd1bTMz7n6Ad9eu5+zpozwweyrFnFQIfXQnxMzWKBkZzfJ5/IknWfr2W2pI1jMybZvURdv9rl7kpbyYjsdKHs2P6dGoHEOg2selEhEEDoYWU2VoR0vi6SaFIIel6DglKWkwYGgL+/ZsZdiAPL6ZVsbqG6YqTbtBPVpVNV0Nm2TaIRCPSEvhm5pKVoa+o4jCJflniIHZssuaBFJ2tjNUhTYFkeGVPg4h1JIdX90MbeVPuQGcqPIj+lBOWE1ZIDM90jjmMXBQL/pUBYRJofxMEbhZUkYOK6glnrG49a65HD/9G8aPuomrO/036jyTKWNGMvL6vli6gWa4+IUmYsk8kyffwXvrVtCrqYCn22RFJ8nQCPOOCgM0q0hSk1xUiG1IOFBJzpfSuagRVFGpxbGzGtmwDl3Lq3BIuIlzVpKigLJpYwbVagpdVA8ee+Jpbh45jKzWVZFl2WYaR0TxbI1CdS2jRo/jqZfe4rM/wcY3FqhxDM1KR97ev7fri8fk+pS5slYOlpEisAw03SalC+Bn8TQ5N+mMFlKwPJppYpg60rYgD93UsSWJq8UJZbgzlH4gHS+UJLBUjwQMJKEfidUJG6Dnyf8wFdBMarmfJe9s4f/872948J6x5HIWjilVvwDdzhMGAbquMWjUBN7cuIeWkf0Ikp2/BRrl6bVNhn8XsOkIKpd6XQKaHxNoRDzODtG9anKFWpq619G9W5bmuoBq1yIUAihxiU2LbNZVU899h9/Lwf2buX6AgW/GcJyQKj9P0S4Qz1RRni8S9uhJ96ZBNNTV0VBToLmuQGDElYKBlF0zTg4trKJY042e3RvoUZOlLtCwE53JWWmynngz0S7bHmq1P8tOGoYScoicS4FOxe4Uuw+mR2MzQ4b1oY+XppsRV0auGwFpp5qgqh/V9QN54IVF7Nq7j6HNTXTr5jCoxiKIXY1mpbBtCffyZPwaDLMHb725gmcXPEAxH1PT6qGXQzMS6EGahJEjVzuEQv0Ampv701QXUPTL8cwUlt6I5TdR7FGDW6WTSGWprRpAU1MDvepEPSBGqFcqzXHd74bdOIxJc5/m5LnfMmvaZJrDOMMbwij/Etiqd0VK/ZpUnPIDeWXDSTYuepT+1UmMnOgxRZ7hX/V2HUc1VFbU9qF2wFCae9TTq76auvru1HcfRFP3PvQsBgxorCKh6bjd+tLU3ExTj0YaejRT36MXTT2a6NWjloE9qqgPUoRmTFX+TF82qnZtKJm4l9kwT6llZLPiDYlX5qHZPaitH8Mnp/fz4L0j8XMp1SUu9iNAk5cqlahfNA/l+fWtvDN/DjXpzio53h5myrOqzH2HJPylwKXjsRLQ/IhAIzuDZQX0HjiSl199g8NHDnDy6B5Wvv0y1w/qR2hYSlhe5FGyOZeU4dJv+D0c3LeZkQpo4rhuGO34clNbdfQePZZ33v+Qj/ae4NiRo+zbvZ0li56jd0MVvqWpJjG/WM/EabPVjNKp40c4eWA3zzx6Lz1rsxQ8QykgSNncD6I+iygvcDG3Y5kiGmeSNDwaRk3m7TVbOHn8FCdOHWTmzUOpTpWpxrIgrFKgcP9jL7FjzykO/fZL/vS//okzh/bT2rqZ7StepX+tj+GkMW0Rnsshw5p+0JdDrceZPv1WfLcLvuGQdXMYdhoj1MjWNDP7/mdZu+kjTp/6lNb9W5kzbRT50MKzezD0ukm8s24ZT774KOPG38Xa1bs4ffoEW9cvY9qt1yO8MlpaZ/ioKSzbepQdJ77iX/4fnP/4GKd2rVck6tcNH4RuprGcDNKPJGqbMbsHi9YdZeuSp+mVqyTl6Mj0fJQLuhhe/BvQcRxShsmwO+9j1fY9HD28j5OtH9F65AT7Dp3mwMFjnPhoOyvfWESuuoa7n3iR1qPHOHT4IPtbD7Ov9SgHDx/iyMHdHNyxiTtuuY6snSAMHSUMaChlUuGPjoDGk/DK1jHNlGIuNJ0CGauJqpqbOXf6IA/cO5IgJ/w70i4QYDgFsnaGbODQxavnvkXr2f7ms9RqXX6aQNMRsUqv//nfbcMurVFpjf6r2sB/yKP5r7pope9dAoySDXw/GygBzT9/vwUrGVhpvUo28P1toAQ0JaAphXwlG7jsNlACmpKRXXYjK3kA398D+LmtWQloSkBTApqSDVx2GygBTcnILruR/dx259L3+f4eWgloSkBTApqSDVx2GygBTcnILruRlTyA7+8B/NzWrAQ0JaApAU3JBi67DZSApmRkl93Ifm67c+n7fH8PrQQ0JaApAU3JBi67DZSApmRkl93ISh7A9/cAfm5rVgKaEtCUgKZkA5fdBkpAUzKyy25kP7fdufR9vr+H9v8BTss/LijA9GYAAAAASUVORK5CYII=
答:加“*”是组合逻辑的写法。当敏感信号非常多时很容易就会把敏感信号遗漏,为避免这种情况可以用“*”来代替。这个“*”是指“程序语句”中所有的条件信号,即 a,b,d,sel (不包括c),也推荐这种写法。



页: [1]
查看完整版本: VERILOG语法问题【汇总贴】