text:
1="3.2209" y1="7.18845" x2="6.618" y2="7.19075" layer="26" rot="R180"/>
<rectangle x1="3.2255" y1="7.19075" x2="6.6135" y2="7.19305" layer="26" rot="R180"/>
<rectangle x1="3.2278" y1="7.19305" x2="6.6112" y2="7.19535" layer="26" rot="R180"/>
<rectangle x1="3.2302" y1="7.19535" x2="6.6066" y2="7.19765" layer="26" rot="R180"/>
<rectangle x1="3.2348" y1="7.19765" x2="6.6043" y2="7.19995" layer="26" rot="R180"/>
<rectangle x1="3.2371" y1="7.19995" x2="6.5996" y2="7.20225" layer="26" rot="R180"/>
<rectangle x1="3.2394" y1="7.20225" x2="6.5974" y2="7.20455" layer="26" rot="R180"/>
<rectangle x1="3.244" y1="7.20455" x2="6.5951" y2="7.20685" layer="26" rot="R180"/>
<rectangle x1="3.2463" y1="7.20685" x2="6.5905" y2="7.20915" layer="26" rot="R180"/>
<rectangle x1="3.2509" y1="7.20915" x2="6.5882" y2="7.21145" layer="26" rot="R180"/>
<rectangle x1="3.2532" y1="7.21145" x2="6.5835" y2="7.21375" layer="26" rot="R180"/>
<rectangle x1="3.2555" y1="7.21375" x2="6.5813" y2="7.21605" layer="26" rot="R180"/>
<rectangle x1="3.2601" y1="7.21605" x2="6.5766" y2="7.21835" layer="26" rot="R180"/>
<rectangle x1="3.2624" y1="7.21835" x2="6.5721" y2="7.22065" layer="26" rot="R180"/>
<rectangle x1="3.2647" y1="7.22065" x2="6.5698" y2="7.22295" layer="26" rot="R180"/>
<rectangle x1="3.2692" y1="7.22295" x2="6.5652" y2="7.22525" layer="26" rot="R180"/>
<rectangle x1="3.2715" y1="7.22525" x2="6.5629" y2="7.22755" layer="26" rot="R180"/>
<rectangle x1="3.2738" y1="7.22755" x2="6.5582" y2="7.22985" layer="26" rot="R180"/>
<rectangle x1="3.2784" y1="7.22985" x2="6.556" y2="7.23215" layer="26" rot="R180"/>
<rectangle x1="3.2807" y1="7.23215" x2="6.5513" y2="7.23445" layer="26" rot="R180"/>
<rectangle x1="3.2853" y1="7.23445" x2="6.5468" y2="7.23675" layer="26" rot="R180"/>
<rectangle x1="3.2876" y1="7.23675" x2="6.5444" y2="7.23905" layer="26" rot="R180"/>
<rectangle x1="3.2899" y1="7.23905" x2="6.5399" y2="7.24135" layer="26" rot="R180"/>
<rectangle x1="3.2946" y1="7.24135" x2="6.5376" y2="7.24365" layer="26" rot="R180"/>
<rectangle x1="3.2969" y1="7.24365" x2="6.533" y2="7.24595" layer="26" rot="R180"/>
<rectangle x1="3.3015" y1="7.24595" x2="6.5307" y2="7.24825" layer="26" rot="R180"/>
<rectangle x1="3.3038" y1="7.24825" x2="6.526" y2="7.25055" layer="26" rot="R180"/>
<rectangle x1="3.3084" y1="7.25055" x2="6.5215" y2="7.25285" layer="26" rot="R180"/>
<rectangle x1="3.3107" y1="7.25285" x2="6.5191" y2="7.25515" layer="26" rot="R180"/>
<rectangle x1="3.313" y1="7.25515" x2="6.5146" y2="7.25745" layer="26" rot="R180"/>
<rectangle x1="3.3176" y1="7.25745" x2="6.5123" y2="7.25975" layer="26" rot="R180"/>
<rectangle x1="3.3199" y1="7.25975" x2="6.5077" y2="7.26205" layer="26" rot="R180"/>
<rectangle x1="3.3245" y1="7.26205" x2="6.503" y2="7.26435" layer="26" rot="R180"/>
<rectangle x1="3.3268" y1="7.26435" x2="6.5007" y2="7.26665" layer="26" rot="R180"/>
<rectangle x1="3.3314" y1="7.26665" x2="6.4962" y2="7.26895" layer="26" rot="R180"/>
<rectangle x1="3.3336" y1="7.26895" x2="6.4916" y2="7.27125" layer="26" rot="R180"/>
<rectangle x1="3.3382" y1="7.27125" x2="6.4893" y2="7.27355" layer="26" rot="R180"/>
<rectangle x1="3.3405" y1="7.27355" x2="6.4846" y2="7.27585" layer="26" rot="R180"/>
<rectangle x1="3.3451" y1="7.27585" x2="6.4801" y2="7.27815" layer="26" rot="R180"/>
<rectangle x1="3.3474" y1="7.27815" x2="6.4777" y2="7.28045" layer="26" rot="R180"/>
<rectangle x1="3.352" y1="7.28045" x2="6.4732" y2="7.28275" layer="26" rot="R180"/>
<rectangle x1="3.3543" y1="7.28275" x2="6.4685" y2="7.28505" layer="26" rot="R180"/>
<rectangle x1="3.3589" y1="7.28505" x2="6.464" y2="7.28735" layer="26" rot="R180"/>
<rectangle x1="3.3613" y1="7.28735" x2="6.4616" y2="7.28965" layer="26" rot="R180"/>
<rectangle x1="3.3659" y1="7.28965" x2="6.4571" y2="7.29195" layer="26" rot="R180"/>
<rectangle x1="3.3682" y1="7.29195" x2="6.4524" y2="7.29425" layer="26" rot="R180"/>
<rectangle x1="3.3728" y1="7.29425" x2="6.4502" y2="7.29655" layer="26" rot="R180"/>
<rectangle x1="3.3774" y1="7.29655" x2="6.4455" y2="7.29885" layer="26" rot="R180"/>
<rectangle x1="3.3797" y1="7.29885" x2="6.441" y2="7.30115" layer="26" rot="R180"/>
<rectangle x1="3.3843" y1="7.30115" x2="6.4387" y2="7.30345" layer="26" rot="R180"/>
<rectangle x1="3.3866" y1="7.30345" x2="6.4341" y2="7.30575" layer="26" rot="R180"/>
<rectangle x1="3.3912" y1="7.30575" x2="6.4294" y2="7.30805" layer="26" rot="R180"/>
<rectangle x1="3.3935" y1="7.30805" x2="6.4249" y2="7.31035" layer="26" rot="R180"/>
<rectangle x1="3.398" y1="7.31035" x2="6.4202" y2="7.31265" layer="26" rot="R180"/>
<rectangle x1="3.4003" y1="7.31265" x2="6.418" y2="7.31495" layer="26" rot="R180"/>
<rectangle x1="3.4049" y1="7.31495" x2="6.4133" y2="7.31725" layer="26" rot="R180"/>
<rectangle x1="3.4096" y1="7.31725" x2="6.4088" y2="7.31955" layer="26" rot="R180"/>
<rectangle x1="3.4142" y1="7.31955" x2="6.4041" y2="7.32185" layer="26" rot="R180"/>
<rectangle x1="3.4165" y1="7.32185" x2="6.3996" y2="7.32415" layer="26" rot="R180"/>
<rectangle x1="3.4211" y1="7.32415" x2="6.3972" y2="7.32645" layer="26" rot="R180"/>
<rectangle x1="3.4257" y1="7.32645" x2="6.3927" y2="7.32875" layer="26" rot="R180"/>
<rectangle x1="3.428" y1="7.32875" x2="6.388" y2="7.33105" layer="26" rot="R180"/>
<rectangle x1="3.4325" y1="7.33105" x2="6.3835" y2="7.33335" layer="26" rot="R180"/>
<rectangle x1="3.4371" y1="7.33335" x2="6.3789" y2="7.33565" layer="26" rot="R180"/>
<rectangle x1="3.4394" y1="7.33565" x2="6.3765" y2="7.33795" layer="26" rot="R180"/>
<rectangle x1="3.4441" y1="7.33795" x2="6.3719" y2="7.34025" layer="26" rot="R180"/>
<rectangle x1="3.4487" y1="7.34025" x2="6.3674" y2="7.34255" layer="26" rot="R180"/>
<rectangle x1="3.451" y1="7.34255" x2="6.3628" y2="7.34485" layer="26" rot="R180"/>
<rectangle x1="3.4556" y1="7.34485" x2="6.3581" y2="7.34715" layer="26" rot="R180"/>
<rectangle x1="3.4602" y1="7.34715" x2="6.3558" y2="7.34945" layer="26" rot="R180"/>
<rectangle x1="3.4624" y1="7.34945" x2="6.3513" y2="7.35175" layer="26" rot="R180"/>
<rectangle x1="3.467" y1="7.35175" x2="6.3467" y2="7.35405" layer="26" rot="R180"/>
<rectangle x1="3.4716" y1="7.35405" x2="6.342" y2="7.35635" layer="26" rot="R180"/>
<rectangle x1="3.4763" y1="7.35635" x2="6.3374" y2="7.35865" layer="26" rot="R180"/>
<rectangle x1="3.4809" y1="7.35865" x2="6.3329" y2="7.36095" layer="26" rot="R180"/>
<rectangle x1="3.4855" y1="7.36095" x2="6.3283" y2="7.36325" layer="26" rot="R180"/>
<rectangle x1="3.4901" y1="7.36325" x2="6.3236" y2="7.36555" layer="26" rot="R180"/>
<rectangle x1="3.4924" y1="7.36555" x2="6.3191" y2="7.36785" layer="26" rot="R180"/>
<rectangle x1="3.4969" y1="7.36785" x2="6.3145" y2="7.37015" layer="26" rot="R180"/>
<rectangle x1="3.5015" y1="7.37015" x2="6.3098" y2="7.37245" layer="26" rot="R180"/>
<rectangle x1="3.5061" y1="7.37245" x2="6.3052" y2="7.37475" layer="26" rot="R180"/>
<rectangle x1="3.5108" y1="7.37475" x2="6.3007" y2="7.37705" layer="26" rot="R180"/>
<rectangle x1="3.5154" y1="7.37705" x2="6.2961" y2="7.37935" layer="26" rot="R180"/>
<rectangle x1="3.5177" y1="7.37935" x2="6.2914" y2="7.38165" layer="26" rot="R180"/>
<rectangle x1="3.5223" y1="7.38165" x2="6.2869" y2="7.38395" layer="26" rot="R180"/>
<rectangle x1="3.5269" y1="7.38395" x2="6.2823" y2="7.38625" layer="26" rot="R180"/>
<rectangle x1="3.5314" y1="7.38625" x2="6.28" y2="7.38855" layer="26" rot="R180"/>
<rectangle x1="3.536" y1="7.38855" x2="6.2753" y2="7.39085" layer="26" rot="R180"/>
<rectangle x1="3.5407" y1="7.39085" x2="6.2708" y2="7.39315" layer="26" rot="R180"/>
<rectangle x1="3.5453" y1="7.39315" x2="6.2662" y2="7.39545" layer="26" rot="R180"/>
<rectangle x1="3.5499" y1="7.39545" x2="6.2615" y2="7.39775" layer="26" rot="R180"/>
<rectangle x1="3.5545" y1="7.39775" x2="6.2547" y2="7.40005" layer="26" rot="R180"/>
<rectangle x1="3.5591" y1="7.40005" x2="6.2501" y2="7.40235" layer="26" rot="R180"/>
<rectangle x1="3.5636" y1="7.40235" x2="6.2454" y2="7.40465" layer="26" rot="R180"/>
<rectangle x1="3.5682" y1="7.40465" x2="6.2408" y2="7.40695" layer="26" rot="R180"/>
<rectangle x1="3.5729" y1="7.40695" x2="6.2363" y2="7.40925" layer="26" rot="R180"/>
<rectangle x1="3.5775" y1="7.40925" x2="6.2317" y2="7.41155" layer="26" rot="R180"/>
<rectangle x1="3.5821" y1="7.41155" x2="6.227" y2="7.41385" layer="26" rot="R180"/>
<rectangle x1="3.5867" y1="7.41385" x2="6.2225" y2="7.41615" layer="26" rot="R180"/>
<rectangle x1="3.5913" y1="7.41615" x2="6.2179" y2="7.41845" layer="26" rot="R180"/>
<rectangle x1="3.5958" y1="7.41845" x2="6.2132" y2="7.42075" layer="26" rot="R180"/>
<rectangle x1="3.6027" y1="7.42075" x2="6.2064" y2="7.42305" layer="26" rot="R180"/>
<rectangle x1="3.6074" y1="7.42305" x2="6.2018" y2="7.42535" layer="26" rot="R180"/>
<rectangle x1="3.612" y1="7.42535" x2="6.1972" y2="7.42765" layer="26" rot="R180"/>
<rectangle x1="3.6166" y1="7.42765" x2="6.1925" y2="7.42995" layer="26" rot="R180"/>
<rectangle x1="3.6212" y1="7.42995" x2="6.188" y2="7.43225" layer="26" rot="R180"/>
<rectangle x1="3.6257" y1="7.43225" x2="6.1834" y2="7.43455" layer="26" rot="R180"/>
<rectangle x1="3.6326" y1="7.43455" x2="6.1787" y2="7.43685" layer="26" rot="R180"/>
<rectangle x1="3.6372" y1="7.43685" x2="6.1741" y2="7.43915" layer="26" rot="R180"/>
<rectangle x1="3.6419" y1="7.43915" x2="6.1673" y2="7.44145" layer="26" rot="R180"/>
<rectangle x1="3.6465" y1="7.44145" x2="6.1626" y2="7.44375" layer="26" rot="R180"/>
<rectangle x1="3.6511" y1="7.44375" x2="6.158" y2="7.44605" layer="26" rot="R180"/>
<rectangle x1="3.6557" y1="7.44605" x2="6.1535" y2="7.44835" layer="26" rot="R180"/>
<rectangle x1="3.6625" y1="7.44835" x2="6.1465" y2="7.45065" layer="26" rot="R180"/>
<rectangle x1="3.6671" y1="7.45065" x2="6.1419" y2="7.45295" layer="26" rot="R180"/>
<rectangle x1="3.6718" y1="7.45295" x2="6.1374" y2="7.45525" layer="26" rot="R180"/>
<rectangle x1="3.6764" y1="7.45525" x2="6.1304" y2="7.45755" layer="26" rot="R180"/>
<rectangle x1="3.6833" y1="7.45755" x2="6.1258" y2="7.45985" layer="26" rot="R180"/>
<rectangle x1="3.6879" y1="7.45985" x2="6.1213" y2="7.46215" layer="26" rot="R180"/>
<rectangle x1="3.6924" y1="7.46215" x2="6.1143" y2="7.46445" layer="26" rot="R180"/>
<rectangle x1="3.6993" y1="7.46445" x2="6.1097" y2="7.46675" layer="26" rot="R180"/>
<rectangle x1="3.704" y1="7.46675" x2="6.1052" y2="7.46905" layer="26" rot="R180"/>
<rectangle x1="3.7086" y1="7.46905" x2="6.1006" y2="7.47135" layer="26" rot="R180"/>
<rectangle x1="3.7155" y1="7.47135" x2="6.0936" y2="7.47365" layer="26" rot="R180"/>
<rectangle x1="3.7201" y1="7.47365" x2="6.0891" y2="7.47595" layer="26" rot="R180"/>
<rectangle x1="3.7246" y1="7.47595" x2="6.0845" y2="7.47825" layer="26" rot="R180"/>
<rectangle x1="3.7315" y1="7.47825" x2="6.0775" y2="7.48055" layer="26" rot="R180"/>
<rectangle x1="3.7362" y1="7.48055" x2="6.073" y2="7.48285" layer="26" rot="R180"/>
<rectangle x1="3.7431" y1="7.48285" x2="6.066" y2="7.48515" layer="26" rot="R180"/>
<rectangle x1="3.7477" y1="7.48515" x2="6.0614" y2="7.48745" layer="26" rot="R180"/>
<rectangle x1="3.7523" y1="7.48745" x2="6.0546" y2="7.48975" layer="26" rot="R180"/>
<rectangle x1="3.7591" y1="7.48975" x2="6.0476" y2="7.49205" layer="26" rot="R180"/>
<rectangle x1="3.7637" y1="7.49205" x2="6.0431" y2="7.49435" layer="26" rot="R180"/>
<rectangle x1="3.7707" y1="7.49435" x2="6.0362" y2="7.49665" layer="26" rot="R180"/>
<rectangle x1="3.7753" y1="7.49665" x2="6.0315" y2="7.49895" layer="26" rot="R180"/>
<rectangle x1="3.7822" y1="7.49895" x2="6.0247" y2="7.50125" layer="26" rot="R180"/>
<rectangle x1="3.7868" y1="7.50125" x2="6.0201" y2="7.50355" layer="26" rot="R180"/>
<rectangle x1="3.7936" y1="7.50355" x2="6.0131" y2="7.50585" layer="26" rot="R180"/>
<rectangle x1="3.7982" y1="7.50585" x2="6.0086" y2="7.50815" layer="26" rot="R180"/>
<rectangle x1="3.8052" y1="7.50815" x2="6.0017" y2="7.51045" layer="26" rot="R180"/>
<rectangle x1="3.8121" y1="7.51045" x2="5.997" y2="7.51275" layer="26" rot="R180"/>
<rectangle x1="3.8167" y1="7.51275" x2="5.9902" y2="7.51505" layer="26" rot="R180"/>
<rectangle x1="3.8235" y1="7.51505" x2="5.9832" y2="7.51735" layer="26" rot="R180"/>
<rectangle x1="3.8304" y1="7.51735" x2="5.9786" y2="7.51965" layer="26" rot="R180"/>
<rectangle x1="3.8351" y1="7.51965" x2="5.9718" y2="7.52195" layer="26" rot="R180"/>
<rectangle x1="3.842" y1="7.52195" x2="5.9648" y2="7.52425" layer="26" rot="R180"/>
<rectangle x1="3.8489" y1="7.52425" x2="5.958" y2="7.52655" layer="26" rot="R180"/>
<rectangle x1="3.8535" y1="7.52655" x2="5.951" y2="7.52885" layer="26" rot="R180"/>
<rectangle x1="3.8603" y1="7.52885" x2="5.9442" y2="7.53115" layer="26" rot="R180"/>
<rectangle x1="3.8673" y1="7.53115" x2="5.9396" y2="7.53345" layer="26" rot="R180"/>
<rectangle x1="3.8742" y1="7.53345" x2="5.9326" y2="7.53575" layer="26" rot="R180"/>
<rectangle x1="3.8811" y1="7.53575" x2="5.9258" y2="7.53805" layer="26" rot="R180"/>
<rectangle x1="3.8857" y1="7.53805" x2="5.9188" y2="7.54035" layer="26" rot="R180"/>
<rectangle x1="3.8925" y1="7.54035" x2="5.912" y2="7.54265" layer="26" rot="R180"/>
<rectangle x1="3.8995" y1="7.54265" x2="5.9074" y2="7.54495" layer="26" rot="R180"/>
<rectangle x1="3.9064" y1="7.54495" x2="5.9004" y2="7.54725" layer="26" rot="R180"/>
<rectangle x1="3.9133" y1="7.54725" x2="5.8936" y2="7.54955" layer="26" rot="R180"/>
<rectangle x1="3.9201" y1="7.54955" x2="5.8867" y2="7.55185" layer="26" rot="R180"/>
<rectangle x1="3.927" y1="7.55185" x2="5.8775" y2="7.55415" layer="26" rot="R180"/>
<rectangle x1="3.934" y1="7.55415" x2="5.8706" y2="7.55645" layer="26" rot="R180"/>
<rectangle x1="3.9409" y1="7.55645" x2="5.8636" y2="7.55875" layer="26" rot="R180"/>
<rectangle x1="3.9478" y1="7.55875" x2="5.8568" y2="7.56105" layer="26" rot="R180"/>
<rectangle x1="3.9546" y1="7.56105" x2="5.8498" y2="7.56335" layer="26" rot="R180"/>
<rectangle x1="3.9615" y1="7.56335" x2="5.843" y2="7.56565" layer="26" rot="R180"/>
<rectangle x1="3.9708" y1="7.56565" x2="5.8337" y2="7.56795" layer="26" rot="R180"/>
<rectangle x1="3.9777" y1="7.56795" x2="5.8269" y2="7.57025" layer="26" rot="R180"/>
<rectangle x1="3.9846" y1="7.57025" x2="5.8199" y2="7.57255" layer="26" rot="R180"/>
<rectangle x1="3.9914" y1="7.57255" x2="5.8131" y2="7.57485" layer="26" rot="R180"/>
<rectangle x1="4.0007" y1="7.57485" x2="5.8062" y2="7.57715" layer="26" rot="R180"/>
<rectangle x1="4.0076" y1="7.57715" x2="5.797" y2="7.57945" layer="26" rot="R180"/>
<rectangle x1="4.0145" y1="7.57945" x2="5.7901" y2="7.58175" layer="26" rot="R180"/>
<rectangle x1="4.0236" y1="7.58175" x2="5.7809" y2="7.58405" layer="26" rot="R180"/>
<rectangle x1="4.0306" y1="7.58405" x2="5.7716" y2="7.58635" layer="26" rot="R180"/>
<rectangle x1="4.0398" y1="7.58635" x2="5.7648" y2="7.58865" layer="26" rot="R180"/>
<rectangle x1="4.0467" y1="7.58865" x2="5.7556" y2="7.59095" layer="26" rot="R180"/>
<rectangle x1="4.0558" y1="7.59095" x2="5.7487" y2="7.59325" layer="26" rot="R180"/>
<rectangle x1="4.0628" y1="7.59325" x2="5.7395" y2="7.59555" layer="26" rot="R180"/>
<rectangle x1="4.072" y1="7.59555" x2="5.7303" y2="7.59785" layer="26" rot="R180"/>
<rectangle x1="4.0812" y1="7.59785" x2="5.7234" y2="7.60015" layer="26" rot="R180"/>
<rectangle x1="4.0903" y1="7.60015" x2="5.7142" y2="7.60245" layer="26" rot="R180"/>
<rectangle x1="4.0996" y1="7.60245" x2="5.7049" y2="7.60475" layer="26" rot="R180"/>
<rectangle x1="4.1088" y1="7.60475" x2="5.6958" y2="7.60705" layer="26" rot="R180"/>
<rectangle x1="4.1179" y1="7.60705" x2="5.6865" y2="7.60935" layer="26" rot="R180"/>
<rectangle x1="4.1271" y1="7.60935" x2="5.6774" y2="7.61165" layer="26" rot="R180"/>
<rectangle x1="4.1364" y1="7.61165" x2="5.6681" y2="7.61395" layer="26" rot="R180"/>
<rectangle x1="4.1456" y1="7.61395" x2="5.659" y2="7.61625" layer="26" rot="R180"/>
<rectangle x1="4.1547" y1="7.61625" x2="5.6475" y2="7.61855" layer="26" rot="R180"/>
<rectangle x1="4.1663" y1="7.61855" x2="5.6382" y2="7.62085" layer="26" rot="R180"/>
<rectangle x1="4.1755" y1="7.62085" x2="5.6291" y2="7.62315" layer="26" rot="R180"/>
<rectangle x1="4.1869" y1="7.62315" x2="5.6198" y2="7.62545" layer="26" rot="R180"/>
<rectangle x1="4.1962" y1="7.62545" x2="5.6107" y2="7.62775" layer="26" rot="R180"/>
<rectangle x1="4.2077" y1="7.62775" x2="5.5992" y2="7.63005" layer="26" rot="R180"/>
<rectangle x1="4.2191" y1="7.63005" x2="5.5876" y2="7.63235" layer="26" rot="R180"/>
<rectangle x1="4.2284" y1="7.63235" x2="5.5762" y2="7.63465" layer="26" rot="R180"/>
<rectangle x1="4.2399" y1="7.63465" x2="5.5647" y2="7.63695" layer="26" rot="R180"/>
<rectangle x1="4.2513" y1="7.63695" x2="5.5532" y2="7.63925" layer="26" rot="R180"/>
<rectangle x1="4.2652" y1="7.63925" x2="5.5416" y2="7.64155" layer="26" rot="R180"/>
<rectangle x1="4.2767" y1="7.64155" x2="5.5302" y2="7.64385" layer="26" rot="R180"/>
<rectangle x1="4.2881" y1="7.64385" x2="5.5187" y2="7.64615" layer="26" rot="R180"/>
<rectangle x1="4.302" y1="7.64615" x2="5.5071" y2="7.64845" layer="26" rot="R180"/>
<rectangle x1="4.3134" y1="7.64845" x2="5.4933" y2="7.65075" layer="26" rot="R180"/>
<rectangle x1="4.3273" y1="7.65075" x2="5.4796" y2="7.65305" layer="26" rot="R180"/>
<rectangle x1="4.3411" y1="7.65305" x2="5.4658" y2="7.65535" layer="26" rot="R180"/>
<rectangle x1="4.3548" y1="7.65535" x2="5.452" y2="7.65765" layer="26" rot="R180"/>
<rectangle x1="4.3687" y1="7.65765" x2="5.4382" y2="7.65995" layer="26" rot="R180"/>
<rectangle x1="4.3847" y1="7.65995" x2="5.4243" y2="7.66225" layer="26" rot="R180"/>
<rectangle x1="4.4009" y1="7.66225" x2="5.4105" y2="7.66455" layer="26" rot="R180"/>
<rectangle x1="4.4169" y1="7.66455" x2="5.3921" y2="7.66685" layer="26" rot="R180"/>
<rectangle x1="4.4331" y1="7.66685" x2="5.3761" y2="7.66915" layer="26" rot="R180"/>
<rectangle x1="4.4491" y1="7.66915" x2="5.3576" y2="7.67145" layer="26" rot="R180"/>
<rectangle x1="4.4653" y1="7.67145" x2="5.3416" y2="7.67375" layer="26" rot="R180"/>
<rectangle x1="4.4836" y1="7.67375" x2="5.3232" y2="7.67605" layer="26" rot="R180"/>
<rectangle x1="4.5044" y1="7.67605" x2="5.3047" y2="7.67835" layer="26" rot="R180"/>
<rectangle x1="4.5251" y1="7.67835" x2="5.2818" y2="7.68065" layer="26" rot="R180"/>
<rectangle x1="4.5434" y1="7.68065" x2="5.2588" y2="7.68295" layer="26" rot="R180"/>
<rectangle x1="4.5642" y1="7.68295" x2="5.2357" y2="7.68525" layer="26" rot="R180"/>
<rectangle x1="4.5895" y1="7.68525" x2="5.2128" y2="7.68755" layer="26" rot="R180"/>
<rectangle x1="4.6147" y1="7.68755" x2="5.1852" y2="7.68985" layer="26" rot="R180"/>
<rectangle x1="4.64" y1="7.68985" x2="5.1507" y2="7.69215" layer="26" rot="R180"/>
<rectangle x1="4.6722" y1="7.69215" x2="5.1185" y2="7.69445" layer="26" rot="R180"/>
<rectangle x1="4.7044" y1="7.69445" x2="5.0747" y2="7.69675" layer="26" rot="R180"/>
<rectangle x1="4.7481" y1="7.69675" x2="5.015" y2="7.69905" layer="26" rot="R180"/>
</plain>
<libraries>
<library name="GUVX">
<packages>
<package name="GUV_A/B">
<wire x1="-1" y1="1.15" x2="-1" y2="-1.15" width="0.127" layer="21"/>
<wire x1="-1" y1="-1.15" x2="1" y2="-1.15" width="0.127" layer="21"/>
<wire x1="1" y1="-1.15" x2="1" y2="1.15" width="0.127" layer="21"/>
<smd name="SDA" x="-1" y="1.15" dx="1.2" dy="1.2" layer="1" roundness="30"/>
<smd name="GND" x="1" y="1.15" dx="1.2" dy="1.2" layer="1" roundness="30"/>
<smd name="VCC" x="1" y="-1.15" dx="1.2" dy="1.2" layer="1" roundness="30"/>
<smd name="SCL" x="-1" y="-1.15" dx="1.2" dy="1.2" layer="1" roundness="30"/>
<wire x1="-1" y1="1.15" x2="1" y2="1.15" width="0.127" layer="21"/>
</package>
</packages>
</library>
<library name="pinhead(1x3)">
<description>Pin Header Connectors

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="1X02(PAD_REDUZIDO)" urn="urn:adsk.eagle:footprint:22309/1" locally_modified="yes">
<description>PIN HEADER</description>
<pad name="1" x="-1.27" y="0" drill="0.9" diameter="1.2" shape="long" rot="R90"/>
<pad name="2" x="1.27" y="0" drill="0.9" diameter="1.2" shape="long" rot="R90"/>
<text x="-2.6162" y="1.8288" size="1.27" layer="25" ratio="10">>NAME</text>
<text x="-2.54" y="-3.175" size="1.27" layer="27">>VALUE</text>
<rectangle x1="-1.524" y1="-0.254" x2="-1.016" y2="0.254" layer="51"/>
<rectangle x1="1.016" y1="-0.254" x2="1.524" y2="0.254" layer="51"/>
<wire x1="-2.286" y1="0.635" x2="-2.286" y2="-0.635" width="0.1524" layer="21"/>
<wire x1="-0.254" y1="0.635" x2="-0.254" y2="-0.635" width="0.1524" layer="21"/>
<wire x1="0.254" y1="0.635" x2="0.254" y2="-0.635" width="0.1524" layer="21"/>
<wire x1="2.286" y1="0.635" x2="2.286" y2="-0.635" width="0.1524" layer="21"/>
<wire x1="-2.286" y1="0.635" x2="-0.254" y2="0.635" width="0.1524" layer="21" curve="-180"/>
<wire x1="-2.286" y1="-0.635" x2="-0.254" y2="-0.635" width="0.1524" layer="21" curve="180"/>
<wire x1="0.254" y1="0.635" x2="2.286" y2="0.635" width="0.1524" layer="21" curve="-180"/>
<wire x1="0.254" y1="-0.635" x2="2.286" y2="-0.635" width="0.1524" layer="21" curve="180"/>
</package>
</packages>
<packages3d>
<package3d name="1X02" urn="urn:adsk.eagle:package:22435/2" type="model">
<description>PIN HEADER</description>
<packageinstances>
<packageinstance name="1X02(PAD_REDUZIDO)"/>
</packageinstances>
</package3d>
</packages3d>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="default">
<description language="de">EAGLE Design Rules

