diff --git a/.github/workflows/compile-examples.yml b/.github/workflows/compile-examples.yml index 180afce8b..30856fa52 100644 --- a/.github/workflows/compile-examples.yml +++ b/.github/workflows/compile-examples.yml @@ -24,7 +24,11 @@ jobs: env: # sketch paths to compile (recursive) compatible with all boards - UNIVERSAL_SKETCH_PATHS: '"libraries/Scheduler"' + UNIVERSAL_SKETCH_PATHS: | + - extras/arduino-examples/examples/01.Basics/Fade + - extras/arduino-examples/examples/02.Digital/DigitalInputPullup + - extras/arduino-examples/examples/03.Analog/AnalogInput + - extras/arduino-examples/examples/04.Communication/MultiSerial strategy: fail-fast: false @@ -34,18 +38,40 @@ jobs: - fqbn: arduino:mbed:nano33ble - fqbn: arduino:mbed:envie_m4 - fqbn: arduino:mbed:envie_m7 + - fqbn: arduino:mbed:edge_control # compile only the examples compatible with each board include: - board: fqbn: arduino:mbed:nano33ble - additional-sketch-paths: '"libraries/PDM" "libraries/ThreadDebug"' + additional-sketch-paths: | + - libraries/PDM + - libraries/Scheduler + - libraries/ThreadDebug + - board: + fqbn: arduino:mbed:edge_control + additional-sketch-paths: | + - libraries/ThreadDebug - board: fqbn: arduino:mbed:envie_m4 - additional-sketch-paths: '"libraries/doom" "libraries/KernelDebug" "libraries/Portenta_SDCARD" "libraries/Portenta_Video"' + additional-sketch-paths: | + - libraries/doom + - libraries/KernelDebug + - libraries/Portenta_SDCARD + - libraries/Portenta_Video + - libraries/Scheduler - board: fqbn: arduino:mbed:envie_m7 - additional-sketch-paths: '"libraries/doom" "libraries/KernelDebug" "libraries/Portenta_SDCARD" "libraries/Portenta_System" "libraries/Portenta_Video" "libraries/ThreadDebug" "libraries/USBHOST" "libraries/WiFi"' + additional-sketch-paths: | + - libraries/doom + - libraries/KernelDebug + - libraries/Portenta_SDCARD + - libraries/Portenta_System + - libraries/Portenta_Video + - libraries/Scheduler + - libraries/ThreadDebug + - libraries/USBHOST + - libraries/WiFi steps: - name: Checkout repository @@ -61,6 +87,12 @@ jobs: - name: Install ArduinoCore-API run: mv "$GITHUB_WORKSPACE/ArduinoCore-API/api" "$GITHUB_WORKSPACE/cores/arduino" + - name: Checkout built-in examples + uses: actions/checkout@v2 + with: + repository: arduino/arduino-examples + path: extras/arduino-examples + - name: Compile examples uses: arduino/actions/libraries/compile-examples@master with: @@ -72,7 +104,9 @@ jobs: # Overwrite the Board Manager installation with the local platform - source-path: "./" name: "arduino:mbed" - sketch-paths: "${{ env.UNIVERSAL_SKETCH_PATHS }} ${{ matrix.additional-sketch-paths }}" + sketch-paths: | + ${{ env.UNIVERSAL_SKETCH_PATHS }} + ${{ matrix.additional-sketch-paths }} verbose: 'false' enable-size-deltas-report: true diff --git a/boards.txt b/boards.txt index 5ae76e42d..7a4e90cd6 100644 --- a/boards.txt +++ b/boards.txt @@ -1,5 +1,47 @@ ############################################################## +edge_control.name=Arduino Edge Control +edge_control.build.core=arduino +edge_control.build.crossprefix=arm-none-eabi- +edge_control.build.compiler_path={runtime.tools.arm-none-eabi-gcc.path}/bin/ + +edge_control.build.variant=EDGE_CONTROL +edge_control.build.mcu=cortex-m4 +edge_control.build.extra_flags= +edge_control.build.architecture=cortex-m4 +edge_control.build.fpu=fpv4-sp-d16 +edge_control.build.float-abi=softfp +edge_control.build.board=EDGE_CONTROL +edge_control.build.ldscript=linker_script.ld +edge_control.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52840 +edge_control.compiler.mbed.defines={build.variant.path}/defines.txt +edge_control.compiler.mbed.ldflags={build.variant.path}/ldflags.txt +edge_control.compiler.mbed.cflags={build.variant.path}/cflags.txt +edge_control.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt +edge_control.compiler.mbed.includes={build.variant.path}/includes.txt +edge_control.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys +edge_control.compiler.mbed="{build.variant.path}/libs/libmbed.a" "{build.variant.path}/libs/libcc_310_core.a" "{build.variant.path}/libs/libcc_310_ext.a" "{build.variant.path}/libs/libcc_310_trng.a" +edge_control.vid.0=0x2341 +edge_control.pid.0=0x005d +edge_control.vid.1=0x2341 +edge_control.pid.1=0x805d + +edge_control.upload.tool=bossac +edge_control.upload.protocol= +edge_control.upload.use_1200bps_touch=true +edge_control.upload.wait_for_upload_port=true +edge_control.upload.native_usb=true +edge_control.upload.maximum_size=983040 +edge_control.upload.maximum_data_size=262144 + +edge_control.bootloader.tool=openocd +edge_control.bootloader.extra_action.preflash=echo INFO:removed_mass-erase +edge_control.bootloader.config=-f target/nrf52.cfg +edge_control.bootloader.programmer=-f interface/cmsis-dap.cfg +edge_control.bootloader.file=EDGE_CONTROL/bootloader.hex + +############################################################## + envie_m7.name=Arduino Portenta H7 (M7 core) envie_m7.build.core=arduino envie_m7.build.crossprefix=arm-none-eabi- diff --git a/bootloaders/EDGE_CONTROL/bootloader.bin b/bootloaders/EDGE_CONTROL/bootloader.bin new file mode 100755 index 000000000..216daf50c Binary files /dev/null and b/bootloaders/EDGE_CONTROL/bootloader.bin differ diff --git a/bootloaders/EDGE_CONTROL/bootloader.elf b/bootloaders/EDGE_CONTROL/bootloader.elf new file mode 100755 index 000000000..39cde08d0 Binary files /dev/null and b/bootloaders/EDGE_CONTROL/bootloader.elf differ diff --git a/bootloaders/EDGE_CONTROL/bootloader.hex b/bootloaders/EDGE_CONTROL/bootloader.hex new file mode 100644 index 000000000..dec22192f --- /dev/null +++ b/bootloaders/EDGE_CONTROL/bootloader.hex @@ -0,0 +1,2218 @@ +:10000000108D002061410000AF6E0000094000002B +:1000100009400000094000000940000009400000BC +:10002000094000000940000009400000493C000070 +:100030000940000009400000F13B0000976E0000FD +:1000400039410000394100003941000039410000C8 +:1000500039410000394100003941000039410000B8 +:1000600039410000394100003941000039410000A8 +:100070003941000039410000394100003941000098 +:100080003941000039410000394100003941000088 +:100090003941000039410000394100003941000078 +:1000A0003941000039410000394100003941000068 +:1000B0003941000039410000394100003941000058 +:1000C0003941000039410000394100003941000048 +:1000D0003941000039410000394100003941000038 +:1000E0003941000039410000394100003941000028 +:1000F0003941000039410000394100003941000018 +:100100007BB972B90029BEBF00204FF0004106E064 +:1001100008BF00281CBF6FF000414FF0FF3000F017 +:10012000B7B9ADF1080C6DE904CE002909DB002B4D +:100130001ADB00F04DF8DDF804E0DDE9022304B03D +:100140007047404261EB4101002B1BDB00F040F89F +:10015000DDF804E0DDE9022304B0404261EB410137 +:10016000524263EB43037047524263EB430300F098 +:100170002FF8DDF804E0DDE9022304B0404261EB32 +:1001800041017047524263EB430300F021F8DDF870 +:1001900004E0DDE9022304B0524263EB43037047FD +:1001A00053B94AB9002908BF00281CBF4FF0FF31DE +:1001B0004FF0FF3000F06CB9ADF1080C6DE904CEE2 +:1001C00000F006F8DDF804E0DDE9022304B0704732 +:1001D0002DE9F047089E0D4604468E46002B40F060 +:1001E00082808A42174646D9B2FA82F24AB1C2F1F7 +:1001F000200105FA02F320FA01F1974041EA030ECB +:1002000094404FEA1748230CBEFBF8FCB9B208FB38 +:100210001CEE43EA0E430CFB01F098420AD9FB188E +:100220000CF1FF3580F01681984240F21381ACF159 +:10023000020C3B441B1AA4B2B3FBF8F008FB1033CA +:1002400044EA034400FB01F1A14209D93C1900F141 +:10025000FF3380F00181A14240F2FE8002383C442D +:10026000641A40EA0C4000211EB1D4400023C6E9C4 +:100270000043BDE8F08702B9FFDEB2FA82F2002A3D +:100280004FD1CB1B4FEA174E1FFA87F80121B3FB62 +:10029000FEFC250C0EFB1C3345EA034508FB0CF362 +:1002A000AB4207D97D190CF1FF3002D2AB4200F20C +:1002B000E7808446ED1AA3B2B5FBFEF00EFB1055A5 +:1002C00043EA054408FB00F8A04507D93C1900F1B2 +:1002D000FF3302D2A04500F2D7801846A4EB0804F1 +:1002E00040EA0C40C0E78B4208D9002E00F0AF80F6 +:1002F0000021C6E900050846BDE8F087B3FA83F19E +:1003000000294BD1AB4202D3824200F2B780841A5B +:1003100065EB030301209E46002EAAD0C6E9004EDD +:10032000A7E7C2F1200C01FA02F3974020FA0CF083 +:100330004FEA174E21FA0CFC1843BCFBFEF1050CEA +:100340000EFB11CC1FFA87F845EA0C4501FB08F3B8 +:10035000AB4204FA02F409D97D1901F1FF3C80F0A7 +:100360008B80AB4240F2888002393D44EB1A85B263 +:10037000B3FBFEF00EFB103345EA034500FB08F328 +:10038000AB4207D97D1900F1FF3C71D2AB426FD966 +:1003900002383D44EB1A40EA014178E7C1F1200CF4 +:1003A0008B4022FA0CF71F4320FA0CF405FA01F3F4 +:1003B0004FEA174E25FA0CF51C43230CB5FBFEF94A +:1003C0001FFA87F80EFB195543EA054509FB08FAA1 +:1003D000AA4502FA01F200FA01F308D97D1909F1E0 +:1003E000FF3047D2AA4545D9A9F102093D44A5EB02 +:1003F0000A05A4B2B5FBFEF00EFB105544EA054415 +:1004000000FB08F8A04507D93C1900F1FF352DD2B3 +:10041000A0452BD902383C4440EA0940A4EB08042B +:10042000A0FB02894C45C6464D4619D316D05EB195 +:10043000B3EB0E0264EB050404FA0CFCCA404CEA70 +:100440000202CC40C6E900240021BDE8F087314615 +:1004500030460EE7AC46EDE6184601E74345E6D2E6 +:10046000B8EB020E69EB07050138E0E72846D3E751 +:1004700060468FE78146BAE7614677E708464BE773 +:10048000ACF1020C3D4415E702383C4426E700BFBE +:10049000704700BF70B5134D134E044663685B6C24 +:1004A00043B12046984728B163681B6C13B12046BE +:1004B000984700B970BD63685B6B002BEED0204697 +:1004C00098470028EAD063689B694BB140222946CF +:1004D0002046984702462946304606F0E5F9DDE712 +:1004E0001A46F8E7041800202000002013B54FF04A +:1004F0008053084CD3F8A820D3F8A4300649CDE99E +:10050000002300231A46204604F0EAFA204602B0EF +:1005100010BD00BF8468002014810000F0B472B6E2 +:10052000204A214F002313604FF0E0224FF0FF36A6 +:10053000516801F00F0101311D469A0002F160423D +:1005400002F561424FEAC30CC2F88060C2F88061D4 +:10055000002202EB0C043C440132082A84F80053C8 +:10056000F7D101339942E8DC104B4FF020625A601A +:1005700040F2FA529860DA6000221D6111469C1820 +:1005800001320C2A2176FAD14FF0FF3259629A6279 +:10059000074ADA621F22F0BCD0E900011A6305F0B5 +:1005A000FDBE00BF10E000E000E100E000ED00E073 +:1005B000020000C0044B80EA112033F8100080EAEA +:1005C000012080B2704700BFF07E00002DE9F04F9F +:1005D000A048A14DA14EA24CA24F87B004F0F6FE58 +:1005E0002860A14804F0F2FE3060A04804F0EEFE5E +:1005F00020609F4804F0EAFE0C213860286805F06E +:10060000C4FE012228680C2105F0B6FE28680A21E4 +:1006100005F0BBFE002228680A2105F0ADFE28681F +:10062000072105F0B2FE00222868072105F0A4FE8C +:100630003068022105F0A9FE00222868072105F094 +:100640009BFE30688B4E032105F09FFE2868002238 +:10065000072105F091FE3268874B9A423D4622D031 +:1006600033604FF4FA7005F0D3FB002333604FF092 +:100670008043D3F81C35B02B15D038687F4F4368C2 +:100680003A46D3F800804FF480310823C0473B68D6 +:10069000013308D07B68013305D002F081F84FF4B4 +:1006A0008030FFF73BFF4FF0804300273760C3F8EF +:1006B0001C752368724E1B68986802F001F81C22B2 +:1006C0003946304606F0DEFC4FF4005322683361B1 +:1006D0006C4B736141F6FF73B361536823B19B6C3C +:1006E00013B1694910469847206843689B6A03B173 +:1006F0009847DFF88C81654F01220DF107014046D4 +:1007000006F02AF900283BD038689DF80710604BA6 +:10071000421C232919543A6032D1002199541B7884 +:10072000493B112B2AD8DFE803F01229CB292909EC +:10073000292929291829290F29153D6A55490222F5 +:10074000206805F013FE19E053493C22F8E75349AD +:100750001122F5E752490322F2E710220021514805 +:10076000DFF848B106F0B2FB1022824600214E4865 +:1007700006F0ACFB002681464E4504D300233B60C7 +:1007800005F0FEFAB8E706EB0A01A9EB06025944A8 +:10079000404606F0E1F8002801DD0644ECE705F0EC +:1007A000EFFAE9E7102200213E48DFF810A106F039 +:1007B0008DFB1022064600213B4806F087FB814650 +:1007C000D0B1286843680021DB68984728684368EF +:1007D00006F580369B684A46314698472868DAF81D +:1007E000002043683149D3F804A00A444B463146FF +:1007F000D0472F490322A3E7CAF80060F9E7102287 +:100800000021284806F062FB1022064600212648F7 +:1008100006F05CFB81462868264A436806F580316D +:10082000D3F800A04B46D0470026DFF888A0324618 +:10083000B14506D1204902A804F052F90C2202A9C0 +:100840007EE711461AF8010BFFF7B4FE01360246A7 +:10085000EEE700BF258100001400002018000020F2 +:10086000080000201C0000202C81000033810000C3 +:100870003D810000FC7F0020358173073C00002093 +:100880002000002084480020950400000C00002077 +:1008900044180020A9810000508100008B810000D5 +:1008A0009B810000451800204E180020841800206D +:1008B0009F81000084380020A381000010000020E8 +:1008C0004FF02002EFF3118382F31188BFF36F8F93 +:1008D00006F0E2FA01F064FFBFF34F8F0549064BC3 +:1008E000CA6802F4E0621343CB60BFF34F8F00BFCE +:1008F000FDE700BF00ED00E00400FA050B680133DE +:100900000B60014B1B681847509A00202DE9F04FEF +:1009100085B098460E9CDFF894A0012CB8BF012446 +:10092000012B0CBF30232023154606468B4601942D +:10093000029301274FF00A0900220AF101040AB9C3 +:10094000AA4521D2B5FBF4F059463030B047013703 +:10095000012209F1FF39B9F1010F4FF00A03B5FB8C +:10096000F4F0BAFBF3FA04FB1055E6D1594605F151 +:100970003000B047B8F1030F03D1019BDC1B002C02 +:100980000FDC05B0BDE8F08F019B4B45E1DBB8F112 +:10099000020FDED8029803925946B0470137039AF6 +:1009A000D7E759462020B047013CE8E7FFC99A3B0A +:1009B0002DE9F04F8BB01C464FF00008531E054642 +:1009C0008B4603934FF0FF3746464FF0000A07E08F +:1009D000BAF1000F0DD1252800F04D815946A847E6 +:1009E000039B13F8010F03930028F1D10BB0BDE86E +:1009F000F08F7A280AD862280FD8302876D043D8CA +:100A0000252800F036812D2800F03C81594625200C +:100A1000A847039B5946187829E163381728F5D869 +:100A200001A353F820F000BF690C0000170B000071 +:100A30000D0A00000D0A00000D0A0000E109000087 +:100A4000170B00000D0A00000D0A0000110B00003A +:100A50000D0A00000D0A00000D0A0000A90B00009D +:100A60000D0A00000D0A0000350C00000D0A000000 +:100A7000790B00000D0A00000D0A0000910A000029 +:100A80000D0A0000E109000039283AD95828BDD1E3 +:100A9000B8F1010F00F3918054F8043B0893002350 +:100AA00004934FF000091023CDF814909C460CF1EC +:100AB000FF32089902929000C0F12002A0F1200EAE +:100AC00021FA00F0049901FA02F2104321FA0EFE15 +:100AD00040EA0E0010F00F0078D1059A1AB9BCF167 +:100AE000010F40F092804FF0300C75E0002F0ADAD1 +:100AF000002E00F0C980A0F13007002E08BF0226AA +:100B00006EE7002FF7DB0A2303FB0707303FF4E70C +:100B100008F1010864E7B8F1000F12D154F8049B02 +:100B2000B9F1000F05DA59462D20A847C9F100098F +:100B3000013F009733464A4659462846FFF7E6FEEE +:100B400043E7B8F1010FE9D0073424F00704F4E8D3 +:100B5000022312F10041069143F100010791DDE902 +:100B60000601012908BF002804D35946284605F08C +:100B700045FE2AE79146D3E7B8F1000F04D154F8B7 +:100B8000042B00973346D7E7B8F1010FF7D00734AD +:100B900024F00704F4E8022300216FF0004099429A +:100BA00008BF9042EDD2E0E759463020A8475946A9 +:100BB0007820A847082701266AE7E31D23F00703EA +:100BC0001C465B6854F8082B089269E709288CBF1B +:100BD0004FF0570C4FF0300C6044594640B205932B +:100BE000A847029A059B09F10109F2B9032E7FF487 +:100BF000ECAEC9EB4709B9F1000F7FF7E6AE5946F5 +:100C00002020A84709F1FF39F5E75A1E9F420992B3 +:100C100004DB012E04D159463020A847099B06E089 +:100C2000022EFBD159462020F7E7CDF814A0DDF8BD +:100C300008C03CE754F804ABD1464B4619F8010B09 +:100C400078B9032E22D1A3EB0A0AA7EB0A0ABAF15C +:100C5000000F7FF7BAAE59462020A8470AF1FF3AA5 +:100C6000F5E75946A847E8E754F8040B5946A84762 +:100C7000ABE65946FBE7D04656464FF0FF374FF0FC +:100C8000010AADE60326ABE60126A9E68246A7E601 +:100C900007B50B46002102460191034801A9FFF761 +:100CA00087FE03B05DF804FBFD08000010B54FF0AF +:100CB0002003EFF3118483F31188BFF36F8F00F0EB +:100CC00039F8094A0123C2F840354FF08042C2F892 +:100CD0007835064B4FF0FF329A62DA6284F311885E +:100CE000BFF36F8F002010BD00E0014000ED00E079 +:100CF000BFF34F8F0549064BCA6802F4E062134305 +:100D0000CB60BFF34F8F00BFFDE700BF00ED00E0F9 +:100D10000400FA05054B1B68082B01BF044B18683B +:100D2000B0FA80F0400918BF002070473001001071 +:100D30003401001008B54FF080430022C3F80C21A5 +:100D4000C3F81021C3F838254FF0805203F5404313 +:100D5000D2F80414C3F82015D2F80814C3F82415E7 +:100D6000D2F80C14C3F82815D2F81014C3F82C15B7 +:100D7000D2F81414C3F83015D2F81814C3F8341587 +:100D8000D2F81C14C3F84015D2F82014C3F8441547 +:100D9000D2F82414C3F84815D2F82814C3F84C1517 +:100DA000D2F82C14C3F85015D2F83014C3F85415E7 +:100DB000D2F83414C3F86015D2F83814C3F86415A7 +:100DC000D2F83C14C3F86815D2F84014C3F86C1577 +:100DD000D2F84424C3F87025FFF79CFF10B13E4BB6 +:100DE0003E4A1A60FFF796FF18B13D4BFB22C3F84D +:100DF0001825FFF78FFF48B13A493B4B0A681B683B +:100E000022F00F0203F00F0313430B60FFF782FF82 +:100E100018B1364B4FF400721A604FF08043D3F88C +:100E20000024D10744BF6FF00102C3F800244FF043 +:100E30001023D3F80C22D2071ED52D4B0122C3F864 +:100E40000425D3F80024002AFBD04FF01022D2F85A +:100E50000C3223F00103C2F80C32254B1A46D3F8AA +:100E600000140029FBD00021C3F80415D2F8003487 +:100E7000002BFBD0FFF73CFFD3F80022002A03DB56 +:100E8000D3F80432002B23DA194B0122C3F80425CE +:100E9000D3F80024002AFBD04FF010221221C2F810 +:100EA0000012D3F80024002AFBD04FF010231222A6 +:100EB000C3F804220E4B1A46D3F800140029FBD0C5 +:100EC0000021C3F80415D2F80034002BFBD0D1E781 +:100ED000084B094A1A6008BD8C560040488103003F +:100EE00000F00040E40E004058020010409602401E +:100EF00000E00140549A00200090D0032DE9F04F0B +:100F0000484C067904EBC60385B01B7905464FEAC9 +:100F1000C60A002B40F0848044F83620DFF810E148 +:100F200001F1FF3C684601F1030B4FF001081CF88A +:100F3000012FFF2A70D022F08003170603605ED5D0 +:100F40001F2B87BF02F01F07F1461F464FF0A04935 +:100F500008FA07F7C9F808751F2B8ABF02F01F03AC +:100F60004FF0A042724603F5E073032742F8237066 +:100F7000DC4500F10400DAD12868009BC0F8603538 +:100F8000019BC0F86435029BC0F86835039BC0F82C +:100F90006C350123C0F800358A790B894F79C0F888 +:100FA0000C75C0F80425C0F808354B89C0F8103519 +:100FB0000023C0F800324FF48E71C0F8003305F002 +:100FC000ECFC28684FF4887105F0E7FC28684FF4C2 +:100FD0008A7105F0E2FC28684FF4827105F0DDFCAF +:100FE00054F8363023B1286840F3073002F08CFF04 +:100FF000544401230C48237105B0BDE8F08F1F2B2A +:1010000087BF02F01F07F1461F464FF0A04908FABC +:1010100007F7C9F80C759FE74FF0FF330360A7E7A8 +:101020000248E9E7440000200000AD0B0500AD0BCD +:1010300000030050F0B50E461D461C4903790468B4 +:10104000D6F800E0B6F804C0B768C4F820E501EBB4 +:10105000C301F368C4F824C5C4F82875C4F82C3556 +:10106000C4F840E5C4F844C5C4F84875C4F84C3524 +:1010700002F0010303EB5202C4F81425EA0712D46C +:1010800015F0020203D0002B14BF08220422002B0B +:10109000C4F8002218BF0C23EAB208BF0823BDE839 +:1010A000F04005F082BC1022F1E700BF44000020B0 +:1010B0000379084A016802EBC3021379D1F80411DD +:1010C000DBB219B9981E18BF0120704701201071BA +:1010D000704700BF44000020044A91689368CB1A0F +:1010E00023F07F438342F9D3704700BF10E000E054 +:1010F000034B044A1B68B3FBF2F35843FFF7ECBF02 +:10110000549A002040420F00054B1B68082B05D164 +:10111000044B1868003818BF012070470020704742 +:101120003001001034010010054B10F0800FA3F1C6 +:10113000900208BF134600F00F0003EB0010704749 +:10114000D4010020024A00231360024A1370704742 +:101150001C7C0240A668002007B5094A00231370D2 +:10116000084AADF8053013708DF8073001238DF86B +:101170000430054B01A81B68984703B05DF804FBD9 +:10118000A5680020A868002064020020F8B54D681A +:101190000B4F954228BF15460C4606462A4609685D +:1011A000384605F044FF60682268401BC6E90075B8 +:1011B0002A4460600038226018BF0120F8BD00BFDB +:1011C0006C020020F8B54C68944228BF14460646CD +:1011D0000D468CB1094F09682246384605F027FFB5 +:1011E00037606B6874601B1B6B602B68201E234488 +:1011F0002B6018BF0120F8BD0460F2E76C020020EC +:1012000007B500238DF804300B4BD3F82025ADF83B +:101210000620D3F8C034094A002B13680CBF4FF4E2 +:1012200080714FF001210B431360054B01A81B682F +:10123000984703B05DF804FB0070024040010020B5 +:101240006402002013B5124C0122236802FA01F156 +:101250000B4323600F4B1B68194003060DD551B992 +:1012600006238DF804308DF806008DF807100A4B20 +:1012700001A81B68984702B010BD0029FBD10623C6 +:101280008DF804308DF806008DF80720EFE700BFD9 +:1012900040010020D00000206402002008B5054B6A +:1012A0001A78104605F002FCBDE8084001461046D9 +:1012B000FFF7C8BFA8680020074BBFF35B8F02464B +:1012C00053E8000F00EA020143E8001CBCF1000FE4 +:1012D000F6D1BFF35B8F7047D000002008B5FFF751 +:1012E00031FF084B93F89E20032A05D1BDE8084042 +:1012F0006FF00100FFF7E0BFD3F89030002BF5D07E +:1013000008BD00BF4401002007B5FFF71BFF0C4BD1 +:1013100093F88E20032A10D0D3F880306BB96FF089 +:101320008070FFF7C9FF06238DF804300823ADF85D +:101330000630044B01A81B68984703B05DF804FB16 +:10134000440100206402002007B5FFF7FBFE0F4BAD +:1013500093F81E21032A06D16FF48070FFF7ACFFCB +:1013600003B05DF804FBD3F81031002BF8D16FF413 +:101370008070FFF7A1FF06238DF804308823ADF8B5 +:101380000630034B01A81B689847E9E74401002099 +:1013900064020020244B13B5D3F80044C3F8004482 +:1013A000BFF36F8FBFF34F8FBFF36F8FBFF34F8FBD +:1013B000E1050ED51D4B01221A700023ADF8053052 +:1013C0008DF8073002238DF80430194B01A81B68F3 +:1013D0009847A2050DD5154A00231370ADF80530C6 +:1013E0008DF8073003238DF80430114B01A81B68DA +:1013F0009847630516D50D4B1A789AB100221A70DA +:10140000094B0121C3F80815582005F007FB0423F8 +:101410008DF80430064BADF805201B688DF80720C9 +:1014200001A8984702B010BD00700240A5680020D6 +:10143000640200202DE9F04F744B87B01A780193B5 +:10144000002A7DD1DFF8E4A1D346714BDAF80050D1 +:101450001868284074D010F0012574D095FAA5F5CD +:10146000B5FA85F50F2D86BFA5F11004E4B245F05D +:1014700080042046FFF758FE4FFA84F804F0080372 +:10148000B8F1000F82890093064661DAD0E9003195 +:1014900004A8984700B930605E4B009982221A6018 +:1014A000019B059A01201870B368A840DBF8005032 +:1014B000134425EA0000B8F1000FCBF80000B36038 +:1014C0000498554B04F00F0479DA00296FD0C3F863 +:1014D000A006C3F8A426FFF717FE25B2A3004F4AC3 +:1014E0004F49640000287AD1B8F1000FB2BF04253B +:1014F00028250A464B4FDFF838811D441444064620 +:101500003E60BFF36F8FBFF34F8F284605F086FA1A +:101510000220FFF7EDFD3B68002BF1D01E20FFF706 +:10152000E7FDD8F800309B0657D50120FFF7E0FD16 +:10153000238803F1804303F51C331B68002BDFD0A5 +:1015400007B0BDE8F08F90FAA0F0B0FA80F589E717 +:10155000009B314923B3D1F8C09419F4803F18BFE0 +:101560004FF00009716837684B4604A8B847049AE1 +:10157000002A8FD0059A4A458CD201200227A84024 +:10158000B773C043FFF798FE06238DF80C30264B47 +:101590008DF80E401B688DF80F7003A8984754E72C +:1015A00004F00F0303F5947351F82390DAE7142144 +:1015B00001FB0433C3F80006C3F804268BE721B10E +:1015C000C3F8A007C3F8A42785E7142101FB04335F +:1015D000C3F80007C3F804277DE702209FE7B8F1AE +:1015E000000FB4BF04202820184405F017FA12EAAF +:1015F000280838BF884638F8153003F1804303F5D2 +:101600001C331A68002AFCD09AE700BFA6680020A5 +:10161000D00000201C7C024000700240F0800000DE +:101620000281000004710240640200204001002099 +:101630007474024038B5174BD3F86C44C3F86C444B +:10164000BFF36F8FBFF34F8FFFF75EFD38B9124ABC +:10165000136823F0011103F001130C4313600125FB +:101660001CB9BDE83840FFF7E5BE94FAA4F1B1FA21 +:1016700081F30F2BC8BFA3F110001946D4BF43F06C +:101680008000C0B205FA03F324EA0304FFF7DAFD91 +:10169000E6E700BF007002406802002037B504464C +:1016A000FFF750FDFFF740FD837B032B0CD1204655 +:1016B00005F0FCF9012303FA00F0C043FFF7FCFD3D +:1016C000FFF7B8FE03B030BD0568002DF8D1204605 +:1016D00005F0ECF9012303FA00F0C043FFF7ECFD3D +:1016E00006238DF80430044B8DF806401B688DF8F6 +:1016F000075001A89847E3E764020020024A00234C +:101700001360024A1370704764020020A76800202B +:1017100038B5514B4FF40062C3F80024BFF36F8F0C +:10172000BFF34F8FFFF7F0FC4C49A8B14FF02003F7 +:10173000EFF3118483F31188BFF36F8F0868484B70 +:10174000032200287ED149F2753008601A600860D3 +:1017500084F31188BFF36F8F4FF02003EFF31184F0 +:1017600083F31188BFF36F8F08683E4AC0230028B7 +:101770006AD149F2753008601360086084F31188FB +:10178000BFF36F8F344B0120C3F80005BFF36F8F99 +:10179000BFF34F8FD3F800040005FBD54FF4006072 +:1017A000C3F80004BFF36F8FBFF34F8F4FF02003D8 +:1017B000EFF3118483F31188BFF36F8F086800285B +:1017C00044D149F275330B6010600B6084F31188CB +:1017D000BFF36F8F244B40F2E3721A600433402250 +:1017E0001A60BFF36F8FBFF34F8FA3F6040300247B +:1017F0008022C3F81C25C3F830451C4B40F2FF1271 +:101800001A601B4B1C60FFF79DFC1A4B1C701A4B97 +:1018100002221A70FFF778FC98B14FF02003EFF323 +:10182000118583F31188BFF36F8F08680C4B80B963 +:1018300049F275320A6018600A6085F31188BFF3B7 +:101840006F8F38BD1A6083E7136097E7002313603A +:10185000BCE71C60F1E700BF0070024000EC0640EE +:1018600014ED064014EC06400078024040010020D0 +:10187000D0000020A8680020A76800200E4B00229E +:1018800010B51A70A8B9FFF73FFC0C4B0C4A0028A2 +:101890000CBF184610460B4CC4F80403272002F076 +:1018A00033FB0123C4F80435BFF36F8FBFF34F8FB1 +:1018B00010BD0248EFE700BFA56800200714E00153 +:1018C0000714C00100700240034B1878012894BF30 +:1018D00000200120704700BFA7680020F8B51C4B0E +:1018E0001C7894BB1B4A106001221A7025462746BB +:1018F00065F07F0615F0080FF6B20CBF40214FF4DB +:101900000071304605F01EF93046FFF70DFC013539 +:10191000092D877307608760EAD1402100252046A2 +:1019200005F010F92046FFF7FFFB0134E4B2092C63 +:1019300085730560856001D10748F8BD14F0080F74 +:1019400014BF4FF400714021E9E70448F5E700BFF8 +:10195000A7680020640200200000AD0B0500AD0B5D +:101960002DE9F84305464FF02003EFF3118783F389 +:101970001188BFF36F8F10F00F0403D1284B1B7831 +:10198000834249D1274BDFF8CC901A68D9F8006020 +:10199000D24392B22846324305F088F84FF001084E +:1019A00008FA00F812EA080F38D12846FFF7BCFB06 +:1019B0000C2254432A0603462AD51B4A08681444BD +:1019C00000F060408A68B0F1005F02F001021AD1B5 +:1019D000BAB9164A1A6007C984E8070000229A605B +:1019E0009A735C60124B134846EA08068022C9F8D5 +:1019F0000060C3F8042187F31188BFF36F8FBDE83F +:101A0000F8830D4AE6E70AB90C4AE3E70C4AE1E736 +:101A10000C4A14440C4ADDE70C48ECE70C48EAE7B2 +:101A2000A868002040010020D4000020616A000066 +:101A300000E100E00000AD0B836A00008D110000A2 +:101A4000C511000064000020336A00000A00AD0BDD +:101A50000B00AD0BD0000020044B40F48070C3F8A5 +:101A60001805BFF36F8FBFF34F8F704700700240B0 +:101A7000020713D400F00F0310F0800F084A0BBFC9 +:101A800003F5887303F5847302EB830352F8230094 +:101A900008BF5868431E584258417047002070479D +:101AA0000070024010B508220021044605F0EAFA51 +:101AB0000E4BD3F880242270D3F884246270D3F8BC +:101AC0008824D3F88C1442EA01226280D3F890244F +:101AD000D3F8941442EA0122A280D3F89824D3F8D0 +:101AE0009C3442EA0323E38010BD00BF0070024033 +:101AF00013B5FFF727FB0E4B9A7B032A05D16FF432 +:101B00008030FFF7D9FB02B010BD1C686CB96FF4D0 +:101B10008030FFF7D1FB06238DF80430054BADF87C +:101B200006401B6801A89847EDE705F027F8EAE7AB +:101B30004401002064020020014B1878704700BF68 +:101B4000A868002038B50246FFF7DEFA04461046C2 +:101B500004F0ACFF012383401D49DB43CCB94FF0B7 +:101B60002000EFF3118580F31188BFF36F8F0868B1 +:101B700002F00F0203400B605200164B02F2C572D6 +:101B80001A605C6004331B6885F31188BFF36F8FA4 +:101B900038BD4FF02000EFF3118480F31188BFF3BC +:101BA0006F8F086803400B6012F008010AD102F041 +:101BB0000F02094B02F5947243F82210BFF36F8FA6 +:101BC000BFF34F8F84F31188BFF36F8FE0E700BF3F +:101BD000400100200078024000700240F7B5014645 +:101BE0004FF02003EFF3118583F31188BFF36F8F5C +:101BF000FFF79AFA0646084604F058FF012311F051 +:101C0000800F2B4F03FA00F318D13A6833EA020031 +:101C10000AD00846FFF796FF0323B37385F31188B4 +:101C2000BFF36F8F03B0F0BD22EA030230603A6069 +:101C3000204A106820EA03001060EDE70A0711D47B +:101C400080291D4C1D4A2AD001F00F0000F2DA3025 +:101C50004000206014681068E4B244F002040443B9 +:101C600014601268134C3A68206862EA000C1CEA9F +:101C7000030FD3D022EA0302184300233A603360F3 +:101C80000323B3738DF807300D4B206006221B68C9 +:101C90008DF804208DF8061001A89847BEE740F2A1 +:101CA000B470206014681068E4B244F00404D6E70D +:101CB000D00000204001002000780240047802405B +:101CC00064020020F7B5174B174CD3F880642368E3 +:101CD000164DDA43164B2F781B6892B238461A43DA +:101CE00004F0E4FE01238340134202D03846FFF79C +:101CF00075FF06F080066FF001102E70FFF7DCFA1A +:101D0000236843F0010323600023ADF805308DF80C +:101D1000073005238DF80430064B01A81B6898474F +:101D200003B0F0BD0070024040010020A868002010 +:101D3000D000002064020020554B2DE9F041D3F87B +:101D40000453002229461646012400297CD1FFF7BE +:101D5000DBF9002869D14F4B1B78002B65D1960227 +:101D600063D54D494C4E40F2A9730B604B4B1C6838 +:101D700014F0FF041CBF1868044040F2AA70086009 +:101D8000186810F0FF001CBF1968084040F2AB71E2 +:101D90003160196811F0FF01B4461CBF1E68314064 +:101DA00040F2AC76CCF800601E6834403C4E08D05F +:101DB00037682743376040F2A977CCF800701C6081 +:101DC0001C68354F40F2AD743C601C68204008D060 +:101DD000346844EA0044346040F2AA743C601860FD +:101DE00018682D4840F2AE740460186801400DD0A8 +:101DF000CC0748BF42F40002C806274840F2AB7443 +:101E0000046019601B6848BF42F00102336833F078 +:101E100001111CBF05F08070024313F0011F04D0B4 +:101E20006B0544BF316042F480621E4F02F400062D +:101E300022F400044FF00108E4B9FFF7FBFA2EB3D7 +:101E4000BDE8F041FFF73EBF91FAA1F31648B3FA9F +:101E500083F39F00384407683FB10660BFF36F8F7C +:101E6000BFF34F8F04FA03F0024304FA03F321EAAD +:101E700003016AE794FAA4F5B5FA85F557F8253019 +:101E800008FA05F5984724EA0504D5E7BDE8F0818E +:101E900000700240A66800200078024004780240EA +:101EA00068020020DC7C000000710240F8B5104E92 +:101EB000104A34681268240C2404144301271CB906 +:101EC00040F2FF133360F8BD94FAA4F5B5FA85F536 +:101ED0000F2DC6BFA5F11000C0B245F0800003076A +:101EE00001D4FFF77BFE07FA05F524EA0504E6E7CF +:101EF00040010020D00000200D4B802210B527208B +:101F0000C3F8842102F024F880B10A4CFFF7CEFF19 +:101F10000023C4F80435BFF36F8FBFF34F8F272022 +:101F200002F002F84FF0FF33C4F8083310BD00BFD1 +:101F300000E100E00070024008B5FFF7DDFF094B4B +:101F4000D3F80423C3F808230022C3F80025BFF305 +:101F50006F8FBFF34F8FFFF7F5F8034B01221A7015 +:101F600008BD00BF00700240A768002038B54FF0E0 +:101F70002003EFF3118583F31188BFF36F8F0F4BAD +:101F80001B7803F0FF0433B9002485F31188BFF3F5 +:101F90006F8F204638BDFFF789FF094AD2F8003419 +:101FA00013F40073F0D10121C2F82C15D2F80014FB +:101FB000890544BFC2F82C351C46E6E7A568002019 +:101FC0000070024038B5264A264B45B2002DA8BF06 +:101FD000134600F00F010446585C234A4FF00103FA +:101FE00003FA00F0C2F804032EDAD2F81005C84054 +:101FF000C00728D4D2F810058B400343C2F810352F +:10200000BFF36F8FBFF34F8FE9B1002D1BDB2307A9 +:1020100019D44FF02003EFF3118583F31188BFF338 +:102020006F8F2046FFF78EFD204604F03FFD0F4ADC +:10203000012303FA00F0136823EA0003136085F319 +:102040001188BFF36F8F38BDD2F81405C840C007A0 +:10205000F9D4D2F814058B400343C2F81435CFE706 +:10206000C4810000BB81000000700240D00000204D +:10207000020610B504460AD4030708D400F00F0284 +:10208000074B92009B58012B01D1FFF75BFD054BDD +:10209000C3F81845BFF36F8FBFF34F8F10BD00BF5C +:1020A00044740240007002402DE9F0410A4B0B4C91 +:1020B0000B4D1B1B9B10074688465D430026AE4216 +:1020C00001D1BDE8F081E3681BB1424639462046A4 +:1020D000984701362C34F2E7DC9D0020B09D0020AB +:1020E000A38B2EBAF0B40D4B0D4C0E4DE41AA41078 +:1020F0006C430025A54203D16FF02200F0BC70476D +:102100001E6946B15F6897F802C08788BC4502D156 +:102110003346F0BC184701352C33EBE7B09D002067 +:10212000DC9D0020A38B2EBAF0B40D4B0D4C0E4D50 +:10213000E41AA4106C430025A54203D16FF02200DD +:10214000F0BC70479E6946B15F6897F802C0878807 +:10215000BC4502D13346F0BC184701352C33EBE7C0 +:10216000B09D0020DC9D0020A38B2EBA2DE9F84302 +:102170000F4C104B17461B1B0F4A9B1005460E4673 +:1021800002FB03F94FF00008C14502D16FF02200B5 +:102190000BE063691BB908F101082C34F4E73A46F7 +:1021A0003146284698470028F5D1BDE8F88300BF9E +:1021B000B09D0020DC9D0020A38B2EBA13B5084CE7 +:1021C00001ABE268A1680192802001F003FB019954 +:1021D000A268E3680A445B1AA260E36002B010BD23 +:1021E000AC0200202DE9F743434C94F84C50002DED +:1021F00066D100F0C9FB00287BD0404B636204F13C +:10220000440363633E4BA3623E4B3F4A2062A36399 +:102210003E48E3633E4BE2626361E06101F0D4FB60 +:1022200000284EDB01F09AF900284ADB402368467B +:10223000ADF802308DF804508DF8005001F034FAFA +:1022400000283EDB802668468DF8006001F02CFAFD +:10225000002836DB2F49284601F0A2FB002830DB9E +:102260002C49304601F09CFB00282ADB2A4E2B4BE0 +:102270002B4A9B1B9B1002FB03F9A94524D1002686 +:102280001D4DDFF8A08037460122C5E91F78C5F84B +:10229000847005F16C001146013605F055FB042EE3 +:1022A00005F13C05F0D1002001F076FA002808DBAA +:1022B000802001F071FA002803DB012384F84C3000 +:1022C000002003B0BDE8F083D6F82880002796F8F8 +:1022D0002430FAB2934202D801352C36CDE708EB10 +:1022E000C20358F83210187901F05AFB0137002860 +:1022F000EDD04FF0FF30E4E7AC02002029230000CE +:10230000E5200000A96800206D210000A920000040 +:1023100029210000C9250000B09D0020DC9D00207F +:10232000A38B2EBAB36B00002DE9F04F9A4D6B6969 +:1023300085B007460E4614468BB997F8008008F022 +:102340001F08B8F1010F00F0A280B8F1020F00F0F1 +:10235000EB80B8F1000F08D06FF0150002E098474D +:102360000028EAD105B0BDE8F08F79787B88226833 +:102370000929F1D801A050F821F000BFA5230000E1 +:102380007524000059230000832400005923000015 +:10239000BF230000C923000059230000F7230000D9 +:1023A0000124000000201070507095F84E308342D8 +:1023B00014BF02230346137002233360D2E7D8B25E +:1023C00001F062F90020CDE71A0A111F0129C3D9D3 +:1023D000072AC1D8296ADBB200200D78002DBBD0B6 +:1023E0004F78974203D1834200F0CE8001302944D8 +:1023F000F3E70B78CDE095F84D3013700123C8E07A +:10240000DCB28DF8074054B1FF272E6AB846337806 +:1024100043B9EB691BB10DF107010320984785F81B +:102420004D40CFE77378042B08D0052B08D0022B42 +:1024300001D196F8058033781E44E8E7F778FAE78B +:102440009DF807304345F6D1002FF4D1F3788DF88D +:102450000C307279337943EA0223ADF80A30B3784D +:102460008DF8083002A801F01FF99DF8080001F06E +:1024700093F9E0E7012B7FF46FAF002085F84E0061 +:1024800070E7012B7FF468AF85F84E309AE77878D3 +:1024900023680A2807D00B280AD000287FF45CAFF5 +:1024A0001870587088E700201870C6F8008059E747 +:1024B00097F804A097F802B02C6AFF27B9464FF0AE +:1024C000000823783BB9EB6913B1414607209847D0 +:1024D0000020306046E76378042B04D0052B0BD036 +:1024E00023781C44EDE7A77894F80390BA45F7D118 +:1024F000CB4508BFA046F3E7BA45F1D1CB45EFD1B4 +:10250000E3788DF80C306279237943EA0223ADF841 +:102510000A30A3788DF8083002A801F0C5F89DF8BC +:10252000080001F039F9DBE7D4F800907C783879BD +:102530008DF80800012C0CD0032C18D0002C7FF44F +:102540000BAF494601F00EF989F80140C6F800804A +:1025500038E77C88002C7FF4FFAE01F0EBF8EB69E4 +:10256000002B3FF42FAF02A9092098472AE77C8867 +:10257000002C7FF4F1AE01F0B7F8EB69002B3FF4CB +:1025800021AF02A90820F0E7022A21607FF431AFD1 +:102590004B88336016E700BFAC02002008B509483D +:1025A0000378C3F3411300EB83035B6A3BB100F193 +:1025B000080200F110019847C043C00F08BD18463B +:1025C000FCE700BFAC02002037B500220B460192A9 +:1025D0000546002852D12D4C39BB0822214604F073 +:1025E0004BFC002804DA802001F07EF803B030BDF7 +:1025F0002278E588C2F3411304EB8303586BA06093 +:1026000010B901F071F8EEE7C4E903550DB1D30933 +:10261000ECD0FFF7C3FF0028E5D02369AB42D4BF5D +:10262000E360E560FFF7CAFDE0E7D4E90212002AA3 +:1026300001AB05DC024604F01FFC0028D6DAD2E725 +:1026400004F01AFC002804DA802001F04DF8284636 +:10265000CAE70199A268E3680A445B1AA260E360D2 +:10266000002BC3D12378C3F3411304EB83035B6BCB +:10267000A360FFF793FF0028D4D1B4E78028B5D139 +:10268000024BDB68002BB1D0CCE700BFAC020020CE +:10269000014600F10803BFF35B8F53E8002F42F0BF +:1026A000010043E8000CBCF1000FF6D1BFF35B8FD3 +:1026B000D30702D4014805F063B87047841700209F +:1026C0002DE9F341324C94F84C600546002E4ED172 +:1026D0003048E06101F078F9002849DB00F03EFF66 +:1026E000002845DB40236846ADF802308DF80460D1 +:1026F0008DF8006000F0D8FF002839DB802768469D +:102700008DF8007000F0D0FF002831DB2249304600 +:1027100001F046F900282BDB1F49384601F040F94B +:10272000002825DB95F82430B34224D80026184D24 +:10273000DFF8688037460122C5E91F78C5F8847044 +:1027400005F16C001146013605F0FEF8042E05F186 +:102750003C05F0D1002001F01FF8002808DB8020A4 +:1027600001F01AF8002803DB012384F84C30002024 +:1027700002B0BDE8F081AB6A03EBC60253F8361035 +:10278000107901F00DF90028F2DB0136CAE700BF2D +:10279000AC020020A9200000C9250000B36B000096 +:1027A00010B5064C94F84C0030B100F017FF00282B +:1027B000A4BF002084F84C0010BD00BFAC02002074 +:1027C0002DE9F04F6B4A6C4B6C499B1A87B09B10FC +:1027D00000264B43044601934FF0011A3746B0469A +:1027E000B146934623783BB9654AA01C904200F05D +:1027F000BE80FFF7E5FF17E06378052B05D8DFE81B +:1028000003F07E04037E077BA14623781C44E9E79E +:10281000E378002BF9D1A378A3B9564A9846019BD7 +:10282000434504D14FF0FF3007B0BDE8F08F536847 +:102830009C4202F12C0208D12C2303FB08B8D8F8E3 +:1028400008302BB90137FFB2DFE708F10108E6E7EE +:10285000394620469847F5E7D8F82820A57802EBB6 +:10286000C3021079854205D0013398F824209342A1 +:10287000F2DBD7E7012594F803C094F805E08DF862 +:1028800014C094F804C04CEA0E2CADF812C094F9B0 +:1028900002C0BCF1000FE8B225DA05F1100C01FA14 +:1028A0000CFC1CEA0A0F23D160F07F008DF81000A9 +:1028B00004A8CDE9023204F0C7FADDE902320121B1 +:1028C000B0B99DF81030A37013F0800F137118BFCA +:1028D00010350B4615BFAB4003FA05F54AEA030A6B +:1028E0004AEA050A91E701FA05FC1CEA0A0FDDD065 +:1028F0000135102DBFD1B7E700230121B5E7032E25 +:102900001DD1FDF7F3FD054660B104F066FB0290B2 +:102910001C4804F062FB029A824203D12946A01CA3 +:1029200004F085FB23786FF00201E218091B04EB29 +:1029300053030020D14213D50136F6B265E7002ECD +:10294000F0D1B9F1000F3FF46DAFA4EB090389F8A2 +:102950000230C3F3072389F8033089F80470EBE7EA +:1029600002F8010C13F8015902F8025DE2E718467B +:102970005AE700BFB09D0020DC9D0020A38B2EBA3B +:10298000AF9D0020CD81000008B50448FFF718FF77 +:102990000028024818BF002008BD00BFD09C0020BE +:1029A00070B504460E4601791048154604F095F9B5 +:1029B000B0B16378212B0ED0222B08D0202B12D15E +:1029C000296807220C3804F032FB002070BD6388B0 +:1029D00000F8053CF9E70C38072328603360F4E77A +:1029E0006FF01200F2E76FF01500EFE7EC03002044 +:1029F00008B50146034804F082F910B1012300F83C +:102A0000033C08BDEC03002010B50C460146074806 +:102A100004F053F948B10A2C07D0032C08BF012356 +:102A200000F8AC4C08BF00F8943C10BDEC0300204B +:102A300007B501228DF807100DF1070104F0C3F965 +:102A40006421034803F05CFA03B05DF804FB00BFA7 +:102A5000F403002010B584680023C4F8B0300C4B98 +:102A6000C4F8AC00596804F1B00269B9C3E90022A6 +:102A700008484FF0FF32002104F066FF064B0020AB +:102A8000C4E90430E06010BD0A605A60F0E700BF9E +:102A9000EC030020F40300204B6D0000014600F120 +:102AA0000803BFF35B8F53E8002F42F0010043E8B7 +:102AB000000CBCF1000FF6D1BFF35B8FD30702D43B +:102AC000014804F05DBE70478417002010B5014630 +:102AD0000B4804F014F9044688B1012300F8943C33 +:102AE000084803F0E7F954F8A83C43B114F8923CC5 +:102AF0002BB1A4F1A000BDE81040FFF7CFBF10BD7F +:102B0000EC030020F403002008B50146094804F056 +:102B1000F6F868B1012300F8933C50F8A83C3BB1AB +:102B200010F8913C23B1BDE80840A038FFF7B6BFCC +:102B300008BD00BFEC03002010B54FF02003EFF3F9 +:102B4000118283F31188BFF36F8F154C237833B94B +:102B500082F31188BFF36F8F6FF0440010BD013B0B +:102B6000DBB2237033B182F31188BFF36F8F6FF044 +:102B70000F00F3E70B4B1878012138B1217082F375 +:102B80001188BFF36F8F6FF00A00E7E7197082F3C7 +:102B90001188BFF36F8F044A11601870DEE700BF21 +:102BA000EB6C0020EA6C002004000040F8B54FF008 +:102BB0002002EFF3118382F31188BFF36F8F294A4C +:102BC0001078441C147080B183F31188BFF36F8FA9 +:102BD0004FF08043D3F80C3403F00113B3F1011F1D +:102BE0000CBF00206FF0430009E01F4D2F783FB16C +:102BF000107083F31188BFF36F8F6FF00A00F8BD78 +:102C000001262E7083F31188BFF36F8F4FF080443D +:102C100019B3384601F088F9C4F80071D4F80433C8 +:102C2000C4F804632660D4F8002192B10022C4F8ED +:102C300000210E4A13F0010F4FF0010308BFC4F842 +:102C400008330020C2F8803101F05EF900232B70B8 +:102C5000BEE720BF40BF20BFE5E7C4F800112660F3 +:102C6000F4E700BFEB6C0020EA6C002000E100E01C +:102C700070B54FF02002EFF3118382F31188BFF398 +:102C80006F8F244D2A789AB183F31188BFF36F8F29 +:102C90004FF08042D2F81C34D2F8182403F003031A +:102CA00043F48033934314BF6FF04300002070BDA2 +:102CB00001242C7083F31188BFF36F8F4FF0804392 +:102CC000154EC3F804210225C3F81815C3F80453A0 +:102CD00011F0030134604FF01806C3F80863C3F81D +:102CE0000C21C3F81021D3D11022C3F83825C3F822 +:102CF0000463D3F81824D20302D4C3F80453C7E7FB +:102D0000C3F80443FFF752FF0028C1D1034BC3F8B7 +:102D10000041BDE7E96C00200800004000E100E050 +:102D20002DE9F0434FF080434F4ED3F80891D3F88C +:102D30000423D3F800E10546D3F80403D3F804C113 +:102D4000D3F80C11D3F81041D6F80080B7680436D8 +:102D5000003C366885B002F0010218BF0124B9F1C9 +:102D6000000F03D04FF00009C3F80891BEF1000F27 +:102D70006BD04FF080434FF0000EC3F800E15AB122 +:102D80004FF08043DFF8E4E001224FF00209C3F87E +:102D90000823CEF800901A61BCF1000F43D161B155 +:102DA000324B4FF08049002119602846C9F80C11B8 +:102DB000FFF7C2FE0123C9F8143074B14FF080430D +:102DC00000210124C3F810112846C3F80443FFF77B +:102DD000EDFE10B9264BC3F80041B8F1000F09D041 +:102DE000214B00221A601B6801934FF48E70019BE7 +:102DF00000F092FB4FB11F4B00221A601B68029338 +:102E00004FF49270029B00F087FB56B31A4B0022DE +:102E10001A601B680393039B4FF4907005B0BDE8E4 +:102E2000F04300F079BB4FF080430022C3F8042147 +:102E30008207B4D50222C3F80823D3F81C349B07B9 +:102E4000ADD10029BAD00124AAE7002AA4D04FF0BE +:102E50008043D3F80C3403F00113B3F1011F9BD16D +:102E60008EE705B0BDE8F0831C010040340C004043 +:102E700000E100E02401004020010040014601483B +:102E800004F07EBCC09C0020010600F00F0300F09F +:102E9000080206D56AB90948242202FB030028303B +:102EA000704742B903F10900044B242202FB0030B1 +:102EB000F5E7034870470348704700BF64130020DC +:102EC000AC140020F015002038B504460F4802F07D +:102ED0007DFAB0B10E4D297844B181B943681B68C1 +:102EE000984758B110F1440F08D038BD61B143681C +:102EF00021465B68984710F1100FF2D12C7000202A +:102F0000F3E76FF01200F0E70846EEE7F881000003 +:102F1000EC6C00200949BFF35B8F51E8003F43F0A0 +:102F2000010241E800200028F7D1BFF35B8FDB07E7 +:102F300003D40348083904F023BC704774130020FD +:102F40008417002010B5054C0021204602F098FCA3 +:102F500018B1043004F078FBF6E710BDC09C0020E7 +:102F600013B56C46144800231822214602F03CFB9E +:102F7000002818DAFFF7E6FF0F4800231822214641 +:102F800002F032FB00280CDB009B94E803001A1DC2 +:102F900082E8030004221A751846FFF76FFFFFF757 +:102FA000B9FF002305E094E80300009B1A1D82E8A6 +:102FB0000300184602B010BD909C0020F8B5877839 +:102FC00006463846FFF760FF3B06F578044613D502 +:102FD000002D45D1FFF7C4FF0346002840D0012251 +:102FE00084F82250027503220274DC60FFF746FF6A +:102FF000BDE8F840FFF78EBF55B1012D30D1FFF786 +:10300000AFFF034660B384F8215005750574ECE703 +:10301000FFF7A6FF20B3B378124A13F0800F03F036 +:10302000080111D041B1D2F8A836E360012303753D +:1030300002230374C460D9E703F00F03142101FBDA +:103040000323D3F80836F0E711B1D2F8A837ECE73C +:1030500003F00F03142101FB0323D3F80837E4E73F +:10306000F8BD00BF00700240F0B5064689B01822D6 +:10307000002102A804F006F83378013B052B24D880 +:10308000DFE803F07B0317236B1903238DF814305B +:103090000024FFF765FF0346B8B100228DF8182021 +:1030A000047500F10C02DDE9050182E80300184611 +:1030B0001EE00423EAE7B7783846FFF7E5FE837A97 +:1030C000044623B1013B022B43D909B0F0BD3B06B6 +:1030D000F57812D5002DF8D1FFF742FF03460028FE +:1030E000F3D0012284F82250027503220274DC60BE +:1030F000FFF7C4FEFFF70EFFE7E75DB1012DE4D156 +:10310000FFF72EFF03460028DFD084F82150057515 +:103110000574ECE7FFF724FF07460028D5D001230C +:10312000037502230374C46004F10C01B07803F04A +:103130000EFD134AE168B2F8B0328B4206D95B1A31 +:10314000A2F8B03203F01AFD3846D1E7A2F8B05227 +:10315000FAE73046FFF732FFB7E76846FEF7A2FC12 +:103160009DF80130052B04D19DF8003013F0600F5D +:10317000ABD0044B059301248BE7022489E700BF01 +:1031800064130020D0140020F8B500253D4F2E46D2 +:1031900065F07F00C0B2FFF777FE03690446002B9D +:1031A00051D02369E660C4E9063301231D44082D8C +:1031B00084F8203084F8216084F82260E8D100256A +:1031C000304F2E46E8B2FFF75FFE03690446002B3E +:1031D00044D02369E660C4E9063301231D44082D69 +:1031E00084F8203084F8216084F82260EAD1264CEB +:1031F000D4F85831DBB3D4F858310122C4E958333C +:10320000002384F86821C4F8543184F8693184F8C3 +:103210006A31D4F89C323BB91C491A484FF4806299 +:1032200002F0E2F9002816DBD4F89C320020C4E951 +:10323000A933012384F8AC32C4F8980284F8AD02B3 +:1032400084F8AE0209E000F110014022384602F095 +:10325000CBF90028A5DA6FF00B00F8BD00F11001E2 +:103260004022384602F0C0F90028B2DAF3E70548F8 +:103270004FF4806204F5AC7102F0B6F90028BADAB6 +:10328000E9E700BF749C00206413002000160020B2 +:103290002DE9F043DFF87C929A4D85B080460021FD +:1032A000484602F0EDFA064610B905B0BDE8F083D5 +:1032B0006B79327D5BB9002AF1D1327B042A52D876 +:1032C000DFE812F0CD008F009900DB00E700042A50 +:1032D00049D801A151F822F0BB320000ED320000C4 +:1032E000A9340000D1340000E1340000337CF468DC +:1032F000032B38D8DFE803F0023F5E63A76908229A +:103300000021384603F0BEFE7F4BD3F880243A708C +:10331000D3F884247A70D3F88824D3F88C1442EA42 +:1033200001227A80D3F89024D3F8941442EA01223F +:10333000BA80D3F89824D3F89C3442EA0323FB8064 +:103340000823E360607A23680021984797F90030EA +:10335000002B0CDBFA8852B1B5F8B0329B1AA5F8F5 +:10336000B03203F00BFC301D04F06EF997E7002338 +:10337000A5F8B032F7E794F82130002BF3D094F899 +:103380002030002BEFD0002784F821704FF0FF3160 +:1033900084F820705D4802F0C3F9A3690193636863 +:1033A000CDE9023701A9607AFEF7DAFA574802F050 +:1033B00027FAD8E723680121607A9847D3E7A37AF0 +:1033C00063B994F823304BB94FF0FF314F4802F006 +:1033D000A7F903F0E8FB4D4802F012FA2368022136 +:1033E000EAE7FEF771FA0028BDD1FEF791F9012056 +:1033F000FFF76AFDB7E7002464F07F00C0B2FFF773 +:1034000043FD037A13B1407AFEF7DCFD0134082C4A +:10341000F2D195F850311BB195F85101FEF7D2FD6C +:103420000024E0B2FFF730FD037A13B1407AFEF7D3 +:10343000C9FD0134082CF4D195F894321BB195F8EC +:103440009502FEF7BFFD0120FEF718FA01236B710C +:103450002B68002B87D000210220984783E70024A7 +:103460006C71FEF769FD2046FFF72EFD2B68002BDF +:103470003FF479AF21460420EFE7002B3FF473AF10 +:10348000FEF774FD2B68002B3FF46DAF0021052083 +:10349000E3E72A68002A3FF466AF002B3FF463AFEE +:1034A0000021062090475EE708F10C044FF0FF3141 +:1034B000204602F035F9FFF767FE204602F0A0F93A +:1034C00058F8083C002B3FF44EAF00210120C4E720 +:1034D00058F8083C002B3FF446AF00210A20BCE717 +:1034E000002003F0A4FCFEF727FDFEF707F9FFF725 +:1034F00029FDFFF749FE012003F099FC0448FEF77F +:10350000EDF930E7641300200070024078130020CA +:1035100069300000C09C0020B0F5907F10B515D038 +:10352000B0F5927F14D0B0F58E7F13D10124FFF750 +:1035300017FD78B1002202750473FFF79FFC064B5C +:103540001B793BB1BDE81040FFF7E4BC0024EEE777 +:103550000224ECE710BD00BF6413002038B51A4DFB +:103560002C7964BB194BAC6005F11400C5E9033438 +:1035700004F086F822460121272000F0F7FC1448C9 +:10358000FEF7ACF9134B98421BD1012003F04FFC1E +:10359000FFF7FAFD044608B901232B710E4B1B6897 +:1035A0000BB1FFF7B7FC4FF08043D3F83834DB079B +:1035B00003D54FF48E70FFF7AFFF204638BD0024CF +:1035C000FBE76FF00404F8E7641300209132000079 +:1035D000693000000000AD0BC09C002038B54FF0F2 +:1035E000FF31274802F09CF8FFF7ACFC002464F0A0 +:1035F0007F00C0B2FFF748FC0546103004F024F805 +:10360000013424220021284603F03CFD082CEED191 +:103610000024E0B2FFF738FC0546103004F014F83F +:10362000013424220021284603F02CFD082CF0D17F +:10363000144C04F5AC7004F007F82422002104F5C2 +:10364000A47003F01FFD04F5277003F0FDFF242292 +:10365000002104F5237003F015FDFEF76DFCFEF765 +:103660004DF80020FFF730FC002003F0E0FB0025C0 +:1036700004F11400257102F0C3F8284638BD00BFDC +:103680007813002064130020064B1A7932B15B795D +:10369000002B0CBF6FF01200002070476FF012007B +:1036A000704700BF6413002038B50E4B1B790446E9 +:1036B000A3B105782846FFF7E7FB18B96FF01504AA +:1036C000204638BD457223798372618841604C1E63 +:1036D0000C40F3D1284603F035FAF1E76FF01204FD +:1036E000EEE700BF6413002038B5114B1A79054688 +:1036F000C2B15B79B3B1FFF7C7FB0446A8B1837AC7 +:10370000012B12D007D9023B012B07D9A369E36132 +:103710000020E06038BD03F049FAF7E72846FEF7DD +:103720009BF9F3E76FF01200F4E76FF01500F1E793 +:10373000641300200A4B1A7910B504464AB15B792C +:103740003BB1FFF7A1FB38B12046FEF791FC00200A +:1037500010BD6FF01200FBE76FF01500F8E700BF37 +:103760006413002038B50B4B1A7905460C4652B14C +:103770005B7943B1FFF788FB40B12846FEF778F943 +:103780002070002038BD6FF01200FBE76FF01500CD +:10379000F8E700BF6413002070B50D4E337904467E +:1037A0006BB1FFF771FB68B1057A75B9012303723C +:1037B000707918B12046FEF705FC284670BD6FF001 +:1037C0001200FBE76FF01500F8E76FF04400F5E733 +:1037D000641300202DE9FF47DFF8C8801F4698F8E2 +:1037E0000430064689461446002B50D098F805A0B0 +:1037F000BAF1000F4BD003064CD5FFF745FB054649 +:10380000002847D04FF0FF3108F1140001F088FF85 +:1038100095F8222002F0FF034AB108F1140001F0EC +:10382000EFFF6FF00A04204604B0BDE8F0876A6835 +:10383000A869A2423CBF1446534685F8233022466D +:10384000494603F0F4FBEC6007B13C60AC7A4CB93C +:10385000FEF772F9B04205D003F0A5F90F4801F068 +:10386000CFFFE0E7012385F82230AB690193002404 +:10387000EB68029301A930460394FEF771F8084BF8 +:1038800098421CBF85F822406FF00404E6E76FF011 +:103890001204C8E76FF01504C5E700BF78130020D5 +:1038A0000000AD0B641300202DE9F0411D461D4BB7 +:1038B00017461A790E4672B35B7963B303062DD4AB +:1038C00001B95FBBFFF7E0FA044638B316484FF082 +:1038D000FF3101F025FFE368BB42984628BFB84698 +:1038E00046B93FB905B12B600F4801F089FF0020B0 +:1038F000BDE8F081E1694246304603F098FBE36998 +:103900004344E361E368A3EB0803E360002DEBD0DD +:10391000C5F80080E8E76FF01200E9E76FF01500E6 +:10392000E6E700BF641300207813002038B51A4D75 +:103930002A79034632B36A7922B31B0625D4FFF7EE +:10394000A3FA044608B34FF0FF3105F1140001F06B +:10395000E7FEE3688BB90125A36984F82050E36191 +:1039600094F821304BB1FFF7FBFA88B10575C460BC +:103970000574FFF783FAFFF7CDFA084801F040FF1E +:10398000002038BD6FF01200FBE76FF01500F8E77C +:103990006FF00B00F5E700BF6413002078130020E0 +:1039A000084B1B7910B50C462BB1FFF76DFA28B107 +:1039B0000460002010BD6FF01200FBE76FF01500EF +:1039C000F8E700BF64130020014B18600020704727 +:1039D0006413002008B5074B1B7923B1FFF754FA95 +:1039E00020B1406808BD6FF01200FBE76FF01500D2 +:1039F000F8E700BF64130020104B002210B4C3F896 +:103A000040214FF02002EFF3118482F31188BFF3BD +:103A10006F8F0B4AD3F80405116840F24713401A20 +:103A200020F07F40B0FBF3F003FB0013136084F33E +:103A30001188BFF36F8F10BC02F02ABC0010014048 +:103A40001816002037B51F4801F0C0FC002835D0FB +:103A500043681D4D1B6801219847002440F247131D +:103A6000C5F80845C5F840354FF48033C5F84433F0 +:103A7000C5F8043303F1804303F58A534FF4003251 +:103A80001C601B680193019B104B0121C3F880212E +:103A90001120224600F06AFA112000F035FA0C4A93 +:103AA000012313602B60D5F8043503F2471323F08C +:103AB0007F43C5F84035204603B030BD4FF0FF309E +:103AC000FAE700BFEE8100000010014000E100E0D5 +:103AD000081001404CF6690270B5B0F1FF3F08BF15 +:103AE00010464FF02003EFF3118483F31188BFF3E6 +:103AF0006F8F144D14492E68D1F804350138904267 +:103B0000A8BF10469A1B22F07F4240F2471520EAD8 +:103B1000E07002F5A37205FB0020B0FBF5F005FB99 +:103B20000060C31A23F07F4323F01F0303B9284426 +:103B300020F07F40C1F8400584F31188BFF36F8FF8 +:103B400070BD00BF18160020001001404FF0200289 +:103B5000EFF3118382F31188BFF36F8F084AD2F815 +:103B60000405084A1268801A20F07F4040F247128C +:103B7000B0FBF2F083F31188BFF36F8F704700BF83 +:103B8000001001401816002004488168006A88422D +:103B900003D003494FF080520A6070474C17002051 +:103BA00004ED00E0044800232021C2180133302B2B +:103BB00082F80013F9D1704700E100E0094A0A4990 +:103BC000936809689966094958664B6843F08053C1 +:103BD0004B60002383F31188BFF36F8F9368986E57 +:103BE000704700BF4C170020E87E000000ED00E0A9 +:103BF000202080F31188BFF36F8F11498A684FF03E +:103C000028001044EFF3098C80E8F01F0D4F4FF0AF +:103C100000660A6A8A603E60506E0023536680F335 +:103C2000118804B50648806803F048F9BDE80440EF +:103C300002F1280090E8F01F8CF30988704700001B +:103C40004C17002004ED00E01EF0040F0CBFEFF352 +:103C50000880EFF30980816931F8021C11F0FF013F +:103C60000229FFD001B503F01AF901BD38B51C4C8B +:103C700005461C4802F0D0FDA26AD10602D51A48BA +:103C800002F0CAFDA36A1A0702D5184802F0C4FD63 +:103C9000134CA36A9B070ED5154802F0BDFD616B5E +:103CA000A36A180607D5134802F0B6FD1DB1A36A32 +:103CB00023F08003A3620A4CA26AD20702D50E4801 +:103CC00002F0AAFDA36A9B0602D50C4802F0A4FDEF +:103CD000034B9A6A9A6A42F0FF029A62002038BD4A +:103CE00000ED00E00C8200002382000057820000FB +:103CF0006B820000848200009B820000BB82000077 +:103D000038B51E4C05461E4802F086FDA26AD10455 +:103D100002D51C4802F080FDA36A1A0502D51A4894 +:103D200002F07AFD154CA36A9B050ED5174802F0E8 +:103D300073FDA16BA36A180407D5154802F06CFD4A +:103D40001DB1A36A23F40043A3620C4CA36A590576 +:103D500002D5104802F060FDA36ADA0509D50E48C5 +:103D600002F05AFD054A936A43F47F4393620020B0 +:103D700038BDA36A9B04F5D50848F1E700ED00E0E3 +:103D8000EB820000028300005782000014830000D1 +:103D90002E8300004483000060830000BB8200008B +:103DA00010B5194C194802F037FDA26A930102D5EB +:103DB000174802F031FDA36ADC0102D5154802F074 +:103DC0002BFD114CA26A100302D5134802F024FD0A +:103DD000A36A590302D5114802F01EFD0A4CA26ADB +:103DE000920302D50E4802F017FDA36ADB0302D549 +:103DF0000C4802F011FD044A936A6FEA03436FEA2C +:103E000013439362002010BD00ED00E079830000B1 +:103E100092830000A6830000C1830000E0830000BD +:103E2000068400002184000070B5284D6B68C3F340 +:103E30000802D11E064609293BD8DFE801F0053407 +:103E400036293A3A3A3A3A38214802F0E5FCEC6A27 +:103E500014F0020404D01F4802F0DEFC00241CE031 +:103E6000EB6A5B0019D51C4802F0D6FC1B4B1B7893 +:103E70001BB10120FFF7FAFE0CE0194B1B781BB1B8 +:103E80000120FFF73DFF05E0164B1B889BB223B1D5 +:103E9000FFF786FF0628044617D031462046BDE8C6 +:103EA000704000F0C5B80020E4E70020E9E70E48C4 +:103EB000D2E713F4F87F0D4B0D490E48A2F1100222 +:103EC00018BF194602F0A8FCC8E770BD00ED00E07D +:103ED0007B84000093840000B584000028ED00E09E +:103EE00029ED00E02AED00E0D584000062840000A6 +:103EF0004D8400000C850000024A536943F0100312 +:103F00005361704700ED00E043B2002B08DB012253 +:103F100000F01F0002FA00F05B09024A42F8230099 +:103F2000704700BF00E100E043B2002B0DDB01222F +:103F30005B0900F01F0002FA00F02033034A42F848 +:103F40002300BFF34F8FBFF36F8F704700E100E096 +:103F5000054B420900F01F0053F82220012303FA09 +:103F600000F01040704700BF00E100E043B2002BBA +:103F7000A8BF03F1604301F10101B8BF064B4FEA4E +:103F80004111ACBF03F5614300F00F00C9B2B4BFEB +:103F9000195483F80013704714ED00E02DE9F04147 +:103FA0008C180F4616460999984604220A9B054626 +:103FB00003F0F8FC0D4BA4F1200222F007020021CF +:103FC00023F00103C5E91311C5E916769361069B39 +:103FD0005360079B9360089BD3604FF08073C2F8D7 +:103FE0000080D361AA646966BDE8F081A76700001C +:103FF000014910220A60704710ED00E0404080F354 +:10400000118830BF704700BF404080F31188DFF84F +:104010001CC0DCF800C01CF4006C0CBFEFF308807F +:10402000EFF3098001B5FFF7FFFE01BD04ED00E0ED +:1040300038B504460D4605281AD8DFE800F0031904 +:10404000191315170D4802F0E7FB01F02DFFAA69BF +:1040500001460B4802F0E0FB29462046BDE8384007 +:1040600000F018B80748EEE70748ECE70748EAE72A +:104070000146074802F0D0FBE7E700BF20850000BB +:10408000BE85000040850000668500008085000038 +:104090009B850000052810B50CD001F06BFF60B1C6 +:1040A00001F068FF0C4A0D49002818BF11460C4862 +:1040B00002F0B2FBFFF7A2FFFCE701F06BFF002864 +:1040C000EED1084C0848A16802F0A6FBA068BDE844 +:1040D000104000F00BB800BFFA850000FE8500001C +:1040E0000F8600004C1700202F86000038B50446CC +:1040F0004FF02003EFF3118583F31188BFF36F8F27 +:1041000003F031FC0A4B9B68A3420BD1094B5A6860 +:10411000C2F3080212B92846FFF750FD5A6842F070 +:1041200080525A602846BDE8384003F05EBB00BFAD +:104130004C17002000ED00E001B5EFF30580A0F181 +:1041400010004FEAC0000449014409C99847BDE87E +:104150000140024800470000707A0000893B0000DF +:1041600002F0A1FE00F004F830BFFFF7FDBF00BF72 +:1041700008B50E4B83F30988EFF3148343F0020371 +:1041800083F31488BFF36F8F094B0A4A23F07F0330 +:104190009360BFF34F8FBFF36F8F01F043F901F0CE +:1041A0004BF9FFF7FFFC01F075F900BF50960020B6 +:1041B0000000000000ED00E01FB5084B0193084B24 +:1041C0000293084B039301AB0093074A074B01216D +:1041D000684600F093F805B05DF804FB000000208D +:1041E0000000000000000B0600000020000004207A +:1041F000DFF884C0F0B50646002710468F4200DB8A +:10420000F0BD56F827E0DEF8044094B343B1651ED4 +:104210002C4219D11F2C17D9DEF80020154213D1DA +:10422000202CC2B2DEF80050DEF808000FD9B4F13D +:10423000004F0ED8013CB4FA84F4C4F11F046400AA +:10424000072A44EA000406D96FF01500D8E70824CD +:10425000F6E73E24F4E725F01F05154345F0100569 +:1042600044F00104CCF80820501CCCF80C50CCF8D9 +:1042700010400137C2E700BF90ED00E0034B05227C +:104280005A60BFF34F8FBFF36F8F704790ED00E020 +:10429000BFF35F8F014B00225A60704790ED00E042 +:1042A00013490868082810B51ED8FFF7F1FF114C14 +:1042B00049680022904201F10C0105D10E4B1870A3 +:1042C000FFF7DCFF002010BDA26051F80C3C23F08A +:1042D0001F03134343F01003E36051F8043C43F021 +:1042E000010323610132E5E74FF0FF30EBE700BF48 +:1042F000BC7C000090ED00E0ED6C002010B5034C9C +:1043000001232278FFF774FF207010BDED6C0020B0 +:1043100008B5084A00231278FFF76AFF10F1160F5C +:1043200003D0054B0022072800DD08BD98601A6104 +:104330000130F8E7ED6C002090ED00E02DE9F04F42 +:10434000CDB0CDE90C019A4693460023049303E0D7 +:10435000049B01330493AB465D4615F8010B48B14D +:1043600025286BD0DDE90C3198470130F0D14FF0B2 +:10437000FF33049304984DB0BDE8F08F2B2C51D03F +:1043800048D8202C51D0232C52D0002CF2D05D469E +:10439000AB46B4481BF8014B214602F010FE002842 +:1043A000ECD12A2C52D15AF8043B0193002BBEBF0A +:1043B0005B42019301239BF80040B8BF0B9305F1CA +:1043C000020B019BC92B28BFC82301932E2C62D15D +:1043D0009BF800302A2B5BD15AF8045B0BF1010BE0 +:1043E000C92D1BF8014BA8BF4FF0FF359E48214651 +:1043F00002F0E5FD08B11BF8014B782C00F36C834B +:10440000572C4BDC252C00F0368300F39180002CD8 +:10441000B0D0A1E72D2C0ED0302C009B08BF30234C +:104420000093B4E701230A93B1E701230593AEE7B4 +:104430004FF00109ABE701230B93A8E7202300937A +:104440000023CDE90A3305939946A1E7A4F130038F +:10445000092B0190BAD80A22AB461BF8010BA0F138 +:104460003003092B0446ACD8019B02FB0300A0F1EA +:10447000300301935D46EFE700FB0535303D934681 +:104480005A4612F8013BA3F130010929F4D9A7E7F4 +:1044900000250A20F4E74FF0FF35A7E7A4F1580301 +:1044A000202B3FF659AF01A252F823F0234A000017 +:1044B000594300005943000059430000594300008C +:1044C000594300005943000059430000594300007C +:1044D0005943000059430000CF450000E545000066 +:1044E0003B4500003B4500003B45000059430000B0 +:1044F000E5450000594300005943000059430000BE +:10450000594300004749000051490000BD490000DF +:104510005943000059430000D949000059430000A5 +:10452000134A00005943000059430000234A000089 +:10453000A4F14503022B3FF60FAF0AF1070A2AF058 +:1045400007039A4659685AF8080BCB0243EA5053BE +:10455000C20223F0004306920793DDE90623C1F36C +:104560000A58CDE914230B4640F2FF7188450246F4 +:104570007CD10028DDE9061273F10003BBBF2D23B7 +:104580008DF8643019AB0DF165030A43A4F14104C1 +:1045900003F103005BD1192C53D849221A704E2223 +:1045A0005A7046229A700022DA7019ABC01A0A9B20 +:1045B000059A53EA020705D19DF86470A7F12D030F +:1045C0005F425F41C8283FF7D2AE8146D1E15AF839 +:1045D000043B8DF8643000238DF865304FF00109FD +:1045E0000027C6E15AF8044B002C1CDA2D23B4F145 +:1045F000004F8DF864301BD061420DF165062B46EB +:104600000A22304602F061FD19AB3044059AC01A07 +:104610000A9B53EA020700D1E70F0135009B18BF40 +:1046200020230093CEE70A9B23B12B238DF864301F +:104630002146E2E7059B0BB12023F7E7214619AE9F +:10464000DDE769221A706E225A706622AAE7192CD9 +:1046500099BF4E2241216E22612194BF1A701A70B7 +:1046600059709FE7548600005A8600000699079EFD +:1046700048EA010140460E91C11731430F91DDE92F +:104680000E01462C08BF6624014338D00698002A44 +:1046900046F0004173F10003CDE91401A8F2FE38A1 +:1046A0002FDA2D238DF864300DF16507002618F1FF +:1046B000020F33DBB8F1000F6BDC14A808F101081E +:1046C00002F02CFDB8F1040FF7D1002D24F02003E7 +:1046D000B8BF0625472B40F08480B9F1000F7ED18A +:1046E0002B1E18BF0123F21C029302DB6B1C9E429F +:1046F0007BDD672C0CBF652445246B1C79E04FF0F3 +:1047000000080A9B0BB12B23CCE7059B0BB12023A0 +:10471000C8E719AFCAE714A802F000FDDDE9142CC0 +:104720000023CDF820C00993DDE90801002908BF66 +:10473000B0F1333F08F10108EDD20520A2FB0023C0 +:10474000CDE90223039B00FB0C330393DDE9022335 +:10475000CDE91423013E4FF0000C03980021002303 +:104760006FF000428B4208BF824207D2BCF1000FBB +:104770009DD0DDE90223CDE9142398E7029BDB18E5 +:104780000293039B5B41039308F1FF384FF0010C48 +:10479000E3E714A802F0D4FC149BDDF854E0029384 +:1047A00008F1FF3801364FF0000C002300216FF0B4 +:1047B0000040994208BF704507D2BCF1000F3FF49A +:1047C00079AF029BCDE9143E74E7029BDB1802939C +:1047D0004EEB0E0E08F1FF384FF0010CE5E7002319 +:1047E00081E70023662C029387D173194FF066048A +:1047F00043D4102BA8BF1023984600204FF000612F +:10480000CDE9160110221392B8F1010838D2149B99 +:10481000169A17999B18159A41EB0202CDE91432AA +:1048200002F07043109300231193DDE9102313432A +:1048300006D014A802F084FC14A802F06FFC013624 +:10484000662C07F1010837D1002E20DD07EB0608A2 +:1048500013A914A802F09DFC07F8010BB845F7D185 +:10486000002659EA050905D043462E2203F8012BFC +:10487000A9469846C144302512E04FF00008BCE735 +:1048800016A802F05DFC16A802F048FCBCE7302236 +:104890003A70E6E708F101083EB108F8015C01361C +:1048A000C145F7D1029B23BB46E013A914A802F02F +:1048B00070FC08F8010CF3E713A914A802F069FCD6 +:1048C000302818BF06F1FF3659EA0509387004D0C0 +:1048D0002E2207F102087A70A946C14405E013A907 +:1048E00014A802F056FC08F8010BC145F7D1029B51 +:1048F0003BB1414618F8012D302AFAD02E2A18BFB4 +:10490000884624F02002452A16D1002EBABF7642EE +:104910002D222B220A2188F8012096FBF1F201FBBF +:10492000126602F13000303688F8004088F8020044 +:1049300088F8036008F10408002219A888F800200C +:10494000A8EB000033E65AF8043B049A1A6003E52A +:104950005AF8041BB9F1000F22D030238DF86430CF +:1049600049BB0135009B8DF8651018BF20230F4609 +:104970000093019B4B4540F3AC800B9B19AD002B82 +:1049800000F083802023019A05F8093009F101091C +:104990004A45F8D1019B049A134419AC1D4694E092 +:1049A00019AC2B462046082202F08FFB19ABE41A03 +:1049B0002044002731E60DF16504F2E747F63003A5 +:1049C000ADF864305AF8041B082310220DF166007C +:1049D00002F07BFB0230ECE75AF8041B4FF00009B1 +:1049E00011F809303BB109F10109B9F1C80FF7D14C +:1049F000002D02DA08E0002D02DBA945A8BFA94678 +:104A0000B9F1000F3FF4A8AC4A4619A802F00FFB19 +:104A1000E6E55AF8041B2B460A2219A802F055FBBA +:104A2000C7E75AF8041BB9F1000F1AD047F6300354 +:104A3000ADF864300DF166062B461022304602F0C8 +:104A400044FB582C03D119A911F8012B5AB919AA02 +:104A5000B9F1000FA6EB0206304414BF022700276D +:104A6000DBE519AEE8E7A2F16103192B9CBF203A00 +:104A700001F8012CE8E70D990C9B2046984701307E +:104A80003FF475AC049B013360E4019BA3EB090484 +:104A9000281909F10102294602F0B2FA009B202BE5 +:104AA00008BF00273C44A742BFF674AF009B7B556C +:104AB0000137F8E70D9914F8010B0C9B984701306A +:104AC0003FF455AC049B01330493049BAB42F1D1FA +:104AD00042E4CDF804905DE7C82C7FF73DAC46E496 +:104AE0000EB40FB505AB6FF0004153F8042B0290E4 +:104AF00003910648019302A9FFF720FC029B0022C4 +:104B00001A7004B05DF804EB03B07047C171000087 +:104B100008B5094B1A786AB90121197006200521D8 +:104B2000FFF724FA0620FFF7EFF9044B4FF000429D +:104B3000C3F80423002008BDEE6C00200060004094 +:104B40001F288ABF094B4FF0A04300F01F0003EB62 +:104B50008000D0F8003723F44033C0F80037D0F895 +:104B6000003743EA0141C0F80017704700030050C6 +:104B7000F7B5036886689B6801F01F040D464D4930 +:104B80001879D1F8042344EA4014D2B2002303F583 +:104B9000A27051F82000C0F30520844270D122FA9F +:104BA00003F0C0076CD59A0002F1804202F5C042C2 +:104BB000D2F8100520F00100C2F81005012202FA17 +:104BC00003F3C1F8083320460021FFF7B9FFB368AB +:104BD000EB4013F0010051D0F368EB4013F00100FB +:104BE0004CD07369EB4013F0010255D0B369EB4030 +:104BF000DB0749D43369F169EB4021FA05F503F08D +:104C0000010305F00105AB4214BF01250225294F20 +:104C1000002606F5A27357F8230010F0030035D1E3 +:104C2000B20002F1804202F5C0422402D2F810150F +:104C300021F44F3121F44071C2F81015D2F810154B +:104C400004F47C5444EA05450D4306F14001890013 +:104C500089B201F1804101F5C041C2F810550860E8 +:104C6000096801910199D2F8101541F00101C2F8CB +:104C70001015012202FA06F6C7F8046303B0F0BD6E +:104C80000133082B83D19EE70325C0E70136082EA8 +:104C9000BFD16FF01200F1E73169F3695940E94083 +:104CA00001F00101C1F103012046C9B2FFF748FF3D +:104CB0001046E3E7006000402DE9F84F03F470442C +:104CC000B4F5A04F866880461F463ED00FDCB4F591 +:104CD000405F3CD006DCA4B1B4F5805F39D06FF002 +:104CE000150030E0B4F5804FF9D1022409E0B4F5A5 +:104CF000404F30D0B4F5504F2FD0B4F5E04FEED147 +:104D0000052407F44070B0F5807F28D0A0F5007529 +:104D10006842684107F0010C4FEA4C03012943EA5D +:104D20000C0318BFD5B243EA0424DFF8B0A012BFC9 +:104D3000A9464FF01F09002544EA80044FF0010BFB +:104D4000A9450ED20020BDE8F88F0324D9E704243A +:104D5000D7E70124D5E70624D3E70724D1E70320CA +:104D6000D8E7D8F800309B681A7905F01F0343EAAA +:104D700042131F2BC6BF03F01F0352464FF0A04241 +:104D800003F5E073B90742F82340B2680BFA05F364 +:104D90004CBF1A439A43B2607269B8064CBF1A43BB +:104DA0009A437261B26979064CBF1A439A43B26161 +:104DB000326978074CBF1A439A433261F269390667 +:104DC0004CBF134322EA0303F36129464046FFF731 +:104DD000CFFE0028B7D10135EDB2B1E70003005096 +:104DE000F0B5002685B0CDE902662B4D2C68012C6C +:104DF0000BD12A4802F065FA0290294802F061FAC4 +:104E000003902E602B680093009B264E0023012701 +:104E10009C46D6F8042307FA03F111421ED09A00EB +:104E200002F1804202F5C2421168012916D103F550 +:104E3000A2700DF1100E56F82050C2F800C0C5F354 +:104E400040300EEB8000C5F3042512680192A940A2 +:104E500050F8085C019A294340F8081C0133082BDC +:104E6000D7D1029A1AB10D49886802F0B6F9039AAF +:104E70002AB10A4B586903F10C0102F0AEF9012C7A +:104E800008D1064802F046FA054805B0BDE8F040F2 +:104E900002F040BA05B0F0BD7C610040FC9B0020F0 +:104EA000089C00200060004002480021C2E9000187 +:104EB000002070470024F40008B5036898680022B9 +:104EC00000F10801FCF71AF8034B984214BF6FF089 +:104ED0000F00002008BD00BF0000AD0B2DE9F0471A +:104EE000994603688468D3F8088015460E4608F191 +:104EF0000702002712F8013FFF2B03D023F08003A5 +:104F00009E422FD00137FFB2042FF3D16FF015006E +:104F1000BDE8F087B5F5004F18D3002325FA03F25A +:104F2000B2F5004FD9B20DD2A173A281256098F8D5 +:104F30000E20A389A17BCAF80C15CAF80425CAF86B +:104F4000083519E00133082BE8D1DFE70123A3730B +:104F5000A581EBE70223012208F114014046FCF78A +:104F600069F840E04046D8F800A0FCF7A1F8002816 +:104F7000D0D123689D42C9D14D45C7D304EB470129 +:104F8000A27B8B8823F4FF4323F07F0329FA02F2EC +:104F900013438B80B9F1000F01D04D4512D1474426 +:104FA00097F90830B9F1000F2ED1F5B91F2E86BF41 +:104FB000184B06F01F064FF0A043012101FA06F638 +:104FC000C3F80C65221D04F10C0132F8023BC3F357 +:104FD0000E0313B1A0899842BCD89142F5D10021AB +:104FE000404601F008FD002092E7002BDEDA1F2E7C +:104FF00086BF084B06F01F064FF0A043012101FABF +:1050000006F6C3F80865DDE74D45F0D1002BCDDB92 +:10501000EDE700BF00030050024AD2F80034002B35 +:10502000FBD0704700E00140024B0B60012313608E +:10503000704700BF5C160020012208B511460648E3 +:1050400002F082FC4FF08052044B516919601269E2 +:105050005A60002008BD00BF641600205C160020C6 +:10506000F8B50D464FF08057114628463E69144664 +:1050700002F0B8F948B3B5FBF6F306FB135323BBB4 +:10508000B4FBF6F006FB1040F8B9A6421CD84FF06E +:10509000FF310F4800F034FF0E490223D1F80465B8 +:1050A0003869C1F80435FFF7B7FFC1F80855FFF7B5 +:1050B000B3FF241A0544F8D1C1F80465FFF7ACFF2B +:1050C000034800F0F7FE2046F8BD6FF01500FBE73F +:1050D0006416002000E0014010B50A480C464FF06D +:1050E000FF3100F00DFF084B4CB10022C3F804253E +:1050F000FFF792FF034800F0DDFE002010BD012203 +:10510000F4E700BF6416002000E001402DE9F34100 +:105110000D462846194616461C4602F063F900283B +:1051200045D0002C46D024484FF0FF3100F0E8FE77 +:1051300015F0030017D025F00308C0F10407A742BB +:10514000D8F80030019328BF274601AB31461844F8 +:105150003A4601F06CFFFFF75FFF019BC8F8003093 +:105160003D443E44E41B24F00301002704E0FFF724 +:1051700053FFF359EB5104378F42F8D1A2086FF077 +:10518000030303FB0242F11942B1EB59019301A859 +:1051900001F04DFFFFF740FF019BEB51FFF73CFF94 +:1051A000054800F087FE002002B0BDE8F0816FF0F6 +:1051B0001500F9E72046F7E76416002070B54B7933 +:1051C000012B25D18B79032B22D1CC792CB1012C49 +:1051D0001ED103689B681B79D3B10A7912B1022AE8 +:1051E00016D10E2205680B68AD68B3F5164F2D6811 +:1051F00061D02BD8B3F5165F60D014D8B3F5966F95 +:105200005ED008D8B3F5967F5DD0B3F5167F5DD03C +:105210006FF022004EE0B3F5166F5AD0B3F5965FEB +:10522000F6D1364B3CE0B3F5E14F55D007D8B3F596 +:10523000615F53D0B3F5964FEAD1314B30E047F67A +:105240001226B342E4D14FF4000329E0B3F5613FE5 +:1052500046D013D8B3F5963F45D009D84DF6C026B1 +:10526000B34242D0B3F5614FD2D14FF46B0317E094 +:10527000B3F5E13FCCD14FF0EB7311E0B3F5612F03 +:1052800036D008D81F4EB34235D0B3F5E12FBFD189 +:105290004FF0E86304E01C4EB342B9D14FF08053A5 +:1052A000C5F82435836803C92243C5F86C2583E813 +:1052B0000300002070BD4FF41D03F1E7134BEFE72F +:1052C0004FF49E23ECE74FF4A033E9E74FF41C338F +:1052D000E6E74FF41D23E3E70D4BE1E70D4BDFE776 +:1052E0004FF06C73DCE70C4BDAE74FF46503D7E75C +:1052F0004FF07063D4E74FF08063D1E700B0130044 +:1053000000A04E0090D0030040420F000050270044 +:1053100000C0750000F03A0000903A0170B500221C +:10532000054601210220FEF721FE0220FEF7ECFDDA +:105330002B68AE689B681C68184B4FF40062C3F87A +:1053400008250322C3F82C270022C3F828272B2383 +:10535000C4F80C352A23C4F8143531462846FFF723 +:105360002DFF0246B8B90823C4F800354FF4887100 +:10537000204602F068F8B16806F10C03C4F8343531 +:1053800089680123C4F838352360C4F84415C4F88B +:105390004825A360E360104670BD00BF00030050C5 +:1053A000094B70B553F820400130002653F82050C7 +:1053B000A54200D870BD236820465B68984700B1BD +:1053C00066600C34F4E700BFD47E0000104B70B56B +:1053D000104C05461E469C4204D10E4CB44209D1E5 +:1053E000002412E062681AB122681268AA420CD046 +:1053F0000C34F0E763680BB90C34EFE723682846F8 +:10540000196801F0F1FD0028F6D1204670BD00BFFB +:10541000749C0020A89B0020014B98685430704772 +:105420004C1700200248034A0021121A01F02ABE3C +:1054300000000020106D002008B50648064A074904 +:10544000121A01F0F4FDBDE80840054A0549064876 +:1054500001F0EDBD509A0020DC9D00209C860000EC +:10546000000000009C8600000000002008B502201B +:10547000FFF796FF0320FFF793FF00F001FEFBF715 +:10548000A5F8034A137B23F00103137308BD00BF83 +:10549000E016002080B53D4BA2B083F308883C4B5A +:1054A0003C4E5A693C4D42F400725A610024E0229D +:1054B00083F82220DC771C765C769C765A6A42F46C +:1054C000E0225A62FEF718FDFEF792FD07AB214677 +:1054D0006C22184601F0D6FD0127B06020468DF8F9 +:1054E0002970FFF75DFF3846FFF75AFF00F03CFCDC +:1054F0002A4B35624FF40052CDE90473CDE90244E2 +:10550000CDE90044264B2749284600F06FFD6B7B10 +:1055100023F0040213F01B0F6A73344604D1AB6905 +:1055200013B9284600F090FA1F4B204E0593012234 +:105530000F23CDE9033200231D4900934FF4A072DD +:105540003046CDE901331B4B00F050FD737BE66024 +:1055500023F004037373184BC4E90633FEF72CFEE3 +:105560000D48A56001F0AAFC0D4B144A184682F3C1 +:10557000098863B64FF0000181F31188BFF36F8F84 +:1055800000210022002301F00EF900BF50960020F8 +:1055900000ED00E04C170020E01600207E860000A1 +:1055A0006D540000106D00208386000074160020EA +:1055B000108D00203D7A000064170020108D00201F +:1055C00038B5074C074DAC4201D3002038BD04F17B +:1055D00014032046C4E9053300F02DFF1C34F2E724 +:1055E000749C0020AC9C00202DE9FF471C1E074640 +:1055F0000E46914655DD00F09FFE05462A484FF4C1 +:10560000004C00214FF4A0220023CCFB0401FAF748 +:1056100077FD4519254B264AFB1A9B1002FB03F820 +:105620005FFA88F807F1140A009603AB02AA49460C +:10563000384600F04AFF10F10B0F0BD1009603AB78 +:1056400002AA4946384600F040FF10F10B0F08BF90 +:105650006FF00B00029B039A1B0203F4706343EA92 +:1056600002335FFA88F213437360B8B1B4B110F13A +:105670000C0F13D14FF02003EFF3118083F3118847 +:10568000BFF36F8F2246514600F0ECFA631CCBD07B +:1056900000F052FE2C1AC7D56FF00A0004B0BDE826 +:1056A000F0870025B6E700BFFFFF0400749C0020D0 +:1056B000B76DDBB603780268417870B5114EC3EB65 +:1056C000C303120B01F00F0106EB83009C0000F0F6 +:1056D000C0FF4FF02003EFF3118583F31188BFF370 +:1056E0006F8F04F11400304402F018F928B12946F4 +:1056F0000548BDE8704002F06AB885F31188BFF331 +:105700006F8F70BD749C00200F6D0020034B9B6851 +:105710000146186E08B101F09ABF70474C1700207F +:10572000354A70B50D469168CB7B013B0446CB737F +:10573000C36811464BB180689268904212D09DB9FF +:1057400000F066F96FF00F050AE0926892F90E20FA +:1057500022610133E3608B68A36000F059F90025F2 +:10576000284670BD2269F3E792F90E1090F90E30C9 +:105770009942A8BF194621EAE1714FF02003EFF3E7 +:10578000118683F31188BFF36F8FA06890F90E30F4 +:105790008B4201DD00F09EFA2B4618482246314626 +:1057A00000F084FA054610B900F032F9D8E7236812 +:1057B00021699C4207D033B193F90E309942A8BFBA +:1057C000194621EAE1714FF02003EFF3118583F3CD +:1057D0001188BFF36F8FA06890F90E30994201D005 +:1057E00000F078FA85F31188BFF36F8F00F010F99D +:1057F0006FF00A05B4E700BF4C1700200F6D0020C2 +:105800001E4B9A68D37B013B70B50446D373C368C3 +:10581000012B05D0013BC360BDE8704000F0F8B833 +:105820004FF02003EFF3118683F31188BFF36F8FDE +:105830000169806890F90E30994201D000F04AFA6F +:10584000204602F03EF80546A06080B1437BDB06AF +:1058500003D183690BB900F0F7F886F31188BFF321 +:105860006F8F0023AB6695F90E302361D4E7E060BB +:1058700086F31188BFF36F8FCEE700BF4C1700206F +:1058800038B50B464FF02002EFF3118582F31188F3 +:10589000BFF36F8F046894B12368426823F0030359 +:1058A0009442036008BF43600121204601F054FF89 +:1058B000044685F31188BFF36F8F204638BD002959 +:1058C000F7D000F108022946104600F0EFF9002851 +:1058D000F3D1024B9B685C69EFE700BF4C170020D7 +:1058E000EFF305800D2809D828B1054B586880F4DE +:1058F0000060C0F3C02080F0010070470120FAE78B +:1059000000ED00E008B5FEF721F9054A03461068EE +:10591000044A034413610021BDE8084002F070B856 +:10592000801700204C170020F8B505460C464FF0B4 +:105930002003EFF3118683F31188BFF36F8F0C4BB5 +:105940000C4800224FF4004700211A61C7FB0501F3 +:105950004FF4A0220023FAF7D3FB074B1860074B44 +:105960001C60FFF7CFFF86F31188BFF36F8FF8BD80 +:105970004C170020FFFF0400801700207C17002038 +:105980004FF02003EFF3118183F31188BFF36F8F82 +:10599000044B9A68D37B013BD37381F31188BFF327 +:1059A0006F8F70474C170020094B03F1240282428D +:1059B00005D19B688B4202D14B7BDB0606D1D1E936 +:1059C000003213605A600023C1E90033704700BF02 +:1059D0004C17002038B50D4C024604F1240001F0AC +:1059E0003AFF054600B9E568A3684AB95A7BD20672 +:1059F00006D1AA6922B9DA897F2A01D9236238BD82 +:105A00009D4201D0FFF77EFF2562F8E74C1700208A +:105A100010B54FF02003EFF3118483F31188BFF327 +:105A20006F8F084B9A68D37B0133D3730120FFF744 +:105A3000D1FF84F31188BFF36F8FBDE8104001F0F0 +:105A4000E3BE00BF4C170020F8B54FF02003EFF382 +:105A5000118483F31188BFF36F8F154A114651F8F3 +:105A6000243F8B421DD0E3B1966A90F90E5093F912 +:105A70000E70AF4210DD5A68C0E900321060586005 +:105A8000437B43F0400343730020FFF7A3FF84F3FD +:105A90001188BFF36F8FF8BDB34202D01B68002B93 +:105AA000E5D1936A4360936A016018609062E7E70A +:105AB0004C170020F8B501464FF02003EFF3118595 +:105AC00083F31188BFF36F8F184C04F12400FFF7A4 +:105AD0006BFF636A8342224620D0FBB1A66A91F92C +:105AE0000E4093F90E70A74213DD5868C1E90030EB +:105AF000016059604B7B906843F040034B73431A3D +:105B000058425841FFF766FF85F31188BFF36F8F46 +:105B1000F8BDB34202D01B68002BE2D1936A4B6000 +:105B2000936A086019609162E4E700BF4C17002097 +:105B30001449154B10B502461C688868A04203D171 +:105B4000BDE81040FFF7DEBE00241C600F4B1B6851 +:105B5000B3B1C3897F2B13D80D4B90F90E401B684E +:105B60009C420DDB0B4B1B68984209D083693BB903 +:105B70000B69934202DCFFF79DFFE1E79B1A0B6183 +:105B800010BD00BF4C1700207817002080170020A0 +:105B90007C170020EC7E000010B501464FF020037A +:105BA000EFF3118483F31188BFF36F8F437B5A06A1 +:105BB00006D50948FFF7F8FE4B7B23F040034B73F3 +:105BC000064B9868431A58425841FFF703FF84F385 +:105BD0001188BFF36F8F10BD701700204C17002085 +:105BE00070B504460D461646FFF7D6FF637B43F0BB +:105BF000020363737DB12B68A5609D4226D02BB351 +:105C000094F90E2093F90E10914219DD5A68C4E9F7 +:105C1000003214605C60731C1FD010484FF40045C4 +:105C200000214FF4A022C5FB06010023FAF768FA11 +:105C30000B49421C04F11800BDE8704000F0E6BAC0 +:105C400069688B4202D01B68002BDBD16B686360F4 +:105C50006B6825601C606C60DDE770BDFFFF0400B1 +:105C60006378000070B50F4D0F4C0646A868FFF72B +:105C7000B7FFAB6823603046FDF7A0FF4FF020026E +:105C8000EFF3118382F31188BFF36F8F2268A96845 +:105C9000914204BF0022226083F31188BFF36F8F0B +:105CA00070BD00BF4C1700207817002010B50C46BF +:105CB0001146064A9068064A10601A46FFF790FFA0 +:105CC0002046BDE81040FDF779BF00BF4C1700200B +:105CD000781700202DE9F04104464FF02003EFF340 +:105CE000118883F31188BFF36F8F01F04EFD4EB220 +:105CF0000746002831D01B4D214605F12400FFF74F +:105D000053FE6B6AA67383422A461FD0F3B1A96A79 +:105D100093F90E50B54214DD5A68C4E9003214609C +:105D20005C600120FFF756FE88F31188BFF36F8F88 +:105D3000AFB10C4B9B68DB7B8BB9BDE8F04101F048 +:105D400063BD994202D01B68002BE1D1936A636066 +:105D5000936A20601C609462E3E7A673E4E7BDE801 +:105D6000F08100BF4C170020044B002103F12402F6 +:105D7000C3E909220846FFF7D7BD00BF4C17002032 +:105D8000F8B5214C214BA2681B689A4224D04FF0F1 +:105D90002003EFF3118583F31188BFF36F8F04F1B4 +:105DA0002400A168FFF700FE636AA268834224D042 +:105DB0001BB3A16A92F90E6093F90E70B74217DD1A +:105DC0005968C2E900310A605A600120FFF702FEFB +:105DD00085F31188BFF36F8F4FF02003EFF311802D +:105DE00083F31188BFF36F8FBDE8F840FDF7E6BE7F +:105DF0008B4202D01B68002BDED1A36A5360A36ADA +:105E000010601A60A262E0E74C170020EC7E0000F0 +:105E1000F8B5044618B9FFF7B3FF2046F8BD1E4891 +:105E20004FF4004500214FF4A0220023C5FB0401DC +:105E3000FAF766F9451C01F0FDFD2C184FF0200320 +:105E4000EFF3118783F31188BFF36F8F134E144B59 +:105E5000B0681860FFF7A0FEB06812492A461830F3 +:105E600000F0D4F9B268537B43F010035373384603 +:105E7000FDF7A4FE01F0DEFD201A002809DD4FF435 +:105E80007A716422002380FB0101FAF789F9044644 +:105E9000C3E70024C1E700BFFFFF04004C17002048 +:105EA0007817002063780000014B9868704700BFA6 +:105EB0004C17002070B505464FF02003EFF3118614 +:105EC00083F31188BFF36F8F01F0FBFC044670B1C0 +:105ED000437BDB0603D183690BB9FFF7B5FD0023D4 +:105EE000A36631460548BDE8704001F070BCD5E9B5 +:105EF00002329A4218BF0133AB60F2E70F6D002007 +:105F000002460B464FF02000EFF3118180F3118819 +:105F1000BFF36F8F906838B10138906081F31188BA +:105F2000BFF36F8F0020704733B981F31188BFF33F +:105F30006F8F6FF00F0070470148FFF7B7BE00BFCB +:105F40000F6D002010B5084C08494FF0FF334FF497 +:105F50008062204600F0F0F804F11000044901F0DE +:105F600001FD002010BD00BF8417002050960020C6 +:105F700088860000EFF305800D2807D838B1044B60 +:105F8000586880F40060C0F3C0207047012070475B +:105F900000ED00E0024B9B68187B00F001007047A9 +:105FA0004C17002010B502464FF02003EFF3118488 +:105FB00083F31188BFF36F8F437B590704D484F3B5 +:105FC0001188BFF36F8F10BD23F00403437301F0FA +:105FD000C0FC10B11046FFF737FD21460248BDE86E +:105FE000104001F0F4BB00BF0F6D002030B587B04A +:105FF00004460E9D04950D9D03950C9D02950B9DE9 +:1060000001950A9D0095FDF7C9FF034B9B6803B1FD +:106010001B6E236607B030BD4C17002070B586B0EC +:10602000002605960E9E04960D9E03960C9E0296E3 +:106030000B9E0F9D01960A9E00960446FFF7D6FF21 +:106040006B1C03D02DB92046FFF7ACFF204606B0ED +:1060500070BD09484FF4004600214FF4A0220023F0 +:10606000C6FB0501FAF74CF80449421C04F118007C +:1060700000F0CCF8EAE700BFFFFF040063780000FF +:106080002DE9F04F284E294D87B0B046B54205F1B5 +:1060900030040FD3FFF774FC244C254EDFF894A096 +:1060A0004FF400490027444521D307B0BDE8F04F25 +:1060B000FFF7AEBC54F8043C059354F8103C04932D +:1060C00054F8143C039354F8183C029354F81C3CC5 +:1060D000019354F8203C009354E90A2354E90C013D +:1060E000FFF784FF54F8303CDD642546CEE7616A53 +:1060F0004B1C04D0256821B92846FFF753FF3034E4 +:10610000D1E7B346BC46C9FB01BC4FF4A022002333 +:1061100058466146F9F7F4FF5146421C05F1180054 +:1061200000F074F8EBE700BF749C0020749C002022 +:10613000FFFF0400637800002DE9F041044686B0BB +:106140001F460D46164604F1100801F011FB002011 +:10615000CDE90400CDE90207CDE900402946064B10 +:1061600032464046FFF75AFF0449404606B0BDE8B4 +:10617000F04101F0F7BB00BFBB6700009186000053 +:10618000034B1B680BB9FDF7E1BC0020704700BF53 +:1061900000180020036840B1074A5268904204D0BA +:1061A0001BB19A6881680A449A60426813605A6019 +:1061B0000023C0E900337047A09B002038B5104B86 +:1061C0001B78002B0F4B1C6814BF4FF0FF306FF093 +:1061D00000409C420AD04CB1A568FFF7D1FF2D1AB0 +:1061E000002D0ADBA468FFF7CBFF201A064B1B69C2 +:1061F00013B19842A8BF184638BD0020F6E700BF8B +:106200000F6D0020A09B00204C17002070B50446A5 +:106210001646C1604FF02003EFF3118583F3118818 +:10622000BFF36F8FFFF7ACFF184B1A68012EACBF9E +:10623000801901309A42A06001D05E6832B95A6874 +:1062400062605A68236014605C600AE09068A1682C +:10625000884215DD411A91605168C4E900210C6043 +:1062600054601A689A4206D0944204D1FFF7A6FF00 +:106270000021FDF72FFC85F31188BFF36F8F70BDF0 +:10628000091A9642A160DAD01268D7E7A09B0020D5 +:106290002DE9F0470646FFF74BFC4FF02003EFF3E4 +:1062A000118483F31188BFF36F8F204DDFF8808056 +:1062B000DFF880A02E60C146DAF800002A68504559 +:1062C000D8E9006705D020B18368934213DD9B1A9B +:1062D0008360B61847EBE277C9E9006700262E60B5 +:1062E000FFF76CFF3146FDF7F5FB84F31188BFF330 +:1062F0006F8FBDE8F087F61847EBE377D31A2B6072 +:1063000000238360C8E90067FFF744FF84F3118826 +:10631000BFF36F8FC36898474FF02003EFF31184EA +:1063200083F31188BFF36F8FC6E700BF001800200A +:1063300000000020A09B002010B54FF02003EFF3D9 +:10634000118483F31188BFF36F8FFDF7FFFB064BBA +:10635000D3E90023121843F1000384F31188BFF33B +:106360006F8F1046194610BD0000002043685B691E +:1063700003B11847184670471346426810B4546872 +:106380000A46A446002110BC6047436810B41C684C +:106390000A46A446012310BC00216047002282F374 +:1063A0001488854682F310880847704770B5C66820 +:1063B00090F90B000C240D464C43A84206EB040157 +:1063C000B8BF3159002A1046B8BF02F11F00401172 +:1063D00001EB8001196002F01F0070BD07B501AB31 +:1063E000FFF7E4FF019A012303FA00F01368034367 +:1063F000136003B05DF804FB07B501ABFFF7D6FFF0 +:10640000019A012303FA00F0136823EA00031360E2 +:1064100003B05DF804FB4FF02003EFF3118083F32A +:106420001188BFF36F8F7047C30703D581F31188BD +:10643000BFF36F8F70472DE9F843436806890568FD +:1064400090F80AC05E43FF220446C2723544002021 +:106450004FF00C0E844505DC00252389AB4221DC7E +:10646000BDE8F883D4F80C80B6FBF3F10EFB00F71F +:1064700008EB070202F104091F29C2E9019906DCB1 +:10648000E0729B08033323F003030130E2E711F1CC +:106490001F0248BF01F13E02521148F8075005EBB8 +:1064A0008205EEE76168E3682268694350181E1DA3 +:1064B00056509A6842609A680021106098602A4697 +:1064C0002046FFF78BFF0135C7E72DE9F04F89B074 +:1064D000847A00AFC7E90132A300073303F4FF63F6 +:1064E000ADEB030D4368EB4603335A4623F0030339 +:1064F00042F8043905460020844200F1FF390ADDE4 +:1065000028B113689B08033323F00303536052F848 +:10651000043F8B4208D2B9F1FF3F07D1BA6C002388 +:1065200013606FF00B002EE00130E5E72C7C14F0D7 +:10653000010402D0FFF76FFF0446EA680C2303FB57 +:106540000923C8461A4652F8046F96421FD108F133 +:10655000FF38B8F1FF3FA3F10C03F3D10026287CEC +:106560002146FFF761FFBB6C1E60002ED9D0BB68CF +:10657000C3F800902B68F61A5BF8293096FBF3F607 +:106580007B6800201E602437BD46BDE8F08FD6E949 +:10659000003213605A600023C6E900332B685BF8B1 +:1065A0002810F21A284692FBF1F24146FFF724FF29 +:1065B0000BEB880308F1010ABB610AF1FF334B457D +:1065C000CDDABB6953F8042BBB612B68F31A93FB3C +:1065D000F2F39B00FB600C2303FB0AF33B610123F6 +:1065E000BA693B60D2F8008003FB08F27A61B21806 +:1065F000FA61FA6851469A182846FFF7EFFEFB69E0 +:106600002A68298908F1FF389844A8EB02086A68CB +:106610003B684A4390450BD2EA68396978690A4475 +:10662000111D3150F869916841609168086090606F +:106630000133042BD4D12146287CFFF7F5FE2C7CB6 +:1066400014F0010402D0FFF7E6FE04460AF1010A45 +:10665000B3E72DE9F04F87B0837A9B00073303F44B +:10666000FF6300AFADEB030D4368E946033323F04E +:106670000303884616460546C9F8003049460122FC +:10668000904513D22C7C14F0010402D0FFF7C3FE16 +:106690000446B8F1000F12DA4FF0FF34287C21468F +:1066A000FFF7C2FE1C37BD46BDE8F08F0B689B08A4 +:1066B000033323F0030341F8043F0132E0E759F8C4 +:1066C0002830FB6003FB06FB2B68BB60324641466B +:1066D000284603EB0B0AFFF781FEEA680C2303FB55 +:1066E0000822BB68111D43F80B109368CAF80430E8 +:1066F0009368C3F800A0C2F808A02146287CFFF7E1 +:1067000093FE2C7C14F0010402D0FFF784FE0446B3 +:10671000B8F1000FC2D007F11403324641462846B3 +:10672000FFF744FE7B690028B8BF03301B6820F0E8 +:10673000030023FA00F000F00F000F28AED126F07E +:106740000303BB60FB68013B4FF0000A7B60BB6842 +:10675000B5F808C0696803EB0A02FB6803FB02FB9B +:106760007B6801FB0CF103EB0B0088420FD2414622 +:106770002846FFF741FE2A6802EB0B0152F80B0096 +:106780004B6818604360002342F80B304B600AF1FD +:10679000010ABAF1040FDAD1002EB8BF033608F1AE +:1067A000FF38B61075E708B50446084611461A4684 +:1067B000A047FFF779FBFDF799FC10B504464FF0B1 +:1067C000FF312046FFF75CF803460028F7D0083376 +:1067D0004268BFF35B8F53E8001F21F0010C43E8D0 +:1067E00000CEBEF1000FF6D1BFF35B8FCB0700D513 +:1067F0009047FFF7C5FAE2E70020704770B50446FE +:106800000D464520A04729465220A0472946234649 +:106810005220BDE8704018470FB407B504A951F8DD +:10682000040B0191FAF734FA03B05DF804EB04B0FD +:1068300070470369D0E90020824296BF9B1802F19D +:10684000FF3303F1FF33181A7047036870B584688B +:106850000669A342054698BF9B19301B904203F17D +:10686000FF33A3EB040328BF1046984228BF184605 +:106870006B6923440444A64298BFA41B0B60AC6020 +:1068800070BD10B50446FFF7D4FF884209D3636892 +:1068900019442369994228BFC91AC4E9011100208B +:1068A00010BD6FF01500FBE72DE9F34180460E4661 +:1068B000154600272A4601A94046FFF7C6FF314684 +:1068C00004460246019800F0B2FB2D1B27442644E3 +:1068D00001D0002CEED139464046FFF7D2FF3846B2 +:1068E00002B0BDE8F081F0B5D0E903364568AB42AF +:1068F000044694BFF01803F1FF30174698BF00F12B +:10690000FF30F21ABA42A0EB050506F1FF30A0EB0A +:10691000050028BF3A46904228BF104662691A44D3 +:1069200003449E4298BF9B1B0A60E360F0BD38B5EC +:1069300005690446FFF77DFF6B1E1B1A8B4208D3C7 +:10694000236819448D4298BF491B2160E1600020F3 +:1069500038BD6FF01500FBE72DE9F34180460E4688 +:10696000154600272A4601A94046FFF7BCFF0199BA +:1069700004460246304600F05AFB2D1B27442644AD +:1069800001D0002CEED139464046FFF7D0FF384603 +:1069900002B0BDE8F081704700470023435082B049 +:1069A00043580193019B02B0704738B51D4602233E +:1069B0000B710B684A7104467BB112F0040F0CBFD7 +:1069C00082219221100748BF41F02001D30623689D +:1069D00048BF21F08001C3F8001320684FF4827192 +:1069E000FFF7DBFF206812F0800F05BF0123435142 +:1069F0004019002038BD38B505460C46FAF758FB5B +:106A000050B92B6801225A602846FAF751FB18B991 +:106A1000002CF9D1204638BD0124FBE700F180406D +:106A200000F51C3001230360BFF36F8FBFF34F8F5E +:106A3000704730B54C680D689C4229BFC0E90053CF +:106A40000021E41AED1832BFC0E900514C600D601E +:106A5000934203D1201E18BF012030BD0020FCE767 +:106A60004B6810B59A420C6828BF1A46C0E900422C +:106A7000981A0B6848601A4400380A6018BF012051 +:106A800010BD30B54C680B68A24228BF2246002AD0 +:106A900014BF1D460025C0E90052A4EB02041A44AD +:106AA0004C600A6014BF0120002030BD43B2002BAF +:106AB000B4BF0020102003F00F0318447047704744 +:106AC00008B50146FAF73EFBFAF72EFB837B032B52 +:106AD0000AD10846FFF7EAFF012303FA00F0C0439A +:106AE000BDE80840FAF7E8BB0368002BF1D008BD09 +:106AF0008720FFF7E5BF8620FFF7E2BF8520FFF77D +:106B0000DFBF8420FFF7DCBF8320FFF7D9BF8220DF +:106B1000FFF7D6BF8120FFF7D3BF0720FAF7BEBD2E +:106B20000620FAF7BBBD0520FAF7B8BD0420FAF736 +:106B3000B5BD0320FAF7B2BD0220FAF7AFBD0120C0 +:106B4000FAF7ACBD08B5FAF7EFFA818108BD08B5D0 +:106B5000FAF7EAFA4FF02002EFF3118382F311887B +:106B6000BFF36F8F82680A6002682AB9807B83F363 +:106B70001188BFF36F8F08BD0420F8E708B5FAF756 +:106B8000C3FA58B9EFF3108272B64C20FFF746FFF4 +:106B90004C20FFF743FF82F3108808BDBDE8084092 +:106BA0004C20FFF73BBF5020FFF738BF5420FFF7C2 +:106BB00035BF2DE9F34150F8283C10F82C5C103318 +:106BC000044610D1C36850F8202C99073BD5FAB978 +:106BD00013F0040304D11A4619462846FCF7FAFDBF +:106BE000002344F8283C54F8283C10330DD054F8C6 +:106BF000186C56B154F81C7C54F8148CFFF7BAF991 +:106C000000284BD02046FBF743FD02B0BDE8F081E1 +:106C100050F8241C01AB2846FCF7DCFD10B16FF0E6 +:106C20001503DEE7019A54F8243C134444F8243C4D +:106C300054F8203C9B1A44F8203C54F81C3C134464 +:106C400044F81C3CCFE750F8241C01AB2846FCF765 +:106C50002BFE0028E3D1019E54F8243C334444F831 +:106C6000243C54F8203C9B1B44F8203C54F81C3C2A +:106C7000334444F81C3C002EB2D02846FCF7AAFE50 +:106C8000B6FBF0F303FB10600028A9D154F8203CB8 +:106C9000002BA5D02846FCF749FEA4E744F8180CC1 +:106CA000A4F11000FFF706F9424639462846B047DE +:106CB000ABE7FCF78FBD00F0DFB8006860B10438C7 +:106CC00000B9704703681B689B688B4204D0031DA2 +:106CD00001D04068F2E718467047006870B1043888 +:106CE00000B9704703681B689B685B689B788B42A0 +:106CF00004D0031D01D04068F0E71846704730B556 +:106D00000068A8B1043898B103681B689B689A6A48 +:106D100093F82450043A0023DCB2A54203D8031DA3 +:106D200007D04068EDE7013312F833408C42F3D1CD +:106D300030BD1846FCE74B1CDBB28170817680F8D1 +:106D40002530C37600F8061C704750E9023018471A +:106D5000836800229A7670478368187E704783683C +:106D60000022DA7670478368587E704783681A7EFF +:106D70000AB19A7E1AB9587E10B1D87E70470120A8 +:106D80007047012070478368C3E9011270476FF0B4 +:106D900022007047036873B59D688668A86A00245E +:106DA0006B46007B0094FFF786FFA86A019401AB55 +:106DB000007B22462146FFF77EFF019B03B97376D5 +:106DC000009802B070BD37B5836800688468002001 +:106DD00001901D78032D07D11876A06A01AB007DC4 +:106DE000FFF767FF00B9019803B030BD8068012349 +:106DF0008376436823B1037E13B10C30FBF74EBE9C +:106E0000704780680123C376436823B1437E13B182 +:106E10000C30FBF743BE704708B500221046012135 +:106E2000FDF7A4F80020FDF76FF8002008BD4FF033 +:106E300080434FF4607220B1C3F804230020FDF7B3 +:106E400063B8C3F8082370470378017903F00F0291 +:106E500021B9101E18BF012040427047082A06D8E9 +:106E6000012907D183F0080040F3C00070474FF0BC +:106E7000FF3070470020704770B504460E46154637 +:106E8000FCF712FD30B906B925B12046BDE87040C7 +:106E9000FCF74CBD70BD70477047FDF7B5B80146B3 +:106EA0000068FDF7C5B8202383F31188704708B543 +:106EB000FDF75AF9BDE80840FCF766BE07B50021AA +:106EC00001A8FDF725FA03B05DF804FB2DE9F041B8 +:106ED00084460F4605462C4614F8013B202B35D03E +:106EE000A3F10901042931D92D2B31D16B78AC1CC8 +:106EF0004FF0010E002A5ED0102A09D1302B07D1A5 +:106F0000237803F0DF03582B50D16378102202342A +:106F10004FF0FF310026B1FBF2F102FB01F86FEAFE +:106F200008083046A3F13005092D18D82B469A429F +:106F300025DD002E20DB88421ED801D143451BDC15 +:106F400000FB0230012614F8013BEBE72546C2E7BF +:106F50002B2B04BF6B78AC1C4FF0000ECAE743F03C +:106F60002005613D192D0AD8A3F141051A2D34BF22 +:106F7000372557255B1BDAE74FF0FF36E3E7002E96 +:106F800008DAFEF749FA262303604FF0FF3047B9CD +:106F9000BDE8F081BEF1000F00D04042002FF7D0D5 +:106FA0000EB104F1FF3CC7F800C0F1E73023002A1E +:106FB000AED10822ACE7302BA2D00A22A8E7C9B292 +:106FC00003461A788A42184603F1010304D0002AC6 +:106FD000F7D1002918BF00207047034600201A5C33 +:106FE00002B970470130FAE7431E013913F8012F47 +:106FF00011F8010F824201D1002AF7D1101A70470F +:10700000431A934210B500EB020308D3013902463C +:107010009A420BD011F8014F02F8014BF8E70A44ED +:1070200012F8014D03F8014D8A42F9D110BDF0B5B7 +:1070300081EA0004A50703460BD0013B0A449142B4 +:107040001BD1F0BD002AFCD011F8014B03F8014B15 +:10705000013A9C07F6D122F003041D1F96080F1970 +:10706000B94205D16FF0030505FB06222344E4E78E +:1070700051F804CB45F804CFF2E711F8014B03F8BF +:10708000014FDCE770B5C9B203469C0711D141EA54 +:10709000012422F0030644EA04451E449408B34246 +:1070A0000DD16FF0030505FB04221A44934209D168 +:1070B00070BD002AFCD003F8011B013AE5E743F854 +:1070C000045BECE703F8011BF0E7F0B51D4604464E +:1070D0000346B1FBF2F602FB161009280F4600F139 +:1070E000300031468CBF272600263044BA4203F8D0 +:1070F000010BEED93022181B854205DC002203F873 +:107100000129A34203D8F0BD03F8012BF3E71A7855 +:10711000217803F8011904F8012BF2E770B5D0E9E2 +:107120000065720806F0010342EAC5729B184FF031 +:1071300000014FEA550444EB0101C0E9003170BD84 +:10714000D0E90032F0B502334FF005074FF0000CE4 +:1071500042F10002B3EB0C06B2FBF7FE07FB0EF1A7 +:1071600062EB0101F20842EA4172B2FBF7F1CA0098 +:107170001CEB02044FEA51734EEB0305A2FB0723FD +:10718000B31AB3FBF7F3E41845F10005C0E9004575 +:10719000F0BD0B68002B70B510DD02684468013B40 +:1071A0000B600A21A2FB015601FB046626F0704326 +:1071B000C0E90053310F3031C8B270BD3021FBE758 +:1071C0004B68012B07DD0B6818700B6801330B60EF +:1071D0004B68013B4B600020704770B50E4601685C +:1071E000154659B10C688B681D4203D04B682A467E +:1071F0003046984714B121462468F4E770BD10B5B5 +:1072000004688068A468C0692468012904D14340E7 +:10721000C4F80435002010BD003B20FA02F04FF006 +:10722000010118BF012300F001009140834214BF07 +:10723000C4F80815C4F80C15ECE7F0B5054600686D +:1072400080680668A868D6F81475C069D6F8104535 +:10725000D6F80465604074403C40604001291CBF82 +:10726000D04000F0010018600020F0BD836818686D +:1072700030B558B10024814213D108685CB95C680C +:107280001860A14200D158600020086072B9002047 +:1072900030BD2846EFE720605868814208BF5C6037 +:1072A000F2E705680446002DF3D13AB11A680A6086 +:1072B000586819600028EAD15960E9E76FF01500B5 +:1072C000E6E7F8B5026883689768DC69D3E90212DB +:1072D0000A40D3E90510014322EA010239681B691B +:1072E000D1F810155C404C4022EA04040125002628 +:1072F0000AB92046F8BD2A4209D03B7906F01F00A2 +:10730000002140EA4310FDF71BFC22EA050201368A +:107310006D00EDE7F8B5846803689F68D4E9023230 +:107320001A40D4E905310B4322EA03020126002565 +:1073300002B9F8BD164211D02369E1695940E9400C +:107340003B7901F00101C1F1030105F01F00C9B251 +:1073500040EA4310FDF7F4FB22EA0602013576000D +:10736000E6E701292DE9F04118BFD4B28768054648 +:1073700012BF26461F2600244FF00108B44202D94E +:107380000020BDE8F081FB6808FA04F223EA02035A +:10739000FB6021462846FDF7EBFB0028F1D10134C4 +:1073A000E4B2EBE701292DE9F04118BFD4B28768B8 +:1073B000054612BF26461F2600244FF00108B4429E +:1073C00002D90020BDE8F081FB6808FA04F21343FB +:1073D000FB6021462846FDF7CBFB0028F2D10134A3 +:1073E000E4B2ECE74FF0805310B51C695A69624370 +:1073F000824210D900280EDB1C695A6962438A4216 +:1074000009D31A695B69084403FB02F188428CBF07 +:107410000020012010BD0020FCE770B50D46284675 +:10742000194616461C46FFF7DDFF38B14CB122461F +:1074300029463046FFF7FBFD002070BD6FF01500B8 +:10744000FBE72046F9E70023435082B043580193FD +:10745000019B02B0704783689B689A7B72B1026897 +:1074600092681268D2F8201141B14FF48071C2F8CD +:1074700008130121D16000229A7370471A680AB17B +:1074800058681047704782680B4692E8030083E80B +:1074900003000020704703689B681B68D3F8240131 +:1074A00018B1D3F88004C3F880047047026892686A +:1074B00008B583681068D0F810214AB11B7B0B70A7 +:1074C0004FF48871FFF7BFFF01230360002008BD60 +:1074D0004FF0FF30FBE707B503688DF807109B6896 +:1074E0004FF490711868FFF7AEFF0DF10703C0F875 +:1074F00044350123C0F848358360D0F82021002AA4 +:10750000FBD0C36003B05DF804FB70B50C461146B8 +:107510000268926803461068D0F82021A2B19D68E5 +:10752000AB689A898A42A8BF0A464FF49071FFF768 +:107530008AFF0023A9689342896807DB0123C0F80A +:107540004415C0F848258360104670BDE65CCE54F3 +:107550000133EFE703689B6802461868D0F81031E2 +:1075600010B50C4643B14FF488719268FFF76BFF7A +:10757000137B237001230360184610BD03688268E3 +:107580009B6892681B68002191734FF48072C3F866 +:107590000423704783689B6801229A7370470368CD +:1075A0009B681B68D3F8200118B1D3F80403C0F31B +:1075B0000020704703689B681B68D3F810010038EF +:1075C00018BF0120704703689B681B681022C3F82E +:1075D0000423704703689B681B681022C3F80823C4 +:1075E000704703689B681B684FF40072C3F804235C +:1075F000704703689B681B684FF40072C3F8082348 +:1076000070470120704783689B68C3E90012704788 +:1076100008B503689B681968D1F80433DB05024696 +:1076200005D4D1F8040310F0100006D108BDFFF70F +:10763000B6FF0028F5D00120F8E71046FFF7BAFFA3 +:10764000003818BF0120F1E70430FEF733B813B556 +:1076500004240A1904D200236946FDF7C5FF10B1BE +:10766000002002B010BD0098224601A9FFF7DFFC00 +:1076700000980430F5E710B10438FEF71BB87047E6 +:107680000023C0E90233C0E90000704738B5437BEE +:10769000DB0604460D4603D183690BB9FEF7D4F926 +:1076A0000023A366656138BD2DE9F84304460D4605 +:1076B0001746994600F108084FF02003EFF31186B2 +:1076C00083F31188BFF36F8F404600F0FAF840B1A2 +:1076D0003946FFF7DBFF4046314600F078F80020DE +:1076E0000CE0B9F1000F1BD00820FEF70FF838B9F5 +:1076F00086F31188BFF36F8F6FF00B00BDE8F8833E +:10770000012347600360036803F0030265B923683F +:107710001343036063682060002BDCD16060DAE70C +:10772000C7F800903846EEE72B6833F003030BD11F +:107730000260626812B9C4E90000CCE7136803F084 +:10774000030303431360E9E7134303602B6803F06B +:10775000030318432860BEE710B5044630B1026841 +:10776000930703D0446809B1FFF785FF204610BD99 +:107770000023C0E9003300F10803C0E90233704779 +:107780000A4600234168FFF78FBF437BDB0603BF38 +:107790008069B0FA80F040090020704738B504468F +:1077A0004FF02003EFF3118583F31188BFF36F8F40 +:1077B00001468068FEF7F8F8637B23F002036373E9 +:1077C00085F31188BFF36F8F0023A36038BD08B520 +:1077D000FEF786F820B1BDE808400846FCF7EEB990 +:1077E00081F31188BFF36F8F08BD08B50246FEF71D +:1077F00077F820B1BDE808401046FCF7DFB982F306 +:107800001188BFF36F8F08BD4FF02003EFF3118095 +:1078100083F31188BFF36F8FFFF7E7BF10B5014601 +:107820004FF02003EFF3118483F31188BFF36F8FC0 +:107830008068FEF7B9F84B7B23F002034B7384F3A7 +:107840001188BFF36F8F0023BDE810408B6001F1FA +:10785000180000F0AFB80368984214BF1846002023 +:10786000704738B550F8103C0446A0F11801C3B178 +:107870004FF02003EFF3118583F31188BFF36F8F6F +:1078800050F8100CFEF790F814F80B3C23F00203AC +:1078900004F80B3C85F31188BFF36F8F002344F885 +:1078A000103C14F80B3C23F0140304F80B3C08467E +:1078B000FFF76BFF20B1BDE838400846FEF7C4B8BB +:1078C00038BD38B54FF02003EFF3118283F31188F0 +:1078D000BFF36F8FFFF7BFFF044682F31188BFF33A +:1078E0006F8FC8B14FF02003EFF3118583F3118838 +:1078F000BFF36F8F01468068FEF756F8637B23F075 +:107900000203637385F31188BFF36F8F0023A360B5 +:1079100004F1180000F04EF8204638BD70B5054659 +:1079200000262C68A54200D00CB9304670BD204618 +:10793000FFF774FF2046FFF728FF01260028F0D04C +:107940002046FEF781F8ECE7C0E90212C0E900002A +:107950007047437BDB0603BF8069B0FA80F04009C3 +:10796000002070477047036D10B5044603B1984777 +:107970002046FFF7EEFF38B12046FEF70DF9637B96 +:1079800043F00803637310BD637B9B0702D5204659 +:10799000FFF704FFA369002BF1D004F1180000F0F9 +:1079A00009F8ECE703730023C0E9063342738173DF +:1079B000C373704710B54FF02002EFF3118482F3C8 +:1079C0001188BFF36F8F03683BB1FEF7E3FB002024 +:1079D00084F31188BFF36F8F10BD6FF01500F7E7C8 +:1079E00010B54FF02003EFF3118483F31188BFF338 +:1079F0006F8FFEF7E3FB84F31188BFF36F8F10BD29 +:107A000070B504460D464FF02003EFF3118683F363 +:107A10001188BFF36F8FFEF7D1FBA04205DD01286F +:107A200003DD29462046FCF755F886F31188BFF39D +:107A30006F8F70BD08B5FEF77FFC08BD08B54FF02D +:107A40002002EFF3118382F31188BFF36F8FFFF7EA +:107A5000C7FF01210228D8BF0846FFF7D1FFFCF776 +:067A6000CDFAECE77047CF +:027A6600FFFF20 +:087A68006887FF7F01000000A8 +:107A700000000000212D0000000000009B6E0000AF +:107A8000E49B002057740000000000009B6E000083 +:107A9000000000009B6E0000000000009B6E0000D4 +:107AA00000000000E14D0000000000009B6E00009F +:107AB000000000009B6E0000000000009B6E0000B4 +:107AC000000000009B6E0000000000009B6E0000A4 +:107AD000000000009B6E0000000000009B6E000094 +:107AE000000000009B6E0000000000009B6E000084 +:107AF000000000009B6E000000000000F93900004B +:107B0000000000009B6E0000000000009B6E000063 +:107B1000000000009B6E0000000000009B6E000053 +:107B2000000000009B6E0000000000009B6E000043 +:107B3000000000009B6E0000000000009B6E000033 +:107B4000000000009B6E0000000000009B6E000023 +:107B5000000000009B6E0000000000009B6E000013 +:107B6000000000009B6E0000000000009B6E000003 +:107B7000000000009B6E0000000000009B6E0000F3 +:107B8000000000009B6E0000000000009B6E0000E3 +:107B9000000000009B6E0000000000009B6E0000D3 +:107BA000000000009B6E0000391D00009969000074 +:107BB000000000009B6E0000000000009B6E0000B3 +:107BC000000000009B6E0000000000009B6E0000A3 +:107BD000000000009B6E0000000000009B6E000093 +:107BE000000000009B6E0000000000009B6E000083 +:107BF00056820000AD0C000000000000568200001C +:107C0000E52100000000000033810000552A00003B +:107C1000B09D0020EE810000196E00000000000001 +:107C2000F8810000196E00000000000002820000D0 +:107C3000453A00000000000056820000A14200000A +:107C4000000000002C810000114B0000C87D0000E6 +:107C500025810000114B0000C07D00005F86000000 +:107C6000B94E00003C7E000065860000B94E000061 +:107C7000187E00006B860000B94E0000F47D000005 +:107C800071860000B94E0000D07D00003D810000EB +:107C90003950000000000000778600001D530000EE +:107CA000CC7E000056820000C1550000000000009C +:0C7CB00056820000455F0000000000004C +:107CBC0002000000C47C000000000000AC81000049 +:107CCC002600020200000020B481000022000B11EB +:107CDC0059110000BF6A0000DD120000156B000096 +:107CEC000F6B0000096B0000036B0000FD6A0000C5 +:107CFC00F76A0000F16A00009D12000049130000B1 +:107D0C00F11A00003F6B0000396B0000336B000070 +:107D1C002D6B0000276B0000216B00001B6B00001B +:107D2C00091300000112000095130000C51C00008F +:107D3C00351600008F6D0000312A00000000000095 +:107D4C000000000000000000C76D0000956D0000F1 +:107D5C00ED6D0000516D0000596D0000036E0000C8 +:107D6C005F6D000000000000676D00000000000067 +:107D7C00000000006D6D0000836D0000876D000039 +:107D8C00712C00000000000000000000AD2B000072 +:107D9C00392B000000000000B94C0000FF710000FE +:107DAC003B7200006D720000A5730000637300004D +:107DBC000000000000000050000000000003005014 +:107DCC000100000000C0014000000000FFFFFFFFA9 +:107DDC0000040000E8030201449B002004000000A2 +:107DEC000000000000000000001002400100000034 +:107DFC00FFFFFFFF00040000E8030201549B00207A +:107E0C000400000000000000000000000020024000 +:107E1C0002000000FFFFFFFF00040000E803020166 +:107E2C00649B002004000000000000000000000023 +:107E3C0000D0024003000000FFFFFFFF0004000021 +:107E4C00E8030201749B0020040000000000000005 +:107E5C0000000000DD4E0000A94E00001B74000065 +:107E6C000D51000061500000D95000002950000055 +:107E7C0001000000AD740000D7740000977400007E +:107E8C00BD510000877400000B7500005575000093 +:107E9C007D750000957500009F750000C77500008A +:107EAC00D57500009F750000B5750000E3750000E6 +:107EBC00F3750000117600000376000007760000D1 +:107ECC000020004000000000A89B0020F09B002038 +:107EDC00FC9B00205C9C0020749C0020F5FFFFFFA5 +:107EEC007416002000002110422063308440A550FD +:107EFC00C660E770088129914AA16BB18CC1ADD1E4 +:107F0C00CEE1EFF13112100273325222B55294428B +:107F1C00F772D662399318837BB35AA3BDD39CC333 +:107F2C00FFF3DEE36224433420040114E664C774D7 +:107F3C00A44485546AA54BB528850995EEE5CFF583 +:107F4C00ACC58DD55336722611163006D776F6662B +:107F5C009556B4465BB77AA719973887DFF7FEE7D3 +:107F6C009DD7BCC7C448E5588668A77840086118F7 +:107F7C0002282338CCC9EDD98EE9AFF94889699923 +:107F8C000AA92BB9F55AD44AB77A966A711A500ACB +:107F9C00333A122AFDDBDCCBBFFB9EEB799B588B73 +:107FAC003BBB1AABA66C877CE44CC55C222C033C17 +:107FBC00600C411CAEED8FFDECCDCDDD2AAD0BBDC3 +:107FCC00688D499D977EB66ED55EF44E133E322E6B +:107FDC00511E700E9FFFBEEFDDDFFCCF1BBF3AAF13 +:107FEC00599F788F8891A981CAB1EBA10CD12DC171 +:107FFC004EF16FE18010A100C230E3200450254007 +:10800C0046706760B9839893FBA3DAB33DC31CD366 +:10801C007FE35EF3B1029012F322D2323542145256 +:10802C0077625672EAB5CBA5A89589856EF54FE5B2 +:10803C002CD50DC5E234C324A014810466744764A6 +:10804C0024540544DBA7FAB79987B8975FE77EF706 +:10805C001DC73CD7D326F2369106B01657667676F6 +:10806C00154634564CD96DC90EF92FE9C899E989D2 +:10807C008AB9ABA94458654806782768C018E10846 +:10808C008238A3287DCB5CDB3FEB1EFBF98BD89BA6 +:10809C00BBAB9ABB754A545A376A167AF10AD01A96 +:1080AC00B32A923A2EFD0FED6CDD4DCDAABD8BADF2 +:1080BC00E89DC98D267C076C645C454CA23C832CE6 +:1080CC00E01CC10C1FEF3EFF5DCF7CDF9BAFBABF46 +:1080DC00D98FF89F176E367E554E745E932EB23E36 +:1080EC00D10EF01E08010C011001140118011C0125 +:1080FC00200124012C013001340138013C014001E4 +:10810C00440148014C01500125303858253038586D +:10811C002530385825303858004750494F5F3000CB +:10812C004750494F5F31004344435F41434D5F30FB +:10813C00004E52465F464C4153485F4452565F4E88 +:10814C00414D450041726475696E6F20426F6F74CA +:10815C006C6F61646572202853414D2D424120653E +:10816C007874656E6465642920322E30205B417210 +:10817C006475696E6F3A494B58595A5D0A0D006E19 +:10818C00524635323834302D514941410A0D005890 +:10819C000A0D00590A0D005A25303858230A0D00D3 +:1081AC00464C4153485F30005352414D5F30000202 +:1081BC00030405060708090B0C0D0E0F1011121302 +:1081CC0014303030303030303030303030303030BF +:1081DC003030303030303030303030303030303093 +:1081EC003000434C4F434B5F33324B00434C4F43B7 +:1081FC004B5F31364D007379735F636C6F636B004B +:10820C002A2A2A2A2A204D5055204641554C5420C2 +:10821C002A2A2A2A2A0A002020537461636B696E69 +:10822C0067206572726F722028636F6E7465787444 +:10823C002061726561206D69676874206265206ECB +:10824C006F742076616C6964290A002020556E7366 +:10825C007461636B696E67206572726F720A0020BD +:10826C002044617461204163636573732056696FA8 +:10827C006C6174696F6E0A0020204D4D464152208E +:10828C00416464726573733A20307825780A002053 +:10829C0020496E737472756374696F6E20416363E9 +:1082AC006573732056696F6C6174696F6E0A002078 +:1082BC0020466C6F6174696E672D706F696E7420E7 +:1082CC006C617A7920737461746520707265736562 +:1082DC0072766174696F6E206572726F720A002A11 +:1082EC002A2A2A2A20425553204641554C54202AEA +:1082FC002A2A2A2A0A002020537461636B696E674C +:10830C00206572726F720A00202050726563697367 +:10831C0065206461746120627573206572726F727E +:10832C000A002020424641522041646472657373F6 +:10833C003A20307825780A002020496D70726563E8 +:10834C006973652064617461206275732065727253 +:10835C006F720A002020496E737472756374696FB2 +:10836C006E20627573206572726F720A002A2A2A57 +:10837C002A2A205553414745204641554C54202A22 +:10838C002A2A2A2A0A0020204469766973696F6EAA +:10839C00206279207A65726F0A002020556E616C1C +:1083AC0069676E6564206D656D6F727920616363BA +:1083BC006573730A0020204E6F20636F70726F63B9 +:1083CC006573736F7220696E737472756374696F01 +:1083DC006E730A002020496C6C6567616C206C6FB1 +:1083EC006164206F66204558435F52455455524E88 +:1083FC0020696E746F2050430A002020496C6C6514 +:10840C0067616C20757365206F6620746865204504 +:10841C005053520A002020417474656D707420749E +:10842C006F206578656375746520756E6465666923 +:10843C006E656420696E737472756374696F6E0A0D +:10844C000052657365727665642045786365707457 +:10845C00696F6E20280053707572696F757320698F +:10846C006E74657272757074202849525120002AFE +:10847C002A2A2A2A2048415244204641554C54204D +:10848C002A2A2A2A2A0A002020427573206661753E +:10849C006C74206F6E20766563746F7220746162E9 +:1084AC006C6520726561640A0020204661756C74ED +:1084BC0020657363616C6174696F6E2028736565E8 +:1084CC002062656C6F77290A002A2A2A2A2A2044FE +:1084DC0065627567206D6F6E69746F722065786365 +:1084EC00657074696F6E20286E6F7420696D706C86 +:1084FC00656D656E74656429202A2A2A2A2A0A0069 +:10850C002A2A2A2A2A20257320256429202A2A2A65 +:10851C002A2A0A002A2A2A2A2A20486172647761A8 +:10852C00726520657863657074696F6E202A2A2ADB +:10853C002A2A0A002A2A2A2A204B65726E656C2088 +:10854C00416C6C6F636174696F6E204661696C7508 +:10855C00726521202A2A2A2A0A002A2A2A2A2A2053 +:10856C004B65726E656C204F4F505321202A2A2A7E +:10857C002A2A0A002A2A2A2A2A204B65726E656C3E +:10858C002050616E696321202A2A2A2A2A0A002A8D +:10859C002A2A2A20556E6B6E6F776E2046617461A5 +:1085AC006C204572726F7220256421202A2A2A2A97 +:1085BC000A0043757272656E74207468726561642A +:1085CC00204944203D2025700A4661756C74696E03 +:1085DC006720696E737472756374696F6E20616461 +:1085EC006472657373203D20307825780A004953F6 +:1085FC005200657373656E7469616C207468726582 +:10860C00616400466174616C206661756C742069EC +:10861C006E20257321205370696E6E696E672E2E45 +:10862C002E0A00466174616C206661756C74206959 +:10863C006E20746872656164202570212041626F20 +:10864C007274696E672E0A002D2B20233000686C23 +:10865C004C7A0050574D5F330050574D5F320050ED +:10866C00574D5F310050574D5F3000554152545FAC +:10867C0030006D61696E0069646C650073797377A5 +:10868C006F726B7100776F726B7175657565000039 +:10869C00F96700000090D0030B0000000000000000 +:1086AC0000000000000000000000000000000000BE +:1086BC0000000000000000000000000000000000AE +:1086CC00000000000000000000000000000000009E +:1086DC00000000000000000000000000000000008E +:1086EC00000000000000000000000000000000007E +:1086FC00000000000000000000000000000000006E +:10870C00000000000000000000000000000000005D +:10871C00000000000000000000000000000000004D +:10872C00000000000000000000000000000000003D +:10873C0000000000249B002000C201000000080083 +:10874C00000000000000000000000000F129000003 +:10875C0080000000092B000000000000CD2A000062 +:10876C00800000000000000000000000000000007D +:10877C000000000000040000E96800200000000078 +:10878C00000000000080008000800080E8030400EE +:10879C00000000000080008000800080E8030400DE +:1087AC00000000000080008000800080E8030400CE +:1087BC00000000000080008000800080E8030400BE +:1087CC000000000000000000EF6C00202000000002 +:1087DC008025000000010300809B002000000000A9 +:0887EC00A09B0020A09B0020CF +:1087F400F07B00000000000000000000A47C0000EA +:108804000000000000000000387C000000000000B0 +:1088140000000000147C00008C7D000000000000BB +:10882400207C0000987D000000000000987C00007F +:10883400807E0000909B00202C7C00000000000043 +:1088440000000000507C0000A47D00001C160020E5 +:10885400447C0000A47D00003C160020B07C000095 +:1088640000000000000000005C7C0000607E00004E +:10887400709B0020687C0000607E0000609B0020EC +:10888400747C0000607E0000509B0020807C00000F +:10889400607E0000409B00208C7C0000687E00000D +:1088A40000000000087C0000407D0000589A002071 +:0C88B400FC7B0000000000000000000041 +:1088C000040400200004000003000300341300200F +:1088D0000100000000000000000000002410002043 +:1088E00018000000200001005813002001000000C3 +:0888F000000000000000000080 +:1088F800AC9C0020AC9C00200000000000000000A0 +:048908000F0000005C +:10890C000000000000000000C89C0020C89C002053 +:10891C0012010002EF02014041235D00110001022F +:10892C00030109020000000100E032080B00020202 +:10893C0002000009040000010202000005240010DE +:10894C00010524010201042402020524060001078A +:10895C0005800310000A09040100020A0000000748 +:10896C0005800240000007050002400000040309D6 +:10897C0004100341726475696E6F00000000000002 +:10898C00002A0341726475696E6F20456467652027 +:10899C00436F6E74726F6C000000000000000000EA +:1089AC0000000000000000000000004203303030E6 +:1089BC0030303030303030303030303030303030AB +:1089CC00303030303030303030303030300000002B +:1089DC00000000000000000000000000000000008B +:0F89EC000000000000000000000000000000007C +:0189FB00FF7C +:1089FC0000000000F39C0020376D0000092A0000E5 +:108A0C00A129000000000000000000000000000090 +:0C8A1C0000000000030000000C9B002084 +:040000030000416157 +:00000001FF diff --git a/cores/arduino/mbed/components/storage/blockdevice/COMPONENT_SPIF/SPIFBlockDevice.h b/cores/arduino/mbed/components/storage/blockdevice/COMPONENT_SPIF/SPIFBlockDevice.h index 37d2d8832..a370883d9 100644 --- a/cores/arduino/mbed/components/storage/blockdevice/COMPONENT_SPIF/SPIFBlockDevice.h +++ b/cores/arduino/mbed/components/storage/blockdevice/COMPONENT_SPIF/SPIFBlockDevice.h @@ -18,7 +18,7 @@ #define MBED_SPIF_BLOCK_DEVICE_H #include "platform/SingletonPtr.h" -#include "drivers/SPI.h" +#include "drivers/SPIMaster.h" #include "drivers/DigitalOut.h" #include "drivers/internal/SFDP.h" #include "features/storage/blockdevice/BlockDevice.h" @@ -45,7 +45,7 @@ */ enum spif_bd_error { SPIF_BD_ERROR_OK = 0, /*!< no error */ - SPIF_BD_ERROR_DEVICE_ERROR = BD_ERROR_DEVICE_ERROR, /*!< device specific error -4001 */ + SPIF_BD_ERROR_DEVICE_ERROR = mbed::BD_ERROR_DEVICE_ERROR, /*!< device specific error -4001 */ SPIF_BD_ERROR_PARSING_FAILED = -4002, /* SFDP Parsing failed */ SPIF_BD_ERROR_READY_FAILED = -4003, /* Wait for Memory Ready failed */ SPIF_BD_ERROR_WREN_FAILED = -4004, /* Write Enable Failed */ @@ -280,7 +280,7 @@ class SPIFBlockDevice : public mbed::BlockDevice { mbed::sfdp_hdr_info _sfdp_info; unsigned int _page_size_bytes; // Page size - 256 Bytes default - bd_size_t _device_size_bytes; + mbed::bd_size_t _device_size_bytes; // Bus configuration unsigned int _address_size; // number of bytes for address diff --git a/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_EDGE_CONTROL/PinNames.h b/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_EDGE_CONTROL/PinNames.h new file mode 100644 index 000000000..7f67d1559 --- /dev/null +++ b/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_EDGE_CONTROL/PinNames.h @@ -0,0 +1,207 @@ +/* + * Copyright (c) 2019 Arduino SA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MBED_PINNAMES_H +#define MBED_PINNAMES_H + +#include "cmsis.h" +#include "nrf_gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + PIN_INPUT, + PIN_OUTPUT +} PinDirection; + +///> define macro producing for example Px_y = NRF_GPIO_PIN_MAP(x, y) +#define PinDef(port_num, pin_num) P##port_num##_##pin_num = NRF_GPIO_PIN_MAP(port_num, pin_num) + + +typedef enum { + PinDef(0 , 0), // P0_0 = 0... + PinDef(0 , 1), + PinDef(0 , 2), + PinDef(0 , 3), + PinDef(0 , 4), + PinDef(0 , 5), + PinDef(0 , 6), + PinDef(0 , 7), + PinDef(0 , 8), + PinDef(0 , 9), + PinDef(0 , 10), + PinDef(0 , 11), + PinDef(0 , 12), + PinDef(0 , 13), + PinDef(0 , 14), + PinDef(0 , 15), + PinDef(0 , 16), + PinDef(0 , 17), + PinDef(0 , 18), + PinDef(0 , 19), + PinDef(0 , 20), + PinDef(0 , 21), + PinDef(0 , 22), + PinDef(0 , 23), + PinDef(0 , 24), + PinDef(0 , 25), + PinDef(0 , 26), + PinDef(0 , 27), + PinDef(0 , 28), + PinDef(0 , 29), + PinDef(0 , 30), + PinDef(0 , 31), + + PinDef(1 , 0), //P1_1 = 32... + PinDef(1 , 1), + PinDef(1 , 2), + PinDef(1 , 3), + PinDef(1 , 4), + PinDef(1 , 5), + PinDef(1 , 6), + PinDef(1 , 7), + PinDef(1 , 8), + PinDef(1 , 9), + PinDef(1 , 10), + PinDef(1 , 11), + PinDef(1 , 12), + PinDef(1 , 13), + PinDef(1 , 14), + PinDef(1 , 15), + + // Port0 + p0 = P0_0, + p1 = P0_1, + p2 = P0_2, + p3 = P0_3, + p4 = P0_4, + p5 = P0_5, + p6 = P0_6, + p7 = P0_7, + p8 = P0_8, + p9 = P0_9, + p10 = P0_10, + p11 = P0_11, + p12 = P0_12, + p13 = P0_13, + p14 = P0_14, + p15 = P0_15, + p16 = P0_16, + p17 = P0_17, + p18 = P0_18, + p19 = P0_19, + p20 = P0_20, + p21 = P0_21, + p22 = P0_22, + p23 = P0_23, + p24 = P0_24, + p25 = P0_25, + p26 = P0_26, + p27 = P0_27, + p28 = P0_28, + p29 = P0_29, + p30 = P0_30, + p31 = P0_31, + + // Port1 + p32 = P1_0, + p33 = P1_1, + p34 = P1_2, + p35 = P1_3, + p36 = P1_4, + p37 = P1_5, + p38 = P1_6, + p39 = P1_7, + p40 = P1_8, + p41 = P1_9, + p42 = P1_10, + p43 = P1_11, + p44 = P1_12, + p45 = P1_13, + p46 = P1_14, + p47 = P1_15, + + TX_PIN_NUMBER = P1_11, + RX_PIN_NUMBER = P1_10, + + + // mBed interface Pins + USBTX = TX_PIN_NUMBER, + USBRX = RX_PIN_NUMBER, + STDIO_UART_TX = TX_PIN_NUMBER, + STDIO_UART_RX = RX_PIN_NUMBER, + + SPI_PSELMOSI0 = P0_20, + SPI_PSELMISO0 = P0_21, + SPI_PSELSCK0 = P0_19, + SPI_PSELSS0 = P1_12, + + SPIS_PSELMOSI = P0_20, + SPIS_PSELMISO = P0_21, + SPIS_PSELSCK = P0_19, + SPIS_PSELSS = P1_12, + + I2C_SDA0 = P1_9, + I2C_SCL0 = P0_11, + I2C_SDA1 = P0_31, + I2C_SCL1 = P0_2, + + /**** QSPI pins ****/ + QSPI1_IO0 = P0_20, + QSPI1_IO1 = P0_21, + QSPI1_IO2 = P0_22, + QSPI1_IO3 = P0_23, + QSPI1_SCK = P0_19, + QSPI1_CSN = P0_17, + + /**** QSPI FLASH pins ****/ + QSPI_FLASH1_IO0 = QSPI1_IO0, + QSPI_FLASH1_IO1 = QSPI1_IO1, + QSPI_FLASH1_IO2 = QSPI1_IO2, + QSPI_FLASH1_IO3 = QSPI1_IO3, + QSPI_FLASH1_SCK = QSPI1_SCK, + QSPI_FLASH1_CSN = QSPI1_CSN, + + // Not connected + NC = (int)0xFFFFFFFF, + + STDIO_UART_RTS = NC, + STDIO_UART_CTS = NC, + + LED1 = NC, + LED2 = NC, + LED3 = NC, + LED4 = NC, + BUTTON1 = NC, + BUTTON2 = NC, + BUTTON3 = NC, + BUTTON4 = NC, +} PinName; + +typedef enum { + PullNone = 0, + PullDown = 1, + PullUp = 3, + PullDefault = PullUp +} PinMode; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_EDGE_CONTROL/device.h b/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_EDGE_CONTROL/device.h new file mode 100644 index 000000000..2427e752e --- /dev/null +++ b/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_EDGE_CONTROL/device.h @@ -0,0 +1,38 @@ +// The 'features' section in 'target.json' is now used to create the device's hardware preprocessor switches. +// Check the 'features' section of the target description in 'targets.json' for more details. +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MBED_DEVICE_H +#define MBED_DEVICE_H + + + + + + + + + + + + + + + + +#include "objects.h" + +#endif diff --git a/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_OUTDOOR_CARRIER/PinNames.h b/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_OUTDOOR_CARRIER/PinNames.h new file mode 100644 index 000000000..7f67d1559 --- /dev/null +++ b/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_OUTDOOR_CARRIER/PinNames.h @@ -0,0 +1,207 @@ +/* + * Copyright (c) 2019 Arduino SA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MBED_PINNAMES_H +#define MBED_PINNAMES_H + +#include "cmsis.h" +#include "nrf_gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + PIN_INPUT, + PIN_OUTPUT +} PinDirection; + +///> define macro producing for example Px_y = NRF_GPIO_PIN_MAP(x, y) +#define PinDef(port_num, pin_num) P##port_num##_##pin_num = NRF_GPIO_PIN_MAP(port_num, pin_num) + + +typedef enum { + PinDef(0 , 0), // P0_0 = 0... + PinDef(0 , 1), + PinDef(0 , 2), + PinDef(0 , 3), + PinDef(0 , 4), + PinDef(0 , 5), + PinDef(0 , 6), + PinDef(0 , 7), + PinDef(0 , 8), + PinDef(0 , 9), + PinDef(0 , 10), + PinDef(0 , 11), + PinDef(0 , 12), + PinDef(0 , 13), + PinDef(0 , 14), + PinDef(0 , 15), + PinDef(0 , 16), + PinDef(0 , 17), + PinDef(0 , 18), + PinDef(0 , 19), + PinDef(0 , 20), + PinDef(0 , 21), + PinDef(0 , 22), + PinDef(0 , 23), + PinDef(0 , 24), + PinDef(0 , 25), + PinDef(0 , 26), + PinDef(0 , 27), + PinDef(0 , 28), + PinDef(0 , 29), + PinDef(0 , 30), + PinDef(0 , 31), + + PinDef(1 , 0), //P1_1 = 32... + PinDef(1 , 1), + PinDef(1 , 2), + PinDef(1 , 3), + PinDef(1 , 4), + PinDef(1 , 5), + PinDef(1 , 6), + PinDef(1 , 7), + PinDef(1 , 8), + PinDef(1 , 9), + PinDef(1 , 10), + PinDef(1 , 11), + PinDef(1 , 12), + PinDef(1 , 13), + PinDef(1 , 14), + PinDef(1 , 15), + + // Port0 + p0 = P0_0, + p1 = P0_1, + p2 = P0_2, + p3 = P0_3, + p4 = P0_4, + p5 = P0_5, + p6 = P0_6, + p7 = P0_7, + p8 = P0_8, + p9 = P0_9, + p10 = P0_10, + p11 = P0_11, + p12 = P0_12, + p13 = P0_13, + p14 = P0_14, + p15 = P0_15, + p16 = P0_16, + p17 = P0_17, + p18 = P0_18, + p19 = P0_19, + p20 = P0_20, + p21 = P0_21, + p22 = P0_22, + p23 = P0_23, + p24 = P0_24, + p25 = P0_25, + p26 = P0_26, + p27 = P0_27, + p28 = P0_28, + p29 = P0_29, + p30 = P0_30, + p31 = P0_31, + + // Port1 + p32 = P1_0, + p33 = P1_1, + p34 = P1_2, + p35 = P1_3, + p36 = P1_4, + p37 = P1_5, + p38 = P1_6, + p39 = P1_7, + p40 = P1_8, + p41 = P1_9, + p42 = P1_10, + p43 = P1_11, + p44 = P1_12, + p45 = P1_13, + p46 = P1_14, + p47 = P1_15, + + TX_PIN_NUMBER = P1_11, + RX_PIN_NUMBER = P1_10, + + + // mBed interface Pins + USBTX = TX_PIN_NUMBER, + USBRX = RX_PIN_NUMBER, + STDIO_UART_TX = TX_PIN_NUMBER, + STDIO_UART_RX = RX_PIN_NUMBER, + + SPI_PSELMOSI0 = P0_20, + SPI_PSELMISO0 = P0_21, + SPI_PSELSCK0 = P0_19, + SPI_PSELSS0 = P1_12, + + SPIS_PSELMOSI = P0_20, + SPIS_PSELMISO = P0_21, + SPIS_PSELSCK = P0_19, + SPIS_PSELSS = P1_12, + + I2C_SDA0 = P1_9, + I2C_SCL0 = P0_11, + I2C_SDA1 = P0_31, + I2C_SCL1 = P0_2, + + /**** QSPI pins ****/ + QSPI1_IO0 = P0_20, + QSPI1_IO1 = P0_21, + QSPI1_IO2 = P0_22, + QSPI1_IO3 = P0_23, + QSPI1_SCK = P0_19, + QSPI1_CSN = P0_17, + + /**** QSPI FLASH pins ****/ + QSPI_FLASH1_IO0 = QSPI1_IO0, + QSPI_FLASH1_IO1 = QSPI1_IO1, + QSPI_FLASH1_IO2 = QSPI1_IO2, + QSPI_FLASH1_IO3 = QSPI1_IO3, + QSPI_FLASH1_SCK = QSPI1_SCK, + QSPI_FLASH1_CSN = QSPI1_CSN, + + // Not connected + NC = (int)0xFFFFFFFF, + + STDIO_UART_RTS = NC, + STDIO_UART_CTS = NC, + + LED1 = NC, + LED2 = NC, + LED3 = NC, + LED4 = NC, + BUTTON1 = NC, + BUTTON2 = NC, + BUTTON3 = NC, + BUTTON4 = NC, +} PinName; + +typedef enum { + PullNone = 0, + PullDown = 1, + PullUp = 3, + PullDefault = PullUp +} PinMode; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_OUTDOOR_CARRIER/device.h b/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_OUTDOOR_CARRIER/device.h new file mode 100644 index 000000000..2427e752e --- /dev/null +++ b/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_OUTDOOR_CARRIER/device.h @@ -0,0 +1,38 @@ +// The 'features' section in 'target.json' is now used to create the device's hardware preprocessor switches. +// Check the 'features' section of the target description in 'targets.json' for more details. +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MBED_DEVICE_H +#define MBED_DEVICE_H + + + + + + + + + + + + + + + + +#include "objects.h" + +#endif diff --git a/mbed-os-to-arduino b/mbed-os-to-arduino index 50d665e88..bbc8e977e 100755 --- a/mbed-os-to-arduino +++ b/mbed-os-to-arduino @@ -223,7 +223,7 @@ EOF patch_spi_h () { echo -n "Patching SPI headers..." mv "$ARDUINOCOREMBED"/drivers/SPI.h "$ARDUINOCOREMBED"/drivers/SPIMaster.h - for header in mbed.h features/nfc/controllers/PN512SPITransportDriver.h components/storage/blockdevice/COMPONENT_SD/SDBlockDevice.h; do + for header in mbed.h features/nfc/controllers/PN512SPITransportDriver.h components/storage/blockdevice/COMPONENT_SD/SDBlockDevice.h components/storage/blockdevice/COMPONENT_SPIF/SPIFBlockDevice.h; do sed -i.bak 's#drivers/SPI\.h#drivers/SPIMaster\.h#g' "$ARDUINOCOREMBED"/$header rm "$ARDUINOCOREMBED"/$header.bak done diff --git a/variants/EDGE_CONTROL/cflags.txt b/variants/EDGE_CONTROL/cflags.txt new file mode 100644 index 000000000..e2a470a61 --- /dev/null +++ b/variants/EDGE_CONTROL/cflags.txt @@ -0,0 +1,25 @@ +-c +-std=gnu11 +-DAPPLICATION_ADDR=0x10000 +-DAPPLICATION_SIZE=0xf0000 +-DMBED_RAM_SIZE=0x40000 +-DMBED_RAM_START=0x20000000 +-DMBED_ROM_SIZE=0x100000 +-DMBED_ROM_START=0x0 +-DMBED_TRAP_ERRORS_ENABLED=1 +-Os +-Wall +-Wextra +-Wno-missing-field-initializers +-Wno-unused-parameter +-fdata-sections +-ffunction-sections +-fmessage-length=0 +-fno-exceptions +-fomit-frame-pointer +-funsigned-char +-g +-mcpu=cortex-m4 +-mfloat-abi=softfp +-mfpu=fpv4-sp-d16 +-mthumb diff --git a/variants/EDGE_CONTROL/conf/mbed_app.json b/variants/EDGE_CONTROL/conf/mbed_app.json new file mode 100644 index 000000000..88a8a0088 --- /dev/null +++ b/variants/EDGE_CONTROL/conf/mbed_app.json @@ -0,0 +1,33 @@ +{ + "macros": [ + "MBED_HEAP_STATS_ENABLED=1", + "MBED_STACK_STATS_ENABLED=1", + "MBED_MEM_TRACING_ENABLED=1", + "NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS=8", + "NRFX_WDT_ENABLED=1" + ], + "target_overrides": { + "*": { + "target.printf_lib": "std", + "platform.stdio-buffered-serial": true, + "platform.stdio-baud-rate": 115200, + "platform.default-serial-baud-rate": 115200, + "platform.callback-nontrivial": true, + "rtos.main-thread-stack-size": 32768, + "target.mbed_app_start": "0x10000" + }, + "ARDUINO_EDGE_CONTROL": { + "sd.SPI_MOSI": "P0_20", + "sd.SPI_MISO": "P0_21", + "sd.SPI_CLK": "P0_19", + "sd.SPI_CS": "P1_12", + "spif-driver.SPI_MOSI": "P0_20", + "spif-driver.SPI_MISO": "P0_21", + "spif-driver.SPI_CLK": "P0_19", + "spif-driver.SPI_CS": "P0_17", + "storage.storage_type": "TDB_EXTERNAL", + "storage.default_kv": "kv", + "storage_tdb_external.blockdevice": "SPIF" + } + } +} diff --git a/variants/EDGE_CONTROL/cxxflags.txt b/variants/EDGE_CONTROL/cxxflags.txt new file mode 100644 index 000000000..f43acf870 --- /dev/null +++ b/variants/EDGE_CONTROL/cxxflags.txt @@ -0,0 +1,27 @@ +-Wvla +-c +-fno-rtti +-std=gnu++14 +-DAPPLICATION_ADDR=0x10000 +-DAPPLICATION_SIZE=0xf0000 +-DMBED_RAM_SIZE=0x40000 +-DMBED_RAM_START=0x20000000 +-DMBED_ROM_SIZE=0x100000 +-DMBED_ROM_START=0x0 +-DMBED_TRAP_ERRORS_ENABLED=1 +-Os +-Wall +-Wextra +-Wno-missing-field-initializers +-Wno-unused-parameter +-fdata-sections +-ffunction-sections +-fmessage-length=0 +-fno-exceptions +-fomit-frame-pointer +-funsigned-char +-g +-mcpu=cortex-m4 +-mfloat-abi=softfp +-mfpu=fpv4-sp-d16 +-mthumb diff --git a/variants/EDGE_CONTROL/defines.txt b/variants/EDGE_CONTROL/defines.txt new file mode 100644 index 000000000..619fc62e2 --- /dev/null +++ b/variants/EDGE_CONTROL/defines.txt @@ -0,0 +1,72 @@ + +-DARM_MATH_CM4 +-DBOARD_PCA10056 +-DCMSIS_VECTAB_VIRTUAL +-DCMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\" +-DCOMPONENT_FLASHIAP=1 +-DCOMPONENT_QSPIF=1 +-DCOMPONENT_SD=1 +-DCOMPONENT_SPIF=1 +-DCONFIG_GPIO_AS_PINRESET +-DDEVICE_ANALOGIN=1 +-DDEVICE_FLASH=1 +-DDEVICE_I2C=1 +-DDEVICE_I2CSLAVE=1 +-DDEVICE_I2C_ASYNCH=1 +-DDEVICE_INTERRUPTIN=1 +-DDEVICE_LPTICKER=1 +-DDEVICE_PORTIN=1 +-DDEVICE_PORTINOUT=1 +-DDEVICE_PORTOUT=1 +-DDEVICE_PWMOUT=1 +-DDEVICE_QSPI=1 +-DDEVICE_SERIAL=1 +-DDEVICE_SERIAL_ASYNCH=1 +-DDEVICE_SERIAL_FC=1 +-DDEVICE_SLEEP=1 +-DDEVICE_SPI=1 +-DDEVICE_SPI_ASYNCH=1 +-DDEVICE_SYSTICK_CLK_OFF_DURING_SLEEP=1 +-DDEVICE_TRNG=1 +-DDEVICE_USBDEVICE=1 +-DDEVICE_USTICKER=1 +-DDEVICE_WATCHDOG=1 +-DFEATURE_BLE=1 +-DFEATURE_CRYPTOCELL310=1 +-DFEATURE_STORAGE=1 +-DMBEDTLS_CONFIG_HW_SUPPORT +-DMBED_BUILD_TIMESTAMP=1604413788.0904589 +-DMBED_MPU_CUSTOM +-DMBED_TICKLESS +-DNRF52840_XXAA +-DNRF52_PAN_20 +-DSWI_DISABLE0 +-DTARGET_ARDUINO_EDGE_CONTROL +-DTARGET_CORDIO +-DTARGET_CORDIO_LL +-DTARGET_CORTEX +-DTARGET_CORTEX_M +-DTARGET_LIKE_CORTEX_M4 +-DTARGET_LIKE_MBED +-DTARGET_M4 +-DTARGET_MCU_NRF52840 +-DTARGET_NAME=ARDUINO_EDGE_CONTROL +-DTARGET_NORDIC +-DTARGET_NORDIC_CORDIO +-DTARGET_NRF52 +-DTARGET_NRF52840 +-DTARGET_NRF5x +-DTARGET_RELEASE +-DTARGET_RTOS_M4_M7 +-DTARGET_SDK_15_0 +-DTARGET_SOFTDEVICE_NONE +-DTOOLCHAIN_GCC +-DTOOLCHAIN_GCC_ARM +-DWSF_MAX_HANDLERS=10 +-D__CMSIS_RTOS +-D__CORTEX_M4 +-D__FPU_PRESENT=1 +-D__MBED_CMSIS_RTOS_CM +-D__MBED__=1 +-DMBED_NO_GLOBAL_USING_DIRECTIVE=1 +-DUSE_ARDUINO_PINOUT diff --git a/variants/EDGE_CONTROL/includes.txt b/variants/EDGE_CONTROL/includes.txt new file mode 100644 index 000000000..759fc9a89 --- /dev/null +++ b/variants/EDGE_CONTROL/includes.txt @@ -0,0 +1,357 @@ +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/softdevice/common +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/softdevice +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/soc +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/mdk +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/hal +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers/src/prs +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers/src +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers/include +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/integration/nrfx/legacy/ble_flash +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/integration/nrfx/legacy +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/integration/nrfx +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/integration +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/util +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/twi_mngr +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/strerror +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/spi_mngr +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/queue +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/fstorage +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/fds +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/experimental_section_vars +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/experimental_memobj +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/experimental_log/src +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/experimental_log +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/delay +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/balloc +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/atomic_fifo +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries/atomic +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components/libraries +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/components +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/TARGET_SOFTDEVICE_NONE/nrf_soc_nosd +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/TARGET_SOFTDEVICE_NONE/libraries/fstorage +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/TARGET_SOFTDEVICE_NONE/libraries +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/TARGET_SOFTDEVICE_NONE +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0 +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/device +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/config +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_ARDUINO_EDGE_CONTROL +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840 +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52 +-iwithprefixbefore/mbed/targets/TARGET_NORDIC/TARGET_NRF5x +-iwithprefixbefore/mbed/targets/TARGET_NORDIC +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/RTX/Source +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/RTX/Include +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/RTX/Config +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/RTX +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5/Include +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx5 +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX/rtx4 +-iwithprefixbefore/mbed/rtos/source/TARGET_CORTEX +-iwithprefixbefore/mbed/rtos/source +-iwithprefixbefore/mbed/rtos +-iwithprefixbefore/mbed/platform/source/minimal-printf +-iwithprefixbefore/mbed/platform/source +-iwithprefixbefore/mbed/platform/internal +-iwithprefixbefore/mbed/platform/cxxsupport +-iwithprefixbefore/mbed/platform +-iwithprefixbefore/mbed/hal/usb +-iwithprefixbefore/mbed/hal +-iwithprefixbefore/mbed/features/storage/kvstore/tdbstore +-iwithprefixbefore/mbed/features/storage/kvstore/securestore +-iwithprefixbefore/mbed/features/storage/kvstore/kv_map +-iwithprefixbefore/mbed/features/storage/kvstore/include +-iwithprefixbefore/mbed/features/storage/kvstore/global_api +-iwithprefixbefore/mbed/features/storage/kvstore/filesystemstore +-iwithprefixbefore/mbed/features/storage/kvstore/direct_access_devicekey +-iwithprefixbefore/mbed/features/storage/kvstore/conf +-iwithprefixbefore/mbed/features/storage/kvstore +-iwithprefixbefore/mbed/features/storage/filesystem/littlefsv2/littlefs +-iwithprefixbefore/mbed/features/storage/filesystem/littlefsv2 +-iwithprefixbefore/mbed/features/storage/filesystem/littlefs/littlefs +-iwithprefixbefore/mbed/features/storage/filesystem/littlefs +-iwithprefixbefore/mbed/features/storage/filesystem/fat/ChaN +-iwithprefixbefore/mbed/features/storage/filesystem/fat +-iwithprefixbefore/mbed/features/storage/filesystem +-iwithprefixbefore/mbed/features/storage/blockdevice +-iwithprefixbefore/mbed/features/storage +-iwithprefixbefore/mbed/features/nfc/stack/transceiver/pn512 +-iwithprefixbefore/mbed/features/nfc/stack/transceiver +-iwithprefixbefore/mbed/features/nfc/stack/tech/type4 +-iwithprefixbefore/mbed/features/nfc/stack/tech/isodep +-iwithprefixbefore/mbed/features/nfc/stack/tech/iso7816 +-iwithprefixbefore/mbed/features/nfc/stack/tech +-iwithprefixbefore/mbed/features/nfc/stack/platform +-iwithprefixbefore/mbed/features/nfc/stack/ndef +-iwithprefixbefore/mbed/features/nfc/stack +-iwithprefixbefore/mbed/features/nfc/nfc/ndef/common +-iwithprefixbefore/mbed/features/nfc/nfc/ndef +-iwithprefixbefore/mbed/features/nfc/nfc +-iwithprefixbefore/mbed/features/nfc/controllers +-iwithprefixbefore/mbed/features/nfc/acore/acore +-iwithprefixbefore/mbed/features/nfc/acore +-iwithprefixbefore/mbed/features/nfc +-iwithprefixbefore/mbed/features/netsocket/ppp/include/polarssl +-iwithprefixbefore/mbed/features/netsocket/ppp/include +-iwithprefixbefore/mbed/features/netsocket/ppp +-iwithprefixbefore/mbed/features/netsocket +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/libNET/src +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/libNET +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/libDHCPv6 +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/ipv6_stack +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/configs/base +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/configs +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/whiteboard +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/utils +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/pan_blacklist +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/nist_aes_kw +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/nd_proxy +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mle_service +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/stack +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services/serial +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services/poll +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services/mdns +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services/dns +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/services +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/port/cpu +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/port/compiler +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack/port +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet/fnet_stack +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns/fnet +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mdns +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/mac_neighbor_table +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/load_balance +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/ieee_802_11 +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/hmac +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/fnv_hash +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/fhss +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/etx +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/blacklist +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/Trickle +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs/Neighbor_cache +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Service_Libs +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/tls_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/key_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/gkh_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/fwh_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols/eap_tls_sec_prot +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/protocols +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/kmp +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/eapol +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/TLS +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/PANA +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security/Common +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Security +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/RPL +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/NWK_INTERFACE/Include +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/NWK_INTERFACE +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MPL +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MLE +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MAC/virtual_rf +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MAC/IEEE802_15_4 +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/MAC +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/DHCPv6_client +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/DHCPv6_Server +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Core/include +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Core +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/Common_Protocols +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/BorderRouter +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/ws +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/Thread +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/NVM +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/ND +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/Mesh +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/MAC +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/IPHC_Decode +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/Fragmentation +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN/Bootstraps +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source/6LoWPAN +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/source +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/nanostack/platform +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack/nanostack +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack-eventloop/source +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack-eventloop/nanostack-event-loop/platform +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack-eventloop/nanostack-event-loop +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack-eventloop +-iwithprefixbefore/mbed/features/nanostack/sal-stack-nanostack +-iwithprefixbefore/mbed/features/nanostack/nanostack-interface +-iwithprefixbefore/mbed/features/nanostack/nanostack-hal-mbed-cmsis-rtos +-iwithprefixbefore/mbed/features/nanostack/mbed-mesh-api/source/include +-iwithprefixbefore/mbed/features/nanostack/mbed-mesh-api/source +-iwithprefixbefore/mbed/features/nanostack/mbed-mesh-api/mbed-mesh-api +-iwithprefixbefore/mbed/features/nanostack/mbed-mesh-api +-iwithprefixbefore/mbed/features/nanostack/coap-service/source/include +-iwithprefixbefore/mbed/features/nanostack/coap-service/source +-iwithprefixbefore/mbed/features/nanostack/coap-service/coap-service +-iwithprefixbefore/mbed/features/nanostack/coap-service +-iwithprefixbefore/mbed/features/nanostack +-iwithprefixbefore/mbed/features/mbedtls/platform/inc +-iwithprefixbefore/mbed/features/mbedtls/platform +-iwithprefixbefore/mbed/features/mbedtls/inc/mbedtls +-iwithprefixbefore/mbed/features/mbedtls/inc +-iwithprefixbefore/mbed/features/mbedtls +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/netif +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/lwip/prot +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/lwip/priv +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/lwip +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat/posix/sys +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat/posix/net +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat/posix/arpa +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat/posix +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include/compat +-iwithprefixbefore/mbed/features/lwipstack/lwip/src/include +-iwithprefixbefore/mbed/features/lwipstack/lwip/src +-iwithprefixbefore/mbed/features/lwipstack/lwip-sys/arch +-iwithprefixbefore/mbed/features/lwipstack/lwip-sys +-iwithprefixbefore/mbed/features/lwipstack/lwip +-iwithprefixbefore/mbed/features/lwipstack +-iwithprefixbefore/mbed/features/lorawan/system +-iwithprefixbefore/mbed/features/lorawan/lorastack/phy +-iwithprefixbefore/mbed/features/lorawan/lorastack/mac +-iwithprefixbefore/mbed/features/lorawan/lorastack +-iwithprefixbefore/mbed/features/lorawan +-iwithprefixbefore/mbed/features/frameworks/utest/utest +-iwithprefixbefore/mbed/features/frameworks/utest +-iwithprefixbefore/mbed/features/frameworks/unity/unity +-iwithprefixbefore/mbed/features/frameworks/unity +-iwithprefixbefore/mbed/features/frameworks/nanostack-libservice/mbed-client-libservice/platform +-iwithprefixbefore/mbed/features/frameworks/nanostack-libservice/mbed-client-libservice +-iwithprefixbefore/mbed/features/frameworks/nanostack-libservice +-iwithprefixbefore/mbed/features/frameworks/mbed-trace/mbed-trace +-iwithprefixbefore/mbed/features/frameworks/mbed-trace +-iwithprefixbefore/mbed/features/frameworks/mbed-coap/source/include +-iwithprefixbefore/mbed/features/frameworks/mbed-coap/source +-iwithprefixbefore/mbed/features/frameworks/mbed-coap/mbed-coap +-iwithprefixbefore/mbed/features/frameworks/mbed-coap +-iwithprefixbefore/mbed/features/frameworks/mbed-client-randlib/mbed-client-randlib/platform +-iwithprefixbefore/mbed/features/frameworks/mbed-client-randlib/mbed-client-randlib +-iwithprefixbefore/mbed/features/frameworks/mbed-client-randlib +-iwithprefixbefore/mbed/features/frameworks/mbed-client-cli/mbed-client-cli +-iwithprefixbefore/mbed/features/frameworks/mbed-client-cli +-iwithprefixbefore/mbed/features/frameworks/greentea-client/greentea-client +-iwithprefixbefore/mbed/features/frameworks/greentea-client +-iwithprefixbefore/mbed/features/frameworks +-iwithprefixbefore/mbed/features/device_key/source +-iwithprefixbefore/mbed/features/device_key +-iwithprefixbefore/mbed/features/cryptocell/FEATURE_CRYPTOCELL310/include +-iwithprefixbefore/mbed/features/cryptocell/FEATURE_CRYPTOCELL310/TARGET_MCU_NRF52840 +-iwithprefixbefore/mbed/features/cryptocell/FEATURE_CRYPTOCELL310 +-iwithprefixbefore/mbed/features/cellular/framework/targets/UBLOX/PPP +-iwithprefixbefore/mbed/features/cellular/framework/targets/UBLOX/N2XX +-iwithprefixbefore/mbed/features/cellular/framework/targets/UBLOX/AT +-iwithprefixbefore/mbed/features/cellular/framework/targets/UBLOX +-iwithprefixbefore/mbed/features/cellular/framework/targets/TELIT/ME910 +-iwithprefixbefore/mbed/features/cellular/framework/targets/TELIT/ME310 +-iwithprefixbefore/mbed/features/cellular/framework/targets/TELIT/HE910 +-iwithprefixbefore/mbed/features/cellular/framework/targets/TELIT +-iwithprefixbefore/mbed/features/cellular/framework/targets/RiotMicro/AT +-iwithprefixbefore/mbed/features/cellular/framework/targets/RiotMicro +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/UG96 +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/M26 +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/EC2X +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/BG96 +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL/BC95 +-iwithprefixbefore/mbed/features/cellular/framework/targets/QUECTEL +-iwithprefixbefore/mbed/features/cellular/framework/targets/MultiTech/DragonflyNano/PPP +-iwithprefixbefore/mbed/features/cellular/framework/targets/MultiTech/DragonflyNano +-iwithprefixbefore/mbed/features/cellular/framework/targets/MultiTech +-iwithprefixbefore/mbed/features/cellular/framework/targets/GENERIC/GENERIC_AT3GPP +-iwithprefixbefore/mbed/features/cellular/framework/targets/GENERIC +-iwithprefixbefore/mbed/features/cellular/framework/targets/GEMALTO/CINTERION +-iwithprefixbefore/mbed/features/cellular/framework/targets/GEMALTO +-iwithprefixbefore/mbed/features/cellular/framework/targets/Altair/ALT1250/PPP +-iwithprefixbefore/mbed/features/cellular/framework/targets/Altair/ALT1250 +-iwithprefixbefore/mbed/features/cellular/framework/targets/Altair +-iwithprefixbefore/mbed/features/cellular/framework/targets +-iwithprefixbefore/mbed/features/cellular/framework/device +-iwithprefixbefore/mbed/features/cellular/framework/common +-iwithprefixbefore/mbed/features/cellular/framework/AT +-iwithprefixbefore/mbed/features/cellular/framework/API +-iwithprefixbefore/mbed/features/cellular/framework +-iwithprefixbefore/mbed/features/cellular +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack_adaptation +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty/uecc +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty/nordic-bsp/components/boards +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty/nordic-bsp/components +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty/nordic-bsp +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/thirdparty +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/common/sch +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/common/bb +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/common +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/sch +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/lhci +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/lctr +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble/bb +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources/ble +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/sources +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/include/common +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/include/ble +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack/controller +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL/stack +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO_LL +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack_adaptation +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/wsf/include/util +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/wsf/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/wsf +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/platform/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/platform +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/smp +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/l2c +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/hci +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/dm +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/cfg +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack/att +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/stack +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/sec/common +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/sec +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/hci/dual_chip +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources/hci +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/sources +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host/include +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack/ble-host +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/stack +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/source +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO/driver +-iwithprefixbefore/mbed/features/FEATURE_BLE/targets/TARGET_CORDIO +-iwithprefixbefore/mbed/features/FEATURE_BLE/source/generic +-iwithprefixbefore/mbed/features/FEATURE_BLE/source/gap +-iwithprefixbefore/mbed/features/FEATURE_BLE/source +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/services +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/pal +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/generic +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/gap +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble/common +-iwithprefixbefore/mbed/features/FEATURE_BLE/ble +-iwithprefixbefore/mbed/features/FEATURE_BLE +-iwithprefixbefore/mbed/features +-iwithprefixbefore/mbed/events/internal +-iwithprefixbefore/mbed/events +-iwithprefixbefore/mbed/drivers/internal +-iwithprefixbefore/mbed/drivers +-iwithprefixbefore/mbed/components/wifi/esp8266-driver/ESP8266 +-iwithprefixbefore/mbed/components/wifi/esp8266-driver +-iwithprefixbefore/mbed/components/wifi +-iwithprefixbefore/mbed/components/storage/blockdevice/COMPONENT_SPIF +-iwithprefixbefore/mbed/components/storage/blockdevice/COMPONENT_SD +-iwithprefixbefore/mbed/components/storage/blockdevice/COMPONENT_QSPIF +-iwithprefixbefore/mbed/components/storage/blockdevice/COMPONENT_FLASHIAP/COMMON +-iwithprefixbefore/mbed/components/storage/blockdevice/COMPONENT_FLASHIAP +-iwithprefixbefore/mbed/components/802.15.4_RF/stm-s2lp-rf-driver/stm-s2lp-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/stm-s2lp-rf-driver/source +-iwithprefixbefore/mbed/components/802.15.4_RF/stm-s2lp-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/mcr20a-rf-driver/source +-iwithprefixbefore/mbed/components/802.15.4_RF/mcr20a-rf-driver/mcr20a-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/mcr20a-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/atmel-rf-driver/source +-iwithprefixbefore/mbed/components/802.15.4_RF/atmel-rf-driver/atmel-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF/atmel-rf-driver +-iwithprefixbefore/mbed/components/802.15.4_RF +-iwithprefixbefore/mbed/components +-iwithprefixbefore/mbed/cmsis/TARGET_CORTEX_M +-iwithprefixbefore/mbed/cmsis +-iwithprefixbefore/mbed diff --git a/variants/EDGE_CONTROL/ldflags.txt b/variants/EDGE_CONTROL/ldflags.txt new file mode 100644 index 000000000..510613aa2 --- /dev/null +++ b/variants/EDGE_CONTROL/ldflags.txt @@ -0,0 +1,22 @@ +-DMBED_APP_SIZE=0xf0000 +-DMBED_APP_START=0x10000 +-DMBED_BOOT_STACK_SIZE=1024 +-DMBED_RAM_SIZE=0x40000 +-DMBED_RAM_START=0x20000000 +-DMBED_ROM_SIZE=0x100000 +-DMBED_ROM_START=0x0 +-DXIP_ENABLE=0 +-Wl,--gc-sections +-Wl,--wrap,_calloc_r +-Wl,--wrap,_free_r +-Wl,--wrap,_malloc_r +-Wl,--wrap,_memalign_r +-Wl,--wrap,_realloc_r +-Wl,--wrap,atexit +-Wl,--wrap,exit +-Wl,--wrap,main +-Wl,-n +-mcpu=cortex-m4 +-mfloat-abi=softfp +-mfpu=fpv4-sp-d16 +-mthumb diff --git a/variants/EDGE_CONTROL/libs/libcc_310_core.a b/variants/EDGE_CONTROL/libs/libcc_310_core.a new file mode 100644 index 000000000..bace518f9 Binary files /dev/null and b/variants/EDGE_CONTROL/libs/libcc_310_core.a differ diff --git a/variants/EDGE_CONTROL/libs/libcc_310_ext.a b/variants/EDGE_CONTROL/libs/libcc_310_ext.a new file mode 100644 index 000000000..64c57cceb Binary files /dev/null and b/variants/EDGE_CONTROL/libs/libcc_310_ext.a differ diff --git a/variants/EDGE_CONTROL/libs/libcc_310_trng.a b/variants/EDGE_CONTROL/libs/libcc_310_trng.a new file mode 100644 index 000000000..df24c2c2c Binary files /dev/null and b/variants/EDGE_CONTROL/libs/libcc_310_trng.a differ diff --git a/variants/EDGE_CONTROL/libs/libmbed.a b/variants/EDGE_CONTROL/libs/libmbed.a new file mode 100644 index 000000000..89c487ebf Binary files /dev/null and b/variants/EDGE_CONTROL/libs/libmbed.a differ diff --git a/variants/EDGE_CONTROL/linker_script.ld b/variants/EDGE_CONTROL/linker_script.ld new file mode 100644 index 000000000..932f0d730 --- /dev/null +++ b/variants/EDGE_CONTROL/linker_script.ld @@ -0,0 +1,154 @@ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x10000, LENGTH = 0xf0000 + RAM_NVIC (rwx) : ORIGIN = 0x20000000, LENGTH = 0x100 + RAM_CRASH_DATA (rwx) : ORIGIN = (0x20000000 + 0x100), LENGTH = 0x100 + RAM (rwx) : ORIGIN = ((0x20000000 + 0x100) + 0x100), LENGTH = (0x40000 - (0x100 + 0x100)) +} +OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +ENTRY(Reset_Handler) +SECTIONS +{ + .text : + { + KEEP(*(.Vectors)) + *(.text*) + KEEP(*(.init)) + KEEP(*(.fini)) + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + *(.rodata*) + KEEP(*(.eh_frame*)) + } > FLASH + .sdh_soc_observers : + { + PROVIDE(__start_sdh_soc_observers = .); + KEEP(*(SORT(.sdh_soc_observers*))) + PROVIDE(__stop_sdh_soc_observers = .); + } > FLASH + .sdh_stack_observers : + { + PROVIDE(__start_sdh_stack_observers = .); + KEEP(*(SORT(.sdh_stack_observers*))) + PROVIDE(__stop_sdh_stack_observers = .); + } > FLASH + .sdh_req_observers : + { + PROVIDE(__start_sdh_req_observers = .); + KEEP(*(SORT(.sdh_req_observers*))) + PROVIDE(__stop_sdh_req_observers = .); + } > FLASH + .sdh_state_observers : + { + PROVIDE(__start_sdh_state_observers = .); + KEEP(*(SORT(.sdh_state_observers*))) + PROVIDE(__stop_sdh_state_observers = .); + } > FLASH + .sdh_ble_observers : + { + PROVIDE(__start_sdh_ble_observers = .); + KEEP(*(SORT(.sdh_ble_observers*))) + PROVIDE(__stop_sdh_ble_observers = .); + } > FLASH + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > FLASH + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > FLASH + __exidx_end = .; + __etext = .; + .data : AT (__etext) + { + __data_start__ = .; + *(vtable) + *(.data*) + . = ALIGN(8); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(8); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(8); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(8); + PROVIDE(__start_fs_data = .); + KEEP(*(.fs_data)) + PROVIDE(__stop_fs_data = .); + *(.jcr) + . = ALIGN(8); + __data_end__ = .; + } > RAM + __edata = .; + .nvictable (NOLOAD) : + { + PROVIDE(__start_nvictable = .); + KEEP(*(.nvictable)) + PROVIDE(__stop_nvictable = .); + } > RAM_NVIC + .crash_data_ram : + { + . = ALIGN(8); + __CRASH_DATA_RAM__ = .; + __CRASH_DATA_RAM_START__ = .; + KEEP(*(.keep.crash_data_ram)) + *(.m_crash_data_ram) + . += 0x100; + . = ALIGN(8); + __CRASH_DATA_RAM_END__ = .; + } > RAM_CRASH_DATA + .noinit (NOLOAD) : + { + PROVIDE(__start_noinit = .); + KEEP(*(.noinit)) + PROVIDE(__stop_noinit = .); + } > RAM + .bss : + { + . = ALIGN(8); + __bss_start__ = .; + *(.bss*) + *(COMMON) + . = ALIGN(8); + __bss_end__ = .; + } > RAM + .heap (NOLOAD): + { + __end__ = .; + end = __end__; + *(.heap*); + ASSERT(. <= (ORIGIN(RAM) + LENGTH(RAM) - 1024), "heap region overflowed into stack"); + . = ORIGIN(RAM) + LENGTH(RAM) - 1024; + __HeapLimit = .; + } > RAM + PROVIDE(__heap_start = ADDR(.heap)); + PROVIDE(__heap_size = SIZEOF(.heap)); + PROVIDE(__mbed_sbrk_start = ADDR(.heap)); + PROVIDE(__mbed_krbs_start = ADDR(.heap) + SIZEOF(.heap)); + .stack (NOLOAD): + { + __StackLimit = .; + *(.stack*) + . = ORIGIN(RAM) + LENGTH(RAM); + } > RAM + __StackTop = ORIGIN(RAM) + LENGTH(RAM); + __StackLimit = __StackTop - 1024; + PROVIDE(__stack = __StackTop); +} diff --git a/variants/EDGE_CONTROL/mbed_config.h b/variants/EDGE_CONTROL/mbed_config.h new file mode 100644 index 000000000..2e502ac68 --- /dev/null +++ b/variants/EDGE_CONTROL/mbed_config.h @@ -0,0 +1,466 @@ +/* + * mbed SDK + * Copyright (c) 2017 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Automatically generated configuration file. +// DO NOT EDIT, content will be overwritten. + +#ifndef __MBED_CONFIG_DATA__ +#define __MBED_CONFIG_DATA__ + +// Configuration parameters +#define ATT_NUM_SIMUL_NTF 1 // set by library:cordio +#define ATT_NUM_SIMUL_WRITE_CMD 1 // set by library:cordio +#define BLE_FEATURE_EXTENDED_ADVERTISING 1 // set by library:ble +#define BLE_FEATURE_GATT_CLIENT 1 // set by library:ble +#define BLE_FEATURE_GATT_SERVER 1 // set by library:ble +#define BLE_FEATURE_PERIODIC_ADVERTISING 1 // set by library:ble +#define BLE_FEATURE_PHY_MANAGEMENT 1 // set by library:ble +#define BLE_FEATURE_PRIVACY 1 // set by library:ble +#define BLE_FEATURE_SECURE_CONNECTIONS 1 // set by library:ble +#define BLE_FEATURE_SECURITY 1 // set by library:ble +#define BLE_FEATURE_SIGNING 1 // set by library:ble +#define BLE_FEATURE_WHITELIST 1 // set by library:ble +#define BLE_ROLE_BROADCASTER 1 // set by library:ble +#define BLE_ROLE_CENTRAL 1 // set by library:ble +#define BLE_ROLE_OBSERVER 1 // set by library:ble +#define BLE_ROLE_PERIPHERAL 1 // set by library:ble +#define BLE_SECURITY_DATABASE_FILESYSTEM 1 // set by library:ble +#define BLE_SECURITY_DATABASE_KVSTORE 0 // set by library:ble +#define BLE_SECURITY_DATABASE_MAX_ENTRIES 5 // set by library:ble +#define CHCI_TR_CUSTOM 1 // set by library:cordio-ll +#define CHCI_TR_UART 0 // set by library:cordio-ll +#define CORDIO_ZERO_COPY_HCI 1 // set by library:cordio-nordic-ll +#define DM_CONN_MAX 3 // set by library:cordio +#define DM_NUM_ADV_SETS 3 // set by library:cordio +#define DM_NUM_PHYS 3 // set by library:cordio +#define DM_SYNC_MAX 1 // set by library:cordio +#define EATT_CONN_CHAN_MAX 1 // set by library:cordio +#define L2C_COC_CHAN_MAX 1 // set by library:cordio +#define L2C_COC_REG_MAX 1 // set by library:cordio +#define LHCI_ENABLE_VS 0 // set by library:cordio-ll +#define MBED_CONF_ALT1250_PPP_BAUDRATE 115200 // set by library:ALT1250_PPP +#define MBED_CONF_ALT1250_PPP_PROVIDE_DEFAULT 0 // set by library:ALT1250_PPP +#define MBED_CONF_ATMEL_RF_ASSUME_SPACED_SPI 0 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_FULL_SPI_SPEED 7500000 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_FULL_SPI_SPEED_BYTE_SPACING 250 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_IRQ_THREAD_STACK_SIZE 1024 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_LOW_SPI_SPEED 3750000 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_PROVIDE_DEFAULT 0 // set by library:atmel-rf +#define MBED_CONF_ATMEL_RF_USE_SPI_SPACING_API 0 // set by library:atmel-rf +#define MBED_CONF_BLE_PRESENT 1 // set by library:ble +#define MBED_CONF_CELLULAR_CONTROL_PLANE_OPT 0 // set by library:cellular +#define MBED_CONF_CELLULAR_DEBUG_AT 0 // set by library:cellular +#define MBED_CONF_CELLULAR_MAX_CP_DATA_RECV_LEN 1358 // set by library:cellular +#define MBED_CONF_CELLULAR_RANDOM_MAX_START_DELAY 0 // set by library:cellular +#define MBED_CONF_CELLULAR_USE_APN_LOOKUP 0 // set by library:cellular +#define MBED_CONF_CELLULAR_USE_SMS 0 // set by library:cellular +#define MBED_CONF_CORDIO_DESIRED_ATT_MTU 23 // set by library:cordio +#define MBED_CONF_CORDIO_LL_DEFAULT_EXTENDED_ADVERTISING_FRAGMENTATION_SIZE 64 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_EXTENDED_ADVERTISING_SIZE 251 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_MAX_ACL_SIZE 256 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_MAX_ADVERTISING_REPORTS 4 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_MAX_ADVERTISING_SETS 3 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_MAX_SCAN_REQUEST_EVENTS 4 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_NRF52840_CRYPTOCELL310_ACCELERATION 1 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_NRF52840_EXTENDED_ADVERTISING_SIZE 512 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_NRF52840_MAX_ACL_SIZE 256 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_NRF52840_PHY_CODED_SUPPORT 1 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_NRF52840_TX_BUFFERS 4 // set by library:cordio-ll-nrf52840 +#define MBED_CONF_CORDIO_LL_PHY_2M_SUPPORT 1 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_PHY_CODED_SUPPORT 0 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_RX_BUFFERS 4 // set by library:cordio-ll +#define MBED_CONF_CORDIO_LL_TX_BUFFERS 4 // set by library:cordio-ll +#define MBED_CONF_CORDIO_MAX_PREPARED_WRITES 4 // set by library:cordio +#define MBED_CONF_CORDIO_PREFERRED_TX_POWER 0 // set by library:cordio +#define MBED_CONF_CORDIO_ROUTE_UNHANDLED_COMMAND_COMPLETE_EVENTS 1 // set by library:cordio +#define MBED_CONF_CORDIO_RX_ACL_BUFFER_SIZE 70 // set by library:cordio +#define MBED_CONF_CRYPTOCELL310_PRESENT 1 // set by library:cryptocell310 +#define MBED_CONF_DRIVERS_QSPI_CSN QSPI_FLASH1_CSN // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_IO0 QSPI_FLASH1_IO0 // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_IO1 QSPI_FLASH1_IO1 // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_IO2 QSPI_FLASH1_IO2 // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_IO3 QSPI_FLASH1_IO3 // set by library:drivers +#define MBED_CONF_DRIVERS_QSPI_SCK QSPI_FLASH1_SCK // set by library:drivers +#define MBED_CONF_DRIVERS_UART_SERIAL_RXBUF_SIZE 256 // set by library:drivers +#define MBED_CONF_DRIVERS_UART_SERIAL_TXBUF_SIZE 256 // set by library:drivers +#define MBED_CONF_ESP8266_BUILT_IN_DNS 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_DEBUG 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_POWER_OFF_TIME_MS 3 // set by library:esp8266 +#define MBED_CONF_ESP8266_POWER_ON_POLARITY 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_POWER_ON_TIME_MS 3 // set by library:esp8266 +#define MBED_CONF_ESP8266_PROVIDE_DEFAULT 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_SERIAL_BAUDRATE 115200 // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_ENABLE 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_SERVER0 "" // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_SERVER1 "" // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_SERVER2 "" // set by library:esp8266 +#define MBED_CONF_ESP8266_SNTP_TIMEZONE 0 // set by library:esp8266 +#define MBED_CONF_ESP8266_SOCKET_BUFSIZE 8192 // set by library:esp8266 +#define MBED_CONF_EVENTS_PRESENT 1 // set by library:events +#define MBED_CONF_EVENTS_SHARED_DISPATCH_FROM_APPLICATION 0 // set by library:events +#define MBED_CONF_EVENTS_SHARED_EVENTSIZE 768 // set by library:events +#define MBED_CONF_EVENTS_SHARED_HIGHPRIO_EVENTSIZE 256 // set by library:events +#define MBED_CONF_EVENTS_SHARED_HIGHPRIO_STACKSIZE 1024 // set by library:events +#define MBED_CONF_EVENTS_SHARED_STACKSIZE 2048 // set by library:events +#define MBED_CONF_EVENTS_USE_LOWPOWER_TIMER_TICKER 0 // set by library:events +#define MBED_CONF_FAT_CHAN_FFS_DBG 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_CODE_PAGE 437 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_EXFAT 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_HEAPBUF 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_LOCK 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_MINIMIZE 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_NOFSINFO 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_NORTC 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_READONLY 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_REENTRANT 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_RPATH 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_TIMEOUT 1000 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_FS_TINY 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_LFN_BUF 255 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_LFN_UNICODE 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_MAX_LFN 255 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_MAX_SS 4096 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_MIN_SS 512 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_MULTI_PARTITION 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_NORTC_MDAY 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_NORTC_MON 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_NORTC_YEAR 2017 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_SFN_BUF 12 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_STRF_ENCODE 3 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_STR_VOLUME_ID 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_SYNC_T HANDLE // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_CHMOD 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_EXPAND 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_FASTSEEK 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_FIND 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_FORWARD 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_LABEL 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_LFN 3 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_MKFS 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_STRFUNC 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_USE_TRIM 1 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_VOLUMES 4 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FF_VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3" // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FLUSH_ON_NEW_CLUSTER 0 // set by library:fat_chan +#define MBED_CONF_FAT_CHAN_FLUSH_ON_NEW_SECTOR 1 // set by library:fat_chan +#define MBED_CONF_FILESYSTEM_PRESENT 1 // set by library:filesystem +#define MBED_CONF_FLASHIAP_BLOCK_DEVICE_BASE_ADDRESS 0xFFFFFFFF // set by library:flashiap-block-device +#define MBED_CONF_FLASHIAP_BLOCK_DEVICE_SIZE 0 // set by library:flashiap-block-device +#define MBED_CONF_GEMALTO_CINTERION_BAUDRATE 115200 // set by library:GEMALTO_CINTERION +#define MBED_CONF_GEMALTO_CINTERION_PROVIDE_DEFAULT 0 // set by library:GEMALTO_CINTERION +#define MBED_CONF_GENERIC_AT3GPP_BAUDRATE 115200 // set by library:GENERIC_AT3GPP +#define MBED_CONF_GENERIC_AT3GPP_PROVIDE_DEFAULT 0 // set by library:GENERIC_AT3GPP +#define MBED_CONF_LORA_ADR_ON 1 // set by library:lora +#define MBED_CONF_LORA_APPLICATION_EUI {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_APPLICATION_KEY {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_APPSKEY {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_APP_PORT 15 // set by library:lora +#define MBED_CONF_LORA_AUTOMATIC_UPLINK_MESSAGE 1 // set by library:lora +#define MBED_CONF_LORA_DEVICE_ADDRESS 0x00000000 // set by library:lora +#define MBED_CONF_LORA_DEVICE_EUI {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_DOWNLINK_PREAMBLE_LENGTH 5 // set by library:lora +#define MBED_CONF_LORA_DUTY_CYCLE_ON 1 // set by library:lora +#define MBED_CONF_LORA_DUTY_CYCLE_ON_JOIN 1 // set by library:lora +#define MBED_CONF_LORA_FSB_MASK {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF} // set by library:lora +#define MBED_CONF_LORA_FSB_MASK_CHINA {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF} // set by library:lora +#define MBED_CONF_LORA_LBT_ON 0 // set by library:lora +#define MBED_CONF_LORA_MAX_SYS_RX_ERROR 5 // set by library:lora +#define MBED_CONF_LORA_NB_TRIALS 12 // set by library:lora +#define MBED_CONF_LORA_NWKSKEY {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // set by library:lora +#define MBED_CONF_LORA_OVER_THE_AIR_ACTIVATION 1 // set by library:lora +#define MBED_CONF_LORA_PHY EU868 // set by library:lora +#define MBED_CONF_LORA_PUBLIC_NETWORK 1 // set by library:lora +#define MBED_CONF_LORA_TX_MAX_SIZE 64 // set by library:lora +#define MBED_CONF_LORA_UPLINK_PREAMBLE_LENGTH 8 // set by library:lora +#define MBED_CONF_LORA_WAKEUP_TIME 5 // set by library:lora +#define MBED_CONF_LWIP_ADDR_TIMEOUT 5 // set by library:lwip +#define MBED_CONF_LWIP_ADDR_TIMEOUT_MODE 1 // set by library:lwip +#define MBED_CONF_LWIP_DEBUG_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_DEFAULT_THREAD_STACKSIZE 512 // set by library:lwip +#define MBED_CONF_LWIP_DHCP_TIMEOUT 60 // set by library:lwip +#define MBED_CONF_LWIP_ENABLE_PPP_TRACE 0 // set by library:lwip +#define MBED_CONF_LWIP_ETHERNET_ENABLED 1 // set by library:lwip +#define MBED_CONF_LWIP_IPV4_ENABLED 1 // set by library:lwip +#define MBED_CONF_LWIP_IPV6_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_IP_VER_PREF 4 // set by library:lwip +#define MBED_CONF_LWIP_L3IP_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_MBOX_SIZE 8 // set by library:lwip +#define MBED_CONF_LWIP_MEMP_NUM_TCPIP_MSG_INPKT 8 // set by library:lwip +#define MBED_CONF_LWIP_MEMP_NUM_TCP_SEG 16 // set by library:lwip +#define MBED_CONF_LWIP_MEM_SIZE 1600 // set by library:lwip +#define MBED_CONF_LWIP_NUM_NETBUF 8 // set by library:lwip +#define MBED_CONF_LWIP_NUM_PBUF 8 // set by library:lwip +#define MBED_CONF_LWIP_PBUF_POOL_SIZE 5 // set by library:lwip +#define MBED_CONF_LWIP_PPP_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_PPP_IPV4_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_PPP_IPV6_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_PPP_THREAD_STACKSIZE 768 // set by library:lwip +#define MBED_CONF_LWIP_PRESENT 1 // set by library:lwip +#define MBED_CONF_LWIP_RAW_SOCKET_ENABLED 0 // set by library:lwip +#define MBED_CONF_LWIP_SOCKET_MAX 4 // set by library:lwip +#define MBED_CONF_LWIP_TCPIP_THREAD_PRIORITY osPriorityNormal // set by library:lwip +#define MBED_CONF_LWIP_TCPIP_THREAD_STACKSIZE 1200 // set by library:lwip +#define MBED_CONF_LWIP_TCP_CLOSE_TIMEOUT 1000 // set by library:lwip +#define MBED_CONF_LWIP_TCP_ENABLED 1 // set by library:lwip +#define MBED_CONF_LWIP_TCP_MAXRTX 6 // set by library:lwip +#define MBED_CONF_LWIP_TCP_MSS 536 // set by library:lwip +#define MBED_CONF_LWIP_TCP_SERVER_MAX 4 // set by library:lwip +#define MBED_CONF_LWIP_TCP_SND_BUF (2 * TCP_MSS) // set by library:lwip +#define MBED_CONF_LWIP_TCP_SOCKET_MAX 4 // set by library:lwip +#define MBED_CONF_LWIP_TCP_SYNMAXRTX 6 // set by library:lwip +#define MBED_CONF_LWIP_TCP_WND (4 * TCP_MSS) // set by library:lwip +#define MBED_CONF_LWIP_UDP_SOCKET_MAX 4 // set by library:lwip +#define MBED_CONF_LWIP_USE_MBED_TRACE 0 // set by library:lwip +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_MASK 0x7fff800 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_CHANNEL_PAGE 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_DEVICE_TYPE NET_6LOWPAN_ROUTER // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PANID_FILTER 0xffff // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY {0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf} // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_PSK_KEY_ID 1 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SECURITY_MODE NONE // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_6LOWPAN_ND_SEC_LEVEL 5 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_HEAP_SIZE 32500 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_HEAP_STAT_INFO NULL // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_MAC_NEIGH_TABLE_SIZE 32 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL 22 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_MASK 0x7fff800 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_CHANNEL_PAGE 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_COMMISSIONING_DATASET_TIMESTAMP 0x10000 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_EXTENDED_PANID {0xf1, 0xb5, 0xa1, 0xb2,0xc4, 0xd5, 0xa1, 0xbd } // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_ML_PREFIX {0xfd, 0x0, 0x0d, 0xb8, 0x0, 0x0, 0x0, 0x0} // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_NETWORK_NAME "Thread Network" // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PANID 0x0700 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_CONFIG_PSKC {0xc8, 0xa6, 0x2e, 0xae, 0xf3, 0x68, 0xf3, 0x46, 0xa9, 0x9e, 0x57, 0x85, 0x98, 0x9d, 0x1c, 0xd0} // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_DEVICE_TYPE MESH_DEVICE_TYPE_THREAD_ROUTER // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_MASTER_KEY {0x10, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff} // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_PSKD "ABCDEFGH" // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_SECURITY_POLICY 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_THREAD_USE_STATIC_LINK_CONFIG 1 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_USE_MALLOC_FOR_HEAP 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_BC_CHANNEL_FUNCTION 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_BC_DWELL_INTERVAL 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_BC_FIXED_CHANNEL 65535 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_BC_INTERVAL 0 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_DEVICE_TYPE MESH_DEVICE_TYPE_WISUN_ROUTER // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_NETWORK_NAME "Wi-SUN Network" // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_OPERATING_CLASS 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_OPERATING_MODE 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_REGULATORY_DOMAIN 3 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_UC_CHANNEL_FUNCTION 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_UC_DWELL_INTERVAL 255 // set by library:mbed-mesh-api +#define MBED_CONF_MBED_MESH_API_WISUN_UC_FIXED_CHANNEL 65535 // set by library:mbed-mesh-api +#define MBED_CONF_MCR20A_PROVIDE_DEFAULT 0 // set by library:mcr20a +#define MBED_CONF_NANOSTACK_CONFIGURATION nanostack_full // set by library:nanostack +#define MBED_CONF_NANOSTACK_HAL_CRITICAL_SECTION_USABLE_FROM_INTERRUPT 0 // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_EVENT_LOOP_DISPATCH_FROM_APPLICATION 0 // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_EVENT_LOOP_THREAD_STACK_SIZE 6144 // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_EVENT_LOOP_USE_MBED_EVENTS 0 // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_KVSTORE_PATH "/kv/" // set by library:nanostack-hal +#define MBED_CONF_NANOSTACK_HAL_USE_KVSTORE 0 // set by library:nanostack-hal +#define MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_MODE_CONFIG 0 // set by target:MCU_NRF52840 +#define MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_TIMER_INTERVAL 16 // set by target:MCU_NRF52840 +#define MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC NRF_LF_SRC_XTAL // set by target:MCU_NRF52840 +#define MBED_CONF_NSAPI_DEFAULT_MESH_TYPE THREAD // set by library:nsapi +#define MBED_CONF_NSAPI_DEFAULT_STACK LWIP // set by library:nsapi +#define MBED_CONF_NSAPI_DEFAULT_WIFI_SECURITY NONE // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_ADDRESSES_LIMIT 10 // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_CACHE_SIZE 3 // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_RESPONSE_WAIT_TIME 10000 // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_RETRIES 1 // set by library:nsapi +#define MBED_CONF_NSAPI_DNS_TOTAL_ATTEMPTS 10 // set by library:nsapi +#define MBED_CONF_NSAPI_PRESENT 1 // set by library:nsapi +#define MBED_CONF_NSAPI_SOCKET_STATS_ENABLED 0 // set by library:nsapi +#define MBED_CONF_NSAPI_SOCKET_STATS_MAX_COUNT 10 // set by library:nsapi +#define MBED_CONF_PLATFORM_CALLBACK_COMPARABLE 1 // set by library:platform +#define MBED_CONF_PLATFORM_CALLBACK_NONTRIVIAL 1 // set by application[*] +#define MBED_CONF_PLATFORM_CRASH_CAPTURE_ENABLED 0 // set by library:platform +#define MBED_CONF_PLATFORM_CTHUNK_COUNT_MAX 8 // set by library:platform +#define MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE 115200 // set by application[*] +#define MBED_CONF_PLATFORM_ERROR_ALL_THREADS_INFO 0 // set by library:platform +#define MBED_CONF_PLATFORM_ERROR_FILENAME_CAPTURE_ENABLED 0 // set by library:platform +#define MBED_CONF_PLATFORM_ERROR_HIST_ENABLED 0 // set by library:platform +#define MBED_CONF_PLATFORM_ERROR_HIST_SIZE 4 // set by library:platform +#define MBED_CONF_PLATFORM_ERROR_REBOOT_MAX 1 // set by library:platform +#define MBED_CONF_PLATFORM_FATAL_ERROR_AUTO_REBOOT_ENABLED 0 // set by library:platform +#define MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN 16 // set by library:platform +#define MBED_CONF_PLATFORM_MINIMAL_PRINTF_ENABLE_64_BIT 1 // set by library:platform +#define MBED_CONF_PLATFORM_MINIMAL_PRINTF_ENABLE_FLOATING_POINT 0 // set by library:platform +#define MBED_CONF_PLATFORM_MINIMAL_PRINTF_SET_FLOATING_POINT_MAX_DECIMALS 6 // set by library:platform +#define MBED_CONF_PLATFORM_POLL_USE_LOWPOWER_TIMER 0 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_BAUD_RATE 115200 // set by application[*] +#define MBED_CONF_PLATFORM_STDIO_BUFFERED_SERIAL 1 // set by application[*] +#define MBED_CONF_PLATFORM_STDIO_CONVERT_NEWLINES 1 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_CONVERT_TTY_NEWLINES 1 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_FLUSH_AT_EXIT 1 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_MINIMAL_CONSOLE_ONLY 0 // set by library:platform +#define MBED_CONF_PLATFORM_USE_MPU 1 // set by library:platform +#define MBED_CONF_PPP_ENABLED 0 // set by library:ppp +#define MBED_CONF_PPP_ENABLE_TRACE 0 // set by library:ppp +#define MBED_CONF_PPP_IPV4_ENABLED 1 // set by library:ppp +#define MBED_CONF_PPP_IPV6_ENABLED 0 // set by library:ppp +#define MBED_CONF_PPP_MBED_EVENT_QUEUE 0 // set by library:ppp +#define MBED_CONF_PPP_THREAD_STACKSIZE 816 // set by library:ppp +#define MBED_CONF_QSPIF_QSPI_CSN MBED_CONF_DRIVERS_QSPI_CSN // set by library:qspif +#define MBED_CONF_QSPIF_QSPI_FREQ 32000000 // set by library:qspif[MCU_NRF52840] +#define MBED_CONF_QSPIF_QSPI_IO0 MBED_CONF_DRIVERS_QSPI_IO0 // set by library:qspif +#define MBED_CONF_QSPIF_QSPI_IO1 MBED_CONF_DRIVERS_QSPI_IO1 // set by library:qspif +#define MBED_CONF_QSPIF_QSPI_IO2 MBED_CONF_DRIVERS_QSPI_IO2 // set by library:qspif +#define MBED_CONF_QSPIF_QSPI_IO3 MBED_CONF_DRIVERS_QSPI_IO3 // set by library:qspif +#define MBED_CONF_QSPIF_QSPI_MIN_PROG_SIZE 256 // set by library:qspif[MCU_NRF52840] +#define MBED_CONF_QSPIF_QSPI_MIN_READ_SIZE 4 // set by library:qspif[MCU_NRF52840] +#define MBED_CONF_QSPIF_QSPI_POLARITY_MODE 0 // set by library:qspif +#define MBED_CONF_QSPIF_QSPI_SCK MBED_CONF_DRIVERS_QSPI_SCK // set by library:qspif +#define MBED_CONF_QUECTEL_BC95_BAUDRATE 9600 // set by library:QUECTEL_BC95 +#define MBED_CONF_QUECTEL_BC95_PROVIDE_DEFAULT 0 // set by library:QUECTEL_BC95 +#define MBED_CONF_QUECTEL_BG96_BAUDRATE 115200 // set by library:QUECTEL_BG96 +#define MBED_CONF_QUECTEL_BG96_PROVIDE_DEFAULT 0 // set by library:QUECTEL_BG96 +#define MBED_CONF_QUECTEL_EC2X_BAUDRATE 115200 // set by library:QUECTEL_EC2X +#define MBED_CONF_QUECTEL_EC2X_PROVIDE_DEFAULT 0 // set by library:QUECTEL_EC2X +#define MBED_CONF_QUECTEL_EC2X_START_TIMEOUT 15000 // set by library:QUECTEL_EC2X +#define MBED_CONF_QUECTEL_M26_BAUDRATE 115200 // set by library:QUECTEL_M26 +#define MBED_CONF_QUECTEL_M26_PROVIDE_DEFAULT 0 // set by library:QUECTEL_M26 +#define MBED_CONF_QUECTEL_UG96_BAUDRATE 115200 // set by library:QUECTEL_UG96 +#define MBED_CONF_QUECTEL_UG96_PROVIDE_DEFAULT 0 // set by library:QUECTEL_UG96 +#define MBED_CONF_RM1000_AT_BAUDRATE 230400 // set by library:RM1000_AT +#define MBED_CONF_RM1000_AT_PROVIDE_DEFAULT 0 // set by library:RM1000_AT +#define MBED_CONF_RTOS_API_PRESENT 1 // set by library:rtos-api +#define MBED_CONF_RTOS_EVFLAGS_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE 512 // set by library:rtos +#define MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE_DEBUG_EXTRA 0 // set by library:rtos +#define MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE_TICKLESS_EXTRA 256 // set by library:rtos +#define MBED_CONF_RTOS_MAIN_THREAD_STACK_SIZE 32768 // set by application[*] +#define MBED_CONF_RTOS_MSGQUEUE_DATA_SIZE 0 // set by library:rtos +#define MBED_CONF_RTOS_MSGQUEUE_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_MUTEX_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_PRESENT 1 // set by library:rtos +#define MBED_CONF_RTOS_SEMAPHORE_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_THREAD_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_THREAD_STACK_SIZE 4096 // set by library:rtos +#define MBED_CONF_RTOS_THREAD_USER_STACK_SIZE 0 // set by library:rtos +#define MBED_CONF_RTOS_TIMER_NUM 0 // set by library:rtos +#define MBED_CONF_RTOS_TIMER_THREAD_STACK_SIZE 768 // set by library:rtos +#define MBED_CONF_S2LP_PROVIDE_DEFAULT 0 // set by library:s2lp +#define MBED_CONF_SARA4_PPP_BAUDRATE 115200 // set by library:SARA4_PPP +#define MBED_CONF_SARA4_PPP_PROVIDE_DEFAULT 0 // set by library:SARA4_PPP +#define MBED_CONF_SD_CMD0_IDLE_STATE_RETRIES 5 // set by library:sd +#define MBED_CONF_SD_CMD_TIMEOUT 10000 // set by library:sd +#define MBED_CONF_SD_CRC_ENABLED 0 // set by library:sd +#define MBED_CONF_SD_FSFAT_SDCARD_INSTALLED 1 // set by library:sd +#define MBED_CONF_SD_INIT_FREQUENCY 100000 // set by library:sd +#define MBED_CONF_SD_SPI_CLK P0_19 // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_SD_SPI_CS P1_12 // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_SD_SPI_MISO P0_21 // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_SD_SPI_MOSI P0_20 // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_SD_TEST_BUFFER 8192 // set by library:sd +#define MBED_CONF_SD_TRX_FREQUENCY 1000000 // set by library:sd +#define MBED_CONF_SPIF_DRIVER_DEBUG 0 // set by library:spif-driver +#define MBED_CONF_SPIF_DRIVER_SPI_CLK P0_19 // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_SPIF_DRIVER_SPI_CS P0_17 // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_SPIF_DRIVER_SPI_FREQ 40000000 // set by library:spif-driver +#define MBED_CONF_SPIF_DRIVER_SPI_MISO P0_21 // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_SPIF_DRIVER_SPI_MOSI P0_20 // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_STORAGE_DEFAULT_KV kv // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_STORAGE_FILESYSTEM_BLOCKDEVICE default // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_BASE_ADDRESS 0 // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_SIZE 0 // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_FILESYSTEM default // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_FOLDER_PATH kvstore // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_INTERNAL_BASE_ADDRESS 0 // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_MOUNT_POINT kv // set by library:storage_filesystem +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_BLOCKDEVICE default // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_EXTERNAL_BASE_ADDRESS 0 // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_EXTERNAL_SIZE 0 // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_FILESYSTEM default // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_FOLDER_PATH kvstore // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_MOUNT_POINT kv // set by library:storage_filesystem_no_rbp +#define MBED_CONF_STORAGE_FILESYSTEM_RBP_INTERNAL_SIZE 0 // set by library:storage_filesystem +#define MBED_CONF_STORAGE_STORAGE_TYPE TDB_EXTERNAL // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_STORAGE_TDB_EXTERNAL_BLOCKDEVICE SPIF // set by application[ARDUINO_EDGE_CONTROL] +#define MBED_CONF_STORAGE_TDB_EXTERNAL_EXTERNAL_BASE_ADDRESS 0 // set by library:storage_tdb_external +#define MBED_CONF_STORAGE_TDB_EXTERNAL_EXTERNAL_SIZE 0 // set by library:storage_tdb_external +#define MBED_CONF_STORAGE_TDB_EXTERNAL_INTERNAL_BASE_ADDRESS 0 // set by library:storage_tdb_external +#define MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_BLOCKDEVICE default // set by library:storage_tdb_external_no_rbp +#define MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_EXTERNAL_BASE_ADDRESS 0 // set by library:storage_tdb_external_no_rbp +#define MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_EXTERNAL_SIZE 0 // set by library:storage_tdb_external_no_rbp +#define MBED_CONF_STORAGE_TDB_EXTERNAL_RBP_INTERNAL_SIZE 0 // set by library:storage_tdb_external +#define MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_BASE_ADDRESS 0 // set by library:storage_tdb_internal +#define MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE 0 // set by library:storage_tdb_internal +#define MBED_CONF_TARGET_BOOT_STACK_SIZE 0x400 // set by library:rtos[*] +#define MBED_CONF_TARGET_CONSOLE_UART 1 // set by target:Target +#define MBED_CONF_TARGET_DEEP_SLEEP_LATENCY 0 // set by target:Target +#define MBED_CONF_TARGET_DEFAULT_ADC_VREF NAN // set by target:Target +#define MBED_CONF_TARGET_INIT_US_TICKER_AT_BOOT 0 // set by target:Target +#define MBED_CONF_TARGET_MPU_ROM_END 0x1fffffff // set by target:MCU_NRF52840 +#define MBED_CONF_TARGET_TICKLESS_FROM_US_TICKER 0 // set by target:Target +#define MBED_CONF_TARGET_UART_0_FIFO_SIZE 32 // set by target:MCU_NRF52840 +#define MBED_CONF_TARGET_UART_1_FIFO_SIZE 32 // set by target:MCU_NRF52840 +#define MBED_CONF_TARGET_XIP_ENABLE 0 // set by target:Target +#define MBED_CONF_TELIT_HE910_BAUDRATE 115200 // set by library:TELIT_HE910 +#define MBED_CONF_TELIT_HE910_PROVIDE_DEFAULT 0 // set by library:TELIT_HE910 +#define MBED_CONF_TELIT_ME310_BAUDRATE 115200 // set by library:TELIT_ME310 +#define MBED_CONF_TELIT_ME310_PROVIDE_DEFAULT 0 // set by library:TELIT_ME310 +#define MBED_CONF_TELIT_ME910_BAUDRATE 115200 // set by library:TELIT_ME910 +#define MBED_CONF_TELIT_ME910_PROVIDE_DEFAULT 0 // set by library:TELIT_ME910 +#define MBED_CONF_UBLOX_AT_BAUDRATE 115200 // set by library:UBLOX_AT +#define MBED_CONF_UBLOX_AT_PROVIDE_DEFAULT 0 // set by library:UBLOX_AT +#define MBED_CONF_UBLOX_N2XX_BAUDRATE 9600 // set by library:UBLOX_N2XX +#define MBED_CONF_UBLOX_N2XX_PROVIDE_DEFAULT 0 // set by library:UBLOX_N2XX +#define MBED_CONF_UBLOX_PPP_BAUDRATE 115200 // set by library:UBLOX_PPP +#define MBED_CONF_UBLOX_PPP_PROVIDE_DEFAULT 0 // set by library:UBLOX_PPP +#define MBED_CRC_TABLE_SIZE 16 // set by library:drivers +#define MBED_LFS2_BLOCK_CYCLES 1024 // set by library:littlefs2 +#define MBED_LFS2_BLOCK_SIZE 512 // set by library:littlefs2 +#define MBED_LFS2_CACHE_SIZE 64 // set by library:littlefs2 +#define MBED_LFS2_ENABLE_INFO 0 // set by library:littlefs2 +#define MBED_LFS2_INTRINSICS 1 // set by library:littlefs2 +#define MBED_LFS2_LOOKAHEAD_SIZE 64 // set by library:littlefs2 +#define MBED_LFS_BLOCK_SIZE 512 // set by library:littlefs +#define MBED_LFS_ENABLE_INFO 0 // set by library:littlefs +#define MBED_LFS_INTRINSICS 1 // set by library:littlefs +#define MBED_LFS_LOOKAHEAD 512 // set by library:littlefs +#define MBED_LFS_PROG_SIZE 64 // set by library:littlefs +#define MBED_LFS_READ_SIZE 64 // set by library:littlefs +#define MBED_STACK_DUMP_ENABLED 0 // set by library:platform +#define MEM_ALLOC malloc // set by library:mbed-trace +#define MEM_FREE free // set by library:mbed-trace +#define PPP_DEBUG 0 // set by library:ppp +#define SEC_CCM_CFG 1 // set by library:cordio +#define SMP_DB_MAX_DEVICES 3 // set by library:cordio +// Macros +#define BB_CLK_RATE_HZ 1000000 // defined by library:cordio-nordic-ll +#define INIT_BROADCASTER // defined by library:cordio-nordic-ll +#define INIT_CENTRAL // defined by library:cordio-nordic-ll +#define INIT_ENCRYPTED // defined by library:cordio-nordic-ll +#define INIT_OBSERVER // defined by library:cordio-nordic-ll +#define INIT_PERIPHERAL // defined by library:cordio-nordic-ll +#define LHCI_ENABLE_VS 0 // defined by library:cordio-nordic-ll +#define LL_MAX_PER_SCAN 3 // defined by library:cordio-nordic-ll +#define MBEDTLS_CIPHER_MODE_CTR // defined by library:SecureStore +#define MBEDTLS_CMAC_C // defined by library:SecureStore +#define MBED_HEAP_STATS_ENABLED 1 // defined by application +#define MBED_MEM_TRACING_ENABLED 1 // defined by application +#define MBED_STACK_STATS_ENABLED 1 // defined by application +#define NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 8 // defined by application +#define NRFX_WDT_ENABLED 1 // defined by application +#define NSAPI_PPP_AVAILABLE (MBED_CONF_PPP_ENABLED || MBED_CONF_LWIP_PPP_ENABLED) // defined by library:ppp +#define NS_USE_EXTERNAL_MBED_TLS // defined by library:nanostack +#define UNITY_INCLUDE_CONFIG_H // defined by library:utest +#define WSF_MS_PER_TICK 10 // defined by library:cordio +#define _RTE_ // defined by library:rtos + +#endif diff --git a/variants/EDGE_CONTROL/pinmode_arduino.h b/variants/EDGE_CONTROL/pinmode_arduino.h new file mode 100644 index 000000000..49686cced --- /dev/null +++ b/variants/EDGE_CONTROL/pinmode_arduino.h @@ -0,0 +1,49 @@ + +/* Define mock symbols to nullify PinMode definitions */ +#define PullNone TempPullNone +#define PullDown TempPullDown +#define PullUp TempPullUp +#define PullDefault TempPullDefault + +#define INPUT TempINPUT +#define OUTPUT TempOUTPUT +#define INPUT_PULLUP TempINPUT_PULLUP +#define INPUT_PULLDOWN TempINPUT_PULLDOWN + +/* Rename symbol PinMode into MbedPinMode for all the file PinNames.h + * Functions using PinMode should be redeclared with the correct PinMode symbol */ +#define PinMode MbedPinMode +#include "mbed_config.h" +#include "PinNames.h" +#undef PinMode + +/* Rename symbol PinMode into ArduinoPinMode for all the file Common.h + * Functions using PinMode should be redeclared with the correct PinMode symbol */ +#define PinMode ArduinoPinMode +#include "api/Common.h" +#undef PinMode + +#undef PullNone +#undef PullDown +#undef PullUp +#undef PullDefault + +#undef INPUT +#undef OUTPUT +#undef INPUT_PULLUP +#undef INPUT_PULLDOWN + +typedef enum { + PullNone = TempPullNone, + PullDown = TempPullDown, + PullUp = TempPullUp, + PullDefault = TempPullDefault, + INPUT = TempINPUT, + OUTPUT = TempOUTPUT, + INPUT_PULLUP = TempINPUT_PULLUP, + INPUT_PULLDOWN = TempINPUT_PULLDOWN +} PinMode; + +/* Redeclare Common.h functions with the updated PinMode */ +void pinMode(pin_size_t pinNumber, PinMode pinMode); + diff --git a/variants/EDGE_CONTROL/pins_arduino.h b/variants/EDGE_CONTROL/pins_arduino.h new file mode 100644 index 000000000..b87174aa5 --- /dev/null +++ b/variants/EDGE_CONTROL/pins_arduino.h @@ -0,0 +1,236 @@ +#pragma once +#include +#include + +#ifndef __PINS_ARDUINO__ +#define __PINS_ARDUINO__ + +#define ANALOG_CONFIG + +/* Analog reference options + * Different possibilities available combining Reference and Gain + */ +enum _AnalogReferenceMode +{ + AR_VDD, // 3.3 V + AR_INTERNAL, // 0.6 V + AR_INTERNAL1V2, // 1.2 V + AR_INTERNAL2V4 // 2.4 V +}; + +/* Analog acquisition time options */ +enum _AnalogAcquisitionTime +{ + AT_3_US, + AT_5_US, + AT_10_US, // Default value + AT_15_US, + AT_20_US, + AT_40_US +}; + +// Frequency of the board main oscillator +#define VARIANT_MAINOSC (32768ul) + +// Master clock frequency +#define VARIANT_MCK (64000000ul) + +// Pins +// ---- + +// Number of pins defined in PinDescription array +#ifdef __cplusplus +extern "C" unsigned int PINCOUNT_fn(); +#endif +#define PINS_COUNT (PINCOUNT_fn()) +#define NUM_DIGITAL_PINS (32u) +#define NUM_ANALOG_INPUTS (8u) +#define NUM_ANALOG_OUTPUTS (0u) + +// Triac pins +// ---------- +#define CMD_TRIAC_1 (0u) +#define CMD_TRIAC_2 (1u) +#define CMD_TRIAC_3 (2u) +#define CMD_TRIAC_4 (3u) + +#define CMD_TRIAC_CLK (0u) +#define CMD_TRIAC_DATA (1u) + +// IRQ Channels +// ------------ +#define IRQ_CH1 (4u) +#define IRQ_CH2 (5u) +#define IRQ_CH3 (6u) +#define IRQ_CH4 (7u) +#define IRQ_CH5 (8u) +#define IRQ_CH6 (9u) + +// Sensors +// ------- +#define SENSOR_CAPTURE (10u) +#define SENSOR_COMMON (11u) +#define SENSOR_CALIB (12u) +#define SENSOR_CAPTURE_A (13u) +#define SENSOR_INPUT_ADC (14u) + +// Pulse +// ------- +#define PULSE_DIRECTION (19u) +#define PULSE_STROBE (20u) + +// MKRs +// ---- +#define ON_MKR1 (21u) +#define RXD_MKR1 (22u) +#define TXD_MKR1 (23u) + +#define ON_MKR2 (24u) +#define RXD_MKR2 (25u) +#define TXD_MKR2 (26u) + + +// SD +// -- +#define PIN_SD_CS (29u) +#define PIN_SD_CLK (31u) +#define PIN_SD_MOSI (32u) +#define PIN_SD_MISO (33u) + +// QSPI +// ---- +#define PIN_QSPIDCS (30u) +#define PIN_GPIOCLK (31u) +#define PIN_QSPID0 (32u) +#define PIN_QSPID1 (33u) +#define PIN_QSPID2 (34u) +#define PIN_QSPID3 (35u) + +// Power +// ----- +#define V_REF (17u) +#define VBAT_PROBE (18u) +#define GATED_19V_ENABLE (37u) +#define GATED_VBAT_ENABLE (38u) +#define GATED_3V3_ENABLE_N (39u) +#define POWER_ON (36u) + +// Analog pins +// ----------- +#define PIN_A0 (11u) // SENSOR_COMMON +#define PIN_A1 (12u) // SENSOR_CALIB +#define PIN_A2 (13u) // SENSOR_CAPTURE_A +#define PIN_A3 (14u) // SENSOR_INPUT_ADC +#define PIN_A4 (15u) // I2C_SDA_2 +#define PIN_A5 (16u) // I2C_SCL_2 +#define PIN_A6 (17u) // V_REF +#define PIN_A7 (18u) // VBAT_PROBE +static const uint8_t A0 = PIN_A0; +static const uint8_t A1 = PIN_A1; +static const uint8_t A2 = PIN_A2; +static const uint8_t A3 = PIN_A3; +static const uint8_t A4 = PIN_A4; +static const uint8_t A5 = PIN_A5; +static const uint8_t A6 = PIN_A6; +static const uint8_t A7 = PIN_A7; +#define ADC_RESOLUTION 12 + +/* + * Serial interfaces + */ +// Serial (EDBG) +#define PIN_SERIAL_RX (22u) +#define PIN_SERIAL_TX (23u) +#define PIN_SERIAL2_RX (25u) +#define PIN_SERIAL2_TX (26u) + +// SPI +#define PIN_SPI_MISO (33u) +#define PIN_SPI_MOSI (32u) +#define PIN_SPI_SCK (31u) +#define PIN_SPI_SS (30u) + +static const uint8_t SS = PIN_SPI_SS; +static const uint8_t MOSI = PIN_SPI_MOSI; +static const uint8_t MISO = PIN_SPI_MISO; +static const uint8_t SCK = PIN_SPI_SCK; + +// Wire +#define PIN_WIRE_SDA (27u) +#define PIN_WIRE_SCL (28u) + +#define PIN_WIRE_SDA1 (15u) +#define PIN_WIRE_SCL1 (16u) + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_USBVIRTUAL SerialUSB +#define SERIAL_PORT_MONITOR SerialUSB +#define SERIAL_PORT_HARDWARE Serial1 +#define SERIAL_PORT_HARDWARE_OPEN Serial1 +#define SERIAL_PORT_HARDWARE1 Serial2 +#define SERIAL_PORT_HARDWARE1_OPEN Serial2 + +#define SerialMKR1 Serial1 +#define SerialMKR2 Serial2 + +// Mbed specific defines +#define SERIAL_HOWMANY 2 +#define SERIAL1_TX (digitalPinToPinName(PIN_SERIAL_TX)) +#define SERIAL1_RX (digitalPinToPinName(PIN_SERIAL_RX)) +#define SERIAL2_TX (digitalPinToPinName(PIN_SERIAL2_TX)) +#define SERIAL2_RX (digitalPinToPinName(PIN_SERIAL2_RX)) + +#define SERIAL_CDC 1 +#define HAS_UNIQUE_ISERIAL_DESCRIPTOR +#define BOARD_VENDORID 0x2341 +#define BOARD_PRODUCTID 0x805D +#define BOARD_NAME "Arduino Edge Control" + +#define DFU_MAGIC_SERIAL_ONLY_RESET 0xb0 + +#define WIRE_HOWMANY 2 + +#define I2C_SDA (digitalPinToPinName(PIN_WIRE_SDA)) +#define I2C_SCL (digitalPinToPinName(PIN_WIRE_SCL)) +#define I2C_SDA1 (digitalPinToPinName(PIN_WIRE_SDA1)) +#define I2C_SCL1 (digitalPinToPinName(PIN_WIRE_SCL1)) + +#define QSPIDCS (digitalPinToPinName(PIN_QSPIDCS)) +#define GPIOCLK (digitalPinToPinName(PIN_GPIOCLK)) +#define QSPID0 (digitalPinToPinName(PIN_QSPID0)) +#define QSPID1 (digitalPinToPinName(PIN_QSPID1)) +#define QSPID2 (digitalPinToPinName(PIN_QSPID2)) +#define QSPID3 (digitalPinToPinName(PIN_QSPID3)) + +#define SPI_HOWMANY 1 + +#define SPI_MISO (digitalPinToPinName(PIN_SPI_MISO)) +#define SPI_MOSI (digitalPinToPinName(PIN_SPI_MOSI)) +#define SPI_SCK (digitalPinToPinName(PIN_SPI_SCK)) +#define SPI_SS (digitalPinToPinName(PIN_SPI_SS)) + +#define SD_MISO (digitalPinToPinName(PIN_SD_MISO)) +#define SD_MOSI (digitalPinToPinName(PIN_SD_MOSI)) +#define SD_CLK (digitalPinToPinName(PIN_SD_CLK)) +#define SD_CS (digitalPinToPinName(PIN_SD_CS)) + +#define digitalPinToPort(P) (digitalPinToPinName(P)/32) + +uint8_t getUniqueSerialNumber(uint8_t* name); +void _ontouch1200bps_(); + +#endif //__PINS_ARDUINO__ diff --git a/variants/EDGE_CONTROL/variant.cpp b/variants/EDGE_CONTROL/variant.cpp new file mode 100644 index 000000000..d7003bf47 --- /dev/null +++ b/variants/EDGE_CONTROL/variant.cpp @@ -0,0 +1,211 @@ +#include "Arduino.h" + +/* wiring_analog variables definition */ +/* Flag to indicate whether the ADC config has been changed from the default one */ +bool isAdcConfigChanged = false; + +/* + * Configuration used for all the active ADC channels, it is initialized with the mbed default values + * When it is changed, all the ADC channels are reconfigured accordingly + */ +analogin_config_t adcCurrentConfig = { + .resistor_p = NRF_SAADC_RESISTOR_DISABLED, + .resistor_n = NRF_SAADC_RESISTOR_DISABLED, + .gain = NRF_SAADC_GAIN1_4, + .reference = NRF_SAADC_REFERENCE_VDD4, + .acq_time = NRF_SAADC_ACQTIME_10US, + .mode = NRF_SAADC_MODE_SINGLE_ENDED, + .burst = NRF_SAADC_BURST_DISABLED, + .pin_p = NRF_SAADC_INPUT_DISABLED, + .pin_n = NRF_SAADC_INPUT_DISABLED +}; + +void analogReference(uint8_t mode) +{ + nrf_saadc_reference_t reference = NRF_SAADC_REFERENCE_VDD4; + nrf_saadc_gain_t gain = NRF_SAADC_GAIN1_4; + if (mode == AR_VDD) { + reference = NRF_SAADC_REFERENCE_VDD4; + gain = NRF_SAADC_GAIN1_4; + } else if (mode == AR_INTERNAL) { + reference = NRF_SAADC_REFERENCE_INTERNAL; + gain = NRF_SAADC_GAIN1; + } else if (mode == AR_INTERNAL1V2) { + reference = NRF_SAADC_REFERENCE_INTERNAL; + gain = NRF_SAADC_GAIN1_2; + } else if (mode == AR_INTERNAL2V4) { + reference = NRF_SAADC_REFERENCE_INTERNAL; + gain = NRF_SAADC_GAIN1_4; + } + adcCurrentConfig.reference = reference; + adcCurrentConfig.gain = gain; + analogUpdate(); +} + +void analogAcquisitionTime(uint8_t time) +{ + nrf_saadc_acqtime_t acqTime = NRF_SAADC_ACQTIME_10US; + if (time == AT_3_US) { + acqTime = NRF_SAADC_ACQTIME_3US; + } else if (time == AT_5_US) { + acqTime = NRF_SAADC_ACQTIME_5US; + } else if (time == AT_10_US) { + acqTime = NRF_SAADC_ACQTIME_10US; + } else if (time == AT_15_US) { + acqTime = NRF_SAADC_ACQTIME_15US; + } else if (time == AT_20_US) { + acqTime = NRF_SAADC_ACQTIME_20US; + } else if (time == AT_40_US) { + acqTime = NRF_SAADC_ACQTIME_40US; + } + adcCurrentConfig.acq_time = acqTime; + analogUpdate(); +} + +AnalogPinDescription g_AAnalogPinDescription[] = { + // A0 - A7 + { P0_5, NULL }, // A0 - SENSOR_COMMON + { P0_3, NULL }, // A1 - SENSOR_CALIB + { P0_4, NULL }, // A2 - SENSOR_CAPTURE_A + { P0_30, NULL }, // A3 - SENSOR_INPUT_ADC + { P0_31, NULL }, // A4 - I2C_SDA_2 + { P0_2, NULL }, // A5 - I2C_SCL_2 + { P0_28, NULL }, // A6 - V_REF + { P0_29, NULL }, // A7 - VBAT_PROBE +}; + +PinDescription g_APinDescription[] = { + // Triac + { P0_13, NULL, NULL, NULL }, // 0 - CMD_TRIAC_1 + { P0_14, NULL, NULL, NULL }, // 1 - CMD_TRIAC_2 + { P0_15, NULL, NULL, NULL }, // 2 - CMD_TRIAC_3 + { P0_16, NULL, NULL, NULL }, // 3 - CMD_TRIAC_4 + + // IRQ Channels + { P1_15, NULL, NULL, NULL }, // 4 - IRQ_CH1 + { P1_14, NULL, NULL, NULL }, // 5 - IRQ_CH2 + { P0_26, NULL, NULL, NULL }, // 6 - IRQ_CH3 + { P0_6, NULL, NULL, NULL }, // 7 - IRQ_CH4 + { P0_27, NULL, NULL, NULL }, // 8 - IRQ_CH5 + { P1_0, NULL, NULL, NULL }, // 9 - IRQ_CH6 + + // Sensors + { P0_9, NULL, NULL, NULL }, // 10 - SENSOR_CAPTURE + + // Sensors / Analogs + { P0_5, NULL, NULL, NULL }, // 11 - SENSOR_COMMON - Analog + { P0_3, NULL, NULL, NULL }, // 12 - SENSOR_CALIB - Analog + { P0_4, NULL, NULL, NULL }, // 13 - SENSOR_CAPTURE_A - Analog + { P0_30, NULL, NULL, NULL }, // 14 - SENSOR_INPUT_ADC - Analog + + // I2C 2 / Analogs + { P0_31, NULL, NULL, NULL }, // 15 - I2C_SDA1 - Analog + { P0_2, NULL, NULL, NULL }, // 16 - I2C_SCL1 - Analog + + // Power / Analogs + { P0_28, NULL, NULL, NULL }, // 17 - V_REF - Analog + { P0_29, NULL, NULL, NULL }, // 18 - VBAT_PROBE - Analog + + // Pulse + { P1_8, NULL, NULL, NULL }, // 19 - PULSE_DIRECTION + { P1_1, NULL, NULL, NULL }, // 20 - PULSE_STROBE + + // MKR Connectors + { P1_2, NULL, NULL, NULL }, // 21 - ON_MKR1 + { P1_10, NULL, NULL, NULL }, // 22 - RXD_MKR1 + { P1_11, NULL, NULL, NULL }, // 23 - TXD_MKR1 + + { P1_3, NULL, NULL, NULL }, // 24 - ON_MKR2 + { P0_24, NULL, NULL, NULL }, // 25 - RXD_MKR2 + { P0_25, NULL, NULL, NULL }, // 26 - TXD_MKR2 + + // I2C + { P1_9, NULL, NULL, NULL }, // 27 - I2C_SDA + { P0_11, NULL, NULL, NULL }, // 28 - I2C_SCL + // SD + { P1_12, NULL, NULL, NULL }, // 29 - SD_CS + + // QSPI + { P0_17, NULL, NULL, NULL }, // 30 - QSPIDCS + { P0_19, NULL, NULL, NULL }, // 31 - GPIOCLK / SD_CLK_SCK + { P0_20, NULL, NULL, NULL }, // 32 - QSPID0 / SD_CMD_MOSI + { P0_21, NULL, NULL, NULL }, // 33 - QSPID1 / SD_DAT0_MISO + { P0_22, NULL, NULL, NULL }, // 34 - QSPID2 + { P0_23, NULL, NULL, NULL }, // 35 - QSPID3 + + // Power + { P1_13, NULL, NULL, NULL }, // 36 - POWER_ON + { P0_7, NULL, NULL, NULL }, // 37 - GATED_19V_ENABLE + { P0_10, NULL, NULL, NULL }, // 38 - GATED_VBAT_ENABLE + { P0_12, NULL, NULL, NULL }, // 39 - GATED_3v3_ENABLE_N +}; + +extern "C" { + unsigned int PINCOUNT_fn() { + return (sizeof(g_APinDescription) / sizeof(g_APinDescription[0])); + } +} + +#include "nrf_rtc.h" + +void initVariant() { + // Errata Nano33BLE - I2C pullup is on SWO line, need to disable TRACE + // was being enabled by nrfx_clock_anomaly_132 + // CoreDebug->DEMCR = 0; + // NRF_CLOCK->TRACECONFIG = 0; + + // FIXME: bootloader enables interrupt on COMPARE[0], which we don't handle + // Disable it here to avoid getting stuck when OVERFLOW irq is triggered + nrf_rtc_event_disable(NRF_RTC1, NRF_RTC_INT_COMPARE0_MASK); + nrf_rtc_int_disable(NRF_RTC1, NRF_RTC_INT_COMPARE0_MASK); + + // Disable UARTE0 which is initially enabled by the bootloader + nrf_uarte_task_trigger(NRF_UARTE0, NRF_UARTE_TASK_STOPRX); + while (!nrf_uarte_event_check(NRF_UARTE0, NRF_UARTE_EVENT_RXTO)) ; + NRF_UARTE0->ENABLE = 0; + NRF_UART0->ENABLE = 0; + + // PWM Pins are anbled by defualt by MbedOS + // Disable it to enable applications to use it. + NRF_PWM_Type* PWM[] = { + NRF_PWM0, NRF_PWM1, NRF_PWM2 +#ifdef NRF_PWM3 + ,NRF_PWM3 +#endif + }; + + for (int i = 0; i < (sizeof(PWM)/sizeof(PWM[0])); i++) { + PWM[i]->ENABLE = 0; + PWM[i]->PSEL.OUT[0] = 0xFFFFFFFFUL; + } +} + +#ifdef SERIAL_CDC + +static void utox8(uint32_t val, uint8_t* s) { + for (int i = 0; i < 16; i=i+2) { + int d = val & 0XF; + val = (val >> 4); + + s[15 - i -1] = d > 9 ? 'A' + d - 10 : '0' + d; + s[15 - i] = '\0'; + } +} + +uint8_t getUniqueSerialNumber(uint8_t* name) { + #define SERIAL_NUMBER_WORD_0 NRF_FICR->DEVICEADDR[1] + #define SERIAL_NUMBER_WORD_1 NRF_FICR->DEVICEADDR[0] + + utox8(SERIAL_NUMBER_WORD_0, &name[0]); + utox8(SERIAL_NUMBER_WORD_1, &name[16]); + + return 32; +} + +void _ontouch1200bps_() { + __disable_irq(); + NRF_POWER->GPREGRET = DFU_MAGIC_SERIAL_ONLY_RESET; + NVIC_SystemReset(); +} + +#endif