B fd?g!d@dAdBddgdCedDe d ddddEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWd%dXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjd+dkdldmdndodpdqdrdsdtddudvdwdxdydzd{d|d1d}d~dddddddddddddddddd7dddddddddddddddddddd=dddddddddddddddddddddddddddddd?gdddddgdCede d ddgdede d ddddJdd!d?gddgdCede d ddgdedDe d dEdFddddddLdMdNdddd#dddTdVddddddd[d\d]d'dddddcdddedddddd+dkdldddddddrdtdddd/dddydzd{ddddddddd3dddddddddddddd7ddddddddddddd;dddddd d d d d ddddddddddddddddddddddddddd?gdd ddgdCed!e d dEdƐd"dddHdIddd!d#dLdMd$d%dddPdQd#dԐd&d'dTdUd(d)ddd%dXddڐd*d+d[d\d,d-d'd.d_d`ddސd/d0dcddd)d1dddgdhdd2d3d4d+dkd5d6dddndoddd-d7drdsd8d9dddudvd/dd:d;dydzd<d=dd>d1d}ddd?d@dddAdBd3dddddCdDdEddd5dFdddddddGdHd7ddIdJddddddd9dKdddLdMddNddd;ddOdPdddQdRd d d=dd dSdTdUdddVdWdddddddXdYdddZd[ddddddd\d]ddd^d_dd`dddddadbddcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~d?gݐddddgdCedDe d ddddgded!e d ddddgdeddeefgdddDdEdd5dFddddddGdHddIddJdddddd9dKdddLdMddddddOdPdddQdRdd d=dddTd dUddVdWdddddddddd?g=dddddgdCedeefeefdgddddddFdddϐdddАdddNdddӐdddՐdddVdddؐdddېddd]dddܐdddߐdddedddddddddldddddddddtddddddddd{ddddĐdddƐdddȐddddddd!dddd͐ddddddddѐddddӐddԐdddd֐ddאddddِddڐddddܐddݐddddߐddd dddd dddddddddddddddddddddddddddddddddddddddddddddidddddmdddodddqd d d dsd d?gÐd ddddgdCed1deefe efgddddddddddddddddd!d5ddd6dϐdGddddӐddddddאddLddddddOddddߐdd=d dd>dddVddddddddddXddd?gBdddddgdCedeefeefdgddddddddddddddddddddd dd ddSdd?gd!d"dddgdCed#eefeefddgdddddEdddNddddd[d.ddddddlddrdddzd>ddddddd3ddddCdddddddddddHd7ddIddddddddd9ddddddMddNddd;ddddPdddQdd dd d dd dSdTd dddddWdddddddddYdddZddddddddd\dd]dddd^dd_ddd`ddddd?gd$d%ddddgdCedee fee fddgdddddddEddLddddd]ddddd+ddddd{ddddCddddddddddddddddddNdd;dddd d d d dSd dddddddddXdddYdd&ddd?gId'd(d)d*d+d,d,gdCedYeefeefeefddgdddd-dddEd.d/d0dʐdd1dOdd2d3dd4d5dd#dbdd6d7dd8ddd9ddd:d;ddDd<ddd=ddd!dd̐d>dFd?d@ddAdАdGdѐdBdddddCdՐdd֐ddKdDdEdddddېdFddGdHddIdߐd ddJddKdd dLddVddMdddNddddddOd[ddPdQdddRdd\d]ddSdddTdd?gvdUdVdddddgdCed%ee fee fee fddgddddddd-dEd/dʐd#dNdPdԐdWddXdېd,d.dadcd1dd3dkdXdd7dtduddYdd}ddAddddFddGdddd֐dKdDddddېddGddId d dddKd ddLdVddddddXddddddZdOd[ddddPdddQd?gXd[d\d*d*d+d,d,gdCed3e d d]d^gded_edfedfe dfgddddd`ddFdd/ddϐddJddАddaddNddbddӐddRddՐddWddVddcddؐddYddېddddd]ddeddܐddaddߐddfddeddgddddiddddhddlddXddddpddddiddtddjddddwddddYdd{ddkddddƐdldddd?gfdmdngdCed-deefgddddddEdFddddddLdMdNdddd#ddTdUdVdddddd[d\d]d'd.ddddcdddeddddhdd2d3dd+dhdkd5dlddXdddoddd-ddrdidsd8dtddjdddvd/dd:dd;dydYd?gOdodpgdCedqdeefgdddddFddddddMdNddd#ddTdUdVddddd[d\d'd.dddddcdddeddddd2dd+dkdldddddd-ddrdidsdtd9dddudd/dwdd:dd?gAdrdsgdCed&deefgddd-dFdHdǐdaddQdՐd(ddYd[d-dܐd/ddddgdhddd4d5dldddndodpdddrdidsd8dtd9dd?g)dtdugdCedvdeefgddEd#d]dddedddkddddd-dd?gdwdxgdCedceefeefdgdddddd-dydEdzd"ddIdǐd#dMd{d%ddQdԐd'dUd3d)ddXdڐd+d\dqd-d.d`dސd0ddd|d1dfdd}dhd7d2djd4d~dkdd6dmdddodddqd7ddsdd9dddddvddddxd;ddzdd;d=d|d>dÐdd}dd~dddd@dƐd<dld?g\ddgdCed(deefe efgdddddddd`ddddddddddddddddddddddddߐdddedddddddddldddddddddtddjddddwddddYdd{dddkddd1ddd?gJddgdCedaeefeefddgddddddgdede ddddddddgdede ddddddddgdede dddddddgdede dddddddgdede dddddddgdede dddddddgdedIe ddddddddgded#e ddddddddgdede dddddddgdede dddddddgded#e ddddddddgded{e ddddddddgdede dddddddgdede dddddddgdede dddÐddddgdg-Z dS()ConvolutionalCode)poly)xcchmcsr zxCCH convolutional code:z 228 bits blocks, rate 1/2, k = 5zG0 = 1 + D3 + D4zG1 = 1 + D + D3 + D4)name descriptionHZtch_f24zTCH/F2.4 convolutional code:z72 bits blocks, rate 1/6, k = 5zG2 = 1 + D2 + D4zG3 = 1 + D + D2 + D3 + D4Ztch_h24zTCH/H2.4 convolutional code:z72 bits blocks, rate 1/3, k = 5Ztch_f48zTCH/F4.8 convolutional code:z 148 bits blocks, rate 1/3, k = 5 )8GVeti ii(i7iFiUidisiiiiiiiZtch_f96zTCH/F9.6 convolutional code:z 240 bits blocks, rate 1/2, k = 5)puncturer ri"!%*/37<AEINSW[`imrw{iii iiii!i&i+i/i3i8i=iAiEiJiOiSiWi\iaieiiiniwi{iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiii"i'i+i/i4i9i=iAiFiHiKZtch_f144zTCH/F14.4 convolutional code:z 290 bits blocks, rate 1/2, k = 5ZrachzRACH convolutional code'Zrach_extz)Extended RACH (11 bit) convolutional code#ZschzSCH convolutional code+;?CKO_cgkosiiiii#i'i;i?iCiKi[i_icigikioiiiiiiiiiiiiiiiiiiiiiiiiiii#i3i;i?iCiGZcs2zCS2 convolutional code:iN-59MQY]qu}iii iii%i)i1i5iGiIiMiYimiqiyi}iiiiiiiiiiiiiiii i i!i%i-i1i7iEiIiOiQiUiWi[i]iaicigiiimioisiuiyi{iiiiiiiiiiiiZcs3zCS3 convolutional code:Zcs2_npz'CS2 convolutional code (non-punctured):Zcs3_npz'CS3 convolutional code (non-punctured):)rriQi]iuiiiiiiiZ tch_afs_12_2z&TCH/AFS 12.2 kbits convolutional code:z#250 bits block, rate 1/2, puncturedz G0/G0 = 1z%G1/G0 = 1 + D + D3 + D4 / 1 + D3 + D4 "(.4:@FLRX^djpv|ii iiii$i*i0i6i<iBiHiTiZi`ifilirixi~iiiiiiiiiiiiiiiiiiiiiiiiiiiii i&i)i,i2i5i8i>iDiJiMiPiSiViYi\i_ibieihikiniqitiwizi|i}iZ tch_afs_10_2z&TCH/AFS 10.2 kbits convolutional code:z.G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4z.G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4z G3/G3 = 1iLi|iiiiiiZ tch_afs_7_95z&TCH/AFS 7.95 kbits convolutional code:z G4/G4 = 1z9G5/G4 = 1 + D + D4 + D6 / 1 + D2 + D3 + D5 + D6z9G6/G4 = 1 + D + D2 + D3 + D4 + D6 / 1 + D2 + D3 + D5 + D6iZ tch_afs_7_4z%TCH/AFS 7.4 kbits convolutional code:Z tch_afs_6_7z%TCH/AFS 6.7 kbits convolutional code:iZ tch_afs_5_9z%TCH/AFS 5.9 kbits convolutional code:z124 bitsz9G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6z9G5/G6 = 1 + D + D4 + D6 / 1 + D + D2 + D3 + D4 + D6z G6/G6 = 1 2PZnxiii,i@iXi^ibihiviiiiiiiiiiiii iiii*i0Z tch_afs_5_15z&TCH/AFS 5.15 kbits convolutional code:Ui i Z tch_afs_4_75z&TCH/AFS 4.75 kbits convolutional code:Ztch_frzTCH/F convolutional codeb 1=ayii-Ztch_hrzTCH/H convolutional codeZ tch_ahs_7_95z%TCH/AHS 7.95 kbits convolutional code~Z tch_ahs_7_4z$TCH/AHS 7.4 kbits convolutional codeZ tch_ahs_6_7z$TCH/AHS 6.7 kbits convolutional codelZ tch_ahs_5_9z$TCH/AHS 5.9 kbits convolutional code 6iii Z tch_ahs_5_15z%TCH/AHS 5.15 kbits convolutional codeiiZ tch_ahs_4_75z%TCH/AHS 4.75 kbits convolutional codeZtch_axs_sid_updatez2TCH/AFS and TCH/AHS SID UPDATE convolutional code:$r Z mcs1_dl_hdrZCONV_TERM_TAIL_BITINGz(EDGE MCS-1 DL header convolutional code:z42 bits blocks, rate 1/3, k = 7zG4 = 1 + D2 + D3 + D5 + D6zG7 = 1 + D + D2 + D3 + D6zG5 = 1 + D + D4 + D6)r term_typerZ mcs1_ul_hdrz(EDGE MCS-1 UL header convolutional code:z45 bits blocks, rate 1/3, k = 7Zmcs1z#EDGE MCS-1 data convolutional code:z 196 bits blocks, rate 1/3, k = 7Zmcs2z#EDGE MCS-2 data convolutional code:z 244 bits blocks, rate 1/3, k = 7Zmcs3z#EDGE MCS-3 data convolutional code:z 316 bits blocks, rate 1/3, k = 7Zmcs4z#EDGE MCS-4 data convolutional code:z 372 bits blocks, rate 1/3, k = 7Z mcs5_dl_hdrz(EDGE MCS-5 DL header convolutional code:z39 bits blocks, rate 1/3, k = 7Z mcs5_ul_hdrz(EDGE MCS-5 UL header convolutional code:z51 bits blocks, rate 1/3, k = 7iZmcs5z#EDGE MCS-5 data convolutional code:z 468 bits blocks, rate 1/3, k = 7i^Zmcs6z#EDGE MCS-6 data convolutional code:z 612 bits blocks, rate 1/3, k = 7Z mcs7_dl_hdrz(EDGE MCS-7 DL header convolutional code:Z mcs7_ul_hdrz(EDGE MCS-7 UL header convolutional code:z60 bits blocks, rate 1/3, k = 7Zmcs7z#EDGE MCS-7 data convolutional code:i.Zmcs8z#EDGE MCS-8 data convolutional code:z 564 bits blocks, rate 1/3, k = 7Zmcs9z#EDGE MCS-9 data convolutional code:N) Zconv_genrrZG0ZG1ZG2ZG3ZG4ZG5ZG6ZG7 shared_polys conv_codesrri/home/osmocom-build/jenkins/workspace/osmo-gsm-tester_build-osmo-ggsn/libosmocore/utils/conv_codes_gsm.pysp    .,."&&"&&(&&*0..28,"&((* &((&((((*,,,,,00  ("*,( "*  &$((((  $&, $,.&**.,,"    &***  ((((&((&        $"&$&( (0*((&