Die Standard-Design-Rules sind so gewählt, dass sie für
die meisten Anwendungen passen. Sollte ihre Platine
besondere Anforderungen haben, treffen Sie die erforderlichen
Einstellungen hier und speichern die Design Rules unter
einem neuen Namen ab.</description>
<description language="en">EAGLE Design Rules

The default Design Rules have been set to cover
a wide range of applications. Your particular design
may have different requirements, so please make the
necessary adjustments and save your customized
design rules under a new name.</description>
<param name="layerSetup" value="(1*16)"/>
<param name="mtCopper" value="0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm"/>
<param name="mtIsolate" value="1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm"/>
<param name="mdWireWire" value="6mil"/>
<param name="mdWirePad" value="6mil"/>
<param name="mdWireVia" value="6mil"/>
<param name="mdPadPad" value="6mil"/>
<param name="mdPadVia" value="6mil"/>
<param name="mdViaVia" value="6mil"/>
<param name="mdSmdPad" value="6mil"/>
<param name="mdSmdVia" value="6mil"/>
<param name="mdSmdSmd" value="6mil"/>
<param name="mdViaViaSameLayer" value="6mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="40mil"/>
<param name="mdDrill" value="6mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="6mil"/>
<param name="msDrill" value="0.35mm"/>
<param name="msMicroVia" value="9.99mm"/>
<param name="msBlindViaRatio" value="0.5"/>
<param name="rvPadTop" value="0.25"/>
<param name="rvPadInner" value="0.25"/>
<param name="rvPadBottom" value="0.25"/>
<param name="rvViaOuter" value="0.25"/>
<param name="rvViaInner" value="0.25"/>
<param name="rvMicroViaOuter" value="0.25"/>
<param name="rvMicroViaInner" value="0.25"/>
<param name="rlMinPadTop" value="10mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="10mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="10mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="8mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="8mil"/>
<param name="rlMaxViaInner" value="20mil"/>
<param name="rlMinMicroViaOuter" value="4mil"/>
<param name="rlMaxMicroViaOuter" value="20mil"/>
<param name="rlMinMicroViaInner" value="4mil"/>
<param name="rlMaxMicroViaInner" value="20mil"/>
<param name="psTop" value="-1"/>
<param name="psBottom" value="-1"/>
<param name="psFirst" value="-1"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="1"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="4mil"/>
<param name="mlMaxStopFrame" value="4mil"/>
<param name="mlMinCreamFrame" value="0mil"/>
<param name="mlMaxCreamFrame" value="0mil"/>
<param name="mlViaStopLimit" value="0mil"/>
<param name="srRoundness" value="0"/>
<param name="srMinRoundness" value="0mil"/>
<param name="srMaxRoundness" value="0mil"/>
<param name="slThermalIsolate" value="10mil"/>
<param name="slThermalsForVias" value="0"/>
<param name="dpMaxLengthDifference" value="10mm"/>
<param name="dpGapFactor" value="2.5"/>
<param name="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="checkStop" value="0"/>
<param name="checkValues" value="0"/>
<param name="checkNames" value="1"/>
<param name="checkWireStubs" value="1"/>
<param name="checkPolygonWidth" value="0"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="50mil"/>
<param name="AutoGrid" value="1"/>
<param name="Efforts" value="0"/>
<param name="TopRouterVariant" value="1"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="a"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="a"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="JP7" library="pinhead(1x3)" package="1X02(PAD_REDUZIDO)" package3d_urn="urn:adsk.eagle:package:22435/2" value="" x="10" y="5" smashed="yes" rot="R90">
<attribute name="POPULARITY" value="98" x="10" y="5" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="13.175" y="2.46" size="1.27" layer="27" rot="R90"/>
</element>
<element name="JP8" library="pinhead(1x3)" package="1X02(PAD_REDUZIDO)" package3d_urn="urn:adsk.eagle:package:22435/2" value="" x="0" y="5" smashed="yes" rot="R90">
<attribute name="POPULARITY" value="98" x="0" y="5" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="3.175" y="2.46" size="1.27" layer="27" rot="R90"/>
</element>
<element name="GUVB" library="GUVX" package="GUV_A/B" value="GUVA" x="5" y="5" smashed="yes" rot="R180"/>
</elements>
<signals>
<signal name="GND">
<contactref element="GUVB" pad="GND"/>
<polygon width="0.1524" layer="1">
<vertex x="-1" y="11"/>
<vertex x="-1" y="-1"/>
<vertex x="11" y="-1"/>
<vertex x="11" y="11"/>
</polygon>
<polygon width="0.1524" layer="16">
<vertex x="-1" y="11"/>
<vertex x="-1" y="-1"/>
<vertex x="11" y="-1"/>
<vertex x="11" y="11"/>
</polygon>
<contactref element="JP8" pad="1"/>
<wire x1="0" y1="3.73" x2="3.88" y2="3.73" width="0.8128" layer="1"/>
<wire x1="3.88" y1="3.73" x2="4" y2="3.85" width="0.8128" layer="1"/>
</signal>
<signal name="SDA">
<contactref element="GUVB" pad="SDA"/>
<contactref element="JP7" pad="1"/>
<wire x1="10" y1="3.73" x2="6.12" y2="3.73" width="0.8128" layer="1"/>
<wire x1="6.12" y1="3.73" x2="6" y2="3.85" width="0.8128" layer="1"/>
</signal>
<signal name="SCL">
<contactref element="GUVB" pad="SCL"/>
<contactref element="JP7" pad="2"/>
<wire x1="10" y1="6.27" x2="9.88" y2="6.15" width="0.8128" layer="1"/>
<wire x1="9.88" y1="6.15" x2="6" y2="6.15" width="0.8128" layer="1"/>
</signal>
<signal name="+3V3">
<contactref element="GUVB" pad="VCC"/>
<contactref element="JP8" pad="2"/>
<wire x1="0" y1="6.27" x2="3.88" y2="6.27" width="0.8128" layer="1"/>
<wire x1="3.88" y1="6.27" x2="4" y2="6.15" width="0.8128" layer="1"/>
</signal>
</signals>
<mfgpreviewcolors>
<mfgpreviewcolor name="soldermaskcolor" color="0xC8EEEEEE"/>
<mfgpreviewcolor name="silkscreencolor" color="0xFF000000"/>
<mfgpreviewcolor name="backgroundcolor" color="0xFF282828"/>
<mfgpreviewcolor name="coppercolor" color="0xFFFFBF00"/>
<mfgpreviewcolor name="substratecolor" color="0xFF786E46"/>
</mfgpreviewcolors>
</board>
</drawing>
<compatibility>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports URNs for individual library
assets (packages, symbols, and devices). The URNs of those assets
will not be understood (or retained) with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports the association of 3D packages
with devices in libraries, schematics, and board files. Those 3D
packages will not be understood (or retained) with this version.
</note>
</compatibility>
</eagle>

