You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(13) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(50) |
Feb
(137) |
Mar
(84) |
Apr
(36) |
May
(100) |
Jun
(5) |
Jul
|
Aug
(4) |
Sep
(13) |
Oct
(1) |
Nov
(4) |
Dec
(22) |
2011 |
Jan
(4) |
Feb
(9) |
Mar
(113) |
Apr
(76) |
May
(31) |
Jun
(19) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
(4) |
Feb
|
Mar
(2) |
Apr
(6) |
May
(19) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(2) |
Apr
(22) |
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jérémie D. <Ba...@us...> - 2010-05-11 18:37:36
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 72fade3e2315ee9e4450a0f898767fd785ca423b (commit) via 084cb0de7273c0bc6e2457bf08de4bf72f9058c1 (commit) via 22ab80bdd19d45cc41b3ae40cda0dd2439b44575 (commit) from 31d2522650f9c77570e9d080836bcc474c405aa3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 72fade3e2315ee9e4450a0f898767fd785ca423b Author: Jérémie Dimino <je...@di...> Date: Tue May 11 20:36:48 2010 +0200 add the homologation script commit 084cb0de7273c0bc6e2457bf08de4bf72f9058c1 Author: Jérémie Dimino <je...@di...> Date: Tue May 11 17:18:52 2010 +0200 add a tests for monitoring battery current voltages commit 22ab80bdd19d45cc41b3ae40cda0dd2439b44575 Author: Jérémie Dimino <je...@di...> Date: Tue May 11 15:43:36 2010 +0200 allow to record commands of the controller ----------------------------------------------------------------------- Changes: diff --git a/info/control/Makefile b/info/control/Makefile index b13886a..ade7837 100644 --- a/info/control/Makefile +++ b/info/control/Makefile @@ -46,6 +46,7 @@ install: install -m 0755 _build/clients/record_infrared.best $(PREFIX)/bin/krobot-record-infrared install -m 0755 _build/clients/scan.best $(PREFIX)/bin/krobot-scan install -m 0755 _build/clients/replay.best $(PREFIX)/bin/krobot-replay + install -m 0755 _build/clients/play.best $(PREFIX)/bin/krobot-play .PHONY: uninstall uninstall: diff --git a/info/control/_tags b/info/control/_tags index 608802d..00a4b98 100644 --- a/info/control/_tags +++ b/info/control/_tags @@ -33,6 +33,7 @@ <clients/check.*>: pkg_lwt.text <clients/scan.*>: pkg_lwt.text <clients/replay.*>: pkg_lwt.text +<clients/play.*>: pkg_lwt.text # +------------------------------------------------------------------+ # | Services | diff --git a/info/control/clients/play.ml b/info/control/clients/play.ml new file mode 100644 index 0000000..b3e9097 --- /dev/null +++ b/info/control/clients/play.ml @@ -0,0 +1,29 @@ +(* + * play.ml + * ------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +open Lwt + +lwt () = + if Array.length Sys.argv <> 2 then begin + Printf.printf "usage: %s <script>\n" Sys.argv.(0); + exit 2 + end; + + lwt lines = Lwt_stream.to_list (Lwt_io.lines_of_file Sys.argv.(1)) in + lwt krobot = Krobot.create () in + + let rec loop = function + | [] -> + return () + | command :: lines -> + lwt () = Lwt_io.printl command in + lwt () = Script.exec ~krobot ~logger:Lwt_term.printlc ~command in + loop lines + in + loop lines diff --git a/info/control/clients/script.ml b/info/control/clients/script.ml index ea09a74..2ba12e8 100644 --- a/info/control/clients/script.ml +++ b/info/control/clients/script.ml @@ -14,6 +14,8 @@ module TextSet = Set.Make(Text) let set_of_list l = List.fold_left (fun set x -> TextSet.add x set) TextSet.empty l +let record = ref None + (* +-----------------------------------------------------------------+ | Types | +-----------------------------------------------------------------+ *) @@ -295,6 +297,13 @@ let exec ~krobot ~logger ~command = | cmd :: rest when cmd.c_path <> path || cmd.c_name <> name -> search rest | cmd :: _ -> + lwt () = + match !record with + | None -> + return () + | Some oc -> + Lwt_io.fprintl oc command + in cmd.c_exec args logger krobot in search !commands @@ -567,7 +576,23 @@ let () = register "sleep" (f1 (float "duration")) (fun logger krobot duration -> - Lwt_unix.sleep duration) + Lwt_unix.sleep duration); + register "start" ~path:["record"] f0 + (fun logger krobot -> + match !record with + | None -> + record := Some(Lwt_io.open_file ~mode:Lwt_io.output "script.record"); + return () + | Some _ -> + return ()); + register "stop" ~path:["record"] f0 + (fun logger krobot -> + match !record with + | None -> + return () + | Some oc -> + record := None; + Lwt_io.close oc) (* +-----------------------------------------------------------------+ | Unsafe commands | diff --git a/info/control/myocamlbuild.ml b/info/control/myocamlbuild.ml index cb7518d..ed00b3b 100644 --- a/info/control/myocamlbuild.ml +++ b/info/control/myocamlbuild.ml @@ -78,6 +78,7 @@ let targets = List.filter_opt (function (true, target) -> Some target | (false, (have_lwt_unix && have_obus, "clients/record_infrared.best"); (have_lwt_unix && have_obus && have_lwt_text, "clients/scan.best"); (have_lwt_unix && have_obus && have_lwt_text, "clients/replay.best"); + (have_lwt_unix && have_obus && have_lwt_text, "clients/play.best"); (* Services *) (have_lwt_unix && have_obus, "services/hard_stop.best"); @@ -90,6 +91,8 @@ let targets = List.filter_opt (function (true, target) -> Some target | (false, (have_lwt_unix && have_obus, "tests/scan_infrared.best"); (have_lwt_unix && have_obus, "tests/infrared.best"); (have_lwt_unix && have_obus, "tests/measure.best"); + (have_lwt_unix && have_obus, "tests/show_voltage.best"); + (have_lwt_unix && have_obus, "tests/take_ear.best"); ] (* +-----------------------------------------------------------------+ diff --git a/info/control/scripts/homologation b/info/control/scripts/homologation new file mode 100644 index 0000000..c49fdb8 --- /dev/null +++ b/info/control/scripts/homologation @@ -0,0 +1,27 @@ +forward distance=200 +left angle=30 +forward distance=300 +left angle=30 +forward distance=200 +left angle=30 +forward distance=300 +right angle=45 +forward distance=300 +claws.enable +claws.close +left angle=180 +claws.open +backward distance=200 +left angle=10 +backward distance=200 +claws.take +right angle=180 +forward distance=400 +left angle=5 +forward distance=800 +left angle=90 +forward distance=300 +left angle=30 +backward distance=400 +claws.open +backward distance=50 diff --git a/info/control/tests/show_voltage.ml b/info/control/tests/show_voltage.ml new file mode 100644 index 0000000..4d698b0 --- /dev/null +++ b/info/control/tests/show_voltage.ml @@ -0,0 +1,21 @@ +(* + * show_voltage.ml + * --------------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +open Lwt +open Lwt_io + +lwt () = + lwt krobot = Krobot.create () in + let rec loop () = + lwt voltages = Krobot.unsafe_call Commands.Power.get_cell_voltage krobot () in + lwt () = printf "\r%s" (String.concat " " (List.map string_of_int (Array.to_list voltages))) in + lwt () = Lwt_unix.sleep 0.1 in + loop () + in + loop () hooks/post-receive -- krobot |
From: oiffrig <Ba...@us...> - 2010-05-11 17:42:47
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 31d2522650f9c77570e9d080836bcc474c405aa3 (commit) from 0bcfbc69a6fa8b97061297c7f757c300f7c65026 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 31d2522650f9c77570e9d080836bcc474c405aa3 Author: Olivier Iffrig <if...@cr...> Date: Tue May 11 19:41:28 2010 +0200 Rotation de la pince (géométrie de la plate-forme) ----------------------------------------------------------------------- Changes: diff --git a/meca/2010_Junior/pince.scad b/meca/2010_Junior/pince.scad index 738b11d..70f99b0 100644 --- a/meca/2010_Junior/pince.scad +++ b/meca/2010_Junior/pince.scad @@ -10,7 +10,7 @@ e = 5; dd = diam_ext - diam_int; -rotate([0, 0, 45]) union() { +rotate([0, 0, 60]) union() { translate([-lng_tige - diam_ext/2 + dd/4, 0, -e/2]) polyhedron([[0, 0, 0], [lng_tige, 0, 0], [lng_tige + dd/2, 2*lrg_tige, 0], [0, lrg_tige, 0], hooks/post-receive -- krobot |
From: oiffrig <Ba...@us...> - 2010-05-11 15:52:07
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 0bcfbc69a6fa8b97061297c7f757c300f7c65026 (commit) from afe920391de0b892f1868e9e70d81440d59016fd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0bcfbc69a6fa8b97061297c7f757c300f7c65026 Author: Olivier Iffrig <if...@cr...> Date: Tue May 11 17:51:04 2010 +0200 Modèle OpenScad de la pince Robot Jr ----------------------------------------------------------------------- Changes: diff --git a/meca/2010_Junior/pince.scad b/meca/2010_Junior/pince.scad new file mode 100644 index 0000000..738b11d --- /dev/null +++ b/meca/2010_Junior/pince.scad @@ -0,0 +1,30 @@ + +$fs = 0.1; +$fa = 5; + +lng_tige = 35; +lrg_tige = 10; +diam_ext = 65; +diam_int = 51; +e = 5; + +dd = diam_ext - diam_int; + +rotate([0, 0, 45]) union() { + translate([-lng_tige - diam_ext/2 + dd/4, 0, -e/2]) + polyhedron([[0, 0, 0], [lng_tige, 0, 0], + [lng_tige + dd/2, 2*lrg_tige, 0], [0, lrg_tige, 0], + [0, 0, e], [lng_tige, 0, e], + [lng_tige + dd/2, 2*lrg_tige, e], [0, lrg_tige, e]], + [[0, 1, 2], [0, 2, 3], + [0, 4, 1], [4, 5, 1], + [1, 5, 2], [5, 6, 2], + [2, 6, 3], [6, 7, 3], + [3, 7, 0], [7, 4, 0], + [4, 6, 5], [4, 7, 6]]); + difference() { + cylinder(r=diam_ext/2, h=e, center=true); + #cylinder(r=diam_int/2, h=e+5, center=true); + translate([0, -diam_ext/4 - 5, 0]) cube([diam_ext + 5, diam_ext/2 + 10, e + 5], center=true); + } +} \ No newline at end of file hooks/post-receive -- krobot |
From: Olivier B. <Ba...@us...> - 2010-05-11 13:41:20
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via afe920391de0b892f1868e9e70d81440d59016fd (commit) from 258c436c669b76ab50c63192ad60224f9c649eb8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit afe920391de0b892f1868e9e70d81440d59016fd Author: Olivier BICHLER <oli...@cr...> Date: Tue May 11 15:40:02 2010 +0200 Corrected LCD address ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Interface_Robot/Firmware/lcd.h b/elec/boards/Interface_Robot/Firmware/lcd.h index 7db17a1..48a020a 100644 --- a/elec/boards/Interface_Robot/Firmware/lcd.h +++ b/elec/boards/Interface_Robot/Firmware/lcd.h @@ -11,7 +11,7 @@ #include "HardwareProfile.h" #include <i2c.h> -#define ADD_LCD 0x07 +#define ADD_LCD 0x0E // 7-bit slave address = 7 // Commandes de l'afficheur LCD #define CMD_HEAD 0x1B diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof index bc70d93..0dc9576 100644 Binary files a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof and b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof differ diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex index 3c02942..58ae91c 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex @@ -33,7 +33,7 @@ :1009A00011E1E66A59EC20F0E552DF6E000EDF80BF :1009B000C0EC0DF0E66A15EC22F0E552000EDF9077 :1009C000C0EC0DF093809382948C948ED08EF28E36 -:1009D000F28C770EC86E070EE66ED0EC1DF0E55275 +:1009D000F28C770EC86E0E0EE66ED0EC1DF0E5526E :1009E0003F0E8A1693160101236B246B256B266B31 :1009F000010E276FBBEC13F0F9EC1AF0E66A27EC56 :100A00001CF0E5523CEC1DF060EC19F0E55201EFF2 @@ -213,16 +213,16 @@ :1014E00012F0006E050EE15E0050F3CF23F1F4CF51 :1014F00024F19CD105010851070A4FE0010A41E09F :10150000030A33E0010A29E0070A1EE0010A14E099 -:10151000030A09E0010A01E04FD0070EE66ED7EC9E -:101520001DF0E5524ED0010EE66E070EE66EDAECC7 -:101530001DF0E552E55245D0E66A070EE66EDAEC9C -:101540001DF0E552E5523DD0010EE66E070EE66E47 -:10155000E2EC1DF0E552E55234D0E66A070EE66E85 +:10151000030A09E0010A01E04FD00E0EE66ED7EC97 +:101520001DF0E5524ED0010EE66E0E0EE66EDAECC0 +:101530001DF0E552E55245D0E66A0E0EE66EDAEC95 +:101540001DF0E552E5523DD0010EE66E0E0EE66E40 +:10155000E2EC1DF0E552E55234D0E66A0E0EE66E7E :10156000E2EC1DF0E552E5522CD00AC5E6FF09C5B4 -:10157000E6FF070EE66EEDEC1DF0E552E552E55292 -:1015800020D0090EE66E050EE66E070EE66EFAEC4A +:10157000E6FF0E0EE66EEDEC1DF0E552E552E5528B +:1015800020D0090EE66E050EE66E0E0EE66EFAEC43 :101590001DF0E552E552E55214D00A0EE66E050E36 -:1015A000E66E09C5E6FF070EE66E00EC1EF0E5529A +:1015A000E66E09C5E6FF0E0EE66E00EC1EF0E55293 :1015B000E552E552E55205D0010EE66ECAEC21F087 :1015C000E552400EE66E000EE66E050EE66EE66A29 :1015D000010EE66E66EC12F0006E050EE15E005044 @@ -280,7 +280,7 @@ :10191000EE6E6E0EEE6E200E59D9740E7BD9620EED :10192000EE6E6C0EEE6E690E42D9EE6E5ED9EE6E04 :1019300071D9760E4BD9630EEE6E200EEE6E6C0EE4 -:1019400069D9200EEE6EF8D8070EE66ED7EC1DF0C2 +:1019400069D9200EEE6EF8D80E0EE66ED7EC1DF0BB :10195000E5521ED9010EE66EA5D802E2E16AE55213 :10196000B6EF0DF0120012003EEF1EF012001E0E38 :10197000E66E010EE66E34EC12F0E552E552400ED2 @@ -302,7 +302,7 @@ :101A7000030E0DD0D0B602D0040E09D0FCAE02D0B9 :101A8000050E05D0FCAC02D0060E01D0070EDF6EAD :101A9000D088D086D084D082D080FC9EFC9CDF5041 -:101AA000E552AFD0070EE66EE2EC1DF0E552E552CE +:101AA000E552AFD00E0EE66EE2EC1DF0E552E552C7 :101AB000D9CFE6FFDACFE6FF010E7ED8D950150F59 :101AC000A4D8020E79D8D9502A0F9FD8030E74D803 :101AD000D9503F0F9AD8040E6FD8540EE15C120013 @@ -317,9 +317,9 @@ :101B60006F0EEE6E6E0EEE6EE6EF0DF0E16E49D08A :101B7000DF50F36E010EDB50F46E020EE15C1200DA :101B8000DFCFE6FFE66A39EC20F0E552E5521200BD -:101B9000E66A070EE66EDAEC1DF0E552E552120039 +:101B9000E66A0E0EE66EDAEC1DF0E552E552120032 :101BA000EE6AD9502A0FE96EDACFEAFF12000ED89A -:101BB000200EEE6EEE6E1200E66E070EE66E00EC84 +:101BB000200EEE6EEE6E1200E66E0E0EE66E00EC7D :101BC0001EF0E552E552E552E5521200EE6E650E4A :101BD000EE6E1200EE6EEE6EEE6EEE6EEE6E1200B9 :101BE000D9CFE6FFE1CFD9FF1200EE6AD9503F0FFF @@ -956,8 +956,8 @@ :1042200002D0FF0E09D0C7B0FED765EC22F0C5ACB6 :1042300002D0FE0E01D0000EE552E5CFDAFFE7CF47 :04424000D9FF120090 -:0C42440032313A32353A30360020004D5D -:104250006179203130203230313000526F626F741A +:0C42440031353A33393A32340020004D55 +:104250006179203131203230313000526F626F7419 :1042600020496E7465726661636520312E300A4F95 :0F4270006C697669657220424943484C4552009B :10428000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF01 diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map index eeb6b1a..ea56f64 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Mon May 10 21:25:10 2010 +Linker Map File - Created Tue May 11 15:39:30 2010 Section Info Section Type Address Location Size(Bytes) hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-11 12:17:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 258c436c669b76ab50c63192ad60224f9c649eb8 (commit) from 18bb10e639922efb98e3b2273013c37042cf2db4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 258c436c669b76ab50c63192ad60224f9c649eb8 Author: Jérémie Dimino <je...@di...> Date: Tue May 11 14:17:00 2010 +0200 better replay ----------------------------------------------------------------------- Changes: diff --git a/info/control/clients/joy_control.ml b/info/control/clients/joy_control.ml index 7d980a6..a9823cf 100644 --- a/info/control/clients/joy_control.ml +++ b/info/control/clients/joy_control.ml @@ -129,43 +129,33 @@ let axis_coef_turn = 4 let accelerations = (400, 400) let duration = 0.2 -let try_call action f = +let record_oc = + if Array.length Sys.argv >= 2 && Sys.argv.(1) = "record" then + Lwt_io.open_file ~mode:Lwt_io.output "krobot.record" + else + Lwt_io.null + +let date_last_command = ref (Unix.gettimeofday ()) + +let robot_call record f = + let date = Unix.gettimeofday () in + let delta = date -. !date_last_command in + date_last_command := date; + lwt () = Lwt_io.fprintf record_oc "%Ld\n%s\n" (Int64.bits_of_float delta) record in try_lwt f () with Failure msg -> - lwt () = Lwt_log.error_f "action %s failed with: %s" action msg in + lwt () = Lwt_log.error_f "action << %s >> failed with: %s" record msg in return () -let record = - if Array.length Sys.argv >= 2 && Sys.argv.(1) = "record" then begin - let oc = Lwt_io.open_file ~mode:Lwt_io.output "krobot.record" in - let prev = ref (Unix.gettimeofday ()) in - fun cmd -> - let date = Unix.gettimeofday () in - let delta = date -. !prev in - prev := date; - lwt () = - if delta > 0. then - Lwt_io.fprintlf oc "sleep duration=%f" delta - else - return () - in - Lwt_io.write_line oc cmd - end else begin - fun cmd -> return () - end - let rec set_velocities krobot velocities = lwt () = Lwt_log.info_f "set-velocities: left=%d right=%d" (fst velocities) (snd velocities) in lwt () = - try_call "set-velocities" + robot_call + (Printf.sprintf + "set-velocities velocity-left=%d velocity-right=%d acceleration-left=%d acceleration-right=%d duration=%f" + (fst velocities) (snd velocities) (fst accelerations) (snd accelerations) duration) (fun () -> - lwt () = - Printf.ksprintf - record - "set-velocities velocity-left=%d velocity-right=%d acceleration-left=%d acceleration-right=%d duration=%f" - (fst velocities) (snd velocities) (fst accelerations) (snd accelerations) duration - in Krobot.Motors.set_velocities krobot ~velocities ~accelerations ~duration) in if velocities = (0, 0) then @@ -190,6 +180,7 @@ let parent_loop krobot pipe = (!laxis_v * axis_coef - !raxis_h * axis_coef_turn, !laxis_v * axis_coef + !raxis_h * axis_coef_turn) in + let enable_claws = lazy(robot_call "claws.enable" (fun () -> Krobot.Claws.enable krobot)) in let rec loop () = Lwt_io.read_value pipe >>= function | KeyPressed KEY_ESCAPE -> @@ -213,18 +204,18 @@ let parent_loop krobot pipe = | JoyButtonPressed ButtonSquare -> stop := true; cancel !thread; - lwt () = try_call "stop-motors" (fun () -> Krobot.Motors.stop krobot ~mode:`Abrupt) in + lwt () = robot_call "stop-motors mode=abrupt" (fun () -> Krobot.Motors.stop krobot ~mode:`Abrupt) in loop () | JoyButtonReleased ButtonSquare -> stop := false; loop () | JoyButtonPressed ButtonCross -> - lwt () = record "claws.take" in - lwt () = try_call "claws.take" (fun () -> Krobot.Claws.take krobot) in + lwt () = Lazy.force enable_claws in + lwt () = robot_call "claws.take" (fun () -> Krobot.Claws.take krobot) in loop () | JoyButtonPressed ButtonCircle -> - lwt () = record "claws.open" in - lwt () = try_call "claws.open" (fun () -> Krobot.Claws.open_ krobot) in + lwt () = Lazy.force enable_claws in + lwt () = robot_call "claws.open" (fun () -> Krobot.Claws.open_ krobot) in loop () | _ -> loop () @@ -254,8 +245,6 @@ let () = Unix.close fd_w; Lwt_main.run begin lwt krobot = Krobot.create () in - lwt () = Krobot.Claws.enable krobot in - lwt () = Krobot.Claws.close krobot in lwt () = Lwt_log.notice "ready to process event" in parent_loop krobot (Lwt_io.of_unix_fd ~mode:Lwt_io.input fd_r) end diff --git a/info/control/clients/replay.ml b/info/control/clients/replay.ml index cc9060f..ba004a4 100644 --- a/info/control/clients/replay.ml +++ b/info/control/clients/replay.ml @@ -15,16 +15,25 @@ lwt () = exit 2 end; - let ic = Lwt_io.open_file ~mode:Lwt_io.input Sys.argv.(1) in + lwt lines = Lwt_stream.to_list (Lwt_io.lines_of_file Sys.argv.(1)) in lwt krobot = Krobot.create () in - let rec loop () = - Lwt_io.read_line_opt ic >>= function - | None -> - return () - | Some line -> - lwt () = Lwt_io.printl line in - lwt () = Script.exec ~krobot ~logger:Lwt_term.printlc ~command:line in - loop () + let rec loop = function + | [] -> + return () + | [_] -> + failwith "invalid record file" + | delta :: command :: lines -> + let delta = Int64.float_of_bits (Int64.of_string delta) in + lwt () = Lwt_io.printl command in + ignore ( + try_lwt + Script.exec ~krobot ~logger:Lwt_term.printlc ~command + with exn -> + lwt () = Lwt_log.error_f "failure: %s" (Printexc.to_string exn) in + exit 1 + ); + lwt () = Lwt_unix.sleep delta in + loop lines in - loop () + loop lines hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-10 20:41:49
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 7a45eb86b5cf68d266cb2ab686ee2ed49dbe37cd (commit) via 28c49ef23e7f4b890db2d50a8b310079aef45f45 (commit) via d3386845388dbe6d50bdcc78efec44ea187b7545 (commit) via f8f492cc46bd30a9ce6b36091e55198966e9ba7d (commit) via b0f1b93429eb0bf34f55e20b334cfdd291ebea5f (commit) via d302f549052f3783340d82cb0fa6dd62e54de15e (commit) via 3d014ebb3153ec28975bcd03eaa7be81522c0f40 (commit) from cb59d80d8b07ca593e1a2faeee5944c984369b1a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 7a45eb86b5cf68d266cb2ab686ee2ed49dbe37cd Author: Jérémie Dimino <je...@di...> Date: Mon May 10 22:39:32 2010 +0200 add command recording + replaying commit 28c49ef23e7f4b890db2d50a8b310079aef45f45 Author: Jérémie Dimino <je...@di...> Date: Mon May 10 21:40:20 2010 +0200 add clients/scan.ml commit d3386845388dbe6d50bdcc78efec44ea187b7545 Author: Jérémie Dimino <je...@di...> Date: Mon May 10 21:35:19 2010 +0200 add a program which scan the front of the robot commit f8f492cc46bd30a9ce6b36091e55198966e9ba7d Author: Jérémie Dimino <je...@di...> Date: Mon May 10 20:59:14 2010 +0200 scans all the front of the robot commit b0f1b93429eb0bf34f55e20b334cfdd291ebea5f Author: Jérémie Dimino <je...@di...> Date: Mon May 10 16:15:23 2010 +0200 fix center position commit d302f549052f3783340d82cb0fa6dd62e54de15e Author: Jérémie Dimino <je...@di...> Date: Mon May 10 16:06:23 2010 +0200 fix paths commit 3d014ebb3153ec28975bcd03eaa7be81522c0f40 Author: Jérémie Dimino <je...@di...> Date: Mon May 10 15:28:16 2010 +0200 add a command to scan the front of the robot ----------------------------------------------------------------------- Changes: diff --git a/info/control/Makefile b/info/control/Makefile index d0e971f..b13886a 100644 --- a/info/control/Makefile +++ b/info/control/Makefile @@ -44,6 +44,8 @@ install: install -m 0755 _build/clients/check.best $(PREFIX)/bin/krobot-check install -m 0755 _build/clients/check.best $(PREFIX)/bin/krobot-check install -m 0755 _build/clients/record_infrared.best $(PREFIX)/bin/krobot-record-infrared + install -m 0755 _build/clients/scan.best $(PREFIX)/bin/krobot-scan + install -m 0755 _build/clients/replay.best $(PREFIX)/bin/krobot-replay .PHONY: uninstall uninstall: diff --git a/info/control/_tags b/info/control/_tags index 303b53b..608802d 100644 --- a/info/control/_tags +++ b/info/control/_tags @@ -31,6 +31,8 @@ <clients/script{.*,_lexer.*}>: pkg_text <clients/ax12_control.*>: pkg_lwt.text <clients/check.*>: pkg_lwt.text +<clients/scan.*>: pkg_lwt.text +<clients/replay.*>: pkg_lwt.text # +------------------------------------------------------------------+ # | Services | diff --git a/info/control/clients/controller.ml b/info/control/clients/controller.ml index dc4cda0..0cf0146 100644 --- a/info/control/clients/controller.ml +++ b/info/control/clients/controller.ml @@ -171,7 +171,7 @@ let draw krobot = Krobot.srv_range_finders = false; Krobot.srv_logic_sensors = false; Krobot.srv_motor = false; - Krobot.srv_ax12 = false; + Krobot.srv_grip = false; Krobot.srv_lcd = false; Krobot.srv_infrared = false; Krobot.srv_power = false; diff --git a/info/control/clients/joy_control.ml b/info/control/clients/joy_control.ml index 0bf7de7..260726b 100644 --- a/info/control/clients/joy_control.ml +++ b/info/control/clients/joy_control.ml @@ -136,11 +136,38 @@ let try_call action f = lwt () = Lwt_log.error_f "action %s failed with: %s" action msg in return () +let record = + if Array.length Sys.argv >= 2 && Sys.argv.(1) = "record" then begin + let oc = Lwt_io.open_file ~mode:Lwt_io.output "krobot.record" in + let prev = ref (Unix.gettimeofday ()) in + fun fmt -> + Printf.ksprintf + (fun cmd -> + let date = Unix.gettimeofday () in + let delta = date -. !prev in + prev := date; + lwt () = + if delta > 0. then + Lwt_io.fprintlf oc "sleep duration=%f" delta + else + return () + in + Lwt_io.write_line oc cmd) + fmt + end else begin + fun fmt -> Printf.ksprintf (fun cmd -> return ()) fmt + end + let rec set_velocities krobot velocities = lwt () = Lwt_log.info_f "set-velocities: left=%d right=%d" (fst velocities) (snd velocities) in lwt () = try_call "set-velocities" (fun () -> + lwt () = + record + "set-velocities acceleration-left=%d acceleration-right=%d velocity-left=%d velocity-right=%d duration=%f" + (fst accelerations) (snd accelerations) (fst velocities) (snd velocities) duration + in Krobot.Motors.set_velocities krobot ~velocities ~accelerations ~duration) in if velocities = (0, 0) then diff --git a/info/control/clients/replay.ml b/info/control/clients/replay.ml new file mode 100644 index 0000000..d73f219 --- /dev/null +++ b/info/control/clients/replay.ml @@ -0,0 +1,28 @@ +(* + * replay.ml + * --------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +open Lwt + +lwt () = + if Array.length Sys.argv <> 2 then begin + Printf.printf "usage: %s <script>\n" Sys.argv.(0); + exit 2 + end; + + let ic = Lwt_io.open_file ~mode:Lwt_io.input Sys.argv.(1) in + lwt krobot = Krobot.create () in + + let rec loop () = + Lwt_io.read_line_opt ic >>= function + | None -> + return () + | Some line -> + Script.exec ~krobot ~logger:Lwt_term.printlc ~command:line + in + loop () diff --git a/info/control/clients/scan.ml b/info/control/clients/scan.ml new file mode 100644 index 0000000..2f5d045 --- /dev/null +++ b/info/control/clients/scan.ml @@ -0,0 +1,31 @@ +(* + * scan.ml + * ------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +(* Scan and display the front of the robot *) + +open Lwt +open Lwt_io +open Lwt_term + +lwt () = + lwt krobot = Krobot.create () in + lwt () = printl "scanning..." in + lwt values = Krobot.Infrared.scan krobot in + let columns = React.S.value Lwt_term.columns and lines = React.S.value Lwt_term.lines in + let size = min lines columns in + let screen = Zone.make ~width:columns ~height:lines in + Draw.set screen (size / 2) 0 { char = "*"; style = { blank.style with foreground = lblue } }; + List.iter + (fun (angle, dist) -> + let dist = dist * size / 200 in + let y = int_of_float (cos (float_of_int angle) *. (float_of_int dist)) in + let x = size / 2 + int_of_float (sin (float_of_int angle) *. (float_of_int dist)) in + Draw.set ~zone:screen ~x ~y ~point:{ char = "+"; style = { blank.style with foreground = white } }) + values; + render (Zone.points screen) diff --git a/info/control/clients/script.ml b/info/control/clients/script.ml index e244b80..ea09a74 100644 --- a/info/control/clients/script.ml +++ b/info/control/clients/script.ml @@ -550,7 +550,24 @@ let () = Krobot.Infrared.go_right krobot); register ~path:["infrared"] "center" f0 (fun logger krobot -> - Krobot.Infrared.go_center krobot) + Krobot.Infrared.go_center krobot); + register ~path:["infrared"] "scan" f0 + (fun logger krobot -> + lwt l = Krobot.Infrared.scan krobot in + logger [text "infrared scan: ["; + text (String.concat "; " (List.map (fun (angle, dist) -> Printf.sprintf "(%d, %d)" angle dist) l)); + text "]"]); + register ~path:["infrared"] "reload-config" f0 + (fun logger krobot -> + Krobot.Infrared.reload_config krobot); + + (* +---------------------------------------------------------------+ + | Misc | + +---------------------------------------------------------------+ *) + + register "sleep" (f1 (float "duration")) + (fun logger krobot duration -> + Lwt_unix.sleep duration) (* +-----------------------------------------------------------------+ | Unsafe commands | diff --git a/info/control/driver/driver.ml b/info/control/driver/driver.ml index c1631f1..c844330 100644 --- a/info/control/driver/driver.ml +++ b/info/control/driver/driver.ml @@ -422,21 +422,121 @@ struct lwt ar = USBCard.call Commands.Infrared.get_state card () in return (ar.(0), ar.(1))) + (* +---------------------------------------------------------------+ + | Simple movement | + +---------------------------------------------------------------+ *) + + let pos_90_degree = 515 + let pos_0_degree = 205 + + let pos_left = 750 + let pos_right = 250 + let go_left () = set_ax12 [{ aa_id = 1; - aa_position = 750; + aa_position = pos_left; aa_velocity = 200 }] let go_right () = set_ax12 [{ aa_id = 1; - aa_position = 250; + aa_position = pos_right; aa_velocity = 200 }] let go_center () = set_ax12 [{ aa_id = 1; - aa_position = 514; + aa_position = pos_90_degree; aa_velocity = 200 }] + (* +---------------------------------------------------------------+ + | Calibration data | + +---------------------------------------------------------------+ *) + + let remove_junk values = + let m = List.fold_left (fun m (p, n) -> max m n) 0 values in + let rec loop = function + | [] -> + None + | (p, n) :: l -> + match loop l with + | Some _ as result -> + result + | None -> + if n = m then + Some l + else + None + in + match loop values with + | Some l -> + l + | None -> + values + + let distance data measured_value = + let delta, pos = + List.fold_left + (fun (min_delta, pos_at_min) (pos, value) -> + let delta = abs (measured_value - value) in + if delta < min_delta then + (delta, pos) + else + (min_delta, pos_at_min)) + (max_int, 0) + data + in + if delta > 100 then + -1 + else + pos + + let data1 = ref [] + let data2 = ref [] + + let data_file = ref (Printf.sprintf "%s/var/infrareds-record" (Sys.getenv "HOME")) + + let reload_config () = + let ic = Lwt_io.open_file ~mode:Lwt_io.input !data_file in + let rec read_values () = + Lwt_io.read_line_opt ic >>= function + | Some line -> + let pos, i1, i2 = Scanf.sscanf line "%d %d %d" (fun x y z -> (x, y, z)) in + lwt l1, l2 = read_values () in + return ((pos, i1) :: l1, (pos, i2) :: l2) + | None -> + return ([], []) + in + lwt d1, d2 = read_values () in + lwt () = Lwt_io.close ic in + data1 := remove_junk d1; + data2 := remove_junk d2; + return () + + (* +---------------------------------------------------------------+ + | Scanning | + +---------------------------------------------------------------+ *) + + let step = 10 + + let scan () = + lwt () = go_left () in + lwt () = Lwt_unix.sleep 1.5 in + let rec loop pos acc = + if pos <= pos_right then + return acc + else begin + let (i1, i2) = React.S.value states in + let dist1 = distance !data1 i1 + and angle = (pos_90_degree - pos) * 90 / (pos_90_degree - pos_0_degree) in + let pos = pos - step in + lwt () = set_ax12 [{ aa_id = 1; + aa_position = pos; + aa_velocity = 200 }] in + lwt () = Lwt_unix.sleep 0.05 in + loop pos ((angle, dist1) :: acc) + end + in + loop pos_left [] + let () = OBus_object.add_interfaces obus [make ~notify_mode @@ -457,6 +557,17 @@ struct lwt () = go_center () in OBus_method.return ctx () ); + m_Scan = ( + fun ctx () () -> + let ctx = OBus_context.map (List.map (fun (x, y) -> (Int32.of_int x, Int32.of_int y))) ctx in + lwt result = scan () in + OBus_method.return ctx result + ); + m_ReloadConfig = ( + fun ctx () () -> + lwt () = reload_config () in + OBus_method.return ctx () + ); }] end @@ -1184,10 +1295,14 @@ lwt () = let args = [ "-n", Arg.Set foreground, "do not daemonize"; "-k", Arg.Set kill_and_exit, "kill any running driver and exit"; + "-c", Arg.Set_string Infrared.data_file, "file containing calibration data for the infrared sensors"; ] in let usage_msg = Printf.sprintf "Usage: %s [-n]\n\noptions are:" (Filename.basename (Sys.argv.(0))) in Arg.parse args ignore usage_msg; + lwt () = Lwt_log.notice_f "loading infrareds calibration data from %S" !Infrared.data_file in + lwt () = Infrared.reload_config () in + (* Open the krobot message bus *) lwt bus = OBus_bus.of_addresses (OBus_address.of_string Config.bus_address) in diff --git a/info/control/lib-krobot/krobot.ml b/info/control/lib-krobot/krobot.ml index 9ab5915..9b85c17 100644 --- a/info/control/lib-krobot/krobot.ml +++ b/info/control/lib-krobot/krobot.ml @@ -43,7 +43,7 @@ type services_status = { srv_range_finders : bool; srv_logic_sensors : bool; srv_motor : bool; - srv_ax12 : bool; + srv_grip : bool; srv_lcd : bool; srv_infrared : bool; srv_power : bool; @@ -56,7 +56,7 @@ let services_status krobot = srv_range_finders = List.assoc "RangeFinders" l; srv_logic_sensors = List.assoc "LogicSensors" l; srv_motor = List.assoc "Motors" l; - srv_ax12 = List.assoc "Grip" l; + srv_grip = List.assoc "Grip" l; srv_lcd = List.assoc "LCD" l; srv_infrared = List.assoc "Infrared" l; srv_power = List.assoc "Power" l; @@ -87,6 +87,13 @@ struct let go_center krobot = OBus_method.call m_GoCenter (service krobot "Infrared") () + + let scan krobot = + lwt l = OBus_method.call m_Scan (service krobot "Infrared") () in + return (List.rev_map (fun (x, y) -> (Int32.to_int x, Int32.to_int y)) l) + + let reload_config krobot = + OBus_method.call m_ReloadConfig (service krobot "Infrared") () end (* +-----------------------------------------------------------------+ @@ -235,19 +242,19 @@ struct open Krobot_interfaces.Fr_krobot_Service_Claws let enable krobot = - OBus_method.call m_Enable (service krobot "Servo") () + OBus_method.call m_Enable (service krobot "Claws") () let disable krobot = - OBus_method.call m_Disable (service krobot "Servo") () + OBus_method.call m_Disable (service krobot "Claws") () let open_ krobot = - OBus_method.call m_Open (service krobot "Servo") () + OBus_method.call m_Open (service krobot "Claws") () let close krobot = - OBus_method.call m_Close (service krobot "Servo") () + OBus_method.call m_Close (service krobot "Claws") () let take krobot = - OBus_method.call m_Take (service krobot "Servo") () + OBus_method.call m_Take (service krobot "Claws") () end (* +-----------------------------------------------------------------+ diff --git a/info/control/lib-krobot/krobot.mli b/info/control/lib-krobot/krobot.mli index 160973e..3047a8a 100644 --- a/info/control/lib-krobot/krobot.mli +++ b/info/control/lib-krobot/krobot.mli @@ -31,7 +31,7 @@ type services_status = { srv_range_finders : bool; srv_logic_sensors : bool; srv_motor : bool; - srv_ax12 : bool; + srv_grip : bool; srv_lcd : bool; srv_infrared : bool; srv_power : bool; @@ -47,6 +47,13 @@ module Infrared : sig val go_right : t -> unit Lwt.t val go_left : t -> unit Lwt.t val go_center : t -> unit Lwt.t + + val scan : t -> (int * int) list Lwt.t + (** Scans the front of the robot and returns a list of [(angle, + distance)] *) + + val reload_config : t -> unit Lwt.t + (** Reload calirbatino data *) end module Power : sig diff --git a/info/control/myocamlbuild.ml b/info/control/myocamlbuild.ml index 1478695..cb7518d 100644 --- a/info/control/myocamlbuild.ml +++ b/info/control/myocamlbuild.ml @@ -76,6 +76,8 @@ let targets = List.filter_opt (function (true, target) -> Some target | (false, (have_lwt_unix && have_obus && have_lwt_text, "clients/ax12_control.best"); (have_lwt_unix && have_obus && have_lwt_text, "clients/check.best"); (have_lwt_unix && have_obus, "clients/record_infrared.best"); + (have_lwt_unix && have_obus && have_lwt_text, "clients/scan.best"); + (have_lwt_unix && have_obus && have_lwt_text, "clients/replay.best"); (* Services *) (have_lwt_unix && have_obus, "services/hard_stop.best"); diff --git a/info/control/protocol/krobot.obus b/info/control/protocol/krobot.obus index 4405cd9..68c1357 100644 --- a/info/control/protocol/krobot.obus +++ b/info/control/protocol/krobot.obus @@ -27,6 +27,9 @@ interface "fr.krobot.Service.Infrared" { method GoLeft : () -> () method GoRight : () -> () method GoCenter : () -> () + + method Scan : () -> (values : (int32 * int32) structure array) + method ReloadConfig : () -> () } interface "fr.krobot.Service.Gate" { hooks/post-receive -- krobot |
From: Olivier B. <Ba...@us...> - 2010-05-10 19:32:07
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via cb59d80d8b07ca593e1a2faeee5944c984369b1a (commit) from eb72aa7c7f83dd70e1003b7c9b5259b2a472f922 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit cb59d80d8b07ca593e1a2faeee5944c984369b1a Author: Olivier BICHLER <oli...@cr...> Date: Mon May 10 21:31:37 2010 +0200 Added IdleI2C() to try to fix LCD screen ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Interface_Robot/Firmware/lcd.c b/elec/boards/Interface_Robot/Firmware/lcd.c index 555c44e..582ce2a 100644 --- a/elec/boards/Interface_Robot/Firmware/lcd.c +++ b/elec/boards/Interface_Robot/Firmware/lcd.c @@ -22,6 +22,7 @@ void lcd_init(BYTE address) WriteI2C(CMD_HEAD); WriteI2C(CMD_CLEAR); StopI2C(); + IdleI2C(); CloseI2C(); } @@ -39,6 +40,7 @@ void lcd_clear(BYTE address) WriteI2C(CMD_HEAD); WriteI2C(CMD_CLEAR); StopI2C(); + IdleI2C(); CloseI2C(); } @@ -62,6 +64,7 @@ void lcd_set_cursor(BYTE address, BOOL activate_cursor) else WriteI2C(CMD_CURSOR_OFF); StopI2C(); + IdleI2C(); CloseI2C(); } @@ -85,6 +88,7 @@ void lcd_set_backlight(BYTE address, BOOL activate_backlight) else WriteI2C(CMD_BACKLIGHT_OFF); StopI2C(); + IdleI2C(); CloseI2C(); } @@ -102,6 +106,7 @@ void lcd_goto_origin(BYTE address) WriteI2C(CMD_HEAD); WriteI2C(CMD_GOTO_ORIGIN); StopI2C(); + IdleI2C(); CloseI2C(); } @@ -123,6 +128,7 @@ void lcd_goto(BYTE address, BYTE xx, BYTE yy) WriteI2C(xx); WriteI2C(yy); StopI2C(); + IdleI2C(); CloseI2C(); } @@ -140,6 +146,7 @@ void lcd_write(BYTE address, unsigned char *msg) WriteI2C(address); putsI2C(msg); StopI2C(); + IdleI2C(); CloseI2C(); } @@ -160,5 +167,6 @@ void lcd_write_line(BYTE address, BYTE line, unsigned char *msg) WriteI2C(line); putsI2C(msg); StopI2C(); + IdleI2C(); CloseI2C(); } diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof index 56dfdb9..bc70d93 100644 Binary files a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof and b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof differ diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex index 2c46e52..3c02942 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex @@ -1,15 +1,15 @@ :020000040000FA -:0600000041EF22F01200A6 +:0600000043EF22F01200A4 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:0608000041EF22F012009E +:0608000043EF22F012009C :060808003AEF04F01200BB :060818009AEF04F012004B -:06082A0006003845000045 -:10083000860000002400000017450000CB000000E7 -:1008400021000000144500002C01000003000000FE -:100850000B4500002301000009000000FB440000DC -:100860000001000010000000F24400001A01000026 +:06082A0006003C45000041 +:1008300086000000240000001B450000CB000000E3 +:1008400021000000184500002C01000003000000FA +:100850000F4500002301000009000000FF440000D4 +:100860000001000010000000F64400001A01000022 :04087000090000007B :0C087400DACFE4FFE2CFDAFFE9CFE4FFC7 :10088000EACFE4FFF6CFE4FFF7CFE4FFF5CFE4FFD4 @@ -30,8 +30,8 @@ :10097000E5CFE0FFE5CFD8FF100004D84BEC0EF038 :1009800048D8FCD70F0EC11202D815EF0EF0F0ECCC :100990000DF0E6522CEC0DF00001FC6F070EFC5D33 -:1009A00011E1E66A57EC20F0E552DF6E000EDF80C1 -:1009B000C0EC0DF0E66A13EC22F0E552000EDF9079 +:1009A00011E1E66A59EC20F0E552DF6E000EDF80BF +:1009B000C0EC0DF0E66A15EC22F0E552000EDF9077 :1009C000C0EC0DF093809382948C948ED08EF28E36 :1009D000F28C770EC86E070EE66ED0EC1DF0E55275 :1009E0003F0E8A1693160101236B246B256B266B31 @@ -63,32 +63,32 @@ :100B800002E14EEF0BF00E0A02E1F5EF0AF0060A61 :100B900002E17AEF0AF0040A01E1A0D20F0A01E1B2 :100BA000F5D1040A1AE0030A07E0010A02E0D5EFD2 -:100BB0000BF0FF0016EF0CF0E66A57EC20F0E55260 -:100BC000DF6E000EDB80DFCFE6FFE66A37EC20F059 +:100BB0000BF0FF0016EF0CF0E66A59EC20F0E5525E +:100BC000DF6E000EDB80DFCFE6FFE66A39EC20F057 :100BD000E552E552FF0016EF0CF0010125512611F8 :100BE00002E1000E08D025C1E9FF26C1EAFFEF505F :100BF000800B01E0010E000901E0C6D100C540F5FF :100C00000501416B0501030E426F0501436B0501B0 :100C10000851050A01E101D10F0A01E17ED00E0A57 :100C200071E0070A64E0010A20E0030A06E0010A15 -:100C300001E080D1FCC048F580D10501486B570E1A +:100C300001E080D1FCC048F580D10501486B5B0E16 :100C4000006E420E016E026A00C0E6FF01C0E6FFC0 -:100C500002C0E6FF480EE66E050EE66E1BEC20F0C5 -:100C6000036E050EE15E035068D10501486B4B0E23 +:100C500002C0E6FF480EE66E050EE66E1DEC20F0C3 +:100C6000036E050EE15E035068D10501486B4F0E1F :100C7000006E420E016E026A00C0E6FF01C0E6FF90 -:100C800002C0E6FF480EE66E050EE66E1BEC20F095 -:100C9000036E050EE15E0350490E006E420E016EBA +:100C800002C0E6FF480EE66E050EE66E1DEC20F093 +:100C9000036E050EE15E03504D0E006E420E016EB6 :100CA000026A00C0E6FF01C0E6FF02C0E6FF480E90 -:100CB000E66E050EE66E1BEC20F0036E050EE15E9F -:100CC0000350400E006E420E016E026A00C0E6FF45 +:100CB000E66E050EE66E1DEC20F0036E050EE15E9D +:100CC0000350440E006E420E016E026A00C0E6FF41 :100CD00001C0E6FF02C0E6FF480EE66E050EE66EB6 -:100CE0001BEC20F0036E050EE15E035026D192CF7F +:100CE0001DEC20F0036E050EE15E035026D192CF7D :100CF00048F593CF49F594CF4AF595CF4BF596CF6C :100D00004CF51BD180CF48F581CF49F582CF4AF50C :100D100083CF4BF584CF4CF510D1800EE66E080ED4 -:100D2000E66EADEC21F0E552E552C58063EC22F0B1 -:100D3000C00EE66E02EC21F0E552E66A02EC21F00C -:100D4000E552C58263EC22F0C10EE66E02EC21F0A2 +:100D2000E66EAFEC21F0E552E552C58065EC22F0AD +:100D3000C00EE66E04EC21F0E552E66A04EC21F008 +:100D4000E552C58265EC22F0C10EE66E04EC21F09E :100D5000E552010EDB6A020EDB6A010EDBCF00F00A :100D6000020EDBCF01F0040E005C000E01584FE2D2 :100D7000010EF36E150EF3CFDBFFC586130EDB6A93 @@ -97,11 +97,11 @@ :100DA000DBCFE9FF020EDBCFEAFF480EE926050E96 :100DB000EA22C9CFEFFF150EDB6A06D0130EDB2A3D :100DC000140E01E3DB2ADED7150EDB5008E0050127 -:100DD000080E436FC58AC58863EC22F018D0010E57 +:100DD000080E436FC58AC58865EC22F018D0010E55 :100DE000DBCF00F0020EDBCF01F0030E005C000E43 -:100DF000015803E2C59AC58802D0C58AC58863EC4C +:100DF000015803E2C59AC58802D0C58AC58865EC4A :100E000022F0010EDB2A020E01E3DB2AA6D7C584FD -:100E100063EC22F076EC22F090D0010EDB6A020E39 +:100E100065EC22F078EC22F090D0010EDB6A020E35 :100E2000DB6A010EDBCF00F0020EDBCF01F0020E19 :100E3000005C000E015801E37CD0010EDBCFE6FF21 :100E40001CEC1AF0E5520B0E28C0DBFF0C0E29C07B @@ -142,7 +142,7 @@ :10107000020EE66EA3EC1BF0E552E552050109A74E :1010800008D00DC5E6FF030EE66EA3EC1BF0E5529B :10109000E552050109A908D00EC5E6FF040EE66E6B -:1010A000A3EC1BF0E552E55205D0030EE66EC8EC4A +:1010A000A3EC1BF0E552E55205D0030EE66ECAEC48 :1010B00021F0E552400EE66E000EE66E050EE66E7D :1010C000E66A010EE66E66EC12F0006E050EE15E59 :1010D0000050F3CF23F1F4CF24F1A8D3010125511F @@ -223,7 +223,7 @@ :1015800020D0090EE66E050EE66E070EE66EFAEC4A :101590001DF0E552E552E55214D00A0EE66E050E36 :1015A000E66E09C5E6FF070EE66E00EC1EF0E5529A -:1015B000E552E552E55205D0010EE66EC8EC21F089 +:1015B000E552E552E55205D0010EE66ECAEC21F087 :1015C000E552400EE66E000EE66E050EE66EE66A29 :1015D000010EE66E66EC12F0006E050EE15E005044 :1015E000F3CF23F1F4CF24F121D105010851030AEF @@ -234,17 +234,17 @@ :10163000E96EDACFEAFFEECFE6FFEECFE6FFEECFC0 :10164000E6FFEFCFE6FF0BC5E6FF0AC5E6FF09C5DB :10165000E6FF6FEC1CF0006E070EE15E0050010E1D -:10166000F36E160EF3CFDBFF05D0010EE66EC8EC6D +:10166000F36E160EF3CFDBFF05D0010EE66ECAEC6B :1016700021F0E552400EE66E000EE66E050EE66EB7 :10168000E66A010EE66E66EC12F0006E050EE15E93 :101690000050F3CF23F1F4CF24F1C8D0800EE66ED2 -:1016A000080EE66EADEC21F0E552E552C58063EC24 -:1016B00022F0E66A02EC21F0E552080EE66E050E15 -:1016C000E66E8FEC1FF0E552E552C58476EC22F011 +:1016A000080EE66EAFEC21F0E552E552C58065EC20 +:1016B00022F0E66A04EC21F0E552080EE66E050E13 +:1016C000E66E91EC1FF0E552E552C58478EC22F00D :1016D000400EE66E000EE66E050EE66EE66A010E40 :1016E000E66E66EC12F0006E050EE15E0050F3CF80 :1016F00023F1F4CF24F19AD04F0EAB16AC9ACF0E53 -:101700009D16020EE66EE66A7C0EE66E4AEC1FF04F +:101700009D16020EE66EE66A7C0EE66E4CEC1FF04D :10171000E552E552E552040EE66EE66AB5EC14F0C9 :10172000E552E552100EE66E010EE66EB5EC14F0D1 :10173000E552E552020EE66E030EE66E010EE66E0F @@ -282,7 +282,7 @@ :1019300071D9760E4BD9630EEE6E200EEE6E6C0EE4 :1019400069D9200EEE6EF8D8070EE66ED7EC1DF0C2 :10195000E5521ED9010EE66EA5D802E2E16AE55213 -:10196000B6EF0DF0120012003CEF1EF012001E0E3A +:10196000B6EF0DF0120012003EEF1EF012001E0E38 :10197000E66E010EE66E34EC12F0E552E552400ED2 :10198000E66E000EE66E050EE66EE66A010EE66E87 :1019900066EC12F0006E050EE15E0050F3CF23F10D @@ -316,7 +316,7 @@ :101B5000E126F350DF6E010EF4CFDBFF1200EE6ED4 :101B60006F0EEE6E6E0EEE6EE6EF0DF0E16E49D08A :101B7000DF50F36E010EDB50F46E020EE15C1200DA -:101B8000DFCFE6FFE66A37EC20F0E552E5521200BF +:101B8000DFCFE6FFE66A39EC20F0E552E5521200BD :101B9000E66A070EE66EDAEC1DF0E552E552120039 :101BA000EE6AD9502A0FE96EDACFEAFF12000ED89A :101BB000200EEE6EEE6E1200E66E070EE66E00EC84 @@ -405,11 +405,11 @@ :1020D000EF6EDF7457DAC80EEF6E040EE15C02E2B9 :1020E000E16AE552E16E57D2800E0401205D3CE1C9 :1020F0000001C00E736F04012351030A1EE0010AA0 -:1021000009E0030A2FE10001460E716F3D0E726F68 -:10211000120E22D0C3DAEE0EF6263D0EA2DA020E21 +:1021000009E0030A2FE100014A0E716F3D0E726F64 +:10211000120E22D0C3DAF20EF6263D0EA2DA020E1D :102120000001F76A7125F66E7251F7220900F5CFAA :1021300074F00A00F5CF75F01200030E225D0FE275 -:10214000ADDAF00EF6263D0E8CDA71C0F6FF72C0E5 +:10214000ADDAF40EF6263D0E8CDA71C0F6FF72C0E1 :10215000F7FF0800F5500001746F756B1200000165 :10216000736B12000001736B120011DA0401286B0B :10217000296B20511F0B020A11E0030A0CE0010A2F @@ -504,13 +504,13 @@ :10270000E66E0F0EE66E16DFE552E552E552120058 :1027100049DF670EE926000E120044DF6B0EE92642 :10272000000E1200D9CFE6FFE1CFD9FF1200E66E0E -:1027300001EC20F0006E050EE15E00501200E1ECAD +:1027300003EC20F0006E050EE15E00501200E1ECAB :102740000CF0006E060EE15E00501200200EEE6EE0 :10275000040EED6E120065C0E9FF66C0EAFF1200CC :1027600028DFC4DFA6EF13F004DFC0DF10EF13F0A3 :06277000F6DECFEF12F0CF :0A277600959A838A190E62EF16F09F -:10278000CFDA030EE126ACA2FED7E3EC20F0DF6E39 +:10278000CFDA030EE126ACA2FED7E5EC20F0DF6E37 :102790000001A85104E1865102E1010EA96FA905CB :1027A00058E1A851A8DADFCFEFFF020EA85D08E2DA :1027B000FF0EDF5C05E0050EABDA0001A96BA86B2C @@ -521,7 +521,7 @@ :10280000010EDBCFE7FFEF50E726010EE7CFDBFF3E :10281000020EDB2AE9D7CA516EDAEFCF00F0010EC3 :10282000DB1C005C05E0070E73DA0001866B0DD03F -:1028300000018B5102E0060E6BDA8BC0E6FFC8EC9C +:1028300000018B5102E0060E6BDA8BC0E6FFCAEC9A :1028400021F0E5520001010E866FA96BA86B01D043 :10285000A82B030EE15C02E2E16AE552E16E24D2AC :102860005FDA220EE126010EDB68020EDB68FE0E47 @@ -537,7 +537,7 @@ :10290000FC0EDB50050FE9D9E552E750EF6E839AD4 :10291000DF6AFC0EDB50060FDF5C11E2ACA2FED7D3 :10292000D950010F006EDACF01F0DF500F01D5D979 -:10293000EF50E66E2AEC22F0E552DF2AEAD7ACA28D +:10293000EF50E66E2CEC22F0E552DF2AEAD7ACA28B :10294000FED7838A0001866B220EE15C02E2E16A17 :10295000E552E16EA9D10001865112000001A75194 :10296000120000018651FDE01200DAD9FE0EDB50A4 @@ -594,12 +594,12 @@ :102C90005BD8DFCFE6FF62D8030EE66E1200FE0EB1 :102CA000DBCFE6FF030E4BD0E552E7CFD9FF120092 :102CB00037D84AD8FC0EDBCFE6FF010E2ED8020E25 -:102CC000E66E1200E66EE66A7C0EE66E4AEC1FF0D7 +:102CC000E66E1200E66EE66A7C0EE66E4CEC1FF0D5 :102CD00051D0100EE66E040E32D00024E96E000EC4 :102CE000DA20EA6E12001CD8FC0EDBCFE6FFFD0EE8 :102CF000DBCFE6FF1200EA6A870FE96E000EEA22D8 :102D00001200DBCFDEFFDBCFDDFFDFCFE6FF1200FF -:102D1000E66EC8EC21F0E5521200E66EB6EF16F052 +:102D1000E66ECAEC21F0E5521200E66EB6EF16F050 :102D2000D9CFE6FFE1CFD9FF1200E66EFE0EDBCF72 :102D3000E6FFF6DEE552E552E552E552B5D7E66E1E :102D4000FE0EE66E7FDE16D0FD0EDBCFE6FFE66AF6 @@ -692,15 +692,15 @@ :1032A0002388316A306A2F6A2E6A1200312803E0BF :1032B000D88030321200D8903032EAE1238A1200EE :1032C000FC0E9516838083820D0EE66E7C0EE66EF4 -:1032D000E10EE66ECAEC1FF0E552E552E55212002F +:1032D000E10EE66ECCEC1FF0E552E552E55212002D :1032E000D9CFE6FFE1CFD9FFE65201012C51040A04 :1032F00045E0070A2DE0010A23E0030A0BE0010A7A -:1033000001E094D0870EE66EFBEC21F0E55201015E -:10331000010E32D071EC22F0000901E088D03DD9D5 +:1033000001E094D0870EE66EFDEC21F0E55201015C +:10331000010E32D073EC22F0000901E088D03DD9D3 :1033200001AE02D0026803682DC1E9FFEA6AE9BE76 :10333000EA6810D9F40EE926000E21D9020E1CD03D -:103340008F0EE66EFBEC21F0E5520101030E14D066 -:1033500071EC22F000096BE120D901AE02D00268C5 +:103340008F0EE66EFDEC21F0E5520101030E14D064 +:1033500073EC22F000096BE120D901AE02D00268C3 :1033600003682DC1E9FFEA6AE9BEEA68F3D8F80EFE :10337000E926000E04D9040E2C6F59D02D2B010E16 :10338000E76E2D19E8AE02D0E73402D0E7502D5D8C @@ -736,15 +736,15 @@ :1035600012002AD8D950010FE96EDACFEAFF2ED81F :10357000DF2A120021D82EC1E9FFEA6A1200EA22EE :1035800000C0EEFF01C0EEFF02C0EEFF03C0EEFF81 -:1035900001011200EA22E6EF1AF05AEC22F0F3CF12 +:1035900001011200EA22E6EF1AF05CEC22F0F3CF10 :1035A00000F0F4CF01F0026A036A1200DFCF00F0EE :1035B000010EE76E00181200EA22EECF00F0EECF07 :1035C00001F0EECF02F0EFCF03F012000050EE2634 :1035D0000150EE220250EE220350EE221200BADF1A :1035E000EC0EE926000E1200B5DFF00EE926000E03 :0235F0001200C7 -:0E35F200E30E95169492A082FD0EE66EC0ECDC -:1036000020F0E552000EE66EE66A3EEC21F0E5524F +:0E35F200E30E95169492A082FD0EE66EC2ECDA +:1036000020F0E552000EE66EE66A40EC21F0E5524D :10361000E5528394839683988292120083948396D2 :1036200083988292050E0101205D0EE2010E20C1F9 :10363000E7FFE75204E0E846FE0BE706FCE1010184 @@ -773,7 +773,7 @@ :1037A0002BF00CC02CF0E9EC17F074EC18F02AC0E8 :1037B00006F02BC007F0086A2A50035C006E2B50FD :1037C0000458016E08500558026E00C0E6FF01C0A3 -:1037D000E6FF3EEC21F0E552E552120029C015F05B +:1037D000E6FF40EC21F0E552E552120029C015F059 :1037E0002AC016F02BC017F02CC018F027D811C033 :1037F00029F012C02AF013C02BF014C02CF01200D4 :1038000003680468056A096A0A6AC00E0B6E3F0EF7 @@ -783,9 +783,9 @@ :0E3840002AC02FF02BC030F02CC031F0120047 :02384E00D9CFD0 :10385000E6FFE1CFD9FFCB0E93169494060EE66EE9 -:1038600092EC21F0E552FE0EDBA00CD0AF0EE66E1E -:1038700076EC21F0E552000EE66EE66A5AEC21F095 -:10388000E55204D0820EE66E76EC21F0E55281948A +:1038600094EC21F0E552FE0EDBA00CD0AF0EE66E1C +:1038700078EC21F0E552000EE66EE66A5CEC21F091 +:10388000E55204D0820EE66E78EC21F0E552819488 :103890008294819A8198ECD0E2D8D880000E010100 :1038A0000855000E0955000E0A55000E0B550EE284 :1038B0000807000E095B0A5B0B5B085109110A112E @@ -794,10 +794,10 @@ :1038E000E6FFE1CFD9FFF80EDBCF08F1F90EDBCF11 :1038F00009F1FA0EDBCF0AF1FB0EDBCF0BF1280E3C :103900002D6E2E6A2F6A306A08C128F009C129F08D -:103910000AC12AF00BC12BF09CEC20F028C008F162 +:103910000AC12AF00BC12BF09EEC20F028C008F160 :1039200029C009F12AC00AF12BC00BF198D8FD0E6D :10393000DB50E8B0818AE8A0819AFD0EDB1CE8B07C -:103940008188E8A081984A0EE66EE3EC21F0E5520A +:103940008188E8A081984A0EE66EE5EC21F0E55208 :10395000FC0EDBCF16F016C02BF0BEEC16F029C023 :1039600012F02AC013F02BC014F02CC015F02E6AF0 :103970002F6A7F0E306E430E316E96EC17F029C021 @@ -810,220 +810,221 @@ :1039E00017F074EC18F0CFEC16F029C002F02AC0E2 :1039F00003F02BC004F02CC005F02E6A2F6A800E55 :103A0000306E410E316E96EC17F074EC18F02AC04F -:103A100000F02BC001F02AC0E6FF2BC0E6FF6DECE2 +:103A100000F02BC001F02AC0E6FF2BC0E6FF6FECE0 :103A200020F0E552E55224D08150200B06E0815071 :103A3000100B03E18350400B09E08150200B0EE195 :103A40008150100B0BE08350800B08E1BD6A82941B :103A50000101086B096B0A6B0B6B010C000CA00ECB -:103A6000E66E150EE66E5AEC21F0E552E5521200B4 +:103A6000E66E150EE66E5CEC21F0E552E5521200B2 :083A7000E552E7CFD9FF120077 :083A7800050EE66E060E8CD867 :103A8000070E8AD8080E88D8090E7ED80A0E80D86C :103A90000B0E7AD80C0E7CD80D0E76D80E0E78D878 :103AA0000F0E72D8100E74D8110EA8EF1DF0D9CFDA -:103AB000E6FFE1CFD9FF51D8FD0EDBCFE6FF02ECE8 -:103AC00021F0E552C58476EC22F0E552E7CFD9FF2C +:103AB000E6FFE1CFD9FF51D8FD0EDBCFE6FF04ECE6 +:103AC00021F0E552C58478EC22F0E552E7CFD9FF2A :103AD0001200D9CFE6FFE1CFD9FF030EE126020E97 -:103AE000DB6A3BD8C58263EC22F0E90EE66E02EC9D +:103AE000DB6A3BD8C58265EC22F0E90EE66E04EC99 :103AF00021F0E552C586DE6ADD6ADECF00F0DDCF5B :103B000001F0E80E005C030E01580BE2C7A004D0E0 :103B1000020EC9CFDBFF05D0DF2A010EEEE3DB2A60 -:103B2000ECD7C58AC58863EC22F0C58463EC22F02B -:103B300076EC22F0020EDB50006E030EE15C02E236 +:103B2000ECD7C58AC58865EC22F0C58465EC22F027 +:103B300078EC22F0020EDB50006E030EE15C02E234 :103B4000E16AE552E16E0050E552E7CFD9FF12007D :103B5000E66EADDFE552E5521200800EE66E080E0D -:103B6000E66EADEC21F0E552E552C58063EC22F043 -:103B7000E80EE66E02EC21F0E552FE0EDBCFE6FF2A -:103B800002EC21F0E5521200E3DFC40EE66E1200F3 +:103B6000E66EAFEC21F0E552E552C58065EC22F03F +:103B7000E80EE66E04EC21F0E552FE0EDBCFE6FF28 +:103B800004EC21F0E5521200E3DFC40EE66E1200F1 :103B9000DFDF090EE66E1200DBDF050EE66E1200B7 -:103BA00036D857D856D855D84DD8430E54D057D8B4 -:103BB000430E51D054D8FD0EDB5002E0530E01D01D -:103BC000730E49D04CD8FD0EDB5002E0420E01D0FE -:103BD000620E41D044D8480E3ED041D84C0EE66E1D -:103BE00002EC21F0E55231D8FC0EDBCFE6FF02EC0F -:103BF00021F020D00CD8FC0EDBCFE6FFFD0E36D036 -:103C000006D823D8FB0EDBCFE6FFFC0E2FD0D9CF92 -:103C1000E6FFE1CFD9FF800EE66E080EE66EADEC52 -:103C200021F0E552E552C58063EC22F0FE0EDBCFB9 -:103C3000E6FF18D0E552C58476EC22F0E552E7CFD6 -:103C4000D9FF12001B0EE66E0DD0FD0EDBCFE6FF96 -:103C500009D0E66A07D0E66E02EC21F0EBD7D7DF99 -:103C600022EF1EF002EC21F0E5521200DBCFE6FF5E -:083C70008FEC1FF0E552DED7D6 -:083C7800040120511F0B01089B -:103C800001E01200245101E01200060E215D21E145 -:103C90002351230A1BE0010A0CE0030A1AE1000188 -:103CA000610517E100016A0E716F3D0E726F090E1A -:103CB00009D0000161050DE10001D10E716F3D0ECB -:103CC000726F1D0E746F756BC00E02D00001800EF6 -:103CD000736F04012051600BE842E842E842E84279 -:103CE000E842010801E0120021510B0A26E0080A0F -:103CF00019E0090A11E0080A05E00B0A23E0080AA6 -:103D000021E0120000012F0E716F010E726F010E83 -:103D1000746F756BC10E0FD00001800E736F23C4DA -:103D20002FF112000001300E716F010E726F010E43 -:103D3000746F756B810E736F12000001800E736FCC -:063D400022C430F1120064 -:0A3D46001201000200000008D8047A -:103D5000040002000102000109022900010100C063 -:103D600032090400000203000000092111010001D2 -:103D7000221D0007058103400001070501034000E3 -:103D800001040309042C034D006F00620069006CFC -:103D9000006500200052006F0062006F0074002078 -:103DA0000050006C006100740066006F0072006DCE -:103DB00000200352006F0062006F00740020004971 -:103DC000006E0074006500720066006100630065AB -:103DD000000600FF0901A10119012940150026FF75 -:103DE00000750895408100190129409100C0583D97 -:063DF000813D853DB13D5F -:0A3DF6002A0EF66E080EF76E000E9E -:103E0000F86E01010900F550156F0900F550166FA5 -:103E100003E1156701D03DD00900F550106F09008E -:103E2000F550116F0900F550126F09000900F550A7 -:103E3000E96E0900F550EA6E090009000900F55025 -:103E4000136F0900F550146F09000900F6CF17F140 -:103E5000F7CF18F1F8CF19F110C1F6FF11C1F7FF34 -:103E600012C1F8FF0101135302E1145307E00900E6 -:103E7000F550EE6E1307F8E21407F9D717C1F6FFF5 -:103E800018C1F7FF19C1F8FF01011507000E165BF5 -:043E9000BFD7120086 -:0C3E9400D9CFE6FFDACFE6FFE1CFD9FF7F -:103EA000E2CFDAFFAC6AAB6AFD0EDBB0AC88DBA216 -:103EB00002D0AC8CAB8CDBB4AC8EDBA602D0AB8872 -:103EC00001D0AB8ADBB8AC849E98DBBAAC86DBACA5 -:103ED00002D09D8A01D09D9A9E9ADBAE02D09D8829 -:103EE00001D09D98FB0EDB50AF6EFB0EFC0EDBCFBE -:103EF00001F001C000F0016A0050B06EAC8AAB8ED8 -:103F0000949C948EAC50100B04E0AC50800B01E1FB -:0E3F1000948CE552E5CFDAFFE7CFD9FF12001F -:023F1E00D9CFF9 -:103F2000E6FFDACFE6FFE1CFD9FFE2CFDAFFE652D4 -:103F300029D820E0C6A60AD025D8E66E02EC21F0EA -:103F4000E552DF6EDF5010E0DF5015D09E961AD894 -:103F5000C96EC6889EA6FED7C750040B05E1C750A0 -:103F6000010B02E1FE0E07D0FC0EDB2AFD0EE0E3A2 -:103F7000DB2ADED7000EE552E552E5CFDAFFE7CFC8 -:103F8000D9FF1200FC0EDBCFE9FFFD0EDBCFEAFF0D -:043F9000EF501200DC -:0C3F9400D9CFE6FFDACFE6FFE1CFD9FF7E -:103FA000E2CFDAFFC26AC06AFC0EDB407F0B3C0B3B -:103FB000C26EFB0EDBCFE6FFFC0EDB38F00B300BE6 -:103FC000E552E710C16EFD0EDB50040DF350380BC7 -:103FD000016EFD0EDB380F0B070B006EFD0EDB5084 -:103FE000800B00100110C06EFC0EDBAE03D09E9C57 -:103FF0009D8CF28CC280E552E5CFDAFFE7CFD9FF86 -:024000001200AC -:0E400200FE0EE3CFE9FFFF0EE3CFEAFFE9CFAA -:10401000F3FFEACFF4FFFB0EE35003E1FC0EE350A5 -:1040200009E0FB0EE30602E2FC0EE306FD0EE350A0 -:10403000EE6EF1D71200FB0EE3CFF6FFFC0EE3CFDE -:10404000F7FFFD0EE3CFF8FFFE0EE3CFE9FFFF0E13 -:10405000E3CFEAFFE9CFF3FFEACFF4FFEE66FED746 -:0E406000ED520900F5CFEFFFEE66FBD7120020 -:02406E002DD84B -:10407000FD0EDB50A86EA69EA69CA684F250800B77 -:1040800001E0010E0101316FF29E550EA76EAA0EDE -:10409000A76EA6823151E8B0F28EE8A0F29EA6B2D9 -:1040A000FED7A198A694E552E7CFD9FF12000DD80C -:1040B000A69EA69CA680020EE66E4FEC22F0E5526C -:1040C000A850E552E7CFD9FF1200D9CFE6FFE1CFE4 -:0A40D000D9FFFE0EDB50A96E1200AE -:0640DA00D9CFE6FFDACFAA -:1040E000E6FFE1CFD9FFE2CFDAFFE652E652FC0E5F -:1040F000DBCF00F0FD0EDBCF01F0060ED8900036CE -:104100000136E804FBE100C0DEFF01C0DDFF010E67 -:10411000DB50BE6EDF50E840E8403F0B300B006ED6 -:10412000CF0EBD140010BD6EE552E552E552E5CF4D -:08413000DAFFE7CFD9FF12000E -:08413800276A266A256A246A41 -:10414000200EE76ED890283629362A362B362436AC -:104150002536263627362D50245C2E5025582F50D4 -:1041600026583050275809E32D50245E2E50255AEA -:104170002F50265A3050275A282AE72EE4D712000B -:10418000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF02 -:10419000FD0EDB50360BB16EB36AB26AA192FD0E12 -:1041A000DBAE02D0A08201D0A092DBB2CD86DBA034 -:1041B00002D0B18E01D0B19EB180E552E5CFDAFFD9 -:0641C000E7CFD9FF120059 -:0A41C600D9CFE6FFDACFE6FFE1CF24 -:1041D000D9FFE2CFDAFFE652F20E0001FF17ABACD7 -:1041E00003D0FF91ABB0FF81ABB4FF85ABB2FF87CB -:1041F000AE50DF6EDF50E552E552E5CFDAFFE7CF94 -:04420000D9FF1200D0 -:0C420400D9CFE6FFDACFE6FFE1CFD9FF0B -:10421000E2CFDAFFFD0EDB50C96EC6AE02D0FF0E54 -:1042200009D0C7B0FED763EC22F0C5AC02D0FE0EB9 -:1042300001D0000EE552E5CFDAFFE7CFD9FF12003B -:1042400031373A30303A30350020004D6179203135 -:1042500030203230313000526F626F7420496E74FA -:1042600065726661636520312E300A4F6C6976692C -:0B427000657220424943484C45520053 -:04427C00D9CFE6FFB1 -:10428000DACFE6FFE1CFD9FFE2CFDAFFE652E6521E -:10429000FC0EDBCFDEFFDBCFDDFF010EDB50B36EAC -:1042A000DF50B26EE552E552E552E5CFDAFFE7CFD7 -:0442B000D9FF120020 -:0C42B400D9CFE6FFDACFE6FFE1CFD9FF5B -:1042C000E2CFDAFFE652E652FC0EDBCFDEFFDBCFB9 -:1042D000DDFF010EDB50D76EDF50D66EE552E552A2 -:0C42E000E552E5CFDAFFE7CFD9FF12006E -:0442EC00D9CFE6FF41 -:1042F000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB50E8 -:104300007F0BD56ED76AD66AF294FD0EDBAE02D073 -:10431000F28A01D0F29AD58EE552E5CFDAFFE7CFE7 -:04432000D9FF1200AF -:0C432400D9CFE6FFDACFE6FFE1CFD9FFEA -:10433000E2CFDAFFFD0EDB50FB0BCA6ECC6A9E9219 -:10434000FD0EDBAE02D09D8201D09D92CA84E55263 -:0A435000E5CFDAFFE7CFD9FF120036 -:06435A00D9CFE6FFDACF27 -:10436000E6FFE1CFD9FFE2CFDAFF3F0EC716C66AFC -:10437000C56AFD0EDB50C612FC0EDB50C7129382DD -:104380009380C68AE552E5CFDAFFE7CFD9FF120066 -:10439000D9CFE6FFE1CFD9FF00010ED8EF500008DA -:1043A00003E2EB291F0BEB6F07D8FE0EDBCFEFFF0D -:1043B000E552E7CFD9FF1200EB51EA6ACB0FE96E65 -:0643C000000EEA221200CB -:0A43C600D9CFE6FFDACFE6FFE1CF22 -:1043D000D9FFE2CFDAFF0C0EBD129494CA94FD0E01 -:1043E000DB50CB6ECA84E552E5CFDAFFE7CFD9FFC9 -:0643F0001200949412007B -:0A43F600D9CFE6FFDACFE6FFE1CFF2 -:10440000D9FFE2CFDAFFFD0EDB407F0B3C0B006EE5 -:10441000C30EC2140010C26EC282E552E5CFDAFFAD -:06442000E7CFD9FF1200F6 -:0A442600FF0EE350376EEF0E01D0D9 -:10443000F30EE76EE72E1AEF22F00C0E366EE76AE7 -:10444000E72E20EF22F0362E1FEF22F0372E18EF46 -:0444500022F0120044 -:0C445400D9CFE6FFDACFE6FFE1CFD9FFB9 -:10446000E2CFDAFFACAC04D0AC900001FFB3AC807B -:10447000FD0EDB50AD6EE552E5CFDAFFE7CFD9FF99 -:02448000120028 -:0E44820013EE00F023EE00F0F86A239CFBEC32 -:0E4490001EF078EC22F0BDEC04F0FBD7120019 -:02449E00FF0E0F -:1044A000E350E84E1200000000D000D000D0E82E0B -:0444B000FAD7120025 -:0C44B400C450036E026AC3500210F36E85 -:0644C00003C0F4FF12002E -:0A44C6001F0EC514FDE1C750040BE2 -:0444D000FAE11200FB -:0C44D40000EE00F00F0EEE6AEA62FDD769 -:0244E0001200C8 -:0A44E200C250020B01E0010E1200AF -:0444EC00C69A12005A -:0244F0001200B8 -:0944F200000000000000000000C1 -:0544FB000000000000BC -:0B4500000000000000000000000000B0 -:05450B000000000001AA -:0445100000000000A7 -:03451400000000A4 -:094517000000000000000000009B +:103BA00036D859D858D857D84FD8430E56D059D8A8 +:103BB000430E53D056D8FD0EDB5002E0530E01D019 +:103BC000730E4BD04ED8FD0EDB5002E0420E01D0FA +:103BD000620E43D046D8480E40D043D84C0EE66E15 +:103BE00004EC21F0E55233D8FC0EDBCFE6FF04EC09 +:103BF00021F020D00CD8FC0EDBCFE6FFFD0E38D034 +:103C000006D825D8FB0EDBCFE6FFFC0E31D0D9CF8E +:103C1000E6FFE1CFD9FF800EE66E080EE66EAFEC50 +:103C200021F0E552E552C58065EC22F0FE0EDBCFB7 +:103C3000E6FF1AD0E552C58465EC22F078EC22F05C +:103C4000E552E7CFD9FF12001B0EE66E0DD0FD0E38 +:103C5000DBCFE6FF09D0E66A07D0E66E04EC21F080 +:103C6000E9D7D5DF24EF1EF004EC21F0E552120075 +:0C3C7000DBCFE6FF91EC1FF0E552DCD743 +:043C7C0004012051CE +:103C80001F0B010801E01200245101E01200060E92 +:103C9000215D21E12351230A1BE0010A0CE0030A04 +:103CA0001AE10001610517E100016E0E716F3D0E12 +:103CB000726F090E09D0000161050DE10001D50EFA +:103CC000716F3D0E726F1D0E746F756BC00E02D05A +:103CD0000001800E736F04012051600BE842E8423E +:103CE000E842E842E842010801E0120021510B0AD3 +:103CF00026E0080A19E0090A11E0080A05E00B0AA3 +:103D000023E0080A21E0120000012F0E716F010E5E +:103D1000726F010E746F756BC10E0FD00001800EB3 +:103D2000736F23C42FF112000001300E716F010E6A +:103D3000726F010E746F756B810E736F120000014C +:0A3D4000800E736F22C430F11200F0 +:063D4A001201000200005E +:103D50000008D80404000200010200010902290041 +:103D6000010100C032090400000203000000092123 +:103D700011010001221D0007058103400001070514 +:103D80000103400001040309042C034D006F00628D +:103D90000069006C006500200052006F0062006F37 +:103DA000007400200050006C006100740066006F19 +:103DB0000072006D00200352006F0062006F0074FB +:103DC00000200049006E007400650072006600610A +:103DD00000630065000600FF0901A10119012940E7 +:103DE000150026FF007508954081001901294091B2 +:0A3DF00000C05C3D853D893DB53DF6 +:063DFA002A0EF66E080E11 +:103E0000F76E000EF86E01010900F550156F0900FC +:103E1000F550166F03E1156701D03DD00900F5504C +:103E2000106F0900F550116F0900F550126F09006D +:103E30000900F550E96E0900F550EA6E0900090025 +:103E40000900F550136F0900F550146F09000900BF +:103E5000F6CF17F1F7CF18F1F8CF19F110C1F6FF2F +:103E600011C1F7FF12C1F8FF0101135302E114530E +:103E700007E00900F550EE6E1307F8E21407F9D7D2 +:103E800017C1F6FF18C1F7FF19C1F8FF01011507A7 +:083E9000000E165BBFD7120003 +:083E9800D9CFE6FFDACFE6FF07 +:103EA000E1CFD9FFE2CFDAFFAC6AAB6AFD0EDBB03F +:103EB000AC88DBA202D0AC8CAB8CDBB4AC8EDBA6C6 +:103EC00002D0AB8801D0AB8ADBB8AC849E98DBBA59 +:103ED000AC86DBAC02D09D8A01D09D9A9E9ADBAE67 +:103EE00002D09D8801D09D98FB0EDB50AF6EFB0E7B +:103EF000FC0EDBCF01F001C000F0016A0050B06E93 +:103F0000AC8AAB8E949C948EAC50100B04E0AC50F9 +:103F1000800B01E1948CE552E5CFDAFFE7CFD9FFC2 +:023F200012008D +:0E3F2200D9CFE6FFDACFE6FFE1CFD9FFE2CF3D +:103F3000DAFFE65229D820E0C6A60AD025D8E66ED8 +:103F400004EC21F0E552DF6EDF5010E0DF5015D0B9 +:103F50009E961AD8C96EC6889EA6FED7C750040B77 +:103F600005E1C750010B02E1FE0E07D0FC0EDB2A73 +:103F7000FD0EE0E3DB2ADED7000EE552E552E5CF89 +:103F8000DAFFE7CFD9FF1200FC0EDBCFE9FFFD0E11 +:083F9000DBCFEAFFEF50120045 +:083F9800D9CFE6FFDACFE6FF06 +:103FA000E1CFD9FFE2CFDAFFC26AC06AFC0EDB4084 +:103FB0007F0B3C0BC26EFB0EDBCFE6FFFC0EDB384B +:103FC000F00B300BE552E710C16EFD0EDB50040D17 +:103FD000F350380B016EFD0EDB380F0B070B006E34 +:103FE000FD0EDB50800B00100110C06EFC0EDBAE2E +:103FF00003D09E9C9D8CF28CC280E552E5CFDAFF07 +:06400000E7CFD9FF12001A +:0A400600FE0EE3CFE9FFFF0EE3CF4B +:10401000EAFFE9CFF3FFEACFF4FFFB0EE35003E141 +:10402000FC0EE35009E0FB0EE30602E2FC0EE306A1 +:10403000FD0EE350EE6EF1D71200FB0EE3CFF6FF5C +:10404000FC0EE3CFF7FFFD0EE3CFF8FFFE0EE3CF4C +:10405000E9FFFF0EE3CFEAFFE9CFF3FFEACFF4FF7A +:10406000EE66FED7ED520900F5CFEFFFEE66FBD707 +:0240700012003C +:0E4072002DD8FD0EDB50A86EA69EA69CA6843F +:10408000F250800B01E0010E0101316FF29E550EDE +:10409000A76EAA0EA76EA6823151E8B0F28EE8A0F4 +:1040A000F29EA6B2FED7A198A694E552E7CFD9FF1B +:1040B00012000DD8A69EA69CA680020EE66E51ECBC +:1040C00022F0E552A850E552E7CFD9FF1200D9CF30 +:0E40D000E6FFE1CFD9FFFE0EDB50A96E120015 +:0240DE00D9CF38 +:1040E000E6FFDACFE6FFE1CFD9FFE2CFDAFFE65213 +:1040F000E652FC0EDBCF00F0FD0EDBCF01F0060E2A +:10410000D89000360136E804FBE100C0DEFF01C0B4 +:10411000DDFF010EDB50BE6EDF50E840E8403F0B94 +:10412000300B006ECF0EBD140010BD6EE552E5528F +:0C413000E552E5CFDAFFE7CFD9FF12001F +:04413C00276A266A5E +:10414000256A246A200EE76ED890283629362A364A +:104150002B3624362536263627362D50245C2E5015 +:1041600025582F5026583050275809E32D50245EEB +:104170002E50255A2F50265A3050275A282AE72EDB +:04418000E4D712006E +:0C418400D9CFE6FFDACFE6FFE1CFD9FF8C +:10419000E2CFDAFFFD0EDB50360BB16EB36AB26AC6 +:1041A000A192FD0EDBAE02D0A08201D0A092DBB2C4 +:1041B000CD86DBA002D0B18E01D0B19EB180E55298 +:0A41C000E5CFDAFFE7CFD9FF1200C8 +:0641CA00D9CFE6FFDACFB9 +:1041D000E6FFE1CFD9FFE2CFDAFFE652F20E0001AF +:1041E000FF17ABAC03D0FF91ABB0FF81ABB4FF8541 +:1041F000ABB2FF87AE50DF6EDF50E552E552E5CF40 +:08420000DAFFE7CFD9FF12003D +:08420800D9CFE6FFDACFE6FF93 +:10421000E1CFD9FFE2CFDAFFFD0EDB50C96EC6AEAB +:1042200002D0FF0E09D0C7B0FED765EC22F0C5ACB6 +:1042300002D0FE0E01D0000EE552E5CFDAFFE7CF47 +:04424000D9FF120090 +:0C42440032313A32353A30360020004D5D +:104250006179203130203230313000526F626F741A +:1042600020496E7465726661636520312E300A4F95 +:0F4270006C697669657220424943484C4552009B +:10428000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF01 +:10429000E652E652FC0EDBCFDEFFDBCFDDFF010E88 +:1042A000DB50B36EDF50B26EE552E552E552E5CF1A +:0842B000DAFFE7CFD9FF12008D +:0842B800D9CFE6FFDACFE6FFE3 +:1042C000E1CFD9FFE2CFDAFFE652E652FC0EDBCFB8 +:1042D000DEFFDBCFDDFF010EDB50D76EDF50D66E89 +:1042E000E552E552E552E5CFDAFFE7CFD9FF1200FC +:1042F000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF91 +:10430000FD0EDB507F0BD56ED76AD66AF294FD0E98 +:10431000DBAE02D0F28A01D0F29AD58EE552E5CF1B +:08432000DAFFE7CFD9FF12001C +:08432800D9CFE6FFDACFE6FF72 +:10433000E1CFD9FFE2CFDAFFFD0EDB50FB0BCA6EF7 +:10434000CC6A9E92FD0EDBAE02D09D8201D09D9282 +:0E435000CA84E552E5CFDAFFE7CFD9FF1200AD +:02435E00D9CFB5 +:10436000E6FFDACFE6FFE1CFD9FFE2CFDAFF3F0E7B +:10437000C716C66AC56AFD0EDB50C612FC0EDB50BE +:10438000C71293829380C68AE552E5CFDAFFE7CF62 +:04439000D9FF12003F +:0C439400D9CFE6FFE1CFD9FF00010ED821 +:1043A000EF50000803E2EB291F0BEB6F07D8FE0E5E +:1043B000DBCFEFFFE552E7CFD9FF1200EB51EA6AFE +:0A43C000CB0FE96E000EEA22120096 +:0643CA00D9CFE6FFDACFB7 +:1043D000E6FFE1CFD9FFE2CFDAFF0C0EBD129494D5 +:1043E000CA94FD0EDB50CB6ECA84E552E5CFDAFFEE +:0A43F000E7CFD9FF120094941200E9 +:0643FA00D9CFE6FFDACF87 +:10440000E6FFE1CFD9FFE2CFDAFFFD0EDB407F0B05 +:104410003C0B006EC30EC2140010C26EC282E55285 +:0A442000E5CFDAFFE7CFD9FF120065 +:06442A00FF0EE350376EA7 +:10443000EF0E01D0F30EE76EE72E1CEF22F00C0E0C +:10444000366EE76AE72E22EF22F0362E21EF22F0B9 +:08445000372E1AEF22F01200D2 +:08445800D9CFE6FFDACFE6FF41 +:10446000E1CFD9FFE2CFDAFFACAC04D0AC900001D1 +:10447000FFB3AC80FD0EDB50AD6EE552E5CFDAFF49 +:06448000E7CFD9FF120096 +:0A44860013EE00F023EE00F0F86AD8 +:10449000239CFDEC1EF07AEC22F0BDEC04F0FBD77F +:0244A000120008 +:0E44A200FF0EE350E84E1200000000D000D0E4 +:0844B00000D0E82EFAD712003B +:0844B800C450036E026AC350F8 +:0A44C0000210F36E03C0F4FF1200B7 +:0644CA001F0EC514FDE108 +:0844D000C750040BFAE11200D1 +:0844D80000EE00F00F0EEE6A89 +:0644E000EA62FDD71200A4 +:0A44E600C250020B01E0010E1200AB +:0444F000C69A120056 +:0244F4001200B4 +:0944F600000000000000000000BD +:0144FF0000BC +:0F450000000000000000000000000000000000AC +:01450F0000AB +:084510000000000100000000A2 +:03451800000000A0 +:05451B0000000000009B :10452000000000000000000000000000000000008B -:08453000000000000000000083 -:0845380000000000000000007B +:0C4530000000000000000000000000007F +:04453C00000000007B :10454000000000000000000000000000000000006B -:0C4550000000000000000000000000005F +:10455000000000000000000000000000000000005B :00000001FF diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map index a00e148..eeb6b1a 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Mon May 10 17:00:10 2010 +Linker Map File - Created Mon May 10 21:25:10 2010 Section Info Section Type Address Location Size(Bytes) @@ -19,111 +19,111 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 .code_servo.o code 0x0035f2 program 0x00025c .code_mcc.o code 0x00384e program 0x00022a .code_adjd-s371.o code 0x003a78 program 0x000128 - .code_lcd.o code 0x003ba0 program 0x0000d8 - .code_usb_function_hid.o code 0x003c78 program 0x0000ce -.romdata_usb_descriptors.o romdata 0x003d46 program 0x0000b0 - _cinit_scn code 0x003df6 program 0x00009e - .code_uopen.o code 0x003e94 program 0x00008a - .code_i2c_puts.o code 0x003f1e program 0x000076 - .code_adcopen.o code 0x003f94 program 0x00006e - STRING code 0x004002 program 0x00006c - .code_eeprom.o code 0x00406e program 0x00006c - .code_pw1setdc.o code 0x0040da program 0x00005e - .code_fxd3232u.o code 0x004138 program 0x000048 - .code_t3open.o code 0x004180 program 0x000046 - .code_uread.o code 0x0041c6 program 0x00003e - .code_i2c_writ.o code 0x004204 program 0x00003c - .stringtable romdata 0x004240 program 0x00003b - .idata_i2c_open.o_i romdata 0x00427b program 0x000000 - .romdata_i2c_open.o romdata 0x00427b program 0x000000 - .romdata_uread.o romdata 0x00427b program 0x000000 - .idata_uread.o_i romdata 0x00427b program 0x000000 - .romdata_adcread.o romdata 0x00427b program 0x000000 - .idata_adcread.o_i romdata 0x00427b program 0x000000 -.idata_usb_descriptors.o_i romdata 0x00427b program 0x000000 - .romdata_uopen.o romdata 0x00427b program 0x000000 - .idata_pw1open.o_i romdata 0x00427b program 0x000000 - .idata_uopen.o_i romdata 0x00427b program 0x000000 - .romdata_pw1open.o romdata 0x00427b program 0x000000 - .romdata_t3open.o romdata 0x00427b program 0x000000 - .idata_t3open.o_i romdata 0x00427b program 0x000000 - .romdata_t2open.o romdata 0x00427b program 0x000000 - .idata_t2open.o_i romdata 0x00427b program 0x000000 - .romdata_t0open.o romdata 0x00427b program 0x000000 - .idata_t0open.o_i romdata 0x00427b program 0x000000 - .idata_c018i.o_i romdata 0x00427b program 0x000000 - .romdata_c018i.o romdata 0x00427b program 0x000000 - .romdata_i2c_puts.o romdata 0x00427b program 0x000000 - .idata_i2c_puts.o_i romdata 0x00427b program 0x000000 - .romdata___init.o romdata 0x00427b program 0x000000 - .idata___init.o_i romdata 0x00427b program 0x000000 - .romdata_uwrite.o romdata 0x00427b program 0x000000 - .idata_uwrite.o_i romdata 0x00427b program 0x000000 - .romdata_t3write.o romdata 0x00427b program 0x000000 - .idata_t3write.o_i romdata 0x00427b program 0x000000 - .romdata_t0write.o romdata 0x00427b program 0x000000 - .idata_t0write.o_i romdata 0x00427b program 0x000000 - .romdata_i2c_writ.o romdata 0x00427b program 0x000000 - .idata_i2c_writ.o_i romdata 0x00427b program 0x000000 - .romdata_udefs.o romdata 0x00427b program 0x000000 - .idata_udefs.o_i romdata 0x00427b program 0x000000 - .romdata_pw1setdc.o romdata 0x00427b program 0x000000 - .idata_pw1setdc.o_i romdata 0x00427b program 0x000000 - .romdata_adcselchconv.o romdata 0x00427b program 0x000000 - .idata_adcselchconv.o_i romdata 0x00427b program 0x000000 - .romdata_lcd.o romdata 0x00427b program 0x000000 - .idata_eeprom.o_i romdata 0x00427b program 0x000000 - .idata_lcd.o_i romdata 0x00427b program 0x000000 - .romdata_eeprom.o romdata 0x00427b program 0x000000 - .romdata_infrared.o romdata 0x00427b program 0x000000 - .idata_adcbusy.o_i romdata 0x00427b program 0x000000 - .romdata_adcbusy.o romdata 0x00427b program 0x000000 - .romdata_adjd-s371.o romdata 0x00427b program 0x000000 - .idata_adjd-s371.o_i romdata 0x00427b program 0x000000 - .idata_i2c_clos.o_i romdata 0x00427b program 0x000000 - .romdata_i2c_clos.o romdata 0x00427b program 0x000000 - .idata_usb_device.o_i romdata 0x00427b program 0x000000 - .romdata_mcc.o romdata 0x00427b program 0x000000 - .romdata_usb_device.o romdata 0x00427b program 0x000000 - .romdata_main.o romdata 0x00427b program 0x000000 - .idata_fxd3232u.o_i romdata 0x00427b program 0x000000 - .romdata_servo.o romdata 0x00427b program 0x000000 - .romdata_fxd3232u.o romdata 0x00427b program 0x000000 - .romdata_error.o romdata 0x00427b program 0x000000 - .idata_i2c_idle.o_i romdata 0x00427b program 0x000000 - .romdata_i2c_idle.o romdata 0x00427b program 0x000000 -.idata_usb_function_hid.o_i romdata 0x00427b program 0x000000 - .idata_adcopen.o_i romdata 0x00427b program 0x000000 - .romdata_ax12.o romdata 0x00427b program 0x000000 - .romdata_adcopen.o romdata 0x00427b program 0x000000 -.romdata_usb_function_hid.o romdata 0x00427b program 0x000000 - .code_t3write.o code 0x00427c program 0x000038 - .code_c018i.o code 0x00427c program 0x000000 - .code_udefs.o code 0x00427c program 0x000000 - .code_usb_descriptors.o code 0x00427c program 0x000000 - .code_t0write.o code 0x0042b4 program 0x000038 - .code_t0open.o code 0x0042ec program 0x000038 - .code_t2open.o code 0x004324 program 0x000036 - .code_i2c_open.o code 0x00435a program 0x000036 - .code_error.o code 0x004390 program 0x000036 - .code_pw1open.o code 0x0043c6 program 0x000030 - .code_adcselchconv.o code 0x0043f6 program 0x000030 - D10KTCYXCODE code 0x004426 program 0x00002e - .code_uwrite.o code 0x004454 program 0x00002e - _startup_scn code 0x004482 program 0x00001c - D10TCYXCODE code 0x00449e program 0x000016 - .code_adcread.o code 0x0044b4 program 0x000012 - .code_i2c_idle.o code 0x0044c6 program 0x00000e - .code code 0x0044d4 program 0x00000e - .code_adcbusy.o code 0x0044e2 program 0x00000a - .code_i2c_clos.o code 0x0044ec program 0x000004 - .code___init.o code 0x0044f0 program 0x000002 - .idata_servo.o_i romdata 0x0044f2 program 0x000009 - .idata_mcc.o_i romdata 0x0044fb program 0x000010 - .idata_main.o_i romdata 0x00450b program 0x000009 - .idata_infrared.o_i romdata 0x004514 program 0x000003 - .idata_error.o_i romdata 0x004517 program 0x000021 - .idata_ax12.o_i romdata 0x004538 program 0x000024 + .code_lcd.o code 0x003ba0 program 0x0000dc + .code_usb_function_hid.o code 0x003c7c program 0x0000ce +.romdata_usb_descriptors.o romdata 0x003d4a program 0x0000b0 + _cinit_scn code 0x003dfa program 0x00009e + .code_uopen.o code 0x003e98 program 0x00008a + .code_i2c_puts.o code 0x003f22 program 0x000076 + .code_adcopen.o code 0x003f98 program 0x00006e + STRING code 0x004006 program 0x00006c + .code_eeprom.o code 0x004072 program 0x00006c + .code_pw1setdc.o code 0x0040de program 0x00005e + .code_fxd3232u.o code 0x00413c program 0x000048 + .code_t3open.o code 0x004184 program 0x000046 + .code_uread.o code 0x0041ca program 0x00003e + .code_i2c_writ.o code 0x004208 program 0x00003c + .stringtable romdata 0x004244 program 0x00003b + .idata_i2c_open.o_i romdata 0x00427f program 0x000000 + .romdata_i2c_open.o romdata 0x00427f program 0x000000 + .romdata_uread.o romdata 0x00427f program 0x000000 + .idata_uread.o_i romdata 0x00427f program 0x000000 + .romdata_adcread.o romdata 0x00427f program 0x000000 + .idata_adcread.o_i romdata 0x00427f program 0x000000 +.idata_usb_descriptors.o_i romdata 0x00427f program 0x000000 + .romdata_uopen.o romdata 0x00427f program 0x000000 + .idata_pw1open.o_i romdata 0x00427f program 0x000000 + .idata_uopen.o_i romdata 0x00427f program 0x000000 + .romdata_pw1open.o romdata 0x00427f program 0x000000 + .romdata_t3open.o romdata 0x00427f program 0x000000 + .idata_t3open.o_i romdata 0x00427f program 0x000000 + .romdata_t2open.o romdata 0x00427f program 0x000000 + .idata_t2open.o_i romdata 0x00427f program 0x000000 + .romdata_t0open.o romdata 0x00427f program 0x000000 + .idata_t0open.o_i romdata 0x00427f program 0x000000 + .idata_c018i.o_i romdata 0x00427f program 0x000000 + .romdata_c018i.o romdata 0x00427f program 0x000000 + .romdata_i2c_puts.o romdata 0x00427f program 0x000000 + .idata_i2c_puts.o_i romdata 0x00427f program 0x000000 + .romdata___init.o romdata 0x00427f program 0x000000 + .idata___init.o_i romdata 0x00427f program 0x000000 + .romdata_uwrite.o romdata 0x00427f program 0x000000 + .idata_uwrite.o_i romdata 0x00427f program 0x000000 + .romdata_t3write.o romdata 0x00427f program 0x000000 + .idata_t3write.o_i romdata 0x00427f program 0x000000 + .romdata_t0write.o romdata 0x00427f program 0x000000 + .idata_t0write.o_i romdata 0x00427f program 0x000000 + .romdata_i2c_writ.o romdata 0x00427f program 0x000000 + .idata_i2c_writ.o_i romdata 0x00427f program 0x000000 + .romdata_udefs.o romdata 0x00427f program 0x000000 + .idata_udefs.o_i romdata 0x00427f program 0x000000 + .romdata_pw1setdc.o romdata 0x00427f program 0x000000 + .idata_pw1setdc.o_i romdata 0x00427f program 0x000000 + .romdata_adcselchconv.o romdata 0x00427f program 0x000000 + .idata_adcselchconv.o_i romdata 0x00427f program 0x000000 + .romdata_lcd.o romdata 0x00427f program 0x000000 + .idata_eeprom.o_i romdata 0x00427f program 0x000000 + .idata_lcd.o_i romdata 0x00427f program 0x000000 + .romdata_eeprom.o romdata 0x00427f program 0x000000 + .romdata_infrared.o romdata 0x00427f program 0x000000 + .idata_adcbusy.o_i romdata 0x00427f program 0x000000 + .romdata_adcbusy.o romdata 0x00427f program 0x000000 + .romdata_adjd-s371.o romdata 0x00427f program 0x000000 + .idata_adjd-s371.o_i romdata 0x00427f program 0x000000 + .idata_i2c_clos.o_i romdata 0x00427f program 0x000000 + .romdata_i2c_clos.o romdata 0x00427f program 0x000000 + .idata_usb_device.o_i romdata 0x00427f program 0x000000 + .romdata_mcc.o romdata 0x00427f program 0x000000 + .romdata_usb_device.o romdata 0x00427f program 0x000000 + .romdata_main.o romdata 0x00427f program 0x000000 + .idata_fxd3232u.o_i romdata 0x00427f program 0x000000 + .romdata_servo.o romdata 0x00427f program 0x000000 + .romdata_fxd3232u.o romdata 0x00427f program 0x000000 + .romdata_error.o romdata 0x00427f program 0x000000 + .idata_i2c_idle.o_i romdata 0x00427f program 0x000000 + .romdata_i2c_idle.o romdata 0x00427f program 0x000000 +.idata_usb_function_hid.o_i romdata 0x00427f program 0x000000 + .idata_adcopen.o_i romdata 0x00427f program 0x000000 + .romdata_ax12.o romdata 0x00427f program 0x000000 + .romdata_adcopen.o romdata 0x00427f program 0x000000 +.romdata_usb_function_hid.o romdata 0x00427f program 0x000000 + .code_t3write.o code 0x004280 program 0x000038 + .code_c018i.o code 0x004280 program 0x000000 + .code_udefs.o code 0x004280 program 0x000000 + .code_usb_descriptors.o code 0x004280 program 0x000000 + .code_t0write.o code 0x0042b8 program 0x000038 + .code_t0open.o code 0x0042f0 program 0x000038 + .code_t2open.o code 0x004328 program 0x000036 + .code_i2c_open.o code 0x00435e program 0x000036 + .code_error.o code 0x004394 program 0x000036 + .code_pw1open.o code 0x0043ca program 0x000030 + .code_adcselchconv.o code 0x0043fa program 0x000030 + D10KTCYXCODE code 0x00442a program 0x00002e + .code_uwrite.o code 0x004458 program 0x00002e + _startup_scn code 0x004486 program 0x00001c + D10TCYXCODE code 0x0044a2 program 0x000016 + .code_adcread.o code 0x0044b8 program 0x000012 + .code_i2c_idle.o code 0x0044ca program 0x00000e + .code code 0x0044d8 program 0x00000e + .code_adcbusy.o code 0x0044e6 program 0x00000a + .code_i2c_clos.o code 0x0044f0 program 0x000004 + .code___init.o code 0x0044f4 program 0x000002 + .idata_servo.o_i romdata 0x0044f6 program 0x000009 + .idata_mcc.o_i romdata 0x0044ff program 0x000010 + .idata_main.o_i romdata 0x00450f program 0x000009 + .idata_infrared.o_i romdata 0x004518 program 0x000003 + .idata_error.o_i romdata 0x00451b program 0x000021 + .idata_ax12.o_i romdata 0x00453c program 0x000024 .tmpdata udata 0x000000 data 0x000022 MATH_DATA udata 0x000022 data 0x000014 DELAYDAT2 udata 0x000036 data 0x000001 @@ -214,9 +214,9 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 0x000800 0x000805 0x000808 0x00080d 0x000818 0x00081d - 0x00082a 0x00427a - 0x00427c 0x00455b - 15701 out of 33048 program addresses used, program memory utilization is 47% + 0x00082a 0x00427e + 0x004280 0x00455f + 15705 out of 33048 program addresses used, program memory utilization is 47% @@ -224,15 +224,15 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 Name Address Location Storage File --------- --------- --------- --------- --------- BlinkUSBStatus 0x001840 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - BusyADC 0x0044e2 program extern C:\MCC18\src\pmc_common\ADC\adcbusy.c - CloseI2C 0x0044ec program extern C:\MCC18\src\pmc_common\i2c\i2c_clos.c - D10K_1 0x004432 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10Kl 0x00443e program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10Kx 0x004430 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10_1 0x0044ae program static C:\MCC18\src\traditional\delays\d10tcyx.asm - D10x 0x0044a6 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - Delay10KTCYx 0x004426 program extern C:\MCC18\src\traditional\delays\d10ktcyx.asm - Delay10TCYx 0x00449e program extern C:\MCC18\src\traditional\delays\d10tcyx.asm + BusyADC 0x0044e6 program extern C:\MCC18\src\pmc_common\ADC\adcbusy.c + CloseI2C 0x0044f0 program extern C:\MCC18\src\pmc_common\i2c\i2c_clos.c + D10K_1 0x004436 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm + D10Kl 0x004442 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm + D10Kx 0x004434 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm + D10_1 0x0044b2 program static C:\MCC18\src\traditional\delays\d10tcyx.asm + D10x 0x0044aa program static C:\MCC18\src\traditional\delays\d10tcyx.asm + Delay10KTCYx 0x00442a program extern C:\MCC18\src\traditional\delays\d10ktcyx.asm + Delay10TCYx 0x0044a2 program extern C:\MCC18\src\traditional\delays\d10tcyx.asm FLO0832S 0x002d80 program extern C:\MCC18\src\traditional\math\cast08FP.asm FLO0832U 0x002d7c program extern C:\MCC18\src\traditional\math\cast08FP.asm FLO1632S 0x002da2 program extern C:\MCC18\src\traditional\math\cast16FP.asm @@ -243,31 +243,31 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 FPD32 0x002f2c program extern C:\MCC18\src\traditional\math\divFP.asm FPM32 0x002fd2 program extern C:\MCC18\src\traditional\math\mulFP.asm FPS32 0x002dfe program extern C:\MCC18\src\traditional\math\addFP.asm - FXD3232U 0x004138 program extern C:\MCC18\src\traditional\math\fxd3232u.c + FXD3232U 0x00413c program extern C:\MCC18\src\traditional\math\fxd3232u.c FXM1616U 0x0030ac program extern C:\MCC18\src\traditional\math\fxm1616u.asm High_ISR 0x000008 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c INT3216 0x0030e8 program extern C:\MCC18\src\traditional\math\castFP16.asm INT3232 0x003146 program extern C:\MCC18\src\traditional\math\castFP32.asm - IdleI2C 0x0044c6 program extern C:\MCC18\src\pmc_common\i2c\i2c_idle.c + IdleI2C 0x0044ca program extern C:\MCC18\src\pmc_common\i2c\i2c_idle.c InitializeSystem 0x000984 program static C:\krobot\elec\boards\Interface_Robot\Firmware\main.c Low_ISR 0x000018 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - OpenADC 0x003f94 program extern C:\MCC18\src\pmc_common\ADC\adcopen.c - OpenI2C 0x00435a program extern C:\MCC18\src\pmc_common\i2c\i2c_open.c - OpenPWM1 0x0043c6 program extern C:\MCC18\src\pmc_common\PWM\pw1open.c - OpenPWM1ConfigIO 0x0043f2 program extern C:\MCC18\src\pmc_common\PWM\pw1open.c - OpenTimer0 0x0042ec program extern C:\MCC18\src\pmc_common\Timers\t0open.c - OpenTimer2 0x004324 program extern C:\MCC18\src\pmc_common\Timers\t2open.c - OpenTimer3 0x004180 program extern C:\MCC18\src\pmc_common\Timers\t3open.c - OpenUSART 0x003e94 program extern C:\MCC18\src\pmc_common\USART\uopen.c + OpenADC 0x003f98 program extern C:\MCC18\src\pmc_common\ADC\adcopen.c + OpenI2C 0x00435e program extern C:\MCC18\src\pmc_common\i2c\i2c_open.c + OpenPWM1 0x0043ca program extern C:\MCC18\src\pmc_common\PWM\pw1open.c + OpenPWM1ConfigIO 0x0043f6 program extern C:\MCC18\src\pmc_common\PWM\pw1open.c + OpenTimer0 0x0042f0 program extern C:\MCC18\src\pmc_common\Timers\t0open.c + OpenTimer2 0x004328 program extern C:\MCC18\src\pmc_common\Timers\t2open.c + OpenTimer3 0x004184 program extern C:\MCC18\src\pmc_common\Timers\t3open.c + OpenUSART 0x003e98 program extern C:\MCC18\src\pmc_common\USART\uopen.c ProcessIO 0x000a12 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - ReadADC 0x0044b4 program extern C:\MCC18\src\pmc_common\ADC\adcread.c - ReadEEPROM 0x0040ae program extern C:\krobot\elec\boards\Interface_Robot\Firmware\eeprom.c - ReadUSART 0x0041c6 program extern C:\MCC18\src\pmc_common\USART\uread.c + ReadADC 0x0044b8 program extern C:\MCC18\src\pmc_common\ADC\adcread.c + ReadEEPROM 0x0040b2 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\eeprom.c + ReadUSART 0x0041ca program extern C:\MCC18\src\pmc_common\USART\uread.c Remapped_High_ISR 0x000808 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c Remapped_Low_ISR 0x000818 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c ResetSource 0x001a58 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - SelChanConvADC 0x0043f6 program extern C:\MCC18\src\pmc_common\ADC\adcselchconv.c - SetDCPWM1 0x0040da program extern C:\MCC18\src\pmc_common\PWM\pw1setdc.c + SelChanConvADC 0x0043fa program extern C:\MCC18\src\pmc_common\ADC\adcselchconv.c + SetDCPWM1 0x0040de program extern C:\MCC18\src\pmc_common\PWM\pw1setdc.c USBCBCheckOtherReq 0x001968 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c USBCBErrorHandler 0x001966 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c USBCBInitEP 0x00196e program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c @@ -276,7 +276,7 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 USBCBSuspend 0x0018be program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c USBCBWakeFromSuspend 0x0018fc program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c USBCB_SOF_Handler 0x001964 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - USBCheckHIDRequest 0x003c78 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_function_hid.c + USBCheckHIDRequest 0x003c7c program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_function_hid.c USBCheckStdRequest 0x001f7e program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_device.c USBClearInterruptFlag 0x002534 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_device.c USBConfigureEndpoint 0x0023f0 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_device.c @@ -300,24 +300,24 @@ USBPrepareForNextSetupTrf 0x001f36 program extern C:\krobot\elec\boards USBSuspend 0x001dde program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_device.c USBTransferOnePacket 0x0024cc program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_device.c USBWakeFromSuspend 0x001df0 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_device.c - USB_CD_Ptr 0x003dee program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_descriptors.c - USB_SD_Ptr 0x003df0 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_descriptors.c + USB_CD_Ptr 0x003df2 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_descriptors.c + USB_SD_Ptr 0x003df4 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_descriptors.c USER_USB_CALLBACK_EVENT_HANDLER 0x0019c2 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c UserInit 0x00098e program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - WriteEEPROM 0x00406e program extern C:\krobot\elec\boards\Interface_Robot\Firmware\eeprom.c - WriteI2C 0x004204 program extern C:\MCC18\src\pmc_common\i2c\i2c_writ.c - WriteTimer0 0x0042b4 program extern C:\MCC18\src\pmc_common\Timers\t0write.c - WriteTimer3 0x00427c program extern C:\MCC18\src\pmc_common\Timers\t3write.c - WriteUSART 0x004454 program extern C:\MCC18\src\pmc_common\USART\uwrite.c + WriteEEPROM 0x004072 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\eeprom.c + WriteI2C 0x004208 program extern C:\MCC18\src\pmc_common\i2c\i2c_writ.c + WriteTimer0 0x0042b8 program extern C:\MCC18\src\pmc_common\Timers\t0write.c + WriteTimer3 0x004280 program extern C:\MCC18\src\pmc_common\Timers\t3write.c + WriteUSART 0x004458 program extern C:\MCC18\src\pmc_common\USART\uwrite.c YourHighPriorityISRCode 0x000874 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c YourLowPriorityISRCode 0x000934 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - _2jContinue 0x004022 program ... [truncated message content] |
From: Olivier B. <Ba...@us...> - 2010-05-10 15:01:38
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via eb72aa7c7f83dd70e1003b7c9b5259b2a472f922 (commit) from 810825d539e39f8a50b858b13092c5e1674f3acc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit eb72aa7c7f83dd70e1003b7c9b5259b2a472f922 Author: Olivier BICHLER <oli...@cr...> Date: Mon May 10 17:01:09 2010 +0200 Inverted arguments in servo_set_state for security ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Interface_Robot/Firmware/main.c b/elec/boards/Interface_Robot/Firmware/main.c index d582e71..57e7b25 100644 --- a/elec/boards/Interface_Robot/Firmware/main.c +++ b/elec/boards/Interface_Robot/Firmware/main.c @@ -867,8 +867,10 @@ void ProcessIO(void) { break; case SET_SERVO_CONFIG: - glbServoEnabled&= ~ReceivedDataBuffer.DATA[1]; // Servo ctiver - glbServoEnabled|= ReceivedDataBuffer.DATA[2]; // Servo ctiver + // On active d'abord puis on dctive. Ainsi si on demande a fois d'activer et dctiver + // un m servo, celui-ci reste dctivpar mesure de srit + glbServoEnabled|= ReceivedDataBuffer.DATA[1]; // Servo ctiver + glbServoEnabled&= ~ReceivedDataBuffer.DATA[2]; // Servo ctiver break; case SET_SERVO_STATE: diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof index ba95004..56dfdb9 100644 Binary files a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof and b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof differ diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex index ba9c59c..2c46e52 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex @@ -134,8 +134,8 @@ :100FF00005010A1D8A1605010B1D8B1605010C1D26 :101000008C1605010D1D8D1655D00501095189124B :1010100005010A518A1205010B518B1205010C5171 -:101020008C1205010D518D1245D00501091D0101DC -:101030001F1705010A5101011F133CD0050109A129 +:101020008C1205010D518D1245D0050109510101A8 +:101030001F1305010A1D01011F173CD0050109A15D :1010400007D00AC5E6FFE66AA3EC1BF0E552E552BD :10105000050109A308D00BC5E6FF010EE66EA3EC5F :101060001BF0E552E552050109A508D00CC5E6FFC5 @@ -954,7 +954,7 @@ :10421000E2CFDAFFFD0EDB50C96EC6AE02D0FF0E54 :1042200009D0C7B0FED763EC22F0C5AC02D0FE0EB9 :1042300001D0000EE552E5CFDAFFE7CFD9FF12003B -:1042400031363A35323A31330020004D6179203130 +:1042400031373A30303A30350020004D6179203135 :1042500030203230313000526F626F7420496E74FA :1042600065726661636520312E300A4F6C6976692C :0B427000657220424943484C45520053 diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map index 902112a..a00e148 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Mon May 10 16:52:18 2010 +Linker Map File - Created Mon May 10 17:00:10 2010 Section Info Section Type Address Location Size(Bytes) hooks/post-receive -- krobot |
From: Olivier B. <Ba...@us...> - 2010-05-10 14:54:03
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 810825d539e39f8a50b858b13092c5e1674f3acc (commit) from 39d1cabf96ca1b345c167b091859f2e93f70be2f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 810825d539e39f8a50b858b13092c5e1674f3acc Author: Olivier BICHLER <oli...@cr...> Date: Mon May 10 16:53:31 2010 +0200 Replaced "^=" by "&= ~" ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Controller_Motor/Firmware/main.c b/elec/boards/Controller_Motor/Firmware/main.c index 7981260..edf7d0e 100644 --- a/elec/boards/Controller_Motor/Firmware/main.c +++ b/elec/boards/Controller_Motor/Firmware/main.c @@ -520,7 +520,7 @@ void UserInit(void) eeprom|= 0b1; WriteEEPROM(0x00, eeprom); Delay10KTCYx(0); - eeprom^= 0b1; + eeprom&= ~0b1; WriteEEPROM(0x00, eeprom); } diff --git a/elec/boards/Interface_Robot/Firmware/main.c b/elec/boards/Interface_Robot/Firmware/main.c index 2d20d46..d582e71 100644 --- a/elec/boards/Interface_Robot/Firmware/main.c +++ b/elec/boards/Interface_Robot/Firmware/main.c @@ -540,7 +540,7 @@ void UserInit(void) eeprom|= 0b1; WriteEEPROM(0x00, eeprom); Delay10KTCYx(0); - eeprom^= 0b1; + eeprom&= ~0b1; WriteEEPROM(0x00, eeprom); } @@ -867,7 +867,7 @@ void ProcessIO(void) { break; case SET_SERVO_CONFIG: - glbServoEnabled^= ReceivedDataBuffer.DATA[1]; // Servo ctiver + glbServoEnabled&= ~ReceivedDataBuffer.DATA[1]; // Servo ctiver glbServoEnabled|= ReceivedDataBuffer.DATA[2]; // Servo ctiver break; diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof index 5d4b279..ba95004 100644 Binary files a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof and b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof differ diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex index 46cec43..ba9c59c 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex @@ -1,1032 +1,1029 @@ :020000040000FA -:060000005EEF22F0120089 +:0600000041EF22F01200A6 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:060800005EEF22F0120081 +:0608000041EF22F012009E :060808003AEF04F01200BB :060818009AEF04F012004B -:06082A000600724500000B -:100830002601000024000000514500006B0100006B -:10084000210000004E450000BB0100000300000035 -:1008500045450000AF0100000900000035450000DB -:100860008C010000100000002C450000A6010000D3 +:06082A0006003845000045 +:10083000860000002400000017450000CB000000E7 +:1008400021000000144500002C01000003000000FE +:100850000B4500002301000009000000FB440000DC +:100860000001000010000000F24400001A01000026 :04087000090000007B :0C087400DACFE4FFE2CFDAFFE9CFE4FFC7 :10088000EACFE4FFF6CFE4FFF7CFE4FFF5CFE4FFD4 :10089000F3CFE4FFF4CFE4FFFACFE4FF00EE22F061 :1008A000140EE80403E3EECFE4FFFBD700EE00F004 -:1008B000220EE80403E3EECFE4FFFBD7A4EC0DF037 -:1008C000A1A203D02BEC1BF0A1929EAA03D0BFECF7 -:1008D00013F09E9AF2A403D069EC1CF0F294B7ECEA -:1008E0000DF002E2E16AE552B5EC0DF0E55200EEE2 +:1008B000220EE80403E3EECFE4FFFBD7A5EC0DF036 +:1008C000A1A203D00EEC1BF0A1929EAA03D0C0EC13 +:1008D00013F09E9AF2A403D04CEC1CF0F294B8EC06 +:1008E0000DF002E2E16AE552B6EC0DF0E55200EEE1 :1008F00021F0220EE80403E3E5CFEDFFFBD700EE85 :1009000035F0140EE80403E3E5CFEDFFFBD7E5CFA8 :10091000FAFFE5CFF4FFE5CFF3FFE5CFF5FFE5CF35 :10092000F7FFE5CFF6FFE5CFEAFFE5CFE9FFE5CF3B :10093000DAFF1100D8CFE4FFE0CFE4FFE46EDACFB6 -:10094000E4FFE2CFDAFFF3CFE4FFF4CFE4FFA4EC5F -:100950000DF0B7EC0DF002E2E16AE552B5EC0DF0F6 +:10094000E4FFE2CFDAFFF3CFE4FFF4CFE4FFA5EC5E +:100950000DF0B8EC0DF002E2E16AE552B6EC0DF0F4 :10096000E552E5CFF4FFE5CFF3FFE5CFDAFFE55041 -:10097000E5CFE0FFE5CFD8FF100004D84AEC0EF039 -:1009800047D8FCD70F0EC11202D814EF0EF0EFECCF -:100990000DF0E6522BEC0DF00101B86F070EB85DBB -:1009A00010E1E66A74EC20F0E552DF6E000EDF80A5 -:1009B000BFEC0DF0E66A30EC22F0E552DF70BFECE0 -:1009C0000DF093809382948C948ED08EF28EF28C64 -:1009D000770EC86E070EE66EEDEC1DF0E5523F0E89 -:1009E0008A1693160101AF6BB06BB16BB26B010E3F -:1009F000B36FBAEC13F016EC1BF0E66A44EC1CF093 -:100A0000E55259EC1DF05FEC19F0E55200EF0EF0E5 -:100A1000D9CFE6FFE1CFD9FF170EE126160EDB6A2C -:100A20000101B35102E01FEC0CF0200E0101005D4A -:100A300003E36D50020B02E015EF0CF06FEC19F0C0 -:100A4000160EDB5036E031EC1DF0000932E00101FA -:100A5000B151B21102E1000E08D0B1C1E9FFB2C13B -:100A6000EAFFEF50800B01E0010E000922E10501D1 -:100A7000406B0101B451B42B0501416F05010C0E0F -:100A8000426F0501436B400EE66E400EE66E050EAA -:100A9000E66E010EE66E010EE66E65EC12F0006E7B -:100AA000050EE15E0050F3CFB1F1F4CFB2F1160EB6 -:100AB000DB6A0101B151B21102E1000E08D0B1C1EF -:100AC000E9FFB2C1EAFFEF50800B01E0010E00091F -:100AD0003DE10101B551EA6A6B0FE96E010EEA22B0 -:100AE000EF5034E00501406B0101B451B42B050116 -:100AF000416F0501040E426F0101B551EA6A6B0FA7 -:100B0000E96E010EEA22EFCF43F5400EE66E400E8D -:100B1000E66E050EE66E010EE66E010EE66E65EC03 -:100B200012F0006E050EE15E0050F3CFB1F1F4CF8C -:100B3000B2F10101B551EA6A6B0FE96E010EEA22CA -:100B4000EF6A0101B5291F0B0101B56F0101AF511A -:100B5000B01102E1000E08D0AFC1E9FFB0C1EAFF59 -:100B6000EF50800B01E0010E000902E015EF0CF0E0 -:100B700005010251070A02E17BEF0BF0020A02E1D4 -:100B80004DEF0BF00E0A02E1F4EF0AF0060A02E163 -:100B900079EF0AF0040A01E1A0D20F0A01E1F5D1D0 -:100BA000040A1AE0030A07E0010A02E0D4EF0BF09E -:100BB000FF0015EF0CF0E66A74EC20F0E552DF6EF2 -:100BC000000EDB80DFCFE6FFE66A54EC20F0E55252 -:100BD000E552FF0015EF0CF00101B151B21102E135 -:100BE000000E08D0B1C1E9FFB2C1EAFFEF50800B9F -:100BF00001E0010E000901E0C6D100C540F5050184 -:100C0000416B0501030E426F0501436B050108515D -:100C1000050A01E101D10F0A01E17ED00E0A71E05F -:100C2000070A64E0010A20E0030A06E0010A01E085 -:100C300080D1B8C148F580D10501486B910E006E96 -:100C4000420E016E026A00C0E6FF01C0E6FF02C06C -:100C5000E6FF480EE66E050EE66E38EC20F0036EF9 -:100C6000050EE15E035068D10501486B850E006EEC -:100C7000420E016E026A00C0E6FF01C0E6FF02C03C -:100C8000E6FF480EE66E050EE66E38EC20F0036EC9 -:100C9000050EE15E0350830E006E420E016E026A85 -:100CA00000C0E6FF01C0E6FF02C0E6FF480EE66EA8 -:100CB000050EE66E38EC20F0036E050EE15E035083 -:100CC0007A0E006E420E016E026A00C0E6FF01C09D -:100CD000E6FF02C0E6FF480EE66E050EE66E38EC53 -:100CE00020F0036E050EE15E035026D192CF48F549 -:100CF00093CF49F594CF4AF595CF4BF596CF4CF568 -:100D00001BD180CF48F581CF49F582CF4AF583CFFB -:100D10004BF584CF4CF510D1800EE66E080EE66ED2 -:100D2000CAEC21F0E552E552C58080EC22F0C00EFD -:100D3000E66E1FEC21F0E552E66A1FEC21F0E55269 -:100D4000C58280EC22F0C10EE66E1FEC21F0E55268 -:100D5000010EDB6A020EDB6A010EDBCF00F0020E31 -:100D6000DBCF01F0040E005C000E01584FE2010ED3 -:100D7000F36E150EF3CFDBFFC586130EDB6A140E80 -:100D8000DB6A130EDBCF00F0140EDBCF01F0E80EB0 -:100D9000005C030E015817E2C7A00FD0010EDBCF95 -:100DA000E9FF020EDBCFEAFF480EE926050EEA2234 -:100DB000C9CFEFFF150EDB6A06D0130EDB2A140E27 -:100DC00001E3DB2ADED7150EDB5008E00501080E33 -:100DD000436FC58AC58880EC22F018D0010EDBCFA6 -:100DE00000F0020EDBCF01F0030E005C000E015894 -:100DF00003E2C59AC58802D0C58AC58880EC22F076 -:100E0000010EDB2A020E01E3DB2AA6D7C58480ECA3 -:100E100022F093EC22F090D0010EDB6A020EDB6A26 -:100E2000010EDBCF00F0020EDBCF01F0020E005C02 -:100E3000000E015801E37CD0010EDBCFE6FF1FEC72 -:100E40001AF0E5520B0E28C0DBFF0C0E29C0DBFFA9 -:100E50000D0E2AC0DBFF0E0E2BC0DBFF040E2A6E28 -:100E60002B6A010EDBCF2FF0020EDBCF30F055ECFA -:100E700018F028C0E9FF29C0EAFF480EE926050E50 -:100E8000EA220E0EDBCFEFFF040E2A6E2B6A010E54 -:100E9000DBCF2FF0020EDBCF30F055EC18F028C07E -:100EA000E9FF29C0EAFF010EE926000EEA22480EFA -:100EB000E926050EEA220D0EDBCFEFFF040E2A6EA7 -:100EC0002B6A010EDBCF2FF0020EDBCF30F055EC9A -:100ED00018F028C0E9FF29C0EAFF020EE926000E3B -:100EE000EA22480EE926050EEA220C0EDBCFEFFFC0 -:100EF000040E2A6E2B6A010EDBCF2FF0020EDBCF21 -:100F000030F055EC18F028C0E9FF29C0EAFF030EC5 -:100F1000E926000EEA22480EE926050EEA220B0E0B -:100F2000DBCFEFFF010EDB2A020E01E3DB2A78D7CD -:100F300003D00501020E436F400EE66E400EE66ED2 -:100F4000050EE66E010EE66E010EE66E65EC12F021 -:100F5000006E050EE15E0050F3CFB1F1F4CFB2F1B7 -:100F6000400EE66E000EE66E050EE66EE66A010EB7 -:100F7000E66E65EC12F0006E050EE15E0050F3CFF8 -:100F8000AFF1F4CFB0F115EF0CF005010851050AEF -:100F900054E0010A49E0070A37E0010A25E0030AA4 -:100FA00013E0010A01E080D0050109519212050108 -:100FB0000A51931205010B51941205010C5195121F -:100FC00005010D51961275D00501091D92160501F6 -:100FD0000A1D931605010B1D941605010C1D95168F -:100FE00005010D1D961665D00501091D891605011F -:100FF0000A1D8A1605010B1D8B1605010C1D8C168A -:1010000005010D1D8D1655D00501095189120501E7 -:101010000A518A1205010B518B1205010C518C12D9 -:1010200005010D518D1245D0050109510101AB1B80 -:1010300005010A510101AB133CD0050109A107D0FC -:101040000AC5E6FFE66AC0EC1BF0E552E552050171 -:1010500009A308D00BC5E6FF010EE66EC0EC1BF03D -:10106000E552E552050109A508D00CC5E6FF020EC0 -:10107000E66EC0EC1BF0E552E552050109A708D069 -:101080000DC5E6FF030EE66EC0EC1BF0E552E5521F -:10109000050109A908D00EC5E6FF040EE66EC0ECF6 -:1010A0001BF0E552E55205D0030EE66EE5EC21F0AB -:1010B000E552400EE66E000EE66E050EE66EE66A3E -:1010C000010EE66E65EC12F0006E050EE15E00505A -:1010D000F3CFAFF1F4CFB0F1A8D30101B151B21108 -:1010E00002E1000E08D0B1C1E9FFB2C1EAFFEF5042 -:1010F000800B01E0010E000901E0FAD100C540F5C6 -:101100000501416B0501030E426F0501436B0501AB -:1011100008510F0A01E1BCD1010A01E1B3D1030A70 -:1011200001E1AAD1010A01E190D1070A01E181D1CF -:10113000010A01E1E1D0030A01E1C3D0010A01E1A2 -:10114000A8D00F0A01E18DD0010A68E0030A4FE040 -:10115000010A41E0070A24E0010A11E0030A01E064 -:101160009DD105010A51E66EE66A09C5E6FFD2EC9B -:1011700014F0E552E552E5520501486F92D10501A0 -:101180000C51E66EE66A0AC5E6FF09C5E6FF2CECDF -:1011900015F0E552E552E552E5520501486F81D15F -:1011A00005010C51E66EE66A0AC5E6FF09C5E6FFD1 -:1011B0008FEC15F0E552E552E552E5520F0EF3CFF4 -:1011C000DBFF100EF4CFDBFF100EDBCF48F50F0E68 -:1011D000DBCF49F566D10CC5E6FF0AC5E6FF09C5B8 -:1011E000E6FF21EC15F0E552E552E5525AD1100E1A -:1011F0000CC5DBFF0F0E0DC5DBFF0F0EDBCFE6FFCF -:10120000100EDBCFE6FF0AC5E6FF09C5E6FF25ECB9 -:1012100015F0E552E552E552E55243D1100E0AC5EC -:10122000DBFF0F0E0BC5DBFF120E0CC5DBFF110E33 -:101230000DC5DBFF0EC5E6FF110EDBCFE6FF120E7C -:10124000DBCFE6FF0F0EDBCFE6FF100EDBCFE6FFB6 -:1012500009C5E6FF10EC16F0006E060EE15E0050C8 -:1012600020D105010A51E66EE66A09C5E6FF33ECB6 -:1012700016F0E552E552E5520F0EF3CFDBFF100EEC -:10128000F4CFDBFF100EDBCF48F50F0EDBCF49F5B7 -:1012900008D105010A51E66EE66A09C5E6FF36EC9B -:1012A00016F0E552E552E5520F0EF3CFDBFF100EBC -:1012B000F4CFDBFF100EDBCF48F50F0EDBCF49F587 -:1012C000F0D005010A51E66EE66A280EE66E09C501 -:1012D000E6FF8FEC15F0E552E552E552E5520F0EB0 -:1012E000F3CFDBFF100EF4CFDBFF100EDBCF48F5A2 -:1012F0000F0EDBCF49F5D5D005010A51E66EE66A3F -:1013000009C5E6FF33EC16F0E552E552E5520F0E43 -:10131000F3CFDBFF100EF4CFDBFF100EDBCF48F571 -:101320000F0EDBCF49F505010A51E66EE66A09C5E5 -:10133000E6FF36EC16F0E552E552E5520F0EF3CF1C -:10134000DBFF100EF4CFDBFF100EDBCF4AF50F0EE4 -:10135000DBCF4BF505010A51E66EE66A280EE66E14 -:1013600009C5E6FF8FEC15F0E552E552E552E5526E -:101370000F0EF3CFDBFF100EF4CFDBFF100EDBCF31 -:101380004CF50F0EDBCF4DF505010A51E66EE66A0E -:101390002A0EE66E09C5E6FF2CEC15F0E552E55283 -:1013A000E552E55205014E6F05010A51E66EE66A07 -:1013B0002B0EE66E09C5E6FF2CEC15F0E552E55262 -:1013C000E552E55205014F6F05010A51E66EE66AE6 -:1013D000060EE66E09C5E6FF8FEC15F0E552E55204 -:1013E000E552E5520F0EF3CFDBFF100EF4CFDBFF1B -:1013F000100EDBCF50F50F0EDBCF51F505010A5172 -:10140000E66EE66A080EE66E09C5E6FF8FEC15F09B -:10141000E552E552E552E5520F0EF3CFDBFF100E19 -:10142000F4CFDBFF100EDBCF52F50F0EDBCF53F501 -:1014300038D00CC5E6FF0AC5E6FF09C5E6FFFFEC9C -:1014400015F0E552E552E5522CD0100E0CC5DBFF2D -:101450000F0E0DC5DBFF0F0EDBCFE6FF100EDBCF4F -:10146000E6FF0AC5E6FF09C5E6FF03EC16F0E55204 -:10147000E552E552E55215D009C5E6FF0BEC16F032 -:10148000E5520FD009C5E6FF1CEC15F0E55209D076 -:1014900009C5E6FFC0EC14F0E55203D00501010ECA -:1014A000436F400EE66E400EE66E050EE66E010ED0 -:1014B000E66E010EE66E65EC12F0006E050EE15E62 -:1014C0000050F3CFB1F1F4CFB2F1400EE66E000E52 -:1014D000E66E050EE66EE66A010EE66E65EC12F04B -:1014E000006E050EE15E0050F3CFAFF1F4CFB0F126 -:1014F0009CD105010851070A4FE0010A41E0030AA7 -:1015000033E0010A29E0070A1EE0010A14E0030A99 -:1015100009E0010A01E04FD0070EE66EF4EC1DF081 -:10152000E5524ED0010EE66E070EE66EF7EC1DF0AA -:10153000E552E55245D0E66A070EE66EF7EC1DF07F -:10154000E552E5523DD0010EE66E070EE66EFFEC69 -:101550001DF0E552E55234D0E66A070EE66EFFEC68 -:101560001DF0E552E5522CD00AC5E6FF09C5E6FF9D -:10157000070EE66E0AEC1EF0E552E552E55220D069 -:10158000090EE66E050EE66E070EE66E17EC1EF00F -:10159000E552E552E55214D00A0EE66E050EE66EEF -:1015A00009C5E6FF070EE66E1DEC1EF0E552E5529A -:1015B000E552E55205D0010EE66EE5EC21F0E5526C -:1015C000400EE66E000EE66E050EE66EE66A010E51 -:1015D000E66E65EC12F0006E050EE15E0050F3CF92 -:1015E000AFF1F4CFB0F121D105010851030A11E0A8 -:1015F000010A09E0030A01E037D009C5E6FF84ECDF -:101600001CF0E55236D009C5E6FF88EC1CF0E55227 -:1016100030D00E0E0CC5DBFF0D0E0DC5DBFF0C0E22 -:101620000EC5DBFF0B0E0FC5DBFFD9500B0FE96EAC -:10163000DACFEAFFEECFE6FFEECFE6FFEECFE6FF32 -:10164000EFCFE6FF0BC5E6FF0AC5E6FF09C5E6FFDB -:101650008CEC1CF0006E070EE15E0050010EF36E84 -:10166000160EF3CFDBFF05D0010EE66EE5EC21F0A0 -:10167000E552400EE66E000EE66E050EE66EE66A78 -:10168000010EE66E65EC12F0006E050EE15E005094 -:10169000F3CFAFF1F4CFB0F1C8D0800EE66E080EF4 -:1016A000E66ECAEC21F0E552E552C58080EC22F0EE -:1016B000E66A1FEC21F0E552080EE66E050EE66EB6 -:1016C000ACEC1FF0E552E552C58493EC22F0400EDD -:1016D000E66E000EE66E050EE66EE66A010EE66E3A -:1016E00065EC12F0006E050EE15E0050F3CFAFF135 -:1016F000F4CFB0F19AD04F0EAB16AC9ACF0E9D1628 -:10170000020EE66EE66A7C0EE66E67EC1FF0E552AE -:10171000E552E552040EE66EE66AB4EC14F0E552CA -:10172000E552100EE66E010EE66EB4EC14F0E552D2 -:10173000E552020EE66E030EE66E010EE66E2FEC2B -:1017400014F0E552E552E552040EE66EE66AB4EC9A -:1017500014F0E552E552100EE66E010EE66EB4ECA2 -:1017600014F0E552E552020EE66E030EE66E010E2F -:10177000E66E2FEC14F0E552E552E552BAEC13F0A8 -:10178000400EE66E000EE66E050EE66EE66A010E8F -:10179000E66E65EC12F0006E050EE15E0050F3CFD0 -:1017A000AFF1F4CFB0F141D00101B151B21102E17A -:1017B000000E08D0B1C1E9FFB2C1EAFFEF50800BC3 -:1017C00001E0010E000931E100C540F50501416B62 -:1017D0000501030E426F0501010E436F400EE66ED8 -:1017E000400EE66E050EE66E010EE66E010EE66E2A -:1017F00065EC12F0006E050EE15E0050F3CFB1F122 -:10180000F4CFB2F1400EE66E000EE66E050EE66E07 -:10181000E66A010EE66E65EC12F0006E050EE15E02 -:101820000050F3CFAFF1F4CFB0F1170EE15C02E25C -:10183000E16AE552E16EE552E7CFD9FF12000101FE -:10184000B651B71104E1100EB66F270EB76FB60789 -:10185000000EB75B6DA207D0B651B7112EE18A7C9E -:101860008ABC13D027D00101005102E18A9C22D00A -:10187000000502E18A8C09D0020E005D02E18A8C2B -:1018800019D0040E005D03E18A9C8A8E1200100EAE -:10189000005D06E10101B651B7110FE18A7C0AD063 -:1018A000200E005D0AE10101B651B71106E18A7C04 -:1018B0008AAC02D08A9E12008A8E120010D9210EA4 -:1018C0009BD9500E82D9A9D9630E48D9630EEE6E0A -:1018D000740EEE6E690EEE6E760EEE6E690EEE6EA4 -:1018E000740E64D981D924D926D951D9E66AD9D8B8 -:1018F00002E2E16AE552B5EF0DF0F1D82D0E7CD988 -:10190000430E2CD9780EEE6E690EEE6E6F0EEE6EF3 -:101910006E0EEE6E200E59D9740E7BD9620EEE6EED -:101920006C0EEE6E690E42D9EE6E5ED9EE6E71D916 -:10193000760E4BD9630EEE6E200EEE6E6C0E69D9EC -:10194000200EEE6EF8D8070EE66EF4EC1DF0E552B0 -:101950001ED9010EE66EA5D802E2E16AE552B5EFA6 -:101960000DF01200120059EF1EF012001E0EE66E6E -:10197000010EE66E33EC12F0E552E552400EE66ED3 -:10198000000EE66E050EE66EE66A010EE66E65EC8A -:1019900012F0006E050EE15E0050F3CFAFF1F4CF10 -:1019A000B0F112006D840101080EB96F070EBA6F15 -:1019B000B907000EBA5BB951BA11FAE16D94120081 -:1019C000D9CFE6FFE1CFD9FFFD0EDBCF2AF0FE0E27 -:1019D000DBCF2BF0010E2A1801E12B5033E0E86831 -:1019E0002A1802E1E8682B182BE0030E2A1801E1FF -:1019F0002B5024E0040E2A1801E12B501DE0020EAA -:101A00002A1801E12B5016E0170E2A1801E12B507D -:101A10000FE0160E2A1801E12B5008E0150E2A18C7 -:101A200001E12B5001E010D0A1DF0FD09EDF0DD0DF -:101A30009ADF0BD096DF09D041DF07D05EDF05D0FB -:101A400091DF03D0000001D000D0010E00D0E5529C -:101A5000E7CFD9FF1200C3D8E652D0B202D0010EB0 -:101A600015D0D0B802D0020E11D0D0B002D0030EE3 -:101A70000DD0D0B602D0040E09D0FCAE02D0050EB7 -:101A800005D0FCAC02D0060E01D0070EDF6ED08868 -:101A9000D086D084D082D080FC9EFC9CDF50E55262 -:101AA000AFD0070EE66EFFEC1DF0E552E552D9CF40 -:101AB000E6FFDACFE6FF010E7ED8D950150FA4D885 -:101AC000020E79D8D9502A0F9FD8030E74D8D95056 -:101AD0003F0F9AD8040E6FD8540EE15C12007FD8E5 -:101AE000540EE126D9CFE9FFDACFEAFF5B0EEE6EA6 -:101AF0004B0EEE6E720EEE6E6F0EEE6E5D0EEE6EB5 -:101B0000620EEE6E6F0EEE6E740EEE6E200E61D8EB -:101B1000EE6EEE6E570E7DD86C0EEE6EEE6E790E9A -:101B2000EE6EEE6AD950150FE96EDACFEAFF1200B9 -:101B300050D8E9EF0DF0630E6CD86FD86D0E45D814 -:101B4000720E43D8EE6A1200E65249D8020EE12620 -:101B5000F350DF6E010EF4CFDBFF1200EE6E6F0E5E -:101B6000EE6E6E0EEE6EE5EF0DF0E16E49D0DF50D9 -:101B7000F36E010EDB50F46E020EE15C1200DFCF5B -:101B8000E6FFE66A54EC20F0E552E5521200E66A00 -:101B9000070EE66EF7EC1DF0E552E5521200EE6A14 -:101BA000D9502A0FE96EDACFEAFF12000ED8200EC4 -:101BB000EE6EEE6E1200E66E070EE66E1DEC1EF087 -:101BC000E552E552E552E5521200EE6E650EEE6EFC -:101BD0001200EE6EEE6EEE6EEE6EEE6E1200D9CF6D -:101BE000E6FFE1CFD9FF1200EE6AD9503F0FE96E50 -:101BF000DACFEAFF200E12009BDF9ADFCFEF0DF065 -:101C0000E552E7CFD9FF1200E66E000EDA20E66E4D -:101C10001200EE6E610EEE6E1200720EEE6E740E1B -:081C2000D4DF200EEE6E12006D -:081C28000CEC13F06A6A686A13 -:101C30003FEC13F06D8C6E6AEFEC12F06D9CDF6A76 -:101C400020EC13F010E2DF50040DF3CFE9FFF4CFE6 -:101C5000EAFF000EE926040EEA22EE6AEE6AEE6A58 -:101C6000EE6ADF2AEDD7160E706E68A604D0030E5A -:101C7000B5EC12F0FAD70101136B186B196B1A6BE4 -:101C80006D98080E0B6F040E0C6F016B006BE55224 -:101C9000CAEF12F00CEC13F0010100510BE16D6A78 -:101CA000696A3FEC13F06DB602D06D86FCD7010176 -:101CB000010E006F000508E16DBA06D0686A696A16 -:101CC00069806988020E006F6850040B07E0695054 -:101CD000040B04E0020EB5EC12F089D86DB247D0C7 -:101CE0006850010B14E06950010B11E09DDF010108 -:101CF000040E006F0401200E026F040E036F080E25 -:101D0000016F006B8C0E0013E66A7EEC13F06850D6 -:101D1000100B07E06950100B04E060D8040EB5EC1E -:101D200012F06850400B0BE06950400B08E046ECA5 -:101D300013F0020EBDEC12F0060EB5EC12F0685076 -:101D4000200B04E06950200B01E035D86850020BED -:101D50000AE06950020B07E046EC13F0E668E6681B -:101D60009EEC13F06A6A040E0101005D02E2A19A82 -:101D70001FD069A61CD0DF6A040EDF5C18E268A6DB -:101D800016D06CCF20F1030EB5EC12F0780E0101E5 -:101D9000201502E138D809D0000EE66EE66A200E62 -:101DA000E66E010EE66E010EE8DBDF2AE5D7A19AAA -:101DB000E552CAEF12F070A00ED0D8EC12F0EF503E -:101DC000800808E1D5DBEF50840804E1D8EC12F07C -:101DD0008C0EEF6E7090050EB5EF12F06984040E54 -:101DE000C4DB6D82F8EC12F0040EBDEF12F0F8ECDB -:101DF00012F0030EC2DB6D92699468A403D0020E48 -:101E0000B4DBFBD712000CEC13F0FD0E0101201522 -:101E10003DE17E0E2015E8407F0B040DF3CF03F16A -:101E2000F4CF04F1000E0327040E042303C105F1CF -:101E300004C106F10575BCDBEF503C0BE842E842FB -:101E40000D0822E1B5DB75EC13F0EECF00F0EFCF1B -:101E500001F0280E001816E1040E011813E1AFEC92 -:101E600013F0DF6AEDDB0EE2DF5028EC13F0DF50F9 -:101E7000EA6A200FE96E040EEA22E552E750EF6E9F -:101E8000DF2AF0D70AD807D01AD805D0FD0E2015C2 -:101E9000040801E122D8E5527DD36ADBEF50800BC4 -:101EA00002E066DBEF6A01010F6B106B146B156BC0 -:101EB000136B64D89DDB170E60DBF3EF10F0020E9E -:101EC0000101105D02E180EF11F034D801012151D0 -:101ED00002E17AEF13F0216B12009EDB49DBEF5039 -:101EE000400B01E0010EDF6E01010B75080E005D75 -:101EF00009E122C46EFF6E50000802E2100E01D00C -:101F0000040E006F100513E1B3EC13F0A6D9020E16 -:101F100001010F5D03E12CDB840E07D0DF5003E1EC -:101F200027DBC80E02D024DB880EEF6E01D002D86A -:101F3000E55230D32BDB0101106B1ADBEF6A040E84 -:101F40000B19006E0CC101F0DE6E0CC1DDFF19DB58 -:101F5000EF6A18AF0CD01B511C1107E005D01CC153 -:101F6000FAFF01011B51F96EFADF0101189F020E01 -:101F7000E15C02E2E16AE552E16E0CD3040120511A -:101F8000600BE842E842E842E842E842000901E02A -:101F9000120021510C0A45E00B0A3FE00C0A31E027 -:101FA000010A22E00B0A1EE0020A1CE0030A18E004 -:101FB000080A10E0010A0CE00F0A08E0030A01E039 -:101FC00012000101138F080E006F120073EF10F062 -:101FD000DCEF11F00101010E116F010E126F0CD038 -:101FE000B4EF10F012EF10F024510101116F126BD9 -:101FF000020E1127010E12231381010E146F138F8D -:1020000012000101138F04012451EA6A020FE96EE4 -:10201000010EEA2222C4EFFF1200EADA160EBDEF2B -:1020200012F012007EDB040EE1260401220510E10D -:1020300020511F0B00090CE10101138F030E040155 -:10204000215D04E10101010E1F6F02D001011F6B30 -:102050000401225141E120511F0B02083DE12451AE -:102060000F0B000939E00101138F040124BF05D0D3 -:10207000A4DA070EE926010E04D09FDA0B0EE9263A -:10208000010ED2DA030E215D03E17BDA840E23D048 -:1020900024510F0B016A700F006E0F0E0122020E09 -:1020A00000C0DBFF030E01C0DBFF020EDBCFE9FF48 -:1020B000030EDBCFEAFFEE90ED5224AF06D061DADB -:1020C000EF6ADF745EDA400E06D05BDA880EEF6EE0 -:1020D000DF7457DAC80EEF6E040EE15C02E2E16ACB -:1020E000E552E16E57D2800E0401205D3CE1010112 -:1020F000C00E136F04012351030A1EE0010A09E018 -:10210000030A2FE10101800E116F3D0E126F120EB6 -:1021100022D0C3DA280EF6263E0EA2DA020E010104 -:10212000F76A1125F66E1251F7220900F5CF14F166 -:102130000A00F5CF15F11200030E225D0FE2ADDAB1 -:102140002A0EF6263E0E8CDA11C1F6FF12C1F7FFF9 -:102150000800F5500101146F156B12000101136B9B -:1021600012000101136B120011DA0401286B296BB4 -:1021700020511F0B020A11E0030A0CE0010A22E1C0 -:102180000101138F0401288101011F051BE10401D6 -:10219000288318D00101138F15D00101138F04017A -:1021A00024BF05D00ADA070EE926010E04D005DAAD -:1021B0000B0EE926010E38DAE4D9EF50040B02E0E9 -:1021C000010E286F010113AF07D0280E116F040E06 -:1021D000126F1381020E146F020EE15C02E2E16ADB -:1021E000E552E16ED7D16D98010113BF08D018AF49 -:1021F00002D061DA2AD07EDABBD9840E27D018BF8C -:102200002BD0040120AF24D0010114510401265D1C -:10221000010115510401275904E226C414F127C411 -:1022200015F11BD80101010E106FA1DA800EEF6EBF -:10223000216BBED9EE52080EEF6E91DAB9D9840E39 -:10224000EF6E010E216F8FDA93D9C80EEF6E120078 -:10225000010131DAC80EEF6E120098D90101080EA3 -:10226000145D000E15590DE214C1DEFF15C1DDFF2E -:102270000F5102E1010E03D00F0506E1020E0F6FB0 -:1022800003D0080EDE6EDD6A73D9EF9271D9EF903C -:102290006FD9010EDB50EF126BD9EE52DFCFEFFF9B -:1022A000000EDB50145F010EDB50155B280E1D6F16 -:1022B000040E1E6F13B10FD0F7D91BE011C1F6FF4A -:1022C00012C1F7FF112B000E12230800F55096D90A -:1022D000F3E2DB06F1D7E8D90CE011C1E9FF12C146 -:1022E000EAFF112B000E1223EF5088D9F4E2DB062F -:1022F000F2D7020EE15C02E2E16AE552E16E4AD1F8 -:1023000045D956D9EE52EFCFDFFFDFCF00F00050B6 -:102310000101195D000E1A5903E219C1DFFF09D04E -:10232000DF50006E016AE850195D196F01501A59AB -:102330001A6F010EDB6ADF50F36E010EDBCFF4FF84 -:10234000F350F45C10E2010EDB5082D916C1E9FFB4 -:1023500017C1EAFF162B000E1723E552E750EF6E68 -:10236000010EDB2AE8D7000ED8801955000E1A5549 -:102370000DE2F4D854D91CD9EF50400B03E1EAD94F -:10238000C80E02D0E7D9880EEF6E0FD0F0D9840EB8 -:10239000EF6E1B511C1107E005D01CC1FAFF0101B3 -:1023A0001B51F96EFADF0101189F020EE15C02E297 -:1023B000E16AE552E16EEED00101138F10D9010EF2 -:1023C000E66EE66AE66A020EE66E010EAFD922C438 -:1023D00001F10401225104E10101100E006F12000D -:1023E0000101200E006F04D9150EBDEF12F0CED8FA -:1023F000000EDE6E040EDD6EE8D8040DF350006EA4 -:10240000016A020E0F0B05E0D89001320032E80697 -:10241000FBE1D89000360136D89000360136D9CF8E -:10242000E9FFDACFEAFF0050EE260150ED22A9D8ED -:10243000EF9EFD0EDB5002E16AD901D06DD9EA2290 -:10244000DECFEEFFDDCFEDFF9CD8EF9C9AD8040ED7 -:10245000E926000EEA22EF8C020EE15C02E2E16A5C -:10246000E552E16E97D092D8FE0EDB50016A700FF4 -:10247000006E0F0EDFD885D8FD0EDBCFEFFFDBA49B -:1024800002D0E66AF5D8FD0EDBA203D0010EE66E9F -:10249000EFD8020EE15C02E2E16AE552E16E7AD029 -:1024A00075D8FE0EDB5005E125D962D8840EEF6E9B -:1024B00005D08BD80CD989D8010F09D9020EE15C5F -:1024C00002E2E16AE552E16E65D060D8FD0EDB50B4 -:1024D00002E022D901D01BD9A7D853D806D9FB0EC8 -:1024E000DBCFEEFFFC0EDBCFEDFF4BD8EE52FA0E4A -:1024F000DBCFEFFF400E45D8E850EF16880E41D8ED -:10250000E850EF12FD0EDB5002E006D901D0FFD8F3 -:10251000EA22EF74DECF00F0DDCF01F000C0F3FF60 -:1025200001C0F4FF020EE15C02E2E16AE552E16EF5 -:1025300031D0F7D8010EF36EFC0EDB5004E0D890DA -:10254000F336E806FCE1F31C006EFD0EDBCFE9FF7D -:10255000FE0EDBCFEAFF0050EF161CD0FBD8EE5288 -:10256000080EEF6EF7D875EF13F0E66E7EEF13F0FE -:102570000BC1E9FF0CC1EAFF1200E66EE66A9EEFAE -:1025800013F0DECFE9FFDDCFEAFF1200CAD8020E5A -:10259000E1261200E552E7CFD9FF1200D6D8AAEF04 -:1025A00013F0FE0EEA6ADB34FE0BEA36E96E120027 -:1025B00003C1E9FF04C1EAFF120024510F0BE96EC9 -:1025C000EA6AD890E936EA361200FD0EDB50E824BC -:1025D000026EFE0EDB50040DF35002241200000EBA -:1025E000E66EE66AE66A710EE66E0F0E96EF13F07F -:1025F000000EE66EE66AE66EE66A1200E66E1DC141 -:10260000E9FF1EC1EAFF1D2B000E1E23E552E75015 -:10261000EF6EDF06010E120084D8E6521200280E7B -:10262000EE6E040EED6E1200EA22EECFDEFFEDCF6D -:10263000DDFF1200012200C0DEFF01C0DDFF12003D -:10264000DF50006E016A080E005C000E0158120097 -:10265000EA6A280FE96E040EEA22EF50E66E1200D5 -:10266000F7220900F5CF11F10A00F5CF12F112009F -:10267000FE0EDBCFE6FFBBDEE552E5521200160E82 -:102680006F6E9F0E6B6E7B0E696E1200010EE66E12 -:10269000E66A000EE66EE66A12002251F66EF76AEE -:1026A000D890F636F7361200D9CFE9FFDACFEAFF35 -:1026B000EE50ED101200020E106F5ADFEE52EF6A6C -:1026C00057DFC80EEF6E4ADFAADFAAEF13F0040D42 -:1026D000F3CF00F0F4CF01F0000E0026040EAADFC5 -:1026E000840E4FDFE850EF121200020EE926000EB2 -:1026F000EA2212003CD88C0EEF6E1200680EE66ED5 -:102700000F0EE66E16DFE552E552E552120049DF84 -:10271000070EE926010E120044DF0B0EE926010E1A -:102720001200D9CFE6FFE1CFD9FF1200E66E1EEC12 -:1027300020F0006E050EE15E00501200E0EC0CF09F -:10274000006E060EE15E00501200200EEE6E040ECA -:10275000ED6E120005C1E9FF06C1EAFF120028DF95 -:10276000C4DFA5EF13F004DFC0DF0FEF13F0F6DED8 -:04277000CEEF12F0A6 -:0C277400959A838A190E61EF16F0CFDAF7 -:10278000030EE126ACA2FED700EC21F0DF6E0101C2 -:10279000485104E1265102E1010E496F490558E113 -:1027A0004851A8DADFCFEFFF020E485D08E2FF0EC6 -:1027B000DF5C05E0050EABDA0101496B486B030EE7 -:1027C000485D04E1030EDF2401016A6F030E01017D -:1027D000485D3DE301016A510101485D38E1010EA8 -:1027E000DB6A020EDB6E01016A51F36E020EDBCF73 -:1027F000F4FFF350F45C0EE2020EDB507BDA010EC4 -:10280000DBCFE7FFEF50E726010EE7CFDBFF020E3D -:10281000DB2AE9D76A516EDAEFCF00F0010EDB1C3C -:10282000005C05E0070E73DA0101266B0DD0010193 -:102830002B5102E0060E6BDA2BC1E6FFE5EC21F02E -:10284000E5520101010E266F496B486B01D0482B00 -:10285000030EE15C02E2E16AE552E16E24D25FDA46 -:10286000220EE126010EDB68020EDB68FE0EDB5055 -:10287000E76E030EE7CFDBFFFC0EDB50020FE76EC7 -:10288000040EE7CFDBFFFD0EDB50E76E050EE7CF52 -:10289000DBFFDF6AFC0EDB50DF5C13E2DF50EA6A2D -:1028A0004A0FE96E010EEA22EF50E66ED950010F91 -:1028B000006E050EDF2410DAE552E750EF6EDF2AD6 -:1028C000E9D7210EDB6A020EDF6EFC0EDB50050F2E -:1028D000DF5C0FE2D950010F006EDF50FDD9210EF1 -:1028E000DBCFE7FFEF50E726210EE7CFDBFFDF2A44 -:1028F000ECD7210EDB1CE66ED950010F006EFC0EEA -:10290000DB50050FE9D9E552E750EF6E839ADF6A95 -:10291000FC0EDB50060FDF5C11E2ACA2FED7D950F3 -:10292000010F006EDACF01F0DF500F01D5D9EF5063 -:10293000E66E47EC22F0E552DF2AEAD7ACA2FED7DA -:10294000838A0101266B220EE15C02E2E16AE55214 -:10295000E16EA9D101012651120001014751120077 -:1029600001012651FDE01200DAD9FE0EDB50EA6AC1 -:102970004A0FE96E010EEA22FD0EDBCFEFFF93D185 -:10298000CED9020E9ED9A4D9A3D988D987D9190E38 -:1029900098D984D983D987D10101265102E02B51DE -:1029A0001200000CD9CFE6FFE1CFD9FF020EE126DD -:1029B000E66A010EE66EFE0EDBCFE6FF50DFE55263 -:1029C000E552E552DE6ADD6ADECF00F0DDCF01F0D0 -:1029D000FC0EDBCF02F0FD0EDBCF03F00250005CFB -:1029E0000350015818E20101265104E00101476B30 -:1029F000010E16D0000000000000000000000000E2 -:102A0000000000000000000000000000DF2A010EAE -:102A100001E3DB2AD9D70101010E476F000E00D078 -:102A2000006E020EE15C02E2E16AE552E16E0050E6 -:102A3000E552E7CFD9FF120072D9E66A060E19D91E -:102A400032D135D9030E15D92ED119D982D902E246 -:102A5000E16AE552E16E27D1D9CFE6FFE1CFD9FF98 -:102A6000020EE126FD0EDBCFE6FFE66A7DDFE552D2 -:102A7000E552010EE66E010EE66E76DFE552E55296 -:102A8000020EE66E020EE66EFE0EDBCFE6FFE7DE1E -:102A9000E552E552E552DE6ADD6ADECF00F0DDCFB9 -:102AA00001F00A0E2A6E2B6AFB0EDBCF2FF0FC0E14 -:102AB000DBCF30F055EC18F028C002F029C003F04D -:102AC0000250005C0350015819E20101265105E053 -:102AD0000101476B01012C5116D0000000000000DD +:10097000E5CFE0FFE5CFD8FF100004D84BEC0EF038 +:1009800048D8FCD70F0EC11202D815EF0EF0F0ECCC +:100990000DF0E6522CEC0DF00001FC6F070EFC5D33 +:1009A00011E1E66A57EC20F0E552DF6E000EDF80C1 +:1009B000C0EC0DF0E66A13EC22F0E552000EDF9079 +:1009C000C0EC0DF093809382948C948ED08EF28E36 +:1009D000F28C770EC86E070EE66ED0EC1DF0E55275 +:1009E0003F0E8A1693160101236B246B256B266B31 +:1009F000010E276FBBEC13F0F9EC1AF0E66A27EC56 +:100A00001CF0E5523CEC1DF060EC19F0E55201EFF2 +:100A10000EF0D9CFE6FFE1CFD9FF170EE126160E73 +:100A2000DB6A0101275102E020EC0CF0200E0001EE +:100A3000605D03E36D50020B02E016EF0CF070EC0A +:100A400019F0160EDB5036E014EC1DF0000932E010 +:100A500001012551261102E1000E08D025C1E9FF50 +:100A600026C1EAFFEF50800B01E0010E000922E1F0 +:100A70000501406B01012851282B0501416F05013B +:100A80000C0E426F0501436B400EE66E400EE66EA3 +:100A9000050EE66E010EE66E010EE66E66EC12F0D5 +:100AA000006E050EE15E0050F3CF25F1F4CF26F184 +:100AB000160EDB6A01012551261102E1000E08D055 +:100AC00025C1E9FF26C1EAFFEF50800B01E0010ECE +:100AD00000093DE101012951EA6ACB0FE96E000EE0 +:100AE000EA22EF5034E00501406B01012851282B28 +:100AF0000501416F0501040E426F01012951EA6AA7 +:100B0000CB0FE96E000EEA22EFCF43F5400EE66E02 +:100B1000400EE66E050EE66E010EE66E010EE66E06 +:100B200066EC12F0006E050EE15E0050F3CF25F189 +:100B3000F4CF26F101012951EA6ACB0FE96E000ECC +:100B4000EA22EF6A010129291F0B0101296F010126 +:100B50002351241102E1000E08D023C1E9FF24C172 +:100B6000EAFFEF50800B01E0010E000902E016EFF2 +:100B70000CF005010251070A02E17CEF0BF0020ABA +:100B800002E14EEF0BF00E0A02E1F5EF0AF0060A61 +:100B900002E17AEF0AF0040A01E1A0D20F0A01E1B2 +:100BA000F5D1040A1AE0030A07E0010A02E0D5EFD2 +:100BB0000BF0FF0016EF0CF0E66A57EC20F0E55260 +:100BC000DF6E000EDB80DFCFE6FFE66A37EC20F059 +:100BD000E552E552FF0016EF0CF0010125512611F8 +:100BE00002E1000E08D025C1E9FF26C1EAFFEF505F +:100BF000800B01E0010E000901E0C6D100C540F5FF +:100C00000501416B0501030E426F0501436B0501B0 +:100C10000851050A01E101D10F0A01E17ED00E0A57 +:100C200071E0070A64E0010A20E0030A06E0010A15 +:100C300001E080D1FCC048F580D10501486B570E1A +:100C4000006E420E016E026A00C0E6FF01C0E6FFC0 +:100C500002C0E6FF480EE66E050EE66E1BEC20F0C5 +:100C6000036E050EE15E035068D10501486B4B0E23 +:100C7000006E420E016E026A00C0E6FF01C0E6FF90 +:100C800002C0E6FF480EE66E050EE66E1BEC20F095 +:100C9000036E050EE15E0350490E006E420E016EBA +:100CA000026A00C0E6FF01C0E6FF02C0E6FF480E90 +:100CB000E66E050EE66E1BEC20F0036E050EE15E9F +:100CC0000350400E006E420E016E026A00C0E6FF45 +:100CD00001C0E6FF02C0E6FF480EE66E050EE66EB6 +:100CE0001BEC20F0036E050EE15E035026D192CF7F +:100CF00048F593CF49F594CF4AF595CF4BF596CF6C +:100D00004CF51BD180CF48F581CF49F582CF4AF50C +:100D100083CF4BF584CF4CF510D1800EE66E080ED4 +:100D2000E66EADEC21F0E552E552C58063EC22F0B1 +:100D3000C00EE66E02EC21F0E552E66A02EC21F00C +:100D4000E552C58263EC22F0C10EE66E02EC21F0A2 +:100D5000E552010EDB6A020EDB6A010EDBCF00F00A +:100D6000020EDBCF01F0040E005C000E01584FE2D2 +:100D7000010EF36E150EF3CFDBFFC586130EDB6A93 +:100D8000140EDB6A130EDBCF00F0140EDBCF01F084 +:100D9000E80E005C030E015817E2C7A00FD0010E49 +:100DA000DBCFE9FF020EDBCFEAFF480EE926050E96 +:100DB000EA22C9CFEFFF150EDB6A06D0130EDB2A3D +:100DC000140E01E3DB2ADED7150EDB5008E0050127 +:100DD000080E436FC58AC58863EC22F018D0010E57 +:100DE000DBCF00F0020EDBCF01F0030E005C000E43 +:100DF000015803E2C59AC58802D0C58AC58863EC4C +:100E000022F0010EDB2A020E01E3DB2AA6D7C584FD +:100E100063EC22F076EC22F090D0010EDB6A020E39 +:100E2000DB6A010EDBCF00F0020EDBCF01F0020E19 +:100E3000005C000E015801E37CD0010EDBCFE6FF21 +:100E40001CEC1AF0E5520B0E28C0DBFF0C0E29C07B +:100E5000DBFF0D0E2AC0DBFF0E0E2BC0DBFF040EE6 +:100E60002A6E2B6A010EDBCF2FF0020EDBCF30F0A3 +:100E700056EC18F028C0E9FF29C0EAFF480EE92621 +:100E8000050EEA220E0EDBCFEFFF040E2A6E2B6A50 +:100E9000010EDBCF2FF0020EDBCF30F056EC18F056 +:100EA00028C0E9FF29C0EAFF010EE926000EEA2268 +:100EB000480EE926050EEA220D0EDBCFEFFF040EE9 +:100EC0002A6E2B6A010EDBCF2FF0020EDBCF30F043 +:100ED00056EC18F028C0E9FF29C0EAFF020EE92607 +:100EE000000EEA22480EE926050EEA220C0EDBCFA0 +:100EF000EFFF040E2A6E2B6A010EDBCF2FF0020EDD +:100F0000DBCF30F056EC18F028C0E9FF29C0EAFF2B +:100F1000030EE926000EEA22480EE926050EEA2213 +:100F20000B0EDBCFEFFF010EDB2A020E01E3DB2A03 +:100F300078D703D00501020E436F400EE66E400ED7 +:100F4000E66E050EE66E010EE66E010EE66E66ECCE +:100F500012F0006E050EE15E0050F3CF25F1F4CFE4 +:100F600026F1400EE66E000EE66E050EE66EE66AAF +:100F7000010EE66E66EC12F0006E050EE15E0050AA +:100F8000F3CF23F1F4CF24F116EF0CF00501085153 +:100F9000050A54E0010A49E0070A37E0010A25E0A2 +:100FA000030A13E0010A01E080D005010951921201 +:100FB00005010A51931205010B51941205010C51C0 +:100FC000951205010D51961275D00501091D921655 +:100FD00005010A1D931605010B1D941605010C1D34 +:100FE000951605010D1D961665D00501091D89167A +:100FF00005010A1D8A1605010B1D8B1605010C1D26 +:101000008C1605010D1D8D1655D00501095189124B +:1010100005010A518A1205010B518B1205010C5171 +:101020008C1205010D518D1245D00501091D0101DC +:101030001F1705010A5101011F133CD0050109A129 +:1010400007D00AC5E6FFE66AA3EC1BF0E552E552BD +:10105000050109A308D00BC5E6FF010EE66EA3EC5F +:101060001BF0E552E552050109A508D00CC5E6FFC5 +:10107000020EE66EA3EC1BF0E552E552050109A74E +:1010800008D00DC5E6FF030EE66EA3EC1BF0E5529B +:10109000E552050109A908D00EC5E6FF040EE66E6B +:1010A000A3EC1BF0E552E55205D0030EE66EC8EC4A +:1010B00021F0E552400EE66E000EE66E050EE66E7D +:1010C000E66A010EE66E66EC12F0006E050EE15E59 +:1010D0000050F3CF23F1F4CF24F1A8D3010125511F +:1010E000261102E1000E08D025C1E9FF26C1EAFF62 +:1010F000EF50800B01E0010E000901E0FAD100C5BC +:1011000040F50501416B0501030E426F0501436B7C +:10111000050108510F0A01E1BCD1010A01E1B3D177 +:10112000030A01E1AAD1010A01E190D1070A01E114 +:1011300081D1010A01E1E1D0030A01E1C3D0010A32 +:1011400001E1A8D00F0A01E18DD0010A68E0030A8D +:101150004FE0010A41E0070A24E0010A11E0030A16 +:1011600001E09DD105010A51E66EE66A09C5E6FF78 +:10117000D3EC14F0E552E552E5520501486F92D1E7 +:1011800005010C51E66EE66A0AC5E6FF09C5E6FFF1 +:101190002DEC15F0E552E552E552E5520501486F98 +:1011A00081D105010C51E66EE66A0AC5E6FF09C564 +:1011B000E6FF90EC15F0E552E552E552E5520F0ED0 +:1011C000F3CFDBFF100EF4CFDBFF100EDBCF48F5C3 +:1011D0000F0EDBCF49F566D10CC5E6FF0AC5E6FF69 +:1011E00009C5E6FF22EC15F0E552E552E5525AD169 +:1011F000100E0CC5DBFF0F0E0DC5DBFF0F0EDBCF96 +:10120000E6FF100EDBCFE6FF0AC5E6FF09C5E6FFE5 +:1012100026EC15F0E552E552E552E55243D1100EA9 +:101220000AC5DBFF0F0E0BC5DBFF120E0CC5DBFF83 +:10123000110E0DC5DBFF0EC5E6FF110EDBCFE6FF7D +:10124000120EDBCFE6FF0F0EDBCFE6FF100EDBCF7B +:10125000E6FF09C5E6FF11EC16F0006E060EE15E32 +:10126000005020D105010A51E66EE66A09C5E6FF85 +:1012700034EC16F0E552E552E5520F0EF3CFDBFFEA +:10128000100EF4CFDBFF100EDBCF48F50F0EDBCFD7 +:1012900049F508D105010A51E66EE66A09C5E6FF7F +:1012A00037EC16F0E552E552E5520F0EF3CFDBFFB7 +:1012B000100EF4CFDBFF100EDBCF48F50F0EDBCFA7 +:1012C00049F5F0D005010A51E66EE66A280EE66E91 +:1012D00009C5E6FF90EC15F0E552E552E552E552FE +:1012E0000F0EF3CFDBFF100EF4CFDBFF100EDBCFC2 +:1012F00048F50F0EDBCF49F5D5D005010A51E66E52 +:10130000E66A09C5E6FF34EC16F0E552E552E5520F +:101310000F0EF3CFDBFF100EF4CFDBFF100EDBCF91 +:1013200048F50F0EDBCF49F505010A51E66EE66A76 +:1013300009C5E6FF37EC16F0E552E552E5520F0E0F +:10134000F3CFDBFF100EF4CFDBFF100EDBCF4AF53F +:101350000F0EDBCF4BF505010A51E66EE66A280E4B +:10136000E66E09C5E6FF90EC15F0E552E552E55250 +:10137000E5520F0EF3CFDBFF100EF4CFDBFF100EA4 +:10138000DBCF4CF50F0EDBCF4DF505010A51E66EB4 +:10139000E66A2A0EE66E09C5E6FF2DEC15F0E55269 +:1013A000E552E552E55205014E6F05010A51E66E20 +:1013B000E66A2B0EE66E09C5E6FF2DEC15F0E55248 +:1013C000E552E552E55205014F6F05010A51E66EFF +:1013D000E66A060EE66E09C5E6FF90EC15F0E552EA +:1013E000E552E552E5520F0EF3CFDBFF100EF4CFBE +:1013F000DBFF100EDBCF50F50F0EDBCF51F50501F3 +:101400000A51E66EE66A080EE66E09C5E6FF90EC44 +:1014100015F0E552E552E552E5520F0EF3CFDBFF32 +:10142000100EF4CFDBFF100EDBCF52F50F0EDBCF2B +:1014300053F538D00CC5E6FF0AC5E6FF09C5E6FF3F +:1014400000EC16F0E552E552E5522CD0100E0CC51A +:10145000DBFF0F0E0DC5DBFF0F0EDBCFE6FF100E1F +:10146000DBCFE6FF0AC5E6FF09C5E6FF04EC16F090 +:10147000E552E552E552E55215D009C5E6FF0CEC00 +:1014800016F0E5520FD009C5E6FF1DEC15F0E55248 +:1014900009D009C5E6FFC1EC14F0E55203D00501FF +:1014A000010E436F400EE66E400EE66E050EE66ED0 +:1014B000010EE66E010EE66E66EC12F0006E050E91 +:1014C000E15E0050F3CF25F1F4CF26F1400EE66E39 +:1014D000000EE66E050EE66EE66A010EE66E66EC3E +:1014E00012F0006E050EE15E0050F3CF23F1F4CF51 +:1014F00024F19CD105010851070A4FE0010A41E09F +:10150000030A33E0010A29E0070A1EE0010A14E099 +:10151000030A09E0010A01E04FD0070EE66ED7EC9E +:101520001DF0E5524ED0010EE66E070EE66EDAECC7 +:101530001DF0E552E55245D0E66A070EE66EDAEC9C +:101540001DF0E552E5523DD0010EE66E070EE66E47 +:10155000E2EC1DF0E552E55234D0E66A070EE66E85 +:10156000E2EC1DF0E552E5522CD00AC5E6FF09C5B4 +:10157000E6FF070EE66EEDEC1DF0E552E552E55292 +:1015800020D0090EE66E050EE66E070EE66EFAEC4A +:101590001DF0E552E552E55214D00A0EE66E050E36 +:1015A000E66E09C5E6FF070EE66E00EC1EF0E5529A +:1015B000E552E552E55205D0010EE66EC8EC21F089 +:1015C000E552400EE66E000EE66E050EE66EE66A29 +:1015D000010EE66E66EC12F0006E050EE15E005044 +:1015E000F3CF23F1F4CF24F121D105010851030AEF +:1015F00011E0010A09E0030A01E037D009C5E6FF5E +:1016000067EC1CF0E55236D009C5E6FF6BEC1CF028 +:10161000E55230D00E0E0CC5DBFF0D0E0DC5DBFF05 +:101620000C0E0EC5DBFF0B0E0FC5DBFFD9500B0FE9 +:10163000E96EDACFEAFFEECFE6FFEECFE6FFEECFC0 +:10164000E6FFEFCFE6FF0BC5E6FF0AC5E6FF09C5DB +:10165000E6FF6FEC1CF0006E070EE15E0050010E1D +:10166000F36E160EF3CFDBFF05D0010EE66EC8EC6D +:1016700021F0E552400EE66E000EE66E050EE66EB7 +:10168000E66A010EE66E66EC12F0006E050EE15E93 +:101690000050F3CF23F1F4CF24F1C8D0800EE66ED2 +:1016A000080EE66EADEC21F0E552E552C58063EC24 +:1016B00022F0E66A02EC21F0E552080EE66E050E15 +:1016C000E66E8FEC1FF0E552E552C58476EC22F011 +:1016D000400EE66E000EE66E050EE66EE66A010E40 +:1016E000E66E66EC12F0006E050EE15E0050F3CF80 +:1016F00023F1F4CF24F19AD04F0EAB16AC9ACF0E53 +:101700009D16020EE66EE66A7C0EE66E4AEC1FF04F +:10171000E552E552E552040EE66EE66AB5EC14F0C9 +:10172000E552E552100EE66E010EE66EB5EC14F0D1 +:10173000E552E552020EE66E030EE66E010EE66E0F +:1017400030EC14F0E552E552E552040EE66EE66A1E +:10175000B5EC14F0E552E552100EE66E010EE66EA1 +:10176000B5EC14F0E552E552020EE66E030EE66E9D +:10177000010EE66E30EC14F0E552E552E552BBEC9A +:1017800013F0400EE66E000EE66E050EE66EE66A9B +:10179000010EE66E66EC12F0006E050EE15E005082 +:1017A000F3CF23F1F4CF24F141D0010125512611CB +:1017B00002E1000E08D025C1E9FF26C1EAFFEF5083 +:1017C000800B01E0010E000931E100C540F5050183 +:1017D000416B0501030E426F0501010E436F400E80 +:1017E000E66E400EE66E050EE66E010EE66E010E2A +:1017F000E66E66EC12F0006E050EE15E0050F3CF6F +:1018000025F1F4CF26F1400EE66E000EE66E050ED1 +:10181000E66EE66A010EE66E66EC12F0006E050EEC +:10182000E15E0050F3CF23F1F4CF24F1170EE15C19 +:1018300002E2E16AE552E16EE552E7CFD9FF12001C +:1018400001012A512B1104E1100E2A6F270E2B6F74 +:101850002A07000E2B5B6DA207D02A512B112EE117 +:101860008A7C8ABC13D027D00001605102E18A9C97 +:1018700022D0600502E18A8C09D0020E605D02E18F +:101880008A8C19D0040E605D03E18A9C8A8E120056 +:10189000100E605D06E101012A512B110FE18A7CD7 +:1018A0000AD0200E605D0AE101012A512B1106E1E8 +:1018B0008A7C8AAC02D08A9E12008A8E120010D9CD +:1018C000210E9BD9500E82D9A9D9630E48D9630E37 +:1018D000EE6E740EEE6E690EEE6E760EEE6E690EA4 +:1018E000EE6E740E64D981D924D926D951D9E66A0D +:1018F000D9D802E2E16AE552B6EF0DF0F1D82D0E2B +:101900007CD9430E2CD9780EEE6E690EEE6E6F0EFA +:10191000EE6E6E0EEE6E200E59D9740E7BD9620EED +:10192000EE6E6C0EEE6E690E42D9EE6E5ED9EE6E04 +:1019300071D9760E4BD9630EEE6E200EEE6E6C0EE4 +:1019400069D9200EEE6EF8D8070EE66ED7EC1DF0C2 +:10195000E5521ED9010EE66EA5D802E2E16AE55213 +:10196000B6EF0DF0120012003CEF1EF012001E0E3A +:10197000E66E010EE66E34EC12F0E552E552400ED2 +:10198000E66E000EE66E050EE66EE66A010EE66E87 +:1019900066EC12F0006E050EE15E0050F3CF23F10D +:1019A000F4CF24F112006D840001080EFD6F070EC4 +:1019B000FE6FFD07000EFE5BFD51FE11FAE16D9416 +:1019C0001200D9CFE6FFE1CFD9FFFD0EDBCF2AF021 +:1019D000FE0EDBCF2BF0010E2A1801E12B5033E075 +:1019E000E8682A1802E1E8682B182BE0030E2A1891 +:1019F00001E12B5024E0040E2A1801E12B501DE0D8 +:101A0000020E2A1801E12B5016E0170E2A1801E1E8 +:101A10002B500FE0160E2A1801E12B5008E0150E8E +:101A20002A1801E12B5001E010D0A1DF0FD09EDF7A +:101A30000DD09ADF0BD096DF09D041DF07D05EDFF3 +:101A400005D091DF03D0000001D000D0010E00D0FE +:101A5000E552E7CFD9FF1200C3D8E652D0B202D088 +:101A6000010E15D0D0B802D0020E11D0D0B002D0E5 +:101A7000030E0DD0D0B602D0040E09D0FCAE02D0B9 +:101A8000050E05D0FCAC02D0060E01D0070EDF6EAD +:101A9000D088D086D084D082D080FC9EFC9CDF5041 +:101AA000E552AFD0070EE66EE2EC1DF0E552E552CE +:101AB000D9CFE6FFDACFE6FF010E7ED8D950150F59 +:101AC000A4D8020E79D8D9502A0F9FD8030E74D803 +:101AD000D9503F0F9AD8040E6FD8540EE15C120013 +:101AE0007FD8540EE126D9CFE9FFDACFEAFF5B0EAB +:101AF000EE6E4B0EEE6E720EEE6E6F0EEE6E5D0EB5 +:101B0000EE6E620EEE6E6F0EEE6E740EEE6E200EC8 +:101B100061D8EE6EEE6E570E7DD86C0EEE6EEE6EE8 +:101B2000790EEE6EEE6AD950150FE96EDACFEAFF44 +:101B3000120050D8EAEF0DF0630E6CD86FD86D0E1E +:101B400045D8720E43D8EE6A1200E65249D8020E0A +:101B5000E126F350DF6E010EF4CFDBFF1200EE6ED4 +:101B60006F0EEE6E6E0EEE6EE6EF0DF0E16E49D08A +:101B7000DF50F36E010EDB50F46E020EE15C1200DA +:101B8000DFCFE6FFE66A37EC20F0E552E5521200BF +:101B9000E66A070EE66EDAEC1DF0E552E552120039 +:101BA000EE6AD9502A0FE96EDACFEAFF12000ED89A +:101BB000200EEE6EEE6E1200E66E070EE66E00EC84 +:101BC0001EF0E552E552E552E5521200EE6E650E4A +:101BD000EE6E1200EE6EEE6EEE6EEE6EEE6E1200B9 +:101BE000D9CFE6FFE1CFD9FF1200EE6AD9503F0FFF +:101BF000E96EDACFEAFF200E12009BDF9ADFD0EF0A +:101C00000DF0E552E7CFD9FF1200E66E000EDA20A4 +:101C1000E66E1200EE6E610EEE6E1200720EEE6E49 +:0A1C2000740ED4DF200EEE6E1200E9 +:061C2A000DEC13F06A6AE4 +:101C3000686A40EC13F06D8C6E6AF0EC12F06D9CEB +:101C4000DF6A21EC13F010E2DF50040DF3CFE9FF5F +:101C5000F4CFEAFF000EE926040EEA22EE6AEE6AED +:101C6000EE6AEE6ADF2AEDD7160E706E68A604D013 +:101C7000030EB6EC12F0FAD70001736B786B796B38 +:101C80007A6B6D98080E6B6F040E6C6F616B606BF6 +:101C9000E552CBEF12F00DEC13F0000160510BE1B7 +:101CA0006D6A696A40EC13F06DB602D06D86FCD7A0 +:101CB0000001010E606F600508E16DBA06D0686A28 +:101CC000696A69806988020E606F6850040B07E0DA +:101CD0006950040B04E0020EB6EC12F089D86DB224 +:101CE00047D06850010B14E06950010B11E09DDFF3 +:101CF0000001040E606F0401200E026F040E036FDA +:101D0000080E016F006B8C0E0013E66A7FEC13F077 +:101D10006850100B07E06950100B04E060D8040E07 +:101D2000B6EC12F06850400B0BE06950400B08E035 +:101D300047EC13F0020EBEEC12F0060EB6EC12F0F9 +:101D40006850200B04E06950200B01E035D8685042 +:101D5000020B0AE06950020B07E047EC13F0E6685B +:101D6000E6689FEC13F06A6A040E0001605D02E20F +:101D7000A19A1FD069A61CD0DF6A040EDF5C18E2AE +:101D800068A616D06CCF80F0030EB6EC12F0780E79 +:101D90000001801502E138D809D0000EE66EE66A2F +:101DA000800EE66E000EE66E010EE8DBDF2AE5D758 +:101DB000A19AE552CBEF12F070A00ED0D9EC12F040 +:101DC000EF50800808E1D5DBEF50840804E1D9EC3E +:101DD00012F08C0EEF6E7090050EB6EF12F0698463 +:101DE000040EC4DB6D82F9EC12F0040EBEEF12F0AB +:101DF000F9EC12F0030EC2DB6D92699468A403D073 +:101E0000020EB4DBFBD712000DEC13F0FD0E000147 +:101E100080153DE17E0E8015E8407F0B040DF3CF69 +:101E200063F0F4CF64F0000E6327040E642363C0F4 +:101E300065F064C066F06575BCDBEF503C0BE842B2 +:101E4000E8420D0822E1B5DB76EC13F0EECF00F0AE +:101E5000EFCF01F0280E001816E1040E011813E16F +:101E6000B0EC13F0DF6AEDDB0EE2DF5029EC13F08B +:101E7000DF50EA6A200FE96E040EEA22E552E750CD +:101E8000EF6EDF2AF0D70AD807D01AD805D0FD0E9A +:101E90008015040801E122D8E5527DD36ADBEF50BA +:101EA000800B02E066DBEF6A00016F6B706B746B96 +:101EB000756B736B64D89DDB170E60DBF4EF10F06D +:101EC000020E0001705D02E181EF11F034D80001D3 +:101ED000815102E17BEF13F0816B12009EDB49DB45 +:101EE000EF50400B01E0010EDF6E00016B75080E34 +:101EF000605D09E122C46EFF6E50000802E2100E20 +:101F000001D0040E606F700513E1B4EC13F0A6D994 +:101F1000020E00016F5D03E12CDB840E07D0DF5061 +:101F200003E127DBC80E02D024DB880EEF6E01D060 +:101F300002D8E55230D32BDB0001706B1ADBEF6A5D +:101F4000040E6B19006E6CC001F0DE6E6CC0DDFF1C +:101F500019DBEF6A78AF0CD07B517C1107E005D01C +:101F60007CC0FAFF00017B51F96EFADF0001789F17 +:101F7000020EE15C02E2E16AE552E16E0CD304017B +:101F80002051600BE842E842E842E842E84200099A +:101F900001E0120021510C0A45E00B0A3FE00C0A57 +:101FA00031E0010A22E00B0A1EE0020A1CE0030AEB +:101FB00018E0080A10E0010A0CE00F0A08E0030A22 +:101FC00001E012000001738F080E606F120074EFC1 +:101FD00010F0DDEF11F00001610E716F000E726FF5 +:101FE0000CD0B5EF10F013EF10F024510001716F19 +:101FF000726B620E7127000E72237381010E746F73 +:10200000738F12000001738F04012451EA6A620F7A +:10201000E96E000EEA2222C4EFFF1200EADA160E81 +:10202000BEEF12F012007EDB040EE1260401220551 +:1020300010E120511F0B00090CE10001738F030E0A +:102040000401215D04E10001010E7F6F02D0000157 +:102050007F6B0401225141E120511F0B02083DE139 +:1020600024510F0B000939E00001738F040124BFD4 +:1020700005D0A4DA670EE926000E04D09FDA6B0EB5 +:10208000E926000ED2DA030E215D03E17BDA840E2D +:1020900023D024510F0B016A700F006E0F0E012226 +:1020A000020E00C0DBFF030E01C0DBFF020EDBCF20 +:1020B000E9FF030EDBCFEAFFEE90ED5224AF06D02E +:1020C00061DAEF6ADF745EDA400E06D05BDA880E02 +:1020D000EF6EDF7457DAC80EEF6E040EE15C02E2B9 +:1020E000E16AE552E16E57D2800E0401205D3CE1C9 +:1020F0000001C00E736F04012351030A1EE0010AA0 +:1021000009E0030A2FE10001460E716F3D0E726F68 +:10211000120E22D0C3DAEE0EF6263D0EA2DA020E21 +:102120000001F76A7125F66E7251F7220900F5CFAA +:1021300074F00A00F5CF75F01200030E225D0FE275 +:10214000ADDAF00EF6263D0E8CDA71C0F6FF72C0E5 +:10215000F7FF0800F5500001746F756B1200000165 +:10216000736B12000001736B120011DA0401286B0B +:10217000296B20511F0B020A11E0030A0CE0010A2F +:1021800022E10001738F0401288100017F051BE11A +:102190000401288318D00001738F15D00001738FBC +:1021A000040124BF05D00ADA670EE926000E04D028 +:1021B00005DA6B0EE926000E38DAE4D9EF50040B8D +:1021C00002E0010E286F000173AF07D0280E716F77 +:1021D000040E726F7381020E746F020EE15C02E2F4 +:1021E000E16AE552E16ED7D16D98000173BF08D066 +:1021F00078AF02D061DA2AD07EDABBD9840E27D03C +:1022000078BF2BD0040120AF24D000017451040109 +:10221000265D000175510401275904E226C474F0BB +:1022200027C475F01BD80001010E706FA1DA800E73 +:10223000EF6E816BBED9EE52080EEF6E91DAB9D90E +:10224000840EEF6E010E816F8FDA93D9C80EEF6E98 +:102250001200000131DAC80EEF6E120098D90001A9 +:10226000080E745D000E75590DE274C0DEFF75C076 +:10227000DDFF6F5102E1010E03D06F0506E1020E92 +:102280006F6F03D0080EDE6EDD6A73D9EF9271D9DD +:10229000EF906FD9010EDB50EF126BD9EE52DFCF0A +:1022A000EFFF000EDB50745F010EDB50755B280EF4 +:1022B0007D6F040E7E6F73B10FD0F7D91BE071C034 +:1022C000F6FF72C0F7FF712B000E72230800F55065 +:1022D00096D9F3E2DB06F1D7E8D90CE071C0E9FF4B +:1022E00072C0EAFF712B000E7223EF5088D9F4E21E +:1022F000DB06F2D7020EE15C02E2E16AE552E16E32 +:102300004AD145D956D9EE52EFCFDFFFDFCF00F0EB +:1023100000500001795D000E7A5903E279C0DFFFB9 +:1023200009D0DF50006E016AE850795D796F015085 +:102330007A597A6F010EDB6ADF50F36E010EDBCF44 +:10234000F4FFF350F45C10E2010EDB5082D976C04A +:10235000E9FF77C0EAFF762B000E7723E552E750BE +:10236000EF6E010EDB2AE8D7000ED8807955000EFB +:102370007A550DE2F4D854D91CD9EF50400B03E143 +:10238000EAD9C80E02D0E7D9880EEF6E0FD0F0D987 +:10239000840EEF6E7B517C1107E005D07CC0FAFF04 +:1023A00000017B51F96EFADF0001789F020EE15CBB +:1023B00002E2E16AE552E16EEED00001738F10D9BE +:1023C000010EE66EE66AE66A620EE66E000EAFD9B0 +:1023D00022C461F00401225104E10001100E606F7B +:1023E00012000001200E606F04D9150EBEEF12F02E +:1023F000CED8000EDE6E040EDD6EE8D8040DF3506C +:10240000006E016A020E0F0B05E0D8900132003217 +:10241000E806FBE1D89000360136D8900036013648 +:10242000D9CFE9FFDACFEAFF0050EE260150ED22C6 +:10243000A9D8EF9EFD0EDB5002E16AD901D06DD91B +:10244000EA22DECFEEFFDDCFEDFF9CD8EF9C9AD8DD +:10245000040EE926000EEA22EF8C020EE15C02E295 +:10246000E16AE552E16E97D092D8FE0EDB50016A28 +:10247000700F006E0F0EDFD885D8FD0EDBCFEFFF9B +:10248000DBA402D0E66AF5D8FD0EDBA203D0010E74 +:10249000E66EEFD8020EE15C02E2E16AE552E16E1F +:1024A0007AD075D8FE0EDB5005E125D962D8840EAE +:1024B000EF6E05D08BD80CD989D8010F09D9020E3F +:1024C000E15C02E2E16AE552E16E65D060D8FD0EA2 +:1024D000DB5002E022D901D01BD9A7D853D806D9A6 +:1024E000FB0EDBCFEEFFFC0EDBCFEDFF4BD8EE5249 +:1024F000FA0EDBCFEFFF400E45D8E850EF16880EFE +:1025000041D8E850EF12FD0EDB5002E006D901D0B1 +:10251000FFD8EA22EF74DECF00F0DDCF01F000C07B +:10252000F3FF01C0F4FF020EE15C02E2E16AE55252 +:10253000E16E31D0F7D8010EF36EFC0EDB5004E0F3 +:10254000D890F336E806FCE1F31C006EFD0EDBCFFD +:10255000E9FFFE0EDBCFEAFF0050EF161CD0FBD8E0 +:10256000EE52080EEF6EF7D876EF13F0E66E7FEFBF +:1025700013F06BC0E9FF6CC0EAFF1200E66EE66A7A +:102580009FEF13F0DECFE9FFDDCFEAFF1200CAD8DC +:10259000020EE1261200E552E7CFD9FF1200D6D88D +:1025A000ABEF13F0FE0EEA6ADB34FE0BEA36E96E9F +:1025B000120063C0E9FF64C0EAFF120024510F0B50 +:1025C000E96EEA6AD890E936EA361200FD0EDB5071 +:1025D000E824026EFE0EDB50040DF35002241200BC +:1025E000000EE66EE66AE66A710EE66E0F0E97EF73 +:1025F00013F0000EE66EE66AE66EE66A1200E66E1C +:102600007DC0E9FF7EC0EAFF7D2B000E7E23E552F0 +:10261000E750EF6EDF06010E120084D8E65212007A +:10262000280EEE6E040EED6E1200EA22EECFDEFFF3 +:10263000EDCFDDFF1200012200C0DEFF01C0DDFF93 +:102640001200DF50006E016A080E005C000E015897 +:102650001200EA6A280FE96E040EEA22EF50E66ED5 +:102660001200F7220900F5CF71F00A00F5CF72F0E1 +:102670001200FE0EDBCFE6FFBBDEE552E552120094 +:10268000160E6F6E9F0E6B6E7B0E696E1200010E42 +:10269000E66EE66A000EE66EE66A12002251F66EFB +:1026A000F76AD890F636F7361200D9CFE9FFDACFBD +:1026B000EAFFEE50ED101200020E706F5ADFEE527C +:1026C000EF6A57DFC80EEF6E4ADFAADFABEF13F0F9 +:1026D000040DF3CF00F0F4CF01F0000E0026040E3D +:1026E000AADF840E4FDFE850EF121200020EE92637 +:1026F000000EEA2212003CD88C0EEF6E1200680E1B +:10270000E66E0F0EE66E16DFE552E552E552120058 +:1027100049DF670EE926000E120044DF6B0EE92642 +:10272000000E1200D9CFE6FFE1CFD9FF1200E66E0E +:1027300001EC20F0006E050EE15E00501200E1ECAD +:102740000CF0006E060EE15E00501200200EEE6EE0 +:10275000040EED6E120065C0E9FF66C0EAFF1200CC +:1027600028DFC4DFA6EF13F004DFC0DF10EF13F0A3 +:06277000F6DECFEF12F0CF +:0A277600959A838A190E62EF16F09F +:10278000CFDA030EE126ACA2FED7E3EC20F0DF6E39 +:102790000001A85104E1865102E1010EA96FA905CB +:1027A00058E1A851A8DADFCFEFFF020EA85D08E2DA +:1027B000FF0EDF5C05E0050EABDA0001A96BA86B2C +:1027C000030EA85D04E1030EDF240001CA6F030EAF +:1027D0000001A85D3DE30001CA510001A85D38E198 +:1027E000010EDB6A020EDB6E0001CA51F36E020EAF +:1027F000DBCFF4FFF350F45C0EE2020EDB507BDA29 +:10280000010EDBCFE7FFEF50E726010EE7CFDBFF3E +:10281000020EDB2AE9D7CA516EDAEFCF00F0010EC3 +:10282000DB1C005C05E0070E73DA0001866B0DD03F +:1028300000018B5102E0060E6BDA8BC0E6FFC8EC9C +:1028400021F0E5520001010E866FA96BA86B01D043 +:10285000A82B030EE15C02E2E16AE552E16E24D2AC +:102860005FDA220EE126010EDB68020EDB68FE0E47 +:10287000DB50E76E030EE7CFDBFFFC0EDB50020FF1 +:10288000E76E040EE7CFDBFFFD0EDB50E76E050EB3 +:10289000E7CFDBFFDF6AFC0EDB50DF5C13E2DF50CB +:1028A000EA6AAA0FE96E000EEA22EF50E66ED950EE +:1028B000010F006E050EDF2410DAE552E750EF6ECF +:1028C000DF2AE9D7210EDB6A020EDF6EFC0EDB5039 +:1028D000050FDF5C0FE2D950010F006EDF50FDD90C +:1028E000210EDBCFE7FFEF50E726210EE7CFDBFF1E +:1028F000DF2AECD7210EDB1CE66ED950010F006EEB +:10290000FC0EDB50050FE9D9E552E750EF6E839AD4 +:10291000DF6AFC0EDB50060FDF5C11E2ACA2FED7D3 +:10292000D950010F006EDACF01F0DF500F01D5D979 +:10293000EF50E66E2AEC22F0E552DF2AEAD7ACA28D +:10294000FED7838A0001866B220EE15C02E2E16A17 +:10295000E552E16EA9D10001865112000001A75194 +:10296000120000018651FDE01200DAD9FE0EDB50A4 +:10297000EA6AAA0FE96E000EEA22FD0EDBCFEFFF36 +:1029800093D1CED9020E9ED9A4D9A3D988D987D9FB +:10299000190E98D984D983D987D10001865102E0D4 +:1029A0008B511200000CD9CFE6FFE1CFD9FF020E08 +:1029B000E126E66A010EE66EFE0EDBCFE6FF50DF93 +:1029C000E552E552E552DE6ADD6ADECF00F0DDCF8A +:1029D00001F0FC0EDBCF02F0FD0EDBCF03F0025066 +:1029E000005C0350015818E20001865104E0000128 +:1029F000A76B010E16D000000000000000000000D0 +:102A00000000000000000000000000000000DF2ABD +:102A1000010E01E3DB2AD9D70001010EA76F000EDA +:102A200000D0006E020EE15C02E2E16AE552E16E66 +:102A30000050E552E7CFD9FF120072D9E66A060EC0 +:102A400019D932D135D9030E15D92ED119D982D938 +:102A500002E2E16AE552E16E27D1D9CFE6FFE1CF8C +:102A6000D9FF020EE126FD0EDBCFE6FFE66A7DDF31 +:102A7000E552E552010EE66E010EE66E76DFE55296 +:102A8000E552020EE66E020EE66EFE0EDBCFE6FFAC +:102A9000E7DEE552E552E552DE6ADD6ADECF00F0A0 +:102AA000DDCF01F00A0E2A6E2B6AFB0EDBCF2FF072 +:102AB000FC0EDBCF30F056EC18F028C002F029C035 +:102AC00003F00250005C0350015819E200018651E6 +:102AD00005E00001A76B00018C5116D0000000003A :102AE00000000000000000000000000000000000E6 -:102AF0000000DF2A010E01E3DB2ACFD70101010E1E -:102B0000476F000E00D0006E020EE15C02E2E16A47 -:102B1000E552E16E0050E552E7CFD9FF1200D9CF60 -:102B2000E6FFE1CFD9FF040EE126FD0EDBCFE6FF85 -:102B3000E66A1ADFE552E552020EE66E010EE66E17 -:102B400013DFE552E552020EE66E020EE66EFE0E51 -:102B5000DBCFE6FF84DEE552E552E552DE6ADD6A50 -:102B6000DECF00F0DDCF01F00A0E2A6E2B6AFB0EDD -:102B7000DBCF2FF0FC0EDBCF30F055EC18F028C087 -:102B800002F029C003F00250005C0350015827E214 -:102B90000101265113E00101476B030E2DC1DBFF3C -:102BA000020E2CC1DBFF020EDBCF00F0030EDBCFE9 -:102BB00001F000C0F3FF01C0F4FF17D000000000D7 +:102AF00000000000DF2A010E01E3DB2ACFD700012E +:102B0000010EA76F000E00D0006E020EE15C02E223 +:102B1000E16AE552E16E0050E552E7CFD9FF1200BD +:102B2000D9CFE6FFE1CFD9FF040EE126FD0EDBCFC2 +:102B3000E6FFE66A1ADFE552E552020EE66E010E86 +:102B4000E66E13DFE552E552020EE66E020EE66E09 +:102B5000FE0EDBCFE6FF84DEE552E552E552DE6A8B +:102B6000DD6ADECF00F0DDCF01F00A0E2A6E2B6A9F +:102B7000FB0EDBCF2FF0FC0EDBCF30F056EC18F065 +:102B800028C002F029C003F00250005C0350015835 +:102B900027E20001865113E00001A76B030E8DC0F0 +:102BA000DBFF020E8CC0DBFF020EDBCF00F0030E5A +:102BB000DBCF01F000C0F3FF01C0F4FF17D000002D :102BC0000000000000000000000000000000000005 -:102BD00000000000DF2A010E01E3DB2AC1D701015A -:102BE000010E476FF36AF46A00D0040EE15C02E262 -:102BF000E16AE552E16EE552E7CFD9FF120057D8FE -:102C0000040E37D850D03BD8040EA3D802E2E16AB4 -:102C1000E552E16E48D083D8E66A050E2AD843D043 -:102C20007ED8020EE1261E0EE66EE66A9ED8FC0EE7 -:102C300067D893D8FA0E64D8030E6ED8010EDBCF96 -:102C4000E6FF040E69D8F90EDB5004E1050EE66ECE -:102C5000030E03D0050EE66E040E7BD802E2E16A95 -:102C6000E552E16E20D03ED8240E5ED03BD8260E31 -:102C70005BD0E66EFE0EDBCFE6FFF1DD7AD04FD8FB -:102C8000020EE126FB0EDBCFDEFFDBCFDDFF5BD8E4 -:102C9000DFCFE6FF62D8030EE66E1200FE0EDBCF3A -:102CA000E6FF030E4BD0E552E7CFD9FF120037D82D -:102CB0004AD8FC0EDBCFE6FF010E2ED8020EE66EE0 -:102CC0001200E66EE66A7C0EE66E67EC1FF051D0ED -:102CD000100EE66E040E32D00024E96E000EDA20EB -:102CE000EA6E12001CD8FC0EDBCFE6FFFD0EDBCF38 -:102CF000E6FF1200EA6A270FE96E010EEA221200CF -:102D0000DBCFDEFFDBCFDDFFDFCFE6FF1200E66EBD -:102D1000E5EC21F0E5521200E66EB5EF16F0D9CFE2 -:102D2000E6FFE1CFD9FF1200E66EFE0EDBCFE6FF35 -:102D3000F6DEE552E552E552E552B5D7E66EFE0EF7 -:102D4000E66E7FDE16D0FD0EDBCFE6FFE66AB5EF5E -:102D500016F08FDF020EE15C1200010EDDDF010EC6 -:102D6000DBCFE6FF020E8CEF16F0FEDDE552E552FA -:0A2D70001200E552E552E552120090 -:062D7A00239E05D0239EFC -:102D80002BAE02D02B6C238E2BC025F0246A356A23 -:102D9000346A860E266E276AF5EF18F0239E08D057 -:102DA000239E2BAE05D02A6C2B1EE86A2B22238E85 -:102DB0002BC025F02AC024F0356A346A8E0E266EA8 -:102DC000276AF5EF18F0239E0CD0239E2BAE09D076 -:102DD000286C291E2A1E2B1EE86A29222A222B2251 -:102DE000238E2BC025F02AC024F029C035F028C03E -:102DF00034F09E0E266E276AF5EF18F0317E236AB6 -:102E000031EC19F049EC19F023B6D9EF18F023A2F0 -:102E10000AD023AA03D023BED9EF18F023A4E5EFEC -:102E200018F0E2EF18F023AA05D023ACE5EF18F074 -:102E3000E2EF18F023A00AD023A808D023BE04D0C4 -:102E400023A402D0EEEF18F0F2EF18F0346A276AEC -:102E500031502C5C336E10E329C035F02AC024F0C9 -:102E60002BC025F02CC032F02EC029F02FC02AF044 -:102E700030C02BF0233A09D02EC035F02FC024F0FB -:102E800030C025F031C032F0336C239E23BC238E3A -:102E900032C026F023B021EF19F01A0E336021EF73 -:102EA00019F0266A2C6A23A408D0296C2A1E2B1E2E -:102EB0002C1EE86A2A222B222C2223AC08D0356C47 -:102EC000241E251E261EE86A242225222622286A80 -:102ED000335207E02C342B322A3229322832332E57 -:102EE000F9D7295035262A5024222B5025222C5040 -:102EF000262228C034F0239E26AE0BD0346C351E1B -:102F0000241E251E261EE86A35222422252226227A -:102F1000238E26A006D0D880253224323532343292 -:102F2000322A32C026F0F5EF18F0236A31EC19F09E -:102F300049EC19F023B6D9EF18F023A205D023BA33 -:102F4000D9EF18F0E0EF18F023BAECEF18F023A057 -:102F500005D023B8D9EF18F0ECEF18F023B8E0EF64 -:102F600018F0276A7F0E2C24266EE86A272231503B -:102F7000265EE86A275A1A0E326E2C6A346A356A5F -:102F8000246A256A2E50295E2F502A5A30502B5A17 -:102F9000000E2C5A09E72E5029262F502A22305095 -:102FA0002B22000E2C2201D0348AD89029362A36C2 -:102FB0002B362C36D8903436353624362536322EFC -:102FC000E1D72B502A102910D8A4348AF5EF18F035 -:102FD000236A31EC19F049EC19F023B6D9EF18F057 -:102FE00023A205D023B8D9EF18F0E0EF18F023AAF8 -:102FF00005D023B0D9EF18F0E0EF18F023B002D0DD -:1030000023A802D0ECEF18F0276A31502C24266E4A -:10301000E86A27227E0E265EE86A275A346A356AF5 -:10302000246A256A30502B02F4CF25F0F3CF24F028 -:103030002F502B02F3503526F4502422000E252267 -:1030400030502A02F3503526F4502422000E252257 -:103050002E502B02F3503426F4503522000E242239 -:1030600025222F502A02F3503426F4503522000E28 -:103070002422252230502902F3503426F4503522E0 -:10308000000E242225222E502A02F4503426000E4F -:103090003522242225222F502902F4503426000EF6 -:1030A000352224222522F5EF18F02AC034F02A50C8 -:1030B0002F02F4CF29F0F3CF28F02B503002F4CFB9 -:1030C0002BF0F3CF2AF02F02F3502926F4502A22B6 -:1030D000E86A2B2234503002F3502926F4502A2279 -:1030E000E86A2B22000C236A31EC19F023B67DEF3D -:1030F00018F023A20ED023B405D07F0E2B6EFF0E46 -:103100002A6E1FD0800E2B6E2A6A1BD02B6A2A6A69 -:1031100018D023B0FBD78F0E2C60EDD77E0E2C6419 -:10312000F5D78E0E2C5C05E0D8902B322A322C2A53 -:10313000F8D723A406D02A6C2B1EE86A2B222BAECC -:10314000E5D71200236A31EC19F023B6ACEF18F082 -:1031500023A20FD023B407D07F0E2B6EFF0E2A6E52 -:10316000296E286E25D0800E2B6E01D02B6A000EA2 -:10317000F6D723B0FBD7286A9F0E2C60EBD77E0EC4 -:103180002C64F4D79E0E2C5C07E0D8902B322A32A8 -:10319000293228322C2AF6D723A40AD0286C291EDB -:1031A0002A1E2B1EE86A29222A222B222BAEDED7CA -:1031B00012007F0E2C6EFF0E2B6E2A6E296E1200EF -:1031C0007F0E23BEFF0E2C6E02D07F0E2C6E800E63 -:1031D0002B6E2A6A296AF3D723AE04D0800E2C6E98 -:1031E0002B6AF7D72C6A2B6AF4D725502410351098 -:1031F0003410F8E027BEF0D725BE0CD0265027109B -:10320000EBE0D89034363536243625362606D8A05D -:103210002706F2D72750D4E12628D2E034AE11D0C9 -:103220007F0E341402E135A00CD0352AE86A24223E -:10323000252207E3D880253224323532262A262853 -:10324000BFE02650C9E035C029F024C02AF025345B -:103250002B6E26302C6E2B322C9E23BE2C8EDFEF55 -:1032600018F02B362C3602E32384237E06E12380DC -:103270002C6A2B6A2A6A296A12002C2803E0D8805B -:103280002B321200D8902B3202E1238212002386C7 -:1032900012003036313602E3238C237E06E1238888 -:1032A000316A306A2F6A2E6A1200312803E0D88012 -:0E32B00030321200D8903032EAE1238A120048 -:0232BE00FC0E04 -:1032C0009516839083920D0EE66E7C0EE66EE10EEF -:1032D000E66EE7EC1FF0E552E552E5521200D9CF59 -:1032E000E6FFE1CFD9FFE6520101BB51040A48E0F5 -:1032F000070A30E0010A24E0030A0CE0010A01E0B9 -:1033000098D08380870EE66E18EC22F0E55201011A -:10331000010E34D08EEC22F0000901E08BD052D99E -:1033200001AE02D002680368BCC1E9FFEA6AE9BEE7 -:10333000EA6825D9B00EE926000E36D9020E1ED055 -:10334000839083828F0EE66E18EC22F0E552010125 -:10335000030E14D08EEC22F000096CE133D901AEDB -:1033600002D002680368BCC1E9FFEA6AE9BEEA6804 -:1033700006D9... [truncated message content] |
From: Jérémie D. <Ba...@us...> - 2010-05-10 12:43:51
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 39d1cabf96ca1b345c167b091859f2e93f70be2f (commit) via c4b37f2e96d1d82a3c6581ae87ea981016b67db2 (commit) from f4da06fd90fd328cc6300caf2471f94a1cf63af5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 39d1cabf96ca1b345c167b091859f2e93f70be2f Author: Jérémie Dimino <je...@di...> Date: Mon May 10 14:40:48 2010 +0200 reorganize devices/services names commit c4b37f2e96d1d82a3c6581ae87ea981016b67db2 Author: Jérémie Dimino <je...@di...> Date: Mon May 10 14:06:06 2010 +0200 refactoring ----------------------------------------------------------------------- Changes: diff --git a/info/control/clients/check.ml b/info/control/clients/check.ml index 6a5f87b..4a59a31 100644 --- a/info/control/clients/check.ml +++ b/info/control/clients/check.ml @@ -27,7 +27,7 @@ lwt () = (fun () -> lwt () = Krobot.Gate.enable krobot in lwt () = printl "opening the gate" in - lwt () = Krobot.Gate.release krobot in + lwt () = Krobot.Gate.open_ krobot in lwt () = Lwt_unix.sleep 0.5 in lwt () = printl "closing the gate" in lwt () = Krobot.Gate.close krobot in diff --git a/info/control/clients/controller.ml b/info/control/clients/controller.ml index 5e7d435..dc4cda0 100644 --- a/info/control/clients/controller.ml +++ b/info/control/clients/controller.ml @@ -162,19 +162,19 @@ let draw krobot = let name_color = lwhite in let driver = List.mem "Driver" (React.S.value services) in - lwt devices = + lwt services_status = if driver then - OBus_property.get (Krobot.devices_status krobot) + OBus_property.get (Krobot.services_status krobot) else return { - Krobot.dev_compass = false; - Krobot.dev_range_finders = false; - Krobot.dev_logic_sensors = false; - Krobot.dev_motor = false; - Krobot.dev_ax12 = false; - Krobot.dev_lcd = false; - Krobot.dev_infrared = false; - Krobot.dev_power = false; + Krobot.srv_compass = false; + Krobot.srv_range_finders = false; + Krobot.srv_logic_sensors = false; + Krobot.srv_motor = false; + Krobot.srv_ax12 = false; + Krobot.srv_lcd = false; + Krobot.srv_infrared = false; + Krobot.srv_power = false; } in @@ -222,7 +222,7 @@ let draw krobot = let zone = Zone.inner screen in lwt () = - if driver && devices.Krobot.dev_range_finders then begin + if driver && services_status.Krobot.srv_range_finders then begin lwt range_finders = OBus_property.get (Krobot.Range_finders.measures krobot) in for i = 0 to 7 do Draw.textc zone 0 i [textf "%d : " i; text (Text.repeat (range_finders.(i) * 14 / 3146) "=")] @@ -237,7 +237,7 @@ let draw krobot = in lwt () = - if driver && devices.Krobot.dev_logic_sensors then begin + if driver && services_status.Krobot.srv_logic_sensors then begin lwt logic_sensors = OBus_property.get (Krobot.Logic_sensors.states krobot) in for i = 0 to 7 do let j = i * 2 in @@ -290,7 +290,7 @@ let draw krobot = in let x = x + 12 in lwt () = - if driver && devices.Krobot.dev_compass then begin + if driver && services_status.Krobot.srv_compass then begin lwt compass = OBus_property.get (Krobot.Compass.measure krobot) in Draw.textf zone x 2 "compass = %d" compass; return () @@ -307,7 +307,7 @@ let draw krobot = [text mode; text "OK"] in lwt () = - if driver && devices.Krobot.dev_motor then begin + if driver && services_status.Krobot.srv_motor then begin lwt forward = OBus_property.get (Krobot.Motors.inhibit_forward_until krobot) and backward = OBus_property.get (Krobot.Motors.inhibit_backward_until krobot) in Draw.textc zone x 3 (text_of_motor_state "move forward: " forward); @@ -321,7 +321,7 @@ let draw krobot = end in lwt () = - if driver && devices.Krobot.dev_infrared then begin + if driver && services_status.Krobot.srv_infrared then begin lwt i1, i2 = OBus_property.get (Krobot.Infrared.states krobot) in Draw.textc zone x 5 [textf "infrared 1: %d" i1]; Draw.textc zone x 6 [textf "infrared 2: %d" i2]; @@ -334,7 +334,7 @@ let draw krobot = end in lwt () = - if driver && devices.Krobot.dev_power then begin + if driver && services_status.Krobot.srv_power then begin lwt current = OBus_property.get (Krobot.Power.current krobot) in Draw.textc zone x 7 [textf "current: %d mA" current]; return () @@ -524,7 +524,7 @@ lwt () = notify_property (Krobot.Card.state krobot `Sensor); notify_property (Krobot.Card.state krobot `Motor); notify_property (Krobot.Card.state krobot `Monitoring); - notify_property (Krobot.devices_status krobot); + notify_property (Krobot.services_status krobot); notify_property (Krobot.Infrared.states krobot); notify_property (Krobot.Power.current krobot); ] diff --git a/info/control/clients/script.ml b/info/control/clients/script.ml index d78724a..e244b80 100644 --- a/info/control/clients/script.ml +++ b/info/control/clients/script.ml @@ -520,9 +520,9 @@ let () = register ~path:["gate"] "close" f0 (fun logger krobot -> Krobot.Gate.close krobot); - register ~path:["gate"] "release" f0 + register ~path:["gate"] "open" f0 (fun logger krobot -> - Krobot.Gate.release krobot); + Krobot.Gate.open_ krobot); register ~path:["gate"] "hold-closed" f0 (fun logger krobot -> Krobot.Gate.hold_closed krobot); diff --git a/info/control/driver/driver.ml b/info/control/driver/driver.ml index a2bf6d9..c1631f1 100644 --- a/info/control/driver/driver.ml +++ b/info/control/driver/driver.ml @@ -54,23 +54,33 @@ let get_card card = "the %s card is currently unavailable" card.card_name -(* List of services, by cards *) +(* +-----------------------------------------------------------------+ + | Services and devices | + +-----------------------------------------------------------------+ *) + let services = [ + card_interface, ["Claws"; "Compass"; "Grip"; "LCD"; "Gate"; "Infrared"]; + card_monitoring, ["Power"]; + card_sensor, ["LogicSensors"; "RangeFinders"]; + card_motor, ["Motors"]; +] + +let devices = [ card_interface, ["Servo"; "Compass"; "AX12"; "LCD"; "Gate"; "Infrared"]; card_monitoring, ["Power"]; card_sensor, ["LogicSensors"; "RangeFinders"]; card_motor, ["Motors"]; ] -let devices_status, set_devices_status = +let services_status, set_services_status = React.S.create ~eq:(String_map.equal (=)) (List.fold_left (fun map service -> String_map.add service false map) String_map.empty (List.concat (List.map snd services))) -let set_device_status device status = - set_devices_status (String_map.add device status (React.S.value devices_status)) +let set_service_status service status = + set_services_status (String_map.add service status (React.S.value services_status)) (* +-----------------------------------------------------------------+ | USB card polling | @@ -111,8 +121,7 @@ struct let obus = OBus_object.make - ~interfaces:[Export_unsafe.interface Name.name card] - ["fr"; "krobot"; "Devices"; Name.name] + ["fr"; "krobot"; "Services"; Name.name] let () = OBus_object.attach obus () @@ -121,9 +130,9 @@ struct Lwt_signal.always_notify (function | Some _ -> - set_device_status Name.name true + set_service_status Name.name true | None -> - set_device_status Name.name false) + set_service_status Name.name false) card.card_card end @@ -135,7 +144,7 @@ module Power = struct include Service(struct let name = "Power" end) - open Krobot_interfaces.Fr_krobot_Device_Power + open Krobot_interfaces.Fr_krobot_Service_Power let set_buzzer_state state = USBCard.call Commands.Power.set_buzzer_state (get_card card) state @@ -166,7 +175,7 @@ module Compass = struct include Service(struct let name = "Compass" end) - open Krobot_interfaces.Fr_krobot_Device_Compass + open Krobot_interfaces.Fr_krobot_Service_Compass let value = poll ~update_delay:1.0 card 0 (fun card -> snd =|< USBCard.call Commands.Compass.get card ()) @@ -186,7 +195,7 @@ module LCD = struct include Service(struct let name = "LCD" end) - open Krobot_interfaces.Fr_krobot_Device_LCD + open Krobot_interfaces.Fr_krobot_Service_LCD let set_lcd lines = if List.length lines > 4 || List.exists (fun line -> String.length line > 20) lines then @@ -211,7 +220,7 @@ struct OBus_object.add_interfaces obus [make ~notify_mode { - m_SetLCD = ( + m_Set = ( fun ctx () lines -> lwt () = set_lcd lines in OBus_method.return ctx () @@ -230,14 +239,14 @@ struct end (* +-----------------------------------------------------------------+ - | Servo | + | Claws | +-----------------------------------------------------------------+ *) -module Servo = +module Claws = struct - include Service(struct let name = "Servo" end) + include Service(struct let name = "Claws" end) - open Krobot_interfaces.Fr_krobot_Device_Servo + open Krobot_interfaces.Fr_krobot_Service_Claws let claws_enable () = USBCard.call Commands.Servo.set_config (get_card card) (0b10100, 0) @@ -257,27 +266,27 @@ struct let () = OBus_object.add_interfaces obus [make ~notify_mode { - m_ClawsEnable = ( + m_Enable = ( fun ctx obj () -> lwt result = claws_enable obj in OBus_method.return ctx result ); - m_ClawsDisable = ( + m_Disable = ( fun ctx obj () -> lwt result = claws_disable obj in OBus_method.return ctx result ); - m_ClawsOpen = ( + m_Open = ( fun ctx obj () -> lwt result = claws_open obj in OBus_method.return ctx result ); - m_ClawsClose = ( + m_Close = ( fun ctx obj () -> lwt result = claws_close obj in OBus_method.return ctx result ); - m_ClawsTake = ( + m_Take = ( fun ctx obj () -> lwt result = claws_take obj in OBus_method.return ctx result @@ -286,52 +295,60 @@ struct end (* +-----------------------------------------------------------------+ - | AX12 | + | AX12 helpers | +-----------------------------------------------------------------+ *) -module AX12 = +type ax12_action = { + aa_id : int; + aa_position : int; + aa_velocity : int; +} + +let set_ax12 = function + | [] -> + return () + | [action] -> + USBCard.call Commands.AX12.goto + (get_card card_interface) + (action.aa_id, + action.aa_position, + action.aa_velocity, + `Now) + | actions -> + lwt () = + Lwt_list.iter_p + (fun action -> + USBCard.call Commands.AX12.goto + (get_card card_interface) + (action.aa_id, + action.aa_position, + action.aa_velocity, + `Action)) + actions + in + USBCard.call Commands.AX12.action (get_card card_interface) 0xfe + +(* +-----------------------------------------------------------------+ + | Grip | + +-----------------------------------------------------------------+ *) + +module Grip = struct - include Service(struct let name = "AX12" end) + include Service(struct let name = "Grip" end) - open Krobot_interfaces.Fr_krobot_Device_AX12 + open Krobot_interfaces.Fr_krobot_Service_Grip (* +---------------------------------------------------------------+ | High-level commands | +---------------------------------------------------------------+ *) - type ax12_action = { - aa_id : int; - aa_position : int; - aa_velocity : int; - } - - let set_ax12 actions = - lwt () = - Lwt_list.iter_p - (fun action -> - USBCard.call Commands.AX12.goto - (get_card card) - (action.aa_id, - action.aa_position, - action.aa_velocity, - `Action)) - actions - in - USBCard.call Commands.AX12.action (get_card card) 0xfe - let grip_up () = - set_ax12 [(*{ aa_id = 1; - aa_position = 190; - aa_velocity = 50 };*) - { aa_id = 2; + set_ax12 [{ aa_id = 2; aa_position = 180; aa_velocity = 50 }] let grip_down () = - set_ax12 [(*{ aa_id = 1; - aa_position = 490; - aa_velocity = 50 };*) - { aa_id = 2; + set_ax12 [{ aa_id = 2; aa_position = 510; aa_velocity = 50 }; { aa_id = 3; @@ -361,27 +378,27 @@ struct OBus_object.add_interfaces obus [make ~notify_mode { - m_GripUp = ( + m_Up = ( fun ctx obj () -> lwt result = grip_up obj in OBus_method.return ctx result ); - m_GripDown = ( + m_Down = ( fun ctx obj () -> lwt result = grip_down obj in OBus_method.return ctx result ); - m_GripOpen = ( + m_Open = ( fun ctx obj () -> lwt result = grip_open obj in OBus_method.return ctx result ); - m_GripClose = ( + m_Close = ( fun ctx obj () -> lwt result = grip_close obj in OBus_method.return ctx result ); - m_GripRelease = ( + m_Release = ( fun ctx obj () -> lwt result = grip_release obj in OBus_method.return ctx result @@ -397,7 +414,7 @@ module Infrared = struct include Service(struct let name = "Infrared" end) - open Krobot_interfaces.Fr_krobot_Device_Infrared + open Krobot_interfaces.Fr_krobot_Service_Infrared let states = poll card (0, 0) @@ -406,13 +423,19 @@ struct return (ar.(0), ar.(1))) let go_left () = - USBCard.call Commands.AX12.goto (get_card card_interface) (1, 750, 200, `Now) + set_ax12 [{ aa_id = 1; + aa_position = 750; + aa_velocity = 200 }] let go_right () = - USBCard.call Commands.AX12.goto (get_card card_interface) (1, 250, 200, `Now) + set_ax12 [{ aa_id = 1; + aa_position = 250; + aa_velocity = 200 }] let go_center () = - USBCard.call Commands.AX12.goto (get_card card_interface) (1, 550, 200, `Now) + set_ax12 [{ aa_id = 1; + aa_position = 514; + aa_velocity = 200 }] let () = OBus_object.add_interfaces obus @@ -445,7 +468,7 @@ module Logic_sensors = struct include Service(struct let name = "LogicSensors" end) - open Krobot_interfaces.Fr_krobot_Device_LogicSensors + open Krobot_interfaces.Fr_krobot_Service_LogicSensors let value = poll card (Array.make 16 false) (fun card -> USBCard.call Commands.Logic_sensors.get_state card ()) @@ -465,7 +488,7 @@ module Range_finders = struct include Service(struct let name = "RangeFinders" end) - open Krobot_interfaces.Fr_krobot_Device_RangeFinders + open Krobot_interfaces.Fr_krobot_Service_RangeFinders let get_calibration id = USBCard.call Commands.Range_finders.get_calibration (get_card card) id @@ -523,7 +546,7 @@ module Gate = struct include Service(struct let name = "Gate" end) - open Krobot_interfaces.Fr_krobot_Device_Gate + open Krobot_interfaces.Fr_krobot_Service_Gate let enable () = USBCard.call Commands.Gate.enable (get_card card) (`Both) @@ -562,7 +585,7 @@ struct lwt result = close obj in OBus_method.return ctx result ); - m_Release = ( + m_Open = ( fun ctx obj () -> lwt result = release obj in OBus_method.return ctx result @@ -588,7 +611,7 @@ module Motors = struct include Service(struct let name = "Motors" end) - open Krobot_interfaces.Fr_krobot_Device_Motors + open Krobot_interfaces.Fr_krobot_Service_Motors type trajectory = { trajectory : [ `Forward | `Backward | `Left | `Right | `Goto ]; @@ -995,20 +1018,20 @@ struct Lwt.wakeup done_wakener (); return () - let devices_status = + let services_status = React.S.map (fun map -> String_map.fold (fun device status acc -> (device, status) :: acc) map []) - devices_status + services_status let () = OBus_object.attach obus (); OBus_object.add_interfaces obus [make ~notify_mode { - p_DevicesStatus = (fun () -> devices_status); + p_ServicesStatus = (fun () -> services_status); m_Shutdown = ( fun ctx () () -> lwt () = shutdown ctx () in @@ -1243,9 +1266,9 @@ lwt () = return ()) in - OBus_object.export bus Servo.obus; + OBus_object.export bus Claws.obus; OBus_object.export bus Compass.obus; - OBus_object.export bus AX12.obus; + OBus_object.export bus Grip.obus; OBus_object.export bus LCD.obus; OBus_object.export bus Power.obus; OBus_object.export bus Logic_sensors.obus; @@ -1261,6 +1284,22 @@ lwt () = OBus_object.export bus Manager.obus; + (* Unsafe interfaces *) + + List.iter + (fun (card, devices) -> + List.iter + (fun device -> + let obus = + OBus_object.make + ~interfaces:[Export_unsafe.interface device card] + ["fr"; "krobot"; "Devices"; device] + in + OBus_object.attach obus (); + OBus_object.export bus obus) + devices) + devices; + lwt () = Lwt_log.notice ~section "ready, waiting for requests" in lwt () = done_waiter in OBus_connection.close bus diff --git a/info/control/driver/export_unsafe.ml b/info/control/driver/export_unsafe.ml index b5b6a12..f37fbb9 100644 --- a/info/control/driver/export_unsafe.ml +++ b/info/control/driver/export_unsafe.ml @@ -53,4 +53,4 @@ let interface name card = let interface_commands = List.assoc name commands in match name with | "Card" -> make_interface card "fr.krobot.Card.Unsafe" interface_commands - | dev -> make_interface card ("fr.krobot.Device." ^ name ^ ".Unsafe") interface_commands + | dev -> make_interface card ("fr.krobot.Device." ^ name) interface_commands diff --git a/info/control/lib-krobot/krobot.ml b/info/control/lib-krobot/krobot.ml index 851a0ce..9ab5915 100644 --- a/info/control/lib-krobot/krobot.ml +++ b/info/control/lib-krobot/krobot.ml @@ -32,35 +32,38 @@ let card krobot card = | `Motor -> "Motor" | `Monitoring -> "Monitoring" )] +let service krobot name = + OBus_proxy.make krobot ["fr"; "krobot"; "Services"; name] + let device krobot name = OBus_proxy.make krobot ["fr"; "krobot"; "Devices"; name] -type devices_status = { - dev_compass : bool; - dev_range_finders : bool; - dev_logic_sensors : bool; - dev_motor : bool; - dev_ax12 : bool; - dev_lcd : bool; - dev_infrared : bool; - dev_power : bool; +type services_status = { + srv_compass : bool; + srv_range_finders : bool; + srv_logic_sensors : bool; + srv_motor : bool; + srv_ax12 : bool; + srv_lcd : bool; + srv_infrared : bool; + srv_power : bool; } -let devices_status krobot = +let services_status krobot = OBus_property.map_r (fun l -> { - dev_compass = List.assoc "Compass" l; - dev_range_finders = List.assoc "RangeFinders" l; - dev_logic_sensors = List.assoc "LogicSensors" l; - dev_motor = List.assoc "Motors" l; - dev_ax12 = List.assoc "AX12" l; - dev_lcd = List.assoc "LCD" l; - dev_infrared = List.assoc "Infrared" l; - dev_power = List.assoc "Power" l; + srv_compass = List.assoc "Compass" l; + srv_range_finders = List.assoc "RangeFinders" l; + srv_logic_sensors = List.assoc "LogicSensors" l; + srv_motor = List.assoc "Motors" l; + srv_ax12 = List.assoc "Grip" l; + srv_lcd = List.assoc "LCD" l; + srv_infrared = List.assoc "Infrared" l; + srv_power = List.assoc "Power" l; }) (OBus_property.make ~notify_mode - Krobot_interfaces.Fr_krobot_Manager.p_DevicesStatus + Krobot_interfaces.Fr_krobot_Manager.p_ServicesStatus (OBus_proxy.make krobot ["fr"; "krobot"; "Manager"])) (* +-----------------------------------------------------------------+ @@ -69,21 +72,21 @@ let devices_status krobot = module Infrared = struct - open Krobot_interfaces.Fr_krobot_Device_Infrared + open Krobot_interfaces.Fr_krobot_Service_Infrared let states krobot = OBus_property.map_r (fun (i1, i2) -> (Int32.to_int i1, Int32.to_int i2)) - (OBus_property.make ~notify_mode p_States (device krobot "Infrared")) + (OBus_property.make ~notify_mode p_States (service krobot "Infrared")) let go_left krobot = - OBus_method.call m_GoLeft (device krobot "Infrared") () + OBus_method.call m_GoLeft (service krobot "Infrared") () let go_right krobot = - OBus_method.call m_GoRight (device krobot "Infrared") () + OBus_method.call m_GoRight (service krobot "Infrared") () let go_center krobot = - OBus_method.call m_GoCenter (device krobot "Infrared") () + OBus_method.call m_GoCenter (service krobot "Infrared") () end (* +-----------------------------------------------------------------+ @@ -92,13 +95,13 @@ end module Power = struct - open Krobot_interfaces.Fr_krobot_Device_Power + open Krobot_interfaces.Fr_krobot_Service_Power let set_buzzer_state krobot state = - OBus_method.call m_SetBuzzerState (device krobot "Power") state + OBus_method.call m_SetBuzzerState (service krobot "Power") state let current krobot = - OBus_property.map_r Int32.to_int (OBus_property.make ~notify_mode p_Current (device krobot "Power")) + OBus_property.map_r Int32.to_int (OBus_property.make ~notify_mode p_Current (service krobot "Power")) end (* +-----------------------------------------------------------------+ @@ -107,25 +110,25 @@ end module Gate = struct - open Krobot_interfaces.Fr_krobot_Device_Gate + open Krobot_interfaces.Fr_krobot_Service_Gate let enable krobot = - OBus_method.call m_Enable (device krobot "Gate") () + OBus_method.call m_Enable (service krobot "Gate") () let disable krobot = - OBus_method.call m_Disable (device krobot "Gate") () + OBus_method.call m_Disable (service krobot "Gate") () let close krobot = - OBus_method.call m_Close (device krobot "Gate") () + OBus_method.call m_Close (service krobot "Gate") () - let release krobot = - OBus_method.call m_Release (device krobot "Gate") () + let open_ krobot = + OBus_method.call m_Open (service krobot "Gate") () let hold_closed krobot = - OBus_method.call m_HoldClosed (device krobot "Gate") () + OBus_method.call m_HoldClosed (service krobot "Gate") () let stop krobot = - OBus_method.call m_Stop (device krobot "Gate") () + OBus_method.call m_Stop (service krobot "Gate") () end (* +-----------------------------------------------------------------+ @@ -134,10 +137,10 @@ end module Compass = struct - open Krobot_interfaces.Fr_krobot_Device_Compass + open Krobot_interfaces.Fr_krobot_Service_Compass let measure krobot = - OBus_property.map_r Int32.to_int (OBus_property.make p_Value ~notify_mode (device krobot "Compass")) + OBus_property.map_r Int32.to_int (OBus_property.make p_Value ~notify_mode (service krobot "Compass")) end (* +-----------------------------------------------------------------+ @@ -146,12 +149,12 @@ end module Logic_sensors = struct - open Krobot_interfaces.Fr_krobot_Device_LogicSensors + open Krobot_interfaces.Fr_krobot_Service_LogicSensors let states krobot = OBus_property.map_r Array.of_list - (OBus_property.make p_Value ~notify_mode (device krobot "LogicSensors")) + (OBus_property.make p_Value ~notify_mode (service krobot "LogicSensors")) end (* +-----------------------------------------------------------------+ @@ -160,16 +163,16 @@ end module LCD = struct - open Krobot_interfaces.Fr_krobot_Device_LCD + open Krobot_interfaces.Fr_krobot_Service_LCD let set krobot lines = - OBus_method.call m_SetLCD (device krobot "LCD") lines + OBus_method.call m_Set (service krobot "LCD") lines let backlight_on krobot = - OBus_method.call m_BacklightOn (device krobot "LCD") () + OBus_method.call m_BacklightOn (service krobot "LCD") () let backlight_off krobot = - OBus_method.call m_BacklightOff (device krobot "LCD") () + OBus_method.call m_BacklightOff (service krobot "LCD") () end (* +-----------------------------------------------------------------+ @@ -178,25 +181,25 @@ end module Range_finders = struct - open Krobot_interfaces.Fr_krobot_Device_RangeFinders + open Krobot_interfaces.Fr_krobot_Service_RangeFinders let measures krobot = OBus_property.map_r (fun l -> Array.of_list (List.map Int32.to_int l)) - (OBus_property.make p_Value ~notify_mode (device krobot "RangeFinders")) + (OBus_property.make p_Value ~notify_mode (service krobot "RangeFinders")) let get_calibration krobot id = - lwt l = OBus_method.call m_GetCalibration (device krobot "RangeFinders") (Int32.of_int id) in + lwt l = OBus_method.call m_GetCalibration (service krobot "RangeFinders") (Int32.of_int id) in return (Array.of_list (List.map Int32.to_int l)) let calibration_start krobot id skip_meas = - OBus_method.call m_CalibrationStart (device krobot "RangeFinders") (Int32.of_int id, skip_meas) + OBus_method.call m_CalibrationStart (service krobot "RangeFinders") (Int32.of_int id, skip_meas) let calibration_stop krobot = - OBus_method.call m_CalibrationStop (device krobot "RangeFinders") () + OBus_method.call m_CalibrationStop (service krobot "RangeFinders") () let calibration_continue krobot = - OBus_method.call m_CalibrationContinue (device krobot "RangeFinders") () + OBus_method.call m_CalibrationContinue (service krobot "RangeFinders") () end (* +-----------------------------------------------------------------+ @@ -205,22 +208,22 @@ end module Grip = struct - open Krobot_interfaces.Fr_krobot_Device_AX12 + open Krobot_interfaces.Fr_krobot_Service_Grip let up krobot = - OBus_method.call m_GripUp (device krobot "AX12") () + OBus_method.call m_Up (service krobot "Grip") () let down krobot = - OBus_method.call m_GripDown (device krobot "AX12") () + OBus_method.call m_Down (service krobot "Grip") () let open_ krobot = - OBus_method.call m_GripOpen (device krobot "AX12") () + OBus_method.call m_Open (service krobot "Grip") () let close krobot = - OBus_method.call m_GripClose (device krobot "AX12") () + OBus_method.call m_Close (service krobot "Grip") () let release krobot = - OBus_method.call m_GripRelease (device krobot "AX12") () + OBus_method.call m_Release (service krobot "Grip") () end (* +-----------------------------------------------------------------+ @@ -229,22 +232,22 @@ end module Claws = struct - open Krobot_interfaces.Fr_krobot_Device_Servo + open Krobot_interfaces.Fr_krobot_Service_Claws let enable krobot = - OBus_method.call m_ClawsEnable (device krobot "Servo") () + OBus_method.call m_Enable (service krobot "Servo") () let disable krobot = - OBus_method.call m_ClawsDisable (device krobot "Servo") () + OBus_method.call m_Disable (service krobot "Servo") () let open_ krobot = - OBus_method.call m_ClawsOpen (device krobot "Servo") () + OBus_method.call m_Open (service krobot "Servo") () let close krobot = - OBus_method.call m_ClawsClose (device krobot "Servo") () + OBus_method.call m_Close (service krobot "Servo") () let take krobot = - OBus_method.call m_ClawsTake (device krobot "Servo") () + OBus_method.call m_Take (service krobot "Servo") () end (* +-----------------------------------------------------------------+ @@ -253,24 +256,24 @@ end module Motors = struct - open Krobot_interfaces.Fr_krobot_Device_Motors + open Krobot_interfaces.Fr_krobot_Service_Motors let turn krobot ~angle ~velocity ~acceleration = - OBus_method.call m_Turn (device krobot "Motors") + OBus_method.call m_Turn (service krobot "Motors") (Int32.of_int angle, Int32.of_int velocity, Int32.of_int acceleration) >|= move_result_of_int32 let move krobot ~distance ~velocity ~acceleration = - OBus_method.call m_Move (device krobot "Motors") + OBus_method.call m_Move (service krobot "Motors") (Int32.of_int distance, Int32.of_int velocity, Int32.of_int acceleration) >|= move_result_of_int32 let goto krobot ~x ~y ~velocity ~acceleration ~mode ~bypass_distance = - OBus_method.call m_Goto (device krobot "Motors") + OBus_method.call m_Goto (service krobot "Motors") (Int32.of_int x, Int32.of_int y, Int32.of_int velocity, @@ -280,22 +283,22 @@ struct >|= move_result_of_int32 let stop krobot ~mode = - OBus_method.call m_StopMotors (device krobot "Motors") (int32_of_stop_mode mode) + OBus_method.call m_StopMotors (service krobot "Motors") (int32_of_stop_mode mode) let set_velocities krobot ~velocities:(vl, vr) ~accelerations:(al, ar) ~duration = - OBus_method.call m_SetVelocities (device krobot "Motors") + OBus_method.call m_SetVelocities (service krobot "Motors") (Int32.of_int vl, Int32.of_int al, Int32.of_int vr, Int32.of_int ar, duration) let inhibit_forward_until krobot = - OBus_property.make p_InhibitForwardUntil ~notify_mode (device krobot "Motors") + OBus_property.make p_InhibitForwardUntil ~notify_mode (service krobot "Motors") let inhibit_backward_until krobot = - OBus_property.make p_InhibitBackwardUntil ~notify_mode (device krobot "Motors") + OBus_property.make p_InhibitBackwardUntil ~notify_mode (service krobot "Motors") let state krobot = - OBus_property.make p_State ~notify_mode (device krobot "Motors") + OBus_property.make p_State ~notify_mode (service krobot "Motors") end (* +-----------------------------------------------------------------+ @@ -341,7 +344,7 @@ let unsafe_call command krobot args = _unsafe_call command (device krobot command.Commands.section) - ("fr.krobot.Device." ^ command.Commands.section ^ ".Unsafe") + ("fr.krobot.Device." ^ command.Commands.section) args (* +-----------------------------------------------------------------+ @@ -392,7 +395,7 @@ struct "fr.krobot.Card.Unsafe" args | _ -> - failwith "use Krobot.unsafe_call for calls on a device" + failwith "use Krobot.unsafe_call for calls on a service" end (* +-----------------------------------------------------------------+ diff --git a/info/control/lib-krobot/krobot.mli b/info/control/lib-krobot/krobot.mli index f34db67..160973e 100644 --- a/info/control/lib-krobot/krobot.mli +++ b/info/control/lib-krobot/krobot.mli @@ -24,20 +24,20 @@ val bus : unit -> OBus_bus.t Lwt.t - otherwise it uses the local krobot bus *) -(** {6 Devices} *) - -type devices_status = { - dev_compass : bool; - dev_range_finders : bool; - dev_logic_sensors : bool; - dev_motor : bool; - dev_ax12 : bool; - dev_lcd : bool; - dev_infrared : bool; - dev_power : bool; +(** {6 Services} *) + +type services_status = { + srv_compass : bool; + srv_range_finders : bool; + srv_logic_sensors : bool; + srv_motor : bool; + srv_ax12 : bool; + srv_lcd : bool; + srv_infrared : bool; + srv_power : bool; } -val devices_status : t -> devices_status OBus_property.r +val services_status : t -> services_status OBus_property.r (** List of services with their status *) module Infrared : sig @@ -69,7 +69,7 @@ module Gate : sig val close : t -> unit Lwt.t (** Close the gate *) - val release : t -> unit Lwt.t + val open_ : t -> unit Lwt.t (** Open the gate *) val hold_closed : t -> unit Lwt.t diff --git a/info/control/protocol/krobot.obus b/info/control/protocol/krobot.obus index 9720c1e..4405cd9 100644 --- a/info/control/protocol/krobot.obus +++ b/info/control/protocol/krobot.obus @@ -15,13 +15,13 @@ interface have changed. *) -interface "fr.krobot.Device.Power" { +interface "fr.krobot.Service.Power" { method SetBuzzerState : (state : boolean) -> () property.r Current : int32 } -interface "fr.krobot.Device.Infrared" { +interface "fr.krobot.Service.Infrared" { property.r States : (int32 * int32) structure method GoLeft : () -> () @@ -29,7 +29,7 @@ interface "fr.krobot.Device.Infrared" { method GoCenter : () -> () } -interface "fr.krobot.Device.Gate" { +interface "fr.krobot.Service.Gate" { method Enable : () -> () (** Enable the motor of the gate *) @@ -39,7 +39,7 @@ interface "fr.krobot.Device.Gate" { method Close : () -> () (** Close the gate *) - method Release : () -> () + method Open : () -> () (** Open the gate *) method HoldClosed : () -> () @@ -49,15 +49,15 @@ interface "fr.krobot.Device.Gate" { (** Stop holding the gate *) } -interface "fr.krobot.Device.Compass" { +interface "fr.krobot.Service.Compass" { property.r Value : int32 (** Current value of the compass *) signal PropertiesChanged : (properties : (string, variant) dict) } -interface "fr.krobot.Device.LCD" { - method SetLCD : (lines : string array) -> () +interface "fr.krobot.Service.LCD" { + method Set : (lines : string array) -> () (** Write all the given lines on the LCD *) method BacklightOn : () -> () @@ -66,40 +66,40 @@ interface "fr.krobot.Device.LCD" { signal PropertiesChanged : (properties : (string, variant) dict) } -interface "fr.krobot.Device.Servo" { - method ClawsEnable : () -> () +interface "fr.krobot.Service.Claws" { + method Enable : () -> () (** Enable the claws. They are initially disabled. When disabled, commands are ignored. *) - method ClawsDisable : () -> () + method Disable : () -> () - method ClawsOpen : () -> () + method Open : () -> () (** Completely open the claws. *) - method ClawsClose : () -> () + method Close : () -> () (** Completely close the claws *) - method ClawsTake : () -> () + method Take : () -> () (** Put the claws in a position allowing to capture a ball *) signal PropertiesChanged : (properties : (string, variant) dict) } -interface "fr.krobot.Device.AX12" { - method GripUp : () -> () - method GripDown : () -> () - method GripOpen : () -> () - method GripClose : () -> () - method GripRelease : () -> () +interface "fr.krobot.Service.Grip" { + method Up : () -> () + method Down : () -> () + method Open : () -> () + method Close : () -> () + method Release : () -> () signal PropertiesChanged : (properties : (string, variant) dict) } -interface "fr.krobot.Device.LogicSensors" { +interface "fr.krobot.Service.LogicSensors" { property.r Value : boolean array signal PropertiesChanged : (properties : (string, variant) dict) } -interface "fr.krobot.Device.RangeFinders" { +interface "fr.krobot.Service.RangeFinders" { property.r Value : int32 array method GetCalibration : (id : int32) -> (result : int32 array) method CalibrationStart : (id : int32, skip_measure : boolean) -> () @@ -109,7 +109,7 @@ interface "fr.krobot.Device.RangeFinders" { signal PropertiesChanged : (properties : (string, variant) dict) } -interface "fr.krobot.Device.Motors" { +interface "fr.krobot.Service.Motors" { property.r State : string method Turn : (angle : int32, velocity : int32, acceleration : int32) -> (result : int32) method Move : (distance : int32, velocity : int32, acceleration : int32) -> (result : int32) @@ -142,8 +142,8 @@ interface "fr.krobot.Device.Motors" { } interface "fr.krobot.Manager" { - property.r DevicesStatus : (string, boolean) dict - (** Mapping from device name to their current state *) + property.r ServicesStatus : (string, boolean) dict + (** Mapping from service name to their current state *) method Shutdown : () -> () (** Shutdown the driver *) hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-10 11:17:37
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via f29936d0328a5665a92225f34094c966859a0140 (commit) via b8bde60238c461eb5f68152f2e03413df65d9b38 (commit) from 6641c373d1d83375e9beb62bc56987533f89a32a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f29936d0328a5665a92225f34094c966859a0140 Author: Jérémie Dimino <je...@di...> Date: Mon May 10 13:17:02 2010 +0200 do not switch on/off the infrared sensros all the time commit b8bde60238c461eb5f68152f2e03413df65d9b38 Author: Jérémie Dimino <je...@di...> Date: Mon May 10 13:16:45 2010 +0200 do not compute an average value for the infrared sensors on the PIC ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Interface_Robot/Firmware/infrared.c b/elec/boards/Interface_Robot/Firmware/infrared.c index 2c63936..32e6ff4 100644 --- a/elec/boards/Interface_Robot/Firmware/infrared.c +++ b/elec/boards/Interface_Robot/Firmware/infrared.c @@ -10,8 +10,8 @@ void initIF() { /* Initialisation des PINs */ TRISD&= 0b11111100; /* OPTOSW1, OPTOSW2 */ - OPTOSW1 = 0; - OPTOSW2 = 0; + OPTOSW1 = 1; + OPTOSW2 = 1; OpenADC(ADC_FOSC_64 /* A/D clock source (forcnt Fosc / 64 car PIC 8 MHz) */ & ADC_RIGHT_JUST /* A/D result justification */ @@ -35,8 +35,6 @@ void interruptIF(void) { switch (state) { case 0: - OPTOSW1 = 1; - // Drre la convertion sur RA0 SelChanConvADC(ADC_CH0); state = 1; @@ -51,9 +49,6 @@ void interruptIF(void) { break; case 2: - OPTOSW1 = 0; - OPTOSW2 = 1; - // Drre la convertion sur RA1 SelChanConvADC(ADC_CH1); state = 3; @@ -68,8 +63,6 @@ void interruptIF(void) { break; case 4: - OPTOSW2 = 0; - // Traitement des rltats IF1_idx++; diff --git a/elec/boards/Interface_Robot/Firmware/infrared.h b/elec/boards/Interface_Robot/Firmware/infrared.h index 11dadae..2a8897b 100644 --- a/elec/boards/Interface_Robot/Firmware/infrared.h +++ b/elec/boards/Interface_Robot/Firmware/infrared.h @@ -9,8 +9,8 @@ #include "error.h" // Parames graux -#define IF_AVR0 10 -#define IF_AVR1 10 +#define IF_AVR0 1 +#define IF_AVR1 1 // Entr / sorties #define OPTOSW1 PORTDbits.RD0 hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-09 21:35:16
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 6641c373d1d83375e9beb62bc56987533f89a32a (commit) from bc4bb4d72adf50b771323b7d2ce8d32908d41a76 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 6641c373d1d83375e9beb62bc56987533f89a32a Author: Jérémie Dimino <je...@di...> Date: Sun May 9 23:32:47 2010 +0200 compute a medium value in the infrared recorder ----------------------------------------------------------------------- Changes: diff --git a/info/control/clients/record_infrared.ml b/info/control/clients/record_infrared.ml index f850fe5..c95081e 100644 --- a/info/control/clients/record_infrared.ml +++ b/info/control/clients/record_infrared.ml @@ -14,6 +14,18 @@ open Lwt_io let step = 10 +let measure_infrareds krobot infrareds = + let rec loop acc1 acc2 = function + | 0 -> + return (acc1 / 20, acc2 / 20) + | n -> + let i1, i2 = React.S.value infrareds in + let acc1 = acc1 + i1 and acc2 = acc2 + i2 in + lwt () = Lwt_unix.sleep 0.05 in + loop acc1 acc2 (n - 1) + in + loop 0 0 20 + lwt () = lwt () = printl "type Ctrl+C to stop" in lwt krobot = Krobot.create () in @@ -21,7 +33,7 @@ lwt () = let oc = Lwt_io.open_file ~mode:Lwt_io.output "infrareds-record" in let rec loop dist = lwt () = Lwt_unix.sleep 1.0 in - let i1, i2 = React.S.value infrareds in + lwt i1, i2 = measure_infrareds krobot infrareds in lwt () = printlf "at distance %d mm: i1 = %d, i2 = %d" dist i1 i2 in lwt () = fprintlf oc "%d %d %d" dist i1 i2 in lwt () = Lwt_io.flush oc in hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-09 17:48:23
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via bc4bb4d72adf50b771323b7d2ce8d32908d41a76 (commit) from ba76d82676dc69f2b4d19d4ebb879c01cf839090 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit bc4bb4d72adf50b771323b7d2ce8d32908d41a76 Author: Jérémie Dimino <je...@di...> Date: Sun May 9 19:47:56 2010 +0200 fix a race condition in the controller ----------------------------------------------------------------------- Changes: diff --git a/info/control/clients/controller.ml b/info/control/clients/controller.ml index 13a7d93..5e7d435 100644 --- a/info/control/clients/controller.ml +++ b/info/control/clients/controller.ml @@ -509,28 +509,32 @@ lwt () = with exn -> Lwt_log.error_f ~exn "cannot monitor property" in - Lwt_signal.always_notify_s - (function - | true -> - join [ - notify_property (Krobot.Compass.measure krobot); - notify_property (Krobot.Logic_sensors.states krobot); - notify_property (Krobot.Range_finders.measures krobot); - notify_property (Krobot.Motors.inhibit_forward_until krobot); - notify_property (Krobot.Motors.inhibit_backward_until krobot); - notify_property (Krobot.Card.state krobot `Interface); - notify_property (Krobot.Card.state krobot `Sensor); - notify_property (Krobot.Card.state krobot `Motor); - notify_property (Krobot.Card.state krobot `Monitoring); - notify_property (Krobot.devices_status krobot); - notify_property (Krobot.Infrared.states krobot); - notify_property (Krobot.Power.current krobot); - ] - | false -> - List.iter Lwt_signal.disable !notifiers; - notifiers := []; - return ()) - (React.S.map (fun services -> List.mem "Driver" services) services); + ignore ( + lwt () = Lwt_unix.yield () in + Lwt_signal.always_notify_s + (function + | true -> + join [ + notify_property (Krobot.Compass.measure krobot); + notify_property (Krobot.Logic_sensors.states krobot); + notify_property (Krobot.Range_finders.measures krobot); + notify_property (Krobot.Motors.inhibit_forward_until krobot); + notify_property (Krobot.Motors.inhibit_backward_until krobot); + notify_property (Krobot.Card.state krobot `Interface); + notify_property (Krobot.Card.state krobot `Sensor); + notify_property (Krobot.Card.state krobot `Motor); + notify_property (Krobot.Card.state krobot `Monitoring); + notify_property (Krobot.devices_status krobot); + notify_property (Krobot.Infrared.states krobot); + notify_property (Krobot.Power.current krobot); + ] + | false -> + List.iter Lwt_signal.disable !notifiers; + notifiers := []; + return ()) + (React.S.map (fun services -> List.mem "Driver" services) services); + return () + ); List.iter (fun card -> hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-09 17:13:55
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via ba76d82676dc69f2b4d19d4ebb879c01cf839090 (commit) from 52b5193323033b0809ef32a3a4dcd1c5eeda496f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ba76d82676dc69f2b4d19d4ebb879c01cf839090 Author: Jérémie Dimino <je...@di...> Date: Sun May 9 19:13:16 2010 +0200 add a test which compute an average value for the infrared sensors ----------------------------------------------------------------------- Changes: diff --git a/info/control/myocamlbuild.ml b/info/control/myocamlbuild.ml index e436a62..4efa331 100644 --- a/info/control/myocamlbuild.ml +++ b/info/control/myocamlbuild.ml @@ -86,6 +86,7 @@ let targets = List.filter_opt (function (true, target) -> Some target | (false, (have_lwt_unix && have_obus, "tests/trajectories.best"); (have_lwt_unix && have_obus, "tests/move.best"); (have_lwt_unix && have_obus, "tests/scan_infrared.best"); + (have_lwt_unix && have_obus, "tests/infrared.best"); ] (* +-----------------------------------------------------------------+ diff --git a/info/control/tests/infrared.ml b/info/control/tests/infrared.ml new file mode 100644 index 0000000..8b3a8f2 --- /dev/null +++ b/info/control/tests/infrared.ml @@ -0,0 +1,22 @@ +(* + * infrared.ml + * ----------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +open Lwt + +lwt () = + lwt krobot = Krobot.create () in + lwt infrareds = OBus_property.monitor (Krobot.Infrared.states krobot) in + let rec loop acc1 acc2 n = + let i1, i2 = React.S.value infrareds in + let acc1 = acc1 + i1 and acc2 = acc2 + i2 in + lwt () = Lwt_io.printlf "%d %d" (acc1 / n) (acc2 / n) in + lwt () = Lwt_unix.sleep 0.05 in + loop acc1 acc2 (n + 1) + in + loop 0 0 1 hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-09 16:39:17
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 52b5193323033b0809ef32a3a4dcd1c5eeda496f (commit) from 32305d14f1b6e3b39f5641e3a84fe452666eb6c0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 52b5193323033b0809ef32a3a4dcd1c5eeda496f Author: Jérémie Dimino <je...@di...> Date: Sun May 9 18:38:45 2010 +0200 add a program to record value measured by the infrared sensors ----------------------------------------------------------------------- Changes: diff --git a/info/control/Makefile b/info/control/Makefile index 55734c8..d0e971f 100644 --- a/info/control/Makefile +++ b/info/control/Makefile @@ -42,6 +42,8 @@ install: install -m 0755 _build/driver/driver.best $(PREFIX)/bin/krobot-driver install -m 0755 _build/clients/ax12_control.best $(PREFIX)/bin/krobot-ax12 install -m 0755 _build/clients/check.best $(PREFIX)/bin/krobot-check + install -m 0755 _build/clients/check.best $(PREFIX)/bin/krobot-check + install -m 0755 _build/clients/record_infrared.best $(PREFIX)/bin/krobot-record-infrared .PHONY: uninstall uninstall: diff --git a/info/control/clients/record_infrared.ml b/info/control/clients/record_infrared.ml new file mode 100644 index 0000000..f850fe5 --- /dev/null +++ b/info/control/clients/record_infrared.ml @@ -0,0 +1,31 @@ +(* + * record_infrared.ml + * ------------------ + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +(* Record measures of the infrared sensors at each centimerters *) + +open Lwt +open Lwt_io + +let step = 10 + +lwt () = + lwt () = printl "type Ctrl+C to stop" in + lwt krobot = Krobot.create () in + lwt infrareds = OBus_property.monitor (Krobot.Infrared.states krobot) in + let oc = Lwt_io.open_file ~mode:Lwt_io.output "infrareds-record" in + let rec loop dist = + lwt () = Lwt_unix.sleep 1.0 in + let i1, i2 = React.S.value infrareds in + lwt () = printlf "at distance %d mm: i1 = %d, i2 = %d" dist i1 i2 in + lwt () = fprintlf oc "%d %d %d" dist i1 i2 in + lwt () = Lwt_io.flush oc in + lwt _ = Krobot.Motors.move krobot ~distance:(-step) ~velocity:200 ~acceleration:400 in + loop (dist + step) + in + loop 0 diff --git a/info/control/myocamlbuild.ml b/info/control/myocamlbuild.ml index f9dce15..e436a62 100644 --- a/info/control/myocamlbuild.ml +++ b/info/control/myocamlbuild.ml @@ -75,6 +75,7 @@ let targets = List.filter_opt (function (true, target) -> Some target | (false, (have_lwt_unix && have_obus && have_sdl, "clients/joy_control.best"); (have_lwt_unix && have_obus && have_lwt_text, "clients/ax12_control.best"); (have_lwt_unix && have_obus && have_lwt_text, "clients/check.best"); + (have_lwt_unix && have_obus, "clients/record_infrared.best"); (* Services *) (have_lwt_unix && have_obus, "services/hard_stop.best"); hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-09 16:02:14
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 32305d14f1b6e3b39f5641e3a84fe452666eb6c0 (commit) via 0927b83a2a2326fb5a54fbba5990a67761b59aab (commit) via 5f13c2909df77c032ae09c65822b00f58b457f8c (commit) via 495382eb3d762fa1b48a9a94a24a18e56f8011a9 (commit) via da74a25ae06c5de0fef21380a06409f99debe82d (commit) from 9b55fdc6db731cc9f59d67253373f8a5c210e93f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 32305d14f1b6e3b39f5641e3a84fe452666eb6c0 Author: Jérémie Dimino <je...@di...> Date: Sun May 9 18:01:36 2010 +0200 make check more verbose commit 0927b83a2a2326fb5a54fbba5990a67761b59aab Author: Jérémie Dimino <je...@di...> Date: Sun May 9 17:57:25 2010 +0200 Fix reply for Go* methods commit 5f13c2909df77c032ae09c65822b00f58b457f8c Author: Jérémie Dimino <je...@di...> Date: Sun May 9 17:42:53 2010 +0200 AX12_GOTO does not returns a reply commit 495382eb3d762fa1b48a9a94a24a18e56f8011a9 Author: Jérémie Dimino <je...@di...> Date: Sun May 9 17:39:46 2010 +0200 use goto instead of set_ax12 for moving the infrared sensors commit da74a25ae06c5de0fef21380a06409f99debe82d Author: Jérémie Dimino <je...@di...> Date: Sun May 9 17:06:21 2010 +0200 reorganize lib-krobot/Krobot into sub-modules + add commands for the ax12 of the infrared sensors ----------------------------------------------------------------------- Changes: diff --git a/info/control/_tags b/info/control/_tags index 6cd01b3..303b53b 100644 --- a/info/control/_tags +++ b/info/control/_tags @@ -30,6 +30,7 @@ <clients/controller.*>: pkg_lwt.text <clients/script{.*,_lexer.*}>: pkg_text <clients/ax12_control.*>: pkg_lwt.text +<clients/check.*>: pkg_lwt.text # +------------------------------------------------------------------+ # | Services | diff --git a/info/control/clients/check.ml b/info/control/clients/check.ml index ebea3d0..6a5f87b 100644 --- a/info/control/clients/check.ml +++ b/info/control/clients/check.ml @@ -9,27 +9,70 @@ open Lwt open Lwt_io +open Lwt_term + +let test name f = + lwt () = printlf "=[ testing %s ]%s" name (String.make (React.S.value columns - 13 - String.length name) '=') in + try_lwt + lwt () = f () in + printlf "test succeed" + with exn -> + printlc [fg lred; textf "test failed with: %s" (Printexc.to_string exn)] lwt () = lwt krobot = Krobot.create () in - lwt () = printl "testing the gate" in - lwt () = Krobot.Gate.enable krobot in - lwt () = Krobot.Gate.release krobot in - lwt () = Lwt_unix.sleep 0.5 in - lwt () = Krobot.Gate.close krobot in - lwt () = Lwt_unix.sleep 0.5 in - - lwt () = printl "testing the claws" in - lwt () = Krobot.claws_enable krobot in - lwt () = Krobot.claws_open krobot in - lwt () = Lwt_unix.sleep 0.5 in - lwt () = Krobot.claws_close krobot in - - lwt () = printl "testing the grip" in - lwt () = Krobot.grip_open krobot in - lwt () = Lwt_unix.sleep 1.0 in - lwt () = Krobot.grip_close krobot in - lwt () = Lwt_unix.sleep 1.0 in + lwt () = + test "gate" + (fun () -> + lwt () = Krobot.Gate.enable krobot in + lwt () = printl "opening the gate" in + lwt () = Krobot.Gate.release krobot in + lwt () = Lwt_unix.sleep 0.5 in + lwt () = printl "closing the gate" in + lwt () = Krobot.Gate.close krobot in + lwt () = Lwt_unix.sleep 0.5 in + return ()) + in + + lwt () = + test "claws" + (fun () -> + lwt () = Krobot.Claws.enable krobot in + lwt () = printl "opening the claws" in + lwt () = Krobot.Claws.open_ krobot in + lwt () = Lwt_unix.sleep 0.5 in + lwt () = printl "closing the claws" in + lwt () = Krobot.Claws.close krobot in + lwt () = Lwt_unix.sleep 0.5 in + return ()) + in + + lwt () = + test "grip" + (fun () -> + lwt () = printl "opening the grip" in + lwt () = Krobot.Grip.open_ krobot in + lwt () = Lwt_unix.sleep 1.0 in + lwt () = printl "closing the grip" in + lwt () = Krobot.Grip.close krobot in + lwt () = Lwt_unix.sleep 1.0 in + return ()) + in + + lwt () = + test "infrared" + (fun () -> + lwt () = printl "going to the left" in + lwt () = Krobot.Infrared.go_left krobot in + lwt () = Lwt_unix.sleep 1.5 in + lwt () = printl "going to the right" in + lwt () = Krobot.Infrared.go_right krobot in + lwt () = Lwt_unix.sleep 1.5 in + lwt () = printl "going to the center" in + lwt () = Krobot.Infrared.go_center krobot in + lwt () = Lwt_unix.sleep 1.0 in + return ()) + in return () diff --git a/info/control/clients/controller.ml b/info/control/clients/controller.ml index 4d90632..13a7d93 100644 --- a/info/control/clients/controller.ml +++ b/info/control/clients/controller.ml @@ -223,7 +223,7 @@ let draw krobot = lwt () = if driver && devices.Krobot.dev_range_finders then begin - lwt range_finders = OBus_property.get (Krobot.range_finders krobot) in + lwt range_finders = OBus_property.get (Krobot.Range_finders.measures krobot) in for i = 0 to 7 do Draw.textc zone 0 i [textf "%d : " i; text (Text.repeat (range_finders.(i) * 14 / 3146) "=")] done; @@ -238,7 +238,7 @@ let draw krobot = lwt () = if driver && devices.Krobot.dev_logic_sensors then begin - lwt logic_sensors = OBus_property.get (Krobot.logic_sensors krobot) in + lwt logic_sensors = OBus_property.get (Krobot.Logic_sensors.states krobot) in for i = 0 to 7 do let j = i * 2 in Draw.textf zone 20 i "%02d : %s %02d : %s" @@ -291,7 +291,7 @@ let draw krobot = let x = x + 12 in lwt () = if driver && devices.Krobot.dev_compass then begin - lwt compass = OBus_property.get (Krobot.compass krobot) in + lwt compass = OBus_property.get (Krobot.Compass.measure krobot) in Draw.textf zone x 2 "compass = %d" compass; return () end else begin @@ -308,8 +308,8 @@ let draw krobot = in lwt () = if driver && devices.Krobot.dev_motor then begin - lwt forward = OBus_property.get (Krobot.inhibit_forward_until krobot) - and backward = OBus_property.get (Krobot.inhibit_backward_until krobot) in + lwt forward = OBus_property.get (Krobot.Motors.inhibit_forward_until krobot) + and backward = OBus_property.get (Krobot.Motors.inhibit_backward_until krobot) in Draw.textc zone x 3 (text_of_motor_state "move forward: " forward); Draw.textc zone x 4 (text_of_motor_state "move backward: " backward); return () @@ -322,7 +322,7 @@ let draw krobot = in lwt () = if driver && devices.Krobot.dev_infrared then begin - lwt i1, i2 = OBus_property.get (Krobot.infrared_states krobot) in + lwt i1, i2 = OBus_property.get (Krobot.Infrared.states krobot) in Draw.textc zone x 5 [textf "infrared 1: %d" i1]; Draw.textc zone x 6 [textf "infrared 2: %d" i2]; return () @@ -335,7 +335,7 @@ let draw krobot = in lwt () = if driver && devices.Krobot.dev_power then begin - lwt current = OBus_property.get (Krobot.current_voltage krobot) in + lwt current = OBus_property.get (Krobot.Power.current krobot) in Draw.textc zone x 7 [textf "current: %d mA" current]; return () end else begin @@ -513,18 +513,18 @@ lwt () = (function | true -> join [ - notify_property (Krobot.compass krobot); - notify_property (Krobot.logic_sensors krobot); - notify_property (Krobot.range_finders krobot); - notify_property (Krobot.inhibit_forward_until krobot); - notify_property (Krobot.inhibit_backward_until krobot); + notify_property (Krobot.Compass.measure krobot); + notify_property (Krobot.Logic_sensors.states krobot); + notify_property (Krobot.Range_finders.measures krobot); + notify_property (Krobot.Motors.inhibit_forward_until krobot); + notify_property (Krobot.Motors.inhibit_backward_until krobot); notify_property (Krobot.Card.state krobot `Interface); notify_property (Krobot.Card.state krobot `Sensor); notify_property (Krobot.Card.state krobot `Motor); notify_property (Krobot.Card.state krobot `Monitoring); notify_property (Krobot.devices_status krobot); - notify_property (Krobot.infrared_states krobot); - notify_property (Krobot.current_voltage krobot); + notify_property (Krobot.Infrared.states krobot); + notify_property (Krobot.Power.current krobot); ] | false -> List.iter Lwt_signal.disable !notifiers; diff --git a/info/control/clients/init_position.ml b/info/control/clients/init_position.ml index 16aa2e0..e8870ee 100644 --- a/info/control/clients/init_position.ml +++ b/info/control/clients/init_position.ml @@ -13,7 +13,7 @@ open Lwt let move_backward_slowly krobot = lwt () = Lwt_log.notice "moving backward" in - Krobot.move krobot ~distance:(-1000) ~velocity:100 ~acceleration:100 >>= function + Krobot.Motors.move krobot ~distance:(-1000) ~velocity:100 ~acceleration:100 >>= function | `OK -> lwt () = Lwt_log.error "where am i ???" in exit 1 @@ -26,16 +26,16 @@ lwt () = lwt () = move_backward_slowly krobot in lwt () = Lwt_log.notice "going to initial position on first axis" in - lwt _ = Krobot.move krobot ~distance:Config.initial_position ~velocity:400 ~acceleration:800 in + lwt _ = Krobot.Motors.move krobot ~distance:Config.initial_position ~velocity:400 ~acceleration:800 in lwt () = Lwt_log.notice "turning" in - lwt _ = Krobot.turn krobot ~angle:(-90) ~velocity:400 ~acceleration:800 in + lwt _ = Krobot.Motors.turn krobot ~angle:(-90) ~velocity:400 ~acceleration:800 in lwt () = move_backward_slowly krobot in lwt () = Lwt_log.notice "going to initial position on second axis" in - lwt _ = Krobot.move krobot ~distance:Config.initial_position ~velocity:400 ~acceleration:800 in + lwt _ = Krobot.Motors.move krobot ~distance:Config.initial_position ~velocity:400 ~acceleration:800 in lwt () = Lwt_log.notice "turning" in - lwt _ = Krobot.turn krobot ~angle:45 ~velocity:400 ~acceleration:800 in + lwt _ = Krobot.Motors.turn krobot ~angle:45 ~velocity:400 ~acceleration:800 in return () diff --git a/info/control/clients/joy_control.ml b/info/control/clients/joy_control.ml index e903844..0bf7de7 100644 --- a/info/control/clients/joy_control.ml +++ b/info/control/clients/joy_control.ml @@ -141,7 +141,7 @@ let rec set_velocities krobot velocities = lwt () = try_call "set-velocities" (fun () -> - Krobot.set_velocities krobot ~velocities ~accelerations ~duration) + Krobot.Motors.set_velocities krobot ~velocities ~accelerations ~duration) in if velocities = (0, 0) then return () @@ -188,7 +188,7 @@ let parent_loop krobot pipe = | JoyButtonPressed ButtonSquare -> stop := true; cancel !thread; - lwt () = try_call "stop-motors" (fun () -> Krobot.stop_motors krobot ~mode:`Abrupt) in + lwt () = try_call "stop-motors" (fun () -> Krobot.Motors.stop krobot ~mode:`Abrupt) in loop () | JoyButtonReleased ButtonSquare -> stop := false; diff --git a/info/control/clients/script.ml b/info/control/clients/script.ml index cd5e65a..d78724a 100644 --- a/info/control/clients/script.ml +++ b/info/control/clients/script.ml @@ -332,16 +332,16 @@ let () = register "forward" (f3 distance velocity acceleration) (fun logger krobot distance velocity acceleration -> - Krobot.move krobot distance velocity acceleration >>= move_result logger); + Krobot.Motors.move krobot distance velocity acceleration >>= move_result logger); register "backward" (f3 distance velocity acceleration) (fun logger krobot distance velocity acceleration -> - Krobot.move krobot (-distance) velocity acceleration >>= move_result logger); + Krobot.Motors.move krobot (-distance) velocity acceleration >>= move_result logger); register "left" (f3 angle velocity acceleration) (fun logger krobot angle velocity acceleration -> - Krobot.turn krobot angle velocity acceleration >>= move_result logger); + Krobot.Motors.turn krobot angle velocity acceleration >>= move_result logger); register "right" (f3 angle velocity acceleration) (fun logger krobot angle velocity acceleration -> - Krobot.turn krobot (-angle) velocity acceleration >>= move_result logger); + Krobot.Motors.turn krobot (-angle) velocity acceleration >>= move_result logger); register"goto" (f6 (int ~default:0 "x") (int ~default:0 "y") velocity acceleration @@ -350,7 +350,7 @@ let () = ("curve-right", `Curve_right)]) (int ~default:0 "bypass-distance")) (fun logger krobot x y velocity acceleration mode bypass -> - Krobot.goto krobot x y velocity acceleration mode bypass >>= move_result logger); + Krobot.Motors.goto krobot x y velocity acceleration mode bypass >>= move_result logger); (* +---------------------------------------------------------------+ | Motors low-level conrol | @@ -364,14 +364,14 @@ let () = register "motors-state" f0 (fun logger krobot -> - lwt state = OBus_property.get (Krobot.motors_state krobot) in + lwt state = OBus_property.get (Krobot.Motors.state krobot) in logger [text "motors state: "; text state]); register "stop-motors" (f1 stop_mode) (fun logger krobot mode -> - Krobot.stop_motors krobot ~mode); + Krobot.Motors.stop krobot ~mode); register "set-velocities" (f5 (velocity "-left") (velocity "-right") (acceleration "-left") (acceleration "-right") duration) (fun logger krobot velocity_left velocity_right acceleration_left acceleration_right duration -> - Krobot.set_velocities krobot + Krobot.Motors.set_velocities krobot ~velocities:(velocity_left, velocity_right) ~accelerations:(acceleration_left, acceleration_right) ~duration); @@ -398,7 +398,7 @@ let () = register ~path:["calibration"] "get" f0 (fun logger krobot -> - lwt cals = Lwt_list.map_p (Krobot.get_calibration krobot) [0; 1; 2; 3; 4; 5; 6; 7] in + lwt cals = Lwt_list.map_p (Krobot.Range_finders.get_calibration krobot) [0; 1; 2; 3; 4; 5; 6; 7] in let rec loop i = function | [] -> return () @@ -414,11 +414,11 @@ let () = loop 0 cals); register ~path:["calibration"] "start" (f2 (int "range-finder") (keyword "skip-meas" [("true", true); ("false", false)])) - (fun logger -> Krobot.calibration_start); + (fun logger -> Krobot.Range_finders.calibration_start); register ~path:["calibration"] "stop" f0 - (fun logger -> Krobot.calibration_stop); + (fun logger -> Krobot.Range_finders.calibration_stop); register ~path:["calibration"] "continue" f0 - (fun logger -> Krobot.calibration_continue); + (fun logger -> Krobot.Range_finders.calibration_continue); (* +---------------------------------------------------------------+ | AX12 | @@ -473,19 +473,19 @@ let () = register ~path:["grip"] "up" f0 (fun logger krobot -> - Krobot.grip_up krobot); + Krobot.Grip.up krobot); register ~path:["grip"] "down" f0 (fun logger krobot -> - Krobot.grip_down krobot); + Krobot.Grip.down krobot); register ~path:["grip"] "open" f0 (fun logger krobot -> - Krobot.grip_open krobot); + Krobot.Grip.open_ krobot); register ~path:["grip"] "close" f0 (fun logger krobot -> - Krobot.grip_close krobot); + Krobot.Grip.close krobot); register ~path:["grip"] "release" f0 (fun logger krobot -> - Krobot.grip_release krobot); + Krobot.Grip.release krobot); (* +---------------------------------------------------------------+ | Claws | @@ -493,19 +493,19 @@ let () = register ~path:["claws"] "open" f0 (fun logger krobot -> - Krobot.claws_open krobot); + Krobot.Claws.open_ krobot); register ~path:["claws"] "close" f0 (fun logger krobot -> - Krobot.claws_close krobot); + Krobot.Claws.close krobot); register ~path:["claws"] "enable" f0 (fun logger krobot -> - Krobot.claws_enable krobot); + Krobot.Claws.enable krobot); register ~path:["claws"] "disable" f0 (fun logger krobot -> - Krobot.claws_disable krobot); + Krobot.Claws.disable krobot); register ~path:["claws"] "take" f0 (fun logger krobot -> - Krobot.claws_take krobot); + Krobot.Claws.take krobot); (* +---------------------------------------------------------------+ | Gate | @@ -536,7 +536,21 @@ let () = register ~path:["power"] "set-buzzer-state" (f1 (keyword "state" [("true", true); ("false", false)])) (fun logger krobot state -> - Krobot.set_buzzer_state krobot state) + Krobot.Power.set_buzzer_state krobot state); + + (* +---------------------------------------------------------------+ + | Infrared sensors | + +---------------------------------------------------------------+ *) + + register ~path:["infrared"] "left" f0 + (fun logger krobot -> + Krobot.Infrared.go_left krobot); + register ~path:["infrared"] "right" f0 + (fun logger krobot -> + Krobot.Infrared.go_right krobot); + register ~path:["infrared"] "center" f0 + (fun logger krobot -> + Krobot.Infrared.go_center krobot) (* +-----------------------------------------------------------------+ | Unsafe commands | diff --git a/info/control/driver/driver.ml b/info/control/driver/driver.ml index b48af48..a2bf6d9 100644 --- a/info/control/driver/driver.ml +++ b/info/control/driver/driver.ml @@ -158,31 +158,6 @@ struct }] end - -(* +-----------------------------------------------------------------+ - | Infrared | - +-----------------------------------------------------------------+ *) - -module Infrared = -struct - include Service(struct let name = "Infrared" end) - - open Krobot_interfaces.Fr_krobot_Device_Infrared - - let states = - poll card (0, 0) - (fun card -> - lwt ar = USBCard.call Commands.Infrared.get_state card () in - return (ar.(0), ar.(1))) - - let () = - OBus_object.add_interfaces obus - [make ~notify_mode - { - p_States = (fun () -> React.S.map (fun (i1, i2) -> (Int32.of_int i1, Int32.of_int i2)) states); - }] -end - (* +-----------------------------------------------------------------+ | Compass | +-----------------------------------------------------------------+ *) @@ -386,19 +361,6 @@ struct OBus_object.add_interfaces obus [make ~notify_mode { - m_SetAX12 = ( - fun ctx () positions -> - let positions = - List.map - (fun (x1, x2, x3) -> - { aa_id = Int32.to_int x1; - aa_position = Int32.to_int x2; - aa_velocity = Int32.to_int x3 }) - positions - in - lwt () = set_ax12 positions in - OBus_method.return ctx () - ); m_GripUp = ( fun ctx obj () -> lwt result = grip_up obj in @@ -428,6 +390,54 @@ struct end (* +-----------------------------------------------------------------+ + | Infrared | + +-----------------------------------------------------------------+ *) + +module Infrared = +struct + include Service(struct let name = "Infrared" end) + + open Krobot_interfaces.Fr_krobot_Device_Infrared + + let states = + poll card (0, 0) + (fun card -> + lwt ar = USBCard.call Commands.Infrared.get_state card () in + return (ar.(0), ar.(1))) + + let go_left () = + USBCard.call Commands.AX12.goto (get_card card_interface) (1, 750, 200, `Now) + + let go_right () = + USBCard.call Commands.AX12.goto (get_card card_interface) (1, 250, 200, `Now) + + let go_center () = + USBCard.call Commands.AX12.goto (get_card card_interface) (1, 550, 200, `Now) + + let () = + OBus_object.add_interfaces obus + [make ~notify_mode + { + p_States = (fun () -> React.S.map (fun (i1, i2) -> (Int32.of_int i1, Int32.of_int i2)) states); + m_GoLeft = ( + fun ctx () () -> + lwt () = go_left () in + OBus_method.return ctx () + ); + m_GoRight = ( + fun ctx () () -> + lwt () = go_right () in + OBus_method.return ctx () + ); + m_GoCenter = ( + fun ctx () () -> + lwt () = go_center () in + OBus_method.return ctx () + ); + }] +end + +(* +-----------------------------------------------------------------+ | Logic sensors | +-----------------------------------------------------------------+ *) diff --git a/info/control/lib-krobot/krobot.ml b/info/control/lib-krobot/krobot.ml index 9170d97..851a0ce 100644 --- a/info/control/lib-krobot/krobot.ml +++ b/info/control/lib-krobot/krobot.ml @@ -24,8 +24,6 @@ include OBus_peer.Private type team = Team_red | Team_green -type card = [ `Interface | `Sensor | `Motor | `Monitoring ] - let card krobot card = OBus_proxy.make krobot ["fr"; "krobot"; "Cards"; (match card with @@ -66,39 +64,42 @@ let devices_status krobot = (OBus_proxy.make krobot ["fr"; "krobot"; "Manager"])) (* +-----------------------------------------------------------------+ - | Reactive signals | + | Infrared | +-----------------------------------------------------------------+ *) -(* -let team krobot = - React.S.map (fun ls -> if ls.(14) then Team_red else Team_green) krobot.logic_sensors +module Infrared = +struct + open Krobot_interfaces.Fr_krobot_Device_Infrared -let jack krobot = - React.S.map (fun ls -> ls.(15)) krobot.logic_sensors -*) + let states krobot = + OBus_property.map_r + (fun (i1, i2) -> (Int32.to_int i1, Int32.to_int i2)) + (OBus_property.make ~notify_mode p_States (device krobot "Infrared")) -(* +-----------------------------------------------------------------+ - | Infrared | - +-----------------------------------------------------------------+ *) + let go_left krobot = + OBus_method.call m_GoLeft (device krobot "Infrared") () -open Krobot_interfaces.Fr_krobot_Device_Infrared + let go_right krobot = + OBus_method.call m_GoRight (device krobot "Infrared") () -let infrared_states krobot = - OBus_property.map_r - (fun (i1, i2) -> (Int32.to_int i1, Int32.to_int i2)) - (OBus_property.make ~notify_mode p_States (device krobot "Infrared")) + let go_center krobot = + OBus_method.call m_GoCenter (device krobot "Infrared") () +end (* +-----------------------------------------------------------------+ | Power | +-----------------------------------------------------------------+ *) -open Krobot_interfaces.Fr_krobot_Device_Power +module Power = +struct + open Krobot_interfaces.Fr_krobot_Device_Power -let set_buzzer_state krobot state = - OBus_method.call m_SetBuzzerState (device krobot "Power") state + let set_buzzer_state krobot state = + OBus_method.call m_SetBuzzerState (device krobot "Power") state -let current_voltage krobot = - OBus_property.map_r Int32.to_int (OBus_property.make ~notify_mode p_Current (device krobot "Power")) + let current krobot = + OBus_property.map_r Int32.to_int (OBus_property.make ~notify_mode p_Current (device krobot "Power")) +end (* +-----------------------------------------------------------------+ | Gate | @@ -131,158 +132,171 @@ end | Compass | +-----------------------------------------------------------------+ *) -open Krobot_interfaces.Fr_krobot_Device_Compass +module Compass = +struct + open Krobot_interfaces.Fr_krobot_Device_Compass -let compass krobot = - OBus_property.map_r Int32.to_int (OBus_property.make p_Value ~notify_mode (device krobot "Compass")) + let measure krobot = + OBus_property.map_r Int32.to_int (OBus_property.make p_Value ~notify_mode (device krobot "Compass")) +end (* +-----------------------------------------------------------------+ | Logic sensors | +-----------------------------------------------------------------+ *) -open Krobot_interfaces.Fr_krobot_Device_LogicSensors +module Logic_sensors = +struct + open Krobot_interfaces.Fr_krobot_Device_LogicSensors -let logic_sensors krobot = - OBus_property.map_r - Array.of_list - (OBus_property.make p_Value ~notify_mode (device krobot "LogicSensors")) + let states krobot = + OBus_property.map_r + Array.of_list + (OBus_property.make p_Value ~notify_mode (device krobot "LogicSensors")) +end (* +-----------------------------------------------------------------+ | LCD | +-----------------------------------------------------------------+ *) -open Krobot_interfaces.Fr_krobot_Device_LCD +module LCD = +struct + open Krobot_interfaces.Fr_krobot_Device_LCD -let set_lcd krobot lines = - OBus_method.call m_SetLCD (device krobot "LCD") lines + let set krobot lines = + OBus_method.call m_SetLCD (device krobot "LCD") lines -let backlight_on krobot = - OBus_method.call m_BacklightOn (device krobot "LCD") () + let backlight_on krobot = + OBus_method.call m_BacklightOn (device krobot "LCD") () -let backlight_off krobot = - OBus_method.call m_BacklightOff (device krobot "LCD") () + let backlight_off krobot = + OBus_method.call m_BacklightOff (device krobot "LCD") () +end (* +-----------------------------------------------------------------+ | Range finders | +-----------------------------------------------------------------+ *) -open Krobot_interfaces.Fr_krobot_Device_RangeFinders +module Range_finders = +struct + open Krobot_interfaces.Fr_krobot_Device_RangeFinders -let range_finders krobot = - OBus_property.map_r - (fun l -> Array.of_list (List.map Int32.to_int l)) - (OBus_property.make p_Value ~notify_mode (device krobot "RangeFinders")) + let measures krobot = + OBus_property.map_r + (fun l -> Array.of_list (List.map Int32.to_int l)) + (OBus_property.make p_Value ~notify_mode (device krobot "RangeFinders")) -let get_calibration krobot id = - lwt l = OBus_method.call m_GetCalibration (device krobot "RangeFinders") (Int32.of_int id) in - return (Array.of_list (List.map Int32.to_int l)) + let get_calibration krobot id = + lwt l = OBus_method.call m_GetCalibration (device krobot "RangeFinders") (Int32.of_int id) in + return (Array.of_list (List.map Int32.to_int l)) -let calibration_start krobot id skip_meas = - OBus_method.call m_CalibrationStart (device krobot "RangeFinders") (Int32.of_int id, skip_meas) + let calibration_start krobot id skip_meas = + OBus_method.call m_CalibrationStart (device krobot "RangeFinders") (Int32.of_int id, skip_meas) -let calibration_stop krobot = - OBus_method.call m_CalibrationStop (device krobot "RangeFinders") () + let calibration_stop krobot = + OBus_method.call m_CalibrationStop (device krobot "RangeFinders") () -let calibration_continue krobot = - OBus_method.call m_CalibrationContinue (device krobot "RangeFinders") () + let calibration_continue krobot = + OBus_method.call m_CalibrationContinue (device krobot "RangeFinders") () +end (* +-----------------------------------------------------------------+ - | AX12 | + | Grip | +-----------------------------------------------------------------+ *) -open Krobot_interfaces.Fr_krobot_Device_AX12 - -let set_ax12 krobot actions = - OBus_method.call m_SetAX12 (device krobot "AX12") - (List.map - (fun aa -> (Int32.of_int aa.aa_id, - Int32.of_int aa.aa_position, - Int32.of_int aa.aa_velocity)) - actions) +module Grip = +struct + open Krobot_interfaces.Fr_krobot_Device_AX12 -let grip_up krobot = - OBus_method.call m_GripUp (device krobot "AX12") () + let up krobot = + OBus_method.call m_GripUp (device krobot "AX12") () -let grip_down krobot = - OBus_method.call m_GripDown (device krobot "AX12") () + let down krobot = + OBus_method.call m_GripDown (device krobot "AX12") () -let grip_open krobot = - OBus_method.call m_GripOpen (device krobot "AX12") () + let open_ krobot = + OBus_method.call m_GripOpen (device krobot "AX12") () -let grip_close krobot = - OBus_method.call m_GripClose (device krobot "AX12") () + let close krobot = + OBus_method.call m_GripClose (device krobot "AX12") () -let grip_release krobot = - OBus_method.call m_GripRelease (device krobot "AX12") () + let release krobot = + OBus_method.call m_GripRelease (device krobot "AX12") () +end (* +-----------------------------------------------------------------+ - | Servo | + | Claws | +-----------------------------------------------------------------+ *) -open Krobot_interfaces.Fr_krobot_Device_Servo +module Claws = +struct + open Krobot_interfaces.Fr_krobot_Device_Servo -let claws_enable krobot = - OBus_method.call m_ClawsEnable (device krobot "Servo") () + let enable krobot = + OBus_method.call m_ClawsEnable (device krobot "Servo") () -let claws_disable krobot = - OBus_method.call m_ClawsDisable (device krobot "Servo") () + let disable krobot = + OBus_method.call m_ClawsDisable (device krobot "Servo") () -let claws_open krobot = - OBus_method.call m_ClawsOpen (device krobot "Servo") () + let open_ krobot = + OBus_method.call m_ClawsOpen (device krobot "Servo") () -let claws_close krobot = - OBus_method.call m_ClawsClose (device krobot "Servo") () + let close krobot = + OBus_method.call m_ClawsClose (device krobot "Servo") () -let claws_take krobot = - OBus_method.call m_ClawsTake (device krobot "Servo") () + let take krobot = + OBus_method.call m_ClawsTake (device krobot "Servo") () +end (* +-----------------------------------------------------------------+ | Motors | +-----------------------------------------------------------------+ *) -open Krobot_interfaces.Fr_krobot_Device_Motors - -let turn krobot ~angle ~velocity ~acceleration = - OBus_method.call m_Turn (device krobot "Motors") - (Int32.of_int angle, - Int32.of_int velocity, - Int32.of_int acceleration) - >|= move_result_of_int32 - -let move krobot ~distance ~velocity ~acceleration = - OBus_method.call m_Move (device krobot "Motors") - (Int32.of_int distance, - Int32.of_int velocity, - Int32.of_int acceleration) - >|= move_result_of_int32 - -let goto krobot ~x ~y ~velocity ~acceleration ~mode ~bypass_distance = - OBus_method.call m_Goto (device krobot "Motors") - (Int32.of_int x, - Int32.of_int y, - Int32.of_int velocity, - Int32.of_int acceleration, - int32_of_goto_mode mode, - Int32.of_int bypass_distance) - >|= move_result_of_int32 - -let stop_motors krobot ~mode = - OBus_method.call m_StopMotors (device krobot "Motors") (int32_of_stop_mode mode) - -let set_velocities krobot ~velocities:(vl, vr) ~accelerations:(al, ar) ~duration = - OBus_method.call m_SetVelocities (device krobot "Motors") - (Int32.of_int vl, Int32.of_int al, - Int32.of_int vr, Int32.of_int ar, - duration) - -let inhibit_forward_until krobot = - OBus_property.make p_InhibitForwardUntil ~notify_mode (device krobot "Motors") - -let inhibit_backward_until krobot = - OBus_property.make p_InhibitBackwardUntil ~notify_mode (device krobot "Motors") - -let motors_state krobot = - OBus_property.make p_State ~notify_mode (device krobot "Motors") +module Motors = +struct + open Krobot_interfaces.Fr_krobot_Device_Motors + + let turn krobot ~angle ~velocity ~acceleration = + OBus_method.call m_Turn (device krobot "Motors") + (Int32.of_int angle, + Int32.of_int velocity, + Int32.of_int acceleration) + >|= move_result_of_int32 + + let move krobot ~distance ~velocity ~acceleration = + OBus_method.call m_Move (device krobot "Motors") + (Int32.of_int distance, + Int32.of_int velocity, + Int32.of_int acceleration) + >|= move_result_of_int32 + + let goto krobot ~x ~y ~velocity ~acceleration ~mode ~bypass_distance = + OBus_method.call m_Goto (device krobot "Motors") + (Int32.of_int x, + Int32.of_int y, + Int32.of_int velocity, + Int32.of_int acceleration, + int32_of_goto_mode mode, + Int32.of_int bypass_distance) + >|= move_result_of_int32 + + let stop krobot ~mode = + OBus_method.call m_StopMotors (device krobot "Motors") (int32_of_stop_mode mode) + + let set_velocities krobot ~velocities:(vl, vr) ~accelerations:(al, ar) ~duration = + OBus_method.call m_SetVelocities (device krobot "Motors") + (Int32.of_int vl, Int32.of_int al, + Int32.of_int vr, Int32.of_int ar, + duration) + + let inhibit_forward_until krobot = + OBus_property.make p_InhibitForwardUntil ~notify_mode (device krobot "Motors") + + let inhibit_backward_until krobot = + OBus_property.make p_InhibitBackwardUntil ~notify_mode (device krobot "Motors") + + let state krobot = + OBus_property.make p_State ~notify_mode (device krobot "Motors") +end (* +-----------------------------------------------------------------+ | Raw USB calls | @@ -338,6 +352,8 @@ module Card = struct open Krobot_interfaces.Fr_krobot_Card + type card = [ `Interface | `Sensor | `Motor | `Monitoring ] + let name = function | `Interface -> "interface" | `Sensor -> "sensor" diff --git a/info/control/lib-krobot/krobot.mli b/info/control/lib-krobot/krobot.mli index 9bc2768..f34db67 100644 --- a/info/control/lib-krobot/krobot.mli +++ b/info/control/lib-krobot/krobot.mli @@ -14,7 +14,7 @@ include OBus_peer.Private val create : unit -> t Lwt.t - (** [create ()] makes a Krobot valie *) + (** [create ()] makes a Krobot *) val bus : unit -> OBus_bus.t Lwt.t (** [bus ()] returns the bus used by the krobot. @@ -24,15 +24,6 @@ val bus : unit -> OBus_bus.t Lwt.t - otherwise it uses the local krobot bus *) -val device : t -> OBus_path.element -> OBus_proxy.t - (** [device name] returns a proxy for the given device *) - -type card = [ `Interface | `Sensor | `Motor | `Monitoring ] - (** Type of a card *) - -val card : t -> card -> OBus_proxy.t - (** [card name] returns a proxy for the given card *) - (** {6 Devices} *) type devices_status = { @@ -49,15 +40,22 @@ type devices_status = { val devices_status : t -> devices_status OBus_property.r (** List of services with their status *) -(** {6 Infrared} *) +module Infrared : sig + val states : t -> (int * int) OBus_property.r + (** Property holding the state of the infrared sensors *) -val infrared_states : t -> (int * int) OBus_property.r - -(** {6 Power} *) + val go_right : t -> unit Lwt.t + val go_left : t -> unit Lwt.t + val go_center : t -> unit Lwt.t +end -val set_buzzer_state : t -> bool -> unit Lwt.t +module Power : sig + val set_buzzer_state : t -> bool -> unit Lwt.t + (** Enables or disables the buzzer *) -val current_voltage : t -> int OBus_property.r + val current : t -> int OBus_property.r + (** Proeprty holding the current used by the robot *) +end (** {6 Gate} *) @@ -81,106 +79,95 @@ module Gate : sig (** Stop holding the gate *) end -(** {6 LCD} *) - -val set_lcd : t -> string list -> unit Lwt.t - (** [set_lcd lines] set the lines displayed on the LCD. [lines] may - contains at most 4 lines, of maximum length 20. *) - -val backlight_on : t -> unit Lwt.t - (** Turn on the LCD backlight *) - -val backlight_off : t -> unit Lwt.t - (** Turn off the LCD backlight *) - -(** {6 Compass} *) - -val compass : t -> int OBus_property.r - (** Signal holding the current value of the compass. *) - -(** {6 Logic sensors} *) - -val logic_sensors : t -> bool array OBus_property.r - (** Signal holding the current state of logic sensors. *) - -(** {6 Team/jack stuff} *) -(* -type team = Team_red | Team_green - -val team : t -> team OBus_property.r - (** Signal holding the state of the team button *) - -val jack : t -> bool OBus_property.r - (** Signal holding the status of the jack *) -*) -(** {6 Range finders} *) - -val range_finders : t -> int array OBus_property.r - (** Signal holding the current range finders state *) +module LCD : sig + val set : t -> string list -> unit Lwt.t + (** [set lines] set the lines displayed on the LCD. [lines] may + contains at most 4 lines, of maximum length 20. *) -val get_calibration : t -> int -> int array Lwt.t - (** [get_calibration krobot num] returns the calibration of the - given range finder. *) + val backlight_on : t -> unit Lwt.t + (** Turn on the LCD backlight *) -val calibration_start : t -> int -> bool -> unit Lwt.t -val calibration_continue : t -> unit Lwt.t -val calibration_stop : t -> unit Lwt.t - -(** {6 AX12s} *) - -val set_ax12 : t -> Types.ax12_action list -> unit Lwt.t - (** [set_ax12 krobot actions] move all given ax12 at the same - time. *) - -val grip_up : t -> unit Lwt.t -val grip_down : t -> unit Lwt.t -val grip_open : t -> unit Lwt.t -val grip_close : t -> unit Lwt.t -val grip_release : t -> unit Lwt.t - -(** {6 Servos} *) + val backlight_off : t -> unit Lwt.t + (** Turn off the LCD backlight *) +end -val claws_enable : t -> unit Lwt.t -val claws_disable : t -> unit Lwt.t -val claws_open : t -> unit Lwt.t -val claws_close : t -> unit Lwt.t -val claws_take : t -> unit Lwt.t +module Compass : sig + val measure : t -> int OBus_property.r + (** Signal holding the current value of the compass. *) +end -(** {6 Motors} *) +module Logic_sensors : sig + val states : t -> bool array OBus_property.r + (** Signal holding the current state of logic sensors. *) +end -val motors_state : t -> string OBus_property.r - (** String describing the current state of motors *) +module Range_finders : sig + val measures : t -> int array OBus_property.r + (** Signal holding the current range finders state *) -val turn : t -> angle : int -> velocity : int -> acceleration : int -> Types.move_result Lwt.t -val move : t -> distance : int -> velocity : int -> acceleration : int -> Types.move_result Lwt.t -val goto : t -> - x : int -> y : int -> - velocity : int -> - acceleration : int -> - mode : Types.goto_mode -> - bypass_distance : int -> Types.move_result Lwt.t + val get_calibration : t -> int -> int array Lwt.t + (** [get_calibration krobot num] returns the calibration of the + given range finder. *) -val stop_motors : t -> mode : Types.stop_mode -> unit Lwt.t - (** [stop_motorw t mode] stop the two motors. *) + val calibration_start : t -> int -> bool -> unit Lwt.t + val calibration_continue : t -> unit Lwt.t + val calibration_stop : t -> unit Lwt.t +end -val set_velocities : t -> - velocities : int * int -> - accelerations : int * int -> - duration : float -> unit Lwt.t - (** [set_velocities krobot ~velocities ~accelerations ~duration] set - the velocities of each motors, then wait for [duration] seconds - and stop the motors, unless [set_velocities] is called again - before. *) +module Grip : sig + val up : t -> unit Lwt.t + val down : t -> unit Lwt.t + val open_ : t -> unit Lwt.t + val close : t -> unit Lwt.t + val release : t -> unit Lwt.t +end -val inhibit_forward_until : t -> float OBus_property.rw - (** The date until which the robot is reallowed to move forward *) +module Claws : sig + val enable : t -> unit Lwt.t + val disable : t -> unit Lwt.t + val open_ : t -> unit Lwt.t + val close : t -> unit Lwt.t + val take : t -> unit Lwt.t +end -val inhibit_backward_until : t -> float OBus_property.rw +module Motors : sig + val state : t -> string OBus_property.r + (** String describing the current state of motors *) + + val turn : t -> angle : int -> velocity : int -> acceleration : int -> Types.move_result Lwt.t + val move : t -> distance : int -> velocity : int -> acceleration : int -> Types.move_result Lwt.t + val goto : t -> + x : int -> y : int -> + velocity : int -> + acceleration : int -> + mode : Types.goto_mode -> + bypass_distance : int -> Types.move_result Lwt.t + + val stop : t -> mode : Types.stop_mode -> unit Lwt.t + (** [stop_motorw t mode] stop the two motors. *) + + val set_velocities : t -> + velocities : int * int -> + accelerations : int * int -> + duration : float -> unit Lwt.t + (** [set_velocities krobot ~velocities ~accelerations ~duration] + set the velocities of each motors, then wait for [duration] + seconds and stop the motors, unless [set_velocities] is called + again before. *) + + val inhibit_forward_until : t -> float OBus_property.rw + (** The date until which the robot is reallowed to move forward *) + + val inhibit_backward_until : t -> float OBus_property.rw (** The date until which the robot is reallowed to move backward *) +end (** {6 Cards} *) module Card : sig + type card = [ `Interface | `Sensor | `Motor | `Monitoring ] + (** Type of a card *) + val name : card -> string (** Returns the name of a card *) diff --git a/info/control/myocamlbuild.ml b/info/control/myocamlbuild.ml index 82ccc6b..f9dce15 100644 --- a/info/control/myocamlbuild.ml +++ b/info/control/myocamlbuild.ml @@ -74,7 +74,7 @@ let targets = List.filter_opt (function (true, target) -> Some target | (false, (have_lwt_unix && have_obus && have_lwt_text, "clients/controller.best"); (have_lwt_unix && have_obus && have_sdl, "clients/joy_control.best"); (have_lwt_unix && have_obus && have_lwt_text, "clients/ax12_control.best"); - (have_lwt_unix && have_obus, "clients/check.best"); + (have_lwt_unix && have_obus && have_lwt_text, "clients/check.best"); (* Services *) (have_lwt_unix && have_obus, "services/hard_stop.best"); diff --git a/info/control/protocol/commands.ml b/info/control/protocol/commands.ml index 59577e1..1e9dc6a 100644 --- a/info/control/protocol/commands.ml +++ b/info/control/protocol/commands.ml @@ -169,7 +169,7 @@ struct let goto = register { name = "Goto"; - response = true; + response = false; command = PcInterface.cmd_ax12; request = Some PcInterface.ax12_goto; send = (arg4 diff --git a/info/control/protocol/krobot.obus b/info/control/protocol/krobot.obus index 7c3e775..9720c1e 100644 --- a/info/control/protocol/krobot.obus +++ b/info/control/protocol/krobot.obus @@ -23,6 +23,10 @@ interface "fr.krobot.Device.Power" { interface "fr.krobot.Device.Infrared" { property.r States : (int32 * int32) structure + + method GoLeft : () -> () + method GoRight : () -> () + method GoCenter : () -> () } interface "fr.krobot.Device.Gate" { @@ -80,7 +84,6 @@ interface "fr.krobot.Device.Servo" { } interface "fr.krobot.Device.AX12" { - method SetAX12 : (positions : (int32 * int32 * int32) structure array) -> () method GripUp : () -> () method GripDown : () -> () method GripOpen : () -> () diff --git a/info/control/services/hard_stop.ml b/info/control/services/hard_stop.ml index 9c4c623..27547c5 100644 --- a/info/control/services/hard_stop.ml +++ b/info/control/services/hard_stop.ml @@ -27,12 +27,12 @@ let handle_collide krobot sensors = join [ (if Util.front_collide sensors then begin lwt () = Lwt_log.notice "front collision detected, inhibit motors" in - OBus_property.set (Krobot.inhibit_forward_until krobot) duration + OBus_property.set (Krobot.Motors.inhibit_forward_until krobot) duration end else return ()); (if Util.back_collide sensors then begin lwt () = Lwt_log.notice "back collision detected, inhibit motors" in - OBus_property.set (Krobot.inhibit_backward_until krobot) duration + OBus_property.set (Krobot.Motors.inhibit_backward_until krobot) duration end else return ()); ] @@ -59,7 +59,7 @@ lwt () = lwt krobot = Krobot.create () in (* Stop motors as soon as possible: *) - lwt logic_sensors = OBus_property.monitor (Krobot.logic_sensors krobot) in + lwt logic_sensors = OBus_property.monitor (Krobot.Logic_sensors.states krobot) in Lwt_signal.always_notify_p (handle_collide krobot) logic_sensors; (* Continue the inhibition: *) diff --git a/info/control/tests/double_move.ml b/info/control/tests/double_move.ml index 005147c..05b18e8 100644 --- a/info/control/tests/double_move.ml +++ b/info/control/tests/double_move.ml @@ -16,10 +16,10 @@ let print_result = function lwt () = lwt krobot = Krobot.create () in print_endline "first move"; - lwt result = Krobot.move krobot ~distance:(-500) ~velocity:100 ~acceleration:200 in + lwt result = Krobot.Motors.move krobot ~distance:(-500) ~velocity:100 ~acceleration:200 in print_result result; print_endline "second move"; - lwt result = Krobot.move krobot ~distance:200 ~velocity:100 ~acceleration:200 in + lwt result = Krobot.Motors.move krobot ~distance:200 ~velocity:100 ~acceleration:200 in print_result result; print_endline "done"; return () diff --git a/info/control/tests/move.ml b/info/control/tests/move.ml index 47b4563..3bd0a09 100644 --- a/info/control/tests/move.ml +++ b/info/control/tests/move.ml @@ -37,12 +37,12 @@ let rec loop krobot state = | Some krobot -> lwt () = if angle <> 0 then - lwt _ = Krobot.turn krobot ~angle ~velocity ~acceleration in + lwt _ = Krobot.Motors.turn krobot ~angle ~velocity ~acceleration in return () else return () in - lwt _ = Krobot.move krobot ~distance ~velocity ~acceleration in + lwt _ = Krobot.Motors.move krobot ~distance ~velocity ~acceleration in return () | None -> return () diff --git a/info/control/tests/scan_infrared.ml b/info/control/tests/scan_infrared.ml index 574d130..03a0b45 100644 --- a/info/control/tests/scan_infrared.ml +++ b/info/control/tests/scan_infrared.ml @@ -18,22 +18,16 @@ let rec print krobot infrared = let delay = 1.5 -let action pos = { - Types.aa_id = 1; - Types.aa_position = pos; - Types.aa_velocity = 200; -} - lwt () = lwt krobot = Krobot.create () in let rec loop1 () = - lwt () = Krobot.set_ax12 krobot [action 250] in + lwt () = Krobot.Infrared.go_left krobot in lwt () = Lwt_unix.sleep delay in loop2 () and loop2 () = - lwt () = Krobot.set_ax12 krobot [action 750] in + lwt () = Krobot.Infrared.go_right krobot in lwt () = Lwt_unix.sleep delay in loop1 () in - lwt infrared = OBus_property.monitor (Krobot.infrared_states krobot) in + lwt infrared = OBus_property.monitor (Krobot.Infrared.states krobot) in join [loop1 (); print krobot infrared] diff --git a/info/control/tests/stop_and_restart.ml b/info/control/tests/stop_and_restart.ml index f04a368..ce35b12 100644 --- a/info/control/tests/stop_and_restart.ml +++ b/info/control/tests/stop_and_restart.ml @@ -12,12 +12,12 @@ open Lwt lwt () = lwt krobot = Krobot.create () in print_endline "moving forward"; - let t = Krobot.move krobot ~distance:1000 ~velocity:100 ~acceleration:200 in + let t = Krobot.Motors.move krobot ~distance:1000 ~velocity:100 ~acceleration:200 in lwt () = Lwt_unix.sleep 2.0 in print_endline "stopping motors"; - lwt () = Krobot.stop_motors krobot `Smooth in + lwt () = Krobot.Motors.stop krobot `Smooth in print_endline "waiting for trajectory to terminates"; lwt _ = t in print_endline "mobing backward"; - lwt _ = Krobot.move krobot ~distance:(-200) ~velocity:100 ~acceleration:200 in + lwt _ = Krobot.Motors.move krobot ~distance:(-200) ~velocity:100 ~acceleration:200 in return () diff --git a/info/control/tests/trajectories.ml b/info/control/tests/trajectories.ml index 9a2cd01..0e5a1c1 100644 --- a/info/control/tests/trajectories.ml +++ b/info/control/tests/trajectories.ml @@ -14,6 +14,6 @@ open Lwt lwt () = lwt krobot = Krobot.create () in - lwt _ = Krobot.move krobot 100 400 800 in - lwt _ = Krobot.move krobot 100 400 800 in + lwt _ = Krobot.Motors.move krobot 100 400 800 in + lwt _ = Krobot.Motors.move krobot 100 400 800 in return () hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-09 14:26:32
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 9b55fdc6db731cc9f59d67253373f8a5c210e93f (commit) from 63e15ec4612de69dd073fe0844d53db80e4cc4ee (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9b55fdc6db731cc9f59d67253373f8a5c210e93f Author: Jérémie Dimino <je...@di...> Date: Sun May 9 16:24:27 2010 +0200 automatically enable claws in the driver ----------------------------------------------------------------------- Changes: diff --git a/info/control/driver/driver.ml b/info/control/driver/driver.ml index a19568b..b48af48 100644 --- a/info/control/driver/driver.ml +++ b/info/control/driver/driver.ml @@ -1195,7 +1195,7 @@ lwt () = ~vendor_id:PcInterface.usb_vid ~product_id:PcInterface.usb_pid_robot_interface ~set:set_card_interface - (fun card -> return ()) + (fun card -> Gate.enable ()) (fun () -> return ()) in hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-08 21:33:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 63e15ec4612de69dd073fe0844d53db80e4cc4ee (commit) from 8bef902093886c4c5c3464d34b5cedcba8ed1d57 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 63e15ec4612de69dd073fe0844d53db80e4cc4ee Author: Jérémie Dimino <je...@di...> Date: Sat May 8 23:32:27 2010 +0200 add a checking tool ----------------------------------------------------------------------- Changes: diff --git a/info/control/Makefile b/info/control/Makefile index 8850da0..55734c8 100644 --- a/info/control/Makefile +++ b/info/control/Makefile @@ -41,6 +41,7 @@ install: install -m 0755 _build/services/hard_stop.best $(PREFIX)/bin/krobot-hard-stop install -m 0755 _build/driver/driver.best $(PREFIX)/bin/krobot-driver install -m 0755 _build/clients/ax12_control.best $(PREFIX)/bin/krobot-ax12 + install -m 0755 _build/clients/check.best $(PREFIX)/bin/krobot-check .PHONY: uninstall uninstall: diff --git a/info/control/clients/check.ml b/info/control/clients/check.ml new file mode 100644 index 0000000..ebea3d0 --- /dev/null +++ b/info/control/clients/check.ml @@ -0,0 +1,35 @@ +(* + * check.ml + * -------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +open Lwt +open Lwt_io + +lwt () = + lwt krobot = Krobot.create () in + + lwt () = printl "testing the gate" in + lwt () = Krobot.Gate.enable krobot in + lwt () = Krobot.Gate.release krobot in + lwt () = Lwt_unix.sleep 0.5 in + lwt () = Krobot.Gate.close krobot in + lwt () = Lwt_unix.sleep 0.5 in + + lwt () = printl "testing the claws" in + lwt () = Krobot.claws_enable krobot in + lwt () = Krobot.claws_open krobot in + lwt () = Lwt_unix.sleep 0.5 in + lwt () = Krobot.claws_close krobot in + + lwt () = printl "testing the grip" in + lwt () = Krobot.grip_open krobot in + lwt () = Lwt_unix.sleep 1.0 in + lwt () = Krobot.grip_close krobot in + lwt () = Lwt_unix.sleep 1.0 in + + return () diff --git a/info/control/myocamlbuild.ml b/info/control/myocamlbuild.ml index deb5c13..82ccc6b 100644 --- a/info/control/myocamlbuild.ml +++ b/info/control/myocamlbuild.ml @@ -74,6 +74,7 @@ let targets = List.filter_opt (function (true, target) -> Some target | (false, (have_lwt_unix && have_obus && have_lwt_text, "clients/controller.best"); (have_lwt_unix && have_obus && have_sdl, "clients/joy_control.best"); (have_lwt_unix && have_obus && have_lwt_text, "clients/ax12_control.best"); + (have_lwt_unix && have_obus, "clients/check.best"); (* Services *) (have_lwt_unix && have_obus, "services/hard_stop.best"); hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-08 20:38:10
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 8bef902093886c4c5c3464d34b5cedcba8ed1d57 (commit) via 04bfa5cf993eddd3bf5e242dceafd11b5f6b4e09 (commit) from 17df034cb00ca218578771cd3a2ef00f66872aec (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8bef902093886c4c5c3464d34b5cedcba8ed1d57 Author: Jérémie Dimino <je...@di...> Date: Sat May 8 22:37:27 2010 +0200 restotre infrared monitoring commit 04bfa5cf993eddd3bf5e242dceafd11b5f6b4e09 Author: Jérémie Dimino <je...@di...> Date: Sat May 8 22:31:03 2010 +0200 add monitoring of the voltage ----------------------------------------------------------------------- Changes: diff --git a/info/control/clients/controller.ml b/info/control/clients/controller.ml index c281bea..4d90632 100644 --- a/info/control/clients/controller.ml +++ b/info/control/clients/controller.ml @@ -174,6 +174,7 @@ let draw krobot = Krobot.dev_ax12 = false; Krobot.dev_lcd = false; Krobot.dev_infrared = false; + Krobot.dev_power = false; } in @@ -332,6 +333,16 @@ let draw krobot = return () end in + lwt () = + if driver && devices.Krobot.dev_power then begin + lwt current = OBus_property.get (Krobot.current_voltage krobot) in + Draw.textc zone x 7 [textf "current: %d mA" current]; + return () + end else begin + Draw.textc zone x 7 [fg red; text "unavailable"]; + return () + end + in (* ===== History ===== *) @@ -513,6 +524,7 @@ lwt () = notify_property (Krobot.Card.state krobot `Monitoring); notify_property (Krobot.devices_status krobot); notify_property (Krobot.infrared_states krobot); + notify_property (Krobot.current_voltage krobot); ] | false -> List.iter Lwt_signal.disable !notifiers; diff --git a/info/control/driver/driver.ml b/info/control/driver/driver.ml index b1d59ca..a19568b 100644 --- a/info/control/driver/driver.ml +++ b/info/control/driver/driver.ml @@ -140,6 +140,11 @@ struct let set_buzzer_state state = USBCard.call Commands.Power.set_buzzer_state (get_card card) state + let current = + poll card 0 + (fun card -> + USBCard.call Commands.Power.get_current card ()) + let () = OBus_object.add_interfaces obus [make ~notify_mode @@ -149,6 +154,7 @@ struct lwt () = set_buzzer_state state in OBus_method.return ctx () ); + p_Current = (fun () -> React.S.map Int32.of_int current); }] end diff --git a/info/control/lib-krobot/krobot.ml b/info/control/lib-krobot/krobot.ml index e436389..9170d97 100644 --- a/info/control/lib-krobot/krobot.ml +++ b/info/control/lib-krobot/krobot.ml @@ -45,6 +45,7 @@ type devices_status = { dev_ax12 : bool; dev_lcd : bool; dev_infrared : bool; + dev_power : bool; } let devices_status krobot = @@ -57,6 +58,7 @@ let devices_status krobot = dev_ax12 = List.assoc "AX12" l; dev_lcd = List.assoc "LCD" l; dev_infrared = List.assoc "Infrared" l; + dev_power = List.assoc "Power" l; }) (OBus_property.make ~notify_mode @@ -95,6 +97,9 @@ open Krobot_interfaces.Fr_krobot_Device_Power let set_buzzer_state krobot state = OBus_method.call m_SetBuzzerState (device krobot "Power") state +let current_voltage krobot = + OBus_property.map_r Int32.to_int (OBus_property.make ~notify_mode p_Current (device krobot "Power")) + (* +-----------------------------------------------------------------+ | Gate | +-----------------------------------------------------------------+ *) diff --git a/info/control/lib-krobot/krobot.mli b/info/control/lib-krobot/krobot.mli index ef3f09e..9bc2768 100644 --- a/info/control/lib-krobot/krobot.mli +++ b/info/control/lib-krobot/krobot.mli @@ -43,6 +43,7 @@ type devices_status = { dev_ax12 : bool; dev_lcd : bool; dev_infrared : bool; + dev_power : bool; } val devices_status : t -> devices_status OBus_property.r @@ -56,6 +57,8 @@ val infrared_states : t -> (int * int) OBus_property.r val set_buzzer_state : t -> bool -> unit Lwt.t +val current_voltage : t -> int OBus_property.r + (** {6 Gate} *) module Gate : sig diff --git a/info/control/protocol/krobot.obus b/info/control/protocol/krobot.obus index 6258f09..7c3e775 100644 --- a/info/control/protocol/krobot.obus +++ b/info/control/protocol/krobot.obus @@ -17,6 +17,8 @@ interface "fr.krobot.Device.Power" { method SetBuzzerState : (state : boolean) -> () + + property.r Current : int32 } interface "fr.krobot.Device.Infrared" { hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-08 19:58:57
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 17df034cb00ca218578771cd3a2ef00f66872aec (commit) from 6fb26acfacd1d4dad6c0548a468b0f306a592b96 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 17df034cb00ca218578771cd3a2ef00f66872aec Author: Jérémie Dimino <je...@di...> Date: Sat May 8 21:58:25 2010 +0200 monitor indrared sensors in the controller ----------------------------------------------------------------------- Changes: diff --git a/info/control/clients/controller.ml b/info/control/clients/controller.ml index cbe8baf..c281bea 100644 --- a/info/control/clients/controller.ml +++ b/info/control/clients/controller.ml @@ -512,6 +512,7 @@ lwt () = notify_property (Krobot.Card.state krobot `Motor); notify_property (Krobot.Card.state krobot `Monitoring); notify_property (Krobot.devices_status krobot); + notify_property (Krobot.infrared_states krobot); ] | false -> List.iter Lwt_signal.disable !notifiers; hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-05-08 18:17:59
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 6fb26acfacd1d4dad6c0548a468b0f306a592b96 (commit) via a4259c9b12f2c296cbba23bf555f87e21ed58c79 (commit) via 88da80d088b3f40b7573bcc5b2738df471f81501 (commit) via 7558634aade35227628e140f81b58cef7d602af8 (commit) from 34f24485d963204ad50c2b4adbf4b1be679cffb2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 6fb26acfacd1d4dad6c0548a468b0f306a592b96 Author: Jérémie Dimino <je...@di...> Date: Sat May 8 20:17:17 2010 +0200 remove commands for the AX12 with id=1 commit a4259c9b12f2c296cbba23bf555f87e21ed58c79 Author: Jérémie Dimino <je...@di...> Date: Sat May 8 20:03:15 2010 +0200 add a simple scanner commit 88da80d088b3f40b7573bcc5b2738df471f81501 Author: Jérémie Dimino <je...@di...> Date: Sat May 8 19:36:04 2010 +0200 add infrared status in the controller commit 7558634aade35227628e140f81b58cef7d602af8 Author: Jérémie Dimino <je...@di...> Date: Sat May 8 18:17:40 2010 +0200 add the object for infrared sensors ----------------------------------------------------------------------- Changes: diff --git a/info/control/clients/controller.ml b/info/control/clients/controller.ml index f038d41..cbe8baf 100644 --- a/info/control/clients/controller.ml +++ b/info/control/clients/controller.ml @@ -173,6 +173,7 @@ let draw krobot = Krobot.dev_motor = false; Krobot.dev_ax12 = false; Krobot.dev_lcd = false; + Krobot.dev_infrared = false; } in @@ -318,6 +319,19 @@ let draw krobot = return () end in + lwt () = + if driver && devices.Krobot.dev_infrared then begin + lwt i1, i2 = OBus_property.get (Krobot.infrared_states krobot) in + Draw.textc zone x 5 [textf "infrared 1: %d" i1]; + Draw.textc zone x 6 [textf "infrared 2: %d" i2]; + return () + end else begin + for i = 5 to 6 do + Draw.textc zone x i [fg red; text "unavailable"] + done; + return () + end + in (* ===== History ===== *) diff --git a/info/control/driver/driver.ml b/info/control/driver/driver.ml index 7130a43..b1d59ca 100644 --- a/info/control/driver/driver.ml +++ b/info/control/driver/driver.ml @@ -56,7 +56,7 @@ let get_card card = (* List of services, by cards *) let services = [ - card_interface, ["Servo"; "Compass"; "AX12"; "LCD"; "Gate"]; + card_interface, ["Servo"; "Compass"; "AX12"; "LCD"; "Gate"; "Infrared"]; card_monitoring, ["Power"]; card_sensor, ["LogicSensors"; "RangeFinders"]; card_motor, ["Motors"]; @@ -152,6 +152,31 @@ struct }] end + +(* +-----------------------------------------------------------------+ + | Infrared | + +-----------------------------------------------------------------+ *) + +module Infrared = +struct + include Service(struct let name = "Infrared" end) + + open Krobot_interfaces.Fr_krobot_Device_Infrared + + let states = + poll card (0, 0) + (fun card -> + lwt ar = USBCard.call Commands.Infrared.get_state card () in + return (ar.(0), ar.(1))) + + let () = + OBus_object.add_interfaces obus + [make ~notify_mode + { + p_States = (fun () -> React.S.map (fun (i1, i2) -> (Int32.of_int i1, Int32.of_int i2)) states); + }] +end + (* +-----------------------------------------------------------------+ | Compass | +-----------------------------------------------------------------+ *) @@ -314,17 +339,17 @@ struct USBCard.call Commands.AX12.action (get_card card) 0xfe let grip_up () = - set_ax12 [{ aa_id = 1; + set_ax12 [(*{ aa_id = 1; aa_position = 190; - aa_velocity = 50 }; + aa_velocity = 50 };*) { aa_id = 2; aa_position = 180; aa_velocity = 50 }] let grip_down () = - set_ax12 [{ aa_id = 1; + set_ax12 [(*{ aa_id = 1; aa_position = 490; - aa_velocity = 50 }; + aa_velocity = 50 };*) { aa_id = 2; aa_position = 510; aa_velocity = 50 }; @@ -1211,6 +1236,7 @@ lwt () = OBus_object.export bus Range_finders.obus; OBus_object.export bus Motors.obus; OBus_object.export bus Gate.obus; + OBus_object.export bus Infrared.obus; OBus_object.export bus (Card.make card_interface ["fr"; "krobot"; "Cards"; "Interface"]).Card.obus; OBus_object.export bus (Card.make card_sensor ["fr"; "krobot"; "Cards"; "Sensor"]).Card.obus; diff --git a/info/control/lib-krobot/krobot.ml b/info/control/lib-krobot/krobot.ml index b2ae4f6..e436389 100644 --- a/info/control/lib-krobot/krobot.ml +++ b/info/control/lib-krobot/krobot.ml @@ -44,6 +44,7 @@ type devices_status = { dev_motor : bool; dev_ax12 : bool; dev_lcd : bool; + dev_infrared : bool; } let devices_status krobot = @@ -55,6 +56,7 @@ let devices_status krobot = dev_motor = List.assoc "Motors" l; dev_ax12 = List.assoc "AX12" l; dev_lcd = List.assoc "LCD" l; + dev_infrared = List.assoc "Infrared" l; }) (OBus_property.make ~notify_mode @@ -74,6 +76,17 @@ let jack krobot = *) (* +-----------------------------------------------------------------+ + | Infrared | + +-----------------------------------------------------------------+ *) + +open Krobot_interfaces.Fr_krobot_Device_Infrared + +let infrared_states krobot = + OBus_property.map_r + (fun (i1, i2) -> (Int32.to_int i1, Int32.to_int i2)) + (OBus_property.make ~notify_mode p_States (device krobot "Infrared")) + +(* +-----------------------------------------------------------------+ | Power | +-----------------------------------------------------------------+ *) diff --git a/info/control/lib-krobot/krobot.mli b/info/control/lib-krobot/krobot.mli index 7bff545..ef3f09e 100644 --- a/info/control/lib-krobot/krobot.mli +++ b/info/control/lib-krobot/krobot.mli @@ -42,11 +42,16 @@ type devices_status = { dev_motor : bool; dev_ax12 : bool; dev_lcd : bool; + dev_infrared : bool; } val devices_status : t -> devices_status OBus_property.r (** List of services with their status *) +(** {6 Infrared} *) + +val infrared_states : t -> (int * int) OBus_property.r + (** {6 Power} *) val set_buzzer_state : t -> bool -> unit Lwt.t diff --git a/info/control/myocamlbuild.ml b/info/control/myocamlbuild.ml index 6519df2..deb5c13 100644 --- a/info/control/myocamlbuild.ml +++ b/info/control/myocamlbuild.ml @@ -83,6 +83,7 @@ let targets = List.filter_opt (function (true, target) -> Some target | (false, (have_lwt_unix && have_obus, "tests/stop_and_restart.best"); (have_lwt_unix && have_obus, "tests/trajectories.best"); (have_lwt_unix && have_obus, "tests/move.best"); + (have_lwt_unix && have_obus, "tests/scan_infrared.best"); ] (* +-----------------------------------------------------------------+ diff --git a/info/control/protocol/krobot.obus b/info/control/protocol/krobot.obus index 12ca50c..6258f09 100644 --- a/info/control/protocol/krobot.obus +++ b/info/control/protocol/krobot.obus @@ -19,6 +19,10 @@ interface "fr.krobot.Device.Power" { method SetBuzzerState : (state : boolean) -> () } +interface "fr.krobot.Device.Infrared" { + property.r States : (int32 * int32) structure +} + interface "fr.krobot.Device.Gate" { method Enable : () -> () (** Enable the motor of the gate *) diff --git a/info/control/tests/scan_infrared.ml b/info/control/tests/scan_infrared.ml new file mode 100644 index 0000000..574d130 --- /dev/null +++ b/info/control/tests/scan_infrared.ml @@ -0,0 +1,39 @@ +(* + * scan_infrared.ml + * ---------------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +open Lwt + +let rec print krobot infrared = + lwt pos = Krobot.unsafe_call Commands.AX12.get_position krobot (1, 100) in + let i1, i2 = React.S.value infrared in + lwt () = Lwt_io.printlf "position: %3d, i1 = %4d, i2 = %4d" pos i1 i2 in + lwt () = Lwt_unix.sleep 0.2 in + print krobot infrared + +let delay = 1.5 + +let action pos = { + Types.aa_id = 1; + Types.aa_position = pos; + Types.aa_velocity = 200; +} + +lwt () = + lwt krobot = Krobot.create () in + let rec loop1 () = + lwt () = Krobot.set_ax12 krobot [action 250] in + lwt () = Lwt_unix.sleep delay in + loop2 () + and loop2 () = + lwt () = Krobot.set_ax12 krobot [action 750] in + lwt () = Lwt_unix.sleep delay in + loop1 () + in + lwt infrared = OBus_property.monitor (Krobot.infrared_states krobot) in + join [loop1 (); print krobot infrared] hooks/post-receive -- krobot |
From: Olivier B. <Ba...@us...> - 2010-05-08 18:10:24
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 34f24485d963204ad50c2b4adbf4b1be679cffb2 (commit) from b7f9e286900257d6b0b3791b1767759b15ef982b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 34f24485d963204ad50c2b4adbf4b1be679cffb2 Author: Olivier BICHLER <oli...@cr...> Date: Sat May 8 20:09:33 2010 +0200 Fixed bug for door control ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Interface_Robot/Firmware/mcc.c b/elec/boards/Interface_Robot/Firmware/mcc.c index ff0119f..bcacdaf 100644 --- a/elec/boards/Interface_Robot/Firmware/mcc.c +++ b/elec/boards/Interface_Robot/Firmware/mcc.c @@ -20,8 +20,7 @@ void initMCC(char withEncoder) { TRISB&= 0b11000011; /* M1_EN, M2_PWM, M2_SENS, M2_EN */ TRISC&= 0b11111011; /* M1_PWM */ #else - TRISA&= 0b11111110; /* M1_INA */ - TRISB&= 0b11101011; /* M1_EN, M1_INB */ + TRISB&= 0b11001011; /* M1_EN, M1_INB, M1_INA */ TRISC&= 0b11111011; /* M1_PWM */ #endif diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof index 57a1a0f..5d4b279 100644 Binary files a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof and b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof differ diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex index d9b7b87..46cec43 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex @@ -1,15 +1,15 @@ :020000040000FA -:060000005FEF22F0120088 +:060000005EEF22F0120089 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:060800005FEF22F0120080 +:060800005EEF22F0120081 :060808003AEF04F01200BB :060818009AEF04F012004B -:06082A0006007445000009 -:100830002601000024000000534500006B01000069 -:100840002100000050450000BB0100000300000033 -:1008500047450000AF0100000900000037450000D7 -:100860008C010000100000002E450000A6010000D1 +:06082A000600724500000B +:100830002601000024000000514500006B0100006B +:10084000210000004E450000BB0100000300000035 +:1008500045450000AF0100000900000035450000DB +:100860008C010000100000002C450000A6010000D3 :04087000090000007B :0C087400DACFE4FFE2CFDAFFE9CFE4FFC7 :10088000EACFE4FFF6CFE4FFF7CFE4FFF5CFE4FFD4 @@ -17,7 +17,7 @@ :1008A000140EE80403E3EECFE4FFFBD700EE00F004 :1008B000220EE80403E3EECFE4FFFBD7A4EC0DF037 :1008C000A1A203D02BEC1BF0A1929EAA03D0BFECF7 -:1008D00013F09E9AF2A403D06AEC1CF0F294B7ECE9 +:1008D00013F09E9AF2A403D069EC1CF0F294B7ECEA :1008E0000DF002E2E16AE552B5EC0DF0E55200EEE2 :1008F00021F0220EE80403E3E5CFEDFFFBD700EE85 :1009000035F0140EE80403E3E5CFEDFFFBD7E5CFA8 @@ -30,17 +30,17 @@ :10097000E5CFE0FFE5CFD8FF100004D84AEC0EF039 :1009800047D8FCD70F0EC11202D814EF0EF0EFECCF :100990000DF0E6522BEC0DF00101B86F070EB85DBB -:1009A00010E1E66A75EC20F0E552DF6E000EDF80A4 -:1009B000BFEC0DF0E66A31EC22F0E552DF70BFECDF +:1009A00010E1E66A74EC20F0E552DF6E000EDF80A5 +:1009B000BFEC0DF0E66A30EC22F0E552DF70BFECE0 :1009C0000DF093809382948C948ED08EF28EF28C64 -:1009D000770EC86E070EE66EEEEC1DF0E5523F0E88 +:1009D000770EC86E070EE66EEDEC1DF0E5523F0E89 :1009E0008A1693160101AF6BB06BB16BB26B010E3F :1009F000B36FBAEC13F016EC1BF0E66A44EC1CF093 -:100A0000E5525AEC1DF05FEC19F0E55200EF0EF0E4 +:100A0000E55259EC1DF05FEC19F0E55200EF0EF0E5 :100A1000D9CFE6FFE1CFD9FF170EE126160EDB6A2C :100A20000101B35102E01FEC0CF0200E0101005D4A :100A300003E36D50020B02E015EF0CF06FEC19F0C0 -:100A4000160EDB5036E032EC1DF0000932E00101F9 +:100A4000160EDB5036E031EC1DF0000932E00101FA :100A5000B151B21102E1000E08D0B1C1E9FFB2C13B :100A6000EAFFEF50800B01E0010E000922E10501D1 :100A7000406B0101B451B42B0501416F05010C0E0F @@ -63,32 +63,32 @@ :100B80004DEF0BF00E0A02E1F4EF0AF0060A02E163 :100B900079EF0AF0040A01E1A0D20F0A01E1F5D1D0 :100BA000040A1AE0030A07E0010A02E0D4EF0BF09E -:100BB000FF0015EF0CF0E66A75EC20F0E552DF6EF1 -:100BC000000EDB80DFCFE6FFE66A55EC20F0E55251 +:100BB000FF0015EF0CF0E66A74EC20F0E552DF6EF2 +:100BC000000EDB80DFCFE6FFE66A54EC20F0E55252 :100BD000E552FF0015EF0CF00101B151B21102E135 :100BE000000E08D0B1C1E9FFB2C1EAFFEF50800B9F :100BF00001E0010E000901E0C6D100C540F5050184 :100C0000416B0501030E426F0501436B050108515D :100C1000050A01E101D10F0A01E17ED00E0A71E05F :100C2000070A64E0010A20E0030A06E0010A01E085 -:100C300080D1B8C148F580D10501486B930E006E94 +:100C300080D1B8C148F580D10501486B910E006E96 :100C4000420E016E026A00C0E6FF01C0E6FF02C06C -:100C5000E6FF480EE66E050EE66E39EC20F0036EF8 -:100C6000050EE15E035068D10501486B870E006EEA +:100C5000E6FF480EE66E050EE66E38EC20F0036EF9 +:100C6000050EE15E035068D10501486B850E006EEC :100C7000420E016E026A00C0E6FF01C0E6FF02C03C -:100C8000E6FF480EE66E050EE66E39EC20F0036EC8 -:100C9000050EE15E0350850E006E420E016E026A83 +:100C8000E6FF480EE66E050EE66E38EC20F0036EC9 +:100C9000050EE15E0350830E006E420E016E026A85 :100CA00000C0E6FF01C0E6FF02C0E6FF480EE66EA8 -:100CB000050EE66E39EC20F0036E050EE15E035082 -:100CC0007C0E006E420E016E026A00C0E6FF01C09B -:100CD000E6FF02C0E6FF480EE66E050EE66E39EC52 +:100CB000050EE66E38EC20F0036E050EE15E035083 +:100CC0007A0E006E420E016E026A00C0E6FF01C09D +:100CD000E6FF02C0E6FF480EE66E050EE66E38EC53 :100CE00020F0036E050EE15E035026D192CF48F549 :100CF00093CF49F594CF4AF595CF4BF596CF4CF568 :100D00001BD180CF48F581CF49F582CF4AF583CFFB :100D10004BF584CF4CF510D1800EE66E080EE66ED2 -:100D2000CBEC21F0E552E552C58081EC22F0C00EFB -:100D3000E66E20EC21F0E552E66A20EC21F0E55267 -:100D4000C58281EC22F0C10EE66E20EC21F0E55266 +:100D2000CAEC21F0E552E552C58080EC22F0C00EFD +:100D3000E66E1FEC21F0E552E66A1FEC21F0E55269 +:100D4000C58280EC22F0C10EE66E1FEC21F0E55268 :100D5000010EDB6A020EDB6A010EDBCF00F0020E31 :100D6000DBCF01F0040E005C000E01584FE2010ED3 :100D7000F36E150EF3CFDBFFC586130EDB6A140E80 @@ -97,11 +97,11 @@ :100DA000E9FF020EDBCFEAFF480EE926050EEA2234 :100DB000C9CFEFFF150EDB6A06D0130EDB2A140E27 :100DC00001E3DB2ADED7150EDB5008E00501080E33 -:100DD000436FC58AC58881EC22F018D0010EDBCFA5 +:100DD000436FC58AC58880EC22F018D0010EDBCFA6 :100DE00000F0020EDBCF01F0030E005C000E015894 -:100DF00003E2C59AC58802D0C58AC58881EC22F075 -:100E0000010EDB2A020E01E3DB2AA6D7C58481ECA2 -:100E100022F094EC22F090D0010EDB6A020EDB6A25 +:100DF00003E2C59AC58802D0C58AC58880EC22F076 +:100E0000010EDB2A020E01E3DB2AA6D7C58480ECA3 +:100E100022F093EC22F090D0010EDB6A020EDB6A26 :100E2000010EDBCF00F0020EDBCF01F0020E005C02 :100E3000000E015801E37CD0010EDBCFE6FF1FEC72 :100E40001AF0E5520B0E28C0DBFF0C0E29C0DBFFA9 @@ -142,7 +142,7 @@ :10107000E66EC0EC1BF0E552E552050109A708D069 :101080000DC5E6FF030EE66EC0EC1BF0E552E5521F :10109000050109A908D00EC5E6FF040EE66EC0ECF6 -:1010A0001BF0E552E55205D0030EE66EE6EC21F0AA +:1010A0001BF0E552E55205D0030EE66EE5EC21F0AB :1010B000E552400EE66E000EE66E050EE66EE66A3E :1010C000010EE66E65EC12F0006E050EE15E00505A :1010D000F3CFAFF1F4CFB0F1A8D30101B151B21108 @@ -213,38 +213,38 @@ :1014E000006E050EE15E0050F3CFAFF1F4CFB0F126 :1014F0009CD105010851070A4FE0010A41E0030AA7 :1015000033E0010A29E0070A1EE0010A14E0030A99 -:1015100009E0010A01E04FD0070EE66EF5EC1DF080 -:10152000E5524ED0010EE66E070EE66EF8EC1DF0A9 -:10153000E552E55245D0E66A070EE66EF8EC1DF07E -:10154000E552E5523DD0010EE66E070EE66E00EC68 -:101550001EF0E552E55234D0E66A070EE66E00EC66 -:101560001EF0E552E5522CD00AC5E6FF09C5E6FF9C -:10157000070EE66E0BEC1EF0E552E552E55220D068 -:10158000090EE66E050EE66E070EE66E18EC1EF00E +:1015100009E0010A01E04FD0070EE66EF4EC1DF081 +:10152000E5524ED0010EE66E070EE66EF7EC1DF0AA +:10153000E552E55245D0E66A070EE66EF7EC1DF07F +:10154000E552E5523DD0010EE66E070EE66EFFEC69 +:101550001DF0E552E55234D0E66A070EE66EFFEC68 +:101560001DF0E552E5522CD00AC5E6FF09C5E6FF9D +:10157000070EE66E0AEC1EF0E552E552E55220D069 +:10158000090EE66E050EE66E070EE66E17EC1EF00F :10159000E552E552E55214D00A0EE66E050EE66EEF -:1015A00009C5E6FF070EE66E1EEC1EF0E552E55299 -:1015B000E552E55205D0010EE66EE6EC21F0E5526B +:1015A00009C5E6FF070EE66E1DEC1EF0E552E5529A +:1015B000E552E55205D0010EE66EE5EC21F0E5526C :1015C000400EE66E000EE66E050EE66EE66A010E51 :1015D000E66E65EC12F0006E050EE15E0050F3CF92 :1015E000AFF1F4CFB0F121D105010851030A11E0A8 -:1015F000010A09E0030A01E037D009C5E6FF85ECDE -:101600001CF0E55236D009C5E6FF89EC1CF0E55226 +:1015F000010A09E0030A01E037D009C5E6FF84ECDF +:101600001CF0E55236D009C5E6FF88EC1CF0E55227 :1016100030D00E0E0CC5DBFF0D0E0DC5DBFF0C0E22 :101620000EC5DBFF0B0E0FC5DBFFD9500B0FE96EAC :10163000DACFEAFFEECFE6FFEECFE6FFEECFE6FF32 :10164000EFCFE6FF0BC5E6FF0AC5E6FF09C5E6FFDB -:101650008DEC1CF0006E070EE15E0050010EF36E83 -:10166000160EF3CFDBFF05D0010EE66EE6EC21F09F +:101650008CEC1CF0006E070EE15E0050010EF36E84 +:10166000160EF3CFDBFF05D0010EE66EE5EC21F0A0 :10167000E552400EE66E000EE66E050EE66EE66A78 :10168000010EE66E65EC12F0006E050EE15E005094 :10169000F3CFAFF1F4CFB0F1C8D0800EE66E080EF4 -:1016A000E66ECBEC21F0E552E552C58081EC22F0EC -:1016B000E66A20EC21F0E552080EE66E050EE66EB5 -:1016C000ADEC1FF0E552E552C58494EC22F0400EDB +:1016A000E66ECAEC21F0E552E552C58080EC22F0EE +:1016B000E66A1FEC21F0E552080EE66E050EE66EB6 +:1016C000ACEC1FF0E552E552C58493EC22F0400EDD :1016D000E66E000EE66E050EE66EE66A010EE66E3A :1016E00065EC12F0006E050EE15E0050F3CFAFF135 :1016F000F4CFB0F19AD04F0EAB16AC9ACF0E9D1628 -:10170000020EE66EE66A7C0EE66E68EC1FF0E552AD +:10170000020EE66EE66A7C0EE66E67EC1FF0E552AE :10171000E552E552040EE66EE66AB4EC14F0E552CA :10172000E552100EE66E010EE66EB4EC14F0E552D2 :10173000E552020EE66E030EE66E010EE66E2FEC2B @@ -280,9 +280,9 @@ :101910006E0EEE6E200E59D9740E7BD9620EEE6EED :101920006C0EEE6E690E42D9EE6E5ED9EE6E71D916 :10193000760E4BD9630EEE6E200EEE6E6C0E69D9EC -:10194000200EEE6EF8D8070EE66EF5EC1DF0E552AF +:10194000200EEE6EF8D8070EE66EF4EC1DF0E552B0 :101950001ED9010EE66EA5D802E2E16AE552B5EFA6 -:101960000DF0120012005AEF1EF012001E0EE66E6D +:101960000DF01200120059EF1EF012001E0EE66E6E :10197000010EE66E33EC12F0E552E552400EE66ED3 :10198000000EE66E050EE66EE66A010EE66E65EC8A :1019900012F0006E050EE15E0050F3CFAFF1F4CF10 @@ -302,7 +302,7 @@ :101A70000DD0D0B602D0040E09D0FCAE02D0050EB7 :101A800005D0FCAC02D0060E01D0070EDF6ED08868 :101A9000D086D084D082D080FC9EFC9CDF50E55262 -:101AA000AFD0070EE66E00EC1EF0E552E552D9CF3E +:101AA000AFD0070EE66EFFEC1DF0E552E552D9CF40 :101AB000E6FFDACFE6FF010E7ED8D950150FA4D885 :101AC000020E79D8D9502A0F9FD8030E74D8D95056 :101AD0003F0F9AD8040E6FD8540EE15C12007FD8E5 @@ -316,10 +316,10 @@ :101B5000F350DF6E010EF4CFDBFF1200EE6E6F0E5E :101B6000EE6E6E0EEE6EE5EF0DF0E16E49D0DF50D9 :101B7000F36E010EDB50F46E020EE15C1200DFCF5B -:101B8000E6FFE66A55EC20F0E552E5521200E66AFF -:101B9000070EE66EF8EC1DF0E552E5521200EE6A13 +:101B8000E6FFE66A54EC20F0E552E5521200E66A00 +:101B9000070EE66EF7EC1DF0E552E5521200EE6A14 :101BA000D9502A0FE96EDACFEAFF12000ED8200EC4 -:101BB000EE6EEE6E1200E66E070EE66E1EEC1EF086 +:101BB000EE6EEE6E1200E66E070EE66E1DEC1EF087 :101BC000E552E552E552E5521200EE6E650EEE6EFC :101BD0001200EE6EEE6EEE6EEE6EEE6E1200D9CF6D :101BE000E6FFE1CFD9FF1200EE6AD9503F0FE96E50 @@ -405,11 +405,11 @@ :1020D000DF7457DAC80EEF6E040EE15C02E2E16ACB :1020E000E552E16E57D2800E0401205D3CE1010112 :1020F000C00E136F04012351030A1EE0010A09E018 -:10210000030A2FE10101820E116F3D0E126F120EB4 -:1021100022D0C3DA2A0EF6263E0EA2DA020E010102 +:10210000030A2FE10101800E116F3D0E126F120EB6 +:1021100022D0C3DA280EF6263E0EA2DA020E010104 :10212000F76A1125F66E1251F7220900F5CF14F166 :102130000A00F5CF15F11200030E225D0FE2ADDAB1 -:102140002C0EF6263E0E8CDA11C1F6FF12C1F7FFF7 +:102140002A0EF6263E0E8CDA11C1F6FF12C1F7FFF9 :102150000800F5500101146F156B12000101136B9B :1021600012000101136B120011DA0401286B296BB4 :1021700020511F0B020A11E0030A0CE0010A22E1C0 @@ -503,14 +503,14 @@ :1026F000EA2212003CD88C0EEF6E1200680EE66ED5 :102700000F0EE66E16DFE552E552E552120049DF84 :10271000070EE926010E120044DF0B0EE926010E1A -:102720001200D9CFE6FFE1CFD9FF1200E66E1FEC11 +:102720001200D9CFE6FFE1CFD9FF1200E66E1EEC12 :1027300020F0006E050EE15E00501200E0EC0CF09F :10274000006E060EE15E00501200200EEE6E040ECA :10275000ED6E120005C1E9FF06C1EAFF120028DF95 :10276000C4DFA5EF13F004DFC0DF0FEF13F0F6DED8 :04277000CEEF12F0A6 :0C277400959A838A190E61EF16F0CFDAF7 -:10278000030EE126ACA2FED701EC21F0DF6E0101C1 +:10278000030EE126ACA2FED700EC21F0DF6E0101C2 :10279000485104E1265102E1010E496F490558E113 :1027A0004851A8DADFCFEFFF020E485D08E2FF0EC6 :1027B000DF5C05E0050EABDA0101496B486B030EE7 @@ -521,7 +521,7 @@ :10280000DBCFE7FFEF50E726010EE7CFDBFF020E3D :10281000DB2AE9D76A516EDAEFCF00F0010EDB1C3C :10282000005C05E0070E73DA0101266B0DD0010193 -:102830002B5102E0060E6BDA2BC1E6FFE6EC21F02D +:102830002B5102E0060E6BDA2BC1E6FFE5EC21F02E :10284000E5520101010E266F496B486B01D0482B00 :10285000030EE15C02E2E16AE552E16E24D25FDA46 :10286000220EE126010EDB68020EDB68FE0EDB5055 @@ -537,7 +537,7 @@ :10290000DB50050FE9D9E552E750EF6E839ADF6A95 :10291000FC0EDB50060FDF5C11E2ACA2FED7D950F3 :10292000010F006EDACF01F0DF500F01D5D9EF5063 -:10293000E66E48EC22F0E552DF2AEAD7ACA2FED7D9 +:10293000E66E47EC22F0E552DF2AEAD7ACA2FED7DA :10294000838A0101266B220EE15C02E2E16AE55214 :10295000E16EA9D101012651120001014751120077 :1029600001012651FDE01200DAD9FE0EDB50EA6AC1 @@ -594,12 +594,12 @@ :102C9000DFCFE6FF62D8030EE66E1200FE0EDBCF3A :102CA000E6FF030E4BD0E552E7CFD9FF120037D82D :102CB0004AD8FC0EDBCFE6FF010E2ED8020EE66EE0 -:102CC0001200E66EE66A7C0EE66E68EC1FF051D0EC +:102CC0001200E66EE66A7C0EE66E67EC1FF051D0ED :102CD000100EE66E040E32D00024E96E000EDA20EB :102CE000EA6E12001CD8FC0EDBCFE6FFFD0EDBCF38 :102CF000E6FF1200EA6A270FE96E010EEA221200CF :102D0000DBCFDEFFDBCFDDFFDFCFE6FF1200E66EBD -:102D1000E6EC21F0E5521200E66EB5EF16F0D9CFE1 +:102D1000E5EC21F0E5521200E66EB5EF16F0D9CFE2 :102D2000E6FFE1CFD9FF1200E66EFE0EDBCFE6FF35 :102D3000F6DEE552E552E552E552B5D7E66EFE0EF7 :102D4000E66E7FDE16D0FD0EDBCFE6FFE66AB5EF5E @@ -693,15 +693,15 @@ :0E32B00030321200D8903032EAE1238A120048 :0232BE00FC0E04 :1032C0009516839083920D0EE66E7C0EE66EE10EEF -:1032D000E66EE8EC1FF0E552E552E5521200D9CF58 +:1032D000E66EE7EC1FF0E552E552E5521200D9CF59 :1032E000E6FFE1CFD9FFE6520101BB51040A48E0F5 :1032F000070A30E0010A24E0030A0CE0010A01E0B9 -:1033000098D08380870EE66E19EC22F0E552010119 -:10331000010E34D08FEC22F0000901E08BD052D99D +:1033000098D08380870EE66E18EC22F0E55201011A +:10331000010E34D08EEC22F0000901E08BD052D99E :1033200001AE02D002680368BCC1E9FFEA6AE9BEE7 :10333000EA6825D9B00EE926000E36D9020E1ED055 -:10334000839083828F0EE66E19EC22F0E552010124 -:10335000030E14D08FEC22F000096CE133D901AEDA +:10334000839083828F0EE66E18EC22F0E552010125 +:10335000030E14D08EEC22F000096CE133D901AEDB :1033600002D002680368BCC1E9FFEA6AE9BEEA6804 :1033700006D9D80EE926000E17D9040EBB6F5AD015 :103380008392BC2B0A0EE76EBC19E8AE02D0E7347C @@ -740,7 +740,7 @@ :10359000010FE96EDACFEAFF36D8DF2A120029D808 :1035A000BDC1E9FFEA6A1200EA2200C0EEFF01C0D5 :1035B000EEFF02C0EEFF03C0EEFF01011200EA229F -:1035C00003EF1BF078EC22F0F3CF00F0F4CF01F022 +:1035C00003EF1BF077EC22F0F3CF00F0F4CF01F023 :1035D000026A036A12002E6A2F6A200E306E410EB4 :1035E000316E95EF17F0DFCF00F00A0EE76E00188E :1035F0001200EA22EECF00F0EECF01F0EECF02F0A3 @@ -748,8 +748,8 @@ :10361000EE220350EE221200B2DF600EE926000E09 :0C3620001200ADDF880EE926000E12003B :04362C00E30E9516FE -:103630009492A082FD0EE66EDEEC20F0E552000EC4 -:10364000E66EE66A5CEC21F0E552E55283948396DF +:103630009492A082FD0EE66EDDEC20F0E552000EC5 +:10364000E66EE66A5BEC21F0E552E55283948396E0 :103650008398829212008394839683988292050EB7 :103660000101AC5D0EE2010EACC1E7FFE75204E0E0 :10367000E846FE0BE706FCE10101AB1502E1AC2BCD @@ -777,7 +777,7 @@ :1037D00009C029F00AC02AF00BC02BF00CC02CF055 :1037E000E8EC17F073EC18F02AC006F02BC007F0D5 :1037F000086A2A50035C006E2B500458016E085072 -:103800000558026E00C0E6FF01C0E6FF5CEC21F047 +:103800000558026E00C0E6FF01C0E6FF5BEC21F048 :10381000E552E552120029C015F02AC016F02BC05F :1038200017F02CC018F027D811C029F012C02AF0C8 :1038300013C02BF014C02CF0120003680468056A52 @@ -787,244 +787,246 @@ :10387000E7CFD9FF120029C02EF02AC02FF02BC0AD :0838800030F02CC031F0120001 :08388800D9CFE6FFE1CFD9FF23 -:103890009290EB0E93169494060EE66EB0EC21F027 -:1038A000E552FE0EDBA00CD0AF0EE66E94EC21F0DC -:1038B000E552000EE66EE66A78EC21F0E55204D09F -:1038C000820EE66E94EC21F0E55281948294819A06 -:1038D0008198ECD0E2D8D880000E01019455000EFA -:1038E0009555000E9655000E97550EE29407000E62 -:1038F000955B965B975B945195119611971104E136 -:10390000BD6A8294819A81981200D9CFE6FF8184A2 -:10391000CDD0D9CFE6FF8194C9D0D9CFE6FFE1CF92 -:10392000D9FFF80EDBCF94F1F90EDBCF95F1FA0E4B -:10393000DBCF96F1FB0EDBCF97F1280E2D6E2E6AB2 -:103940002F6A306A94C128F095C129F096C12AF0F7 -:1039500097C12BF0BAEC20F028C094F129C095F162 -:103960002AC096F12BC097F198D8FD0EDB50E8B035 -:10397000818AE8A0819AFD0EDB1CE8B08188E8A06E -:1039800081984A0EE66E01EC22F0E552FC0EDBCF88 -:1039900016F016C02BF0BDEC16F029C012F02AC0AC -:1039A00013F02BC014F02CC015F02E6A2F6A7F0E76 -:1039B000306E430E316E95EC17F029C00EF02AC020 -:1039C0000FF02BC010F02CC011F02E6A2F6A200EC1 -:1039D000306E3F0E316EE8EC17F029C00AF02AC0B5 -:1039E0000BF02BC00CF02CC00DF02E6A1B0E2F6EAE -:1039F000370E306E4C0E316EE8EC17F029C006F031 -:103A00002AC007F02BC008F02CC009F02E6A400E27 -:103A10002F6E1C0E306E460E316E95EC17F073EC67 -:103A200018F0CEEC16F029C002F02AC003F02BC02B -:103A300004F02CC005F02E6A2F6A800E306E410E05 -:103A4000316E95EC17F073EC18F02AC000F02BC023 -:103A500001F02AC0E6FF2BC0E6FF8BEC20F0E55218 -:103A6000E55224D08150200B06E08150100B03E179 -:103A70008350400B09E08150200B0EE18150100B68 -:103A80000BE08350800B08E1BD6A82940101946BC6 -:103A9000956B966B976B010C000CA00EE66E150EE5 -:103AA000E66E78EC21F0E552E5521200E552E7CFE0 -:043AB000D9FF120028 -:0C3AB400050EE66E060E8CD8070E8AD8B0 -:103AC000080E88D8090E7ED80A0E80D80B0E7AD838 -:103AD0000C0E7CD80D0E76D80E0E78D80F0E72D83C -:103AE000100E74D8110EC6EF1DF0D9CFE6FFE1CF4E -:103AF000D9FF51D8FD0EDBCFE6FF20EC21F0E552D7 -:103B0000C58494EC22F0E552E7CFD9FF1200D9CF5B -:103B1000E6FFE1CFD9FF030EE126020EDB6A3BD8B8 -:103B2000C58281EC22F0E90EE66E20EC21F0E55230 -:103B3000C586DE6ADD6ADECF00F0DDCF01F0E80E7B -:103B4000005C030E01580BE2C7A004D0020EC9CFDF -:103B5000DBFF05D0DF2A010EEEE3DB2AECD7C58AB6 -:103B6000C58881EC22F0C58481EC22F094EC22F02F -:103B7000020EDB50006E030EE15C02E2E16AE552E8 -:103B8000E16E0050E552E7CFD9FF1200E66EADDFDF -:103B9000E552E5521200800EE66E080EE66ECBECA2 -:103BA00021F0E552E552C58081EC22F0E80EE66E88 -:103BB00020EC21F0E552FE0EDBCFE6FF20EC21F0F9 -:103BC000E5521200E3DFC40EE66E1200DFDF090EDD -:0C3BD000E66E1200DBDF050EE66E120050 -:043BDC0036D857D8A8 -:103BE00056D855D84DD8430E54D057D8430E51D03F -:103BF00054D8FD0EDB5002E0530E01D0730E49D0B5 -:103C00004CD8FD0EDB5002E0420E01D0620E41D0D6 -:103C100044D8480E3ED041D84C0EE66E20EC21F040 -:103C2000E55231D8FC0EDBCFE6FF20EC21F020D0AE -:103C30000CD8FC0EDBCFE6FFFD0E36D006D823D81D -:103C4000FB0EDBCFE6FFFC0E2FD0D9CFE6FFE1CF96 -:103C5000D9FF800EE66E080EE66ECBEC21F0E55241 -:103C6000E552C58081EC22F0FE0EDBCFE6FF18D0D6 -:103C7000E552C58494EC22F0E552E7CFD9FF12005B -:103C80001B0EE66E0DD0FD0EDBCFE6FF09D0E66A17 -:103C900007D0E66E20EC21F0EBD7D7DF40EF1EF027 -:103CA00020EC21F0E5521200DBCFE6FFADEC1FF077 -:043CB000E552DED724 -:0C3CB400040120511F0B010801E0120068 -:103CC000245101E01200060E215D21E12351230A57 -:103CD0001BE0010A0CE0030A1AE10101010517E1EA -:103CE0000101A60E116F3D0E126F090E09D00101E0 -:103CF00001050DE101010D0E116F3E0E126F1D0E3B -:103D0000146F156BC00E02D00101800E136F0401F9 -:103D10002051600BE842E842E842E842E8420108EC -:103D200001E0120021510B0A26E0080A19E0090AF5 -:103D300011E0080A05E00B0A23E0080A21E012005E -:103D40000101BE0E116F010E126F010E146F156B83 -:103D5000C10E0FD00101800E136F23C4BEF11200FB -:103D60000101BF0E116F010E126F010E146F156B62 -:103D7000810E136F12000101800E136F22C4BFF178 -:023D800012002F -:0E3D82001201000200000008D8040400020034 -:103D90000102000109022900010100C032090400EA -:103DA000000203000000092111010001221D00078B -:103DB00005810340000107050103400001040309D8 -:103DC000042C034D006F00620069006C0065002048 -:103DD0000052006F0062006F007400200050006C01 -:103DE000006100740066006F0072006D00200352D5 -:103DF000006F0062006F007400200049006E0074C4 -:103E0000006500720066006100630065000600FF47 -:103E10000901A10119012940150026FF0075089527 -:103E2000408100190129409100C0943DBD3DC13D34 -:023E3000ED3D66 -:0E3E32002A0EF66E080EF76E000EF86E0101F5 -:103E40000900F550A16F0900F550A26F03E1A167C9 -:103E500001D03DD00900F5509C6F0900F5509D6FD1 -:103E60000900F5509E6F09000900F550E96E090040 -:103E7000F550EA6E090009000900F5509F6F09002E -:103E8000F550A06F09000900F6CFA3F1F7CFA4F118 -:103E9000F8CFA5F19CC1F6FF9DC1F7FF9EC1F8FFC9 -:103EA00001019F5302E1A05307E00900F550EE6EB7 -:103EB0009F07F8E2A007F9D7A3C1F6FFA4C1F7FF57 -:103EC000A5C1F8FF0101A107000EA25BBFD7120038 -:103ED000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFB5 -:103EE000AC6AAB6AFD0EDBB0AC88DBA202D0AC8C56 -:103EF000AB8CDBB4AC8EDBA602D0AB8801D0AB8A36 -:103F0000DBB8AC849E98DBBAAC86DBAC02D09D8A71 -:103F100001D09D9A9E9ADBAE02D09D8801D09D98DB -:103F2000FB0EDB50AF6EFB0EFC0EDBCF01F001C0D1 -:103F300000F0016A0050B06EAC8AAB8E949C948EF7 -:103F4000AC50100B04E0AC50800B01E1948CE552B6 -:0A3F5000E5CFDAFFE7CFD9FF12003A -:063F5A00D9CFE6FFDACF2B -:103F6000E6FFE1CFD9FFE2CFDAFFE65229D820E021 -:103F7000C6A60AD025D8E66E20EC21F0E552DF6E09 -:103F8000DF5010E0DF5015D09E961AD8C96EC68853 -:103F90009EA6FED7C750040B05E1C750010B02E1F6 -:103FA000FE0E07D0FC0EDB2AFD0EE0E3DB2ADED797 -:103FB000000EE552E552E5CFDAFFE7CFD9FF120058 -:103FC000FC0EDBCFE9FFFD0EDBCFEAFFEF50120066 -:103FD000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFB4 -:103FE000C26AC06AFC0EDB407F0B3C0BC26EFB0E4C -:103FF000DBCFE6FFFC0EDB38F00B300BE552E710B1 -:10400000C16EFD0EDB50040DF350380B016EFD0E3A -:10401000DB380F0B070B006EFD0EDB50800B001022 -:104020000110C06EFC0EDBAE03D09E9C9D8CF28C0A -:0E403000C280E552E5CFDAFFE7CFD9FF1200DC -:02403E00FE0E74 -:10404000E3CFE9FFFF0EE3CFEAFFE9CFF3FFEACFCB -:10405000F4FFFB0EE35003E1FC0EE35009E0FB0E1E -:10406000E30602E2FC0EE306FD0EE350EE6EF1D72E -:104070001200FB0EE3CFF6FFFC0EE3CFF7FFFD0EC1 -:10408000E3CFF8FFFE0EE3CFE9FFFF0EE3CFEAFF39 -:10409000E9CFF3FFEACFF4FFEE66FED7ED52090059 -:0A40A000F5CFEFFFEE66FBD712002C -:0640AA002DD8FD0EDB50D5 -:1040B000A86EA69EA69CA684F250800B01E0010E7D -:1040C0000101C16FF29E550EA76EAA0EA76EA682C1 -:1040D000C151E8B0F28EE8A0F29EA6B2FED7A19838 -:1040E000A694E552E7CFD9FF12000DD8A69EA69C54 -:1040F000A680020EE66E6DEC22F0E552A850E55265 -:10410000E7CFD9FF1200D9CFE6FFE1CFD9FFFE0EEE -:06411000DB50A96E120055 -:0A411600D9CFE6FFDACFE6FFE1CFD4 -:10412000D9FFE2CFDAFFE652E652FC0EDBCF00F019 -:10413000FD0EDBCF01F0060ED89000360136E80404 -:10414000FBE100C0DEFF01C0DDFF010EDB50BE6EF3 -:10415000DF50E840E8403F0B300B006ECF0EBD143F -:104160000010BD6EE552E552E552E5CFDAFFE7CF2C -:04417000D9FF120061 -:0C417400276A266A256A246A200EE76E7E -:10418000D890283629362A362B3624362536263638 -:1041900027362D50245C2E5025582F50265830504D -:1041A000275809E32D50245E2E50255A2F50265AA9 -:0C41B0003050275A282AE72EE4D71200CE -:0441BC00D9CFE6FF72 -:1041C000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB5019 -:1041D000360BB16EB36AB26AA192FD0EDBAE02D0AD -:1041E000A08201D0A092DBB2CD86DBA002D0B18E3E -:1041F00001D0B19EB180E552E5CFDAFFE7CFD9FF1C -:024200001200AA -:0E420200D9CFE6FFDACFE6FFE1CFD9FFE2CF5A -:10421000DAFFE652F20E0101C017ABAC03D0C09139 -:10422000ABB0C081ABB4C085ABB2C087AE50DF6E5F -:10423000DF50E552E552E5CFDAFFE7CFD9FF1200B4 -:10424000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF41 -:10425000FD0EDB50C96EC6AE02D0FF0E09D0C7B04E -:10426000FED781EC22F0C5AC02D0FE0E01D0000ECC -:0C427000E552E5CFDAFFE7CFD9FF1200DE -:04427C0031393A3169 -:10428000383A35340020004D617920303820323002 -:10429000313000526F626F7420496E7465726661CE -:1042A000636520312E300A4F6C6976696572204251 -:0742B0004943484C45520050 -:0842B800D9CFE6FFDACFE6FFE3 -:1042C000E1CFD9FFE2CFDAFFE652E652FC0EDBCFB8 -:1042D000DEFFDBCFDDFF010EDB50B36EDF50B26ED1 -:1042E000E552E552E552E5CFDAFFE7CFD9FF1200FC -:1042F000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF91 -:10430000E652E652FC0EDBCFDEFFDBCFDDFF010E17 -:10431000DB50D76EDF50D66EE552E552E552E5CF61 -:08432000DAFFE7CFD9FF12001C -:08432800D9CFE6FFDACFE6FF72 -:10433000E1CFD9FFE2CFDAFFFD0EDB507F0BD56E68 -:10434000D76AD66AF294FD0EDBAE02D0F28A01D0B3 -:10435000F29AD58EE552E5CFDAFFE7CFD9FF12000A -:10436000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF20 -:10437000FD0EDB50FB0BCA6ECC6A9E92FD0EDBAECF -:1043800002D09D8201D09D92CA84E552E5CFDAFF2A -:06439000E7CFD9FF120087 -:0A439600D9CFE6FFDACFE6FFE1CF52 -:1043A000D9FFE2CFDAFF3F0EC716C66AC56AFD0E17 -:1043B000DB50C612FC0EDB50C71293829380C68A74 -:0C43C000E552E5CFDAFFE7CFD9FF12008D -:0443CC00D9CFE6FF60 -:1043D000E1CFD9FF01010ED8EF50000803E28B298D -:1043E0001F0B8B6F07D8FE0EDBCFEFFFE552E7CF39 -:1043F000D9FF12008B51EA6A6B0FE96E010EEA22B7 -:024400001200A8 -:0E440200D9CFE6FFDACFE6FFE1CFD9FFE2CF58 -:10441000DAFF0C0EBD129494CA94FD0EDB50CB6EE5 -:10442000CA84E552E5CFDAFFE7CFD9FF12009494B2 -:02443000120078 -:0E443200D9CFE6FFDACFE6FFE1CFD9FFE2CF28 -:10444000DAFFFD0EDB407F0B3C0B006EC30EC21487 -:104450000010C26EC282E552E5CFDAFFE7CFD9FF86 -:02446000120048 -:0E446200FF0EE350376EEF0E01D0F30EE76E43 -:10447000E72E38EF22F00C0E366EE76AE72E3EEF9D -:1044800022F0362E3DEF22F0372E36EF22F01200CA -:10449000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFEF -:1044A000ACAC04D0AC900101C0B3AC80FD0EDB50CD -:0E44B000AD6EE552E5CFDAFFE7CFD9FF12007F -:0244BE0013EEFB -:1044C00000F023EE00F0F86A239C19EC1FF096EC44 -:0A44D00022F0BDEC04F0FBD712004F -:0644DA00FF0EE350E84E66 -:1044E0001200000000D000D000D0E82EFAD7120051 -:1044F000C450036E026AC3500210F36E03C0F4FF8F -:024500001200A7 -:0E4502001F0EC514FDE1C750040BFAE11200B4 -:0E45100000EE00F00F0EEE6AEA62FDD7120018 -:02451E00C25089 -:08452000020B01E0010E120084 -:04452800C69A12001D -:02452C0012007B -:02452E0000008B -:074530000000000000000084 -:094537000000000000000000007B -:074540000000000000000074 -:094547000000000001000000006A -:0345500000000068 -:0D455300000000000000000000000000005B +:10389000CB0E93169494060EE66EAFEC21F0E55233 +:1038A000FE0EDBA00CD0AF0EE66E93EC21F0E552DD +:1038B000000EE66EE66A77EC21F0E55204D0820E47 +:1038C000E66E93EC21F0E55281948294819A81987E +:1038D000ECD0E2D8D880000E01019455000E955529 +:1038E000000E9655000E97550EE29407000E955B5C +:1038F000965B975B945195119611971104E1BD6AFF +:103900008294819A81981200D9CFE6FF8184CDD02C +:10391000D9CFE6FF8194C9D0D9CFE6FFE1CFD9FF57 +:10392000F80EDBCF94F1F90EDBCF95F1FA0EDBCF79 +:1039300096F1FB0EDBCF97F1280E2D6E2E6A2F6AC3 +:10394000306A94C128F095C129F096C12AF097C138 +:103950002BF0B9EC20F028C094F129C095F12AC0D1 +:1039600096F12BC097F198D8FD0EDB50E8B0818A14 +:10397000E8A0819AFD0EDB1CE8B08188E8A0819860 +:103980004A0EE66E00EC22F0E552FC0EDBCF16F09C +:1039900016C02BF0BDEC16F029C012F02AC013F0AF +:1039A0002BC014F02CC015F02E6A2F6A7F0E306EDB +:1039B000430E316E95EC17F029C00EF02AC00FF0BF +:1039C0002BC010F02CC011F02E6A2F6A200E306E22 +:1039D0003F0E316EE8EC17F029C00AF02AC00BF058 +:1039E0002BC00CF02CC00DF02E6A1B0E2F6E370E64 +:1039F000306E4C0E316EE8EC17F029C006F02AC08C +:103A000007F02BC008F02CC009F02E6A400E2F6E74 +:103A10001C0E306E460E316E95EC17F073EC18F0FC +:103A2000CEEC16F029C002F02AC003F02BC004F03F +:103A30002CC005F02E6A2F6A800E306E410E316E5A +:103A400095EC17F073EC18F02AC000F02BC001F0D1 +:103A50002AC0E6FF2BC0E6FF8AEC20F0E552E552D3 +:103A600024D08150200B06E08150100B03E18350DD +:103A7000400B09E08150200B0EE18150100B0BE050 +:103A80008350800B08E1BD6A82940101946B956BB1 +:103A9000966B976B010C000CA00EE66E150EE66E91 +:103AA00077EC21F0E552E5521200E552E7CFD9FF5D +:023AB000120002 +:0E3AB200050EE66E060E8CD8070E8AD8080E9A +:103AC00088D8090E7ED80A0E80D80B0E7AD80C0E34 +:103AD0007CD80D0E76D80E0E78D80F0E72D8100E38 +:103AE00074D8110EC5EF1DF0D9CFE6FFE1CFD9FF95 +:103AF00051D8FD0EDBCFE6FF1FEC21F0E552C58467 +:103B000093EC22F0E552E7CFD9FF1200D9CFE6FFC0 +:103B1000E1CFD9FF030EE126020EDB6A3BD8C58256 +:103B200080EC22F0E90EE66E1FEC21F0E552C5862E +:103B3000DE6ADD6ADECF00F0DDCF01F0E80E005C6A +:103B4000030E01580BE2C7A004D0020EC9CFDBFF61 +:103B500005D0DF2A010EEEE3DB2AECD7C58AC58843 +:103B600080EC22F0C58480EC22F093EC22F0020E6F +:103B7000DB50006E030EE15C02E2E16AE552E16EA9 +:103B80000050E552E7CFD9FF1200E66EADDFE552F7 +:103B9000E5521200800EE66E080EE66ECAEC21F0C9 +:103BA000E552E552C58080EC22F0E80EE66E1FEC8F +:103BB00021F0E552FE0EDBCFE6FF1FEC21F0E552CF +:103BC0001200E3DFC40EE66E1200DFDF090EE66EC0 +:0A3BD0001200DBDF050EE66E1200A6 +:063BDA0036D857D856D87A +:103BE00055D84DD8430E54D057D8430E51D054D841 +:103BF000FD0EDB5002E0530E01D0730E49D04CD8BD +:103C0000FD0EDB5002E0420E01D0620E41D044D8DE +:103C1000480E3ED041D84C0EE66E1FEC21F0E55226 +:103C200031D8FC0EDBCFE6FF1FEC21F020D00CD802 +:103C3000FC0EDBCFE6FFFD0E36D006D823D8FB0EF8 +:103C4000DBCFE6FFFC0E2FD0D9CFE6FFE1CFD9FFC7 +:103C5000800EE66E080EE66ECAEC21F0E552E552E3 +:103C6000C58080EC22F0FE0EDBCFE6FF18D0E552D7 +:103C7000C58493EC22F0E552E7CFD9FF12001B0E6A +:103C8000E66E0DD0FD0EDBCFE6FF09D0E66A07D069 +:103C9000E66E1FEC21F0EBD7D7DF3FEF1EF01FECF5 +:103CA00021F0E5521200DBCFE6FFACEC1FF0E5524D +:023CB000DED75D +:0E3CB200040120511F0B010801E012002451F3 +:103CC00001E01200060E215D21E12351230A1BE0D1 +:103CD000010A0CE0030A1AE10101010517E10101E3 +:103CE000A40E116F3D0E126F090E09D001010105DE +:103CF0000DE101010B0E116F3E0E126F1D0E146FC0 +:103D0000156BC00E02D00101800E136F040120510B +:103D1000600BE842E842E842E842E842010801E07C +:103D2000120021510B0A26E0080A19E0090A11E0E5 +:103D3000080A05E00B0A23E0080A21E0120001014D +:103D4000BE0E116F010E126F010E146F156BC10EB6 +:103D50000FD00101800E136F23C4BEF112000101C8 +:103D6000BF0E116F010E126F010E146F156B810ED5 +:103D7000136F12000101800E136F22C4BFF11200F5 +:103D80001201000200000008D80404000200010231 +:103D9000000109022900010100C0320904000002EB +:103DA00003000000092111010001221D0007058107 +:103DB0000340000107050103400001040309042C2E +:103DC000034D006F00620069006C00650020005226 +:103DD000006F0062006F007400200050006C0061F2 +:103DE00000740066006F0072006D00200352006FC7 +:103DF0000062006F007400200049006E00740065CE +:103E000000720066006100630065000600FF0901A2 +:103E1000A10119012940150026FF00750895408170 +:103E200000190129409100C0923DBB3DBF3DEB3DD3 +:103E30002A0EF66E080EF76E000EF86E01010900EC +:103E4000F550A16F0900F550A26F03E1A16701D001 +:103E50003DD00900F5509C6F0900F5509D6F090099 +:103E6000F5509E6F09000900F550E96E0900F55004 +:103E7000EA6E090009000900F5509F6F0900F5502E +:103E8000A06F09000900F6CFA3F1F7CFA4F1F8CF96 +:103E9000A5F19CC1F6FF9DC1F7FF9EC1F8FF01018E +:103EA0009F5302E1A05307E00900F550EE6E9F0713 +:103EB000F8E2A007F9D7A3C1F6FFA4C1F7FFA5C197 +:0E3EC000F8FF0101A107000EA25BBFD71200A0 +:023ECE00D9CF4A +:103ED000E6FFDACFE6FFE1CFD9FFE2CFDAFFAC6A47 +:103EE000AB6AFD0EDBB0AC88DBA202D0AC8CAB8C35 +:103EF000DBB4AC8EDBA602D0AB8801D0AB8ADBB8DA +:103F0000AC849E98DBBAAC86DBAC02D09D8A01D033 +:103F10009D9A9E9ADBAE02D09D8801D09D98FB0EA3 +:103F2000DB50AF6EFB0EFC0EDBCF01F001C000F0EA +:103F3000016A0050B06EAC8AAB8E949C948EAC50EB +:103F4000100B04E0AC50800B01E1948CE552E5CFFE +:083F5000DAFFE7CFD9FF1200F0 +:083F5800D9CFE6FFDACFE6FF46 +:103F6000E1CFD9FFE2CFDAFFE65229D820E0C6A69A +:103F70000AD025D8E66E1FEC21F0E552DF6EDF5047 +:103F800010E0DF5015D09E961AD8C96EC6889EA63E +:103F9000FED7C750040B05E1C750010B02E1FE0E2E +:103FA00007D0FC0EDB2AFD0EE0E3DB2ADED7000E95 +:103FB000E552E552E5CFDAFFE7CFD9FF1200FC0E5C +:0E3FC000DBCFE9FFFD0EDBCFEAFFEF50120072 +:023FCE00D9CF49 +:103FD000E6FFDACFE6FFE1CFD9FFE2CFDAFFC26A30 +:103FE000C06AFC0EDB407F0B3C0BC26EFB0EDBCFCE +:103FF000E6FFFC0EDB38F00B300BE552E710C16E2C +:10400000FD0EDB50040DF350380B016EFD0EDB3856 +:104010000F0B070B006EFD0EDB50800B0010011024 +:10402000C06EFC0EDBAE03D09E9C9D8CF28CC280D9 +:0C403000E552E5CFDAFFE7CFD9FF120020 +:04403C00FE0EE3CFC2 +:10404000E9FFFF0EE3CFEAFFE9CFF3FFEACFF4FF8A +:10405000FB0EE35003E1FC0EE35009E0FB0EE30628 +:1040600002E2FC0EE306FD0EE350EE6EF1D7120005 +:10407000FB0EE3CFF6FFFC0EE3CFF7FFFD0EE3CF21 +:10408000F8FFFE0EE3CFE9FFFF0EE3CFEAFFE9CF33 +:10409000F3FFEACFF4FFEE66FED7ED520900F5CF4D +:0840A000EFFFEE66FBD71200F2 +:0840A8002DD8FD0EDB50A86EBF +:1040B000A69EA69CA684F250800B01E0010E010191 +:1040C000C16FF29E550EA76EAA0EA76EA682C151B1 +:1040D000E8B0F28EE8A0F29EA6B2FED7A198A69410 +:1040E000E552E7CFD9FF12000DD8A69EA69CA68068 +:1040F000020EE66E6CEC22F0E552A850E552E7CFD6 +:10410000D9FF1200D9CFE6FFE1CFD9FFFE0EDB5079 +:04411000A96E120082 +:0C411400D9CFE6FFDACFE6FFE1CFD9FFFC +:10412000E2CFDAFFE652E652FC0EDBCF00F0FD0EE6 +:10413000DBCF01F0060ED89000360136E804FBE133 +:1041400000C0DEFF01C0DDFF010EDB50BE6EDF50A0 +:10415000E840E8403F0B300B006ECF0EBD1400105E +:10416000BD6EE552E552E552E5CFDAFFE7CFD9FF64 +:0241700012003B +:0E417200276A266A256A246A200EE76ED89016 +:10418000283629362A362B36243625362636273643 +:104190002D50245C2E5025582F502658305027582B +:1041A00009E32D50245E2E50255A2F50265A3050A8 +:0A41B000275A282AE72EE4D7120050 +:0641BA00D9CFE6FFDACFC9 +:1041C000E6FFE1CFD9FFE2CFDAFFFD0EDB50360B81 +:1041D000B16EB36AB26AA192FD0EDBAE02D0A082CC +:1041E00001D0A092DBB2CD86DBA002D0B18E01D08F +:1041F000B19EB180E552E5CFDAFFE7CFD9FF1200DB +:10420000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF81 +:10421000E652F20E0101C017ABAC03D0C091ABB0B7 +:10422000C081ABB4C085ABB2C087AE50DF6EDF508B +:0E423000E552E552E5CFDAFFE7CFD9FF1200E5 +:02423E00D9CFD6 +:10424000E6FFDACFE6FFE1CFD9FFE2CFDAFFFD0EDE +:10425000DB50C96EC6AE02D0FF0E09D0C7B0FED784 +:1042600080EC22F0C5AC02D0FE0E01D0000EE5526B +:0A427000E5CFDAFFE7CFD9FF120017 +:06427A0032303A30373A01 +:1042800032350020004D6179203038203230313015 +:1042900000526F626F7420496E7465726661636567 +:1042A00020312E300A4F6C6976696572204249438D +:0542B000484C455200DE +:0A42B600D9CFE6FFDACFE6FFE1CF33 +:1042C000D9FFE2CFDAFFE652E652FC0EDBCFDEFF8B +:1042D000DBCFDDFF010EDB50B36EDF50B26EE55277 +:0E42E000E552E552E5CFDAFFE7CFD9FF120035 +:0242EE00D9CF26 +:1042F000E6FFDACFE6FFE1CFD9FFE2CFDAFFE65201 +:10430000E652FC0EDBCFDEFFDBCFDDFF010EDB5024 +:10431000D76EDF50D66EE552E552E552E5CFDAFFB3 +:06432000E7CFD9FF1200F7 +:0A432600D9CFE6FFDACFE6FFE1CFC2 +:10433000D9FFE2CFDAFFFD0EDB507F0BD56ED76AD7 +:10434000D66AF294FD0EDBAE02D0F28A01D0F29A68 +:0E435000D58EE552E5CFDAFFE7CFD9FF120098 +:02435E00D9CFB5 +:10436000E6FFDACFE6FFE1CFD9FFE2CFDAFFFD0EBD +:10437000DB50FB0BCA6ECC6A9E92FD0EDBAE02D008 +:104380009D8201D09D92CA84E552E5CFDAFFE7CF46 +:04439000D9FF12003F +:0C439400D9CFE6FFDACFE6FFE1CFD9FF7A +:1043A000E2CFDAFF3F0EC716C66AC56AFD0EDB50C4 +:1043B000C612FC0EDB50C71293829380C68AE55268 +:0A43C000E5CFDAFFE7CFD9FF1200C6 +:0643CA00D9CFE6FFE1CFB0 +:1043D000D9FF01010ED8EF50000803E28B291F0B13 +:1043E0008B6F07D8FE0EDBCFEFFFE552E7CFD9FF8B +:1043F00012008B51EA6A6B0FE96E010EEA2212007D +:10440000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF7F +:104410000C0EBD129494CA94FD0EDB50CB6ECA8470 +:10442000E552E5CFDAFFE7CFD9FF120094941200EE +:10443000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF4F +:10444000FD0EDB407F0B3C0B006EC30EC214001050 +:10445000C26EC282E552E5CFDAFFE7CFD9FF120084 +:10446000FF0EE350376EEF0E01D0F30EE76EE72E2E +:1044700037EF22F00C0E366EE76AE72E3DEF22F0A2 +:0E448000362E3CEF22F0372E35EF22F01200E0 +:02448E00D9CF84 +:10449000E6FFDACFE6FFE1CFD9FFE2CFDAFFACAC3F +:1044A00004D0AC900101C0B3AC80FD0EDB50AD6E0A +:0C44B000E552E5CFDAFFE7CFD9FF12009C +:0444BC0013EE00F00B +:1044C00023EE00F0F86A239C18EC1FF095EC22F024 +:0844D000BDEC04F0FBD7120063 +:0844D800FF0EE350E84E120054 +:0E44E000000000D000D000D0E82EFAD7120065 +:0244EE00C450B8 +:1044F000036E026AC3500210F36E03C0F4FF120091 +:0E4500001F0EC514FDE1C750040BFAE11200B6 +:02450E0000EEBD +:0C45100000F00F0EEE6AEA62FDD7120008 +:04451C00C250020B7C +:0645200001E0010E120093 +:04452600C69A12001F +:02452A0012007D +:04452C00000000008B +:05453000000000000086 +:0B45350000000000000000000000007B +:05454000000000000076 +:094545000000000001000000006C +:02454E0000006B +:01455000006A +:0F4551000000000000000000000000000000005B :10456000000000000000000000000000000000004B -:044570000000000047 -:0C4574000000000000000000000000003B +:02457000000049 +:0E45720000000000000000000000000000003B :10458000000000000000000000000000000000002B -:08459000000000000000000023 +:0645900000000000000025 :00000001FF diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map index 733a7fd..113cb35 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Sat May 08 19:19:00 2010 +Linker Map File - Created Sat May 08 20:07:30 2010 Section Info Section Type Address Location Size(Bytes) @@ -17,113 +17,113 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 PROG code 0x002d7a program 0x000544 .code_infrared.o code 0x0032be program 0x00036e .code_servo.o code 0x00362c program 0x00025c - .code_mcc.o code 0x003888 program 0x00022c - .code_adjd-s371.o code 0x003ab4 program 0x000128 - .code_lcd.o code 0x003bdc program 0x0000d8 - .code_usb_function_hid.o code 0x003cb4 program 0x0000ce -.romdata_usb_descriptors.o romdata 0x003d82 program 0x0000b0 - _cinit_scn code 0x003e32 program 0x00009e - .code_uopen.o code 0x003ed0 program 0x00008a - .code_i2c_puts.o code 0x003f5a program 0x000076 - .code_adcopen.o code 0x003fd0 program 0x00006e - STRING code 0x00403e program 0x00006c - .code_eeprom.o code 0x0040aa program 0x00006c - .code_pw1setdc.o code 0x004116 program 0x00005e - .code_fxd3232u.o code 0x004174 program 0x000048 - .code_t3open.o code 0x0041bc program 0x000046 - .code_uread.o code 0x004202 program 0x00003e - .code_i2c_writ.o code 0x004240 program 0x00003c - .stringtable romdata 0x00427c program 0x00003b - .idata_i2c_open.o_i romdata 0x0042b7 program 0x000000 - .romdata_i2c_open.o romdata 0x0042b7 program 0x000000 - .romdata_uread.o romdata 0x0042b7 program 0x000000 - .idata_uread.o_i romdata 0x0042b7 program 0x000000 - .romdata_adcread.o romdata 0x0042b7 program 0x000000 - .idata_adcread.o_i romdata 0x0042b7 program 0x000000 -.idata_usb_descriptors.o_i romdata 0x0042b7 program 0x000000 - .romdata_uopen.o romdata 0x0042b7 program 0x000000 - .idata_pw1open.o_i romdata 0x0042b7 program 0x000000 - .idata_uopen.o_i romdata 0x0042b7 program 0x000000 - .romdata_pw1open.o romdata 0x0042b7 program 0x000000 - .romdata_t3open.o romdata 0x0042b7 program 0x000000 - .idata_t3open.o_i romdata 0x0042b7 program 0x000000 - .romdata_t2open.o romdata 0x0042b7 program 0x000000 - .idata_t2open.o_i romdata 0x0042b7 program 0x000000 - .romdata_t0open.o romdata 0x0042b7 program 0x000000 - .idata_t0open.o_i romdata 0x0042b7 program 0x000000 - .idata_c018i.o_i romdata 0x0042b7 program 0x000000 - .romdata_c018i.o romdata 0x0042b7 program 0x000000 - .romdata_i2c_puts.o romdata 0x0042b7 program 0x000000 - .idata_i2c_puts.o_i romdata 0x0042b7 program 0x000000 - .romdata___init.o romdata 0x0042b7 program 0x000000 - .idata___init.o_i romdata 0x0042b7 program 0x000000 - .romdata_uwrite.o romdata 0x0042b7 program 0x000000 - .idata_uwrite.o_i romdata 0x0042b7 program 0x000000 - .romdata_t3write.o romdata 0x0042b7 program 0x000000 - .idata_t3write.o_i romdata 0x0042b7 program 0x000000 - .romdata_t0write.o romdata 0x0042b7 program 0x000000 - .idata_t0write.o_i romdata 0x0042b7 program 0x000000 - .romdata_i2c_writ.o romdata 0x0042b7 program 0x000000 - .idata_i2c_writ.o_i romdata 0x0042b7 program 0x000000 - .romdata_udefs.o romdata 0x0042b7 program 0x000000 - .idata_udefs.o_i romdata 0x0042b7 program 0x000000 - .romdata_pw1setdc.o romdata 0x0042b7 program 0x000000 - .idata_pw1setdc.o_i romdata 0x0042b7 program 0x000000 - .romdata_adcselchconv.o romdata 0x0042b7 program 0x000000 - .idata_adcselchconv.o_i romdata 0x0042b7 program 0x000000 - .romdata_lcd.o romdata 0x0042b7 program 0x000000 - .idata_eeprom.o_i romdata 0x0042b7 program 0x000000 - .idata_lcd.o_i romdata 0x0042b7 program 0x000000 - .romdata_eeprom.o romdata 0x0042b7 program 0x000000 - .romdata_infrared.o romdata 0x0042b7 program 0x000000 - .idata_adcbusy.o_i romdata 0x0042b7 program 0x000000 - .romdata_adcbusy.o romdata 0x0042b7 program 0x000000 - .romdata_adjd-s371.o romdata 0x0042b7 program 0x000000 - .idata_adjd-s371.o_i romdata 0x0042b7 program 0x000000 - .idata_i2c_clos.o_i romdata 0x0042b7 program 0x000000 - .romdata_i2c_clos.o romdata 0x0042b7 program 0x000000 - .idata_usb_device.o_i romdata 0x0042b7 program 0x000000 - .romdata_mcc.o romdata 0x0042b7 program 0x000000 - .romdata_usb_device.o romdata 0x0042b7 program 0x000000 - .romdata_main.o romdata 0x0042b7 program 0x000000 - .idata_fxd3232u.o_i romdata 0x0042b7 program 0x000000 - .romdata_servo.o romdata 0x0042b7 program 0x000000 - .romdata_fxd3232u.o romdata 0x0042b7 program 0x000000 - .romdata_error.o romdata 0x0042b7 program 0x000000 - .idata_i2c_idle.o_i romdata 0x0042b7 program 0x000000 - .romdata_i2c_idle.o romdata 0x0042b7 program 0x000000 -.idata_usb_function_hid.o_i romdata 0x0042b7 program 0x000000 - .idata_adcopen.o_i romdata 0x0042b7 program 0x000000 - .romdata_ax12.o romdata 0x0042b7 program 0x000000 - .romdata_adcopen.o romdata 0x0042b7 program 0x000000 -.romdata_usb_function_hid.o romdata 0x0042b7 program 0x000000 - .code_t3write.o code 0x0042b8 program 0x000038 - .code_c018i.o code 0x0042b8 program 0x000000 - .code_udefs.o code 0x0042b8 program 0x000000 - .code_usb_descriptors.o code 0x0042b8 program 0x000000 - .code_t0write.o code 0x0042f0 program 0x000038 - .code_t0open.o code 0x004328 program 0x000038 - .code_t2open.o code 0x004360 program 0x000036 - .code_i2c_open.o code 0x004396 program 0x000036 - .code_error.o code 0x0043cc program 0x000036 - .code_pw1open.o code 0x004402 program 0x000030 - .code_adcselchconv.o code 0x004432 program 0x000030 - D10KTCYXCODE code 0x004462 program 0x00002e - .code_uwrite.o code 0x004490 program 0x00002e - _startup_scn code 0x0044be program 0x00001c - D10TCYXCODE code 0x0044da program 0x000016 - .code_adcread.o code 0x0044f0 program 0x000012 - .code_i2c_idle.o code 0x004502 program 0x00000e - .code code 0x004510 program 0x00000e - .code_adcbusy.o code 0x00451e program 0x00000a - .code_i2c_clos.o code 0x004528 program 0x000004 - .code___init.o code 0x00452c program 0x000002 - .idata_servo.o_i romdata 0x00452e program 0x000009 - .idata_mcc.o_i romdata 0x004537 program 0x000010 - .idata_main.o_i romdata 0x004547 program 0x000009 - .idata_infrared.o_i romdata 0x004550 program 0x000003 - .idata_error.o_i romdata 0x004553 program 0x000021 - .idata_ax12.o_i romdata 0x004574 program 0x000024 + .code_mcc.o code 0x003888 program 0x00022a + .code_adjd-s371.o code 0x003ab2 program 0x000128 + .code_lcd.o code 0x003bda program 0x0000d8 + .code_usb_function_hid.o code 0x003cb2 program 0x0000ce +.romdata_usb_descriptors.o romdata 0x003d80 program 0x0000b0 + _cinit_scn code 0x003e30 program 0x00009e + .code_uopen.o code 0x003ece program 0x00008a + .code_i2c_puts.o code 0x003f58 program 0x000076 + .code_adcopen.o code 0x003fce program 0x00006e + STRING code 0x00403c program 0x00006c + .code_eeprom.o code 0x0040a8 program 0x00006c + .code_pw1setdc.o code 0x004114 program 0x00005e + .code_fxd3232u.o code 0x004172 program 0x000048 + .code_t3open.o code 0x0041ba program 0x000046 + .code_uread.o code 0x004200 program 0x00003e + .code_i2c_writ.o code 0x00423e program 0x00003c + .stringtable romdata 0x00427a program 0x00003b + .idata_i2c_open.o_i romdata 0x0042b5 program 0x000000 + .romdata_i2c_open.o romdata 0x0042b5 program 0x000000 + .romdata_uread.o romdata 0x0042b5 program 0x000000 + .idata_uread.o_i romdata 0x0042b5 program 0x000000 + .romdata_adcread.o romdata 0x0042b5 program 0x000000 + .idata_adcread.o_i romdata 0x0042b5 program 0x000000 +.idata_usb_descriptors.o_i romdata 0x0042b5 program 0x000000 + .romdata_uopen.o romdata 0x0042b5 program 0x000000 + .idata_pw1open.o_i romdata 0x0042b5 program 0x000000 + .idata_uopen.o_i romdata 0x0042b5 program 0x000000 + .romdata_pw1open.o romdata 0x0042b5 program 0x000000 + .romdata_t3open.o romdata 0x0042b5 program 0x000000 + .idata_t3open.o_i romdata 0x0042b5 program 0x000000 + .romdata_t2open.o romdata 0x0042b5 program 0x000000 + .idata_t2open.o_i romdata 0x0042b5 program 0x000000 + .romdata_t0open.o romdata 0x0042b5 program 0x000000 + .idata_t0open.o_i romdata 0x0042b5 program 0x000000 + .idata_c018i.o_i romdata 0x0042b5 program 0x000000 + .romdata_c018i.o romdata 0x0042b5 program 0x000000 + .romdata_i2c_puts.o romdata 0x0042b5 program 0x000000 + .idata_i2c_puts.o_i romdata 0x0042b5 program 0x000000 + .romdata___init.o romdata 0x0042b5 program 0x000000 + .idata___init.o_i romdata 0x0042b5 program 0x000000 + .romdata_uwrite.o romdata 0x0042b5 program 0x000000 + .idata_uwrite.o_i romdata 0x0042b5 program 0x000000 + .romdata_t3write.o romdata 0x0042b5 program 0x000000 + .idata_t3write.o_i romdata 0x0042b5 program 0x000000 + .romdata_t0write.o romdata 0x0042b5 program 0x000000 + .idata_t0write.o_i romdata 0x0042b5 program 0x000000 + .romdata_i2c_writ.o romdata 0x0042b5 program 0x000000 + .idata_i2c_writ.o_i romdata 0x0042b5 program 0x000000 + .romdata_udefs.o romdata 0x0042b5 program 0x000000 + .idata_udefs.o_i romdata 0x0042b5 program 0x000000 + .romdata_pw1setdc.o romdata 0x0042b5 program 0x000000 + .idata_pw1setdc.o_i romdata 0x0042b5 program 0x000000 + .romdata_adcselchconv.o romdata 0x0042b5 program 0x000000 + .idata_adcselchconv.o_i romdata 0x0042b5 program 0x000000 + .romdata_lcd.o romdata 0x0042b5 program 0x000000 + .idata_eeprom.o_i romdata 0x0042b5 program 0x000000 + .idata_lcd.o_i romdata 0x0042b5 program 0x000000 + .romdata_eeprom.o romdata 0x0042b5 program 0x000000 + .romdata_infrared.o romdata 0x0042b5 program 0x000000 + .idata_adcbusy.o_i romdata 0x0042b5 program 0x000000 + .romdata_adcbusy.o romdata 0x0042b5 program 0x000000 + .romdata_adjd-s371.o romdata 0x0042b5 program 0x000000 + .idata_adjd-s371.o_i romdata 0x0042b5 program 0x000000 + .idata_i2c_clos.o_i romdata 0x0042b5 program 0x000000 + .romdata_i2c_clos.o romdata 0x0042b5 program 0x000000 + .idata_usb_device.o_i romdata 0x0042b5 program 0x000000 + .romdata_mcc.o romdata 0x0042b5 program 0x000000 + .romdata_usb_device.o romdata 0x0042b5 program 0x000000 + .romdata_main.o romdata 0x0042b5 program 0x000000 + .idata_fxd3232u.o_i romdata 0x0042b5 program 0x000000 + .romdata_servo.o romdata 0x0042b5 program 0x000000 + .romdata_fxd3232u.o romdata 0x0042b5 program 0x000000 + .romdata_error.o romdata 0x0042b5 program 0x000000 + .idata_i2c_idle.o_i romdata 0x0042b5 program 0x000000 + .romdata_i2c_idle.o romdata 0x0042b5 program 0x000000 +.idata_usb_function_hid.o_i romdata 0x0042b5 program 0x000000 + .idata_adcopen.o_i romdata 0x0042b5 program 0x000000 + .romdata_ax12.o romdata 0x0042b5 program 0x000000 + .romdata_adcopen.o romdata 0x0042b5 program 0x000000 +.romdata_usb_function_hid.o romdata 0x0042b5 program 0x000000 + .code_t3write.o code 0x0042b6 program 0x000038 + .code_c018i.o code 0x0042b6 program 0x000000 + .code_udefs.o code 0x0042b6 program 0x000000 + .code_usb_descriptors.o code 0x0042b6 program 0x000000 + .code_t0write.o code 0x0042ee program 0x000038 + .code_t0open.o code 0x004326 program 0x000038 + .code_t2open.o code 0x00435e program 0x000036 + .code_i2c_open.o code 0x004394 program 0x000036 + .code_error.o code 0x0043ca program 0x000036 + .code_pw1open.o code 0x004400 program 0x000030 + .code_adcselchconv.o code 0x004430 program 0x000030 + D10KTCYXCODE code 0x004460 program 0x00002e + .code_uwrite.o code 0x00448e program 0x00002e + _startup_scn code 0x0044bc program 0x00001c + D10TCYXCODE code 0x0044d8 program 0x000016 + .code_adcread.o code 0x0044ee program 0x000012 + .code_i2c_idle.o code 0x004500 program 0x00000e + .code code 0x00450e program 0x00000e + .code_adcbusy.o code 0x00451c program 0x00000a + .code_i2c_clos.o code 0x004526 program 0x000004 + .code___init.o code 0x00452a program 0x000002 + .idata_servo.o_i romdata 0x00452c program 0x000009 + .idata_mcc.o_i romdata 0x004535 program 0x000010 + .idata_main.o_i romdata 0x004545 program 0x000009 + .idata_infrared.o_i romdata 0x00454e program 0x000003 + .idata_error.o_i romdata 0x004551 program 0x000021 + .idata_ax12.o_i romdata 0x004572 program 0x000024 .tmpdata udata 0x000000 data 0x000022 MATH_DATA udata 0x000022 data 0x000014 DELAYDAT2 udata 0x000036 data 0x000001 @@ -214,9 +214,9 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 0x000800 0x000805 0x000808 0x00080d 0x000818 0x00081d - 0x00082a 0x0042b6 - 0x0042b8 0x004597 - 15761 out of 33048 program addresses used, program memory utilization is 47% + 0x00082a 0x0042b4 + 0x0042b6 0x004595 + 15759 out of 33048 program addresses used, program memory utilization is 47% @@ -224,15 +224,15 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 Name Address Location Storage File --------- --------- --------- --------- --------- BlinkUSBStatus 0x00183e program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - BusyADC 0x00451e program extern C:\MCC18\src\pmc_common\ADC\adcbusy.c - CloseI2C 0x004528 program extern C:\MCC18\src\pmc_common\i2c\i2c_clos.c - D10K_1 0x00446e program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10Kl 0x00447a program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10Kx 0x00446c program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10_1 0x0044ea program static C:\MCC18\src\traditional\delays\d10tcyx.asm - D10x 0x0044e2 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - Delay10KTCYx 0x004462 program extern C:\MCC18\src\traditional\delays\d10ktcyx.asm - Delay10TCYx 0x0044da program extern C:\MCC18\src\traditional\delays\d10tcyx.asm + BusyADC 0x00451c program extern C:\MCC18\src\pmc_common\ADC\adcbusy.c + CloseI2C 0x004526 program extern C:\MCC18\src\pmc_common\i2c\i2c_clos.c + D10K_1 0x00446c program static C:\MCC18\src\traditional\delays\d10ktcyx.asm + D10Kl 0x004478 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm + D10Kx 0x00446a program static C:\MCC18\src\traditional\delays\d10ktcyx.asm + D10_1 0x0044e8 program static C:\MCC18\src\traditional\delays\d10tcyx.asm + D10x 0x0044e0 program static C:\MCC18\src\traditional\delays\d10tcyx.asm + Delay10KTCYx 0x004460 program extern C:\MCC18\src\traditional\delays\d10ktcyx.asm + Delay10TCYx 0x0044d8 program extern C:\MCC18\src\traditional\delays\d10tcyx.asm FLO0832S 0x002d7e program extern C:\MCC18\src\traditional\math\cast08FP.asm FLO0832U 0x002d7a program extern C:\MCC18\src\traditional\math\cast08FP.asm FLO1632S 0x002da0 program extern C:\MCC18\src\traditional\math\cast16FP.asm @@ -243,31 +243,31 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 FPD32 0x002f2a program extern C:\MCC18\src\traditional\math\divFP.asm FPM32 0x002fd0 program extern C:\MCC18\src\traditional\math\mulFP.asm FPS32 0x002dfc program extern C:\MCC18\src\traditional\math\addFP.asm - FXD3232U 0x004174 program extern C:\MCC18\src\traditional\math\fxd3232u.c + FXD3232U 0x004172 program extern C:\MCC18\src\traditional\math\fxd3232u.c FXM1616U 0x0030aa program extern C:\MCC18\src\traditional\math\fxm1616u.asm High_ISR 0x000008 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c INT3216 0x0030e6 program extern C:\MCC18\src\traditional\math\castFP16.asm INT3232 0x003144 program extern C:\MCC18\src\traditional\math\castFP32.asm - IdleI2C 0x004502 program extern C:\MCC18\src\pmc_common\i2c\i2c_idle.c + IdleI2C 0x004500 program extern C:\MCC18\src\pmc_common\i2c\i2c_idle.c InitializeSystem 0x000984 program static C:\krobot\elec\boards\Interface_Robot\Firmware\main.c Low_ISR 0x000018 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - OpenADC 0x003fd0 program extern C:\MCC18\src\pmc_common\ADC\adcopen.c - OpenI2C 0x004396 program extern C:\MCC18\src\pmc_common\i2c\i2c_open.c - OpenPWM1 0x004402 program extern C:\MCC18\src\pmc_common\PWM\pw1open.c - OpenPWM1ConfigIO 0x00442e program extern C:\MCC18\src\pmc_common\PWM\pw1open.c - OpenTimer0 0x004328 program extern C:\MCC18\src\pmc_common\Timers\t0open.c - OpenTimer2 0x004360 program extern C:\MCC18\src\pmc_common\Timers\t2open.c - OpenTimer3 0x0041bc program extern C:\MCC18\src\pmc_common\Timers\t3open.c - OpenUSART 0x003ed0 program extern C:\MCC18\src\pmc_common\USART\uopen.c + OpenADC 0x003fce program extern C:\MCC18\src\pmc_common\ADC\adcopen.c + OpenI2C 0x004394 program extern C:\MCC18\src\pmc_common\i2c\i2c_open.c + OpenPWM1 0x004400 program extern C:\MCC18\src\pmc_common\PWM\pw1open.c + OpenPWM1ConfigIO 0x00442c program extern C:\MCC18\src\pmc_common\PWM\pw1open.c + OpenTimer0 0x004326 program extern C:\MCC18\src\pmc_common\Timers\t0open.c + OpenTimer2 0x00435e program extern C:\MCC18\src\pmc_common\Timers\t2open.c + OpenTimer3 0x0041ba program extern C:\MCC18\src\pmc_common\Timers\t3open.c + OpenUSART 0x003ece program extern C:\MCC18\src\pmc_common\USART\uopen.c ProcessIO 0x000a10 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - ReadADC 0x0044f0 program extern C:\MCC18\src\pmc_common\ADC\adcread.c - ReadEEPROM 0x0040ea program extern C:\krobot\elec\boards\Interface_Robot\Firmware\eeprom.c - ReadUSART 0x004202 program extern C:\MCC18\src\pmc_common\USART\uread.c + ReadADC 0x0044ee program extern C:\MCC18\src\pmc_common\ADC\adcread.c + ReadEEPROM 0x0040e8 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\eeprom.c + ReadUSART 0x004200 program extern C:\MCC18\src\pmc_common\USART\uread.c Remapped_High_ISR 0x000808 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c Remapped_Low_ISR 0x000818 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c ResetSource 0x001a56 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - SelChanConvADC 0x004432 program extern C:\MCC18\... [truncated message content] |
From: Olivier B. <Ba...@us...> - 2010-05-08 17:19:53
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via b7f9e286900257d6b0b3791b1767759b15ef982b (commit) from 0a76a1bcc9c4ddcca1672e62f43a87bb80b26758 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b7f9e286900257d6b0b3791b1767759b15ef982b Author: Olivier BICHLER <oli...@cr...> Date: Sat May 8 19:19:28 2010 +0200 Wrong output scale ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Interface_Robot/Firmware/infrared.c b/elec/boards/Interface_Robot/Firmware/infrared.c index 1796067..2c63936 100644 --- a/elec/boards/Interface_Robot/Firmware/infrared.c +++ b/elec/boards/Interface_Robot/Firmware/infrared.c @@ -51,7 +51,7 @@ void interruptIF(void) { break; case 2: - //OPTOSW1 = 0; + OPTOSW1 = 0; OPTOSW2 = 1; // Drre la convertion sur RA1 @@ -68,7 +68,7 @@ void interruptIF(void) { break; case 4: - //OPTOSW2 = 0; + OPTOSW2 = 0; // Traitement des rltats IF1_idx++; @@ -113,7 +113,7 @@ long getIFRange(char sensor) { return 0; } - return (long) (((float) IFrange / IF_AVR0 / IF_AVR1) * 5.0 / 1023.0); + return (long) (((float) IFrange / IF_AVR0 / IF_AVR1) * 5.0 / 1023.0 * 1000.0); } #endif diff --git a/elec/boards/Interface_Robot/Firmware/main.c b/elec/boards/Interface_Robot/Firmware/main.c index 2becbd3..2d20d46 100644 --- a/elec/boards/Interface_Robot/Firmware/main.c +++ b/elec/boards/Interface_Robot/Firmware/main.c @@ -603,6 +603,9 @@ void ProcessIO(void) { BlinkUSBStatus(); } + // User Application USB tasks + if((USBDeviceState < CONFIGURED_STATE)||(USBSuspendControl==1)) return; + #ifdef KROBOT_2010 interruptIF(); #endif @@ -625,8 +628,6 @@ void ProcessIO(void) { // test = 0; } */ - // User Application USB tasks - if((USBDeviceState < CONFIGURED_STATE)||(USBSuspendControl==1)) return; if (traj_engaged && checkTOR() && !HIDTxHandleBusy(USBInHandle)) { ToSendDataBuffer.HSEQ = 0; // Num sence PC diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof index 73426c0..57a1a0f 100644 Binary files a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof and b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof differ diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex index 21c56c2..d9b7b87 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex @@ -1,23 +1,23 @@ :020000040000FA -:060000004DEF22F012009A +:060000005FEF22F0120088 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:060800004DEF22F0120092 +:060800005FEF22F0120080 :060808003AEF04F01200BB :060818009AEF04F012004B -:06082A000600504500002D -:1008300026010000240000002F4500006B0100008D -:10084000210000002C450000BB0100000300000057 -:1008500023450000AF01000009000000134500001F -:100860008C010000100000000A450000A6010000F5 +:06082A0006007445000009 +:100830002601000024000000534500006B01000069 +:100840002100000050450000BB0100000300000033 +:1008500047450000AF0100000900000037450000D7 +:100860008C010000100000002E450000A6010000D1 :04087000090000007B :0C087400DACFE4FFE2CFDAFFE9CFE4FFC7 :10088000EACFE4FFF6CFE4FFF7CFE4FFF5CFE4FFD4 :10089000F3CFE4FFF4CFE4FFFACFE4FF00EE22F061 :1008A000140EE80403E3EECFE4FFFBD700EE00F004 :1008B000220EE80403E3EECFE4FFFBD7A4EC0DF037 -:1008C000A1A203D019EC1BF0A1929EAA03D0BFEC09 -:1008D00013F09E9AF2A403D058EC1CF0F294B7ECFB +:1008C000A1A203D02BEC1BF0A1929EAA03D0BFECF7 +:1008D00013F09E9AF2A403D06AEC1CF0F294B7ECE9 :1008E0000DF002E2E16AE552B5EC0DF0E55200EEE2 :1008F00021F0220EE80403E3E5CFEDFFFBD700EE85 :1009000035F0140EE80403E3E5CFEDFFFBD7E5CFA8 @@ -30,17 +30,17 @@ :10097000E5CFE0FFE5CFD8FF100004D84AEC0EF039 :1009800047D8FCD70F0EC11202D814EF0EF0EFECCF :100990000DF0E6522BEC0DF00101B86F070EB85DBB -:1009A00010E1E66A63EC20F0E552DF6E000EDF80B6 -:1009B000BFEC0DF0E66A1FEC22F0E552DF70BFECF1 +:1009A00010E1E66A75EC20F0E552DF6E000EDF80A4 +:1009B000BFEC0DF0E66A31EC22F0E552DF70BFECDF :1009C0000DF093809382948C948ED08EF28EF28C64 -:1009D000770EC86E070EE66EDCEC1DF0E5523F0E9A +:1009D000770EC86E070EE66EEEEC1DF0E5523F0E88 :1009E0008A1693160101AF6BB06BB16BB26B010E3F -:1009F000B36FBAEC13F004EC1BF0E66A32EC1CF0B7 -:100A0000E55248EC1DF05FEC19F0E55200EF0EF0F6 +:1009F000B36FBAEC13F016EC1BF0E66A44EC1CF093 +:100A0000E5525AEC1DF05FEC19F0E55200EF0EF0E4 :100A1000D9CFE6FFE1CFD9FF170EE126160EDB6A2C -:100A20000101B35102E01FEC0CF06FEC19F0200E45 -:100A30000101005D03E36D50020B02E015EF0CF0C5 -:100A4000160EDB5036E020EC1DF0000932E001010B +:100A20000101B35102E01FEC0CF0200E0101005D4A +:100A300003E36D50020B02E015EF0CF06FEC19F0C0 +:100A4000160EDB5036E032EC1DF0000932E00101F9 :100A5000B151B21102E1000E08D0B1C1E9FFB2C13B :100A6000EAFFEF50800B01E0010E000922E10501D1 :100A7000406B0101B451B42B0501416F05010C0E0F @@ -63,32 +63,32 @@ :100B80004DEF0BF00E0A02E1F4EF0AF0060A02E163 :100B900079EF0AF0040A01E1A0D20F0A01E1F5D1D0 :100BA000040A1AE0030A07E0010A02E0D4EF0BF09E -:100BB000FF0015EF0CF0E66A63EC20F0E552DF6E03 -:100BC000000EDB80DFCFE6FFE66A43EC20F0E55263 +:100BB000FF0015EF0CF0E66A75EC20F0E552DF6EF1 +:100BC000000EDB80DFCFE6FFE66A55EC20F0E55251 :100BD000E552FF0015EF0CF00101B151B21102E135 :100BE000000E08D0B1C1E9FFB2C1EAFFEF50800B9F :100BF00001E0010E000901E0C6D100C540F5050184 :100C0000416B0501030E426F0501436B050108515D :100C1000050A01E101D10F0A01E17ED00E0A71E05F :100C2000070A64E0010A20E0030A06E0010A01E085 -:100C300080D1B8C148F580D10501486B6F0E006EB8 +:100C300080D1B8C148F580D10501486B930E006E94 :100C4000420E016E026A00C0E6FF01C0E6FF02C06C -:100C5000E6FF480EE66E050EE66E27EC20F0036E0A -:100C6000050EE15E035068D10501486B630E006E0E +:100C5000E6FF480EE66E050EE66E39EC20F0036EF8 +:100C6000050EE15E035068D10501486B870E006EEA :100C7000420E016E026A00C0E6FF01C0E6FF02C03C -:100C8000E6FF480EE66E050EE66E27EC20F0036EDA -:100C9000050EE15E0350610E006E420E016E026AA7 +:100C8000E6FF480EE66E050EE66E39EC20F0036EC8 +:100C9000050EE15E0350850E006E420E016E026A83 :100CA00000C0E6FF01C0E6FF02C0E6FF480EE66EA8 -:100CB000050EE66E27EC20F0036E050EE15E035094 -:100CC000580E006E420E016E026A00C0E6FF01C0BF -:100CD000E6FF02C0E6FF480EE66E050EE66E27EC64 +:100CB000050EE66E39EC20F0036E050EE15E035082 +:100CC0007C0E006E420E016E026A00C0E6FF01C09B +:100CD000E6FF02C0E6FF480EE66E050EE66E39EC52 :100CE00020F0036E050EE15E035026D192CF48F549 :100CF00093CF49F594CF4AF595CF4BF596CF4CF568 :100D00001BD180CF48F581CF49F582CF4AF583CFFB :100D10004BF584CF4CF510D1800EE66E080EE66ED2 -:100D2000B9EC21F0E552E552C5806FEC22F0C00E1F -:100D3000E66E0EEC21F0E552E66A0EEC21F0E5528B -:100D4000C5826FEC22F0C10EE66E0EEC21F0E5528A +:100D2000CBEC21F0E552E552C58081EC22F0C00EFB +:100D3000E66E20EC21F0E552E66A20EC21F0E55267 +:100D4000C58281EC22F0C10EE66E20EC21F0E55266 :100D5000010EDB6A020EDB6A010EDBCF00F0020E31 :100D6000DBCF01F0040E005C000E01584FE2010ED3 :100D7000F36E150EF3CFDBFFC586130EDB6A140E80 @@ -97,13 +97,13 @@ :100DA000E9FF020EDBCFEAFF480EE926050EEA2234 :100DB000C9CFEFFF150EDB6A06D0130EDB2A140E27 :100DC00001E3DB2ADED7150EDB5008E00501080E33 -:100DD000436FC58AC5886FEC22F018D0010EDBCFB7 +:100DD000436FC58AC58881EC22F018D0010EDBCFA5 :100DE00000F0020EDBCF01F0030E005C000E015894 -:100DF00003E2C59AC58802D0C58AC5886FEC22F087 -:100E0000010EDB2A020E01E3DB2AA6D7C5846FECB4 -:100E100022F082EC22F090D0010EDB6A020EDB6A37 +:100DF00003E2C59AC58802D0C58AC58881EC22F075 +:100E0000010EDB2A020E01E3DB2AA6D7C58481ECA2 +:100E100022F094EC22F090D0010EDB6A020EDB6A25 :100E2000010EDBCF00F0020EDBCF01F0020E005C02 -:100E3000000E015801E37CD0010EDBCFE6FF1DEC74 +:100E3000000E015801E37CD0010EDBCFE6FF1FEC72 :100E40001AF0E5520B0E28C0DBFF0C0E29C0DBFFA9 :100E50000D0E2AC0DBFF0E0E2BC0DBFF040E2A6E28 :100E60002B6A010EDBCF2FF0020EDBCF30F055ECFA @@ -136,13 +136,13 @@ :101010000A518A1205010B518B1205010C518C12D9 :1010200005010D518D1245D0050109510101AB1B80 :1010300005010A510101AB133CD0050109A107D0FC -:101040000AC5E6FFE66AAEEC1BF0E552E552050183 -:1010500009A308D00BC5E6FF010EE66EAEEC1BF04F +:101040000AC5E6FFE66AC0EC1BF0E552E552050171 +:1010500009A308D00BC5E6FF010EE66EC0EC1BF03D :10106000E552E552050109A508D00CC5E6FF020EC0 -:10107000E66EAEEC1BF0E552E552050109A708D07B -:101080000DC5E6FF030EE66EAEEC1BF0E552E55231 -:10109000050109A908D00EC5E6FF040EE66EAEEC08 -:1010A0001BF0E552E55205D0030EE66ED4EC21F0BC +:10107000E66EC0EC1BF0E552E552050109A708D069 +:101080000DC5E6FF030EE66EC0EC1BF0E552E5521F +:10109000050109A908D00EC5E6FF040EE66EC0ECF6 +:1010A0001BF0E552E55205D0030EE66EE6EC21F0AA :1010B000E552400EE66E000EE66E050EE66EE66A3E :1010C000010EE66E65EC12F0006E050EE15E00505A :1010D000F3CFAFF1F4CFB0F1A8D30101B151B21108 @@ -213,38 +213,38 @@ :1014E000006E050EE15E0050F3CFAFF1F4CFB0F126 :1014F0009CD105010851070A4FE0010A41E0030AA7 :1015000033E0010A29E0070A1EE0010A14E0030A99 -:1015100009E0010A01E04FD0070EE66EE3EC1DF092 -:10152000E5524ED0010EE66E070EE66EE6EC1DF0BB -:10153000E552E55245D0E66A070EE66EE6EC1DF090 -:10154000E552E5523DD0010EE66E070EE66EEEEC7A -:101550001DF0E552E55234D0E66A070EE66EEEEC79 -:101560001DF0E552E5522CD00AC5E6FF09C5E6FF9D -:10157000070EE66EF9EC1DF0E552E552E55220D07B -:10158000090EE66E050EE66E070EE66E06EC1EF020 +:1015100009E0010A01E04FD0070EE66EF5EC1DF080 +:10152000E5524ED0010EE66E070EE66EF8EC1DF0A9 +:10153000E552E55245D0E66A070EE66EF8EC1DF07E +:10154000E552E5523DD0010EE66E070EE66E00EC68 +:101550001EF0E552E55234D0E66A070EE66E00EC66 +:101560001EF0E552E5522CD00AC5E6FF09C5E6FF9C +:10157000070EE66E0BEC1EF0E552E552E55220D068 +:10158000090EE66E050EE66E070EE66E18EC1EF00E :10159000E552E552E55214D00A0EE66E050EE66EEF -:1015A00009C5E6FF070EE66E0CEC1EF0E552E552AB -:1015B000E552E55205D0010EE66ED4EC21F0E5527D +:1015A00009C5E6FF070EE66E1EEC1EF0E552E55299 +:1015B000E552E55205D0010EE66EE6EC21F0E5526B :1015C000400EE66E000EE66E050EE66EE66A010E51 :1015D000E66E65EC12F0006E050EE15E0050F3CF92 :1015E000AFF1F4CFB0F121D105010851030A11E0A8 -:1015F000010A09E0030A01E037D009C5E6FF73ECF0 -:101600001CF0E55236D009C5E6FF77EC1CF0E55238 +:1015F000010A09E0030A01E037D009C5E6FF85ECDE +:101600001CF0E55236D009C5E6FF89EC1CF0E55226 :1016100030D00E0E0CC5DBFF0D0E0DC5DBFF0C0E22 :101620000EC5DBFF0B0E0FC5DBFFD9500B0FE96EAC :10163000DACFEAFFEECFE6FFEECFE6FFEECFE6FF32 :10164000EFCFE6FF0BC5E6FF0AC5E6FF09C5E6FFDB -:101650007BEC1CF0006E070EE15E0050010EF36E95 -:10166000160EF3CFDBFF05D0010EE66ED4EC21F0B1 +:101650008DEC1CF0006E070EE15E0050010EF36E83 +:10166000160EF3CFDBFF05D0010EE66EE6EC21F09F :10167000E552400EE66E000EE66E050EE66EE66A78 :10168000010EE66E65EC12F0006E050EE15E005094 :10169000F3CFAFF1F4CFB0F1C8D0800EE66E080EF4 -:1016A000E66EB9EC21F0E552E552C5806FEC22F010 -:1016B000E66A0EEC21F0E552080EE66E050EE66EC7 -:1016C0009BEC1FF0E552E552C58482EC22F0400EFF +:1016A000E66ECBEC21F0E552E552C58081EC22F0EC +:1016B000E66A20EC21F0E552080EE66E050EE66EB5 +:1016C000ADEC1FF0E552E552C58494EC22F0400EDB :1016D000E66E000EE66E050EE66EE66A010EE66E3A :1016E00065EC12F0006E050EE15E0050F3CFAFF135 :1016F000F4CFB0F19AD04F0EAB16AC9ACF0E9D1628 -:10170000020EE66EE66A7C0EE66E56EC1FF0E552BF +:10170000020EE66EE66A7C0EE66E68EC1FF0E552AD :10171000E552E552040EE66EE66AB4EC14F0E552CA :10172000E552100EE66E010EE66EB4EC14F0E552D2 :10173000E552020EE66E030EE66E010EE66E2FEC2B @@ -280,9 +280,9 @@ :101910006E0EEE6E200E59D9740E7BD9620EEE6EED :101920006C0EEE6E690E42D9EE6E5ED9EE6E71D916 :10193000760E4BD9630EEE6E200EEE6E6C0E69D9EC -:10194000200EEE6EF8D8070EE66EE3EC1DF0E552C1 +:10194000200EEE6EF8D8070EE66EF5EC1DF0E552AF :101950001ED9010EE66EA5D802E2E16AE552B5EFA6 -:101960000DF01200120048EF1EF012001E0EE66E7F +:101960000DF0120012005AEF1EF012001E0EE66E6D :10197000010EE66E33EC12F0E552E552400EE66ED3 :10198000000EE66E050EE66EE66A010EE66E65EC8A :1019900012F0006E050EE15E0050F3CFAFF1F4CF10 @@ -302,7 +302,7 @@ :101A70000DD0D0B602D0040E09D0FCAE02D0050EB7 :101A800005D0FCAC02D0060E01D0070EDF6ED08868 :101A9000D086D084D082D080FC9EFC9CDF50E55262 -:101AA000AFD0070EE66EEEEC1DF0E552E552D9CF51 +:101AA000AFD0070EE66E00EC1EF0E552E552D9CF3E :101AB000E6FFDACFE6FF010E7ED8D950150FA4D885 :101AC000020E79D8D9502A0F9FD8030E74D8D95056 :101AD0003F0F9AD8040E6FD8540EE15C12007FD8E5 @@ -316,10 +316,10 @@ :101B5000F350DF6E010EF4CFDBFF1200EE6E6F0E5E :101B6000EE6E6E0EEE6EE5EF0DF0E16E49D0DF50D9 :101B7000F36E010EDB50F46E020EE15C1200DFCF5B -:101B8000E6FFE66A43EC20F0E552E5521200E66A11 -:101B9000070EE66EE6EC1DF0E552E5521200EE6A25 +:101B8000E6FFE66A55EC20F0E552E5521200E66AFF +:101B9000070EE66EF8EC1DF0E552E5521200EE6A13 :101BA000D9502A0FE96EDACFEAFF12000ED8200EC4 -:101BB000EE6EEE6E1200E66E070EE66E0CEC1EF098 +:101BB000EE6EEE6E1200E66E070EE66E1EEC1EF086 :101BC000E552E552E552E5521200EE6E650EEE6EFC :101BD0001200EE6EEE6EEE6EEE6EEE6E1200D9CF6D :101BE000E6FFE1CFD9FF1200EE6AD9503F0FE96E50 @@ -405,11 +405,11 @@ :1020D000DF7457DAC80EEF6E040EE15C02E2E16ACB :1020E000E552E16E57D2800E0401205D3CE1010112 :1020F000C00E136F04012351030A1EE0010A09E018 -:10210000030A2FE101015E0E116F3D0E126F120ED8 -:1021100022D0C3DA060EF6263E0EA2DA020E010126 +:10210000030A2FE10101820E116F3D0E126F120EB4 +:1021100022D0C3DA2A0EF6263E0EA2DA020E010102 :10212000F76A1125F66E1251F7220900F5CF14F166 :102130000A00F5CF15F11200030E225D0FE2ADDAB1 -:10214000080EF6263E0E8CDA11C1F6FF12C1F7FF1B +:102140002C0EF6263E0E8CDA11C1F6FF12C1F7FFF7 :102150000800F5500101146F156B12000101136B9B :1021600012000101136B120011DA0401286B296BB4 :1021700020511F0B020A11E0030A0CE0010A22E1C0 @@ -503,14 +503,14 @@ :1026F000EA2212003CD88C0EEF6E1200680EE66ED5 :102700000F0EE66E16DFE552E552E552120049DF84 :10271000070EE926010E120044DF0B0EE926010E1A -:102720001200D9CFE6FFE1CFD9FF1200E66E0DEC23 +:102720001200D9CFE6FFE1CFD9FF1200E66E1FEC11 :1027300020F0006E050EE15E00501200E0EC0CF09F :10274000006E060EE15E00501200200EEE6E040ECA :10275000ED6E120005C1E9FF06C1EAFF120028DF95 :10276000C4DFA5EF13F004DFC0DF0FEF13F0F6DED8 :04277000CEEF12F0A6 :0C277400959A838A190E61EF16F0CFDAF7 -:10278000030EE126ACA2FED7EFEC20F0DF6E0101D4 +:10278000030EE126ACA2FED701EC21F0DF6E0101C1 :10279000485104E1265102E1010E496F490558E113 :1027A0004851A8DADFCFEFFF020E485D08E2FF0EC6 :1027B000DF5C05E0050EABDA0101496B486B030EE7 @@ -521,7 +521,7 @@ :10280000DBCFE7FFEF50E726010EE7CFDBFF020E3D :10281000DB2AE9D76A516EDAEFCF00F0010EDB1C3C :10282000005C05E0070E73DA0101266B0DD0010193 -:102830002B5102E0060E6BDA2BC1E6FFD4EC21F03F +:102830002B5102E0060E6BDA2BC1E6FFE6EC21F02D :10284000E5520101010E266F496B486B01D0482B00 :10285000030EE15C02E2E16AE552E16E24D25FDA46 :10286000220EE126010EDB68020EDB68FE0EDB5055 @@ -537,7 +537,7 @@ :10290000DB50050FE9D9E552E750EF6E839ADF6A95 :10291000FC0EDB50060FDF5C11E2ACA2FED7D950F3 :10292000010F006EDACF01F0DF500F01D5D9EF5063 -:10293000E66E36EC22F0E552DF2AEAD7ACA2FED7EB +:10293000E66E48EC22F0E552DF2AEAD7ACA2FED7D9 :10294000838A0101266B220EE15C02E2E16AE55214 :10295000E16EA9D101012651120001014751120077 :1029600001012651FDE01200DAD9FE0EDB50EA6AC1 @@ -594,12 +594,12 @@ :102C9000DFCFE6FF62D8030EE66E1200FE0EDBCF3A :102CA000E6FF030E4BD0E552E7CFD9FF120037D82D :102CB0004AD8FC0EDBCFE6FF010E2ED8020EE66EE0 -:102CC0001200E66EE66A7C0EE66E56EC1FF051D0FE +:102CC0001200E66EE66A7C0EE66E68EC1FF051D0EC :102CD000100EE66E040E32D00024E96E000EDA20EB :102CE000EA6E12001CD8FC0EDBCFE6FFFD0EDBCF38 :102CF000E6FF1200EA6A270FE96E010EEA221200CF :102D0000DBCFDEFFDBCFDDFFDFCFE6FF1200E66EBD -:102D1000D4EC21F0E5521200E66EB5EF16F0D9CFF3 +:102D1000E6EC21F0E5521200E66EB5EF16F0D9CFE1 :102D2000E6FFE1CFD9FF1200E66EFE0EDBCFE6FF35 :102D3000F6DEE552E552E552E552B5D7E66EFE0EF7 :102D4000E66E7FDE16D0FD0EDBCFE6FFE66AB5EF5E @@ -693,341 +693,338 @@ :0E32B00030321200D8903032EAE1238A120048 :0232BE00FC0E04 :1032C0009516839083920D0EE66E7C0EE66EE10EEF -:1032D000E66ED6EC1FF0E552E552E5521200D9CF6A -:1032E000E6FFE1CFD9FFE6520101BB51040A47E0F6 -:1032F000070A2FE0010A24E0030A0CE0010A01E0BA -:1033000096D08380870EE66E07EC22F0E55201012D -:10331000010E33D07DEC22F0000901E089D040D9C4 +:1032D000E66EE8EC1FF0E552E552E5521200D9CF58 +:1032E000E6FFE1CFD9FFE6520101BB51040A48E0F5 +:1032F000070A30E0010A24E0030A0CE0010A01E0B9 +:1033000098D08380870EE66E19EC22F0E552010119 +:10331000010E34D08FEC22F0000901E08BD052D99D :1033200001AE02D002680368BCC1E9FFEA6AE9BEE7 -:10333000EA6813D9B00EE926000E24D9020E1DD07A -:1033400083828F0EE66E07EC22F0E5520101030E38 -:1033500014D07DEC22F000096BE122D901AE02D03D -:1033600002680368BCC1E9FFEA6AE9BEEA68F5D809 -:10337000D80EE926000E06D9040EBB6F59D0BC2B1F -:103380000A0EE76EBC19E8AE02D0E73402D0E7506F -:10339000BC5D4BE3BC6BBDC1E9FFEA6AE9BEEA680C -:1033A00029D9EA22EE6AEE6AEE6AEE6ABDC1E9FF49 -:1033B000EA6AE9BEEA6823D9EA22EE6AEE6AEE6AB0 -:1033C000EE6ADF6AFED8E8AE02D0E73402D0E750FA -:1033D000005C1EE2DFCFE9FFEA6AE9BEEA68BDD819 -:1033E000B00EE926000EC9D8E9BEEA6803D9D5D8DF -:1033F000DFCFE9FFEA6AE9BEEA68AFD8D80EE9266E -:10340000000EBBD8E9BEEA68FAD8C7D8DF2ADAD7F7 -:103410000101BD2B0A0EE76EBD19E8AE02D0E734FC -:1034200002D0E750BD5D01E3BD6BBB6B01D0BB6B50 -:10343000E552E552E7CFD9FF1200D9CFE6FFE1CF41 -:10344000D9FF050EE126010EDB6A020EDB6A030ED0 -:10345000DB6A040EDB6AFE0EDB5011E1DF6AB1D8D5 -:10346000E8AE02D0E73402D0E750005C21E2DFCFC3 -:10347000E9FFEA6AE9BEEA68BDD876D8F0D7FE0E61 -:10348000DB0411E1DF6A9DD8E8AE02D0E73402D058 -:10349000E750005C0DE2DFCFE9FFEA6AE9BEEA68C7 -:1034A000AED862D8F0D7286A296A2A6A2B6A4BD02C -:1034B000010EDBCF10F0020EDBCF11F0030EDBCFDD -:1034C00012F0040EDBCF13F010C028F011C029F069 -:1034D00012C02AF013C02BF0E5EC16F029C00CF056 -:1034E0002AC00DF02BC00EF02CC00FF062D829C0FE -:1034F00008F02AC009F02BC00AF02CC00BF059D8F4 -:1035000029C004F02AC005F02BC006F02CC007F03B -:103510002E6A2F6AA00E306E400E316EE8EC17F066 -:1035200029C000F02AC001F02BC002F02CC003F02B -:103530002E6AC00E2F6E7F0E306E440E316E95ECEB -:1035400017F0A2EC18F0050EE15C02E2E16AE55228 -:10355000E16EE552E7CFD9FF1200D890E936EA369E -:10356000D890E936EA36120032D8D950010FE96E08 -:10357000DACFEAFF36D8DF2A120029D8BDC1E9FF29 -:10358000EA6A1200EA2200C0EEFF01C0EEFF02C0AC -:10359000EEFF03C0EEFF01011200EA22F1EF1AF084 -:1035A00066EC22F0F3CF00F0F4CF01F0026A036A78 -:1035B00012002E6A2F6A200E306E410E316E95EF8A -:1035C00017F0DFCF00F00A0EE76E00181200EA22B3 -:1035D000EECF00F0EECF01F0EECF02F0EFCF03F030 -:1035E00012000050EE260150EE220250EE2203504F -:1035F000EE221200B2DF600EE926000E1200ADDFEF -:08360000880EE926000E1200FD -:08360800E30E95169492A082D6 -:10361000FD0EE66ECCEC20F0E552000EE66EE66A9A -:103620004AEC21F0E552E552839483968398829286 -:1036300012008394839683988292050E0101AC5DFB -:103640000EE2010EACC1E7FFE75204E0E846FE0BD4 -:10365000E706FCE10101AB1502E1AC2BEED7050E4C -:10366000AC5D5EE2AC51040A0EE0070A0DE0010A0F -:1036700008E0030A04E0010A07E1838405D0838699 -:1036800003D0838801D08282AC51D9D8EFCF02F029 -:10369000036A02BE03680A0E2A6E2B6A02C02FF06C -:1036A00003C030F055EC18F028C000F029C001F03C -:1036B000DC0E0026050E012200500101AD2701504D -:1036C000AE23A9D8800E126EBB0E136E440E146E7C -:1036D000196A1A6A200E1B6E410E1C6EAC51AFD8CF -:1036E000EFCF21F021C02BF0BFEC16F029C01DF068 -:1036F0002AC01EF02BC01FF02CC020F0AAD819C081 -:1037000029F01AC02AF01BC02BF01CC02CF0E8ECEA -:1037100017F06FD8FFEC16F040D80101AC2B120067 -:10372000AC6B200EAD5D4E0EAE5915E274D8400E56 -:10373000126E9C0E136E460E146EADC12AF0AEC111 -:103740002BF0CEEC16F055D8FEEC16F026D8010181 -:10375000AD6BAE6B1200AD6BAE6B6FD7D9CFE6FF22 -:10376000E1CFD9FFFE0EDB506AD8FD0EDBCFEFFFB5 -:103770006CD05CD804E0D890F336E806FCE1F35056 -:103780000101AB1362D052D804E0D890F336E806BA -:10379000FCE1F3500101AB1B58D029C00DF02AC049 -:1037A0000EF02BC00FF02CC010F053D809C029F038 -:1037B0000AC02AF00BC02BF00CC02CF0E8EC17F07C -:1037C00073EC18F02AC006F02BC007F0086A2A50E4 -:1037D000035C006E2B500458016E08500558026EB1 -:1037E00000C0E6FF01C0E6FF4AEC21F0E552E552D9 -:1037F000120029C015F02AC016F02BC017F02CC0FB -:1038000018F027D811C029F012C02AF013C02BF0ED -:1038100014C02CF0120003680468056A096A0A6A79 -:10382000C00E0B6E3F0E0C6E116A1200D9CFE6FF70 -:10383000E1CFD9FF010EF36EFE0EDB501200EA6AF3 -:10384000A60FE96E010EEA221200E552E7CFD9FF7A -:10385000120029C02EF02AC02FF02BC030F02CC04F -:0438600031F0120031 -:0C386400D9CFE6FFE1CFD9FF9290EB0E28 -:1038700093169494060EE66E9EEC21F0E552FE0E31 -:10388000DBA00CD0AF0EE66E82EC21F0E552000E0C -:10389000E66EE66A66EC21F0E55204D0820EE66E32 -:1038A00082EC21F0E55281948294819A8198ECD047 -:1038B000E2D8D880000E01019455000E9555000EF7 -:1038C0009655000E97550EE29407000E955B965B99 -:1038D000975B945195119611971104E1BD6A8294FA -:1038E000819A81981200D9CFE6FF8184CDD0D9CFBB -:1038F000E6FF8194C9D0D9CFE6FFE1CFD9FFF80E1A -:10390000DBCF94F1F90EDBCF95F1FA0EDBCF96F118 -:10391000FB0EDBCF97F1280E2D6E2E6A2F6A306AD0 -:1039200094C128F095C129F096C12AF097C12BF0D7 -:10393000A8EC20F028C094F129C095F12AC096F196 -:103940002BC097F198D8FD0EDB50E8B0818AE8A033 -:10395000819AFD0EDB1CE8B08188E8A081984A0EB0 -:10396000E66EEFEC21F0E552FC0EDBCF16F016C050 -:103970002BF0BDEC16F029C012F02AC013F02BC0BA -:1039800014F02CC015F02E6A2F6A7F0E306E430E95 -:10399000316E95EC17F029C00EF02AC00FF02BC045 -:1039A00010F02CC011F02E6A2F6A200E306E3F0EE0 -:1039B000316EE8EC17F029C00AF02AC00BF02BC0DA -:1039C0000CF02CC00DF02E6A1B0E2F6E370E306ED1 -:1039D0004C0E316EE8EC17F029C006F02AC007F053 -:1039E0002BC008F02CC009F02E6A400E2F6E1C0E62 -:1039F000306E460E316E95EC17F073EC18F0CEEC8D -:103A000016F029C002F02AC003F02BC004F02CC02D -:103A100005F02E6A2F6A800E306E410E316E95ECE5 -:103A200017F073EC18F02AC000F02BC001F02AC088 -:103A3000E6FF2BC0E6FF79EC20F0E552E55224D0FA -:103A40008150200B06E08150100B03E18350400BA6 -:103A500009E08150200B0EE18150100B0BE08350E8 -:103A6000800B08E1BD6A82940101946B956B966BA3 -:103A7000976B010C000CA00EE66E150EE66E66EC60 -:103A800021F0E552E5521200E552E7CFD9FF1200CE -:103A9000050EE66E060E8CD8070E8AD8080E88D85A -:103AA000090E7ED80A0E80D80B0E7AD80C0E7CD860 -:103AB0000D0E76D80E0E78D80F0E72D8100E74D860 -:103AC000110EB4EF1DF0D9CFE6FFE1CFD9FF51D8E9 -:103AD000FD0EDBCFE6FF0EEC21F0E552C58482EC53 -:103AE00022F0E552E7CFD9FF1200D9CFE6FFE1CFB0 -:103AF000D9FF030EE126020EDB6A3BD8C5826FECCC -:103B000022F0E90EE66E0EEC21F0E552C586DE6A83 -:103B1000DD6ADECF00F0DDCF01F0E80E005C030EC1 -:103B200001580BE2C7A004D0020EC9CFDBFF05D0BD -:103B3000DF2A010EEEE3DB2AECD7C58AC5886FECDD -:103B400022F0C5846FEC22F082EC22F0020EDB50F2 -:103B5000006E030EE15C02E2E16AE552E16E0050A4 -:103B6000E552E7CFD9FF1200E66EADDFE552E55230 -:103B70001200800EE66E080EE66EB9EC21F0E552FA -:103B8000E552C5806FEC22F0E80EE66E0EEC21F0F7 -:103B9000E552FE0EDBCFE6FF0EEC21F0E5521200FF -:103BA000E3DFC40EE66E1200DFDF090EE66E1200E0 -:083BB000DBDF050EE66E1200DA -:083BB80036D857D856D855D86D -:103BC0004DD8430E54D057D8430E51D054D8FD0E83 -:103BD000DB5002E0530E01D0730E49D04CD8FD0EDD -:103BE000DB5002E0420E01D0620E41D044D8480EB4 -:103BF0003ED041D84C0EE66E0EEC21F0E55231D8A5 -:103C0000FC0EDBCFE6FF0EEC21F020D00CD8FC0E32 -:103C1000DBCFE6FFFD0E36D006D823D8FB0EDBCF78 -:103C2000E6FFFC0E2FD0D9CFE6FFE1CFD9FF800E03 -:103C3000E66E080EE66EB9EC21F0E552E552C5805D -:103C40006FEC22F0FE0EDBCFE6FF18D0E552C58404 -:103C500082EC22F0E552E7CFD9FF12001B0EE66E90 -:103C60000DD0FD0EDBCFE6FF09D0E66A07D0E66E89 -:103C70000EEC21F0EBD7D7DF2EEF1EF00EEC21F08B -:103C8000E5521200DBCFE6FF9BEC1FF0E552DED7DA -:103C9000040120511F0B010801E01200245101E032 -:103CA0001200060E215D21E12351230A1BE0010AC7 -:103CB0000CE0030A1AE10101010517E10101820E7E -:103CC000116F3D0E126F090E09D0010101050DE1C2 -:103CD0000101E90E116F3D0E126F1D0E146F156B71 -:103CE000C00E02D00101800E136F04012051600B41 -:103CF000E842E842E842E842E842010801E01200F6 -:103D000021510B0A26E0080A19E0090A11E0080A05 -:103D100005E00B0A23E0080A21E012000101BE0EB3 -:103D2000116F010E126F010E146F156BC10E0FD0C3 -:103D30000101800E136F23C4BEF112000101BF0EFA -:103D4000116F010E126F010E146F156B810E136F40 -:0E3D500012000101800E136F22C4BFF1120099 -:023D5E00120150 -:103D6000000200000008D804040002000102000163 -:103D700009022900010100C0320904000002030009 -:103D80000000092111010001221D000705810340E7 -:103D9000000107050103400001040309042C034D41 -:103DA000006F00620069006C006500200052006F27 -:103DB0000062006F007400200050006C006100740D -:103DC0000066006F0072006D00200352006F0062F9 -:103DD000006F007400200049006E007400650072DE -:103DE0000066006100630065000600FF0901A10193 -:103DF00019012940150026FF00750895408100191A -:0E3E00000129409100C0703D993D9D3DC93D96 -:023E0E002A0E7A -:103E1000F66E080EF76E000EF86E01010900F550FF -:103E2000A16F0900F550A26F03E1A16701D03DD059 -:103E30000900F5509C6F0900F5509D6F0900F55081 -:103E40009E6F09000900F550E96E0900F550EA6E11 -:103E5000090009000900F5509F6F0900F550A06F97 -:103E600009000900F6CFA3F1F7CFA4F1F8CFA5F12F -:103E70009CC1F6FF9DC1F7FF9EC1F8FF01019F5352 -:103E800002E1A05307E00900F550EE6E9F07F8E24B -:103E9000A007F9D7A3C1F6FFA4C1F7FFA5C1F8FF9A -:0C3EA0000101A107000EA25BBFD71200B9 -:043EAC00D9CFE6FF85 -:103EB000DACFE6FFE1CFD9FFE2CFDAFFAC6AAB6A37 -:103EC000FD0EDBB0AC88DBA202D0AC8CAB8CDBB4DB -:103ED000AC8EDBA602D0AB8801D0AB8ADBB8AC8459 -:103EE0009E98DBBAAC86DBAC02D09D8A01D09D9A4D -:103EF0009E9ADBAE02D09D8801D09D98FB0EDB50D0 -:103F0000AF6EFB0EFC0EDBCF01F001C000F0016ACA -:103F10000050B06EAC8AAB8E949C948EAC50100B5B -:103F200004E0AC50800B01E1948CE552E5CFDAFF60 -:063F3000E7CFD9FF1200EB -:0A3F3600D9CFE6FFDACFE6FFE1CFB6 -:103F4000D9FFE2CFDAFFE65229D820E0C6A60AD090 -:103F500025D8E66E0EEC21F0E552DF6EDF5010E062 -:103F6000DF5015D09E961AD8C96EC6889EA6FED779 -:103F7000C750040B05E1C750010B02E1FE0E07D04C -:103F8000FC0EDB2AFD0EE0E3DB2ADED7000EE55255 -:103F9000E552E5CFDAFFE7CFD9FF1200FC0EDBCF09 -:0C3FA000E9FFFD0EDBCFEAFFEF5012003E -:043FAC00D9CFE6FF84 -:103FB000DACFE6FFE1CFD9FFE2CFDAFFC26AC06A0B -:103FC000FC0EDB407F0B3C0BC26EFB0EDBCFE6FF33 -:103FD000FC0EDB38F00B300BE552E710C16EFD0E26 -:103FE000DB50040DF350380B016EFD0EDB380F0B68 -:103FF000070B006EFD0EDB50800B00100110C06E31 -:10400000FC0EDBAE03D09E9C9D8CF28CC280E552F0 -:0A401000E5CFDAFFE7CFD9FF120079 -:06401A00FE0EE3CFE9FFFA -:10402000FF0EE3CFEAFFE9CFF3FFEACFF4FFFB0E89 -:10403000E35003E1FC0EE35009E0FB0EE30602E26D -:10404000FC0EE306FD0EE350EE6EF1D71200FB0E00 -:10405000E3CFF6FFFC0EE3CFF7FFFD0EE3CFF8FF53 -:10406000FE0EE3CFE9FFFF0EE3CFEAFFE9CFF3FF58 -:10407000EACFF4FFEE66FED7ED520900F5CFEFFF71 -:06408000EE66FBD7120002 -:0A4086002DD8FD0EDB50A86EA69E9B -:10409000A69CA684F250800B01E0010E0101C16FC5 -:1040A000F29E550EA76EAA0EA76EA682C151E8B069 -:1040B000F28EE8A0F29EA6B2FED7A198A694E55291 -:1040C000E7CFD9FF12000DD8A69EA69CA680020EAF -:1040D000E66E5BEC22F0E552A850E552E7CFD9FF3F -:1040E0001200D9CFE6FFE1CFD9FFFE0EDB50A96E5B -:0240F0001200BC -:0E40F200D9CFE6FFDACFE6FFE1CFD9FFE2CF6C -:10410000DAFFE652E652FC0EDBCF00F0FD0EDBCF0D -:1041100001F0060ED89000360136E804FBE100C03D -:10412000DEFF01C0DDFF010EDB50BE6EDF50E84058 -:10413000E8403F0B300B006ECF0EBD140010BD6E7B -:10414000E552E552E552E5CFDAFFE7CFD9FF12009D -:10415000276A266A256A246A200EE76ED8902836D8 -:1041600029362A362B3624362536263627362D5044 -:10417000245C2E5025582F5026583050275809E3DC -:104180002D50245E2E50255A2F50265A3050275A33 -:08419000282AE72EE4D71200F3 -:08419800D9CFE6FFDACFE6FF04 -:1041A000E1CFD9FFE2CFDAFFFD0EDB50360BB16E67 -:1041B000B36AB26AA192FD0EDBAE02D0A08201D03A -:1041C000A092DBB2CD86DBA002D0B18E01D0B19E31 -:0E41D000B180E552E5CFDAFFE7CFD9FF12004C -:0241DE00D9CF37 -:1041E000E6FFDACFE6FFE1CFD9FFE2CFDAFFE65212 -:1041F000F20E0101C017ABAC03D0C091ABB0C081CF -:10420000ABB4C085ABB2C087AE50DF6EDF50E552B5 -:0C421000E552E5CFDAFFE7CFD9FF12003E -:04421C00D9CFE6FF11 -:10422000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB50B8 -:10423000C96EC6AE02D0FF0E09D0C7B0FED76FEC74 -:1042400022F0C5AC02D0FE0E01D0000EE552E5CF43 -:08425000DAFFE7CFD9FF1200ED -:0842580031393A30393A3137AF -:104260000020004D6179203038203230313000524A -:104270006F626F7420496E74657266616365203188 -:104280002E300A4F6C697669657220424943484C6A -:0342900045520094 -:0C429400D9CFE6FFDACFE6FFE1CFD9FF7B -:1042A000E2CFDAFFE652E652FC0EDBCFDEFFDBCFD9 -:1042B000DDFF010EDB50B36EDF50B26EE552E5520A -:0C42C000E552E5CFDAFFE7CFD9FF12008E -:0442CC00D9CFE6FF61 -:1042D000DACFE6FFE1CFD9FFE2CFDAFFE652E652CE -:1042E000FC0EDBCFDEFFDBCFDDFF010EDB50D76E38 -:1042F000DF50D66EE552E552E552E5CFDAFFE7CF63 -:04430000D9FF1200CF -:0C430400D9CFE6FFDACFE6FFE1CFD9FF0A -:10431000E2CFDAFFFD0EDB507F0BD56ED76AD66A8F -:10432000F294FD0EDBAE02D0F28A01D0F29AD58E65 -:0C433000E552E5CFDAFFE7CFD9FF12001D -:04433C00D9CFE6FFF0 -:10434000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB5097 -:10435000FB0BCA6ECC6A9E92FD0EDBAE02D09D8234 -:1043600001D09D92CA84E552E5CFDAFFE7CFD9FFAD -:02437000120039 -:0E437200D9CFE6FFDACFE6FFE1CFD9FFE2CFE9 -:10438000DAFF3F0EC716C66AC56AFD0EDB50C612BD -:10439000FC0EDB50C71293829380C68AE552E5CFAC -:0843A000DAFFE7CFD9FF12009C -:0843A800D9CFE6FFE1CFD9FFF8 -:1043B00001010ED8EF50000803E28B291F0B8B6F11 -:1043C00007D8FE0EDBCFEFFFE552E7CFD9FF120093 -:0E43D0008B51EA6A6B0FE96E010EEA221200B1 -:0243DE00D9CF35 -:1043E000E6FFDACFE6FFE1CFD9FFE2CFDAFF0C0E2E -:1043F000BD129494CA94FD0EDB50CB6ECA84E55274 -:0E440000E5CFDAFFE7CFD9FF12009494120047 -:02440E00D9CF04 -:10441000E6FFDACFE6FFE1CFD9FFE2CFDAFFFD0E0C -:10442000DB407F0B3C0B006EC30EC2140010C26E4B -:0E443000C282E552E5CFDAFFE7CFD9FF1200D6 -:02443E00FF0E6F -:10444000E350376EEF0E01D0F30EE76EE72E26EF46 -:1044500022F00C0E366EE76AE72E2CEF22F0362E95 -:0C4460002BEF22F0372E24EF22F0120088 -:04446C00D9CFE6FFBF -:10447000DACFE6FFE1CFD9FFE2CFDAFFACAC04D070 -:10448000AC900101C0B3AC80FD0EDB50AD6EE552C7 -:0A449000E5CFDAFFE7CFD9FF1200F5 -:06449A0013EE00F023EE1A -:1044A00000F0F86A239C07EC1FF084EC22F0BDECCE -:0644B00004F0FBD712002E -:0A44B600FF0EE350E84E1200000074 -:0C44C00000D000D000D0E82EFAD7120087 -:0444CC00C450036E67 -:0E44D000026AC3500210F36E03C0F4FF120024 -:0244DE001F0EAF -:0C44E000C514FDE1C750040BFAE1120006 -:0444EC0000EE00F0EE -:0A44F0000F0EEE6AEA62FDD712001B -:0644FA00C250020B01E0BC -:04450000010E120096 -:04450400C69A120041 -:0245080012009F -:06450A00000000000000AB -:03451000000000A8 -:0D451300000000000000000000000000009B -:0345200000000098 -:094523000000000001000000008E -:03452C000000008C -:01452F00008B -:10453000000000000000000000000000000000007B -:10454000000000000000000000000000000000006B -:10455000000000000000000000000000000000005B +:10333000EA6825D9B00EE926000E36D9020E1ED055 +:10334000839083828F0EE66E19EC22F0E552010124 +:10335000030E14D08FEC22F000096CE133D901AEDA +:1033600002D002680368BCC1E9FFEA6AE9BEEA6804 +:1033700006D9D80EE926000E17D9040EBB6F5AD015 +:103380008392BC2B0A0EE76EBC19E8AE02D0E7347C +:1033900002D0E750BC5D4BE3BC6BBDC1E9FFEA6AFC +:1033A000E9BEEA6839D9EA22EE6AEE6AEE6AEE6AA6 +:1033B000BDC1E9FFEA6AE9BEEA6833D9EA22EE6AEA +:1033C000EE6AEE6AEE6ADF6A0ED9E8AE02D0E73442 +:1033D00002D0E750005C1EE2DFCFE9FFEA6AE9BEF7 +:1033E000EA68CDD8B00EE926000ED9D8E9BEEA6861 +:1033F00013D9E5D8DFCFE9FFEA6AE9BEEA68BFD8AA +:10340000D80EE926000ECBD8E9BEEA680AD9D7D88B +:10341000DF2ADAD70101BD2B0A0EE76EBD19E8AE2F +:1034200002D0E73402D0E750BD5D01E3BD6BBB6B5A +:1034300001D0BB6BE552E552E7CFD9FF1200D9CFDF +:10344000E6FFE1CFD9FF050EE126010EDB6A020E91 +:10345000DB6A030EDB6A040EDB6AFE0EDB5011E151 +:10346000DF6AC1D8E8AE02D0E73402D0E750005C92 +:1034700021E2DFCFE9FFEA6AE9BEEA68CDD886D863 +:10348000F0D7FE0EDB0411E1DF6AADD8E8AE02D062 +:10349000E73402D0E750005C0DE2DFCFE9FFEA6AD3 +:1034A000E9BEEA68BED872D8F0D7286A296A2A6AC3 +:1034B0002B6A5BD0010EDBCF14F0020EDBCF15F0D0 +:1034C000030EDBCF16F0040EDBCF17F014C028F08C +:1034D00015C029F016C02AF017C02BF0E5EC16F045 +:1034E00029C010F02AC011F02BC012F02CC013F02C +:1034F00072D829C00CF02AC00DF02BC00EF02CC0E1 +:103500000FF069D829C008F02AC009F02BC00AF0D2 +:103510002CC00BF02E6A2F6AA00E306E400E316E5A +:10352000E8EC17F029C004F02AC005F02BC006F023 +:103530002CC007F02E6AC00E2F6E7F0E306E440E28 +:10354000316E95EC17F029C000F02AC001F02BC0B5 +:1035500002F02CC003F02E6A2F6A7A0E306E440EF1 +:10356000316EE8EC17F0A2EC18F0050EE15C02E217 +:10357000E16AE552E16EE552E7CFD9FF1200D8903B +:10358000E936EA36D890E936EA36120032D8D95010 +:10359000010FE96EDACFEAFF36D8DF2A120029D808 +:1035A000BDC1E9FFEA6A1200EA2200C0EEFF01C0D5 +:1035B000EEFF02C0EEFF03C0EEFF01011200EA229F +:1035C00003EF1BF078EC22F0F3CF00F0F4CF01F022 +:1035D000026A036A12002E6A2F6A200E306E410EB4 +:1035E000316E95EF17F0DFCF00F00A0EE76E00188E +:1035F0001200EA22EECF00F0EECF01F0EECF02F0A3 +:10360000EFCF03F012000050EE260150EE220250E0 +:10361000EE220350EE221200B2DF600EE926000E09 +:0C3620001200ADDF880EE926000E12003B +:04362C00E30E9516FE +:103630009492A082FD0EE66EDEEC20F0E552000EC4 +:10364000E66EE66A5CEC21F0E552E55283948396DF +:103650008398829212008394839683988292050EB7 +:103660000101AC5D0EE2010EACC1E7FFE75204E0E0 +:10367000E846FE0BE706FCE10101AB1502E1AC2BCD +:10368000EED7050EAC5D5EE2AC51040A0EE0070A0F +:103690000DE0010A08E0030A04E0010A07E183845F +:1036A00005D0838603D0838801D08282AC51D9D8DB +:1036B000EFCF02F0036A02BE03680A0E2A6E2B6A7D +:1036C00002C02FF003C030F055EC18F028C000F015 +:1036D00029C001F0DC0E0026050E01220050010178 +:1036E000AD270150AE23A9D8800E126EBB0E136E0B +:1036F000440E146E196A1A6A200E1B6E410E1C6E5F +:10370000AC51AFD8EFCF21F021C02BF0BFEC16F0B9 +:1037100029C01DF02AC01EF02BC01FF02CC020F0C5 +:10372000AAD819C029F01AC02AF01BC02BF01CC05F +:103730002CF0E8EC17F06FD8FFEC16F040D8010140 +:10374000AC2B1200AC6B200EAD5D4E0EAE5915E2E7 +:1037500074D8400E126E9C0E136E460E146EADC1E0 +:103760002AF0AEC12BF0CEEC16F055D8FEEC16F0D8 +:1037700026D80101AD6BAE6B1200AD6BAE6B6FD78F +:10378000D9CFE6FFE1CFD9FFFE0EDB506AD8FD0EA0 +:10379000DBCFEFFF6CD05CD804E0D890F336E806BE +:1037A000FCE1F3500101AB1362D052D804E0D89091 +:1037B000F336E806FCE1F3500101AB1B58D029C0F9 +:1037C0000DF02AC00EF02BC00FF02CC010F053D813 +:1037D00009C029F00AC02AF00BC02BF00CC02CF055 +:1037E000E8EC17F073EC18F02AC006F02BC007F0D5 +:1037F000086A2A50035C006E2B500458016E085072 +:103800000558026E00C0E6FF01C0E6FF5CEC21F047 +:10381000E552E552120029C015F02AC016F02BC05F +:1038200017F02CC018F027D811C029F012C02AF0C8 +:1038300013C02BF014C02CF0120003680468056A52 +:10384000096A0A6AC00E0B6E3F0E0C6E116A1200F6 +:10385000D9CFE6FFE1CFD9FF010EF36EFE0EDB50AC +:103860001200EA6AA60FE96E010EEA221200E55282 +:10387000E7CFD9FF120029C02EF02AC02FF02BC0AD +:0838800030F02CC031F0120001 +:08388800D9CFE6FFE1CFD9FF23 +:103890009290EB0E93169494060EE66EB0EC21F027 +:1038A000E552FE0EDBA00CD0AF0EE66E94EC21F0DC +:1038B000E552000EE66EE66A78EC21F0E55204D09F +:1038C000820EE66E94EC21F0E55281948294819A06 +:1038D0008198ECD0E2D8D880000E01019455000EFA +:1038E0009555000E9655000E97550EE29407000E62 +:1038F000955B965B975B945195119611971104E136 +:10390000BD6A8294819A81981200D9CFE6FF8184A2 +:10391000CDD0D9CFE6FF8194C9D0D9CFE6FFE1CF92 +:10392000D9FFF80EDBCF94F1F90EDBCF95F1FA0E4B +:10393000DBCF96F1FB0EDBCF97F1280E2D6E2E6AB2 +:103940002F6A306A94C128F095C129F096C12AF0F7 +:1039500097C12BF0BAEC20F028C094F129C095F162 +:103960002AC096F12BC097F198D8FD0EDB50E8B035 +:10397000818AE8A0819AFD0EDB1CE8B08188E8A06E +:1039800081984A0EE66E01EC22F0E552FC0EDBCF88 +:1039900016F016C02BF0BDEC16F029C012F02AC0AC +:1039A00013F02BC014F02CC015F02E6A2F6A7F0E76 +:1039B000306E430E316E95EC17F029C00EF02AC020 +:1039C0000FF02BC010F02CC011F02E6A2F6A200EC1 +:1039D000306E3F0E316EE8EC17F029C00AF02AC0B5 +:1039E0000BF02BC00CF02CC00DF02E6A1B0E2F6EAE +:1039F000370E306E4C0E316EE8EC17F029C006F031 +:103A00002AC007F02BC008F02CC009F02E6A400E27 +:103A10002F6E1C0E306E460E316E95EC17F073EC67 +:103A200018F0CEEC16F029C002F02AC003F02BC02B +:103A300004F02CC005F02E6A2F6A800E306E410E05 +:103A4000316E95EC17F073EC18F02AC000F02BC023 +:103A500001F02AC0E6FF2BC0E6FF8BEC20F0E55218 +:103A6000E55224D08150200B06E08150100B03E179 +:103A70008350400B09E08150200B0EE18150100B68 +:103A80000BE08350800B08E1BD6A82940101946BC6 +:103A9000956B966B976B010C000CA00EE66E150EE5 +:103AA000E66E78EC21F0E552E5521200E552E7CFE0 +:043AB000D9FF120028 +:0C3AB400050EE66E060E8CD8070E8AD8B0 +:103AC000080E88D8090E7ED80A0E80D80B0E7AD838 +:103AD0000C0E7CD80D0E76D80E0E78D80F0E72D83C +:103AE000100E74D8110EC6EF1DF0D9CFE6FFE1CF4E +:103AF000D9FF51D8FD0EDBCFE6FF20EC21F0E552D7 +:103B0000C58494EC22F0E552E7CFD9FF1200D9CF5B +:103B1000E6FFE1CFD9FF030EE126020EDB6A3BD8B8 +:103B2000C58281EC22F0E90EE66E20EC21F0E55230 +:103B3000C586DE6ADD6ADECF00F0DDCF01F0E80E7B +:103B4000005C030E01580BE2C7A004D0020EC9CFDF +:103B5000DBFF05D0DF2A010EEEE3DB2AECD7C58AB6 +:103B6000C58881EC22F0C58481EC22F094EC22F02F +:103B7000020EDB50006E030EE15C02E2E16AE552E8 +:103B8000E16E0050E552E7CFD9FF1200E66EADDFDF +:103B9000E552E5521200800EE66E080EE66ECBECA2 +:103BA00021F0E552E552C58081EC22F0E80EE66E88 +:103BB00020EC21F0E552FE0EDBCFE6FF20EC21F0F9 +:103BC000E5521200E3DFC40EE66E1200DFDF090EDD +:0C3BD000E66E1200DBDF050EE66E120050 +:043BDC0036D857D8A8 +:103BE00056D855D84DD8430E54D057D8430E51D03F +:103BF00054D8FD0EDB5002E0530E01D0730E49D0B5 +:103C00004CD8FD0EDB5002E0420E01D0620E41D0D6 +:103C100044D8480E3ED041D84C0EE66E20EC21F040 +:103C2000E55231D8FC0EDBCFE6FF20EC21F020D0AE +:103C30000CD8FC0EDBCFE6FFFD0E36D006D823D81D +:103C4000FB0EDBCFE6FFFC0E2FD0D9CFE6FFE1CF96 +:103C5000D9FF800EE66E080EE66ECBEC21F0E55241 +:103C6000E552C58081EC22F0FE0EDBCFE6FF18D0D6 +:103C7000E552C58494EC22F0E552E7CFD9FF12005B +:103C80001B0EE66E0DD0FD0EDBCFE6FF09D0E66A17 +:103C900007D0E66E20EC21F0EBD7D7DF40EF1EF027 +:103CA00020EC21F0E5521200DBCFE6FFADEC1FF077 +:043CB000E552DED724 +:0C3CB400040120511F0B010801E0120068 +:103CC000245101E01200060E215D21E12351230A57 +:103CD0001BE0010A0CE0030A1AE10101010517E1EA +:103CE0000101A60E116F3D0E126F090E09D00101E0 +:103CF00001050DE101010D0E116F3E0E126F1D0E3B +:103D0000146F156BC00E02D00101800E136F0401F9 +:103D10002051600BE842E842E842E842E8420108EC +:103D200001E0120021510B0A26E0080A19E0090AF5 +:103D300011E0080A05E00B0A23E0080A21E012005E +:103D40000101BE0E116F010E126F010E146F156B83 +:103D5000C10E0FD00101800E136F23C4BEF11200FB +:103D60000101BF0E116F010E126F010E146F156B62 +:103D7000810E136F12000101800E136F22C4BFF178 +:023D800012002F +:0E3D82001201000200000008D8040400020034 +:103D90000102000109022900010100C032090400EA +:103DA000000203000000092111010001221D00078B +:103DB00005810340000107050103400001040309D8 +:103DC000042C034D006F00620069006C0065002048 +:103DD0000052006F0062006F007400200050006C01 +:103DE000006100740066006F0072006D00200352D5 +:103DF000006F0062006F007400200049006E0074C4 +:103E0000006500720066006100630065000600FF47 +:103E10000901A10119012940150026FF0075089527 +:103E2000408100190129409100C0943DBD3DC13D34 +:023E3000ED3D66 +:0E3E32002A0EF66E080EF76E000EF86E0101F5 +:103E40000900F550A16F0900F550A26F03E1A167C9 +:103E500001D03DD00900F5509C6F0900F5509D6FD1 +:103E60000900F5509E6F09000900F550E96E090040 +:103E7000F550EA6E090009000900F5509F6F09002E +:103E8000F550A06F09000900F6CFA3F1F7CFA4F118 +:103E9000F8CFA5F19CC1F6FF9DC1F7FF9EC1F8FFC9 +:103EA00001019F5302E1A05307E00900F550EE6EB7 +:103EB0009F07F8E2A007F9D7A3C1F6FFA4C1F7FF57 +:103EC000A5C1F8FF0101A107000EA25BBFD7120038 +:103ED000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFB5 +:103EE000AC6AAB6AFD0EDBB0AC88DBA202D0AC8C56 +:103EF000AB8CDBB4AC8EDBA602D0AB8801D0AB8A36 +:103F0000DBB8AC849E98DBBAAC86DBAC02D09D8A71 +:103F100001D09D9A9E9ADBAE02D09D8801D09D98DB +:103F2000FB0EDB50AF6EFB0EFC0EDBCF01F001C0D1 +:103F300000F0016A0050B06EAC8AAB8E949C948EF7 +:103F4000AC50100B04E0AC50800B01E1948CE552B6 +:0A3F5000E5CFDAFFE7CFD9FF12003A +:063F5A00D9CFE6FFDACF2B +:103F6000E6FFE1CFD9FFE2CFDAFFE65229D820E021 +:103F7000C6A60AD025D8E66E20EC21F0E552DF6E09 +:103F8000DF5010E0DF5015D09E961AD8C96EC68853 +:103F90009EA6FED7C750040B05E1C750010B02E1F6 +:103FA000FE0E07D0FC0EDB2AFD0EE0E3DB2ADED797 +:103FB000000EE552E552E5CFDAFFE7CFD9FF120058 +:103FC000FC0EDBCFE9FFFD0EDBCFEAFFEF50120066 +:103FD000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFB4 +:103FE000C26AC06AFC0EDB407F0B3C0BC26EFB0E4C +:103FF000DBCFE6FFFC0EDB38F00B300BE552E710B1 +:10400000C16EFD0EDB50040DF350380B016EFD0E3A +:10401000DB380F0B070B006EFD0EDB50800B001022 +:104020000110C06EFC0EDBAE03D09E9C9D8CF28C0A +:0E403000C280E552E5CFDAFFE7CFD9FF1200DC +:02403E00FE0E74 +:10404000E3CFE9FFFF0EE3CFEAFFE9CFF3FFEACFCB +:10405000F4FFFB0EE35003E1FC0EE35009E0FB0E1E +:10406000E30602E2FC0EE306FD0EE350EE6EF1D72E +:104070001200FB0EE3CFF6FFFC0EE3CFF7FFFD0EC1 +:10408000E3CFF8FFFE0EE3CFE9FFFF0EE3CFEAFF39 +:10409000E9CFF3FFEACFF4FFEE66FED7ED52090059 +:0A40A000F5CFEFFFEE66FBD712002C +:0640AA002DD8FD0EDB50D5 +:1040B000A86EA69EA69CA684F250800B01E0010E7D +:1040C0000101C16FF29E550EA76EAA0EA76EA682C1 +:1040D000C151E8B0F28EE8A0F29EA6B2FED7A19838 +:1040E000A694E552E7CFD9FF12000DD8A69EA69C54 +:1040F000A680020EE66E6DEC22F0E552A850E55265 +:10410000E7CFD9FF1200D9CFE6FFE1CFD9FFFE0EEE +:06411000DB50A96E120055 +:0A411600D9CFE6FFDACFE6FFE1CFD4 +:10412000D9FFE2CFDAFFE652E652FC0EDBCF00F019 +:10413000FD0EDBCF01F0060ED89000360136E80404 +:10414000FBE100C0DEFF01C0DDFF010EDB50BE6EF3 +:10415000DF50E840E8403F0B300B006ECF0EBD143F +:104160000010BD6EE552E552E552E5CFDAFFE7CF2C +:04417000D9FF120061 +:0C417400276A266A256A246A200EE76E7E +:10418000D890283629362A362B3624362536263638 +:1041900027362D50245C2E5025582F50265830504D +:1041A000275809E32D50245E2E50255A2F50265AA9 +:0C41B0003050275A282AE72EE4D71200CE +:0441BC00D9CFE6FF72 +:1041C000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB5019 +:1041D000360BB16EB36AB26AA192FD0EDBAE02D0AD +:1041E000A08201D0A092DBB2CD86DBA002D0B18E3E +:1041F00001D0B19EB180E552E5CFDAFFE7CFD9FF1C +:024200001200AA +:0E420200D9CFE6FFDACFE6FFE1CFD9FFE2CF5A +:10421000DAFFE652F20E0101C017ABAC03D0C09139 +:10422000ABB0C081ABB4C085ABB2C087AE50DF6E5F +:10423000DF50E552E552E5CFDAFFE7CFD9FF1200B4 +:10424000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF41 +:10425000FD0EDB50C96EC6AE02D0FF0E09D0C7B04E +:10426000FED781EC22F0C5AC02D0FE0E01D0000ECC +:0C427000E552E5CFDAFFE7CFD9FF1200DE +:04427C0031393A3169 +:10428000383A35340020004D617920303820323002 +:10429000313000526F626F7420496E7465726661CE +:1042A000636520312E300A4F6C6976696572204251 +:0742B0004943484C45520050 +:0842B800D9CFE6FFDACFE6FFE3 +:1042C000E1CFD9FFE2CFDAFFE652E652FC0EDBCFB8 +:1042D000DEFFDBCFDDFF010EDB50B36EDF50B26ED1 +:1042E000E552E552E552E5CFDAFFE7CFD9FF1200FC +:1042F000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF91 +:10430000E652E652FC0EDBCFDEFFDBCFDDFF010E17 +:10431000DB50D76EDF50D66EE552E552E552E5CF61 +:08432000DAFFE7CFD9FF12001C +:08432800D9CFE6FFDACFE6FF72 +:10433000E1CFD9FFE2CFDAFFFD0EDB507F0BD56E68 +:10434000D76AD66AF294FD0EDBAE02D0F28A01D0B3 +:10435000F29AD58EE552E5CFDAFFE7CFD9FF12000A +:10436000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF20 +:10437000FD0EDB50FB0BCA6ECC6A9E92FD0EDBAECF +:1043800002D09D8201D09D92CA84E552E5CFDAFF2A +:06439000E7CFD9FF120087 +:0A439600D9CFE6FFDACFE6FFE1CF52 +:1043A000D9FFE2CFDAFF3F0EC716C66AC56AFD0E17 +:1043B000DB50C612FC0EDB50C71293829380C68A74 +:0C43C000E552E5CFDAFFE7CFD9FF12008D +:0443CC00D9CFE6FF60 +:1043D000E1CFD9FF01010ED8EF50000803E28B298D +:1043E0001F0B8B6F07D8FE0EDBCFEFFFE552E7CF39 +:1043F000D9FF12008B51EA6A6B0FE96E010EEA22B7 +:024400001200A8 +:0E440200D9CFE6FFDACFE6FFE1CFD9FFE2CF58 +:10441000DAFF0C0EBD129494CA94FD0EDB50CB6EE5 +:10442000CA84E552E5CFDAFFE7CFD9FF12009494B2 +:02443000120078 +:0E443200D9CFE6FFDACFE6FFE1CFD9FFE2CF28 +:10444000DAFFFD0EDB407F0B3C0B006EC30EC21487 +:104450000010C26EC282E552E5CFDAFFE7CFD9FF86 +:02446000120048 +:0E446200FF0EE350376EEF0E01D0F30EE76E43 +:10447000E72E38EF22F00C0E366EE76AE72E3EEF9D +:1044800022F0362E3DEF22F0372E36EF22F01200CA +:10449000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFEF +:1044A000ACAC04D0AC900101C0B3AC80FD0EDB50CD +:0E44B000AD6EE552E5CFDAFFE7CFD9FF12007F +:0244BE0013EEFB +:1044C00000F023EE00F0F86A239C19EC1FF096EC44 +:0A44D00022F0BDEC04F0FBD712004F +:0644DA00FF0EE350E84E66 +:1044E0001200000000D000D000D0E82EFAD7120051 +:1044F000C450036E026AC3500210F36E03C0F4FF8F +:024500001200A7 +:0E4502001F0EC514FDE1C750040BFAE11200B4 +:0E45100000EE00F00F0EEE6AEA62FDD7120018 +:02451E00C25089 +:08452000020B01E0010E120084 +:04452800C69A12001D +:02452C0012007B +:02452E0000008B +:074530000000000000000084 +:094537000000000000000000007B +:074540000000000000000074 +:094547000000000001000000006A +:0345500000000068 +:0D455300000000000000000000000000005B :10456000000000000000000000000000000000004B :044570000000000047 +:0C4574000000000000000000000000003B +:10458000000000000000000000000000000000002B +:08459000000000000000000023 :00000001FF diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map index 41e1322..733a7fd 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Sat May 08 19:09:22 2010 +Linker Map File - Created Sat May 08 19:19:00 2010 Section Info Section Type Address Location Size(Bytes) @@ -15,115 +15,115 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 .code_usb_device.o code 0x001c28 program 0x000b4c .code_ax12.o code 0x002774 program 0x000606 PROG code 0x002d7a program 0x000544 - .code_infrared.o code 0x0032be program 0x00034a - .code_servo.o code 0x003608 program 0x00025c - .code_mcc.o code 0x003864 program 0x00022c - .code_adjd-s371.o code 0x003a90 program 0x000128 - .code_lcd.o code 0x003bb8 program 0x0000d8 - .code_usb_function_hid.o code 0x003c90 program 0x0000ce -.romdata_usb_descriptors.o romdata 0x003d5e program 0x0000b0 - _cinit_scn code 0x003e0e program 0x00009e - .code_uopen.o code 0x003eac program 0x00008a - .code_i2c_puts.o code 0x003f36 program 0x000076 - .code_adcopen.o code 0x003fac program 0x00006e - STRING code 0x00401a program 0x00006c - .code_eeprom.o code 0x004086 program 0x00006c - .code_pw1setdc.o code 0x0040f2 program 0x00005e - .code_fxd3232u.o code 0x004150 program 0x000048 - .code_t3open.o code 0x004198 program 0x000046 - .code_uread.o code 0x0041de program 0x00003e - .code_i2c_writ.o code 0x00421c program 0x00003c - .stringtable romdata 0x004258 program 0x00003b - .idata_i2c_open.o_i romdata 0x004293 program 0x000000 - .romdata_i2c_open.o romdata 0x004293 program 0x000000 - .romdata_uread.o romdata 0x004293 program 0x000000 - .idata_uread.o_i romdata 0x004293 program 0x000000 - .romdata_adcread.o romdata 0x004293 program 0x000000 - .idata_adcread.o_i romdata 0x004293 program 0x000000 -.idata_usb_descriptors.o_i romdata 0x004293 program 0x000000 - .romdata_uopen.o romdata 0x004293 program 0x000000 - .idata_pw1open.o_i romdata 0x004293 program 0x000000 - .idata_uopen.o_i romdata 0x004293 program 0x000000 - .romdata_pw1open.o romdata 0x004293 program 0x000000 - .romdata_t3open.o romdata 0x004293 program 0x000000 - .idata_t3open.o_i romdata 0x004293 program 0x000000 - .romdata_t2open.o romdata 0x004293 program 0x000000 - .idata_t2open.o_i romdata 0x004293 program 0x000000 - .romdata_t0open.o romdata 0x004293 program 0x000000 - .idata_t0open.o_i romdata 0x004293 program 0x000000 - .idata_c018i.o_i romdata 0x004293 program 0x000000 - .romdata_c018i.o romdata 0x004293 program 0x000000 - .romdata_i2c_puts.o romdata 0x004293 program 0x000000 - .idata_i2c_puts.o_i romdata 0x004293 program 0x000000 - .romdata___init.o romdata 0x004293 program 0x000000 - .idata___init.o_i romdata 0x004293 program 0x000000 - .romdata_uwrite.o romdata 0x004293 program 0x000000 - .idata_uwrite.o_i romdata 0x004293 program 0x000000 - .romdata_t3write.o romdata 0x004293 program 0x000000 - .idata_t3write.o_i romdata 0x004293 program 0x000000 - .romdata_t0write.o romdata 0x004293 program 0x000000 - .idata_t0write.o_i romdata 0x004293 program 0x000000 - .romdata_i2c_writ.o romdata 0x004293 program 0x000000 - .idata_i2c_writ.o_i romdata 0x004293 program 0x000000 - .romdata_udefs.o romdata 0x004293 program 0x000000 - .idata_udefs.o_i romdata 0x004293 program 0x000000 - .romdata_pw1setdc.o romdata 0x004293 program 0x000000 - .idata_pw1setdc.o_i romdata 0x004293 program 0x000000 - .romdata_adcselchconv.o romdata 0x004293 program 0x000000 - .idata_adcselchconv.o_i romdata 0x004293 program 0x000000 - .romdata_lcd.o romdata 0x004293 program 0x000000 - .idata_eeprom.o_i romdata 0x004293 program 0x000000 - .idata_lcd.o_i romdata 0x004293 program 0x000000 - .romdata_eeprom.o romdata 0x004293 program 0x000000 - .romdata_infrared.o romdata 0x004293 program 0x000000 - .idata_adcbusy.o_i romdata 0x004293 program 0x000000 - .romdata_adcbusy.o romdata 0x004293 program 0x000000 - .romdata_adjd-s371.o romdata 0x004293 program 0x000000 - .idata_adjd-s371.o_i romdata 0x004293 program 0x000000 - .idata_i2c_clos.o_i romdata 0x004293 program 0x000000 - .romdata_i2c_clos.o romdata 0x004293 program 0x000000 - .idata_usb_device.o_i romdata 0x004293 program 0x000000 - .romdata_mcc.o romdata 0x004293 program 0x000000 - .romdata_usb_device.o romdata 0x004293 program 0x000000 - .romdata_main.o romdata 0x004293 program 0x000000 - .idata_fxd3232u.o_i romdata 0x004293 program 0x000000 - .romdata_servo.o romdata 0x004293 program 0x000000 - .romdata_fxd3232u.o romdata 0x004293 program 0x000000 - .romdata_error.o romdata 0x004293 program 0x000000 - .idata_i2c_idle.o_i romdata 0x004293 program 0x000000 - .romdata_i2c_idle.o romdata 0x004293 program 0x000000 -.idata_usb_function_hid.o_i romdata 0x004293 program 0x000000 - .idata_adcopen.o_i romdata 0x004293 program 0x000000 - .romdata_ax12.o romdata 0x004293 program 0x000000 - .romdata_adcopen.o romdata 0x004293 program 0x000000 -.romdata_usb_function_hid.o romdata 0x004293 program 0x000000 - .code_t3write.o code 0x004294 program 0x000038 - .code_c018i.o code 0x004294 program 0x000000 - .code_udefs.o code 0x004294 program 0x000000 - .code_usb_descriptors.o code 0x004294 program 0x000000 - .code_t0write.o code 0x0042cc program 0x000038 - .code_t0open.o code 0x004304 program 0x000038 - .code_t2open.o code 0x00433c program 0x000036 - .code_i2c_open.o code 0x004372 program 0x000036 - .code_error.o code 0x0043a8 program 0x000036 - .code_pw1open.o code 0x0043de program 0x000030 - .code_adcselchconv.o code 0x00440e program 0x000030 - D10KTCYXCODE code 0x00443e program 0x00002e - .code_uwrite.o code 0x00446c program 0x00002e - _startup_scn code 0x00449a program 0x00001c - D10TCYXCODE code 0x0044b6 program 0x000016 - .code_adcread.o code 0x0044cc program 0x000012 - .code_i2c_idle.o code 0x0044de program 0x00000e - .code code 0x0044ec program 0x00000e - .code_adcbusy.o code 0x0044fa program 0x00000a - .code_i2c_clos.o code 0x004504 program 0x000004 - .code___init.o code 0x004508 program 0x000002 - .idata_servo.o_i romdata 0x00450a program 0x000009 - .idata_mcc.o_i romdata 0x004513 program 0x000010 - .idata_main.o_i romdata 0x004523 program 0x000009 - .idata_infrared.o_i romdata 0x00452c program 0x000003 - .idata_error.o_i romdata 0x00452f program 0x000021 - .idata_ax12.o_i romdata 0x004550 program 0x000024 + .code_infrared.o code 0x0032be program 0x00036e + .code_servo.o code 0x00362c program 0x00025c + .code_mcc.o code 0x003888 program 0x00022c + .code_adjd-s371.o code 0x003ab4 program 0x000128 + .code_lcd.o code 0x003bdc program 0x0000d8 + .code_usb_function_hid.o code 0x003cb4 program 0x0000ce +.romdata_usb_descriptors.o romdata 0x003d82 program 0x0000b0 + _cinit_scn code 0x003e32 program 0x00009e + .code_uopen.o code 0x003ed0 program 0x00008a + .code_i2c_puts.o code 0x003f5a program 0x000076 + .code_adcopen.o code 0x003fd0 program 0x00006e + STRING code 0x00403e program 0x00006c + .code_eeprom.o code 0x0040aa program 0x00006c + .code_pw1setdc.o code 0x004116 program 0x00005e + .code_fxd3232u.o code 0x004174 program 0x000048 + .code_t3open.o code 0x0041bc program 0x000046 + .code_uread.o code 0x004202 program 0x00003e + .code_i2c_writ.o code 0x004240 program 0x00003c + .stringtable romdata 0x00427c program 0x00003b + .idata_i2c_open.o_i romdata 0x0042b7 program 0x000000 + .romdata_i2c_open.o romdata 0x0042b7 program 0x000000 + .romdata_uread.o romdata 0x0042b7 program 0x000000 + .idata_uread.o_i romdata 0x0042b7 program 0x000000 + .romdata_adcread.o romdata 0x0042b7 program 0x000000 + .idata_adcread.o_i romdata 0x0042b7 program 0x000000 +.idata_usb_descriptors.o_i romdata 0x0042b7 program 0x000000 + .romdata_uopen.o romdata 0x0042b7 program 0x000000 + .idata_pw1open.o_i romdata 0x0042b7 program 0x000000 + .idata_uopen.o_i romdata 0x0042b7 program 0x000000 + .romdata_pw1open.o romdata 0x0042b7 program 0x000000 + .romdata_t3open.o romdata 0x0042b7 program 0x000000 + .idata_t3open.o_i romdata 0x0042b7 program 0x000000 + .romdata_t2open.o romdata 0x0042b7 program 0x000000 + .idata_t2open.o_i romdata 0x0042b7 program 0x000000 + .romdata_t0open.o romdata 0x0042b7 program 0x000000 + .idata_t0open.o_i romdata 0x0042b7 program 0x000000 + .idata_c018i.o_i romdata 0x0042b7 program 0x000000 + .romdata_c018i.o romdata 0x0042b7 program 0x000000 + .romdata_i2c_puts.o romdata 0x0042b7 program 0x000000 + .idata_i2c_puts.o_i romdata 0x0042b7 program 0x000000 + .romdata___init.o romdata 0x0042b7 program 0x000000 + .idata___init.o_i romdata 0x0042b7 program 0x000000 + .romdata_uwrite.o romdata 0x0042b7 program 0x000000 + .idata_uwrite.o_i romdata 0x0042b7 program 0x000000 + .romdata_t3write.o romdata 0x0042b7 program 0x000000 + .idata_t3write.o_i romdata 0x0042b7 program 0x000000 + .romdata_t0write.o romdata 0x0042b7 program 0x000000 + .idata_t0write.o_i romdata 0x0042b7 program 0x000000 + .romdata_i2c_writ.o romdata 0x0042b7 program 0x000000 + .idata_i2c_writ.o_i romdata 0x0042b7 program 0x000000 + .romdata_udefs.o romdata 0x0042b7 program 0x000000 + .idata_udefs.o_i romdata 0x0042b7 program 0x000000 + .romdata_pw1setdc.o romdata 0x0042b7 program 0x000000 + .idata_pw1setdc.o_i romdata 0x0042b7 program 0x000000 + .romdata_adcselchconv.o romdata 0x0042b7 program 0x000000 + .idata_adcselchconv.o_i romdata 0x0042b7 program 0x000000 + .romdata_lcd.o romdata 0x0042b7 program 0x000000 + .idata_eeprom.o_i romdata 0x0042b7 program 0x000000 + .idata_lcd.o_i romdata 0x0042b7 program 0x000000 + .romdata_eeprom.o romdata 0x0042b7 program 0x000000 + .romdata_infrared.o romdata 0x0042b7 program 0x000000 + .idata_adcbusy.o_i romdata 0x0042b7 program 0x000000 + .romdata_adcbusy.o romdata 0x0042b7 program 0x000000 + .romdata_adjd-s371.o romdata 0x0042b7 program 0x000000 + .idata_adjd-s371.o_i romdata 0x0042b7 program 0x000000 + .idata_i2c_clos.o_i romdata 0x0042b7 program 0x000000 + .romdata_i2c_clos.o romdata 0x0042b7 program 0x000000 + .idata_usb_device.o_i romdata 0x0042b7 program 0x000000 + .romdata_mcc.o romdata 0x0042b7 program 0x000000 + .romdata_usb_device.o romdata 0x0042b7 program 0x000000 + .romdata_main.o romdata 0x0042b7 program 0x000000 + .idata_fxd3232u.o_i romdata 0x0042b7 program 0x000000 + .romdata_servo.o romdata 0x0042b7 program 0x000000 + .romdata_fxd3232u.o romdata 0x0042b7 program 0x000000 + .romdata_error.o romdata 0x0042b7 program 0x000000 + .idata_i2c_idle.o_i romdata 0x0042b7 program 0x000000 + .romdata_i2c_idle.o romdata 0x0042b7 program 0x000000 +.idata_usb_function_hid.o_i romdata 0x0042b7 program 0x000000 + .idata_adcopen.o_i romdata 0x0042b7 program 0x000000 + .romdata_ax12.o romdata 0x0042b7 program 0x000000 + .romdata_adcopen.o romdata 0x0042b7 program 0x000000 +.romdata_usb_function_hid.o romdata 0x0042b7 program 0x000000 + .code_t3write.o code 0x0042b8 program 0x000038 + .code_c018i.o code 0x0042b8 program 0x000000 + .code_udefs.o code 0x0042b8 program 0x000000 + .code_usb_descriptors.o code 0x0042b8 program 0x000000 + .code_t0write.o code 0x0042f0 program 0x000038 + .code_t0open.o code 0x004328 program 0x000038 + .code_t2open.o code 0x004360 program 0x000036 + .code_i2c_open.o code 0x004396 program 0x000036 + .code_error.o code 0x0043cc program 0x000036 + .code_pw1open.o code 0x004402 program 0x000030 + .code_adcselchconv.o code 0x004432 program 0x000030 + D10KTCYXCODE code 0x004462 program 0x00002e + .code_uwrite.o code 0x004490 program 0x00002e + _startup_scn code 0x0044be program 0x00001c + D10TCYXCODE code 0x0044da program 0x0000... [truncated message content] |
From: Olivier B. <Ba...@us...> - 2010-05-08 17:10:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 0a76a1bcc9c4ddcca1672e62f43a87bb80b26758 (commit) from 3236513213c1e9c032db58fa87984a51896a9533 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0a76a1bcc9c4ddcca1672e62f43a87bb80b26758 Author: Olivier BICHLER <oli...@cr...> Date: Sat May 8 19:10:05 2010 +0200 Bug with infrared sensor interrupt routine ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Interface_Robot/Firmware/Robot_Interface.mcw b/elec/boards/Interface_Robot/Firmware/Robot_Interface.mcw index f4bc2bf..83af6e5 100644 Binary files a/elec/boards/Interface_Robot/Firmware/Robot_Interface.mcw and b/elec/boards/Interface_Robot/Firmware/Robot_Interface.mcw differ diff --git a/elec/boards/Interface_Robot/Firmware/main.c b/elec/boards/Interface_Robot/Firmware/main.c index f42183b..2becbd3 100644 --- a/elec/boards/Interface_Robot/Firmware/main.c +++ b/elec/boards/Interface_Robot/Firmware/main.c @@ -245,10 +245,6 @@ char ResetSource(void); } #ifdef KROBOT_2010 - interruptIF(); - #endif - - #ifdef KROBOT_2010 // Interruption par le timer0 if (INTCONbits.TMR0IF) { interruptMotor1(); @@ -606,6 +602,11 @@ void ProcessIO(void) { if(blinkStatusValid) { BlinkUSBStatus(); } + + #ifdef KROBOT_2010 + interruptIF(); + #endif + /* if (!HIDTxHandleBusy(USBInHandle) && glbReceived) { ToSendDataBuffer.HSEQ = 0; // Num sence PC diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof index 2a5e2d1..73426c0 100644 Binary files a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof and b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof differ diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex index acf2a75..21c56c2 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex @@ -4,7 +4,7 @@ :060018000CEF04F01200E1 :060800004DEF22F0120092 :060808003AEF04F01200BB -:060818009CEF04F0120049 +:060818009AEF04F012004B :06082A000600504500002D :1008300026010000240000002F4500006B0100008D :10084000210000002C450000BB0100000300000057 @@ -17,28 +17,28 @@ :1008A000140EE80403E3EECFE4FFFBD700EE00F004 :1008B000220EE80403E3EECFE4FFFBD7A4EC0DF037 :1008C000A1A203D019EC1BF0A1929EAA03D0BFEC09 -:1008D00013F09E9A6FEC19F0F2A403D058EC1CF0C0 -:1008E000F294B7EC0DF002E2E16AE552B5EC0DF0DE -:1008F000E55200EE21F0220EE80403E3E5CFEDFF20 -:10090000FBD700EE35F0140EE80403E3E5CFEDFF6E -:10091000FBD7E5CFFAFFE5CFF4FFE5CFF3FFE5CF57 -:10092000F5FFE5CFF7FFE5CFF6FFE5CFEAFFE5CF2F -:10093000E9FFE5CFDAFF1100D8CFE4FFE0CFE4FF15 -:10094000E46EDACFE4FFE2CFDAFFF3CFE4FFF4CFD7 -:10095000E4FFA4EC0DF0B7EC0DF002E2E16AE55221 -:10096000B5EC0DF0E552E5CFF4FFE5CFF3FFE5CFB1 -:10097000DAFFE550E5CFE0FFE5CFD8FF100004D85F -:100980004AEC0EF047D8FCD70F0EC11202D814EF74 -:100990000EF0EFEC0DF0E6522BEC0DF00101B86F0C -:1009A000070EB85D10E1E66A63EC20F0E552DF6EF9 -:1009B000000EDF80BFEC0DF0E66A1FEC22F0E5527E -:1009C000DF70BFEC0DF093809382948C948ED08E68 -:1009D000F28EF28C770EC86E070EE66EDCEC1DF020 -:1009E000E5523F0E8A1693160101AF6BB06BB16BE7 -:1009F000B26B010EB36FBAEC13F004EC1BF0E66AB5 -:100A000032EC1CF0E55248EC1DF05FEC19F0E552B9 -:100A100000EF0EF0D9CFE6FFE1CFD9FF170EE126A8 -:100A2000160EDB6A0101B35102E01FEC0CF0200E40 +:1008D00013F09E9AF2A403D058EC1CF0F294B7ECFB +:1008E0000DF002E2E16AE552B5EC0DF0E55200EEE2 +:1008F00021F0220EE80403E3E5CFEDFFFBD700EE85 +:1009000035F0140EE80403E3E5CFEDFFFBD7E5CFA8 +:10091000FAFFE5CFF4FFE5CFF3FFE5CFF5FFE5CF35 +:10092000F7FFE5CFF6FFE5CFEAFFE5CFE9FFE5CF3B +:10093000DAFF1100D8CFE4FFE0CFE4FFE46EDACFB6 +:10094000E4FFE2CFDAFFF3CFE4FFF4CFE4FFA4EC5F +:100950000DF0B7EC0DF002E2E16AE552B5EC0DF0F6 +:10096000E552E5CFF4FFE5CFF3FFE5CFDAFFE55041 +:10097000E5CFE0FFE5CFD8FF100004D84AEC0EF039 +:1009800047D8FCD70F0EC11202D814EF0EF0EFECCF +:100990000DF0E6522BEC0DF00101B86F070EB85DBB +:1009A00010E1E66A63EC20F0E552DF6E000EDF80B6 +:1009B000BFEC0DF0E66A1FEC22F0E552DF70BFECF1 +:1009C0000DF093809382948C948ED08EF28EF28C64 +:1009D000770EC86E070EE66EDCEC1DF0E5523F0E9A +:1009E0008A1693160101AF6BB06BB16BB26B010E3F +:1009F000B36FBAEC13F004EC1BF0E66A32EC1CF0B7 +:100A0000E55248EC1DF05FEC19F0E55200EF0EF0F6 +:100A1000D9CFE6FFE1CFD9FF170EE126160EDB6A2C +:100A20000101B35102E01FEC0CF06FEC19F0200E45 :100A30000101005D03E36D50020B02E015EF0CF0C5 :100A4000160EDB5036E020EC1DF0000932E001010B :100A5000B151B21102E1000E08D0B1C1E9FFB2C13B @@ -956,7 +956,7 @@ :10423000C96EC6AE02D0FF0E09D0C7B0FED76FEC74 :1042400022F0C5AC02D0FE0E01D0000EE552E5CF43 :08425000DAFFE7CFD9FF1200ED -:0842580031383A34313A3431B7 +:0842580031393A30393A3137AF :104260000020004D6179203038203230313000524A :104270006F626F7420496E74657266616365203188 :104280002E300A4F6C697669657220424943484C6A @@ -1004,7 +1004,7 @@ :10448000AC900101C0B3AC80FD0EDB50AD6EE552C7 :0A449000E5CFDAFFE7CFD9FF1200F5 :06449A0013EE00F023EE1A -:1044A00000F0F86A239C07EC1FF084EC22F0BFECCC +:1044A00000F0F86A239C07EC1FF084EC22F0BDECCE :0644B00004F0FBD712002E :0A44B600FF0EE350E84E1200000074 :0C44C00000D000D000D0E82EFAD7120087 diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map index 63e01df..41e1322 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Sat May 08 18:41:47 2010 +Linker Map File - Created Sat May 08 19:09:22 2010 Section Info Section Type Address Location Size(Bytes) @@ -249,7 +249,7 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 INT3216 0x0030e6 program extern C:\MCC18\src\traditional\math\castFP16.asm INT3232 0x003144 program extern C:\MCC18\src\traditional\math\castFP32.asm IdleI2C 0x0044de program extern C:\MCC18\src\pmc_common\i2c\i2c_idle.c - InitializeSystem 0x000988 program static C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + InitializeSystem 0x000984 program static C:\krobot\elec\boards\Interface_Robot\Firmware\main.c Low_ISR 0x000018 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c OpenADC 0x003fac program extern C:\MCC18\src\pmc_common\ADC\adcopen.c OpenI2C 0x004372 program extern C:\MCC18\src\pmc_common\i2c\i2c_open.c @@ -259,7 +259,7 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 OpenTimer2 0x00433c program extern C:\MCC18\src\pmc_common\Timers\t2open.c OpenTimer3 0x004198 program extern C:\MCC18\src\pmc_common\Timers\t3open.c OpenUSART 0x003eac program extern C:\MCC18\src\pmc_common\USART\uopen.c - ProcessIO 0x000a14 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + ProcessIO 0x000a10 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c ReadADC 0x0044cc program extern C:\MCC18\src\pmc_common\ADC\adcread.c ReadEEPROM 0x0040c6 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\eeprom.c ReadUSART 0x0041de program extern C:\MCC18\src\pmc_common\USART\uread.c @@ -303,14 +303,14 @@ USBPrepareForNextSetupTrf 0x001f34 program extern C:\krobot\elec\boards USB_CD_Ptr 0x003e06 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_descriptors.c USB_SD_Ptr 0x003e08 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\usb_descriptors.c USER_USB_CALLBACK_EVENT_HANDLER 0x0019c0 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - UserInit 0x000992 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + UserInit 0x00098e program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c WriteEEPROM 0x004086 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\eeprom.c WriteI2C 0x00421c program extern C:\MCC18\src\pmc_common\i2c\i2c_writ.c WriteTimer0 0x0042cc program extern C:\MCC18\src\pmc_common\Timers\t0write.c WriteTimer3 0x004294 program extern C:\MCC18\src\pmc_common\Timers\t3write.c WriteUSART 0x00446c program extern C:\MCC18\src\pmc_common\USART\uwrite.c YourHighPriorityISRCode 0x000874 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - YourLowPriorityISRCode 0x000938 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + YourLowPriorityISRCode 0x000934 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c _2jContinue 0x00403a program static C:\MCC18\src\traditional\stdclib\memset.asm _3jEnd 0x004044 program static C:\MCC18\src\traditional\stdclib\memset.asm _D10KTCYXCODE_0010 0x00444e program static C:\MCC18\src\traditional\delays\d10ktcyx.asm @@ -424,7 +424,7 @@ USER_USB_CALLBACK_EVENT_HANDLER 0x0019c0 program extern C:\krobot\elec\ ___for_lbl00057 0x002bd4 program static ___for_lbl00058 0x002bde program static ___for_lbl00060 0x002b60 program static - ___if_lbl00017 0x000a2e program static + ___if_lbl00017 0x000a2a program static ___if_lbl00019 0x000a40 program static ___if_lbl00024 0x000ab2 program static ___if_lbl00028 0x000b4c program static @@ -722,7 +722,7 @@ USER_USB_CALLBACK_EVENT_HANDLER 0x0019c0 program extern C:\krobot\elec\ lcd_write_line 0x003c18 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\lcd.c loop 0x00415e program static loop 0x0044aa program static - main 0x00097e program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + main 0x00097a program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c memset 0x00401a program extern C:\MCC18\src\traditional\stdclib\memset.asm move 0x0038f6 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\mcc.c pingAX12 0x0029a4 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\ax12.c @@ -1114,12 +1114,12 @@ USER_USB_CALLBACK_EVENT_HANDLER 0x0019c0 program extern C:\krobot\elec\ Remapped_Low_ISR 0x000818 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c ___return_lbl00002 0x00081c program static YourHighPriorityISRCode 0x000874 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - YourLowPriorityISRCode 0x000938 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - main 0x00097e program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - InitializeSystem 0x000988 program static C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - UserInit 0x000992 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - ProcessIO 0x000a14 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c - ___if_lbl00017 0x000a2e program static + YourLowPriorityISRCode 0x000934 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + main 0x00097a program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + InitializeSystem 0x000984 program static C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + UserInit 0x00098e program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + ProcessIO 0x000a10 program extern C:\krobot\elec\boards\Interface_Robot\Firmware\main.c + ___if_lbl00017 0x000a2a program static __tmplbl_1 0x000a36 program static __tmplbl_0 0x000a3c program static ___if_lbl00019 0x000a40 program static hooks/post-receive -- krobot |
From: Olivier B. <Ba...@us...> - 2010-05-08 16:47:45
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 3236513213c1e9c032db58fa87984a51896a9533 (commit) via 9d40ec89731270306258eb600c599d080f2725fa (commit) from 294ca665eabaf8f25572fd67b3910a1a48b25bf4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3236513213c1e9c032db58fa87984a51896a9533 Merge: 9d40ec89731270306258eb600c599d080f2725fa 294ca665eabaf8f25572fd67b3910a1a48b25bf4 Author: Olivier BICHLER <oli...@cr...> Date: Sat May 8 18:47:17 2010 +0200 Merge branch 'master' of ssh://krobot.git.sourceforge.net/gitroot/krobot/krobot commit 9d40ec89731270306258eb600c599d080f2725fa Author: Olivier BICHLER <oli...@cr...> Date: Sat May 8 18:47:01 2010 +0200 Check if infrared sensor power supply is working ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Interface_Robot/Firmware/infrared.c b/elec/boards/Interface_Robot/Firmware/infrared.c index 8eda7e5..1796067 100644 --- a/elec/boards/Interface_Robot/Firmware/infrared.c +++ b/elec/boards/Interface_Robot/Firmware/infrared.c @@ -51,7 +51,7 @@ void interruptIF(void) { break; case 2: - OPTOSW1 = 0; + //OPTOSW1 = 0; OPTOSW2 = 1; // Drre la convertion sur RA1 @@ -68,7 +68,7 @@ void interruptIF(void) { break; case 4: - OPTOSW2 = 0; + //OPTOSW2 = 0; // Traitement des rltats IF1_idx++; diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof index 825d379..2a5e2d1 100644 Binary files a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof and b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.cof differ diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex index 994e1fc..acf2a75 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.hex @@ -1,23 +1,23 @@ :020000040000FA -:060000004FEF22F0120098 +:060000004DEF22F012009A :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:060800004FEF22F0120090 +:060800004DEF22F0120092 :060808003AEF04F01200BB :060818009CEF04F0120049 -:06082A0006005445000029 -:100830002601000024000000334500006B01000089 -:100840002100000030450000BB0100000300000053 -:1008500027450000AF010000090000001745000017 -:100860008C010000100000000E450000A6010000F1 +:06082A000600504500002D +:1008300026010000240000002F4500006B0100008D +:10084000210000002C450000BB0100000300000057 +:1008500023450000AF01000009000000134500001F +:100860008C010000100000000A450000A6010000F5 :04087000090000007B :0C087400DACFE4FFE2CFDAFFE9CFE4FFC7 :10088000EACFE4FFF6CFE4FFF7CFE4FFF5CFE4FFD4 :10089000F3CFE4FFF4CFE4FFFACFE4FF00EE22F061 :1008A000140EE80403E3EECFE4FFFBD700EE00F004 :1008B000220EE80403E3EECFE4FFFBD7A4EC0DF037 -:1008C000A1A203D01BEC1BF0A1929EAA03D0BFEC07 -:1008D00013F09E9A6FEC19F0F2A403D05AEC1CF0BE +:1008C000A1A203D019EC1BF0A1929EAA03D0BFEC09 +:1008D00013F09E9A6FEC19F0F2A403D058EC1CF0C0 :1008E000F294B7EC0DF002E2E16AE552B5EC0DF0DE :1008F000E55200EE21F0220EE80403E3E5CFEDFF20 :10090000FBD700EE35F0140EE80403E3E5CFEDFF6E @@ -30,17 +30,17 @@ :10097000DAFFE550E5CFE0FFE5CFD8FF100004D85F :100980004AEC0EF047D8FCD70F0EC11202D814EF74 :100990000EF0EFEC0DF0E6522BEC0DF00101B86F0C -:1009A000070EB85D10E1E66A65EC20F0E552DF6EF7 -:1009B000000EDF80BFEC0DF0E66A21EC22F0E5527C +:1009A000070EB85D10E1E66A63EC20F0E552DF6EF9 +:1009B000000EDF80BFEC0DF0E66A1FEC22F0E5527E :1009C000DF70BFEC0DF093809382948C948ED08E68 -:1009D000F28EF28C770EC86E070EE66EDEEC1DF01E +:1009D000F28EF28C770EC86E070EE66EDCEC1DF020 :1009E000E5523F0E8A1693160101AF6BB06BB16BE7 -:1009F000B26B010EB36FBAEC13F006EC1BF0E66AB3 -:100A000034EC1CF0E5524AEC1DF05FEC19F0E552B5 +:1009F000B26B010EB36FBAEC13F004EC1BF0E66AB5 +:100A000032EC1CF0E55248EC1DF05FEC19F0E552B9 :100A100000EF0EF0D9CFE6FFE1CFD9FF170EE126A8 :100A2000160EDB6A0101B35102E01FEC0CF0200E40 :100A30000101005D03E36D50020B02E015EF0CF0C5 -:100A4000160EDB5036E022EC1DF0000932E0010109 +:100A4000160EDB5036E020EC1DF0000932E001010B :100A5000B151B21102E1000E08D0B1C1E9FFB2C13B :100A6000EAFFEF50800B01E0010E000922E10501D1 :100A7000406B0101B451B42B0501416F05010C0E0F @@ -63,32 +63,32 @@ :100B80004DEF0BF00E0A02E1F4EF0AF0060A02E163 :100B900079EF0AF0040A01E1A0D20F0A01E1F5D1D0 :100BA000040A1AE0030A07E0010A02E0D4EF0BF09E -:100BB000FF0015EF0CF0E66A65EC20F0E552DF6E01 -:100BC000000EDB80DFCFE6FFE66A45EC20F0E55261 +:100BB000FF0015EF0CF0E66A63EC20F0E552DF6E03 +:100BC000000EDB80DFCFE6FFE66A43EC20F0E55263 :100BD000E552FF0015EF0CF00101B151B21102E135 :100BE000000E08D0B1C1E9FFB2C1EAFFEF50800B9F :100BF00001E0010E000901E0C6D100C540F5050184 :100C0000416B0501030E426F0501436B050108515D :100C1000050A01E101D10F0A01E17ED00E0A71E05F :100C2000070A64E0010A20E0030A06E0010A01E085 -:100C300080D1B8C148F580D10501486B730E006EB4 +:100C300080D1B8C148F580D10501486B6F0E006EB8 :100C4000420E016E026A00C0E6FF01C0E6FF02C06C -:100C5000E6FF480EE66E050EE66E29EC20F0036E08 -:100C6000050EE15E035068D10501486B670E006E0A +:100C5000E6FF480EE66E050EE66E27EC20F0036E0A +:100C6000050EE15E035068D10501486B630E006E0E :100C7000420E016E026A00C0E6FF01C0E6FF02C03C -:100C8000E6FF480EE66E050EE66E29EC20F0036ED8 -:100C9000050EE15E0350650E006E420E016E026AA3 +:100C8000E6FF480EE66E050EE66E27EC20F0036EDA +:100C9000050EE15E0350610E006E420E016E026AA7 :100CA00000C0E6FF01C0E6FF02C0E6FF480EE66EA8 -:100CB000050EE66E29EC20F0036E050EE15E035092 -:100CC0005C0E006E420E016E026A00C0E6FF01C0BB -:100CD000E6FF02C0E6FF480EE66E050EE66E29EC62 +:100CB000050EE66E27EC20F0036E050EE15E035094 +:100CC000580E006E420E016E026A00C0E6FF01C0BF +:100CD000E6FF02C0E6FF480EE66E050EE66E27EC64 :100CE00020F0036E050EE15E035026D192CF48F549 :100CF00093CF49F594CF4AF595CF4BF596CF4CF568 :100D00001BD180CF48F581CF49F582CF4AF583CFFB :100D10004BF584CF4CF510D1800EE66E080EE66ED2 -:100D2000BBEC21F0E552E552C58071EC22F0C00E1B -:100D3000E66E10EC21F0E552E66A10EC21F0E55287 -:100D4000C58271EC22F0C10EE66E10EC21F0E55286 +:100D2000B9EC21F0E552E552C5806FEC22F0C00E1F +:100D3000E66E0EEC21F0E552E66A0EEC21F0E5528B +:100D4000C5826FEC22F0C10EE66E0EEC21F0E5528A :100D5000010EDB6A020EDB6A010EDBCF00F0020E31 :100D6000DBCF01F0040E005C000E01584FE2010ED3 :100D7000F36E150EF3CFDBFFC586130EDB6A140E80 @@ -97,13 +97,13 @@ :100DA000E9FF020EDBCFEAFF480EE926050EEA2234 :100DB000C9CFEFFF150EDB6A06D0130EDB2A140E27 :100DC00001E3DB2ADED7150EDB5008E00501080E33 -:100DD000436FC58AC58871EC22F018D0010EDBCFB5 +:100DD000436FC58AC5886FEC22F018D0010EDBCFB7 :100DE00000F0020EDBCF01F0030E005C000E015894 -:100DF00003E2C59AC58802D0C58AC58871EC22F085 -:100E0000010EDB2A020E01E3DB2AA6D7C58471ECB2 -:100E100022F084EC22F090D0010EDB6A020EDB6A35 +:100DF00003E2C59AC58802D0C58AC5886FEC22F087 +:100E0000010EDB2A020E01E3DB2AA6D7C5846FECB4 +:100E100022F082EC22F090D0010EDB6A020EDB6A37 :100E2000010EDBCF00F0020EDBCF01F0020E005C02 -:100E3000000E015801E37CD0010EDBCFE6FF1FEC72 +:100E3000000E015801E37CD0010EDBCFE6FF1DEC74 :100E40001AF0E5520B0E28C0DBFF0C0E29C0DBFFA9 :100E50000D0E2AC0DBFF0E0E2BC0DBFF040E2A6E28 :100E60002B6A010EDBCF2FF0020EDBCF30F055ECFA @@ -136,13 +136,13 @@ :101010000A518A1205010B518B1205010C518C12D9 :1010200005010D518D1245D0050109510101AB1B80 :1010300005010A510101AB133CD0050109A107D0FC -:101040000AC5E6FFE66AB0EC1BF0E552E552050181 -:1010500009A308D00BC5E6FF010EE66EB0EC1BF04D +:101040000AC5E6FFE66AAEEC1BF0E552E552050183 +:1010500009A308D00BC5E6FF010EE66EAEEC1BF04F :10106000E552E552050109A508D00CC5E6FF020EC0 -:10107000E66EB0EC1BF0E552E552050109A708D079 -:101080000DC5E6FF030EE66EB0EC1BF0E552E5522F -:10109000050109A908D00EC5E6FF040EE66EB0EC06 -:1010A0001BF0E552E55205D0030EE66ED6EC21F0BA +:10107000E66EAEEC1BF0E552E552050109A708D07B +:101080000DC5E6FF030EE66EAEEC1BF0E552E55231 +:10109000050109A908D00EC5E6FF040EE66EAEEC08 +:1010A0001BF0E552E55205D0030EE66ED4EC21F0BC :1010B000E552400EE66E000EE66E050EE66EE66A3E :1010C000010EE66E65EC12F0006E050EE15E00505A :1010D000F3CFAFF1F4CFB0F1A8D30101B151B21108 @@ -213,38 +213,38 @@ :1014E000006E050EE15E0050F3CFAFF1F4CFB0F126 :1014F0009CD105010851070A4FE0010A41E0030AA7 :1015000033E0010A29E0070A1EE0010A14E0030A99 -:1015100009E0010A01E04FD0070EE66EE5EC1DF090 -:10152000E5524ED0010EE66E070EE66EE8EC1DF0B9 -:10153000E552E55245D0E66A070EE66EE8EC1DF08E -:10154000E552E5523DD0010EE66E070EE66EF0EC78 -:101550001DF0E552E55234D0E66A070EE66EF0EC77 +:1015100009E0010A01E04FD0070EE66EE3EC1DF092 +:10152000E5524ED0010EE66E070EE66EE6EC1DF0BB +:10153000E552E55245D0E66A070EE66EE6EC1DF090 +:10154000E552E5523DD0010EE66E070EE66EEEEC7A +:101550001DF0E552E55234D0E66A070EE66EEEEC79 :101560001DF0E552E5522CD00AC5E6FF09C5E6FF9D -:10157000070EE66EFBEC1DF0E552E552E55220D079 -:10158000090EE66E050EE66E070EE66E08EC1EF01E +:10157000070EE66EF9EC1DF0E552E552E55220D07B +:10158000090EE66E050EE66E070EE66E06EC1EF020 :10159000E552E552E55214D00A0EE66E050EE66EEF -:1015A00009C5E6FF070EE66E0EEC1EF0E552E552A9 -:1015B000E552E55205D0010EE66ED6EC21F0E5527B +:1015A00009C5E6FF070EE66E0CEC1EF0E552E552AB +:1015B000E552E55205D0010EE66ED4EC21F0E5527D :1015C000400EE66E000EE66E050EE66EE66A010E51 :1015D000E66E65EC12F0006E050EE15E0050F3CF92 :1015E000AFF1F4CFB0F121D105010851030A11E0A8 -:1015F000010A09E0030A01E037D009C5E6FF75ECEE -:101600001CF0E55236D009C5E6FF79EC1CF0E55236 +:1015F000010A09E0030A01E037D009C5E6FF73ECF0 +:101600001CF0E55236D009C5E6FF77EC1CF0E55238 :1016100030D00E0E0CC5DBFF0D0E0DC5DBFF0C0E22 :101620000EC5DBFF0B0E0FC5DBFFD9500B0FE96EAC :10163000DACFEAFFEECFE6FFEECFE6FFEECFE6FF32 :10164000EFCFE6FF0BC5E6FF0AC5E6FF09C5E6FFDB -:101650007DEC1CF0006E070EE15E0050010EF36E93 -:10166000160EF3CFDBFF05D0010EE66ED6EC21F0AF +:101650007BEC1CF0006E070EE15E0050010EF36E95 +:10166000160EF3CFDBFF05D0010EE66ED4EC21F0B1 :10167000E552400EE66E000EE66E050EE66EE66A78 :10168000010EE66E65EC12F0006E050EE15E005094 :10169000F3CFAFF1F4CFB0F1C8D0800EE66E080EF4 -:1016A000E66EBBEC21F0E552E552C58071EC22F00C -:1016B000E66A10EC21F0E552080EE66E050EE66EC5 -:1016C0009DEC1FF0E552E552C58484EC22F0400EFB +:1016A000E66EB9EC21F0E552E552C5806FEC22F010 +:1016B000E66A0EEC21F0E552080EE66E050EE66EC7 +:1016C0009BEC1FF0E552E552C58482EC22F0400EFF :1016D000E66E000EE66E050EE66EE66A010EE66E3A :1016E00065EC12F0006E050EE15E0050F3CFAFF135 :1016F000F4CFB0F19AD04F0EAB16AC9ACF0E9D1628 -:10170000020EE66EE66A7C0EE66E58EC1FF0E552BD +:10170000020EE66EE66A7C0EE66E56EC1FF0E552BF :10171000E552E552040EE66EE66AB4EC14F0E552CA :10172000E552100EE66E010EE66EB4EC14F0E552D2 :10173000E552020EE66E030EE66E010EE66E2FEC2B @@ -280,9 +280,9 @@ :101910006E0EEE6E200E59D9740E7BD9620EEE6EED :101920006C0EEE6E690E42D9EE6E5ED9EE6E71D916 :10193000760E4BD9630EEE6E200EEE6E6C0E69D9EC -:10194000200EEE6EF8D8070EE66EE5EC1DF0E552BF +:10194000200EEE6EF8D8070EE66EE3EC1DF0E552C1 :101950001ED9010EE66EA5D802E2E16AE552B5EFA6 -:101960000DF0120012004AEF1EF012001E0EE66E7D +:101960000DF01200120048EF1EF012001E0EE66E7F :10197000010EE66E33EC12F0E552E552400EE66ED3 :10198000000EE66E050EE66EE66A010EE66E65EC8A :1019900012F0006E050EE15E0050F3CFAFF1F4CF10 @@ -302,7 +302,7 @@ :101A70000DD0D0B602D0040E09D0FCAE02D0050EB7 :101A800005D0FCAC02D0060E01D0070EDF6ED08868 :101A9000D086D084D082D080FC9EFC9CDF50E55262 -:101AA000AFD0070EE66EF0EC1DF0E552E552D9CF4F +:101AA000AFD0070EE66EEEEC1DF0E552E552D9CF51 :101AB000E6FFDACFE6FF010E7ED8D950150FA4D885 :101AC000020E79D8D9502A0F9FD8030E74D8D95056 :101AD0003F0F9AD8040E6FD8540EE15C12007FD8E5 @@ -316,10 +316,10 @@ :101B5000F350DF6E010EF4CFDBFF1200EE6E6F0E5E :101B6000EE6E6E0EEE6EE5EF0DF0E16E49D0DF50D9 :101B7000F36E010EDB50F46E020EE15C1200DFCF5B -:101B8000E6FFE66A45EC20F0E552E5521200E66A0F -:101B9000070EE66EE8EC1DF0E552E5521200EE6A23 +:101B8000E6FFE66A43EC20F0E552E5521200E66A11 +:101B9000070EE66EE6EC1DF0E552E5521200EE6A25 :101BA000D9502A0FE96EDACFEAFF12000ED8200EC4 -:101BB000EE6EEE6E1200E66E070EE66E0EEC1EF096 +:101BB000EE6EEE6E1200E66E070EE66E0CEC1EF098 :101BC000E552E552E552E5521200EE6E650EEE6EFC :101BD0001200EE6EEE6EEE6EEE6EEE6E1200D9CF6D :101BE000E6FFE1CFD9FF1200EE6AD9503F0FE96E50 @@ -405,11 +405,11 @@ :1020D000DF7457DAC80EEF6E040EE15C02E2E16ACB :1020E000E552E16E57D2800E0401205D3CE1010112 :1020F000C00E136F04012351030A1EE0010A09E018 -:10210000030A2FE10101620E116F3D0E126F120ED4 -:1021100022D0C3DA0A0EF6263E0EA2DA020E010122 +:10210000030A2FE101015E0E116F3D0E126F120ED8 +:1021100022D0C3DA060EF6263E0EA2DA020E010126 :10212000F76A1125F66E1251F7220900F5CF14F166 :102130000A00F5CF15F11200030E225D0FE2ADDAB1 -:102140000C0EF6263E0E8CDA11C1F6FF12C1F7FF17 +:10214000080EF6263E0E8CDA11C1F6FF12C1F7FF1B :102150000800F5500101146F156B12000101136B9B :1021600012000101136B120011DA0401286B296BB4 :1021700020511F0B020A11E0030A0CE0010A22E1C0 @@ -503,14 +503,14 @@ :1026F000EA2212003CD88C0EEF6E1200680EE66ED5 :102700000F0EE66E16DFE552E552E552120049DF84 :10271000070EE926010E120044DF0B0EE926010E1A -:102720001200D9CFE6FFE1CFD9FF1200E66E0FEC21 +:102720001200D9CFE6FFE1CFD9FF1200E66E0DEC23 :1027300020F0006E050EE15E00501200E0EC0CF09F :10274000006E060EE15E00501200200EEE6E040ECA :10275000ED6E120005C1E9FF06C1EAFF120028DF95 :10276000C4DFA5EF13F004DFC0DF0FEF13F0F6DED8 :04277000CEEF12F0A6 :0C277400959A838A190E61EF16F0CFDAF7 -:10278000030EE126ACA2FED7F1EC20F0DF6E0101D2 +:10278000030EE126ACA2FED7EFEC20F0DF6E0101D4 :10279000485104E1265102E1010E496F490558E113 :1027A0004851A8DADFCFEFFF020E485D08E2FF0EC6 :1027B000DF5C05E0050EABDA0101496B486B030EE7 @@ -521,7 +521,7 @@ :10280000DBCFE7FFEF50E726010EE7CFDBFF020E3D :10281000DB2AE9D76A516EDAEFCF00F0010EDB1C3C :10282000005C05E0070E73DA0101266B0DD0010193 -:102830002B5102E0060E6BDA2BC1E6FFD6EC21F03D +:102830002B5102E0060E6BDA2BC1E6FFD4EC21F03F :10284000E5520101010E266F496B486B01D0482B00 :10285000030EE15C02E2E16AE552E16E24D25FDA46 :10286000220EE126010EDB68020EDB68FE0EDB5055 @@ -537,7 +537,7 @@ :10290000DB50050FE9D9E552E750EF6E839ADF6A95 :10291000FC0EDB50060FDF5C11E2ACA2FED7D950F3 :10292000010F006EDACF01F0DF500F01D5D9EF5063 -:10293000E66E38EC22F0E552DF2AEAD7ACA2FED7E9 +:10293000E66E36EC22F0E552DF2AEAD7ACA2FED7EB :10294000838A0101266B220EE15C02E2E16AE55214 :10295000E16EA9D101012651120001014751120077 :1029600001012651FDE01200DAD9FE0EDB50EA6AC1 @@ -594,12 +594,12 @@ :102C9000DFCFE6FF62D8030EE66E1200FE0EDBCF3A :102CA000E6FF030E4BD0E552E7CFD9FF120037D82D :102CB0004AD8FC0EDBCFE6FF010E2ED8020EE66EE0 -:102CC0001200E66EE66A7C0EE66E58EC1FF051D0FC +:102CC0001200E66EE66A7C0EE66E56EC1FF051D0FE :102CD000100EE66E040E32D00024E96E000EDA20EB :102CE000EA6E12001CD8FC0EDBCFE6FFFD0EDBCF38 :102CF000E6FF1200EA6A270FE96E010EEA221200CF :102D0000DBCFDEFFDBCFDDFFDFCFE6FF1200E66EBD -:102D1000D6EC21F0E5521200E66EB5EF16F0D9CFF1 +:102D1000D4EC21F0E5521200E66EB5EF16F0D9CFF3 :102D2000E6FFE1CFD9FF1200E66EFE0EDBCFE6FF35 :102D3000F6DEE552E552E552E552B5D7E66EFE0EF7 :102D4000E66E7FDE16D0FD0EDBCFE6FFE66AB5EF5E @@ -693,336 +693,341 @@ :0E32B00030321200D8903032EAE1238A120048 :0232BE00FC0E04 :1032C0009516839083920D0EE66E7C0EE66EE10EEF -:1032D000E66ED8EC1FF0E552E552E5521200D9CF68 -:1032E000E6FFE1CFD9FFE6520101BB51040A48E0F5 -:1032F000070A30E0010A24E0030A0CE0010A01E0B9 -:1033000098D08380870EE66E09EC22F0E552010129 -:10331000010E34D07FEC22F0000901E08BD042D9BD +:1032D000E66ED6EC1FF0E552E552E5521200D9CF6A +:1032E000E6FFE1CFD9FFE6520101BB51040A47E0F6 +:1032F000070A2FE0010A24E0030A0CE0010A01E0BA +:1033000096D08380870EE66E07EC22F0E55201012D +:10331000010E33D07DEC22F0000901E089D040D9C4 :1033200001AE02D002680368BCC1E9FFEA6AE9BEE7 -:10333000EA6815D9B00EE926000E26D9020E1ED075 -:10334000839083828F0EE66E09EC22F0E552010134 -:10335000030E14D07FEC22F000096CE123D901AEFA -:1033600002D002680368BCC1E9FFEA6AE9BEEA6804 -:10337000F6D8D80EE926000E07D9040EBB6F5AD036 -:103380008392BC2B0A0EE76EBC19E8AE02D0E7347C -:1033900002D0E750BC5D4BE3BC6BBDC1E9FFEA6AFC -:1033A000E9BEEA6829D9EA22EE6AEE6AEE6AEE6AB6 -:1033B000BDC1E9FFEA6AE9BEEA6823D9EA22EE6AFA -:1033C000EE6AEE6AEE6ADF6AFED8E8AE02D0E73453 -:1033D00002D0E750005C1EE2DFCFE9FFEA6AE9BEF7 -:1033E000EA68BDD8B00EE926000EC9D8E9BEEA6881 -:1033F00003D9D5D8DFCFE9FFEA6AE9BEEA68AFD8DA -:10340000D80EE926000EBBD8E9BEEA68FAD8C7D8BC -:10341000DF2ADAD70101BD2B0A0EE76EBD19E8AE2F -:1034200002D0E73402D0E750BD5D01E3BD6BBB6B5A -:1034300001D0BB6BE552E552E7CFD9FF1200D9CFDF -:10344000E6FFE1CFD9FF050EE126010EDB6A020E91 -:10345000DB6A030EDB6A040EDB6AFE0EDB5011E151 -:10346000DF6AB1D8E8AE02D0E73402D0E750005CA2 -:1034700021E2DFCFE9FFEA6AE9BEEA68BDD876D883 -:10348000F0D7FE0EDB0411E1DF6A9DD8E8AE02D072 -:10349000E73402D0E750005C0DE2DFCFE9FFEA6AD3 -:1034A000E9BEEA68AED862D8F0D7286A296A2A6AE3 -:1034B0002B6A4BD0010EDBCF10F0020EDBCF11F0E8 -:1034C000030EDBCF12F0040EDBCF13F010C028F098 -:1034D00011C029F012C02AF013C02BF0E5EC16F051 -:1034E00029C00CF02AC00DF02BC00EF02CC00FF03C -:1034F00062D829C008F02AC009F02BC00AF02CC0FD -:103500000BF059D829C004F02AC005F02BC006F0F2 -:103510002CC007F02E6A2F6AA00E306E400E316E5E -:10352000E8EC17F029C000F02AC001F02BC002F02F -:103530002CC003F02E6AC00E2F6E7F0E306E440E2C -:10354000316E95EC17F0A2EC18F0050EE15C02E28A -:10355000E16AE552E16EE552E7CFD9FF1200D8905B -:10356000E936EA36D890E936EA36120032D8D95030 -:10357000010FE96EDACFEAFF36D8DF2A120029D828 -:10358000BDC1E9FFEA6A1200EA2200C0EEFF01C0F5 -:10359000EEFF02C0EEFF03C0EEFF01011200EA22BF -:1035A000F3EF1AF068EC22F0F3CF00F0F4CF01F063 -:1035B000026A036A12002E6A2F6A200E306E410ED4 -:1035C000316E95EF17F0DFCF00F00A0EE76E0018AE -:1035D0001200EA22EECF00F0EECF01F0EECF02F0C3 -:1035E000EFCF03F012000050EE260150EE22025001 -:1035F000EE220350EE221200B2DF600EE926000E2A -:0C3600001200ADDF880EE926000E12005B -:04360C00E30E95161E -:103610009492A082FD0EE66ECEEC20F0E552000EF4 -:10362000E66EE66A4CEC21F0E552E552839483960F -:103630008398829212008394839683988292050ED7 -:103640000101AC5D0EE2010EACC1E7FFE75204E000 -:10365000E846FE0BE706FCE10101AB1502E1AC2BED -:10366000EED7050EAC5D5EE2AC51040A0EE0070A2F -:103670000DE0010A08E0030A04E0010A07E183847F -:1036800005D0838603D0838801D08282AC51D9D8FB -:10369000EFCF02F0036A02BE03680A0E2A6E2B6A9D -:1036A00002C02FF003C030F055EC18F028C000F035 -:1036B00029C001F0DC0E0026050E01220050010198 -:1036C000AD270150AE23A9D8800E126EBB0E136E2B -:1036D000440E146E196A1A6A200E1B6E410E1C6E7F -:1036E000AC51AFD8EFCF21F021C02BF0BFEC16F0DA -:1036F00029C01DF02AC01EF02BC01FF02CC020F0E6 -:10370000AAD819C029F01AC02AF01BC02BF01CC07F -:103710002CF0E8EC17F06FD8FFEC16F040D8010160 -:10372000AC2B1200AC6B200EAD5D4E0EAE5915E207 -:1037300074D8400E126E9C0E136E460E146EADC100 -:103740002AF0AEC12BF0CEEC16F055D8FEEC16F0F8 -:1037500026D80101AD6BAE6B1200AD6BAE6B6FD7AF -:10376000D9CFE6FFE1CFD9FFFE0EDB506AD8FD0EC0 -:10377000DBCFEFFF6CD05CD804E0D890F336E806DE -:10378000FCE1F3500101AB1362D052D804E0D890B1 -:10379000F336E806FCE1F3500101AB1B58D029C019 -:1037A0000DF02AC00EF02BC00FF02CC010F053D833 -:1037B00009C029F00AC02AF00BC02BF00CC02CF075 -:1037C000E8EC17F073EC18F02AC006F02BC007F0F5 -:1037D000086A2A50035C006E2B500458016E085092 -:1037E0000558026E00C0E6FF01C0E6FF4CEC21F078 -:1037F000E552E552120029C015F02AC016F02BC080 -:1038000017F02CC018F027D811C029F012C02AF0E8 -:1038100013C02BF014C02CF0120003680468056A72 -:10382000096A0A6AC00E0B6E3F0E0C6E116A120016 -:10383000D9CFE6FFE1CFD9FF010EF36EFE0EDB50CC -:103840001200EA6AA60FE96E010EEA221200E552A2 -:10385000E7CFD9FF120029C02EF02AC02FF02BC0CD -:0838600030F02CC031F0120021 -:08386800D9CFE6FFE1CFD9FF43 -:103870009290EB0E93169494060EE66EA0EC21F057 -:10388000E552FE0EDBA00CD0AF0EE66E84EC21F00C -:10389000E552000EE66EE66A68EC21F0E55204D0CF -:1038A000820EE66E84EC21F0E55281948294819A36 -:1038B0008198ECD0E2D8D880000E01019455000E1A -:1038C0009555000E9655000E97550EE29407000E82 -:1038D000955B965B975B945195119611971104E156 -:1038E000BD6A8294819A81981200D9CFE6FF8184C3 -:1038F000CDD0D9CFE6FF8194C9D0D9CFE6FFE1CFB3 -:10390000D9FFF80EDBCF94F1F90EDBCF95F1FA0E6B -:10391000DBCF96F1FB0EDBCF97F1280E2D6E2E6AD2 -:103920002F6A306A94C128F095C129F096C12AF017 -:1039300097C12BF0AAEC20F028C094F129C095F192 -:103940002AC096F12BC097F198D8FD0EDB50E8B055 -:10395000818AE8A0819AFD0EDB1CE8B08188E8A08E -:1039600081984A0EE66EF1EC21F0E552FC0EDBCFB9 -:1039700016F016C02BF0BDEC16F029C012F02AC0CC -:1039800013F02BC014F02CC015F02E6A2F6A7F0E96 -:10399000306E430E316E95EC17F029C00EF02AC040 -:1039A0000FF02BC010F02CC011F02E6A2F6A200EE1 -:1039B000306E3F0E316EE8EC17F029C00AF02AC0D5 -:1039C0000BF02BC00CF02CC00DF02E6A1B0E2F6ECE -:1039D000370E306E4C0E316EE8EC17F029C006F051 -:1039E0002AC007F02BC008F02CC009F02E6A400E48 -:1039F0002F6E1C0E306E460E316E95EC17F073EC88 -:103A000018F0CEEC16F029C002F02AC003F02BC04B -:103A100004F02CC005F02E6A2F6A800E306E410E25 -:103A2000316E95EC17F073EC18F02AC000F02BC043 -:103A300001F02AC0E6FF2BC0E6FF7BEC20F0E55248 -:103A4000E55224D08150200B06E08150100B03E199 -:103A50008350400B09E08150200B0EE18150100B88 -:103A60000BE08350800B08E1BD6A82940101946BE6 -:103A7000956B966B976B010C000CA00EE66E150E05 -:103A8000E66E68EC21F0E552E5521200E552E7CF10 -:043A9000D9FF120048 -:0C3A9400050EE66E060E8CD8070E8AD8D0 -:103AA000080E88D8090E7ED80A0E80D80B0E7AD858 -:103AB0000C0E7CD80D0E76D80E0E78D80F0E72D85C -:103AC000100E74D8110EB6EF1DF0D9CFE6FFE1CF7E -:103AD000D9FF51D8FD0EDBCFE6FF10EC21F0E55207 -:103AE000C58484EC22F0E552E7CFD9FF1200D9CF8C -:103AF000E6FFE1CFD9FF030EE126020EDB6A3BD8D9 -:103B0000C58271EC22F0E90EE66E10EC21F0E55270 -:103B1000C586DE6ADD6ADECF00F0DDCF01F0E80E9B -:103B2000005C030E01580BE2C7A004D0020EC9CFFF -:103B3000DBFF05D0DF2A010EEEE3DB2AECD7C58AD6 -:103B4000C58871EC22F0C58471EC22F084EC22F07F -:103B5000020EDB50006E030EE15C02E2E16AE55208 -:103B6000E16E0050E552E7CFD9FF1200E66EADDFFF -:103B7000E552E5521200800EE66E080EE66EBBECD2 -:103B800021F0E552E552C58071EC22F0E80EE66EB8 -:103B900010EC21F0E552FE0EDBCFE6FF10EC21F039 -:103BA000E5521200E3DFC40EE66E1200DFDF090EFD -:0C3BB000E66E1200DBDF050EE66E120070 -:043BBC0036D857D8C8 -:103BC00056D855D84DD8430E54D057D8430E51D05F -:103BD00054D8FD0EDB5002E0530E01D0730E49D0D5 -:103BE0004CD8FD0EDB5002E0420E01D0620E41D0F7 -:103BF00044D8480E3ED041D84C0EE66E10EC21F071 -:103C0000E55231D8FC0EDBCFE6FF10EC21F020D0DE -:103C10000CD8FC0EDBCFE6FFFD0E36D006D823D83D -:103C2000FB0EDBCFE6FFFC0E2FD0D9CFE6FFE1CFB6 -:103C3000D9FF800EE66E080EE66EBBEC21F0E55271 -:103C4000E552C58071EC22F0FE0EDBCFE6FF18D006 -:103C5000E552C58484EC22F0E552E7CFD9FF12008B -:103C60001B0EE66E0DD0FD0EDBCFE6FF09D0E66A37 -:103C700007D0E66E10EC21F0EBD7D7DF30EF1EF067 -:103C800010EC21F0E5521200DBCFE6FF9DEC1FF0B7 -:043C9000E552DED744 -:0C3C9400040120511F0B010801E0120088 -:103CA000245101E01200060E215D21E12351230A77 -:103CB0001BE0010A0CE0030A1AE10101010517E10A -:103CC0000101860E116F3D0E126F090E09D0010120 -:103CD00001050DE10101ED0E116F3D0E126F1D0E7C -:103CE000146F156BC00E02D00101800E136F04011A -:103CF0002051600BE842E842E842E842E84201080D -:103D000001E0120021510B0A26E0080A19E0090A15 -:103D100011E0080A05E00B0A23E0080A21E012007E -:103D20000101BE0E116F010E126F010E146F156BA3 -:103D3000C10E0FD00101800E136F23C4BEF112001B -:103D40000101BF0E116F010E126F010E146F156B82 -:103D5000810E136F12000101800E136F22C4BFF198 -:023D600012004F -:0E3D62001201000200000008D8040400020054 -:103D70000102000109022900010100C0320904000A -:103D8000000203000000092111010001221D0007AB -:103D900005810340000107050103400001040309F8 -:103DA000042C034D006F00620069006C0065002068 -:103DB0000052006F0062006F007400200050006C21 -:103DC000006100740066006F0072006D00200352F5 -:103DD000006F0062006F007400200049006E0074E4 -:103DE000006500720066006100630065000600FF68 -:103DF0000901A10119012940150026FF0075089548 -:103E0000408100190129409100C0743D9D3DA13DB4 -:023E1000CD3DA6 -:0E3E12002A0EF66E080EF76E000EF86E010115 -:103E20000900F550A16F0900F550A26F03E1A167E9 -:103E300001D03DD00900F5509C6F0900F5509D6FF1 -:103E40000900F5509E6F09000900F550E96E090060 -:103E5000F550EA6E090009000900F5509F6F09004E -:103E6000F550A06F09000900F6CFA3F1F7CFA4F138 -:103E7000F8CFA5F19CC1F6FF9DC1F7FF9EC1F8FFE9 -:103E800001019F5302E1A05307E00900F550EE6ED7 -:103E90009F07F8E2A007F9D7A3C1F6FFA4C1F7FF77 -:103EA000A5C1F8FF0101A107000EA25BBFD7120058 -:103EB000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFD5 -:103EC000AC6AAB6AFD0EDBB0AC88DBA202D0AC8C76 -:103ED000AB8CDBB4AC8EDBA602D0AB8801D0AB8A56 -:103EE000DBB8AC849E98DBBAAC86DBAC02D09D8A92 -:103EF00001D09D9A9E9ADBAE02D09D8801D09D98FC -:103F0000FB0EDB50AF6EFB0EFC0EDBCF01F001C0F1 -:103F100000F0016A0050B06EAC8AAB8E949C948E17 -:103F2000AC50100B04E0AC50800B01E1948CE552D6 -:0A3F3000E5CFDAFFE7CFD9FF12005A -:063F3A00D9CFE6FFDACF4B -:103F4000E6FFE1CFD9FFE2CFDAFFE65229D820E041 -:103F5000C6A60AD025D8E66E10EC21F0E552DF6E39 -:103F6000DF5010E0DF5015D09E961AD8C96EC68873 -:103F70009EA6FED7C750040B05E1C750010B02E116 -:103F8000FE0E07D0FC0EDB2AFD0EE0E3DB2ADED7B7 -:103F9000000EE552E552E5CFDAFFE7CFD9FF120078 -:103FA000FC0EDBCFE9FFFD0EDBCFEAFFEF50120086 -:103FB000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFD4 -:103FC000C26AC06AFC0EDB407F0B3C0BC26EFB0E6C -:103FD000DBCFE6FFFC0EDB38F00B300BE552E710D1 -:103FE000C16EFD0EDB50040DF350380B016EFD0E5B -:103FF000DB380F0B070B006EFD0EDB50800B001043 -:104000000110C06EFC0EDBAE03D09E9C9D8CF28C2A -:0E401000C280E552E5CFDAFFE7CFD9FF1200FC -:02401E00FE0E94 -:10402000E3CFE9FFFF0EE3CFEAFFE9CFF3FFEACFEB -:10403000F4FFFB0EE35003E1FC0EE35009E0FB0E3E -:10404000E30602E2FC0EE306FD0EE350EE6EF1D74E -:104050001200FB0EE3CFF6FFFC0EE3CFF7FFFD0EE1 -:10406000E3CFF8FFFE0EE3CFE9FFFF0EE3CFEAFF59 -:10407000E9CFF3FFEACFF4FFEE66FED7ED52090079 -:0A408000F5CFEFFFEE66FBD712004C -:06408A002DD8FD0EDB50F5 -:10409000A86EA69EA69CA684F250800B01E0010E9D -:1040A0000101C16FF29E550EA76EAA0EA76EA682E1 -:1040B000C151E8B0F28EE8A0F29EA6B2FED7A19858 -:1040C000A694E552E7CFD9FF12000DD8A69EA69C74 -:1040D000A680020EE66E5DEC22F0E552A850E55295 -:1040E000E7CFD9FF1200D9CFE6FFE1CFD9FFFE0E0F -:0640F000DB50A96E120076 -:0A40F600D9CFE6FFDACFE6FFE1CFF5 -:10410000D9FFE2CFDAFFE652E652FC0EDBCF00F039 -:10411000FD0EDBCF01F0060ED89000360136E80424 -:10412000FBE100C0DEFF01C0DDFF010EDB50BE6E13 -:10413000DF50E840E8403F0B300B006ECF0EBD145F -:104140000010BD6EE552E552E552E5CFDAFFE7CF4C -:04415000D9FF120081 -:0C415400276A266A256A246A200EE76E9E -:10416000D890283629362A362B3624362536263658 -:1041700027362D50245C2E5025582F50265830506D -:10418000275809E32D50245E2E50255A2F50265AC9 -:0C4190003050275A282AE72EE4D71200EE -:04419C00D9CFE6FF92 -:1041A000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB5039 -:1041B000360BB16EB36AB26AA192FD0EDBAE02D0CD -:1041C000A08201D0A092DBB2CD86DBA002D0B18E5E -:1041D00001D0B19EB180E552E5CFDAFFE7CFD9FF3C -:0241E0001200CB -:0E41E200D9CFE6FFDACFE6FFE1CFD9FFE2CF7B -:1041F000DAFFE652F20E0101C017ABAC03D0C0915A -:10420000ABB0C081ABB4C085ABB2C087AE50DF6E7F -:10421000DF50E552E552E5CFDAFFE7CFD9FF1200D4 -:10422000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF61 -:10423000FD0EDB50C96EC6AE02D0FF0E09D0C7B06E -:10424000FED771EC22F0C5AC02D0FE0E01D0000EFC -:0C425000E552E5CFDAFFE7CFD9FF1200FE -:04425C0031383A308B -:10426000313A34340020004D61792030382032302A -:10427000313000526F626F7420496E7465726661EE -:10428000636520312E300A4F6C6976696572204271 -:074290004943484C45520070 -:08429800D9CFE6FFDACFE6FF03 -:1042A000E1CFD9FFE2CFDAFFE652E652FC0EDBCFD8 -:1042B000DEFFDBCFDDFF010EDB50B36EDF50B26EF1 -:1042C000E552E552E552E5CFDAFFE7CFD9FF12001C -:1042D000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFB1 -:1042E000E652E652FC0EDBCFDEFFDBCFDDFF010E38 -:1042F000DB50D76EDF50D66EE552E552E552E5CF82 -:08430000DAFFE7CFD9FF12003C -:08430800D9CFE6FFDACFE6FF92 -:10431000E1CFD9FFE2CFDAFFFD0EDB507F0BD56E88 -:10432000D76AD66AF294FD0EDBAE02D0F28A01D0D3 -:10433000F29AD58EE552E5CFDAFFE7CFD9FF12002A -:10434000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF40 -:10435000FD0EDB50FB0BCA6ECC6A9E92FD0EDBAEEF -:1043600002D09D8201D09D92CA84E552E5CFDAFF4A -:06437000E7CFD9FF1200A7 -:0A437600D9CFE6FFDACFE6FFE1CF72 -:10438000D9FFE2CFDAFF3F0EC716C66AC56AFD0E37 -:10439000DB50C612FC0EDB50C71293829380C68A94 -:0C43A000E552E5CFDAFFE7CFD9FF1200AD -:0443AC00D9CFE6FF80 -:1043B000E1CFD9FF01010ED8EF50000803E28B29AD -:1043C0001F0B8B6F07D8FE0EDBCFEFFFE552E7CF59 -:1043D000D9FF12008B51EA6A6B0FE96E010EEA22D7 -:0243E0001200C9 -:0E43E200D9CFE6FFDACFE6FFE1CFD9FFE2CF79 -:1043F000DAFF0C0EBD129494CA94FD0EDB50CB6E06 -:10440000CA84E552E5CFDAFFE7CFD9FF12009494D2 -:02441000120098 -:0E441200D9CFE6FFDACFE6FFE1CFD9FFE2CF48 -:10442000DAFFFD0EDB407F0B3C0B006EC30EC214A7 -:104430000010C26EC282E552E5CFDAFFE7CFD9FFA6 -:02444000120068 -:0E444200FF0EE350376EEF0E01D0F30EE76E63 -:10445000E72E28EF22F00C0E366EE76AE72E2EEFDD -:1044600022F0362E2DEF22F0372E26EF22F012000A -:10447000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF0F -:10448000ACAC04D0AC900101C0B3AC80FD0EDB50ED -:0E449000AD6EE552E5CFDAFFE7CFD9FF12009F -:02449E0013EE1B -:1044A00000F023EE00F0F86A239C09EC1FF086EC84 -:0A44B00022F0BFEC04F0FBD712006D -:0644BA00FF0EE350E84E86 -:1044C0001200000000D000D000D0E82EFAD7120071 -:1044D000C450036E026AC3500210F36E03C0F4FFAF -:0244E0001200C8 -:0E44E2001F0EC514FDE1C750040BFAE11200D5 -:0E44F00000EE00F00F0EEE6AEA62FDD7120039 -:0244FE00C250AA -:08450000020B01E0010E1200A4 -:04450800C69A12003D -:02450C0012009B -:02450E000000AB -:0745100000000000000000A4 -:094517000000000000000000009B -:074520000000000000000094 -:094527000000000001000000008A -:0345300000000088 -:0D453300000000000000000000000000007B +:10333000EA6813D9B00EE926000E24D9020E1DD07A +:1033400083828F0EE66E07EC22F0E5520101030E38 +:1033500014D07DEC22F000096BE122D901AE02D03D +:1033600002680368BCC1E9FFEA6AE9BEEA68F5D809 +:10337000D80EE926000E06D9040EBB6F59D0BC2B1F +:103380000A0EE76EBC19E8AE02D0E73402D0E7506F +:10339000BC5D4BE3BC6BBDC1E9FFEA6AE9BEEA680C +:1033A00029D9EA22EE6AEE6AEE6AEE6ABDC1E9FF49 +:1033B000EA6AE9BEEA6823D9EA22EE6AEE6AEE6AB0 +:1033C000EE6ADF6AFED8E8AE02D0E73402D0E750FA +:1033D000005C1EE2DFCFE9FFEA6AE9BEEA68BDD819 +:1033E000B00EE926000EC9D8E9BEEA6803D9D5D8DF +:1033F000DFCFE9FFEA6AE9BEEA68AFD8D80EE9266E +:10340000000EBBD8E9BEEA68FAD8C7D8DF2ADAD7F7 +:103410000101BD2B0A0EE76EBD19E8AE02D0E734FC +:1034200002D0E750BD5D01E3BD6BBB6B01D0BB6B50 +:10343000E552E552E7CFD9FF1200D9CFE6FFE1CF41 +:10344000D9FF050EE126010EDB6A020EDB6A030ED0 +:10345000DB6A040EDB6AFE0EDB5011E1DF6AB1D8D5 +:10346000E8AE02D0E73402D0E750005C21E2DFCFC3 +:10347000E9FFEA6AE9BEEA68BDD876D8F0D7FE0E61 +:10348000DB0411E1DF6A9DD8E8AE02D0E73402D058 +:10349000E750005C0DE2DFCFE9FFEA6AE9BEEA68C7 +:1034A000AED862D8F0D7286A296A2A6A2B6A4BD02C +:1034B000010EDBCF10F0020EDBCF11F0030EDBCFDD +:1034C00012F0040EDBCF13F010C028F011C029F069 +:1034D00012C02AF013C02BF0E5EC16F029C00CF056 +:1034E0002AC00DF02BC00EF02CC00FF062D829C0FE +:1034F00008F02AC009F02BC00AF02CC00BF059D8F4 +:1035000029C004F02AC005F02BC006F02CC007F03B +:103510002E6A2F6AA00E306E400E316EE8EC17F066 +:1035200029C000F02AC001F02BC002F02CC003F02B +:103530002E6AC00E2F6E7F0E306E440E316E95ECEB +:1035400017F0A2EC18F0050EE15C02E2E16AE55228 +:10355000E16EE552E7CFD9FF1200D890E936EA369E +:10356000D890E936EA36120032D8D950010FE96E08 +:10357000DACFEAFF36D8DF2A120029D8BDC1E9FF29 +:10358000EA6A1200EA2200C0EEFF01C0EEFF02C0AC +:10359000EEFF03C0EEFF01011200EA22F1EF1AF084 +:1035A00066EC22F0F3CF00F0F4CF01F0026A036A78 +:1035B00012002E6A2F6A200E306E410E316E95EF8A +:1035C00017F0DFCF00F00A0EE76E00181200EA22B3 +:1035D000EECF00F0EECF01F0EECF02F0EFCF03F030 +:1035E00012000050EE260150EE220250EE2203504F +:1035F000EE221200B2DF600EE926000E1200ADDFEF +:08360000880EE926000E1200FD +:08360800E30E95169492A082D6 +:10361000FD0EE66ECCEC20F0E552000EE66EE66A9A +:103620004AEC21F0E552E552839483968398829286 +:1036300012008394839683988292050E0101AC5DFB +:103640000EE2010EACC1E7FFE75204E0E846FE0BD4 +:10365000E706FCE10101AB1502E1AC2BEED7050E4C +:10366000AC5D5EE2AC51040A0EE0070A0DE0010A0F +:1036700008E0030A04E0010A07E1838405D0838699 +:1036800003D0838801D08282AC51D9D8EFCF02F029 +:10369000036A02BE03680A0E2A6E2B6A02C02FF06C +:1036A00003C030F055EC18F028C000F029C001F03C +:1036B000DC0E0026050E012200500101AD2701504D +:1036C000AE23A9D8800E126EBB0E136E440E146E7C +:1036D000196A1A6A200E1B6E410E1C6EAC51AFD8CF +:1036E000EFCF21F021C02BF0BFEC16F029C01DF068 +:1036F0002AC01EF02BC01FF02CC020F0AAD819C081 +:1037000029F01AC02AF01BC02BF01CC02CF0E8ECEA +:1037100017F06FD8FFEC16F040D80101AC2B120067 +:10372000AC6B200EAD5D4E0EAE5915E274D8400E56 +:10373000126E9C0E136E460E146EADC12AF0AEC111 +:103740002BF0CEEC16F055D8FEEC16F026D8010181 +:10375000AD6BAE6B1200AD6BAE6B6FD7D9CFE6FF22 +:10376000E1CFD9FFFE0EDB506AD8FD0EDBCFEFFFB5 +:103770006CD05CD804E0D890F336E806FCE1F35056 +:103780000101AB1362D052D804E0D890F336E806BA +:10379000FCE1F3500101AB1B58D029C00DF02AC049 +:1037A0000EF02BC00FF02CC010F053D809C029F038 +:1037B0000AC02AF00BC02BF00CC02CF0E8EC17F07C +:1037C00073EC18F02AC006F02BC007F0086A2A50E4 +:1037D000035C006E2B500458016E08500558026EB1 +:1037E00000C0E6FF01C0E6FF4AEC21F0E552E552D9 +:1037F000120029C015F02AC016F02BC017F02CC0FB +:1038000018F027D811C029F012C02AF013C02BF0ED +:1038100014C02CF0120003680468056A096A0A6A79 +:10382000C00E0B6E3F0E0C6E116A1200D9CFE6FF70 +:10383000E1CFD9FF010EF36EFE0EDB501200EA6AF3 +:10384000A60FE96E010EEA221200E552E7CFD9FF7A +:10385000120029C02EF02AC02FF02BC030F02CC04F +:0438600031F0120031 +:0C386400D9CFE6FFE1CFD9FF9290EB0E28 +:1038700093169494060EE66E9EEC21F0E552FE0E31 +:10388000DBA00CD0AF0EE66E82EC21F0E552000E0C +:10389000E66EE66A66EC21F0E55204D0820EE66E32 +:1038A00082EC21F0E55281948294819A8198ECD047 +:1038B000E2D8D880000E01019455000E9555000EF7 +:1038C0009655000E97550EE29407000E955B965B99 +:1038D000975B945195119611971104E1BD6A8294FA +:1038E000819A81981200D9CFE6FF8184CDD0D9CFBB +:1038F000E6FF8194C9D0D9CFE6FFE1CFD9FFF80E1A +:10390000DBCF94F1F90EDBCF95F1FA0EDBCF96F118 +:10391000FB0EDBCF97F1280E2D6E2E6A2F6A306AD0 +:1039200094C128F095C129F096C12AF097C12BF0D7 +:10393000A8EC20F028C094F129C095F12AC096F196 +:103940002BC097F198D8FD0EDB50E8B0818AE8A033 +:10395000819AFD0EDB1CE8B08188E8A081984A0EB0 +:10396000E66EEFEC21F0E552FC0EDBCF16F016C050 +:103970002BF0BDEC16F029C012F02AC013F02BC0BA +:1039800014F02CC015F02E6A2F6A7F0E306E430E95 +:10399000316E95EC17F029C00EF02AC00FF02BC045 +:1039A00010F02CC011F02E6A2F6A200E306E3F0EE0 +:1039B000316EE8EC17F029C00AF02AC00BF02BC0DA +:1039C0000CF02CC00DF02E6A1B0E2F6E370E306ED1 +:1039D0004C0E316EE8EC17F029C006F02AC007F053 +:1039E0002BC008F02CC009F02E6A400E2F6E1C0E62 +:1039F000306E460E316E95EC17F073EC18F0CEEC8D +:103A000016F029C002F02AC003F02BC004F02CC02D +:103A100005F02E6A2F6A800E306E410E316E95ECE5 +:103A200017F073EC18F02AC000F02BC001F02AC088 +:103A3000E6FF2BC0E6FF79EC20F0E552E55224D0FA +:103A40008150200B06E08150100B03E18350400BA6 +:103A500009E08150200B0EE18150100B0BE08350E8 +:103A6000800B08E1BD6A82940101946B956B966BA3 +:103A7000976B010C000CA00EE66E150EE66E66EC60 +:103A800021F0E552E5521200E552E7CFD9FF1200CE +:103A9000050EE66E060E8CD8070E8AD8080E88D85A +:103AA000090E7ED80A0E80D80B0E7AD80C0E7CD860 +:103AB0000D0E76D80E0E78D80F0E72D8100E74D860 +:103AC000110EB4EF1DF0D9CFE6FFE1CFD9FF51D8E9 +:103AD000FD0EDBCFE6FF0EEC21F0E552C58482EC53 +:103AE00022F0E552E7CFD9FF1200D9CFE6FFE1CFB0 +:103AF000D9FF030EE126020EDB6A3BD8C5826FECCC +:103B000022F0E90EE66E0EEC21F0E552C586DE6A83 +:103B1000DD6ADECF00F0DDCF01F0E80E005C030EC1 +:103B200001580BE2C7A004D0020EC9CFDBFF05D0BD +:103B3000DF2A010EEEE3DB2AECD7C58AC5886FECDD +:103B400022F0C5846FEC22F082EC22F0020EDB50F2 +:103B5000006E030EE15C02E2E16AE552E16E0050A4 +:103B6000E552E7CFD9FF1200E66EADDFE552E55230 +:103B70001200800EE66E080EE66EB9EC21F0E552FA +:103B8000E552C5806FEC22F0E80EE66E0EEC21F0F7 +:103B9000E552FE0EDBCFE6FF0EEC21F0E5521200FF +:103BA000E3DFC40EE66E1200DFDF090EE66E1200E0 +:083BB000DBDF050EE66E1200DA +:083BB80036D857D856D855D86D +:103BC0004DD8430E54D057D8430E51D054D8FD0E83 +:103BD000DB5002E0530E01D0730E49D04CD8FD0EDD +:103BE000DB5002E0420E01D0620E41D044D8480EB4 +:103BF0003ED041D84C0EE66E0EEC21F0E55231D8A5 +:103C0000FC0EDBCFE6FF0EEC21F020D00CD8FC0E32 +:103C1000DBCFE6FFFD0E36D006D823D8FB0EDBCF78 +:103C2000E6FFFC0E2FD0D9CFE6FFE1CFD9FF800E03 +:103C3000E66E080EE66EB9EC21F0E552E552C5805D +:103C40006FEC22F0FE0EDBCFE6FF18D0E552C58404 +:103C500082EC22F0E552E7CFD9FF12001B0EE66E90 +:103C60000DD0FD0EDBCFE6FF09D0E66A07D0E66E89 +:103C70000EEC21F0EBD7D7DF2EEF1EF00EEC21F08B +:103C8000E5521200DBCFE6FF9BEC1FF0E552DED7DA +:103C9000040120511F0B010801E01200245101E032 +:103CA0001200060E215D21E12351230A1BE0010AC7 +:103CB0000CE0030A1AE10101010517E10101820E7E +:103CC000116F3D0E126F090E09D0010101050DE1C2 +:103CD0000101E90E116F3D0E126F1D0E146F156B71 +:103CE000C00E02D00101800E136F04012051600B41 +:103CF000E842E842E842E842E842010801E01200F6 +:103D000021510B0A26E0080A19E0090A11E0080A05 +:103D100005E00B0A23E0080A21E012000101BE0EB3 +:103D2000116F010E126F010E146F156BC10E0FD0C3 +:103D30000101800E136F23C4BEF112000101BF0EFA +:103D4000116F010E126F010E146F156B810E136F40 +:0E3D500012000101800E136F22C4BFF1120099 +:023D5E00120150 +:103D6000000200000008D804040002000102000163 +:103D700009022900010100C0320904000002030009 +:103D80000000092111010001221D000705810340E7 +:103D9000000107050103400001040309042C034D41 +:103DA000006F00620069006C006500200052006F27 +:103DB0000062006F007400200050006C006100740D +:103DC0000066006F0072006D00200352006F0062F9 +:103DD000006F007400200049006E007400650072DE +:103DE0000066006100630065000600FF0901A10193 +:103DF00019012940150026FF00750895408100191A +:0E3E00000129409100C0703D993D9D3DC93D96 +:023E0E002A0E7A +:103E1000F66E080EF76E000EF86E01010900F550FF +:103E2000A16F0900F550A26F03E1A16701D03DD059 +:103E30000900F5509C6F0900F5509D6F0900F55081 +:103E40009E6F09000900F550E96E0900F550EA6E11 +:103E5000090009000900F5509F6F0900F550A06F97 +:103E600009000900F6CFA3F1F7CFA4F1F8CFA5F12F +:103E70009CC1F6FF9DC1F7FF9EC1F8FF01019F5352 +:103E800002E1A05307E00900F550EE6E9F07F8E24B +:103E9000A007F9D7A3C1F6FFA4C1F7FFA5C1F8FF9A +:0C3EA0000101A107000EA25BBFD71200B9 +:043EAC00D9CFE6FF85 +:103EB000DACFE6FFE1CFD9FFE2CFDAFFAC6AAB6A37 +:103EC000FD0EDBB0AC88DBA202D0AC8CAB8CDBB4DB +:103ED000AC8EDBA602D0AB8801D0AB8ADBB8AC8459 +:103EE0009E98DBBAAC86DBAC02D09D8A01D09D9A4D +:103EF0009E9ADBAE02D09D8801D09D98FB0EDB50D0 +:103F0000AF6EFB0EFC0EDBCF01F001C000F0016ACA +:103F10000050B06EAC8AAB8E949C948EAC50100B5B +:103F200004E0AC50800B01E1948CE552E5CFDAFF60 +:063F3000E7CFD9FF1200EB +:0A3F3600D9CFE6FFDACFE6FFE1CFB6 +:103F4000D9FFE2CFDAFFE65229D820E0C6A60AD090 +:103F500025D8E66E0EEC21F0E552DF6EDF5010E062 +:103F6000DF5015D09E961AD8C96EC6889EA6FED779 +:103F7000C750040B05E1C750010B02E1FE0E07D04C +:103F8000FC0EDB2AFD0EE0E3DB2ADED7000EE55255 +:103F9000E552E5CFDAFFE7CFD9FF1200FC0EDBCF09 +:0C3FA000E9FFFD0EDBCFEAFFEF5012003E +:043FAC00D9CFE6FF84 +:103FB000DACFE6FFE1CFD9FFE2CFDAFFC26AC06A0B +:103FC000FC0EDB407F0B3C0BC26EFB0EDBCFE6FF33 +:103FD000FC0EDB38F00B300BE552E710C16EFD0E26 +:103FE000DB50040DF350380B016EFD0EDB380F0B68 +:103FF000070B006EFD0EDB50800B00100110C06E31 +:10400000FC0EDBAE03D09E9C9D8CF28CC280E552F0 +:0A401000E5CFDAFFE7CFD9FF120079 +:06401A00FE0EE3CFE9FFFA +:10402000FF0EE3CFEAFFE9CFF3FFEACFF4FFFB0E89 +:10403000E35003E1FC0EE35009E0FB0EE30602E26D +:10404000FC0EE306FD0EE350EE6EF1D71200FB0E00 +:10405000E3CFF6FFFC0EE3CFF7FFFD0EE3CFF8FF53 +:10406000FE0EE3CFE9FFFF0EE3CFEAFFE9CFF3FF58 +:10407000EACFF4FFEE66FED7ED520900F5CFEFFF71 +:06408000EE66FBD7120002 +:0A4086002DD8FD0EDB50A86EA69E9B +:10409000A69CA684F250800B01E0010E0101C16FC5 +:1040A000F29E550EA76EAA0EA76EA682C151E8B069 +:1040B000F28EE8A0F29EA6B2FED7A198A694E55291 +:1040C000E7CFD9FF12000DD8A69EA69CA680020EAF +:1040D000E66E5BEC22F0E552A850E552E7CFD9FF3F +:1040E0001200D9CFE6FFE1CFD9FFFE0EDB50A96E5B +:0240F0001200BC +:0E40F200D9CFE6FFDACFE6FFE1CFD9FFE2CF6C +:10410000DAFFE652E652FC0EDBCF00F0FD0EDBCF0D +:1041100001F0060ED89000360136E804FBE100C03D +:10412000DEFF01C0DDFF010EDB50BE6EDF50E84058 +:10413000E8403F0B300B006ECF0EBD140010BD6E7B +:10414000E552E552E552E5CFDAFFE7CFD9FF12009D +:10415000276A266A256A246A200EE76ED8902836D8 +:1041600029362A362B3624362536263627362D5044 +:10417000245C2E5025582F5026583050275809E3DC +:104180002D50245E2E50255A2F50265A3050275A33 +:08419000282AE72EE4D71200F3 +:08419800D9CFE6FFDACFE6FF04 +:1041A000E1CFD9FFE2CFDAFFFD0EDB50360BB16E67 +:1041B000B36AB26AA192FD0EDBAE02D0A08201D03A +:1041C000A092DBB2CD86DBA002D0B18E01D0B19E31 +:0E41D000B180E552E5CFDAFFE7CFD9FF12004C +:0241DE00D9CF37 +:1041E000E6FFDACFE6FFE1CFD9FFE2CFDAFFE65212 +:1041F000F20E0101C017ABAC03D0C091ABB0C081CF +:10420000ABB4C085ABB2C087AE50DF6EDF50E552B5 +:0C421000E552E5CFDAFFE7CFD9FF12003E +:04421C00D9CFE6FF11 +:10422000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB50B8 +:10423000C96EC6AE02D0FF0E09D0C7B0FED76FEC74 +:1042400022F0C5AC02D0FE0E01D0000EE552E5CF43 +:08425000DAFFE7CFD9FF1200ED +:0842580031383A34313A3431B7 +:104260000020004D6179203038203230313000524A +:104270006F626F7420496E74657266616365203188 +:104280002E300A4F6C697669657220424943484C6A +:0342900045520094 +:0C429400D9CFE6FFDACFE6FFE1CFD9FF7B +:1042A000E2CFDAFFE652E652FC0EDBCFDEFFDBCFD9 +:1042B000DDFF010EDB50B36EDF50B26EE552E5520A +:0C42C000E552E5CFDAFFE7CFD9FF12008E +:0442CC00D9CFE6FF61 +:1042D000DACFE6FFE1CFD9FFE2CFDAFFE652E652CE +:1042E000FC0EDBCFDEFFDBCFDDFF010EDB50D76E38 +:1042F000DF50D66EE552E552E552E5CFDAFFE7CF63 +:04430000D9FF1200CF +:0C430400D9CFE6FFDACFE6FFE1CFD9FF0A +:10431000E2CFDAFFFD0EDB507F0BD56ED76AD66A8F +:10432000F294FD0EDBAE02D0F28A01D0F29AD58E65 +:0C433000E552E5CFDAFFE7CFD9FF12001D +:04433C00D9CFE6FFF0 +:10434000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB5097 +:10435000FB0BCA6ECC6A9E92FD0EDBAE02D09D8234 +:1043600001D09D92CA84E552E5CFDAFFE7CFD9FFAD +:02437000120039 +:0E437200D9CFE6FFDACFE6FFE1CFD9FFE2CFE9 +:10438000DAFF3F0EC716C66AC56AFD0EDB50C612BD +:10439000FC0EDB50C71293829380C68AE552E5CFAC +:0843A000DAFFE7CFD9FF12009C +:0843A800D9CFE6FFE1CFD9FFF8 +:1043B00001010ED8EF50000803E28B291F0B8B6F11 +:1043C00007D8FE0EDBCFEFFFE552E7CFD9FF120093 +:0E43D0008B51EA6A6B0FE96E010EEA221200B1 +:0243DE00D9CF35 +:1043E000E6FFDACFE6FFE1CFD9FFE2CFDAFF0C0E2E +:1043F000BD129494CA94FD0EDB50CB6ECA84E55274 +:0E440000E5CFDAFFE7CFD9FF12009494120047 +:02440E00D9CF04 +:10441000E6FFDACFE6FFE1CFD9FFE2CFDAFFFD0E0C +:10442000DB407F0B3C0B006EC30EC2140010C26E4B +:0E443000C282E552E5CFDAFFE7CFD9FF1200D6 +:02443E00FF0E6F +:10444000E350376EEF0E01D0F30EE76EE72E26EF46 +:1044500022F00C0E366EE76AE72E2CEF22F0362E95 +:0C4460002BEF22F0372E24EF22F0120088 +:04446C00D9CFE6FFBF +:10447000DACFE6FFE1CFD9FFE2CFDAFFACAC04D070 +:10448000AC900101C0B3AC80FD0EDB50AD6EE552C7 +:0A449000E5CFDAFFE7CFD9FF1200F5 +:06449A0013EE00F023EE1A +:1044A00000F0F86A239C07EC1FF084EC22F0BFECCC +:0644B00004F0FBD712002E +:0A44B600FF0EE350E84E1200000074 +:0C44C00000D000D000D0E82EFAD7120087 +:0444CC00C450036E67 +:0E44D000026AC3500210F36E03C0F4FF120024 +:0244DE001F0EAF +:0C44E000C514FDE1C750040BFAE1120006 +:0444EC0000EE00F0EE +:0A44F0000F0EEE6AEA62FDD712001B +:0644FA00C250020B01E0BC +:04450000010E120096 +:04450400C69A120041 +:0245080012009F +:06450A00000000000000AB +:03451000000000A8 +:0D451300000000000000000000000000009B +:0345200000000098 +:094523000000000001000000008E +:03452C000000008C +:01452F00008B +:10453000000000000000000000000000000000007B :10454000000000000000000000000000000000006B -:044550000000000067 -:0C4554000000000000000000000000005B +:10455000000000000000000000000000000000005B :10456000000000000000000000000000000000004B -:08457000000000000000000043 +:044570000000000047 :00000001FF diff --git a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map index 6f382ef..63e01df 100644 --- a/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map +++ b/elec/boards/Interface_Robot/Firmware/output/Robot_Interface.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Sat May 08 18:01:48 2010 +Linker Map File - Created Sat May 08 18:41:47 2010 Section Info Section Type Address Location Size(Bytes) @@ -15,115 +15,115 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 .code_usb_device.o code 0x001c28 program 0x000b4c .code_ax12.o code 0x002774 program 0x000606 PROG code 0x002d7a program 0x000544 - .code_infrared.o code 0x0032be program 0x00034e - .code_servo.o code 0x00360c program 0x00025c - .code_mcc.o code 0x003868 program 0x00022c - .code_adjd-s371.o code 0x003a94 program 0x000128 - .code_lcd.o code 0x003bbc program 0x0000d8 - .code_usb_function_hid.o code 0x003c94 program 0x0000ce -.romdata_usb_descriptors.o romdata 0x003d62 program 0x0000b0 - _cinit_scn code 0x003e12 program 0x00009e - .code_uopen.o code 0x003eb0 program 0x00008a - .code_i2c_puts.o code 0x003f3a program 0x000076 - .code_adcopen.o code 0x003fb0 program 0x00006e - STRING code 0x00401e program 0x00006c - .code_eeprom.o code 0x00408a program 0x00006c - .code_pw1setdc.o code 0x0040f6 program 0x00005e - .code_fxd3232u.o code 0x004154 program 0x000048 - .code_t3open.o code 0x00419c program 0x000046 - .code_uread.o code 0x0041e2 program 0x00003e - .code_i2c_writ.o code 0x004220 program 0x00003c - .stringtable romdata 0x00425c program 0x00003b - .idata_i2c_open.o_i romdata 0x004297 program 0x000000 - .romdata_i2c_open.o romdata 0x004297 program 0x000000 - .romdata_uread.o romdata 0x004297 program 0x000000 - .idata_uread.o_i romdata 0x004297 program 0x000000 - .romdata_adcread.o romdata 0x004297 program 0x000000 - .idata_adcread.o_i romdata 0x004297 program 0x000000 -.idata_usb_descriptors.o_i romdata 0x004297 program 0x000000 - .romdata_uopen.o romdata 0x004297 program 0x000000 - .idata_pw1open.o_i romdata 0x004297 program 0x000000 - .idata_uopen.o_i romdata 0x004297 program 0x000000 - .romdata_pw1open.o romdata 0x004297 program 0x000000 - .romdata_t3open.o romdata 0x004297 program 0x000000 - .idata_t3open.o_i romdata 0x004297 program 0x000000 - .romdata_t2open.o romdata 0x004297 program 0x000000 - .idata_t2open.o_i romdata 0x004297 program 0x000000 - .romdata_t0open.o romdata 0x004297 program 0x000000 - .idata_t0open.o_i romdata 0x004297 program 0x000000 - .idata_c018i.o_i romdata 0x004297 program 0x000000 - .romdata_c018i.o romdata 0x004297 program 0x000000 - .romdata_i2c_puts.o romdata 0x004297 program 0x000000 - .idata_i2c_puts.o_i romdata 0x004297 program 0x000000 - .romdata___init.o romdata 0x004297 program 0x000000 - .idata___init.o_i romdata 0x004297 program 0x000000 - .romdata_uwrite.o romdata 0x004297 program 0x000000 - .idata_uwrite.o_i romdata 0x004297 program 0x000000 - .romdata_t3write.o romdata 0x004297 program 0x000000 - .idata_t3write.o_i romdata 0x004297 program 0x000000 - .romdata_t0write.o romdata 0x004297 program 0x000000 - .idata_t0write.o_i romdata 0x004297 program 0x000000 - .romdata_i2c_writ.o romdata 0x004297 program 0x000000 - .idata_i2c_writ.o_i romdata 0x004297 program 0x000000 - .romdata_udefs.o romdata 0x004297 program 0x000000 - .idata_udefs.o_i romdata 0x004297 program 0x000000 - .romdata_pw1setdc.o romdata 0x004297 program 0x000000 - .idata_pw1setdc.o_i romdata 0x004297 program 0x000000 - .romdata_adcselchconv.o romdata 0x004297 program 0x000000 - .idata_adcselchconv.o_i romdata 0x004297 program 0x000000 - .romdata_lcd.o romdata 0x004297 program 0x000000 - .idata_eeprom.o_i romdata 0x004297 program 0x000000 - .idata_lcd.o_i romdata 0x004297 program 0x000000 - .romdata_eeprom.o romdata 0x004297 program 0x000000 - .romdata_infrared.o romdata 0x004297 program 0x000000 - .idata_adcbusy.o_i romdata 0x004297 program 0x000000 - .romdata_adcbusy.o romdata 0x004297 program 0x000000 - .romdata_adjd-s371.o romdata 0x004297 program 0x000000 - .idata_adjd-s371.o_i romdata 0x004297 program 0x000000 - .idata_i2c_clos.o_i romdata 0x004297 program 0x000000 - .romdata_i2c_clos.o romdata 0x004297 program 0x000000 - .idata_usb_device.o_i romdata 0x004297 program 0x000000 - .romdata_mcc.o romdata 0x004297 program 0x000000 - .romdata_usb_device.o romdata 0x004297 program 0x000000 - .romdata_main.o romdata 0x004297 program 0x000000 - .idata_fxd3232u.o_i romdata 0x004297 program 0x000000 - .romdata_servo.o romdata 0x004297 program 0x000000 - .romdata_fxd3232u.o romdata 0x004297 program 0x000000 - .romdata_error.o romdata 0x004297 program 0x000000 - .idata_i2c_idle.o_i romdata 0x004297 program 0x000000 - .romdata_i2c_idle.o romdata 0x004297 program 0x000000 -.idata_usb_function_hid.o_i romdata 0x004297 program 0x000000 - .idata_adcopen.o_i romdata 0x004297 program 0x000000 - .romdata_ax12.o romdata 0x004297 program 0x000000 - .romdata_adcopen.o romdata 0x004297 program 0x000000 -.romdata_usb_function_hid.o romdata 0x004297 program 0x000000 - .code_t3write.o code 0x004298 program 0x000038 - .code_c018i.o code 0x004298 program 0x000000 - .code_udefs.o code 0x004298 program 0x000000 - .code_usb_descriptors.o code 0x004298 program 0x000000 - .code_t0write.o code 0x0042d0 program 0x000038 - .code_t0open.o code 0x004308 program 0x000038 - .code_t2open.o code 0x004340 program 0x000036 - .code_i2c_open.o code 0x004376 program 0x000036 - .code_error.o code 0x0043ac program 0x000036 - .code_pw1open.o code 0x0043e2 program 0x000030 - .code_adcselchconv.o code 0x004412 program 0x000030 - D10KTCYXCODE code 0x004442 program 0x00002e - .code_uwrite.o code 0x004470 program 0x00002e - _startup_scn code 0x00449e program 0x00001c - D10TCYXCODE code 0x0044ba program 0x000016 - .code_adcread.o code 0x0044d0 program 0x000012 - .code_i2c_idle.o code 0x0044e2 program 0x00000e - .code code 0x0044f0 program 0x00000e - .code_adcbusy.o code 0x0044fe program 0x00000a - .code_i2c_clos.o code 0x004508 program 0x000004 - .code___init.o code 0x00450c program 0x000002 - .idata_servo.o_i romdata 0x00450e program 0x000009 - .idata_mcc.o_i romdata 0x004517 program 0x000010 - .idata_main.o_i romdata 0x004527 program 0x000009 - .idata_infrared.o_i romdata 0x004530 program 0x000003 - .idata_error.o_i romdata 0x004533 program 0x000021 - .idata_ax12.o_i romdata 0x004554 program 0x000024 + .code_infrared.o code 0x0032be program 0x00034a + .code_servo.o code 0x003608 program 0x00025c + .code_mcc.o code 0x003864 program 0x00022c + .code_adjd-s371.o code 0x003a90 program 0x000128 + .code_lcd.o code 0x003bb8 program 0x0000d8 + .code_usb_function_hid.o code 0x003c90 program 0x0000ce +.romdata_usb_descriptors.o romdata 0x003d5e program 0x0000b0 + _cinit_scn code 0x003e0e program 0x00009e + .code_uopen.o code 0x003eac program 0x00008a + .code_i2c_puts.o code 0x003f36 program 0x000076 + .code_adcopen.o code 0x003fac program 0x00006e + STRING code 0x00401a program 0x00006c + .code_eeprom.o code 0x004086 program 0x00006c + .code_pw1setdc.o code 0x0040f2 program 0x00005e + .code_fxd3232u.o code 0x004150 program 0x000048 + .code_t3open.o code 0x004198 program 0x000046 + .code_uread.o code 0x0041de program 0x00003e + .code_i2c_writ.o code 0x00421c program 0x00003c + .stringtable romdata 0x004258 program 0x00003b + .idata_i2c_open.o_i romdata 0x004293 program 0x000000 + .romdata_i2c_open.o romdata 0x004293 program 0x000000 + .romdata_uread.o romdata 0x004293 program 0x000000 + .idata_uread.o_i romdata 0x004293 program 0x000000 + .romdata_adcread.o romdata 0x004293 program 0x000000 + .idata_adcread.o_i romdata 0x004293 program 0x000000 +.idata_usb_descriptors.o_i romdata 0x004293 program 0x000000 + .romdata_uopen.o romdata 0x004293 program 0x000000 + .idata_pw1open.o_i romdata 0x004293 program 0x000000 + .idata_uopen.o_i romdata 0x004293 program 0x000000 + .romdata_pw1open.o romdata 0x004293 program 0x000000 + .romdata_t3open.o romdata 0x004293 program 0x000000 + .idata_t3open.o_i romdata 0x004293 program 0x000000 + .romdata_t2open.o romdata 0x004293 program 0x000000 + .idata_t2open.o_i romdata 0x004293 program 0x000000 + .romdata_t0open.o romdata 0x004293 program 0x000000 + .idata_t0open.o_i romdata 0x004293 program 0x000000 + .idata_c018i.o_i romdata 0x004293 program 0x000000 + .romdata_c018i.o romdata 0x004293 program 0x000000 + .romdata_i2c_puts.o romdata 0x004293 program 0x000000 + .idata_i2c_puts.o_i romdata 0x004293 program 0x000000 + .romdata___init.o romdata 0x004293 program 0x000000 + .idata___init.o_i romdata 0x004293 program 0x000000 + .romdata_uwrite.o romdata 0x004293 program 0x000000 + .idata_uwrite.o_i romdata 0x004293 program 0x000000 + .romdata_t3write.o romdata 0x004293 program 0x000000 + .idata_t3write.o_i romdata 0x004293 program 0x000000 + .romdata_t0write.o romdata 0x004293 program 0x000000 + .idata_t0write.o_i romdata 0x004293 program 0x000000 + .romdata_i2c_writ.o romdata 0x004293 program 0x000000 + .idata_i2c_writ.o_i romdata 0x004293 program 0x000000 + .romdata_udefs.o romdata 0x004293 program 0x000000 + .idata_udefs.o_i romdata 0x004293 program 0x000000 + .romdata_pw1setdc.o romdata 0x004293 program 0x000000 + .idata_pw1setdc.o_i romdata 0x004293 program 0x000000 + .romdata_adcselchconv.o romdata 0x004293 program 0x000000 + .idata_adcselchconv.o_i romdata 0x004293 program 0x000000 + .romdata_lcd.o romdata 0x004293 program 0x000000 + .idata_eeprom.o_i romdata 0x004293 program 0x000000 + .idata_lcd.o_i romdata 0x004293 program 0x000000 + .romdata_eeprom.o romdata 0x004293 program 0x000000 + .romdata_infrared.o romdata 0x004293 program 0x000000 + .idata_adcbusy.o_i romdata 0x004293 program 0x000000 + .romdata_adcbusy.o romdata 0x004293 program 0x000000 + .romdata_adjd-s371.o romdata 0x004293 program 0x000000 + .idata_adjd-s371.o_i romdata 0x004293 program 0x000000 + .idata_i2c_clos.o_i romdata 0x004293 program 0x000000 + .romdata_i2c_clos.o romdata 0x004293 program 0x000000 + .idata_usb_device.o_i romdata 0x004293 program 0x000000 + .romdata_mcc.o romdata 0x004293 program 0x000000 + .romdata_usb_device.o romdata 0x004293 program 0x000000 + .romdata_main.o romdata 0x004293 program 0x000000 + .idata_fxd3232u.o_i romdata 0x004293 program 0x000000 + .romdata_servo.o romdata 0x004293 program 0x000000 + .romdata_fxd3232u.o romdata 0x004293 program 0x000000 + .romdata_error.o romdata 0x004293 program 0x000000 + .idata_i2c_idle.o_i romdata 0x004293 program 0x000000 + .romdata_i2c_idle.o romdata 0x004293 program 0x000000 +.idata_usb_function_hid.o_i romdata 0x004293 program 0x000000 + .idata_adcopen.o_i romdata 0x004293 program 0x000000 + .romdata_ax12.o romdata 0x004293 program 0x000000 + .romdata_adcopen.o romdata 0x004293 program 0x000000 +.romdata_usb_function_hid.o romdata 0x004293 program 0x000000 + .code_t3write.o code 0x004294 program 0x000038 + .code_c018i.o code 0x004294 program 0x000000 + .code_udefs.o code 0x004294 program 0x000000 + .code_usb_descriptors.o code 0x004294 program 0x000000 + .code_t0write.o code 0x0042cc program 0x000038 + .code_t0open.o code 0x004304 program 0x000038 + .code_t2open.o code 0x00433c program 0x000036 + .code_i2c_open.o code 0x004372 program 0x000036 + .code_error.o code 0x0043a8 program 0x000036 + .code_pw1open.o code 0x0043de program 0x000030 + .code_adcselchconv.o code 0x00440e program 0x000030 + D10KTCYXCODE code 0x00443e program 0x00002e + .code_uwrite.o code 0x00446c program 0x00002e + _startup_scn code 0x00449a program 0x00001c + D10TCYXCODE code 0x0044b6 program 0x000016 + .code_adcread.o code 0x0044cc program 0x000012 + .code_i2c_idle.o code 0x0044de program 0x00000e + .code code 0x0044ec program 0x00000e + .code_adcbusy.o code 0x0044fa program 0x00000a + .code_i2c_clos.o code 0x004504 program 0x000004 + .code___init.o code 0x004508 program 0x000002 + .idata_servo.o_i romdata 0x00450a program 0x000009 + .idata_mcc.o_i romdata 0x004513 program 0x000010 + .idata_main.o_i romdata 0x004523 program 0x000009 + .idata_infrared.o_i romdata 0x00452c program 0x000003 + .idata_error.o_i romdata 0x00452f program 0x000021 + .idata_ax12.o_i romdata 0x004550 program 0x000024 .tmpdata udata 0x000000 data 0x000022 ... [truncated message content] |