path: /PLACAS/Sensors_Dev_Breakouts v.1.0 - C/Breakout UVA.brd


text:
SUMMARY = "RTL8822BU kernel driver (wifi)"
DESCRIPTION = "RTL8822BU kernel driver"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://Kconfig;md5=e71d544fd90fb1393f4f62c4faea6384"

SRC_URI = " \
	git://github.com/madscientist42/rtl8822bu.git;protocol=https \
	file://00001-makefile.patch \
	"
SRCREV = "0a23e6067f36da250686ecd775a2e97d9854d31c"

S = "${WORKDIR}/git"

MODVER = "5.2.4"

MODULE_NAME = "88x2bu.ko"

require realtek.inc

inherit module

license: MIT

repository: petergerten/meta-rtlwifi

license_type: permissive

repo_name: petergerten/meta-rtlwifi

branch_name: refs/heads/master

extension: bb


text:
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6f3663ccdae1496a974276e71e1ff927"

SRC_URI = "git://github.com/hcrest/libfreespace.git;protocol=https \
           file://0001-switch-to-python3.patch"

PV = "1.0+git${SRCPV}"
SRCREV = "18aa2117a24b23df73f762dd3432a60b1daa3519"

S = "${WORKDIR}/git"

DEPENDS += "libusb"

inherit cmake

repository: GaloisInc/meta-pirate

repo_name: GaloisInc/meta-pirate

gha_license_id: MIT

gha_language: BlitzBasic


text:
import {Injectable, Provider} from '@angular/core';
import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HTTP_INTERCEPTORS} from '@angular/common/http';
import {Observable} from 'rxjs';
import {environment} from 'src/environments/environment';

@Injectable()
export class AppInterceptor implements HttpInterceptor {

    /* Development url on localhost */
    baseUrl = environment.baseUrl;

    /* Add baseUrl as prefix to the req url */
    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        if (!req.url.includes('http')) {
            req = req.clone({url: `${this.baseUrl}${req.url}` });
        }
        return next.handle(req);
    }
}

export const appInterceptorProvider: Provider = {
    provide: HTTP_INTERCEPTORS,
    useClass: AppInterceptor,
    multi: true
};

repository: Andrey-V-Georgiev/ShoppingCartAngular

repo_name: Andrey-V-Georgiev/ShoppingCartAngular

branch_name: refs/heads/main

extension: ts


text:
SUMMARY = "Framework tools base components (core,kernel,network,audio,ui,python2,python3)"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

PACKAGE_ARCH = "${MACHINE_ARCH}"

inherit packagegroup

PROVIDES = "${PACKAGES}"
PACKAGES = "\
            packagegroup-framework-tools-base           \
            packagegroup-framework-tools-base-core      \
            packagegroup-framework-tools-base-kernel    \
            packagegroup-framework-tools-base-network   \
            packagegroup-framework-tools-base-audio     \
            packagegroup-framework-tools-base-ui        \
            packagegroup-framework-tools-base-python3   \
            "

# Manage to provide all framework tools base packages with overall one
RDEPENDS:packagegroup-framework-tools-base = "\
    packagegroup-framework-tools-base-core      \
    packagegroup-framework-tools-base-kernel    \
    packagegroup-framework-tools-base-network   \
    packagegroup-framework-tools-base-audio     \
    packagegroup-framework-tools-base-ui        \
    packagegroup-framework-tools-base-python3   \
    "

SUMMARY:packagegroup-framework-tools-base-core = "Framework tools base components for core"
RDEPENDS:packagegroup-framework-tools-base-core = "\
    ckermit         \
    ntp             \
    coreutils       \
    libiio-iiod     \
    libiio-tests    \
    lrzsz           \
    libgpiod        \
    libgpiod-tools  \
    openssl-engines \
    ${@bb.utils.contains('DISTRO_FEATURES', 'usbgadget', 'usbotg-gadget-config', '', d)} \
    "

SUMMARY:packagegroup-framework-tools-base-kernel = "Framework tools base components for kernel"
RDEPENDS:packagegroup-framework-tools-base-kernel = "\
    can-utils       \
    i2c-tools       \
    strace          \
    usbutils        \
    \
    evtest          \
    memtester       \
    mtd-utils       \
    v4l-utils       \
    util-linux      \
    util-linux-fdisk\
    pciutils        \
    "

SUMMARY:packagegroup-framework-tools-base-network = "Framework tools base components for network"
RDEPENDS:packagegroup-framework-tools-base-network = "\
    ethtool         \
    iproute2        \
    curl            \
    "

SUMMARY:packagegroup-framework-tools-base-audio = "Framework tools base components for audio"
RDEPENDS:packagegroup-framework-tools-base-audio = "\
    ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'libasound alsa-conf', '', d)}  \
    ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-utils', '', d)}           \
    ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-plugins', '', d)}         \
    "

SUMMARY:packagegroup-framework-tools-base-ui = "Framework tools base components for ui"
RDEPENDS:packagegroup-framework-tools-base-ui = "\
    "

SUMMARY:packagegroup-framework-tools-base-python3 = "Framework tools base components for python3"
RDEPENDS:packagegroup-framework-tools-base-python3 = "\
    "

repository: STMicroelectronics/meta-st-openstlinux

repo_name: STMicroelectronics/meta-st-openstlinux

branch_name: refs/heads/kirkstone

gha_license_id: NOASSERTION

gha_language: C


text:
import { IPSet } from "futoin-ipset";
import SetType from "./enums/set-type";

export class ActionSet {
  private multiSet: Object;

  constructor(private name: string) {
    this.clear();
  }

  public add(setType: SetType, item: string, ts?: number, ttl?: number) {
    const expireTs = ts && ttl !== -1 ? ts + ttl * 1000 : -1;
    const set = this.getSet(setType);

    if (setType === SetType.IP) {
      if (!this.isValidIP(set, item)) {
        return;
      }
      set.add(item, { expireTs: expireTs });
    } else {
      set.set(item, expireTs);
    }

    this.removeExpiredSets();
  }

  public has(setType: SetType, item: string): boolean {
    const now = Date.now();
    const set = this.getSet(setType);
    let expireTs = null;
    if (setType === SetType.IP) {
      if (!this.isValidIP(set, item)) {
        return false;
      }
      const ipRecord = set.match(item) || {};
      expireTs = ipRecord.expireTs;
    } else {
      expireTs = set.get(item);
    }

    if (expireTs) {
      if (expireTs !== -1 && now > expireTs) {
        // clear item
        this.delete(setType, item);
        return false;
      }
      return true;
    }

    return false;
  }

  public delete(setType: SetType, item: string) {
    let expireTs = null;
    const set = this.getSet(setType);
    if (setType === SetType.IP) {
      if (!this.isValidIP(set, item)) {
        return;
      }
      set.remove(item);
    } else {
      set.delete(item);
    }
  }

  public clear() {
    this.multiSet = {
      ip: new IPSet(),
      path: new Map<string, Number>(),
      device: new Map<string, Number>(),
      country: new Map<string, Number>(),
    };
  }

  private getSet(setType: SetType) {
    return this.multiSet[setType];
  }

  private isValidIP(ipset: IPSet, ip: string): boolean {
    try {
      return ipset.convertAddress(ip) !== null;
    } catch (ex) {
      return false;
    }
  }

  private removeExpiredSets() {
    for (let setType in SetType) {
      this.removeExpiredSet(SetType[setType]);
    }
  }

  private removeExpiredSet(setType: SetType) {
    const set = this.getSet(setType);

    if (setType === SetType.IP) {
      for (let [sub, m] of set._v4._pm) {
        for (let key of m.keys()) {
          this.has(setType, key + "/" + sub);
        }
      }

      for (let [sub, m] of set._v6._pm) {
        for (let key of m.keys()) {
          this.has(setType, key + "/" + sub);
        }
      }
    } else {
      for (let key of set) {
        this.has(setType, key);
      }
    }
  }
}

repository: securenative/securenative-node-agent

repo_name: securenative/securenative-node-agent


text:
include(CheckCSourceRuns)
include(CheckCXXSourceRuns)

get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES)

list(FIND languages "CXX" cxx_enabled)
list(FIND languages "C" c_enabled)
if(cxx_enabled)
  macro(CPPINTRINSICS_CHECK_SOURCE_RUNS code ret_var)
    CHECK_CXX_SOURCE_RUNS("${code}" ${ret_var})
  endmacro()
  set(CPPINTRINSICS_COMPILER_ID ${CMAKE_CXX_COMPILER_ID})
elseif(c_enabled)
  macro(CPPINTRINSICS_CHECK_SOURCE_RUNS code ret_var)
    CHECK_C_SOURCE_RUNS("${code}" ${ret_var})
  endmacro()
  set(CPPINTRINSICS_COMPILER_ID ${CMAKE_C_COMPILER_ID})
else()
  message(WARNING "cppintrinsics are only available when using C or CXX compilers")
  return()
endif()

# save old configuration
set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
set(OLD_CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET})

# set flags
set(SSE_FLAGS)
set(AVX_FLAGS)
set(AVX2_FLAGS)
set(AVX512_FLAGS)
if ("${CPPINTRINSICS_COMPILER_ID}" MATCHES "MSVC")
  set(SSE_FLAGS "/arch:SSE")
  set(AVX_FLAGS "/arch:AVX")
  set(AVX2_FLAGS "/arch:AVX2")
  # set(AVX512_FLAGS "/arch:AVX512") found no option for msvc
endif()
if ("${CPPINTRINSICS_COMPILER_ID}" MATCHES "GNU" OR "${CPPINTRINSICS_COMPILER_ID}" MATCHES "Clang")
  set(SSE_FLAGS "-msse")
  set(AVX_FLAGS "-mavx")
  set(AVX2_FLAGS "-mavx2")
  set(AVX512_FLAGS "-mavx512f" "-mavx512cd") # xeon processors have more flags
endif()

#
# Check availability of intrinsics
#

set(CMAKE_REQUIRED_QUIET 1)

# check for SSE
set(SSE_ENABLED 1)
if(NOT SSE_ENABLED)
  set(SSE_FLAGS "")
endif()

# check for AVX
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS} ${AVX_FLAGS})
CPPINTRINSICS_CHECK_SOURCE_RUNS("
    #include <immintrin.h>
    int main(){
      const float src[8] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
      float dst[8];
      __m256 a = _mm256_loadu_ps( src );
      __m256 b = _mm256_add_ps( a, a );
      _mm256_storeu_ps( dst, b );
      for( int i = 0; i < 8; i++ )
        if( ( src[i] + src[i] ) != dst[i] ) return -1;
      return 0;
    }"
    AVX_ENABLED)
# remove flags if cpu does not support AVX
if(NOT AVX_ENABLED)
  set(AVX_FLAGS "")
endif()

# check for AVX2
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS} ${AVX2_FLAGS})
CPPINTRINSICS_CHECK_SOURCE_RUNS("
    #include <immintrin.h>
    int main(){
      const int src[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
      int dst[8];
      __m256i a =  _mm256_loadu_si256( (__m256i*)src );
      __m256i b = _mm256_add_epi32( a, a );
      _mm256_storeu_si256( (__m256i*)dst, b );
      for( int i = 0; i < 8; i++ )
        if( ( src[i] + src[i] ) != dst[i] ) return -1;
      return 0;
    }"
    AVX2_ENABLED)
# remove flags if cpu does not support AVX
if(NOT AVX2_ENABLED)
  set(AVX2_FLAGS "")
endif()

# check for AVX512
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS} ${AVX512_FLAGS})
CPPINTRINSICS_CHECK_SOURCE_RUNS("
    #include <zmmintrin.h>
    int main(){
      const int src[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 };
      int dst[16];
      __m512i a =  _mm512_loadu_si512( (__m512i*)src );
      __m512i b = _mm512_add_epi32( a, a );
      _mm512_storeu_si512( (__m512i*)dst, b );
      for( int i = 0; i < 16; i++ )
        if( ( src[i] + src[i] ) != dst[i] ) return -1;
      return 0;
    }"
    AVX512_ENABLED)
# remove flags if cpu does not support AVX
if(NOT AVX512_ENABLED)
  set(AVX512_FLAGS "")
endif()

# restore previous state of cmake variable
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
set(CMAKE_REQUIRED_QUIET ${OLD_CMAKE_REQUIRED_QUIET})

repository: cginternals/cppintrinsics

repo_name: cginternals/cppintrinsics

extension: cmake


text:
import { z } from 'zod';

const createCharacterSchema = z.object({
  name: z.string(),
  visibility: z.number(),
  program: z.string()
});

const updateCharacterSchema = z.object({
  name: z.string(),
  visibility: z.number(),
  program: z.string()
});

export type CreateCharacterType = z.infer<typeof createCharacterSchema>;

export type UpdateCharacterType = z.infer<typeof updateCharacterSchema>;

export default { createCharacterSchema, updateCharacterSchema };

license: Unlicense

repository: TheGhostSpirit/bald-wars

repo_name: TheGhostSpirit/bald-wars


text:
SECTION = "kernel"
DESCRIPTION = "Linux kernel for BeagleBoard devices"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"

inherit kernel

require recipes-kernel/linux/linux-dtb.inc

# Look in the generic major.minor directory for files
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-4.1:"

# Pull in the devicetree files into the rootfs
RDEPENDS_kernel-base += "kernel-devicetree"

# Add a run-time dependency for the PM firmware to be installed
# on the target file system.
RDEPENDS_kernel-base_append_ti33x = " amx3-cm3"
RDEPENDS_kernel-base_append_ti43x = " amx3-cm3"

# Add a run-time dependency for the VPE VPDMA firmware to be installed
# on the target file system.
RDEPENDS_kernel-base_append_dra7xx = " vpdma-fw"

# Default is to package all dtb files for ti33x devices unless building
# for the specific beaglebone machine.
KERNEL_DEVICETREE_ti33x = "am335x-evm.dtb am335x-evmsk.dtb am335x-bone.dtb am335x-boneblack.dtb"
KERNEL_DEVICETREE_ti43x = "am43x-epos-evm.dtb am43x-epos-evm-hdmi.dtb am437x-gp-evm.dtb am437x-gp-evm-hdmi.dtb am437x-sk-evm.dtb"
KERNEL_DEVICETREE_beaglebone = "am335x-bone.dtb am335x-boneblack.dtb"
KERNEL_DEVICETREE_omap5-evm = "omap5-uevm.dtb"
KERNEL_DEVICETREE_dra7xx-evm = "dra7-evm.dtb dra72-evm.dtb"
KERNEL_DEVICETREE_am57xx-evm = "am57xx-beagle-x15.dtb am57xx-evm.dtb"
KERNEL_DEVICETREE_omap3 = "omap3-beagle.dtb omap3-beagle-xm.dtb omap3-evm.dtb omap3-evm-37xx.dtb am3517-evm.dtb"
KERNEL_DEVICETREE_am3517-evm = "am3517-evm.dtb"
KERNEL_DEVICETREE_am37x-evm = "omap3-evm-37xx.dtb"
KERNEL_DEVICETREE_beagleboard = "omap3-beagle.dtb omap3-beagle-xm.dtb"
KERNEL_DEVICETREE_pandaboard = "omap4-panda.dtb omap4-panda-es.dtb"
KERNEL_DEVICETREE_k2hk-evm = "k2hk-evm.dtb"
KERNEL_DEVICETREE_k2e-evm = "k2e-evm.dtb"
KERNEL_DEVICETREE_k2l-evm = "k2l-evm.dtb"

COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|omap3|omap4|keystone"

S = "${WORKDIR}/git"

tag = "4.1.6-ti-r13"

PV = "${tag}"

# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
MACHINE_KERNEL_PR_append = "a"
PR = "${MACHINE_KERNEL_PR}"

MULTI_CONFIG_BASE_SUFFIX = ""

KERNEL_GIT_URI = "git://github.com/beagleboard/linux.git"
KERNEL_GIT_PROTOCOL = "git"
SRC_URI += "${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};tag=${tag};nobranch=1 \
            file://defconfig \
           "

repository: RobertCNelson/meta-beagleboard-kernel

repo_name: RobertCNelson/meta-beagleboard-kernel


text:
#pragma once

#include <nstimer.h>

#ifdef NSTIMER_PLATFORM_WIN32
#	include <windows.h>
#endif
#ifdef NSTIMER_PLATFORM_LINUX
#	include <unistd.h>
#endif

#define STD_THREAD_SLEEP(MS) std::this_thread::sleep_for(std::chrono::milliseconds(MS));

void checking_std_high_resolution_clock()
{
#ifdef NSTIMER_DEFAULT_STD_CHRONO_IMPL
	std::cout << "checking_std_high_resolution_clock:\n";

	auto t0 = std::chrono::high_resolution_clock::now();
	STD_THREAD_SLEEP(1);
	auto t1 = std::chrono::high_resolution_clock::now();
	STD_THREAD_SLEEP(2);
	auto t2 = std::chrono::high_resolution_clock::now();
	STD_THREAD_SLEEP(5);
	auto t3 = std::chrono::high_resolution_clock::now();
	STD_THREAD_SLEEP(15);
	auto t4 = std::chrono::high_resolution_clock::now();
	STD_THREAD_SLEEP(44);
	auto t5 = std::chrono::high_resolution_clock::now();
	STD_THREAD_SLEEP(110);
	auto t6 = std::chrono::high_resolution_clock::now();
	STD_THREAD_SLEEP(1000);
	auto t7 = std::chrono::high_resolution_clock::now();
	STD_THREAD_SLEEP(1500);
	auto t8 = std::chrono::high_resolution_clock::now();

	auto print_results = [](double waitms, const auto& start, const auto& end) {
		auto	delta = end - start;
		auto	deltans = std::chrono::duration_cast<std::chrono::nanoseconds>(delta);
		int64_t iv = (int64_t)deltans.count();
		std::cout << waitms << " ms sleep == " << iv << " ns => [1 ms ~ " << int64_t(double(iv) / waitms) << " ns]\n";
		std::cout << "raw duration == " << deltans.count() << std::endl;
	};

	print_results(1.0, t0, t1);
	print_results(2.0, t1, t2);
	print_results(5.0, t2, t3);
	print_results(15.0, t3, t4);
	print_results(44.0, t4, t5);
	print_results(110.0, t5, t6);
	print_results(1000.0, t6, t7);
	print_results(1500.0, t7, t8);
#endif
}

void check_std_timer_impl()
{
	std::cout << "check_std_timer_impl:\n";

	auto t0 = nstimer::std_timer::capture_now_time();
	STD_THREAD_SLEEP(1);
	auto t1 = nstimer::std_timer::capture_now_time();
	STD_THREAD_SLEEP(2);
	auto t2 = nstimer::std_timer::capture_now_time();
	STD_THREAD_SLEEP(5);
	auto t3 = nstimer::std_timer::capture_now_time();
	STD_THREAD_SLEEP(15);
	auto t4 = nstimer::std_timer::capture_now_time();
	STD_THREAD_SLEEP(44);
	auto t5 = nstimer::std_timer::capture_now_time();
	STD_THREAD_SLEEP(110);
	auto t6 = nstimer::std_timer::capture_now_time();
	STD_THREAD_SLEEP(1000);
	auto t7 = nstimer::std_timer::capture_now_time();
	STD_THREAD_SLEEP(1500);
	auto t8 = nstimer::std_timer::capture_now_time();

	auto print_results = [](double waitms, const auto& start, const auto& end) {
		int64_t iv = nstimer::std_timer::delta_ns(start, end);
		std::cout << waitms << " ms sleep == " << iv << " ns => [1 ms ~ " << int64_t(double(iv) / waitms) << " ns]\n";
	};

	print_results(1.0, t0, t1);
	print_results(2.0, t1, t2);
	print_results(5.0, t2, t3);
	print_results(15.0, t3, t4);
	print_results(44.0, t4, t5);
	print_results(110.0, t5, t6);
	print_results(1000.0, t6, t7);
	print_results(1500.0, t7, t8);
}

void check_native_thread_sleep()
{
	std::cout << "check_native_thread_sleep:\n";

#ifdef NSTIMER_PLATFORM_WIN32
#	define PLATFORM_SLEEP Sleep
#endif
#ifdef NSTIMER_PLATFORM_LINUX
// usleep microseconds
#	define PLATFORM_SLEEP(MS) usleep(MS * 1000)
#endif
	using timepoint_t = nstimer::std_timer::time_capture_t;

	auto t0 = nstimer::std_timer::capture_now_time();
	PLATFORM_SLEEP(1);
	auto t1 = nstimer::std_timer::capture_now_time();
	PLATFORM_SLEEP(2);
	auto t2 = nstimer::std_timer::capture_now_time();
	PLATFORM_SLEEP(5);
	auto t3 = nstimer::std_timer::capture_now_time();
	PLATFORM_SLEEP(15);
	auto t4 = nstimer::std_timer::capture_now_time();
	PLATFORM_SLEEP(44);
	auto t5 = nstimer::std_timer::capture_now_time();
	PLATFORM_SLEEP(110);
	auto t6 = nstimer::std_timer::capture_now_time();
	PLATFORM_SLEEP(1000);
	auto t7 = nstimer::std_timer::capture_now_time();
	PLATFORM_SLEEP(1500);
	auto t8 = nstimer::std_timer::capture_now_time();

	auto print_results = [](double waitms, const timepoint_t& start, const timepoint_t& end) {
		int64_t iv = nstimer::std_timer::delta_ns(start, end);
		std::cout << waitms << " ms sleep == " << iv << " ns => [1 ms ~ " << int64_t(double(iv) / waitms) << " ns]\n";
	};

	print_results(1.0, t0, t1);
	print_results(2.0, t1, t2);
	print_results(5.0, t2, t3);
	print_results(15.0, t3, t4);
	print_results(44.0, t4, t5);
	print_results(110.0, t5, t6);
	print_results(1000.0, t6, t7);
	print_results(1500.0, t7, t8);
}

repository: raxvan/nstimer

repo_name: raxvan/nstimer

extension: h


text:
#include <iostream>
#include <string>
#include <deque>
#include <algorithm>

using namespace std;

int main()
{
	deque<char> Lstack;
	deque<char> Rstack;

	string A, T;
	cin >> A >> T;

	int L, R;
	L = 0;
	R = T.size() - 1;

	while (L <= R)
	{
		while (L <= R)
		{
			bool b = false;
			Lstack.push_back(T[L]);
			L++;
			if (Lstack.size() >= A.size())
			{
				b = true;
				for (int i = 0; i < A.size(); i++) {
					if (A[i] != Lstack[Lstack.size() - A.size() + i]) {
						b = false;
						break;
					}
				}
			}
			if (b) {
				for (int i = 0; i < A.size(); i++) Lstack.pop_back();
				break;
			}
		}
		while (L <= R)
		{
			Rstack.push_front(T[R]);
			R--;
			bool b = false;
			if (Rstack.size() >= A.size())
			{
				b = true;
				for (int i = 0; i < A.size(); i++) {
					if (A[i] != Rstack[i]) {
						b = false;
						break;
					}
				}
			}
			if (b) {
				for (int i = 0; i < A.size(); i++)
					Rstack.pop_front();
				break;
			}
		}
	}
	string answer;
	for (int i = 0; i < Lstack.size(); i++)
		answer.push_back(Lstack[i]);
	for (int i = 0; i < Rstack.size(); i++)
		answer.push_back(Rstack[i]);
	while (answer.find(A) < 30000)
		answer.erase(answer.find(A), A.size());
	if (!answer.empty()) cout << answer << '\n';

}

extension: cpp