remy před 3 roky
rodič
revize
d7d3682f20

+ 1 - 0
Doc/.~lock.AideSoft.xlsx#

@@ -0,0 +1 @@
+,remy,leNotre,17.04.2023 20:31,file:///home/remy/.config/libreoffice/4;

+ 15812 - 0
Eda/Proc/_autosave-proc.kicad_pcb

@@ -0,0 +1,15812 @@
+(kicad_pcb (version 20211014) (generator pcbnew)
+
+  (general
+    (thickness 1.6)
+  )
+
+  (paper "A4")
+  (layers
+    (0 "F.Cu" signal)
+    (31 "B.Cu" signal)
+    (32 "B.Adhes" user "B.Adhesive")
+    (33 "F.Adhes" user "F.Adhesive")
+    (34 "B.Paste" user)
+    (35 "F.Paste" user)
+    (36 "B.SilkS" user "B.Silkscreen")
+    (37 "F.SilkS" user "F.Silkscreen")
+    (38 "B.Mask" user)
+    (39 "F.Mask" user)
+    (40 "Dwgs.User" user "User.Drawings")
+    (41 "Cmts.User" user "User.Comments")
+    (42 "Eco1.User" user "User.Eco1")
+    (43 "Eco2.User" user "User.Eco2")
+    (44 "Edge.Cuts" user)
+    (45 "Margin" user)
+    (46 "B.CrtYd" user "B.Courtyard")
+    (47 "F.CrtYd" user "F.Courtyard")
+    (48 "B.Fab" user)
+    (49 "F.Fab" user)
+  )
+
+  (setup
+    (pad_to_mask_clearance 0)
+    (solder_mask_min_width 0.25)
+    (aux_axis_origin 90 50)
+    (grid_origin 98.7 54.1)
+    (pcbplotparams
+      (layerselection 0x0000020_fffffffe)
+      (disableapertmacros false)
+      (usegerberextensions true)
+      (usegerberattributes false)
+      (usegerberadvancedattributes false)
+      (creategerberjobfile false)
+      (svguseinch false)
+      (svgprecision 6)
+      (excludeedgelayer false)
+      (plotframeref false)
+      (viasonmask false)
+      (mode 1)
+      (useauxorigin false)
+      (hpglpennumber 1)
+      (hpglpenspeed 20)
+      (hpglpendiameter 15.000000)
+      (dxfpolygonmode true)
+      (dxfimperialunits true)
+      (dxfusepcbnewfont true)
+      (psnegative true)
+      (psa4output false)
+      (plotreference true)
+      (plotvalue true)
+      (plotinvisibletext false)
+      (sketchpadsonfab false)
+      (subtractmaskfromsilk false)
+      (outputformat 4)
+      (mirror false)
+      (drillshape 0)
+      (scaleselection 1)
+      (outputdirectory "Proc")
+    )
+  )
+
+  (net 0 "")
+  (net 1 "Net-(BT1-Pad1)")
+  (net 2 "/GND")
+  (net 3 "/12V")
+  (net 4 "/nrst")
+  (net 5 "/boot0")
+  (net 6 "Net-(D1-Pad2)")
+  (net 7 "Net-(D2-Pad2)")
+  (net 8 "/swclk")
+  (net 9 "/swdio")
+  (net 10 "/mfp")
+  (net 11 "/sdl")
+  (net 12 "/sda")
+  (net 13 "/wc")
+  (net 14 "Net-(U3-Pad1)")
+  (net 15 "Net-(U3-Pad4)")
+  (net 16 "Net-(U3-Pad5)")
+  (net 17 "Net-(U3-Pad7)")
+  (net 18 "Net-(U3-Pad13)")
+  (net 19 "Net-(U3-Pad14)")
+  (net 20 "Net-(U3-Pad18)")
+  (net 21 "Net-(U1-Pad11)")
+  (net 22 "Net-(U1-Pad36)")
+  (net 23 "Net-(C10-Pad1)")
+  (net 24 "Net-(C11-Pad1)")
+  (net 25 "Net-(C12-Pad1)")
+  (net 26 "/USB_OTG_FS_VBUS")
+  (net 27 "/USB_OTG_FS_N")
+  (net 28 "/USB_OTG_FS_P")
+  (net 29 "/USB_OTG_FS_ID")
+  (net 30 "Net-(J1-Pad0)")
+  (net 31 "Net-(U1-Pad1)")
+  (net 32 "Net-(U1-Pad8)")
+  (net 33 "Net-(U1-Pad9)")
+  (net 34 "Net-(U1-Pad10)")
+  (net 35 "Net-(U1-Pad2)")
+  (net 36 "Net-(U1-Pad50)")
+  (net 37 "Net-(U1-Pad51)")
+  (net 38 "Net-(U1-Pad52)")
+  (net 39 "Net-(U1-Pad53)")
+  (net 40 "Net-(U1-Pad54)")
+  (net 41 "Net-(U1-Pad57)")
+  (net 42 "/I2C2_SDL")
+  (net 43 "/I2C2_SDA")
+  (net 44 "Net-(D3-Pad2)")
+  (net 45 "/L_rouge")
+  (net 46 "/L_vert")
+  (net 47 "/L_orange")
+  (net 48 "/Themp")
+  (net 49 "/CMD")
+  (net 50 "Net-(R12-Pad1)")
+  (net 51 "Net-(U5-Pad2)")
+  (net 52 "Net-(U5-Pad4)")
+  (net 53 "Net-(U5-Pad5)")
+  (net 54 "Net-(U5-Pad6)")
+  (net 55 "Net-(U5-Pad7)")
+  (net 56 "Net-(U5-Pad11)")
+  (net 57 "Net-(U5-Pad12)")
+  (net 58 "Net-(U5-Pad19)")
+  (net 59 "Net-(U5-Pad20)")
+  (net 60 "/aquit")
+  (net 61 "Net-(U1-Pad4)")
+  (net 62 "/3.3V")
+  (net 63 "Net-(C5-Pad1)")
+  (net 64 "/mode")
+  (net 65 "/RX")
+  (net 66 "/TX")
+  (net 67 "/S1")
+  (net 68 "/S2")
+  (net 69 "/S3")
+  (net 70 "/S4")
+  (net 71 "/S5")
+  (net 72 "/S6")
+  (net 73 "/S7")
+  (net 74 "/S8")
+  (net 75 "/S9")
+  (net 76 "/S10")
+  (net 77 "Net-(R11-Pad2)")
+  (net 78 "Net-(R15-Pad1)")
+  (net 79 "Net-(U1-Pad21)")
+  (net 80 "Net-(U1-Pad24)")
+  (net 81 "Net-(U1-Pad25)")
+  (net 82 "Net-(U1-Pad39)")
+  (net 83 "Net-(U1-Pad56)")
+  (net 84 "Net-(U5-Pad9)")
+  (net 85 "Net-(U5-Pad10)")
+  (net 86 "Net-(U5-Pad13)")
+  (net 87 "Net-(U5-Pad14)")
+  (net 88 "Net-(R17-Pad1)")
+
+  (footprint "SW:SW" (layer "F.Cu")
+    (tedit 59132FF5) (tstamp 00000000-0000-0000-0000-000057ea386e)
+    (at 156 92.5 180)
+    (path "/00000000-0000-0000-0000-000057061862")
+    (attr through_hole)
+    (fp_text reference "SW1" (at 0 -6.33 180) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp dbdfba2c-4b3e-4be6-9245-b75dbfb14a84)
+    )
+    (fp_text value "boot" (at -2 -2.5 270) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 3a1b1c8d-5617-4ddf-aa6a-0f8363e8476b)
+    )
+    (fp_line (start -1.27 -4.445) (end -1.27 -0.635) (layer "F.SilkS") (width 0.15) (tstamp 698a1f07-74dd-4890-a9b2-d2519522df41))
+    (fp_line (start 1.27 -0.635) (end -1.27 -0.635) (layer "F.SilkS") (width 0.15) (tstamp 845341c8-daf0-4ed3-bd41-dbf6ee2e72a2))
+    (fp_line (start 1.27 -4.445) (end 1.27 -0.635) (layer "F.SilkS") (width 0.15) (tstamp a2e6e53f-26f0-4083-852b-a9c3f6ac1ab3))
+    (fp_line (start -1.27 -4.445) (end 1.27 -4.445) (layer "F.SilkS") (width 0.15) (tstamp e78ee6b1-4235-4ca1-946c-f49fc8175d75))
+    (pad "1" smd rect locked (at 0 0 180) (size 1.524 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 4 "/nrst") (tstamp 18d52abe-9933-478d-908e-42e8e3b53994))
+    (pad "2" smd rect locked (at 0 -5.08 180) (size 1.524 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 1883be61-cb2e-43cb-b8d1-9afc4c956857))
+  )
+
+  (footprint "SW:SW" (layer "F.Cu")
+    (tedit 59132FF1) (tstamp 00000000-0000-0000-0000-000057ea3874)
+    (at 150 92.5 180)
+    (path "/00000000-0000-0000-0000-000057061f5b")
+    (attr through_hole)
+    (fp_text reference "SW2" (at 0 -6.33 180) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 55a19bc5-01bb-4517-b04c-e4b11759c357)
+    )
+    (fp_text value "reset" (at -2.02 -2.386 270) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 440ff71f-2e26-4c14-acd8-409e4c53f922)
+    )
+    (fp_line (start 1.27 -0.635) (end -1.27 -0.635) (layer "F.SilkS") (width 0.15) (tstamp 6cc6e9ef-c780-4844-aff5-63ffd552e1a5))
+    (fp_line (start -1.27 -4.445) (end -1.27 -0.635) (layer "F.SilkS") (width 0.15) (tstamp 73a01ea9-15e6-457e-a14e-073f565b53ac))
+    (fp_line (start -1.27 -4.445) (end 1.27 -4.445) (layer "F.SilkS") (width 0.15) (tstamp a8ef8641-02d1-443b-a891-7e063af3e0d6))
+    (fp_line (start 1.27 -4.445) (end 1.27 -0.635) (layer "F.SilkS") (width 0.15) (tstamp ad38f230-a70b-4473-ba47-722b3ec1b68c))
+    (pad "1" smd rect locked (at 0 0 180) (size 1.524 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 5 "/boot0") (tstamp 66ad78ae-0250-480e-829d-5d10adac7374))
+    (pad "2" smd rect locked (at 0 -5.08 180) (size 1.524 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp ae022fa5-fb50-4684-89de-b868fa338e04))
+  )
+
+  (footprint "U:SOX18" (layer "F.Cu")
+    (tedit 57E939AA) (tstamp 00000000-0000-0000-0000-000057ea38ca)
+    (at 154.73 71.82)
+    (path "/00000000-0000-0000-0000-000057e3c0bf")
+    (attr through_hole)
+    (fp_text reference "U3" (at 6.77 0 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp e95ab3c2-345a-470d-bf7b-1c4433aa1d4a)
+    )
+    (fp_text value "M41T83" (at 3.75 -0.25 90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 2eb4bd9a-d8f3-40d2-b8b1-f000f757c151)
+    )
+    (fp_line (start -6.15 4.1) (end 5.55 4.1) (layer "F.SilkS") (width 0.15) (tstamp 16b96f8e-2f1e-4802-8321-51b8efbd52ae))
+    (fp_line (start -6.15 -3.95) (end -6.15 4.1) (layer "F.SilkS") (width 0.15) (tstamp 2fb2762d-119f-4501-95ec-085a41d2ed22))
+    (fp_line (start 5.55 -3.95) (end 5.55 4.1) (layer "F.SilkS") (width 0.15) (tstamp 71458fb9-840c-4a96-950f-ab5be7ac561e))
+    (fp_line (start -6.15 -3.95) (end 5.55 -3.95) (layer "F.SilkS") (width 0.15) (tstamp a1b1139c-6f28-4d46-af03-6e21cc2e5837))
+    (fp_arc (start -6.15 -1.8) (mid -4.877208 -1.272792) (end -4.35 0) (layer "F.SilkS") (width 0.15) (tstamp 06f723b3-a9b6-4c65-93e9-6c942d35f8fe))
+    (fp_arc (start -4.35 0) (mid -4.877208 1.272792) (end -6.15 1.8) (layer "F.SilkS") (width 0.15) (tstamp 112942d3-d3da-4059-a729-38b0487b3c6d))
+    (pad "1" smd rect locked (at -5.08 4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 14 "Net-(U3-Pad1)") (tstamp 3ca15b7a-96e8-4361-9a3b-2ab63c69f8b4))
+    (pad "2" smd rect locked (at -3.81 4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp f3af21a7-c8c3-4ab9-a9ba-26950d79718a))
+    (pad "3" smd rect locked (at -2.54 4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp e366c4b5-64c9-47ac-a4d3-6f78938ab934))
+    (pad "4" smd rect locked (at -1.27 4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 15 "Net-(U3-Pad4)") (tstamp e4e48f9e-3177-4da2-a399-c7fed06a39dc))
+    (pad "5" smd rect locked (at 0 4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 16 "Net-(U3-Pad5)") (tstamp 2372e6c9-8cde-43b4-a1fd-15a406aaceb9))
+    (pad "6" smd rect locked (at 1.27 4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp 6f22db8b-39bf-479d-9247-f49a694108c5))
+    (pad "7" smd rect locked (at 2.54 4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 17 "Net-(U3-Pad7)") (tstamp 19ec1a4c-0747-4a65-9c88-2b355ee2b264))
+    (pad "8" smd rect locked (at 3.81 4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 1 "Net-(BT1-Pad1)") (tstamp 0e4138c5-60c0-4cc0-b979-b88c06def7ff))
+    (pad "9" smd rect locked (at 5.08 4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 03a49c4b-02b4-4870-afda-a4243b24cc1e))
+    (pad "10" smd rect locked (at 5.08 -4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 12 "/sda") (tstamp 2fa0469d-ff80-4f9b-86a0-af4f811977fc))
+    (pad "11" smd rect locked (at 3.81 -4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 11 "/sdl") (tstamp fd3cc215-d084-49bc-946a-4711d7433b7f))
+    (pad "12" smd rect locked (at 2.54 -4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 10 "/mfp") (tstamp 9c9d0d69-b5a7-4f42-a73d-a47a2c3fd3a9))
+    (pad "13" smd rect locked (at 1.27 -4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 18 "Net-(U3-Pad13)") (tstamp ece56928-79d5-4db4-8312-7309472f82c0))
+    (pad "14" smd rect locked (at 0 -4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 19 "Net-(U3-Pad14)") (tstamp 79b7a792-a2a2-4f3f-8cba-52e975578ac7))
+    (pad "15" smd rect locked (at -1.27 -4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp c6a57dc7-fc68-4ff4-bced-bb422049b54a))
+    (pad "16" smd rect locked (at -2.54 -4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp eae2366f-cc1a-4401-8368-05944d9c8a8b))
+    (pad "17" smd rect locked (at -3.81 -4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp fce6bb38-c973-4c73-9017-47c6b1cad3d2))
+    (pad "18" smd rect locked (at -5.08 -4.82) (size 0.7 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 20 "Net-(U3-Pad18)") (tstamp ed435b76-8aa1-4f54-be16-1a9d7ce8b2d9))
+  )
+
+  (footprint "U:LM317" (layer "F.Cu")
+    (tedit 5B3F782B) (tstamp 00000000-0000-0000-0000-000057ea3e6f)
+    (at 178.25 81.6 90)
+    (path "/00000000-0000-0000-0000-000057e4f7d8")
+    (attr through_hole)
+    (fp_text reference "U4" (at 3.6 -3.25 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 7f9eaf16-8a80-409a-85a8-dc256b8bc21b)
+    )
+    (fp_text value "LM317" (at 5 0 180) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 74ff6597-334e-40d0-b4f1-d76e46dfc281)
+    )
+    (fp_line (start -4 -2.25) (end 4 -2.25) (layer "F.SilkS") (width 0.15) (tstamp 438fe5ed-d88c-4ee4-9733-064418baf306))
+    (fp_line (start -4 2.25) (end -4 -2.25) (layer "F.SilkS") (width 0.15) (tstamp 96e39f15-a7e3-421e-9b99-c3261a43c67b))
+    (fp_line (start 4 2.25) (end 4 -2.25) (layer "F.SilkS") (width 0.15) (tstamp 980a4952-9fbb-4e8d-81ab-a4cf66386bc3))
+    (fp_line (start 4 2.25) (end -4 2.25) (layer "F.SilkS") (width 0.15) (tstamp e2666c7c-7533-4809-9350-c51c3a9b9a98))
+    (pad "1" smd rect locked (at -2.5 3.25 90) (size 0.84 1.524) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 63 "Net-(C5-Pad1)") (tstamp b55943f9-d896-4e3e-b119-3ec1594eeb3e))
+    (pad "2" smd rect locked (at -0.2 3.25 90) (size 0.84 1.524) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp 853a8894-4b84-4757-8122-75592561763c))
+    (pad "2" smd rect locked (at 0 -3.25 90) (size 3.1 1.524) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp 8ef90dcb-0eab-4617-987d-569b83fd810d))
+    (pad "3" smd rect locked (at 2.1 3.25 90) (size 0.84 1.524) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 3 "/12V") (tstamp 3e01f424-a609-47b9-8851-8defcf269dac))
+  )
+
+  (footprint "C:0603" (layer "F.Cu")
+    (tedit 589B3552) (tstamp 00000000-0000-0000-0000-0000592e7eb9)
+    (at 132 88.5 90)
+    (path "/00000000-0000-0000-0000-0000592e1b87")
+    (attr through_hole)
+    (fp_text reference "C10" (at 0 2 270) (layer "F.SilkS")
+      (effects (font (size 0.9 0.7) (thickness 0.17)))
+      (tstamp edbffbe6-6f83-43e2-be73-ddc3bb858b9e)
+    )
+    (fp_text value "22pF" (at -0.7 0 180) (layer "F.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)))
+      (tstamp 654de1f6-bf33-4b78-a829-8cbff70cc6db)
+    )
+    (fp_line (start -0.28 -0.49) (end 0.28 -0.49) (layer "F.SilkS") (width 0.17) (tstamp 81947cc1-3d53-493a-9b73-5687b3f3ac9e))
+    (fp_line (start 0.28 0.49) (end -0.28 0.49) (layer "F.SilkS") (width 0.17) (tstamp 98785aba-0850-48d8-a72d-8496b8fd3ebf))
+    (pad "1" smd rect locked (at 0.7 0 90) (size 0.7 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 23 "Net-(C10-Pad1)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 90013902-e908-47dd-bbe8-b4491a819d47))
+    (pad "2" smd rect locked (at -0.7 0 90) (size 0.7 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp e8321e3f-f334-48eb-a468-ab214865e54a))
+    (model "${KIPRJMOD}/../packages3d/None-C0603.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0603" (layer "F.Cu")
+    (tedit 589B3552) (tstamp 00000000-0000-0000-0000-0000592e7ebf)
+    (at 128 88.5 90)
+    (path "/00000000-0000-0000-0000-0000592e1cb0")
+    (attr through_hole)
+    (fp_text reference "C11" (at 0 -2 270) (layer "F.SilkS")
+      (effects (font (size 0.9 0.7) (thickness 0.17)))
+      (tstamp dd3c2156-edd7-44d8-9b73-11a1e59ac74b)
+    )
+    (fp_text value "22pF" (at -0.7 0 180) (layer "F.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)))
+      (tstamp 105c2832-9ebd-4728-a227-361525359e40)
+    )
+    (fp_line (start -0.28 -0.49) (end 0.28 -0.49) (layer "F.SilkS") (width 0.17) (tstamp 3b72bd29-fd9e-4bea-8d10-1c58a9c49eb2))
+    (fp_line (start 0.28 0.49) (end -0.28 0.49) (layer "F.SilkS") (width 0.17) (tstamp 94f82de6-946e-4954-8b2b-b902fd7f4db5))
+    (pad "1" smd rect locked (at 0.7 0 90) (size 0.7 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 24 "Net-(C11-Pad1)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 25cf5089-c89f-4c07-a049-7f2932c2f5ec))
+    (pad "2" smd rect locked (at -0.7 0 90) (size 0.7 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp e8bbfc1f-9b98-436d-9e59-52a2ba0b8b64))
+    (model "${KIPRJMOD}/../packages3d/None-C0603.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "Connector:Micro-USB" (layer "F.Cu")
+    (tedit 5B3CE400) (tstamp 00000000-0000-0000-0000-0000592e7ede)
+    (at 116.25 98.325)
+    (path "/00000000-0000-0000-0000-000059256a87")
+    (attr through_hole)
+    (fp_text reference "J1" (at 6.6 -1.7 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp e447add3-fef1-4e06-8ccf-b42f6e950b9d)
+    )
+    (fp_text value "Micro_USB" (at 0.5 3.175) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp cba3e724-6787-4eda-b0b8-422be5653ad3)
+    )
+    (fp_text user "" (at 0 0) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp f1482e1c-3384-4cdd-b26b-c10122c022c9)
+    )
+    (fp_text user "" (at 8 -5.5) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp c0ec0342-787a-474f-be09-9a55417c6c90)
+    )
+    (fp_line (start 3.675 -2.75) (end 3.675 1.75) (layer "F.Fab") (width 0.15) (tstamp 0d071620-7b0d-4ef5-ac23-c23a7eaf9b7a))
+    (fp_line (start -3.675 -2.75) (end 3.675 -2.75) (layer "F.Fab") (width 0.15) (tstamp 5f96c036-9673-4435-8323-ba6eb1c03502))
+    (fp_line (start -3.675 -2.75) (end -3.675 1.75) (layer "F.Fab") (width 0.15) (tstamp f2dbdbc5-0a21-4c3a-8e97-e08d32ec3c3e))
+    (pad "0" thru_hole oval locked (at 4.85 -3.3) (size 1.4 2.3) (drill oval 0.8 1.7) (layers *.Cu *.Mask)
+      (net 30 "Net-(J1-Pad0)") (tstamp 4be72797-69c6-4c37-a2be-dba48781fb61))
+    (pad "0" thru_hole oval locked (at -4.85 -3.3) (size 1.4 2.3) (drill oval 0.8 1.7) (layers *.Cu *.Mask)
+      (net 30 "Net-(J1-Pad0)") (tstamp 5908dde7-e448-49a2-8dbe-4bcd221ee93a))
+    (pad "0" thru_hole oval locked (at -4.85 0) (size 1.4 2.3) (drill oval 0.8 1.7) (layers *.Cu *.Mask)
+      (net 30 "Net-(J1-Pad0)") (tstamp 5a6ae882-e3e3-4dc1-b431-41b9f22278ca))
+    (pad "0" thru_hole oval locked (at 4.85 0) (size 1.4 2.3) (drill oval 0.8 1.7) (layers *.Cu *.Mask)
+      (net 30 "Net-(J1-Pad0)") (tstamp df2d9afe-4849-4b56-ba69-c41521940d00))
+    (pad "1" smd rect locked (at -1.3 -3.825) (size 0.4 1.05) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 26 "/USB_OTG_FS_VBUS") (tstamp 718c69f8-916a-4dc7-8af4-92f3cfb01831))
+    (pad "2" smd rect locked (at -0.65 -3.825) (size 0.4 1.05) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 27 "/USB_OTG_FS_N") (tstamp e17ab434-74ac-4ee8-ba10-22ec59577482))
+    (pad "3" smd rect locked (at 0 -3.825) (size 0.4 1.05) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 28 "/USB_OTG_FS_P") (tstamp 88eec69c-0597-40ec-b01a-0e0004dc4231))
+    (pad "4" smd rect locked (at 0.65 -3.825) (size 0.4 1.05) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 29 "/USB_OTG_FS_ID") (tstamp 5e6a39d0-b64a-4e0c-a888-5ec8ad843d8e))
+    (pad "5" smd rect locked (at 1.3 -3.825) (size 0.4 1.05) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 916a1511-0790-46dd-b942-572ac444e50c))
+  )
+
+  (footprint "Y:5032" (layer "F.Cu")
+    (tedit 592E7CF3) (tstamp 00000000-0000-0000-0000-0000592e7ee6)
+    (at 130 85.75)
+    (path "/00000000-0000-0000-0000-0000592e1245")
+    (attr through_hole)
+    (fp_text reference "Y1" (at 0 2.2) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 6c262df1-bc2a-4a08-80a7-a3eeef5f5a25)
+    )
+    (fp_text value "25Mhz" (at 0 -2.15) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 8eb69d9a-167f-4c78-a9f4-21c9e5b75b5f)
+    )
+    (fp_line (start -0.75 1.25) (end 0.75 1.25) (layer "F.SilkS") (width 0.17) (tstamp 75ec6294-fc8f-4d1b-87a7-4d2182bd00d6))
+    (fp_line (start -0.75 -1.25) (end 0.75 -1.25) (layer "F.SilkS") (width 0.17) (tstamp e3c23297-5064-4fa6-9170-42da63255ee5))
+    (pad "1" smd rect locked (at -1.85 0) (size 1.7 2.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 24 "Net-(C11-Pad1)") (tstamp dad8a384-7d1b-4e6f-b99b-c4fad1476174))
+    (pad "2" smd rect locked (at 1.85 0) (size 1.7 2.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 23 "Net-(C10-Pad1)") (tstamp 7343607b-a2e9-4bf1-8d61-9e681d227eff))
+  )
+
+  (footprint "U:SO8N" (layer "F.Cu")
+    (tedit 57E93E6D) (tstamp 00000000-0000-0000-0000-00005b36197c)
+    (at 154.5 85.5 90)
+    (path "/00000000-0000-0000-0000-000057e3bdff")
+    (attr through_hole)
+    (fp_text reference "U2" (at 3.5 0.05 180) (layer "F.SilkS")
+      (effects (font (size 0.75 0.75) (thickness 0.15)))
+      (tstamp b076d6bf-4f74-462c-a978-48bbcab1e3cb)
+    )
+    (fp_text value "M24C32" (at 3.45 0 180) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 3c532f2a-a533-4685-93a6-d4554e46b316)
+    )
+    (fp_line (start -2.5 -1.75) (end 2.5 -1.75) (layer "F.SilkS") (width 0.15) (tstamp 0d45cc3a-c0a8-4c52-a8c5-b7d5ac421cac))
+    (fp_line (start 2.5 1.75) (end -2.5 1.75) (layer "F.SilkS") (width 0.15) (tstamp 0fd34d7c-5c87-4488-aa48-d0a634a9d530))
+    (fp_line (start -2.5 1.75) (end -2.5 -1.75) (layer "F.SilkS") (width 0.15) (tstamp 4f849c60-2e73-4738-9b46-df51824597ca))
+    (fp_line (start -2.5 -1.75) (end 2.5 -1.75) (layer "F.SilkS") (width 0.15) (tstamp cb5e6030-de2f-4fed-b483-4c6aeb364612))
+    (fp_line (start 2.5 -1.75) (end 2.5 1.75) (layer "F.SilkS") (width 0.15) (tstamp fd5ff243-6fae-4f3c-8852-30cafa75452d))
+    (fp_circle (center -1.95 1.35) (end -1.95 1.55) (layer "F.SilkS") (width 0.15) (fill none) (tstamp 67d09d98-8d2d-401e-b5c0-86c091229352))
+    (pad "1" smd rect locked (at -1.905 2.65 90) (size 0.6 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 0e5e1dbe-08da-4384-8627-d88e69608ee0))
+    (pad "2" smd rect locked (at -0.7 2.65 90) (size 0.6 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp edc28c63-7db3-4b85-a622-6b1a7d73d054))
+    (pad "3" smd rect locked (at 0.635 2.65 90) (size 0.6 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 643a5f8a-f7bb-4740-aadd-d6dfc70f74ce))
+    (pad "4" smd rect locked (at 1.905 2.65 90) (size 0.6 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 195b8f74-90f8-41ac-9eb9-8c069da4e011))
+    (pad "5" smd rect locked (at 1.905 -2.65 90) (size 0.6 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp 7ff6f7c9-0011-49b7-aa9c-c5d9e4a940d4))
+    (pad "6" smd rect locked (at 0.635 -2.65 90) (size 0.6 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 13 "/wc") (tstamp 93bc32d9-c55c-4c43-ba77-db0f50e2902b))
+    (pad "7" smd rect locked (at -0.635 -2.65 90) (size 0.6 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 11 "/sdl") (tstamp 1402e965-a8cd-4b79-855f-b4bacd8a69ca))
+    (pad "8" smd rect locked (at -1.905 -2.65 90) (size 0.6 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 12 "/sda") (tstamp d1d89df5-0629-4e24-8daf-b873b6c80ccf))
+  )
+
+  (footprint "LED:0805" (layer "F.Cu")
+    (tedit 5B0815A3) (tstamp 00000000-0000-0000-0000-00005b362acc)
+    (at 161 97.5 90)
+    (path "/00000000-0000-0000-0000-0000570e4326")
+    (attr through_hole)
+    (fp_text reference "D1" (at 0 1.6 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 86f8b829-044a-4333-9c16-181e1a554efd)
+    )
+    (fp_text value "rouge" (at 0 -1.8 90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 6b7e66b0-c873-465c-a31f-263d3603c928)
+    )
+    (fp_line (start -0.4 -0.6) (end -0.4 0.6) (layer "F.SilkS") (width 0.15) (tstamp 7ae3b895-bfc1-4ce0-a793-fed6b5ee4543))
+    (fp_line (start 1.1 -1.1) (end 1.1 -0.7) (layer "F.SilkS") (width 0.15) (tstamp b2159792-b6e6-4a29-8f52-903ae6de6768))
+    (fp_line (start 1.3 -0.9) (end 0.9 -0.9) (layer "F.SilkS") (width 0.15) (tstamp f0d1c501-caf4-43a9-8799-80b073be39d9))
+    (fp_line (start 0.4 -0.6) (end 0.4 0.6) (layer "F.SilkS") (width 0.15) (tstamp f747f9b4-8bcb-4588-9503-3a9cd4d3e8b7))
+    (pad "1" smd rect locked (at -1 0 90) (size 1 1.25) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp bf1e6e66-9e83-4230-895e-95392b408069))
+    (pad "2" smd rect locked (at 1 0 90) (size 1 1.25) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 6 "Net-(D1-Pad2)") (tstamp 76539ac9-5777-4087-bbd8-c187e22fc432))
+  )
+
+  (footprint "LED:0805" (layer "F.Cu")
+    (tedit 5B0815A3) (tstamp 00000000-0000-0000-0000-00005b362ad2)
+    (at 165 97.5 90)
+    (path "/00000000-0000-0000-0000-0000570e4516")
+    (attr through_hole)
+    (fp_text reference "D2" (at 0 1.6 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp a814c19c-c8b3-4a1b-b6fa-909fae514aa9)
+    )
+    (fp_text value "vert" (at 0 -1.8 90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp fbcd0105-c70e-431e-a8cb-b9330bf2dc73)
+    )
+    (fp_line (start 0.4 -0.6) (end 0.4 0.6) (layer "F.SilkS") (width 0.15) (tstamp 7494fc3e-a55c-439a-a1f1-baf6577b737c))
+    (fp_line (start -0.4 -0.6) (end -0.4 0.6) (layer "F.SilkS") (width 0.15) (tstamp 82741d99-0dff-4975-a79f-0aa5750e4ff1))
+    (fp_line (start 1.3 -0.9) (end 0.9 -0.9) (layer "F.SilkS") (width 0.15) (tstamp 9d582308-2bbd-4a52-a118-cf3d50be6b7d))
+    (fp_line (start 1.1 -1.1) (end 1.1 -0.7) (layer "F.SilkS") (width 0.15) (tstamp e483015e-e04c-4be4-b97d-f588e4432d6c))
+    (pad "1" smd rect locked (at -1 0 90) (size 1 1.25) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 0f2c626e-0062-4f3b-88f0-6d2f2f251df4))
+    (pad "2" smd rect locked (at 1 0 90) (size 1 1.25) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 7 "Net-(D2-Pad2)") (tstamp 3dde98d1-8355-4669-9119-c00841dfbae2))
+  )
+
+  (footprint "LED:0805" (layer "F.Cu")
+    (tedit 5B0815A3) (tstamp 00000000-0000-0000-0000-00005b3cc303)
+    (at 169 97.5 90)
+    (path "/00000000-0000-0000-0000-00005b3a77c2")
+    (attr through_hole)
+    (fp_text reference "D3" (at 0 1.6 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp dc180763-97d8-48e5-bbce-797d2a85878e)
+    )
+    (fp_text value "Orange" (at 0 -1.8 90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 466b60d6-8c8b-4129-abf3-30a4761dd877)
+    )
+    (fp_line (start -0.4 -0.6) (end -0.4 0.6) (layer "F.SilkS") (width 0.15) (tstamp 162269ed-6fbb-467b-9c1c-55c0ec1d9f48))
+    (fp_line (start 1.1 -1.1) (end 1.1 -0.7) (layer "F.SilkS") (width 0.15) (tstamp a3133de4-c785-4bd7-ad6d-691ae042006c))
+    (fp_line (start 1.3 -0.9) (end 0.9 -0.9) (layer "F.SilkS") (width 0.15) (tstamp d749c02c-2fd7-458a-b76e-907152df71ac))
+    (fp_line (start 0.4 -0.6) (end 0.4 0.6) (layer "F.SilkS") (width 0.15) (tstamp ed5aec57-2e9e-45af-97de-330080b442ec))
+    (pad "1" smd rect locked (at -1 0 90) (size 1 1.25) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp cadcda50-a942-48b3-aabb-30f07cee09ba))
+    (pad "2" smd rect locked (at 1 0 90) (size 1 1.25) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 44 "Net-(D3-Pad2)") (tstamp c9e36a86-82fb-40c5-9eb1-b1f166a1804b))
+  )
+
+  (footprint "Connector:Bornier2.54_1x6" (layer "F.Cu")
+    (tedit 5B3CCBFB) (tstamp 00000000-0000-0000-0000-00005b3cc3a2)
+    (at 158.65 53.75 180)
+    (path "/00000000-0000-0000-0000-0000570cfb57")
+    (attr through_hole)
+    (fp_text reference "P5" (at -8.89 0 270) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 7444f16f-fa4e-4d7d-835e-71b5b96d107b)
+    )
+    (fp_text value "CONN_01X06" (at 0 -3.81 180) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 4839f329-6fb7-48a2-970f-8169d2282e45)
+    )
+    (fp_line (start -7.85 -2.95) (end 7.85 -2.95) (layer "F.SilkS") (width 0.15) (tstamp 423df52e-754d-46b4-870f-8e5d69430144))
+    (fp_line (start -7.85 -2.95) (end -7.85 3.35) (layer "F.SilkS") (width 0.15) (tstamp 84b34a47-65f4-4661-a5c6-41dca18e595f))
+    (fp_line (start 7.85 -2.95) (end 7.85 3.35) (layer "F.SilkS") (width 0.15) (tstamp bdab7cf0-cbe2-4f41-ba72-406cf804756f))
+    (fp_line (start -7.85 3.35) (end 7.85 3.35) (layer "F.SilkS") (width 0.15) (tstamp e5c3fa69-d546-46b5-bd39-51389738be3f))
+    (fp_line (start 7.826 2.54) (end -7.874 2.54) (layer "F.SilkS") (width 0.15) (tstamp f65d3d60-381b-4907-a11a-75977d0f7607))
+    (pad "1" thru_hole rect locked (at -6.35 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 67 "/S1") (tstamp b06b9e42-64bd-4576-b57b-7c6043f981c3))
+    (pad "2" thru_hole circle locked (at -3.81 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 68 "/S2") (tstamp 2c01ace7-8235-4ba3-81e3-75f6ec96230f))
+    (pad "3" thru_hole circle locked (at -1.27 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 69 "/S3") (tstamp 5ef240dd-db61-4fd7-9c10-36ef0f62afc9))
+    (pad "4" thru_hole circle locked (at 1.27 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 70 "/S4") (tstamp 1eb261fd-167b-440c-adbe-971ee85b3274))
+    (pad "5" thru_hole circle locked (at 3.81 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 71 "/S5") (tstamp 6d757ecf-c814-4509-b043-8eb9ac4e52a8))
+    (pad "6" thru_hole circle locked (at 6.35 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 72 "/S6") (tstamp 29f3c2d7-5481-4e29-84f6-701e828f6474))
+  )
+
+  (footprint "U:ESP-12F" (layer "F.Cu")
+    (tedit 5B081BDD) (tstamp 00000000-0000-0000-0000-00005b3ce014)
+    (at 111 75)
+    (path "/00000000-0000-0000-0000-00005b362b9a")
+    (attr through_hole)
+    (fp_text reference "U5" (at 0 -13) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp f977e26c-d8d7-4d79-acf4-b225325a8773)
+    )
+    (fp_text value "ESP-12F" (at 0 -11) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 41dd283a-3503-43d0-8674-2bd9b739080a)
+    )
+    (fp_line (start -8 12) (end -8 -12) (layer "F.SilkS") (width 0.15) (tstamp 16fe81aa-5438-49f9-9d6f-e3768b0f0698))
+    (fp_line (start 8 -12) (end -8 -12) (layer "F.SilkS") (width 0.15) (tstamp 4af1ef66-97a2-4ff8-aa38-95a9db3a5c5a))
+    (fp_line (start -8 12) (end 8 12) (layer "F.SilkS") (width 0.15) (tstamp 50e1234f-de43-4a10-abba-06a38ec0b2ac))
+    (fp_line (start 8 12) (end 8 -12) (layer "F.SilkS") (width 0.15) (tstamp 73f98649-844f-4c23-bc55-0de0925c946c))
+    (pad "1" smd rect locked (at -8 -3.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 88 "Net-(R17-Pad1)") (tstamp 9bd7c587-fb2e-47d2-a265-0d697ff881b4))
+    (pad "2" smd rect locked (at -8 -1.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 51 "Net-(U5-Pad2)") (tstamp 9fbc4819-da56-417c-978d-ab13d01ae3cd))
+    (pad "3" smd rect locked (at -8 0.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 50 "Net-(R12-Pad1)") (tstamp 037e734a-47ed-480d-8b7f-bcd5f95473f0))
+    (pad "4" smd rect locked (at -8 2.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 52 "Net-(U5-Pad4)") (tstamp ca26b7ac-2d67-4187-91a6-f8ddaab598f0))
+    (pad "5" smd rect locked (at -8 4.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 53 "Net-(U5-Pad5)") (tstamp c400eec2-5d5b-4619-a5f7-1ddf8985484e))
+    (pad "6" smd rect locked (at -8 6.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 54 "Net-(U5-Pad6)") (tstamp 73beb6e9-cea5-4396-bd6a-143d5e18714f))
+    (pad "7" smd rect locked (at -8 8.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 55 "Net-(U5-Pad7)") (tstamp 652e2208-b8bd-4a4e-8eac-f5038c8c82e0))
+    (pad "8" smd rect locked (at -8 10.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp 4c41db28-4fad-4247-b400-59f614f8e361))
+    (pad "9" smd rect locked (at -5 12) (size 1.2 2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 84 "Net-(U5-Pad9)") (tstamp f7209f2d-9a82-47e0-a911-5efd27e94748))
+    (pad "10" smd rect locked (at -3 12) (size 1.2 2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 85 "Net-(U5-Pad10)") (tstamp 1eb6fb56-2bdb-4e0f-94fa-fa3b2652b6ec))
+    (pad "11" smd rect locked (at -1 12) (size 1.2 2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 56 "Net-(U5-Pad11)") (tstamp 86eae797-4bfb-4e0e-8c31-9843d8e0f017))
+    (pad "12" smd rect locked (at 1 12) (size 1.2 2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 57 "Net-(U5-Pad12)") (tstamp 009f2b76-a203-4614-94aa-f6e33558eada))
+    (pad "13" smd rect locked (at 3 12) (size 1.2 2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 86 "Net-(U5-Pad13)") (tstamp 446d6e37-398c-4b39-976a-5c072d160e99))
+    (pad "14" smd rect locked (at 5 12) (size 1.2 2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 87 "Net-(U5-Pad14)") (tstamp 1c70e415-4f26-47e4-90fd-720ef0e2c379))
+    (pad "15" smd rect locked (at 8 10.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 4631c83f-b5aa-47ac-bc3b-43b373f6ea22))
+    (pad "16" smd rect locked (at 8 8.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 77 "Net-(R11-Pad2)") (tstamp bdc039f4-b047-45b5-9c56-b19a1442a6d8))
+    (pad "17" smd rect locked (at 8 6.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 78 "Net-(R15-Pad1)") (tstamp dac239f0-cb9b-4782-9515-142838347511))
+    (pad "18" smd rect locked (at 8 4.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 64 "/mode") (tstamp 00a3ade4-7978-43fb-9ff0-631e4d61b0dc))
+    (pad "19" smd rect locked (at 8 2.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 58 "Net-(U5-Pad19)") (tstamp 0789c00f-12d3-41fc-a1b5-dbaa036f7051))
+    (pad "20" smd rect locked (at 8 0.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 59 "Net-(U5-Pad20)") (tstamp 365bfe6f-cc73-4175-9ec5-f449cd5660fc))
+    (pad "21" smd rect locked (at 8 -1.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 65 "/RX") (tstamp e071771d-432c-4cd2-bc1e-5c9974ce4e28))
+    (pad "22" smd rect locked (at 8 -3.5) (size 2 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 66 "/TX") (tstamp 2e0fd0f8-cc1d-4843-b9d5-6cef01e69fec))
+  )
+
+  (footprint "Connector:Bornier2.54_1x2" (layer "F.Cu")
+    (tedit 5CF66D1C) (tstamp 00000000-0000-0000-0000-00005b3ce0bf)
+    (at 186.5 63.75 90)
+    (path "/00000000-0000-0000-0000-000056c85860")
+    (attr through_hole)
+    (fp_text reference "P7" (at -0.05 -4.5 270) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.17)))
+      (tstamp 803b0890-378b-47f6-a22a-b2c2d5654766)
+    )
+    (fp_text value "Alim" (at 0 -4.318 90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 4146b690-2eea-4023-9703-81125d248ebe)
+    )
+    (fp_line (start -2.77 -2.95) (end 2.77 -2.95) (layer "F.SilkS") (width 0.15) (tstamp 22a2b3c8-cd67-4caa-9bb5-a38c01462543))
+    (fp_line (start 2.77 -2.95) (end 2.77 3.35) (layer "F.SilkS") (width 0.15) (tstamp 52cadbde-8501-4466-ac49-d3c93e5159ab))
+    (fp_line (start 2.77 2.286) (end -2.77 2.286) (layer "F.SilkS") (width 0.15) (tstamp 6baac4b3-4a4c-478c-933a-3ed1cd82e04b))
+    (fp_line (start -2.77 3.35) (end 2.77 3.35) (layer "F.SilkS") (width 0.15) (tstamp 8b6d7939-ed35-4e55-9314-7f8b60d87e34))
+    (fp_line (start -2.77 -2.95) (end -2.77 3.35) (layer "F.SilkS") (width 0.15) (tstamp d5907f00-53a9-49fd-a4b0-c10b2f237718))
+    (pad "1" thru_hole rect locked (at -1.27 0 90) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 2 "/GND") (tstamp 33a6b668-3644-4170-aefe-6d0af33c38fa))
+    (pad "2" thru_hole circle locked (at 1.27 0 90) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 3 "/12V") (tstamp cee5a9cd-8376-4904-b56e-df75fbee00ba))
+  )
+
+  (footprint "Connector:Bornier2.54_1x3" (layer "F.Cu")
+    (tedit 5CED3C55) (tstamp 00000000-0000-0000-0000-00005b3ce0cd)
+    (at 122.29 54 180)
+    (path "/00000000-0000-0000-0000-00005b3ae3c4")
+    (attr through_hole)
+    (fp_text reference "P10" (at -4.826 0 270) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp a3e6a18e-68e8-46c5-8718-b94dfbb38cf5)
+    )
+    (fp_text value "Thermometre" (at 0.09 -5.4 180) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 25a75435-981f-4a14-adc0-e29d6b659ac7)
+    )
+    (fp_line (start 4.04 -2.95) (end 4.04 3.35) (layer "F.SilkS") (width 0.15) (tstamp 11122277-35f3-463e-b86e-70f4760c5f41))
+    (fp_line (start 4.064 2.54) (end -4.016 2.54) (layer "F.SilkS") (width 0.15) (tstamp 397fe2c3-e5bb-4b36-994d-508b59bf7b1c))
+    (fp_line (start -4.04 -2.95) (end 4.04 -2.95) (layer "F.SilkS") (width 0.15) (tstamp 8cc25d4d-faad-47d1-912b-5d20ef4a17d6))
+    (fp_line (start -4.04 -2.95) (end -4.04 3.35) (layer "F.SilkS") (width 0.15) (tstamp a1a06f0d-fd74-4ede-ad21-9bfad3494ac7))
+    (fp_line (start -4.04 3.35) (end 4.04 3.35) (layer "F.SilkS") (width 0.15) (tstamp b8533421-d617-48e6-aa06-1a8ccf395108))
+    (pad "1" thru_hole rect locked (at -2.54 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 62 "/3.3V") (tstamp 39e37542-2158-4d85-8c1b-dd0b07a90dfd))
+    (pad "2" thru_hole circle locked (at 0 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 48 "/Themp") (tstamp e829f94a-bc4c-46f3-b9ff-9d0a9f0edbd9))
+    (pad "3" thru_hole circle locked (at 2.54 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 2 "/GND") (tstamp ceca92b6-f039-4594-8c82-58531a76fcd6))
+  )
+
+  (footprint "Connector:Bornier2.54_1x3" (layer "F.Cu")
+    (tedit 5CED3C5F) (tstamp 00000000-0000-0000-0000-00005b3ce0d4)
+    (at 132.21 53.75 180)
+    (path "/00000000-0000-0000-0000-00005b364cd7")
+    (attr through_hole)
+    (fp_text reference "P11" (at -4.826 0 270) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp f7a93df0-3f4d-4ae1-99aa-46166ef690ce)
+    )
+    (fp_text value "Ventilateur" (at 0.01 -5.85 180) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 423ad74d-6e87-4736-8283-a1ca649c3161)
+    )
+    (fp_line (start 4.064 2.54) (end -4.016 2.54) (layer "F.SilkS") (width 0.15) (tstamp 3e9180b3-f0db-49a1-9951-899d5fd060c3))
+    (fp_line (start -4.04 -2.95) (end -4.04 3.35) (layer "F.SilkS") (width 0.15) (tstamp 5b7c5d02-524f-40d1-84fe-e25ea87a97f0))
+    (fp_line (start 4.04 -2.95) (end 4.04 3.35) (layer "F.SilkS") (width 0.15) (tstamp 6a4aa5ab-e954-4e71-92c7-6fe646b20ce1))
+    (fp_line (start -4.04 3.35) (end 4.04 3.35) (layer "F.SilkS") (width 0.15) (tstamp a19337f2-c67c-4105-a1a3-a0b171e7be80))
+    (fp_line (start -4.04 -2.95) (end 4.04 -2.95) (layer "F.SilkS") (width 0.15) (tstamp cd1e0ba7-e67a-4d47-9fe2-0e95cc7d61a6))
+    (pad "1" thru_hole rect locked (at -2.54 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 3 "/12V") (tstamp 66191601-e03b-4060-8328-72c9e446a195))
+    (pad "2" thru_hole circle locked (at 0 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 49 "/CMD") (tstamp aa6c80f7-b235-42e6-8df1-daaebcd2fc43))
+    (pad "3" thru_hole circle locked (at 2.54 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 2 "/GND") (tstamp a6510930-db6b-4cad-ac24-e96836043121))
+  )
+
+  (footprint "Connector:Bornier2.54_1x3" (layer "F.Cu")
+    (tedit 5CED3C9E) (tstamp 00000000-0000-0000-0000-00005b3ce140)
+    (at 131.21 96.25)
+    (path "/00000000-0000-0000-0000-000059b166c5")
+    (attr through_hole)
+    (fp_text reference "P9" (at -4.826 0 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp d6e2083a-1a0a-4545-bda3-8a259660c9b6)
+    )
+    (fp_text value "I2C" (at 5.09 0.15 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp dceb27a8-aab1-4a72-8e14-8d755022a1da)
+    )
+    (fp_line (start -4.04 3.35) (end 4.04 3.35) (layer "F.SilkS") (width 0.15) (tstamp 4f9c7977-2202-4f4d-8056-49df676048d2))
+    (fp_line (start -4.04 -2.95) (end -4.04 3.35) (layer "F.SilkS") (width 0.15) (tstamp 6da2be2e-e699-4a40-becc-faad92d68d64))
+    (fp_line (start 4.064 2.54) (end -4.016 2.54) (layer "F.SilkS") (width 0.15) (tstamp b29b91e2-5bca-403a-9901-a8e37cf37b68))
+    (fp_line (start -4.04 -2.95) (end 4.04 -2.95) (layer "F.SilkS") (width 0.15) (tstamp cd6c6b2d-480b-436e-821a-ad3631d5e299))
+    (fp_line (start 4.04 -2.95) (end 4.04 3.35) (layer "F.SilkS") (width 0.15) (tstamp f216e69d-877d-4a90-b075-5b071d5954cc))
+    (pad "1" thru_hole rect locked (at -2.54 0) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 2 "/GND") (tstamp 8918d4b3-c7ae-4f58-bf2e-b2652ca39858))
+    (pad "2" thru_hole circle locked (at 0 0) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 43 "/I2C2_SDA") (tstamp bffe6a1e-9fc1-4a6c-adda-34a657be0dd6))
+    (pad "3" thru_hole circle locked (at 2.54 0) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 42 "/I2C2_SDL") (tstamp 6352f434-d7c7-46cf-bdb7-ef426455814d))
+  )
+
+  (footprint "Connector:Bornier2.54_1x4" (layer "F.Cu")
+    (tedit 5B3CCB63) (tstamp 00000000-0000-0000-0000-00005b3ce1c7)
+    (at 143.69 53.75 180)
+    (path "/00000000-0000-0000-0000-00005b3ce1cc")
+    (attr through_hole)
+    (fp_text reference "P6" (at -6.096 0 270) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 820a79e6-deb4-4741-b5c6-7617eb7ba760)
+    )
+    (fp_text value "CONN_01X04" (at 0 -3.81 180) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 1a35e9c3-672a-41e7-9cbc-969401215ee1)
+    )
+    (fp_line (start 5.31 2.54) (end -5.31 2.54) (layer "F.SilkS") (width 0.15) (tstamp 054580d4-d0ff-4b72-9a23-443b6a80fa22))
+    (fp_line (start -5.31 3.35) (end 5.31 3.35) (layer "F.SilkS") (width 0.15) (tstamp 0cf96453-877b-4ca9-bddf-ff0702177238))
+    (fp_line (start 5.31 -2.95) (end 5.31 3.35) (layer "F.SilkS") (width 0.15) (tstamp 1e96631f-9aa3-4ac6-925f-a53acf64d934))
+    (fp_line (start -5.31 -2.95) (end 5.31 -2.95) (layer "F.SilkS") (width 0.15) (tstamp 619d005f-2ba6-4a30-8c02-2b21a9b441ea))
+    (fp_line (start -5.31 -2.95) (end -5.31 3.35) (layer "F.SilkS") (width 0.15) (tstamp 70d45b4a-0de9-46ce-95e4-2ab44b9788f2))
+    (pad "1" thru_hole rect locked (at -3.81 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 73 "/S7") (tstamp 8bb7f66c-317d-44d8-bae2-5c4e3da349bb))
+    (pad "2" thru_hole circle locked (at -1.27 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 74 "/S8") (tstamp 1ea8a3d8-a407-4093-98fb-ab3cd79349dc))
+    (pad "3" thru_hole circle locked (at 1.27 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 75 "/S9") (tstamp 861b13ac-1583-4bac-b8fd-85defee7efce))
+    (pad "4" thru_hole circle locked (at 3.81 0 180) (size 1.524 1.524) (drill 0.9) (layers *.Cu *.Mask "F.SilkS")
+      (net 76 "/S10") (tstamp 3a674122-ee54-4b9c-a5d9-9693225170ae))
+  )
+
+  (footprint "SW:SW" (layer "F.Cu")
+    (tedit 5B3CE521) (tstamp 00000000-0000-0000-0000-00005b3ce2cb)
+    (at 143.5 92.5 180)
+    (path "/00000000-0000-0000-0000-00005b3d4e31")
+    (attr through_hole)
+    (fp_text reference "SW3" (at 0 1.42 180) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp eed6b8ad-9674-4651-9b99-2a05609e7610)
+    )
+    (fp_text value "aquit" (at 2 -2.58 270) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp dc2e8e6c-db63-4498-b558-aaf87674348a)
+    )
+    (fp_line (start 1.27 -0.635) (end -1.27 -0.635) (layer "F.SilkS") (width 0.15) (tstamp 01eb85ca-bb15-49d6-ae23-ba660af7c016))
+    (fp_line (start -1.27 -4.445) (end 1.27 -4.445) (layer "F.SilkS") (width 0.15) (tstamp 468b1413-1cf5-43f7-8af6-f48cc46b8c79))
+    (fp_line (start -1.27 -4.445) (end -1.27 -0.635) (layer "F.SilkS") (width 0.15) (tstamp 5a8c9522-90b1-4bf0-a914-c75d1521d239))
+    (fp_line (start 1.27 -4.445) (end 1.27 -0.635) (layer "F.SilkS") (width 0.15) (tstamp 6c854dcc-ea7b-4890-90e8-750d85d4476e))
+    (pad "1" smd rect locked (at 0 0 180) (size 1.524 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 60 "/aquit") (tstamp 4ca6b3b2-dc36-4276-a7d4-eb9c80778de8))
+    (pad "2" smd rect locked (at 0 -5.08 180) (size 1.524 1) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 6cd766d1-778f-4aab-97c8-0cfd0d10cc0f))
+  )
+
+  (footprint "C:CP_CMS4X5.8" (layer "F.Cu")
+    (tedit 5CED25D5) (tstamp 00000000-0000-0000-0000-00005ced3678)
+    (at 178.25 91.75 90)
+    (path "/00000000-0000-0000-0000-00005cf83309")
+    (attr through_hole)
+    (fp_text reference "C18" (at 4 0 180) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 79d33c7b-178b-4655-89f9-33373398fea8)
+    )
+    (fp_text value "1µF" (at 0 4 90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp ee4e4c0d-c167-4672-827a-420bafaaeb6c)
+    )
+    (fp_line (start -2.25 -2.75) (end -2.75 -2.25) (layer "F.SilkS") (width 0.17) (tstamp 243a8e1e-9559-48d9-b205-fce17a166853))
+    (fp_line (start -2.75 -2.25) (end -2.75 2.75) (layer "F.SilkS") (width 0.17) (tstamp 8257a5b0-7400-41ea-95fd-f8c671a73758))
+    (fp_line (start 2.75 2.75) (end 2.75 -2.25) (layer "F.SilkS") (width 0.17) (tstamp 9eb02f76-edf5-47ab-9c98-0da6d82dc22e))
+    (fp_line (start 2.25 -2.75) (end -2.25 -2.75) (layer "F.SilkS") (width 0.17) (tstamp afe3daf5-e954-4c3c-bf4b-9dca5369a0e1))
+    (fp_line (start 2.75 -2.25) (end 2.25 -2.75) (layer "F.SilkS") (width 0.17) (tstamp dfe27575-6243-4ed4-a96f-402d70a9913e))
+    (fp_line (start -2.75 2.75) (end 2.75 2.75) (layer "F.SilkS") (width 0.17) (tstamp e5343eb5-8511-48aa-a247-c73095158c26))
+    (pad "1" smd rect locked (at 0 -1.7 90) (size 1 2.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp c4494d70-a3a1-4947-9bda-62ae6b6754b5))
+    (pad "2" smd rect locked (at 0 1.7 90) (size 1 2.4) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 406b1b17-6bfd-4660-8676-da9c7a66491c))
+  )
+
+  (footprint "D:SMA" (layer "F.Cu")
+    (tedit 5CED31BF) (tstamp 00000000-0000-0000-0000-00005ced3684)
+    (at 186.5 89.75 90)
+    (path "/00000000-0000-0000-0000-00005cf8b24f")
+    (attr through_hole)
+    (fp_text reference "D4" (at 0 2.4 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.17)))
+      (tstamp f9ed9ee1-1029-42f0-93b4-3571d2ff9712)
+    )
+    (fp_text value "D" (at 0 -2.2 90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp c39f206b-6cbc-41c1-b326-64966000bcd3)
+    )
+    (fp_line (start -3.4 -2.6) (end -2.6 -2.6) (layer "F.SilkS") (width 0.17) (tstamp 10434842-1c99-4012-bb86-e5f161f6c64b))
+    (fp_line (start -3.4 -1.6) (end -3.4 1.6) (layer "F.SilkS") (width 0.17) (tstamp 1b217eaa-7e4e-4804-8e3a-f8dd9681148b))
+    (fp_line (start 3.4 1.2) (end -3.4 1.2) (layer "F.SilkS") (width 0.17) (tstamp 8e2b7c2a-ca50-4e21-b93d-407485f04a81))
+    (fp_line (start -3.4 -1.2) (end 3.4 -1.2) (layer "F.SilkS") (width 0.17) (tstamp adb722f0-b55f-4d9c-8331-960f41f4d31f))
+    (fp_line (start -3.4 1.2) (end -3.4 -1.2) (layer "F.SilkS") (width 0.17) (tstamp b3ebc19b-6c52-4a06-81ef-d4930333616d))
+    (fp_line (start 3.4 -1.2) (end 3.4 1.2) (layer "F.SilkS") (width 0.17) (tstamp ebcf691f-40e6-4ab7-95c9-954f01ea3da4))
+    (pad "1" smd rect locked (at -2 0 90) (size 2.5 1.7) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp aa87edca-0c76-48ea-8794-ae7e3478eeba))
+    (pad "2" smd rect locked (at 2 0 90) (size 2.5 1.7) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 63 "Net-(C5-Pad1)") (tstamp bc8175dd-2588-4915-b428-ddcf0bddf2e8))
+  )
+
+  (footprint "Jumper:Jumper_2.54mm" (layer "F.Cu")
+    (tedit 5CED3C7E) (tstamp 00000000-0000-0000-0000-00005ced369e)
+    (at 93 83 90)
+    (path "/00000000-0000-0000-0000-00005cf26828")
+    (attr through_hole)
+    (fp_text reference "SJ1" (at 0 2.54 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp b17e0927-3831-4225-a2e6-399078869b02)
+    )
+    (fp_text value "Mode" (at -4 0 180) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp bb40f86f-4356-4213-81db-d195fce8b3c4)
+    )
+    (fp_line (start -3.048 1.524) (end -3.048 -1.524) (layer "F.SilkS") (width 0.15) (tstamp 11ad6652-015f-41ce-b657-a54494aef643))
+    (fp_line (start 3.048 -1.524) (end 3.048 1.524) (layer "F.SilkS") (width 0.15) (tstamp 5451d52d-3f62-4317-b212-2fba370a03ec))
+    (fp_line (start 3.048 1.524) (end -3.048 1.524) (layer "F.SilkS") (width 0.15) (tstamp 89771b75-4de3-450a-a303-dd3e55c0a371))
+    (fp_line (start -3.048 -1.524) (end 3.048 -1.524) (layer "F.SilkS") (width 0.15) (tstamp acc734aa-5cb3-47cd-be48-1b6d0343f710))
+    (pad "1" thru_hole rect locked (at -1.27 0 90) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask)
+      (net 64 "/mode") (tstamp 11a0faea-3592-41a9-9ccf-2229c823f846))
+    (pad "2" thru_hole circle locked (at 1.27 0 90) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask)
+      (net 2 "/GND") (tstamp 5cc36719-f2b8-4ea9-8c9c-3497cf9ee00b))
+  )
+
+  (footprint "C:3216-18" (layer "F.Cu")
+    (tedit 5E428BE1) (tstamp 00000000-0000-0000-0000-00005ced41e1)
+    (at 180 72 90)
+    (path "/00000000-0000-0000-0000-0000570673a6")
+    (attr through_hole)
+    (fp_text reference "C4" (at 4 0 180) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp f7dfa137-5153-499e-8b02-02680a214c79)
+    )
+    (fp_text value "100nF" (at 0 -2.8 90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp bf4d498c-688a-4fbc-9df7-ecd84f2b8a18)
+    )
+    (fp_line (start 2.5 -0.75) (end -2.5 -0.75) (layer "F.SilkS") (width 0.17) (tstamp 15fd4515-6aca-4bce-af7e-5e853a0d918a))
+    (fp_line (start -2.5 -0.75) (end -2.5 0.75) (layer "F.SilkS") (width 0.17) (tstamp 1bb56f7b-2d22-4613-851e-ebd8371765a3))
+    (fp_line (start -2.5 0.75) (end 2.5 0.75) (layer "F.SilkS") (width 0.17) (tstamp 53ff1513-ac21-4972-af90-2cc2674e29c0))
+    (fp_line (start -1.25 -1.75) (end -1.25 -1.25) (layer "F.SilkS") (width 0.17) (tstamp 93f4e5c0-2df9-4c9b-8a46-510c0b3d9010))
+    (fp_line (start -1.5 -1.5) (end -1 -1.5) (layer "F.SilkS") (width 0.17) (tstamp 9bbeff24-f28f-4aaa-8852-5adf5d30c6f5))
+    (fp_line (start -2.5 -1.25) (end -2.5 1.25) (layer "F.SilkS") (width 0.17) (tstamp a5ad9d54-6bc8-480b-bf7f-56d02a7da340))
+    (fp_line (start 2.5 0.75) (end 2.5 -0.75) (layer "F.SilkS") (width 0.17) (tstamp a5ecc0d2-e7ba-4b18-8052-c5bd83006ecd))
+    (pad "1" smd rect locked (at -1.41 0 90) (size 2.2 1.35) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 3 "/12V") (tstamp e5d56a72-4bc2-4ab4-b532-ecf56fbc9149))
+    (pad "2" smd rect locked (at 1.41 0 90) (size 2.2 1.35) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp b66ecf13-0e09-4d11-97d2-eadf9a622438))
+  )
+
+  (footprint "MH:MH3mm" (layer "F.Cu")
+    (tedit 5CED36FF) (tstamp 00000000-0000-0000-0000-00005ced4226)
+    (at 93 97)
+    (descr "module Non Plated Through Hole")
+    (tags "DEV")
+    (path "/00000000-0000-0000-0000-000057237c51")
+    (attr through_hole)
+    (fp_text reference "P1" (at -3.81 2.54) (layer "Cmts.User") hide
+      (effects (font (size 0.75 0.7) (thickness 0.17)))
+      (tstamp dd19a7d3-6cb6-476c-8352-a4e38de6f092)
+    )
+    (fp_text value "MH" (at 0 0) (layer "Cmts.User") hide
+      (effects (font (size 0.75 0.7) (thickness 0.17)))
+      (tstamp ceb8172c-4eff-4bab-bdd6-82130c0b0b9e)
+    )
+    (pad "" np_thru_hole circle locked (at 0 0) (size 3.5 3.5) (drill 3.1) (layers *.Cu *.Mask) (tstamp 989e8170-0289-4220-a4cc-f37848bead5d))
+  )
+
+  (footprint "MH:MH3mm" (layer "F.Cu")
+    (tedit 5CE7D073) (tstamp 00000000-0000-0000-0000-00005ced422a)
+    (at 187 53)
+    (descr "module Non Plated Through Hole")
+    (tags "DEV")
+    (path "/00000000-0000-0000-0000-000057237cc8")
+    (attr through_hole)
+    (fp_text reference "P2" (at -3.81 2.54) (layer "Cmts.User") hide
+      (effects (font (size 0.75 0.7) (thickness 0.17)))
+      (tstamp f47d3b41-13bf-4270-8588-dae2c6b84902)
+    )
+    (fp_text value "MH" (at 0 0) (layer "Cmts.User") hide
+      (effects (font (size 0.75 0.7) (thickness 0.17)))
+      (tstamp 8ad66afc-d692-418f-a4bd-2d70e1337a1c)
+    )
+    (pad "" np_thru_hole circle locked (at 0 0) (size 3.5 3.5) (drill 3.1) (layers *.Cu *.Mask) (tstamp a57654d2-876b-43f4-934e-b72a93dc64f9))
+  )
+
+  (footprint "MH:MH3mm" (layer "F.Cu")
+    (tedit 5CE7D073) (tstamp 00000000-0000-0000-0000-00005ced422e)
+    (at 187 97)
+    (descr "module Non Plated Through Hole")
+    (tags "DEV")
+    (path "/00000000-0000-0000-0000-000057237b4f")
+    (attr through_hole)
+    (fp_text reference "P3" (at -3.81 2.54) (layer "Cmts.User") hide
+      (effects (font (size 0.75 0.7) (thickness 0.17)))
+      (tstamp 47e20d15-0ddd-43bc-9ada-218ae291edb4)
+    )
+    (fp_text value "MH" (at 0 0) (layer "Cmts.User") hide
+      (effects (font (size 0.75 0.7) (thickness 0.17)))
+      (tstamp 9100dba0-84ec-479a-898a-674304ce8e4d)
+    )
+    (pad "" np_thru_hole circle locked (at 0 0) (size 3.5 3.5) (drill 3.1) (layers *.Cu *.Mask) (tstamp 493875f3-dc1b-4e93-98ab-f5c68fd76cfb))
+  )
+
+  (footprint "MH:MH3mm" (layer "F.Cu")
+    (tedit 5CE7D073) (tstamp 00000000-0000-0000-0000-00005ced4232)
+    (at 93 53)
+    (descr "module Non Plated Through Hole")
+    (tags "DEV")
+    (path "/00000000-0000-0000-0000-000057237bda")
+    (attr through_hole)
+    (fp_text reference "P4" (at -3.81 2.54) (layer "Cmts.User") hide
+      (effects (font (size 0.75 0.7) (thickness 0.17)))
+      (tstamp 2d467f0e-03bf-465f-aa49-1e6ceeca4091)
+    )
+    (fp_text value "MH" (at 0 0) (layer "Cmts.User") hide
+      (effects (font (size 0.75 0.7) (thickness 0.17)))
+      (tstamp 5470c7fc-475d-4686-99c8-969b174b0f76)
+    )
+    (pad "" np_thru_hole circle locked (at 0 0) (size 3.5 3.5) (drill 3.1) (layers *.Cu *.Mask) (tstamp 09aaaace-59a3-4dd3-aa43-39a98b76d7c2))
+  )
+
+  (footprint "Connector:PinHeader2.54_1X5" (layer "F.Cu")
+    (tedit 58063FB0) (tstamp 00000000-0000-0000-0000-00005ced4236)
+    (at 131 64)
+    (path "/00000000-0000-0000-0000-000057062f1c")
+    (attr through_hole)
+    (fp_text reference "P8" (at 0 2.032) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp b59b05ff-91eb-434f-9984-715f507ee2ad)
+    )
+    (fp_text value "Debug" (at 0 -1.905) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 65c25d6c-ba0e-48a3-b272-2a1b74faf1b6)
+    )
+    (fp_line (start -6.223 1.143) (end 6.35 1.143) (layer "F.SilkS") (width 0.15) (tstamp 1334562c-8bb3-4097-a0b5-54523f878dfd))
+    (fp_line (start -5.207 -1.778) (end -5.207 -1.651) (layer "F.SilkS") (width 0.15) (tstamp 157069ef-51e7-4632-91c1-2aa9cd36c861))
+    (fp_line (start -5.461 1.778) (end -5.207 1.778) (layer "F.SilkS") (width 0.15) (tstamp 1a02b429-d8a4-4e92-8833-b2fb3561f99b))
+    (fp_line (start -4.953 -1.905) (end -5.207 -1.524) (layer "F.SilkS") (width 0.15) (tstamp 1d821422-ee04-4e06-bdae-fb55537249c0))
+    (fp_line (start -5.334 1.524) (end -5.334 1.651) (layer "F.SilkS") (width 0.15) (tstamp 2d801c78-9092-4e8a-acb3-fe94bc5ecae2))
+    (fp_line (start -5.08 -1.778) (end -5.334 -1.778) (layer "F.SilkS") (width 0.15) (tstamp 6e453ee0-0897-4598-993b-eff6a81ba818))
+    (fp_line (start -5.461 -1.905) (end -4.953 -1.905) (layer "F.SilkS") (width 0.15) (tstamp 73bd6889-6303-4e54-9997-c3fe0ac2753f))
+    (fp_line (start -5.207 1.778) (end -5.334 1.524) (layer "F.SilkS") (width 0.15) (tstamp 76acf809-c4c0-4ac0-8009-2a0177ced59f))
+    (fp_line (start -6.223 -1.143) (end -6.223 1.143) (layer "F.SilkS") (width 0.15) (tstamp 7a1af558-663d-44fc-a6ac-9add2bd82814))
+    (fp_line (start -5.207 -1.651) (end -5.08 -1.778) (layer "F.SilkS") (width 0.15) (tstamp 95613b2d-23f8-482e-a5f8-d24756bb81b4))
+    (fp_line (start -5.207 -1.524) (end -5.461 -1.905) (layer "F.SilkS") (width 0.15) (tstamp b1fb05d9-da9d-48f2-a1ef-91f65605079f))
+    (fp_line (start 6.35 1.143) (end 6.35 -1.143) (layer "F.SilkS") (width 0.15) (tstamp b8fa8f2e-e1fb-48d7-8b37-1424464b257a))
+    (fp_line (start -5.334 1.524) (end -5.461 1.778) (layer "F.SilkS") (width 0.15) (tstamp efaf869d-668f-4950-b4d0-7308d6513d84))
+    (fp_line (start 6.35 -1.143) (end -6.223 -1.143) (layer "F.SilkS") (width 0.15) (tstamp f1a71be8-2084-4da7-bd1a-4407d9b24997))
+    (pad "1" thru_hole circle locked (at -5.08 0) (size 2 2) (drill 1) (layers *.Cu *.Mask "F.SilkS")
+      (net 62 "/3.3V") (tstamp b319e2da-7527-49e1-bab1-c810485a8c22))
+    (pad "2" thru_hole circle locked (at -2.54 0) (size 2 2) (drill 1) (layers *.Cu *.Mask "F.SilkS")
+      (net 8 "/swclk") (tstamp 9b4b2f87-e165-4291-bd03-5d9edfc5c0ba))
+    (pad "3" thru_hole circle locked (at 0 0) (size 2 2) (drill 1) (layers *.Cu *.Mask "F.SilkS")
+      (net 2 "/GND") (tstamp d9b1b44a-8cf6-4fbc-9cdb-0067555ba50d))
+    (pad "4" thru_hole circle locked (at 2.54 0) (size 2 2) (drill 1) (layers *.Cu *.Mask "F.SilkS")
+      (net 9 "/swdio") (tstamp 8ddc36a5-ec46-4079-b885-2819ca9edba0))
+    (pad "5" thru_hole circle locked (at 5.08 0) (size 2 2) (drill 1) (layers *.Cu *.Mask "F.SilkS")
+      (net 4 "/nrst") (tstamp ca16da60-badc-4e53-9125-128063a547ba))
+  )
+
+  (footprint "R:0805" (layer "F.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced425c)
+    (at 161 94 90)
+    (path "/00000000-0000-0000-0000-0000570e42c5")
+    (attr through_hole)
+    (fp_text reference "R1" (at 2 0 180) (layer "F.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)))
+      (tstamp e72a1a15-1c74-4339-bf05-271dfbeca92a)
+    )
+    (fp_text value "100" (at -0.875 0 180) (layer "F.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)))
+      (tstamp 9913cfdd-d778-4dd1-911a-c99c145cc640)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "F.SilkS") (width 0.17) (tstamp 728ca40a-ae3c-48e4-bbf2-bf72ed53e6c9))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "F.SilkS") (width 0.17) (tstamp a2822e12-aa8b-44ed-bf63-320736dd945b))
+    (pad "1" smd rect locked (at -0.875 0 90) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 6 "Net-(D1-Pad2)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp a0112db2-0592-411c-affd-c6687d521ede))
+    (pad "2" smd rect locked (at 0.875 0 90) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 45 "/L_rouge") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp e8166c04-8c74-4c7c-ae24-a0f806bddfd7))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "F.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced4263)
+    (at 165 94 90)
+    (path "/00000000-0000-0000-0000-0000570e4510")
+    (attr through_hole)
+    (fp_text reference "R2" (at 2 0 180) (layer "F.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)))
+      (tstamp 919faf27-b222-495f-b267-70592c2acfd0)
+    )
+    (fp_text value "100" (at -0.875 0 180) (layer "F.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)))
+      (tstamp 5ca9b9f0-89a2-4594-aa85-6f0ae2d6d7ae)
+    )
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "F.SilkS") (width 0.17) (tstamp 263ed009-b399-4f33-a120-b585cf8722ce))
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "F.SilkS") (width 0.17) (tstamp 30da25c5-981f-451e-9d7a-08524fb22a09))
+    (pad "1" smd rect locked (at -0.875 0 90) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 7 "Net-(D2-Pad2)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 7fa544c5-a6ca-4b06-8de9-46e091b3c925))
+    (pad "2" smd rect locked (at 0.875 0 90) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 46 "/L_vert") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 47bd4be9-e16e-471a-a2af-566031e0e1f2))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" locked (layer "F.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced427f)
+    (at 186 80 180)
+    (path "/00000000-0000-0000-0000-000056c84a2e")
+    (attr through_hole)
+    (fp_text reference "R6" (at -3 0 270) (layer "F.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)))
+      (tstamp 9229ff2f-9f7d-4816-b0bb-02cde66fc770)
+    )
+    (fp_text value "510" (at -0.875 0 270) (layer "F.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)))
+      (tstamp 758be2bb-9097-4193-a644-042e0898d6b4)
+    )
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "F.SilkS") (width 0.17) (tstamp 87e8273e-39a7-4032-9f1d-366387962006))
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "F.SilkS") (width 0.17) (tstamp d69c0e2f-0c0d-4dba-a1fa-0263e3c2697f))
+    (pad "1" smd rect locked (at -0.875 0 180) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 63 "Net-(C5-Pad1)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 3a2a118b-62e7-49df-b70c-5cd8785e8581))
+    (pad "2" smd rect locked (at 0.875 0 180) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp f0e039ae-ebf6-49a3-b1fa-40f060a51c01))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "F.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced4286)
+    (at 186 83)
+    (path "/00000000-0000-0000-0000-000056c84a83")
+    (attr through_hole)
+    (fp_text reference "R7" (at 3 0 90) (layer "F.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)))
+      (tstamp 9fce7c19-5590-4850-87e9-2c1db497b829)
+    )
+    (fp_text value "330" (at -0.875 0 90) (layer "F.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)))
+      (tstamp bfee180d-0264-41f5-9ae9-1e80bbfca689)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "F.SilkS") (width 0.17) (tstamp aa8e4b67-6e7e-4b9c-8ede-0029156b46d5))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "F.SilkS") (width 0.17) (tstamp d11ee315-d449-47d3-9baa-d5accbf5e1e5))
+    (pad "1" smd rect locked (at -0.875 0) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp dfe97303-ca89-4f0a-952d-178ec893deee))
+    (pad "2" smd rect locked (at 0.875 0) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 63 "Net-(C5-Pad1)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp d9aa9943-447a-4d6f-aa2f-1665b7331b77))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "F.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced42b0)
+    (at 169 94 90)
+    (path "/00000000-0000-0000-0000-00005b3a7872")
+    (attr through_hole)
+    (fp_text reference "R13" (at 2 0 180) (layer "F.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)))
+      (tstamp 69dd40a6-6636-409f-95a7-4dbd9f7b1248)
+    )
+    (fp_text value "100" (at -0.875 0 180) (layer "F.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)))
+      (tstamp b0b22d72-4fd2-4577-bb1b-e57abbcf0333)
+    )
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "F.SilkS") (width 0.17) (tstamp 4ea66193-8a6e-47ff-b8fc-85eb670418e3))
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "F.SilkS") (width 0.17) (tstamp fad4e7bb-250a-4979-a5a0-8716a570655d))
+    (pad "1" smd rect locked (at -0.875 0 90) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 44 "Net-(D3-Pad2)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 994dfc71-4b28-4931-a308-7dadc7862bb8))
+    (pad "2" smd rect locked (at 0.875 0 90) (size 0.85 1.5) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 47 "/L_orange") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 586f4993-a235-4968-9669-3291e5db2429))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:CP_CMS5X5.8" (layer "F.Cu")
+    (tedit 5CED2D4D) (tstamp 00000000-0000-0000-0000-00005ced4785)
+    (at 186 72 -90)
+    (path "/00000000-0000-0000-0000-000056c84ad6")
+    (attr through_hole)
+    (fp_text reference "C5" (at 4 0) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp c4c5351f-e2be-4e43-8dd6-b35a52a25ad0)
+    )
+    (fp_text value "10µF" (at 0 3.75 -90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp b6f63473-328e-40a1-b9b0-f2955fcf86c2)
+    )
+    (fp_line (start -3 -2.25) (end -3 2.75) (layer "F.SilkS") (width 0.17) (tstamp 24208317-debc-431c-9c59-6372bf627ade))
+    (fp_line (start 3 -2.25) (end 3 2.75) (layer "F.SilkS") (width 0.17) (tstamp 794abfc2-120c-480a-be06-d35a534cc72c))
+    (fp_line (start -2.5 -2.75) (end 2.5 -2.75) (layer "F.SilkS") (width 0.17) (tstamp 7eafe5c4-1660-4bdf-ad89-fe8717a8c94b))
+    (fp_line (start -2.5 -2.75) (end -3 -2.25) (layer "F.SilkS") (width 0.17) (tstamp b7832ffb-ccb0-41d8-8bf9-dd9c3a96b232))
+    (fp_line (start 2.5 -2.75) (end 3 -2.25) (layer "F.SilkS") (width 0.17) (tstamp ecaff83c-6da6-4314-b33c-49c0274d9d96))
+    (fp_line (start 3 2.75) (end -3 2.75) (layer "F.SilkS") (width 0.17) (tstamp ff132885-c519-4771-ab51-c51dd364e316))
+    (pad "1" smd rect locked (at 0 -1.8 270) (size 1 2.3) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 63 "Net-(C5-Pad1)") (tstamp 374a571a-1464-4b6c-a02c-bbef284f3a3c))
+    (pad "2" smd rect locked (at 0 1.8 270) (size 1 2.3) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp cc812a0b-fc39-4e2c-8fff-523f5f522ef5))
+  )
+
+  (footprint "Connector:PinHeader2.54_1X3" (layer "F.Cu")
+    (tedit 5E427FF0) (tstamp 00000000-0000-0000-0000-00005e42821a)
+    (at 93.3 73.1 90)
+    (path "/00000000-0000-0000-0000-00005cf95433")
+    (attr through_hole)
+    (fp_text reference "P12" (at 0.1 -2.1 90) (layer "F.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp c598fddc-15bd-4bd3-b100-50e2f3031605)
+    )
+    (fp_text value "ProgESP" (at 0 -1.905 90) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp 69df8b33-a855-4da3-bf39-725cd1185830)
+    )
+    (fp_line (start 4.445 1.27) (end 4.445 -1.27) (layer "F.SilkS") (width 0.15) (tstamp 0d604c64-3672-40a2-a8c3-13b66b65ab11))
+    (fp_line (start -2.677 -1.651) (end -2.55 -1.778) (layer "F.SilkS") (width 0.15) (tstamp 206f202e-be6b-4814-a89d-a24c63878370))
+    (fp_line (start 4.445 -1.27) (end -3.81 -1.27) (layer "F.SilkS") (width 0.15) (tstamp 266526c2-43ad-4fd6-b156-885d9b75b66e))
+    (fp_line (start -2.931 -1.905) (end -2.423 -1.905) (layer "F.SilkS") (width 0.15) (tstamp 695cdbad-af61-4f39-b306-e528e09831fe))
+    (fp_line (start -2.677 -1.524) (end -2.931 -1.905) (layer "F.SilkS") (width 0.15) (tstamp ae90b9f8-fac4-43fc-a088-1a567c00b4cd))
+    (fp_line (start -3.81 1.27) (end 4.445 1.27) (layer "F.SilkS") (width 0.15) (tstamp b0f99859-6ec0-45fd-8567-a009859ef94f))
+    (fp_line (start -2.423 -1.905) (end -2.677 -1.524) (layer "F.SilkS") (width 0.15) (tstamp bc0a62c3-7fdc-472d-b3d6-4508c3933b79))
+    (fp_line (start -2.55 -1.778) (end -2.804 -1.778) (layer "F.SilkS") (width 0.15) (tstamp c6eae9ec-fec3-4b3f-bd8a-0ba52921eebe))
+    (fp_line (start -3.81 -1.27) (end -3.81 1.27) (layer "F.SilkS") (width 0.15) (tstamp d17187af-c085-4925-a66b-dd4f878ee58a))
+    (fp_line (start -2.677 -1.778) (end -2.677 -1.651) (layer "F.SilkS") (width 0.15) (tstamp fe0a8802-da27-4ee4-822f-88702bf43fbe))
+    (pad "1" thru_hole circle locked (at -2.54 0 90) (size 2 2) (drill 1) (layers *.Cu *.Mask "F.SilkS")
+      (net 2 "/GND") (tstamp d6fe4049-300c-4e19-972a-c84e9ad3f8bd))
+    (pad "2" thru_hole circle locked (at 0 0 90) (size 2 2) (drill 1) (layers *.Cu *.Mask "F.SilkS")
+      (net 65 "/RX") (tstamp 4aac45da-a265-4ccf-86f8-cf47970bd9f1))
+    (pad "3" thru_hole circle locked (at 2.54 0 90) (size 2 2) (drill 1) (layers *.Cu *.Mask "F.SilkS")
+      (net 66 "/TX") (tstamp c40ed1ab-1f85-44b0-aa12-bf6e24a3849a))
+  )
+
+  (footprint "U:LQFP64" (layer "F.Cu")
+    (tedit 592D6E71) (tstamp 00000000-0000-0000-0000-00006034bf5a)
+    (at 131.5 75.25)
+    (path "/00000000-0000-0000-0000-0000592dbf4d")
+    (attr through_hole)
+    (fp_text reference "U1" (at -6 5.8 90) (layer "F.SilkS")
+      (effects (font (size 0.9 0.7) (thickness 0.17)))
+      (tstamp a55c9f93-d266-445d-860b-2ded72794cb6)
+    )
+    (fp_text value "STM32F401RC" (at 0 0) (layer "F.Fab")
+      (effects (font (size 1 1) (thickness 0.15)))
+      (tstamp a2b5ed9b-005b-4d20-9964-01ce8b06f718)
+    )
+    (fp_line (start -5 -5) (end -5 5) (layer "F.SilkS") (width 0.17) (tstamp 321b44e5-cf05-4a6b-b38c-d777e6741c8b))
+    (fp_line (start 5 -5) (end 5 5) (layer "F.SilkS") (width 0.17) (tstamp 489cd0c9-95bc-4499-b0d2-b6b02d07cd41))
+    (fp_line (start -5 5) (end 5 5) (layer "F.SilkS") (width 0.17) (tstamp 4a4482e6-6285-461e-a275-3e3b11fa5266))
+    (fp_line (start 5 -5) (end -5 -5) (layer "F.SilkS") (width 0.17) (tstamp ae0b05f7-6cfc-40d2-a35b-f0cdb66d70fd))
+    (fp_circle (center -3.75 4.5) (end -3.6 4.5) (layer "F.SilkS") (width 0.17) (fill none) (tstamp 2118b831-bc83-4d1a-80bb-0e647e375a24))
+    (pad "1" smd rect locked (at -3.75 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 31 "Net-(U1-Pad1)") (tstamp cd6c8f76-4f19-479f-bf61-69a0677b8583))
+    (pad "2" smd rect locked (at -3.25 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 35 "Net-(U1-Pad2)") (tstamp 0054ba32-3464-4ef3-b0e1-692acb970bfe))
+    (pad "3" smd rect locked (at -2.75 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 13 "/wc") (tstamp 9969b075-08ed-40ad-88ef-62e3649b8b9b))
+    (pad "4" smd rect locked (at -2.25 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 61 "Net-(U1-Pad4)") (tstamp b2b797c2-13ac-496d-accb-3a0e40415cf2))
+    (pad "5" smd rect locked (at -1.75 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 24 "Net-(C11-Pad1)") (tstamp 1bae4ee3-94f7-4be3-b25a-97f297bea6af))
+    (pad "6" smd rect locked (at -1.25 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 23 "Net-(C10-Pad1)") (tstamp c8365291-cde4-42d9-ab75-fabf6fcd8252))
+    (pad "7" smd rect locked (at -0.75 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 4 "/nrst") (tstamp 4605c1c1-554f-4b3f-b533-136a4e57d967))
+    (pad "8" smd rect locked (at -0.25 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 32 "Net-(U1-Pad8)") (tstamp fab0afd8-92d8-4b0f-b7da-b6fbc767e883))
+    (pad "9" smd rect locked (at 0.25 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 33 "Net-(U1-Pad9)") (tstamp 1e05b473-0293-451d-8f4f-3927783dce82))
+    (pad "10" smd rect locked (at 0.75 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 34 "Net-(U1-Pad10)") (tstamp 2cf9cd5c-0946-4c81-bf47-533a81e324ea))
+    (pad "11" smd rect locked (at 1.25 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 21 "Net-(U1-Pad11)") (tstamp 74b4ecbb-c80f-4ed8-bbf3-994438c7bab0))
+    (pad "12" smd rect locked (at 1.75 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp a328a53d-d10b-430d-9fe1-969ebbcb69c4))
+    (pad "13" smd rect locked (at 2.25 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp fef6b610-1cf5-403c-90ae-b8ab6517cf2b))
+    (pad "14" smd rect locked (at 2.75 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 60 "/aquit") (tstamp 33946074-2045-472a-a517-266dc6d928b6))
+    (pad "15" smd rect locked (at 3.25 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 49 "/CMD") (tstamp f2405831-86b9-45bf-bace-ef5e046e776b))
+    (pad "16" smd rect locked (at 3.75 5.75) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 67 "/S1") (tstamp 5d21fc4e-946b-44db-8950-472c27deb2dc))
+    (pad "17" smd rect locked (at 5.75 3.75 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 68 "/S2") (tstamp ccd5edb7-2390-4297-bcec-f9980531ef3f))
+    (pad "18" smd rect locked (at 5.75 3.25 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 7daf85e7-b969-416d-b73b-7a37111cd836))
+    (pad "19" smd rect locked (at 5.75 2.75 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp e8f0e36e-cd71-443a-8b85-594c92437517))
+    (pad "20" smd rect locked (at 5.75 2.25 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 48 "/Themp") (tstamp 24ed8335-cc4d-4386-b273-4e4fd3e1ccf2))
+    (pad "21" smd rect locked (at 5.75 1.75 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 79 "Net-(U1-Pad21)") (tstamp 7404a572-b73b-4ce1-9f88-832390135133))
+    (pad "22" smd rect locked (at 5.75 1.25 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 69 "/S3") (tstamp 67c1374f-94e0-4454-8a6a-949e11886b35))
+    (pad "23" smd rect locked (at 5.75 0.75 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 70 "/S4") (tstamp e2149281-0405-4034-bb3a-5c6bee913029))
+    (pad "24" smd rect locked (at 5.75 0.25 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 80 "Net-(U1-Pad24)") (tstamp b1f09874-bb63-4557-a41d-29bfe8676172))
+    (pad "25" smd rect locked (at 5.75 -0.25 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 81 "Net-(U1-Pad25)") (tstamp 7bb6474b-03c8-4b3c-8196-c053fc5593c3))
+    (pad "26" smd rect locked (at 5.75 -0.75 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 71 "/S5") (tstamp 21d04e6d-4cf0-4dda-bba7-cb8daf050ad6))
+    (pad "27" smd rect locked (at 5.75 -1.25 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 72 "/S6") (tstamp 0f50b40b-1678-448f-8358-0e01939af9b6))
+    (pad "28" smd rect locked (at 5.75 -1.75 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 10 "/mfp") (tstamp 46ef7114-232c-4f96-930d-e03c56e34005))
+    (pad "29" smd rect locked (at 5.75 -2.25 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 42 "/I2C2_SDL") (tstamp b2faa0ce-4c08-4f03-8c94-76feb112b04d))
+    (pad "30" smd rect locked (at 5.75 -2.75 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 25 "Net-(C12-Pad1)") (tstamp d27e26ca-c275-45dd-bc9f-5fb21b5eb82f))
+    (pad "31" smd rect locked (at 5.75 -3.25 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp c5ec2778-fd1f-4963-9d31-8a51d260e95c))
+    (pad "32" smd rect locked (at 5.75 -3.75 90) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp c8c62308-9209-4e71-80cd-58775c2f21e9))
+    (pad "33" smd rect locked (at 3.75 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 45 "/L_rouge") (tstamp 96b1d3a5-0ce4-4533-9e48-496c1bc10c1b))
+    (pad "34" smd rect locked (at 3.25 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 46 "/L_vert") (tstamp 44e54099-4ffd-4ac7-aa3b-2631fc510727))
+    (pad "35" smd rect locked (at 2.75 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 47 "/L_orange") (tstamp 1c184eef-a44d-4117-ac11-e5ae40c2ebe2))
+    (pad "36" smd rect locked (at 2.25 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 22 "Net-(U1-Pad36)") (tstamp 6b4c6798-a85a-4693-a1ad-1e43ade9b5ce))
+    (pad "37" smd rect locked (at 1.75 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 65 "/RX") (tstamp 9d149a77-04b4-4e0a-83b1-6c3771425136))
+    (pad "38" smd rect locked (at 1.25 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 66 "/TX") (tstamp 5b4a7b02-aeab-4261-8c37-94776b6aeede))
+    (pad "39" smd rect locked (at 0.75 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 82 "Net-(U1-Pad39)") (tstamp f2559b32-99d5-47a1-b284-e656a1692745))
+    (pad "40" smd rect locked (at 0.25 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 12 "/sda") (tstamp 42e320eb-b81e-428b-928a-803a59a18238))
+    (pad "41" smd rect locked (at -0.25 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 11 "/sdl") (tstamp 076dfca7-551c-4b02-b6ee-a58e3b4835db))
+    (pad "42" smd rect locked (at -0.75 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 26 "/USB_OTG_FS_VBUS") (tstamp 262edd32-163f-4114-ba5a-adb01edff2bf))
+    (pad "43" smd rect locked (at -1.25 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 29 "/USB_OTG_FS_ID") (tstamp cb1f3a1c-a618-447a-8b9e-e2902bd41682))
+    (pad "44" smd rect locked (at -1.75 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 27 "/USB_OTG_FS_N") (tstamp df3d3a07-e235-4be6-a065-c44b67d655a5))
+    (pad "45" smd rect locked (at -2.25 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 28 "/USB_OTG_FS_P") (tstamp 3c77d8ab-c573-4cfb-8571-e2048bb80259))
+    (pad "46" smd rect locked (at -2.75 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 9 "/swdio") (tstamp a63bbd36-05cc-40bb-b062-980e572e4d34))
+    (pad "47" smd rect locked (at -3.25 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp d2ad5d8d-66e2-432a-bb17-b2bf2de51e05))
+    (pad "48" smd rect locked (at -3.75 -5.75 180) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp 631f0aa8-3671-4065-9341-0b84e6982487))
+    (pad "49" smd rect locked (at -5.75 -3.75 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 8 "/swclk") (tstamp 14819790-4697-471b-9ff7-21bd3d9c9baf))
+    (pad "50" smd rect locked (at -5.75 -3.25 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 36 "Net-(U1-Pad50)") (tstamp c884a949-d078-4d62-9164-6b74ba7f1c79))
+    (pad "51" smd rect locked (at -5.75 -2.75 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 37 "Net-(U1-Pad51)") (tstamp 1aa45309-dda0-49da-8a37-8efe27711fe5))
+    (pad "52" smd rect locked (at -5.75 -2.25 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 38 "Net-(U1-Pad52)") (tstamp dc179844-1bd3-4d12-87c1-eb0b8b13ef3f))
+    (pad "53" smd rect locked (at -5.75 -1.75 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 39 "Net-(U1-Pad53)") (tstamp 04481700-e465-47ce-b7b2-a88f3ad9d80c))
+    (pad "54" smd rect locked (at -5.75 -1.25 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 40 "Net-(U1-Pad54)") (tstamp b4034c9f-0895-4dd3-b9a0-8cca9eba917d))
+    (pad "55" smd rect locked (at -5.75 -0.75 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 43 "/I2C2_SDA") (tstamp 9a07c9e6-0854-4f06-8275-1a706be08201))
+    (pad "56" smd rect locked (at -5.75 -0.25 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 83 "Net-(U1-Pad56)") (tstamp 0c042fa8-7667-4cf9-8eb6-9b0bf40162b6))
+    (pad "57" smd rect locked (at -5.75 0.25 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 41 "Net-(U1-Pad57)") (tstamp 67c17eb9-f684-4207-ad7b-cb1b47d6193c))
+    (pad "58" smd rect locked (at -5.75 0.75 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 73 "/S7") (tstamp 73f52ad6-c2c4-4fd3-9067-cbf7c14aaf5e))
+    (pad "59" smd rect locked (at -5.75 1.25 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 74 "/S8") (tstamp ef91dbd5-14c7-4628-b97f-8fbeafd9f562))
+    (pad "60" smd rect locked (at -5.75 1.75 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 5 "/boot0") (tstamp 00e74cae-fca7-49e0-b43e-4ae840e5d163))
+    (pad "61" smd rect locked (at -5.75 2.25 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 75 "/S9") (tstamp 3dc10b38-a7da-4c49-ba74-5997ee7f5338))
+    (pad "62" smd rect locked (at -5.75 2.75 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 76 "/S10") (tstamp 6a70cf6c-77bb-4026-9a30-5e43bac38c1c))
+    (pad "63" smd rect locked (at -5.75 3.25 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 2 "/GND") (tstamp 94b92bb1-9664-4daf-abbc-532a88b77edc))
+    (pad "64" smd rect locked (at -5.75 3.75 270) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask")
+      (net 62 "/3.3V") (tstamp ab0def08-e888-4d78-9503-50a7097c683d))
+  )
+
+  (footprint "Connector:batterie" (layer "B.Cu")
+    (tedit 57262B3F) (tstamp 00000000-0000-0000-0000-000057ea37b2)
+    (at 163.9 72 -90)
+    (path "/00000000-0000-0000-0000-00005725fa6c")
+    (attr through_hole)
+    (fp_text reference "BT1" (at 5 0 90) (layer "B.SilkS")
+      (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
+      (tstamp 8e4c5187-fb29-401a-a0bd-a3215c593505)
+    )
+    (fp_text value "Battery" (at 0 10 90) (layer "B.Fab")
+      (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
+      (tstamp b7b6b237-af0e-4265-9b2d-b2f0b6c8b1bc)
+    )
+    (fp_line (start -5.08 3.048) (end -5.08 2.54) (layer "B.SilkS") (width 0.15) (tstamp 29b1c9ea-633c-4561-9984-8b31315fab43))
+    (fp_line (start 0 15.24) (end -5.08 15.24) (layer "B.SilkS") (width 0.15) (tstamp 38542f80-2b34-439c-aea6-6bfb503409ca))
+    (fp_line (start 0 2.5) (end -7.5 2.5) (layer "B.SilkS") (width 0.15) (tstamp 3dc9ea78-3dc7-4bf9-be48-8b6a47dc5fd9))
+    (fp_line (start 5.08 15.24) (end 5.08 2.54) (layer "B.SilkS") (width 0.15) (tstamp 7f80f2d5-f451-4385-91d7-7eca7a60e625))
+    (fp_line (start 0 15.24) (end 5.08 15.24) (layer "B.SilkS") (width 0.15) (tstamp aa523943-a481-44ef-b64f-90bbfc48230c))
+    (fp_line (start -5.08 15.24) (end -5.08 3.048) (layer "B.SilkS") (width 0.15) (tstamp b3818dab-e4b3-4793-b9f0-9e605c546f4e))
+    (fp_line (start 0 2.5) (end 7.5 2.5) (layer "B.SilkS") (width 0.15) (tstamp d303af9d-fb97-4de8-859a-f06cbe218007))
+    (pad "" np_thru_hole circle locked (at 0 13 270) (size 1.5 1.5) (drill 1.5) (layers *.Cu *.Mask "B.SilkS") (tstamp 884d2196-81dd-49e2-b7f9-53ff2793e594))
+    (pad "" np_thru_hole circle locked (at 0 5 270) (size 1.5 1.5) (drill 1.5) (layers *.Cu *.Mask "B.SilkS") (tstamp b7302a7e-80d0-4c66-bbf5-f38b262f4f23))
+    (pad "1" smd rect locked (at 0 0 270) (size 1.7 3.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 1 "Net-(BT1-Pad1)") (tstamp 7ff93282-bdbd-4e22-8a43-a093cf63fc8b))
+    (pad "2" smd rect locked (at 0 17.5 270) (size 1.7 3.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (tstamp b8ac9bc1-3772-4434-86c3-434dc136a7fb))
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced3664)
+    (at 110 84 180)
+    (path "/00000000-0000-0000-0000-00005cf79e5c")
+    (attr through_hole)
+    (fp_text reference "C16" (at -2.2 0 270) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 7f65b3ad-a16f-4223-a98a-ff26bc0297d2)
+    )
+    (fp_text value "4.7µF" (at -0.875 0 90) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 334bcec3-fc4c-4969-95d1-070e533e32b5)
+    )
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 2f15e455-6019-4868-9c80-44f2c6e0e737))
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp fc1d2eae-6b99-4fcb-978a-dc73771b4942))
+    (pad "1" smd rect locked (at 0.875 0 180) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 76be5680-2438-4cfa-9e6f-8f71c669251c))
+    (pad "2" smd rect locked (at -0.875 0 180) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp dac482e1-dd1b-464d-878e-2164a5f7e026))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced368c)
+    (at 115.125 81.635001 180)
+    (path "/00000000-0000-0000-0000-00005cefd47a")
+    (attr through_hole)
+    (fp_text reference "R15" (at -2.075 -0.035001 90) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 34209a08-8b71-4488-b4bc-251930b7a36c)
+    )
+    (fp_text value "10K" (at -0.875 0 270) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp dc58f120-d51b-44b9-bf72-50b34e361d3f)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp 395d8b8e-2bb2-4db8-be1b-a9f74533422d))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp ba2dfab7-096c-4d5a-9914-67fe11f91031))
+    (pad "1" smd rect locked (at -0.875 0 180) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 78 "Net-(R15-Pad1)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp c8b0464b-fd4f-4c68-badf-28c9e38d9798))
+    (pad "2" smd rect locked (at 0.875 0 180) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 72c73618-fc1b-474b-b6d7-589e231061cd))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced3694)
+    (at 115 79)
+    (path "/00000000-0000-0000-0000-00005cf02db9")
+    (attr through_hole)
+    (fp_text reference "R16" (at 2.2 0 90) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp f4a95406-9697-4474-9184-60e74ae501cc)
+    )
+    (fp_text value "10K" (at -0.875 0 -90) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 43d33ca2-c321-47ed-87ae-43f3ac612cbf)
+    )
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp 34e15b53-ce02-4a93-97f2-19304db905aa))
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp 845083f6-aaf6-4d14-be6d-f6f928cf83a7))
+    (pad "1" smd rect locked (at -0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 3595f5db-749b-49b0-bd1f-22e4ff84b47f))
+    (pad "2" smd rect locked (at 0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 64 "/mode") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 50c81f4a-d005-4327-8d8a-a61b6405d71a))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced3847)
+    (at 110 81 180)
+    (path "/00000000-0000-0000-0000-00005cee290c")
+    (attr through_hole)
+    (fp_text reference "C17" (at -2.2 0 270) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp ff5e5b50-2b59-442d-897a-e2ba662d5682)
+    )
+    (fp_text value "100nF" (at -0.875 0 90) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp f01c1c04-4135-4c43-8f2d-2f890d59485d)
+    )
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp 58a2f86d-6f2e-4e39-b841-cd26d9d8c923))
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp aaacb442-5a35-4d26-9731-655f0a96a262))
+    (pad "1" smd rect locked (at 0.875 0 180) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp e3e3eb9a-b2cc-40b5-9b5a-556445fdb8d2))
+    (pad "2" smd rect locked (at -0.875 0 180) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 946f0634-327c-498a-978f-7750175afbd2))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced41c0)
+    (at 123.4 78.7 -90)
+    (path "/00000000-0000-0000-0000-0000592e9bbe")
+    (attr through_hole)
+    (fp_text reference "C1" (at 2.1 0 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 8b33dd6a-6881-4d8b-bcf3-2276961a3cff)
+    )
+    (fp_text value "4.7µF" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp fdebaf26-b8a2-47c6-bd6f-ebe0b5793670)
+    )
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 22d9b200-ec29-4dc8-8177-20103384db23))
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp 3294e247-e856-458e-97be-d8435a6bc2a2))
+    (pad "1" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp fd092ed1-eb31-4b2d-9ee5-be648df54dd7))
+    (pad "2" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp d078ae37-ed91-42b2-b1fa-af3b431783fa))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced41c7)
+    (at 125.75 78.75 -90)
+    (path "/00000000-0000-0000-0000-000057054bc2")
+    (attr through_hole)
+    (fp_text reference "C2" (at 2.05 0 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp d0615982-02eb-46e2-8862-9aa563b1f874)
+    )
+    (fp_text value "100nF" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp cbedae32-bb65-43cf-8dce-7aaee9e3e43e)
+    )
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp 17e4956d-cac0-4827-a19e-fa8eda91f5e4))
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 930e534c-0ae9-4062-b3d6-8ab06805c891))
+    (pad "1" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 934202cc-4fd9-4558-9b3c-7ce7601cf911))
+    (pad "2" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 3625cd78-5ec0-4cae-b4e0-296b36d95af8))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced41ce)
+    (at 133.5 82.8)
+    (path "/00000000-0000-0000-0000-0000592e902a")
+    (attr through_hole)
+    (fp_text reference "C3" (at 2.1 0 -90) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 635e9d7a-4367-43c7-a4b6-b80b182879c2)
+    )
+    (fp_text value "1µF" (at -0.875 0 -90) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp e7f4638f-bf84-423a-aafe-25e593b8a2e4)
+    )
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp 17a5e224-c302-4c83-b2f6-3c5e49498246))
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 38a55fb6-b623-43fe-94c2-7205d6185445))
+    (pad "1" smd rect locked (at 0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp b94def00-d9d4-4564-92d6-ff92494756fd))
+    (pad "2" smd rect locked (at -0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 5a56ce69-e2c1-49c3-8bf3-33e14ea92c0b))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced41ee)
+    (at 157 95 -90)
+    (path "/00000000-0000-0000-0000-000057e50214")
+    (attr through_hole)
+    (fp_text reference "C6" (at 2.2 0 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp d5ce44e6-85f1-4999-8cbf-385e9f7cdfe6)
+    )
+    (fp_text value "100nF" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 0724e56e-409f-49e1-9681-60d1186db357)
+    )
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp 0ca4c7d4-861b-447b-b5dc-ef139a1212d0))
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp e72b1f01-1af8-43d3-8da4-23fd330b0d6f))
+    (pad "1" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 8a3c7bea-9cfe-4491-9ddf-087ebc7ccf8f))
+    (pad "2" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 4 "/nrst") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 6b409fd6-ac58-464a-9f13-ebc44fb7f0ec))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced41f5)
+    (at 151.87 94.825 -90)
+    (path "/00000000-0000-0000-0000-000057e518cc")
+    (attr through_hole)
+    (fp_text reference "C7" (at 2.175 -0.13 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 065ecdd2-05f1-474c-83ff-463ee8b76537)
+    )
+    (fp_text value "100nF" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 3b6b0cb8-12d1-4018-a661-d03f49ab9616)
+    )
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 1455ae4e-7342-4104-badb-e08077b611cb))
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp c468385e-c75d-43d1-a8d3-ff111aac1ee0))
+    (pad "1" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp dade36a1-209c-4663-a13b-8624ff651389))
+    (pad "2" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 5 "/boot0") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 615481bb-f578-445e-97cb-900b996ae2c8))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced41fc)
+    (at 133.5 80.75)
+    (path "/00000000-0000-0000-0000-0000592e8dca")
+    (attr through_hole)
+    (fp_text reference "C8" (at 2.1 0 -90) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp c1b08ea9-e655-4c50-a818-262534d706e4)
+    )
+    (fp_text value "100nF" (at -0.875 0 -90) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp d963f4ba-3c74-4360-99cb-c7d91ee7e573)
+    )
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 0ce5312c-c8b6-4de6-979b-393028e4fbb2))
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp 1354d2da-585d-4737-82b5-d170cf1e05f6))
+    (pad "1" smd rect locked (at 0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp ee0d6d88-9100-490e-bc38-c97e3809004a))
+    (pad "2" smd rect locked (at -0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 4269e764-0d4b-4c8e-8207-33878daf9943))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced4203)
+    (at 137.25 78.25 90)
+    (path "/00000000-0000-0000-0000-0000592e893a")
+    (attr through_hole)
+    (fp_text reference "C9" (at 2.05 0) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp cb672832-3f0b-46fb-afe8-28991ce0c3cf)
+    )
+    (fp_text value "100nF" (at -0.875 0) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 24884090-c56c-4ffd-b80f-01e0cf7a7889)
+    )
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp abd339ab-7c10-402f-944e-b530bad369ef))
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp e1027119-708d-44b8-bfa3-da6f80f81789))
+    (pad "1" smd rect locked (at 0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 413bc768-9db2-4ed1-be20-3fcd880584d0))
+    (pad "2" smd rect locked (at -0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 88850155-7cce-4d1d-8ac0-d23841257aea))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced420a)
+    (at 139.5 71.5 -90)
+    (path "/00000000-0000-0000-0000-0000592e97a8")
+    (attr through_hole)
+    (fp_text reference "C12" (at 2.3 0.1 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp edb5b806-3fa7-45b3-8905-84b01442f073)
+    )
+    (fp_text value "4.7µF" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 32cd1eaa-c8b2-43bc-abcd-792724c740c1)
+    )
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp 1eacfab6-3cd1-4147-a9b9-704159fd17d1))
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 4983c5b9-e34d-4f95-b39c-b116e0e19d95))
+    (pad "1" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 25 "Net-(C12-Pad1)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 8c236f15-9125-4f5a-842f-7f4131e36497))
+    (pad "2" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp d4267f82-5ff7-4c6a-9091-0bbfcdbd5a0f))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced4211)
+    (at 137.25 71.75 90)
+    (path "/00000000-0000-0000-0000-0000592e7e79")
+    (attr through_hole)
+    (fp_text reference "C13" (at -2.05 0.15) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 640897c4-f3e1-44d5-a5e7-7f759f5f52b5)
+    )
+    (fp_text value "100nF" (at -0.875 0) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 995fccc8-ce59-45c5-a090-bd09eeecaa6f)
+    )
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 85d7b276-884c-4e6f-a48b-b85d24f47046))
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp 861d5e91-2858-4572-88c3-1fec9f68b83a))
+    (pad "1" smd rect locked (at 0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 39f51ac9-129d-45f2-b224-ad65f7565bd0))
+    (pad "2" smd rect locked (at -0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 93cd55ae-ca73-4b97-a072-62d1a6e3849f))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced4218)
+    (at 128 69.5 180)
+    (path "/00000000-0000-0000-0000-0000592e8599")
+    (attr through_hole)
+    (fp_text reference "C14" (at 2 0 90) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 18feca2a-7570-4561-8b5b-be9a66ce4eed)
+    )
+    (fp_text value "100nF" (at -0.875 0 90) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 6dfcbc5d-2f92-4005-8261-48a56a98afbe)
+    )
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 7ac167a0-5021-4c79-837b-51ec349dd746))
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp fc30b733-6ef8-4408-983c-dac743abbdf4))
+    (pad "1" smd rect locked (at 0.875 0 180) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 78cfe2c9-7052-4a60-b405-27fa4e5efaea))
+    (pad "2" smd rect locked (at -0.875 0 180) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 2f4b912c-71b3-43f4-8047-a734f4a705f1))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "C:0805" (layer "B.Cu")
+    (tedit 5703BAE6) (tstamp 00000000-0000-0000-0000-00005ced421f)
+    (at 144.5 95 -90)
+    (path "/00000000-0000-0000-0000-00005b3d4e2b")
+    (attr through_hole)
+    (fp_text reference "C15" (at 2 0 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp a23aa2d0-d507-459e-82c4-210ba4ddee34)
+    )
+    (fp_text value "100nF" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp b753737b-8735-4f5a-8caf-ab95da31286c)
+    )
+    (fp_line (start 0.4 -0.74) (end -0.4 -0.74) (layer "B.SilkS") (width 0.17) (tstamp 606b40c6-4a0d-4085-b313-53e785178cb8))
+    (fp_line (start 0.4 0.74) (end -0.4 0.74) (layer "B.SilkS") (width 0.17) (tstamp dee451f3-5fbc-4e4e-953e-92a076e3b325))
+    (pad "1" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp b21dccb3-feba-443d-a409-b8393d25107b))
+    (pad "2" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 60 "/aquit") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp f66f1902-8895-470e-8009-e3e2577bc6e3))
+    (model "${KIPRJMOD}/../packages3d/None-C0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced426a)
+    (at 156 62.5 -90)
+    (path "/00000000-0000-0000-0000-000056c61cd4")
+    (attr through_hole)
+    (fp_text reference "R3" (at -2.1 0 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp f43caa0e-7c4c-4883-a727-2f0cda70dd6f)
+    )
+    (fp_text value "10K" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 47a64c1e-cb7d-4c0b-8619-84e44ce2165d)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp 29eab7ba-1ab1-4d92-8b80-a2a7d21a484c))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp b6426b78-146c-4c30-9bf2-227ad3e2ec17))
+    (pad "1" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 22f2e396-e1a7-4714-9dbc-4186f88b1b9b))
+    (pad "2" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 10 "/mfp") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 6eb013bd-f355-431b-8419-95fa450f63e5))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced4271)
+    (at 158 62.5 -90)
+    (path "/00000000-0000-0000-0000-000056c61c77")
+    (attr through_hole)
+    (fp_text reference "R4" (at -2.1 0 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 5e952784-04c4-4472-b26f-81596a591ca5)
+    )
+    (fp_text value "10K" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 233602ff-65a3-4b86-ac64-02cc9cd43a1f)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp 7a4f2e76-b3e9-43fe-a530-33bed16c97bb))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp db5b048a-a35d-4365-8f52-084cc18de9d8))
+    (pad "1" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 8fca5fb9-b060-46e0-9d62-240da9160fcc))
+    (pad "2" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 11 "/sdl") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp ba5afda2-96d8-4136-8704-0b5770595c77))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced4278)
+    (at 160 62.5 -90)
+    (path "/00000000-0000-0000-0000-000056c61bdd")
+    (attr through_hole)
+    (fp_text reference "R5" (at -2.1 0 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp d1610656-06cb-4369-8027-2a4b0217399e)
+    )
+    (fp_text value "10K" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 17ca4a41-98b9-4570-9ebe-0e044aedde8d)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp cf446b7e-7669-44fd-9ce7-4e979e1e92a1))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp cf55d6c4-6e41-4bc7-861f-e6767554204c))
+    (pad "1" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 84d3cb6d-c583-44a0-8489-12e16bbbcad8))
+    (pad "2" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 12 "/sda") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp f9a941c8-9d86-4c6e-af28-de94663193db))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced428d)
+    (at 155 95 90)
+    (path "/00000000-0000-0000-0000-000057e50ded")
+    (attr through_hole)
+    (fp_text reference "R8" (at -2.2 0) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 65898234-8592-4e82-9156-594c42a22a98)
+    )
+    (fp_text value "10K" (at -0.875 0) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp d0aeb5c1-2963-4a6f-b5d2-09c5dd66ec02)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp 5eaaa2bc-06a5-4561-9bab-042de46f2037))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp 6ec0fa3f-b78f-42b8-a29f-3cc8aedcdba3))
+    (pad "1" smd rect locked (at -0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp c6f47ed6-f665-4e2c-9f96-49f5324d0cfc))
+    (pad "2" smd rect locked (at 0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 4 "/nrst") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 1846224a-c6e8-4906-9dd5-35f0487357f0))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced4294)
+    (at 149 95 90)
+    (path "/00000000-0000-0000-0000-000057061f55")
+    (attr through_hole)
+    (fp_text reference "R9" (at -2.2 0) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 85fe9779-f7a5-40b9-91ae-6acd597f5e75)
+    )
+    (fp_text value "10K" (at -0.875 0) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 4426d9a1-a641-47b8-b871-2499cb41b6c6)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp 9d3a2883-5313-4c0f-b604-2107f32a8777))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp ce78d455-c34b-4834-8fad-38d90608f266))
+    (pad "1" smd rect locked (at -0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp cd627dc0-2ff3-4b51-b804-d8ad3304bdd9))
+    (pad "2" smd rect locked (at 0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 5 "/boot0") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp e77c7679-9f18-42df-ac19-fb87d9588fe3))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced429b)
+    (at 149.5 84.25 -90)
+    (path "/00000000-0000-0000-0000-00005729f1b3")
+    (attr through_hole)
+    (fp_text reference "R10" (at 0.05 0 180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 2f7b4834-8dcd-4dac-ae26-e5661ed528b8)
+    )
+    (fp_text value "10K" (at -0.875 0 180) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp e5bbc69b-0954-42ac-8fa6-95f3acdec836)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp 93d66928-682c-4703-8375-1ccd94af82c1))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp e21c0f7e-65a5-4a66-a8e8-f9c76a128205))
+    (pad "1" smd rect locked (at -0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 17314d89-f782-4884-a71b-9b849ce2aeb0))
+    (pad "2" smd rect locked (at 0.875 0 270) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 13 "/wc") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp b25f4376-227e-46d0-9698-3a07409cac1e))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced42a9)
+    (at 106 75.5)
+    (path "/00000000-0000-0000-0000-00005b3a48bd")
+    (attr through_hole)
+    (fp_text reference "R12" (at 2.2 0 90) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 55aa2dba-963b-4bc4-8ab9-2b8288f1d7b9)
+    )
+    (fp_text value "10K" (at -0.875 0 -90) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 11ae3f19-f1ed-4ba8-880c-03aa99e8f878)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp 2a800764-31d8-4b25-88b6-a2eef39b8a53))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp b54572ee-465e-4d7f-b628-70496857900b))
+    (pad "1" smd rect locked (at -0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 50 "Net-(R12-Pad1)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 39ac660e-e1e4-48a7-b56a-58df24168872))
+    (pad "2" smd rect locked (at 0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp a6d6d4e1-8ce1-40fc-9bf2-45e3d1a29635))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5703B877) (tstamp 00000000-0000-0000-0000-00005ced42b7)
+    (at 142.5 95 90)
+    (path "/00000000-0000-0000-0000-00005b3d4e22")
+    (attr through_hole)
+    (fp_text reference "R14" (at -2 0) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 0705af3a-a2f6-4bd6-b4f9-d8d72d39241a)
+    )
+    (fp_text value "10K" (at -0.875 0) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp bad2224d-f48b-483d-b203-fc76aee4bea7)
+    )
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp b1018e3a-ca34-497f-a76b-9a456da2ea20))
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp c2391355-c8a7-47e7-bd6c-494fe9da5d69))
+    (pad "1" smd rect locked (at -0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp cd0208eb-9ab7-4afb-8871-f1a786b52f24))
+    (pad "2" smd rect locked (at 0.875 0 90) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 60 "/aquit") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp fb327198-d3c6-4e27-8e6b-3bbfa936f4d4))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5D9C976A) (tstamp 00000000-0000-0000-0000-000060080a43)
+    (at 115 84.5)
+    (path "/00000000-0000-0000-0000-0000601a59de")
+    (attr through_hole)
+    (fp_text reference "R11" (at 2 0 90) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp fe458aba-f245-462f-92e9-93a2e866a3d2)
+    )
+    (fp_text value "10K" (at -0.875 0 -90) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp 88e03ed9-affc-41b4-bc69-89a05fe1a00a)
+    )
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp ef5fde45-bd2a-4391-9316-e19fc59996dc))
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp f3d05db2-2d84-44d2-9c04-97d55943b0e2))
+    (pad "1" smd rect locked (at -0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 2 "/GND") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp fb46f9bd-3f13-4d75-808f-ddf772523187))
+    (pad "2" smd rect locked (at 0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 77 "Net-(R11-Pad2)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp ce227c2e-992e-4e8e-a519-c7b75c49bae0))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (footprint "R:0805" (layer "B.Cu")
+    (tedit 5D9C976A) (tstamp 00000000-0000-0000-0000-000060081690)
+    (at 106.3 71.6)
+    (path "/00000000-0000-0000-0000-000060089581")
+    (attr through_hole)
+    (fp_text reference "R17" (at 0 -1.4 -180) (layer "B.SilkS")
+      (effects (font (size 0.7 0.66) (thickness 0.16)) (justify mirror))
+      (tstamp 755a6149-870a-49ff-8613-ac80f1927417)
+    )
+    (fp_text value "10K" (at -0.875 0 -90) (layer "B.Fab")
+      (effects (font (size 0.3 0.2) (thickness 0.05)) (justify mirror))
+      (tstamp a45848b9-7e08-4764-8b4a-223a3a89d3d1)
+    )
+    (fp_line (start -0.4 -0.75) (end 0.4 -0.75) (layer "B.SilkS") (width 0.17) (tstamp 8918d841-62cb-47b5-915d-38c3ccda3b25))
+    (fp_line (start -0.4 0.75) (end 0.4 0.75) (layer "B.SilkS") (width 0.17) (tstamp ac0d790b-f684-4977-9d5e-f2967be4b7a3))
+    (pad "1" smd rect locked (at -0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 88 "Net-(R17-Pad1)") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 3a77babd-dbd6-4390-944c-375ea0a34ec1))
+    (pad "2" smd rect locked (at 0.875 0) (size 0.85 1.5) (layers "B.Cu" "B.Paste" "B.Mask")
+      (net 62 "/3.3V") (solder_mask_margin 0.07) (solder_paste_margin -0.05) (tstamp 5ffde04b-ecff-49c9-88e2-db58a14461cf))
+    (model "${KIPRJMOD}/../packages3d/None-R0805.wrl"
+      (offset (xyz 0 0 0))
+      (scale (xyz 1 1 1))
+      (rotate (xyz 0 0 0))
+    )
+  )
+
+  (gr_line (start 131.6 58.2) (end 131.6 57.4) (layer "F.SilkS") (width 0.2) (tstamp 00795775-80f6-417d-9b3a-b7d953f06883))
+  (gr_line (start 128.8 57.8) (end 129.6 57.8) (layer "F.SilkS") (width 0.2) (tstamp 0650196a-fe83-4c6a-aefc-eceaf83f08f1))
+  (gr_arc (start 122.3 58.6) (mid 122 58.9) (end 121.7 58.6) (layer "F.SilkS") (width 0.2) (tstamp 15812581-1554-4eb9-940a-39a5757ad43b))
+  (gr_line (start 186.8 67.2) (end 186.8 68) (layer "F.SilkS") (width 0.2) (tstamp 1e020d9a-e183-4db7-9875-57b6e256e10d))
+  (gr_line (start 132.2 57.4) (end 132.2 58.2) (layer "F.SilkS") (width 0.2) (tstamp 22225232-410a-4015-a583-09e4cc644d3d))
+  (gr_line (start 124.8 57.4) (end 124.8 58) (layer "F.SilkS") (width 0.2) (tstamp 2f3e13b8-82a4-4916-8f79-7efc22faeb93))
+  (gr_line (start 119 57.8) (end 119.6 57.8) (layer "F.SilkS") (width 0.2) (tstamp 3477946c-dbb3-49f6-baf3-e25d6f73882d))
+  (gr_line (start 134.4 57.8) (end 135.2 57.8) (layer "F.SilkS") (width 0.2) (tstamp 5f88c3e2-d2e5-4323-a5b8-af81f557760e))
+  (gr_line (start 131 58.2) (end 131.6 58.2) (layer "F.SilkS") (width 0.2) (tstamp 7fa85bc6-ee59-4de3-aecd-497e62eaaa19))
+  (gr_line (start 122.1 57.5) (end 122.1 58.8) (layer "F.SilkS") (width 0.2) (tstamp 8cefa38e-69cc-4a13-858e-f8b8241c0f89))
+  (gr_line (start 187.393 59.756) (end 186.123 59.756) (layer "F.SilkS") (width 0.2) (tstamp 908608af-7bef-47cd-8640-764468071ba9))
+  (gr_arc (start 121.9 57.5) (mid 122 57.4) (end 122.1 57.5) (layer "F.SilkS") (width 0.2) (tstamp 992f1ca3-a61f-4c45-9fde-e7d4f52a7e8e))
+  (gr_line (start 121.9 57.5) (end 121.9 58.8) (layer "F.SilkS") (width 0.2) (tstamp a3279eb2-8d22-4d28-9008-48c1265b1621))
+  (gr_line (start 131.6 57.4) (end 132.2 57.4) (layer "F.SilkS") (width 0.2) (tstamp acdd593e-061d-4b7b-9e4a-68a8d69d1e58))
+  (gr_line (start 124.4 57.8) (end 125.2 57.8) (layer "F.SilkS") (width 0.2) (tstamp b0686a5a-fe22-4c01-8b62-382064a90b1d))
+  (gr_line (start 134.8 57.4) (end 134.8 58.2) (layer "F.SilkS") (width 0.2) (tstamp de05f90d-af33-4843-a88a-9bf994b1c871))
+  (gr_line (start 186.758 59.121) (end 186.758 60.391) (layer "F.SilkS") (width 0.2) (tstamp e75edb31-7d33-4f5d-b096-b0a4f659fca4))
+  (gr_circle (center 122 58.6) (end 122.3 58.6) (layer "F.SilkS") (width 0.2) (fill none) (tstamp f058f4c7-b242-4fba-bd85-e3b5391cbb33))
+  (gr_line (start 124.8 58) (end 124.8 58.2) (layer "F.SilkS") (width 0.2) (tstamp f73ee96d-c13f-4182-8446-f85e4e150ff8))
+  (gr_line (start 90 100) (end 90 50) (layer "Edge.Cuts") (width 0.1) (tstamp 2a824906-3327-4c39-8f41-9e91fb30d607))
+  (gr_line (start 120 100) (end 120 95.5) (layer "Edge.Cuts") (width 0.1) (tstamp 462a9b6f-51b2-41be-a03c-b4e8928c7fb3))
+  (gr_line (start 190 50) (end 190 100) (layer "Edge.Cuts") (width 0.1) (tstamp 65e2be01-e5fc-4ba0-ad31-9474138d31db))
+  (gr_line (start 90 50) (end 190 50) (layer "Edge.Cuts") (width 0.1) (tstamp 6a53977f-73cb-4f17-b13c-415704436b80))
+  (gr_line (start 120 100) (end 190 100) (layer "Edge.Cuts") (width 0.1) (tstamp a1c1acfa-6340-4292-8e5f-67749fe752d4))
+  (gr_line (start 120 95.5) (end 112.5 95.5) (layer "Edge.Cuts") (width 0.1) (tstamp a51ba6dc-f6e0-4b6c-9a59-676123282548))
+  (gr_line (start 90 100) (end 112.5 100) (layer "Edge.Cuts") (width 0.1) (tstamp a79416fa-34ef-4938-b4e0-3c6c7f74d6f3))
+  (gr_line (start 112.5 95.5) (end 112.5 100) (layer "Edge.Cuts") (width 0.1) (tstamp db9e3f4e-4254-44a1-9fd5-df961486d85f))
+  (gr_text "Control LED V 3.2\nR.C 02/2021" (at 170.5 77.5 90) (layer "B.SilkS") (tstamp 32ebca15-29b3-4acc-926a-0de2cbbe05c9)
+    (effects (font (size 1.5 1.5) (thickness 0.3)) (justify mirror))
+  )
+  (gr_text "S1 S2 S3 S4 S5 S6\n" (at 158.75 58 180) (layer "F.SilkS") (tstamp 05e55032-83b7-4a80-9244-aca9a47212a0)
+    (effects (font (size 1 1) (thickness 0.25)))
+  )
+  (gr_text "S7 S8 S9 S10" (at 143.5 57.75 180) (layer "F.SilkS") (tstamp 30f8e801-ba9e-49fe-9ec3-1a3a48996a62)
+    (effects (font (size 1 1) (thickness 0.25)))
+  )
+  (gr_text "TX" (at 96.1 70.4) (layer "F.SilkS") (tstamp 39373714-df9e-41ac-a04c-cd3fd1da01ff)
+    (effects (font (size 1.5 1.5) (thickness 0.3)))
+  )
+  (gr_text "RX" (at 96.1 73.1) (layer "F.SilkS") (tstamp 55d1ce10-c12f-4d0e-b775-d2834d44ea2d)
+    (effects (font (size 1.5 1.5) (thickness 0.3)))
+  )
+  (gr_text "SCL" (at 135.7 92) (layer "F.SilkS") (tstamp 95d3e7b8-4333-47b2-abe9-5cb2ac5772f2)
+    (effects (font (size 1.5 1.5) (thickness 0.3)))
+  )
+  (gr_text "GND" (at 126.7 92) (layer "F.SilkS") (tstamp aedce36b-6d6a-46e0-b64c-8c65bf712598)
+    (effects (font (size 1.5 1.5) (thickness 0.3)))
+  )
+  (gr_text "GND" (at 97.1 75.7) (layer "F.SilkS") (tstamp c0a70f4e-0387-4e64-b444-81fcb1c88e23)
+    (effects (font (size 1.5 1.5) (thickness 0.3)))
+  )
+  (gr_text "SDA" (at 131.2 92) (layer "F.SilkS") (tstamp c2c578b1-4d3b-4e68-bd59-3731e240d3b2)
+    (effects (font (size 1.5 1.5) (thickness 0.3)))
+  )
+  (dimension (type aligned) (layer "Eco2.User") (tstamp 42c2c198-6b0f-4849-8013-0f17b8defc69)
+    (pts (xy 90 100) (xy 90 50))
+    (height -1.25)
+    (gr_text "50.0000 mm" (at 86.95 75 90) (layer "Eco2.User") (tstamp 42c2c198-6b0f-4849-8013-0f17b8defc69)
+      (effects (font (size 1.5 1.5) (thickness 0.3)))
+    )
+    (format (units 2) (units_format 1) (precision 4))
+    (style (thickness 0.3) (arrow_length 1.27) (text_position_mode 0) (extension_height 0.58642) (extension_offset 0) keep_text_aligned)
+  )
+  (dimension (type aligned) (layer "Eco2.User") (tstamp 5f89a5fc-1890-4635-bb14-82e9d30808ce)
+    (pts (xy 190 50) (xy 90 50))
+    (height 2.25)
+    (gr_text "100.0000 mm" (at 140 45.95) (layer "Eco2.User") (tstamp 5f89a5fc-1890-4635-bb14-82e9d30808ce)
+      (effects (font (size 1.5 1.5) (thickness 0.3)))
+    )
+    (format (units 2) (units_format 1) (precision 4))
+    (style (thickness 0.3) (arrow_length 1.27) (text_position_mode 0) (extension_height 0.58642) (extension_offset 0) keep_text_aligned)
+  )
+  (target plus (at 98.5 54) (size 5) (width 0.1) (layer "Edge.Cuts") (tstamp bffef2b2-d437-41f2-b740-dc1a4274595b))
+
+  (segment (start 158.6 76.58) (end 158.54 76.64) (width 0.25) (layer "F.Cu") (net 1) (tstamp 3783d4ca-0b30-42a1-b0ac-7b63b6e9b95d))
+  (segment (start 158.6 75.5) (end 158.6 76.58) (width 0.25) (layer "F.Cu") (net 1) (tstamp f4ef4480-caa0-4d63-8e3f-b69f5af61dd9))
+  (via (at 158.6 75.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp 5f2faeaf-a542-46fe-8ed6-3ccf5249f9f3))
+  (via (at 165.61 72) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp eb89fa1e-52c6-442c-9953-4f377a66a1f4))
+  (segment (start 163.5 72) (end 165.61 72) (width 0.25) (layer "B.Cu") (net 1) (tstamp 67db6ae6-1d28-42f1-b188-870ff967aac1))
+  (segment (start 162.1 72) (end 158.6 75.5) (width 0.25) (layer "B.Cu") (net 1) (tstamp b8fed03a-71e6-4690-a4a1-5f6863c30f41))
+  (segment (start 163.9 72) (end 162.1 72) (width 0.25) (layer "B.Cu") (net 1) (tstamp fd9562eb-80ff-4264-9da9-e7bf0e7fb215))
+  (via (at 112 81) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp 0555dfc3-ffa7-4d67-bc04-c309251610bf))
+  (via (at 121.8 77.8) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp 1762c275-3e04-4e16-b951-1e810973e1b6))
+  (via (at 128.22 68.075021) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp 2993b865-5b33-4b0b-89ee-c7c7224ad031))
+  (via (at 132.8 84) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp 32972a07-afb4-4627-a7d9-e1c7b67579dd))
+  (via (at 113 84.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp 435f677c-e399-4968-bf58-58e05938e3c1))
+  (via (at 137.89 79.81) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp 816c4a52-7c74-4611-b2cc-897b3f510deb))
+  (via (at 149 72) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp 93e757bb-3e14-49c2-b78e-d16521c0a3dd))
+  (via (at 140.3 70.77) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp 9b0c9394-b7c5-46ce-b070-af76d7df9bac))
+  (via (at 112 84) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp d4391ada-2d92-4c02-ab58-cd482f1eb512))
+  (via (at 148.3 95.7) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp ee67dac3-394f-4cd5-9776-d182a4a83d7f))
+  (via (at 145.2 95.71) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp f9857be8-04ce-4feb-89df-1d94a47b9ea8))
+  (via (at 157 96.4) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp f9e0f7dc-bda4-4029-89f1-3e4da20aaf83))
+  (segment (start 139.5 70.8) (end 140.27 70.8) (width 0.25) (layer "B.Cu") (net 2) (tstamp 0aa4636e-b2b1-4fe9-adc2-c7622f50486b))
+  (segment (start 110.875 84) (end 112 84) (width 0.25) (layer "B.Cu") (net 2) (tstamp 0c5f5a21-e8f6-48d3-9c45-5f5c6d35a48e))
+  (segment (start 123.4 77.825) (end 125.7 77.825) (width 0.25) (layer "B.Cu") (net 2) (tstamp 0d1e18c6-6641-4aba-ae15-5023198c5438))
+  (segment (start 149 95.7) (end 148.3 95.7) (width 0.25) (layer "B.Cu") (net 2) (tstamp 18e23515-4c48-4e86-983c-25fa15d8b7fb))
+  (segment (start 128.7 68.555021) (end 128.519999 68.37502) (width 0.25) (layer "B.Cu") (net 2) (tstamp 1c1d0445-5076-4c26-aa25-27eb736bbd64))
+  (segment (start 137.25 78.95) (end 137.25 79.17) (width 0.25) (layer "B.Cu") (net 2) (tstamp 1e58211a-5490-4e09-b3cc-261db516a7f9))
+  (segment (start 128.7 69.5) (end 128.7 68.555021) (width 0.25) (layer "B.Cu") (net 2) (tstamp 2d88e8e8-3848-4a01-8080-71d4669175dc))
+  (segment (start 140.27 70.8) (end 140.3 70.77) (width 0.25) (layer "B.Cu") (net 2) (tstamp 30ba2b7f-1f70-46a5-9f8c-8e428f66c087))
+  (segment (start 157 95.7) (end 157 96.4) (width 0.25) (layer "B.Cu") (net 2) (tstamp 31e7549a-7de8-43c0-ab60-56655182ee81))
+  (segment (start 146.4 72) (end 149 72) (width 0.25) (layer "B.Cu") (net 2) (tstamp 42b9f39c-74eb-41db-aaf7-550b9a88fce7))
+  (segment (start 132.625 82.8) (end 132.625 80.75) (width 0.25) (layer "B.Cu") (net 2) (tstamp 43f2a4f7-8366-45e5-82ad-d874944bebc3))
+  (segment (start 132.625 83.825) (end 132.8 84) (width 0.25) (layer "B.Cu") (net 2) (tstamp 44669b01-e382-4494-8cd9-9d687461fd6d))
+  (segment (start 110.875 81) (end 112 81) (width 0.25) (layer "B.Cu") (net 2) (tstamp 45d9e09e-aa1f-4824-9a94-fd03141ebd6a))
+  (segment (start 121.825 77.825) (end 121.8 77.8) (width 0.25) (layer "B.Cu") (net 2) (tstamp 497d80b8-9e00-45ac-b368-23166be37da5))
+  (segment (start 145.19 95.7) (end 145.2 95.71) (width 0.25) (layer "B.Cu") (net 2) (tstamp 54efea18-3cf5-41fb-880b-372df2b7af6d))
+  (segment (start 144.5 95.7) (end 145.19 95.7) (width 0.25) (layer "B.Cu") (net 2) (tstamp 59de7b3b-d4db-475e-8812-0b695ca135be))
+  (segment (start 137.25 78.95) (end 137.4 78.95) (width 0.25) (layer "B.Cu") (net 2) (tstamp 66cc890d-6c94-478a-bdd9-958249eff3d9))
+  (segment (start 128.519999 68.37502) (end 128.22 68.075021) (width 0.25) (layer "B.Cu") (net 2) (tstamp 7065c981-a699-4746-ad0f-e3e0e1b83486))
+  (segment (start 114.125 84.5) (end 113 84.5) (width 0.25) (layer "B.Cu") (net 2) (tstamp 722efab5-5cc3-47d0-a82c-54f1febfddb4))
+  (segment (start 132.8 83.12) (end 132.74 83.18) (width 0.25) (layer "B.Cu") (net 2) (tstamp 7e582824-4432-414a-b312-eef052856ed9))
+  (segment (start 110.875 81) (end 110.875 84) (width 0.25) (layer "B.Cu") (net 2) (tstamp 8bce1234-2561-4810-ba51-9985c0fe5e8c))
+  (segment (start 137.25 72.45) (end 137.7 72.45) (width 0.25) (layer "B.Cu") (net 2) (tstamp 9094b81e-1d38-4abb-b062-c38eb5ea9874))
+  (segment (start 137.25 79.17) (end 137.89 79.81) (width 0.25) (layer "B.Cu") (net 2) (tstamp 93be8d90-da57-4f77-a4e3-2fafeec77461))
+  (segment (start 132.625 82.8) (end 132.625 83.825) (width 0.25) (layer "B.Cu") (net 2) (tstamp ad1b7d29-2395-4aca-89e7-99300e558a2d))
+  (segment (start 125.7 77.825) (end 125.75 77.875) (width 0.25) (layer "B.Cu") (net 2) (tstamp bf31ea17-7fe7-45ac-8a0d-3887c676d9f1))
+  (segment (start 137.7 72.45) (end 139.35 70.8) (width 0.25) (layer "B.Cu") (net 2) (tstamp c30e0c70-bfc4-4f62-970a-2905835ad86f))
+  (segment (start 123.4 77.825) (end 121.825 77.825) (width 0.25) (layer "B.Cu") (net 2) (tstamp e13f9bf9-e5c9-42ba-a507-1ab8bb715561))
+  (segment (start 139.35 70.8) (end 139.5 70.8) (width 0.25) (layer "B.Cu") (net 2) (tstamp e34de70d-5047-458a-b9bf-ab2459f2215a))
+  (segment (start 181.5 79.5) (end 181.5 74.6) (width 0.75) (layer "F.Cu") (net 3) (tstamp 100f5882-edf1-4204-a41d-cc72a6f8e302))
+  (segment (start 186 69) (end 185.079002 69) (width 0.75) (layer "F.Cu") (net 3) (tstamp 2838fb89-6277-4043-b370-d1d6471f30ff))
+  (segment (start 180.2 73.1) (end 180 73.1) (width 0.75) (layer "F.Cu") (net 3) (tstamp 2f7b6c90-f678-4790-9473-f45aeac59cdd))
+  (segment (start 184.3 69) (end 180.2 73.1) (width 0.75) (layer "F.Cu") (net 3) (tstamp 42c11971-f9ec-4fad-a312-1b056a144c62))
+  (segment (start 134.75 53.75) (end 136.91 51.59) (width 0.5) (layer "F.Cu") (net 3) (tstamp 55f450fe-01cf-49ec-9f0e-ec58c54573a3))
+  (segment (start 175.61 51.59) (end 186.5 62.48) (width 0.75) (layer "F.Cu") (net 3) (tstamp 5d733f0b-f948-4340-85ee-ee93c288d1e1))
+  (segment (start 189 63.6) (end 189 66) (width 0.75) (layer "F.Cu") (net 3) (tstamp 6b8fe0b0-33d6-48ba-8ad0-f2ede0458e9d))
+  (segment (start 172.34 51.59) (end 175.61 51.59) (width 0.75) (layer "F.Cu") (net 3) (tstamp 71d4e457-77b9-43e8-a4b4-2abe78329eec))
+  (segment (start 186.5 62.48) (end 187.88 62.48) (width 0.75) (layer "F.Cu") (net 3) (tstamp c600ad9c-c5a0-47b8-892b-64dce6e5c1e4))
+  (segment (start 136.91 51.59) (end 172.34 51.59) (width 0.5) (layer "F.Cu") (net 3) (tstamp caf1d471-3742-49f8-94f0-954802c0935f))
+  (segment (start 185.079002 69) (end 184.3 69) (width 0.75) (layer "F.Cu") (net 3) (tstamp d7c2c7a3-ab51-43c2-9840-6c34a73931b1))
+  (segment (start 184.3 69) (end 184.3 68.95) (width 0.75) (layer "F.Cu") (net 3) (tstamp dce2ab54-8dd3-4538-af51-eca4bee3589a))
+  (segment (start 189 66) (end 186 69) (width 0.75) (layer "F.Cu") (net 3) (tstamp e3d9c2bb-b3aa-4a9b-b17d-103dd5a1a0d5))
+  (segment (start 187.88 62.48) (end 189 63.6) (width 0.75) (layer "F.Cu") (net 3) (tstamp e587718a-f404-404d-bb9e-fea28e0fcc8f))
+  (segment (start 181.5 74.6) (end 180 73.1) (width 0.75) (layer "F.Cu") (net 3) (tstamp fc7ff184-7c95-4835-a755-b9d0e9eda478))
+  (segment (start 151.724264 92.5) (end 144.124264 84.9) (width 0.25) (layer "F.Cu") (net 4) (tstamp 1fba7abc-a24d-4659-a0e9-434b8726f6f4))
+  (segment (start 144.124264 84.9) (end 142.9 84.9) (width 0.25) (layer "F.Cu") (net 4) (tstamp 7b7fd913-f8d4-4c69-a59e-d9a1c541b3c7))
+  (segment (start 134 76.9) (end 135.299996 76.9) (width 0.25) (layer "F.Cu") (net 4) (tstamp 870ac517-5eb5-4bb8-8519-3a59abfb7edb))
+  (segment (start 130.725001 80.975001) (end 130.75 81) (width 0.25) (layer "F.Cu") (net 4) (tstamp b3890e86-635f-4518-9fba-a117504c21ee))
+  (segment (start 156 92.5) (end 156 93.5) (width 0.25) (layer "F.Cu") (net 4) (tstamp ddc39f63-d4d5-4efe-8733-49d82edfb329))
+  (segment (start 130.75 81) (end 130.75 80.15) (width 0.25) (layer "F.Cu") (net 4) (tstamp f2495fd3-a5fa-4306-b9b4-4a6e72f57219))
+  (segment (start 130.75 80.15) (end 134 76.9) (width 0.25) (layer "F.Cu") (net 4) (tstamp f6e4bd8a-00c2-421c-9c3c-aa68d539c8d4))
+  (segment (start 156 92.5) (end 151.724264 92.5) (width 0.25) (layer "F.Cu") (net 4) (tstamp f80cf4ee-6307-4983-b042-594db6b195bb))
+  (via (at 156 93.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 4) (tstamp 7260d338-0f09-401b-a712-5c5d5071060b))
+  (via (at 135.299996 76.9) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 4) (tstamp 811499db-a998-4909-8228-aa7cb0fdfd96))
+  (via (at 142.9 84.9) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 4) (tstamp e3498ff3-157a-46d6-99ba-b7eae274bbd0))
+  (segment (start 156.2 93.5) (end 157 94.3) (width 0.25) (layer "B.Cu") (net 4) (tstamp 12248a9e-859d-4d98-b795-6881bd5b0eb8))
+  (segment (start 155 94.3) (end 157 94.3) (width 0.25) (layer "B.Cu") (net 4) (tstamp 5f033dd7-6bee-4589-b40a-d40f4a9b051f))
+  (segment (start 135.299996 65.110004) (end 135.299996 76.475736) (width 0.25) (layer "B.Cu") (net 4) (tstamp 71b06548-5886-4c17-90ca-5b4482da17b8))
+  (segment (start 135.66 64.75) (end 135.299996 65.110004) (width 0.25) (layer "B.Cu") (net 4) (tstamp 9cce8a80-9df9-4d0c-b1e8-201f754d4b4d))
+  (segment (start 135.299996 76.475736) (end 135.299996 76.9) (width 0.25) (layer "B.Cu") (net 4) (tstamp 9ec667c7-4fe4-45fa-b8fb-e2c4966d867e))
+  (segment (start 140.939996 84.574998) (end 142.574998 84.574998) (width 0.25) (layer "B.Cu") (net 4) (tstamp b3905ad1-f4c8-4cd1-9d9a-ae99a1942aed))
+  (segment (start 142.574998 84.574998) (end 142.9 84.9) (width 0.25) (layer "B.Cu") (net 4) (tstamp be875595-f089-414b-8768-a2a0c09f759f))
+  (segment (start 156 93.5) (end 156.2 93.5) (width 0.25) (layer "B.Cu") (net 4) (tstamp c483161c-0f18-424e-9ea8-0e5a39cd7631))
+  (segment (start 135.7 77.300004) (end 135.7 79.335002) (width 0.25) (layer "B.Cu") (net 4) (tstamp db035123-194a-4d5c-b8ad-92a2748aad67))
+  (segment (start 135.7 79.335002) (end 140.939996 84.574998) (width 0.25) (layer "B.Cu") (net 4) (tstamp e33993a0-f579-4480-9fcd-fd361e3c395c))
+  (segment (start 135.299996 76.9) (end 135.7 77.300004) (width 0.25) (layer "B.Cu") (net 4) (tstamp e37baa98-e536-47dc-bc75-97dc6608efc6))
+  (segment (start 126.850014 76.749986) (end 126.850014 76.5) (width 0.25) (layer "F.Cu") (net 5) (tstamp 0dd64e87-07f9-42b5-be24-8368b2e1fd4f))
+  (segment (start 148.9 92.5) (end 141.6 85.2) (width 0.25) (layer "F.Cu") (net 5) (tstamp 357c1495-de09-4372-82e2-f359c24efe99))
+  (segment (start 150 92.5) (end 148.9 92.5) (width 0.25) (layer "F.Cu") (net 5) (tstamp 613d9888-09a6-42bc-b184-a0d5f3d07b8a))
+  (segment (start 125.75 77) (end 126.6 77) (width 0.25) (layer "F.Cu") (net 5) (tstamp 7eb96c09-057f-47ae-a2be-daef99d22505))
+  (segment (start 150 92.5) (end 150 94) (width 0.25) (layer "F.Cu") (net 5) (tstamp 869b5dc9-cd65-42e6-9008-d12318cfa574))
+  (segment (start 126.6 77) (end 126.850014 76.749986) (width 0.25) (layer "F.Cu") (net 5) (tstamp a350f706-e736-4de9-b2ae-716378609a66))
+  (segment (start 149.97 92.47) (end 150 92.5) (width 0.25) (layer "F.Cu") (net 5) (tstamp f8354b26-ac1b-4156-a91b-5c6e1ed11c6b))
+  (via (at 150 94) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 5) (tstamp 120c98d8-ef37-4b2c-b744-9ca30c8b9855))
+  (via (at 126.850014 76.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 5) (tstamp 2aaff3d7-064b-4446-ad32-3e509b2edfc6))
+  (via (at 141.6 85.2) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 5) (tstamp cb89e14f-811a-4f6c-9b4d-e8f27beee4f9))
+  (segment (start 132.175736 76.5) (end 126.850014 76.5) (width 0.25) (layer "B.Cu") (net 5) (tstamp 0577970f-2f6d-4bd6-a15c-14a4eb34a476))
+  (segment (start 149 94.125) (end 151.695 94.125) (width 0.25) (layer "B.Cu") (net 5) (tstamp 19c0f53d-9aec-4399-b8c6-3f6b39fef676))
+  (segment (start 140.875736 85.2) (end 132.175736 76.5) (width 0.25) (layer "B.Cu") (net 5) (tstamp 6f33daed-b6bd-44b5-90ef-5c4c3a4d24ca))
+  (segment (start 151.695 94.125) (end 151.87 93.95) (width 0.25) (layer "B.Cu") (net 5) (tstamp 9d99a65d-b86d-4661-ad7f-f1b9e3bce5f1))
+  (segment (start 141.6 85.2) (end 140.875736 85.2) (width 0.25) (layer "B.Cu") (net 5) (tstamp df75d43e-350c-41c0-93b2-bc8849ca95c0))
+  (segment (start 161 94.7) (end 161 95.75) (width 0.25) (layer "F.Cu") (net 6) (tstamp 18fe304b-567f-4037-b517-af4fe214a583))
+  (segment (start 161 95.75) (end 161 96.5) (width 0.25) (layer "F.Cu") (net 6) (tstamp 577e2669-c1ce-4059-83d4-f61d1d5c18f0))
+  (segment (start 165 94.7) (end 165 95.75) (width 0.25) (layer "F.Cu") (net 7) (tstamp 76f0e08c-6f58-4cf3-a875-ce21c2a82e62))
+  (segment (start 165 95.75) (end 165 96.5) (width 0.25) (layer "F.Cu") (net 7) (tstamp 93c27cfa-638a-4cda-9ad6-699149a870d1))
+  (segment (start 125.75 66.71) (end 128.46 64) (width 0.25) (layer "F.Cu") (net 8) (tstamp 5974d8de-2485-446c-a9ce-e140dbaf433a))
+  (segment (start 125.75 71.5) (end 125.75 66.71) (width 0.25) (layer "F.Cu") (net 8) (tstamp 7683f6eb-92b6-4bdd-a140-4dfbc1e18d61))
+  (segment (start 133.455002 64) (end 133.54 64) (width 0.25) (layer "F.Cu") (net 9) (tstamp 159b112d-029d-4c1d-9e48-f878f840ae53))
+  (segment (start 128.75 68.705002) (end 133.455002 64) (width 0.25) (layer "F.Cu") (net 9) (tstamp 8fa1c76e-9ce8-4858-924e-beb09cdf5c2b))
+  (segment (start 128.75 69.5) (end 128.75 68.705002) (width 0.25) (layer "F.Cu") (net 9) (tstamp bf790f21-6e2c-4b17-b7d0-d768c16eb330))
+  (segment (start 137.25 73.5) (end 138.4 73.5) (width 0.25) (layer "F.Cu") (net 10) (tstamp 5c127732-c78f-43c9-8fb3-afd50e517212))
+  (segment (start 138.4 73.5) (end 138.5 73.4) (width 0.25) (layer "F.Cu") (net 10) (tstamp 7cd3a744-1205-4d17-828c-c5539d420488))
+  (segment (start 157.27 70.03) (end 154.2 73.1) (width 0.25) (layer "F.Cu") (net 10) (tstamp 9e9979f8-74b3-4a66-aa33-07a811b13fe1))
+  (segment (start 157.27 67) (end 157.27 66.2) (width 0.25) (layer "F.Cu") (net 10) (tstamp ad2389eb-a797-4c98-8547-83b5488f9520))
+  (segment (start 157.27 66.2) (end 156.02 64.95) (width 0.25) (layer "F.Cu") (net 10) (tstamp c3520837-0315-46e3-84f3-f7585385d0e7))
+  (segment (start 157.27 67) (end 157.27 70.03) (width 0.25) (layer "F.Cu") (net 10) (tstamp d8e030a7-e654-4674-94e8-9ff040818d99))
+  (via (at 138.5 73.4) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 10) (tstamp 8b0ea70f-c793-47a2-b74f-a51765923616))
+  (via (at 154.2 73.1) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 10) (tstamp a714217a-ac43-48da-bb15-7cea8c52f7a0))
+  (via (at 156.02 64.95) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 10) (tstamp f535c6b4-1e91-4031-aede-1362678f886e))
+  (segment (start 156.02 64.95) (end 156.02 63.22) (width 0.25) (layer "B.Cu") (net 10) (tstamp 19a6892e-c10b-4aa5-8897-8b28472b1b10))
+  (segment (start 156.02 63.22) (end 156 63.2) (width 0.25) (layer "B.Cu") (net 10) (tstamp 6e610f79-39db-4fc8-9293-ad0847ac2c05))
+  (segment (start 153.9 73.4) (end 154.2 73.1) (width 0.25) (layer "B.Cu") (net 10) (tstamp 9f3bb820-681f-4aad-93fb-96a48fa4d1db))
+  (segment (start 138.5 73.4) (end 153.9 73.4) (width 0.25) (layer "B.Cu") (net 10) (tstamp b3c2ca66-69f5-485d-b638-dcb3bd4a2a98))
+  (segment (start 158.54 67) (end 158.54 68.293588) (width 0.25) (layer "F.Cu") (net 11) (tstamp 269eb8f3-f039-427b-acf0-11337bf745a4))
+  (segment (start 160.485002 77.899998) (end 160.485002 70.23859) (width 0.25) (layer "F.Cu") (net 11) (tstamp 33af7579-8204-4896-a186-2f8b3edc2b2f))
+  (segment (start 152.25 86.135) (end 160.485002 77.899998) (width 0.25) (layer "F.Cu") (net 11) (tstamp 40a37c2f-eda7-4239-b218-397a96131b4d))
+  (segment (start 131.25 68.513589) (end 133.3136 66.449989) (width 0.25) (layer "F.Cu") (net 11) (tstamp 45a673d4-8527-4943-8506-123c4dba8dc5))
+  (segment (start 131.25 69.5) (end 131.25 68.513589) (width 0.25) (layer "F.Cu") (net 11) (tstamp 4629436d-5496-4748-8840-f542174aceac))
+  (segment (start 158.54 68.293588) (end 158.539997 68.293585) (width 0.25) (layer "F.Cu") (net 11) (tstamp 5d90b310-ff81-4999-801f-4e2cf421fc20))
+  (segment (start 133.3136 66.449989) (end 139.074999 66.449989) (width 0.25) (layer "F.Cu") (net 11) (tstamp 71cc020a-f79f-4ead-a84c-45f15c923e92))
+  (segment (start 160.485002 70.23859) (end 158.54 68.293588) (width 0.25) (layer "F.Cu") (net 11) (tstamp 7edd535c-5e18-47c5-9ecf-f3d57d4dab45))
+  (segment (start 158.6 65.7) (end 158.6 66.94) (width 0.25) (layer "F.Cu") (net 11) (tstamp 8d2ee6ad-1423-41a5-8d02-46b946833e10))
+  (segment (start 139.074999 66.449989) (end 140 67.37499) (width 0.25) (layer "F.Cu") (net 11) (tstamp b310f45f-1414-4a7f-9393-5527a4b3e3ee))
+  (segment (start 151.85 86.135) (end 152.25 86.135) (width 0.25) (layer "F.Cu") (net 11) (tstamp b8d749f5-f565-4682-90b4-6482fe77c510))
+  (segment (start 158.6 66.94) (end 158.54 67) (width 0.25) (layer "F.Cu") (net 11) (tstamp d5c48191-8fd0-4c30-b881-cf1d24161aee))
+  (via (at 158.6 65.7) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 11) (tstamp 1d12b051-2d49-4156-b0ca-daef19c3e289))
+  (via (at 140 67.37499) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 11) (tstamp 1d6a9b90-d43a-4cb0-8175-0d3a753f7b63))
+  (via (at 158.539997 68.293585) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 11) (tstamp 1f9ddcac-76d1-4197-a4be-a6d9835f60d9))
+  (segment (start 143.849989 68.549989) (end 142.67499 67.37499) (width 0.25) (layer "B.Cu") (net 11) (tstamp 0e033b42-24c0-438c-b6ee-1bb5281b0ff2))
+  (segment (start 158 63.375) (end 158 65.1) (width 0.25) (layer "B.Cu") (net 11) (tstamp 57937c62-fa4d-4993-8858-e7afe6dcbdc8))
+  (segment (start 158.283593 68.549989) (end 143.849989 68.549989) (width 0.25) (layer "B.Cu") (net 11) (tstamp 5e32d281-fccf-48dc-979d-1e0017a395e1))
+  (segment (start 158.539997 68.293585) (end 158.283593 68.549989) (width 0.25) (layer "B.Cu") (net 11) (tstamp 95622fcb-d366-42f6-a21e-a59febe140c2))
+  (segment (start 142.67499 67.37499) (end 140 67.37499) (width 0.25) (layer "B.Cu") (net 11) (tstamp c0b68850-7901-415c-8d0b-122ee3b7d9a3))
+  (segment (start 158 65.1) (end 158.6 65.7) (width 0.25) (layer "B.Cu") (net 11) (tstamp f5b3e999-7bc3-464e-b7cd-368c5ebe8235))
+  (segment (start 152.875001 86.171409) (end 152.875001 86.779999) (width 0.25) (layer "F.Cu") (net 12) (tstamp 00be3958-b73d-46b7-af5a-9761441350c2))
+  (segment (start 159.81 67.7) (end 159.81 68.59) (width 0.25) (layer "F.Cu") (net 12) (tstamp 061543a1-8513-41f8-9aff-74c3e94f54ad))
+  (segment (start 131.75 68.65) (end 133.5 66.9) (width 0.25) (layer "F.Cu") (net 12) (tstamp 0c7f9a69-8f62-4e6b-9b10-57892bba2053))
+  (segment (start 159.81 68.59) (end 159.8 68.6) (width 0.25) (layer "F.Cu") (net 12) (tstamp 0fee27cc-7c1f-4813-ab6f-c593d87cead8))
+  (segment (start 131.75 69.5) (end 131.75 68.65) (width 0.25) (layer "F.Cu") (net 12) (tstamp 46a44b4c-cfb3-4e91-b241-9a15d40b2fa6))
+  (segment (start 160.935012 69.735012) (end 160.935012 69.935012) (width 0.25) (layer "F.Cu") (net 12) (tstamp 5603ccf3-5955-43ad-b3fa-3e15e2400755))
+  (segment (start 159.8 68.6) (end 160.935012 69.735012) (width 0.25) (layer "F.Cu") (net 12) (tstamp 7c658092-88b9-4a32-a37b-848161e27385))
+  (segment (start 159.81 67) (end 159.81 64.79) (width 0.25) (layer "F.Cu") (net 12) (tstamp 8760d8e4-9689-4b06-a77f-06c32ee17238))
+  (segment (start 159.81 64.79) (end 159.89 64.71) (width 0.25) (layer "F.Cu") (net 12) (tstamp 91a261c5-7f10-4994-86cf-19b58976fc62))
+  (segment (start 138.20535 66.9) (end 139.309689 68.004339) (width 0.25) (layer "F.Cu") (net 12) (tstamp b5c4fb0b-cb55-4069-a14a-fba42d15e90a))
+  (segment (start 160.935012 78.111399) (end 152.875001 86.171409) (width 0.25) (layer "F.Cu") (net 12) (tstamp bfcebc25-8043-4ba7-a365-edf5034d1985))
+  (segment (start 159.81 67) (end 159.81 67.7) (width 0.25) (layer "F.Cu") (net 12) (tstamp c48856cb-520f-4a8f-b3c9-f4437db288f7))
+  (segment (start 152.25 87.405) (end 151.85 87.405) (width 0.25) (layer "F.Cu") (net 12) (tstamp ccfe2ae4-e943-4c57-9413-7d012b4c52f1))
+  (segment (start 133.5 66.9) (end 138.20535 66.9) (width 0.25) (layer "F.Cu") (net 12) (tstamp dc2ee052-c8a5-473e-842a-7ca9b999cc61))
+  (segment (start 152.875001 86.779999) (end 152.25 87.405) (width 0.25) (layer "F.Cu") (net 12) (tstamp e1d9648a-0fd4-46c7-ae42-82ba26e8d40d))
+  (segment (start 160.935012 69.935012) (end 160.935012 78.111399) (width 0.25) (layer "F.Cu") (net 12) (tstamp f1c6fd34-7992-4c6d-9b5e-8149da241d36))
+  (via (at 159.8 68.6) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 12) (tstamp 0877c9d7-21d8-43e4-ab33-2cf37202c846))
+  (via (at 159.89 64.71) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 12) (tstamp 2b4fc30b-ffc8-4726-af3a-394a0234723b))
+  (via (at 139.309689 68.004339) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 12) (tstamp 2d0cfbdf-d23b-438d-9641-ecb427f21e76))
+  (segment (start 159.8 68.6) (end 159.400002 68.999998) (width 0.25) (layer "B.Cu") (net 12) (tstamp 1e01d124-6fab-49f4-bd25-f90f8fb4582b))
+  (segment (start 143.663588 68.999998) (end 142.66359 68) (width 0.25) (layer "B.Cu") (net 12) (tstamp 7b0d0e18-2b13-491f-bc90-2dcc43b0aa50))
+  (segment (start 139.314028 68) (end 139.309689 68.004339) (width 0.25) (layer "B.Cu") (net 12) (tstamp 7b2f0f37-083c-40d7-bbae-9b36f0cffda8))
+  (segment (start 159.89 64.71) (end 159.89 63.31) (width 0.25) (layer "B.Cu") (net 12) (tstamp 7c38eb5d-e47e-4477-b4ca-5390c954c5d9))
+  (segment (start 159.400002 68.999998) (end 143.663588 68.999998) (width 0.25) (layer "B.Cu") (net 12) (tstamp 8a4b86f3-4830-4cd3-b218-69437b8afe67))
+  (segment (start 142.66359 68) (end 139.314028 68) (width 0.25) (layer "B.Cu") (net 12) (tstamp b5604ba0-12b0-4628-8465-737773152156))
+  (segment (start 159.89 63.31) (end 160 63.2) (width 0.25) (layer "B.Cu") (net 12) (tstamp ec68e5db-7b6c-47bd-9a73-437197a7ee55))
+  (segment (start 150.545 84.865) (end 150.54 84.86) (width 0.25) (layer "F.Cu") (net 13) (tstamp 72840fa6-2790-4428-a899-26c666df80e5))
+  (segment (start 151.85 84.865) (end 150.545 84.865) (width 0.25) (layer "F.Cu") (net 13) (tstamp 85c17500-96bf-4afa-8b5c-75c21a009e25))
+  (segment (start 128.75 81) (end 128.75 82.19) (width 0.25) (layer "F.Cu") (net 13) (tstamp 8fbf7e48-cec2-443c-b396-342568ceb26c))
+  (segment (start 128.75 82.19) (end 128.91 82.35) (width 0.25) (layer "F.Cu") (net 13) (tstamp ef72e99e-da18-43cd-b343-217c6d93cf8b))
+  (via (at 128.91 82.35) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 13) (tstamp 2b186d2a-bf3c-41b3-be3a-c539665c76dc))
+  (via (at 150.54 84.86) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 13) (tstamp 30635e85-f503-48e6-8c09-1eb9fae5fb53))
+  (segment (start 132.76 86.2) (end 147.349994 86.2) (width 0.25) (layer "B.Cu") (net 13) (tstamp 0e4ef516-3ad4-40c4-8157-088d2b334326))
+  (segment (start 147.349994 86.2) (end 148.424994 85.125) (width 0.25) (layer "B.Cu") (net 13) (tstamp 30f53c66-9c59-406e-96f4-2837c51589a8))
+  (segment (start 150.240001 85.159999) (end 150.54 84.86) (width 0.25) (layer "B.Cu") (net 13) (tstamp 3c862668-25fc-4ea8-ba5c-33ceadb4b206))
+  (segment (start 128.91 82.35) (end 132.76 86.2) (width 0.25) (layer "B.Cu") (net 13) (tstamp 416c3ecb-2847-4d49-9afb-697241a5fa0e))
+  (segment (start 148.424994 85.125) (end 149.5 85.125) (width 0.25) (layer "B.Cu") (net 13) (tstamp d26e4c41-4dec-4843-a579-b1b75b86eed1))
+  (segment (start 130.25 81.85) (end 130.25 81) (width 0.25) (layer "F.Cu") (net 23) (tstamp 1881a7a2-63a5-47a8-a892-6384c080a546))
+  (segment (start 130.25 85.25) (end 130.25 81.85) (width 0.25) (layer "F.Cu") (net 23) (tstamp 1be1279a-51d8-40a7-a897-58edf8f76aa9))
+  (segment (start 131.1 85.75) (end 132.2 85.75) (width 0.25) (layer "F.Cu") (net 23) (tstamp 2ea8d21c-19c0-41f0-a9c9-db9789550f66))
+  (segment (start 131.85 85.75) (end 131.85 87.65) (width 0.25) (layer "F.Cu") (net 23) (tstamp 67c0c6c6-0605-424a-92fe-7b5d3b111f0a))
+  (segment (start 130.75 85.75) (end 130.25 85.25) (width 0.25) (layer "F.Cu") (net 23) (tstamp bc0d2fe9-6aaf-43b2-aa42-78aa498be142))
+  (segment (start 131.85 87.65) (end 132 87.8) (width 0.25) (layer "F.Cu") (net 23) (tstamp e0efda13-a1fd-44a9-b0fb-3d805f9f262c))
+  (segment (start 131.85 85.75) (end 130.75 85.75) (width 0.25) (layer "F.Cu") (net 23) (tstamp e6c99766-b3ce-453b-8cde-3042c469ef43))
+  (segment (start 128.15 87.65) (end 128 87.8) (width 0.25) (layer "F.Cu") (net 24) (tstamp 1e8ec56c-3a0e-497f-95b8-94fba67ab882))
+  (segment (start 129.25 85.75) (end 128.15 85.75) (width 0.25) (layer "F.Cu") (net 24) (tstamp 2206c10f-d7ca-4c95-9a77-c56d63779c6e))
+  (segment (start 129.75 81) (end 129.75 85.25) (width 0.25) (layer "F.Cu") (net 24) (tstamp 8a6c7474-d051-410b-82b4-c13041dbdf6e))
+  (segment (start 129.75 85.25) (end 129.25 85.75) (width 0.25) (layer "F.Cu") (net 24) (tstamp ea02232e-ef35-46e9-a871-7f87c2086403))
+  (segment (start 128.15 85.75) (end 128.15 87.65) (width 0.25) (layer "F.Cu") (net 24) (tstamp f0a6beed-ac74-4bfc-b6d6-839e02073a6d))
+  (segment (start 138.8 72.26) (end 138.56 72.5) (width 0.25) (layer "F.Cu") (net 25) (tstamp 19ac034a-8ca3-4a88-8f17-a2e1168051e9))
+  (segment (start 138.56 72.5) (end 137.25 72.5) (width 0.25) (layer "F.Cu") (net 25) (tstamp 8ac54b42-3d1f-4534-b8d0-b251541a9d0c))
+  (via (at 138.8 72.26) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 25) (tstamp 52437fdb-1069-4234-8283-9bc40bb96fe0))
+  (segment (start 139.5 72.2) (end 138.86 72.2) (width 0.25) (layer "B.Cu") (net 25) (tstamp 1f0cdff4-9fb6-4c7e-a5de-f226fc9b1f8f))
+  (segment (start 138.86 72.2) (end 138.8 72.26) (width 0.25) (layer "B.Cu") (net 25) (tstamp cb3d7bb1-4e15-45ec-89d3-d810beb8caa5))
+  (segment (start 130.75 69.5) (end 130.75 73.069977) (width 0.25) (layer "F.Cu") (net 26) (tstamp 01666d30-185a-42b1-af4b-85bfd8508e3e))
+  (segment (start 114.91 94.46) (end 114.95 94.5) (width 0.25) (layer "F.Cu") (net 26) (tstamp 0daef2b6-ae01-4ab7-be5d-9091dfc0f050))
+  (segment (start 130.75 73.069977) (end 131.300007 73.619984) (width 0.25) (layer "F.Cu") (net 26) (tstamp 7d42d22f-36a1-4b43-aae9-e3cc0a8c34ed))
+  (segment (start 114.44 94.46) (end 114.91 94.46) (width 0.25) (layer "F.Cu") (net 26) (tstamp 88849be3-be38-4396-9c12-dba9ceeb6f63))
+  (segment (start 131.300007 73.619984) (end 131.040011 73.359988) (width 0.25) (layer "F.Cu") (net 26) (tstamp c7f18456-e849-4bdc-b865-e16791434e14))
+  (segment (start 131.300007 73.619984) (end 131.300007 74.400001) (width 0.25) (layer "F.Cu") (net 26) (tstamp db229c2d-6194-48af-b458-781632d109c3))
+  (segment (start 131.300007 74.400001) (end 131.000008 74.7) (width 0.25) (layer "F.Cu") (net 26) (tstamp dc6351ce-ac44-4fbb-9ed9-46cfdc468ec6))
+  (via (at 114.44 94.46) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 26) (tstamp c684ab0e-88f9-4a68-913d-c112064a9313))
+  (via (at 131.000008 74.7) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 26) (tstamp fa36c250-0903-4003-af3e-3994dbc90608))
+  (segment (start 121.65 74.7) (end 131.000008 74.7) (width 0.25) (layer "B.Cu") (net 26) (tstamp 071006ad-e03a-49ad-b887-9cdb0954ff55))
+  (segment (start 117.117577 94.46) (end 119.38 92.197577) (width 0.25) (layer "B.Cu") (net 26) (tstamp 0ba2fe26-3699-40f8-acd0-1451e73b5dda))
+  (segment (start 119.38 92.197577) (end 119.38 76.97) (width 0.25) (layer "B.Cu") (net 26) (tstamp 297ab473-08bc-49f0-8a46-3b26d4eccf3f))
+  (segment (start 114.44 94.46) (end 117.117577 94.46) (width 0.25) (layer "B.Cu") (net 26) (tstamp 2d8ca491-51fa-4e19-a577-e22409e760e4))
+  (segment (start 119.38 76.97) (end 121.65 74.7) (width 0.25) (layer "B.Cu") (net 26) (tstamp d007bf59-c9b2-4335-8490-17b9f2f88051))
+  (segment (start 124.950011 82.049989) (end 124.950011 88.349989) (width 0.2) (layer "F.Cu") (net 27) (tstamp 2babf389-cb89-4865-a68b-83ff84e3c01b))
+  (segment (start 115.6 94.5) (end 115.6 93.491163) (width 0.25) (layer "F.Cu") (net 27) (tstamp 3a8f696d-9bbe-4be5-a5b7-690a5744e404))
+  (segment (start 115.6 93.491163) (end 116.921163 92.17) (width 0.25) (layer "F.Cu") (net 27) (tstamp 4eaefc58-85d2-4f22-b1aa-91483ca020b8))
+  (segment (start 129.75 70.400001) (end 129.725 70.425001) (width 0.2) (layer "F.Cu") (net 27) (tstamp 55b263d8-3aac-4b36-a801-837eb6afb5ae))
+  (segment (start 129.75 69.5) (end 129.75 70.400001) (width 0.2) (layer "F.Cu") (net 27) (tstamp 96668ef1-a7f1-49b3-b7a9-c2c40413bb39))
+  (segment (start 116.921163 92.17) (end 123.59 92.17) (width 0.25) (layer "F.Cu") (net 27) (tstamp a2e9c0cd-4922-4ece-92b3-a423cbe107ab))
+  (segment (start 129.725 70.425001) (end 129.725 77.275) (width 0.2) (layer "F.Cu") (net 27) (tstamp c429539e-3358-464c-ba94-5c588646a8e6))
+  (segment (start 129.725 77.275) (end 124.950011 82.049989) (width 0.2) (layer "F.Cu") (net 27) (tstamp f1c28855-32ec-459d-88c5-b22ffdf92d27))
+  (segment (start 124.950011 88.349989) (end 124.3 89) (width 0.25) (layer "F.Cu") (net 27) (tstamp fc871dac-8bcd-4eb5-968e-642092cea49a))
+  (via (at 124.3 89) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 27) (tstamp 7e21ac60-9f8f-484a-9153-8d2d8cf91fdb))
+  (via (at 123.59 92.17) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 27) (tstamp b83c0762-ea37-4221-9c44-0f2fec0da9ba))
+  (segment (start 123.59 89.71) (end 124.3 89) (width 0.25) (layer "B.Cu") (net 27) (tstamp 08b850ef-b9a5-4291-b89b-89cff02bd290))
+  (segment (start 123.59 92.17) (end 123.59 89.71) (width 0.25) (layer "B.Cu") (net 27) (tstamp 19c68bd6-9c12-4326-99ce-54b05f364eda))
+  (segment (start 116.25 94.5) (end 116.25 93.477573) (width 0.25) (layer "F.Cu") (net 28) (tstamp 05c5ccd7-b2eb-4189-a3d1-9eabec9ef366))
+  (segment (start 129.275 70.425001) (end 129.275 77.1593) (width 0.2) (layer "F.Cu") (net 28) (tstamp 120f198d-f4b1-402e-bfd3-17cae00391d5))
+  (segment (start 117.027572 92.700001) (end 122.020001 92.700001) (width 0.25) (layer "F.Cu") (net 28) (tstamp 33b687d3-79c8-4385-933f-1d41dbfef88c))
+  (segment (start 129.25 69.5) (end 129.25 70.400001) (width 0.2) (layer "F.Cu") (net 28) (tstamp 3437cde3-6092-4771-bf3f-89ef7617ff85))
+  (segment (start 122.020001 92.700001) (end 122.32 93) (width 0.25) (layer "F.Cu") (net 28) (tstamp 4c07f59c-f368-4b02-a924-7bbabcd232ea))
+  (segment (start 124.5 86.6) (end 124.5 87.616102) (width 0.25) (layer "F.Cu") (net 28) (tstamp 5a885798-1bcd-4f02-9172-3982d556c85f))
+  (segment (start 129.25 70.400001) (end 129.275 70.425001) (width 0.2) (layer "F.Cu") (net 28) (tstamp 5afe779a-4509-4ecb-80b2-e0e2b04a7594))
+  (segment (start 116.25 93.477573) (end 117.027572 92.700001) (width 0.25) (layer "F.Cu") (net 28) (tstamp 62b6782e-cc27-4b67-b863-a00b15298a5a))
+  (segment (start 124.5 87.616102) (end 124.028051 88.088051) (width 0.25) (layer "F.Cu") (net 28) (tstamp 6f77f2fa-a3fb-4922-a652-62becd905f33))
+  (segment (start 124.5 86.6) (end 124.5 87.191838) (width 0.2) (layer "F.Cu") (net 28) (tstamp 87bd6517-2bbb-43c5-b5f4-d7f635f9b68c))
+  (segment (start 124.5 81.9343) (end 124.5 86.6) (width 0.2) (layer "F.Cu") (net 28) (tstamp fb28e864-05e0-41f2-b612-bd296f0a3f0c))
+  (segment (start 129.275 77.1593) (end 124.5 81.9343) (width 0.2) (layer "F.Cu") (net 28) (tstamp fd275349-42ce-4272-8507-c196224d433d))
+  (via (at 122.32 93) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 28) (tstamp 60c2e195-c274-49e0-a0a8-a181ede10655))
+  (via (at 124.028051 88.088051) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 28) (tstamp 8d99fbd8-60fd-4e80-9137-2c8ce0adc3cf))
+  (segment (start 122.32 89.796102) (end 123.728052 88.38805) (width 0.25) (layer "B.Cu") (net 28) (tstamp 49c13fd7-47a0-4cd2-9db3-bd65af17c6cf))
+  (segment (start 123.728052 88.38805) (end 124.028051 88.088051) (width 0.25) (layer "B.Cu") (net 28) (tstamp 7dbb86b3-9ad5-4d61-b219-99fbc75fed7c))
+  (segment (start 122.32 93) (end 122.32 89.796102) (width 0.25) (layer "B.Cu") (net 28) (tstamp eb9dd847-1ff2-4b89-adce-4cf2071e55e6))
+  (segment (start 130.25 69.5) (end 130.25 73.494979) (width 0.25) (layer "F.Cu") (net 29) (tstamp 0eb22cdc-b091-422d-8fe6-9f7dcc763407))
+  (segment (start 130.25 73.494979) (end 130.455021 73.7) (width 0.25) (layer "F.Cu") (net 29) (tstamp 47063c90-f1b6-4c3e-93f9-f8c53621d041))
+  (segment (start 117.123158 93.529417) (end 116.9 93.752575) (width 0.25) (layer "F.Cu") (net 29) (tstamp a5084fb1-0cdc-4418-b564-f5e056646af2))
+  (segment (start 116.9 93.752575) (end 116.9 94.5) (width 0.25) (layer "F.Cu") (net 29) (tstamp fd25fb55-5d9c-401a-a46a-037cac1b1328))
+  (via (at 130.455021 73.7) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 29) (tstamp 47c0556f-5512-49ba-aceb-81eb9586ba56))
+  (via (at 117.123158 93.529417) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 29) (tstamp 846c5f5c-a17a-447a-9c1a-6d8ff3d7e310))
+  (segment (start 118.78 91.872575) (end 118.78 76.813589) (width 0.25) (layer "B.Cu") (net 29) (tstamp 128eefbc-2b05-45c4-b952-b5b982ea721f))
+  (segment (start 117.123158 93.529417) (end 118.78 91.872575) (width 0.25) (layer "B.Cu") (net 29) (tstamp 32f300ea-c61e-4461-b093-03379c1e6d2c))
+  (segment (start 118.78 76.813589) (end 121.893589 73.7) (width 0.25) (layer "B.Cu") (net 29) (tstamp 3c0bcb16-11da-4a02-8d5f-5155f9fb7fbe))
+  (segment (start 121.893589 73.7) (end 130.455021 73.7) (width 0.25) (layer "B.Cu") (net 29) (tstamp 80b06817-770f-43a5-9377-3f9d80fdcdb4))
+  (segment (start 134.074996 73) (end 132.174998 74.899998) (width 0.25) (layer "F.Cu") (net 42) (tstamp 3199341c-5e2a-4b19-99f3-165b09ee3ca8))
+  (segment (start 137.25 73) (end 134.074996 73) (width 0.25) (layer "F.Cu") (net 42) (tstamp 81979594-fd25-4fe8-a83e-d9d35bee294a))
+  (segment (start 132.174998 76.675002) (end 129.57 79.28) (width 0.25) (layer "F.Cu") (net 42) (tstamp b59d88d5-ad3f-4138-9377-b09a02530b5d))
+  (segment (start 132.174998 74.899998) (end 132.174998 76.675002) (width 0.25) (layer "F.Cu") (net 42) (tstamp f9c9eaee-1a7f-4493-8f09-86a2e63a8cbe))
+  (via (at 129.57 79.28) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 42) (tstamp 7639827c-11ee-4a39-9ff7-161efe2f11c0))
+  (segment (start 133.75 96.25) (end 127.440011 89.940011) (width 0.25) (layer "B.Cu") (net 42) (tstamp 6acf890d-3624-4741-8031-e085b4667fbf))
+  (segment (start 127.440011 89.940011) (end 127.440011 81.409989) (width 0.25) (layer "B.Cu") (net 42) (tstamp b4557454-82ae-4931-a261-9cd236acca28))
+  (segment (start 127.440011 81.409989) (end 129.57 79.28) (width 0.25) (layer "B.Cu") (net 42) (tstamp b676b93c-c940-46f4-ad69-1dc2541a83e3))
+  (segment (start 127.699999 77.300003) (end 127.4 77.600002) (width 0.25) (layer "F.Cu") (net 43) (tstamp 15b387f7-9e54-4c8a-9a08-6a422dfa7236))
+  (segment (start 127.699999 75.399999) (end 127.699999 77.300003) (width 0.25) (layer "F.Cu") (net 43) (tstamp 2ac3dbff-2bad-4803-8c44-4807748b1981))
+  (segment (start 126.8 74.5) (end 127.699999 75.399999) (width 0.25) (layer "F.Cu") (net 43) (tstamp 724b0f94-ead8-4e49-96bf-d17bced490ae))
+  (segment (start 125.75 74.5) (end 126.8 74.5) (width 0.25) (layer "F.Cu") (net 43) (tstamp eee996cc-1c1e-4dc8-b537-2b50de89c693))
+  (via (at 127.4 77.600002) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 43) (tstamp fa90cffd-3758-4083-8eda-ef9675fc3edf))
+  (segment (start 131.21 96.25) (end 131.21 94.41) (width 0.25) (layer "B.Cu") (net 43) (tstamp 16ee1105-995c-4275-8757-165380b8c73c))
+  (segment (start 131.21 94.41) (end 126.9 90.1) (width 0.25) (layer "B.Cu") (net 43) (tstamp af6855b2-4f30-423c-8622-dcf6bd8ce1d8))
+  (segment (start 126.9 90.1) (end 126.9 78.100002) (width 0.25) (layer "B.Cu") (net 43) (tstamp f34ce877-a292-4928-aa3c-ece465706fa5))
+  (segment (start 126.9 78.100002) (end 127.4 77.600002) (width 0.25) (layer "B.Cu") (net 43) (tstamp f6c3ef11-e9a0-438a-95b8-d184068d8f31))
+  (segment (start 169 94.7) (end 169 96) (width 0.25) (layer "F.Cu") (net 44) (tstamp 957f6d4a-da35-4e4c-85d9-8b02804c2ec3))
+  (segment (start 143.59998 74.7864) (end 143.59998 71.47499) (width 0.25) (layer "F.Cu") (net 45) (tstamp 03f366d6-4d94-4e07-b1fe-beaedcffc3a5))
+  (segment (start 136.431804 68.831804) (end 136.8 69.2) (width 0.25) (layer "F.Cu") (net 45) (tstamp 055d029b-2eae-4384-85d1-11ca6643511a))
+  (segment (start 135.3 69.4) (end 135.3 68.5) (width 0.25) (layer "F.Cu") (net 45) (tstamp 33be051d-247d-4ed3-b4a5-8350433f7c3d))
+  (segment (start 160.4 91.3) (end 152.8 91.3) (width 0.25) (layer "F.Cu") (net 45) (tstamp 452e425c-70ae-48d7-a267-f940d65bd8fc))
+  (segment (start 135.5 68.3) (end 135.9 68.3) (width 0.25) (layer "F.Cu") (net 45) (tstamp 64987695-8968-4dc6-9d3e-d1e36678cb17))
+  (segment (start 143.59998 78) (end 143.59998 74.7864) (width 0.25) (layer "F.Cu") (net 45) (tstamp 786ccbc2-66e3-422c-8f4f-cbba51e08930))
+  (segment (start 152.8 91.3) (end 143.59998 82.09998) (width 0.25) (layer "F.Cu") (net 45) (tstamp 85444161-ff2e-4061-921b-9f484d0e3c51))
+  (segment (start 143.59998 82.09998) (end 143.59998 78) (width 0.25) (layer "F.Cu") (net 45) (tstamp 9b227aac-9cb2-4c22-a730-b1d563d508c4))
+  (segment (start 135.3 68.5) (end 135.5 68.3) (width 0.25) (layer "F.Cu") (net 45) (tstamp b4fd3872-f99d-4f90-ad56-3d7763754504))
+  (segment (start 143.59998 71.47499) (end 143.42499 71.3) (width 0.25) (layer "F.Cu") (net 45) (tstamp baa03f64-dbc6-4acc-8b9d-770d684803e7))
+  (segment (start 161 93.125) (end 161 91.9) (width 0.25) (layer "F.Cu") (net 45) (tstamp c1790593-8f14-4ba8-af8b-66f7120da426))
+  (segment (start 161 91.9) (end 160.4 91.3) (width 0.25) (layer "F.Cu") (net 45) (tstamp c73ca4fd-6291-497f-81bd-f1df2e948a6c))
+  (segment (start 135.9 68.3) (end 136.431804 68.831804) (width 0.25) (layer "F.Cu") (net 45) (tstamp ea03c7cc-dbaf-4760-949b-e140779df07d))
+  (segment (start 135.25 69.45) (end 135.3 69.4) (width 0.25) (layer "F.Cu") (net 45) (tstamp eac58706-91c2-4029-b60d-03921c75c0a9))
+  (segment (start 135.25 69.5) (end 135.25 69.45) (width 0.25) (layer "F.Cu") (net 45) (tstamp f659622d-1d42-42cc-b780-d216e73f2a37))
+  (via (at 143.42499 71.3) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 45) (tstamp 19131cd6-a20e-4613-9f58-241aec2a8448))
+  (via (at 136.8 69.2) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 45) (tstamp 2352636e-2caa-4f06-a424-a1eb410d6ea1))
+  (segment (start 137.293482 69.693482) (end 136.8 69.2) (width 0.25) (layer "B.Cu") (net 45) (tstamp 2aeb546d-9cdc-48bb-8ab8-4f53942057c5))
+  (segment (start 143.42499 71.3) (end 141.818472 69.693482) (width 0.25) (layer "B.Cu") (net 45) (tstamp b39d3c1c-c41a-4fc1-82f4-dfb872616487))
+  (segment (start 141.818472 69.693482) (end 137.293482 69.693482) (width 0.25) (layer "B.Cu") (net 45) (tstamp f33314b7-6c77-49d6-9938-2362a2948160))
+  (segment (start 165 91.5) (end 164.3 90.8) (width 0.25) (layer "F.Cu") (net 46) (tstamp 013f3ca1-f25b-4f91-839a-dd587c5225a6))
+  (segment (start 134.75 69.5) (end 134.75 68.213589) (width 0.25) (layer "F.Cu") (net 46) (tstamp 120deb80-48a6-47d9-ab6e-2c5f80aad053))
+  (segment (start 144.04999 81.826402) (end 144.04999 74.6) (width 0.25) (layer "F.Cu") (net 46) (tstamp 30fbbe52-16ff-4ea0-96ca-a99efbfe1de3))
+  (segment (start 136.902431 68.381795) (end 137.589117 69.068481) (width 0.25) (layer "F.Cu") (net 46) (tstamp 3dbe07ff-4e6d-4e4a-a022-39c88a25e080))
+  (segment (start 136.370625 67.849989) (end 136.902431 68.381795) (width 0.25) (layer "F.Cu") (net 46) (tstamp 3e68ca10-51be-444d-a7be-84f5bc2fd28b))
+  (segment (start 144.04999 71.037678) (end 143.506156 70.493844) (width 0.25) (layer "F.Cu") (net 46) (tstamp 45e42d15-40ac-451d-aaee-5e01e47e3327))
+  (segment (start 135.1136 67.849989) (end 136.370625 67.849989) (width 0.25) (layer "F.Cu") (net 46) (tstamp 73d10974-1d2a-42c1-8e4b-811f4273f45c))
+  (segment (start 134.75 68.213589) (end 135.1136 67.849989) (width 0.25) (layer "F.Cu") (net 46) (tstamp 83d89b6e-4cc2-4129-9bfb-4730c584cd95))
+  (segment (start 153.023588 90.8) (end 144.04999 81.826402) (width 0.25) (layer "F.Cu") (net 46) (tstamp bb1a32bb-7902-4a89-9ff0-a7deb1d6c5c0))
+  (segment (start 165 93.125) (end 165 91.5) (width 0.25) (layer "F.Cu") (net 46) (tstamp e15a00e1-a8aa-4c22-b1ed-6cd7a4e4a40c))
+  (segment (start 144.04999 74.6) (end 144.04999 71.037678) (width 0.25) (layer "F.Cu") (net 46) (tstamp e5ff42f1-dbde-4378-b638-a259186aeca1))
+  (segment (start 164.3 90.8) (end 153.023588 90.8) (width 0.25) (layer "F.Cu") (net 46) (tstamp fb76784f-a285-4cc1-83f1-d88d5cb94c91))
+  (via (at 143.506156 70.493844) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 46) (tstamp 69f8a058-6c4a-4112-bb0f-04de7e9352e9))
+  (via (at 137.589117 69.068481) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 46) (tstamp b301a36a-c962-4f38-8cd6-9e14378235a4))
+  (segment (start 143.506156 70.493844) (end 142.255784 69.243472) (width 0.25) (layer "B.Cu") (net 46) (tstamp 0edb65c3-61fb-4bb6-b375-a1c8e4880fa4))
+  (segment (start 137.764108 69.243472) (end 137.589117 69.068481) (width 0.25) (layer "B.Cu") (net 46) (tstamp 3207b483-fe62-49dd-9c82-ed20fdd87ff6))
+  (segment (start 142.255784 69.243472) (end 137.764108 69.243472) (width 0.25) (layer "B.Cu") (net 46) (tstamp 3e50786a-6d1c-46f5-923a-bc3a78c959cd))
+  (segment (start 167.6 90.3) (end 153.159998 90.3) (width 0.25) (layer "F.Cu") (net 47) (tstamp 157d77be-1272-4f0b-a15e-8d04d75adcf1))
+  (segment (start 169 91.7) (end 167.6 90.3) (width 0.25) (layer "F.Cu") (net 47) (tstamp 21d45f10-2bf6-4299-84c6-bb483ae56a39))
+  (segment (start 153.159998 90.3) (end 144.5 81.640002) (width 0.25) (layer "F.Cu") (net 47) (tstamp 34d36846-768b-476f-b111-3830d77d951b))
+  (segment (start 134.800021 67.399979) (end 137.099979 67.399979) (width 0.25) (layer "F.Cu") (net 47) (tstamp 55f3f9a5-1805-40b6-bde5-05b56bd639c8))
+  (segment (start 144.5 70.603804) (end 143.499185 69.602989) (width 0.25) (layer "F.Cu") (net 47) (tstamp 7e401fb9-e117-4956-861e-47e3606f1076))
+  (segment (start 137.099979 67.399979) (end 138.2 68.5) (width 0.25) (layer "F.Cu") (net 47) (tstamp 80927170-850e-400e-817f-42a197a500bf))
+  (segment (start 144.5 81.640002) (end 144.5 70.603804) (width 0.25) (layer "F.Cu") (net 47) (tstamp 898b7348-8483-496a-bdbe-989d47d0378f))
+  (segment (start 169 93.125) (end 169 91.7) (width 0.25) (layer "F.Cu") (net 47) (tstamp 91a61328-f2bf-43f5-8a8f-792284b8f254))
+  (segment (start 134.25 67.95) (end 134.800021 67.399979) (width 0.25) (layer "F.Cu") (net 47) (tstamp 9211dbbc-7b22-4150-897a-f0b161340b3a))
+  (segment (start 134.25 69.5) (end 134.25 67.95) (width 0.25) (layer "F.Cu") (net 47) (tstamp f0eaf32f-34db-4e61-a151-d7281a2ce7ac))
+  (via (at 143.499185 69.602989) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 47) (tstamp 8c0a5061-c266-4fde-8c76-c26352fbf1cf))
+  (via (at 138.2 68.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 47) (tstamp ecdf80bc-1ad9-4e51-afaf-669c72632552))
+  (segment (start 138.493462 68.793462) (end 138.2 68.5) (width 0.25) (layer "B.Cu") (net 47) (tstamp a64680d2-6410-4b86-ad27-c2f1971df75d))
+  (segment (start 143.499185 69.602989) (end 142.689658 68.793462) (width 0.25) (layer "B.Cu") (net 47) (tstamp d4843c4c-815b-4467-9d3d-956e9849c5e6))
+  (segment (start 142.689658 68.793462) (end 138.493462 68.793462) (width 0.25) (layer "B.Cu") (net 47) (tstamp e0b72202-343c-4c7a-941a-32c84bc58bb3))
+  (segment (start 135.3 75.3) (end 132.87499 75.3) (width 0.25) (layer "F.Cu") (net 48) (tstamp 4df8c81e-6c94-4dad-8785-a801882fa5b7))
+  (segment (start 136.4 77.5) (end 136.3 77.4) (width 0.25) (layer "F.Cu") (net 48) (tstamp 648a042c-f2bc-4e5f-8b6b-7f8b9ba553bc))
+  (segment (start 136.3 77.4) (end 136.3 76.3) (width 0.25) (layer "F.Cu") (net 48) (tstamp 85f598c4-29e2-4667-9a45-ce0b97b51a8f))
+  (segment (start 136.3 76.3) (end 135.3 75.3) (width 0.25) (layer "F.Cu") (net 48) (tstamp 8d427eb2-aa02-49dd-8e85-2832377202fb))
+  (segment (start 137.25 77.5) (end 136.4 77.5) (width 0.25) (layer "F.Cu") (net 48) (tstamp d39fa371-6c8c-4743-809b-540e5fdd080f))
+  (via (at 132.87499 75.3) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 48) (tstamp 740b7dd6-0323-4c7c-9501-6b568e1cab6b))
+  (segment (start 133.1 75.07499) (end 132.87499 75.3) (width 0.25) (layer "B.Cu") (net 48) (tstamp 08eda12a-ae7a-4288-8ad2-332fb5d15c1f))
+  (segment (start 122.29 54) (end 122.29 64.926411) (width 0.25) (layer "B.Cu") (net 48) (tstamp 15f64891-0b52-4c9b-b79f-33134198e269))
+  (segment (start 124.8136 67.450011) (end 129.950011 67.450011) (width 0.25) (layer "B.Cu") (net 48) (tstamp 268a27cd-e823-4390-bc5c-af0247b29cc0))
+  (segment (start 133.1 70.6) (end 133.1 75.07499) (width 0.25) (layer "B.Cu") (net 48) (tstamp 90bac079-871a-4ff1-8f59-724adc8c995d))
+  (segment (start 122.29 64.926411) (end 124.8136 67.450011) (width 0.25) (layer "B.Cu") (net 48) (tstamp 95d77591-2183-41bf-8fff-0b1a8bbc198a))
+  (segment (start 129.950011 67.450011) (end 133.1 70.6) (width 0.25) (layer "B.Cu") (net 48) (tstamp d9b36dee-cca6-4d59-b10d-798319a46316))
+  (segment (start 134.75 81) (end 134.75 78.17501) (width 0.25) (layer "F.Cu") (net 49) (tstamp 6e3b5f4c-53a6-46bd-9b76-cacee014986b))
+  (segment (start 134.75 78.17501) (end 134.47499 77.9) (width 0.25) (layer "F.Cu") (net 49) (tstamp f34b9e68-88e1-475d-8e3f-89298a5c53c1))
+  (via (at 134.47499 77.9) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 49) (tstamp a47dfe3a-c73e-4c59-918d-2d1a1d9ab103))
+  (segment (start 133.6 77.02501) (end 134.47499 77.9) (width 0.25) (layer "B.Cu") (net 49) (tstamp 66435759-7dbe-4f4e-b442-fffe09455cc6))
+  (segment (start 132.03763 55) (end 124 63.03763) (width 0.25) (layer "B.Cu") (net 49) (tstamp 6aeeb0c6-a2be-44ac-9e97-3e9094afb014))
+  (segment (start 132.21 53.75) (end 132.21 54.82763) (width 0.25) (layer "B.Cu") (net 49) (tstamp 7f7049eb-7c52-4d97-a3a9-48e041f47653))
+  (segment (start 132.21 54.82763) (end 132.03763 55) (width 0.25) (layer "B.Cu") (net 49) (tstamp 9ab871b0-4d2a-42ed-abfe-f7060140ab41))
+  (segment (start 132.03763 55) (end 132.024999 55.012631) (width 0.25) (layer "B.Cu") (net 49) (tstamp 9ca328be-1be4-42f9-8f52-cf9d9d393e38))
+  (segment (start 130.136411 67) (end 133.6 70.463589) (width 0.25) (layer "B.Cu") (net 49) (tstamp bdb36d06-f8a4-42b8-9b66-504b872be465))
+  (segment (start 124 63.03763) (end 124 66) (width 0.25) (layer "B.Cu") (net 49) (tstamp e2d628c1-30c5-4094-8cde-64d5008a2c05))
+  (segment (start 133.6 70.463589) (end 133.6 77.02501) (width 0.25) (layer "B.Cu") (net 49) (tstamp ebf31af7-5a34-49fb-a396-ce2f5838efa8))
+  (segment (start 125 67) (end 130.136411 67) (width 0.25) (layer "B.Cu") (net 49) (tstamp f00e46e3-ecf5-4c06-9bfb-d68122910fb1))
+  (segment (start 124 66) (end 125 67) (width 0.25) (layer "B.Cu") (net 49) (tstamp f3eef644-6878-4516-b62d-49bd8f2bdb16))
+  (segment (start 104.5 75.5) (end 103 75.5) (width 0.25) (layer "F.Cu") (net 50) (tstamp afeeb5d1-0bbf-4b30-af7c-46888d240747))
+  (via (at 104.5 75.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 50) (tstamp bb9387bb-5ae9-416e-936f-1a70b7a50f48))
+  (segment (start 105.3 75.5) (end 104.5 75.5) (width 0.25) (layer "B.Cu") (net 50) (tstamp 64d8e80a-c8b1-4837-bcaf-a0249113f3c3))
+  (segment (start 143.5 92.5) (end 140.72 92.5) (width 0.25) (layer "F.Cu") (net 60) (tstamp 0c14b281-1dd1-4a9c-8869-e6428234a508))
+  (segment (start 134.25 81.85) (end 134.25 81) (width 0.25) (layer "F.Cu") (net 60) (tstamp 80914d1f-dfce-4a03-bd89-ec767ca57785))
+  (segment (start 140.72 92.5) (end 137.86 89.64) (width 0.25) (layer "F.Cu") (net 60) (tstamp 91e76d47-f0ba-449b-a279-e84d782b9a00))
+  (segment (start 135.319998 86.89) (end 135.319998 82.919998) (width 0.25) (layer "F.Cu") (net 60) (tstamp a03d44fd-38a2-459c-8718-a6b0d273e1e0))
+  (segment (start 135.319998 82.919998) (end 134.25 81.85) (width 0.25) (layer "F.Cu") (net 60) (tstamp a68350e2-f9de-4bd0-8bc7-91cadc504d90))
+  (segment (start 143.5 92.5) (end 143.5 93.5) (width 0.25) (layer "F.Cu") (net 60) (tstamp d1a256e4-0cd0-4f82-8d07-5fe1ccdc1e18))
+  (via (at 143.5 93.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 60) (tstamp 397b13b2-8d31-4abc-9b55-d0c45cb63ee4))
+  (via (at 135.319998 86.89) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 60) (tstamp 4d0ccf04-9254-4850-ac4b-a2a9b09ac6d1))
+  (via (at 137.86 89.64) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 60) (tstamp 69ed0fe4-573b-4226-94f9-dc0a38449d7b))
+  (segment (start 143.5 93.5) (end 143.7 93.5) (width 0.25) (layer "B.Cu") (net 60) (tstamp 19fc1123-1b21-494a-877d-595ef5234157))
+  (segment (start 143.7 93.5) (end 144.5 94.3) (width 0.25) (layer "B.Cu") (net 60) (tstamp 31a92b4b-6537-483d-b6db-35d17ceac380))
+  (segment (start 144.5 94.3) (end 144.35 94.3) (width 0.25) (layer "B.Cu") (net 60) (tstamp 31f4a359-4ef1-4abd-af18-a4f03fd742c8))
+  (segment (start 142.5 94.3) (end 144.5 94.3) (width 0.25) (layer "B.Cu") (net 60) (tstamp 646834cf-3b03-4f3f-a7a0-c7a6f7a0080c))
+  (segment (start 144.5 94.3) (end 144.3 94.3) (width 0.25) (layer "B.Cu") (net 60) (tstamp 7181b49c-db79-41c9-934d-7b4f3b7ae8ed))
+  (segment (start 137.86 89.64) (end 135.319998 87.099998) (width 0.25) (layer "B.Cu") (net 60) (tstamp 856ae61e-8d59-4b15-aa4f-b6d2bb03d4d3))
+  (segment (start 135.319998 87.099998) (end 135.319998 86.89) (width 0.25) (layer "B.Cu") (net 60) (tstamp e269a3e9-aae7-4303-9cf7-48ee737ab128))
+  (segment (start 176.55 91.75) (end 174.900002 91.75) (width 0.25) (layer "F.Cu") (net 62) (tstamp 0987c95a-bd3b-4958-949c-f3686af776ea))
+  (segment (start 176.55 91.75) (end 176.55 90.85) (width 0.25) (layer "F.Cu") (net 62) (tstamp 0af7d55d-dc96-4908-894a-dbb17da6074a))
+  (segment (start 156 76.64) (end 156 77.32) (width 0.25) (layer "F.Cu") (net 62) (tstamp 0f325053-ea06-4927-807d-cf45ae6dac79))
+  (segment (start 177.25 91.75) (end 176.55 91.75) (width 0.25) (layer "F.Cu") (net 62) (tstamp 12763b0f-b123-466a-87a9-da702cabd45a))
+  (segment (start 175 81.6) (end 175 79.9) (width 0.25) (layer "F.Cu") (net 62) (tstamp 16effeab-6d08-49b3-8040-2f2290b6c417))
+  (segment (start 126.96 68.26) (end 126.96 68.075021) (width 0.25) (layer "F.Cu") (net 62) (tstamp 1af56d3b-a9dc-4dad-9b5a-5ed35dc3557b))
+  (segment (start 182.512 81.8) (end 181.5 81.8) (width 0.25) (layer "F.Cu") (net 62) (tstamp 2a934a1b-f10e-4b0d-b550-5ba47fa77bdc))
+  (segment (start 125.75 79) (end 122.61 79) (width 0.25) (layer "F.Cu") (net 62) (tstamp 2e83ed8a-06f2-4288-b4e3-b54ecdbab28a))
+  (segment (start 137.7 71.5) (end 138.1 71.1) (width 0.25) (layer "F.Cu") (net 62) (tstamp 3c24d956-8d9a-43a9-99e0-7f44bd80cc70))
+  (segment (start 156 77.32) (end 156.01 77.33) (width 0.25) (layer "F.Cu") (net 62) (tstamp 473ae1d1-6921-47bc-b110-38b2d301948e))
+  (segment (start 181.5 81.8) (end 175.2 81.8) (width 0.25) (layer "F.Cu") (net 62) (tstamp 49cae384-c096-4120-9fea-800bc66e7c36))
+  (segment (start 127.75 69.5) (end 127.75 69.05) (width 0.25) (layer "F.Cu") (net 62) (tstamp 572ae29e-6754-4268-8f92-ff934214ef2c))
+  (segment (start 181.842 81.8) (end 181.5 81.8) (width 0.25) (layer "F.Cu") (net 62) (tstamp 61383d86-8a8a-41fc-808c-964fdc77a49f))
+  (segment (start 179.5 94) (end 177.25 91.75) (width 0.25) (layer "F.Cu") (net 62) (tstamp 644bfde0-1971-4937-be84-330e70e836c9))
+  (segment (start 181.7 82) (end 181.5 81.8) (width 0.25) (layer "F.Cu") (net 62) (tstamp 64ef02f5-f8c4-4e5c-a3e4-120c82b4329a))
+  (segment (start 186.5 91.75) (end 185.4 91.75) (width 0.25) (layer "F.Cu") (net 62) (tstamp 709b61ad-86e2-4768-8b8c-4161776b0299))
+  (segment (start 122.61 79) (end 121.93 79.68) (width 0.25) (layer "F.Cu") (net 62) (tstamp 74b0180e-d050-48d8-a822-68f9d5339bdc))
+  (segment (start 153.46 67.64) (end 153.4 67.7) (width 0.25) (layer "F.Cu") (net 62) (tstamp 7e9ab599-6053-4e01-97a3-aa34e9954b36))
+  (segment (start 176.55 92.75) (end 176.6 92.8) (width 0.25) (layer "F.Cu") (net 62) (tstamp 80b719b3-6702-49b4-ae31-c67693f29e2d))
+  (segment (start 137.25 71.5) (end 137.7 71.5) (width 0.25) (layer "F.Cu") (net 62) (tstamp 82fee491-cc7c-4b7b-8b69-53e6b3af6128))
+  (segment (start 176.55 91.75) (end 176.55 92.75) (width 0.25) (layer "F.Cu") (net 62) (tstamp 83e62fa8-6f08-4e35-a6b0-1584d0df27ff))
+  (segment (start 150.595 83.595) (end 150.5 83.5) (width 0.25) (layer "F.Cu") (net 62) (tstamp 84c4c5af-9216-41d9-a937-b58f8c39aa04))
+  (segment (start 183.15 94) (end 179.5 94) (width 0.25) (layer "F.Cu") (net 62) (tstamp 9911872c-49ed-4a76-bb1e-0af33750c2c3))
+  (segment (start 176.55 90.85) (end 176.5 90.8) (width 0.25) (layer "F.Cu") (net 62) (tstamp 9a149c55-c458-4297-8970-366537f95e22))
+  (segment (start 104.2 85.5) (end 104.26 85.44) (width 0.25) (layer "F.Cu") (net 62) (tstamp 9d9d14a3-772f-4cc9-8272-f8891968103a))
+  (segment (start 184.25 81.8) (end 182.512 81.8) (width 0.25) (layer "F.Cu") (net 62) (tstamp a44148a5-f5cb-46f8-a499-87a7f2b76db7))
+  (segment (start 175 81.6) (end 175 83.7) (width 0.25) (layer "F.Cu") (net 62) (tstamp aa4adbfa-bb0a-486f-86a1-054d67364a8d))
+  (segment (start 150 97) (end 150.1 96.9) (width 0.25) (layer "F.Cu") (net 62) (tstamp ab3d33ec-5ca9-4f18-9893-a3d977195b33))
+  (segment (start 127.75 69.05) (end 126.96 68.26) (width 0.25) (layer "F.Cu") (net 62) (tstamp b3fb51f3-671e-468f-bc39-101b8bdd4240))
+  (segment (start 174.900002 91.75) (end 174.9 91.749998) (width 0.25) (layer "F.Cu") (net 62) (tstamp b84e8d32-c2ef-4226-8de4-06bc5cd55be7))
+  (segment (start 153.46 67) (end 153.46 67.64) (width 0.25) (layer "F.Cu") (net 62) (tstamp cb801e19-08ea-4a8e-955a-dc14c3709967))
+  (segment (start 185.125 83) (end 185.125 82.675) (width 0.25) (layer "F.Cu") (net 62) (tstamp ceb08beb-1f0c-44f1-9b99-6d04fbc8a96e))
+  (segment (start 133.75 84.34) (end 133.7 84.39) (width 0.25) (layer "F.Cu") (net 62) (tstamp d1988fa3-411c-42fc-8a19-27217034cd6e))
+  (segment (start 150 97.58) (end 150 97) (width 0.25) (layer "F.Cu") (net 62) (tstamp d245532d-f8c6-4830-a994-f20116950c7a))
+  (segment (start 103 85.5) (end 104.2 85.5) (width 0.25) (layer "F.Cu") (net 62) (tstamp d45f98d3-85d9-4291-9b18-927f2e0c713c))
+  (segment (start 137.25 78) (end 138.54 78) (width 0.25) (layer "F.Cu") (net 62) (tstamp d745e365-2d59-4f1d-a614-1a844594917c))
+  (segment (start 181.158 81.8) (end 181.5 81.8) (width 0.25) (layer "F.Cu") (net 62) (tstamp d7c4ab9b-5894-4c90-a8fa-19cb5f002cc9))
+  (segment (start 185.4 91.75) (end 183.15 94) (width 0.25) (layer "F.Cu") (net 62) (tstamp d7dad5c4-c617-4162-8adf-cd33de12405d))
+  (segment (start 175 81.6) (end 173.44 81.6) (width 0.25) (layer "F.Cu") (net 62) (tstamp d9728743-e25a-47c8-abde-f0c9acc8e6bc))
+  (segment (start 133.75 81) (end 133.75 84.34) (width 0.25) (layer "F.Cu") (net 62) (tstamp dbfbcff9-cf36-46d8-8054-309d8aef29a2))
+  (segment (start 185.125 82.675) (end 184.25 81.8) (width 0.25) (layer "F.Cu") (net 62) (tstamp dfffd681-4db6-4b54-aae9-a192085127b2))
+  (segment (start 175.2 81.8) (end 175 81.6) (width 0.25) (layer "F.Cu") (net 62) (tstamp f17b8c56-27e5-437c-be22-07d8cc7813e1))
+  (segment (start 138.54 78) (end 138.71 78.17) (width 0.25) (layer "F.Cu") (net 62) (tstamp f3bdb67f-e71d-45f1-a942-8a375c8c9b45))
+  (segment (start 151.85 83.595) (end 150.595 83.595) (width 0.25) (layer "F.Cu") (net 62) (tstamp fa0c4c8d-843a-4909-98ad-cf38f3ed6cb1))
+  (via (at 138.71 78.17) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 0535eb51-71a8-45b3-b0af-38af35d0af52))
+  (via (at 104.26 85.44) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 131c86ec-e122-415a-b30e-f9cddd1bf111))
+  (via (at 176.6 92.8) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 25c3ddec-3598-48a6-b760-b2ba387cb366))
+  (via (at 126.96 68.075021) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 29b53787-01be-4e81-b39b-bb4f22c4a7a0))
+  (via (at 173.44 81.6) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 3eaf5c69-efe2-4922-9452-4a16e2f6ea48))
+  (via (at 153.4 67.7) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 4efd1698-ba50-4f90-91ea-29e8b78c9ce4))
+  (via (at 156.01 77.33) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 4ff014c6-c571-4dce-9e54-db76afcf894d))
+  (via (at 175 83.7) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 5dc403a0-09b1-4c67-b087-d9114c8e2194))
+  (via (at 121.93 79.68) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 6e3ff464-4eb6-4574-b3f7-159170d4f567))
+  (via (at 138.1 71.1) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp 8f594740-55cb-4ee0-9e58-190da499be49))
+  (via (at 176.5 90.8) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp ab67270d-1af0-4093-a265-add13b6736b0))
+  (via (at 150.1 96.9) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp ace28691-03ee-43df-8360-4d19ab3a1ffe))
+  (via (at 174.9 91.749998) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp b74997c2-80e4-4ac5-852b-06c3420b4996))
+  (via (at 133.7 84.39) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp b9ec94b7-6efb-4dd5-9ce8-3326c41f8c34))
+  (via (at 175 79.9) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp bb3b9390-bfee-426e-94c5-c6c0e2121913))
+  (via (at 150.5 83.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 62) (tstamp e4026ccd-6863-46a8-a2f5-d24db8320033))
+  (segment (start 150.5 83.5) (end 149.55 83.5) (width 0.25) (layer "B.Cu") (net 62) (tstamp 047bb475-80e1-46dc-a892-30eb3a9a9373))
+  (segment (start 149.55 83.5) (end 149.5 83.55) (width 0.25) (layer "B.Cu") (net 62) (tstamp 0aac741e-0425-43f2-9296-e22a0eeda3db))
+  (segment (start 151.87 95.7) (end 151.91 95.66) (width 0.25) (layer "B.Cu") (net 62) (tstamp 16da30e7-1346-4c76-9f80-2ef534925479))
+  (segment (start 138.1 71.1) (end 137.475 71.1) (width 0.25) (layer "B.Cu") (net 62) (tstamp 98ebb0dc-f2ac-4ae8-b2bf-37593ef4bd93))
+  (segment (start 137.475 71.1) (end 137.25 70.875) (width 0.25) (layer "B.Cu") (net 62) (tstamp a7f3f118-d9d5-44b6-a79f-930ae9cf5ece))
+  (segment (start 186.5 87.35) (end 186.5 87.75) (width 0.25) (layer "F.Cu") (net 63) (tstamp 4139991d-27a8-4a79-8470-d8d79695df27))
+  (segment (start 187.8 72) (end 187.8 79.75) (width 0.25) (layer "F.Cu") (net 63) (tstamp 729efbf5-9449-4e94-a8c1-32e193f98e3f))
+  (segment (start 186.875 83) (end 186.875 80) (width 0.25) (layer "F.Cu") (net 63) (tstamp 833f1986-a1c5-482e-82ae-20d485aad5c1))
+  (segment (start 186.5 87.75) (end 186.5 83.375) (width 0.25) (layer "F.Cu") (net 63) (tstamp 83c4b407-a4b2-4b52-978a-af3fbe1d2912))
+  (segment (start 187.8 79.75) (end 187.55 80) (width 0.25) (layer "F.Cu") (net 63) (tstamp 83ede883-3cba-4104-963f-c49dceddfd96))
+  (segment (start 183.25 84.1) (end 186.5 87.35) (width 0.25) (layer "F.Cu") (net 63) (tstamp 847c5a59-736e-4fc8-a609-de78bf9ebbdc))
+  (segment (start 186.5 83.375) (end 186.875 83) (width 0.25) (layer "F.Cu") (net 63) (tstamp 8e7b5d87-8b2c-4cc6-91e4-b18d5f4fe4a0))
+  (segment (start 181.5 84.1) (end 183.25 84.1) (width 0.25) (layer "F.Cu") (net 63) (tstamp b92ba8a8-4ed6-4e9b-aef8-0e022e786bae))
+  (segment (start 187.55 80) (end 186.875 80) (width 0.25) (layer "F.Cu") (net 63) (tstamp cb551a25-ecbb-4bf9-9adb-2d6ccafe011b))
+  (segment (start 94.15 84.27) (end 94.305001 84.425001) (width 0.25) (layer "F.Cu") (net 64) (tstamp 33e3b2b5-232d-4d88-afe4-79b7fb733cbc))
+  (segment (start 116.575736 79) (end 117 79) (width 0.25) (layer "F.Cu") (net 64) (tstamp 4489074b-b49d-4d95-94de-8e6bd1a71519))
+  (segment (start 119 79.5) (end 117.5 79.5) (width 0.25) (layer "F.Cu") (net 64) (tstamp 5e28b53b-c761-42b4-860d-412169859b03))
+  (segment (start 93 84.27) (end 94.15 84.27) (width 0.25) (layer "F.Cu") (net 64) (tstamp 63c8ace6-4a39-4873-b165-ae0da9ed34e4))
+  (segment (start 94.305001 84.425001) (end 110.649997 84.425001) (width 0.25) (layer "F.Cu") (net 64) (tstamp 666fddfe-e462-4c22-8a15-7fd12699b038))
+  (segment (start 117.5 79.5) (end 117 79) (width 0.25) (layer "F.Cu") (net 64) (tstamp 8b2f1f79-6204-47fc-b423-3ad0c15b97e3))
+  (segment (start 110.649997 84.425001) (end 116.074998 79) (width 0.25) (layer "F.Cu") (net 64) (tstamp 92dc4fe5-5b60-4406-9dc2-8aadfb67aa2f))
+  (segment (start 116.074998 79) (end 116.575736 79) (width 0.25) (layer "F.Cu") (net 64) (tstamp ded2f424-5a78-4490-a439-d462ac036bc0))
+  (via (at 117 79) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 64) (tstamp 6610523f-dc30-42ac-a2ff-3b236b823800))
+  (segment (start 117 79) (end 115.875 79) (width 0.25) (layer "B.Cu") (net 64) (tstamp 568a03c2-044a-4947-a27c-380a43f5bbb2))
+  (segment (start 105.185002 73.5) (end 104.110003 74.574999) (width 0.25) (layer "F.Cu") (net 65) (tstamp 4015bfaf-19be-4a20-addc-4ab6a035d954))
+  (segment (start 133.25 69.5) (end 133.25 71.35) (width 0.25) (layer "F.Cu") (net 65) (tstamp 40c09cf2-ecc6-461e-9c93-867ea81fbfce))
+  (segment (start 133.25 71.35) (end 132 72.6) (width 0.25) (layer "F.Cu") (net 65) (tstamp 51493a14-1969-4d5c-98f1-abeac8c6c3ad))
+  (segment (start 104.110003 74.574999) (end 97.274999 74.574999) (width 0.25) (layer "F.Cu") (net 65) (tstamp 56f7cc00-d36e-4bf5-b2c6-3bff23bbacdd))
+  (segment (start 119 73.5) (end 105.185002 73.5) (width 0.25) (layer "F.Cu") (net 65) (tstamp 7e413782-862f-4c2d-8d51-5b14d2c59916))
+  (segment (start 119 73.5) (end 120.7 73.5) (width 0.25) (layer "F.Cu") (net 65) (tstamp 96dcb52e-a0f9-4ebd-bd1c-43f981d9ef3f))
+  (segment (start 97.274999 74.574999) (end 95.8 73.1) (width 0.25) (layer "F.Cu") (net 65) (tstamp 9a607f0a-58cf-423f-8bf4-ff5de937251c))
+  (segment (start 95.8 73.1) (end 93.3 73.1) (width 0.25) (layer "F.Cu") (net 65) (tstamp a825c650-970a-4797-b1c2-4fd2f5fbe05e))
+  (segment (start 120.7 73.5) (end 120.9 73.3) (width 0.25) (layer "F.Cu") (net 65) (tstamp b0abb6e7-c885-48d3-8160-1e14d86b1e74))
+  (via (at 120.9 73.3) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 65) (tstamp 70db6bc1-3182-43f8-9849-5823737deafa))
+  (via (at 132 72.6) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 65) (tstamp f308b757-5cb2-418e-adf2-d2a8b8592a1f))
+  (segment (start 121.6 72.6) (end 132 72.6) (width 0.25) (layer "B.Cu") (net 65) (tstamp 148c0508-aab5-432a-9844-44db077e38d7))
+  (segment (start 120.9 73.3) (end 121.6 72.6) (width 0.25) (layer "B.Cu") (net 65) (tstamp 5c33f4c5-cc7f-47be-a28a-f3bbbfa43d6b))
+  (segment (start 95.3 70.32501) (end 95.06501 70.56) (width 0.25) (layer "F.Cu") (net 66) (tstamp 04383e03-ace8-4ecb-8ea3-61a2e3fa0330))
+  (segment (start 104.32501 70.32501) (end 95.3 70.32501) (width 0.25) (layer "F.Cu") (net 66) (tstamp 3569e858-9051-46ba-9bdb-0b6cad63dcd8))
+  (segment (start 95.06501 70.56) (end 93.3 70.56) (width 0.25) (layer "F.Cu") (net 66) (tstamp 5a40ee37-817a-46d1-a1d4-9c4361645868))
+  (segment (start 132.75 70.45) (end 132.1 71.1) (width 0.25) (layer "F.Cu") (net 66) (tstamp 6b66dc19-d874-40c6-84a1-65f9b92ff124))
+  (segment (start 120.8 71.5) (end 119 71.5) (width 0.25) (layer "F.Cu") (net 66) (tstamp ce581eb9-d112-4ab2-ab05-d718120efbed))
+  (segment (start 119 71.5) (end 105.5 71.5) (width 0.25) (layer "F.Cu") (net 66) (tstamp d8b757e5-8636-48a6-bade-234e7a71f44a))
+  (segment (start 132.75 69.5) (end 132.75 70.45) (width 0.25) (layer "F.Cu") (net 66) (tstamp dae43e52-0773-4630-a78c-41384175dfc6))
+  (segment (start 105.5 71.5) (end 104.32501 70.32501) (width 0.25) (layer "F.Cu") (net 66) (tstamp e2fd967e-470c-4a91-938e-649239618b8f))
+  (via (at 132.1 71.1) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 66) (tstamp 47c4a00e-be45-4ff8-9eb4-917329293daa))
+  (via (at 120.8 71.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 66) (tstamp c2d2b7f4-735e-4ca4-9c4f-10ac6941708d))
+  (segment (start 132.1 71.1) (end 131.7 71.5) (width 0.25) (layer "B.Cu") (net 66) (tstamp a4239265-75c2-4b43-a55d-b297b2f71c00))
+  (segment (start 131.7 71.5) (end 120.8 71.5) (width 0.25) (layer "B.Cu") (net 66) (tstamp e699b0a7-e0c4-4524-badf-45fd2eaf26f6))
+  (segment (start 138.430001 80.799999) (end 138.73 80.5) (width 0.25) (layer "F.Cu") (net 67) (tstamp 057ab121-12dd-418f-9b6a-797780dfd49f))
+  (segment (start 135.25 81) (end 138.23 81) (width 0.25) (layer "F.Cu") (net 67) (tstamp 3015bc30-280f-4d35-a760-34313a76ecb4))
+  (segment (start 138.23 81) (end 138.430001 80.799999) (width 0.25) (layer "F.Cu") (net 67) (tstamp 6ae1270c-7c54-4129-b288-9df09ecaa380))
+  (via (at 138.73 80.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 67) (tstamp 5d4d0867-4c1a-4363-9960-e9aa5a60c6dc))
+  (segment (start 164.8 53.95) (end 165 53.75) (width 0.25) (layer "B.Cu") (net 67) (tstamp 6ffefa70-0385-4511-b3ab-df3afbfbeee6))
+  (segment (start 164.8 63.3) (end 164.8 53.95) (width 0.25) (layer "B.Cu") (net 67) (tstamp 7416cdf7-ca5e-4e8c-91c0-5260cae83016))
+  (segment (start 161.824999 71.275001) (end 161.824999 66.275001) (width 0.25) (layer "B.Cu") (net 67) (tstamp 9b1e107f-8884-46c4-8aac-efa15139dc97))
+  (segment (start 158.324987 74.775013) (end 161.824999 71.275001) (width 0.25) (layer "B.Cu") (net 67) (tstamp b4d2b874-6f07-45e0-81ca-213875187301))
+  (segment (start 150.661415 80.5) (end 156.386402 74.775013) (width 0.25) (layer "B.Cu") (net 67) (tstamp bf92283c-6976-492e-8a3a-b43ca11a8b24))
+  (segment (start 161.824999 66.275001) (end 164.8 63.3) (width 0.25) (layer "B.Cu") (net 67) (tstamp d9edc9c5-6657-4a25-92bd-09622f0379f4))
+  (segment (start 138.73 80.5) (end 150.661415 80.5) (width 0.25) (layer "B.Cu") (net 67) (tstamp e8c87cbd-1518-49c9-ac46-72d150304af3))
+  (segment (start 156.386402 74.775013) (end 158.324987 74.775013) (width 0.25) (layer "B.Cu") (net 67) (tstamp efe20825-3a57-4404-b64c-1219e9862d52))
+  (segment (start 137.25 79) (end 139 79) (width 0.25) (layer "F.Cu") (net 68) (tstamp 22b241e7-9cbd-45e5-85ba-4cbec96b52bd))
+  (via (at 139 79) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 68) (tstamp fcf59495-8373-49c7-bab1-f844192ddfa5))
+  (segment (start 162.46 64.954218) (end 162.46 53.75) (width 0.25) (layer "B.Cu") (net 68) (tstamp 6ba133d4-7046-4a40-ac58-f85ebf56b756))
+  (segment (start 156.200002 74.325002) (end 158.138588 74.325002) (width 0.25) (layer "B.Cu") (net 68) (tstamp 748f43d4-cbc5-42ff-9855-cf6b273de12a))
+  (segment (start 151.525004 79) (end 156.200002 74.325002) (width 0.25) (layer "B.Cu") (net 68) (tstamp 82ad9533-f942-458a-8513-ca17032b6490))
+  (segment (start 139 79) (end 151.525004 79) (width 0.25) (layer "B.Cu") (net 68) (tstamp 9a55e75d-16f7-4ae9-9090-b8cc7aa0f5a2))
+  (segment (start 161.374989 71.088601) (end 161.374989 66.039229) (width 0.25) (layer "B.Cu") (net 68) (tstamp ca516084-7b44-45e6-810b-6ea57d65c1a2))
+  (segment (start 161.374989 66.039229) (end 162.46 64.954218) (width 0.25) (layer "B.Cu") (net 68) (tstamp f39cc192-9b59-496a-9e93-faf83befc7a3))
+  (segment (start 158.138588 74.325002) (end 161.374989 71.088601) (width 0.25) (layer "B.Cu") (net 68) (tstamp f8565c61-ac56-422a-9a27-a95cd5873cd9))
+  (segment (start 138.874998 76.5) (end 138.1 76.5) (width 0.25) (layer "F.Cu") (net 69) (tstamp 26b3dd16-e1e8-4eff-b7bd-dc293915a6b7))
+  (segment (start 159.92 53.75) (end 159.92 57.48) (width 0.25) (layer "F.Cu") (net 69) (tstamp 290d0b40-519e-4fc5-be5d-8e882ea5c7ed))
+  (segment (start 138.1 76.5) (end 137.25 76.5) (width 0.25) (layer "F.Cu") (net 69) (tstamp 6a933567-ea35-4b8c-b358-2053bb8b5168))
+  (segment (start 142.374999 72.999999) (end 138.874998 76.5) (width 0.25) (layer "F.Cu") (net 69) (tstamp 73e455e1-5d1f-4184-9fbc-a06ea9da791f))
+  (segment (start 142.374999 68.474234) (end 142.374999 72.999999) (width 0.25) (layer "F.Cu") (net 69) (tstamp 9730cc57-5e19-4d8b-b480-cc0bd519d787))
+  (segment (start 158.911579 58.488421) (end 152.360812 58.488421) (width 0.25) (layer "F.Cu") (net 69) (tstamp c03eb9b8-a923-4067-8faf-92a94387da4b))
+  (segment (start 159.92 57.48) (end 158.911579 58.488421) (width 0.25) (layer "F.Cu") (net 69) (tstamp c47281d4-c8f3-4d78-a4e9-dd556cff3856))
+  (segment (start 152.360812 58.488421) (end 142.374999 68.474234) (width 0.25) (layer "F.Cu") (net 69) (tstamp d9e97bc0-0371-48ac-8d2f-f3880a83302a))
+  (segment (start 141.924988 68.287834) (end 141.924988 72.813599) (width 0.25) (layer "F.Cu") (net 70) (tstamp 1dd8086b-209e-41f8-a9bc-28b8af8b6e87))
+  (segment (start 157.38 57.458411) (end 156.800001 58.03841) (width 0.25) (layer "F.Cu") (net 70) (tstamp 238441ca-59ef-465d-b903-37f5201780de))
+  (segment (start 138.738587 76) (end 138.1 76) (width 0.25) (layer "F.Cu") (net 70) (tstamp 313e3686-2b8f-41a9-a908-39dfbc2376b6))
+  (segment (start 152.174412 58.03841) (end 141.924988 68.287834) (width 0.25) (layer "F.Cu") (net 70) (tstamp 3da06efd-8a3b-4b8f-b143-ad7315f01756))
+  (segment (start 138.1 76) (end 137.25 76) (width 0.25) (layer "F.Cu") (net 70) (tstamp 5b194fa2-1f99-452f-8844-d0eef9bc08b7))
+  (segment (start 157.38 53.75) (end 157.38 57.458411) (width 0.25) (layer "F.Cu") (net 70) (tstamp 67a96b69-580d-4a23-b403-a0ec33f16a69))
+  (segment (start 141.924988 72.813599) (end 138.738587 76) (width 0.25) (layer "F.Cu") (net 70) (tstamp 774245b5-3d7a-457c-9a78-b07c56d932c1))
+  (segment (start 156.800001 58.03841) (end 152.174412 58.03841) (width 0.25) (layer "F.Cu") (net 70) (tstamp f8c06bc5-a241-43e8-a5ed-2ee65b32dba0))
+  (segment (start 139.602176 74.5) (end 137.25 74.5) (width 0.25) (layer "F.Cu") (net 71) (tstamp 07e8d73b-71e3-4ade-aac9-d86608b3e77e))
+  (segment (start 151.988012 57.588399) (end 141.474977 68.101434) (width 0.25) (layer "F.Cu") (net 71) (tstamp 109bb126-984d-4f37-9821-19e17ef2d367))
+  (segment (start 154.84 53.75) (end 154.84 56.8484) (width 0.25) (layer "F.Cu") (net 71) (tstamp 137eab1e-378f-4556-8303-7f542774b172))
+  (segment (start 154.100001 57.588399) (end 151.988012 57.588399) (width 0.25) (layer "F.Cu") (net 71) (tstamp 1849d115-41b0-47b0-84d6-93e8d636f6bb))
+  (segment (start 154.84 56.8484) (end 154.100001 57.588399) (width 0.25) (layer "F.Cu") (net 71) (tstamp 503e66f5-d585-4b90-b9c8-03ae1e254202))
+  (segment (start 141.474977 68.101434) (end 141.474977 72.627199) (width 0.25) (layer "F.Cu") (net 71) (tstamp 55a99877-0545-4db2-964a-d9c97395ebbe))
+  (segment (start 141.474977 72.627199) (end 139.602176 74.5) (width 0.25) (layer "F.Cu") (net 71) (tstamp 72ec03fc-c314-4f4e-ae87-c9f3fad22a83))
+  (segment (start 138.174998 74) (end 138.199999 74.025001) (width 0.25) (layer "F.Cu") (net 72) (tstamp 03d01615-bc9b-41c2-9075-4edde8a66c92))
+  (segment (start 142.17 66.77) (end 142.37 66.57) (width 0.25) (layer "F.Cu") (net 72) (tstamp 32c46fe4-fb33-4005-b759-4396bded7c7f))
+  (segment (start 152.3 56.64) (end 151.538001 57.401999) (width 0.25) (layer "F.Cu") (net 72) (tstamp 4a19b5e7-c829-481b-b97b-5d318970e889))
+  (segment (start 142.37 66.57) (end 151.538001 57.401999) (width 0.25) (layer "F.Cu") (net 72) (tstamp 4d60218d-f65f-484d-9e59-4b000a0868d9))
+  (segment (start 137.25 74) (end 138.174998 74) (width 0.25) (layer "F.Cu") (net 72) (tstamp 5c2cdac8-af3d-43e1-b6b9-59d9198cc786))
+  (segment (start 139.440764 74.025001) (end 141.024966 72.440799) (width 0.25) (layer "F.Cu") (net 72) (tstamp c1a4bc9d-57f8-4d72-8702-9d879ada18bc))
+  (segment (start 141.024966 72.440799) (end 141.024966 67.915034) (width 0.25) (layer "F.Cu") (net 72) (tstamp c8f5809f-8d50-42c2-bf62-0d18ae9572db))
+  (segment (start 152.3 53.75) (end 152.3 56.64) (width 0.25) (layer "F.Cu") (net 72) (tstamp d0013b39-3cee-4871-b6a5-0192f7200ce3))
+  (segment (start 138.199999 74.025001) (end 139.440764 74.025001) (width 0.25) (layer "F.Cu") (net 72) (tstamp ece665e2-0bcc-4c8f-99d9-5f30f975e37a))
+  (segment (start 141.024966 67.915034) (end 142.37 66.57) (width 0.25) (layer "F.Cu") (net 72) (tstamp f6ac6926-32b8-4805-8251-fdfaec8aa55d))
+  (segment (start 124 75.1) (end 124.9 76) (width 0.25) (layer "F.Cu") (net 73) (tstamp 025309cd-68e5-4b60-b4c9-bc8dad87ccc5))
+  (segment (start 124 63) (end 124 75.1) (width 0.25) (layer "F.Cu") (net 73) (tstamp 0e7f40a5-8a97-4759-a8a1-fc4804472fbb))
+  (segment (start 147.5 57.1) (end 145.6 59) (width 0.25) (layer "F.Cu") (net 73) (tstamp 19dcf885-2b37-4ddd-a1ae-7e667f1f55b7))
+  (segment (start 124.9 76) (end 125.75 76) (width 0.25) (layer "F.Cu") (net 73) (tstamp 480f2446-771b-46e4-a0ac-e575e57348b0))
+  (segment (start 128 59) (end 124 63) (width 0.25) (layer "F.Cu") (net 73) (tstamp 4c69a5d2-97a0-4f59-8f49-02f4900a9ad1))
+  (segment (start 145.6 59) (end 128 59) (width 0.25) (layer "F.Cu") (net 73) (tstamp 8042a232-6673-4836-88b8-37d32903e845))
+  (segment (start 147.5 53.75) (end 147.5 57.1) (width 0.25) (layer "F.Cu") (net 73) (tstamp d18db4af-0337-4c68-86f1-053648c202c5))
+  (segment (start 124.76359 76.5) (end 125.75 76.5) (width 0.25) (layer "F.Cu") (net 74) (tstamp 02a77929-d509-4779-8092-521ec3fdedec))
+  (segment (start 144.96 53.75) (end 144.96 57.28999) (width 0.25) (layer "F.Cu") (net 74) (tstamp 2029c0a0-f782-4bec-b1fa-d88625501bf5))
+  (segment (start 123.549989 75.2864) (end 124.76359 76.5) (width 0.25) (layer "F.Cu") (net 74) (tstamp 76da1d5c-2e33-4cbb-8d2d-108b08dd3b23))
+  (segment (start 143.700001 58.549989) (end 127.8136 58.549989) (width 0.25) (layer "F.Cu") (net 74) (tstamp a0c65401-88de-4cc6-9b8a-66943ecff744))
+  (segment (start 144.96 57.28999) (end 143.700001 58.549989) (width 0.25) (layer "F.Cu") (net 74) (tstamp b4abf4d0-50a9-4bb8-8dcf-35c19181cf54))
+  (segment (start 127.8136 58.549989) (end 123.549989 62.8136) (width 0.25) (layer "F.Cu") (net 74) (tstamp c596e13a-552f-48d2-93b7-0ad74435eba0))
+  (segment (start 123.549989 62.8136) (end 123.549989 75.2864) (width 0.25) (layer "F.Cu") (net 74) (tstamp f61e6de9-7c7c-4048-ac47-9cdcc3a2f907))
+  (segment (start 123.099978 75.599978) (end 125 77.5) (width 0.25) (layer "F.Cu") (net 75) (tstamp 17d2e5ef-6598-4397-9a7f-8d5ff690d267))
+  (segment (start 141.599979 58) (end 127.727178 58) (width 0.25) (layer "F.Cu") (net 75) (tstamp 4e0de8c0-31d7-47aa-ac24-b5bc427581b1))
+  (segment (start 123.099978 62.6272) (end 123.099978 75.599978) (width 0.25) (layer "F.Cu") (net 75) (tstamp 5a72f48c-e469-45b8-b659-fbd72a8ac400))
+  (segment (start 142.42 57.179979) (end 141.599979 58) (width 0.25) (layer "F.Cu") (net 75) (tstamp 72407fe5-d953-43a6-a5b0-c617c87ab4b0))
+  (segment (start 142.42 53.75) (end 142.42 57.179979) (width 0.25) (layer "F.Cu") (net 75) (tstamp 980e4490-b349-4f57-a422-973176d6e5b0))
+  (segment (start 127.727178 58) (end 123.099978 62.6272) (width 0.25) (layer "F.Cu") (net 75) (tstamp c1cad8ae-d453-4aa4-b468-7f83d7e8dd45))
+  (segment (start 125 77.5) (end 125.75 77.5) (width 0.25) (layer "F.Cu") (net 75) (tstamp de07d54a-5f66-4555-970e-76f2a73d49a0))
+  (segment (start 139.14999 57.5) (end 127.590768 57.5) (width 0.25) (layer "F.Cu") (net 76) (tstamp 3583ba07-a8cf-4556-ad17-70b49c6437f4))
+  (segment (start 122.649969 62.440799) (end 122.649968 75.786378) (width 0.25) (layer "F.Cu") (net 76) (tstamp 413b17ee-ec0b-4369-8d00-0abe369e67a3))
+  (segment (start 139.88 53.75) (end 139.88 56.76999) (width 0.25) (layer "F.Cu") (net 76) (tstamp 68cc44bd-f073-4b2f-826f-567daa99e4ac))
+  (segment (start 122.649968 75.786378) (end 124.86359 78) (width 0.25) (layer "F.Cu") (net 76) (tstamp 725715de-a086-4715-9f76-8381b8c8ed78))
+  (segment (start 127.590768 57.5) (end 122.649969 62.440799) (width 0.25) (layer "F.Cu") (net 76) (tstamp 951fc145-6f98-40da-b96d-29cb5c798fef))
+  (segment (start 139.88 56.76999) (end 139.14999 57.5) (width 0.25) (layer "F.Cu") (net 76) (tstamp e21b847d-767e-44cf-baed-fa7192cbb278))
+  (segment (start 124.86359 78) (end 125.75 78) (width 0.25) (layer "F.Cu") (net 76) (tstamp ed32332b-71a9-4829-8da1-7a25252946fc))
+  (segment (start 119 83.5) (end 118 83.5) (width 0.25) (layer "F.Cu") (net 77) (tstamp 3e88084a-3904-4129-bbb5-7456c129b972))
+  (segment (start 118 83.5) (end 117 84.5) (width 0.25) (layer "F.Cu") (net 77) (tstamp b0cf6f47-c73b-4068-a0ac-cd03df2e10b3))
+  (via (at 117 84.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 77) (tstamp 20f583ba-4ccc-4128-95b7-79852763ebb1))
+  (segment (start 117 84.5) (end 115.875 84.5) (width 0.25) (layer "B.Cu") (net 77) (tstamp 3b7e4aad-4d15-44ea-adce-f2c3ce7bf848))
+  (segment (start 117.5 81.5) (end 117.25 81.75) (width 0.25) (layer "F.Cu") (net 78) (tstamp 4d7c2f62-81ee-4ead-88ee-5610587232c6))
+  (segment (start 119 81.5) (end 117.5 81.5) (width 0.25) (layer "F.Cu") (net 78) (tstamp af49c321-c6ed-4a1f-88cd-d1fc2d173137))
+  (via (at 117.25 81.75) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 78) (tstamp 61b1d757-d5f8-4157-b71d-ec9efe00323d))
+  (segment (start 116.364999 82) (end 116 81.635001) (width 0.25) (layer "B.Cu") (net 78) (tstamp 5f746d82-b301-4294-b646-300f2db8e650))
+  (segment (start 116 81.635001) (end 117.135001 81.635001) (width 0.25) (layer "B.Cu") (net 78) (tstamp a798e4b3-4014-4186-ba16-e52608de5a65))
+  (segment (start 117.135001 81.635001) (end 117.25 81.75) (width 0.25) (layer "B.Cu") (net 78) (tstamp f03a67f1-edc4-4ab1-bed7-52f446289ee8))
+  (segment (start 103 71.5) (end 104.5 71.5) (width 0.25) (layer "F.Cu") (net 88) (tstamp 520a7147-4176-4015-8edd-0c2084a2fb7e))
+  (via (at 104.5 71.5) (size 0.6) (drill 0.4) (layers "F.Cu" "B.Cu") (net 88) (tstamp 8b02df4e-5d29-4db6-92f0-04c8a6e32e70))
+  (segment (start 104.5 71.5) (end 105.325 71.5) (width 0.25) (layer "B.Cu") (net 88) (tstamp 93b20a5b-bfbf-42ba-bc73-fc0d91b64be5))
+  (segment (start 105.325 71.5) (end 105.425 71.6) (width 0.25) (layer "B.Cu") (net 88) (tstamp c22b5e8f-6f01-4c74-92e6-0809d1f8e134))
+
+  (zone (net 2) (net_name "/GND") (layer "F.Cu") (tstamp 00000000-0000-0000-0000-00006034bd70) (hatch edge 0.508)
+    (connect_pads (clearance 0.155))
+    (min_thickness 0.155)
+    (fill yes (thermal_gap 0.255) (thermal_bridge_width 0.255))
+    (polygon
+      (pts
+        (xy 90 100)
+        (xy 112.5 100)
+        (xy 112.5 95.5)
+        (xy 120 95.5)
+        (xy 120 100)
+        (xy 190 100)
+        (xy 190 50)
+        (xy 90 50)
+      )
+    )
+    (filled_polygon
+      (layer "F.Cu")
+      (pts
+        (xy 189.717501 99.7175)
+        (xy 121.360376 99.7175)
+        (xy 121.475883 99.682461)
+        (xy 121.645697 99.591694)
+        (xy 121.794541 99.469541)
+        (xy 121.916694 99.320697)
+        (xy 122.007461 99.150883)
+        (xy 122.053231 99)
+        (xy 160.040891 99)
+        (xy 160.047311 99.065181)
+        (xy 160.066324 99.127858)
+        (xy 160.097199 99.185621)
+        (xy 160.138749 99.236251)
+        (xy 160.189379 99.277801)
+        (xy 160.247142 99.308676)
+        (xy 160.309819 99.327689)
+        (xy 160.375 99.334109)
+        (xy 160.866875 99.3325)
+        (xy 160.95 99.249375)
+        (xy 160.95 98.55)
+        (xy 161.05 98.55)
+        (xy 161.05 99.249375)
+        (xy 161.133125 99.3325)
+        (xy 161.625 99.334109)
+        (xy 161.690181 99.327689)
+        (xy 161.752858 99.308676)
+        (xy 161.810621 99.277801)
+        (xy 161.861251 99.236251)
+        (xy 161.902801 99.185621)
+        (xy 161.933676 99.127858)
+        (xy 161.952689 99.065181)
+        (xy 161.959109 99)
+        (xy 164.040891 99)
+        (xy 164.047311 99.065181)
+        (xy 164.066324 99.127858)
+        (xy 164.097199 99.185621)
+        (xy 164.138749 99.236251)
+        (xy 164.189379 99.277801)
+        (xy 164.247142 99.308676)
+        (xy 164.309819 99.327689)
+        (xy 164.375 99.334109)
+        (xy 164.866875 99.3325)
+        (xy 164.95 99.249375)
+        (xy 164.95 98.55)
+        (xy 165.05 98.55)
+        (xy 165.05 99.249375)
+        (xy 165.133125 99.3325)
+        (xy 165.625 99.334109)
+        (xy 165.690181 99.327689)
+        (xy 165.752858 99.308676)
+        (xy 165.810621 99.277801)
+        (xy 165.861251 99.236251)
+        (xy 165.902801 99.185621)
+        (xy 165.933676 99.127858)
+        (xy 165.952689 99.065181)
+        (xy 165.959109 99)
+        (xy 168.040891 99)
+        (xy 168.047311 99.065181)
+        (xy 168.066324 99.127858)
+        (xy 168.097199 99.185621)
+        (xy 168.138749 99.236251)
+        (xy 168.189379 99.277801)
+        (xy 168.247142 99.308676)
+        (xy 168.309819 99.327689)
+        (xy 168.375 99.334109)
+        (xy 168.866875 99.3325)
+        (xy 168.95 99.249375)
+        (xy 168.95 98.55)
+        (xy 169.05 98.55)
+        (xy 169.05 99.249375)
+        (xy 169.133125 99.3325)
+        (xy 169.625 99.334109)
+        (xy 169.690181 99.327689)
+        (xy 169.752858 99.308676)
+        (xy 169.810621 99.277801)
+        (xy 169.861251 99.236251)
+        (xy 169.902801 99.185621)
+        (xy 169.933676 99.127858)
+        (xy 169.952689 99.065181)
+        (xy 169.959109 99)
+        (xy 169.9575 98.633125)
+        (xy 169.874375 98.55)
+        (xy 169.05 98.55)
+        (xy 168.95 98.55)
+        (xy 168.125625 98.55)
+        (xy 168.0425 98.633125)
+        (xy 168.040891 99)
+        (xy 165.959109 99)
+        (xy 165.9575 98.633125)
+        (xy 165.874375 98.55)
+        (xy 165.05 98.55)
+        (xy 164.95 98.55)
+        (xy 164.125625 98.55)
+        (xy 164.0425 98.633125)
+        (xy 164.040891 99)
+        (xy 161.959109 99)
+        (xy 161.9575 98.633125)
+        (xy 161.874375 98.55)
+        (xy 161.05 98.55)
+        (xy 160.95 98.55)
+        (xy 160.125625 98.55)
+        (xy 160.0425 98.633125)
+        (xy 160.040891 99)
+        (xy 122.053231 99)
+        (xy 122.063356 98.966623)
+        (xy 122.0775 98.823014)
+        (xy 122.0775 98.08)
+        (xy 142.403891 98.08)
+        (xy 142.410311 98.145181)
+        (xy 142.429324 98.207858)
+        (xy 142.460199 98.265621)
+        (xy 142.501749 98.316251)
+        (xy 142.552379 98.357801)
+        (xy 142.610142 98.388676)
+        (xy 142.672819 98.407689)
+        (xy 142.738 98.414109)
+        (xy 143.366875 98.4125)
+        (xy 143.45 98.329375)
+        (xy 143.45 97.63)
+        (xy 143.55 97.63)
+        (xy 143.55 98.329375)
+        (xy 143.633125 98.4125)
+        (xy 144.262 98.414109)
+        (xy 144.327181 98.407689)
+        (xy 144.389858 98.388676)
+        (xy 144.447621 98.357801)
+        (xy 144.498251 98.316251)
+        (xy 144.539801 98.265621)
+        (xy 144.570676 98.207858)
+        (xy 144.589689 98.145181)
+        (xy 144.596109 98.08)
+        (xy 144.5945 97.713125)
+        (xy 144.511375 97.63)
+        (xy 143.55 97.63)
+        (xy 143.45 97.63)
+        (xy 142.488625 97.63)
+        (xy 142.4055 97.713125)
+        (xy 142.403891 98.08)
+        (xy 122.0775 98.08)
+        (xy 122.0775 97.826985)
+        (xy 122.063356 97.683377)
+        (xy 122.007461 97.499117)
+        (xy 121.916694 97.329303)
+        (xy 121.794541 97.180459)
+        (xy 121.645697 97.058306)
+        (xy 121.559064 97.012)
+        (xy 127.573891 97.012)
+        (xy 127.580311 97.077181)
+        (xy 127.599324 97.139858)
+        (xy 127.630199 97.197621)
+        (xy 127.671749 97.248251)
+        (xy 127.722379 97.289801)
+        (xy 127.780142 97.320676)
+        (xy 127.842819 97.339689)
+        (xy 127.908 97.346109)
+        (xy 128.536875 97.3445)
+        (xy 128.62 97.261375)
+        (xy 128.62 96.3)
+        (xy 128.72 96.3)
+        (xy 128.72 97.261375)
+        (xy 128.803125 97.3445)
+        (xy 129.432 97.346109)
+        (xy 129.497181 97.339689)
+        (xy 129.559858 97.320676)
+        (xy 129.617621 97.289801)
+        (xy 129.668251 97.248251)
+        (xy 129.709801 97.197621)
+        (xy 129.740676 97.139858)
+        (xy 129.759689 97.077181)
+        (xy 129.766109 97.012)
+        (xy 129.7645 96.383125)
+        (xy 129.681375 96.3)
+        (xy 128.72 96.3)
+        (xy 128.62 96.3)
+        (xy 127.658625 96.3)
+        (xy 127.5755 96.383125)
+        (xy 127.573891 97.012)
+        (xy 121.559064 97.012)
+        (xy 121.475882 96.967539)
+        (xy 121.291622 96.911644)
+        (xy 121.1 96.892771)
+        (xy 120.908377 96.911644)
+        (xy 120.724117 96.967539)
+        (xy 120.554303 97.058306)
+        (xy 120.405459 97.180459)
+        (xy 120.283306 97.329303)
+        (xy 120.2825 97.330811)
+        (xy 120.2825 96.019187)
+        (xy 120.283307 96.020697)
+        (xy 120.40546 96.169541)
+        (xy 120.554304 96.291694)
+        (xy 120.724118 96.382461)
+        (xy 120.908378 96.438356)
+        (xy 121.1 96.457229)
+        (xy 121.291623 96.438356)
+        (xy 121.475883 96.382461)
+        (xy 121.645697 96.291694)
+        (xy 121.794541 96.169541)
+        (xy 121.916694 96.020697)
+        (xy 122.007461 95.850883)
+        (xy 122.063356 95.666623)
+        (xy 122.0775 95.523014)
+        (xy 122.0775 95.488)
+        (xy 127.573891 95.488)
+        (xy 127.5755 96.116875)
+        (xy 127.658625 96.2)
+        (xy 128.62 96.2)
+        (xy 128.62 95.238625)
+        (xy 128.72 95.238625)
+        (xy 128.72 96.2)
+        (xy 129.681375 96.2)
+        (xy 129.733757 96.147618)
+        (xy 130.1705 96.147618)
+        (xy 130.1705 96.352382)
+        (xy 130.210447 96.553211)
+        (xy 130.288807 96.742388)
+        (xy 130.402567 96.912643)
+        (xy 130.547357 97.057433)
+        (xy 130.717612 97.171193)
+        (xy 130.906789 97.249553)
+        (xy 131.107618 97.2895)
+        (xy 131.312382 97.2895)
+        (xy 131.513211 97.249553)
+        (xy 131.702388 97.171193)
+        (xy 131.872643 97.057433)
+        (xy 132.017433 96.912643)
+        (xy 132.131193 96.742388)
+        (xy 132.209553 96.553211)
+        (xy 132.2495 96.352382)
+        (xy 132.2495 96.147618)
+        (xy 132.7105 96.147618)
+        (xy 132.7105 96.352382)
+        (xy 132.750447 96.553211)
+        (xy 132.828807 96.742388)
+        (xy 132.942567 96.912643)
+        (xy 133.087357 97.057433)
+        (xy 133.257612 97.171193)
+        (xy 133.446789 97.249553)
+        (xy 133.647618 97.2895)
+        (xy 133.852382 97.2895)
+        (xy 134.053211 97.249553)
+        (xy 134.242388 97.171193)
+        (xy 134.378868 97.08)
+        (xy 142.403891 97.08)
+        (xy 142.4055 97.446875)
+        (xy 142.488625 97.53)
+        (xy 143.45 97.53)
+        (xy 143.45 96.830625)
+        (xy 143.55 96.830625)
+        (xy 143.55 97.53)
+        (xy 144.511375 97.53)
+        (xy 144.5945 97.446875)
+        (xy 144.596109 97.08)
+        (xy 148.959158 97.08)
+        (xy 148.959158 98.08)
+        (xy 148.964516 98.134399)
+        (xy 148.980384 98.186708)
+        (xy 149.006151 98.234916)
+        (xy 149.040829 98.277171)
+        (xy 149.083084 98.311849)
+        (xy 149.131292 98.337616)
+        (xy 149.183601 98.353484)
+        (xy 149.238 98.358842)
+        (xy 150.762 98.358842)
+        (xy 150.816399 98.353484)
+        (xy 150.868708 98.337616)
+        (xy 150.916916 98.311849)
+        (xy 150.959171 98.277171)
+        (xy 150.993849 98.234916)
+        (xy 151.019616 98.186708)
+        (xy 151.035484 98.134399)
+        (xy 151.040842 98.08)
+        (xy 154.903891 98.08)
+        (xy 154.910311 98.145181)
+        (xy 154.929324 98.207858)
+        (xy 154.960199 98.265621)
+        (xy 155.001749 98.316251)
+        (xy 155.052379 98.357801)
+        (xy 155.110142 98.388676)
+        (xy 155.172819 98.407689)
+        (xy 155.238 98.414109)
+        (xy 155.866875 98.4125)
+        (xy 155.95 98.329375)
+        (xy 155.95 97.63)
+        (xy 156.05 97.63)
+        (xy 156.05 98.329375)
+        (xy 156.133125 98.4125)
+        (xy 156.762 98.414109)
+        (xy 156.827181 98.407689)
+        (xy 156.889858 98.388676)
+        (xy 156.947621 98.357801)
+        (xy 156.998251 98.316251)
+        (xy 157.039801 98.265621)
+        (xy 157.070676 98.207858)
+        (xy 157.089689 98.145181)
+        (xy 157.096109 98.08)
+        (xy 157.095759 98)
+        (xy 160.040891 98)
+        (xy 160.0425 98.366875)
+        (xy 160.125625 98.45)
+        (xy 160.95 98.45)
+        (xy 160.95 97.750625)
+        (xy 161.05 97.750625)
+        (xy 161.05 98.45)
+        (xy 161.874375 98.45)
+        (xy 161.9575 98.366875)
+        (xy 161.959109 98)
+        (xy 164.040891 98)
+        (xy 164.0425 98.366875)
+        (xy 164.125625 98.45)
+        (xy 164.95 98.45)
+        (xy 164.95 97.750625)
+        (xy 165.05 97.750625)
+        (xy 165.05 98.45)
+        (xy 165.874375 98.45)
+        (xy 165.9575 98.366875)
+        (xy 165.959109 98)
+        (xy 168.040891 98)
+        (xy 168.0425 98.366875)
+        (xy 168.125625 98.45)
+        (xy 168.95 98.45)
+        (xy 168.95 97.750625)
+        (xy 169.05 97.750625)
+        (xy 169.05 98.45)
+        (xy 169.874375 98.45)
+        (xy 169.9575 98.366875)
+        (xy 169.959109 98)
+        (xy 169.952689 97.934819)
+        (xy 169.933676 97.872142)
+        (xy 169.902801 97.814379)
+        (xy 169.861251 97.763749)
+        (xy 169.810621 97.722199)
+        (xy 169.752858 97.691324)
+        (xy 169.690181 97.672311)
+        (xy 169.625 97.665891)
+        (xy 169.133125 97.6675)
+        (xy 169.05 97.750625)
+        (xy 168.95 97.750625)
+        (xy 168.866875 97.6675)
+        (xy 168.375 97.665891)
+        (xy 168.309819 97.672311)
+        (xy 168.247142 97.691324)
+        (xy 168.189379 97.722199)
+        (xy 168.138749 97.763749)
+        (xy 168.097199 97.814379)
+        (xy 168.066324 97.872142)
+        (xy 168.047311 97.934819)
+        (xy 168.040891 98)
+        (xy 165.959109 98)
+        (xy 165.952689 97.934819)
+        (xy 165.933676 97.872142)
+        (xy 165.902801 97.814379)
+        (xy 165.861251 97.763749)
+        (xy 165.810621 97.722199)
+        (xy 165.752858 97.691324)
+        (xy 165.690181 97.672311)
+        (xy 165.625 97.665891)
+        (xy 165.133125 97.6675)
+        (xy 165.05 97.750625)
+        (xy 164.95 97.750625)
+        (xy 164.866875 97.6675)
+        (xy 164.375 97.665891)
+        (xy 164.309819 97.672311)
+        (xy 164.247142 97.691324)
+        (xy 164.189379 97.722199)
+        (xy 164.138749 97.763749)
+        (xy 164.097199 97.814379)
+        (xy 164.066324 97.872142)
+        (xy 164.047311 97.934819)
+        (xy 164.040891 98)
+        (xy 161.959109 98)
+        (xy 161.952689 97.934819)
+        (xy 161.933676 97.872142)
+        (xy 161.902801 97.814379)
+        (xy 161.861251 97.763749)
+        (xy 161.810621 97.722199)
+        (xy 161.752858 97.691324)
+        (xy 161.690181 97.672311)
+        (xy 161.625 97.665891)
+        (xy 161.133125 97.6675)
+        (xy 161.05 97.750625)
+        (xy 160.95 97.750625)
+        (xy 160.866875 97.6675)
+        (xy 160.375 97.665891)
+        (xy 160.309819 97.672311)
+        (xy 160.247142 97.691324)
+        (xy 160.189379 97.722199)
+        (xy 160.138749 97.763749)
+        (xy 160.097199 97.814379)
+        (xy 160.066324 97.872142)
+        (xy 160.047311 97.934819)
+        (xy 160.040891 98)
+        (xy 157.095759 98)
+        (xy 157.0945 97.713125)
+        (xy 157.011375 97.63)
+        (xy 156.05 97.63)
+        (xy 155.95 97.63)
+        (xy 154.988625 97.63)
+        (xy 154.9055 97.713125)
+        (xy 154.903891 98.08)
+        (xy 151.040842 98.08)
+        (xy 151.040842 97.08)
+        (xy 154.903891 97.08)
+        (xy 154.9055 97.446875)
+        (xy 154.988625 97.53)
+        (xy 155.95 97.53)
+        (xy 155.95 96.830625)
+        (xy 156.05 96.830625)
+        (xy 156.05 97.53)
+        (xy 157.011375 97.53)
+        (xy 157.0945 97.446875)
+        (xy 157.096109 97.08)
+        (xy 157.089689 97.014819)
+        (xy 157.070676 96.952142)
+        (xy 157.039801 96.894379)
+        (xy 156.998251 96.843749)
+        (xy 156.947621 96.802199)
+        (xy 156.889858 96.771324)
+        (xy 156.827181 96.752311)
+        (xy 156.762 96.745891)
+        (xy 156.133125 96.7475)
+        (xy 156.05 96.830625)
+        (xy 155.95 96.830625)
+        (xy 155.866875 96.7475)
+        (xy 155.238 96.745891)
+        (xy 155.172819 96.752311)
+        (xy 155.110142 96.771324)
+        (xy 155.052379 96.802199)
+        (xy 155.001749 96.843749)
+        (xy 154.960199 96.894379)
+        (xy 154.929324 96.952142)
+        (xy 154.910311 97.014819)
+        (xy 154.903891 97.08)
+        (xy 151.040842 97.08)
+        (xy 151.035484 97.025601)
+        (xy 151.019616 96.973292)
+        (xy 150.993849 96.925084)
+        (xy 150.959171 96.882829)
+        (xy 150.916916 96.848151)
+        (xy 150.868708 96.822384)
+        (xy 150.816399 96.806516)
+        (xy 150.762 96.801158)
+        (xy 150.669153 96.801158)
+        (xy 150.655307 96.73155)
+        (xy 150.611774 96.626451)
+        (xy 150.548573 96.531865)
+        (xy 150.468135 96.451427)
+        (xy 150.373549 96.388226)
+        (xy 150.26845 96.344693)
+        (xy 150.156879 96.3225)
+        (xy 150.043121 96.3225)
+        (xy 149.93155 96.344693)
+        (xy 149.826451 96.388226)
+        (xy 149.731865 96.451427)
+        (xy 149.651427 96.531865)
+        (xy 149.588226 96.626451)
+        (xy 149.544693 96.73155)
+        (xy 149.530847 96.801158)
+        (xy 149.238 96.801158)
+        (xy 149.183601 96.806516)
+        (xy 149.131292 96.822384)
+        (xy 149.083084 96.848151)
+        (xy 149.040829 96.882829)
+        (xy 149.006151 96.925084)
+        (xy 148.980384 96.973292)
+        (xy 148.964516 97.025601)
+        (xy 148.959158 97.08)
+        (xy 144.596109 97.08)
+        (xy 144.589689 97.014819)
+        (xy 144.570676 96.952142)
+        (xy 144.539801 96.894379)
+        (xy 144.498251 96.843749)
+        (xy 144.447621 96.802199)
+        (xy 144.389858 96.771324)
+        (xy 144.327181 96.752311)
+        (xy 144.262 96.745891)
+        (xy 143.633125 96.7475)
+        (xy 143.55 96.830625)
+        (xy 143.45 96.830625)
+        (xy 143.366875 96.7475)
+        (xy 142.738 96.745891)
+        (xy 142.672819 96.752311)
+        (xy 142.610142 96.771324)
+        (xy 142.552379 96.802199)
+        (xy 142.501749 96.843749)
+        (xy 142.460199 96.894379)
+        (xy 142.429324 96.952142)
+        (xy 142.410311 97.014819)
+        (xy 142.403891 97.08)
+        (xy 134.378868 97.08)
+        (xy 134.412643 97.057433)
+        (xy 134.557433 96.912643)
+        (xy 134.671193 96.742388)
+        (xy 134.749553 96.553211)
+        (xy 134.7895 96.352382)
+        (xy 134.7895 96.147618)
+        (xy 134.749553 95.946789)
+        (xy 134.671193 95.757612)
+        (xy 134.557433 95.587357)
+        (xy 134.412643 95.442567)
+        (xy 134.242388 95.328807)
+        (xy 134.053211 95.250447)
+        (xy 133.852382 95.2105)
+        (xy 133.647618 95.2105)
+        (xy 133.446789 95.250447)
+        (xy 133.257612 95.328807)
+        (xy 133.087357 95.442567)
+        (xy 132.942567 95.587357)
+        (xy 132.828807 95.757612)
+        (xy 132.750447 95.946789)
+        (xy 132.7105 96.147618)
+        (xy 132.2495 96.147618)
+        (xy 132.209553 95.946789)
+        (xy 132.131193 95.757612)
+        (xy 132.017433 95.587357)
+        (xy 131.872643 95.442567)
+        (xy 131.702388 95.328807)
+        (xy 131.513211 95.250447)
+        (xy 131.312382 95.2105)
+        (xy 131.107618 95.2105)
+        (xy 130.906789 95.250447)
+        (xy 130.717612 95.328807)
+        (xy 130.547357 95.442567)
+        (xy 130.402567 95.587357)
+        (xy 130.288807 95.757612)
+        (xy 130.210447 95.946789)
+        (xy 130.1705 96.147618)
+        (xy 129.733757 96.147618)
+        (xy 129.7645 96.116875)
+        (xy 129.766109 95.488)
+        (xy 129.759689 95.422819)
+        (xy 129.740676 95.360142)
+        (xy 129.709801 95.302379)
+        (xy 129.668251 95.251749)
+        (xy 129.617621 95.210199)
+        (xy 129.559858 95.179324)
+        (xy 129.497181 95.160311)
+        (xy 129.432 95.153891)
+        (xy 128.803125 95.1555)
+        (xy 128.72 95.238625)
+        (xy 128.62 95.238625)
+        (xy 128.536875 95.1555)
+        (xy 127.908 95.153891)
+        (xy 127.842819 95.160311)
+        (xy 127.780142 95.179324)
+        (xy 127.722379 95.210199)
+        (xy 127.671749 95.251749)
+        (xy 127.630199 95.302379)
+        (xy 127.599324 95.360142)
+        (xy 127.580311 95.422819)
+        (xy 127.573891 95.488)
+        (xy 122.0775 95.488)
+        (xy 122.0775 94.526985)
+        (xy 122.063356 94.383377)
+        (xy 122.007461 94.199117)
+        (xy 121.916694 94.029303)
+        (xy 121.794541 93.880459)
+        (xy 121.645697 93.758306)
+        (xy 121.475882 93.667539)
+        (xy 121.291622 93.611644)
+        (xy 121.1 93.592771)
+        (xy 120.908377 93.611644)
+        (xy 120.724117 93.667539)
+        (xy 120.554303 93.758306)
+        (xy 120.405459 93.880459)
+        (xy 120.283306 94.029303)
+        (xy 120.192539 94.199118)
+        (xy 120.136644 94.383378)
+        (xy 120.1225 94.526986)
+        (xy 120.1225 95.245155)
+        (xy 120.108631 95.237742)
+        (xy 120.05538 95.221588)
+        (xy 120.01387 95.2175)
+        (xy 120 95.216134)
+        (xy 119.98613 95.2175)
+        (xy 118.022156 95.2175)
+        (xy 118.027801 95.210621)
+        (xy 118.058676 95.152858)
+        (xy 118.077689 95.090181)
+        (xy 118.084109 95.025)
+        (xy 118.0825 94.633125)
+        (xy 117.999375 94.55)
+        (xy 117.6 94.55)
+        (xy 117.6 94.57)
+        (xy 117.5 94.57)
+        (xy 117.5 94.55)
+        (xy 117.48 94.55)
+        (xy 117.48 94.45)
+        (xy 117.5 94.45)
+        (xy 117.5 94.43)
+        (xy 117.6 94.43)
+        (xy 117.6 94.45)
+        (xy 117.999375 94.45)
+        (xy 118.0825 94.366875)
+        (xy 118.084109 93.975)
+        (xy 118.077689 93.909819)
+        (xy 118.058676 93.847142)
+        (xy 118.027801 93.789379)
+        (xy 117.986251 93.738749)
+        (xy 117.935621 93.697199)
+        (xy 117.877858 93.666324)
+        (xy 117.815181 93.647311)
+        (xy 117.75 93.640891)
+        (xy 117.689509 93.642346)
+        (xy 117.700658 93.586296)
+        (xy 117.700658 93.472538)
+        (xy 117.678465 93.360967)
+        (xy 117.634932 93.255868)
+        (xy 117.571731 93.161282)
+        (xy 117.51295 93.102501)
+        (xy 121.751575 93.102501)
+        (xy 121.764693 93.16845)
+        (xy 121.808226 93.273549)
+        (xy 121.871427 93.368135)
+        (xy 121.951865 93.448573)
+        (xy 122.046451 93.511774)
+        (xy 122.15155 93.555307)
+        (xy 122.263121 93.5775)
+        (xy 122.376879 93.5775)
+        (xy 122.48845 93.555307)
+        (xy 122.593549 93.511774)
+        (xy 122.688135 93.448573)
+        (xy 122.768573 93.368135)
+        (xy 122.831774 93.273549)
+        (xy 122.875307 93.16845)
+        (xy 122.8975 93.056879)
+        (xy 122.8975 92.943121)
+        (xy 122.875307 92.83155)
+        (xy 122.831774 92.726451)
+        (xy 122.768573 92.631865)
+        (xy 122.709208 92.5725)
+        (xy 123.175792 92.5725)
+        (xy 123.221865 92.618573)
+        (xy 123.316451 92.681774)
+        (xy 123.42155 92.725307)
+        (xy 123.533121 92.7475)
+        (xy 123.646879 92.7475)
+        (xy 123.75845 92.725307)
+        (xy 123.863549 92.681774)
+        (xy 123.958135 92.618573)
+        (xy 124.038573 92.538135)
+        (xy 124.101774 92.443549)
+        (xy 124.145307 92.33845)
+        (xy 124.1675 92.226879)
+        (xy 124.1675 92.113121)
+        (xy 124.145307 92.00155)
+        (xy 124.101774 91.896451)
+        (xy 124.038573 91.801865)
+        (xy 123.958135 91.721427)
+        (xy 123.863549 91.658226)
+        (xy 123.75845 91.614693)
+        (xy 123.646879 91.5925)
+        (xy 123.533121 91.5925)
+        (xy 123.42155 91.614693)
+        (xy 123.316451 91.658226)
+        (xy 123.221865 91.721427)
+        (xy 123.175792 91.7675)
+        (xy 116.940922 91.7675)
+        (xy 116.921163 91.765554)
+        (xy 116.901404 91.7675)
+        (xy 116.901394 91.7675)
+        (xy 116.842259 91.773324)
+        (xy 116.766388 91.79634)
+        (xy 116.696464 91.833714)
+        (xy 116.650531 91.871411)
+        (xy 116.650529 91.871413)
+        (xy 116.635176 91.884013)
+        (xy 116.622576 91.899366)
+        (xy 115.329367 93.192576)
+        (xy 115.314014 93.205176)
+        (xy 115.301414 93.220529)
+        (xy 115.301411 93.220532)
+        (xy 115.263715 93.266465)
+        (xy 115.246545 93.298589)
+        (xy 115.226341 93.336388)
+        (xy 115.207448 93.39867)
+        (xy 115.203325 93.41226)
+        (xy 115.195554 93.491163)
+        (xy 115.197501 93.510932)
+        (xy 115.197501 93.700837)
+        (xy 115.15 93.696158)
+        (xy 114.75 93.696158)
+        (xy 114.695601 93.701516)
+        (xy 114.643292 93.717384)
+        (xy 114.595084 93.743151)
+        (xy 114.552829 93.777829)
+        (xy 114.518151 93.820084)
+        (xy 114.492384 93.868292)
+        (xy 114.488074 93.8825)
+        (xy 114.383121 93.8825)
+        (xy 114.27155 93.904693)
+        (xy 114.166451 93.948226)
+        (xy 114.071865 94.011427)
+        (xy 113.991427 94.091865)
+        (xy 113.928226 94.186451)
+        (xy 113.884693 94.29155)
+        (xy 113.8625 94.403121)
+        (xy 113.8625 94.516879)
+        (xy 113.884693 94.62845)
+        (xy 113.928226 94.733549)
+        (xy 113.991427 94.828135)
+        (xy 114.071865 94.908573)
+        (xy 114.166451 94.971774)
+        (xy 114.27155 95.015307)
+        (xy 114.383121 95.0375)
+        (xy 114.472389 95.0375)
+        (xy 114.476516 95.079399)
+        (xy 114.492384 95.131708)
+        (xy 114.518151 95.179916)
+        (xy 114.548996 95.2175)
+        (xy 112.51387 95.2175)
+        (xy 112.5 95.216134)
+        (xy 112.48613 95.2175)
+        (xy 112.44462 95.221588)
+        (xy 112.391369 95.237742)
+        (xy 112.3775 95.245155)
+        (xy 112.3775 94.526985)
+        (xy 112.363356 94.383377)
+        (xy 112.307461 94.199117)
+        (xy 112.216694 94.029303)
+        (xy 112.094541 93.880459)
+        (xy 111.945697 93.758306)
+        (xy 111.775882 93.667539)
+        (xy 111.591622 93.611644)
+        (xy 111.4 93.592771)
+        (xy 111.208377 93.611644)
+        (xy 111.024117 93.667539)
+        (xy 110.854303 93.758306)
+        (xy 110.705459 93.880459)
+        (xy 110.583306 94.029303)
+        (xy 110.492539 94.199118)
+        (xy 110.436644 94.383378)
+        (xy 110.4225 94.526986)
+        (xy 110.4225 95.523015)
+        (xy 110.436645 95.666623)
+        (xy 110.49254 95.850883)
+        (xy 110.583307 96.020697)
+        (xy 110.70546 96.169541)
+        (xy 110.854304 96.291694)
+        (xy 111.024118 96.382461)
+        (xy 111.208378 96.438356)
+        (xy 111.4 96.457229)
+        (xy 111.591623 96.438356)
+        (xy 111.775883 96.382461)
+        (xy 111.945697 96.291694)
+        (xy 112.094541 96.169541)
+        (xy 112.216694 96.020697)
+        (xy 112.2175 96.019189)
+        (xy 112.2175 97.330812)
+        (xy 112.216694 97.329303)
+        (xy 112.094541 97.180459)
+        (xy 111.945697 97.058306)
+        (xy 111.775882 96.967539)
+        (xy 111.591622 96.911644)
+        (xy 111.4 96.892771)
+        (xy 111.208377 96.911644)
+        (xy 111.024117 96.967539)
+        (xy 110.854303 97.058306)
+        (xy 110.705459 97.180459)
+        (xy 110.583306 97.329303)
+        (xy 110.492539 97.499118)
+        (xy 110.436644 97.683378)
+        (xy 110.4225 97.826986)
+        (xy 110.4225 98.823015)
+        (xy 110.436645 98.966623)
+        (xy 110.49254 99.150883)
+        (xy 110.583307 99.320697)
+        (xy 110.70546 99.469541)
+        (xy 110.854304 99.591694)
+        (xy 111.024118 99.682461)
+        (xy 111.139625 99.7175)
+        (xy 90.2825 99.7175)
+        (xy 90.2825 96.800309)
+        (xy 90.9725 96.800309)
+        (xy 90.9725 97.199691)
+        (xy 91.050416 97.5914)
+        (xy 91.203253 97.960381)
+        (xy 91.425138 98.292456)
+        (xy 91.707544 98.574862)
+        (xy 92.039619 98.796747)
+        (xy 92.4086 98.949584)
+        (xy 92.800309 99.0275)
+        (xy 93.199691 99.0275)
+        (xy 93.5914 98.949584)
+        (xy 93.960381 98.796747)
+        (xy 94.292456 98.574862)
+        (xy 94.574862 98.292456)
+        (xy 94.796747 97.960381)
+        (xy 94.949584 97.5914)
+        (xy 95.0275 97.199691)
+        (xy 95.0275 96.800309)
+        (xy 94.949584 96.4086)
+        (xy 94.796747 96.039619)
+        (xy 94.574862 95.707544)
+        (xy 94.292456 95.425138)
+        (xy 93.960381 95.203253)
+        (xy 93.5914 95.050416)
+        (xy 93.199691 94.9725)
+        (xy 92.800309 94.9725)
+        (xy 92.4086 95.050416)
+        (xy 92.039619 95.203253)
+        (xy 91.707544 95.425138)
+        (xy 91.425138 95.707544)
+        (xy 91.203253 96.039619)
+        (xy 91.050416 96.4086)
+        (xy 90.9725 96.800309)
+        (xy 90.2825 96.800309)
+        (xy 90.2825 83.37)
+        (xy 91.821158 83.37)
+        (xy 91.821158 85.17)
+        (xy 91.826516 85.224399)
+        (xy 91.842384 85.276708)
+        (xy 91.868151 85.324916)
+        (xy 91.902829 85.367171)
+        (xy 91.945084 85.401849)
+        (xy 91.993292 85.427616)
+        (xy 92.045601 85.443484)
+        (xy 92.1 85.448842)
+        (xy 93.9 85.448842)
+        (xy 93.954399 85.443484)
+        (xy 94.006708 85.427616)
+        (xy 94.054916 85.401849)
+        (xy 94.097171 85.367171)
+        (xy 94.131849 85.324916)
+        (xy 94.157616 85.276708)
+        (xy 94.173484 85.224399)
+        (xy 94.178842 85.17)
+        (xy 94.178842 84.807342)
+        (xy 94.226097 84.821677)
+        (xy 94.285232 84.827501)
+        (xy 94.285235 84.827501)
+        (xy 94.305001 84.829448)
+        (xy 94.324767 84.827501)
+        (xy 101.732007 84.827501)
+        (xy 101.726516 84.845601)
+        (xy 101.721158 84.9)
+        (xy 101.721158 86.1)
+        (xy 101.726516 86.154399)
+        (xy 101.742384 86.206708)
+        (xy 101.768151 86.254916)
+        (xy 101.802829 86.297171)
+        (xy 101.845084 86.331849)
+        (xy 101.893292 86.357616)
+        (xy 101.945601 86.373484)
+        (xy 102 86.378842)
+        (xy 104 86.378842)
+        (xy 104.054399 86.373484)
+        (xy 104.106708 86.357616)
+        (xy 104.154916 86.331849)
+        (xy 104.197171 86.297171)
+        (xy 104.231849 86.254916)
+        (xy 104.257616 86.206708)
+        (xy 104.273484 86.154399)
+        (xy 104.278842 86.1)
+        (xy 104.278842 86.0175)
+        (xy 104.316879 86.0175)
+        (xy 104.404856 86)
+        (xy 105.121158 86)
+        (xy 105.121158 88)
+        (xy 105.126516 88.054399)
+        (xy 105.142384 88.106708)
+        (xy 105.168151 88.154916)
+        (xy 105.202829 88.197171)
+        (xy 105.245084 88.231849)
+        (xy 105.293292 88.257616)
+        (xy 105.345601 88.273484)
+        (xy 105.4 88.278842)
+        (xy 106.6 88.278842)
+        (xy 106.654399 88.273484)
+        (xy 106.706708 88.257616)
+        (xy 106.754916 88.231849)
+        (xy 106.797171 88.197171)
+        (xy 106.831849 88.154916)
+        (xy 106.857616 88.106708)
+        (xy 106.873484 88.054399)
+        (xy 106.878842 88)
+        (xy 106.878842 86)
+        (xy 107.121158 86)
+        (xy 107.121158 88)
+        (xy 107.126516 88.054399)
+        (xy 107.142384 88.106708)
+        (xy 107.168151 88.154916)
+        (xy 107.202829 88.197171)
+        (xy 107.245084 88.231849)
+        (xy 107.293292 88.257616)
+        (xy 107.345601 88.273484)
+        (xy 107.4 88.278842)
+        (xy 108.6 88.278842)
+        (xy 108.654399 88.273484)
+        (xy 108.706708 88.257616)
+        (xy 108.754916 88.231849)
+        (xy 108.797171 88.197171)
+        (xy 108.831849 88.154916)
+        (xy 108.857616 88.106708)
+        (xy 108.873484 88.054399)
+        (xy 108.878842 88)
+        (xy 108.878842 86)
+        (xy 109.121158 86)
+        (xy 109.121158 88)
+        (xy 109.126516 88.054399)
+        (xy 109.142384 88.106708)
+        (xy 109.168151 88.154916)
+        (xy 109.202829 88.197171)
+        (xy 109.245084 88.231849)
+        (xy 109.293292 88.257616)
+        (xy 109.345601 88.273484)
+        (xy 109.4 88.278842)
+        (xy 110.6 88.278842)
+        (xy 110.654399 88.273484)
+        (xy 110.706708 88.257616)
+        (xy 110.754916 88.231849)
+        (xy 110.797171 88.197171)
+        (xy 110.831849 88.154916)
+        (xy 110.857616 88.106708)
+        (xy 110.873484 88.054399)
+        (xy 110.878842 88)
+        (xy 110.878842 86)
+        (xy 111.121158 86)
+        (xy 111.121158 88)
+        (xy 111.126516 88.054399)
+        (xy 111.142384 88.106708)
+        (xy 111.168151 88.154916)
+        (xy 111.202829 88.197171)
+        (xy 111.245084 88.231849)
+        (xy 111.293292 88.257616)
+        (xy 111.345601 88.273484)
+        (xy 111.4 88.278842)
+        (xy 112.6 88.278842)
+        (xy 112.654399 88.273484)
+        (xy 112.706708 88.257616)
+        (xy 112.754916 88.231849)
+        (xy 112.797171 88.197171)
+        (xy 112.831849 88.154916)
+        (xy 112.857616 88.106708)
+        (xy 112.873484 88.054399)
+        (xy 112.878842 88)
+        (xy 112.878842 86)
+        (xy 113.121158 86)
+        (xy 113.121158 88)
+        (xy 113.126516 88.054399)
+        (xy 113.142384 88.106708)
+        (xy 113.168151 88.154916)
+        (xy 113.202829 88.197171)
+        (xy 113.245084 88.231849)
+        (xy 113.293292 88.257616)
+        (xy 113.345601 88.273484)
+        (xy 113.4 88.278842)
+        (xy 114.6 88.278842)
+        (xy 114.654399 88.273484)
+        (xy 114.706708 88.257616)
+        (xy 114.754916 88.231849)
+        (xy 114.797171 88.197171)
+        (xy 114.831849 88.154916)
+        (xy 114.857616 88.106708)
+        (xy 114.873484 88.054399)
+        (xy 114.878842 88)
+        (xy 114.878842 86)
+        (xy 115.121158 86)
+        (xy 115.121158 88)
+        (xy 115.126516 88.054399)
+        (xy 115.142384 88.106708)
+        (xy 115.168151 88.154916)
+        (xy 115.202829 88.197171)
+        (xy 115.245084 88.231849)
+        (xy 115.293292 88.257616)
+        (xy 115.345601 88.273484)
+        (xy 115.4 88.278842)
+        (xy 116.6 88.278842)
+        (xy 116.654399 88.273484)
+        (xy 116.706708 88.257616)
+        (xy 116.754916 88.231849)
+        (xy 116.797171 88.197171)
+        (xy 116.831849 88.154916)
+        (xy 116.857616 88.106708)
+        (xy 116.873484 88.054399)
+        (xy 116.875771 88.031172)
+        (xy 123.450551 88.031172)
+        (xy 123.450551 88.14493)
+        (xy 123.472744 88.256501)
+        (xy 123.516277 88.3616)
+        (xy 123.579478 88.456186)
+        (xy 123.659916 88.536624)
+        (xy 123.754502 88.599825)
+        (xy 123.847184 88.638215)
+        (xy 123.788226 88.726451)
+        (xy 123.744693 88.83155)
+        (xy 123.7225 88.943121)
+        (xy 123.7225 89.056879)
+        (xy 123.744693 89.16845)
+        (xy 123.788226 89.273549)
+        (xy 123.851427 89.368135)
+        (xy 123.931865 89.448573)
+        (xy 124.026451 89.511774)
+        (xy 124.13155 89.555307)
+        (xy 124.243121 89.5775)
+        (xy 124.356879 89.5775)
+        (xy 124.46845 89.555307)
+        (xy 124.481262 89.55)
+        (xy 127.165891 89.55)
+        (xy 127.172311 89.615181)
+        (xy 127.191324 89.677858)
+        (xy 127.222199 89.735621)
+        (xy 127.263749 89.786251)
+        (xy 127.314379 89.827801)
+        (xy 127.372142 89.858676)
+        (xy 127.434819 89.877689)
+        (xy 127.5 89.884109)
+        (xy 127.866875 89.8825)
+        (xy 127.95 89.799375)
+        (xy 127.95 89.25)
+        (xy 128.05 89.25)
+        (xy 128.05 89.799375)
+        (xy 128.133125 89.8825)
+        (xy 128.5 89.884109)
+        (xy 128.565181 89.877689)
+        (xy 128.627858 89.858676)
+        (xy 128.685621 89.827801)
+        (xy 128.736251 89.786251)
+        (xy 128.777801 89.735621)
+        (xy 128.808676 89.677858)
+        (xy 128.827689 89.615181)
+        (xy 128.834109 89.55)
+        (xy 131.165891 89.55)
+        (xy 131.172311 89.615181)
+        (xy 131.191324 89.677858)
+        (xy 131.222199 89.735621)
+        (xy 131.263749 89.786251)
+        (xy 131.314379 89.827801)
+        (xy 131.372142 89.858676)
+        (xy 131.434819 89.877689)
+        (xy 131.5 89.884109)
+        (xy 131.866875 89.8825)
+        (xy 131.95 89.799375)
+        (xy 131.95 89.25)
+        (xy 132.05 89.25)
+        (xy 132.05 89.799375)
+        (xy 132.133125 89.8825)
+        (xy 132.5 89.884109)
+        (xy 132.565181 89.877689)
+        (xy 132.627858 89.858676)
+        (xy 132.685621 89.827801)
+        (xy 132.736251 89.786251)
+        (xy 132.777801 89.735621)
+        (xy 132.808676 89.677858)
+        (xy 132.827689 89.615181)
+        (xy 132.830846 89.583121)
+        (xy 137.2825 89.583121)
+        (xy 137.2825 89.696879)
+        (xy 137.304693 89.80845)
+        (xy 137.348226 89.913549)
+        (xy 137.411427 90.008135)
+        (xy 137.491865 90.088573)
+        (xy 137.586451 90.151774)
+        (xy 137.69155 90.195307)
+        (xy 137.803121 90.2175)
+        (xy 137.86828 90.2175)
+        (xy 140.421413 92.770634)
+        (xy 140.434013 92.785987)
+        (xy 140.449366 92.798587)
+        (xy 140.449368 92.798589)
+        (xy 140.486306 92.828903)
+        (xy 140.495301 92.836285)
+        (xy 140.565225 92.87366)
+        (xy 140.641096 92.896676)
+        (xy 140.700231 92.9025)
+        (xy 140.700241 92.9025)
+        (xy 140.72 92.904446)
+        (xy 140.739759 92.9025)
+        (xy 142.459158 92.9025)
+        (xy 142.459158 93)
+        (xy 142.464516 93.054399)
+        (xy 142.480384 93.106708)
+        (xy 142.506151 93.154916)
+        (xy 142.540829 93.197171)
+        (xy 142.583084 93.231849)
+        (xy 142.631292 93.257616)
+        (xy 142.683601 93.273484)
+        (xy 142.738 93.278842)
+        (xy 142.966525 93.278842)
+        (xy 142.944693 93.33155)
+        (xy 142.9225 93.443121)
+        (xy 142.9225 93.556879)
+        (xy 142.944693 93.66845)
+        (xy 142.988226 93.773549)
+        (xy 143.051427 93.868135)
+        (xy 143.131865 93.948573)
+        (xy 143.226451 94.011774)
+        (xy 143.33155 94.055307)
+        (xy 143.443121 94.0775)
+        (xy 143.556879 94.0775)
+        (xy 143.66845 94.055307)
+        (xy 143.773549 94.011774)
+        (xy 143.868135 93.948573)
+        (xy 143.948573 93.868135)
+        (xy 144.011774 93.773549)
+        (xy 144.055307 93.66845)
+        (xy 144.0775 93.556879)
+        (xy 144.0775 93.443121)
+        (xy 144.055307 93.33155)
+        (xy 144.033475 93.278842)
+        (xy 144.262 93.278842)
+        (xy 144.316399 93.273484)
+        (xy 144.368708 93.257616)
+        (xy 144.416916 93.231849)
+        (xy 144.459171 93.197171)
+        (xy 144.493849 93.154916)
+        (xy 144.519616 93.106708)
+        (xy 144.535484 93.054399)
+        (xy 144.540842 93)
+        (xy 144.540842 92)
+        (xy 144.535484 91.945601)
+        (xy 144.519616 91.893292)
+        (xy 144.493849 91.845084)
+        (xy 144.459171 91.802829)
+        (xy 144.416916 91.768151)
+        (xy 144.368708 91.742384)
+        (xy 144.316399 91.726516)
+        (xy 144.262 91.721158)
+        (xy 142.738 91.721158)
+        (xy 142.683601 91.726516)
+        (xy 142.631292 91.742384)
+        (xy 142.583084 91.768151)
+        (xy 142.540829 91.802829)
+        (xy 142.506151 91.845084)
+        (xy 142.480384 91.893292)
+        (xy 142.464516 91.945601)
+        (xy 142.459158 92)
+        (xy 142.459158 92.0975)
+        (xy 140.886721 92.0975)
+        (xy 138.4375 89.64828)
+        (xy 138.4375 89.583121)
+        (xy 138.415307 89.47155)
+        (xy 138.371774 89.366451)
+        (xy 138.308573 89.271865)
+        (xy 138.228135 89.191427)
+        (xy 138.133549 89.128226)
+        (xy 138.02845 89.084693)
+        (xy 137.916879 89.0625)
+        (xy 137.803121 89.0625)
+        (xy 137.69155 89.084693)
+        (xy 137.586451 89.128226)
+        (xy 137.491865 89.191427)
+        (xy 137.411427 89.271865)
+        (xy 137.348226 89.366451)
+        (xy 137.304693 89.47155)
+        (xy 137.2825 89.583121)
+        (xy 132.830846 89.583121)
+        (xy 132.834109 89.55)
+        (xy 132.8325 89.333125)
+        (xy 132.749375 89.25)
+        (xy 132.05 89.25)
+        (xy 131.95 89.25)
+        (xy 131.250625 89.25)
+        (xy 131.1675 89.333125)
+        (xy 131.165891 89.55)
+        (xy 128.834109 89.55)
+        (xy 128.8325 89.333125)
+        (xy 128.749375 89.25)
+        (xy 128.05 89.25)
+        (xy 127.95 89.25)
+        (xy 127.250625 89.25)
+        (xy 127.1675 89.333125)
+        (xy 127.165891 89.55)
+        (xy 124.481262 89.55)
+        (xy 124.573549 89.511774)
+        (xy 124.668135 89.448573)
+        (xy 124.748573 89.368135)
+        (xy 124.811774 89.273549)
+        (xy 124.855307 89.16845)
+        (xy 124.8775 89.056879)
+        (xy 124.8775 88.99172)
+        (xy 125.01922 88.85)
+        (xy 127.165891 88.85)
+        (xy 127.1675 89.066875)
+        (xy 127.250625 89.15)
+        (xy 127.95 89.15)
+        (xy 127.95 88.600625)
+        (xy 128.05 88.600625)
+        (xy 128.05 89.15)
+        (xy 128.749375 89.15)
+        (xy 128.8325 89.066875)
+        (xy 128.834109 88.85)
+        (xy 131.165891 88.85)
+        (xy 131.1675 89.066875)
+        (xy 131.250625 89.15)
+        (xy 131.95 89.15)
+        (xy 131.95 88.600625)
+        (xy 132.05 88.600625)
+        (xy 132.05 89.15)
+        (xy 132.749375 89.15)
+        (xy 132.8325 89.066875)
+        (xy 132.834109 88.85)
+        (xy 132.827689 88.784819)
+        (xy 132.808676 88.722142)
+        (xy 132.777801 88.664379)
+        (xy 132.736251 88.613749)
+        (xy 132.685621 88.572199)
+        (xy 132.627858 88.541324)
+        (xy 132.565181 88.522311)
+        (xy 132.5 88.515891)
+        (xy 132.133125 88.5175)
+        (xy 132.05 88.600625)
+        (xy 131.95 88.600625)
+        (xy 131.866875 88.5175)
+        (xy 131.5 88.515891)
+        (xy 131.434819 88.522311)
+        (xy 131.372142 88.541324)
+        (xy 131.314379 88.572199)
+        (xy 131.263749 88.613749)
+        (xy 131.222199 88.664379)
+        (xy 131.191324 88.722142)
+        (xy 131.172311 88.784819)
+        (xy 131.165891 88.85)
+        (xy 128.834109 88.85)
+        (xy 128.827689 88.784819)
+        (xy 128.808676 88.722142)
+        (xy 128.777801 88.664379)
+        (xy 128.736251 88.613749)
+        (xy 128.685621 88.572199)
+        (xy 128.627858 88.541324)
+        (xy 128.565181 88.522311)
+        (xy 128.5 88.515891)
+        (xy 128.133125 88.5175)
+        (xy 128.05 88.600625)
+        (xy 127.95 88.600625)
+        (xy 127.866875 88.5175)
+        (xy 127.5 88.515891)
+        (xy 127.434819 88.522311)
+        (xy 127.372142 88.541324)
+        (xy 127.314379 88.572199)
+        (xy 127.263749 88.613749)
+        (xy 127.222199 88.664379)
+        (xy 127.191324 88.722142)
+        (xy 127.172311 88.784819)
+        (xy 127.165891 88.85)
+        (xy 125.01922 88.85)
+        (xy 125.2486 88.620621)
+        (xy 125.286296 88.574688)
+        (xy 125.32367 88.504765)
+        (xy 125.346686 88.428893)
+        (xy 125.354457 88.34999)
+        (xy 125.346686 88.271087)
+        (xy 125.327511 88.207877)
+        (xy 125.327511 84.55)
+        (xy 127.021158 84.55)
+        (xy 127.021158 86.95)
+        (xy 127.026516 87.004399)
+        (xy 127.042384 87.056708)
+        (xy 127.068151 87.104916)
+        (xy 127.102829 87.147171)
+        (xy 127.145084 87.181849)
+        (xy 127.193292 87.207616)
+        (xy 127.245601 87.223484)
+        (xy 127.3 87.228842)
+        (xy 127.332057 87.228842)
+        (xy 127.302829 87.252829)
+        (xy 127.268151 87.295084)
+        (xy 127.242384 87.343292)
+        (xy 127.226516 87.395601)
+        (xy 127.221158 87.45)
+        (xy 127.221158 88.15)
+        (xy 127.226516 88.204399)
+        (xy 127.242384 88.256708)
+        (xy 127.268151 88.304916)
+        (xy 127.302829 88.347171)
+        (xy 127.345084 88.381849)
+        (xy 127.393292 88.407616)
+        (xy 127.445601 88.423484)
+        (xy 127.5 88.428842)
+        (xy 128.5 88.428842)
+        (xy 128.554399 88.423484)
+        (xy 128.606708 88.407616)
+        (xy 128.654916 88.381849)
+        (xy 128.697171 88.347171)
+        (xy 128.731849 88.304916)
+        (xy 128.757616 88.256708)
+        (xy 128.773484 88.204399)
+        (xy 128.778842 88.15)
+        (xy 128.778842 87.45)
+        (xy 128.773484 87.395601)
+        (xy 128.757616 87.343292)
+        (xy 128.731849 87.295084)
+        (xy 128.697171 87.252829)
+        (xy 128.667943 87.228842)
+        (xy 129 87.228842)
+        (xy 129.054399 87.223484)
+        (xy 129.106708 87.207616)
+        (xy 129.154916 87.181849)
+        (xy 129.197171 87.147171)
+        (xy 129.231849 87.104916)
+        (xy 129.257616 87.056708)
+        (xy 129.273484 87.004399)
+        (xy 129.278842 86.95)
+        (xy 129.278842 86.151606)
+        (xy 129.328904 86.146676)
+        (xy 129.404775 86.12366)
+        (xy 129.474699 86.086285)
+        (xy 129.535987 86.035987)
+        (xy 129.548591 86.020629)
+        (xy 130 85.569221)
+        (xy 130.451413 86.020634)
+        (xy 130.464013 86.035987)
+        (xy 130.479366 86.048587)
+        (xy 130.479368 86.048589)
+        (xy 130.488517 86.056097)
+        (xy 130.525301 86.086285)
+        (xy 130.595225 86.12366)
+        (xy 130.671096 86.146676)
+        (xy 130.721158 86.151606)
+        (xy 130.721158 86.95)
+        (xy 130.726516 87.004399)
+        (xy 130.742384 87.056708)
+        (xy 130.768151 87.104916)
+        (xy 130.802829 87.147171)
+        (xy 130.845084 87.181849)
+        (xy 130.893292 87.207616)
+        (xy 130.945601 87.223484)
+        (xy 131 87.228842)
+        (xy 131.332057 87.228842)
+        (xy 131.302829 87.252829)
+        (xy 131.268151 87.295084)
+        (xy 131.242384 87.343292)
+        (xy 131.226516 87.395601)
+        (xy 131.221158 87.45)
+        (xy 131.221158 88.15)
+        (xy 131.226516 88.204399)
+        (xy 131.242384 88.256708)
+        (xy 131.268151 88.304916)
+        (xy 131.302829 88.347171)
+        (xy 131.345084 88.381849)
+        (xy 131.393292 88.407616)
+        (xy 131.445601 88.423484)
+        (xy 131.5 88.428842)
+        (xy 132.5 88.428842)
+        (xy 132.554399 88.423484)
+        (xy 132.606708 88.407616)
+        (xy 132.654916 88.381849)
+        (xy 132.697171 88.347171)
+        (xy 132.731849 88.304916)
+        (xy 132.757616 88.256708)
+        (xy 132.773484 88.204399)
+        (xy 132.778842 88.15)
+        (xy 132.778842 87.45)
+        (xy 132.773484 87.395601)
+        (xy 132.757616 87.343292)
+        (xy 132.731849 87.295084)
+        (xy 132.697171 87.252829)
+        (xy 132.667943 87.228842)
+        (xy 132.7 87.228842)
+        (xy 132.754399 87.223484)
+        (xy 132.806708 87.207616)
+        (xy 132.854916 87.181849)
+        (xy 132.897171 87.147171)
+        (xy 132.931849 87.104916)
+        (xy 132.957616 87.056708)
+        (xy 132.973484 87.004399)
+        (xy 132.978842 86.95)
+        (xy 132.978842 84.55)
+        (xy 132.973484 84.495601)
+        (xy 132.957616 84.443292)
+        (xy 132.931849 84.395084)
+        (xy 132.897171 84.352829)
+        (xy 132.873157 84.333121)
+        (xy 133.1225 84.333121)
+        (xy 133.1225 84.446879)
+        (xy 133.144693 84.55845)
+        (xy 133.188226 84.663549)
+        (xy 133.251427 84.758135)
+        (xy 133.331865 84.838573)
+        (xy 133.426451 84.901774)
+        (xy 133.53155 84.945307)
+        (xy 133.643121 84.9675)
+        (xy 133.756879 84.9675)
+        (xy 133.86845 84.945307)
+        (xy 133.973549 84.901774)
+        (xy 134.068135 84.838573)
+        (xy 134.148573 84.758135)
+        (xy 134.211774 84.663549)
+        (xy 134.255307 84.55845)
+        (xy 134.2775 84.446879)
+        (xy 134.2775 84.333121)
+        (xy 134.255307 84.22155)
+        (xy 134.211774 84.116451)
+        (xy 134.1525 84.027742)
+        (xy 134.1525 82.32172)
+        (xy 134.917499 83.08672)
+        (xy 134.917498 86.475792)
+        (xy 134.871425 86.521865)
+        (xy 134.808224 86.616451)
+        (xy 134.764691 86.72155)
+        (xy 134.742498 86.833121)
+        (xy 134.742498 86.946879)
+        (xy 134.764691 87.05845)
+        (xy 134.808224 87.163549)
+        (xy 134.871425 87.258135)
+        (xy 134.951863 87.338573)
+        (xy 135.046449 87.401774)
+        (xy 135.151548 87.445307)
+        (xy 135.263119 87.4675)
+        (xy 135.376877 87.4675)
+        (xy 135.488448 87.445307)
+        (xy 135.593547 87.401774)
+        (xy 135.688133 87.338573)
+        (xy 135.768571 87.258135)
+        (xy 135.831772 87.163549)
+        (xy 135.875305 87.05845)
+        (xy 135.897498 86.946879)
+        (xy 135.897498 86.833121)
+        (xy 135.875305 86.72155)
+        (xy 135.831772 86.616451)
+        (xy 135.768571 86.521865)
+        (xy 135.722498 86.475792)
+        (xy 135.722498 85.143121)
+        (xy 141.0225 85.143121)
+        (xy 141.0225 85.256879)
+        (xy 141.044693 85.36845)
+        (xy 141.088226 85.473549)
+        (xy 141.151427 85.568135)
+        (xy 141.231865 85.648573)
+        (xy 141.326451 85.711774)
+        (xy 141.43155 85.755307)
+        (xy 141.543121 85.7775)
+        (xy 141.60828 85.7775)
+        (xy 148.601413 92.770634)
+        (xy 148.614013 92.785987)
+        (xy 148.629366 92.798587)
+        (xy 148.629368 92.798589)
+        (xy 148.666306 92.828903)
+        (xy 148.675301 92.836285)
+        (xy 148.745225 92.87366)
+        (xy 148.821096 92.896676)
+        (xy 148.880231 92.9025)
+        (xy 148.88024 92.9025)
+        (xy 148.899999 92.904446)
+        (xy 148.919758 92.9025)
+        (xy 148.959158 92.9025)
+        (xy 148.959158 93)
+        (xy 148.964516 93.054399)
+        (xy 148.980384 93.106708)
+        (xy 149.006151 93.154916)
+        (xy 149.040829 93.197171)
+        (xy 149.083084 93.231849)
+        (xy 149.131292 93.257616)
+        (xy 149.183601 93.273484)
+        (xy 149.238 93.278842)
+        (xy 149.597501 93.278842)
+        (xy 149.597501 93.585791)
+        (xy 149.551427 93.631865)
+        (xy 149.488226 93.726451)
+        (xy 149.444693 93.83155)
+        (xy 149.4225 93.943121)
+        (xy 149.4225 94.056879)
+        (xy 149.444693 94.16845)
+        (xy 149.488226 94.273549)
+        (xy 149.551427 94.368135)
+        (xy 149.631865 94.448573)
+        (xy 149.726451 94.511774)
+        (xy 149.83155 94.555307)
+        (xy 149.943121 94.5775)
+        (xy 150.056879 94.5775)
+        (xy 150.16845 94.555307)
+        (xy 150.273549 94.511774)
+        (xy 150.365999 94.45)
+        (xy 159.971158 94.45)
+        (xy 159.971158 95.3)
+        (xy 159.976516 95.354399)
+        (xy 159.992384 95.406708)
+        (xy 160.018151 95.454916)
+        (xy 160.052829 95.497171)
+        (xy 160.095084 95.531849)
+        (xy 160.143292 95.557616)
+        (xy 160.195601 95.573484)
+        (xy 160.25 95.578842)
+        (xy 160.597501 95.578842)
+        (xy 160.597501 95.721158)
+        (xy 160.375 95.721158)
+        (xy 160.320601 95.726516)
+        (xy 160.268292 95.742384)
+        (xy 160.220084 95.768151)
+        (xy 160.177829 95.802829)
+        (xy 160.143151 95.845084)
+        (xy 160.117384 95.893292)
+        (xy 160.101516 95.945601)
+        (xy 160.096158 96)
+        (xy 160.096158 97)
+        (xy 160.101516 97.054399)
+        (xy 160.117384 97.106708)
+        (xy 160.143151 97.154916)
+        (xy 160.177829 97.197171)
+        (xy 160.220084 97.231849)
+        (xy 160.268292 97.257616)
+        (xy 160.320601 97.273484)
+        (xy 160.375 97.278842)
+        (xy 161.625 97.278842)
+        (xy 161.679399 97.273484)
+        (xy 161.731708 97.257616)
+        (xy 161.779916 97.231849)
+        (xy 161.822171 97.197171)
+        (xy 161.856849 97.154916)
+        (xy 161.882616 97.106708)
+        (xy 161.898484 97.054399)
+        (xy 161.903842 97)
+        (xy 161.903842 96)
+        (xy 161.898484 95.945601)
+        (xy 161.882616 95.893292)
+        (xy 161.856849 95.845084)
+        (xy 161.822171 95.802829)
+        (xy 161.779916 95.768151)
+        (xy 161.731708 95.742384)
+        (xy 161.679399 95.726516)
+        (xy 161.625 95.721158)
+        (xy 161.4025 95.721158)
+        (xy 161.4025 95.578842)
+        (xy 161.75 95.578842)
+        (xy 161.804399 95.573484)
+        (xy 161.856708 95.557616)
+        (xy 161.904916 95.531849)
+        (xy 161.947171 95.497171)
+        (xy 161.981849 95.454916)
+        (xy 162.007616 95.406708)
+        (xy 162.023484 95.354399)
+        (xy 162.028842 95.3)
+        (xy 162.028842 94.45)
+        (xy 163.971158 94.45)
+        (xy 163.971158 95.3)
+        (xy 163.976516 95.354399)
+        (xy 163.992384 95.406708)
+        (xy 164.018151 95.454916)
+        (xy 164.052829 95.497171)
+        (xy 164.095084 95.531849)
+        (xy 164.143292 95.557616)
+        (xy 164.195601 95.573484)
+        (xy 164.25 95.578842)
+        (xy 164.597501 95.578842)
+        (xy 164.597501 95.721158)
+        (xy 164.375 95.721158)
+        (xy 164.320601 95.726516)
+        (xy 164.268292 95.742384)
+        (xy 164.220084 95.768151)
+        (xy 164.177829 95.802829)
+        (xy 164.143151 95.845084)
+        (xy 164.117384 95.893292)
+        (xy 164.101516 95.945601)
+        (xy 164.096158 96)
+        (xy 164.096158 97)
+        (xy 164.101516 97.054399)
+        (xy 164.117384 97.106708)
+        (xy 164.143151 97.154916)
+        (xy 164.177829 97.197171)
+        (xy 164.220084 97.231849)
+        (xy 164.268292 97.257616)
+        (xy 164.320601 97.273484)
+        (xy 164.375 97.278842)
+        (xy 165.625 97.278842)
+        (xy 165.679399 97.273484)
+        (xy 165.731708 97.257616)
+        (xy 165.779916 97.231849)
+        (xy 165.822171 97.197171)
+        (xy 165.856849 97.154916)
+        (xy 165.882616 97.106708)
+        (xy 165.898484 97.054399)
+        (xy 165.903842 97)
+        (xy 165.903842 96)
+        (xy 165.898484 95.945601)
+        (xy 165.882616 95.893292)
+        (xy 165.856849 95.845084)
+        (xy 165.822171 95.802829)
+        (xy 165.779916 95.768151)
+        (xy 165.731708 95.742384)
+        (xy 165.679399 95.726516)
+        (xy 165.625 95.721158)
+        (xy 165.4025 95.721158)
+        (xy 165.4025 95.578842)
+        (xy 165.75 95.578842)
+        (xy 165.804399 95.573484)
+        (xy 165.856708 95.557616)
+        (xy 165.904916 95.531849)
+        (xy 165.947171 95.497171)
+        (xy 165.981849 95.454916)
+        (xy 166.007616 95.406708)
+        (xy 166.023484 95.354399)
+        (xy 166.028842 95.3)
+        (xy 166.028842 94.45)
+        (xy 167.971158 94.45)
+        (xy 167.971158 95.3)
+        (xy 167.976516 95.354399)
+        (xy 167.992384 95.406708)
+        (xy 168.018151 95.454916)
+        (xy 168.052829 95.497171)
+        (xy 168.095084 95.531849)
+        (xy 168.143292 95.557616)
+        (xy 168.195601 95.573484)
+        (xy 168.25 95.578842)
+        (xy 168.597501 95.578842)
+        (xy 168.597501 95.721158)
+        (xy 168.375 95.721158)
+        (xy 168.320601 95.726516)
+        (xy 168.268292 95.742384)
+        (xy 168.220084 95.768151)
+        (xy 168.177829 95.802829)
+        (xy 168.143151 95.845084)
+        (xy 168.117384 95.893292)
+        (xy 168.101516 95.945601)
+        (xy 168.096158 96)
+        (xy 168.096158 97)
+        (xy 168.101516 97.054399)
+        (xy 168.117384 97.106708)
+        (xy 168.143151 97.154916)
+        (xy 168.177829 97.197171)
+        (xy 168.220084 97.231849)
+        (xy 168.268292 97.257616)
+        (xy 168.320601 97.273484)
+        (xy 168.375 97.278842)
+        (xy 169.625 97.278842)
+        (xy 169.679399 97.273484)
+        (xy 169.731708 97.257616)
+        (xy 169.779916 97.231849)
+        (xy 169.822171 97.197171)
+        (xy 169.856849 97.154916)
+        (xy 169.882616 97.106708)
+        (xy 169.898484 97.054399)
+        (xy 169.903842 97)
+        (xy 169.903842 96.800309)
+        (xy 184.9725 96.800309)
+        (xy 184.9725 97.199691)
+        (xy 185.050416 97.5914)
+        (xy 185.203253 97.960381)
+        (xy 185.425138 98.292456)
+        (xy 185.707544 98.574862)
+        (xy 186.039619 98.796747)
+        (xy 186.4086 98.949584)
+        (xy 186.800309 99.0275)
+        (xy 187.199691 99.0275)
+        (xy 187.5914 98.949584)
+        (xy 187.960381 98.796747)
+        (xy 188.292456 98.574862)
+        (xy 188.574862 98.292456)
+        (xy 188.796747 97.960381)
+        (xy 188.949584 97.5914)
+        (xy 189.0275 97.199691)
+        (xy 189.0275 96.800309)
+        (xy 188.949584 96.4086)
+        (xy 188.796747 96.039619)
+        (xy 188.574862 95.707544)
+        (xy 188.292456 95.425138)
+        (xy 187.960381 95.203253)
+        (xy 187.5914 95.050416)
+        (xy 187.199691 94.9725)
+        (xy 186.800309 94.9725)
+        (xy 186.4086 95.050416)
+        (xy 186.039619 95.203253)
+        (xy 185.707544 95.425138)
+        (xy 185.425138 95.707544)
+        (xy 185.203253 96.039619)
+        (xy 185.050416 96.4086)
+        (xy 184.9725 96.800309)
+        (xy 169.903842 96.800309)
+        (xy 169.903842 96)
+        (xy 169.898484 95.945601)
+        (xy 169.882616 95.893292)
+        (xy 169.856849 95.845084)
+        (xy 169.822171 95.802829)
+        (xy 169.779916 95.768151)
+        (xy 169.731708 95.742384)
+        (xy 169.679399 95.726516)
+        (xy 169.625 95.721158)
+        (xy 169.4025 95.721158)
+        (xy 169.4025 95.578842)
+        (xy 169.75 95.578842)
+        (xy 169.804399 95.573484)
+        (xy 169.856708 95.557616)
+        (xy 169.904916 95.531849)
+        (xy 169.947171 95.497171)
+        (xy 169.981849 95.454916)
+        (xy 170.007616 95.406708)
+        (xy 170.023484 95.354399)
+        (xy 170.028842 95.3)
+        (xy 170.028842 94.45)
+        (xy 170.023484 94.395601)
+        (xy 170.007616 94.343292)
+        (xy 169.981849 94.295084)
+        (xy 169.947171 94.252829)
+        (xy 169.904916 94.218151)
+        (xy 169.856708 94.192384)
+        (xy 169.804399 94.176516)
+        (xy 169.75 94.171158)
+        (xy 168.25 94.171158)
+        (xy 168.195601 94.176516)
+        (xy 168.143292 94.192384)
+        (xy 168.095084 94.218151)
+        (xy 168.052829 94.252829)
+        (xy 168.018151 94.295084)
+        (xy 167.992384 94.343292)
+        (xy 167.976516 94.395601)
+        (xy 167.971158 94.45)
+        (xy 166.028842 94.45)
+        (xy 166.023484 94.395601)
+        (xy 166.007616 94.343292)
+        (xy 165.981849 94.295084)
+        (xy 165.947171 94.252829)
+        (xy 165.904916 94.218151)
+        (xy 165.856708 94.192384)
+        (xy 165.804399 94.176516)
+        (xy 165.75 94.171158)
+        (xy 164.25 94.171158)
+        (xy 164.195601 94.176516)
+        (xy 164.143292 94.192384)
+        (xy 164.095084 94.218151)
+        (xy 164.052829 94.252829)
+        (xy 164.018151 94.295084)
+        (xy 163.992384 94.343292)
+        (xy 163.976516 94.395601)
+        (xy 163.971158 94.45)
+        (xy 162.028842 94.45)
+        (xy 162.023484 94.395601)
+        (xy 162.007616 94.343292)
+        (xy 161.981849 94.295084)
+        (xy 161.947171 94.252829)
+        (xy 161.904916 94.218151)
+        (xy 161.856708 94.192384)
+        (xy 161.804399 94.176516)
+        (xy 161.75 94.171158)
+        (xy 160.25 94.171158)
+        (xy 160.195601 94.176516)
+        (xy 160.143292 94.192384)
+        (xy 160.095084 94.218151)
+        (xy 160.052829 94.252829)
+        (xy 160.018151 94.295084)
+        (xy 159.992384 94.343292)
+        (xy 159.976516 94.395601)
+        (xy 159.971158 94.45)
+        (xy 150.365999 94.45)
+        (xy 150.368135 94.448573)
+        (xy 150.448573 94.368135)
+        (xy 150.511774 94.273549)
+        (xy 150.555307 94.16845)
+        (xy 150.5775 94.056879)
+        (xy 150.5775 93.943121)
+        (xy 150.555307 93.83155)
+        (xy 150.511774 93.726451)
+        (xy 150.448573 93.631865)
+        (xy 150.4025 93.585792)
+        (xy 150.4025 93.278842)
+        (xy 150.762 93.278842)
+        (xy 150.816399 93.273484)
+        (xy 150.868708 93.257616)
+        (xy 150.916916 93.231849)
+        (xy 150.959171 93.197171)
+        (xy 150.993849 93.154916)
+        (xy 151.019616 93.106708)
+        (xy 151.035484 93.054399)
+        (xy 151.040842 93)
+        (xy 151.040842 92.385799)
+        (xy 151.425677 92.770634)
+        (xy 151.438277 92.785987)
+        (xy 151.45363 92.798587)
+        (xy 151.453632 92.798589)
+        (xy 151.49057 92.828903)
+        (xy 151.499565 92.836285)
+        (xy 151.569489 92.87366)
+        (xy 151.64536 92.896676)
+        (xy 151.704495 92.9025)
+        (xy 151.704504 92.9025)
+        (xy 151.724263 92.904446)
+        (xy 151.744022 92.9025)
+        (xy 154.959158 92.9025)
+        (xy 154.959158 93)
+        (xy 154.964516 93.054399)
+        (xy 154.980384 93.106708)
+        (xy 155.006151 93.154916)
+        (xy 155.040829 93.197171)
+        (xy 155.083084 93.231849)
+        (xy 155.131292 93.257616)
+        (xy 155.183601 93.273484)
+        (xy 155.238 93.278842)
+        (xy 155.466525 93.278842)
+        (xy 155.444693 93.33155)
+        (xy 155.4225 93.443121)
+        (xy 155.4225 93.556879)
+        (xy 155.444693 93.66845)
+        (xy 155.488226 93.773549)
+        (xy 155.551427 93.868135)
+        (xy 155.631865 93.948573)
+        (xy 155.726451 94.011774)
+        (xy 155.83155 94.055307)
+        (xy 155.943121 94.0775)
+        (xy 156.056879 94.0775)
+        (xy 156.16845 94.055307)
+        (xy 156.273549 94.011774)
+        (xy 156.368135 93.948573)
+        (xy 156.448573 93.868135)
+        (xy 156.511774 93.773549)
+        (xy 156.555307 93.66845)
+        (xy 156.5775 93.556879)
+        (xy 156.5775 93.443121)
+        (xy 156.555307 93.33155)
+        (xy 156.533475 93.278842)
+        (xy 156.762 93.278842)
+        (xy 156.816399 93.273484)
+        (xy 156.868708 93.257616)
+        (xy 156.916916 93.231849)
+        (xy 156.959171 93.197171)
+        (xy 156.993849 93.154916)
+        (xy 157.019616 93.106708)
+        (xy 157.035484 93.054399)
+        (xy 157.040842 93)
+        (xy 157.040842 92)
+        (xy 157.035484 91.945601)
+        (xy 157.019616 91.893292)
+        (xy 156.993849 91.845084)
+        (xy 156.959171 91.802829)
+        (xy 156.916916 91.768151)
+        (xy 156.868708 91.742384)
+        (xy 156.816399 91.726516)
+        (xy 156.762 91.721158)
+        (xy 155.238 91.721158)
+        (xy 155.183601 91.726516)
+        (xy 155.131292 91.742384)
+        (xy 155.083084 91.768151)
+        (xy 155.040829 91.802829)
+        (xy 155.006151 91.845084)
+        (xy 154.980384 91.893292)
+        (xy 154.964516 91.945601)
+        (xy 154.959158 92)
+        (xy 154.959158 92.0975)
+        (xy 151.890985 92.0975)
+        (xy 144.422855 84.629371)
+        (xy 144.410251 84.614013)
+        (xy 144.348963 84.563715)
+        (xy 144.279039 84.52634)
+        (xy 144.203168 84.503324)
+        (xy 144.144033 84.4975)
+        (xy 144.144023 84.4975)
+        (xy 144.124264 84.495554)
+        (xy 144.104505 84.4975)
+        (xy 143.314208 84.4975)
+        (xy 143.268135 84.451427)
+        (xy 143.173549 84.388226)
+        (xy 143.06845 84.344693)
+        (xy 142.956879 84.3225)
+        (xy 142.843121 84.3225)
+        (xy 142.73155 84.344693)
+        (xy 142.626451 84.388226)
+        (xy 142.531865 84.451427)
+        (xy 142.451427 84.531865)
+        (xy 142.388226 84.626451)
+        (xy 142.344693 84.73155)
+        (xy 142.3225 84.843121)
+        (xy 142.3225 84.956879)
+        (xy 142.344693 85.06845)
+        (xy 142.388226 85.173549)
+        (xy 142.451427 85.268135)
+        (xy 142.531865 85.348573)
+        (xy 142.626451 85.411774)
+        (xy 142.73155 85.455307)
+        (xy 142.843121 85.4775)
+        (xy 142.956879 85.4775)
+        (xy 143.06845 85.455307)
+        (xy 143.173549 85.411774)
+        (xy 143.268135 85.348573)
+        (xy 143.314208 85.3025)
+        (xy 143.957544 85.3025)
+        (xy 150.376201 91.721158)
+        (xy 149.238 91.721158)
+        (xy 149.183601 91.726516)
+        (xy 149.131292 91.742384)
+        (xy 149.083084 91.768151)
+        (xy 149.040829 91.802829)
+        (xy 149.006151 91.845084)
+        (xy 148.980384 91.893292)
+        (xy 148.964516 91.945601)
+        (xy 148.96006 91.990839)
+        (xy 142.1775 85.20828)
+        (xy 142.1775 85.143121)
+        (xy 142.155307 85.03155)
+        (xy 142.111774 84.926451)
+        (xy 142.048573 84.831865)
+        (xy 141.968135 84.751427)
+        (xy 141.873549 84.688226)
+        (xy 141.76845 84.644693)
+        (xy 141.656879 84.6225)
+        (xy 141.543121 84.6225)
+        (xy 141.43155 84.644693)
+        (xy 141.326451 84.688226)
+        (xy 141.231865 84.751427)
+        (xy 141.151427 84.831865)
+        (xy 141.088226 84.926451)
+        (xy 141.044693 85.03155)
+        (xy 141.0225 85.143121)
+        (xy 135.722498 85.143121)
+        (xy 135.722498 82.939757)
+        (xy 135.724444 82.919998)
+        (xy 135.722498 82.900239)
+        (xy 135.722498 82.900229)
+        (xy 135.716674 82.841094)
+        (xy 135.693658 82.765223)
+        (xy 135.687898 82.754446)
+        (xy 135.656284 82.695299)
+        (xy 135.618587 82.649366)
+        (xy 135.618585 82.649364)
+        (xy 135.605985 82.634011)
+        (xy 135.590632 82.621411)
+        (xy 134.848062 81.878842)
+        (xy 134.9 81.878842)
+        (xy 134.954399 81.873484)
+        (xy 135 81.859651)
+        (xy 135.045601 81.873484)
+        (xy 135.1 81.878842)
+        (xy 135.4 81.878842)
+        (xy 135.454399 81.873484)
+        (xy 135.506708 81.857616)
+        (xy 135.554916 81.831849)
+        (xy 135.597171 81.797171)
+        (xy 135.631849 81.754916)
+        (xy 135.657616 81.706708)
+        (xy 135.673484 81.654399)
+        (xy 135.678842 81.6)
+        (xy 135.678842 81.4025)
+        (xy 138.210241 81.4025)
+        (xy 138.23 81.404446)
+        (xy 138.249759 81.4025)
+        (xy 138.249769 81.4025)
+        (xy 138.308904 81.396676)
+        (xy 138.384775 81.37366)
+        (xy 138.454699 81.336285)
+        (xy 138.515987 81.285987)
+        (xy 138.528591 81.270629)
+        (xy 138.72172 81.0775)
+        (xy 138.786879 81.0775)
+        (xy 138.89845 81.055307)
+        (xy 139.003549 81.011774)
+        (xy 139.098135 80.948573)
+        (xy 139.178573 80.868135)
+        (xy 139.241774 80.773549)
+        (xy 139.285307 80.66845)
+        (xy 139.3075 80.556879)
+        (xy 139.3075 80.443121)
+        (xy 139.285307 80.33155)
+        (xy 139.241774 80.226451)
+        (xy 139.178573 80.131865)
+        (xy 139.098135 80.051427)
+        (xy 139.003549 79.988226)
+        (xy 138.89845 79.944693)
+        (xy 138.786879 79.9225)
+        (xy 138.673121 79.9225)
+        (xy 138.56155 79.944693)
+        (xy 138.456451 79.988226)
+        (xy 138.361865 80.051427)
+        (xy 138.281427 80.131865)
+        (xy 138.218226 80.226451)
+        (xy 138.174693 80.33155)
+        (xy 138.1525 80.443121)
+        (xy 138.1525 80.50828)
+        (xy 138.06328 80.5975)
+        (xy 135.678842 80.5975)
+        (xy 135.678842 80.4)
+        (xy 135.673484 80.345601)
+        (xy 135.657616 80.293292)
+        (xy 135.631849 80.245084)
+        (xy 135.597171 80.202829)
+        (xy 135.554916 80.168151)
+        (xy 135.506708 80.142384)
+        (xy 135.454399 80.126516)
+        (xy 135.4 80.121158)
+        (xy 135.1525 80.121158)
+        (xy 135.1525 78.194769)
+        (xy 135.154446 78.17501)
+        (xy 135.1525 78.155251)
+        (xy 135.1525 78.155241)
+        (xy 135.146676 78.096106)
+        (xy 135.12366 78.020235)
+        (xy 135.086285 77.950311)
+        (xy 135.061218 77.919767)
+        (xy 135.05249 77.909131)
+        (xy 135.05249 77.843121)
+        (xy 135.030297 77.73155)
+        (xy 134.986764 77.626451)
+        (xy 134.923563 77.531865)
+        (xy 134.843125 77.451427)
+        (xy 134.748539 77.388226)
+        (xy 134.64344 77.344693)
+        (xy 134.531869 77.3225)
+        (xy 134.418111 77.3225)
+        (xy 134.30654 77.344693)
+        (xy 134.201441 77.388226)
+        (xy 134.106855 77.451427)
+        (xy 134.026417 77.531865)
+        (xy 133.963216 77.626451)
+        (xy 133.919683 77.73155)
+        (xy 133.89749 77.843121)
+        (xy 133.89749 77.956879)
+        (xy 133.919683 78.06845)
+        (xy 133.963216 78.173549)
+        (xy 134.026417 78.268135)
+        (xy 134.106855 78.348573)
+        (xy 134.201441 78.411774)
+        (xy 134.30654 78.455307)
+        (xy 134.347501 78.463455)
+        (xy 134.3475 80.121158)
+        (xy 134.1 80.121158)
+        (xy 134.045601 80.126516)
+        (xy 134 80.140349)
+        (xy 133.954399 80.126516)
+        (xy 133.9 80.121158)
+        (xy 133.6 80.121158)
+        (xy 133.586029 80.122534)
+        (xy 133.585621 80.122199)
+        (xy 133.527858 80.091324)
+        (xy 133.465181 80.072311)
+        (xy 133.4 80.065891)
+        (xy 133.383125 80.0675)
+        (xy 133.3 80.150625)
+        (xy 133.3 80.95)
+        (xy 133.32 80.95)
+        (xy 133.32 81.05)
+        (xy 133.3 81.05)
+        (xy 133.3 81.849375)
+        (xy 133.3475 81.896875)
+        (xy 133.347501 83.930979)
+        (xy 133.331865 83.941427)
+        (xy 133.251427 84.021865)
+        (xy 133.188226 84.116451)
+        (xy 133.144693 84.22155)
+        (xy 133.1225 84.333121)
+        (xy 132.873157 84.333121)
+        (xy 132.854916 84.318151)
+        (xy 132.806708 84.292384)
+        (xy 132.754399 84.276516)
+        (xy 132.7 84.271158)
+        (xy 131 84.271158)
+        (xy 130.945601 84.276516)
+        (xy 130.893292 84.292384)
+        (xy 130.845084 84.318151)
+        (xy 130.802829 84.352829)
+        (xy 130.768151 84.395084)
+        (xy 130.742384 84.443292)
+        (xy 130.726516 84.495601)
+        (xy 130.721158 84.55)
+        (xy 130.721158 85.151938)
+        (xy 130.6525 85.08328)
+        (xy 130.6525 81.878842)
+        (xy 130.9 81.878842)
+        (xy 130.954399 81.873484)
+        (xy 131 81.859651)
+        (xy 131.045601 81.873484)
+        (xy 131.1 81.878842)
+        (xy 131.4 81.878842)
+        (xy 131.454399 81.873484)
+        (xy 131.5 81.859651)
+        (xy 131.545601 81.873484)
+        (xy 131.6 81.878842)
+        (xy 131.9 81.878842)
+        (xy 131.954399 81.873484)
+        (xy 132 81.859651)
+        (xy 132.045601 81.873484)
+        (xy 132.1 81.878842)
+        (xy 132.4 81.878842)
+        (xy 132.454399 81.873484)
+        (xy 132.5 81.859651)
+        (xy 132.545601 81.873484)
+        (xy 132.6 81.878842)
+        (xy 132.9 81.878842)
+        (xy 132.913971 81.877466)
+        (xy 132.914379 81.877801)
+        (xy 132.972142 81.908676)
+        (xy 133.034819 81.927689)
+        (xy 133.1 81.934109)
+        (xy 133.116875 81.9325)
+        (xy 133.2 81.849375)
+        (xy 133.2 81.05)
+        (xy 133.18 81.05)
+        (xy 133.18 80.95)
+        (xy 133.2 80.95)
+        (xy 133.2 80.150625)
+        (xy 133.116875 80.0675)
+        (xy 133.1 80.065891)
+        (xy 133.034819 80.072311)
+        (xy 132.972142 80.091324)
+        (xy 132.914379 80.122199)
+        (xy 132.913971 80.122534)
+        (xy 132.9 80.121158)
+        (xy 132.6 80.121158)
+        (xy 132.545601 80.126516)
+        (xy 132.5 80.140349)
+        (xy 132.454399 80.126516)
+        (xy 132.4 80.121158)
+        (xy 132.1 80.121158)
+        (xy 132.045601 80.126516)
+        (xy 132 80.140349)
+        (xy 131.954399 80.126516)
+        (xy 131.9 80.121158)
+        (xy 131.6 80.121158)
+        (xy 131.545601 80.126516)
+        (xy 131.5 80.140349)
+        (xy 131.454399 80.126516)
+        (xy 131.4 80.121158)
+        (xy 131.348062 80.121158)
+        (xy 134.166721 77.3025)
+        (xy 134.885788 77.3025)
+        (xy 134.931861 77.348573)
+        (xy 135.026447 77.411774)
+        (xy 135.131546 77.455307)
+        (xy 135.243117 77.4775)
+        (xy 135.356875 77.4775)
+        (xy 135.468446 77.455307)
+        (xy 135.573545 77.411774)
+        (xy 135.668131 77.348573)
+        (xy 135.748569 77.268135)
+        (xy 135.81177 77.173549)
+        (xy 135.855303 77.06845)
+        (xy 135.877496 76.956879)
+        (xy 135.877496 76.843121)
+        (xy 135.855303 76.73155)
+        (xy 135.81177 76.626451)
+        (xy 135.748569 76.531865)
+        (xy 135.668131 76.451427)
+        (xy 135.573545 76.388226)
+        (xy 135.468446 76.344693)
+        (xy 135.356875 76.3225)
+        (xy 135.243117 76.3225)
+        (xy 135.131546 76.344693)
+        (xy 135.026447 76.388226)
+        (xy 134.931861 76.451427)
+        (xy 134.885788 76.4975)
+        (xy 134.019758 76.4975)
+        (xy 133.999999 76.495554)
+        (xy 133.98024 76.4975)
+        (xy 133.980231 76.4975)
+        (xy 133.921096 76.503324)
+        (xy 133.845225 76.52634)
+        (xy 133.78809 76.556879)
+        (xy 133.775301 76.563715)
+        (xy 133.729368 76.601411)
+        (xy 133.729366 76.601413)
+        (xy 133.714013 76.614013)
+        (xy 133.701413 76.629366)
+        (xy 130.479367 79.851413)
+        (xy 130.464014 79.864013)
+        (xy 130.451414 79.879366)
+        (xy 130.451411 79.879369)
+        (xy 130.413715 79.925302)
+        (xy 130.400514 79.95)
+        (xy 130.376341 79.995225)
+        (xy 130.360291 80.048135)
+        (xy 130.353325 80.071097)
+        (xy 130.348395 80.121158)
+        (xy 130.1 80.121158)
+        (xy 130.045601 80.126516)
+        (xy 130 80.140349)
+        (xy 129.954399 80.126516)
+        (xy 129.9 80.121158)
+        (xy 129.6 80.121158)
+        (xy 129.545601 80.126516)
+        (xy 129.5 80.140349)
+        (xy 129.454399 80.126516)
+        (xy 129.4 80.121158)
+        (xy 129.1 80.121158)
+        (xy 129.045601 80.126516)
+        (xy 129 80.140349)
+        (xy 128.954399 80.126516)
+        (xy 128.9 80.121158)
+        (xy 128.6 80.121158)
+        (xy 128.545601 80.126516)
+        (xy 128.5 80.140349)
+        (xy 128.454399 80.126516)
+        (xy 128.4 80.121158)
+        (xy 128.1 80.121158)
+        (xy 128.045601 80.126516)
+        (xy 128 80.140349)
+        (xy 127.954399 80.126516)
+        (xy 127.9 80.121158)
+        (xy 127.6 80.121158)
+        (xy 127.545601 80.126516)
+        (xy 127.493292 80.142384)
+        (xy 127.445084 80.168151)
+        (xy 127.402829 80.202829)
+        (xy 127.368151 80.245084)
+        (xy 127.342384 80.293292)
+        (xy 127.326516 80.345601)
+        (xy 127.321158 80.4)
+        (xy 127.321158 81.6)
+        (xy 127.326516 81.654399)
+        (xy 127.342384 81.706708)
+        (xy 127.368151 81.754916)
+        (xy 127.402829 81.797171)
+        (xy 127.445084 81.831849)
+        (xy 127.493292 81.857616)
+        (xy 127.545601 81.873484)
+        (xy 127.6 81.878842)
+        (xy 127.9 81.878842)
+        (xy 127.954399 81.873484)
+        (xy 128 81.859651)
+        (xy 128.045601 81.873484)
+        (xy 128.1 81.878842)
+        (xy 128.347501 81.878842)
+        (xy 128.347501 82.170231)
+        (xy 128.345554 82.19)
+        (xy 128.347501 82.209769)
+        (xy 128.348024 82.215078)
+        (xy 128.3325 82.293121)
+        (xy 128.3325 82.406879)
+        (xy 128.354693 82.51845)
+        (xy 128.398226 82.623549)
+        (xy 128.461427 82.718135)
+        (xy 128.541865 82.798573)
+        (xy 128.636451 82.861774)
+        (xy 128.74155 82.905307)
+        (xy 128.853121 82.9275)
+        (xy 128.966879 82.9275)
+        (xy 129.07845 82.905307)
+        (xy 129.183549 82.861774)
+        (xy 129.278135 82.798573)
+        (xy 129.3475 82.729208)
+        (xy 129.347501 85.083278)
+        (xy 129.278842 85.151937)
+        (xy 129.278842 84.55)
+        (xy 129.273484 84.495601)
+        (xy 129.257616 84.443292)
+        (xy 129.231849 84.395084)
+        (xy 129.197171 84.352829)
+        (xy 129.154916 84.318151)
+        (xy 129.106708 84.292384)
+        (xy 129.054399 84.276516)
+        (xy 129 84.271158)
+        (xy 127.3 84.271158)
+        (xy 127.245601 84.276516)
+        (xy 127.193292 84.292384)
+        (xy 127.145084 84.318151)
+        (xy 127.102829 84.352829)
+        (xy 127.068151 84.395084)
+        (xy 127.042384 84.443292)
+        (xy 127.026516 84.495601)
+        (xy 127.021158 84.55)
+        (xy 125.327511 84.55)
+        (xy 125.327511 82.206353)
+        (xy 128.310743 79.223121)
+        (xy 128.9925 79.223121)
+        (xy 128.9925 79.336879)
+        (xy 129.014693 79.44845)
+        (xy 129.058226 79.553549)
+        (xy 129.121427 79.648135)
+        (xy 129.201865 79.728573)
+        (xy 129.296451 79.791774)
+        (xy 129.40155 79.835307)
+        (xy 129.513121 79.8575)
+        (xy 129.626879 79.8575)
+        (xy 129.73845 79.835307)
+        (xy 129.843549 79.791774)
+        (xy 129.938135 79.728573)
+        (xy 130.018573 79.648135)
+        (xy 130.081774 79.553549)
+        (xy 130.125307 79.44845)
+        (xy 130.1475 79.336879)
+        (xy 130.1475 79.27172)
+        (xy 132.445632 76.973589)
+        (xy 132.460985 76.960989)
+        (xy 132.473587 76.945634)
+        (xy 132.511284 76.899701)
+        (xy 132.548658 76.829777)
+        (xy 132.555007 76.808848)
+        (xy 132.571674 76.753906)
+        (xy 132.577498 76.694771)
+        (xy 132.577498 76.694768)
+        (xy 132.579445 76.675002)
+        (xy 132.577498 76.655236)
+        (xy 132.577498 75.795776)
+        (xy 132.601441 75.811774)
+        (xy 132.70654 75.855307)
+        (xy 132.818111 75.8775)
+        (xy 132.931869 75.8775)
+        (xy 133.04344 75.855307)
+        (xy 133.148539 75.811774)
+        (xy 133.243125 75.748573)
+        (xy 133.289198 75.7025)
+        (xy 135.13328 75.7025)
+        (xy 135.897501 76.466722)
+        (xy 135.8975 77.380241)
+        (xy 135.895554 77.4)
+        (xy 135.8975 77.419759)
+        (xy 135.8975 77.419768)
+        (xy 135.903324 77.478903)
+        (xy 135.92634 77.554774)
+        (xy 135.963715 77.624698)
+        (xy 136.014013 77.685987)
+        (xy 136.029371 77.698591)
+        (xy 136.101409 77.770629)
+        (xy 136.114013 77.785987)
+        (xy 136.175301 77.836285)
+        (xy 136.245225 77.87366)
+        (xy 136.321096 77.896676)
+        (xy 136.371158 77.901606)
+        (xy 136.371158 78.15)
+        (xy 136.372534 78.163971)
+        (xy 136.372199 78.164379)
+        (xy 136.341324 78.222142)
+        (xy 136.322311 78.284819)
+        (xy 136.315891 78.35)
+        (xy 136.3175 78.366875)
+        (xy 136.400625 78.45)
+        (xy 137.2 78.45)
+        (xy 137.2 78.43)
+        (xy 137.3 78.43)
+        (xy 137.3 78.45)
+        (xy 138.099375 78.45)
+        (xy 138.146875 78.4025)
+        (xy 138.181223 78.4025)
+        (xy 138.198226 78.443549)
+        (xy 138.261427 78.538135)
+        (xy 138.320792 78.5975)
+        (xy 138.146875 78.5975)
+        (xy 138.099375 78.55)
+        (xy 137.3 78.55)
+        (xy 137.3 78.57)
+        (xy 137.2 78.57)
+        (xy 137.2 78.55)
+        (xy 136.400625 78.55)
+        (xy 136.3175 78.633125)
+        (xy 136.315891 78.65)
+        (xy 136.322311 78.715181)
+        (xy 136.341324 78.777858)
+        (xy 136.372199 78.835621)
+        (xy 136.372534 78.836029)
+        (xy 136.371158 78.85)
+        (xy 136.371158 79.15)
+        (xy 136.376516 79.204399)
+        (xy 136.392384 79.256708)
+        (xy 136.418151 79.304916)
+        (xy 136.452829 79.347171)
+        (xy 136.495084 79.381849)
+        (xy 136.543292 79.407616)
+        (xy 136.595601 79.423484)
+        (xy 136.65 79.428842)
+        (xy 137.85 79.428842)
+        (xy 137.904399 79.423484)
+        (xy 137.956708 79.407616)
+        (xy 137.96628 79.4025)
+        (xy 138.585792 79.4025)
+        (xy 138.631865 79.448573)
+        (xy 138.726451 79.511774)
+        (xy 138.83155 79.555307)
+        (xy 138.943121 79.5775)
+        (xy 139.056879 79.5775)
+        (xy 139.16845 79.555307)
+        (xy 139.273549 79.511774)
+        (xy 139.368135 79.448573)
+        (xy 139.448573 79.368135)
+        (xy 139.511774 79.273549)
+        (xy 139.555307 79.16845)
+        (xy 139.5775 79.056879)
+        (xy 139.5775 78.943121)
+        (xy 139.555307 78.83155)
+        (xy 139.511774 78.726451)
+        (xy 139.448573 78.631865)
+        (xy 139.368135 78.551427)
+        (xy 139.273549 78.488226)
+        (xy 139.209616 78.461744)
+        (xy 139.221774 78.443549)
+        (xy 139.265307 78.33845)
+        (xy 139.2875 78.226879)
+        (xy 139.2875 78.113121)
+        (xy 139.265307 78.00155)
+        (xy 139.221774 77.896451)
+        (xy 139.158573 77.801865)
+        (xy 139.078135 77.721427)
+        (xy 138.983549 77.658226)
+        (xy 138.87845 77.614693)
+        (xy 138.766879 77.5925)
+        (xy 138.653121 77.5925)
+        (xy 138.605394 77.601993)
+        (xy 138.559769 77.5975)
+        (xy 138.559759 77.5975)
+        (xy 138.54 77.595554)
+        (xy 138.520241 77.5975)
+        (xy 138.128842 77.5975)
+        (xy 138.128842 77.35)
+        (xy 138.123484 77.295601)
+        (xy 138.109651 77.25)
+        (xy 138.123484 77.204399)
+        (xy 138.128842 77.15)
+        (xy 138.128842 76.9025)
+        (xy 138.855239 76.9025)
+        (xy 138.874998 76.904446)
+        (xy 138.894757 76.9025)
+        (xy 138.894767 76.9025)
+        (xy 138.953902 76.896676)
+        (xy 139.029773 76.87366)
+        (xy 139.099697 76.836285)
+        (xy 139.160985 76.785987)
+        (xy 139.173589 76.770629)
+        (xy 142.645633 73.298586)
+        (xy 142.660986 73.285986)
+        (xy 142.675378 73.26845)
+        (xy 142.711284 73.224698)
+        (xy 142.748659 73.154774)
+        (xy 142.751717 73.144693)
+        (xy 142.771675 73.078903)
+        (xy 142.777499 73.019768)
+        (xy 142.777499 73.019758)
+        (xy 142.779445 72.999999)
+        (xy 142.777499 72.98024)
+        (xy 142.777499 71.243121)
+        (xy 142.84749 71.243121)
+        (xy 142.84749 71.356879)
+        (xy 142.869683 71.46845)
+        (xy 142.913216 71.573549)
+        (xy 142.976417 71.668135)
+        (xy 143.056855 71.748573)
+        (xy 143.151441 71.811774)
+        (xy 143.197481 71.830844)
+        (xy 143.19748 74.806168)
+        (xy 143.197481 74.806178)
+        (xy 143.19748 78.019768)
+        (xy 143.197481 78.019778)
+        (xy 143.19748 82.080221)
+        (xy 143.195534 82.09998)
+        (xy 143.19748 82.119739)
+        (xy 143.19748 82.119748)
+        (xy 143.203304 82.178883)
+        (xy 143.22632 82.254754)
+        (xy 143.263695 82.324678)
+        (xy 143.313993 82.385967)
+        (xy 143.329351 82.398571)
+        (xy 152.501413 91.570634)
+        (xy 152.514013 91.585987)
+        (xy 152.529366 91.598587)
+        (xy 152.529368 91.598589)
+        (xy 152.548991 91.614693)
+        (xy 152.575301 91.636285)
+        (xy 152.645225 91.67366)
+        (xy 152.721096 91.696676)
+        (xy 152.780231 91.7025)
+        (xy 152.78024 91.7025)
+        (xy 152.799999 91.704446)
+        (xy 152.819758 91.7025)
+        (xy 160.23328 91.7025)
+        (xy 160.597501 92.066722)
+        (xy 160.597501 92.421158)
+        (xy 160.25 92.421158)
+        (xy 160.195601 92.426516)
+        (xy 160.143292 92.442384)
+        (xy 160.095084 92.468151)
+        (xy 160.052829 92.502829)
+        (xy 160.018151 92.545084)
+        (xy 159.992384 92.593292)
+        (xy 159.976516 92.645601)
+        (xy 159.971158 92.7)
+        (xy 159.971158 93.55)
+        (xy 159.976516 93.604399)
+        (xy 159.992384 93.656708)
+        (xy 160.018151 93.704916)
+        (xy 160.052829 93.747171)
+        (xy 160.095084 93.781849)
+        (xy 160.143292 93.807616)
+        (xy 160.195601 93.823484)
+        (xy 160.25 93.828842)
+        (xy 161.75 93.828842)
+        (xy 161.804399 93.823484)
+        (xy 161.856708 93.807616)
+        (xy 161.904916 93.781849)
+        (xy 161.947171 93.747171)
+        (xy 161.981849 93.704916)
+        (xy 162.007616 93.656708)
+        (xy 162.023484 93.604399)
+        (xy 162.028842 93.55)
+        (xy 162.028842 92.7)
+        (xy 162.023484 92.645601)
+        (xy 162.007616 92.593292)
+        (xy 161.981849 92.545084)
+        (xy 161.947171 92.502829)
+        (xy 161.904916 92.468151)
+        (xy 161.856708 92.442384)
+        (xy 161.804399 92.426516)
+        (xy 161.75 92.421158)
+        (xy 161.4025 92.421158)
+        (xy 161.4025 91.919758)
+        (xy 161.404446 91.899999)
+        (xy 161.4025 91.88024)
+        (xy 161.4025 91.880231)
+        (xy 161.396676 91.821096)
+        (xy 161.37366 91.745225)
+        (xy 161.336285 91.675301)
+        (xy 161.319439 91.654774)
+        (xy 161.298589 91.629368)
+        (xy 161.298587 91.629366)
+        (xy 161.285987 91.614013)
+        (xy 161.270634 91.601413)
+        (xy 160.87172 91.2025)
+        (xy 164.13328 91.2025)
+        (xy 164.597501 91.666722)
+        (xy 164.5975 92.421158)
+        (xy 164.25 92.421158)
+        (xy 164.195601 92.426516)
+        (xy 164.143292 92.442384)
+        (xy 164.095084 92.468151)
+        (xy 164.052829 92.502829)
+        (xy 164.018151 92.545084)
+        (xy 163.992384 92.593292)
+        (xy 163.976516 92.645601)
+        (xy 163.971158 92.7)
+        (xy 163.971158 93.55)
+        (xy 163.976516 93.604399)
+        (xy 163.992384 93.656708)
+        (xy 164.018151 93.704916)
+        (xy 164.052829 93.747171)
+        (xy 164.095084 93.781849)
+        (xy 164.143292 93.807616)
+        (xy 164.195601 93.823484)
+        (xy 164.25 93.828842)
+        (xy 165.75 93.828842)
+        (xy 165.804399 93.823484)
+        (xy 165.856708 93.807616)
+        (xy 165.904916 93.781849)
+        (xy 165.947171 93.747171)
+        (xy 165.981849 93.704916)
+        (xy 166.007616 93.656708)
+        (xy 166.023484 93.604399)
+        (xy 166.028842 93.55)
+        (xy 166.028842 92.7)
+        (xy 166.023484 92.645601)
+        (xy 166.007616 92.593292)
+        (xy 165.981849 92.545084)
+        (xy 165.947171 92.502829)
+        (xy 165.904916 92.468151)
+        (xy 165.856708 92.442384)
+        (xy 165.804399 92.426516)
+        (xy 165.75 92.421158)
+        (xy 165.4025 92.421158)
+        (xy 165.4025 91.519758)
+        (xy 165.404446 91.499999)
+        (xy 165.4025 91.48024)
+        (xy 165.4025 91.480231)
+        (xy 165.396676 91.421096)
+        (xy 165.37366 91.345225)
+        (xy 165.34711 91.295553)
+        (xy 165.336285 91.2753)
+        (xy 165.298588 91.229367)
+        (xy 165.298587 91.229366)
+        (xy 165.285987 91.214013)
+        (xy 165.270634 91.201413)
+        (xy 164.77172 90.7025)
+        (xy 167.43328 90.7025)
+        (xy 168.597501 91.866722)
+        (xy 168.5975 92.421158)
+        (xy 168.25 92.421158)
+        (xy 168.195601 92.426516)
+        (xy 168.143292 92.442384)
+        (xy 168.095084 92.468151)
+        (xy 168.052829 92.502829)
+        (xy 168.018151 92.545084)
+        (xy 167.992384 92.593292)
+        (xy 167.976516 92.645601)
+        (xy 167.971158 92.7)
+        (xy 167.971158 93.55)
+        (xy 167.976516 93.604399)
+        (xy 167.992384 93.656708)
+        (xy 168.018151 93.704916)
+        (xy 168.052829 93.747171)
+        (xy 168.095084 93.781849)
+        (xy 168.143292 93.807616)
+        (xy 168.195601 93.823484)
+        (xy 168.25 93.828842)
+        (xy 169.75 93.828842)
+        (xy 169.804399 93.823484)
+        (xy 169.856708 93.807616)
+        (xy 169.904916 93.781849)
+        (xy 169.947171 93.747171)
+        (xy 169.981849 93.704916)
+        (xy 170.007616 93.656708)
+        (xy 170.023484 93.604399)
+        (xy 170.028842 93.55)
+        (xy 170.028842 92.7)
+        (xy 170.023484 92.645601)
+        (xy 170.007616 92.593292)
+        (xy 169.981849 92.545084)
+        (xy 169.947171 92.502829)
+        (xy 169.904916 92.468151)
+        (xy 169.856708 92.442384)
+        (xy 169.804399 92.426516)
+        (xy 169.75 92.421158)
+        (xy 169.4025 92.421158)
+        (xy 169.4025 91.719759)
+        (xy 169.404446 91.7)
+        (xy 169.403769 91.693119)
+        (xy 174.3225 91.693119)
+        (xy 174.3225 91.806877)
+        (xy 174.344693 91.918448)
+        (xy 174.388226 92.023547)
+        (xy 174.451427 92.118133)
+        (xy 174.531865 92.198571)
+        (xy 174.626451 92.261772)
+        (xy 174.73155 92.305305)
+        (xy 174.843121 92.327498)
+        (xy 174.956879 92.327498)
+        (xy 175.06845 92.305305)
+        (xy 175.076286 92.302059)
+        (xy 175.076516 92.304399)
+        (xy 175.092384 92.356708)
+        (xy 175.118151 92.404916)
+        (xy 175.152829 92.447171)
+        (xy 175.195084 92.481849)
+        (xy 175.243292 92.507616)
+        (xy 175.295601 92.523484)
+        (xy 175.35 92.528842)
+        (xy 176.087236 92.528842)
+        (xy 176.044693 92.63155)
+        (xy 176.0225 92.743121)
+        (xy 176.0225 92.856879)
+        (xy 176.044693 92.96845)
+        (xy 176.088226 93.073549)
+        (xy 176.151427 93.168135)
+        (xy 176.231865 93.248573)
+        (xy 176.326451 93.311774)
+        (xy 176.43155 93.355307)
+        (xy 176.543121 93.3775)
+        (xy 176.656879 93.3775)
+        (xy 176.76845 93.355307)
+        (xy 176.873549 93.311774)
+        (xy 176.968135 93.248573)
+        (xy 177.048573 93.168135)
+        (xy 177.111774 93.073549)
+        (xy 177.155307 92.96845)
+        (xy 177.1775 92.856879)
+        (xy 177.1775 92.743121)
+        (xy 177.155307 92.63155)
+        (xy 177.112764 92.528842)
+        (xy 177.459622 92.528842)
+        (xy 179.201413 94.270634)
+        (xy 179.214013 94.285987)
+        (xy 179.229366 94.298587)
+        (xy 179.229368 94.298589)
+        (xy 179.275301 94.336286)
+        (xy 179.326619 94.363715)
+        (xy 179.345225 94.37366)
+        (xy 179.421096 94.396676)
+        (xy 179.480231 94.4025)
+        (xy 179.480234 94.4025)
+        (xy 179.5 94.404447)
+        (xy 179.519766 94.4025)
+        (xy 183.130241 94.4025)
+        (xy 183.15 94.404446)
+        (xy 183.169759 94.4025)
+        (xy 183.169769 94.4025)
+        (xy 183.228904 94.396676)
+        (xy 183.304775 94.37366)
+        (xy 183.374699 94.336285)
+        (xy 183.435987 94.285987)
+        (xy 183.448591 94.270629)
+        (xy 185.371158 92.348063)
+        (xy 185.371158 93)
+        (xy 185.376516 93.054399)
+        (xy 185.392384 93.106708)
+        (xy 185.418151 93.154916)
+        (xy 185.452829 93.197171)
+        (xy 185.495084 93.231849)
+        (xy 185.543292 93.257616)
+        (xy 185.595601 93.273484)
+        (xy 185.65 93.278842)
+        (xy 187.35 93.278842)
+        (xy 187.404399 93.273484)
+        (xy 187.456708 93.257616)
+        (xy 187.504916 93.231849)
+        (xy 187.547171 93.197171)
+        (xy 187.581849 93.154916)
+        (xy 187.607616 93.106708)
+        (xy 187.623484 93.054399)
+        (xy 187.628842 93)
+        (xy 187.628842 90.5)
+        (xy 187.623484 90.445601)
+        (xy 187.607616 90.393292)
+        (xy 187.581849 90.345084)
+        (xy 187.547171 90.302829)
+        (xy 187.504916 90.268151)
+        (xy 187.456708 90.242384)
+        (xy 187.404399 90.226516)
+        (xy 187.35 90.221158)
+        (xy 185.65 90.221158)
+        (xy 185.595601 90.226516)
+        (xy 185.543292 90.242384)
+        (xy 185.495084 90.268151)
+        (xy 185.452829 90.302829)
+        (xy 185.418151 90.345084)
+        (xy 185.392384 90.393292)
+        (xy 185.376516 90.445601)
+        (xy 185.371158 90.5)
+        (xy 185.371158 91.348394)
+        (xy 185.321096 91.353324)
+        (xy 185.245228 91.376339)
+        (xy 185.245225 91.37634)
+        (xy 185.175301 91.413714)
+        (xy 185.129368 91.451411)
+        (xy 185.129366 91.451413)
+        (xy 185.114013 91.464013)
+        (xy 185.101413 91.479366)
+        (xy 182.98328 93.5975)
+        (xy 179.666721 93.5975)
+        (xy 178.630402 92.561182)
+        (xy 178.684819 92.577689)
+        (xy 178.75 92.584109)
+        (xy 179.816875 92.5825)
+        (xy 179.9 92.499375)
+        (xy 179.9 91.8)
+        (xy 180 91.8)
+        (xy 180 92.499375)
+        (xy 180.083125 92.5825)
+        (xy 181.15 92.584109)
+        (xy 181.215181 92.577689)
+        (xy 181.277858 92.558676)
+        (xy 181.335621 92.527801)
+        (xy 181.386251 92.486251)
+        (xy 181.427801 92.435621)
+        (xy 181.458676 92.377858)
+        (xy 181.477689 92.315181)
+        (xy 181.484109 92.25)
+        (xy 181.4825 91.883125)
+        (xy 181.399375 91.8)
+        (xy 180 91.8)
+        (xy 179.9 91.8)
+        (xy 178.500625 91.8)
+        (xy 178.4175 91.883125)
+        (xy 178.415891 92.25)
+        (xy 178.422311 92.315181)
+        (xy 178.438818 92.369598)
+        (xy 178.028842 91.959622)
+        (xy 178.028842 91.25)
+        (xy 178.415891 91.25)
+        (xy 178.4175 91.616875)
+        (xy 178.500625 91.7)
+        (xy 179.9 91.7)
+        (xy 179.9 91.000625)
+        (xy 180 91.000625)
+        (xy 180 91.7)
+        (xy 181.399375 91.7)
+        (xy 181.4825 91.616875)
+        (xy 181.484109 91.25)
+        (xy 181.477689 91.184819)
+        (xy 181.458676 91.122142)
+        (xy 181.427801 91.064379)
+        (xy 181.386251 91.013749)
+        (xy 181.335621 90.972199)
+        (xy 181.277858 90.941324)
+        (xy 181.215181 90.922311)
+        (xy 181.15 90.915891)
+        (xy 180.083125 90.9175)
+        (xy 180 91.000625)
+        (xy 179.9 91.000625)
+        (xy 179.816875 90.9175)
+        (xy 178.75 90.915891)
+        (xy 178.684819 90.922311)
+        (xy 178.622142 90.941324)
+        (xy 178.564379 90.972199)
+        (xy 178.513749 91.013749)
+        (xy 178.472199 91.064379)
+        (xy 178.441324 91.122142)
+        (xy 178.422311 91.184819)
+        (xy 178.415891 91.25)
+        (xy 178.028842 91.25)
+        (xy 178.023484 91.195601)
+        (xy 178.007616 91.143292)
+        (xy 177.981849 91.095084)
+        (xy 177.947171 91.052829)
+        (xy 177.904916 91.018151)
+        (xy 177.856708 90.992384)
+        (xy 177.804399 90.976516)
+        (xy 177.75 90.971158)
+        (xy 177.054185 90.971158)
+        (xy 177.055307 90.96845)
+        (xy 177.0775 90.856879)
+        (xy 177.0775 90.743121)
+        (xy 177.055307 90.63155)
+        (xy 177.011774 90.526451)
+        (xy 176.948573 90.431865)
+        (xy 176.868135 90.351427)
+        (xy 176.773549 90.288226)
+        (xy 176.66845 90.244693)
+        (xy 176.556879 90.2225)
+        (xy 176.443121 90.2225)
+        (xy 176.33155 90.244693)
+        (xy 176.226451 90.288226)
+        (xy 176.131865 90.351427)
+        (xy 176.051427 90.431865)
+        (xy 175.988226 90.526451)
+        (xy 175.944693 90.63155)
+        (xy 175.9225 90.743121)
+        (xy 175.9225 90.856879)
+        (xy 175.944693 90.96845)
+        (xy 175.945815 90.971158)
+        (xy 175.35 90.971158)
+        (xy 175.295601 90.976516)
+        (xy 175.243292 90.992384)
+        (xy 175.195084 91.018151)
+        (xy 175.152829 91.052829)
+        (xy 175.118151 91.095084)
+        (xy 175.092384 91.143292)
+        (xy 175.076516 91.195601)
+        (xy 175.076286 91.197937)
+        (xy 175.06845 91.194691)
+        (xy 174.956879 91.172498)
+        (xy 174.843121 91.172498)
+        (xy 174.73155 91.194691)
+        (xy 174.626451 91.238224)
+        (xy 174.531865 91.301425)
+        (xy 174.451427 91.381863)
+        (xy 174.388226 91.476449)
+        (xy 174.344693 91.581548)
+        (xy 174.3225 91.693119)
+        (xy 169.403769 91.693119)
+        (xy 169.4025 91.680241)
+        (xy 169.4025 91.680231)
+        (xy 169.396676 91.621096)
+        (xy 169.37366 91.545225)
+        (xy 169.336285 91.475301)
+        (xy 169.327021 91.464013)
+        (xy 169.298589 91.429368)
+        (xy 169.298587 91.429366)
+        (xy 169.285987 91.414013)
+        (xy 169.270634 91.401413)
+        (xy 167.898591 90.029371)
+        (xy 167.885987 90.014013)
+        (xy 167.824699 89.963715)
+        (xy 167.754775 89.92634)
+        (xy 167.678904 89.903324)
+        (xy 167.619769 89.8975)
+        (xy 167.619759 89.8975)
+        (xy 167.6 89.895554)
+        (xy 167.580241 89.8975)
+        (xy 153.326719 89.8975)
+        (xy 151.413061 87.983842)
+        (xy 152.55 87.983842)
+        (xy 152.604399 87.978484)
+        (xy 152.656708 87.962616)
+        (xy 152.704916 87.936849)
+        (xy 152.747171 87.902171)
+        (xy 152.781849 87.859916)
+        (xy 152.807616 87.811708)
+        (xy 152.823484 87.759399)
+        (xy 152.828842 87.705)
+        (xy 156.115891 87.705)
+        (xy 156.122311 87.770181)
+        (xy 156.141324 87.832858)
+        (xy 156.172199 87.890621)
+        (xy 156.213749 87.941251)
+        (xy 156.264379 87.982801)
+        (xy 156.322142 88.013676)
+        (xy 156.384819 88.032689)
+        (xy 156.45 88.039109)
+        (xy 157.016875 88.0375)
+        (xy 157.1 87.954375)
+        (xy 157.1 87.455)
+        (xy 157.2 87.455)
+        (xy 157.2 87.954375)
+        (xy 157.283125 88.0375)
+        (xy 157.85 88.039109)
+        (xy 157.915181 88.032689)
+        (xy 157.977858 88.013676)
+        (xy 158.035621 87.982801)
+        (xy 158.086251 87.941251)
+        (xy 158.127801 87.890621)
+        (xy 158.158676 87.832858)
+        (xy 158.177689 87.770181)
+        (xy 158.184109 87.705)
+        (xy 158.1825 87.538125)
+        (xy 158.099375 87.455)
+        (xy 157.2 87.455)
+        (xy 157.1 87.455)
+        (xy 156.200625 87.455)
+        (xy 156.1175 87.538125)
+        (xy 156.115891 87.705)
+        (xy 152.828842 87.705)
+        (xy 152.828842 87.395378)
+        (xy 153.145635 87.078586)
+        (xy 153.160988 87.065986)
+        (xy 153.173615 87.050601)
+        (xy 153.211286 87.004698)
+        (xy 153.248661 86.934774)
+        (xy 153.256246 86.909769)
+        (xy 153.271677 86.858903)
+        (xy 153.277501 86.799768)
+        (xy 153.277501 86.799758)
+        (xy 153.279447 86.779999)
+        (xy 153.277501 86.76024)
+        (xy 153.277501 86.5)
+        (xy 156.115891 86.5)
+        (xy 156.122311 86.565181)
+        (xy 156.141324 86.627858)
+        (xy 156.172199 86.685621)
+        (xy 156.213749 86.736251)
+        (xy 156.264379 86.777801)
+        (xy 156.310588 86.8025)
+        (xy 156.264379 86.827199)
+        (xy 156.213749 86.868749)
+        (xy 156.172199 86.919379)
+        (xy 156.141324 86.977142)
+        (xy 156.122311 87.039819)
+        (xy 156.115891 87.105)
+        (xy 156.1175 87.271875)
+        (xy 156.200625 87.355)
+        (xy 157.1 87.355)
+        (xy 157.1 86.855625)
+        (xy 157.046875 86.8025)
+        (xy 157.1 86.749375)
+        (xy 157.1 86.25)
+        (xy 157.2 86.25)
+        (xy 157.2 86.749375)
+        (xy 157.253125 86.8025)
+        (xy 157.2 86.855625)
+        (xy 157.2 87.355)
+        (xy 158.099375 87.355)
+        (xy 158.1825 87.271875)
+        (xy 158.184109 87.105)
+        (xy 158.177689 87.039819)
+        (xy 158.158676 86.977142)
+        (xy 158.127801 86.919379)
+        (xy 158.086251 86.868749)
+        (xy 158.035621 86.827199)
+        (xy 157.989412 86.8025)
+        (xy 158.035621 86.777801)
+        (xy 158.086251 86.736251)
+        (xy 158.127801 86.685621)
+        (xy 158.158676 86.627858)
+        (xy 158.177689 86.565181)
+        (xy 158.184109 86.5)
+        (xy 158.1825 86.333125)
+        (xy 158.099375 86.25)
+        (xy 157.2 86.25)
+        (xy 157.1 86.25)
+        (xy 156.200625 86.25)
+        (xy 156.1175 86.333125)
+        (xy 156.115891 86.5)
+        (xy 153.277501 86.5)
+        (xy 153.277501 86.338129)
+        (xy 153.71563 85.9)
+        (xy 156.115891 85.9)
+        (xy 156.1175 86.066875)
+        (xy 156.200625 86.15)
+        (xy 157.1 86.15)
+        (xy 157.1 85.650625)
+        (xy 157.2 85.650625)
+        (xy 157.2 86.15)
+        (xy 158.099375 86.15)
+        (xy 158.1825 86.066875)
+        (xy 158.184109 85.9)
+        (xy 158.177689 85.834819)
+        (xy 158.158676 85.772142)
+        (xy 158.127801 85.714379)
+        (xy 158.086251 85.663749)
+        (xy 158.035621 85.622199)
+        (xy 157.977858 85.591324)
+        (xy 157.915181 85.572311)
+        (xy 157.85 85.565891)
+        (xy 157.283125 85.5675)
+        (xy 157.2 85.650625)
+        (xy 157.1 85.650625)
+        (xy 157.016875 85.5675)
+        (xy 156.45 85.565891)
+        (xy 156.384819 85.572311)
+        (xy 156.322142 85.591324)
+        (xy 156.264379 85.622199)
+        (xy 156.213749 85.663749)
+        (xy 156.172199 85.714379)
+        (xy 156.141324 85.772142)
+        (xy 156.122311 85.834819)
+        (xy 156.115891 85.9)
+        (xy 153.71563 85.9)
+        (xy 154.45063 85.165)
+        (xy 156.115891 85.165)
+        (xy 156.122311 85.230181)
+        (xy 156.141324 85.292858)
+        (xy 156.172199 85.350621)
+        (xy 156.213749 85.401251)
+        (xy 156.264379 85.442801)
+        (xy 156.322142 85.473676)
+        (xy 156.384819 85.492689)
+        (xy 156.45 85.499109)
+        (xy 157.016875 85.4975)
+        (xy 157.1 85.414375)
+        (xy 157.1 84.915)
+        (xy 157.2 84.915)
+        (xy 157.2 85.414375)
+        (xy 157.283125 85.4975)
+        (xy 157.85 85.499109)
+        (xy 157.915181 85.492689)
+        (xy 157.977858 85.473676)
+        (xy 158.035621 85.442801)
+        (xy 158.086251 85.401251)
+        (xy 158.127801 85.350621)
+        (xy 158.158676 85.292858)
+        (xy 158.177689 85.230181)
+        (xy 158.184109 85.165)
+        (xy 158.1825 84.998125)
+        (xy 158.099375 84.915)
+        (xy 157.2 84.915)
+        (xy 157.1 84.915)
+        (xy 156.200625 84.915)
+        (xy 156.1175 84.998125)
+        (xy 156.115891 85.165)
+        (xy 154.45063 85.165)
+        (xy 155.05063 84.565)
+        (xy 156.115891 84.565)
+        (xy 156.1175 84.731875)
+        (xy 156.200625 84.815)
+        (xy 157.1 84.815)
+        (xy 157.1 84.315625)
+        (xy 157.2 84.315625)
+        (xy 157.2 84.815)
+        (xy 158.099375 84.815)
+        (xy 158.1825 84.731875)
+        (xy 158.184109 84.565)
+        (xy 158.177689 84.499819)
+        (xy 158.158676 84.437142)
+        (xy 158.127801 84.379379)
+        (xy 158.086251 84.328749)
+        (xy 158.035621 84.287199)
+        (xy 157.977858 84.256324)
+        (xy 157.915181 84.237311)
+        (xy 157.85 84.230891)
+        (xy 157.283125 84.2325)
+        (xy 157.2 84.315625)
+        (xy 157.1 84.315625)
+        (xy 157.016875 84.2325)
+        (xy 156.45 84.230891)
+        (xy 156.384819 84.237311)
+        (xy 156.322142 84.256324)
+        (xy 156.264379 84.287199)
+        (xy 156.213749 84.328749)
+        (xy 156.172199 84.379379)
+        (xy 156.141324 84.437142)
+        (xy 156.122311 84.499819)
+        (xy 156.115891 84.565)
+        (xy 155.05063 84.565)
+        (xy 155.72063 83.895)
+        (xy 156.115891 83.895)
+        (xy 156.122311 83.960181)
+        (xy 156.141324 84.022858)
+        (xy 156.172199 84.080621)
+        (xy 156.213749 84.131251)
+        (xy 156.264379 84.172801)
+        (xy 156.322142 84.203676)
+        (xy 156.384819 84.222689)
+        (xy 156.45 84.229109)
+        (xy 157.016875 84.2275)
+        (xy 157.1 84.144375)
+        (xy 157.1 83.645)
+        (xy 157.2 83.645)
+        (xy 157.2 84.144375)
+        (xy 157.283125 84.2275)
+        (xy 157.85 84.229109)
+        (xy 157.915181 84.222689)
+        (xy 157.977858 84.203676)
+        (xy 158.035621 84.172801)
+        (xy 158.086251 84.131251)
+        (xy 158.127801 84.080621)
+        (xy 158.158676 84.022858)
+        (xy 158.177689 83.960181)
+        (xy 158.184109 83.895)
+        (xy 158.1825 83.728125)
+        (xy 158.099375 83.645)
+        (xy 157.2 83.645)
+        (xy 157.1 83.645)
+        (xy 156.200625 83.645)
+        (xy 156.1175 83.728125)
+        (xy 156.115891 83.895)
+        (xy 155.72063 83.895)
+        (xy 156.135628 83.480003)
+        (xy 156.200625 83.545)
+        (xy 157.1 83.545)
+        (xy 157.1 83.045625)
+        (xy 157.2 83.045625)
+        (xy 157.2 83.545)
+        (xy 158.099375 83.545)
+        (xy 158.1825 83.461875)
+        (xy 158.184109 83.295)
+        (xy 158.177689 83.229819)
+        (xy 158.158676 83.167142)
+        (xy 158.127801 83.109379)
+        (xy 158.086251 83.058749)
+        (xy 158.035621 83.017199)
+        (xy 157.977858 82.986324)
+        (xy 157.915181 82.967311)
+        (xy 157.85 82.960891)
+        (xy 157.283125 82.9625)
+        (xy 157.2 83.045625)
+        (xy 157.1 83.045625)
+        (xy 157.016875 82.9625)
+        (xy 156.65416 82.96147)
+        (xy 158.072509 81.543121)
+        (xy 172.8625 81.543121)
+        (xy 172.8625 81.656879)
+        (xy 172.884693 81.76845)
+        (xy 172.928226 81.873549)
+        (xy 172.991427 81.968135)
+        (xy 173.071865 82.048573)
+        (xy 173.166451 82.111774)
+        (xy 173.27155 82.155307)
+        (xy 173.383121 82.1775)
+        (xy 173.496879 82.1775)
+        (xy 173.60845 82.155307)
+        (xy 173.713549 82.111774)
+        (xy 173.808135 82.048573)
+        (xy 173.854208 82.0025)
+        (xy 173.959158 82.0025)
+        (xy 173.959158 83.15)
+        (xy 173.964516 83.204399)
+        (xy 173.980384 83.256708)
+        (xy 174.006151 83.304916)
+        (xy 174.040829 83.347171)
+        (xy 174.083084 83.381849)
+        (xy 174.131292 83.407616)
+        (xy 174.183601 83.423484)
+        (xy 174.238 83.428842)
+        (xy 174.487236 83.428842)
+        (xy 174.444693 83.53155)
+        (xy 174.4225 83.643121)
+        (xy 174.4225 83.756879)
+        (xy 174.444693 83.86845)
+        (xy 174.488226 83.973549)
+        (xy 174.551427 84.068135)
+        (xy 174.631865 84.148573)
+        (xy 174.726451 84.211774)
+        (xy 174.83155 84.255307)
+        (xy 174.943121 84.2775)
+        (xy 175.056879 84.2775)
+        (xy 175.16845 84.255307)
+        (xy 175.273549 84.211774)
+        (xy 175.368135 84.148573)
+        (xy 175.448573 84.068135)
+        (xy 175.511774 83.973549)
+        (xy 175.555307 83.86845)
+        (xy 175.5775 83.756879)
+        (xy 175.5775 83.68)
+        (xy 180.459158 83.68)
+        (xy 180.459158 84.52)
+        (xy 180.464516 84.574399)
+        (xy 180.480384 84.626708)
+        (xy 180.506151 84.674916)
+        (xy 180.540829 84.717171)
+        (xy 180.583084 84.751849)
+        (xy 180.631292 84.777616)
+        (xy 180.683601 84.793484)
+        (xy 180.738 84.798842)
+        (xy 182.262 84.798842)
+        (xy 182.316399 84.793484)
+        (xy 182.368708 84.777616)
+        (xy 182.416916 84.751849)
+        (xy 182.459171 84.717171)
+        (xy 182.493849 84.674916)
+        (xy 182.519616 84.626708)
+        (xy 182.535484 84.574399)
+        (xy 182.540842 84.52)
+        (xy 182.540842 84.5025)
+        (xy 183.08328 84.5025)
+        (xy 185.371158 86.790379)
+        (xy 185.371158 89)
+        (xy 185.376516 89.054399)
+        (xy 185.392384 89.106708)
+        (xy 185.418151 89.154916)
+        (xy 185.452829 89.197171)
+        (xy 185.495084 89.231849)
+        (xy 185.543292 89.257616)
+        (xy 185.595601 89.273484)
+        (xy 185.65 89.278842)
+        (xy 187.35 89.278842)
+        (xy 187.404399 89.273484)
+        (xy 187.456708 89.257616)
+        (xy 187.504916 89.231849)
+        (xy 187.547171 89.197171)
+        (xy 187.581849 89.154916)
+        (xy 187.607616 89.106708)
+        (xy 187.623484 89.054399)
+        (xy 187.628842 89)
+        (xy 187.628842 86.5)
+        (xy 187.623484 86.445601)
+        (xy 187.607616 86.393292)
+        (xy 187.581849 86.345084)
+        (xy 187.547171 86.302829)
+        (xy 187.504916 86.268151)
+        (xy 187.456708 86.242384)
+        (xy 187.404399 86.226516)
+        (xy 187.35 86.221158)
+        (xy 186.9025 86.221158)
+        (xy 186.9025 84.028842)
+        (xy 187.3 84.028842)
+        (xy 187.354399 84.023484)
+        (xy 187.406708 84.007616)
+        (xy 187.454916 83.981849)
+        (xy 187.497171 83.947171)
+        (xy 187.531849 83.904916)
+        (xy 187.557616 83.856708)
+        (xy 187.573484 83.804399)
+        (xy 187.578842 83.75)
+        (xy 187.578842 82.25)
+        (xy 187.573484 82.195601)
+        (xy 187.557616 82.143292)
+        (xy 187.531849 82.095084)
+        (xy 187.497171 82.052829)
+        (xy 187.454916 82.018151)
+        (xy 187.406708 81.992384)
+        (xy 187.354399 81.976516)
+        (xy 187.3 81.971158)
+        (xy 187.2775 81.971158)
+        (xy 187.2775 81.028842)
+        (xy 187.3 81.028842)
+        (xy 187.354399 81.023484)
+        (xy 187.406708 81.007616)
+        (xy 187.454916 80.981849)
+        (xy 187.497171 80.947171)
+        (xy 187.531849 80.904916)
+        (xy 187.557616 80.856708)
+        (xy 187.573484 80.804399)
+        (xy 187.578842 80.75)
+        (xy 187.578842 80.401606)
+        (xy 187.628904 80.396676)
+        (xy 187.704775 80.37366)
+        (xy 187.774699 80.336285)
+        (xy 187.835987 80.285987)
+        (xy 187.848592 80.270628)
+        (xy 188.070624 80.048595)
+        (xy 188.085987 80.035987)
+        (xy 188.125184 79.988226)
+        (xy 188.136285 79.9747)
+        (xy 188.162688 79.925302)
+        (xy 188.17366 79.904775)
+        (xy 188.196676 79.828904)
+        (xy 188.2025 79.769769)
+        (xy 188.2025 79.76976)
+        (xy 188.204446 79.750001)
+        (xy 188.2025 79.730242)
+        (xy 188.2025 72.778842)
+        (xy 188.95 72.778842)
+        (xy 189.004399 72.773484)
+        (xy 189.056708 72.757616)
+        (xy 189.104916 72.731849)
+        (xy 189.147171 72.697171)
+        (xy 189.181849 72.654916)
+        (xy 189.207616 72.606708)
+        (xy 189.223484 72.554399)
+        (xy 189.228842 72.5)
+        (xy 189.228842 71.5)
+        (xy 189.223484 71.445601)
+        (xy 189.207616 71.393292)
+        (xy 189.181849 71.345084)
+        (xy 189.147171 71.302829)
+        (xy 189.104916 71.268151)
+        (xy 189.056708 71.242384)
+        (xy 189.004399 71.226516)
+        (xy 188.95 71.221158)
+        (xy 186.65 71.221158)
+        (xy 186.595601 71.226516)
+        (xy 186.543292 71.242384)
+        (xy 186.495084 71.268151)
+        (xy 186.452829 71.302829)
+        (xy 186.418151 71.345084)
+        (xy 186.392384 71.393292)
+        (xy 186.376516 71.445601)
+        (xy 186.371158 71.5)
+        (xy 186.371158 72.5)
+        (xy 186.376516 72.554399)
+        (xy 186.392384 72.606708)
+        (xy 186.418151 72.654916)
+        (xy 186.452829 72.697171)
+        (xy 186.495084 72.731849)
+        (xy 186.543292 72.757616)
+        (xy 186.595601 72.773484)
+        (xy 186.65 72.778842)
+        (xy 187.3975 72.778842)
+        (xy 187.397501 78.989591)
+        (xy 187.354399 78.976516)
+        (xy 187.3 78.971158)
+        (xy 186.45 78.971158)
+        (xy 186.395601 78.976516)
+        (xy 186.343292 78.992384)
+        (xy 186.295084 79.018151)
+        (xy 186.252829 79.052829)
+        (xy 186.218151 79.095084)
+        (xy 186.192384 79.143292)
+        (xy 186.176516 79.195601)
+        (xy 186.171158 79.25)
+        (xy 186.171158 80.75)
+        (xy 186.176516 80.804399)
+        (xy 186.192384 80.856708)
+        (xy 186.218151 80.904916)
+        (xy 186.252829 80.947171)
+        (xy 186.295084 80.981849)
+        (xy 186.343292 81.007616)
+        (xy 186.395601 81.023484)
+        (xy 186.45 81.028842)
+        (xy 186.472501 81.028842)
+        (xy 186.4725 81.971158)
+        (xy 186.45 81.971158)
+        (xy 186.395601 81.976516)
+        (xy 186.343292 81.992384)
+        (xy 186.295084 82.018151)
+        (xy 186.252829 82.052829)
+        (xy 186.218151 82.095084)
+        (xy 186.192384 82.143292)
+        (xy 186.176516 82.195601)
+        (xy 186.171158 82.25)
+        (xy 186.171158 83.141233)
+        (xy 186.163715 83.150302)
+        (xy 186.143445 83.188226)
+        (xy 186.126341 83.220225)
+        (xy 186.103325 83.296096)
+        (xy 186.100533 83.324444)
+        (xy 186.095554 83.375)
+        (xy 186.097501 83.394769)
+        (xy 186.0975 86.221158)
+        (xy 185.940379 86.221158)
+        (xy 183.548591 83.829371)
+        (xy 183.535987 83.814013)
+        (xy 183.474699 83.763715)
+        (xy 183.404775 83.72634)
+        (xy 183.328904 83.703324)
+        (xy 183.269769 83.6975)
+        (xy 183.269759 83.6975)
+        (xy 183.25 83.695554)
+        (xy 183.230241 83.6975)
+        (xy 182.540842 83.6975)
+        (xy 182.540842 83.68)
+        (xy 182.535484 83.625601)
+        (xy 182.519616 83.573292)
+        (xy 182.493849 83.525084)
+        (xy 182.459171 83.482829)
+        (xy 182.416916 83.448151)
+        (xy 182.368708 83.422384)
+        (xy 182.316399 83.406516)
+        (xy 182.262 83.401158)
+        (xy 180.738 83.401158)
+        (xy 180.683601 83.406516)
+        (xy 180.631292 83.422384)
+        (xy 180.583084 83.448151)
+        (xy 180.540829 83.482829)
+        (xy 180.506151 83.525084)
+        (xy 180.480384 83.573292)
+        (xy 180.464516 83.625601)
+        (xy 180.459158 83.68)
+        (xy 175.5775 83.68)
+        (xy 175.5775 83.643121)
+        (xy 175.555307 83.53155)
+        (xy 175.512764 83.428842)
+        (xy 175.762 83.428842)
+        (xy 175.816399 83.423484)
+        (xy 175.868708 83.407616)
+        (xy 175.916916 83.381849)
+        (xy 175.959171 83.347171)
+        (xy 175.993849 83.304916)
+        (xy 176.019616 83.256708)
+        (xy 176.035484 83.204399)
+        (xy 176.040842 83.15)
+        (xy 176.040842 82.2025)
+        (xy 180.459158 82.2025)
+        (xy 180.459158 82.22)
+        (xy 180.464516 82.274399)
+        (xy 180.480384 82.326708)
+        (xy 180.506151 82.374916)
+        (xy 180.540829 82.417171)
+        (xy 180.583084 82.451849)
+        (xy 180.631292 82.477616)
+        (xy 180.683601 82.493484)
+        (xy 180.738 82.498842)
+        (xy 182.262 82.498842)
+        (xy 182.316399 82.493484)
+        (xy 182.368708 82.477616)
+        (xy 182.416916 82.451849)
+        (xy 182.459171 82.417171)
+        (xy 182.493849 82.374916)
+        (xy 182.519616 82.326708)
+        (xy 182.535484 82.274399)
+        (xy 182.540842 82.22)
+        (xy 182.540842 82.2025)
+        (xy 184.08328 82.2025)
+        (xy 184.421158 82.540379)
+        (xy 184.421158 83.75)
+        (xy 184.426516 83.804399)
+        (xy 184.442384 83.856708)
+        (xy 184.468151 83.904916)
+        (xy 184.502829 83.947171)
+        (xy 184.545084 83.981849)
+        (xy 184.593292 84.007616)
+        (xy 184.645601 84.023484)
+        (xy 184.7 84.028842)
+        (xy 185.55 84.028842)
+        (xy 185.604399 84.023484)
+        (xy 185.656708 84.007616)
+        (xy 185.704916 83.981849)
+        (xy 185.747171 83.947171)
+        (xy 185.781849 83.904916)
+        (xy 185.807616 83.856708)
+        (xy 185.823484 83.804399)
+        (xy 185.828842 83.75)
+        (xy 185.828842 82.25)
+        (xy 185.823484 82.195601)
+        (xy 185.807616 82.143292)
+        (xy 185.781849 82.095084)
+        (xy 185.747171 82.052829)
+        (xy 185.704916 82.018151)
+        (xy 185.656708 81.992384)
+        (xy 185.604399 81.976516)
+        (xy 185.55 81.971158)
+        (xy 184.990379 81.971158)
+        (xy 184.548589 81.529369)
+        (xy 184.535987 81.514013)
+        (xy 184.474699 81.463715)
+        (xy 184.404775 81.42634)
+        (xy 184.328904 81.403324)
+        (xy 184.269769 81.3975)
+        (xy 184.269759 81.3975)
+        (xy 184.25 81.395554)
+        (xy 184.230241 81.3975)
+        (xy 182.540842 81.3975)
+        (xy 182.540842 81.38)
+        (xy 182.535484 81.325601)
+        (xy 182.519616 81.273292)
+        (xy 182.493849 81.225084)
+        (xy 182.459171 81.182829)
+        (xy 182.416916 81.148151)
+        (xy 182.368708 81.122384)
+        (xy 182.316399 81.106516)
+        (xy 182.262 81.101158)
+        (xy 180.738 81.101158)
+        (xy 180.683601 81.106516)
+        (xy 180.631292 81.122384)
+        (xy 180.583084 81.148151)
+        (xy 180.540829 81.182829)
+        (xy 180.506151 81.225084)
+        (xy 180.480384 81.273292)
+        (xy 180.464516 81.325601)
+        (xy 180.459158 81.38)
+        (xy 180.459158 81.3975)
+        (xy 176.040842 81.3975)
+        (xy 176.040842 80.75)
+        (xy 184.365891 80.75)
+        (xy 184.372311 80.815181)
+        (xy 184.391324 80.877858)
+        (xy 184.422199 80.935621)
+        (xy 184.463749 80.986251)
+        (xy 184.514379 81.027801)
+        (xy 184.572142 81.058676)
+        (xy 184.634819 81.077689)
+        (xy 184.7 81.084109)
+        (xy 184.991875 81.0825)
+        (xy 185.075 80.999375)
+        (xy 185.075 80.05)
+        (xy 185.175 80.05)
+        (xy 185.175 80.999375)
+        (xy 185.258125 81.0825)
+        (xy 185.55 81.084109)
+        (xy 185.615181 81.077689)
+        (xy 185.677858 81.058676)
+        (xy 185.735621 81.027801)
+        (xy 185.786251 80.986251)
+        (xy 185.827801 80.935621)
+        (xy 185.858676 80.877858)
+        (xy 185.877689 80.815181)
+        (xy 185.884109 80.75)
+        (xy 185.8825 80.133125)
+        (xy 185.799375 80.05)
+        (xy 185.175 80.05)
+        (xy 185.075 80.05)
+        (xy 184.450625 80.05)
+        (xy 184.3675 80.133125)
+        (xy 184.365891 80.75)
+        (xy 176.040842 80.75)
+        (xy 176.040842 80.05)
+        (xy 176.035484 79.995601)
+        (xy 176.019616 79.943292)
+        (xy 175.993849 79.895084)
+        (xy 175.959171 79.852829)
+        (xy 175.916916 79.818151)
+        (xy 175.868708 79.792384)
+        (xy 175.816399 79.776516)
+        (xy 175.762 79.771158)
+        (xy 175.563186 79.771158)
+        (xy 175.555307 79.73155)
+        (xy 175.511774 79.626451)
+        (xy 175.448573 79.531865)
+        (xy 175.368135 79.451427)
+        (xy 175.273549 79.388226)
+        (xy 175.16845 79.344693)
+        (xy 175.056879 79.3225)
+        (xy 174.943121 79.3225)
+        (xy 174.83155 79.344693)
+        (xy 174.726451 79.388226)
+        (xy 174.631865 79.451427)
+        (xy 174.551427 79.531865)
+        (xy 174.488226 79.626451)
+        (xy 174.444693 79.73155)
+        (xy 174.436814 79.771158)
+        (xy 174.238 79.771158)
+        (xy 174.183601 79.776516)
+        (xy 174.131292 79.792384)
+        (xy 174.083084 79.818151)
+        (xy 174.040829 79.852829)
+        (xy 174.006151 79.895084)
+        (xy 173.980384 79.943292)
+        (xy 173.964516 79.995601)
+        (xy 173.959158 80.05)
+        (xy 173.959158 81.1975)
+        (xy 173.854208 81.1975)
+        (xy 173.808135 81.151427)
+        (xy 173.713549 81.088226)
+        (xy 173.60845 81.044693)
+        (xy 173.496879 81.0225)
+        (xy 173.383121 81.0225)
+        (xy 173.27155 81.044693)
+        (xy 173.166451 81.088226)
+        (xy 173.071865 81.151427)
+        (xy 172.991427 81.231865)
+        (xy 172.928226 81.326451)
+        (xy 172.884693 81.43155)
+        (xy 172.8625 81.543121)
+        (xy 158.072509 81.543121)
+        (xy 161.205646 78.409986)
+        (xy 161.220999 78.397386)
+        (xy 161.240472 78.373659)
+        (xy 161.271297 78.336098)
+        (xy 161.292369 78.296674)
+        (xy 161.308672 78.266174)
+        (xy 161.331688 78.190303)
+        (xy 161.337512 78.131168)
+        (xy 161.337512 78.131159)
+        (xy 161.339458 78.1114)
+        (xy 161.337512 78.091641)
+        (xy 161.337512 71.943121)
+        (xy 165.0325 71.943121)
+        (xy 165.0325 72.056879)
+        (xy 165.054693 72.16845)
+        (xy 165.098226 72.273549)
+        (xy 165.161427 72.368135)
+        (xy 165.241865 72.448573)
+        (xy 165.336451 72.511774)
+        (xy 165.44155 72.555307)
+        (xy 165.553121 72.5775)
+        (xy 165.666879 72.5775)
+        (xy 165.77845 72.555307)
+        (xy 165.883549 72.511774)
+        (xy 165.978135 72.448573)
+        (xy 166.058573 72.368135)
+        (xy 166.121774 72.273549)
+        (xy 166.165307 72.16845)
+        (xy 166.1875 72.056879)
+        (xy 166.1875 71.943121)
+        (xy 166.165307 71.83155)
+        (xy 166.121774 71.726451)
+        (xy 166.097418 71.69)
+        (xy 178.990891 71.69)
+        (xy 178.997311 71.755181)
+        (xy 179.016324 71.817858)
+        (xy 179.047199 71.875621)
+        (xy 179.088749 71.926251)
+        (xy 179.139379 71.967801)
+        (xy 179.197142 71.998676)
+        (xy 179.259819 72.017689)
+        (xy 179.325 72.024109)
+        (xy 179.866875 72.0225)
+        (xy 179.95 71.939375)
+        (xy 179.95 70.64)
+        (xy 179.075625 70.64)
+        (xy 178.9925 70.723125)
+        (xy 178.990891 71.69)
+        (xy 166.097418 71.69)
+        (xy 166.058573 71.631865)
+        (xy 165.978135 71.551427)
+        (xy 165.883549 71.488226)
+        (xy 165.77845 71.444693)
+        (xy 165.666879 71.4225)
+        (xy 165.553121 71.4225)
+        (xy 165.44155 71.444693)
+        (xy 165.336451 71.488226)
+        (xy 165.241865 71.551427)
+        (xy 165.161427 71.631865)
+        (xy 165.098226 71.726451)
+        (xy 165.054693 71.83155)
+        (xy 165.0325 71.943121)
+        (xy 161.337512 71.943121)
+        (xy 161.337512 69.75477)
+        (xy 161.339458 69.735011)
+        (xy 161.337512 69.715252)
+        (xy 161.337512 69.715243)
+        (xy 161.331688 69.656108)
+        (xy 161.308672 69.580237)
+        (xy 161.271297 69.510313)
+        (xy 161.261675 69.498589)
+        (xy 161.254627 69.49)
+        (xy 178.990891 69.49)
+        (xy 178.9925 70.456875)
+        (xy 179.075625 70.54)
+        (xy 179.95 70.54)
+        (xy 179.95 69.240625)
+        (xy 180.05 69.240625)
+        (xy 180.05 70.54)
+        (xy 180.924375 70.54)
+        (xy 181.0075 70.456875)
+        (xy 181.009109 69.49)
+        (xy 181.002689 69.424819)
+        (xy 180.983676 69.362142)
+        (xy 180.952801 69.304379)
+        (xy 180.911251 69.253749)
+        (xy 180.860621 69.212199)
+        (xy 180.802858 69.181324)
+        (xy 180.740181 69.162311)
+        (xy 180.675 69.155891)
+        (xy 180.133125 69.1575)
+        (xy 180.05 69.240625)
+        (xy 179.95 69.240625)
+        (xy 179.866875 69.1575)
+        (xy 179.325 69.155891)
+        (xy 179.259819 69.162311)
+        (xy 179.197142 69.181324)
+        (xy 179.139379 69.212199)
+        (xy 179.088749 69.253749)
+        (xy 179.047199 69.304379)
+        (xy 179.016324 69.362142)
+        (xy 178.997311 69.424819)
+        (xy 178.990891 69.49)
+        (xy 161.254627 69.49)
+        (xy 161.233601 69.46438)
+        (xy 161.233599 69.464378)
+        (xy 161.220999 69.449025)
+        (xy 161.205647 69.436426)
+        (xy 160.3775 68.60828)
+        (xy 160.3775 68.543121)
+        (xy 160.355307 68.43155)
+        (xy 160.311774 68.326451)
+        (xy 160.248573 68.231865)
+        (xy 160.2125 68.195792)
+        (xy 160.2125 67.723671)
+        (xy 160.214399 67.723484)
+        (xy 160.266708 67.707616)
+        (xy 160.314916 67.681849)
+        (xy 160.357171 67.647171)
+        (xy 160.391849 67.604916)
+        (xy 160.417616 67.556708)
+        (xy 160.433484 67.504399)
+        (xy 160.438842 67.45)
+        (xy 160.438842 66.55)
+        (xy 160.433484 66.495601)
+        (xy 160.417616 66.443292)
+        (xy 160.391849 66.395084)
+        (xy 160.357171 66.352829)
+        (xy 160.314916 66.318151)
+        (xy 160.266708 66.292384)
+        (xy 160.214399 66.276516)
+        (xy 160.2125 66.276329)
+        (xy 160.2125 65.782)
+        (xy 185.403891 65.782)
+        (xy 185.410311 65.847181)
+        (xy 185.429324 65.909858)
+        (xy 185.460199 65.967621)
+        (xy 185.501749 66.018251)
+        (xy 185.552379 66.059801)
+        (xy 185.610142 66.090676)
+        (xy 185.672819 66.109689)
+        (xy 185.738 66.116109)
+        (xy 186.366875 66.1145)
+        (xy 186.45 66.031375)
+        (xy 186.45 65.07)
+        (xy 186.55 65.07)
+        (xy 186.55 66.031375)
+        (xy 186.633125 66.1145)
+        (xy 187.262 66.116109)
+        (xy 187.327181 66.109689)
+        (xy 187.389858 66.090676)
+        (xy 187.447621 66.059801)
+        (xy 187.498251 66.018251)
+        (xy 187.539801 65.967621)
+        (xy 187.570676 65.909858)
+        (xy 187.589689 65.847181)
+        (xy 187.596109 65.782)
+        (xy 187.5945 65.153125)
+        (xy 187.511375 65.07)
+        (xy 186.55 65.07)
+        (xy 186.45 65.07)
+        (xy 185.488625 65.07)
+        (xy 185.4055 65.153125)
+        (xy 185.403891 65.782)
+        (xy 160.2125 65.782)
+        (xy 160.2125 65.189066)
+        (xy 160.258135 65.158573)
+        (xy 160.338573 65.078135)
+        (xy 160.401774 64.983549)
+        (xy 160.445307 64.87845)
+        (xy 160.4675 64.766879)
+        (xy 160.4675 64.653121)
+        (xy 160.445307 64.54155)
+        (xy 160.401774 64.436451)
+        (xy 160.338573 64.341865)
+        (xy 160.258135 64.261427)
+        (xy 160.253007 64.258)
+        (xy 185.403891 64.258)
+        (xy 185.4055 64.886875)
+        (xy 185.488625 64.97)
+        (xy 186.45 64.97)
+        (xy 186.45 64.008625)
+        (xy 186.55 64.008625)
+        (xy 186.55 64.97)
+        (xy 187.511375 64.97)
+        (xy 187.5945 64.886875)
+        (xy 187.596109 64.258)
+        (xy 187.589689 64.192819)
+        (xy 187.570676 64.130142)
+        (xy 187.539801 64.072379)
+        (xy 187.498251 64.021749)
+        (xy 187.447621 63.980199)
+        (xy 187.389858 63.949324)
+        (xy 187.327181 63.930311)
+        (xy 187.262 63.923891)
+        (xy 186.633125 63.9255)
+        (xy 186.55 64.008625)
+        (xy 186.45 64.008625)
+        (xy 186.366875 63.9255)
+        (xy 185.738 63.923891)
+        (xy 185.672819 63.930311)
+        (xy 185.610142 63.949324)
+        (xy 185.552379 63.980199)
+        (xy 185.501749 64.021749)
+        (xy 185.460199 64.072379)
+        (xy 185.429324 64.130142)
+        (xy 185.410311 64.192819)
+        (xy 185.403891 64.258)
+        (xy 160.253007 64.258)
+        (xy 160.163549 64.198226)
+        (xy 160.05845 64.154693)
+        (xy 159.946879 64.1325)
+        (xy 159.833121 64.1325)
+        (xy 159.72155 64.154693)
+        (xy 159.616451 64.198226)
+        (xy 159.521865 64.261427)
+        (xy 159.441427 64.341865)
+        (xy 159.378226 64.436451)
+        (xy 159.334693 64.54155)
+        (xy 159.3125 64.653121)
+        (xy 159.3125 64.766879)
+        (xy 159.334693 64.87845)
+        (xy 159.378226 64.983549)
+        (xy 159.407501 65.027362)
+        (xy 159.4075 66.276329)
+        (xy 159.405601 66.276516)
+        (xy 159.353292 66.292384)
+        (xy 159.305084 66.318151)
+        (xy 159.262829 66.352829)
+        (xy 159.228151 66.395084)
+        (xy 159.202384 66.443292)
+        (xy 159.186516 66.495601)
+        (xy 159.181158 66.55)
+        (xy 159.181158 67.45)
+        (xy 159.186516 67.504399)
+        (xy 159.202384 67.556708)
+        (xy 159.228151 67.604916)
+        (xy 159.262829 67.647171)
+        (xy 159.305084 67.681849)
+        (xy 159.353292 67.707616)
+        (xy 159.405601 67.723484)
+        (xy 159.4075 67.723671)
+        (xy 159.407501 68.175791)
+        (xy 159.351427 68.231865)
+        (xy 159.288226 68.326451)
+        (xy 159.245422 68.42979)
+        (xy 159.117497 68.301865)
+        (xy 159.117497 68.236706)
+        (xy 159.095304 68.125135)
+        (xy 159.051771 68.020036)
+        (xy 158.98857 67.92545)
+        (xy 158.9425 67.87938)
+        (xy 158.9425 67.723671)
+        (xy 158.944399 67.723484)
+        (xy 158.996708 67.707616)
+        (xy 159.044916 67.681849)
+        (xy 159.087171 67.647171)
+        (xy 159.121849 67.604916)
+        (xy 159.147616 67.556708)
+        (xy 159.163484 67.504399)
+        (xy 159.168842 67.45)
+        (xy 159.168842 66.55)
+        (xy 159.163484 66.495601)
+        (xy 159.147616 66.443292)
+        (xy 159.121849 66.395084)
+        (xy 159.087171 66.352829)
+        (xy 159.044916 66.318151)
+        (xy 159.0025 66.29548)
+        (xy 159.0025 66.114208)
+        (xy 159.048573 66.068135)
+        (xy 159.111774 65.973549)
+        (xy 159.155307 65.86845)
+        (xy 159.1775 65.756879)
+        (xy 159.1775 65.643121)
+        (xy 159.155307 65.53155)
+        (xy 159.111774 65.426451)
+        (xy 159.048573 65.331865)
+        (xy 158.968135 65.251427)
+        (xy 158.873549 65.188226)
+        (xy 158.76845 65.144693)
+        (xy 158.656879 65.1225)
+        (xy 158.543121 65.1225)
+        (xy 158.43155 65.144693)
+        (xy 158.326451 65.188226)
+        (xy 158.231865 65.251427)
+        (xy 158.151427 65.331865)
+        (xy 158.088226 65.426451)
+        (xy 158.044693 65.53155)
+        (xy 158.0225 65.643121)
+        (xy 158.0225 65.756879)
+        (xy 158.044693 65.86845)
+        (xy 158.088226 65.973549)
+        (xy 158.151427 66.068135)
+        (xy 158.1975 66.114208)
+        (xy 158.1975 66.271158)
+        (xy 158.19 66.271158)
+        (xy 158.135601 66.276516)
+        (xy 158.083292 66.292384)
+        (xy 158.035084 66.318151)
+        (xy 157.992829 66.352829)
+        (xy 157.958151 66.395084)
+        (xy 157.932384 66.443292)
+        (xy 157.916516 66.495601)
+        (xy 157.911158 66.55)
+        (xy 157.911158 67.45)
+        (xy 157.916516 67.504399)
+        (xy 157.932384 67.556708)
+        (xy 157.958151 67.604916)
+        (xy 157.992829 67.647171)
+        (xy 158.035084 67.681849)
+        (xy 158.083292 67.707616)
+        (xy 158.135601 67.723484)
+        (xy 158.137501 67.723671)
+        (xy 158.137501 67.879373)
+        (xy 158.091424 67.92545)
+        (xy 158.028223 68.020036)
+        (xy 157.98469 68.125135)
+        (xy 157.962497 68.236706)
+        (xy 157.962497 68.350464)
+        (xy 157.98469 68.462035)
+        (xy 158.028223 68.567134)
+        (xy 158.091424 68.66172)
+        (xy 158.171862 68.742158)
+        (xy 158.266448 68.805359)
+        (xy 158.371547 68.848892)
+        (xy 158.483118 68.871085)
+        (xy 158.548277 68.871085)
+        (xy 160.082503 70.405312)
+        (xy 160.082502 75.856466)
+        (xy 159.943125 75.8575)
+        (xy 159.86 75.940625)
+        (xy 159.86 76.59)
+        (xy 159.88 76.59)
+        (xy 159.88 76.69)
+        (xy 159.86 76.69)
+        (xy 159.86 77.339375)
+        (xy 159.943125 77.4225)
+        (xy 160.082502 77.423534)
+        (xy 160.082502 77.733277)
+        (xy 152.828842 84.986938)
+        (xy 152.828842 84.565)
+        (xy 152.823484 84.510601)
+        (xy 152.807616 84.458292)
+        (xy 152.781849 84.410084)
+        (xy 152.747171 84.367829)
+        (xy 152.704916 84.333151)
+        (xy 152.656708 84.307384)
+        (xy 152.604399 84.291516)
+        (xy 152.55 84.286158)
+        (xy 151.15 84.286158)
+        (xy 151.095601 84.291516)
+        (xy 151.043292 84.307384)
+        (xy 150.995084 84.333151)
+        (xy 150.952829 84.367829)
+        (xy 150.918151 84.410084)
+        (xy 150.914194 84.417486)
+        (xy 150.908135 84.411427)
+        (xy 150.813549 84.348226)
+        (xy 150.70845 84.304693)
+        (xy 150.596879 84.2825)
+        (xy 150.483121 84.2825)
+        (xy 150.37155 84.304693)
+        (xy 150.266451 84.348226)
+        (xy 150.171865 84.411427)
+        (xy 150.091427 84.491865)
+        (xy 150.028226 84.586451)
+        (xy 149.984693 84.69155)
+        (xy 149.9625 84.803121)
+        (xy 149.9625 84.916879)
+        (xy 149.984693 85.02845)
+        (xy 150.028226 85.133549)
+        (xy 150.091427 85.228135)
+        (xy 150.171865 85.308573)
+        (xy 150.266451 85.371774)
+        (xy 150.37155 85.415307)
+        (xy 150.483121 85.4375)
+        (xy 150.596879 85.4375)
+        (xy 150.70845 85.415307)
+        (xy 150.813549 85.371774)
+        (xy 150.908135 85.308573)
+        (xy 150.910711 85.305997)
+        (xy 150.918151 85.319916)
+        (xy 150.952829 85.362171)
+        (xy 150.995084 85.396849)
+        (xy 151.043292 85.422616)
+        (xy 151.095601 85.438484)
+        (xy 151.15 85.443842)
+        (xy 152.371938 85.443842)
+        (xy 152.259622 85.556158)
+        (xy 151.15 85.556158)
+        (xy 151.095601 85.561516)
+        (xy 151.043292 85.577384)
+        (xy 150.995084 85.603151)
+        (xy 150.952829 85.637829)
+        (xy 150.918151 85.680084)
+        (xy 150.892384 85.728292)
+        (xy 150.876516 85.780601)
+        (xy 150.871158 85.835)
+        (xy 150.871158 86.435)
+        (xy 150.876516 86.489399)
+        (xy 150.892384 86.541708)
+        (xy 150.918151 86.589916)
+        (xy 150.952829 86.632171)
+        (xy 150.995084 86.666849)
+        (xy 151.043292 86.692616)
+        (xy 151.095601 86.708484)
+        (xy 151.15 86.713842)
+        (xy 152.371937 86.713842)
+        (xy 152.259622 86.826158)
+        (xy 151.15 86.826158)
+        (xy 151.095601 86.831516)
+        (xy 151.043292 86.847384)
+        (xy 150.995084 86.873151)
+        (xy 150.952829 86.907829)
+        (xy 150.918151 86.950084)
+        (xy 150.892384 86.998292)
+        (xy 150.876516 87.050601)
+        (xy 150.871158 87.105)
+        (xy 150.871158 87.441939)
+        (xy 146.87234 83.443121)
+        (xy 149.9225 83.443121)
+        (xy 149.9225 83.556879)
+        (xy 149.944693 83.66845)
+        (xy 149.988226 83.773549)
+        (xy 150.051427 83.868135)
+        (xy 150.131865 83.948573)
+        (xy 150.226451 84.011774)
+        (xy 150.33155 84.055307)
+        (xy 150.443121 84.0775)
+        (xy 150.556879 84.0775)
+        (xy 150.66845 84.055307)
+        (xy 150.773549 84.011774)
+        (xy 150.794911 83.9975)
+        (xy 150.891107 83.9975)
+        (xy 150.892384 84.001708)
+        (xy 150.918151 84.049916)
+        (xy 150.952829 84.092171)
+        (xy 150.995084 84.126849)
+        (xy 151.043292 84.152616)
+        (xy 151.095601 84.168484)
+        (xy 151.15 84.173842)
+        (xy 152.55 84.173842)
+        (xy 152.604399 84.168484)
+        (xy 152.656708 84.152616)
+        (xy 152.704916 84.126849)
+        (xy 152.747171 84.092171)
+        (xy 152.781849 84.049916)
+        (xy 152.807616 84.001708)
+        (xy 152.823484 83.949399)
+        (xy 152.828842 83.895)
+        (xy 152.828842 83.295)
+        (xy 152.823484 83.240601)
+        (xy 152.807616 83.188292)
+        (xy 152.781849 83.140084)
+        (xy 152.747171 83.097829)
+        (xy 152.704916 83.063151)
+        (xy 152.656708 83.037384)
+        (xy 152.604399 83.021516)
+        (xy 152.55 83.016158)
+        (xy 151.15 83.016158)
+        (xy 151.095601 83.021516)
+        (xy 151.043292 83.037384)
+        (xy 150.995084 83.063151)
+        (xy 150.952829 83.097829)
+        (xy 150.935569 83.118861)
+        (xy 150.868135 83.051427)
+        (xy 150.773549 82.988226)
+        (xy 150.66845 82.944693)
+        (xy 150.556879 82.9225)
+        (xy 150.443121 82.9225)
+        (xy 150.33155 82.944693)
+        (xy 150.226451 82.988226)
+        (xy 150.131865 83.051427)
+        (xy 150.051427 83.131865)
+        (xy 149.988226 83.226451)
+        (xy 149.944693 83.33155)
+        (xy 149.9225 83.443121)
+        (xy 146.87234 83.443121)
+        (xy 144.9025 81.473282)
+        (xy 144.9025 76.19)
+        (xy 149.021158 76.19)
+        (xy 149.021158 77.09)
+        (xy 149.026516 77.144399)
+        (xy 149.042384 77.196708)
+        (xy 149.068151 77.244916)
+        (xy 149.102829 77.287171)
+        (xy 149.145084 77.321849)
+        (xy 149.193292 77.347616)
+        (xy 149.245601 77.363484)
+        (xy 149.3 77.368842)
+        (xy 150 77.368842)
+        (xy 150.054399 77.363484)
+        (xy 150.106708 77.347616)
+        (xy 150.154916 77.321849)
+        (xy 150.197171 77.287171)
+        (xy 150.231849 77.244916)
+        (xy 150.255889 77.19994)
+        (xy 150.261324 77.217858)
+        (xy 150.292199 77.275621)
+        (xy 150.333749 77.326251)
+        (xy 150.384379 77.367801)
+        (xy 150.442142 77.398676)
+        (xy 150.504819 77.417689)
+        (xy 150.57 77.424109)
+        (xy 150.786875 77.4225)
+        (xy 150.87 77.339375)
+        (xy 150.87 76.69)
+        (xy 150.97 76.69)
+        (xy 150.97 77.339375)
+        (xy 151.053125 77.4225)
+        (xy 151.27 77.424109)
+        (xy 151.335181 77.417689)
+        (xy 151.397858 77.398676)
+        (xy 151.455621 77.367801)
+        (xy 151.506251 77.326251)
+        (xy 151.547801 77.275621)
+        (xy 151.555 77.262153)
+        (xy 151.562199 77.275621)
+        (xy 151.603749 77.326251)
+        (xy 151.654379 77.367801)
+        (xy 151.712142 77.398676)
+        (xy 151.774819 77.417689)
+        (xy 151.84 77.424109)
+        (xy 152.056875 77.4225)
+        (xy 152.14 77.339375)
+        (xy 152.14 76.69)
+        (xy 151.590625 76.69)
+        (xy 151.555 76.725625)
+        (xy 151.519375 76.69)
+        (xy 150.97 76.69)
+        (xy 150.87 76.69)
+        (xy 150.85 76.69)
+        (xy 150.85 76.59)
+        (xy 150.87 76.59)
+        (xy 150.87 75.940625)
+        (xy 150.97 75.940625)
+        (xy 150.97 76.59)
+        (xy 151.519375 76.59)
+        (xy 151.555 76.554375)
+        (xy 151.590625 76.59)
+        (xy 152.14 76.59)
+        (xy 152.14 75.940625)
+        (xy 152.24 75.940625)
+        (xy 152.24 76.59)
+        (xy 152.26 76.59)
+        (xy 152.26 76.69)
+        (xy 152.24 76.69)
+        (xy 152.24 77.339375)
+        (xy 152.323125 77.4225)
+        (xy 152.54 77.424109)
+        (xy 152.605181 77.417689)
+        (xy 152.667858 77.398676)
+        (xy 152.725621 77.367801)
+        (xy 152.776251 77.326251)
+        (xy 152.817801 77.275621)
+        (xy 152.848676 77.217858)
+        (xy 152.854111 77.19994)
+        (xy 152.878151 77.244916)
+        (xy 152.912829 77.287171)
+        (xy 152.955084 77.321849)
+        (xy 153.003292 77.347616)
+        (xy 153.055601 77.363484)
+        (xy 153.11 77.368842)
+        (xy 153.81 77.368842)
+        (xy 153.864399 77.363484)
+        (xy 153.916708 77.347616)
+        (xy 153.964916 77.321849)
+        (xy 154.007171 77.287171)
+        (xy 154.041849 77.244916)
+        (xy 154.067616 77.196708)
+        (xy 154.083484 77.144399)
+        (xy 154.088842 77.09)
+        (xy 154.088842 76.19)
+        (xy 154.101158 76.19)
+        (xy 154.101158 77.09)
+        (xy 154.106516 77.144399)
+        (xy 154.122384 77.196708)
+        (xy 154.148151 77.244916)
+        (xy 154.182829 77.287171)
+        (xy 154.225084 77.321849)
+        (xy 154.273292 77.347616)
+        (xy 154.325601 77.363484)
+        (xy 154.38 77.368842)
+        (xy 155.08 77.368842)
+        (xy 155.134399 77.363484)
+        (xy 155.186708 77.347616)
+        (xy 155.234916 77.321849)
+        (xy 155.277171 77.287171)
+        (xy 155.311849 77.244916)
+        (xy 155.337616 77.196708)
+        (xy 155.353484 77.144399)
+        (xy 155.358842 77.09)
+        (xy 155.358842 76.19)
+        (xy 155.371158 76.19)
+        (xy 155.371158 77.09)
+        (xy 155.376516 77.144399)
+        (xy 155.392384 77.196708)
+        (xy 155.418151 77.244916)
+        (xy 155.434216 77.264492)
+        (xy 155.4325 77.273121)
+        (xy 155.4325 77.386879)
+        (xy 155.454693 77.49845)
+        (xy 155.498226 77.603549)
+        (xy 155.561427 77.698135)
+        (xy 155.641865 77.778573)
+        (xy 155.736451 77.841774)
+        (xy 155.84155 77.885307)
+        (xy 155.953121 77.9075)
+        (xy 156.066879 77.9075)
+        (xy 156.17845 77.885307)
+        (xy 156.283549 77.841774)
+        (xy 156.378135 77.778573)
+        (xy 156.458573 77.698135)
+        (xy 156.521774 77.603549)
+        (xy 156.565307 77.49845)
+        (xy 156.5875 77.386879)
+        (xy 156.5875 77.273121)
+        (xy 156.581879 77.244861)
+        (xy 156.607616 77.196708)
+        (xy 156.623484 77.144399)
+        (xy 156.628842 77.09)
+        (xy 156.628842 76.19)
+        (xy 156.641158 76.19)
+        (xy 156.641158 77.09)
+        (xy 156.646516 77.144399)
+        (xy 156.662384 77.196708)
+        (xy 156.688151 77.244916)
+        (xy 156.722829 77.287171)
+        (xy 156.765084 77.321849)
+        (xy 156.813292 77.347616)
+        (xy 156.865601 77.363484)
+        (xy 156.92 77.368842)
+        (xy 157.62 77.368842)
+        (xy 157.674399 77.363484)
+        (xy 157.726708 77.347616)
+        (xy 157.774916 77.321849)
+        (xy 157.817171 77.287171)
+        (xy 157.851849 77.244916)
+        (xy 157.877616 77.196708)
+        (xy 157.893484 77.144399)
+        (xy 157.898842 77.09)
+        (xy 157.898842 76.19)
+        (xy 157.911158 76.19)
+        (xy 157.911158 77.09)
+        (xy 157.916516 77.144399)
+        (xy 157.932384 77.196708)
+        (xy 157.958151 77.244916)
+        (xy 157.992829 77.287171)
+        (xy 158.035084 77.321849)
+        (xy 158.083292 77.347616)
+        (xy 158.135601 77.363484)
+        (xy 158.19 77.368842)
+        (xy 158.89 77.368842)
+        (xy 158.944399 77.363484)
+        (xy 158.996708 77.347616)
+        (xy 159.044916 77.321849)
+        (xy 159.087171 77.287171)
+        (xy 159.121849 77.244916)
+        (xy 159.145889 77.19994)
+        (xy 159.151324 77.217858)
+        (xy 159.182199 77.275621)
+        (xy 159.223749 77.326251)
+        (xy 159.274379 77.367801)
+        (xy 159.332142 77.398676)
+        (xy 159.394819 77.417689)
+        (xy 159.46 77.424109)
+        (xy 159.676875 77.4225)
+        (xy 159.76 77.339375)
+        (xy 159.76 76.69)
+        (xy 159.74 76.69)
+        (xy 159.74 76.59)
+        (xy 159.76 76.59)
+        (xy 159.76 75.940625)
+        (xy 159.676875 75.8575)
+        (xy 159.46 75.855891)
+        (xy 159.394819 75.862311)
+        (xy 159.332142 75.881324)
+        (xy 159.274379 75.912199)
+        (xy 159.223749 75.953749)
+        (xy 159.182199 76.004379)
+        (xy 159.151324 76.062142)
+        (xy 159.145889 76.08006)
+        (xy 159.121849 76.035084)
+        (xy 159.087171 75.992829)
+        (xy 159.044916 75.958151)
+        (xy 159.0025 75.93548)
+        (xy 159.0025 75.914208)
+        (xy 159.048573 75.868135)
+        (xy 159.111774 75.773549)
+        (xy 159.155307 75.66845)
+        (xy 159.1775 75.556879)
+        (xy 159.1775 75.443121)
+        (xy 159.155307 75.33155)
+        (xy 159.111774 75.226451)
+        (xy 159.048573 75.131865)
+        (xy 158.968135 75.051427)
+        (xy 158.873549 74.988226)
+        (xy 158.76845 74.944693)
+        (xy 158.656879 74.9225)
+        (xy 158.543121 74.9225)
+        (xy 158.43155 74.944693)
+        (xy 158.326451 74.988226)
+        (xy 158.231865 75.051427)
+        (xy 158.151427 75.131865)
+        (xy 158.088226 75.226451)
+        (xy 158.044693 75.33155)
+        (xy 158.0225 75.443121)
+        (xy 158.0225 75.556879)
+        (xy 158.044693 75.66845)
+        (xy 158.088226 75.773549)
+        (xy 158.151427 75.868135)
+        (xy 158.19445 75.911158)
+        (xy 158.19 75.911158)
+        (xy 158.135601 75.916516)
+        (xy 158.083292 75.932384)
+        (xy 158.035084 75.958151)
+        (xy 157.992829 75.992829)
+        (xy 157.958151 76.035084)
+        (xy 157.932384 76.083292)
+        (xy 157.916516 76.135601)
+        (xy 157.911158 76.19)
+        (xy 157.898842 76.19)
+        (xy 157.893484 76.135601)
+        (xy 157.877616 76.083292)
+        (xy 157.851849 76.035084)
+        (xy 157.817171 75.992829)
+        (xy 157.774916 75.958151)
+        (xy 157.726708 75.932384)
+        (xy 157.674399 75.916516)
+        (xy 157.62 75.911158)
+        (xy 156.92 75.911158)
+        (xy 156.865601 75.916516)
+        (xy 156.813292 75.932384)
+        (xy 156.765084 75.958151)
+        (xy 156.722829 75.992829)
+        (xy 156.688151 76.035084)
+        (xy 156.662384 76.083292)
+        (xy 156.646516 76.135601)
+        (xy 156.641158 76.19)
+        (xy 156.628842 76.19)
+        (xy 156.623484 76.135601)
+        (xy 156.607616 76.083292)
+        (xy 156.581849 76.035084)
+        (xy 156.547171 75.992829)
+        (xy 156.504916 75.958151)
+        (xy 156.456708 75.932384)
+        (xy 156.404399 75.916516)
+        (xy 156.35 75.911158)
+        (xy 155.65 75.911158)
+        (xy 155.595601 75.916516)
+        (xy 155.543292 75.932384)
+        (xy 155.495084 75.958151)
+        (xy 155.452829 75.992829)
+        (xy 155.418151 76.035084)
+        (xy 155.392384 76.083292)
+        (xy 155.376516 76.135601)
+        (xy 155.371158 76.19)
+        (xy 155.358842 76.19)
+        (xy 155.353484 76.135601)
+        (xy 155.337616 76.083292)
+        (xy 155.311849 76.035084)
+        (xy 155.277171 75.992829)
+        (xy 155.234916 75.958151)
+        (xy 155.186708 75.932384)
+        (xy 155.134399 75.916516)
+        (xy 155.08 75.911158)
+        (xy 154.38 75.911158)
+        (xy 154.325601 75.916516)
+        (xy 154.273292 75.932384)
+        (xy 154.225084 75.958151)
+        (xy 154.182829 75.992829)
+        (xy 154.148151 76.035084)
+        (xy 154.122384 76.083292)
+        (xy 154.106516 76.135601)
+        (xy 154.101158 76.19)
+        (xy 154.088842 76.19)
+        (xy 154.083484 76.135601)
+        (xy 154.067616 76.083292)
+        (xy 154.041849 76.035084)
+        (xy 154.007171 75.992829)
+        (xy 153.964916 75.958151)
+        (xy 153.916708 75.932384)
+        (xy 153.864399 75.916516)
+        (xy 153.81 75.911158)
+        (xy 153.11 75.911158)
+        (xy 153.055601 75.916516)
+        (xy 153.003292 75.932384)
+        (xy 152.955084 75.958151)
+        (xy 152.912829 75.992829)
+        (xy 152.878151 76.035084)
+        (xy 152.854111 76.08006)
+        (xy 152.848676 76.062142)
+        (xy 152.817801 76.004379)
+        (xy 152.776251 75.953749)
+        (xy 152.725621 75.912199)
+        (xy 152.667858 75.881324)
+        (xy 152.605181 75.862311)
+        (xy 152.54 75.855891)
+        (xy 152.323125 75.8575)
+        (xy 152.24 75.940625)
+        (xy 152.14 75.940625)
+        (xy 152.056875 75.8575)
+        (xy 151.84 75.855891)
+        (xy 151.774819 75.862311)
+        (xy 151.712142 75.881324)
+        (xy 151.654379 75.912199)
+        (xy 151.603749 75.953749)
+        (xy 151.562199 76.004379)
+        (xy 151.555 76.017847)
+        (xy 151.547801 76.004379)
+        (xy 151.506251 75.953749)
+        (xy 151.455621 75.912199)
+        (xy 151.397858 75.881324)
+        (xy 151.335181 75.862311)
+        (xy 151.27 75.855891)
+        (xy 151.053125 75.8575)
+        (xy 150.97 75.940625)
+        (xy 150.87 75.940625)
+        (xy 150.786875 75.8575)
+        (xy 150.57 75.855891)
+        (xy 150.504819 75.862311)
+        (xy 150.442142 75.881324)
+        (xy 150.384379 75.912199)
+        (xy 150.333749 75.953749)
+        (xy 150.292199 76.004379)
+        (xy 150.261324 76.062142)
+        (xy 150.255889 76.08006)
+        (xy 150.231849 76.035084)
+        (xy 150.197171 75.992829)
+        (xy 150.154916 75.958151)
+        (xy 150.106708 75.932384)
+        (xy 150.054399 75.916516)
+        (xy 150 75.911158)
+        (xy 149.3 75.911158)
+        (xy 149.245601 75.916516)
+        (xy 149.193292 75.932384)
+        (xy 149.145084 75.958151)
+        (xy 149.102829 75.992829)
+        (xy 149.068151 76.035084)
+        (xy 149.042384 76.083292)
+        (xy 149.026516 76.135601)
+        (xy 149.021158 76.19)
+        (xy 144.9025 76.19)
+        (xy 144.9025 73.043121)
+        (xy 153.6225 73.043121)
+        (xy 153.6225 73.156879)
+        (xy 153.644693 73.26845)
+        (xy 153.688226 73.373549)
+        (xy 153.751427 73.468135)
+        (xy 153.831865 73.548573)
+        (xy 153.926451 73.611774)
+        (xy 154.03155 73.655307)
+        (xy 154.143121 73.6775)
+        (xy 154.256879 73.6775)
+        (xy 154.36845 73.655307)
+        (xy 154.473549 73.611774)
+        (xy 154.568135 73.548573)
+        (xy 154.648573 73.468135)
+        (xy 154.711774 73.373549)
+        (xy 154.755307 73.26845)
+        (xy 154.7775 73.156879)
+        (xy 154.7775 73.09172)
+        (xy 155.97042 71.8988)
+        (xy 157.8725 71.8988)
+        (xy 157.8725 72.1012)
+        (xy 157.911986 72.299711)
+        (xy 157.989441 72.486704)
+        (xy 158.101888 72.654993)
+        (xy 158.245007 72.798112)
+        (xy 158.413296 72.910559)
+        (xy 158.600289 72.988014)
+        (xy 158.7988 73.0275)
+        (xy 159.0012 73.0275)
+        (xy 159.199711 72.988014)
+        (xy 159.386704 72.910559)
+        (xy 159.554993 72.798112)
+        (xy 159.698112 72.654993)
+        (xy 159.810559 72.486704)
+        (xy 159.888014 72.299711)
+        (xy 159.9275 72.1012)
+        (xy 159.9275 71.8988)
+        (xy 159.888014 71.700289)
+        (xy 159.810559 71.513296)
+        (xy 159.698112 71.345007)
+        (xy 159.554993 71.201888)
+        (xy 159.386704 71.089441)
+        (xy 159.199711 71.011986)
+        (xy 159.0012 70.9725)
+        (xy 158.7988 70.9725)
+        (xy 158.600289 71.011986)
+        (xy 158.413296 71.089441)
+        (xy 158.245007 71.201888)
+        (xy 158.101888 71.345007)
+        (xy 157.989441 71.513296)
+        (xy 157.911986 71.700289)
+        (xy 157.8725 71.8988)
+        (xy 155.97042 71.8988)
+        (xy 157.540634 70.328587)
+        (xy 157.555987 70.315987)
+        (xy 157.580908 70.285621)
+        (xy 157.606286 70.254699)
+        (xy 157.64366 70.184775)
+        (xy 157.651263 70.159711)
+        (xy 157.666676 70.108904)
+        (xy 157.6725 70.049769)
+        (xy 157.6725 70.049759)
+        (xy 157.674446 70.03)
+        (xy 157.6725 70.010241)
+        (xy 157.6725 67.723671)
+        (xy 157.674399 67.723484)
+        (xy 157.726708 67.707616)
+        (xy 157.774916 67.681849)
+        (xy 157.817171 67.647171)
+        (xy 157.851849 67.604916)
+        (xy 157.877616 67.556708)
+        (xy 157.893484 67.504399)
+        (xy 157.898842 67.45)
+        (xy 157.898842 66.55)
+        (xy 157.893484 66.495601)
+        (xy 157.877616 66.443292)
+        (xy 157.851849 66.395084)
+        (xy 157.817171 66.352829)
+        (xy 157.774916 66.318151)
+        (xy 157.726708 66.292384)
+        (xy 157.674399 66.276516)
+        (xy 157.6725 66.276329)
+        (xy 157.6725 66.219759)
+        (xy 157.674446 66.2)
+        (xy 157.6725 66.180241)
+        (xy 157.6725 66.180231)
+        (xy 157.666676 66.121096)
+        (xy 157.644347 66.047489)
+        (xy 157.64366 66.045224)
+        (xy 157.606285 65.975301)
+        (xy 157.568589 65.929368)
+        (xy 157.568587 65.929366)
+        (xy 157.555987 65.914013)
+        (xy 157.540634 65.901413)
+        (xy 156.5975 64.95828)
+        (xy 156.5975 64.893121)
+        (xy 156.575307 64.78155)
+        (xy 156.531774 64.676451)
+        (xy 156.468573 64.581865)
+        (xy 156.388135 64.501427)
+        (xy 156.293549 64.438226)
+        (xy 156.18845 64.394693)
+        (xy 156.076879 64.3725)
+        (xy 155.963121 64.3725)
+        (xy 155.85155 64.394693)
+        (xy 155.746451 64.438226)
+        (xy 155.651865 64.501427)
+        (xy 155.571427 64.581865)
+        (xy 155.508226 64.676451)
+        (xy 155.464693 64.78155)
+        (xy 155.4425 64.893121)
+        (xy 155.4425 65.006879)
+        (xy 155.464693 65.11845)
+        (xy 155.508226 65.223549)
+        (xy 155.571427 65.318135)
+        (xy 155.651865 65.398573)
+        (xy 155.746451 65.461774)
+        (xy 155.85155 65.505307)
+        (xy 155.963121 65.5275)
+        (xy 156.02828 65.5275)
+        (xy 156.800174 66.299395)
+        (xy 156.765084 66.318151)
+        (xy 156.722829 66.352829)
+        (xy 156.688151 66.395084)
+        (xy 156.662384 66.443292)
+        (xy 156.646516 66.495601)
+        (xy 156.641158 66.55)
+        (xy 156.641158 67.45)
+        (xy 156.646516 67.504399)
+        (xy 156.662384 67.556708)
+        (xy 156.688151 67.604916)
+        (xy 156.722829 67.647171)
+        (xy 156.765084 67.681849)
+        (xy 156.813292 67.707616)
+        (xy 156.865601 67.723484)
+        (xy 156.8675 67.723671)
+        (xy 156.867501 69.863278)
+        (xy 154.20828 72.5225)
+        (xy 154.143121 72.5225)
+        (xy 154.03155 72.544693)
+        (xy 153.926451 72.588226)
+        (xy 153.831865 72.651427)
+        (xy 153.751427 72.731865)
+        (xy 153.688226 72.826451)
+        (xy 153.644693 72.93155)
+        (xy 153.6225 73.043121)
+        (xy 144.9025 73.043121)
+        (xy 144.9025 71.8988)
+        (xy 149.8725 71.8988)
+        (xy 149.8725 72.1012)
+        (xy 149.911986 72.299711)
+        (xy 149.989441 72.486704)
+        (xy 150.101888 72.654993)
+        (xy 150.245007 72.798112)
+        (xy 150.413296 72.910559)
+        (xy 150.600289 72.988014)
+        (xy 150.7988 73.0275)
+        (xy 151.0012 73.0275)
+        (xy 151.199711 72.988014)
+        (xy 151.386704 72.910559)
+        (xy 151.554993 72.798112)
+        (xy 151.698112 72.654993)
+        (xy 151.810559 72.486704)
+        (xy 151.888014 72.299711)
+        (xy 151.9275 72.1012)
+        (xy 151.9275 71.8988)
+        (xy 151.888014 71.700289)
+        (xy 151.810559 71.513296)
+        (xy 151.698112 71.345007)
+        (xy 151.554993 71.201888)
+        (xy 151.386704 71.089441)
+        (xy 151.199711 71.011986)
+        (xy 151.0012 70.9725)
+        (xy 150.7988 70.9725)
+        (xy 150.600289 71.011986)
+        (xy 150.413296 71.089441)
+        (xy 150.245007 71.201888)
+        (xy 150.101888 71.345007)
+        (xy 149.989441 71.513296)
+        (xy 149.911986 71.700289)
+        (xy 149.8725 71.8988)
+        (xy 144.9025 71.8988)
+        (xy 144.9025 70.623562)
+        (xy 144.904446 70.603803)
+        (xy 144.9025 70.584044)
+        (xy 144.9025 70.584035)
+        (xy 144.896676 70.5249)
+        (xy 144.87366 70.449029)
+        (xy 144.836285 70.379105)
+        (xy 144.825764 70.366285)
+        (xy 144.798589 70.333172)
+        (xy 144.798587 70.33317)
+        (xy 144.785987 70.317817)
+        (xy 144.770634 70.305217)
+        (xy 144.076685 69.611269)
+        (xy 144.076685 69.54611)
+        (xy 144.054492 69.434539)
+        (xy 144.010959 69.32944)
+        (xy 143.947758 69.234854)
+        (xy 143.86732 69.154416)
+        (xy 143.772734 69.091215)
+        (xy 143.667635 69.047682)
+        (xy 143.556064 69.025489)
+        (xy 143.442306 69.025489)
+        (xy 143.330735 69.047682)
+        (xy 143.225636 69.091215)
+        (xy 143.13105 69.154416)
+        (xy 143.050612 69.234854)
+        (xy 142.987411 69.32944)
+        (xy 142.943878 69.434539)
+        (xy 142.921685 69.54611)
+        (xy 142.921685 69.659868)
+        (xy 142.943878 69.771439)
+        (xy 142.987411 69.876538)
+        (xy 143.050612 69.971124)
+        (xy 143.13105 70.051562)
+        (xy 143.131458 70.051834)
+        (xy 143.057583 70.125709)
+        (xy 142.994382 70.220295)
+        (xy 142.950849 70.325394)
+        (xy 142.928656 70.436965)
+        (xy 142.928656 70.550723)
+        (xy 142.950849 70.662294)
+        (xy 142.994382 70.767393)
+        (xy 143.053065 70.855217)
+        (xy 142.976417 70.931865)
+        (xy 142.913216 71.026451)
+        (xy 142.869683 71.13155)
+        (xy 142.84749 71.243121)
+        (xy 142.777499 71.243121)
+        (xy 142.777499 68.640954)
+        (xy 144.868453 66.55)
+        (xy 149.021158 66.55)
+        (xy 149.021158 67.45)
+        (xy 149.026516 67.504399)
+        (xy 149.042384 67.556708)
+        (xy 149.068151 67.604916)
+        (xy 149.102829 67.647171)
+        (xy 149.145084 67.681849)
+        (xy 149.193292 67.707616)
+        (xy 149.245601 67.723484)
+        (xy 149.3 67.728842)
+        (xy 150 67.728842)
+        (xy 150.054399 67.723484)
+        (xy 150.106708 67.707616)
+        (xy 150.154916 67.681849)
+        (xy 150.197171 67.647171)
+        (xy 150.231849 67.604916)
+        (xy 150.255889 67.55994)
+        (xy 150.261324 67.577858)
+        (xy 150.292199 67.635621)
+        (xy 150.333749 67.686251)
+        (xy 150.384379 67.727801)
+        (xy 150.442142 67.758676)
+        (xy 150.504819 67.777689)
+        (xy 150.57 67.784109)
+        (xy 150.786875 67.7825)
+        (xy 150.87 67.699375)
+        (xy 150.87 67.05)
+        (xy 150.97 67.05)
+        (xy 150.97 67.699375)
+        (xy 151.053125 67.7825)
+        (xy 151.27 67.784109)
+        (xy 151.335181 67.777689)
+        (xy 151.397858 67.758676)
+        (xy 151.455621 67.727801)
+        (xy 151.506251 67.686251)
+        (xy 151.547801 67.635621)
+        (xy 151.555 67.622153)
+        (xy 151.562199 67.635621)
+        (xy 151.603749 67.686251)
+        (xy 151.654379 67.727801)
+        (xy 151.712142 67.758676)
+        (xy 151.774819 67.777689)
+        (xy 151.84 67.784109)
+        (xy 152.056875 67.7825)
+        (xy 152.14 67.699375)
+        (xy 152.14 67.05)
+        (xy 151.590625 67.05)
+        (xy 151.555 67.085625)
+        (xy 151.519375 67.05)
+        (xy 150.97 67.05)
+        (xy 150.87 67.05)
+        (xy 150.85 67.05)
+        (xy 150.85 66.95)
+        (xy 150.87 66.95)
+        (xy 150.87 66.300625)
+        (xy 150.97 66.300625)
+        (xy 150.97 66.95)
+        (xy 151.519375 66.95)
+        (xy 151.555 66.914375)
+        (xy 151.590625 66.95)
+        (xy 152.14 66.95)
+        (xy 152.14 66.300625)
+        (xy 152.24 66.300625)
+        (xy 152.24 66.95)
+        (xy 152.26 66.95)
+        (xy 152.26 67.05)
+        (xy 152.24 67.05)
+        (xy 152.24 67.699375)
+        (xy 152.323125 67.7825)
+        (xy 152.54 67.784109)
+        (xy 152.605181 67.777689)
+        (xy 152.667858 67.758676)
+        (xy 152.725621 67.727801)
+        (xy 152.776251 67.686251)
+        (xy 152.817801 67.635621)
+        (xy 152.827661 67.617174)
+        (xy 152.8225 67.643121)
+        (xy 152.8225 67.756879)
+        (xy 152.844693 67.86845)
+        (xy 152.888226 67.973549)
+        (xy 152.951427 68.068135)
+        (xy 153.031865 68.148573)
+        (xy 153.126451 68.211774)
+        (xy 153.23155 68.255307)
+        (xy 153.343121 68.2775)
+        (xy 153.456879 68.2775)
+        (xy 153.56845 68.255307)
+        (xy 153.673549 68.211774)
+        (xy 153.768135 68.148573)
+        (xy 153.848573 68.068135)
+        (xy 153.911774 67.973549)
+        (xy 153.955307 67.86845)
+        (xy 153.9775 67.756879)
+        (xy 153.9775 67.671522)
+        (xy 154.007171 67.647171)
+        (xy 154.041849 67.604916)
+        (xy 154.067616 67.556708)
+        (xy 154.083484 67.504399)
+        (xy 154.088842 67.45)
+        (xy 154.088842 66.55)
+        (xy 154.101158 66.55)
+        (xy 154.101158 67.45)
+        (xy 154.106516 67.504399)
+        (xy 154.122384 67.556708)
+        (xy 154.148151 67.604916)
+        (xy 154.182829 67.647171)
+        (xy 154.225084 67.681849)
+        (xy 154.273292 67.707616)
+        (xy 154.325601 67.723484)
+        (xy 154.38 67.728842)
+        (xy 155.08 67.728842)
+        (xy 155.134399 67.723484)
+        (xy 155.186708 67.707616)
+        (xy 155.234916 67.681849)
+        (xy 155.277171 67.647171)
+        (xy 155.311849 67.604916)
+        (xy 155.337616 67.556708)
+        (xy 155.353484 67.504399)
+        (xy 155.358842 67.45)
+        (xy 155.358842 66.55)
+        (xy 155.371158 66.55)
+        (xy 155.371158 67.45)
+        (xy 155.376516 67.504399)
+        (xy 155.392384 67.556708)
+        (xy 155.418151 67.604916)
+        (xy 155.452829 67.647171)
+        (xy 155.495084 67.681849)
+        (xy 155.543292 67.707616)
+        (xy 155.595601 67.723484)
+        (xy 155.65 67.728842)
+        (xy 156.35 67.728842)
+        (xy 156.404399 67.723484)
+        (xy 156.456708 67.707616)
+        (xy 156.504916 67.681849)
+        (xy 156.547171 67.647171)
+        (xy 156.581849 67.604916)
+        (xy 156.607616 67.556708)
+        (xy 156.623484 67.504399)
+        (xy 156.628842 67.45)
+        (xy 156.628842 66.55)
+        (xy 156.623484 66.495601)
+        (xy 156.607616 66.443292)
+        (xy 156.581849 66.395084)
+        (xy 156.547171 66.352829)
+        (xy 156.504916 66.318151)
+        (xy 156.456708 66.292384)
+        (xy 156.404399 66.276516)
+        (xy 156.35 66.271158)
+        (xy 155.65 66.271158)
+        (xy 155.595601 66.276516)
+        (xy 155.543292 66.292384)
+        (xy 155.495084 66.318151)
+        (xy 155.452829 66.352829)
+        (xy 155.418151 66.395084)
+        (xy 155.392384 66.443292)
+        (xy 155.376516 66.495601)
+        (xy 155.371158 66.55)
+        (xy 155.358842 66.55)
+        (xy 155.353484 66.495601)
+        (xy 155.337616 66.443292)
+        (xy 155.311849 66.395084)
+        (xy 155.277171 66.352829)
+        (xy 155.234916 66.318151)
+        (xy 155.186708 66.292384)
+        (xy 155.134399 66.276516)
+        (xy 155.08 66.271158)
+        (xy 154.38 66.271158)
+        (xy 154.325601 66.276516)
+        (xy 154.273292 66.292384)
+        (xy 154.225084 66.318151)
+        (xy 154.182829 66.352829)
+        (xy 154.148151 66.395084)
+        (xy 154.122384 66.443292)
+        (xy 154.106516 66.495601)
+        (xy 154.101158 66.55)
+        (xy 154.088842 66.55)
+        (xy 154.083484 66.495601)
+        (xy 154.067616 66.443292)
+        (xy 154.041849 66.395084)
+        (xy 154.007171 66.352829)
+        (xy 153.964916 66.318151)
+        (xy 153.916708 66.292384)
+        (xy 153.864399 66.276516)
+        (xy 153.81 66.271158)
+        (xy 153.11 66.271158)
+        (xy 153.055601 66.276516)
+        (xy 153.003292 66.292384)
+        (xy 152.955084 66.318151)
+        (xy 152.912829 66.352829)
+        (xy 152.878151 66.395084)
+        (xy 152.854111 66.44006)
+        (xy 152.848676 66.422142)
+        (xy 152.817801 66.364379)
+        (xy 152.776251 66.313749)
+        (xy 152.725621 66.272199)
+        (xy 152.667858 66.241324)
+        (xy 152.605181 66.222311)
+        (xy 152.54 66.215891)
+        (xy 152.323125 66.2175)
+        (xy 152.24 66.300625)
+        (xy 152.14 66.300625)
+        (xy 152.056875 66.2175)
+        (xy 151.84 66.215891)
+        (xy 151.774819 66.222311)
+        (xy 151.712142 66.241324)
+        (xy 151.654379 66.272199)
+        (xy 151.603749 66.313749)
+        (xy 151.562199 66.364379)
+        (xy 151.555 66.377847)
+        (xy 151.547801 66.364379)
+        (xy 151.506251 66.313749)
+        (xy 151.455621 66.272199)
+        (xy 151.397858 66.241324)
+        (xy 151.335181 66.222311)
+        (xy 151.27 66.215891)
+        (xy 151.053125 66.2175)
+        (xy 150.97 66.300625)
+        (xy 150.87 66.300625)
+        (xy 150.786875 66.2175)
+        (xy 150.57 66.215891)
+        (xy 150.504819 66.222311)
+        (xy 150.442142 66.241324)
+        (xy 150.384379 66.272199)
+        (xy 150.333749 66.313749)
+        (xy 150.292199 66.364379)
+        (xy 150.261324 66.422142)
+        (xy 150.255889 66.44006)
+        (xy 150.231849 66.395084)
+        (xy 150.197171 66.352829)
+        (xy 150.154916 66.318151)
+        (xy 150.106708 66.292384)
+        (xy 150.054399 66.276516)
+        (xy 150 66.271158)
+        (xy 149.3 66.271158)
+        (xy 149.245601 66.276516)
+        (xy 149.193292 66.292384)
+        (xy 149.145084 66.318151)
+        (xy 149.102829 66.352829)
+        (xy 149.068151 66.395084)
+        (xy 149.042384 66.443292)
+        (xy 149.026516 66.495601)
+        (xy 149.021158 66.55)
+        (xy 144.868453 66.55)
+        (xy 152.527533 58.890921)
+        (xy 158.89182 58.890921)
+        (xy 158.911579 58.892867)
+        (xy 158.931338 58.890921)
+        (xy 158.931348 58.890921)
+        (xy 158.990483 58.885097)
+        (xy 159.066354 58.862081)
+        (xy 159.136278 58.824706)
+        (xy 159.197566 58.774408)
+        (xy 159.21017 58.75905)
+        (xy 160.190634 57.778587)
+        (xy 160.205987 57.765987)
+        (xy 160.223705 57.744398)
+        (xy 160.256286 57.704699)
+        (xy 160.29366 57.634775)
+        (xy 160.29611 57.626698)
+        (xy 160.316676 57.558904)
+        (xy 160.3225 57.499769)
+        (xy 160.3225 57.499759)
+        (xy 160.324446 57.48)
+        (xy 160.3225 57.460241)
+        (xy 160.3225 54.708426)
+        (xy 160.412388 54.671193)
+        (xy 160.582643 54.557433)
+        (xy 160.727433 54.412643)
+        (xy 160.841193 54.242388)
+        (xy 160.919553 54.053211)
+        (xy 160.9595 53.852382)
+        (xy 160.9595 53.647618)
+        (xy 161.4205 53.647618)
+        (xy 161.4205 53.852382)
+        (xy 161.460447 54.053211)
+        (xy 161.538807 54.242388)
+        (xy 161.652567 54.412643)
+        (xy 161.797357 54.557433)
+        (xy 161.967612 54.671193)
+        (xy 162.156789 54.749553)
+        (xy 162.357618 54.7895)
+        (xy 162.562382 54.7895)
+        (xy 162.763211 54.749553)
+        (xy 162.952388 54.671193)
+        (xy 163.122643 54.557433)
+        (xy 163.267433 54.412643)
+        (xy 163.381193 54.242388)
+        (xy 163.459553 54.053211)
+        (xy 163.4995 53.852382)
+        (xy 163.4995 53.647618)
+        (xy 163.459553 53.446789)
+        (xy 163.381193 53.257612)
+        (xy 163.267433 53.087357)
+        (xy 163.168076 52.988)
+        (xy 163.959158 52.988)
+        (xy 163.959158 54.512)
+        (xy 163.964516 54.566399)
+        (xy 163.980384 54.618708)
+        (xy 164.006151 54.666916)
+        (xy 164.040829 54.709171)
+        (xy 164.083084 54.743849)
+        (xy 164.131292 54.769616)
+        (xy 164.183601 54.785484)
+        (xy 164.238 54.790842)
+        (xy 165.762 54.790842)
+        (xy 165.816399 54.785484)
+        (xy 165.868708 54.769616)
+        (xy 165.916916 54.743849)
+        (xy 165.959171 54.709171)
+        (xy 165.993849 54.666916)
+        (xy 166.019616 54.618708)
+        (xy 166.035484 54.566399)
+        (xy 166.040842 54.512)
+        (xy 166.040842 52.988)
+        (xy 166.035484 52.933601)
+        (xy 166.019616 52.881292)
+        (xy 165.993849 52.833084)
+        (xy 165.959171 52.790829)
+        (xy 165.916916 52.756151)
+        (xy 165.868708 52.730384)
+        (xy 165.816399 52.714516)
+        (xy 165.762 52.709158)
+        (xy 164.238 52.709158)
+        (xy 164.183601 52.714516)
+        (xy 164.131292 52.730384)
+        (xy 164.083084 52.756151)
+        (xy 164.040829 52.790829)
+        (xy 164.006151 52.833084)
+        (xy 163.980384 52.881292)
+        (xy 163.964516 52.933601)
+        (xy 163.959158 52.988)
+        (xy 163.168076 52.988)
+        (xy 163.122643 52.942567)
+        (xy 162.952388 52.828807)
+        (xy 162.763211 52.750447)
+        (xy 162.562382 52.7105)
+        (xy 162.357618 52.7105)
+        (xy 162.156789 52.750447)
+        (xy 161.967612 52.828807)
+        (xy 161.797357 52.942567)
+        (xy 161.652567 53.087357)
+        (xy 161.538807 53.257612)
+        (xy 161.460447 53.446789)
+        (xy 161.4205 53.647618)
+        (xy 160.9595 53.647618)
+        (xy 160.919553 53.446789)
+        (xy 160.841193 53.257612)
+        (xy 160.727433 53.087357)
+        (xy 160.582643 52.942567)
+        (xy 160.412388 52.828807)
+        (xy 160.223211 52.750447)
+        (xy 160.022382 52.7105)
+        (xy 159.817618 52.7105)
+        (xy 159.616789 52.750447)
+        (xy 159.427612 52.828807)
+        (xy 159.257357 52.942567)
+        (xy 159.112567 53.087357)
+        (xy 158.998807 53.257612)
+        (xy 158.920447 53.446789)
+        (xy 158.8805 53.647618)
+        (xy 158.8805 53.852382)
+        (xy 158.920447 54.053211)
+        (xy 158.998807 54.242388)
+        (xy 159.112567 54.412643)
+        (xy 159.257357 54.557433)
+        (xy 159.427612 54.671193)
+        (xy 159.5175 54.708426)
+        (xy 159.517501 57.313278)
+        (xy 158.744859 58.085921)
+        (xy 157.32171 58.085921)
+        (xy 157.650634 57.756998)
+        (xy 157.665987 57.744398)
+        (xy 157.682154 57.724699)
+        (xy 157.716285 57.683111)
+        (xy 157.742554 57.633964)
+        (xy 157.75366 57.613186)
+        (xy 157.776676 57.537315)
+        (xy 157.7825 57.47818)
+        (xy 157.7825 57.478171)
+        (xy 157.784446 57.458412)
+        (xy 157.7825 57.438653)
+        (xy 157.7825 54.708426)
+        (xy 157.872388 54.671193)
+        (xy 158.042643 54.557433)
+        (xy 158.187433 54.412643)
+        (xy 158.301193 54.242388)
+        (xy 158.379553 54.053211)
+        (xy 158.4195 53.852382)
+        (xy 158.4195 53.647618)
+        (xy 158.379553 53.446789)
+        (xy 158.301193 53.257612)
+        (xy 158.187433 53.087357)
+        (xy 158.042643 52.942567)
+        (xy 157.872388 52.828807)
+        (xy 157.683211 52.750447)
+        (xy 157.482382 52.7105)
+        (xy 157.277618 52.7105)
+        (xy 157.076789 52.750447)
+        (xy 156.887612 52.828807)
+        (xy 156.717357 52.942567)
+        (xy 156.572567 53.087357)
+        (xy 156.458807 53.257612)
+        (xy 156.380447 53.446789)
+        (xy 156.3405 53.647618)
+        (xy 156.3405 53.852382)
+        (xy 156.380447 54.053211)
+        (xy 156.458807 54.242388)
+        (xy 156.572567 54.412643)
+        (xy 156.717357 54.557433)
+        (xy 156.887612 54.671193)
+        (xy 156.9775 54.708426)
+        (xy 156.977501 57.291689)
+        (xy 156.633281 57.63591)
+        (xy 154.62171 57.63591)
+        (xy 155.110634 57.146987)
+        (xy 155.125987 57.134387)
+        (xy 155.138589 57.119032)
+        (xy 155.176286 57.073099)
+        (xy 155.21366 57.003175)
+        (xy 155.221817 56.976285)
+        (xy 155.236676 56.927304)
+        (xy 155.2425 56.868169)
+        (xy 155.2425 56.868159)
+        (xy 155.244446 56.8484)
+        (xy 155.2425 56.828641)
+        (xy 155.2425 54.708426)
+        (xy 155.332388 54.671193)
+        (xy 155.502643 54.557433)
+        (xy 155.647433 54.412643)
+        (xy 155.761193 54.242388)
+        (xy 155.839553 54.053211)
+        (xy 155.8795 53.852382)
+        (xy 155.8795 53.647618)
+        (xy 155.839553 53.446789)
+        (xy 155.761193 53.257612)
+        (xy 155.647433 53.087357)
+        (xy 155.502643 52.942567)
+        (xy 155.332388 52.828807)
+        (xy 155.143211 52.750447)
+        (xy 154.942382 52.7105)
+        (xy 154.737618 52.7105)
+        (xy 154.536789 52.750447)
+        (xy 154.347612 52.828807)
+        (xy 154.177357 52.942567)
+        (xy 154.032567 53.087357)
+        (xy 153.918807 53.257612)
+        (xy 153.840447 53.446789)
+        (xy 153.8005 53.647618)
+        (xy 153.8005 53.852382)
+        (xy 153.840447 54.053211)
+        (xy 153.918807 54.242388)
+        (xy 154.032567 54.412643)
+        (xy 154.177357 54.557433)
+        (xy 154.347612 54.671193)
+        (xy 154.4375 54.708426)
+        (xy 154.437501 56.681678)
+        (xy 153.933281 57.185899)
+        (xy 152.323322 57.185899)
+        (xy 152.570634 56.938587)
+        (xy 152.585987 56.925987)
+        (xy 152.612801 56.893315)
+        (xy 152.636285 56.864699)
+        (xy 152.663377 56.814013)
+        (xy 152.67366 56.794775)
+        (xy 152.696676 56.718904)
+        (xy 152.7025 56.659769)
+        (xy 152.7025 56.65976)
+        (xy 152.704446 56.640001)
+        (xy 152.7025 56.620242)
+        (xy 152.7025 54.708426)
+        (xy 152.792388 54.671193)
+        (xy 152.962643 54.557433)
+        (xy 153.107433 54.412643)
+        (xy 153.221193 54.242388)
+        (xy 153.299553 54.053211)
+        (xy 153.3395 53.852382)
+        (xy 153.3395 53.647618)
+        (xy 153.299553 53.446789)
+        (xy 153.221193 53.257612)
+        (xy 153.107433 53.087357)
+        (xy 152.962643 52.942567)
+        (xy 152.792388 52.828807)
+        (xy 152.603211 52.750447)
+        (xy 152.402382 52.7105)
+        (xy 152.197618 52.7105)
+        (xy 151.996789 52.750447)
+        (xy 151.807612 52.828807)
+        (xy 151.637357 52.942567)
+        (xy 151.492567 53.087357)
+        (xy 151.378807 53.257612)
+        (xy 151.300447 53.446789)
+        (xy 151.2605 53.647618)
+        (xy 151.2605 53.852382)
+        (xy 151.300447 54.053211)
+        (xy 151.378807 54.242388)
+        (xy 151.492567 54.412643)
+        (xy 151.637357 54.557433)
+        (xy 151.807612 54.671193)
+        (xy 151.8975 54.708426)
+        (xy 151.897501 56.473278)
+        (xy 151.267374 57.103406)
+        (xy 151.267369 57.10341)
+        (xy 142.099374 66.271406)
+        (xy 142.099368 66.271411)
+        (xy 140.754333 67.616447)
+        (xy 140.73898 67.629047)
+        (xy 140.72638 67.6444)
+        (xy 140.726377 67.644403)
+        (xy 140.688681 67.690336)
+        (xy 140.663056 67.738278)
+        (xy 140.651307 67.760259)
+        (xy 140.632104 67.823563)
+        (xy 140.628291 67.836131)
+        (xy 140.62052 67.915034)
+        (xy 140.622467 67.934803)
+        (xy 140.622466 72.274078)
+        (xy 139.274044 73.622501)
+        (xy 139.032919 73.622501)
+        (xy 139.055307 73.56845)
+        (xy 139.0775 73.456879)
+        (xy 139.0775 73.343121)
+        (xy 139.055307 73.23155)
+        (xy 139.011774 73.126451)
+        (xy 138.948573 73.031865)
+        (xy 138.868135 72.951427)
+        (xy 138.773549 72.888226)
+        (xy 138.725082 72.868151)
+        (xy 138.782426 72.8375)
+        (xy 138.856879 72.8375)
+        (xy 138.96845 72.815307)
+        (xy 139.073549 72.771774)
+        (xy 139.168135 72.708573)
+        (xy 139.248573 72.628135)
+        (xy 139.311774 72.533549)
+        (xy 139.355307 72.42845)
+        (xy 139.3775 72.316879)
+        (xy 139.3775 72.203121)
+        (xy 139.355307 72.09155)
+        (xy 139.311774 71.986451)
+        (xy 139.248573 71.891865)
+        (xy 139.168135 71.811427)
+        (xy 139.073549 71.748226)
+        (xy 138.96845 71.704693)
+        (xy 138.856879 71.6825)
+        (xy 138.743121 71.6825)
+        (xy 138.63155 71.704693)
+        (xy 138.526451 71.748226)
+        (xy 138.431865 71.811427)
+        (xy 138.351427 71.891865)
+        (xy 138.288226 71.986451)
+        (xy 138.244693 72.09155)
+        (xy 138.243509 72.0975)
+        (xy 138.146875 72.0975)
+        (xy 138.099375 72.05)
+        (xy 137.3 72.05)
+        (xy 137.3 72.07)
+        (xy 137.2 72.07)
+        (xy 137.2 72.05)
+        (xy 136.400625 72.05)
+        (xy 136.3175 72.133125)
+        (xy 136.315891 72.15)
+        (xy 136.322311 72.215181)
+        (xy 136.341324 72.277858)
+        (xy 136.372199 72.335621)
+        (xy 136.372534 72.336029)
+        (xy 136.371158 72.35)
+        (xy 136.371158 72.5975)
+        (xy 134.094755 72.5975)
+        (xy 134.074996 72.595554)
+        (xy 134.055237 72.5975)
+        (xy 134.055227 72.5975)
+        (xy 133.996092 72.603324)
+        (xy 133.947216 72.618151)
+        (xy 133.92022 72.62634)
+        (xy 133.850297 72.663715)
+        (xy 133.804364 72.701411)
+        (xy 133.804362 72.701413)
+        (xy 133.789009 72.714013)
+        (xy 133.776409 72.729366)
+        (xy 131.904369 74.601407)
+        (xy 131.889011 74.614011)
+        (xy 131.838713 74.6753)
+        (xy 131.801338 74.745224)
+        (xy 131.778322 74.821095)
+        (xy 131.772498 74.88023)
+        (xy 131.772498 74.880239)
+        (xy 131.770552 74.899998)
+        (xy 131.772498 74.919757)
+        (xy 131.772499 76.50828)
+        (xy 129.57828 78.7025)
+        (xy 129.513121 78.7025)
+        (xy 129.40155 78.724693)
+        (xy 129.296451 78.768226)
+        (xy 129.201865 78.831427)
+        (xy 129.121427 78.911865)
+        (xy 129.058226 79.006451)
+        (xy 129.014693 79.11155)
+        (xy 128.9925 79.223121)
+        (xy 128.310743 79.223121)
+        (xy 129.97882 77.555045)
+        (xy 129.993224 77.543224)
+        (xy 130.040398 77.485742)
+        (xy 130.075452 77.420162)
+        (xy 130.091335 77.367801)
+        (xy 130.097037 77.349004)
+        (xy 130.097738 77.341881)
+        (xy 130.1025 77.293539)
+        (xy 130.1025 77.293532)
+        (xy 130.104325 77.275001)
+        (xy 130.1025 77.25647)
+        (xy 130.1025 74.159006)
+        (xy 130.181472 74.211774)
+        (xy 130.286571 74.255307)
+        (xy 130.398142 74.2775)
+        (xy 130.5119 74.2775)
+        (xy 130.623471 74.255307)
+        (xy 130.63119 74.25211)
+        (xy 130.551435 74.331865)
+        (xy 130.488234 74.426451)
+        (xy 130.444701 74.53155)
+        (xy 130.422508 74.643121)
+        (xy 130.422508 74.756879)
+        (xy 130.444701 74.86845)
+        (xy 130.488234 74.973549)
+        (xy 130.551435 75.068135)
+        (xy 130.631873 75.148573)
+        (xy 130.726459 75.211774)
+        (xy 130.831558 75.255307)
+        (xy 130.943129 75.2775)
+        (xy 131.056887 75.2775)
+        (xy 131.168458 75.255307)
+        (xy 131.273557 75.211774)
+        (xy 131.368143 75.148573)
+        (xy 131.448581 75.068135)
+        (xy 131.511782 74.973549)
+        (xy 131.555315 74.86845)
+        (xy 131.577508 74.756879)
+        (xy 131.577508 74.692952)
+        (xy 131.585994 74.685988)
+        (xy 131.600633 74.668151)
+        (xy 131.636293 74.6247)
+        (xy 131.673667 74.554776)
+        (xy 131.676564 74.545225)
+        (xy 131.696683 74.478905)
+        (xy 131.702507 74.41977)
+        (xy 131.702507 74.41976)
+        (xy 131.704453 74.400001)
+        (xy 131.702507 74.380242)
+        (xy 131.702507 73.639743)
+        (xy 131.704453 73.619984)
+        (xy 131.704273 73.618151)
+        (xy 131.702507 73.600224)
+        (xy 131.702507 73.600215)
+        (xy 131.696683 73.54108)
+        (xy 131.673667 73.465209)
+        (xy 131.636292 73.395285)
+        (xy 131.625265 73.381849)
+        (xy 131.598596 73.349352)
+        (xy 131.598594 73.34935)
+        (xy 131.585994 73.333997)
+        (xy 131.570642 73.321398)
+        (xy 131.1525 72.903257)
+        (xy 131.1525 70.378842)
+        (xy 131.4 70.378842)
+        (xy 131.454399 70.373484)
+        (xy 131.5 70.359651)
+        (xy 131.545601 70.373484)
+        (xy 131.6 70.378842)
+        (xy 131.9 70.378842)
+        (xy 131.954399 70.373484)
+        (xy 132 70.359651)
+        (xy 132.045601 70.373484)
+        (xy 132.1 70.378842)
+        (xy 132.251937 70.378842)
+        (xy 132.10828 70.5225)
+        (xy 132.043121 70.5225)
+        (xy 131.93155 70.544693)
+        (xy 131.826451 70.588226)
+        (xy 131.731865 70.651427)
+        (xy 131.651427 70.731865)
+        (xy 131.588226 70.826451)
+        (xy 131.544693 70.93155)
+        (xy 131.5225 71.043121)
+        (xy 131.5225 71.156879)
+        (xy 131.544693 71.26845)
+        (xy 131.588226 71.373549)
+        (xy 131.651427 71.468135)
+        (xy 131.731865 71.548573)
+        (xy 131.826451 71.611774)
+        (xy 131.93155 71.655307)
+        (xy 132.043121 71.6775)
+        (xy 132.156879 71.6775)
+        (xy 132.26845 71.655307)
+        (xy 132.373549 71.611774)
+        (xy 132.468135 71.548573)
+        (xy 132.548573 71.468135)
+        (xy 132.611774 71.373549)
+        (xy 132.655307 71.26845)
+        (xy 132.6775 71.156879)
+        (xy 132.6775 71.09172)
+        (xy 132.847501 70.92172)
+        (xy 132.847501 71.183278)
+        (xy 132.00828 72.0225)
+        (xy 131.943121 72.0225)
+        (xy 131.83155 72.044693)
+        (xy 131.726451 72.088226)
+        (xy 131.631865 72.151427)
+        (xy 131.551427 72.231865)
+        (xy 131.488226 72.326451)
+        (xy 131.444693 72.43155)
+        (xy 131.4225 72.543121)
+        (xy 131.4225 72.656879)
+        (xy 131.444693 72.76845)
+        (xy 131.488226 72.873549)
+        (xy 131.551427 72.968135)
+        (xy 131.631865 73.048573)
+        (xy 131.726451 73.111774)
+        (xy 131.83155 73.155307)
+        (xy 131.943121 73.1775)
+        (xy 132.056879 73.1775)
+        (xy 132.16845 73.155307)
+        (xy 132.273549 73.111774)
+        (xy 132.368135 73.048573)
+        (xy 132.448573 72.968135)
+        (xy 132.511774 72.873549)
+        (xy 132.555307 72.76845)
+        (xy 132.5775 72.656879)
+        (xy 132.5775 72.59172)
+        (xy 133.31922 71.85)
+        (xy 136.315891 71.85)
+        (xy 136.3175 71.866875)
+        (xy 136.400625 71.95)
+        (xy 137.2 71.95)
+        (xy 137.2 71.93)
+        (xy 137.3 71.93)
+        (xy 137.3 71.95)
+        (xy 138.099375 71.95)
+        (xy 138.1825 71.866875)
+        (xy 138.184109 71.85)
+        (xy 138.177689 71.784819)
+        (xy 138.158676 71.722142)
+        (xy 138.134814 71.6775)
+        (xy 138.156879 71.6775)
+        (xy 138.26845 71.655307)
+        (xy 138.373549 71.611774)
+        (xy 138.468135 71.548573)
+        (xy 138.548573 71.468135)
+        (xy 138.611774 71.373549)
+        (xy 138.655307 71.26845)
+        (xy 138.6775 71.156879)
+        (xy 138.6775 71.043121)
+        (xy 138.655307 70.93155)
+        (xy 138.611774 70.826451)
+        (xy 138.548573 70.731865)
+        (xy 138.468135 70.651427)
+        (xy 138.373549 70.588226)
+        (xy 138.26845 70.544693)
+        (xy 138.156879 70.5225)
+        (xy 138.043121 70.5225)
+        (xy 137.93155 70.544693)
+        (xy 137.826451 70.588226)
+        (xy 137.731865 70.651427)
+        (xy 137.651427 70.731865)
+        (xy 137.588226 70.826451)
+        (xy 137.544693 70.93155)
+        (xy 137.5225 71.043121)
+        (xy 137.5225 71.071158)
+        (xy 136.65 71.071158)
+        (xy 136.595601 71.076516)
+        (xy 136.543292 71.092384)
+        (xy 136.495084 71.118151)
+        (xy 136.452829 71.152829)
+        (xy 136.418151 71.195084)
+        (xy 136.392384 71.243292)
+        (xy 136.376516 71.295601)
+        (xy 136.371158 71.35)
+        (xy 136.371158 71.65)
+        (xy 136.372534 71.663971)
+        (xy 136.372199 71.664379)
+        (xy 136.341324 71.722142)
+        (xy 136.322311 71.784819)
+        (xy 136.315891 71.85)
+        (xy 133.31922 71.85)
+        (xy 133.520634 71.648587)
+        (xy 133.535987 71.635987)
+        (xy 133.554238 71.613749)
+        (xy 133.586285 71.574699)
+        (xy 133.62366 71.504776)
+        (xy 133.634775 71.468135)
+        (xy 133.646676 71.428904)
+        (xy 133.6525 71.369769)
+        (xy 133.6525 71.369759)
+        (xy 133.654446 71.35)
+        (xy 133.6525 71.330241)
+        (xy 133.6525 70.378842)
+        (xy 133.9 70.378842)
+        (xy 133.954399 70.373484)
+        (xy 134 70.359651)
+        (xy 134.045601 70.373484)
+        (xy 134.1 70.378842)
+        (xy 134.4 70.378842)
+        (xy 134.454399 70.373484)
+        (xy 134.5 70.359651)
+        (xy 134.545601 70.373484)
+        (xy 134.6 70.378842)
+        (xy 134.9 70.378842)
+        (xy 134.954399 70.373484)
+        (xy 135 70.359651)
+        (xy 135.045601 70.373484)
+        (xy 135.1 70.378842)
+        (xy 135.4 70.378842)
+        (xy 135.454399 70.373484)
+        (xy 135.506708 70.357616)
+        (xy 135.554916 70.331849)
+        (xy 135.597171 70.297171)
+        (xy 135.631849 70.254916)
+        (xy 135.657616 70.206708)
+        (xy 135.673484 70.154399)
+        (xy 135.678842 70.1)
+        (xy 135.678842 69.537693)
+        (xy 135.696676 69.478904)
+        (xy 135.7025 69.419769)
+        (xy 135.7025 69.419758)
+        (xy 135.704446 69.4)
+        (xy 135.7025 69.380241)
+        (xy 135.7025 68.7025)
+        (xy 135.73328 68.7025)
+        (xy 136.2225 69.19172)
+        (xy 136.2225 69.256879)
+        (xy 136.244693 69.36845)
+        (xy 136.288226 69.473549)
+        (xy 136.351427 69.568135)
+        (xy 136.431865 69.648573)
+        (xy 136.526451 69.711774)
+        (xy 136.63155 69.755307)
+        (xy 136.743121 69.7775)
+        (xy 136.856879 69.7775)
+        (xy 136.96845 69.755307)
+        (xy 137.073549 69.711774)
+        (xy 137.168135 69.648573)
+        (xy 137.248573 69.568135)
+        (xy 137.263653 69.545566)
+        (xy 137.315568 69.580255)
+        (xy 137.420667 69.623788)
+        (xy 137.532238 69.645981)
+        (xy 137.645996 69.645981)
+        (xy 137.757567 69.623788)
+        (xy 137.862666 69.580255)
+        (xy 137.957252 69.517054)
+        (xy 138.03769 69.436616)
+        (xy 138.100891 69.34203)
+        (xy 138.144424 69.236931)
+        (xy 138.166617 69.12536)
+        (xy 138.166617 69.0775)
+        (xy 138.256879 69.0775)
+        (xy 138.36845 69.055307)
+        (xy 138.473549 69.011774)
+        (xy 138.568135 68.948573)
+        (xy 138.648573 68.868135)
+        (xy 138.711774 68.773549)
+        (xy 138.755307 68.66845)
+        (xy 138.7775 68.556879)
+        (xy 138.7775 68.443121)
+        (xy 138.755307 68.33155)
+        (xy 138.711774 68.226451)
+        (xy 138.648573 68.131865)
+        (xy 138.568135 68.051427)
+        (xy 138.473549 67.988226)
+        (xy 138.36845 67.944693)
+        (xy 138.256879 67.9225)
+        (xy 138.191721 67.9225)
+        (xy 137.57172 67.3025)
+        (xy 138.03863 67.3025)
+        (xy 138.732189 67.99606)
+        (xy 138.732189 68.061218)
+        (xy 138.754382 68.172789)
+        (xy 138.797915 68.277888)
+        (xy 138.861116 68.372474)
+        (xy 138.941554 68.452912)
+        (xy 139.03614 68.516113)
+        (xy 139.141239 68.559646)
+        (xy 139.25281 68.581839)
+        (xy 139.366568 68.581839)
+        (xy 139.478139 68.559646)
+        (xy 139.583238 68.516113)
+        (xy 139.677824 68.452912)
+        (xy 139.758262 68.372474)
+        (xy 139.821463 68.277888)
+        (xy 139.864996 68.172789)
+        (xy 139.887189 68.061218)
+        (xy 139.887189 67.94746)
+        (xy 139.885927 67.941113)
+        (xy 139.943121 67.95249)
+        (xy 140.056879 67.95249)
+        (xy 140.16845 67.930297)
+        (xy 140.273549 67.886764)
+        (xy 140.368135 67.823563)
+        (xy 140.448573 67.743125)
+        (xy 140.511774 67.648539)
+        (xy 140.555307 67.54344)
+        (xy 140.5775 67.431869)
+        (xy 140.5775 67.318111)
+        (xy 140.555307 67.20654)
+        (xy 140.511774 67.101441)
+        (xy 140.448573 67.006855)
+        (xy 140.368135 66.926417)
+        (xy 140.273549 66.863216)
+        (xy 140.16845 66.819683)
+        (xy 140.056879 66.79749)
+        (xy 139.991721 66.79749)
+        (xy 139.37359 66.17936)
+        (xy 139.360986 66.164002)
+        (xy 139.299698 66.113704)
+        (xy 139.229774 66.076329)
+        (xy 139.153903 66.053313)
+        (xy 139.094768 66.047489)
+        (xy 139.094758 66.047489)
+        (xy 139.074999 66.045543)
+        (xy 139.05524 66.047489)
+        (xy 133.333358 66.047489)
+        (xy 133.313599 66.045543)
+        (xy 133.29384 66.047489)
+        (xy 133.293831 66.047489)
+        (xy 133.234696 66.053313)
+        (xy 133.158825 66.076329)
+        (xy 133.131984 66.090676)
+        (xy 133.088901 66.113704)
+        (xy 133.042968 66.1514)
+        (xy 133.042966 66.151402)
+        (xy 133.027613 66.164002)
+        (xy 133.015013 66.179355)
+        (xy 130.979367 68.215002)
+        (xy 130.964014 68.227602)
+        (xy 130.951414 68.242955)
+        (xy 130.951411 68.242958)
+        (xy 130.913715 68.288891)
+        (xy 130.880804 68.350464)
+        (xy 130.876341 68.358814)
+        (xy 130.853421 68.434371)
+        (xy 130.853325 68.434686)
+        (xy 130.845554 68.513589)
+        (xy 130.847501 68.533358)
+        (xy 130.847501 68.621158)
+        (xy 130.6 68.621158)
+        (xy 130.545601 68.626516)
+        (xy 130.5 68.640349)
+        (xy 130.454399 68.626516)
+        (xy 130.4 68.621158)
+        (xy 130.1 68.621158)
+        (xy 130.045601 68.626516)
+        (xy 130 68.640349)
+        (xy 129.954399 68.626516)
+        (xy 129.9 68.621158)
+        (xy 129.6 68.621158)
+        (xy 129.545601 68.626516)
+        (xy 129.5 68.640349)
+        (xy 129.454399 68.626516)
+        (xy 129.402789 68.621433)
+        (xy 132.909244 65.114979)
+        (xy 132.934877 65.132106)
+        (xy 133.167367 65.228406)
+        (xy 133.414177 65.2775)
+        (xy 133.665823 65.2775)
+        (xy 133.912633 65.228406)
+        (xy 134.145123 65.132106)
+        (xy 134.354359 64.992299)
+        (xy 134.532299 64.814359)
+        (xy 134.672106 64.605123)
+        (xy 134.768406 64.372633)
+        (xy 134.81 64.163528)
+        (xy 134.851594 64.372633)
+        (xy 134.947894 64.605123)
+        (xy 135.087701 64.814359)
+        (xy 135.265641 64.992299)
+        (xy 135.474877 65.132106)
+        (xy 135.707367 65.228406)
+        (xy 135.954177 65.2775)
+        (xy 136.205823 65.2775)
+        (xy 136.452633 65.228406)
+        (xy 136.685123 65.132106)
+        (xy 136.894359 64.992299)
+        (xy 137.072299 64.814359)
+        (xy 137.212106 64.605123)
+        (xy 137.308406 64.372633)
+        (xy 137.3575 64.125823)
+        (xy 137.3575 63.874177)
+        (xy 137.308406 63.627367)
+        (xy 137.212106 63.394877)
+        (xy 137.072299 63.185641)
+        (xy 136.894359 63.007701)
+        (xy 136.685123 62.867894)
+        (xy 136.452633 62.771594)
+        (xy 136.205823 62.7225)
+        (xy 135.954177 62.7225)
+        (xy 135.707367 62.771594)
+        (xy 135.474877 62.867894)
+        (xy 135.265641 63.007701)
+        (xy 135.087701 63.185641)
+        (xy 134.947894 63.394877)
+        (xy 134.851594 63.627367)
+        (xy 134.81 63.836472)
+        (xy 134.768406 63.627367)
+        (xy 134.672106 63.394877)
+        (xy 134.532299 63.185641)
+        (xy 134.354359 63.007701)
+        (xy 134.145123 62.867894)
+        (xy 133.912633 62.771594)
+        (xy 133.665823 62.7225)
+        (xy 133.414177 62.7225)
+        (xy 133.167367 62.771594)
+        (xy 132.934877 62.867894)
+        (xy 132.725641 63.007701)
+        (xy 132.547701 63.185641)
+        (xy 132.407894 63.394877)
+        (xy 132.311594 63.627367)
+        (xy 132.298788 63.691747)
+        (xy 132.238006 63.489982)
+        (xy 132.114718 63.258258)
+        (xy 132.111865 63.253987)
+        (xy 131.922651 63.148059)
+        (xy 131.070711 64)
+        (xy 131.084853 64.014142)
+        (xy 131.014142 64.084853)
+        (xy 131 64.070711)
+        (xy 130.148059 64.922651)
+        (xy 130.253987 65.111865)
+        (xy 130.485235 65.23604)
+        (xy 130.736266 65.312715)
+        (xy 130.997432 65.338943)
+        (xy 131.258696 65.313717)
+        (xy 131.510018 65.238006)
+        (xy 131.741742 65.114718)
+        (xy 131.746013 65.111865)
+        (xy 131.85194 64.922653)
+        (xy 131.907535 64.978248)
+        (xy 128.479367 68.406415)
+        (xy 128.464014 68.419015)
+        (xy 128.451414 68.434368)
+        (xy 128.451411 68.434371)
+        (xy 128.413715 68.480304)
+        (xy 128.389986 68.524698)
+        (xy 128.376341 68.550227)
+        (xy 128.365865 68.58476)
+        (xy 128.3 68.650625)
+        (xy 128.3 69.45)
+        (xy 128.32 69.45)
+        (xy 128.32 69.55)
+        (xy 128.3 69.55)
+        (xy 128.3 70.349375)
+        (xy 128.383125 70.4325)
+        (xy 128.4 70.434109)
+        (xy 128.465181 70.427689)
+        (xy 128.527858 70.408676)
+        (xy 128.585621 70.377801)
+        (xy 128.586029 70.377466)
+        (xy 128.6 70.378842)
+        (xy 128.872501 70.378842)
+        (xy 128.872501 70.381453)
+        (xy 128.870674 70.400001)
+        (xy 128.877963 70.474003)
+        (xy 128.8975 70.53841)
+        (xy 128.897501 77.002933)
+        (xy 124.246185 81.654251)
+        (xy 124.231776 81.666076)
+        (xy 124.184602 81.723559)
+        (xy 124.151233 81.785987)
+        (xy 124.149548 81.789139)
+        (xy 124.127963 81.860298)
+        (xy 124.120674 81.9343)
+        (xy 124.1225 81.952839)
+        (xy 124.122501 86.457881)
+        (xy 124.103324 86.521097)
+        (xy 124.0975 86.580232)
+        (xy 124.097501 87.44938)
+        (xy 124.03633 87.510551)
+        (xy 123.971172 87.510551)
+        (xy 123.859601 87.532744)
+        (xy 123.754502 87.576277)
+        (xy 123.659916 87.639478)
+        (xy 123.579478 87.719916)
+        (xy 123.516277 87.814502)
+        (xy 123.472744 87.919601)
+        (xy 123.450551 88.031172)
+        (xy 116.875771 88.031172)
+        (xy 116.878842 88)
+        (xy 116.878842 86.1)
+        (xy 117.665891 86.1)
+        (xy 117.672311 86.165181)
+        (xy 117.691324 86.227858)
+        (xy 117.722199 86.285621)
+        (xy 117.763749 86.336251)
+        (xy 117.814379 86.377801)
+        (xy 117.872142 86.408676)
+        (xy 117.934819 86.427689)
+        (xy 118 86.434109)
+        (xy 118.866875 86.4325)
+        (xy 118.95 86.349375)
+        (xy 118.95 85.55)
+        (xy 119.05 85.55)
+        (xy 119.05 86.349375)
+        (xy 119.133125 86.4325)
+        (xy 120 86.434109)
+        (xy 120.065181 86.427689)
+        (xy 120.127858 86.408676)
+        (xy 120.185621 86.377801)
+        (xy 120.236251 86.336251)
+        (xy 120.277801 86.285621)
+        (xy 120.308676 86.227858)
+        (xy 120.327689 86.165181)
+        (xy 120.334109 86.1)
+        (xy 120.3325 85.633125)
+        (xy 120.249375 85.55)
+        (xy 119.05 85.55)
+        (xy 118.95 85.55)
+        (xy 117.750625 85.55)
+        (xy 117.6675 85.633125)
+        (xy 117.665891 86.1)
+        (xy 116.878842 86.1)
+        (xy 116.878842 86)
+        (xy 116.873484 85.945601)
+        (xy 116.857616 85.893292)
+        (xy 116.831849 85.845084)
+        (xy 116.797171 85.802829)
+        (xy 116.754916 85.768151)
+        (xy 116.706708 85.742384)
+        (xy 116.654399 85.726516)
+        (xy 116.6 85.721158)
+        (xy 115.4 85.721158)
+        (xy 115.345601 85.726516)
+        (xy 115.293292 85.742384)
+        (xy 115.245084 85.768151)
+        (xy 115.202829 85.802829)
+        (xy 115.168151 85.845084)
+        (xy 115.142384 85.893292)
+        (xy 115.126516 85.945601)
+        (xy 115.121158 86)
+        (xy 114.878842 86)
+        (xy 114.873484 85.945601)
+        (xy 114.857616 85.893292)
+        (xy 114.831849 85.845084)
+        (xy 114.797171 85.802829)
+        (xy 114.754916 85.768151)
+        (xy 114.706708 85.742384)
+        (xy 114.654399 85.726516)
+        (xy 114.6 85.721158)
+        (xy 113.4 85.721158)
+        (xy 113.345601 85.726516)
+        (xy 113.293292 85.742384)
+        (xy 113.245084 85.768151)
+        (xy 113.202829 85.802829)
+        (xy 113.168151 85.845084)
+        (xy 113.142384 85.893292)
+        (xy 113.126516 85.945601)
+        (xy 113.121158 86)
+        (xy 112.878842 86)
+        (xy 112.873484 85.945601)
+        (xy 112.857616 85.893292)
+        (xy 112.831849 85.845084)
+        (xy 112.797171 85.802829)
+        (xy 112.754916 85.768151)
+        (xy 112.706708 85.742384)
+        (xy 112.654399 85.726516)
+        (xy 112.6 85.721158)
+        (xy 111.4 85.721158)
+        (xy 111.345601 85.726516)
+        (xy 111.293292 85.742384)
+        (xy 111.245084 85.768151)
+        (xy 111.202829 85.802829)
+        (xy 111.168151 85.845084)
+        (xy 111.142384 85.893292)
+        (xy 111.126516 85.945601)
+        (xy 111.121158 86)
+        (xy 110.878842 86)
+        (xy 110.873484 85.945601)
+        (xy 110.857616 85.893292)
+        (xy 110.831849 85.845084)
+        (xy 110.797171 85.802829)
+        (xy 110.754916 85.768151)
+        (xy 110.706708 85.742384)
+        (xy 110.654399 85.726516)
+        (xy 110.6 85.721158)
+        (xy 109.4 85.721158)
+        (xy 109.345601 85.726516)
+        (xy 109.293292 85.742384)
+        (xy 109.245084 85.768151)
+        (xy 109.202829 85.802829)
+        (xy 109.168151 85.845084)
+        (xy 109.142384 85.893292)
+        (xy 109.126516 85.945601)
+        (xy 109.121158 86)
+        (xy 108.878842 86)
+        (xy 108.873484 85.945601)
+        (xy 108.857616 85.893292)
+        (xy 108.831849 85.845084)
+        (xy 108.797171 85.802829)
+        (xy 108.754916 85.768151)
+        (xy 108.706708 85.742384)
+        (xy 108.654399 85.726516)
+        (xy 108.6 85.721158)
+        (xy 107.4 85.721158)
+        (xy 107.345601 85.726516)
+        (xy 107.293292 85.742384)
+        (xy 107.245084 85.768151)
+        (xy 107.202829 85.802829)
+        (xy 107.168151 85.845084)
+        (xy 107.142384 85.893292)
+        (xy 107.126516 85.945601)
+        (xy 107.121158 86)
+        (xy 106.878842 86)
+        (xy 106.873484 85.945601)
+        (xy 106.857616 85.893292)
+        (xy 106.831849 85.845084)
+        (xy 106.797171 85.802829)
+        (xy 106.754916 85.768151)
+        (xy 106.706708 85.742384)
+        (xy 106.654399 85.726516)
+        (xy 106.6 85.721158)
+        (xy 105.4 85.721158)
+        (xy 105.345601 85.726516)
+        (xy 105.293292 85.742384)
+        (xy 105.245084 85.768151)
+        (xy 105.202829 85.802829)
+        (xy 105.168151 85.845084)
+        (xy 105.142384 85.893292)
+        (xy 105.126516 85.945601)
+        (xy 105.121158 86)
+        (xy 104.404856 86)
+        (xy 104.42845 85.995307)
+        (xy 104.533549 85.951774)
+        (xy 104.628135 85.888573)
+        (xy 104.708573 85.808135)
+        (xy 104.771774 85.713549)
+        (xy 104.815307 85.60845)
+        (xy 104.8375 85.496879)
+        (xy 104.8375 85.383121)
+        (xy 104.815307 85.27155)
+        (xy 104.771774 85.166451)
+        (xy 104.708573 85.071865)
+        (xy 104.628135 84.991427)
+        (xy 104.533549 84.928226)
+        (xy 104.42845 84.884693)
+        (xy 104.316879 84.8625)
+        (xy 104.275148 84.8625)
+        (xy 104.273484 84.845601)
+        (xy 104.267993 84.827501)
+        (xy 110.630238 84.827501)
+        (xy 110.649997 84.829447)
+        (xy 110.669756 84.827501)
+        (xy 110.669766 84.827501)
+        (xy 110.728901 84.821677)
+        (xy 110.804772 84.798661)
+        (xy 110.874696 84.761286)
+        (xy 110.935984 84.710988)
+        (xy 110.948588 84.69563)
+        (xy 111.201097 84.443121)
+        (xy 116.4225 84.443121)
+        (xy 116.4225 84.556879)
+        (xy 116.444693 84.66845)
+        (xy 116.488226 84.773549)
+        (xy 116.551427 84.868135)
+        (xy 116.631865 84.948573)
+        (xy 116.726451 85.011774)
+        (xy 116.83155 85.055307)
+        (xy 116.943121 85.0775)
+        (xy 117.056879 85.0775)
+        (xy 117.16845 85.055307)
+        (xy 117.273549 85.011774)
+        (xy 117.368135 84.948573)
+        (xy 117.416708 84.9)
+        (xy 117.665891 84.9)
+        (xy 117.6675 85.366875)
+        (xy 117.750625 85.45)
+        (xy 118.95 85.45)
+        (xy 118.95 84.650625)
+        (xy 119.05 84.650625)
+        (xy 119.05 85.45)
+        (xy 120.249375 85.45)
+        (xy 120.3325 85.366875)
+        (xy 120.334109 84.9)
+        (xy 120.327689 84.834819)
+        (xy 120.308676 84.772142)
+        (xy 120.277801 84.714379)
+        (xy 120.236251 84.663749)
+        (xy 120.185621 84.622199)
+        (xy 120.127858 84.591324)
+        (xy 120.065181 84.572311)
+        (xy 120 84.565891)
+        (xy 119.133125 84.5675)
+        (xy 119.05 84.650625)
+        (xy 118.95 84.650625)
+        (xy 118.866875 84.5675)
+        (xy 118 84.565891)
+        (xy 117.934819 84.572311)
+        (xy 117.872142 84.591324)
+        (xy 117.814379 84.622199)
+        (xy 117.763749 84.663749)
+        (xy 117.722199 84.714379)
+        (xy 117.691324 84.772142)
+        (xy 117.672311 84.834819)
+        (xy 117.665891 84.9)
+        (xy 117.416708 84.9)
+        (xy 117.448573 84.868135)
+        (xy 117.511774 84.773549)
+        (xy 117.555307 84.66845)
+        (xy 117.5775 84.556879)
+        (xy 117.5775 84.49172)
+        (xy 117.788955 84.280266)
+        (xy 117.802829 84.297171)
+        (xy 117.845084 84.331849)
+        (xy 117.893292 84.357616)
+        (xy 117.945601 84.373484)
+        (xy 118 84.378842)
+        (xy 120 84.378842)
+        (xy 120.054399 84.373484)
+        (xy 120.106708 84.357616)
+        (xy 120.154916 84.331849)
+        (xy 120.197171 84.297171)
+        (xy 120.231849 84.254916)
+        (xy 120.257616 84.206708)
+        (xy 120.273484 84.154399)
+        (xy 120.278842 84.1)
+        (xy 120.278842 82.9)
+        (xy 120.273484 82.845601)
+        (xy 120.257616 82.793292)
+        (xy 120.231849 82.745084)
+        (xy 120.197171 82.702829)
+        (xy 120.154916 82.668151)
+        (xy 120.106708 82.642384)
+        (xy 120.054399 82.626516)
+        (xy 120 82.621158)
+        (xy 118 82.621158)
+        (xy 117.945601 82.626516)
+        (xy 117.893292 82.642384)
+        (xy 117.845084 82.668151)
+        (xy 117.802829 82.702829)
+        (xy 117.768151 82.745084)
+        (xy 117.742384 82.793292)
+        (xy 117.726516 82.845601)
+        (xy 117.721158 82.9)
+        (xy 117.721158 83.208149)
+        (xy 117.714013 83.214013)
+        (xy 117.701413 83.229366)
+        (xy 117.00828 83.9225)
+        (xy 116.943121 83.9225)
+        (xy 116.83155 83.944693)
+        (xy 116.726451 83.988226)
+        (xy 116.631865 84.051427)
+        (xy 116.551427 84.131865)
+        (xy 116.488226 84.226451)
+        (xy 116.444693 84.33155)
+        (xy 116.4225 84.443121)
+        (xy 111.201097 84.443121)
+        (xy 113.951097 81.693121)
+        (xy 116.6725 81.693121)
+        (xy 116.6725 81.806879)
+        (xy 116.694693 81.91845)
+        (xy 116.738226 82.023549)
+        (xy 116.801427 82.118135)
+        (xy 116.881865 82.198573)
+        (xy 116.976451 82.261774)
+        (xy 117.08155 82.305307)
+        (xy 117.193121 82.3275)
+        (xy 117.306879 82.3275)
+        (xy 117.41845 82.305307)
+        (xy 117.523549 82.261774)
+        (xy 117.618135 82.198573)
+        (xy 117.698573 82.118135)
+        (xy 117.721158 82.084335)
+        (xy 117.721158 82.1)
+        (xy 117.726516 82.154399)
+        (xy 117.742384 82.206708)
+        (xy 117.768151 82.254916)
+        (xy 117.802829 82.297171)
+        (xy 117.845084 82.331849)
+        (xy 117.893292 82.357616)
+        (xy 117.945601 82.373484)
+        (xy 118 82.378842)
+        (xy 120 82.378842)
+        (xy 120.054399 82.373484)
+        (xy 120.106708 82.357616)
+        (xy 120.154916 82.331849)
+        (xy 120.197171 82.297171)
+        (xy 120.231849 82.254916)
+        (xy 120.257616 82.206708)
+        (xy 120.273484 82.154399)
+        (xy 120.278842 82.1)
+        (xy 120.278842 80.9)
+        (xy 120.273484 80.845601)
+        (xy 120.257616 80.793292)
+        (xy 120.231849 80.745084)
+        (xy 120.197171 80.702829)
+        (xy 120.154916 80.668151)
+        (xy 120.106708 80.642384)
+        (xy 120.054399 80.626516)
+        (xy 120 80.621158)
+        (xy 118 80.621158)
+        (xy 117.945601 80.626516)
+        (xy 117.893292 80.642384)
+        (xy 117.845084 80.668151)
+        (xy 117.802829 80.702829)
+        (xy 117.768151 80.745084)
+        (xy 117.742384 80.793292)
+        (xy 117.726516 80.845601)
+        (xy 117.721158 80.9)
+        (xy 117.721158 81.0975)
+        (xy 117.519758 81.0975)
+        (xy 117.499999 81.095554)
+        (xy 117.48024 81.0975)
+        (xy 117.480231 81.0975)
+        (xy 117.421096 81.103324)
+        (xy 117.345225 81.12634)
+        (xy 117.326621 81.136284)
+        (xy 117.2753 81.163715)
+        (xy 117.264596 81.1725)
+        (xy 117.193121 81.1725)
+        (xy 117.08155 81.194693)
+        (xy 116.976451 81.238226)
+        (xy 116.881865 81.301427)
+        (xy 116.801427 81.381865)
+        (xy 116.738226 81.476451)
+        (xy 116.694693 81.58155)
+        (xy 116.6725 81.693121)
+        (xy 113.951097 81.693121)
+        (xy 116.241719 79.4025)
+        (xy 116.585792 79.4025)
+        (xy 116.631865 79.448573)
+        (xy 116.726451 79.511774)
+        (xy 116.83155 79.555307)
+        (xy 116.943121 79.5775)
+        (xy 117.008279 79.5775)
+        (xy 117.201413 79.770634)
+        (xy 117.214013 79.785987)
+        (xy 117.229366 79.798587)
+        (xy 117.229368 79.798589)
+        (xy 117.253205 79.818151)
+        (xy 117.275301 79.836285)
+        (xy 117.345225 79.87366)
+        (xy 117.421096 79.896676)
+        (xy 117.480231 79.9025)
+        (xy 117.480241 79.9025)
+        (xy 117.5 79.904446)
+        (xy 117.519759 79.9025)
+        (xy 117.721158 79.9025)
+        (xy 117.721158 80.1)
+        (xy 117.726516 80.154399)
+        (xy 117.742384 80.206708)
+        (xy 117.768151 80.254916)
+        (xy 117.802829 80.297171)
+        (xy 117.845084 80.331849)
+        (xy 117.893292 80.357616)
+        (xy 117.945601 80.373484)
+        (xy 118 80.378842)
+        (xy 120 80.378842)
+        (xy 120.054399 80.373484)
+        (xy 120.106708 80.357616)
+        (xy 120.154916 80.331849)
+        (xy 120.197171 80.297171)
+        (xy 120.231849 80.254916)
+        (xy 120.257616 80.206708)
+        (xy 120.273484 80.154399)
+        (xy 120.278842 80.1)
+        (xy 120.278842 79.623121)
+        (xy 121.3525 79.623121)
+        (xy 121.3525 79.736879)
+        (xy 121.374693 79.84845)
+        (xy 121.418226 79.953549)
+        (xy 121.481427 80.048135)
+        (xy 121.561865 80.128573)
+        (xy 121.656451 80.191774)
+        (xy 121.76155 80.235307)
+        (xy 121.873121 80.2575)
+        (xy 121.986879 80.2575)
+        (xy 122.09845 80.235307)
+        (xy 122.203549 80.191774)
+        (xy 122.298135 80.128573)
+        (xy 122.378573 80.048135)
+        (xy 122.441774 79.953549)
+        (xy 122.485307 79.84845)
+        (xy 122.5075 79.736879)
+        (xy 122.5075 79.67172)
+        (xy 122.776721 79.4025)
+        (xy 125.03372 79.4025)
+        (xy 125.043292 79.407616)
+        (xy 125.095601 79.423484)
+        (xy 125.15 79.428842)
+        (xy 126.35 79.428842)
+        (xy 126.404399 79.423484)
+        (xy 126.456708 79.407616)
+        (xy 126.504916 79.381849)
+        (xy 126.547171 79.347171)
+        (xy 126.581849 79.304916)
+        (xy 126.607616 79.256708)
+        (xy 126.623484 79.204399)
+        (xy 126.628842 79.15)
+        (xy 126.628842 78.85)
+        (xy 126.627466 78.836029)
+        (xy 126.627801 78.835621)
+        (xy 126.658676 78.777858)
+        (xy 126.677689 78.715181)
+        (xy 126.684109 78.65)
+        (xy 126.6825 78.633125)
+        (xy 126.599375 78.55)
+        (xy 125.8 78.55)
+        (xy 125.8 78.57)
+        (xy 125.7 78.57)
+        (xy 125.7 78.55)
+        (xy 124.900625 78.55)
+        (xy 124.853125 78.5975)
+        (xy 122.629758 78.5975)
+        (xy 122.609999 78.595554)
+        (xy 122.59024 78.5975)
+        (xy 122.590231 78.5975)
+        (xy 122.531096 78.603324)
+        (xy 122.455225 78.62634)
+        (xy 122.385301 78.663715)
+        (xy 122.339368 78.701411)
+        (xy 122.339366 78.701413)
+        (xy 122.324013 78.714013)
+        (xy 122.311413 78.729366)
+        (xy 121.93828 79.1025)
+        (xy 121.873121 79.1025)
+        (xy 121.76155 79.124693)
+        (xy 121.656451 79.168226)
+        (xy 121.561865 79.231427)
+        (xy 121.481427 79.311865)
+        (xy 121.418226 79.406451)
+        (xy 121.374693 79.51155)
+        (xy 121.3525 79.623121)
+        (xy 120.278842 79.623121)
+        (xy 120.278842 78.9)
+        (xy 120.273484 78.845601)
+        (xy 120.257616 78.793292)
+        (xy 120.231849 78.745084)
+        (xy 120.197171 78.702829)
+        (xy 120.154916 78.668151)
+        (xy 120.106708 78.642384)
+        (xy 120.054399 78.626516)
+        (xy 120 78.621158)
+        (xy 118 78.621158)
+        (xy 117.945601 78.626516)
+        (xy 117.893292 78.642384)
+        (xy 117.845084 78.668151)
+        (xy 117.802829 78.702829)
+        (xy 117.768151 78.745084)
+        (xy 117.742384 78.793292)
+        (xy 117.726516 78.845601)
+        (xy 117.721158 78.9)
+        (xy 117.721158 79.0975)
+        (xy 117.666721 79.0975)
+        (xy 117.5775 79.008279)
+        (xy 117.5775 78.943121)
+        (xy 117.555307 78.83155)
+        (xy 117.511774 78.726451)
+        (xy 117.448573 78.631865)
+        (xy 117.368135 78.551427)
+        (xy 117.273549 78.488226)
+        (xy 117.16845 78.444693)
+        (xy 117.056879 78.4225)
+        (xy 116.943121 78.4225)
+        (xy 116.83155 78.444693)
+        (xy 116.726451 78.488226)
+        (xy 116.631865 78.551427)
+        (xy 116.585792 78.5975)
+        (xy 116.094757 78.5975)
+        (xy 116.074998 78.595554)
+        (xy 116.055239 78.5975)
+        (xy 116.055229 78.5975)
+        (xy 115.996094 78.603324)
+        (xy 115.920223 78.62634)
+        (xy 115.850299 78.663715)
+        (xy 115.804366 78.701411)
+        (xy 115.804364 78.701413)
+        (xy 115.789011 78.714013)
+        (xy 115.776411 78.729366)
+        (xy 110.483277 84.022501)
+        (xy 104.278842 84.022501)
+        (xy 104.278842 82.9)
+        (xy 104.273484 82.845601)
+        (xy 104.257616 82.793292)
+        (xy 104.231849 82.745084)
+        (xy 104.197171 82.702829)
+        (xy 104.154916 82.668151)
+        (xy 104.106708 82.642384)
+        (xy 104.054399 82.626516)
+        (xy 104 82.621158)
+        (xy 102 82.621158)
+        (xy 101.945601 82.626516)
+        (xy 101.893292 82.642384)
+        (xy 101.845084 82.668151)
+        (xy 101.802829 82.702829)
+        (xy 101.768151 82.745084)
+        (xy 101.742384 82.793292)
+        (xy 101.726516 82.845601)
+        (xy 101.721158 82.9)
+        (xy 101.721158 84.022501)
+        (xy 94.471721 84.022501)
+        (xy 94.448591 83.999371)
+        (xy 94.435987 83.984013)
+        (xy 94.374699 83.933715)
+        (xy 94.304775 83.89634)
+        (xy 94.228904 83.873324)
+        (xy 94.178842 83.868394)
+        (xy 94.178842 83.37)
+        (xy 94.173484 83.315601)
+        (xy 94.157616 83.263292)
+        (xy 94.131849 83.215084)
+        (xy 94.097171 83.172829)
+        (xy 94.054916 83.138151)
+        (xy 94.006708 83.112384)
+        (xy 93.954399 83.096516)
+        (xy 93.9 83.091158)
+        (xy 92.1 83.091158)
+        (xy 92.045601 83.096516)
+        (xy 91.993292 83.112384)
+        (xy 91.945084 83.138151)
+        (xy 91.902829 83.172829)
+        (xy 91.868151 83.215084)
+        (xy 91.842384 83.263292)
+        (xy 91.826516 83.315601)
+        (xy 91.821158 83.37)
+        (xy 90.2825 83.37)
+        (xy 90.2825 82.581538)
+        (xy 92.219172 82.581538)
+        (xy 92.313094 82.760511)
+        (xy 92.527335 82.874719)
+        (xy 92.759741 82.944935)
+        (xy 93.00138 82.968463)
+        (xy 93.242965 82.944397)
+        (xy 93.475214 82.873663)
+        (xy 93.686906 82.760511)
+        (xy 93.780828 82.581538)
+        (xy 93 81.800711)
+        (xy 92.219172 82.581538)
+        (xy 90.2825 82.581538)
+        (xy 90.2825 81.73138)
+        (xy 91.761537 81.73138)
+        (xy 91.785603 81.972965)
+        (xy 91.856337 82.205214)
+        (xy 91.969489 82.416906)
+        (xy 92.148462 82.510828)
+        (xy 92.929289 81.73)
+        (xy 93.070711 81.73)
+        (xy 93.851538 82.510828)
+        (xy 94.030511 82.416906)
+        (xy 94.144719 82.202665)
+        (xy 94.214935 81.970259)
+        (xy 94.238463 81.72862)
+        (xy 94.214397 81.487035)
+        (xy 94.143663 81.254786)
+        (xy 94.030511 81.043094)
+        (xy 93.851538 80.949172)
+        (xy 93.070711 81.73)
+        (xy 92.929289 81.73)
+        (xy 92.148462 80.949172)
+        (xy 91.969489 81.043094)
+        (xy 91.855281 81.257335)
+        (xy 91.785065 81.489741)
+        (xy 91.761537 81.73138)
+        (xy 90.2825 81.73138)
+        (xy 90.2825 80.878462)
+        (xy 92.219172 80.878462)
+        (xy 93 81.659289)
+        (xy 93.759289 80.9)
+        (xy 101.721158 80.9)
+        (xy 101.721158 82.1)
+        (xy 101.726516 82.154399)
+        (xy 101.742384 82.206708)
+        (xy 101.768151 82.254916)
+        (xy 101.802829 82.297171)
+        (xy 101.845084 82.331849)
+        (xy 101.893292 82.357616)
+        (xy 101.945601 82.373484)
+        (xy 102 82.378842)
+        (xy 104 82.378842)
+        (xy 104.054399 82.373484)
+        (xy 104.106708 82.357616)
+        (xy 104.154916 82.331849)
+        (xy 104.197171 82.297171)
+        (xy 104.231849 82.254916)
+        (xy 104.257616 82.206708)
+        (xy 104.273484 82.154399)
+        (xy 104.278842 82.1)
+        (xy 104.278842 80.9)
+        (xy 104.273484 80.845601)
+        (xy 104.257616 80.793292)
+        (xy 104.231849 80.745084)
+        (xy 104.197171 80.702829)
+        (xy 104.154916 80.668151)
+        (xy 104.106708 80.642384)
+        (xy 104.054399 80.626516)
+        (xy 104 80.621158)
+        (xy 102 80.621158)
+        (xy 101.945601 80.626516)
+        (xy 101.893292 80.642384)
+        (xy 101.845084 80.668151)
+        (xy 101.802829 80.702829)
+        (xy 101.768151 80.745084)
+        (xy 101.742384 80.793292)
+        (xy 101.726516 80.845601)
+        (xy 101.721158 80.9)
+        (xy 93.759289 80.9)
+        (xy 93.780828 80.878462)
+        (xy 93.686906 80.699489)
+        (xy 93.472665 80.585281)
+        (xy 93.240259 80.515065)
+        (xy 92.99862 80.491537)
+        (xy 92.757035 80.515603)
+        (xy 92.524786 80.586337)
+        (xy 92.313094 80.699489)
+        (xy 92.219172 80.878462)
+        (xy 90.2825 80.878462)
+        (xy 90.2825 78.9)
+        (xy 101.721158 78.9)
+        (xy 101.721158 80.1)
+        (xy 101.726516 80.154399)
+        (xy 101.742384 80.206708)
+        (xy 101.768151 80.254916)
+        (xy 101.802829 80.297171)
+        (xy 101.845084 80.331849)
+        (xy 101.893292 80.357616)
+        (xy 101.945601 80.373484)
+        (xy 102 80.378842)
+        (xy 104 80.378842)
+        (xy 104.054399 80.373484)
+        (xy 104.106708 80.357616)
+        (xy 104.154916 80.331849)
+        (xy 104.197171 80.297171)
+        (xy 104.231849 80.254916)
+        (xy 104.257616 80.206708)
+        (xy 104.273484 80.154399)
+        (xy 104.278842 80.1)
+        (xy 104.278842 78.9)
+        (xy 104.273484 78.845601)
+        (xy 104.257616 78.793292)
+        (xy 104.231849 78.745084)
+        (xy 104.197171 78.702829)
+        (xy 104.154916 78.668151)
+        (xy 104.106708 78.642384)
+        (xy 104.054399 78.626516)
+        (xy 104 78.621158)
+        (xy 102 78.621158)
+        (xy 101.945601 78.626516)
+        (xy 101.893292 78.642384)
+        (xy 101.845084 78.668151)
+        (xy 101.802829 78.702829)
+        (xy 101.768151 78.745084)
+        (xy 101.742384 78.793292)
+        (xy 101.726516 78.845601)
+        (xy 101.721158 78.9)
+        (xy 90.2825 78.9)
+        (xy 90.2825 76.562651)
+        (xy 92.448059 76.562651)
+        (xy 92.553987 76.751865)
+        (xy 92.785235 76.87604)
+        (xy 93.036266 76.952715)
+        (xy 93.297432 76.978943)
+        (xy 93.558696 76.953717)
+        (xy 93.737009 76.9)
+        (xy 101.721158 76.9)
+        (xy 101.721158 78.1)
+        (xy 101.726516 78.154399)
+        (xy 101.742384 78.206708)
+        (xy 101.768151 78.254916)
+        (xy 101.802829 78.297171)
+        (xy 101.845084 78.331849)
+        (xy 101.893292 78.357616)
+        (xy 101.945601 78.373484)
+        (xy 102 78.378842)
+        (xy 104 78.378842)
+        (xy 104.054399 78.373484)
+        (xy 104.106708 78.357616)
+        (xy 104.154916 78.331849)
+        (xy 104.197171 78.297171)
+        (xy 104.231849 78.254916)
+        (xy 104.257616 78.206708)
+        (xy 104.273484 78.154399)
+        (xy 104.278842 78.1)
+        (xy 104.278842 76.9)
+        (xy 117.721158 76.9)
+        (xy 117.721158 78.1)
+        (xy 117.726516 78.154399)
+        (xy 117.742384 78.206708)
+        (xy 117.768151 78.254916)
+        (xy 117.802829 78.297171)
+        (xy 117.845084 78.331849)
+        (xy 117.893292 78.357616)
+        (xy 117.945601 78.373484)
+        (xy 118 78.378842)
+        (xy 120 78.378842)
+        (xy 120.054399 78.373484)
+        (xy 120.106708 78.357616)
+        (xy 120.154916 78.331849)
+        (xy 120.197171 78.297171)
+        (xy 120.231849 78.254916)
+        (xy 120.257616 78.206708)
+        (xy 120.273484 78.154399)
+        (xy 120.278842 78.1)
+        (xy 120.278842 76.9)
+        (xy 120.273484 76.845601)
+        (xy 120.257616 76.793292)
+        (xy 120.231849 76.745084)
+        (xy 120.197171 76.702829)
+        (xy 120.154916 76.668151)
+        (xy 120.106708 76.642384)
+        (xy 120.054399 76.626516)
+        (xy 120 76.621158)
+        (xy 118 76.621158)
+        (xy 117.945601 76.626516)
+        (xy 117.893292 76.642384)
+        (xy 117.845084 76.668151)
+        (xy 117.802829 76.702829)
+        (xy 117.768151 76.745084)
+        (xy 117.742384 76.793292)
+        (xy 117.726516 76.845601)
+        (xy 117.721158 76.9)
+        (xy 104.278842 76.9)
+        (xy 104.273484 76.845601)
+        (xy 104.257616 76.793292)
+        (xy 104.231849 76.745084)
+        (xy 104.197171 76.702829)
+        (xy 104.154916 76.668151)
+        (xy 104.106708 76.642384)
+        (xy 104.054399 76.626516)
+        (xy 104 76.621158)
+        (xy 102 76.621158)
+        (xy 101.945601 76.626516)
+        (xy 101.893292 76.642384)
+        (xy 101.845084 76.668151)
+        (xy 101.802829 76.702829)
+        (xy 101.768151 76.745084)
+        (xy 101.742384 76.793292)
+        (xy 101.726516 76.845601)
+        (xy 101.721158 76.9)
+        (xy 93.737009 76.9)
+        (xy 93.810018 76.878006)
+        (xy 94.041742 76.754718)
+        (xy 94.046013 76.751865)
+        (xy 94.151941 76.562651)
+        (xy 93.3 75.710711)
+        (xy 92.448059 76.562651)
+        (xy 90.2825 76.562651)
+        (xy 90.2825 75.637432)
+        (xy 91.961057 75.637432)
+        (xy 91.986283 75.898696)
+        (xy 92.061994 76.150018)
+        (xy 92.185282 76.381742)
+        (xy 92.188135 76.386013)
+        (xy 92.377349 76.491941)
+        (xy 93.229289 75.64)
+        (xy 93.370711 75.64)
+        (xy 94.222651 76.491941)
+        (xy 94.411865 76.386013)
+        (xy 94.53604 76.154765)
+        (xy 94.612715 75.903734)
+        (xy 94.638943 75.642568)
+        (xy 94.613717 75.381304)
+        (xy 94.538006 75.129982)
+        (xy 94.414718 74.898258)
+        (xy 94.411865 74.893987)
+        (xy 94.222651 74.788059)
+        (xy 93.370711 75.64)
+        (xy 93.229289 75.64)
+        (xy 92.377349 74.788059)
+        (xy 92.188135 74.893987)
+        (xy 92.06396 75.125235)
+        (xy 91.987285 75.376266)
+        (xy 91.961057 75.637432)
+        (xy 90.2825 75.637432)
+        (xy 90.2825 70.434177)
+        (xy 92.0225 70.434177)
+        (xy 92.0225 70.685823)
+        (xy 92.071594 70.932633)
+        (xy 92.167894 71.165123)
+        (xy 92.307701 71.374359)
+        (xy 92.485641 71.552299)
+        (xy 92.694877 71.692106)
+        (xy 92.927367 71.788406)
+        (xy 93.136472 71.83)
+        (xy 92.927367 71.871594)
+        (xy 92.694877 71.967894)
+        (xy 92.485641 72.107701)
+        (xy 92.307701 72.285641)
+        (xy 92.167894 72.494877)
+        (xy 92.071594 72.727367)
+        (xy 92.0225 72.974177)
+        (xy 92.0225 73.225823)
+        (xy 92.071594 73.472633)
+        (xy 92.167894 73.705123)
+        (xy 92.307701 73.914359)
+        (xy 92.485641 74.092299)
+        (xy 92.694877 74.232106)
+        (xy 92.927367 74.328406)
+        (xy 92.991747 74.341212)
+        (xy 92.789982 74.401994)
+        (xy 92.558258 74.525282)
+        (xy 92.553987 74.528135)
+        (xy 92.448059 74.717349)
+        (xy 93.3 75.569289)
+        (xy 94.151941 74.717349)
+        (xy 94.046013 74.528135)
+        (xy 93.814765 74.40396)
+        (xy 93.608906 74.341082)
+        (xy 93.672633 74.328406)
+        (xy 93.905123 74.232106)
+        (xy 94.114359 74.092299)
+        (xy 94.292299 73.914359)
+        (xy 94.432106 73.705123)
+        (xy 94.516035 73.5025)
+        (xy 95.63328 73.5025)
+        (xy 96.976412 74.845633)
+        (xy 96.989012 74.860986)
+        (xy 97.004365 74.873586)
+        (xy 97.004367 74.873588)
+        (xy 97.0503 74.911285)
+        (xy 97.10622 74.941174)
+        (xy 97.120224 74.948659)
+        (xy 97.196095 74.971675)
+        (xy 97.25523 74.977499)
+        (xy 97.25524 74.977499)
+        (xy 97.274999 74.979445)
+        (xy 97.294758 74.977499)
+        (xy 101.721158 74.977499)
+        (xy 101.721158 76.1)
+        (xy 101.726516 76.154399)
+        (xy 101.742384 76.206708)
+        (xy 101.768151 76.254916)
+        (xy 101.802829 76.297171)
+        (xy 101.845084 76.331849)
+        (xy 101.893292 76.357616)
+        (xy 101.945601 76.373484)
+        (xy 102 76.378842)
+        (xy 104 76.378842)
+        (xy 104.054399 76.373484)
+        (xy 104.106708 76.357616)
+        (xy 104.154916 76.331849)
+        (xy 104.197171 76.297171)
+        (xy 104.231849 76.254916)
+        (xy 104.257616 76.206708)
+        (xy 104.273484 76.154399)
+        (xy 104.278842 76.1)
+        (xy 104.278842 76.033475)
+        (xy 104.33155 76.055307)
+        (xy 104.443121 76.0775)
+        (xy 104.556879 76.0775)
+        (xy 104.66845 76.055307)
+        (xy 104.773549 76.011774)
+        (xy 104.868135 75.948573)
+        (xy 104.948573 75.868135)
+        (xy 105.011774 75.773549)
+        (xy 105.055307 75.66845)
+        (xy 105.0775 75.556879)
+        (xy 105.0775 75.443121)
+        (xy 105.055307 75.33155)
+        (xy 105.011774 75.226451)
+        (xy 104.948573 75.131865)
+        (xy 104.868135 75.051427)
+        (xy 104.773549 74.988226)
+        (xy 104.66845 74.944693)
+        (xy 104.556879 74.9225)
+        (xy 104.443121 74.9225)
+        (xy 104.33155 74.944693)
+        (xy 104.278842 74.966525)
+        (xy 104.278842 74.941142)
+        (xy 104.334702 74.911284)
+        (xy 104.348451 74.9)
+        (xy 117.721158 74.9)
+        (xy 117.721158 76.1)
+        (xy 117.726516 76.154399)
+        (xy 117.742384 76.206708)
+        (xy 117.768151 76.254916)
+        (xy 117.802829 76.297171)
+        (xy 117.845084 76.331849)
+        (xy 117.893292 76.357616)
+        (xy 117.945601 76.373484)
+        (xy 118 76.378842)
+        (xy 120 76.378842)
+        (xy 120.054399 76.373484)
+        (xy 120.106708 76.357616)
+        (xy 120.154916 76.331849)
+        (xy 120.197171 76.297171)
+        (xy 120.231849 76.254916)
+        (xy 120.257616 76.206708)
+        (xy 120.273484 76.154399)
+        (xy 120.278842 76.1)
+        (xy 120.278842 75.786378)
+        (xy 122.245522 75.786378)
+        (xy 122.247468 75.806137)
+        (xy 122.247468 75.806146)
+        (xy 122.253292 75.865281)
+        (xy 122.276308 75.941152)
+        (xy 122.30393 75.992829)
+        (xy 122.313683 76.011076)
+        (xy 122.349983 76.055307)
+        (xy 122.363981 76.072364)
+        (xy 122.379334 76.084964)
+        (xy 124.565003 78.270634)
+        (xy 124.577603 78.285987)
+        (xy 124.592956 78.298587)
+        (xy 124.592958 78.298589)
+        (xy 124.600094 78.304445)
+        (xy 124.638891 78.336285)
+        (xy 124.708815 78.37366)
+        (xy 124.784686 78.396676)
+        (xy 124.843821 78.4025)
+        (xy 124.84383 78.4025)
+        (xy 124.85414 78.403515)
+        (xy 124.900625 78.45)
+        (xy 125.7 78.45)
+        (xy 125.7 78.43)
+        (xy 125.8 78.43)
+        (xy 125.8 78.45)
+        (xy 126.599375 78.45)
+        (xy 126.6825 78.366875)
+        (xy 126.684109 78.35)
+        (xy 126.677689 78.284819)
+        (xy 126.658676 78.222142)
+        (xy 126.627801 78.164379)
+        (xy 126.627466 78.163971)
+        (xy 126.628842 78.15)
+        (xy 126.628842 77.85)
+        (xy 126.623484 77.795601)
+        (xy 126.609651 77.75)
+        (xy 126.623484 77.704399)
+        (xy 126.628842 77.65)
+        (xy 126.628842 77.401606)
+        (xy 126.678904 77.396676)
+        (xy 126.754775 77.37366)
+        (xy 126.824699 77.336285)
+        (xy 126.885987 77.285987)
+        (xy 126.898591 77.270629)
+        (xy 127.120644 77.048576)
+        (xy 127.136001 77.035973)
+        (xy 127.186299 76.974685)
+        (xy 127.190315 76.967171)
+        (xy 127.218149 76.948573)
+        (xy 127.2975 76.869222)
+        (xy 127.2975 77.031577)
+        (xy 127.23155 77.044695)
+        (xy 127.126451 77.088228)
+        (xy 127.031865 77.151429)
+        (xy 126.951427 77.231867)
+        (xy 126.888226 77.326453)
+        (xy 126.844693 77.431552)
+        (xy 126.8225 77.543123)
+        (xy 126.8225 77.656881)
+        (xy 126.844693 77.768452)
+        (xy 126.888226 77.873551)
+        (xy 126.951427 77.968137)
+        (xy 127.031865 78.048575)
+        (xy 127.126451 78.111776)
+        (xy 127.23155 78.155309)
+        (xy 127.343121 78.177502)
+        (xy 127.456879 78.177502)
+        (xy 127.56845 78.155309)
+        (xy 127.673549 78.111776)
+        (xy 127.768135 78.048575)
+        (xy 127.848573 77.968137)
+        (xy 127.911774 77.873551)
+        (xy 127.955307 77.768452)
+        (xy 127.9775 77.656881)
+        (xy 127.9775 77.592954)
+        (xy 127.985986 77.58599)
+        (xy 128.004267 77.563715)
+        (xy 128.036285 77.524702)
+        (xy 128.073659 77.454778)
+        (xy 128.096675 77.378907)
+        (xy 128.102499 77.319772)
+        (xy 128.102499 77.319762)
+        (xy 128.104445 77.300003)
+        (xy 128.102499 77.280244)
+        (xy 128.102499 75.419758)
+        (xy 128.104445 75.399999)
+        (xy 128.102499 75.38024)
+        (xy 128.102499 75.38023)
+        (xy 128.096675 75.321095)
+        (xy 128.073659 75.245224)
+        (xy 128.036284 75.1753)
+        (xy 128.023777 75.16006)
+        (xy 127.998588 75.129367)
+        (xy 127.998586 75.129365)
+        (xy 127.985986 75.114012)
+        (xy 127.970634 75.101413)
+        (xy 127.098589 74.229369)
+        (xy 127.085987 74.214013)
+        (xy 127.024699 74.163715)
+        (xy 126.954775 74.12634)
+        (xy 126.878904 74.103324)
+        (xy 126.819769 74.0975)
+        (xy 126.819759 74.0975)
+        (xy 126.8 74.095554)
+        (xy 126.780241 74.0975)
+        (xy 126.628842 74.0975)
+        (xy 126.628842 73.85)
+        (xy 126.623484 73.795601)
+        (xy 126.609651 73.75)
+        (xy 126.623484 73.704399)
+        (xy 126.628842 73.65)
+        (xy 126.628842 73.35)
+        (xy 126.623484 73.295601)
+        (xy 126.609651 73.25)
+        (xy 126.623484 73.204399)
+        (xy 126.628842 73.15)
+        (xy 126.628842 72.85)
+        (xy 126.623484 72.795601)
+        (xy 126.609651 72.75)
+        (xy 126.623484 72.704399)
+        (xy 126.628842 72.65)
+        (xy 126.628842 72.35)
+        (xy 126.623484 72.295601)
+        (xy 126.609651 72.25)
+        (xy 126.623484 72.204399)
+        (xy 126.628842 72.15)
+        (xy 126.628842 71.85)
+        (xy 126.623484 71.795601)
+        (xy 126.609651 71.75)
+        (xy 126.623484 71.704399)
+        (xy 126.628842 71.65)
+        (xy 126.628842 71.35)
+        (xy 126.623484 71.295601)
+        (xy 126.607616 71.243292)
+        (xy 126.581849 71.195084)
+        (xy 126.547171 71.152829)
+        (xy 126.504916 71.118151)
+        (xy 126.456708 71.092384)
+        (xy 126.404399 71.076516)
+        (xy 126.35 71.071158)
+        (xy 126.1525 71.071158)
+        (xy 126.1525 68.018142)
+        (xy 126.3825 68.018142)
+        (xy 126.3825 68.1319)
+        (xy 126.404693 68.243471)
+        (xy 126.448226 68.34857)
+        (xy 126.511427 68.443156)
+        (xy 126.591865 68.523594)
+        (xy 126.686451 68.586795)
+        (xy 126.739582 68.608803)
+        (xy 127.321158 69.190379)
+        (xy 127.321158 70.1)
+        (xy 127.326516 70.154399)
+        (xy 127.342384 70.206708)
+        (xy 127.368151 70.254916)
+        (xy 127.402829 70.297171)
+        (xy 127.445084 70.331849)
+        (xy 127.493292 70.357616)
+        (xy 127.545601 70.373484)
+        (xy 127.6 70.378842)
+        (xy 127.9 70.378842)
+        (xy 127.913971 70.377466)
+        (xy 127.914379 70.377801)
+        (xy 127.972142 70.408676)
+        (xy 128.034819 70.427689)
+        (xy 128.1 70.434109)
+        (xy 128.116875 70.4325)
+        (xy 128.2 70.349375)
+        (xy 128.2 69.55)
+        (xy 128.18 69.55)
+        (xy 128.18 69.45)
+        (xy 128.2 69.45)
+        (xy 128.2 68.650625)
+        (xy 128.116875 68.5675)
+        (xy 128.1 68.565891)
+        (xy 128.034819 68.572311)
+        (xy 127.972142 68.591324)
+        (xy 127.914379 68.622199)
+        (xy 127.913971 68.622534)
+        (xy 127.9 68.621158)
+        (xy 127.890379 68.621158)
+        (xy 127.514541 68.245321)
+        (xy 127.515307 68.243471)
+        (xy 127.5375 68.1319)
+        (xy 127.5375 68.018142)
+        (xy 127.515307 67.906571)
+        (xy 127.471774 67.801472)
+        (xy 127.408573 67.706886)
+        (xy 127.328135 67.626448)
+        (xy 127.233549 67.563247)
+        (xy 127.12845 67.519714)
+        (xy 127.016879 67.497521)
+        (xy 126.903121 67.497521)
+        (xy 126.79155 67.519714)
+        (xy 126.686451 67.563247)
+        (xy 126.591865 67.626448)
+        (xy 126.511427 67.706886)
+        (xy 126.448226 67.801472)
+        (xy 126.404693 67.906571)
+        (xy 126.3825 68.018142)
+        (xy 126.1525 68.018142)
+        (xy 126.1525 66.87672)
+        (xy 127.884744 65.144477)
+        (xy 128.087367 65.228406)
+        (xy 128.334177 65.2775)
+        (xy 128.585823 65.2775)
+        (xy 128.832633 65.228406)
+        (xy 129.065123 65.132106)
+        (xy 129.274359 64.992299)
+        (xy 129.452299 64.814359)
+        (xy 129.592106 64.605123)
+        (xy 129.688406 64.372633)
+        (xy 129.701212 64.308253)
+        (xy 129.761994 64.510018)
+        (xy 129.885282 64.741742)
+        (xy 129.888135 64.746013)
+        (xy 130.077349 64.851941)
+        (xy 130.929289 64)
+        (xy 130.077349 63.148059)
+        (xy 129.888135 63.253987)
+        (xy 129.76396 63.485235)
+        (xy 129.701082 63.691094)
+        (xy 129.688406 63.627367)
+        (xy 129.592106 63.394877)
+        (xy 129.452299 63.185641)
+        (xy 129.344007 63.077349)
+        (xy 130.148059 63.077349)
+        (xy 131 63.929289)
+        (xy 131.851941 63.077349)
+        (xy 131.746013 62.888135)
+        (xy 131.514765 62.76396)
+        (xy 131.263734 62.687285)
+        (xy 131.002568 62.661057)
+        (xy 130.741304 62.686283)
+        (xy 130.489982 62.761994)
+        (xy 130.258258 62.885282)
+        (xy 130.253987 62.888135)
+        (xy 130.148059 63.077349)
+        (xy 129.344007 63.077349)
+        (xy 129.274359 63.007701)
+        (xy 129.065123 62.867894)
+        (xy 128.832633 62.771594)
+        (xy 128.585823 62.7225)
+        (xy 128.334177 62.7225)
+        (xy 128.087367 62.771594)
+        (xy 127.854877 62.867894)
+        (xy 127.645641 63.007701)
+        (xy 127.467701 63.185641)
+        (xy 127.327894 63.394877)
+        (xy 127.231594 63.627367)
+        (xy 127.19 63.836472)
+        (xy 127.148406 63.627367)
+        (xy 127.052106 63.394877)
+        (xy 126.912299 63.185641)
+        (xy 126.734359 63.007701)
+        (xy 126.525123 62.867894)
+        (xy 126.292633 62.771594)
+        (xy 126.045823 62.7225)
+        (xy 125.794177 62.7225)
+        (xy 125.547367 62.771594)
+        (xy 125.314877 62.867894)
+        (xy 125.105641 63.007701)
+        (xy 124.927701 63.185641)
+        (xy 124.787894 63.394877)
+        (xy 124.691594 63.627367)
+        (xy 124.6425 63.874177)
+        (xy 124.6425 64.125823)
+        (xy 124.691594 64.372633)
+        (xy 124.787894 64.605123)
+        (xy 124.927701 64.814359)
+        (xy 125.105641 64.992299)
+        (xy 125.314877 65.132106)
+        (xy 125.547367 65.228406)
+        (xy 125.794177 65.2775)
+        (xy 126.045823 65.2775)
+        (xy 126.292633 65.228406)
+        (xy 126.525123 65.132106)
+        (xy 126.734359 64.992299)
+        (xy 126.912299 64.814359)
+        (xy 127.052106 64.605123)
+        (xy 127.148406 64.372633)
+        (xy 127.19 64.163528)
+        (xy 127.231594 64.372633)
+        (xy 127.315523 64.575256)
+        (xy 125.479367 66.411413)
+        (xy 125.464014 66.424013)
+        (xy 125.451414 66.439366)
+        (xy 125.451411 66.439369)
+        (xy 125.413715 66.485302)
+        (xy 125.382702 66.543325)
+        (xy 125.376341 66.555225)
+        (xy 125.353325 66.631096)
+        (xy 125.349032 66.674687)
+        (xy 125.345554 66.71)
+        (xy 125.347501 66.729769)
+        (xy 125.3475 71.071158)
+        (xy 125.15 71.071158)
+        (xy 125.095601 71.076516)
+        (xy 125.043292 71.092384)
+        (xy 124.995084 71.118151)
+        (xy 124.952829 71.152829)
+        (xy 124.918151 71.195084)
+        (xy 124.892384 71.243292)
+        (xy 124.876516 71.295601)
+        (xy 124.871158 71.35)
+        (xy 124.871158 71.65)
+        (xy 124.876516 71.704399)
+        (xy 124.890349 71.75)
+        (xy 124.876516 71.795601)
+        (xy 124.871158 71.85)
+        (xy 124.871158 72.15)
+        (xy 124.876516 72.204399)
+        (xy 124.890349 72.25)
+        (xy 124.876516 72.295601)
+        (xy 124.871158 72.35)
+        (xy 124.871158 72.65)
+        (xy 124.876516 72.704399)
+        (xy 124.890349 72.75)
+        (xy 124.876516 72.795601)
+        (xy 124.871158 72.85)
+        (xy 124.871158 73.15)
+        (xy 124.876516 73.204399)
+        (xy 124.890349 73.25)
+        (xy 124.876516 73.295601)
+        (xy 124.871158 73.35)
+        (xy 124.871158 73.65)
+        (xy 124.876516 73.704399)
+        (xy 124.890349 73.75)
+        (xy 124.876516 73.795601)
+        (xy 124.871158 73.85)
+        (xy 124.871158 74.15)
+        (xy 124.876516 74.204399)
+        (xy 124.890349 74.25)
+        (xy 124.876516 74.295601)
+        (xy 124.871158 74.35)
+        (xy 124.871158 74.65)
+        (xy 124.876516 74.704399)
+        (xy 124.890349 74.75)
+        (xy 124.876516 74.795601)
+        (xy 124.871158 74.85)
+        (xy 124.871158 75.15)
+        (xy 124.876516 75.204399)
+        (xy 124.890349 75.25)
+        (xy 124.876516 75.295601)
+        (xy 124.871158 75.35)
+        (xy 124.871158 75.401937)
+        (xy 124.4025 74.93328)
+        (xy 124.4025 63.16672)
+        (xy 128.166721 59.4025)
+        (xy 145.580241 59.4025)
+        (xy 145.6 59.404446)
+        (xy 145.619759 59.4025)
+        (xy 145.619769 59.4025)
+        (xy 145.678904 59.396676)
+        (xy 145.754775 59.37366)
+        (xy 145.824699 59.336285)
+        (xy 145.885987 59.285987)
+        (xy 145.898591 59.270629)
+        (xy 147.770634 57.398587)
+        (xy 147.785987 57.385987)
+        (xy 147.81944 57.345225)
+        (xy 147.836286 57.324699)
+        (xy 147.87366 57.254775)
+        (xy 147.886025 57.214013)
+        (xy 147.896676 57.178904)
+        (xy 147.9025 57.119769)
+        (xy 147.9025 57.119759)
+        (xy 147.904446 57.1)
+        (xy 147.9025 57.080241)
+        (xy 147.9025 54.790842)
+        (xy 148.262 54.790842)
+        (xy 148.316399 54.785484)
+        (xy 148.368708 54.769616)
+        (xy 148.416916 54.743849)
+        (xy 148.459171 54.709171)
+        (xy 148.493849 54.666916)
+        (xy 148.519616 54.618708)
+        (xy 148.535484 54.566399)
+        (xy 148.540842 54.512)
+        (xy 148.540842 52.988)
+        (xy 148.535484 52.933601)
+        (xy 148.519616 52.881292)
+        (xy 148.493849 52.833084)
+        (xy 148.459171 52.790829)
+        (xy 148.416916 52.756151)
+        (xy 148.368708 52.730384)
+        (xy 148.316399 52.714516)
+        (xy 148.262 52.709158)
+        (xy 146.738 52.709158)
+        (xy 146.683601 52.714516)
+        (xy 146.631292 52.730384)
+        (xy 146.583084 52.756151)
+        (xy 146.540829 52.790829)
+        (xy 146.506151 52.833084)
+        (xy 146.480384 52.881292)
+        (xy 146.464516 52.933601)
+        (xy 146.459158 52.988)
+        (xy 146.459158 54.512)
+        (xy 146.464516 54.566399)
+        (xy 146.480384 54.618708)
+        (xy 146.506151 54.666916)
+        (xy 146.540829 54.709171)
+        (xy 146.583084 54.743849)
+        (xy 146.631292 54.769616)
+        (xy 146.683601 54.785484)
+        (xy 146.738 54.790842)
+        (xy 147.0975 54.790842)
+        (xy 147.097501 56.933278)
+        (xy 145.43328 58.5975)
+        (xy 144.22171 58.5975)
+        (xy 145.230634 57.588577)
+        (xy 145.245987 57.575977)
+        (xy 145.259999 57.558904)
+        (xy 145.296286 57.514689)
+        (xy 145.33366 57.444765)
+        (xy 145.33704 57.433624)
+        (xy 145.356676 57.368894)
+        (xy 145.3625 57.309759)
+        (xy 145.3625 57.309749)
+        (xy 145.364446 57.28999)
+        (xy 145.3625 57.270231)
+        (xy 145.3625 54.708426)
+        (xy 145.452388 54.671193)
+        (xy 145.622643 54.557433)
+        (xy 145.767433 54.412643)
+        (xy 145.881193 54.242388)
+        (xy 145.959553 54.053211)
+        (xy 145.9995 53.852382)
+        (xy 145.9995 53.647618)
+        (xy 145.959553 53.446789)
+        (xy 145.881193 53.257612)
+        (xy 145.767433 53.087357)
+        (xy 145.622643 52.942567)
+        (xy 145.452388 52.828807)
+        (xy 145.263211 52.750447)
+        (xy 145.062382 52.7105)
+        (xy 144.857618 52.7105)
+        (xy 144.656789 52.750447)
+        (xy 144.467612 52.828807)
+        (xy 144.297357 52.942567)
+        (xy 144.152567 53.087357)
+        (xy 144.038807 53.257612)
+        (xy 143.960447 53.446789)
+        (xy 143.9205 53.647618)
+        (xy 143.9205 53.852382)
+        (xy 143.960447 54.053211)
+        (xy 144.038807 54.242388)
+        (xy 144.152567 54.412643)
+        (xy 144.297357 54.557433)
+        (xy 144.467612 54.671193)
+        (xy 144.5575 54.708426)
+        (xy 144.557501 57.123268)
+        (xy 143.533281 58.147489)
+        (xy 142.02171 58.147489)
+        (xy 142.690634 57.478566)
+        (xy 142.705987 57.465966)
+        (xy 142.723387 57.444765)
+        (xy 142.756285 57.404678)
+        (xy 142.79366 57.334754)
+        (xy 142.797196 57.323097)
+        (xy 142.816676 57.258883)
+        (xy 142.8225 57.199748)
+        (xy 142.8225 57.199738)
+        (xy 142.824446 57.179979)
+        (xy 142.8225 57.16022)
+        (xy 142.8225 54.708426)
+        (xy 142.912388 54.671193)
+        (xy 143.082643 54.557433)
+        (xy 143.227433 54.412643)
+        (xy 143.341193 54.242388)
+        (xy 143.419553 54.053211)
+        (xy 143.4595 53.852382)
+        (xy 143.4595 53.647618)
+        (xy 143.419553 53.446789)
+        (xy 143.341193 53.257612)
+        (xy 143.227433 53.087357)
+        (xy 143.082643 52.942567)
+        (xy 142.912388 52.828807)
+        (xy 142.723211 52.750447)
+        (xy 142.522382 52.7105)
+        (xy 142.317618 52.7105)
+        (xy 142.116789 52.750447)
+        (xy 141.927612 52.828807)
+        (xy 141.757357 52.942567)
+        (xy 141.612567 53.087357)
+        (xy 141.498807 53.257612)
+        (xy 141.420447 53.446789)
+        (xy 141.3805 53.647618)
+        (xy 141.3805 53.852382)
+        (xy 141.420447 54.053211)
+        (xy 141.498807 54.242388)
+        (xy 141.612567 54.412643)
+        (xy 141.757357 54.557433)
+        (xy 141.927612 54.671193)
+        (xy 142.0175 54.708426)
+        (xy 142.017501 57.013257)
+        (xy 141.433259 57.5975)
+        (xy 139.62171 57.5975)
+        (xy 140.150634 57.068577)
+        (xy 140.165987 57.055977)
+        (xy 140.188669 57.02834)
+        (xy 140.216285 56.994689)
+        (xy 140.242724 56.945225)
+        (xy 140.25366 56.924765)
+        (xy 140.276676 56.848894)
+        (xy 140.2825 56.789759)
+        (xy 140.2825 56.78975)
+        (xy 140.284446 56.769991)
+        (xy 140.2825 56.750232)
+        (xy 140.2825 54.708426)
+        (xy 140.372388 54.671193)
+        (xy 140.542643 54.557433)
+        (xy 140.687433 54.412643)
+        (xy 140.801193 54.242388)
+        (xy 140.879553 54.053211)
+        (xy 140.9195 53.852382)
+        (xy 140.9195 53.647618)
+        (xy 140.879553 53.446789)
+        (xy 140.801193 53.257612)
+        (xy 140.687433 53.087357)
+        (xy 140.542643 52.942567)
+        (xy 140.372388 52.828807)
+        (xy 140.183211 52.750447)
+        (xy 139.982382 52.7105)
+        (xy 139.777618 52.7105)
+        (xy 139.576789 52.750447)
+        (xy 139.387612 52.828807)
+        (xy 139.217357 52.942567)
+        (xy 139.072567 53.087357)
+        (xy 138.958807 53.257612)
+        (xy 138.880447 53.446789)
+        (xy 138.8405 53.647618)
+        (xy 138.8405 53.852382)
+        (xy 138.880447 54.053211)
+        (xy 138.958807 54.242388)
+        (xy 139.072567 54.412643)
+        (xy 139.217357 54.557433)
+        (xy 139.387612 54.671193)
+        (xy 139.4775 54.708426)
+        (xy 139.477501 56.603268)
+        (xy 138.98327 57.0975)
+        (xy 127.610527 57.0975)
+        (xy 127.590768 57.095554)
+        (xy 127.571009 57.0975)
+        (xy 127.570999 57.0975)
+        (xy 127.511864 57.103324)
+        (xy 127.457654 57.119769)
+        (xy 127.435992 57.12634)
+        (xy 127.366069 57.163715)
+        (xy 127.320136 57.201411)
+        (xy 127.320134 57.201413)
+        (xy 127.304781 57.214013)
+        (xy 127.292181 57.229366)
+        (xy 122.379336 62.142212)
+        (xy 122.363983 62.154812)
+        (xy 122.351383 62.170165)
+        (xy 122.35138 62.170168)
+        (xy 122.313684 62.216101)
+        (xy 122.306741 62.229091)
+        (xy 122.27631 62.286024)
+        (xy 122.253294 62.361895)
+        (xy 122.249295 62.402501)
+        (xy 122.245523 62.440799)
+        (xy 122.24747 62.460568)
+        (xy 122.247468 75.766619)
+        (xy 122.245522 75.786378)
+        (xy 120.278842 75.786378)
+        (xy 120.278842 74.9)
+        (xy 120.273484 74.845601)
+        (xy 120.257616 74.793292)
+        (xy 120.231849 74.745084)
+        (xy 120.197171 74.702829)
+        (xy 120.154916 74.668151)
+        (xy 120.106708 74.642384)
+        (xy 120.054399 74.626516)
+        (xy 120 74.621158)
+        (xy 118 74.621158)
+        (xy 117.945601 74.626516)
+        (xy 117.893292 74.642384)
+        (xy 117.845084 74.668151)
+        (xy 117.802829 74.702829)
+        (xy 117.768151 74.745084)
+        (xy 117.742384 74.793292)
+        (xy 117.726516 74.845601)
+        (xy 117.721158 74.9)
+        (xy 104.348451 74.9)
+        (xy 104.39599 74.860986)
+        (xy 104.408594 74.845628)
+        (xy 105.351723 73.9025)
+        (xy 117.721158 73.9025)
+        (xy 117.721158 74.1)
+        (xy 117.726516 74.154399)
+        (xy 117.742384 74.206708)
+        (xy 117.768151 74.254916)
+        (xy 117.802829 74.297171)
+        (xy 117.845084 74.331849)
+        (xy 117.893292 74.357616)
+        (xy 117.945601 74.373484)
+        (xy 118 74.378842)
+        (xy 120 74.378842)
+        (xy 120.054399 74.373484)
+        (xy 120.106708 74.357616)
+        (xy 120.154916 74.331849)
+        (xy 120.197171 74.297171)
+        (xy 120.231849 74.254916)
+        (xy 120.257616 74.206708)
+        (xy 120.273484 74.154399)
+        (xy 120.278842 74.1)
+        (xy 120.278842 73.9025)
+        (xy 120.680241 73.9025)
+        (xy 120.7 73.904446)
+        (xy 120.719759 73.9025)
+        (xy 120.719769 73.9025)
+        (xy 120.778904 73.896676)
+        (xy 120.842514 73.877379)
+        (xy 120.843121 73.8775)
+        (xy 120.956879 73.8775)
+        (xy 121.06845 73.855307)
+        (xy 121.173549 73.811774)
+        (xy 121.268135 73.748573)
+        (xy 121.348573 73.668135)
+        (xy 121.411774 73.573549)
+        (xy 121.455307 73.46845)
+        (xy 121.4775 73.356879)
+        (xy 121.4775 73.243121)
+        (xy 121.455307 73.13155)
+        (xy 121.411774 73.026451)
+        (xy 121.348573 72.931865)
+        (xy 121.268135 72.851427)
+        (xy 121.173549 72.788226)
+        (xy 121.06845 72.744693)
+        (xy 120.956879 72.7225)
+        (xy 120.843121 72.7225)
+        (xy 120.73155 72.744693)
+        (xy 120.626451 72.788226)
+        (xy 120.531865 72.851427)
+        (xy 120.451427 72.931865)
+        (xy 120.388226 73.026451)
+        (xy 120.358797 73.0975)
+        (xy 120.278842 73.0975)
+        (xy 120.278842 72.9)
+        (xy 120.273484 72.845601)
+        (xy 120.257616 72.793292)
+        (xy 120.231849 72.745084)
+        (xy 120.197171 72.702829)
+        (xy 120.154916 72.668151)
+        (xy 120.106708 72.642384)
+        (xy 120.054399 72.626516)
+        (xy 120 72.621158)
+        (xy 118 72.621158)
+        (xy 117.945601 72.626516)
+        (xy 117.893292 72.642384)
+        (xy 117.845084 72.668151)
+        (xy 117.802829 72.702829)
+        (xy 117.768151 72.745084)
+        (xy 117.742384 72.793292)
+        (xy 117.726516 72.845601)
+        (xy 117.721158 72.9)
+        (xy 117.721158 73.0975)
+        (xy 105.20476 73.0975)
+        (xy 105.185001 73.095554)
+        (xy 105.165242 73.0975)
+        (xy 105.165233 73.0975)
+        (xy 105.106098 73.103324)
+        (xy 105.030227 73.12634)
+        (xy 104.973092 73.156879)
+        (xy 104.960303 73.163715)
+        (xy 104.91437 73.201411)
+        (xy 104.914368 73.201413)
+        (xy 104.899015 73.214013)
+        (xy 104.886415 73.229366)
+        (xy 104.278842 73.83694)
+        (xy 104.278842 72.9)
+        (xy 104.273484 72.845601)
+        (xy 104.257616 72.793292)
+        (xy 104.231849 72.745084)
+        (xy 104.197171 72.702829)
+        (xy 104.154916 72.668151)
+        (xy 104.106708 72.642384)
+        (xy 104.054399 72.626516)
+        (xy 104 72.621158)
+        (xy 102 72.621158)
+        (xy 101.945601 72.626516)
+        (xy 101.893292 72.642384)
+        (xy 101.845084 72.668151)
+        (xy 101.802829 72.702829)
+        (xy 101.768151 72.745084)
+        (xy 101.742384 72.793292)
+        (xy 101.726516 72.845601)
+        (xy 101.721158 72.9)
+        (xy 101.721158 74.1)
+        (xy 101.726516 74.154399)
+        (xy 101.732007 74.172499)
+        (xy 97.44172 74.172499)
+        (xy 96.098589 72.829369)
+        (xy 96.085987 72.814013)
+        (xy 96.024699 72.763715)
+        (xy 95.954775 72.72634)
+        (xy 95.878904 72.703324)
+        (xy 95.819769 72.6975)
+        (xy 95.819759 72.6975)
+        (xy 95.8 72.695554)
+        (xy 95.780241 72.6975)
+        (xy 94.516035 72.6975)
+        (xy 94.432106 72.494877)
+        (xy 94.292299 72.285641)
+        (xy 94.114359 72.107701)
+        (xy 93.905123 71.967894)
+        (xy 93.672633 71.871594)
+        (xy 93.463528 71.83)
+        (xy 93.672633 71.788406)
+        (xy 93.905123 71.692106)
+        (xy 94.114359 71.552299)
+        (xy 94.292299 71.374359)
+        (xy 94.432106 71.165123)
+        (xy 94.516035 70.9625)
+        (xy 95.045251 70.9625)
+        (xy 95.06501 70.964446)
+        (xy 95.084769 70.9625)
+        (xy 95.084779 70.9625)
+        (xy 95.143914 70.956676)
+        (xy 95.219785 70.93366)
+        (xy 95.289709 70.896285)
+        (xy 95.350997 70.845987)
+        (xy 95.363601 70.830629)
+        (xy 95.46672 70.72751)
+        (xy 101.782574 70.72751)
+        (xy 101.768151 70.745084)
+        (xy 101.742384 70.793292)
+        (xy 101.726516 70.845601)
+        (xy 101.721158 70.9)
+        (xy 101.721158 72.1)
+        (xy 101.726516 72.154399)
+        (xy 101.742384 72.206708)
+        (xy 101.768151 72.254916)
+        (xy 101.802829 72.297171)
+        (xy 101.845084 72.331849)
+        (xy 101.893292 72.357616)
+        (xy 101.945601 72.373484)
+        (xy 102 72.378842)
+        (xy 104 72.378842)
+        (xy 104.054399 72.373484)
+        (xy 104.106708 72.357616)
+        (xy 104.154916 72.331849)
+        (xy 104.197171 72.297171)
+        (xy 104.231849 72.254916)
+        (xy 104.257616 72.206708)
+        (xy 104.273484 72.154399)
+        (xy 104.278842 72.1)
+        (xy 104.278842 72.033475)
+        (xy 104.33155 72.055307)
+        (xy 104.443121 72.0775)
+        (xy 104.556879 72.0775)
+        (xy 104.66845 72.055307)
+        (xy 104.773549 72.011774)
+        (xy 104.868135 71.948573)
+        (xy 104.948573 71.868135)
+        (xy 105.011774 71.773549)
+        (xy 105.055307 71.66845)
+        (xy 105.062594 71.631815)
+        (xy 105.201413 71.770634)
+        (xy 105.214013 71.785987)
+        (xy 105.229366 71.798587)
+        (xy 105.229368 71.798589)
+        (xy 105.258504 71.8225)
+        (xy 105.275301 71.836285)
+        (xy 105.345225 71.87366)
+        (xy 105.421096 71.896676)
+        (xy 105.480231 71.9025)
+        (xy 105.480241 71.9025)
+        (xy 105.5 71.904446)
+        (xy 105.519759 71.9025)
+        (xy 117.721158 71.9025)
+        (xy 117.721158 72.1)
+        (xy 117.726516 72.154399)
+        (xy 117.742384 72.206708)
+        (xy 117.768151 72.254916)
+        (xy 117.802829 72.297171)
+        (xy 117.845084 72.331849)
+        (xy 117.893292 72.357616)
+        (xy 117.945601 72.373484)
+        (xy 118 72.378842)
+        (xy 120 72.378842)
+        (xy 120.054399 72.373484)
+        (xy 120.106708 72.357616)
+        (xy 120.154916 72.331849)
+        (xy 120.197171 72.297171)
+        (xy 120.231849 72.254916)
+        (xy 120.257616 72.206708)
+        (xy 120.273484 72.154399)
+        (xy 120.278842 72.1)
+        (xy 120.278842 71.9025)
+        (xy 120.385792 71.9025)
+        (xy 120.431865 71.948573)
+        (xy 120.526451 72.011774)
+        (xy 120.63155 72.055307)
+        (xy 120.743121 72.0775)
+        (xy 120.856879 72.0775)
+        (xy 120.96845 72.055307)
+        (xy 121.073549 72.011774)
+        (xy 121.168135 71.948573)
+        (xy 121.248573 71.868135)
+        (xy 121.311774 71.773549)
+        (xy 121.355307 71.66845)
+        (xy 121.3775 71.556879)
+        (xy 121.3775 71.443121)
+        (xy 121.355307 71.33155)
+        (xy 121.311774 71.226451)
+        (xy 121.248573 71.131865)
+        (xy 121.168135 71.051427)
+        (xy 121.073549 70.988226)
+        (xy 120.96845 70.944693)
+        (xy 120.856879 70.9225)
+        (xy 120.743121 70.9225)
+        (xy 120.63155 70.944693)
+        (xy 120.526451 70.988226)
+        (xy 120.431865 71.051427)
+        (xy 120.385792 71.0975)
+        (xy 120.278842 71.0975)
+        (xy 120.278842 70.9)
+        (xy 120.273484 70.845601)
+        (xy 120.257616 70.793292)
+        (xy 120.231849 70.745084)
+        (xy 120.197171 70.702829)
+        (xy 120.154916 70.668151)
+        (xy 120.106708 70.642384)
+        (xy 120.054399 70.626516)
+        (xy 120 70.621158)
+        (xy 118 70.621158)
+        (xy 117.945601 70.626516)
+        (xy 117.893292 70.642384)
+        (xy 117.845084 70.668151)
+        (xy 117.802829 70.702829)
+        (xy 117.768151 70.745084)
+        (xy 117.742384 70.793292)
+        (xy 117.726516 70.845601)
+        (xy 117.721158 70.9)
+        (xy 117.721158 71.0975)
+        (xy 105.666721 71.0975)
+        (xy 104.64672 70.0775)
+        (xy 121 70.0775)
+        (xy 121.015119 70.076011)
+        (xy 121.029658 70.071601)
+        (xy 121.043057 70.064439)
+        (xy 121.054801 70.054801)
+        (xy 121.064439 70.043057)
+        (xy 121.071601 70.029658)
+        (xy 121.076011 70.015119)
+        (xy 121.0775 70)
+        (xy 121.0775 60)
+        (xy 121.076011 59.984881)
+        (xy 121.071601 59.970342)
+        (xy 121.064439 59.956943)
+        (xy 121.054801 59.945199)
+        (xy 121.043057 59.935561)
+        (xy 121.029658 59.928399)
+        (xy 121.015119 59.923989)
+        (xy 121 59.9225)
+        (xy 100 59.9225)
+        (xy 99.984881 59.923989)
+        (xy 99.970342 59.928399)
+        (xy 99.956943 59.935561)
+        (xy 99.945199 59.945199)
+        (xy 99.935561 59.956943)
+        (xy 99.928399 59.970342)
+        (xy 99.923989 59.984881)
+        (xy 99.9225 60)
+        (xy 99.9225 69.92251)
+        (xy 95.319758 69.92251)
+        (xy 95.299999 69.920564)
+        (xy 95.28024 69.92251)
+        (xy 95.280231 69.92251)
+        (xy 95.221096 69.928334)
+        (xy 95.145225 69.95135)
+        (xy 95.075301 69.988725)
+        (xy 95.014013 70.039023)
+        (xy 95.001409 70.054381)
+        (xy 94.89829 70.1575)
+        (xy 94.516035 70.1575)
+        (xy 94.432106 69.954877)
+        (xy 94.292299 69.745641)
+        (xy 94.114359 69.567701)
+        (xy 93.905123 69.427894)
+        (xy 93.672633 69.331594)
+        (xy 93.425823 69.2825)
+        (xy 93.174177 69.2825)
+        (xy 92.927367 69.331594)
+        (xy 92.694877 69.427894)
+        (xy 92.485641 69.567701)
+        (xy 92.307701 69.745641)
+        (xy 92.167894 69.954877)
+        (xy 92.071594 70.187367)
+        (xy 92.0225 70.434177)
+        (xy 90.2825 70.434177)
+        (xy 90.2825 52.800309)
+        (xy 90.9725 52.800309)
+        (xy 90.9725 53.199691)
+        (xy 91.050416 53.5914)
+        (xy 91.203253 53.960381)
+        (xy 91.425138 54.292456)
+        (xy 91.707544 54.574862)
+        (xy 92.039619 54.796747)
+        (xy 92.4086 54.949584)
+        (xy 92.800309 55.0275)
+        (xy 93.199691 55.0275)
+        (xy 93.5914 54.949584)
+        (xy 93.960381 54.796747)
+        (xy 94.025282 54.753381)
+        (xy 119.06733 54.753381)
+        (xy 119.144676 54.918223)
+        (xy 119.335444 55.018673)
+        (xy 119.542142 55.079975)
+        (xy 119.756829 55.099774)
+        (xy 119.971253 55.07731)
+        (xy 120.177175 55.013445)
+        (xy 120.355324 54.918223)
+        (xy 120.43267 54.753381)
+        (xy 119.75 54.070711)
+        (xy 119.06733 54.753381)
+        (xy 94.025282 54.753381)
+        (xy 94.292456 54.574862)
+        (xy 94.574862 54.292456)
+        (xy 94.765711 54.006829)
+        (xy 118.650226 54.006829)
+        (xy 118.67269 54.221253)
+        (xy 118.736555 54.427175)
+        (xy 118.831777 54.605324)
+        (xy 118.996619 54.68267)
+        (xy 119.679289 54)
+        (xy 119.820711 54)
+        (xy 120.503381 54.68267)
+        (xy 120.668223 54.605324)
+        (xy 120.768673 54.414556)
+        (xy 120.829975 54.207858)
+        (xy 120.849774 53.993171)
+        (xy 120.839764 53.897618)
+        (xy 121.2505 53.897618)
+        (xy 121.2505 54.102382)
+        (xy 121.290447 54.303211)
+        (xy 121.368807 54.492388)
+        (xy 121.482567 54.662643)
+        (xy 121.627357 54.807433)
+        (xy 121.797612 54.921193)
+        (xy 121.986789 54.999553)
+        (xy 122.187618 55.0395)
+        (xy 122.392382 55.0395)
+        (xy 122.593211 54.999553)
+        (xy 122.782388 54.921193)
+        (xy 122.952643 54.807433)
+        (xy 123.097433 54.662643)
+        (xy 123.211193 54.492388)
+        (xy 123.289553 54.303211)
+        (xy 123.3295 54.102382)
+        (xy 123.3295 53.897618)
+        (xy 123.289553 53.696789)
+        (xy 123.211193 53.507612)
+        (xy 123.097433 53.337357)
+        (xy 122.998076 53.238)
+        (xy 123.789158 53.238)
+        (xy 123.789158 54.762)
+        (xy 123.794516 54.816399)
+        (xy 123.810384 54.868708)
+        (xy 123.836151 54.916916)
+        (xy 123.870829 54.959171)
+        (xy 123.913084 54.993849)
+        (xy 123.961292 55.019616)
+        (xy 124.013601 55.035484)
+        (xy 124.068 55.040842)
+        (xy 125.592 55.040842)
+        (xy 125.646399 55.035484)
+        (xy 125.698708 55.019616)
+        (xy 125.746916 54.993849)
+        (xy 125.789171 54.959171)
+        (xy 125.823849 54.916916)
+        (xy 125.849616 54.868708)
+        (xy 125.865484 54.816399)
+        (xy 125.870842 54.762)
+        (xy 125.870842 54.503381)
+        (xy 128.98733 54.503381)
+        (xy 129.064676 54.668223)
+        (xy 129.255444 54.768673)
+        (xy 129.462142 54.829975)
+        (xy 129.676829 54.849774)
+        (xy 129.891253 54.82731)
+        (xy 130.097175 54.763445)
+        (xy 130.275324 54.668223)
+        (xy 130.35267 54.503381)
+        (xy 129.67 53.820711)
+        (xy 128.98733 54.503381)
+        (xy 125.870842 54.503381)
+        (xy 125.870842 53.756829)
+        (xy 128.570226 53.756829)
+        (xy 128.59269 53.971253)
+        (xy 128.656555 54.177175)
+        (xy 128.751777 54.355324)
+        (xy 128.916619 54.43267)
+        (xy 129.599289 53.75)
+        (xy 129.740711 53.75)
+        (xy 130.423381 54.43267)
+        (xy 130.588223 54.355324)
+        (xy 130.688673 54.164556)
+        (xy 130.749975 53.957858)
+        (xy 130.769774 53.743171)
+        (xy 130.759764 53.647618)
+        (xy 131.1705 53.647618)
+        (xy 131.1705 53.852382)
+        (xy 131.210447 54.053211)
+        (xy 131.288807 54.242388)
+        (xy 131.402567 54.412643)
+        (xy 131.547357 54.557433)
+        (xy 131.717612 54.671193)
+        (xy 131.906789 54.749553)
+        (xy 132.107618 54.7895)
+        (xy 132.312382 54.7895)
+        (xy 132.513211 54.749553)
+        (xy 132.702388 54.671193)
+        (xy 132.872643 54.557433)
+        (xy 133.017433 54.412643)
+        (xy 133.131193 54.242388)
+        (xy 133.209553 54.053211)
+        (xy 133.2495 53.852382)
+        (xy 133.2495 53.647618)
+        (xy 133.209553 53.446789)
+        (xy 133.131193 53.257612)
+        (xy 133.017433 53.087357)
+        (xy 132.918076 52.988)
+        (xy 133.709158 52.988)
+        (xy 133.709158 54.512)
+        (xy 133.714516 54.566399)
+        (xy 133.730384 54.618708)
+        (xy 133.756151 54.666916)
+        (xy 133.790829 54.709171)
+        (xy 133.833084 54.743849)
+        (xy 133.881292 54.769616)
+        (xy 133.933601 54.785484)
+        (xy 133.988 54.790842)
+        (xy 135.512 54.790842)
+        (xy 135.566399 54.785484)
+        (xy 135.618708 54.769616)
+        (xy 135.666916 54.743849)
+        (xy 135.709171 54.709171)
+        (xy 135.743849 54.666916)
+        (xy 135.769616 54.618708)
+        (xy 135.785484 54.566399)
+        (xy 135.790842 54.512)
+        (xy 135.790842 53.455154)
+        (xy 137.128497 52.1175)
+        (xy 171.954218 52.1175)
+        (xy 171.975736 52.135159)
+        (xy 172.089091 52.195748)
+        (xy 172.212088 52.233059)
+        (xy 172.307946 52.2425)
+        (xy 175.339727 52.2425)
+        (xy 185.46288 62.365654)
+        (xy 185.4605 62.377618)
+        (xy 185.4605 62.582382)
+        (xy 185.500447 62.783211)
+        (xy 185.578807 62.972388)
+        (xy 185.692567 63.142643)
+        (xy 185.837357 63.287433)
+        (xy 186.007612 63.401193)
+        (xy 186.196789 63.479553)
+        (xy 186.397618 63.5195)
+        (xy 186.602382 63.5195)
+        (xy 186.803211 63.479553)
+        (xy 186.992388 63.401193)
+        (xy 187.162643 63.287433)
+        (xy 187.307433 63.142643)
+        (xy 187.31421 63.1325)
+        (xy 187.609727 63.1325)
+        (xy 188.3475 63.870274)
+        (xy 188.347501 65.729725)
+        (xy 185.729727 68.3475)
+        (xy 184.556986 68.3475)
+        (xy 184.550909 68.344252)
+        (xy 184.427912 68.306941)
+        (xy 184.3 68.294343)
+        (xy 184.172089 68.306941)
+        (xy 184.049092 68.344252)
+        (xy 183.935737 68.404841)
+        (xy 183.836381 68.48638)
+        (xy 183.754841 68.585736)
+        (xy 183.71276 68.664466)
+        (xy 181.008574 71.368652)
+        (xy 181.0075 70.723125)
+        (xy 180.924375 70.64)
+        (xy 180.05 70.64)
+        (xy 180.05 71.939375)
+        (xy 180.133125 72.0225)
+        (xy 180.354071 72.023156)
+        (xy 180.346069 72.031158)
+        (xy 179.325 72.031158)
+        (xy 179.270601 72.036516)
+        (xy 179.218292 72.052384)
+        (xy 179.170084 72.078151)
+        (xy 179.127829 72.112829)
+        (xy 179.093151 72.155084)
+        (xy 179.067384 72.203292)
+        (xy 179.051516 72.255601)
+        (xy 179.046158 72.31)
+        (xy 179.046158 74.51)
+        (xy 179.051516 74.564399)
+        (xy 179.067384 74.616708)
+        (xy 179.093151 74.664916)
+        (xy 179.127829 74.707171)
+        (xy 179.170084 74.741849)
+        (xy 179.218292 74.767616)
+        (xy 179.270601 74.783484)
+        (xy 179.325 74.788842)
+        (xy 180.675 74.788842)
+        (xy 180.729399 74.783484)
+        (xy 180.753423 74.776196)
+        (xy 180.847501 74.870275)
+        (xy 180.8475 78.801158)
+        (xy 180.738 78.801158)
+        (xy 180.683601 78.806516)
+        (xy 180.631292 78.822384)
+        (xy 180.583084 78.848151)
+        (xy 180.540829 78.882829)
+        (xy 180.506151 78.925084)
+        (xy 180.480384 78.973292)
+        (xy 180.464516 79.025601)
+        (xy 180.459158 79.08)
+        (xy 180.459158 79.92)
+        (xy 180.464516 79.974399)
+        (xy 180.480384 80.026708)
+        (xy 180.506151 80.074916)
+        (xy 180.540829 80.117171)
+        (xy 180.583084 80.151849)
+        (xy 180.631292 80.177616)
+        (xy 180.683601 80.193484)
+        (xy 180.738 80.198842)
+        (xy 182.262 80.198842)
+        (xy 182.316399 80.193484)
+        (xy 182.368708 80.177616)
+        (xy 182.416916 80.151849)
+        (xy 182.459171 80.117171)
+        (xy 182.493849 80.074916)
+        (xy 182.519616 80.026708)
+        (xy 182.535484 79.974399)
+        (xy 182.540842 79.92)
+        (xy 182.540842 79.25)
+        (xy 184.365891 79.25)
+        (xy 184.3675 79.866875)
+        (xy 184.450625 79.95)
+        (xy 185.075 79.95)
+        (xy 185.075 79.000625)
+        (xy 185.175 79.000625)
+        (xy 185.175 79.95)
+        (xy 185.799375 79.95)
+        (xy 185.8825 79.866875)
+        (xy 185.884109 79.25)
+        (xy 185.877689 79.184819)
+        (xy 185.858676 79.122142)
+        (xy 185.827801 79.064379)
+        (xy 185.786251 79.013749)
+        (xy 185.735621 78.972199)
+        (xy 185.677858 78.941324)
+        (xy 185.615181 78.922311)
+        (xy 185.55 78.915891)
+        (xy 185.258125 78.9175)
+        (xy 185.175 79.000625)
+        (xy 185.075 79.000625)
+        (xy 184.991875 78.9175)
+        (xy 184.7 78.915891)
+        (xy 184.634819 78.922311)
+        (xy 184.572142 78.941324)
+        (xy 184.514379 78.972199)
+        (xy 184.463749 79.013749)
+        (xy 184.422199 79.064379)
+        (xy 184.391324 79.122142)
+        (xy 184.372311 79.184819)
+        (xy 184.365891 79.25)
+        (xy 182.540842 79.25)
+        (xy 182.540842 79.08)
+        (xy 182.535484 79.025601)
+        (xy 182.519616 78.973292)
+        (xy 182.493849 78.925084)
+        (xy 182.459171 78.882829)
+        (xy 182.416916 78.848151)
+        (xy 182.368708 78.822384)
+        (xy 182.316399 78.806516)
+        (xy 182.262 78.801158)
+        (xy 182.1525 78.801158)
+        (xy 182.1525 74.632051)
+        (xy 182.155657 74.599999)
+        (xy 182.1525 74.567946)
+        (xy 182.143059 74.472088)
+        (xy 182.105748 74.349091)
+        (xy 182.045159 74.235736)
+        (xy 181.96362 74.13638)
+        (xy 181.938715 74.115941)
+        (xy 181.022773 73.2)
+        (xy 181.722773 72.5)
+        (xy 182.715891 72.5)
+        (xy 182.722311 72.565181)
+        (xy 182.741324 72.627858)
+        (xy 182.772199 72.685621)
+        (xy 182.813749 72.736251)
+        (xy 182.864379 72.777801)
+        (xy 182.922142 72.808676)
+        (xy 182.984819 72.827689)
+        (xy 183.05 72.834109)
+        (xy 184.066875 72.8325)
+        (xy 184.15 72.749375)
+        (xy 184.15 72.05)
+        (xy 184.25 72.05)
+        (xy 184.25 72.749375)
+        (xy 184.333125 72.8325)
+        (xy 185.35 72.834109)
+        (xy 185.415181 72.827689)
+        (xy 185.477858 72.808676)
+        (xy 185.535621 72.777801)
+        (xy 185.586251 72.736251)
+        (xy 185.627801 72.685621)
+        (xy 185.658676 72.627858)
+        (xy 185.677689 72.565181)
+        (xy 185.684109 72.5)
+        (xy 185.6825 72.133125)
+        (xy 185.599375 72.05)
+        (xy 184.25 72.05)
+        (xy 184.15 72.05)
+        (xy 182.800625 72.05)
+        (xy 182.7175 72.133125)
+        (xy 182.715891 72.5)
+        (xy 181.722773 72.5)
+        (xy 182.715921 71.506853)
+        (xy 182.7175 71.866875)
+        (xy 182.800625 71.95)
+        (xy 184.15 71.95)
+        (xy 184.15 71.250625)
+        (xy 184.25 71.250625)
+        (xy 184.25 71.95)
+        (xy 185.599375 71.95)
+        (xy 185.6825 71.866875)
+        (xy 185.684109 71.5)
+        (xy 185.677689 71.434819)
+        (xy 185.658676 71.372142)
+        (xy 185.627801 71.314379)
+        (xy 185.586251 71.263749)
+        (xy 185.535621 71.222199)
+        (xy 185.477858 71.191324)
+        (xy 185.415181 71.172311)
+        (xy 185.35 71.165891)
+        (xy 184.333125 71.1675)
+        (xy 184.25 71.250625)
+        (xy 184.15 71.250625)
+        (xy 184.066875 71.1675)
+        (xy 183.056872 71.165902)
+        (xy 184.570275 69.6525)
+        (xy 185.967946 69.6525)
+        (xy 186 69.655657)
+        (xy 186.032054 69.6525)
+        (xy 186.127912 69.643059)
+        (xy 186.250909 69.605748)
+        (xy 186.364264 69.545159)
+        (xy 186.46362 69.46362)
+        (xy 186.484063 69.43871)
+        (xy 189.438715 66.484059)
+        (xy 189.46362 66.46362)
+        (xy 189.545159 66.364264)
+        (xy 189.605748 66.250909)
+        (xy 189.643059 66.127912)
+        (xy 189.6525 66.032054)
+        (xy 189.655657 66)
+        (xy 189.6525 65.967946)
+        (xy 189.6525 63.632053)
+        (xy 189.655657 63.599999)
+        (xy 189.643059 63.472087)
+        (xy 189.621553 63.401193)
+        (xy 189.605748 63.349091)
+        (xy 189.545159 63.235736)
+        (xy 189.46362 63.13638)
+        (xy 189.438716 63.115942)
+        (xy 188.364063 62.04129)
+        (xy 188.34362 62.01638)
+        (xy 188.244264 61.934841)
+        (xy 188.130909 61.874252)
+        (xy 188.007912 61.836941)
+        (xy 187.912054 61.8275)
+        (xy 187.88 61.824343)
+        (xy 187.847946 61.8275)
+        (xy 187.31421 61.8275)
+        (xy 187.307433 61.817357)
+        (xy 187.162643 61.672567)
+        (xy 186.992388 61.558807)
+        (xy 186.803211 61.480447)
+        (xy 186.602382 61.4405)
+        (xy 186.397618 61.4405)
+        (xy 186.385654 61.44288)
+        (xy 177.743083 52.800309)
+        (xy 184.9725 52.800309)
+        (xy 184.9725 53.199691)
+        (xy 185.050416 53.5914)
+        (xy 185.203253 53.960381)
+        (xy 185.425138 54.292456)
+        (xy 185.707544 54.574862)
+        (xy 186.039619 54.796747)
+        (xy 186.4086 54.949584)
+        (xy 186.800309 55.0275)
+        (xy 187.199691 55.0275)
+        (xy 187.5914 54.949584)
+        (xy 187.960381 54.796747)
+        (xy 188.292456 54.574862)
+        (xy 188.574862 54.292456)
+        (xy 188.796747 53.960381)
+        (xy 188.949584 53.5914)
+        (xy 189.0275 53.199691)
+        (xy 189.0275 52.800309)
+        (xy 188.949584 52.4086)
+        (xy 188.796747 52.039619)
+        (xy 188.574862 51.707544)
+        (xy 188.292456 51.425138)
+        (xy 187.960381 51.203253)
+        (xy 187.5914 51.050416)
+        (xy 187.199691 50.9725)
+        (xy 186.800309 50.9725)
+        (xy 186.4086 51.050416)
+        (xy 186.039619 51.203253)
+        (xy 185.707544 51.425138)
+        (xy 185.425138 51.707544)
+        (xy 185.203253 52.039619)
+        (xy 185.050416 52.4086)
+        (xy 184.9725 52.800309)
+        (xy 177.743083 52.800309)
+        (xy 176.094063 51.15129)
+        (xy 176.07362 51.12638)
+        (xy 175.974264 51.044841)
+        (xy 175.860909 50.984252)
+        (xy 175.737912 50.946941)
+        (xy 175.642054 50.9375)
+        (xy 175.61 50.934343)
+        (xy 175.577946 50.9375)
+        (xy 172.307946 50.9375)
+        (xy 172.212088 50.946941)
+        (xy 172.089091 50.984252)
+        (xy 171.975736 51.044841)
+        (xy 171.954218 51.0625)
+        (xy 136.935899 51.0625)
+        (xy 136.909999 51.059949)
+        (xy 136.884099 51.0625)
+        (xy 136.88409 51.0625)
+        (xy 136.806592 51.070133)
+        (xy 136.707158 51.100296)
+        (xy 136.615519 51.149278)
+        (xy 136.535197 51.215197)
+        (xy 136.518679 51.235324)
+        (xy 135.044846 52.709158)
+        (xy 133.988 52.709158)
+        (xy 133.933601 52.714516)
+        (xy 133.881292 52.730384)
+        (xy 133.833084 52.756151)
+        (xy 133.790829 52.790829)
+        (xy 133.756151 52.833084)
+        (xy 133.730384 52.881292)
+        (xy 133.714516 52.933601)
+        (xy 133.709158 52.988)
+        (xy 132.918076 52.988)
+        (xy 132.872643 52.942567)
+        (xy 132.702388 52.828807)
+        (xy 132.513211 52.750447)
+        (xy 132.312382 52.7105)
+        (xy 132.107618 52.7105)
+        (xy 131.906789 52.750447)
+        (xy 131.717612 52.828807)
+        (xy 131.547357 52.942567)
+        (xy 131.402567 53.087357)
+        (xy 131.288807 53.257612)
+        (xy 131.210447 53.446789)
+        (xy 131.1705 53.647618)
+        (xy 130.759764 53.647618)
+        (xy 130.74731 53.528747)
+        (xy 130.683445 53.322825)
+        (xy 130.588223 53.144676)
+        (xy 130.423381 53.06733)
+        (xy 129.740711 53.75)
+        (xy 129.599289 53.75)
+        (xy 128.916619 53.06733)
+        (xy 128.751777 53.144676)
+        (xy 128.651327 53.335444)
+        (xy 128.590025 53.542142)
+        (xy 128.570226 53.756829)
+        (xy 125.870842 53.756829)
+        (xy 125.870842 53.238)
+        (xy 125.865484 53.183601)
+        (xy 125.849616 53.131292)
+        (xy 125.823849 53.083084)
+        (xy 125.789171 53.040829)
+        (xy 125.746916 53.006151)
+        (xy 125.729083 52.996619)
+        (xy 128.98733 52.996619)
+        (xy 129.67 53.679289)
+        (xy 130.35267 52.996619)
+        (xy 130.275324 52.831777)
+        (xy 130.084556 52.731327)
+        (xy 129.877858 52.670025)
+        (xy 129.663171 52.650226)
+        (xy 129.448747 52.67269)
+        (xy 129.242825 52.736555)
+        (xy 129.064676 52.831777)
+        (xy 128.98733 52.996619)
+        (xy 125.729083 52.996619)
+        (xy 125.698708 52.980384)
+        (xy 125.646399 52.964516)
+        (xy 125.592 52.959158)
+        (xy 124.068 52.959158)
+        (xy 124.013601 52.964516)
+        (xy 123.961292 52.980384)
+        (xy 123.913084 53.006151)
+        (xy 123.870829 53.040829)
+        (xy 123.836151 53.083084)
+        (xy 123.810384 53.131292)
+        (xy 123.794516 53.183601)
+        (xy 123.789158 53.238)
+        (xy 122.998076 53.238)
+        (xy 122.952643 53.192567)
+        (xy 122.782388 53.078807)
+        (xy 122.593211 53.000447)
+        (xy 122.392382 52.9605)
+        (xy 122.187618 52.9605)
+        (xy 121.986789 53.000447)
+        (xy 121.797612 53.078807)
+        (xy 121.627357 53.192567)
+        (xy 121.482567 53.337357)
+        (xy 121.368807 53.507612)
+        (xy 121.290447 53.696789)
+        (xy 121.2505 53.897618)
+        (xy 120.839764 53.897618)
+        (xy 120.82731 53.778747)
+        (xy 120.763445 53.572825)
+        (xy 120.668223 53.394676)
+        (xy 120.503381 53.31733)
+        (xy 119.820711 54)
+        (xy 119.679289 54)
+        (xy 118.996619 53.31733)
+        (xy 118.831777 53.394676)
+        (xy 118.731327 53.585444)
+        (xy 118.670025 53.792142)
+        (xy 118.650226 54.006829)
+        (xy 94.765711 54.006829)
+        (xy 94.796747 53.960381)
+        (xy 94.949584 53.5914)
+        (xy 95.018165 53.246619)
+        (xy 119.06733 53.246619)
+        (xy 119.75 53.929289)
+        (xy 120.43267 53.246619)
+        (xy 120.355324 53.081777)
+        (xy 120.164556 52.981327)
+        (xy 119.957858 52.920025)
+        (xy 119.743171 52.900226)
+        (xy 119.528747 52.92269)
+        (xy 119.322825 52.986555)
+        (xy 119.144676 53.081777)
+        (xy 119.06733 53.246619)
+        (xy 95.018165 53.246619)
+        (xy 95.0275 53.199691)
+        (xy 95.0275 52.800309)
+        (xy 94.949584 52.4086)
+        (xy 94.796747 52.039619)
+        (xy 94.574862 51.707544)
+        (xy 94.292456 51.425138)
+        (xy 93.960381 51.203253)
+        (xy 93.5914 51.050416)
+        (xy 93.199691 50.9725)
+        (xy 92.800309 50.9725)
+        (xy 92.4086 51.050416)
+        (xy 92.039619 51.203253)
+        (xy 91.707544 51.425138)
+        (xy 91.425138 51.707544)
+        (xy 91.203253 52.039619)
+        (xy 91.050416 52.4086)
+        (xy 90.9725 52.800309)
+        (xy 90.2825 52.800309)
+        (xy 90.2825 50.2825)
+        (xy 189.7175 50.2825)
+      )
+    )
+  )
+  (zone (net 0) (net_name "") (layer "F.Cu") (tstamp a92a2575-baf3-470d-92c5-aa1fb5cc85d9) (hatch none 0.508)
+    (connect_pads (clearance 0))
+    (min_thickness 0.254)
+    (keepout (tracks not_allowed) (vias not_allowed) (pads allowed ) (copperpour not_allowed) (footprints allowed))
+    (fill (thermal_gap 0.508) (thermal_bridge_width 0.508))
+    (polygon
+      (pts
+        (xy 100 70)
+        (xy 121 70)
+        (xy 121 60)
+        (xy 100 60)
+      )
+    )
+  )
+  (zone (net 62) (net_name "/3.3V") (layer "B.Cu") (tstamp 00000000-0000-0000-0000-00006034bd6d) (hatch edge 0.508)
+    (connect_pads (clearance 0.155))
+    (min_thickness 0.155)
+    (fill yes (thermal_gap 0.4) (thermal_bridge_width 0.254))
+    (polygon
+      (pts
+        (xy 178.5 70)
+        (xy 178.5 50)
+        (xy 90 50)
+        (xy 90 100)
+        (xy 112.5 100)
+        (xy 112.5 95.5)
+        (xy 120 95.5)
+        (xy 120 100)
+        (xy 178.5 100)
+      )
+    )
+    (filled_polygon
+      (layer "B.Cu")
+      (pts
+        (xy 178.4225 99.7175)
+        (xy 121.360376 99.7175)
+        (xy 121.475883 99.682461)
+        (xy 121.645697 99.591694)
+        (xy 121.794541 99.469541)
+        (xy 121.916694 99.320697)
+        (xy 122.007461 99.150883)
+        (xy 122.063356 98.966623)
+        (xy 122.0775 98.823014)
+        (xy 122.0775 97.826985)
+        (xy 122.063356 97.683377)
+        (xy 122.007461 97.499117)
+        (xy 121.916694 97.329303)
+        (xy 121.794541 97.180459)
+        (xy 121.645697 97.058306)
+        (xy 121.475882 96.967539)
+        (xy 121.291622 96.911644)
+        (xy 121.1 96.892771)
+        (xy 120.908377 96.911644)
+        (xy 120.724117 96.967539)
+        (xy 120.554303 97.058306)
+        (xy 120.405459 97.180459)
+        (xy 120.283306 97.329303)
+        (xy 120.2825 97.330811)
+        (xy 120.2825 96.019187)
+        (xy 120.283307 96.020697)
+        (xy 120.40546 96.169541)
+        (xy 120.554304 96.291694)
+        (xy 120.724118 96.382461)
+        (xy 120.908378 96.438356)
+        (xy 121.1 96.457229)
+        (xy 121.291623 96.438356)
+        (xy 121.475883 96.382461)
+        (xy 121.645697 96.291694)
+        (xy 121.794541 96.169541)
+        (xy 121.916694 96.020697)
+        (xy 122.007461 95.850883)
+        (xy 122.063356 95.666623)
+        (xy 122.0775 95.523014)
+        (xy 122.0775 95.488)
+        (xy 127.629158 95.488)
+        (xy 127.629158 97.012)
+        (xy 127.634516 97.066399)
+        (xy 127.650384 97.118708)
+        (xy 127.676151 97.166916)
+        (xy 127.710829 97.209171)
+        (xy 127.753084 97.243849)
+        (xy 127.801292 97.269616)
+        (xy 127.853601 97.285484)
+        (xy 127.908 97.290842)
+        (xy 129.432 97.290842)
+        (xy 129.486399 97.285484)
+        (xy 129.538708 97.269616)
+        (xy 129.586916 97.243849)
+        (xy 129.629171 97.209171)
+        (xy 129.663849 97.166916)
+        (xy 129.689616 97.118708)
+        (xy 129.705484 97.066399)
+        (xy 129.710842 97.012)
+        (xy 129.710842 95.488)
+        (xy 129.705484 95.433601)
+        (xy 129.689616 95.381292)
+        (xy 129.663849 95.333084)
+        (xy 129.629171 95.290829)
+        (xy 129.586916 95.256151)
+        (xy 129.538708 95.230384)
+        (xy 129.486399 95.214516)
+        (xy 129.432 95.209158)
+        (xy 127.908 95.209158)
+        (xy 127.853601 95.214516)
+        (xy 127.801292 95.230384)
+        (xy 127.753084 95.256151)
+        (xy 127.710829 95.290829)
+        (xy 127.676151 95.333084)
+        (xy 127.650384 95.381292)
+        (xy 127.634516 95.433601)
+        (xy 127.629158 95.488)
+        (xy 122.0775 95.488)
+        (xy 122.0775 94.526985)
+        (xy 122.063356 94.383377)
+        (xy 122.007461 94.199117)
+        (xy 121.916694 94.029303)
+        (xy 121.794541 93.880459)
+        (xy 121.645697 93.758306)
+        (xy 121.475882 93.667539)
+        (xy 121.291622 93.611644)
+        (xy 121.1 93.592771)
+        (xy 120.908377 93.611644)
+        (xy 120.724117 93.667539)
+        (xy 120.554303 93.758306)
+        (xy 120.405459 93.880459)
+        (xy 120.283306 94.029303)
+        (xy 120.192539 94.199118)
+        (xy 120.136644 94.383378)
+        (xy 120.1225 94.526986)
+        (xy 120.1225 95.245155)
+        (xy 120.108631 95.237742)
+        (xy 120.05538 95.221588)
+        (xy 120 95.216134)
+        (xy 119.98613 95.2175)
+        (xy 112.51387 95.2175)
+        (xy 112.5 95.216134)
+        (xy 112.44462 95.221588)
+        (xy 112.391369 95.237742)
+        (xy 112.3775 95.245155)
+        (xy 112.3775 94.526985)
+        (xy 112.365301 94.403121)
+        (xy 113.8625 94.403121)
+        (xy 113.8625 94.516879)
+        (xy 113.884693 94.62845)
+        (xy 113.928226 94.733549)
+        (xy 113.991427 94.828135)
+        (xy 114.071865 94.908573)
+        (xy 114.166451 94.971774)
+        (xy 114.27155 95.015307)
+        (xy 114.383121 95.0375)
+        (xy 114.496879 95.0375)
+        (xy 114.60845 95.015307)
+        (xy 114.713549 94.971774)
+        (xy 114.808135 94.908573)
+        (xy 114.854208 94.8625)
+        (xy 117.097818 94.8625)
+        (xy 117.117577 94.864446)
+        (xy 117.137336 94.8625)
+        (xy 117.137346 94.8625)
+        (xy 117.196481 94.856676)
+        (xy 117.272352 94.83366)
+        (xy 117.342276 94.796285)
+        (xy 117.403564 94.745987)
+        (xy 117.416168 94.730629)
+        (xy 119.203676 92.943121)
+        (xy 121.7425 92.943121)
+        (xy 121.7425 93.056879)
+        (xy 121.764693 93.16845)
+        (xy 121.808226 93.273549)
+        (xy 121.871427 93.368135)
+        (xy 121.951865 93.448573)
+        (xy 122.046451 93.511774)
+        (xy 122.15155 93.555307)
+        (xy 122.263121 93.5775)
+        (xy 122.376879 93.5775)
+        (xy 122.48845 93.555307)
+        (xy 122.593549 93.511774)
+        (xy 122.688135 93.448573)
+        (xy 122.768573 93.368135)
+        (xy 122.831774 93.273549)
+        (xy 122.875307 93.16845)
+        (xy 122.8975 93.056879)
+        (xy 122.8975 92.943121)
+        (xy 122.875307 92.83155)
+        (xy 122.831774 92.726451)
+        (xy 122.768573 92.631865)
+        (xy 122.7225 92.585792)
+        (xy 122.7225 89.962822)
+        (xy 123.7225 88.962823)
+        (xy 123.7225 89.008279)
+        (xy 123.319366 89.411414)
+        (xy 123.304014 89.424013)
+        (xy 123.291414 89.439366)
+        (xy 123.291411 89.439369)
+        (xy 123.253715 89.485302)
+        (xy 123.216341 89.555225)
+        (xy 123.193325 89.631097)
+        (xy 123.185554 89.71)
+        (xy 123.187501 89.729769)
+        (xy 123.1875 91.755792)
+        (xy 123.141427 91.801865)
+        (xy 123.078226 91.896451)
+        (xy 123.034693 92.00155)
+        (xy 123.0125 92.113121)
+        (xy 123.0125 92.226879)
+        (xy 123.034693 92.33845)
+        (xy 123.078226 92.443549)
+        (xy 123.141427 92.538135)
+        (xy 123.221865 92.618573)
+        (xy 123.316451 92.681774)
+        (xy 123.42155 92.725307)
+        (xy 123.533121 92.7475)
+        (xy 123.646879 92.7475)
+        (xy 123.75845 92.725307)
+        (xy 123.863549 92.681774)
+        (xy 123.958135 92.618573)
+        (xy 124.038573 92.538135)
+        (xy 124.101774 92.443549)
+        (xy 124.145307 92.33845)
+        (xy 124.1675 92.226879)
+        (xy 124.1675 92.113121)
+        (xy 124.145307 92.00155)
+        (xy 124.101774 91.896451)
+        (xy 124.038573 91.801865)
+        (xy 123.9925 91.755792)
+        (xy 123.9925 89.87672)
+        (xy 124.291721 89.5775)
+        (xy 124.356879 89.5775)
+        (xy 124.46845 89.555307)
+        (xy 124.573549 89.511774)
+        (xy 124.668135 89.448573)
+        (xy 124.748573 89.368135)
+        (xy 124.811774 89.273549)
+        (xy 124.855307 89.16845)
+        (xy 124.8775 89.056879)
+        (xy 124.8775 88.943121)
+        (xy 124.855307 88.83155)
+        (xy 124.811774 88.726451)
+        (xy 124.748573 88.631865)
+        (xy 124.668135 88.551427)
+        (xy 124.573549 88.488226)
+        (xy 124.480867 88.449836)
+        (xy 124.539825 88.3616)
+        (xy 124.583358 88.256501)
+        (xy 124.605551 88.14493)
+        (xy 124.605551 88.031172)
+        (xy 124.583358 87.919601)
+        (xy 124.539825 87.814502)
+        (xy 124.476624 87.719916)
+        (xy 124.396186 87.639478)
+        (xy 124.3016 87.576277)
+        (xy 124.196501 87.532744)
+        (xy 124.08493 87.510551)
+        (xy 123.971172 87.510551)
+        (xy 123.859601 87.532744)
+        (xy 123.754502 87.576277)
+        (xy 123.659916 87.639478)
+        (xy 123.579478 87.719916)
+        (xy 123.516277 87.814502)
+        (xy 123.472744 87.919601)
+        (xy 123.450551 88.031172)
+        (xy 123.450551 88.09633)
+        (xy 122.049367 89.497515)
+        (xy 122.034014 89.510115)
+        (xy 122.021414 89.525468)
+        (xy 122.021411 89.525471)
+        (xy 121.983715 89.571404)
+        (xy 121.951809 89.631097)
+        (xy 121.946341 89.641327)
+        (xy 121.927534 89.703325)
+        (xy 121.923325 89.717199)
+        (xy 121.915554 89.796102)
+        (xy 121.917501 89.815871)
+        (xy 121.9175 92.585792)
+        (xy 121.871427 92.631865)
+        (xy 121.808226 92.726451)
+        (xy 121.764693 92.83155)
+        (xy 121.7425 92.943121)
+        (xy 119.203676 92.943121)
+        (xy 119.650635 92.496163)
+        (xy 119.665987 92.483564)
+        (xy 119.716285 92.422276)
+        (xy 119.75366 92.352352)
+        (xy 119.776676 92.276481)
+        (xy 119.7825 92.217346)
+        (xy 119.7825 92.217337)
+        (xy 119.784446 92.197578)
+        (xy 119.7825 92.177819)
+        (xy 119.7825 80)
+        (xy 122.17019 80)
+        (xy 122.179409 80.093606)
+        (xy 122.206713 80.183615)
+        (xy 122.251053 80.266568)
+        (xy 122.310723 80.339277)
+        (xy 122.383432 80.398947)
+        (xy 122.466385 80.443287)
+        (xy 122.556394 80.470591)
+        (xy 122.65 80.47981)
+        (xy 123.231125 80.4775)
+        (xy 123.3505 80.358125)
+        (xy 123.3505 79.6245)
+        (xy 123.4495 79.6245)
+        (xy 123.4495 80.358125)
+        (xy 123.568875 80.4775)
+        (xy 124.15 80.47981)
+        (xy 124.243606 80.470591)
+        (xy 124.333615 80.443287)
+        (xy 124.416568 80.398947)
+        (xy 124.489277 80.339277)
+        (xy 124.548947 80.266568)
+        (xy 124.561637 80.242827)
+        (xy 124.601053 80.316568)
+        (xy 124.660723 80.389277)
+        (xy 124.733432 80.448947)
+        (xy 124.816385 80.493287)
+        (xy 124.906394 80.520591)
+        (xy 125 80.52981)
+        (xy 125.581125 80.5275)
+        (xy 125.7005 80.408125)
+        (xy 125.7005 79.6745)
+        (xy 124.641875 79.6745)
+        (xy 124.6 79.716375)
+        (xy 124.508125 79.6245)
+        (xy 123.4495 79.6245)
+        (xy 123.3505 79.6245)
+        (xy 122.291875 79.6245)
+        (xy 122.1725 79.743875)
+        (xy 122.17019 80)
+        (xy 119.7825 80)
+        (xy 119.7825 79.15)
+        (xy 122.17019 79.15)
+        (xy 122.1725 79.406125)
+        (xy 122.291875 79.5255)
+        (xy 123.3505 79.5255)
+        (xy 123.3505 78.791875)
+        (xy 123.4495 78.791875)
+        (xy 123.4495 79.5255)
+        (xy 124.508125 79.5255)
+        (xy 124.55 79.483625)
+        (xy 124.641875 79.5755)
+        (xy 125.7005 79.5755)
+        (xy 125.7005 78.841875)
+        (xy 125.581125 78.7225)
+        (xy 125 78.72019)
+        (xy 124.906394 78.729409)
+        (xy 124.816385 78.756713)
+        (xy 124.733432 78.801053)
+        (xy 124.660723 78.860723)
+        (xy 124.601053 78.933432)
+        (xy 124.588363 78.957173)
+        (xy 124.548947 78.883432)
+        (xy 124.489277 78.810723)
+        (xy 124.416568 78.751053)
+        (xy 124.333615 78.706713)
+        (xy 124.243606 78.679409)
+        (xy 124.15 78.67019)
+        (xy 123.568875 78.6725)
+        (xy 123.4495 78.791875)
+        (xy 123.3505 78.791875)
+        (xy 123.231125 78.6725)
+        (xy 122.65 78.67019)
+        (xy 122.556394 78.679409)
+        (xy 122.466385 78.706713)
+        (xy 122.383432 78.751053)
+        (xy 122.310723 78.810723)
+        (xy 122.251053 78.883432)
+        (xy 122.206713 78.966385)
+        (xy 122.179409 79.056394)
+        (xy 122.17019 79.15)
+        (xy 119.7825 79.15)
+        (xy 119.7825 77.743121)
+        (xy 121.2225 77.743121)
+        (xy 121.2225 77.856879)
+        (xy 121.244693 77.96845)
+        (xy 121.288226 78.073549)
+        (xy 121.351427 78.168135)
+        (xy 121.431865 78.248573)
+        (xy 121.526451 78.311774)
+        (xy 121.63155 78.355307)
+        (xy 121.743121 78.3775)
+        (xy 121.856879 78.3775)
+        (xy 121.96845 78.355307)
+        (xy 122.073549 78.311774)
+        (xy 122.168135 78.248573)
+        (xy 122.189208 78.2275)
+        (xy 122.371158 78.2275)
+        (xy 122.371158 78.25)
+        (xy 122.376516 78.304399)
+        (xy 122.392384 78.356708)
+        (xy 122.418151 78.404916)
+        (xy 122.452829 78.447171)
+        (xy 122.495084 78.481849)
+        (xy 122.543292 78.507616)
+        (xy 122.595601 78.523484)
+        (xy 122.65 78.528842)
+        (xy 124.15 78.528842)
+        (xy 124.204399 78.523484)
+        (xy 124.256708 78.507616)
+        (xy 124.304916 78.481849)
+        (xy 124.347171 78.447171)
+        (xy 124.381849 78.404916)
+        (xy 124.407616 78.356708)
+        (xy 124.423484 78.304399)
+        (xy 124.428842 78.25)
+        (xy 124.428842 78.2275)
+        (xy 124.721158 78.2275)
+        (xy 124.721158 78.3)
+        (xy 124.726516 78.354399)
+        (xy 124.742384 78.406708)
+        (xy 124.768151 78.454916)
+        (xy 124.802829 78.497171)
+        (xy 124.845084 78.531849)
+        (xy 124.893292 78.557616)
+        (xy 124.945601 78.573484)
+        (xy 125 78.578842)
+        (xy 126.497501 78.578842)
+        (xy 126.497501 78.7202)
+        (xy 125.918875 78.7225)
+        (xy 125.7995 78.841875)
+        (xy 125.7995 79.5755)
+        (xy 125.8195 79.5755)
+        (xy 125.8195 79.6745)
+        (xy 125.7995 79.6745)
+        (xy 125.7995 80.408125)
+        (xy 125.918875 80.5275)
+        (xy 126.497501 80.5298)
+        (xy 126.4975 90.080241)
+        (xy 126.495554 90.1)
+        (xy 126.4975 90.119759)
+        (xy 126.4975 90.119768)
+        (xy 126.503324 90.178903)
+        (xy 126.52634 90.254774)
+        (xy 126.563715 90.324698)
+        (xy 126.614013 90.385987)
+        (xy 126.629371 90.398591)
+        (xy 130.807501 94.576722)
+        (xy 130.807501 95.291574)
+        (xy 130.717612 95.328807)
+        (xy 130.547357 95.442567)
+        (xy 130.402567 95.587357)
+        (xy 130.288807 95.757612)
+        (xy 130.210447 95.946789)
+        (xy 130.1705 96.147618)
+        (xy 130.1705 96.352382)
+        (xy 130.210447 96.553211)
+        (xy 130.288807 96.742388)
+        (xy 130.402567 96.912643)
+        (xy 130.547357 97.057433)
+        (xy 130.717612 97.171193)
+        (xy 130.906789 97.249553)
+        (xy 131.107618 97.2895)
+        (xy 131.312382 97.2895)
+        (xy 131.513211 97.249553)
+        (xy 131.702388 97.171193)
+        (xy 131.872643 97.057433)
+        (xy 132.017433 96.912643)
+        (xy 132.131193 96.742388)
+        (xy 132.209553 96.553211)
+        (xy 132.2495 96.352382)
+        (xy 132.2495 96.147618)
+        (xy 132.209553 95.946789)
+        (xy 132.131193 95.757612)
+        (xy 132.017433 95.587357)
+        (xy 131.872643 95.442567)
+        (xy 131.702388 95.328807)
+        (xy 131.6125 95.291574)
+        (xy 131.6125 94.681721)
+        (xy 132.78768 95.856901)
+        (xy 132.750447 95.946789)
+        (xy 132.7105 96.147618)
+        (xy 132.7105 96.352382)
+        (xy 132.750447 96.553211)
+        (xy 132.828807 96.742388)
+        (xy 132.942567 96.912643)
+        (xy 133.087357 97.057433)
+        (xy 133.257612 97.171193)
+        (xy 133.446789 97.249553)
+        (xy 133.647618 97.2895)
+        (xy 133.852382 97.2895)
+        (xy 134.053211 97.249553)
+        (xy 134.242388 97.171193)
+        (xy 134.412643 97.057433)
+        (xy 134.557433 96.912643)
+        (xy 134.671193 96.742388)
+        (xy 134.749553 96.553211)
+        (xy 134.7895 96.352382)
+        (xy 134.7895 96.3)
+        (xy 141.27019 96.3)
+        (xy 141.279409 96.393606)
+        (xy 141.306713 96.483615)
+        (xy 141.351053 96.566568)
+        (xy 141.410723 96.639277)
+        (xy 141.483432 96.698947)
+        (xy 141.566385 96.743287)
+        (xy 141.656394 96.770591)
+        (xy 141.75 96.77981)
+        (xy 142.331125 96.7775)
+        (xy 142.4505 96.658125)
+        (xy 142.4505 95.9245)
+        (xy 141.391875 95.9245)
+        (xy 141.2725 96.043875)
+        (xy 141.27019 96.3)
+        (xy 134.7895 96.3)
+        (xy 134.7895 96.147618)
+        (xy 134.749553 95.946789)
+        (xy 134.671193 95.757612)
+        (xy 134.557433 95.587357)
+        (xy 134.420076 95.45)
+        (xy 141.27019 95.45)
+        (xy 141.2725 95.706125)
+        (xy 141.391875 95.8255)
+        (xy 142.4505 95.8255)
+        (xy 142.4505 95.091875)
+        (xy 142.5495 95.091875)
+        (xy 142.5495 95.8255)
+        (xy 142.5695 95.8255)
+        (xy 142.5695 95.9245)
+        (xy 142.5495 95.9245)
+        (xy 142.5495 96.658125)
+        (xy 142.668875 96.7775)
+        (xy 143.25 96.77981)
+        (xy 143.343606 96.770591)
+        (xy 143.433615 96.743287)
+        (xy 143.516568 96.698947)
+        (xy 143.589277 96.639277)
+        (xy 143.648947 96.566568)
+        (xy 143.652275 96.560341)
+        (xy 143.695601 96.573484)
+        (xy 143.75 96.578842)
+        (xy 145.25 96.578842)
+        (xy 145.304399 96.573484)
+        (xy 145.356708 96.557616)
+        (xy 145.404916 96.531849)
+        (xy 145.447171 96.497171)
+        (xy 145.481849 96.454916)
+        (xy 145.507616 96.406708)
+        (xy 145.523484 96.354399)
+        (xy 145.528842 96.3)
+        (xy 145.528842 96.184828)
+        (xy 145.568135 96.158573)
+        (xy 145.648573 96.078135)
+        (xy 145.711774 95.983549)
+        (xy 145.755307 95.87845)
+        (xy 145.7775 95.766879)
+        (xy 145.7775 95.653121)
+        (xy 145.775511 95.643121)
+        (xy 147.7225 95.643121)
+        (xy 147.7225 95.756879)
+        (xy 147.744693 95.86845)
+        (xy 147.788226 95.973549)
+        (xy 147.851427 96.068135)
+        (xy 147.931865 96.148573)
+        (xy 147.971158 96.174828)
+        (xy 147.971158 96.3)
+        (xy 147.976516 96.354399)
+        (xy 147.992384 96.406708)
+        (xy 148.018151 96.454916)
+        (xy 148.052829 96.497171)
+        (xy 148.095084 96.531849)
+        (xy 148.143292 96.557616)
+        (xy 148.195601 96.573484)
+        (xy 148.25 96.578842)
+        (xy 149.75 96.578842)
+        (xy 149.804399 96.573484)
+        (xy 149.856708 96.557616)
+        (xy 149.904916 96.531849)
+        (xy 149.947171 96.497171)
+        (xy 149.981849 96.454916)
+        (xy 150.007616 96.406708)
+        (xy 150.023484 96.354399)
+        (xy 150.028842 96.3)
+        (xy 150.028842 96.125)
+        (xy 150.64019 96.125)
+        (xy 150.649409 96.218606)
+        (xy 150.676713 96.308615)
+        (xy 150.721053 96.391568)
+        (xy 150.780723 96.464277)
+        (xy 150.853432 96.523947)
+        (xy 150.936385 96.568287)
+        (xy 151.026394 96.595591)
+        (xy 151.12 96.60481)
+        (xy 151.701125 96.6025)
+        (xy 151.8205 96.483125)
+        (xy 151.8205 95.7495)
+        (xy 151.9195 95.7495)
+        (xy 151.9195 96.483125)
+        (xy 152.038875 96.6025)
+        (xy 152.62 96.60481)
+        (xy 152.713606 96.595591)
+        (xy 152.803615 96.568287)
+        (xy 152.886568 96.523947)
+        (xy 152.959277 96.464277)
+        (xy 153.018947 96.391568)
+        (xy 153.063287 96.308615)
+        (xy 153.0659 96.3)
+        (xy 153.77019 96.3)
+        (xy 153.779409 96.393606)
+        (xy 153.806713 96.483615)
+        (xy 153.851053 96.566568)
+        (xy 153.910723 96.639277)
+        (xy 153.983432 96.698947)
+        (xy 154.066385 96.743287)
+        (xy 154.156394 96.770591)
+        (xy 154.25 96.77981)
+        (xy 154.831125 96.7775)
+        (xy 154.9505 96.658125)
+        (xy 154.9505 95.9245)
+        (xy 153.891875 95.9245)
+        (xy 153.7725 96.043875)
+        (xy 153.77019 96.3)
+        (xy 153.0659 96.3)
+        (xy 153.090591 96.218606)
+        (xy 153.09981 96.125)
+        (xy 153.0975 95.868875)
+        (xy 152.978125 95.7495)
+        (xy 151.9195 95.7495)
+        (xy 151.8205 95.7495)
+        (xy 150.761875 95.7495)
+        (xy 150.6425 95.868875)
+        (xy 150.64019 96.125)
+        (xy 150.028842 96.125)
+        (xy 150.028842 95.45)
+        (xy 150.023484 95.395601)
+        (xy 150.007616 95.343292)
+        (xy 149.981849 95.295084)
+        (xy 149.965367 95.275)
+        (xy 150.64019 95.275)
+        (xy 150.6425 95.531125)
+        (xy 150.761875 95.6505)
+        (xy 151.8205 95.6505)
+        (xy 151.8205 94.916875)
+        (xy 151.9195 94.916875)
+        (xy 151.9195 95.6505)
+        (xy 152.978125 95.6505)
+        (xy 153.0975 95.531125)
+        (xy 153.098231 95.45)
+        (xy 153.77019 95.45)
+        (xy 153.7725 95.706125)
+        (xy 153.891875 95.8255)
+        (xy 154.9505 95.8255)
+        (xy 154.9505 95.091875)
+        (xy 155.0495 95.091875)
+        (xy 155.0495 95.8255)
+        (xy 155.0695 95.8255)
+        (xy 155.0695 95.9245)
+        (xy 155.0495 95.9245)
+        (xy 155.0495 96.658125)
+        (xy 155.168875 96.7775)
+        (xy 155.75 96.77981)
+        (xy 155.843606 96.770591)
+        (xy 155.933615 96.743287)
+        (xy 156.016568 96.698947)
+        (xy 156.089277 96.639277)
+        (xy 156.148947 96.566568)
+        (xy 156.152275 96.560341)
+        (xy 156.195601 96.573484)
+        (xy 156.25 96.578842)
+        (xy 156.448997 96.578842)
+        (xy 156.488226 96.673549)
+        (xy 156.551427 96.768135)
+        (xy 156.631865 96.848573)
+        (xy 156.726451 96.911774)
+        (xy 156.83155 96.955307)
+        (xy 156.943121 96.9775)
+        (xy 157.056879 96.9775)
+        (xy 157.16845 96.955307)
+        (xy 157.273549 96.911774)
+        (xy 157.368135 96.848573)
+        (xy 157.448573 96.768135)
+        (xy 157.511774 96.673549)
+        (xy 157.551003 96.578842)
+        (xy 157.75 96.578842)
+        (xy 157.804399 96.573484)
+        (xy 157.856708 96.557616)
+        (xy 157.904916 96.531849)
+        (xy 157.947171 96.497171)
+        (xy 157.981849 96.454916)
+        (xy 158.007616 96.406708)
+        (xy 158.023484 96.354399)
+        (xy 158.028842 96.3)
+        (xy 158.028842 95.45)
+        (xy 158.023484 95.395601)
+        (xy 158.007616 95.343292)
+        (xy 157.981849 95.295084)
+        (xy 157.947171 95.252829)
+        (xy 157.904916 95.218151)
+        (xy 157.856708 95.192384)
+        (xy 157.804399 95.176516)
+        (xy 157.75 95.171158)
+        (xy 156.25 95.171158)
+        (xy 156.195601 95.176516)
+        (xy 156.152275 95.189659)
+        (xy 156.148947 95.183432)
+        (xy 156.089277 95.110723)
+        (xy 156.016568 95.051053)
+        (xy 155.933615 95.006713)
+        (xy 155.843606 94.979409)
+        (xy 155.75 94.97019)
+        (xy 155.168875 94.9725)
+        (xy 155.0495 95.091875)
+        (xy 154.9505 95.091875)
+        (xy 154.831125 94.9725)
+        (xy 154.25 94.97019)
+        (xy 154.156394 94.979409)
+        (xy 154.066385 95.006713)
+        (xy 153.983432 95.051053)
+        (xy 153.910723 95.110723)
+        (xy 153.851053 95.183432)
+        (xy 153.806713 95.266385)
+        (xy 153.779409 95.356394)
+        (xy 153.77019 95.45)
+        (xy 153.098231 95.45)
+        (xy 153.09981 95.275)
+        (xy 153.090591 95.181394)
+        (xy 153.063287 95.091385)
+        (xy 153.018947 95.008432)
+        (xy 152.959277 94.935723)
+        (xy 152.886568 94.876053)
+        (xy 152.803615 94.831713)
+        (xy 152.713606 94.804409)
+        (xy 152.62 94.79519)
+        (xy 152.038875 94.7975)
+        (xy 151.9195 94.916875)
+        (xy 151.8205 94.916875)
+        (xy 151.701125 94.7975)
+        (xy 151.12 94.79519)
+        (xy 151.026394 94.804409)
+        (xy 150.936385 94.831713)
+        (xy 150.853432 94.876053)
+        (xy 150.780723 94.935723)
+        (xy 150.721053 95.008432)
+        (xy 150.676713 95.091385)
+        (xy 150.649409 95.181394)
+        (xy 150.64019 95.275)
+        (xy 149.965367 95.275)
+        (xy 149.947171 95.252829)
+        (xy 149.904916 95.218151)
+        (xy 149.856708 95.192384)
+        (xy 149.804399 95.176516)
+        (xy 149.75 95.171158)
+        (xy 148.532343 95.171158)
+        (xy 148.46845 95.144693)
+        (xy 148.356879 95.1225)
+        (xy 148.243121 95.1225)
+        (xy 148.13155 95.144693)
+        (xy 148.026451 95.188226)
+        (xy 147.931865 95.251427)
+        (xy 147.851427 95.331865)
+        (xy 147.788226 95.426451)
+        (xy 147.744693 95.53155)
+        (xy 147.7225 95.643121)
+        (xy 145.775511 95.643121)
+        (xy 145.755307 95.54155)
+        (xy 145.711774 95.436451)
+        (xy 145.648573 95.341865)
+        (xy 145.568135 95.261427)
+        (xy 145.473549 95.198226)
+        (xy 145.36845 95.154693)
+        (xy 145.256879 95.1325)
+        (xy 145.143121 95.1325)
+        (xy 145.03155 95.154693)
+        (xy 144.9918 95.171158)
+        (xy 143.75 95.171158)
+        (xy 143.695601 95.176516)
+        (xy 143.652275 95.189659)
+        (xy 143.648947 95.183432)
+        (xy 143.589277 95.110723)
+        (xy 143.516568 95.051053)
+        (xy 143.433615 95.006713)
+        (xy 143.343606 94.979409)
+        (xy 143.25 94.97019)
+        (xy 142.668875 94.9725)
+        (xy 142.5495 95.091875)
+        (xy 142.4505 95.091875)
+        (xy 142.331125 94.9725)
+        (xy 141.75 94.97019)
+        (xy 141.656394 94.979409)
+        (xy 141.566385 95.006713)
+        (xy 141.483432 95.051053)
+        (xy 141.410723 95.110723)
+        (xy 141.351053 95.183432)
+        (xy 141.306713 95.266385)
+        (xy 141.279409 95.356394)
+        (xy 141.27019 95.45)
+        (xy 134.420076 95.45)
+        (xy 134.412643 95.442567)
+        (xy 134.242388 95.328807)
+        (xy 134.053211 95.250447)
+        (xy 133.852382 95.2105)
+        (xy 133.647618 95.2105)
+        (xy 133.446789 95.250447)
+        (xy 133.356901 95.28768)
+        (xy 131.769221 93.7)
+        (xy 141.471158 93.7)
+        (xy 141.471158 94.55)
+        (xy 141.476516 94.604399)
+        (xy 141.492384 94.656708)
+        (xy 141.518151 94.704916)
+        (xy 141.552829 94.747171)
+        (xy 141.595084 94.781849)
+        (xy 141.643292 94.807616)
+        (xy 141.695601 94.823484)
+        (xy 141.75 94.828842)
+        (xy 143.25 94.828842)
+        (xy 143.304399 94.823484)
+        (xy 143.356708 94.807616)
+        (xy 143.404916 94.781849)
+        (xy 143.447171 94.747171)
+        (xy 143.481849 94.704916)
+        (xy 143.48314 94.7025)
+        (xy 143.51686 94.7025)
+        (xy 143.518151 94.704916)
+        (xy 143.552829 94.747171)
+        (xy 143.595084 94.781849)
+        (xy 143.643292 94.807616)
+        (xy 143.695601 94.823484)
+        (xy 143.75 94.828842)
+        (xy 145.25 94.828842)
+        (xy 145.304399 94.823484)
+        (xy 145.356708 94.807616)
+        (xy 145.404916 94.781849)
+        (xy 145.447171 94.747171)
+        (xy 145.481849 94.704916)
+        (xy 145.507616 94.656708)
+        (xy 145.523484 94.604399)
+        (xy 145.528842 94.55)
+        (xy 145.528842 93.7)
+        (xy 147.971158 93.7)
+        (xy 147.971158 94.55)
+        (xy 147.976516 94.604399)
+        (xy 147.992384 94.656708)
+        (xy 148.018151 94.704916)
+        (xy 148.052829 94.747171)
+        (xy 148.095084 94.781849)
+        (xy 148.143292 94.807616)
+        (xy 148.195601 94.823484)
+        (xy 148.25 94.828842)
+        (xy 149.75 94.828842)
+        (xy 149.804399 94.823484)
+        (xy 149.856708 94.807616)
+        (xy 149.904916 94.781849)
+        (xy 149.947171 94.747171)
+        (xy 149.981849 94.704916)
+        (xy 150.007616 94.656708)
+        (xy 150.023484 94.604399)
+        (xy 150.026133 94.5775)
+        (xy 150.056879 94.5775)
+        (xy 150.16845 94.555307)
+        (xy 150.235583 94.5275)
+        (xy 150.88686 94.5275)
+        (xy 150.888151 94.529916)
+        (xy 150.922829 94.572171)
+        (xy 150.965084 94.606849)
+        (xy 151.013292 94.632616)
+        (xy 151.065601 94.648484)
+        (xy 151.12 94.653842)
+        (xy 152.62 94.653842)
+        (xy 152.674399 94.648484)
+        (xy 152.726708 94.632616)
+        (xy 152.774916 94.606849)
+        (xy 152.817171 94.572171)
+        (xy 152.851849 94.529916)
+        (xy 152.877616 94.481708)
+        (xy 152.893484 94.429399)
+        (xy 152.898842 94.375)
+        (xy 152.898842 93.7)
+        (xy 153.971158 93.7)
+        (xy 153.971158 94.55)
+        (xy 153.976516 94.604399)
+        (xy 153.992384 94.656708)
+        (xy 154.018151 94.704916)
+        (xy 154.052829 94.747171)
+        (xy 154.095084 94.781849)
+        (xy 154.143292 94.807616)
+        (xy 154.195601 94.823484)
+        (xy 154.25 94.828842)
+        (xy 155.75 94.828842)
+        (xy 155.804399 94.823484)
+        (xy 155.856708 94.807616)
+        (xy 155.904916 94.781849)
+        (xy 155.947171 94.747171)
+        (xy 155.981849 94.704916)
+        (xy 155.98314 94.7025)
+        (xy 156.01686 94.7025)
+        (xy 156.018151 94.704916)
+        (xy 156.052829 94.747171)
+        (xy 156.095084 94.781849)
+        (xy 156.143292 94.807616)
+        (xy 156.195601 94.823484)
+        (xy 156.25 94.828842)
+        (xy 157.75 94.828842)
+        (xy 157.804399 94.823484)
+        (xy 157.856708 94.807616)
+        (xy 157.904916 94.781849)
+        (xy 157.947171 94.747171)
+        (xy 157.981849 94.704916)
+        (xy 158.007616 94.656708)
+        (xy 158.023484 94.604399)
+        (xy 158.028842 94.55)
+        (xy 158.028842 93.7)
+        (xy 158.023484 93.645601)
+        (xy 158.007616 93.593292)
+        (xy 157.981849 93.545084)
+        (xy 157.947171 93.502829)
+        (xy 157.904916 93.468151)
+        (xy 157.856708 93.442384)
+        (xy 157.804399 93.426516)
+        (xy 157.75 93.421158)
+        (xy 156.690378 93.421158)
+        (xy 156.52316 93.25394)
+        (xy 156.511774 93.226451)
+        (xy 156.448573 93.131865)
+        (xy 156.368135 93.051427)
+        (xy 156.273549 92.988226)
+        (xy 156.16845 92.944693)
+        (xy 156.056879 92.9225)
+        (xy 155.943121 92.9225)
+        (xy 155.83155 92.944693)
+        (xy 155.726451 92.988226)
+        (xy 155.631865 93.051427)
+        (xy 155.551427 93.131865)
+        (xy 155.488226 93.226451)
+        (xy 155.444693 93.33155)
+        (xy 155.426869 93.421158)
+        (xy 154.25 93.421158)
+        (xy 154.195601 93.426516)
+        (xy 154.143292 93.442384)
+        (xy 154.095084 93.468151)
+        (xy 154.052829 93.502829)
+        (xy 154.018151 93.545084)
+        (xy 153.992384 93.593292)
+        (xy 153.976516 93.645601)
+        (xy 153.971158 93.7)
+        (xy 152.898842 93.7)
+        (xy 152.898842 93.525)
+        (xy 152.893484 93.470601)
+        (xy 152.877616 93.418292)
+        (xy 152.851849 93.370084)
+        (xy 152.817171 93.327829)
+        (xy 152.774916 93.293151)
+        (xy 152.726708 93.267384)
+        (xy 152.674399 93.251516)
+        (xy 152.62 93.246158)
+        (xy 151.12 93.246158)
+        (xy 151.065601 93.251516)
+        (xy 151.013292 93.267384)
+        (xy 150.965084 93.293151)
+        (xy 150.922829 93.327829)
+        (xy 150.888151 93.370084)
+        (xy 150.862384 93.418292)
+        (xy 150.846516 93.470601)
+        (xy 150.841158 93.525)
+        (xy 150.841158 93.7225)
+        (xy 150.509134 93.7225)
+        (xy 150.448573 93.631865)
+        (xy 150.368135 93.551427)
+        (xy 150.273549 93.488226)
+        (xy 150.16845 93.444693)
+        (xy 150.056879 93.4225)
+        (xy 149.943121 93.4225)
+        (xy 149.851342 93.440756)
+        (xy 149.804399 93.426516)
+        (xy 149.75 93.421158)
+        (xy 148.25 93.421158)
+        (xy 148.195601 93.426516)
+        (xy 148.143292 93.442384)
+        (xy 148.095084 93.468151)
+        (xy 148.052829 93.502829)
+        (xy 148.018151 93.545084)
+        (xy 147.992384 93.593292)
+        (xy 147.976516 93.645601)
+        (xy 147.971158 93.7)
+        (xy 145.528842 93.7)
+        (xy 145.523484 93.645601)
+        (xy 145.507616 93.593292)
+        (xy 145.481849 93.545084)
+        (xy 145.447171 93.502829)
+        (xy 145.404916 93.468151)
+        (xy 145.356708 93.442384)
+        (xy 145.304399 93.426516)
+        (xy 145.25 93.421158)
+        (xy 144.190378 93.421158)
+        (xy 144.02316 93.25394)
+        (xy 144.011774 93.226451)
+        (xy 143.948573 93.131865)
+        (xy 143.868135 93.051427)
+        (xy 143.773549 92.988226)
+        (xy 143.66845 92.944693)
+        (xy 143.556879 92.9225)
+        (xy 143.443121 92.9225)
+        (xy 143.33155 92.944693)
+        (xy 143.226451 92.988226)
+        (xy 143.131865 93.051427)
+        (xy 143.051427 93.131865)
+        (xy 142.988226 93.226451)
+        (xy 142.944693 93.33155)
+        (xy 142.926869 93.421158)
+        (xy 141.75 93.421158)
+        (xy 141.695601 93.426516)
+        (xy 141.643292 93.442384)
+        (xy 141.595084 93.468151)
+        (xy 141.552829 93.502829)
+        (xy 141.518151 93.545084)
+        (xy 141.492384 93.593292)
+        (xy 141.476516 93.645601)
+        (xy 141.471158 93.7)
+        (xy 131.769221 93.7)
+        (xy 127.842511 89.773291)
+        (xy 127.842511 82.293121)
+        (xy 128.3325 82.293121)
+        (xy 128.3325 82.406879)
+        (xy 128.354693 82.51845)
+        (xy 128.398226 82.623549)
+        (xy 128.461427 82.718135)
+        (xy 128.541865 82.798573)
+        (xy 128.636451 82.861774)
+        (xy 128.74155 82.905307)
+        (xy 128.853121 82.9275)
+        (xy 128.91828 82.9275)
+        (xy 132.461413 86.470634)
+        (xy 132.474013 86.485987)
+        (xy 132.489366 86.498587)
+        (xy 132.489368 86.498589)
+        (xy 132.510998 86.51634)
+        (xy 132.535301 86.536285)
+        (xy 132.605225 86.57366)
+        (xy 132.681096 86.596676)
+        (xy 132.740231 86.6025)
+        (xy 132.74024 86.6025)
+        (xy 132.759999 86.604446)
+        (xy 132.779758 86.6025)
+        (xy 134.817546 86.6025)
+        (xy 134.808224 86.616451)
+        (xy 134.764691 86.72155)
+        (xy 134.742498 86.833121)
+        (xy 134.742498 86.946879)
+        (xy 134.764691 87.05845)
+        (xy 134.808224 87.163549)
+        (xy 134.871425 87.258135)
+        (xy 134.951863 87.338573)
+        (xy 135.046449 87.401774)
+        (xy 135.056871 87.406091)
+        (xy 137.2825 89.631721)
+        (xy 137.2825 89.696879)
+        (xy 137.304693 89.80845)
+        (xy 137.348226 89.913549)
+        (xy 137.411427 90.008135)
+        (xy 137.491865 90.088573)
+        (xy 137.586451 90.151774)
+        (xy 137.69155 90.195307)
+        (xy 137.803121 90.2175)
+        (xy 137.916879 90.2175)
+        (xy 138.02845 90.195307)
+        (xy 138.133549 90.151774)
+        (xy 138.228135 90.088573)
+        (xy 138.308573 90.008135)
+        (xy 138.371774 89.913549)
+        (xy 138.415307 89.80845)
+        (xy 138.4375 89.696879)
+        (xy 138.4375 89.583121)
+        (xy 138.415307 89.47155)
+        (xy 138.371774 89.366451)
+        (xy 138.308573 89.271865)
+        (xy 138.228135 89.191427)
+        (xy 138.133549 89.128226)
+        (xy 138.02845 89.084693)
+        (xy 137.916879 89.0625)
+        (xy 137.851721 89.0625)
+        (xy 135.867211 87.077991)
+        (xy 135.875305 87.05845)
+        (xy 135.897498 86.946879)
+        (xy 135.897498 86.833121)
+        (xy 135.875305 86.72155)
+        (xy 135.831772 86.616451)
+        (xy 135.82245 86.6025)
+        (xy 147.330235 86.6025)
+        (xy 147.349994 86.604446)
+        (xy 147.369753 86.6025)
+        (xy 147.369763 86.6025)
+        (xy 147.428898 86.596676)
+        (xy 147.504769 86.57366)
+        (xy 147.574693 86.536285)
+        (xy 147.635981 86.485987)
+        (xy 147.648585 86.470629)
+        (xy 148.48543 85.633785)
+        (xy 148.492384 85.656708)
+        (xy 148.518151 85.704916)
+        (xy 148.552829 85.747171)
+        (xy 148.595084 85.781849)
+        (xy 148.643292 85.807616)
+        (xy 148.695601 85.823484)
+        (xy 148.75 85.828842)
+        (xy 150.25 85.828842)
+        (xy 150.304399 85.823484)
+        (xy 150.356708 85.807616)
+        (xy 150.404916 85.781849)
+        (xy 150.447171 85.747171)
+        (xy 150.481849 85.704916)
+        (xy 150.507616 85.656708)
+        (xy 150.523484 85.604399)
+        (xy 150.528842 85.55)
+        (xy 150.528842 85.440378)
+        (xy 150.53172 85.4375)
+        (xy 150.596879 85.4375)
+        (xy 150.70845 85.415307)
+        (xy 150.813549 85.371774)
+        (xy 150.908135 85.308573)
+        (xy 150.988573 85.228135)
+        (xy 151.051774 85.133549)
+        (xy 151.095307 85.02845)
+        (xy 151.1175 84.916879)
+        (xy 151.1175 84.803121)
+        (xy 151.095307 84.69155)
+        (xy 151.051774 84.586451)
+        (xy 150.988573 84.491865)
+        (xy 150.908135 84.411427)
+        (xy 150.813549 84.348226)
+        (xy 150.70845 84.304693)
+        (xy 150.596879 84.2825)
+        (xy 150.483121 84.2825)
+        (xy 150.37155 84.304693)
+        (xy 150.266451 84.348226)
+        (xy 150.171865 84.411427)
+        (xy 150.162134 84.421158)
+        (xy 148.75 84.421158)
+        (xy 148.695601 84.426516)
+        (xy 148.643292 84.442384)
+        (xy 148.595084 84.468151)
+        (xy 148.552829 84.502829)
+        (xy 148.518151 84.545084)
+        (xy 148.492384 84.593292)
+        (xy 148.476516 84.645601)
+        (xy 148.471158 84.7)
+        (xy 148.471158 84.7225)
+        (xy 148.444753 84.7225)
+        (xy 148.424994 84.720554)
+        (xy 148.405235 84.7225)
+        (xy 148.405225 84.7225)
+        (xy 148.34609 84.728324)
+        (xy 148.274636 84.75)
+        (xy 148.270219 84.75134)
+        (xy 148.200295 84.788714)
+        (xy 148.154362 84.826411)
+        (xy 148.15436 84.826413)
+        (xy 148.139007 84.839013)
+        (xy 148.126407 84.854366)
+        (xy 147.183274 85.7975)
+        (xy 132.926721 85.7975)
+        (xy 129.4875 82.35828)
+        (xy 129.4875 82.293121)
+        (xy 129.465307 82.18155)
+        (xy 129.421774 82.076451)
+        (xy 129.358573 81.981865)
+        (xy 129.278135 81.901427)
+        (xy 129.183549 81.838226)
+        (xy 129.07845 81.794693)
+        (xy 128.966879 81.7725)
+        (xy 128.853121 81.7725)
+        (xy 128.74155 81.794693)
+        (xy 128.636451 81.838226)
+        (xy 128.541865 81.901427)
+        (xy 128.461427 81.981865)
+        (xy 128.398226 82.076451)
+        (xy 128.354693 82.18155)
+        (xy 128.3325 82.293121)
+        (xy 127.842511 82.293121)
+        (xy 127.842511 81.576709)
+        (xy 129.41922 80)
+        (xy 131.921158 80)
+        (xy 131.921158 81.5)
+        (xy 131.926516 81.554399)
+        (xy 131.942384 81.606708)
+        (xy 131.968151 81.654916)
+        (xy 132.002829 81.697171)
+        (xy 132.045084 81.731849)
+        (xy 132.093292 81.757616)
+        (xy 132.145601 81.773484)
+        (xy 132.160993 81.775)
+        (xy 132.145601 81.776516)
+        (xy 132.093292 81.792384)
+        (xy 132.045084 81.818151)
+        (xy 132.002829 81.852829)
+        (xy 131.968151 81.895084)
+        (xy 131.942384 81.943292)
+        (xy 131.926516 81.995601)
+        (xy 131.921158 82.05)
+        (xy 131.921158 83.55)
+        (xy 131.926516 83.604399)
+        (xy 131.942384 83.656708)
+        (xy 131.968151 83.704916)
+        (xy 132.002829 83.747171)
+        (xy 132.045084 83.781849)
+        (xy 132.093292 83.807616)
+        (xy 132.145601 83.823484)
+        (xy 132.2 83.828842)
+        (xy 132.220932 83.828842)
+        (xy 132.222501 83.844769)
+        (xy 132.228325 83.903904)
+        (xy 132.229518 83.907838)
+        (xy 132.2225 83.943121)
+        (xy 132.2225 84.056879)
+        (xy 132.244693 84.16845)
+        (xy 132.288226 84.273549)
+        (xy 132.351427 84.368135)
+        (xy 132.431865 84.448573)
+        (xy 132.526451 84.511774)
+        (xy 132.63155 84.555307)
+        (xy 132.743121 84.5775)
+        (xy 132.856879 84.5775)
+        (xy 132.96845 84.555307)
+        (xy 133.073549 84.511774)
+        (xy 133.168135 84.448573)
+        (xy 133.248573 84.368135)
+        (xy 133.311774 84.273549)
+        (xy 133.355307 84.16845)
+        (xy 133.3775 84.056879)
+        (xy 133.3775 83.943121)
+        (xy 133.355307 83.83155)
+        (xy 133.311774 83.726451)
+        (xy 133.288753 83.691999)
+        (xy 133.307616 83.656708)
+        (xy 133.323484 83.604399)
+        (xy 133.328842 83.55)
+        (xy 133.47019 83.55)
+        (xy 133.479409 83.643606)
+        (xy 133.506713 83.733615)
+        (xy 133.551053 83.816568)
+        (xy 133.610723 83.889277)
+        (xy 133.683432 83.948947)
+        (xy 133.766385 83.993287)
+        (xy 133.856394 84.020591)
+        (xy 133.95 84.02981)
+        (xy 134.206125 84.0275)
+        (xy 134.3255 83.908125)
+        (xy 134.3255 82.8495)
+        (xy 134.4245 82.8495)
+        (xy 134.4245 83.908125)
+        (xy 134.543875 84.0275)
+        (xy 134.8 84.02981)
+        (xy 134.893606 84.020591)
+        (xy 134.983615 83.993287)
+        (xy 135.066568 83.948947)
+        (xy 135.139277 83.889277)
+        (xy 135.198947 83.816568)
+        (xy 135.243287 83.733615)
+        (xy 135.270591 83.643606)
+        (xy 135.27981 83.55)
+        (xy 135.2775 82.968875)
+        (xy 135.158125 82.8495)
+        (xy 134.4245 82.8495)
+        (xy 134.3255 82.8495)
+        (xy 133.591875 82.8495)
+        (xy 133.4725 82.968875)
+        (xy 133.47019 83.55)
+        (xy 133.328842 83.55)
+        (xy 133.328842 82.05)
+        (xy 133.323484 81.995601)
+        (xy 133.307616 81.943292)
+        (xy 133.281849 81.895084)
+        (xy 133.247171 81.852829)
+        (xy 133.204916 81.818151)
+        (xy 133.156708 81.792384)
+        (xy 133.104399 81.776516)
+        (xy 133.089007 81.775)
+        (xy 133.104399 81.773484)
+        (xy 133.156708 81.757616)
+        (xy 133.204916 81.731849)
+        (xy 133.247171 81.697171)
+        (xy 133.281849 81.654916)
+        (xy 133.307616 81.606708)
+        (xy 133.323484 81.554399)
+        (xy 133.328842 81.5)
+        (xy 133.47019 81.5)
+        (xy 133.479409 81.593606)
+        (xy 133.506713 81.683615)
+        (xy 133.551053 81.766568)
+        (xy 133.557973 81.775)
+        (xy 133.551053 81.783432)
+        (xy 133.506713 81.866385)
+        (xy 133.479409 81.956394)
+        (xy 133.47019 82.05)
+        (xy 133.4725 82.631125)
+        (xy 133.591875 82.7505)
+        (xy 134.3255 82.7505)
+        (xy 134.3255 80.7995)
+        (xy 134.4245 80.7995)
+        (xy 134.4245 82.7505)
+        (xy 135.158125 82.7505)
+        (xy 135.2775 82.631125)
+        (xy 135.27981 82.05)
+        (xy 135.270591 81.956394)
+        (xy 135.243287 81.866385)
+        (xy 135.198947 81.783432)
+        (xy 135.192027 81.775)
+        (xy 135.198947 81.766568)
+        (xy 135.243287 81.683615)
+        (xy 135.270591 81.593606)
+        (xy 135.27981 81.5)
+        (xy 135.2775 80.918875)
+        (xy 135.158125 80.7995)
+        (xy 134.4245 80.7995)
+        (xy 134.3255 80.7995)
+        (xy 133.591875 80.7995)
+        (xy 133.4725 80.918875)
+        (xy 133.47019 81.5)
+        (xy 133.328842 81.5)
+        (xy 133.328842 80)
+        (xy 133.47019 80)
+        (xy 133.4725 80.581125)
+        (xy 133.591875 80.7005)
+        (xy 134.3255 80.7005)
+        (xy 134.3255 79.641875)
+        (xy 134.206125 79.5225)
+        (xy 133.95 79.52019)
+        (xy 133.856394 79.529409)
+        (xy 133.766385 79.556713)
+        (xy 133.683432 79.601053)
+        (xy 133.610723 79.660723)
+        (xy 133.551053 79.733432)
+        (xy 133.506713 79.816385)
+        (xy 133.479409 79.906394)
+        (xy 133.47019 80)
+        (xy 133.328842 80)
+        (xy 133.323484 79.945601)
+        (xy 133.307616 79.893292)
+        (xy 133.281849 79.845084)
+        (xy 133.247171 79.802829)
+        (xy 133.204916 79.768151)
+        (xy 133.156708 79.742384)
+        (xy 133.104399 79.726516)
+        (xy 133.05 79.721158)
+        (xy 132.2 79.721158)
+        (xy 132.145601 79.726516)
+        (xy 132.093292 79.742384)
+        (xy 132.045084 79.768151)
+        (xy 132.002829 79.802829)
+        (xy 131.968151 79.845084)
+        (xy 131.942384 79.893292)
+        (xy 131.926516 79.945601)
+        (xy 131.921158 80)
+        (xy 129.41922 80)
+        (xy 129.561721 79.8575)
+        (xy 129.626879 79.8575)
+        (xy 129.73845 79.835307)
+        (xy 129.843549 79.791774)
+        (xy 129.938135 79.728573)
+        (xy 130.018573 79.648135)
+        (xy 130.081774 79.553549)
+        (xy 130.125307 79.44845)
+        (xy 130.1475 79.336879)
+        (xy 130.1475 79.223121)
+        (xy 130.125307 79.11155)
+        (xy 130.081774 79.006451)
+        (xy 130.018573 78.911865)
+        (xy 129.938135 78.831427)
+        (xy 129.843549 78.768226)
+        (xy 129.73845 78.724693)
+        (xy 129.626879 78.7025)
+        (xy 129.513121 78.7025)
+        (xy 129.40155 78.724693)
+        (xy 129.296451 78.768226)
+        (xy 129.201865 78.831427)
+        (xy 129.121427 78.911865)
+        (xy 129.058226 79.006451)
+        (xy 129.014693 79.11155)
+        (xy 128.9925 79.223121)
+        (xy 128.9925 79.288279)
+        (xy 127.3025 80.97828)
+        (xy 127.3025 78.266722)
+        (xy 127.39172 78.177502)
+        (xy 127.456879 78.177502)
+        (xy 127.56845 78.155309)
+        (xy 127.673549 78.111776)
+        (xy 127.768135 78.048575)
+        (xy 127.848573 77.968137)
+        (xy 127.911774 77.873551)
+        (xy 127.955307 77.768452)
+        (xy 127.9775 77.656881)
+        (xy 127.9775 77.543123)
+        (xy 127.955307 77.431552)
+        (xy 127.911774 77.326453)
+        (xy 127.848573 77.231867)
+        (xy 127.768135 77.151429)
+        (xy 127.673549 77.088228)
+        (xy 127.56845 77.044695)
+        (xy 127.456879 77.022502)
+        (xy 127.343121 77.022502)
+        (xy 127.23155 77.044695)
+        (xy 127.126451 77.088228)
+        (xy 127.031865 77.151429)
+        (xy 126.951427 77.231867)
+        (xy 126.888226 77.326453)
+        (xy 126.844693 77.431552)
+        (xy 126.8225 77.543123)
+        (xy 126.8225 77.608282)
+        (xy 126.778842 77.65194)
+        (xy 126.778842 77.45)
+        (xy 126.773484 77.395601)
+        (xy 126.757616 77.343292)
+        (xy 126.731849 77.295084)
+        (xy 126.697171 77.252829)
+        (xy 126.654916 77.218151)
+        (xy 126.606708 77.192384)
+        (xy 126.554399 77.176516)
+        (xy 126.5 77.171158)
+        (xy 125 77.171158)
+        (xy 124.945601 77.176516)
+        (xy 124.893292 77.192384)
+        (xy 124.845084 77.218151)
+        (xy 124.802829 77.252829)
+        (xy 124.768151 77.295084)
+        (xy 124.742384 77.343292)
+        (xy 124.726516 77.395601)
+        (xy 124.723867 77.4225)
+        (xy 124.428842 77.4225)
+        (xy 124.428842 77.4)
+        (xy 124.423484 77.345601)
+        (xy 124.407616 77.293292)
+        (xy 124.381849 77.245084)
+        (xy 124.347171 77.202829)
+        (xy 124.304916 77.168151)
+        (xy 124.256708 77.142384)
+        (xy 124.204399 77.126516)
+        (xy 124.15 77.121158)
+        (xy 122.65 77.121158)
+        (xy 122.595601 77.126516)
+        (xy 122.543292 77.142384)
+        (xy 122.495084 77.168151)
+        (xy 122.452829 77.202829)
+        (xy 122.418151 77.245084)
+        (xy 122.392384 77.293292)
+        (xy 122.376516 77.345601)
+        (xy 122.371158 77.4)
+        (xy 122.371158 77.4225)
+        (xy 122.239208 77.4225)
+        (xy 122.168135 77.351427)
+        (xy 122.073549 77.288226)
+        (xy 121.96845 77.244693)
+        (xy 121.856879 77.2225)
+        (xy 121.743121 77.2225)
+        (xy 121.63155 77.244693)
+        (xy 121.526451 77.288226)
+        (xy 121.431865 77.351427)
+        (xy 121.351427 77.431865)
+        (xy 121.288226 77.526451)
+        (xy 121.244693 77.63155)
+        (xy 121.2225 77.743121)
+        (xy 119.7825 77.743121)
+        (xy 119.7825 77.13672)
+        (xy 121.816721 75.1025)
+        (xy 130.5858 75.1025)
+        (xy 130.631873 75.148573)
+        (xy 130.726459 75.211774)
+        (xy 130.831558 75.255307)
+        (xy 130.943129 75.2775)
+        (xy 131.056887 75.2775)
+        (xy 131.168458 75.255307)
+        (xy 131.273557 75.211774)
+        (xy 131.368143 75.148573)
+        (xy 131.448581 75.068135)
+        (xy 131.511782 74.973549)
+        (xy 131.555315 74.86845)
+        (xy 131.577508 74.756879)
+        (xy 131.577508 74.643121)
+        (xy 131.555315 74.53155)
+        (xy 131.511782 74.426451)
+        (xy 131.448581 74.331865)
+        (xy 131.368143 74.251427)
+        (xy 131.273557 74.188226)
+        (xy 131.168458 74.144693)
+        (xy 131.056887 74.1225)
+        (xy 130.943129 74.1225)
+        (xy 130.831558 74.144693)
+        (xy 130.823839 74.14789)
+        (xy 130.903594 74.068135)
+        (xy 130.966795 73.973549)
+        (xy 131.010328 73.86845)
+        (xy 131.032521 73.756879)
+        (xy 131.032521 73.643121)
+        (xy 131.010328 73.53155)
+        (xy 130.966795 73.426451)
+        (xy 130.903594 73.331865)
+        (xy 130.823156 73.251427)
+        (xy 130.72857 73.188226)
+        (xy 130.623471 73.144693)
+        (xy 130.5119 73.1225)
+        (xy 130.398142 73.1225)
+        (xy 130.286571 73.144693)
+        (xy 130.181472 73.188226)
+        (xy 130.086886 73.251427)
+        (xy 130.040813 73.2975)
+        (xy 121.913348 73.2975)
+        (xy 121.893589 73.295554)
+        (xy 121.87383 73.2975)
+        (xy 121.87382 73.2975)
+        (xy 121.814685 73.303324)
+        (xy 121.738814 73.32634)
+        (xy 121.66889 73.363715)
+        (xy 121.622957 73.401411)
+        (xy 121.622955 73.401413)
+        (xy 121.607602 73.414013)
+        (xy 121.595002 73.429366)
+        (xy 118.509367 76.515002)
+        (xy 118.494014 76.527602)
+        (xy 118.481414 76.542955)
+        (xy 118.481411 76.542958)
+        (xy 118.443715 76.588891)
+        (xy 118.411615 76.648947)
+        (xy 118.406341 76.658814)
+        (xy 118.383325 76.734685)
+        (xy 118.382279 76.745302)
+        (xy 118.375554 76.813589)
+        (xy 118.377501 76.833358)
+        (xy 118.3775 91.705855)
+        (xy 117.131438 92.951917)
+        (xy 117.066279 92.951917)
+        (xy 116.954708 92.97411)
+        (xy 116.849609 93.017643)
+        (xy 116.755023 93.080844)
+        (xy 116.674585 93.161282)
+        (xy 116.611384 93.255868)
+        (xy 116.567851 93.360967)
+        (xy 116.545658 93.472538)
+        (xy 116.545658 93.586296)
+        (xy 116.567851 93.697867)
+        (xy 116.611384 93.802966)
+        (xy 116.674585 93.897552)
+        (xy 116.755023 93.97799)
+        (xy 116.849609 94.041191)
+        (xy 116.888983 94.0575)
+        (xy 114.854208 94.0575)
+        (xy 114.808135 94.011427)
+        (xy 114.713549 93.948226)
+        (xy 114.60845 93.904693)
+        (xy 114.496879 93.8825)
+        (xy 114.383121 93.8825)
+        (xy 114.27155 93.904693)
+        (xy 114.166451 93.948226)
+        (xy 114.071865 94.011427)
+        (xy 113.991427 94.091865)
+        (xy 113.928226 94.186451)
+        (xy 113.884693 94.29155)
+        (xy 113.8625 94.403121)
+        (xy 112.365301 94.403121)
+        (xy 112.363356 94.383377)
+        (xy 112.307461 94.199117)
+        (xy 112.216694 94.029303)
+        (xy 112.094541 93.880459)
+        (xy 111.945697 93.758306)
+        (xy 111.775882 93.667539)
+        (xy 111.591622 93.611644)
+        (xy 111.4 93.592771)
+        (xy 111.208377 93.611644)
+        (xy 111.024117 93.667539)
+        (xy 110.854303 93.758306)
+        (xy 110.705459 93.880459)
+        (xy 110.583306 94.029303)
+        (xy 110.492539 94.199118)
+        (xy 110.436644 94.383378)
+        (xy 110.4225 94.526986)
+        (xy 110.4225 95.523015)
+        (xy 110.436645 95.666623)
+        (xy 110.49254 95.850883)
+        (xy 110.583307 96.020697)
+        (xy 110.70546 96.169541)
+        (xy 110.854304 96.291694)
+        (xy 111.024118 96.382461)
+        (xy 111.208378 96.438356)
+        (xy 111.4 96.457229)
+        (xy 111.591623 96.438356)
+        (xy 111.775883 96.382461)
+        (xy 111.945697 96.291694)
+        (xy 112.094541 96.169541)
+        (xy 112.216694 96.020697)
+        (xy 112.2175 96.019189)
+        (xy 112.2175 97.330812)
+        (xy 112.216694 97.329303)
+        (xy 112.094541 97.180459)
+        (xy 111.945697 97.058306)
+        (xy 111.775882 96.967539)
+        (xy 111.591622 96.911644)
+        (xy 111.4 96.892771)
+        (xy 111.208377 96.911644)
+        (xy 111.024117 96.967539)
+        (xy 110.854303 97.058306)
+        (xy 110.705459 97.180459)
+        (xy 110.583306 97.329303)
+        (xy 110.492539 97.499118)
+        (xy 110.436644 97.683378)
+        (xy 110.4225 97.826986)
+        (xy 110.4225 98.823015)
+        (xy 110.436645 98.966623)
+        (xy 110.49254 99.150883)
+        (xy 110.583307 99.320697)
+        (xy 110.70546 99.469541)
+        (xy 110.854304 99.591694)
+        (xy 111.024118 99.682461)
+        (xy 111.139625 99.7175)
+        (xy 90.2825 99.7175)
+        (xy 90.2825 96.800309)
+        (xy 90.9725 96.800309)
+        (xy 90.9725 97.199691)
+        (xy 91.050416 97.5914)
+        (xy 91.203253 97.960381)
+        (xy 91.425138 98.292456)
+        (xy 91.707544 98.574862)
+        (xy 92.039619 98.796747)
+        (xy 92.4086 98.949584)
+        (xy 92.800309 99.0275)
+        (xy 93.199691 99.0275)
+        (xy 93.5914 98.949584)
+        (xy 93.960381 98.796747)
+        (xy 94.292456 98.574862)
+        (xy 94.574862 98.292456)
+        (xy 94.796747 97.960381)
+        (xy 94.949584 97.5914)
+        (xy 95.0275 97.199691)
+        (xy 95.0275 96.800309)
+        (xy 94.949584 96.4086)
+        (xy 94.796747 96.039619)
+        (xy 94.574862 95.707544)
+        (xy 94.292456 95.425138)
+        (xy 93.960381 95.203253)
+        (xy 93.5914 95.050416)
+        (xy 93.199691 94.9725)
+        (xy 92.800309 94.9725)
+        (xy 92.4086 95.050416)
+        (xy 92.039619 95.203253)
+        (xy 91.707544 95.425138)
+        (xy 91.425138 95.707544)
+        (xy 91.203253 96.039619)
+        (xy 91.050416 96.4086)
+        (xy 90.9725 96.800309)
+        (xy 90.2825 96.800309)
+        (xy 90.2825 83.37)
+        (xy 91.821158 83.37)
+        (xy 91.821158 85.17)
+        (xy 91.826516 85.224399)
+        (xy 91.842384 85.276708)
+        (xy 91.868151 85.324916)
+        (xy 91.902829 85.367171)
+        (xy 91.945084 85.401849)
+        (xy 91.993292 85.427616)
+        (xy 92.045601 85.443484)
+        (xy 92.1 85.448842)
+        (xy 93.9 85.448842)
+        (xy 93.954399 85.443484)
+        (xy 94.006708 85.427616)
+        (xy 94.054916 85.401849)
+        (xy 94.097171 85.367171)
+        (xy 94.131849 85.324916)
+        (xy 94.157616 85.276708)
+        (xy 94.173484 85.224399)
+        (xy 94.178842 85.17)
+        (xy 94.178842 84.75)
+        (xy 108.22019 84.75)
+        (xy 108.229409 84.843606)
+        (xy 108.256713 84.933615)
+        (xy 108.301053 85.016568)
+        (xy 108.360723 85.089277)
+        (xy 108.433432 85.148947)
+        (xy 108.516385 85.193287)
+        (xy 108.606394 85.220591)
+        (xy 108.7 85.22981)
+        (xy 108.956125 85.2275)
+        (xy 109.0755 85.108125)
+        (xy 109.0755 84.0495)
+        (xy 109.1745 84.0495)
+        (xy 109.1745 85.108125)
+        (xy 109.293875 85.2275)
+        (xy 109.55 85.22981)
+        (xy 109.643606 85.220591)
+        (xy 109.733615 85.193287)
+        (xy 109.816568 85.148947)
+        (xy 109.889277 85.089277)
+        (xy 109.948947 85.016568)
+        (xy 109.993287 84.933615)
+        (xy 110.020591 84.843606)
+        (xy 110.02981 84.75)
+        (xy 110.0275 84.168875)
+        (xy 109.908125 84.0495)
+        (xy 109.1745 84.0495)
+        (xy 109.0755 84.0495)
+        (xy 108.341875 84.0495)
+        (xy 108.2225 84.168875)
+        (xy 108.22019 84.75)
+        (xy 94.178842 84.75)
+        (xy 94.178842 83.37)
+        (xy 94.173484 83.315601)
+        (xy 94.157616 83.263292)
+        (xy 94.150512 83.25)
+        (xy 108.22019 83.25)
+        (xy 108.2225 83.831125)
+        (xy 108.341875 83.9505)
+        (xy 109.0755 83.9505)
+        (xy 109.0755 82.891875)
+        (xy 109.1745 82.891875)
+        (xy 109.1745 83.9505)
+        (xy 109.908125 83.9505)
+        (xy 110.0275 83.831125)
+        (xy 110.02981 83.25)
+        (xy 110.020591 83.156394)
+        (xy 109.993287 83.066385)
+        (xy 109.948947 82.983432)
+        (xy 109.889277 82.910723)
+        (xy 109.816568 82.851053)
+        (xy 109.733615 82.806713)
+        (xy 109.643606 82.779409)
+        (xy 109.55 82.77019)
+        (xy 109.293875 82.7725)
+        (xy 109.1745 82.891875)
+        (xy 109.0755 82.891875)
+        (xy 108.956125 82.7725)
+        (xy 108.7 82.77019)
+        (xy 108.606394 82.779409)
+        (xy 108.516385 82.806713)
+        (xy 108.433432 82.851053)
+        (xy 108.360723 82.910723)
+        (xy 108.301053 82.983432)
+        (xy 108.256713 83.066385)
+        (xy 108.229409 83.156394)
+        (xy 108.22019 83.25)
+        (xy 94.150512 83.25)
+        (xy 94.131849 83.215084)
+        (xy 94.097171 83.172829)
+        (xy 94.054916 83.138151)
+        (xy 94.006708 83.112384)
+        (xy 93.954399 83.096516)
+        (xy 93.9 83.091158)
+        (xy 92.1 83.091158)
+        (xy 92.045601 83.096516)
+        (xy 91.993292 83.112384)
+        (xy 91.945084 83.138151)
+        (xy 91.902829 83.172829)
+        (xy 91.868151 83.215084)
+        (xy 91.842384 83.263292)
+        (xy 91.826516 83.315601)
+        (xy 91.821158 83.37)
+        (xy 90.2825 83.37)
+        (xy 90.2825 81.614026)
+        (xy 91.8225 81.614026)
+        (xy 91.8225 81.845974)
+        (xy 91.867751 82.073464)
+        (xy 91.956513 82.287755)
+        (xy 92.085376 82.480612)
+        (xy 92.249388 82.644624)
+        (xy 92.442245 82.773487)
+        (xy 92.656536 82.862249)
+        (xy 92.884026 82.9075)
+        (xy 93.115974 82.9075)
+        (xy 93.343464 82.862249)
+        (xy 93.557755 82.773487)
+        (xy 93.750612 82.644624)
+        (xy 93.914624 82.480612)
+        (xy 94.043487 82.287755)
+        (xy 94.132249 82.073464)
+        (xy 94.1775 81.845974)
+        (xy 94.1775 81.75)
+        (xy 108.22019 81.75)
+        (xy 108.229409 81.843606)
+        (xy 108.256713 81.933615)
+        (xy 108.301053 82.016568)
+        (xy 108.360723 82.089277)
+        (xy 108.433432 82.148947)
+        (xy 108.516385 82.193287)
+        (xy 108.606394 82.220591)
+        (xy 108.7 82.22981)
+        (xy 108.956125 82.2275)
+        (xy 109.0755 82.108125)
+        (xy 109.0755 81.0495)
+        (xy 109.1745 81.0495)
+        (xy 109.1745 82.108125)
+        (xy 109.293875 82.2275)
+        (xy 109.55 82.22981)
+        (xy 109.643606 82.220591)
+        (xy 109.733615 82.193287)
+        (xy 109.816568 82.148947)
+        (xy 109.889277 82.089277)
+        (xy 109.948947 82.016568)
+        (xy 109.993287 81.933615)
+        (xy 110.020591 81.843606)
+        (xy 110.02981 81.75)
+        (xy 110.0275 81.168875)
+        (xy 109.908125 81.0495)
+        (xy 109.1745 81.0495)
+        (xy 109.0755 81.0495)
+        (xy 108.341875 81.0495)
+        (xy 108.2225 81.168875)
+        (xy 108.22019 81.75)
+        (xy 94.1775 81.75)
+        (xy 94.1775 81.614026)
+        (xy 94.132249 81.386536)
+        (xy 94.043487 81.172245)
+        (xy 93.914624 80.979388)
+        (xy 93.750612 80.815376)
+        (xy 93.557755 80.686513)
+        (xy 93.343464 80.597751)
+        (xy 93.115974 80.5525)
+        (xy 92.884026 80.5525)
+        (xy 92.656536 80.597751)
+        (xy 92.442245 80.686513)
+        (xy 92.249388 80.815376)
+        (xy 92.085376 80.979388)
+        (xy 91.956513 81.172245)
+        (xy 91.867751 81.386536)
+        (xy 91.8225 81.614026)
+        (xy 90.2825 81.614026)
+        (xy 90.2825 80.25)
+        (xy 108.22019 80.25)
+        (xy 108.2225 80.831125)
+        (xy 108.341875 80.9505)
+        (xy 109.0755 80.9505)
+        (xy 109.0755 79.891875)
+        (xy 109.1745 79.891875)
+        (xy 109.1745 80.9505)
+        (xy 109.908125 80.9505)
+        (xy 110.0275 80.831125)
+        (xy 110.02981 80.25)
+        (xy 110.171158 80.25)
+        (xy 110.171158 81.75)
+        (xy 110.176516 81.804399)
+        (xy 110.192384 81.856708)
+        (xy 110.218151 81.904916)
+        (xy 110.252829 81.947171)
+        (xy 110.295084 81.981849)
+        (xy 110.343292 82.007616)
+        (xy 110.395601 82.023484)
+        (xy 110.45 82.028842)
+        (xy 110.4725 82.028842)
+        (xy 110.472501 82.971158)
+        (xy 110.45 82.971158)
+        (xy 110.395601 82.976516)
+        (xy 110.343292 82.992384)
+        (xy 110.295084 83.018151)
+        (xy 110.252829 83.052829)
+        (xy 110.218151 83.095084)
+        (xy 110.192384 83.143292)
+        (xy 110.176516 83.195601)
+        (xy 110.171158 83.25)
+        (xy 110.171158 84.75)
+        (xy 110.176516 84.804399)
+        (xy 110.192384 84.856708)
+        (xy 110.218151 84.904916)
+        (xy 110.252829 84.947171)
+        (xy 110.295084 84.981849)
+        (xy 110.343292 85.007616)
+        (xy 110.395601 85.023484)
+        (xy 110.45 85.028842)
+        (xy 111.3 85.028842)
+        (xy 111.354399 85.023484)
+        (xy 111.406708 85.007616)
+        (xy 111.454916 84.981849)
+        (xy 111.497171 84.947171)
+        (xy 111.531849 84.904916)
+        (xy 111.557616 84.856708)
+        (xy 111.573484 84.804399)
+        (xy 111.578842 84.75)
+        (xy 111.578842 84.4025)
+        (xy 111.585792 84.4025)
+        (xy 111.631865 84.448573)
+        (xy 111.726451 84.511774)
+        (xy 111.83155 84.555307)
+        (xy 111.943121 84.5775)
+        (xy 112.056879 84.5775)
+        (xy 112.16845 84.555307)
+        (xy 112.273549 84.511774)
+        (xy 112.368135 84.448573)
+        (xy 112.434645 84.382063)
+        (xy 112.4225 84.443121)
+        (xy 112.4225 84.556879)
+        (xy 112.444693 84.66845)
+        (xy 112.488226 84.773549)
+        (xy 112.551427 84.868135)
+        (xy 112.631865 84.948573)
+        (xy 112.726451 85.011774)
+        (xy 112.83155 85.055307)
+        (xy 112.943121 85.0775)
+        (xy 113.056879 85.0775)
+        (xy 113.16845 85.055307)
+        (xy 113.273549 85.011774)
+        (xy 113.368135 84.948573)
+        (xy 113.414208 84.9025)
+        (xy 113.421158 84.9025)
+        (xy 113.421158 85.25)
+        (xy 113.426516 85.304399)
+        (xy 113.442384 85.356708)
+        (xy 113.468151 85.404916)
+        (xy 113.502829 85.447171)
+        (xy 113.545084 85.481849)
+        (xy 113.593292 85.507616)
+        (xy 113.645601 85.523484)
+        (xy 113.7 85.528842)
+        (xy 114.55 85.528842)
+        (xy 114.604399 85.523484)
+        (xy 114.656708 85.507616)
+        (xy 114.704916 85.481849)
+        (xy 114.747171 85.447171)
+        (xy 114.781849 85.404916)
+        (xy 114.807616 85.356708)
+        (xy 114.823484 85.304399)
+        (xy 114.828842 85.25)
+        (xy 114.828842 83.75)
+        (xy 115.171158 83.75)
+        (xy 115.171158 85.25)
+        (xy 115.176516 85.304399)
+        (xy 115.192384 85.356708)
+        (xy 115.218151 85.404916)
+        (xy 115.252829 85.447171)
+        (xy 115.295084 85.481849)
+        (xy 115.343292 85.507616)
+        (xy 115.395601 85.523484)
+        (xy 115.45 85.528842)
+        (xy 116.3 85.528842)
+        (xy 116.354399 85.523484)
+        (xy 116.406708 85.507616)
+        (xy 116.454916 85.481849)
+        (xy 116.497171 85.447171)
+        (xy 116.531849 85.404916)
+        (xy 116.557616 85.356708)
+        (xy 116.573484 85.304399)
+        (xy 116.578842 85.25)
+        (xy 116.578842 84.9025)
+        (xy 116.585792 84.9025)
+        (xy 116.631865 84.948573)
+        (xy 116.726451 85.011774)
+        (xy 116.83155 85.055307)
+        (xy 116.943121 85.0775)
+        (xy 117.056879 85.0775)
+        (xy 117.16845 85.055307)
+        (xy 117.273549 85.011774)
+        (xy 117.368135 84.948573)
+        (xy 117.448573 84.868135)
+        (xy 117.511774 84.773549)
+        (xy 117.555307 84.66845)
+        (xy 117.5775 84.556879)
+        (xy 117.5775 84.443121)
+        (xy 117.555307 84.33155)
+        (xy 117.511774 84.226451)
+        (xy 117.448573 84.131865)
+        (xy 117.368135 84.051427)
+        (xy 117.273549 83.988226)
+        (xy 117.16845 83.944693)
+        (xy 117.056879 83.9225)
+        (xy 116.943121 83.9225)
+        (xy 116.83155 83.944693)
+        (xy 116.726451 83.988226)
+        (xy 116.631865 84.051427)
+        (xy 116.585792 84.0975)
+        (xy 116.578842 84.0975)
+        (xy 116.578842 83.75)
+        (xy 116.573484 83.695601)
+        (xy 116.557616 83.643292)
+        (xy 116.531849 83.595084)
+        (xy 116.497171 83.552829)
+        (xy 116.454916 83.518151)
+        (xy 116.406708 83.492384)
+        (xy 116.354399 83.476516)
+        (xy 116.3 83.471158)
+        (xy 115.45 83.471158)
+        (xy 115.395601 83.476516)
+        (xy 115.343292 83.492384)
+        (xy 115.295084 83.518151)
+        (xy 115.252829 83.552829)
+        (xy 115.218151 83.595084)
+        (xy 115.192384 83.643292)
+        (xy 115.176516 83.695601)
+        (xy 115.171158 83.75)
+        (xy 114.828842 83.75)
+        (xy 114.823484 83.695601)
+        (xy 114.807616 83.643292)
+        (xy 114.781849 83.595084)
+        (xy 114.747171 83.552829)
+        (xy 114.704916 83.518151)
+        (xy 114.656708 83.492384)
+        (xy 114.604399 83.476516)
+        (xy 114.55 83.471158)
+        (xy 113.7 83.471158)
+        (xy 113.645601 83.476516)
+        (xy 113.593292 83.492384)
+        (xy 113.545084 83.518151)
+        (xy 113.502829 83.552829)
+        (xy 113.468151 83.595084)
+        (xy 113.442384 83.643292)
+        (xy 113.426516 83.695601)
+        (xy 113.421158 83.75)
+        (xy 113.421158 84.0975)
+        (xy 113.414208 84.0975)
+        (xy 113.368135 84.051427)
+        (xy 113.273549 83.988226)
+        (xy 113.16845 83.944693)
+        (xy 113.056879 83.9225)
+        (xy 112.943121 83.9225)
+        (xy 112.83155 83.944693)
+        (xy 112.726451 83.988226)
+        (xy 112.631865 84.051427)
+        (xy 112.565355 84.117937)
+        (xy 112.5775 84.056879)
+        (xy 112.5775 83.943121)
+        (xy 112.555307 83.83155)
+        (xy 112.511774 83.726451)
+        (xy 112.448573 83.631865)
+        (xy 112.368135 83.551427)
+        (xy 112.273549 83.488226)
+        (xy 112.16845 83.444693)
+        (xy 112.056879 83.4225)
+        (xy 111.943121 83.4225)
+        (xy 111.83155 83.444693)
+        (xy 111.726451 83.488226)
+        (xy 111.631865 83.551427)
+        (xy 111.585792 83.5975)
+        (xy 111.578842 83.5975)
+        (xy 111.578842 83.25)
+        (xy 111.573484 83.195601)
+        (xy 111.557616 83.143292)
+        (xy 111.531849 83.095084)
+        (xy 111.497171 83.052829)
+        (xy 111.454916 83.018151)
+        (xy 111.406708 82.992384)
+        (xy 111.354399 82.976516)
+        (xy 111.3 82.971158)
+        (xy 111.2775 82.971158)
+        (xy 111.2775 82.385001)
+        (xy 113.34519 82.385001)
+        (xy 113.354409 82.478607)
+        (xy 113.381713 82.568616)
+        (xy 113.426053 82.651569)
+        (xy 113.485723 82.724278)
+        (xy 113.558432 82.783948)
+        (xy 113.641385 82.828288)
+        (xy 113.731394 82.855592)
+        (xy 113.825 82.864811)
+        (xy 114.081125 82.862501)
+        (xy 114.2005 82.743126)
+        (xy 114.2005 81.684501)
+        (xy 114.2995 81.684501)
+        (xy 114.2995 82.743126)
+        (xy 114.418875 82.862501)
+        (xy 114.675 82.864811)
+        (xy 114.768606 82.855592)
+        (xy 114.858615 82.828288)
+        (xy 114.941568 82.783948)
+        (xy 115.014277 82.724278)
+        (xy 115.073947 82.651569)
+        (xy 115.118287 82.568616)
+        (xy 115.145591 82.478607)
+        (xy 115.15481 82.385001)
+        (xy 115.1525 81.803876)
+        (xy 115.033125 81.684501)
+        (xy 114.2995 81.684501)
+        (xy 114.2005 81.684501)
+        (xy 113.466875 81.684501)
+        (xy 113.3475 81.803876)
+        (xy 113.34519 82.385001)
+        (xy 111.2775 82.385001)
+        (xy 111.2775 82.028842)
+        (xy 111.3 82.028842)
+        (xy 111.354399 82.023484)
+        (xy 111.406708 82.007616)
+        (xy 111.454916 81.981849)
+        (xy 111.497171 81.947171)
+        (xy 111.531849 81.904916)
+        (xy 111.557616 81.856708)
+        (xy 111.573484 81.804399)
+        (xy 111.578842 81.75)
+        (xy 111.578842 81.4025)
+        (xy 111.585792 81.4025)
+        (xy 111.631865 81.448573)
+        (xy 111.726451 81.511774)
+        (xy 111.83155 81.555307)
+        (xy 111.943121 81.5775)
+        (xy 112.056879 81.5775)
+        (xy 112.16845 81.555307)
+        (xy 112.273549 81.511774)
+        (xy 112.368135 81.448573)
+        (xy 112.448573 81.368135)
+        (xy 112.511774 81.273549)
+        (xy 112.555307 81.16845)
+        (xy 112.5775 81.056879)
+        (xy 112.5775 80.943121)
+        (xy 112.56594 80.885001)
+        (xy 113.34519 80.885001)
+        (xy 113.3475 81.466126)
+        (xy 113.466875 81.585501)
+        (xy 114.2005 81.585501)
+        (xy 114.2005 80.526876)
+        (xy 114.2995 80.526876)
+        (xy 114.2995 81.585501)
+        (xy 115.033125 81.585501)
+        (xy 115.1525 81.466126)
+        (xy 115.15481 80.885001)
+        (xy 115.296158 80.885001)
+        (xy 115.296158 82.385001)
+        (xy 115.301516 82.4394)
+        (xy 115.317384 82.491709)
+        (xy 115.343151 82.539917)
+        (xy 115.377829 82.582172)
+        (xy 115.420084 82.61685)
+        (xy 115.468292 82.642617)
+        (xy 115.520601 82.658485)
+        (xy 115.575 82.663843)
+        (xy 116.425 82.663843)
+        (xy 116.479399 82.658485)
+        (xy 116.531708 82.642617)
+        (xy 116.579916 82.61685)
+        (xy 116.622171 82.582172)
+        (xy 116.656849 82.539917)
+        (xy 116.682616 82.491709)
+        (xy 116.698484 82.4394)
+        (xy 116.703842 82.385001)
+        (xy 116.703842 82.219915)
+        (xy 116.738659 82.154775)
+        (xy 116.761674 82.078903)
+        (xy 116.763413 82.061244)
+        (xy 116.801427 82.118135)
+        (xy 116.881865 82.198573)
+        (xy 116.976451 82.261774)
+        (xy 117.08155 82.305307)
+        (xy 117.193121 82.3275)
+        (xy 117.306879 82.3275)
+        (xy 117.41845 82.305307)
+        (xy 117.523549 82.261774)
+        (xy 117.618135 82.198573)
+        (xy 117.698573 82.118135)
+        (xy 117.761774 82.023549)
+        (xy 117.805307 81.91845)
+        (xy 117.8275 81.806879)
+        (xy 117.8275 81.693121)
+        (xy 117.805307 81.58155)
+        (xy 117.761774 81.476451)
+        (xy 117.698573 81.381865)
+        (xy 117.618135 81.301427)
+        (xy 117.523549 81.238226)
+        (xy 117.41845 81.194693)
+        (xy 117.306879 81.1725)
+        (xy 117.193121 81.1725)
+        (xy 117.08155 81.194693)
+        (xy 116.990273 81.232501)
+        (xy 116.703842 81.232501)
+        (xy 116.703842 80.885001)
+        (xy 116.698484 80.830602)
+        (xy 116.682616 80.778293)
+        (xy 116.656849 80.730085)
+        (xy 116.622171 80.68783)
+        (xy 116.579916 80.653152)
+        (xy 116.531708 80.627385)
+        (xy 116.479399 80.611517)
+        (xy 116.425 80.606159)
+        (xy 115.575 80.606159)
+        (xy 115.520601 80.611517)
+        (xy 115.468292 80.627385)
+        (xy 115.420084 80.653152)
+        (xy 115.377829 80.68783)
+        (xy 115.343151 80.730085)
+        (xy 115.317384 80.778293)
+        (xy 115.301516 80.830602)
+        (xy 115.296158 80.885001)
+        (xy 115.15481 80.885001)
+        (xy 115.145591 80.791395)
+        (xy 115.118287 80.701386)
+        (xy 115.073947 80.618433)
+        (xy 115.014277 80.545724)
+        (xy 114.941568 80.486054)
+        (xy 114.858615 80.441714)
+        (xy 114.768606 80.41441)
+        (xy 114.675 80.405191)
+        (xy 114.418875 80.407501)
+        (xy 114.2995 80.526876)
+        (xy 114.2005 80.526876)
+        (xy 114.081125 80.407501)
+        (xy 113.825 80.405191)
+        (xy 113.731394 80.41441)
+        (xy 113.641385 80.441714)
+        (xy 113.558432 80.486054)
+        (xy 113.485723 80.545724)
+        (xy 113.426053 80.618433)
+        (xy 113.381713 80.701386)
+        (xy 113.354409 80.791395)
+        (xy 113.34519 80.885001)
+        (xy 112.56594 80.885001)
+        (xy 112.555307 80.83155)
+        (xy 112.511774 80.726451)
+        (xy 112.448573 80.631865)
+        (xy 112.368135 80.551427)
+        (xy 112.273549 80.488226)
+        (xy 112.16845 80.444693)
+        (xy 112.056879 80.4225)
+        (xy 111.943121 80.4225)
+        (xy 111.83155 80.444693)
+        (xy 111.726451 80.488226)
+        (xy 111.631865 80.551427)
+        (xy 111.585792 80.5975)
+        (xy 111.578842 80.5975)
+        (xy 111.578842 80.25)
+        (xy 111.573484 80.195601)
+        (xy 111.557616 80.143292)
+        (xy 111.531849 80.095084)
+        (xy 111.497171 80.052829)
+        (xy 111.454916 80.018151)
+        (xy 111.406708 79.992384)
+        (xy 111.354399 79.976516)
+        (xy 111.3 79.971158)
+        (xy 110.45 79.971158)
+        (xy 110.395601 79.976516)
+        (xy 110.343292 79.992384)
+        (xy 110.295084 80.018151)
+        (xy 110.252829 80.052829)
+        (xy 110.218151 80.095084)
+        (xy 110.192384 80.143292)
+        (xy 110.176516 80.195601)
+        (xy 110.171158 80.25)
+        (xy 110.02981 80.25)
+        (xy 110.020591 80.156394)
+        (xy 109.993287 80.066385)
+        (xy 109.948947 79.983432)
+        (xy 109.889277 79.910723)
+        (xy 109.816568 79.851053)
+        (xy 109.733615 79.806713)
+        (xy 109.643606 79.779409)
+        (xy 109.55 79.77019)
+        (xy 109.293875 79.7725)
+        (xy 109.1745 79.891875)
+        (xy 109.0755 79.891875)
+        (xy 108.956125 79.7725)
+        (xy 108.7 79.77019)
+        (xy 108.606394 79.779409)
+        (xy 108.516385 79.806713)
+        (xy 108.433432 79.851053)
+        (xy 108.360723 79.910723)
+        (xy 108.301053 79.983432)
+        (xy 108.256713 80.066385)
+        (xy 108.229409 80.156394)
+        (xy 108.22019 80.25)
+        (xy 90.2825 80.25)
+        (xy 90.2825 79.75)
+        (xy 113.22019 79.75)
+        (xy 113.229409 79.843606)
+        (xy 113.256713 79.933615)
+        (xy 113.301053 80.016568)
+        (xy 113.360723 80.089277)
+        (xy 113.433432 80.148947)
+        (xy 113.516385 80.193287)
+        (xy 113.606394 80.220591)
+        (xy 113.7 80.22981)
+        (xy 113.956125 80.2275)
+        (xy 114.0755 80.108125)
+        (xy 114.0755 79.0495)
+        (xy 114.1745 79.0495)
+        (xy 114.1745 80.108125)
+        (xy 114.293875 80.2275)
+        (xy 114.55 80.22981)
+        (xy 114.643606 80.220591)
+        (xy 114.733615 80.193287)
+        (xy 114.816568 80.148947)
+        (xy 114.889277 80.089277)
+        (xy 114.948947 80.016568)
+        (xy 114.993287 79.933615)
+        (xy 115.020591 79.843606)
+        (xy 115.02981 79.75)
+        (xy 115.0275 79.168875)
+        (xy 114.908125 79.0495)
+        (xy 114.1745 79.0495)
+        (xy 114.0755 79.0495)
+        (xy 113.341875 79.0495)
+        (xy 113.2225 79.168875)
+        (xy 113.22019 79.75)
+        (xy 90.2825 79.75)
+        (xy 90.2825 78.25)
+        (xy 113.22019 78.25)
+        (xy 113.2225 78.831125)
+        (xy 113.341875 78.9505)
+        (xy 114.0755 78.9505)
+        (xy 114.0755 77.891875)
+        (xy 114.1745 77.891875)
+        (xy 114.1745 78.9505)
+        (xy 114.908125 78.9505)
+        (xy 115.0275 78.831125)
+        (xy 115.02981 78.25)
+        (xy 115.171158 78.25)
+        (xy 115.171158 79.75)
+        (xy 115.176516 79.804399)
+        (xy 115.192384 79.856708)
+        (xy 115.218151 79.904916)
+        (xy 115.252829 79.947171)
+        (xy 115.295084 79.981849)
+        (xy 115.343292 80.007616)
+        (xy 115.395601 80.023484)
+        (xy 115.45 80.028842)
+        (xy 116.3 80.028842)
+        (xy 116.354399 80.023484)
+        (xy 116.406708 80.007616)
+        (xy 116.454916 79.981849)
+        (xy 116.497171 79.947171)
+        (xy 116.531849 79.904916)
+        (xy 116.557616 79.856708)
+        (xy 116.573484 79.804399)
+        (xy 116.578842 79.75)
+        (xy 116.578842 79.4025)
+        (xy 116.585792 79.4025)
+        (xy 116.631865 79.448573)
+        (xy 116.726451 79.511774)
+        (xy 116.83155 79.555307)
+        (xy 116.943121 79.5775)
+        (xy 117.056879 79.5775)
+        (xy 117.16845 79.555307)
+        (xy 117.273549 79.511774)
+        (xy 117.368135 79.448573)
+        (xy 117.448573 79.368135)
+        (xy 117.511774 79.273549)
+        (xy 117.555307 79.16845)
+        (xy 117.5775 79.056879)
+        (xy 117.5775 78.943121)
+        (xy 117.555307 78.83155)
+        (xy 117.511774 78.726451)
+        (xy 117.448573 78.631865)
+        (xy 117.368135 78.551427)
+        (xy 117.273549 78.488226)
+        (xy 117.16845 78.444693)
+        (xy 117.056879 78.4225)
+        (xy 116.943121 78.4225)
+        (xy 116.83155 78.444693)
+        (xy 116.726451 78.488226)
+        (xy 116.631865 78.551427)
+        (xy 116.585792 78.5975)
+        (xy 116.578842 78.5975)
+        (xy 116.578842 78.25)
+        (xy 116.573484 78.195601)
+        (xy 116.557616 78.143292)
+        (xy 116.531849 78.095084)
+        (xy 116.497171 78.052829)
+        (xy 116.454916 78.018151)
+        (xy 116.406708 77.992384)
+        (xy 116.354399 77.976516)
+        (xy 116.3 77.971158)
+        (xy 115.45 77.971158)
+        (xy 115.395601 77.976516)
+        (xy 115.343292 77.992384)
+        (xy 115.295084 78.018151)
+        (xy 115.252829 78.052829)
+        (xy 115.218151 78.095084)
+        (xy 115.192384 78.143292)
+        (xy 115.176516 78.195601)
+        (xy 115.171158 78.25)
+        (xy 115.02981 78.25)
+        (xy 115.020591 78.156394)
+        (xy 114.993287 78.066385)
+        (xy 114.948947 77.983432)
+        (xy 114.889277 77.910723)
+        (xy 114.816568 77.851053)
+        (xy 114.733615 77.806713)
+        (xy 114.643606 77.779409)
+        (xy 114.55 77.77019)
+        (xy 114.293875 77.7725)
+        (xy 114.1745 77.891875)
+        (xy 114.0755 77.891875)
+        (xy 113.956125 77.7725)
+        (xy 113.7 77.77019)
+        (xy 113.606394 77.779409)
+        (xy 113.516385 77.806713)
+        (xy 113.433432 77.851053)
+        (xy 113.360723 77.910723)
+        (xy 113.301053 77.983432)
+        (xy 113.256713 78.066385)
+        (xy 113.229409 78.156394)
+        (xy 113.22019 78.25)
+        (xy 90.2825 78.25)
+        (xy 90.2825 70.434177)
+        (xy 92.0225 70.434177)
+        (xy 92.0225 70.685823)
+        (xy 92.071594 70.932633)
+        (xy 92.167894 71.165123)
+        (xy 92.307701 71.374359)
+        (xy 92.485641 71.552299)
+        (xy 92.694877 71.692106)
+        (xy 92.927367 71.788406)
+        (xy 93.136472 71.83)
+        (xy 92.927367 71.871594)
+        (xy 92.694877 71.967894)
+        (xy 92.485641 72.107701)
+        (xy 92.307701 72.285641)
+        (xy 92.167894 72.494877)
+        (xy 92.071594 72.727367)
+        (xy 92.0225 72.974177)
+        (xy 92.0225 73.225823)
+        (xy 92.071594 73.472633)
+        (xy 92.167894 73.705123)
+        (xy 92.307701 73.914359)
+        (xy 92.485641 74.092299)
+        (xy 92.694877 74.232106)
+        (xy 92.927367 74.328406)
+        (xy 93.136472 74.37)
+        (xy 92.927367 74.411594)
+        (xy 92.694877 74.507894)
+        (xy 92.485641 74.647701)
+        (xy 92.307701 74.825641)
+        (xy 92.167894 75.034877)
+        (xy 92.071594 75.267367)
+        (xy 92.0225 75.514177)
+        (xy 92.0225 75.765823)
+        (xy 92.071594 76.012633)
+        (xy 92.167894 76.245123)
+        (xy 92.307701 76.454359)
+        (xy 92.485641 76.632299)
+        (xy 92.694877 76.772106)
+        (xy 92.927367 76.868406)
+        (xy 93.174177 76.9175)
+        (xy 93.425823 76.9175)
+        (xy 93.672633 76.868406)
+        (xy 93.905123 76.772106)
+        (xy 94.114359 76.632299)
+        (xy 94.292299 76.454359)
+        (xy 94.432106 76.245123)
+        (xy 94.528406 76.012633)
+        (xy 94.5775 75.765823)
+        (xy 94.5775 75.514177)
+        (xy 94.563366 75.443121)
+        (xy 103.9225 75.443121)
+        (xy 103.9225 75.556879)
+        (xy 103.944693 75.66845)
+        (xy 103.988226 75.773549)
+        (xy 104.051427 75.868135)
+        (xy 104.131865 75.948573)
+        (xy 104.226451 76.011774)
+        (xy 104.33155 76.055307)
+        (xy 104.421158 76.073131)
+        (xy 104.421158 76.25)
+        (xy 104.426516 76.304399)
+        (xy 104.442384 76.356708)
+        (xy 104.468151 76.404916)
+        (xy 104.502829 76.447171)
+        (xy 104.545084 76.481849)
+        (xy 104.593292 76.507616)
+        (xy 104.645601 76.523484)
+        (xy 104.7 76.528842)
+        (xy 105.55 76.528842)
+        (xy 105.604399 76.523484)
+        (xy 105.656708 76.507616)
+        (xy 105.704916 76.481849)
+        (xy 105.747171 76.447171)
+        (xy 105.781849 76.404916)
+        (xy 105.807616 76.356708)
+        (xy 105.823484 76.304399)
+        (xy 105.828842 76.25)
+        (xy 105.97019 76.25)
+        (xy 105.979409 76.343606)
+        (xy 106.006713 76.433615)
+        (xy 106.051053 76.516568)
+        (xy 106.110723 76.589277)
+        (xy 106.183432 76.648947)
+        (xy 106.266385 76.693287)
+        (xy 106.356394 76.720591)
+        (xy 106.45 76.72981)
+        (xy 106.706125 76.7275)
+        (xy 106.8255 76.608125)
+        (xy 106.8255 75.5495)
+        (xy 106.9245 75.5495)
+        (xy 106.9245 76.608125)
+        (xy 107.043875 76.7275)
+        (xy 107.3 76.72981)
+        (xy 107.393606 76.720591)
+        (xy 107.483615 76.693287)
+        (xy 107.566568 76.648947)
+        (xy 107.639277 76.589277)
+        (xy 107.698947 76.516568)
+        (xy 107.743287 76.433615)
+        (xy 107.770591 76.343606)
+        (xy 107.77981 76.25)
+        (xy 107.7775 75.668875)
+        (xy 107.658125 75.5495)
+        (xy 106.9245 75.5495)
+        (xy 106.8255 75.5495)
+        (xy 106.091875 75.5495)
+        (xy 105.9725 75.668875)
+        (xy 105.97019 76.25)
+        (xy 105.828842 76.25)
+        (xy 105.828842 74.75)
+        (xy 105.97019 74.75)
+        (xy 105.9725 75.331125)
+        (xy 106.091875 75.4505)
+        (xy 106.8255 75.4505)
+        (xy 106.8255 74.391875)
+        (xy 106.9245 74.391875)
+        (xy 106.9245 75.4505)
+        (xy 107.658125 75.4505)
+        (xy 107.7775 75.331125)
+        (xy 107.77981 74.75)
+        (xy 107.770591 74.656394)
+        (xy 107.743287 74.566385)
+        (xy 107.698947 74.483432)
+        (xy 107.639277 74.410723)
+        (xy 107.566568 74.351053)
+        (xy 107.483615 74.306713)
+        (xy 107.393606 74.279409)
+        (xy 107.3 74.27019)
+        (xy 107.043875 74.2725)
+        (xy 106.9245 74.391875)
+        (xy 106.8255 74.391875)
+        (xy 106.706125 74.2725)
+        (xy 106.45 74.27019)
+        (xy 106.356394 74.279409)
+        (xy 106.266385 74.306713)
+        (xy 106.183432 74.351053)
+        (xy 106.110723 74.410723)
+        (xy 106.051053 74.483432)
+        (xy 106.006713 74.566385)
+        (xy 105.979409 74.656394)
+        (xy 105.97019 74.75)
+        (xy 105.828842 74.75)
+        (xy 105.823484 74.695601)
+        (xy 105.807616 74.643292)
+        (xy 105.781849 74.595084)
+        (xy 105.747171 74.552829)
+        (xy 105.704916 74.518151)
+        (xy 105.656708 74.492384)
+        (xy 105.604399 74.476516)
+        (xy 105.55 74.471158)
+        (xy 104.7 74.471158)
+        (xy 104.645601 74.476516)
+        (xy 104.593292 74.492384)
+        (xy 104.545084 74.518151)
+        (xy 104.502829 74.552829)
+        (xy 104.468151 74.595084)
+        (xy 104.442384 74.643292)
+        (xy 104.426516 74.695601)
+        (xy 104.421158 74.75)
+        (xy 104.421158 74.926869)
+        (xy 104.33155 74.944693)
+        (xy 104.226451 74.988226)
+        (xy 104.131865 75.051427)
+        (xy 104.051427 75.131865)
+        (xy 103.988226 75.226451)
+        (xy 103.944693 75.33155)
+        (xy 103.9225 75.443121)
+        (xy 94.563366 75.443121)
+        (xy 94.528406 75.267367)
+        (xy 94.432106 75.034877)
+        (xy 94.292299 74.825641)
+        (xy 94.114359 74.647701)
+        (xy 93.905123 74.507894)
+        (xy 93.672633 74.411594)
+        (xy 93.463528 74.37)
+        (xy 93.672633 74.328406)
+        (xy 93.905123 74.232106)
+        (xy 94.114359 74.092299)
+        (xy 94.292299 73.914359)
+        (xy 94.432106 73.705123)
+        (xy 94.528406 73.472633)
+        (xy 94.574059 73.243121)
+        (xy 120.3225 73.243121)
+        (xy 120.3225 73.356879)
+        (xy 120.344693 73.46845)
+        (xy 120.388226 73.573549)
+        (xy 120.451427 73.668135)
+        (xy 120.531865 73.748573)
+        (xy 120.626451 73.811774)
+        (xy 120.73155 73.855307)
+        (xy 120.843121 73.8775)
+        (xy 120.956879 73.8775)
+        (xy 121.06845 73.855307)
+        (xy 121.173549 73.811774)
+        (xy 121.268135 73.748573)
+        (xy 121.348573 73.668135)
+        (xy 121.411774 73.573549)
+        (xy 121.455307 73.46845)
+        (xy 121.4775 73.356879)
+        (xy 121.4775 73.29172)
+        (xy 121.766721 73.0025)
+        (xy 131.585792 73.0025)
+        (xy 131.631865 73.048573)
+        (xy 131.726451 73.111774)
+        (xy 131.83155 73.155307)
+        (xy 131.943121 73.1775)
+        (xy 132.056879 73.1775)
+        (xy 132.16845 73.155307)
+        (xy 132.273549 73.111774)
+        (xy 132.368135 73.048573)
+        (xy 132.448573 72.968135)
+        (xy 132.511774 72.873549)
+        (xy 132.555307 72.76845)
+        (xy 132.5775 72.656879)
+        (xy 132.5775 72.543121)
+        (xy 132.555307 72.43155)
+        (xy 132.511774 72.326451)
+        (xy 132.448573 72.231865)
+        (xy 132.368135 72.151427)
+        (xy 132.273549 72.088226)
+        (xy 132.16845 72.044693)
+        (xy 132.056879 72.0225)
+        (xy 131.943121 72.0225)
+        (xy 131.83155 72.044693)
+        (xy 131.726451 72.088226)
+        (xy 131.631865 72.151427)
+        (xy 131.585792 72.1975)
+        (xy 121.619758 72.1975)
+        (xy 121.599999 72.195554)
+        (xy 121.58024 72.1975)
+        (xy 121.580231 72.1975)
+        (xy 121.521096 72.203324)
+        (xy 121.445225 72.22634)
+        (xy 121.412675 72.243738)
+        (xy 121.3753 72.263715)
+        (xy 121.336906 72.295225)
+        (xy 121.314013 72.314013)
+        (xy 121.301413 72.329366)
+        (xy 120.90828 72.7225)
+        (xy 120.843121 72.7225)
+        (xy 120.73155 72.744693)
+        (xy 120.626451 72.788226)
+        (xy 120.531865 72.851427)
+        (xy 120.451427 72.931865)
+        (xy 120.388226 73.026451)
+        (xy 120.344693 73.13155)
+        (xy 120.3225 73.243121)
+        (xy 94.574059 73.243121)
+        (xy 94.5775 73.225823)
+        (xy 94.5775 72.974177)
+        (xy 94.528406 72.727367)
+        (xy 94.432106 72.494877)
+        (xy 94.292299 72.285641)
+        (xy 94.114359 72.107701)
+        (xy 93.905123 71.967894)
+        (xy 93.672633 71.871594)
+        (xy 93.463528 71.83)
+        (xy 93.672633 71.788406)
+        (xy 93.905123 71.692106)
+        (xy 94.114359 71.552299)
+        (xy 94.223537 71.443121)
+        (xy 103.9225 71.443121)
+        (xy 103.9225 71.556879)
+        (xy 103.944693 71.66845)
+        (xy 103.988226 71.773549)
+        (xy 104.051427 71.868135)
+        (xy 104.131865 71.948573)
+        (xy 104.226451 72.011774)
+        (xy 104.33155 72.055307)
+        (xy 104.443121 72.0775)
+        (xy 104.556879 72.0775)
+        (xy 104.66845 72.055307)
+        (xy 104.721158 72.033475)
+        (xy 104.721158 72.35)
+        (xy 104.726516 72.404399)
+        (xy 104.742384 72.456708)
+        (xy 104.768151 72.504916)
+        (xy 104.802829 72.547171)
+        (xy 104.845084 72.581849)
+        (xy 104.893292 72.607616)
+        (xy 104.945601 72.623484)
+        (xy 105 72.628842)
+        (xy 105.85 72.628842)
+        (xy 105.904399 72.623484)
+        (xy 105.956708 72.607616)
+        (xy 106.004916 72.581849)
+        (xy 106.047171 72.547171)
+        (xy 106.081849 72.504916)
+        (xy 106.107616 72.456708)
+        (xy 106.123484 72.404399)
+        (xy 106.128842 72.35)
+        (xy 106.27019 72.35)
+        (xy 106.279409 72.443606)
+        (xy 106.306713 72.533615)
+        (xy 106.351053 72.616568)
+        (xy 106.410723 72.689277)
+        (xy 106.483432 72.748947)
+        (xy 106.566385 72.793287)
+        (xy 106.656394 72.820591)
+        (xy 106.75 72.82981)
+        (xy 107.006125 72.8275)
+        (xy 107.1255 72.708125)
+        (xy 107.1255 71.6495)
+        (xy 107.2245 71.6495)
+        (xy 107.2245 72.708125)
+        (xy 107.343875 72.8275)
+        (xy 107.6 72.82981)
+        (xy 107.693606 72.820591)
+        (xy 107.783615 72.793287)
+        (xy 107.866568 72.748947)
+        (xy 107.939277 72.689277)
+        (xy 107.998947 72.616568)
+        (xy 108.043287 72.533615)
+        (xy 108.070591 72.443606)
+        (xy 108.07981 72.35)
+        (xy 108.0775 71.768875)
+        (xy 107.958125 71.6495)
+        (xy 107.2245 71.6495)
+        (xy 107.1255 71.6495)
+        (xy 106.391875 71.6495)
+        (xy 106.2725 71.768875)
+        (xy 106.27019 72.35)
+        (xy 106.128842 72.35)
+        (xy 106.128842 70.85)
+        (xy 106.27019 70.85)
+        (xy 106.2725 71.431125)
+        (xy 106.391875 71.5505)
+        (xy 107.1255 71.5505)
+        (xy 107.1255 70.491875)
+        (xy 107.2245 70.491875)
+        (xy 107.2245 71.5505)
+        (xy 107.958125 71.5505)
+        (xy 108.065504 71.443121)
+        (xy 120.2225 71.443121)
+        (xy 120.2225 71.556879)
+        (xy 120.244693 71.66845)
+        (xy 120.288226 71.773549)
+        (xy 120.351427 71.868135)
+        (xy 120.431865 71.948573)
+        (xy 120.526451 72.011774)
+        (xy 120.63155 72.055307)
+        (xy 120.743121 72.0775)
+        (xy 120.856879 72.0775)
+        (xy 120.96845 72.055307)
+        (xy 121.073549 72.011774)
+        (xy 121.168135 71.948573)
+        (xy 121.214208 71.9025)
+        (xy 131.680241 71.9025)
+        (xy 131.7 71.904446)
+        (xy 131.719759 71.9025)
+        (xy 131.719769 71.9025)
+        (xy 131.778904 71.896676)
+        (xy 131.854775 71.87366)
+        (xy 131.924699 71.836285)
+        (xy 131.985987 71.785987)
+        (xy 131.998591 71.770629)
+        (xy 132.09172 71.6775)
+        (xy 132.156879 71.6775)
+        (xy 132.26845 71.655307)
+        (xy 132.373549 71.611774)
+        (xy 132.468135 71.548573)
+        (xy 132.548573 71.468135)
+        (xy 132.611774 71.373549)
+        (xy 132.655307 71.26845)
+        (xy 132.6775 71.156879)
+        (xy 132.6775 71.043121)
+        (xy 132.655307 70.93155)
+        (xy 132.611774 70.826451)
+        (xy 132.548573 70.731865)
+        (xy 132.468135 70.651427)
+        (xy 132.373549 70.588226)
+        (xy 132.26845 70.544693)
+        (xy 132.156879 70.5225)
+        (xy 132.043121 70.5225)
+        (xy 131.93155 70.544693)
+        (xy 131.826451 70.588226)
+        (xy 131.731865 70.651427)
+        (xy 131.651427 70.731865)
+        (xy 131.588226 70.826451)
+        (xy 131.544693 70.93155)
+        (xy 131.5225 71.043121)
+        (xy 131.5225 71.0975)
+        (xy 121.214208 71.0975)
+        (xy 121.168135 71.051427)
+        (xy 121.073549 70.988226)
+        (xy 120.96845 70.944693)
+        (xy 120.856879 70.9225)
+        (xy 120.743121 70.9225)
+        (xy 120.63155 70.944693)
+        (xy 120.526451 70.988226)
+        (xy 120.431865 71.051427)
+        (xy 120.351427 71.131865)
+        (xy 120.288226 71.226451)
+        (xy 120.244693 71.33155)
+        (xy 120.2225 71.443121)
+        (xy 108.065504 71.443121)
+        (xy 108.0775 71.431125)
+        (xy 108.07981 70.85)
+        (xy 108.070591 70.756394)
+        (xy 108.043287 70.666385)
+        (xy 107.998947 70.583432)
+        (xy 107.939277 70.510723)
+        (xy 107.866568 70.451053)
+        (xy 107.783615 70.406713)
+        (xy 107.693606 70.379409)
+        (xy 107.6 70.37019)
+        (xy 107.343875 70.3725)
+        (xy 107.2245 70.491875)
+        (xy 107.1255 70.491875)
+        (xy 107.006125 70.3725)
+        (xy 106.75 70.37019)
+        (xy 106.656394 70.379409)
+        (xy 106.566385 70.406713)
+        (xy 106.483432 70.451053)
+        (xy 106.410723 70.510723)
+        (xy 106.351053 70.583432)
+        (xy 106.306713 70.666385)
+        (xy 106.279409 70.756394)
+        (xy 106.27019 70.85)
+        (xy 106.128842 70.85)
+        (xy 106.123484 70.795601)
+        (xy 106.107616 70.743292)
+        (xy 106.081849 70.695084)
+        (xy 106.047171 70.652829)
+        (xy 106.004916 70.618151)
+        (xy 105.956708 70.592384)
+        (xy 105.904399 70.576516)
+        (xy 105.85 70.571158)
+        (xy 105 70.571158)
+        (xy 104.945601 70.576516)
+        (xy 104.893292 70.592384)
+        (xy 104.845084 70.618151)
+        (xy 104.802829 70.652829)
+        (xy 104.768151 70.695084)
+        (xy 104.742384 70.743292)
+        (xy 104.726516 70.795601)
+        (xy 104.721158 70.85)
+        (xy 104.721158 70.966525)
+        (xy 104.66845 70.944693)
+        (xy 104.556879 70.9225)
+        (xy 104.443121 70.9225)
+        (xy 104.33155 70.944693)
+        (xy 104.226451 70.988226)
+        (xy 104.131865 71.051427)
+        (xy 104.051427 71.131865)
+        (xy 103.988226 71.226451)
+        (xy 103.944693 71.33155)
+        (xy 103.9225 71.443121)
+        (xy 94.223537 71.443121)
+        (xy 94.292299 71.374359)
+        (xy 94.432106 71.165123)
+        (xy 94.528406 70.932633)
+        (xy 94.5775 70.685823)
+        (xy 94.5775 70.434177)
+        (xy 94.540865 70.25)
+        (xy 126.22019 70.25)
+        (xy 126.229409 70.343606)
+        (xy 126.256713 70.433615)
+        (xy 126.301053 70.516568)
+        (xy 126.360723 70.589277)
+        (xy 126.433432 70.648947)
+        (xy 126.516385 70.693287)
+        (xy 126.606394 70.720591)
+        (xy 126.7 70.72981)
+        (xy 126.956125 70.7275)
+        (xy 127.0755 70.608125)
+        (xy 127.0755 69.5495)
+        (xy 127.1745 69.5495)
+        (xy 127.1745 70.608125)
+        (xy 127.293875 70.7275)
+        (xy 127.55 70.72981)
+        (xy 127.643606 70.720591)
+        (xy 127.733615 70.693287)
+        (xy 127.816568 70.648947)
+        (xy 127.889277 70.589277)
+        (xy 127.948947 70.516568)
+        (xy 127.993287 70.433615)
+        (xy 128.020591 70.343606)
+        (xy 128.02981 70.25)
+        (xy 128.0275 69.668875)
+        (xy 127.908125 69.5495)
+        (xy 127.1745 69.5495)
+        (xy 127.0755 69.5495)
+        (xy 126.341875 69.5495)
+        (xy 126.2225 69.668875)
+        (xy 126.22019 70.25)
+        (xy 94.540865 70.25)
+        (xy 94.528406 70.187367)
+        (xy 94.432106 69.954877)
+        (xy 94.292299 69.745641)
+        (xy 94.114359 69.567701)
+        (xy 93.905123 69.427894)
+        (xy 93.672633 69.331594)
+        (xy 93.425823 69.2825)
+        (xy 93.174177 69.2825)
+        (xy 92.927367 69.331594)
+        (xy 92.694877 69.427894)
+        (xy 92.485641 69.567701)
+        (xy 92.307701 69.745641)
+        (xy 92.167894 69.954877)
+        (xy 92.071594 70.187367)
+        (xy 92.0225 70.434177)
+        (xy 90.2825 70.434177)
+        (xy 90.2825 60)
+        (xy 99.9225 60)
+        (xy 99.9225 70)
+        (xy 99.923989 70.015119)
+        (xy 99.928399 70.029658)
+        (xy 99.935561 70.043057)
+        (xy 99.945199 70.054801)
+        (xy 99.956943 70.064439)
+        (xy 99.970342 70.071601)
+        (xy 99.984881 70.076011)
+        (xy 100 70.0775)
+        (xy 121 70.0775)
+        (xy 121.015119 70.076011)
+        (xy 121.029658 70.071601)
+        (xy 121.043057 70.064439)
+        (xy 121.054801 70.054801)
+        (xy 121.064439 70.043057)
+        (xy 121.071601 70.029658)
+        (xy 121.076011 70.015119)
+        (xy 121.0775 70)
+        (xy 121.0775 68.75)
+        (xy 126.22019 68.75)
+        (xy 126.2225 69.331125)
+        (xy 126.341875 69.4505)
+        (xy 127.0755 69.4505)
+        (xy 127.0755 68.391875)
+        (xy 126.956125 68.2725)
+        (xy 126.7 68.27019)
+        (xy 126.606394 68.279409)
+        (xy 126.516385 68.306713)
+        (xy 126.433432 68.351053)
+        (xy 126.360723 68.410723)
+        (xy 126.301053 68.483432)
+        (xy 126.256713 68.566385)
+        (xy 126.229409 68.656394)
+        (xy 126.22019 68.75)
+        (xy 121.0775 68.75)
+        (xy 121.0775 60)
+        (xy 121.076011 59.984881)
+        (xy 121.071601 59.970342)
+        (xy 121.064439 59.956943)
+        (xy 121.054801 59.945199)
+        (xy 121.043057 59.935561)
+        (xy 121.029658 59.928399)
+        (xy 121.015119 59.923989)
+        (xy 121 59.9225)
+        (xy 100 59.9225)
+        (xy 99.984881 59.923989)
+        (xy 99.970342 59.928399)
+        (xy 99.956943 59.935561)
+        (xy 99.945199 59.945199)
+        (xy 99.935561 59.956943)
+        (xy 99.928399 59.970342)
+        (xy 99.923989 59.984881)
+        (xy 99.9225 60)
+        (xy 90.2825 60)
+        (xy 90.2825 52.800309)
+        (xy 90.9725 52.800309)
+        (xy 90.9725 53.199691)
+        (xy 91.050416 53.5914)
+        (xy 91.203253 53.960381)
+        (xy 91.425138 54.292456)
+        (xy 91.707544 54.574862)
+        (xy 92.039619 54.796747)
+        (xy 92.4086 54.949584)
+        (xy 92.800309 55.0275)
+        (xy 93.199691 55.0275)
+        (xy 93.5914 54.949584)
+        (xy 93.960381 54.796747)
+        (xy 94.292456 54.574862)
+        (xy 94.574862 54.292456)
+        (xy 94.796747 53.960381)
+        (xy 94.822744 53.897618)
+        (xy 118.7105 53.897618)
+        (xy 118.7105 54.102382)
+        (xy 118.750447 54.303211)
+        (xy 118.828807 54.492388)
+        (xy 118.942567 54.662643)
+        (xy 119.087357 54.807433)
+        (xy 119.257612 54.921193)
+        (xy 119.446789 54.999553)
+        (xy 119.647618 55.0395)
+        (xy 119.852382 55.0395)
+        (xy 120.053211 54.999553)
+        (xy 120.242388 54.921193)
+        (xy 120.412643 54.807433)
+        (xy 120.557433 54.662643)
+        (xy 120.671193 54.492388)
+        (xy 120.749553 54.303211)
+        (xy 120.7895 54.102382)
+        (xy 120.7895 53.897618)
+        (xy 121.2505 53.897618)
+        (xy 121.2505 54.102382)
+        (xy 121.290447 54.303211)
+        (xy 121.368807 54.492388)
+        (xy 121.482567 54.662643)
+        (xy 121.627357 54.807433)
+        (xy 121.797612 54.921193)
+        (xy 121.8875 54.958426)
+        (xy 121.887501 64.906642)
+        (xy 121.885554 64.926411)
+        (xy 121.887501 64.94618)
+        (xy 121.893325 65.005315)
+        (xy 121.905754 65.046285)
+        (xy 121.916341 65.081186)
+        (xy 121.953715 65.151109)
+        (xy 121.991411 65.197042)
+        (xy 121.991414 65.197045)
+        (xy 122.004014 65.212398)
+        (xy 122.019367 65.224998)
+        (xy 124.515013 67.720645)
+        (xy 124.527613 67.735998)
+        (xy 124.542966 67.748598)
+        (xy 124.542968 67.7486)
+        (xy 124.575505 67.775302)
+        (xy 124.588901 67.786296)
+        (xy 124.658825 67.823671)
+        (xy 124.734696 67.846687)
+        (xy 124.793831 67.852511)
+        (xy 124.79384 67.852511)
+        (xy 124.813599 67.854457)
+        (xy 124.833358 67.852511)
+        (xy 127.687085 67.852511)
+        (xy 127.664693 67.906571)
+        (xy 127.6425 68.018142)
+        (xy 127.6425 68.1319)
+        (xy 127.664693 68.243471)
+        (xy 127.684748 68.291889)
+        (xy 127.643606 68.279409)
+        (xy 127.55 68.27019)
+        (xy 127.293875 68.2725)
+        (xy 127.1745 68.391875)
+        (xy 127.1745 69.4505)
+        (xy 127.908125 69.4505)
+        (xy 128.0275 69.331125)
+        (xy 128.02981 68.75)
+        (xy 128.020591 68.656394)
+        (xy 128.007099 68.611916)
+        (xy 128.05155 68.630328)
+        (xy 128.163121 68.652521)
+        (xy 128.189584 68.652521)
+        (xy 128.176516 68.695601)
+        (xy 128.171158 68.75)
+        (xy 128.171158 70.25)
+        (xy 128.176516 70.304399)
+        (xy 128.192384 70.356708)
+        (xy 128.218151 70.404916)
+        (xy 128.252829 70.447171)
+        (xy 128.295084 70.481849)
+        (xy 128.343292 70.507616)
+        (xy 128.395601 70.523484)
+        (xy 128.45 70.528842)
+        (xy 129.3 70.528842)
+        (xy 129.354399 70.523484)
+        (xy 129.406708 70.507616)
+        (xy 129.454916 70.481849)
+        (xy 129.497171 70.447171)
+        (xy 129.531849 70.404916)
+        (xy 129.557616 70.356708)
+        (xy 129.573484 70.304399)
+        (xy 129.578842 70.25)
+        (xy 129.578842 68.75)
+        (xy 129.573484 68.695601)
+        (xy 129.557616 68.643292)
+        (xy 129.531849 68.595084)
+        (xy 129.497171 68.552829)
+        (xy 129.454916 68.518151)
+        (xy 129.406708 68.492384)
+        (xy 129.354399 68.476516)
+        (xy 129.3 68.471158)
+        (xy 129.095172 68.471158)
+        (xy 129.07366 68.400246)
+        (xy 129.036285 68.330322)
+        (xy 128.985987 68.269034)
+        (xy 128.970629 68.25643)
+        (xy 128.818593 68.104394)
+        (xy 128.818588 68.104388)
+        (xy 128.7975 68.0833)
+        (xy 128.7975 68.018142)
+        (xy 128.775307 67.906571)
+        (xy 128.752915 67.852511)
+        (xy 129.783291 67.852511)
+        (xy 132.6975 70.766721)
+        (xy 132.697501 74.748437)
+        (xy 132.601441 74.788226)
+        (xy 132.506855 74.851427)
+        (xy 132.426417 74.931865)
+        (xy 132.363216 75.026451)
+        (xy 132.319683 75.13155)
+        (xy 132.29749 75.243121)
+        (xy 132.29749 75.356879)
+        (xy 132.319683 75.46845)
+        (xy 132.363216 75.573549)
+        (xy 132.426417 75.668135)
+        (xy 132.506855 75.748573)
+        (xy 132.601441 75.811774)
+        (xy 132.70654 75.855307)
+        (xy 132.818111 75.8775)
+        (xy 132.931869 75.8775)
+        (xy 133.04344 75.855307)
+        (xy 133.148539 75.811774)
+        (xy 133.197501 75.779058)
+        (xy 133.197501 76.952545)
+        (xy 132.474327 76.229371)
+        (xy 132.461723 76.214013)
+        (xy 132.400435 76.163715)
+        (xy 132.330511 76.12634)
+        (xy 132.25464 76.103324)
+        (xy 132.195505 76.0975)
+        (xy 132.195495 76.0975)
+        (xy 132.175736 76.095554)
+        (xy 132.155977 76.0975)
+        (xy 127.264222 76.0975)
+        (xy 127.218149 76.051427)
+        (xy 127.123563 75.988226)
+        (xy 127.018464 75.944693)
+        (xy 126.906893 75.9225)
+        (xy 126.793135 75.9225)
+        (xy 126.681564 75.944693)
+        (xy 126.576465 75.988226)
+        (xy 126.481879 76.051427)
+        (xy 126.401441 76.131865)
+        (xy 126.33824 76.226451)
+        (xy 126.294707 76.33155)
+        (xy 126.272514 76.443121)
+        (xy 126.272514 76.556879)
+        (xy 126.294707 76.66845)
+        (xy 126.33824 76.773549)
+        (xy 126.401441 76.868135)
+        (xy 126.481879 76.948573)
+        (xy 126.576465 77.011774)
+        (xy 126.681564 77.055307)
+        (xy 126.793135 77.0775)
+        (xy 126.906893 77.0775)
+        (xy 127.018464 77.055307)
+        (xy 127.123563 77.011774)
+        (xy 127.218149 76.948573)
+        (xy 127.264222 76.9025)
+        (xy 132.009016 76.9025)
+        (xy 134.628255 79.521739)
+        (xy 134.543875 79.5225)
+        (xy 134.4245 79.641875)
+        (xy 134.4245 80.7005)
+        (xy 135.158125 80.7005)
+        (xy 135.2775 80.581125)
+        (xy 135.279124 80.172608)
+        (xy 140.577149 85.470634)
+        (xy 140.589749 85.485987)
+        (xy 140.605102 85.498587)
+        (xy 140.605104 85.498589)
+        (xy 140.605191 85.49866)
+        (xy 140.651037 85.536285)
+        (xy 140.720961 85.57366)
+        (xy 140.796832 85.596676)
+        (xy 140.855967 85.6025)
+        (xy 140.855977 85.6025)
+        (xy 140.875736 85.604446)
+        (xy 140.895495 85.6025)
+        (xy 141.185792 85.6025)
+        (xy 141.231865 85.648573)
+        (xy 141.326451 85.711774)
+        (xy 141.43155 85.755307)
+        (xy 141.543121 85.7775)
+        (xy 141.656879 85.7775)
+        (xy 141.76845 85.755307)
+        (xy 141.873549 85.711774)
+        (xy 141.968135 85.648573)
+        (xy 142.048573 85.568135)
+        (xy 142.111774 85.473549)
+        (xy 142.155307 85.36845)
+        (xy 142.1775 85.256879)
+        (xy 142.1775 85.143121)
+        (xy 142.155307 85.03155)
+        (xy 142.132918 84.977498)
+        (xy 142.326601 84.977498)
+        (xy 142.344693 85.06845)
+        (xy 142.388226 85.173549)
+        (xy 142.451427 85.268135)
+        (xy 142.531865 85.348573)
+        (xy 142.626451 85.411774)
+        (xy 142.73155 85.455307)
+        (xy 142.843121 85.4775)
+        (xy 142.956879 85.4775)
+        (xy 143.06845 85.455307)
+        (xy 143.173549 85.411774)
+        (xy 143.268135 85.348573)
+        (xy 143.348573 85.268135)
+        (xy 143.411774 85.173549)
+        (xy 143.455307 85.06845)
+        (xy 143.4775 84.956879)
+        (xy 143.4775 84.843121)
+        (xy 143.455307 84.73155)
+        (xy 143.411774 84.626451)
+        (xy 143.348573 84.531865)
+        (xy 143.268135 84.451427)
+        (xy 143.173549 84.388226)
+        (xy 143.06845 84.344693)
+        (xy 142.956879 84.3225)
+        (xy 142.89172 84.3225)
+        (xy 142.873589 84.304369)
+        (xy 142.860985 84.289011)
+        (xy 142.799697 84.238713)
+        (xy 142.729773 84.201338)
+        (xy 142.653902 84.178322)
+        (xy 142.594767 84.172498)
+        (xy 142.594757 84.172498)
+        (xy 142.574998 84.170552)
+        (xy 142.555239 84.172498)
+        (xy 141.106716 84.172498)
+        (xy 140.734218 83.8)
+        (xy 148.27019 83.8)
+        (xy 148.279409 83.893606)
+        (xy 148.306713 83.983615)
+        (xy 148.351053 84.066568)
+        (xy 148.410723 84.139277)
+        (xy 148.483432 84.198947)
+        (xy 148.566385 84.243287)
+        (xy 148.656394 84.270591)
+        (xy 148.75 84.27981)
+        (xy 149.331125 84.2775)
+        (xy 149.4505 84.158125)
+        (xy 149.4505 83.4245)
+        (xy 149.5495 83.4245)
+        (xy 149.5495 84.158125)
+        (xy 149.668875 84.2775)
+        (xy 150.25 84.27981)
+        (xy 150.343606 84.270591)
+        (xy 150.433615 84.243287)
+        (xy 150.516568 84.198947)
+        (xy 150.589277 84.139277)
+        (xy 150.648947 84.066568)
+        (xy 150.693287 83.983615)
+        (xy 150.720591 83.893606)
+        (xy 150.72981 83.8)
+        (xy 150.7275 83.543875)
+        (xy 150.608125 83.4245)
+        (xy 149.5495 83.4245)
+        (xy 149.4505 83.4245)
+        (xy 148.391875 83.4245)
+        (xy 148.2725 83.543875)
+        (xy 148.27019 83.8)
+        (xy 140.734218 83.8)
+        (xy 139.884218 82.95)
+        (xy 148.27019 82.95)
+        (xy 148.2725 83.206125)
+        (xy 148.391875 83.3255)
+        (xy 149.4505 83.3255)
+        (xy 149.4505 82.591875)
+        (xy 149.5495 82.591875)
+        (xy 149.5495 83.3255)
+        (xy 150.608125 83.3255)
+        (xy 150.7275 83.206125)
+        (xy 150.72981 82.95)
+        (xy 150.720591 82.856394)
+        (xy 150.693287 82.766385)
+        (xy 150.648947 82.683432)
+        (xy 150.589277 82.610723)
+        (xy 150.516568 82.551053)
+        (xy 150.433615 82.506713)
+        (xy 150.343606 82.479409)
+        (xy 150.25 82.47019)
+        (xy 149.668875 82.4725)
+        (xy 149.5495 82.591875)
+        (xy 149.4505 82.591875)
+        (xy 149.331125 82.4725)
+        (xy 148.75 82.47019)
+        (xy 148.656394 82.479409)
+        (xy 148.566385 82.506713)
+        (xy 148.483432 82.551053)
+        (xy 148.410723 82.610723)
+        (xy 148.351053 82.683432)
+        (xy 148.306713 82.766385)
+        (xy 148.279409 82.856394)
+        (xy 148.27019 82.95)
+        (xy 139.884218 82.95)
+        (xy 136.76306 79.828842)
+        (xy 137.3125 79.828842)
+        (xy 137.3125 79.866879)
+        (xy 137.334693 79.97845)
+        (xy 137.378226 80.083549)
+        (xy 137.441427 80.178135)
+        (xy 137.521865 80.258573)
+        (xy 137.616451 80.321774)
+        (xy 137.72155 80.365307)
+        (xy 137.833121 80.3875)
+        (xy 137.946879 80.3875)
+        (xy 138.05845 80.365307)
+        (xy 138.163549 80.321774)
+        (xy 138.184557 80.307737)
+        (xy 138.174693 80.33155)
+        (xy 138.1525 80.443121)
+        (xy 138.1525 80.556879)
+        (xy 138.174693 80.66845)
+        (xy 138.218226 80.773549)
+        (xy 138.281427 80.868135)
+        (xy 138.361865 80.948573)
+        (xy 138.456451 81.011774)
+        (xy 138.56155 81.055307)
+        (xy 138.673121 81.0775)
+        (xy 138.786879 81.0775)
+        (xy 138.89845 81.055307)
+        (xy 139.003549 81.011774)
+        (xy 139.098135 80.948573)
+        (xy 139.144208 80.9025)
+        (xy 150.641656 80.9025)
+        (xy 150.661415 80.904446)
+        (xy 150.681174 80.9025)
+        (xy 150.681184 80.9025)
+        (xy 150.740319 80.896676)
+        (xy 150.81619 80.87366)
+        (xy 150.886114 80.836285)
+        (xy 150.947402 80.785987)
+        (xy 150.960006 80.770629)
+        (xy 156.553123 75.177513)
+        (xy 158.120926 75.177513)
+        (xy 158.088226 75.226451)
+        (xy 158.044693 75.33155)
+        (xy 158.0225 75.443121)
+        (xy 158.0225 75.556879)
+        (xy 158.044693 75.66845)
+        (xy 158.088226 75.773549)
+        (xy 158.151427 75.868135)
+        (xy 158.231865 75.948573)
+        (xy 158.326451 76.011774)
+        (xy 158.43155 76.055307)
+        (xy 158.543121 76.0775)
+        (xy 158.656879 76.0775)
+        (xy 158.76845 76.055307)
+        (xy 158.873549 76.011774)
+        (xy 158.968135 75.948573)
+        (xy 159.048573 75.868135)
+        (xy 159.111774 75.773549)
+        (xy 159.155307 75.66845)
+        (xy 159.1775 75.556879)
+        (xy 159.1775 75.49172)
+        (xy 161.871158 72.798063)
+        (xy 161.871158 72.85)
+        (xy 161.876516 72.904399)
+        (xy 161.892384 72.956708)
+        (xy 161.918151 73.004916)
+        (xy 161.952829 73.047171)
+        (xy 161.995084 73.081849)
+        (xy 162.043292 73.107616)
+        (xy 162.095601 73.123484)
+        (xy 162.15 73.128842)
+        (xy 165.65 73.128842)
+        (xy 165.704399 73.123484)
+        (xy 165.756708 73.107616)
+        (xy 165.804916 73.081849)
+        (xy 165.847171 73.047171)
+        (xy 165.881849 73.004916)
+        (xy 165.907616 72.956708)
+        (xy 165.923484 72.904399)
+        (xy 165.928842 72.85)
+        (xy 165.928842 72.48151)
+        (xy 165.978135 72.448573)
+        (xy 166.058573 72.368135)
+        (xy 166.121774 72.273549)
+        (xy 166.165307 72.16845)
+        (xy 166.1875 72.056879)
+        (xy 166.1875 71.943121)
+        (xy 166.165307 71.83155)
+        (xy 166.121774 71.726451)
+        (xy 166.058573 71.631865)
+        (xy 165.978135 71.551427)
+        (xy 165.928842 71.51849)
+        (xy 165.928842 71.15)
+        (xy 165.923484 71.095601)
+        (xy 165.907616 71.043292)
+        (xy 165.881849 70.995084)
+        (xy 165.847171 70.952829)
+        (xy 165.804916 70.918151)
+        (xy 165.756708 70.892384)
+        (xy 165.704399 70.876516)
+        (xy 165.65 70.871158)
+        (xy 162.227499 70.871158)
+        (xy 162.227499 66.441721)
+        (xy 165.070635 63.598586)
+        (xy 165.085987 63.585987)
+        (xy 165.098589 63.570632)
+        (xy 165.136286 63.524699)
+        (xy 165.17366 63.454775)
+        (xy 165.178147 63.439984)
+        (xy 165.196676 63.378904)
+        (xy 165.2025 63.319769)
+        (xy 165.2025 63.319759)
+        (xy 165.204446 63.3)
+        (xy 165.2025 63.280241)
+        (xy 165.2025 54.790842)
+        (xy 165.762 54.790842)
+        (xy 165.816399 54.785484)
+        (xy 165.868708 54.769616)
+        (xy 165.916916 54.743849)
+        (xy 165.959171 54.709171)
+        (xy 165.993849 54.666916)
+        (xy 166.019616 54.618708)
+        (xy 166.035484 54.566399)
+        (xy 166.040842 54.512)
+        (xy 166.040842 52.988)
+        (xy 166.035484 52.933601)
+        (xy 166.019616 52.881292)
+        (xy 165.993849 52.833084)
+        (xy 165.959171 52.790829)
+        (xy 165.916916 52.756151)
+        (xy 165.868708 52.730384)
+        (xy 165.816399 52.714516)
+        (xy 165.762 52.709158)
+        (xy 164.238 52.709158)
+        (xy 164.183601 52.714516)
+        (xy 164.131292 52.730384)
+        (xy 164.083084 52.756151)
+        (xy 164.040829 52.790829)
+        (xy 164.006151 52.833084)
+        (xy 163.980384 52.881292)
+        (xy 163.964516 52.933601)
+        (xy 163.959158 52.988)
+        (xy 163.959158 54.512)
+        (xy 163.964516 54.566399)
+        (xy 163.980384 54.618708)
+        (xy 164.006151 54.666916)
+        (xy 164.040829 54.709171)
+        (xy 164.083084 54.743849)
+        (xy 164.131292 54.769616)
+        (xy 164.183601 54.785484)
+        (xy 164.238 54.790842)
+        (xy 164.397501 54.790842)
+        (xy 164.3975 63.133279)
+        (xy 162.8625 64.66828)
+        (xy 162.8625 54.708426)
+        (xy 162.952388 54.671193)
+        (xy 163.122643 54.557433)
+        (xy 163.267433 54.412643)
+        (xy 163.381193 54.242388)
+        (xy 163.459553 54.053211)
+        (xy 163.4995 53.852382)
+        (xy 163.4995 53.647618)
+        (xy 163.459553 53.446789)
+        (xy 163.381193 53.257612)
+        (xy 163.267433 53.087357)
+        (xy 163.122643 52.942567)
+        (xy 162.952388 52.828807)
+        (xy 162.763211 52.750447)
+        (xy 162.562382 52.7105)
+        (xy 162.357618 52.7105)
+        (xy 162.156789 52.750447)
+        (xy 161.967612 52.828807)
+        (xy 161.797357 52.942567)
+        (xy 161.652567 53.087357)
+        (xy 161.538807 53.257612)
+        (xy 161.460447 53.446789)
+        (xy 161.4205 53.647618)
+        (xy 161.4205 53.852382)
+        (xy 161.460447 54.053211)
+        (xy 161.538807 54.242388)
+        (xy 161.652567 54.412643)
+        (xy 161.797357 54.557433)
+        (xy 161.967612 54.671193)
+        (xy 162.057501 54.708426)
+        (xy 162.0575 64.787497)
+        (xy 161.104356 65.740642)
+        (xy 161.089003 65.753242)
+        (xy 161.076403 65.768595)
+        (xy 161.0764 65.768598)
+        (xy 161.038704 65.814531)
+        (xy 161.00133 65.884454)
+        (xy 160.978314 65.960326)
+        (xy 160.970543 66.039229)
+        (xy 160.97249 66.058998)
+        (xy 160.972489 70.92188)
+        (xy 159.9275 71.966869)
+        (xy 159.9275 71.8988)
+        (xy 159.888014 71.700289)
+        (xy 159.810559 71.513296)
+        (xy 159.698112 71.345007)
+        (xy 159.554993 71.201888)
+        (xy 159.386704 71.089441)
+        (xy 159.199711 71.011986)
+        (xy 159.0012 70.9725)
+        (xy 158.7988 70.9725)
+        (xy 158.600289 71.011986)
+        (xy 158.413296 71.089441)
+        (xy 158.245007 71.201888)
+        (xy 158.101888 71.345007)
+        (xy 157.989441 71.513296)
+        (xy 157.911986 71.700289)
+        (xy 157.8725 71.8988)
+        (xy 157.8725 72.1012)
+        (xy 157.911986 72.299711)
+        (xy 157.989441 72.486704)
+        (xy 158.101888 72.654993)
+        (xy 158.245007 72.798112)
+        (xy 158.413296 72.910559)
+        (xy 158.600289 72.988014)
+        (xy 158.7988 73.0275)
+        (xy 158.86687 73.0275)
+        (xy 157.971868 73.922502)
+        (xy 156.219761 73.922502)
+        (xy 156.200002 73.920556)
+        (xy 156.180243 73.922502)
+        (xy 156.180233 73.922502)
+        (xy 156.121098 73.928326)
+        (xy 156.045227 73.951342)
+        (xy 155.975303 73.988716)
+        (xy 155.92937 74.026413)
+        (xy 155.929368 74.026415)
+        (xy 155.914015 74.039015)
+        (xy 155.901415 74.054368)
+        (xy 151.358284 78.5975)
+        (xy 139.414208 78.5975)
+        (xy 139.368135 78.551427)
+        (xy 139.273549 78.488226)
+        (xy 139.16845 78.444693)
+        (xy 139.056879 78.4225)
+        (xy 138.943121 78.4225)
+        (xy 138.83155 78.444693)
+        (xy 138.726451 78.488226)
+        (xy 138.631865 78.551427)
+        (xy 138.551427 78.631865)
+        (xy 138.488226 78.726451)
+        (xy 138.444693 78.83155)
+        (xy 138.4225 78.943121)
+        (xy 138.4225 79.056879)
+        (xy 138.444693 79.16845)
+        (xy 138.488226 79.273549)
+        (xy 138.551427 79.368135)
+        (xy 138.631865 79.448573)
+        (xy 138.726451 79.511774)
+        (xy 138.83155 79.555307)
+        (xy 138.943121 79.5775)
+        (xy 139.056879 79.5775)
+        (xy 139.16845 79.555307)
+        (xy 139.273549 79.511774)
+        (xy 139.368135 79.448573)
+        (xy 139.414208 79.4025)
+        (xy 151.189695 79.4025)
+        (xy 150.494695 80.0975)
+        (xy 139.144208 80.0975)
+        (xy 139.098135 80.051427)
+        (xy 139.003549 79.988226)
+        (xy 138.89845 79.944693)
+        (xy 138.786879 79.9225)
+        (xy 138.673121 79.9225)
+        (xy 138.56155 79.944693)
+        (xy 138.456451 79.988226)
+        (xy 138.435443 80.002263)
+        (xy 138.445307 79.97845)
+        (xy 138.4675 79.866879)
+        (xy 138.4675 79.753121)
+        (xy 138.445307 79.64155)
+        (xy 138.401774 79.536451)
+        (xy 138.338573 79.441865)
+        (xy 138.278842 79.382134)
+        (xy 138.278842 78.7)
+        (xy 138.273484 78.645601)
+        (xy 138.257616 78.593292)
+        (xy 138.231849 78.545084)
+        (xy 138.197171 78.502829)
+        (xy 138.154916 78.468151)
+        (xy 138.106708 78.442384)
+        (xy 138.054399 78.426516)
+        (xy 138 78.421158)
+        (xy 136.5 78.421158)
+        (xy 136.445601 78.426516)
+        (xy 136.393292 78.442384)
+        (xy 136.345084 78.468151)
+        (xy 136.302829 78.502829)
+        (xy 136.268151 78.545084)
+        (xy 136.242384 78.593292)
+        (xy 136.226516 78.645601)
+        (xy 136.221158 78.7)
+        (xy 136.221158 79.28694)
+        (xy 136.1025 79.168282)
+        (xy 136.1025 78.068331)
+        (xy 136.160723 78.139277)
+        (xy 136.233432 78.198947)
+        (xy 136.316385 78.243287)
+        (xy 136.406394 78.270591)
+        (xy 136.5 78.27981)
+        (xy 137.081125 78.2775)
+        (xy 137.2005 78.158125)
+        (xy 137.2005 77.4245)
+        (xy 137.2995 77.4245)
+        (xy 137.2995 78.158125)
+        (xy 137.418875 78.2775)
+        (xy 138 78.27981)
+        (xy 138.093606 78.270591)
+        (xy 138.183615 78.243287)
+        (xy 138.266568 78.198947)
+        (xy 138.339277 78.139277)
+        (xy 138.398947 78.066568)
+        (xy 138.443287 77.983615)
+        (xy 138.470591 77.893606)
+        (xy 138.47981 77.8)
+        (xy 138.4775 77.543875)
+        (xy 138.358125 77.4245)
+        (xy 137.2995 77.4245)
+        (xy 137.2005 77.4245)
+        (xy 137.1805 77.4245)
+        (xy 137.1805 77.3255)
+        (xy 137.2005 77.3255)
+        (xy 137.2005 76.591875)
+        (xy 137.2995 76.591875)
+        (xy 137.2995 77.3255)
+        (xy 138.358125 77.3255)
+        (xy 138.4775 77.206125)
+        (xy 138.47981 76.95)
+        (xy 138.470591 76.856394)
+        (xy 138.443287 76.766385)
+        (xy 138.398947 76.683432)
+        (xy 138.339277 76.610723)
+        (xy 138.266568 76.551053)
+        (xy 138.183615 76.506713)
+        (xy 138.093606 76.479409)
+        (xy 138 76.47019)
+        (xy 137.418875 76.4725)
+        (xy 137.2995 76.591875)
+        (xy 137.2005 76.591875)
+        (xy 137.081125 76.4725)
+        (xy 136.5 76.47019)
+        (xy 136.406394 76.479409)
+        (xy 136.316385 76.506713)
+        (xy 136.233432 76.551053)
+        (xy 136.160723 76.610723)
+        (xy 136.101053 76.683432)
+        (xy 136.056713 76.766385)
+        (xy 136.029409 76.856394)
+        (xy 136.02019 76.95)
+        (xy 136.021154 77.056868)
+        (xy 136.019873 77.055307)
+        (xy 135.998589 77.029372)
+        (xy 135.998587 77.02937)
+        (xy 135.985987 77.014017)
+        (xy 135.970635 77.001418)
+        (xy 135.877496 76.908279)
+        (xy 135.877496 76.843121)
+        (xy 135.855303 76.73155)
+        (xy 135.81177 76.626451)
+        (xy 135.748569 76.531865)
+        (xy 135.702496 76.485792)
+        (xy 135.702496 71.3)
+        (xy 136.02019 71.3)
+        (xy 136.029409 71.393606)
+        (xy 136.056713 71.483615)
+        (xy 136.101053 71.566568)
+        (xy 136.160723 71.639277)
+        (xy 136.233432 71.698947)
+        (xy 136.316385 71.743287)
+        (xy 136.406394 71.770591)
+        (xy 136.5 71.77981)
+        (xy 137.081125 71.7775)
+        (xy 137.2005 71.658125)
+        (xy 137.2005 70.9245)
+        (xy 136.141875 70.9245)
+        (xy 136.0225 71.043875)
+        (xy 136.02019 71.3)
+        (xy 135.702496 71.3)
+        (xy 135.702496 70.45)
+        (xy 136.02019 70.45)
+        (xy 136.0225 70.706125)
+        (xy 136.141875 70.8255)
+        (xy 137.2005 70.8255)
+        (xy 137.2005 70.8055)
+        (xy 137.2995 70.8055)
+        (xy 137.2995 70.8255)
+        (xy 137.3195 70.8255)
+        (xy 137.3195 70.9245)
+        (xy 137.2995 70.9245)
+        (xy 137.2995 71.658125)
+        (xy 137.418875 71.7775)
+        (xy 137.801758 71.779022)
+        (xy 137.659622 71.921158)
+        (xy 136.5 71.921158)
+        (xy 136.445601 71.926516)
+        (xy 136.393292 71.942384)
+        (xy 136.345084 71.968151)
+        (xy 136.302829 72.002829)
+        (xy 136.268151 72.045084)
+        (xy 136.242384 72.093292)
+        (xy 136.226516 72.145601)
+        (xy 136.221158 72.2)
+        (xy 136.221158 73.05)
+        (xy 136.226516 73.104399)
+        (xy 136.242384 73.156708)
+        (xy 136.268151 73.204916)
+        (xy 136.302829 73.247171)
+        (xy 136.345084 73.281849)
+        (xy 136.393292 73.307616)
+        (xy 136.445601 73.323484)
+        (xy 136.5 73.328842)
+        (xy 137.92534 73.328842)
+        (xy 137.9225 73.343121)
+        (xy 137.9225 73.456879)
+        (xy 137.944693 73.56845)
+        (xy 137.988226 73.673549)
+        (xy 138.051427 73.768135)
+        (xy 138.131865 73.848573)
+        (xy 138.226451 73.911774)
+        (xy 138.33155 73.955307)
+        (xy 138.443121 73.9775)
+        (xy 138.556879 73.9775)
+        (xy 138.66845 73.955307)
+        (xy 138.773549 73.911774)
+        (xy 138.868135 73.848573)
+        (xy 138.914208 73.8025)
+        (xy 153.880241 73.8025)
+        (xy 153.9 73.804446)
+        (xy 153.919759 73.8025)
+        (xy 153.919769 73.8025)
+        (xy 153.978904 73.796676)
+        (xy 154.054775 73.77366)
+        (xy 154.124699 73.736285)
+        (xy 154.185987 73.685987)
+        (xy 154.192952 73.6775)
+        (xy 154.256879 73.6775)
+        (xy 154.36845 73.655307)
+        (xy 154.473549 73.611774)
+        (xy 154.568135 73.548573)
+        (xy 154.648573 73.468135)
+        (xy 154.711774 73.373549)
+        (xy 154.755307 73.26845)
+        (xy 154.7775 73.156879)
+        (xy 154.7775 73.043121)
+        (xy 154.755307 72.93155)
+        (xy 154.711774 72.826451)
+        (xy 154.648573 72.731865)
+        (xy 154.568135 72.651427)
+        (xy 154.473549 72.588226)
+        (xy 154.36845 72.544693)
+        (xy 154.256879 72.5225)
+        (xy 154.143121 72.5225)
+        (xy 154.03155 72.544693)
+        (xy 153.926451 72.588226)
+        (xy 153.831865 72.651427)
+        (xy 153.751427 72.731865)
+        (xy 153.688226 72.826451)
+        (xy 153.644693 72.93155)
+        (xy 153.631575 72.9975)
+        (xy 151.152021 72.9975)
+        (xy 151.199711 72.988014)
+        (xy 151.386704 72.910559)
+        (xy 151.554993 72.798112)
+        (xy 151.698112 72.654993)
+        (xy 151.810559 72.486704)
+        (xy 151.888014 72.299711)
+        (xy 151.9275 72.1012)
+        (xy 151.9275 71.8988)
+        (xy 151.888014 71.700289)
+        (xy 151.810559 71.513296)
+        (xy 151.698112 71.345007)
+        (xy 151.554993 71.201888)
+        (xy 151.386704 71.089441)
+        (xy 151.199711 71.011986)
+        (xy 151.0012 70.9725)
+        (xy 150.7988 70.9725)
+        (xy 150.600289 71.011986)
+        (xy 150.413296 71.089441)
+        (xy 150.245007 71.201888)
+        (xy 150.101888 71.345007)
+        (xy 149.989441 71.513296)
+        (xy 149.911986 71.700289)
+        (xy 149.8725 71.8988)
+        (xy 149.8725 72.1012)
+        (xy 149.911986 72.299711)
+        (xy 149.989441 72.486704)
+        (xy 150.101888 72.654993)
+        (xy 150.245007 72.798112)
+        (xy 150.413296 72.910559)
+        (xy 150.600289 72.988014)
+        (xy 150.647979 72.9975)
+        (xy 148.385813 72.9975)
+        (xy 148.407616 72.956708)
+        (xy 148.423484 72.904399)
+        (xy 148.428842 72.85)
+        (xy 148.428842 72.4025)
+        (xy 148.585792 72.4025)
+        (xy 148.631865 72.448573)
+        (xy 148.726451 72.511774)
+        (xy 148.83155 72.555307)
+        (xy 148.943121 72.5775)
+        (xy 149.056879 72.5775)
+        (xy 149.16845 72.555307)
+        (xy 149.273549 72.511774)
+        (xy 149.368135 72.448573)
+        (xy 149.448573 72.368135)
+        (xy 149.511774 72.273549)
+        (xy 149.555307 72.16845)
+        (xy 149.5775 72.056879)
+        (xy 149.5775 71.943121)
+        (xy 149.555307 71.83155)
+        (xy 149.511774 71.726451)
+        (xy 149.448573 71.631865)
+        (xy 149.368135 71.551427)
+        (xy 149.273549 71.488226)
+        (xy 149.16845 71.444693)
+        (xy 149.056879 71.4225)
+        (xy 148.943121 71.4225)
+        (xy 148.83155 71.444693)
+        (xy 148.726451 71.488226)
+        (xy 148.631865 71.551427)
+        (xy 148.585792 71.5975)
+        (xy 148.428842 71.5975)
+        (xy 148.428842 71.15)
+        (xy 148.423484 71.095601)
+        (xy 148.407616 71.043292)
+        (xy 148.381849 70.995084)
+        (xy 148.347171 70.952829)
+        (xy 148.304916 70.918151)
+        (xy 148.256708 70.892384)
+        (xy 148.204399 70.876516)
+        (xy 148.15 70.871158)
+        (xy 144.65 70.871158)
+        (xy 144.595601 70.876516)
+        (xy 144.543292 70.892384)
+        (xy 144.495084 70.918151)
+        (xy 144.452829 70.952829)
+        (xy 144.418151 70.995084)
+        (xy 144.392384 71.043292)
+        (xy 144.376516 71.095601)
+        (xy 144.371158 71.15)
+        (xy 144.371158 72.85)
+        (xy 144.376516 72.904399)
+        (xy 144.392384 72.956708)
+        (xy 144.414187 72.9975)
+        (xy 140.44677 72.9975)
+        (xy 140.447171 72.997171)
+        (xy 140.481849 72.954916)
+        (xy 140.507616 72.906708)
+        (xy 140.523484 72.854399)
+        (xy 140.528842 72.8)
+        (xy 140.528842 71.95)
+        (xy 140.523484 71.895601)
+        (xy 140.507616 71.843292)
+        (xy 140.481849 71.795084)
+        (xy 140.447171 71.752829)
+        (xy 140.404916 71.718151)
+        (xy 140.356708 71.692384)
+        (xy 140.304399 71.676516)
+        (xy 140.25 71.671158)
+        (xy 139.048063 71.671158)
+        (xy 139.390379 71.328842)
+        (xy 140.149322 71.328842)
+        (xy 140.243121 71.3475)
+        (xy 140.356879 71.3475)
+        (xy 140.46845 71.325307)
+        (xy 140.573549 71.281774)
+        (xy 140.668135 71.218573)
+        (xy 140.748573 71.138135)
+        (xy 140.811774 71.043549)
+        (xy 140.855307 70.93845)
+        (xy 140.8775 70.826879)
+        (xy 140.8775 70.713121)
+        (xy 140.855307 70.60155)
+        (xy 140.811774 70.496451)
+        (xy 140.748573 70.401865)
+        (xy 140.668135 70.321427)
+        (xy 140.573549 70.258226)
+        (xy 140.528842 70.239708)
+        (xy 140.528842 70.2)
+        (xy 140.523484 70.145601)
+        (xy 140.508432 70.095982)
+        (xy 141.651752 70.095982)
+        (xy 142.84749 71.291721)
+        (xy 142.84749 71.356879)
+        (xy 142.869683 71.46845)
+        (xy 142.913216 71.573549)
+        (xy 142.976417 71.668135)
+        (xy 143.056855 71.748573)
+        (xy 143.151441 71.811774)
+        (xy 143.25654 71.855307)
+        (xy 143.368111 71.8775)
+        (xy 143.481869 71.8775)
+        (xy 143.59344 71.855307)
+        (xy 143.698539 71.811774)
+        (xy 143.793125 71.748573)
+        (xy 143.873563 71.668135)
+        (xy 143.936764 71.573549)
+        (xy 143.980297 71.46845)
+        (xy 144.00249 71.356879)
+        (xy 144.00249 71.243121)
+        (xy 143.980297 71.13155)
+        (xy 143.936764 71.026451)
+        (xy 143.878081 70.938627)
+        (xy 143.954729 70.861979)
+        (xy 144.01793 70.767393)
+        (xy 144.061463 70.662294)
+        (xy 144.083656 70.550723)
+        (xy 144.083656 70.436965)
+        (xy 144.061463 70.325394)
+        (xy 144.01793 70.220295)
+        (xy 143.954729 70.125709)
+        (xy 143.874291 70.045271)
+        (xy 143.873883 70.044999)
+        (xy 143.947758 69.971124)
+        (xy 144.010959 69.876538)
+        (xy 144.054492 69.771439)
+        (xy 144.076685 69.659868)
+        (xy 144.076685 69.54611)
+        (xy 144.054492 69.434539)
+        (xy 144.04122 69.402498)
+        (xy 159.380243 69.402498)
+        (xy 159.400002 69.404444)
+        (xy 159.419761 69.402498)
+        (xy 159.419771 69.402498)
+        (xy 159.478906 69.396674)
+        (xy 159.554777 69.373658)
+        (xy 159.624701 69.336283)
+        (xy 159.685989 69.285985)
+        (xy 159.698593 69.270627)
+        (xy 159.79172 69.1775)
+        (xy 159.856879 69.1775)
+        (xy 159.96845 69.155307)
+        (xy 160.073549 69.111774)
+        (xy 160.168135 69.048573)
+        (xy 160.248573 68.968135)
+        (xy 160.311774 68.873549)
+        (xy 160.355307 68.76845)
+        (xy 160.3775 68.656879)
+        (xy 160.3775 68.543121)
+        (xy 160.355307 68.43155)
+        (xy 160.311774 68.326451)
+        (xy 160.248573 68.231865)
+        (xy 160.168135 68.151427)
+        (xy 160.073549 68.088226)
+        (xy 159.96845 68.044693)
+        (xy 159.856879 68.0225)
+        (xy 159.743121 68.0225)
+        (xy 159.63155 68.044693)
+        (xy 159.526451 68.088226)
+        (xy 159.431865 68.151427)
+        (xy 159.351427 68.231865)
+        (xy 159.288226 68.326451)
+        (xy 159.244693 68.43155)
+        (xy 159.2225 68.543121)
+        (xy 159.2225 68.597498)
+        (xy 159.031482 68.597498)
+        (xy 159.051771 68.567134)
+        (xy 159.095304 68.462035)
+        (xy 159.117497 68.350464)
+        (xy 159.117497 68.236706)
+        (xy 159.095304 68.125135)
+        (xy 159.051771 68.020036)
+        (xy 158.98857 67.92545)
+        (xy 158.908132 67.845012)
+        (xy 158.813546 67.781811)
+        (xy 158.708447 67.738278)
+        (xy 158.596876 67.716085)
+        (xy 158.483118 67.716085)
+        (xy 158.371547 67.738278)
+        (xy 158.266448 67.781811)
+        (xy 158.171862 67.845012)
+        (xy 158.091424 67.92545)
+        (xy 158.028223 68.020036)
+        (xy 157.98469 68.125135)
+        (xy 157.980243 68.147489)
+        (xy 144.01671 68.147489)
+        (xy 142.973581 67.104361)
+        (xy 142.960977 67.089003)
+        (xy 142.899689 67.038705)
+        (xy 142.829765 67.00133)
+        (xy 142.753894 66.978314)
+        (xy 142.694759 66.97249)
+        (xy 142.694749 66.97249)
+        (xy 142.67499 66.970544)
+        (xy 142.655231 66.97249)
+        (xy 140.414208 66.97249)
+        (xy 140.368135 66.926417)
+        (xy 140.273549 66.863216)
+        (xy 140.16845 66.819683)
+        (xy 140.056879 66.79749)
+        (xy 139.943121 66.79749)
+        (xy 139.83155 66.819683)
+        (xy 139.726451 66.863216)
+        (xy 139.631865 66.926417)
+        (xy 139.551427 67.006855)
+        (xy 139.488226 67.101441)
+        (xy 139.444693 67.20654)
+        (xy 139.4225 67.318111)
+        (xy 139.4225 67.431869)
+        (xy 139.423762 67.438216)
+        (xy 139.366568 67.426839)
+        (xy 139.25281 67.426839)
+        (xy 139.141239 67.449032)
+        (xy 139.03614 67.492565)
+        (xy 138.941554 67.555766)
+        (xy 138.861116 67.636204)
+        (xy 138.797915 67.73079)
+        (xy 138.754382 67.835889)
+        (xy 138.732189 67.94746)
+        (xy 138.732189 68.061218)
+        (xy 138.754382 68.172789)
+        (xy 138.797915 68.277888)
+        (xy 138.861116 68.372474)
+        (xy 138.879604 68.390962)
+        (xy 138.767125 68.390962)
+        (xy 138.755307 68.33155)
+        (xy 138.711774 68.226451)
+        (xy 138.648573 68.131865)
+        (xy 138.568135 68.051427)
+        (xy 138.473549 67.988226)
+        (xy 138.36845 67.944693)
+        (xy 138.256879 67.9225)
+        (xy 138.143121 67.9225)
+        (xy 138.03155 67.944693)
+        (xy 137.926451 67.988226)
+        (xy 137.831865 68.051427)
+        (xy 137.751427 68.131865)
+        (xy 137.688226 68.226451)
+        (xy 137.644693 68.33155)
+        (xy 137.6225 68.443121)
+        (xy 137.6225 68.490981)
+        (xy 137.532238 68.490981)
+        (xy 137.420667 68.513174)
+        (xy 137.315568 68.556707)
+        (xy 137.220982 68.619908)
+        (xy 137.140544 68.700346)
+        (xy 137.125464 68.722915)
+        (xy 137.073549 68.688226)
+        (xy 136.96845 68.644693)
+        (xy 136.856879 68.6225)
+        (xy 136.743121 68.6225)
+        (xy 136.63155 68.644693)
+        (xy 136.526451 68.688226)
+        (xy 136.431865 68.751427)
+        (xy 136.351427 68.831865)
+        (xy 136.288226 68.926451)
+        (xy 136.244693 69.03155)
+        (xy 136.2225 69.143121)
+        (xy 136.2225 69.256879)
+        (xy 136.244693 69.36845)
+        (xy 136.288226 69.473549)
+        (xy 136.351427 69.568135)
+        (xy 136.431865 69.648573)
+        (xy 136.526451 69.711774)
+        (xy 136.63155 69.755307)
+        (xy 136.743121 69.7775)
+        (xy 136.808279 69.7775)
+        (xy 136.994895 69.964116)
+        (xy 137.001516 69.972184)
+        (xy 136.5 69.97019)
+        (xy 136.406394 69.979409)
+        (xy 136.316385 70.006713)
+        (xy 136.233432 70.051053)
+        (xy 136.160723 70.110723)
+        (xy 136.101053 70.183432)
+        (xy 136.056713 70.266385)
+        (xy 136.029409 70.356394)
+        (xy 136.02019 70.45)
+        (xy 135.702496 70.45)
+        (xy 135.702496 65.276724)
+        (xy 135.743606 65.235614)
+        (xy 135.954177 65.2775)
+        (xy 136.205823 65.2775)
+        (xy 136.452633 65.228406)
+        (xy 136.685123 65.132106)
+        (xy 136.894359 64.992299)
+        (xy 137.072299 64.814359)
+        (xy 137.212106 64.605123)
+        (xy 137.308406 64.372633)
+        (xy 137.3575 64.125823)
+        (xy 137.3575 63.874177)
+        (xy 137.308406 63.627367)
+        (xy 137.212106 63.394877)
+        (xy 137.072299 63.185641)
+        (xy 136.894359 63.007701)
+        (xy 136.808004 62.95)
+        (xy 154.971158 62.95)
+        (xy 154.971158 63.8)
+        (xy 154.976516 63.854399)
+        (xy 154.992384 63.906708)
+        (xy 155.018151 63.954916)
+        (xy 155.052829 63.997171)
+        (xy 155.095084 64.031849)
+        (xy 155.143292 64.057616)
+        (xy 155.195601 64.073484)
+        (xy 155.25 64.078842)
+        (xy 155.617501 64.078842)
+        (xy 155.6175 64.535792)
+        (xy 155.571427 64.581865)
+        (xy 155.508226 64.676451)
+        (xy 155.464693 64.78155)
+        (xy 155.4425 64.893121)
+        (xy 155.4425 65.006879)
+        (xy 155.464693 65.11845)
+        (xy 155.508226 65.223549)
+        (xy 155.571427 65.318135)
+        (xy 155.651865 65.398573)
+        (xy 155.746451 65.461774)
+        (xy 155.85155 65.505307)
+        (xy 155.963121 65.5275)
+        (xy 156.076879 65.5275)
+        (xy 156.18845 65.505307)
+        (xy 156.293549 65.461774)
+        (xy 156.388135 65.398573)
+        (xy 156.468573 65.318135)
+        (xy 156.531774 65.223549)
+        (xy 156.575307 65.11845)
+        (xy 156.5975 65.006879)
+        (xy 156.5975 64.893121)
+        (xy 156.575307 64.78155)
+        (xy 156.531774 64.676451)
+        (xy 156.468573 64.581865)
+        (xy 156.4225 64.535792)
+        (xy 156.4225 64.078842)
+        (xy 156.75 64.078842)
+        (xy 156.804399 64.073484)
+        (xy 156.856708 64.057616)
+        (xy 156.904916 64.031849)
+        (xy 156.947171 63.997171)
+        (xy 156.981849 63.954916)
+        (xy 157 63.920957)
+        (xy 157.018151 63.954916)
+        (xy 157.052829 63.997171)
+        (xy 157.095084 64.031849)
+        (xy 157.143292 64.057616)
+        (xy 157.195601 64.073484)
+        (xy 157.25 64.078842)
+        (xy 157.5975 64.078842)
+        (xy 157.597501 65.080231)
+        (xy 157.595554 65.1)
+        (xy 157.597501 65.119769)
+        (xy 157.603325 65.178904)
+        (xy 157.613486 65.212398)
+        (xy 157.626341 65.254775)
+        (xy 157.663715 65.324698)
+        (xy 157.701411 65.370631)
+        (xy 157.701414 65.370634)
+        (xy 157.714014 65.385987)
+        (xy 157.729366 65.398586)
+        (xy 158.0225 65.691721)
+        (xy 158.0225 65.756879)
+        (xy 158.044693 65.86845)
+        (xy 158.088226 65.973549)
+        (xy 158.151427 66.068135)
+        (xy 158.231865 66.148573)
+        (xy 158.326451 66.211774)
+        (xy 158.43155 66.255307)
+        (xy 158.543121 66.2775)
+        (xy 158.656879 66.2775)
+        (xy 158.76845 66.255307)
+        (xy 158.873549 66.211774)
+        (xy 158.968135 66.148573)
+        (xy 159.048573 66.068135)
+        (xy 159.111774 65.973549)
+        (xy 159.155307 65.86845)
+        (xy 159.1775 65.756879)
+        (xy 159.1775 65.643121)
+        (xy 159.155307 65.53155)
+        (xy 159.111774 65.426451)
+        (xy 159.048573 65.331865)
+        (xy 158.968135 65.251427)
+        (xy 158.873549 65.188226)
+        (xy 158.76845 65.144693)
+        (xy 158.656879 65.1225)
+        (xy 158.591721 65.1225)
+        (xy 158.4025 64.93328)
+        (xy 158.4025 64.078842)
+        (xy 158.75 64.078842)
+        (xy 158.804399 64.073484)
+        (xy 158.856708 64.057616)
+        (xy 158.904916 64.031849)
+        (xy 158.947171 63.997171)
+        (xy 158.981849 63.954916)
+        (xy 159 63.920957)
+        (xy 159.018151 63.954916)
+        (xy 159.052829 63.997171)
+        (xy 159.095084 64.031849)
+        (xy 159.143292 64.057616)
+        (xy 159.195601 64.073484)
+        (xy 159.25 64.078842)
+        (xy 159.4875 64.078842)
+        (xy 159.4875 64.295792)
+        (xy 159.441427 64.341865)
+        (xy 159.378226 64.436451)
+        (xy 159.334693 64.54155)
+        (xy 159.3125 64.653121)
+        (xy 159.3125 64.766879)
+        (xy 159.334693 64.87845)
+        (xy 159.378226 64.983549)
+        (xy 159.441427 65.078135)
+        (xy 159.521865 65.158573)
+        (xy 159.616451 65.221774)
+        (xy 159.72155 65.265307)
+        (xy 159.833121 65.2875)
+        (xy 159.946879 65.2875)
+        (xy 160.05845 65.265307)
+        (xy 160.163549 65.221774)
+        (xy 160.258135 65.158573)
+        (xy 160.338573 65.078135)
+        (xy 160.401774 64.983549)
+        (xy 160.445307 64.87845)
+        (xy 160.4675 64.766879)
+        (xy 160.4675 64.653121)
+        (xy 160.445307 64.54155)
+        (xy 160.401774 64.436451)
+        (xy 160.338573 64.341865)
+        (xy 160.2925 64.295792)
+        (xy 160.2925 64.078842)
+        (xy 160.75 64.078842)
+        (xy 160.804399 64.073484)
+        (xy 160.856708 64.057616)
+        (xy 160.904916 64.031849)
+        (xy 160.947171 63.997171)
+        (xy 160.981849 63.954916)
+        (xy 161.007616 63.906708)
+        (xy 161.023484 63.854399)
+        (xy 161.028842 63.8)
+        (xy 161.028842 62.95)
+        (xy 161.023484 62.895601)
+        (xy 161.007616 62.843292)
+        (xy 160.981849 62.795084)
+        (xy 160.947171 62.752829)
+        (xy 160.904916 62.718151)
+        (xy 160.856708 62.692384)
+        (xy 160.804399 62.676516)
+        (xy 160.75 62.671158)
+        (xy 159.25 62.671158)
+        (xy 159.195601 62.676516)
+        (xy 159.143292 62.692384)
+        (xy 159.095084 62.718151)
+        (xy 159.052829 62.752829)
+        (xy 159.018151 62.795084)
+        (xy 159 62.829043)
+        (xy 158.981849 62.795084)
+        (xy 158.947171 62.752829)
+        (xy 158.904916 62.718151)
+        (xy 158.856708 62.692384)
+        (xy 158.804399 62.676516)
+        (xy 158.75 62.671158)
+        (xy 157.25 62.671158)
+        (xy 157.195601 62.676516)
+        (xy 157.143292 62.692384)
+        (xy 157.095084 62.718151)
+        (xy 157.052829 62.752829)
+        (xy 157.018151 62.795084)
+        (xy 157 62.829043)
+        (xy 156.981849 62.795084)
+        (xy 156.947171 62.752829)
+        (xy 156.904916 62.718151)
+        (xy 156.856708 62.692384)
+        (xy 156.804399 62.676516)
+        (xy 156.75 62.671158)
+        (xy 155.25 62.671158)
+        (xy 155.195601 62.676516)
+        (xy 155.143292 62.692384)
+        (xy 155.095084 62.718151)
+        (xy 155.052829 62.752829)
+        (xy 155.018151 62.795084)
+        (xy 154.992384 62.843292)
+        (xy 154.976516 62.895601)
+        (xy 154.971158 62.95)
+        (xy 136.808004 62.95)
+        (xy 136.685123 62.867894)
+        (xy 136.452633 62.771594)
+        (xy 136.205823 62.7225)
+        (xy 135.954177 62.7225)
+        (xy 135.707367 62.771594)
+        (xy 135.474877 62.867894)
+        (xy 135.265641 63.007701)
+        (xy 135.087701 63.185641)
+        (xy 134.947894 63.394877)
+        (xy 134.851594 63.627367)
+        (xy 134.81 63.836472)
+        (xy 134.768406 63.627367)
+        (xy 134.672106 63.394877)
+        (xy 134.532299 63.185641)
+        (xy 134.354359 63.007701)
+        (xy 134.145123 62.867894)
+        (xy 133.912633 62.771594)
+        (xy 133.665823 62.7225)
+        (xy 133.414177 62.7225)
+        (xy 133.167367 62.771594)
+        (xy 132.934877 62.867894)
+        (xy 132.725641 63.007701)
+        (xy 132.547701 63.185641)
+        (xy 132.407894 63.394877)
+        (xy 132.311594 63.627367)
+        (xy 132.27 63.836472)
+        (xy 132.228406 63.627367)
+        (xy 132.132106 63.394877)
+        (xy 131.992299 63.185641)
+        (xy 131.814359 63.007701)
+        (xy 131.605123 62.867894)
+        (xy 131.372633 62.771594)
+        (xy 131.125823 62.7225)
+        (xy 130.874177 62.7225)
+        (xy 130.627367 62.771594)
+        (xy 130.394877 62.867894)
+        (xy 130.185641 63.007701)
+        (xy 130.007701 63.185641)
+        (xy 129.867894 63.394877)
+        (xy 129.771594 63.627367)
+        (xy 129.73 63.836472)
+        (xy 129.688406 63.627367)
+        (xy 129.592106 63.394877)
+        (xy 129.452299 63.185641)
+        (xy 129.274359 63.007701)
+        (xy 129.065123 62.867894)
+        (xy 128.832633 62.771594)
+        (xy 128.585823 62.7225)
+        (xy 128.334177 62.7225)
+        (xy 128.087367 62.771594)
+        (xy 127.854877 62.867894)
+        (xy 127.645641 63.007701)
+        (xy 127.467701 63.185641)
+        (xy 127.327894 63.394877)
+        (xy 127.30092 63.459998)
+        (xy 127.294978 63.439984)
+        (xy 127.159304 63.1825)
+        (xy 127.149534 63.167877)
+        (xy 126.919761 63.070242)
+        (xy 125.990004 64)
+        (xy 126.919761 64.929758)
+        (xy 127.149534 64.832123)
+        (xy 127.288248 64.576264)
+        (xy 127.300098 64.538017)
+        (xy 127.327894 64.605123)
+        (xy 127.467701 64.814359)
+        (xy 127.645641 64.992299)
+        (xy 127.854877 65.132106)
+        (xy 128.087367 65.228406)
+        (xy 128.334177 65.2775)
+        (xy 128.585823 65.2775)
+        (xy 128.832633 65.228406)
+        (xy 129.065123 65.132106)
+        (xy 129.274359 64.992299)
+        (xy 129.452299 64.814359)
+        (xy 129.592106 64.605123)
+        (xy 129.688406 64.372633)
+        (xy 129.73 64.163528)
+        (xy 129.771594 64.372633)
+        (xy 129.867894 64.605123)
+        (xy 130.007701 64.814359)
+        (xy 130.185641 64.992299)
+        (xy 130.394877 65.132106)
+        (xy 130.627367 65.228406)
+        (xy 130.874177 65.2775)
+        (xy 131.125823 65.2775)
+        (xy 131.372633 65.228406)
+        (xy 131.605123 65.132106)
+        (xy 131.814359 64.992299)
+        (xy 131.992299 64.814359)
+        (xy 132.132106 64.605123)
+        (xy 132.228406 64.372633)
+        (xy 132.27 64.163528)
+        (xy 132.311594 64.372633)
+        (xy 132.407894 64.605123)
+        (xy 132.547701 64.814359)
+        (xy 132.725641 64.992299)
+        (xy 132.934877 65.132106)
+        (xy 133.167367 65.228406)
+        (xy 133.414177 65.2775)
+        (xy 133.665823 65.2775)
+        (xy 133.912633 65.228406)
+        (xy 134.145123 65.132106)
+        (xy 134.354359 64.992299)
+        (xy 134.532299 64.814359)
+        (xy 134.672106 64.605123)
+        (xy 134.768406 64.372633)
+        (xy 134.81 64.163528)
+        (xy 134.851594 64.372633)
+        (xy 134.947894 64.605123)
+        (xy 135.063156 64.777624)
+        (xy 135.029367 64.811413)
+        (xy 135.014009 64.824017)
+        (xy 134.963711 64.885306)
+        (xy 134.926336 64.95523)
+        (xy 134.90332 65.031101)
+        (xy 134.897496 65.090236)
+        (xy 134.897496 65.090245)
+        (xy 134.89555 65.110004)
+        (xy 134.897496 65.129763)
+        (xy 134.897497 76.455958)
+        (xy 134.897496 76.455968)
+        (xy 134.897496 76.485792)
+        (xy 134.851423 76.531865)
+        (xy 134.788222 76.626451)
+        (xy 134.744689 76.73155)
+        (xy 134.722496 76.843121)
+        (xy 134.722496 76.956879)
+        (xy 134.744689 77.06845)
+        (xy 134.788222 77.173549)
+        (xy 134.851423 77.268135)
+        (xy 134.931861 77.348573)
+        (xy 135.026447 77.411774)
+        (xy 135.131546 77.455307)
+        (xy 135.243117 77.4775)
+        (xy 135.2975 77.4775)
+        (xy 135.297501 79.052545)
+        (xy 134.68362 78.438664)
+        (xy 134.748539 78.411774)
+        (xy 134.843125 78.348573)
+        (xy 134.923563 78.268135)
+        (xy 134.986764 78.173549)
+        (xy 135.030297 78.06845)
+        (xy 135.05249 77.956879)
+        (xy 135.05249 77.843121)
+        (xy 135.030297 77.73155)
+        (xy 134.986764 77.626451)
+        (xy 134.923563 77.531865)
+        (xy 134.843125 77.451427)
+        (xy 134.748539 77.388226)
+        (xy 134.64344 77.344693)
+        (xy 134.531869 77.3225)
+        (xy 134.466711 77.3225)
+        (xy 134.0025 76.85829)
+        (xy 134.0025 70.483355)
+        (xy 134.004447 70.463589)
+        (xy 134.00155 70.434177)
+        (xy 133.996676 70.384685)
+        (xy 133.97366 70.308814)
+        (xy 133.952457 70.269145)
+        (xy 133.936286 70.23889)
+        (xy 133.898589 70.192957)
+        (xy 133.898587 70.192955)
+        (xy 133.885987 70.177602)
+        (xy 133.870635 70.165003)
+        (xy 130.435002 66.729371)
+        (xy 130.422398 66.714013)
+        (xy 130.36111 66.663715)
+        (xy 130.291186 66.62634)
+        (xy 130.215315 66.603324)
+        (xy 130.15618 66.5975)
+        (xy 130.15617 66.5975)
+        (xy 130.136411 66.595554)
+        (xy 130.116652 66.5975)
+        (xy 125.166721 66.5975)
+        (xy 124.4025 65.83328)
+        (xy 124.4025 64.999761)
+        (xy 124.990242 64.999761)
+        (xy 125.087877 65.229534)
+        (xy 125.343736 65.368248)
+        (xy 125.62174 65.454381)
+        (xy 125.911206 65.484623)
+        (xy 126.201011 65.457812)
+        (xy 126.480016 65.374978)
+        (xy 126.7375 65.239304)
+        (xy 126.752123 65.229534)
+        (xy 126.849758 64.999761)
+        (xy 125.92 64.070004)
+        (xy 124.990242 64.999761)
+        (xy 124.4025 64.999761)
+        (xy 124.4025 63.991206)
+        (xy 124.435377 63.991206)
+        (xy 124.462188 64.281011)
+        (xy 124.545022 64.560016)
+        (xy 124.680696 64.8175)
+        (xy 124.690466 64.832123)
+        (xy 124.920239 64.929758)
+        (xy 125.849996 64)
+        (xy 124.920239 63.070242)
+        (xy 124.690466 63.167877)
+        (xy 124.551752 63.423736)
+        (xy 124.465619 63.70174)
+        (xy 124.435377 63.991206)
+        (xy 124.4025 63.991206)
+        (xy 124.4025 63.20435)
+        (xy 124.606611 63.000239)
+        (xy 124.990242 63.000239)
+        (xy 125.92 63.929996)
+        (xy 126.849758 63.000239)
+        (xy 126.752123 62.770466)
+        (xy 126.496264 62.631752)
+        (xy 126.21826 62.545619)
+        (xy 125.928794 62.515377)
+        (xy 125.638989 62.542188)
+        (xy 125.359984 62.625022)
+        (xy 125.1025 62.760696)
+        (xy 125.087877 62.770466)
+        (xy 124.990242 63.000239)
+        (xy 124.606611 63.000239)
+        (xy 125.55685 62.05)
+        (xy 154.77019 62.05)
+        (xy 154.779409 62.143606)
+        (xy 154.806713 62.233615)
+        (xy 154.851053 62.316568)
+        (xy 154.910723 62.389277)
+        (xy 154.983432 62.448947)
+        (xy 155.066385 62.493287)
+        (xy 155.156394 62.520591)
+        (xy 155.25 62.52981)
+        (xy 155.831125 62.5275)
+        (xy 155.9505 62.408125)
+        (xy 155.9505 61.6745)
+        (xy 156.0495 61.6745)
+        (xy 156.0495 62.408125)
+        (xy 156.168875 62.5275)
+        (xy 156.75 62.52981)
+        (xy 156.843606 62.520591)
+        (xy 156.933615 62.493287)
+        (xy 157 62.457803)
+        (xy 157.066385 62.493287)
+        (xy 157.156394 62.520591)
+        (xy 157.25 62.52981)
+        (xy 157.831125 62.5275)
+        (xy 157.9505 62.408125)
+        (xy 157.9505 61.6745)
+        (xy 158.0495 61.6745)
+        (xy 158.0495 62.408125)
+        (xy 158.168875 62.5275)
+        (xy 158.75 62.52981)
+        (xy 158.843606 62.520591)
+        (xy 158.933615 62.493287)
+        (xy 159 62.457803)
+        (xy 159.066385 62.493287)
+        (xy 159.156394 62.520591)
+        (xy 159.25 62.52981)
+        (xy 159.831125 62.5275)
+        (xy 159.9505 62.408125)
+        (xy 159.9505 61.6745)
+        (xy 160.0495 61.6745)
+        (xy 160.0495 62.408125)
+        (xy 160.168875 62.5275)
+        (xy 160.75 62.52981)
+        (xy 160.843606 62.520591)
+        (xy 160.933615 62.493287)
+        (xy 161.016568 62.448947)
+        (xy 161.089277 62.389277)
+        (xy 161.148947 62.316568)
+        (xy 161.193287 62.233615)
+        (xy 161.220591 62.143606)
+        (xy 161.22981 62.05)
+        (xy 161.2275 61.793875)
+        (xy 161.108125 61.6745)
+        (xy 160.0495 61.6745)
+        (xy 159.9505 61.6745)
+        (xy 158.0495 61.6745)
+        (xy 157.9505 61.6745)
+        (xy 156.0495 61.6745)
+        (xy 155.9505 61.6745)
+        (xy 154.891875 61.6745)
+        (xy 154.7725 61.793875)
+        (xy 154.77019 62.05)
+        (xy 125.55685 62.05)
+        (xy 126.40685 61.2)
+        (xy 154.77019 61.2)
+        (xy 154.7725 61.456125)
+        (xy 154.891875 61.5755)
+        (xy 155.9505 61.5755)
+        (xy 155.9505 60.841875)
+        (xy 156.0495 60.841875)
+        (xy 156.0495 61.5755)
+        (xy 157.9505 61.5755)
+        (xy 157.9505 60.841875)
+        (xy 158.0495 60.841875)
+        (xy 158.0495 61.5755)
+        (xy 159.9505 61.5755)
+        (xy 159.9505 60.841875)
+        (xy 160.0495 60.841875)
+        (xy 160.0495 61.5755)
+        (xy 161.108125 61.5755)
+        (xy 161.2275 61.456125)
+        (xy 161.22981 61.2)
+        (xy 161.220591 61.106394)
+        (xy 161.193287 61.016385)
+        (xy 161.148947 60.933432)
+        (xy 161.089277 60.860723)
+        (xy 161.016568 60.801053)
+        (xy 160.933615 60.756713)
+        (xy 160.843606 60.729409)
+        (xy 160.75 60.72019)
+        (xy 160.168875 60.7225)
+        (xy 160.0495 60.841875)
+        (xy 159.9505 60.841875)
+        (xy 159.831125 60.7225)
+        (xy 159.25 60.72019)
+        (xy 159.156394 60.729409)
+        (xy 159.066385 60.756713)
+        (xy 159 60.792197)
+        (xy 158.933615 60.756713)
+        (xy 158.843606 60.729409)
+        (xy 158.75 60.72019)
+        (xy 158.168875 60.7225)
+        (xy 158.0495 60.841875)
+        (xy 157.9505 60.841875)
+        (xy 157.831125 60.7225)
+        (xy 157.25 60.72019)
+        (xy 157.156394 60.729409)
+        (xy 157.066385 60.756713)
+        (xy 157 60.792197)
+        (xy 156.933615 60.756713)
+        (xy 156.843606 60.729409)
+        (xy 156.75 60.72019)
+        (xy 156.168875 60.7225)
+        (xy 156.0495 60.841875)
+        (xy 155.9505 60.841875)
+        (xy 155.831125 60.7225)
+        (xy 155.25 60.72019)
+        (xy 155.156394 60.729409)
+        (xy 155.066385 60.756713)
+        (xy 154.983432 60.801053)
+        (xy 154.910723 60.860723)
+        (xy 154.851053 60.933432)
+        (xy 154.806713 61.016385)
+        (xy 154.779409 61.106394)
+        (xy 154.77019 61.2)
+        (xy 126.40685 61.2)
+        (xy 132.336219 55.270632)
+        (xy 132.336224 55.270626)
+        (xy 132.480629 55.126221)
+        (xy 132.495987 55.113617)
+        (xy 132.546285 55.052329)
+        (xy 132.58366 54.982405)
+        (xy 132.606676 54.906534)
+        (xy 132.6125 54.847399)
+        (xy 132.6125 54.847389)
+        (xy 132.614446 54.82763)
+        (xy 132.6125 54.807871)
+        (xy 132.6125 54.708426)
+        (xy 132.702388 54.671193)
+        (xy 132.872643 54.557433)
+        (xy 133.017433 54.412643)
+        (xy 133.131193 54.242388)
+        (xy 133.209553 54.053211)
+        (xy 133.2495 53.852382)
+        (xy 133.2495 53.647618)
+        (xy 133.209553 53.446789)
+        (xy 133.131193 53.257612)
+        (xy 133.017433 53.087357)
+        (xy 132.918076 52.988)
+        (xy 133.709158 52.988)
+        (xy 133.709158 54.512)
+        (xy 133.714516 54.566399)
+        (xy 133.730384 54.618708)
+        (xy 133.756151 54.666916)
+        (xy 133.790829 54.709171)
+        (xy 133.833084 54.743849)
+        (xy 133.881292 54.769616)
+        (xy 133.933601 54.785484)
+        (xy 133.988 54.790842)
+        (xy 135.512 54.790842)
+        (xy 135.566399 54.785484)
+        (xy 135.618708 54.769616)
+        (xy 135.666916 54.743849)
+        (xy 135.709171 54.709171)
+        (xy 135.743849 54.666916)
+        (xy 135.769616 54.618708)
+        (xy 135.785484 54.566399)
+        (xy 135.790842 54.512)
+        (xy 135.790842 53.647618)
+        (xy 138.8405 53.647618)
+        (xy 138.8405 53.852382)
+        (xy 138.880447 54.053211)
+        (xy 138.958807 54.242388)
+        (xy 139.072567 54.412643)
+        (xy 139.217357 54.557433)
+        (xy 139.387612 54.671193)
+        (xy 139.576789 54.749553)
+        (xy 139.777618 54.7895)
+        (xy 139.982382 54.7895)
+        (xy 140.183211 54.749553)
+        (xy 140.372388 54.671193)
+        (xy 140.542643 54.557433)
+        (xy 140.687433 54.412643)
+        (xy 140.801193 54.242388)
+        (xy 140.879553 54.053211)
+        (xy 140.9195 53.852382)
+        (xy 140.9195 53.647618)
+        (xy 141.3805 53.647618)
+        (xy 141.3805 53.852382)
+        (xy 141.420447 54.053211)
+        (xy 141.498807 54.242388)
+        (xy 141.612567 54.412643)
+        (xy 141.757357 54.557433)
+        (xy 141.927612 54.671193)
+        (xy 142.116789 54.749553)
+        (xy 142.317618 54.7895)
+        (xy 142.522382 54.7895)
+        (xy 142.723211 54.749553)
+        (xy 142.912388 54.671193)
+        (xy 143.082643 54.557433)
+        (xy 143.227433 54.412643)
+        (xy 143.341193 54.242388)
+        (xy 143.419553 54.053211)
+        (xy 143.4595 53.852382)
+        (xy 143.4595 53.647618)
+        (xy 143.9205 53.647618)
+        (xy 143.9205 53.852382)
+        (xy 143.960447 54.053211)
+        (xy 144.038807 54.242388)
+        (xy 144.152567 54.412643)
+        (xy 144.297357 54.557433)
+        (xy 144.467612 54.671193)
+        (xy 144.656789 54.749553)
+        (xy 144.857618 54.7895)
+        (xy 145.062382 54.7895)
+        (xy 145.263211 54.749553)
+        (xy 145.452388 54.671193)
+        (xy 145.622643 54.557433)
+        (xy 145.767433 54.412643)
+        (xy 145.881193 54.242388)
+        (xy 145.959553 54.053211)
+        (xy 145.9995 53.852382)
+        (xy 145.9995 53.647618)
+        (xy 145.959553 53.446789)
+        (xy 145.881193 53.257612)
+        (xy 145.767433 53.087357)
+        (xy 145.668076 52.988)
+        (xy 146.459158 52.988)
+        (xy 146.459158 54.512)
+        (xy 146.464516 54.566399)
+        (xy 146.480384 54.618708)
+        (xy 146.506151 54.666916)
+        (xy 146.540829 54.709171)
+        (xy 146.583084 54.743849)
+        (xy 146.631292 54.769616)
+        (xy 146.683601 54.785484)
+        (xy 146.738 54.790842)
+        (xy 148.262 54.790842)
+        (xy 148.316399 54.785484)
+        (xy 148.368708 54.769616)
+        (xy 148.416916 54.743849)
+        (xy 148.459171 54.709171)
+        (xy 148.493849 54.666916)
+        (xy 148.519616 54.618708)
+        (xy 148.535484 54.566399)
+        (xy 148.540842 54.512)
+        (xy 148.540842 53.647618)
+        (xy 151.2605 53.647618)
+        (xy 151.2605 53.852382)
+        (xy 151.300447 54.053211)
+        (xy 151.378807 54.242388)
+        (xy 151.492567 54.412643)
+        (xy 151.637357 54.557433)
+        (xy 151.807612 54.671193)
+        (xy 151.996789 54.749553)
+        (xy 152.197618 54.7895)
+        (xy 152.402382 54.7895)
+        (xy 152.603211 54.749553)
+        (xy 152.792388 54.671193)
+        (xy 152.962643 54.557433)
+        (xy 153.107433 54.412643)
+        (xy 153.221193 54.242388)
+        (xy 153.299553 54.053211)
+        (xy 153.3395 53.852382)
+        (xy 153.3395 53.647618)
+        (xy 153.8005 53.647618)
+        (xy 153.8005 53.852382)
+        (xy 153.840447 54.053211)
+        (xy 153.918807 54.242388)
+        (xy 154.032567 54.412643)
+        (xy 154.177357 54.557433)
+        (xy 154.347612 54.671193)
+        (xy 154.536789 54.749553)
+        (xy 154.737618 54.7895)
+        (xy 154.942382 54.7895)
+        (xy 155.143211 54.749553)
+        (xy 155.332388 54.671193)
+        (xy 155.502643 54.557433)
+        (xy 155.647433 54.412643)
+        (xy 155.761193 54.242388)
+        (xy 155.839553 54.053211)
+        (xy 155.8795 53.852382)
+        (xy 155.8795 53.647618)
+        (xy 156.3405 53.647618)
+        (xy 156.3405 53.852382)
+        (xy 156.380447 54.053211)
+        (xy 156.458807 54.242388)
+        (xy 156.572567 54.412643)
+        (xy 156.717357 54.557433)
+        (xy 156.887612 54.671193)
+        (xy 157.076789 54.749553)
+        (xy 157.277618 54.7895)
+        (xy 157.482382 54.7895)
+        (xy 157.683211 54.749553)
+        (xy 157.872388 54.671193)
+        (xy 158.042643 54.557433)
+        (xy 158.187433 54.412643)
+        (xy 158.301193 54.242388)
+        (xy 158.379553 54.053211)
+        (xy 158.4195 53.852382)
+        (xy 158.4195 53.647618)
+        (xy 158.8805 53.647618)
+        (xy 158.8805 53.852382)
+        (xy 158.920447 54.053211)
+        (xy 158.998807 54.242388)
+        (xy 159.112567 54.412643)
+        (xy 159.257357 54.557433)
+        (xy 159.427612 54.671193)
+        (xy 159.616789 54.749553)
+        (xy 159.817618 54.7895)
+        (xy 160.022382 54.7895)
+        (xy 160.223211 54.749553)
+        (xy 160.412388 54.671193)
+        (xy 160.582643 54.557433)
+        (xy 160.727433 54.412643)
+        (xy 160.841193 54.242388)
+        (xy 160.919553 54.053211)
+        (xy 160.9595 53.852382)
+        (xy 160.9595 53.647618)
+        (xy 160.919553 53.446789)
+        (xy 160.841193 53.257612)
+        (xy 160.727433 53.087357)
+        (xy 160.582643 52.942567)
+        (xy 160.412388 52.828807)
+        (xy 160.223211 52.750447)
+        (xy 160.022382 52.7105)
+        (xy 159.817618 52.7105)
+        (xy 159.616789 52.750447)
+        (xy 159.427612 52.828807)
+        (xy 159.257357 52.942567)
+        (xy 159.112567 53.087357)
+        (xy 158.998807 53.257612)
+        (xy 158.920447 53.446789)
+        (xy 158.8805 53.647618)
+        (xy 158.4195 53.647618)
+        (xy 158.379553 53.446789)
+        (xy 158.301193 53.257612)
+        (xy 158.187433 53.087357)
+        (xy 158.042643 52.942567)
+        (xy 157.872388 52.828807)
+        (xy 157.683211 52.750447)
+        (xy 157.482382 52.7105)
+        (xy 157.277618 52.7105)
+        (xy 157.076789 52.750447)
+        (xy 156.887612 52.828807)
+        (xy 156.717357 52.942567)
+        (xy 156.572567 53.087357)
+        (xy 156.458807 53.257612)
+        (xy 156.380447 53.446789)
+        (xy 156.3405 53.647618)
+        (xy 155.8795 53.647618)
+        (xy 155.839553 53.446789)
+        (xy 155.761193 53.257612)
+        (xy 155.647433 53.087357)
+        (xy 155.502643 52.942567)
+        (xy 155.332388 52.828807)
+        (xy 155.143211 52.750447)
+        (xy 154.942382 52.7105)
+        (xy 154.737618 52.7105)
+        (xy 154.536789 52.750447)
+        (xy 154.347612 52.828807)
+        (xy 154.177357 52.942567)
+        (xy 154.032567 53.087357)
+        (xy 153.918807 53.257612)
+        (xy 153.840447 53.446789)
+        (xy 153.8005 53.647618)
+        (xy 153.3395 53.647618)
+        (xy 153.299553 53.446789)
+        (xy 153.221193 53.257612)
+        (xy 153.107433 53.087357)
+        (xy 152.962643 52.942567)
+        (xy 152.792388 52.828807)
+        (xy 152.603211 52.750447)
+        (xy 152.402382 52.7105)
+        (xy 152.197618 52.7105)
+        (xy 151.996789 52.750447)
+        (xy 151.807612 52.828807)
+        (xy 151.637357 52.942567)
+        (xy 151.492567 53.087357)
+        (xy 151.378807 53.257612)
+        (xy 151.300447 53.446789)
+        (xy 151.2605 53.647618)
+        (xy 148.540842 53.647618)
+        (xy 148.540842 52.988)
+        (xy 148.535484 52.933601)
+        (xy 148.519616 52.881292)
+        (xy 148.493849 52.833084)
+        (xy 148.459171 52.790829)
+        (xy 148.416916 52.756151)
+        (xy 148.368708 52.730384)
+        (xy 148.316399 52.714516)
+        (xy 148.262 52.709158)
+        (xy 146.738 52.709158)
+        (xy 146.683601 52.714516)
+        (xy 146.631292 52.730384)
+        (xy 146.583084 52.756151)
+        (xy 146.540829 52.790829)
+        (xy 146.506151 52.833084)
+        (xy 146.480384 52.881292)
+        (xy 146.464516 52.933601)
+        (xy 146.459158 52.988)
+        (xy 145.668076 52.988)
+        (xy 145.622643 52.942567)
+        (xy 145.452388 52.828807)
+        (xy 145.263211 52.750447)
+        (xy 145.062382 52.7105)
+        (xy 144.857618 52.7105)
+        (xy 144.656789 52.750447)
+        (xy 144.467612 52.828807)
+        (xy 144.297357 52.942567)
+        (xy 144.152567 53.087357)
+        (xy 144.038807 53.257612)
+        (xy 143.960447 53.446789)
+        (xy 143.9205 53.647618)
+        (xy 143.4595 53.647618)
+        (xy 143.419553 53.446789)
+        (xy 143.341193 53.257612)
+        (xy 143.227433 53.087357)
+        (xy 143.082643 52.942567)
+        (xy 142.912388 52.828807)
+        (xy 142.723211 52.750447)
+        (xy 142.522382 52.7105)
+        (xy 142.317618 52.7105)
+        (xy 142.116789 52.750447)
+        (xy 141.927612 52.828807)
+        (xy 141.757357 52.942567)
+        (xy 141.612567 53.087357)
+        (xy 141.498807 53.257612)
+        (xy 141.420447 53.446789)
+        (xy 141.3805 53.647618)
+        (xy 140.9195 53.647618)
+        (xy 140.879553 53.446789)
+        (xy 140.801193 53.257612)
+        (xy 140.687433 53.087357)
+        (xy 140.542643 52.942567)
+        (xy 140.372388 52.828807)
+        (xy 140.183211 52.750447)
+        (xy 139.982382 52.7105)
+        (xy 139.777618 52.7105)
+        (xy 139.576789 52.750447)
+        (xy 139.387612 52.828807)
+        (xy 139.217357 52.942567)
+        (xy 139.072567 53.087357)
+        (xy 138.958807 53.257612)
+        (xy 138.880447 53.446789)
+        (xy 138.8405 53.647618)
+        (xy 135.790842 53.647618)
+        (xy 135.790842 52.988)
+        (xy 135.785484 52.933601)
+        (xy 135.769616 52.881292)
+        (xy 135.743849 52.833084)
+        (xy 135.709171 52.790829)
+        (xy 135.666916 52.756151)
+        (xy 135.618708 52.730384)
+        (xy 135.566399 52.714516)
+        (xy 135.512 52.709158)
+        (xy 133.988 52.709158)
+        (xy 133.933601 52.714516)
+        (xy 133.881292 52.730384)
+        (xy 133.833084 52.756151)
+        (xy 133.790829 52.790829)
+        (xy 133.756151 52.833084)
+        (xy 133.730384 52.881292)
+        (xy 133.714516 52.933601)
+        (xy 133.709158 52.988)
+        (xy 132.918076 52.988)
+        (xy 132.872643 52.942567)
+        (xy 132.702388 52.828807)
+        (xy 132.513211 52.750447)
+        (xy 132.312382 52.7105)
+        (xy 132.107618 52.7105)
+        (xy 131.906789 52.750447)
+        (xy 131.717612 52.828807)
+        (xy 131.547357 52.942567)
+        (xy 131.402567 53.087357)
+        (xy 131.288807 53.257612)
+        (xy 131.210447 53.446789)
+        (xy 131.1705 53.647618)
+        (xy 131.1705 53.852382)
+        (xy 131.210447 54.053211)
+        (xy 131.288807 54.242388)
+        (xy 131.402567 54.412643)
+        (xy 131.547357 54.557433)
+        (xy 131.717612 54.671193)
+        (xy 131.773901 54.694509)
+        (xy 131.767004 54.701406)
+        (xy 131.766998 54.701411)
+        (xy 123.729371 62.739039)
+        (xy 123.714013 62.751643)
+        (xy 123.663715 62.812932)
+        (xy 123.62634 62.882856)
+        (xy 123.603324 62.958727)
+        (xy 123.5975 63.017862)
+        (xy 123.5975 63.017871)
+        (xy 123.595554 63.03763)
+        (xy 123.5975 63.057389)
+        (xy 123.597501 65.664691)
+        (xy 122.6925 64.759691)
+        (xy 122.6925 54.958426)
+        (xy 122.782388 54.921193)
+        (xy 122.952643 54.807433)
+        (xy 122.998076 54.762)
+        (xy 123.58819 54.762)
+        (xy 123.597409 54.855606)
+        (xy 123.624713 54.945615)
+        (xy 123.669053 55.028568)
+        (xy 123.728723 55.101277)
+        (xy 123.801432 55.160947)
+        (xy 123.884385 55.205287)
+        (xy 123.974394 55.232591)
+        (xy 124.068 55.24181)
+        (xy 124.661125 55.2395)
+        (xy 124.7805 55.120125)
+        (xy 124.7805 54.0495)
+        (xy 124.8795 54.0495)
+        (xy 124.8795 55.120125)
+        (xy 124.998875 55.2395)
+        (xy 125.592 55.24181)
+        (xy 125.685606 55.232591)
+        (xy 125.775615 55.205287)
+        (xy 125.858568 55.160947)
+        (xy 125.931277 55.101277)
+        (xy 125.990947 55.028568)
+        (xy 126.035287 54.945615)
+        (xy 126.062591 54.855606)
+        (xy 126.07181 54.762)
+        (xy 126.0695 54.168875)
+        (xy 125.950125 54.0495)
+        (xy 124.8795 54.0495)
+        (xy 124.7805 54.0495)
+        (xy 123.709875 54.0495)
+        (xy 123.5905 54.168875)
+        (xy 123.58819 54.762)
+        (xy 122.998076 54.762)
+        (xy 123.097433 54.662643)
+        (xy 123.211193 54.492388)
+        (xy 123.289553 54.303211)
+        (xy 123.3295 54.102382)
+        (xy 123.3295 53.897618)
+        (xy 123.289553 53.696789)
+        (xy 123.211193 53.507612)
+        (xy 123.097433 53.337357)
+        (xy 122.998076 53.238)
+        (xy 123.58819 53.238)
+        (xy 123.5905 53.831125)
+        (xy 123.709875 53.9505)
+        (xy 124.7805 53.9505)
+        (xy 124.7805 52.879875)
+        (xy 124.8795 52.879875)
+        (xy 124.8795 53.9505)
+        (xy 125.950125 53.9505)
+        (xy 126.0695 53.831125)
+        (xy 126.070214 53.647618)
+        (xy 128.6305 53.647618)
+        (xy 128.6305 53.852382)
+        (xy 128.670447 54.053211)
+        (xy 128.748807 54.242388)
+        (xy 128.862567 54.412643)
+        (xy 129.007357 54.557433)
+        (xy 129.177612 54.671193)
+        (xy 129.366789 54.749553)
+        (xy 129.567618 54.7895)
+        (xy 129.772382 54.7895)
+        (xy 129.973211 54.749553)
+        (xy 130.162388 54.671193)
+        (xy 130.332643 54.557433)
+        (xy 130.477433 54.412643)
+        (xy 130.591193 54.242388)
+        (xy 130.669553 54.053211)
+        (xy 130.7095 53.852382)
+        (xy 130.7095 53.647618)
+        (xy 130.669553 53.446789)
+        (xy 130.591193 53.257612)
+        (xy 130.477433 53.087357)
+        (xy 130.332643 52.942567)
+        (xy 130.162388 52.828807)
+        (xy 129.973211 52.750447)
+        (xy 129.772382 52.7105)
+        (xy 129.567618 52.7105)
+        (xy 129.366789 52.750447)
+        (xy 129.177612 52.828807)
+        (xy 129.007357 52.942567)
+        (xy 128.862567 53.087357)
+        (xy 128.748807 53.257612)
+        (xy 128.670447 53.446789)
+        (xy 128.6305 53.647618)
+        (xy 126.070214 53.647618)
+        (xy 126.07181 53.238)
+        (xy 126.062591 53.144394)
+        (xy 126.035287 53.054385)
+        (xy 125.990947 52.971432)
+        (xy 125.931277 52.898723)
+        (xy 125.858568 52.839053)
+        (xy 125.775615 52.794713)
+        (xy 125.685606 52.767409)
+        (xy 125.592 52.75819)
+        (xy 124.998875 52.7605)
+        (xy 124.8795 52.879875)
+        (xy 124.7805 52.879875)
+        (xy 124.661125 52.7605)
+        (xy 124.068 52.75819)
+        (xy 123.974394 52.767409)
+        (xy 123.884385 52.794713)
+        (xy 123.801432 52.839053)
+        (xy 123.728723 52.898723)
+        (xy 123.669053 52.971432)
+        (xy 123.624713 53.054385)
+        (xy 123.597409 53.144394)
+        (xy 123.58819 53.238)
+        (xy 122.998076 53.238)
+        (xy 122.952643 53.192567)
+        (xy 122.782388 53.078807)
+        (xy 122.593211 53.000447)
+        (xy 122.392382 52.9605)
+        (xy 122.187618 52.9605)
+        (xy 121.986789 53.000447)
+        (xy 121.797612 53.078807)
+        (xy 121.627357 53.192567)
+        (xy 121.482567 53.337357)
+        (xy 121.368807 53.507612)
+        (xy 121.290447 53.696789)
+        (xy 121.2505 53.897618)
+        (xy 120.7895 53.897618)
+        (xy 120.749553 53.696789)
+        (xy 120.671193 53.507612)
+        (xy 120.557433 53.337357)
+        (xy 120.412643 53.192567)
+        (xy 120.242388 53.078807)
+        (xy 120.053211 53.000447)
+        (xy 119.852382 52.9605)
+        (xy 119.647618 52.9605)
+        (xy 119.446789 53.000447)
+        (xy 119.257612 53.078807)
+        (xy 119.087357 53.192567)
+        (xy 118.942567 53.337357)
+        (xy 118.828807 53.507612)
+        (xy 118.750447 53.696789)
+        (xy 118.7105 53.897618)
+        (xy 94.822744 53.897618)
+        (xy 94.949584 53.5914)
+        (xy 95.0275 53.199691)
+        (xy 95.0275 52.800309)
+        (xy 94.949584 52.4086)
+        (xy 94.796747 52.039619)
+        (xy 94.574862 51.707544)
+        (xy 94.292456 51.425138)
+        (xy 93.960381 51.203253)
+        (xy 93.5914 51.050416)
+        (xy 93.199691 50.9725)
+        (xy 92.800309 50.9725)
+        (xy 92.4086 51.050416)
+        (xy 92.039619 51.203253)
+        (xy 91.707544 51.425138)
+        (xy 91.425138 51.707544)
+        (xy 91.203253 52.039619)
+        (xy 91.050416 52.4086)
+        (xy 90.9725 52.800309)
+        (xy 90.2825 52.800309)
+        (xy 90.2825 50.2825)
+        (xy 178.4225 50.2825)
+      )
+    )
+  )
+  (zone (net 0) (net_name "") (layer "B.Cu") (tstamp 92824357-0b8c-427f-a3d1-bfd283c414f2) (hatch edge 0.508)
+    (connect_pads (clearance 0))
+    (min_thickness 0.254)
+    (keepout (tracks not_allowed) (vias not_allowed) (pads allowed ) (copperpour not_allowed) (footprints allowed))
+    (fill (thermal_gap 0.508) (thermal_bridge_width 0.508))
+    (polygon
+      (pts
+        (xy 121 70)
+        (xy 100 70)
+        (xy 100 60)
+        (xy 121 60)
+      )
+    )
+  )
+)

+ 2 - 1
Soft/ESP12F/ESP12F.h

@@ -43,7 +43,8 @@ typedef struct{
 
 #ifdef AQUAGRA
   char auth[] = "HX49Gzw7ONpiPKKpdRZL8pIYVMPx7GO9"; //220L
-#elif AQUAZOA
+  #endif
+#ifdef AQUAZOA
   char auth[] = "ZxEo9t9IFn2miwSOp10vFvaKd8Imn_UJ"; //70L
 #endif
 

+ 1 - 1
Soft/ESP12F/ESP12F.ino

@@ -93,7 +93,7 @@ void Status(){
 void setup() {
     
   Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 18), 8081);
-  timerRTC.setInterval(1000L*3600, SyncRTC); // une synchro de la RTC par heure
+  timerRTC.setInterval(1000L*600, SyncRTC); // une synchro de la RTC par heure
   timerStatus.setInterval(10000L, Status); // un status toute les 10 sec
   Serial.begin(115200);
 }

+ 11 - 0
Soft/STM32/.project

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>STM32</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>

+ 2 - 2
Soft/STM32/Controle/.cproject

@@ -55,7 +55,7 @@
 								<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.11936018" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false"/>
 							</tool>
 							<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.1568872907" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
-								<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.1268326183" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32F401RCTX_FLASH.ld}" valueType="string"/>
+								<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.1268326183" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" useByScannerDiscovery="false" value="/home/remy/Projet/rampesLeds/Soft/STM32/Controle/STM32F401RCTX_FLASH.ld" valueType="string"/>
 								<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.417018113" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
 									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
 									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
@@ -158,7 +158,7 @@
 	</storageModule>
 	<storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
 	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-		<project id="Controle.null.1089965076" name="Controle"/>
+		<project id="Controle.null.2134629260" name="Controle"/>
 	</storageModule>
 	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
 	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>

+ 2 - 2
Soft/STM32/Controle/.settings/language.settings.xml

@@ -6,7 +6,7 @@
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
-			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="241190362556324314" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="255114146684907380" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -18,7 +18,7 @@
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
-			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="241190362556324314" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="255114146684907380" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>

+ 80 - 0
Soft/STM32/Controle/Controle.launch

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType">
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/>
+    <intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{&quot;fItems&quot;:[{&quot;fIsFromMainTab&quot;:true,&quot;fPath&quot;:&quot;Debug/Controle.elf&quot;,&quot;fProjectName&quot;:&quot;Controle&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="16000000"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_external_loader" value="false"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader" value=""/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader_init" value="false"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="/home/remy/Projet/rampesLeds/Soft/STM32/Controle/Debug/st-link_gdbserver_log.txt"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="enable"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_check_serial_number" value="false"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value=""/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="false"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{&quot;fVersion&quot;:1,&quot;fItems&quot;:[{&quot;fDisplayName&quot;:&quot;Reset&quot;,&quot;fIsSuppressible&quot;:false,&quot;fResetAttribute&quot;:&quot;Software system reset&quot;,&quot;fResetStrategies&quot;:[{&quot;fDisplayName&quot;:&quot;Software system reset&quot;,&quot;fLaunchAttribute&quot;:&quot;system_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Hardware reset&quot;,&quot;fLaunchAttribute&quot;:&quot;hardware_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset hardware\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Core reset&quot;,&quot;fLaunchAttribute&quot;:&quot;core_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset core\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;None&quot;,&quot;fLaunchAttribute&quot;:&quot;no_reset&quot;,&quot;fGdbCommands&quot;:[],&quot;fCmdOptions&quot;:[&quot;-g&quot;]}],&quot;fGdbCommandGroup&quot;:{&quot;name&quot;:&quot;Additional commands&quot;,&quot;commands&quot;:[]},&quot;fStartApplication&quot;:true}]}"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="false"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="threadx"/>
+    <booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverAuto" value="false"/>
+    <stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverPort" value="cortex_m0"/>
+    <intAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyPort" value="60000"/>
+    <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>
+    <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>
+    <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>
+    <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
+    <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.st.stm32cube.ide.mcu.debug.stlink"/>
+    <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
+    <intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/>
+    <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
+    <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
+    <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
+    <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
+    <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
+    <stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
+    <booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
+    <booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
+    <intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
+    <stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
+    <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
+    <booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
+    <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
+    <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/Controle.elf"/>
+    <stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="Controle"/>
+    <booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
+    <stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.583918437"/>
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+        <listEntry value="/Controle"/>
+    </listAttribute>
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+        <listEntry value="4"/>
+    </listAttribute>
+    <stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;"/>
+    <stringAttribute key="process_factory_id" value="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/>
+</launchConfiguration>

+ 1 - 0
Soft/STM32/Controle/Core/Src/Comunication.c

@@ -149,6 +149,7 @@ void Com_SyncRTC(uint8_t* mes){
 	sTime.Hours=mes[5];
 	sTime.Minutes=mes[6];
 	sTime.Seconds=mes[7];
+	sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
 	sTime.StoreOperation = RTC_STOREOPERATION_RESET;
 	if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK)
 		Error_Handler; //TODO

+ 11 - 54
Soft/STM32/Controle/Core/Src/main.c

@@ -76,53 +76,18 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
 	HAL_UART_Receive_IT(&huart6, RX_uart, 8);
 }
 
-uint16_t ReadEepromHeure(uint8_t add){
-	uint8_t tab[2];
-	if (readEeprom(add, tab,2)!=HAL_OK){
-		/*
-		 * Grosse merde ca fonctionne pas du tout
-		 * Mettre les valeurs a :
-		 * 		Demmarage = 9H
-		 * 		Extinxtion = 20H
-		 * 		PuissanceMax = 50%
-		 * 		Pente = 0
-		 */
-		if (add%5==0)//Si demmarage
-			return 9*60;
-		else
-			return 20*60;
-	}
-	return tab[0]*60+tab[1];
-}
-
-uint8_t ReadEepromVal(uint8_t add){
-	uint8_t tab[1];
-	if (readEeprom(add, tab,1)!=HAL_OK){
-		/*
-		 * Grosse merde ca fonctionne pas du tout
-		 * Mettre les valeurs a :
-		 * 		Demmarage = 9H
-		 * 		Extinxtion = 20H
-		 * 		PuissanceMax = 50%
-		 * 		Pente = 0
-		 */
-		return 50;
-	}
-	return tab[0];
-
-}
-
-void ChargeEeprom(){
+void InitValeur(){
 	for(int i = 0; i<10; i++){
-		tabSortie[i].Extinxtion = ReadEepromHeure(i*5);
-		tabSortie[i].Demmarage = ReadEepromHeure(i*5+2);
-		tabSortie[i].PuissanceMax = ReadEepromVal(i*5+3);
-		tabSortie[i].Pente= ReadEepromVal(i*5+4);
+		tabSortie[i].Extinxtion = 22*60;
+		tabSortie[i].Demmarage = 10*60;
+		tabSortie[i].PuissanceMax = 50;
+		tabSortie[i].Pente= 0;
 	}
 	gl_Stop = 0;
 	gl_Essai = 0;
 }
 
+
 /* USER CODE END 0 */
 
 /**
@@ -189,10 +154,10 @@ int main(void)
   /* USER CODE BEGIN 2 */
 
 
-/*  initEprom(&hi2c3,WC_GPIO_Port,WC_Pin);
 
-  //On charge les valeur de l'Eeprom
-  ChargeEeprom();
+
+
+  InitValeur();
 
   //initialise le timer de heard beat et l'uart
   erreur=1;
@@ -206,20 +171,12 @@ int main(void)
   /* Infinite loop */
   /* USER CODE BEGIN WHILE */
 
-  RX_uart[0]=0xAA;
+
 
   while (1){
-	  HAL_UART_Transmit(&huart6, RX_uart, 1,1000);
 
-	  /*if(HAL_UART_Receive(&huart6, RX_uart,1,1000)==HAL_OK){
-		  HAL_Delay(10);
-	  }
-	  else{
-		  HAL_Delay(100);
-	  }*/
-	  HAL_Delay(500);
 
-	  /*
+
 	 if(gl_Essai){//EN essai
 		Essai();
 	}

+ 6 - 0
Soft/STM32/Proto/Drivers/CMSIS/Device/ST/STM32F4xx/LICENSE.txt

@@ -0,0 +1,6 @@
+This software component is provided to you as part of a software package and
+applicable license terms are in the  Package_license file. If you received this
+software component outside of a package or without applicable license terms,
+the terms of the Apache-2.0 license shall apply. 
+You may obtain a copy of the Apache-2.0 at:
+https://opensource.org/licenses/Apache-2.0

+ 915 - 0
Soft/STM32/Proto/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h

@@ -0,0 +1,915 @@
+/**
+  ******************************************************************************
+  * @file    stm32f4xx_hal_rtc.h
+  * @author  MCD Application Team
+  * @brief   Header file of RTC HAL module.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef STM32F4xx_HAL_RTC_H
+#define STM32F4xx_HAL_RTC_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+
+#include "stm32f4xx_hal_def.h"
+
+/** @addtogroup STM32F4xx_HAL_Driver
+  * @{
+  */
+
+/** @addtogroup RTC
+  * @{
+  */
+
+/* Exported types ------------------------------------------------------------*/
+
+/** @defgroup RTC_Exported_Types RTC Exported Types
+  * @{
+  */
+
+/**
+  * @brief  HAL State structures definition
+  */
+typedef enum
+{
+  HAL_RTC_STATE_RESET             = 0x00U,  /*!< RTC not yet initialized or disabled */
+  HAL_RTC_STATE_READY             = 0x01U,  /*!< RTC initialized and ready for use   */
+  HAL_RTC_STATE_BUSY              = 0x02U,  /*!< RTC process is ongoing              */
+  HAL_RTC_STATE_TIMEOUT           = 0x03U,  /*!< RTC timeout state                   */
+  HAL_RTC_STATE_ERROR             = 0x04U   /*!< RTC error state                     */
+} HAL_RTCStateTypeDef;
+
+/**
+  * @brief  RTC Configuration Structure definition
+  */
+typedef struct
+{
+  uint32_t HourFormat;      /*!< Specifies the RTC Hour Format.
+                                 This parameter can be a value of @ref RTC_Hour_Formats */
+
+  uint32_t AsynchPrediv;    /*!< Specifies the RTC Asynchronous Predivider value.
+                                 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7F */
+
+  uint32_t SynchPrediv;     /*!< Specifies the RTC Synchronous Predivider value.
+                                 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x7FFF */
+
+  uint32_t OutPut;          /*!< Specifies which signal will be routed to the RTC output.
+                                 This parameter can be a value of @ref RTC_Output_selection_Definitions */
+
+  uint32_t OutPutPolarity;  /*!< Specifies the polarity of the output signal.
+                                 This parameter can be a value of @ref RTC_Output_Polarity_Definitions */
+
+  uint32_t OutPutType;      /*!< Specifies the RTC Output Pin mode.
+                                 This parameter can be a value of @ref RTC_Output_Type_ALARM_OUT */
+} RTC_InitTypeDef;
+
+/**
+  * @brief  RTC Time structure definition
+  */
+typedef struct
+{
+  uint8_t Hours;            /*!< Specifies the RTC Time Hour.
+                                 This parameter must be a number between Min_Data = 0 and Max_Data = 12 if the RTC_HourFormat_12 is selected
+                                 This parameter must be a number between Min_Data = 0 and Max_Data = 23 if the RTC_HourFormat_24 is selected */
+
+  uint8_t Minutes;          /*!< Specifies the RTC Time Minutes.
+                                 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
+
+  uint8_t Seconds;          /*!< Specifies the RTC Time Seconds.
+                                 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
+
+  uint8_t TimeFormat;       /*!< Specifies the RTC AM/PM Time.
+                                 This parameter can be a value of @ref RTC_AM_PM_Definitions */
+
+  uint32_t SubSeconds;      /*!< Specifies the RTC_SSR RTC Sub Second register content.
+                                 This parameter corresponds to a time unit range between [0-1] Second
+                                 with [1 Sec / SecondFraction +1] granularity */
+
+  uint32_t SecondFraction;  /*!< Specifies the range or granularity of Sub Second register content
+                                 corresponding to Synchronous prescaler factor value (PREDIV_S)
+                                 This parameter corresponds to a time unit range between [0-1] Second
+                                 with [1 Sec / SecondFraction +1] granularity.
+                                 This field will be used only by HAL_RTC_GetTime function */
+
+  uint32_t DayLightSaving;  /*!< This interface is deprecated. To manage Daylight
+                                 Saving Time, please use HAL_RTC_DST_xxx functions */
+
+  uint32_t StoreOperation;  /*!< This interface is deprecated. To manage Daylight
+                                 Saving Time, please use HAL_RTC_DST_xxx functions */
+} RTC_TimeTypeDef;
+
+/**
+  * @brief  RTC Date structure definition
+  */
+typedef struct
+{
+  uint8_t WeekDay;  /*!< Specifies the RTC Date WeekDay.
+                         This parameter can be a value of @ref RTC_WeekDay_Definitions */
+
+  uint8_t Month;    /*!< Specifies the RTC Date Month (in BCD format).
+                         This parameter can be a value of @ref RTC_Month_Date_Definitions */
+
+  uint8_t Date;     /*!< Specifies the RTC Date.
+                         This parameter must be a number between Min_Data = 1 and Max_Data = 31 */
+
+  uint8_t Year;     /*!< Specifies the RTC Date Year.
+                         This parameter must be a number between Min_Data = 0 and Max_Data = 99 */
+
+} RTC_DateTypeDef;
+
+/**
+  * @brief  RTC Alarm structure definition
+  */
+typedef struct
+{
+  RTC_TimeTypeDef AlarmTime;     /*!< Specifies the RTC Alarm Time members */
+
+  uint32_t AlarmMask;            /*!< Specifies the RTC Alarm Masks.
+                                      This parameter can be a value of @ref RTC_AlarmMask_Definitions */
+
+  uint32_t AlarmSubSecondMask;   /*!< Specifies the RTC Alarm SubSeconds Masks.
+                                      This parameter can be a value of @ref RTC_Alarm_Sub_Seconds_Masks_Definitions */
+
+  uint32_t AlarmDateWeekDaySel;  /*!< Specifies the RTC Alarm is on Date or WeekDay.
+                                      This parameter can be a value of @ref RTC_AlarmDateWeekDay_Definitions */
+
+  uint8_t AlarmDateWeekDay;      /*!< Specifies the RTC Alarm Date/WeekDay.
+                                      If the Alarm Date is selected, this parameter must be set to a value in the 1-31 range.
+                                      If the Alarm WeekDay is selected, this parameter can be a value of @ref RTC_WeekDay_Definitions */
+
+  uint32_t Alarm;                /*!< Specifies the alarm .
+                                      This parameter can be a value of @ref RTC_Alarms_Definitions */
+} RTC_AlarmTypeDef;
+
+/**
+  * @brief  RTC Handle Structure definition
+  */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+typedef struct __RTC_HandleTypeDef
+#else
+typedef struct
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+{
+  RTC_TypeDef                 *Instance;  /*!< Register base address    */
+
+  RTC_InitTypeDef             Init;       /*!< RTC required parameters  */
+
+  HAL_LockTypeDef             Lock;       /*!< RTC locking object       */
+
+  __IO HAL_RTCStateTypeDef    State;      /*!< Time communication state */
+
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+  void (* AlarmAEventCallback)      (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Alarm A Event callback         */
+
+  void (* AlarmBEventCallback)      (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Alarm B Event callback         */
+
+  void (* TimeStampEventCallback)   (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Timestamp Event callback       */
+
+  void (* WakeUpTimerEventCallback) (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC WakeUpTimer Event callback     */
+
+  void (* Tamper1EventCallback)     (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Tamper 1 Event callback        */
+
+#if defined(RTC_TAMPER2_SUPPORT)
+  void (* Tamper2EventCallback)     (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Tamper 2 Event callback        */
+#endif /* RTC_TAMPER2_SUPPORT */
+
+  void (* MspInitCallback)          (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Msp Init callback              */
+
+  void (* MspDeInitCallback)        (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Msp DeInit callback            */
+
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+} RTC_HandleTypeDef;
+
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+/**
+  * @brief  HAL RTC Callback ID enumeration definition
+  */
+typedef enum
+{
+  HAL_RTC_ALARM_A_EVENT_CB_ID           = 0x00U,    /*!< RTC Alarm A Event Callback ID       */
+  HAL_RTC_ALARM_B_EVENT_CB_ID           = 0x01U,    /*!< RTC Alarm B Event Callback ID       */
+  HAL_RTC_TIMESTAMP_EVENT_CB_ID         = 0x02U,    /*!< RTC Timestamp Event Callback ID     */
+  HAL_RTC_WAKEUPTIMER_EVENT_CB_ID       = 0x03U,    /*!< RTC Wakeup Timer Event Callback ID  */
+  HAL_RTC_TAMPER1_EVENT_CB_ID           = 0x04U,    /*!< RTC Tamper 1 Callback ID            */
+#if defined(RTC_TAMPER2_SUPPORT)
+  HAL_RTC_TAMPER2_EVENT_CB_ID           = 0x05U,    /*!< RTC Tamper 2 Callback ID            */
+#endif /* RTC_TAMPER2_SUPPORT */
+  HAL_RTC_MSPINIT_CB_ID                 = 0x0EU,    /*!< RTC Msp Init callback ID            */
+  HAL_RTC_MSPDEINIT_CB_ID               = 0x0FU     /*!< RTC Msp DeInit callback ID          */
+} HAL_RTC_CallbackIDTypeDef;
+
+/**
+  * @brief  HAL RTC Callback pointer definition
+  */
+typedef  void (*pRTC_CallbackTypeDef)(RTC_HandleTypeDef *hrtc);  /*!< pointer to an RTC callback function */
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+/**
+  * @}
+  */
+
+/* Exported constants --------------------------------------------------------*/
+
+/** @defgroup RTC_Exported_Constants RTC Exported Constants
+  * @{
+  */
+
+/** @defgroup RTC_Hour_Formats RTC Hour Formats
+  * @{
+  */
+#define RTC_HOURFORMAT_24              0x00000000U
+#define RTC_HOURFORMAT_12              RTC_CR_FMT
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Output_selection_Definitions RTC Output Selection Definitions
+  * @{
+  */
+#define RTC_OUTPUT_DISABLE             0x00000000U
+#define RTC_OUTPUT_ALARMA              RTC_CR_OSEL_0
+#define RTC_OUTPUT_ALARMB              RTC_CR_OSEL_1
+#define RTC_OUTPUT_WAKEUP              RTC_CR_OSEL
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Output_Polarity_Definitions RTC Output Polarity Definitions
+  * @{
+  */
+#define RTC_OUTPUT_POLARITY_HIGH       0x00000000U
+#define RTC_OUTPUT_POLARITY_LOW        RTC_CR_POL
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Output_Type_ALARM_OUT RTC Output Type ALARM OUT
+  * @{
+  */
+#define RTC_OUTPUT_TYPE_OPENDRAIN      0x00000000U
+#define RTC_OUTPUT_TYPE_PUSHPULL       RTC_TAFCR_ALARMOUTTYPE
+/**
+  * @}
+  */
+
+/** @defgroup RTC_AM_PM_Definitions RTC AM PM Definitions
+  * @{
+  */
+#define RTC_HOURFORMAT12_AM            ((uint8_t)0x00)
+#define RTC_HOURFORMAT12_PM            ((uint8_t)0x01)
+/**
+  * @}
+  */
+
+/** @defgroup RTC_DayLightSaving_Definitions RTC DayLight Saving Definitions
+  * @{
+  */
+#define RTC_DAYLIGHTSAVING_SUB1H       RTC_CR_SUB1H
+#define RTC_DAYLIGHTSAVING_ADD1H       RTC_CR_ADD1H
+#define RTC_DAYLIGHTSAVING_NONE        0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup RTC_StoreOperation_Definitions RTC Store Operation Definitions
+  * @{
+  */
+#define RTC_STOREOPERATION_RESET        0x00000000U
+#define RTC_STOREOPERATION_SET          RTC_CR_BKP
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Input_parameter_format_definitions RTC Input Parameter Format Definitions
+  * @{
+  */
+#define RTC_FORMAT_BIN                  0x00000000U
+#define RTC_FORMAT_BCD                  0x00000001U
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Month_Date_Definitions RTC Month Date Definitions (in BCD format)
+  * @{
+  */
+#define RTC_MONTH_JANUARY              ((uint8_t)0x01)
+#define RTC_MONTH_FEBRUARY             ((uint8_t)0x02)
+#define RTC_MONTH_MARCH                ((uint8_t)0x03)
+#define RTC_MONTH_APRIL                ((uint8_t)0x04)
+#define RTC_MONTH_MAY                  ((uint8_t)0x05)
+#define RTC_MONTH_JUNE                 ((uint8_t)0x06)
+#define RTC_MONTH_JULY                 ((uint8_t)0x07)
+#define RTC_MONTH_AUGUST               ((uint8_t)0x08)
+#define RTC_MONTH_SEPTEMBER            ((uint8_t)0x09)
+#define RTC_MONTH_OCTOBER              ((uint8_t)0x10)
+#define RTC_MONTH_NOVEMBER             ((uint8_t)0x11)
+#define RTC_MONTH_DECEMBER             ((uint8_t)0x12)
+/**
+  * @}
+  */
+
+/** @defgroup RTC_WeekDay_Definitions RTC WeekDay Definitions
+  * @{
+  */
+#define RTC_WEEKDAY_MONDAY             ((uint8_t)0x01)
+#define RTC_WEEKDAY_TUESDAY            ((uint8_t)0x02)
+#define RTC_WEEKDAY_WEDNESDAY          ((uint8_t)0x03)
+#define RTC_WEEKDAY_THURSDAY           ((uint8_t)0x04)
+#define RTC_WEEKDAY_FRIDAY             ((uint8_t)0x05)
+#define RTC_WEEKDAY_SATURDAY           ((uint8_t)0x06)
+#define RTC_WEEKDAY_SUNDAY             ((uint8_t)0x07)
+/**
+  * @}
+  */
+
+/** @defgroup RTC_AlarmDateWeekDay_Definitions RTC Alarm Date WeekDay Definitions
+  * @{
+  */
+#define RTC_ALARMDATEWEEKDAYSEL_DATE      0x00000000U
+#define RTC_ALARMDATEWEEKDAYSEL_WEEKDAY   RTC_ALRMAR_WDSEL
+/**
+  * @}
+  */
+
+/** @defgroup RTC_AlarmMask_Definitions RTC Alarm Mask Definitions
+  * @{
+  */
+#define RTC_ALARMMASK_NONE                0x00000000U
+#define RTC_ALARMMASK_DATEWEEKDAY         RTC_ALRMAR_MSK4
+#define RTC_ALARMMASK_HOURS               RTC_ALRMAR_MSK3
+#define RTC_ALARMMASK_MINUTES             RTC_ALRMAR_MSK2
+#define RTC_ALARMMASK_SECONDS             RTC_ALRMAR_MSK1
+#define RTC_ALARMMASK_ALL                 (RTC_ALARMMASK_DATEWEEKDAY | \
+                                           RTC_ALARMMASK_HOURS       | \
+                                           RTC_ALARMMASK_MINUTES     | \
+                                           RTC_ALARMMASK_SECONDS)
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Alarms_Definitions RTC Alarms Definitions
+  * @{
+  */
+#define RTC_ALARM_A                       RTC_CR_ALRAE
+#define RTC_ALARM_B                       RTC_CR_ALRBE
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Alarm_Sub_Seconds_Masks_Definitions RTC Alarm Sub Seconds Masks Definitions
+  * @{
+  */
+/*!< All Alarm SS fields are masked. There is no comparison on sub seconds for Alarm */
+#define RTC_ALARMSUBSECONDMASK_ALL         0x00000000U
+/*!< SS[14:1] are don't care in Alarm comparison. Only SS[0] is compared.     */
+#define RTC_ALARMSUBSECONDMASK_SS14_1      RTC_ALRMASSR_MASKSS_0
+/*!< SS[14:2] are don't care in Alarm comparison. Only SS[1:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_2      RTC_ALRMASSR_MASKSS_1
+/*!< SS[14:3] are don't care in Alarm comparison. Only SS[2:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_3      (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_1)
+/*!< SS[14:4] are don't care in Alarm comparison. Only SS[3:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_4      RTC_ALRMASSR_MASKSS_2
+/*!< SS[14:5] are don't care in Alarm comparison. Only SS[4:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_5      (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_2)
+/*!< SS[14:6] are don't care in Alarm comparison. Only SS[5:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_6      (RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_2)
+/*!< SS[14:7] are don't care in Alarm comparison. Only SS[6:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_7      (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_2)
+/*!< SS[14:8] are don't care in Alarm comparison. Only SS[7:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_8      RTC_ALRMASSR_MASKSS_3
+/*!< SS[14:9] are don't care in Alarm comparison. Only SS[8:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_9      (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:10] are don't care in Alarm comparison. Only SS[9:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14_10     (RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:11] are don't care in Alarm comparison. Only SS[10:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14_11     (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:12] are don't care in Alarm comparison. Only SS[11:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14_12     (RTC_ALRMASSR_MASKSS_2 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:13] are don't care in Alarm comparison. Only SS[12:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14_13     (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_2 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14] is don't care in Alarm comparison. Only SS[13:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14        (RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_2 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:0] are compared and must match to activate alarm. */
+#define RTC_ALARMSUBSECONDMASK_NONE        RTC_ALRMASSR_MASKSS
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Interrupts_Definitions RTC Interrupts Definitions
+  * @{
+  */
+#define RTC_IT_TS                         RTC_CR_TSIE         /*!< Enable Timestamp Interrupt               */
+#define RTC_IT_WUT                        RTC_CR_WUTIE        /*!< Enable Wakeup timer Interrupt            */
+#define RTC_IT_ALRB                       RTC_CR_ALRBIE       /*!< Enable Alarm B Interrupt                 */
+#define RTC_IT_ALRA                       RTC_CR_ALRAIE       /*!< Enable Alarm A Interrupt                 */
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Flags_Definitions RTC Flags Definitions
+  * @{
+  */
+#define RTC_FLAG_RECALPF                  RTC_ISR_RECALPF     /*!< Recalibration pending flag               */
+#if defined(RTC_TAMPER2_SUPPORT)
+#define RTC_FLAG_TAMP2F                   RTC_ISR_TAMP2F      /*!< Tamper 2 event flag                      */
+#endif /* RTC_TAMPER2_SUPPORT */
+#define RTC_FLAG_TAMP1F                   RTC_ISR_TAMP1F      /*!< Tamper 1 event flag                      */
+#define RTC_FLAG_TSOVF                    RTC_ISR_TSOVF       /*!< Timestamp overflow flag                  */
+#define RTC_FLAG_TSF                      RTC_ISR_TSF         /*!< Timestamp event flag                     */
+#define RTC_FLAG_WUTF                     RTC_ISR_WUTF        /*!< Wakeup timer event flag                  */
+#define RTC_FLAG_ALRBF                    RTC_ISR_ALRBF       /*!< Alarm B event flag                       */
+#define RTC_FLAG_ALRAF                    RTC_ISR_ALRAF       /*!< Alarm A event flag                       */
+#define RTC_FLAG_INITF                    RTC_ISR_INITF       /*!< RTC in initialization mode flag          */
+#define RTC_FLAG_RSF                      RTC_ISR_RSF         /*!< Register synchronization flag            */
+#define RTC_FLAG_INITS                    RTC_ISR_INITS       /*!< RTC initialization status flag           */
+#define RTC_FLAG_SHPF                     RTC_ISR_SHPF        /*!< Shift operation pending flag             */
+#define RTC_FLAG_WUTWF                    RTC_ISR_WUTWF       /*!< WUTR register write allowance flag       */
+#define RTC_FLAG_ALRBWF                   RTC_ISR_ALRBWF      /*!< ALRMBR register write allowance flag     */
+#define RTC_FLAG_ALRAWF                   RTC_ISR_ALRAWF      /*!< ALRMAR register write allowance flag     */
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Exported macros -----------------------------------------------------------*/
+
+/** @defgroup RTC_Exported_Macros RTC Exported Macros
+  * @{
+  */
+
+/** @brief Reset RTC handle state
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+#define __HAL_RTC_RESET_HANDLE_STATE(__HANDLE__) do {                                            \
+                                                      (__HANDLE__)->State = HAL_RTC_STATE_RESET; \
+                                                      (__HANDLE__)->MspInitCallback = NULL;      \
+                                                      (__HANDLE__)->MspDeInitCallback = NULL;    \
+                                                    } while(0U)
+#else
+#define __HAL_RTC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_RTC_STATE_RESET)
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+/**
+  * @brief  Disable the write protection for RTC registers.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_WRITEPROTECTION_DISABLE(__HANDLE__) do {                                       \
+                                                           (__HANDLE__)->Instance->WPR = 0xCAU;  \
+                                                           (__HANDLE__)->Instance->WPR = 0x53U;  \
+                                                         } while(0U)
+
+/**
+  * @brief  Enable the write protection for RTC registers.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_WRITEPROTECTION_ENABLE(__HANDLE__) do {                                       \
+                                                          (__HANDLE__)->Instance->WPR = 0xFFU;  \
+                                                        } while(0U)
+
+
+/**
+  * @brief  Enable the RTC ALARMA peripheral.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_ALARMA_ENABLE(__HANDLE__)                           ((__HANDLE__)->Instance->CR |= (RTC_CR_ALRAE))
+
+/**
+  * @brief  Disable the RTC ALARMA peripheral.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_ALARMA_DISABLE(__HANDLE__)                          ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ALRAE))
+
+/**
+  * @brief  Enable the RTC ALARMB peripheral.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_ALARMB_ENABLE(__HANDLE__)                           ((__HANDLE__)->Instance->CR |= (RTC_CR_ALRBE))
+
+/**
+  * @brief  Disable the RTC ALARMB peripheral.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_ALARMB_DISABLE(__HANDLE__)                          ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ALRBE))
+
+/**
+  * @brief  Enable the RTC Alarm interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Alarm interrupt sources to be enabled or disabled.
+  *          This parameter can be any combination of the following values:
+  *             @arg RTC_IT_ALRA: Alarm A interrupt
+  *             @arg RTC_IT_ALRB: Alarm B interrupt
+  * @retval None
+  */
+#define __HAL_RTC_ALARM_ENABLE_IT(__HANDLE__, __INTERRUPT__)          ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
+
+/**
+  * @brief  Disable the RTC Alarm interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Alarm interrupt sources to be enabled or disabled.
+  *          This parameter can be any combination of the following values:
+  *             @arg RTC_IT_ALRA: Alarm A interrupt
+  *             @arg RTC_IT_ALRB: Alarm B interrupt
+  * @retval None
+  */
+#define __HAL_RTC_ALARM_DISABLE_IT(__HANDLE__, __INTERRUPT__)         ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
+
+/**
+  * @brief  Check whether the specified RTC Alarm interrupt has occurred or not.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Alarm interrupt to check.
+  *         This parameter can be:
+  *            @arg RTC_IT_ALRA: Alarm A interrupt
+  *            @arg RTC_IT_ALRB: Alarm B interrupt
+  * @retval None
+  */
+#define __HAL_RTC_ALARM_GET_IT(__HANDLE__, __INTERRUPT__)           (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
+
+/**
+  * @brief  Get the selected RTC Alarm's flag status.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __FLAG__ specifies the RTC Alarm Flag to check.
+  *         This parameter can be:
+  *            @arg RTC_FLAG_ALRAF: Alarm A interrupt flag
+  *            @arg RTC_FLAG_ALRAWF: Alarm A 'write allowed' flag
+  *            @arg RTC_FLAG_ALRBF: Alarm B interrupt flag
+  *            @arg RTC_FLAG_ALRBWF: Alarm B 'write allowed' flag
+  * @retval None
+  */
+#define __HAL_RTC_ALARM_GET_FLAG(__HANDLE__, __FLAG__)                (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U)
+
+/**
+  * @brief  Clear the RTC Alarm's pending flags.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __FLAG__ specifies the RTC Alarm flag to be cleared.
+  *          This parameter can be:
+  *             @arg RTC_FLAG_ALRAF
+  *             @arg RTC_FLAG_ALRBF
+  * @retval None
+  */
+#define __HAL_RTC_ALARM_CLEAR_FLAG(__HANDLE__, __FLAG__)                  ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
+
+/**
+  * @brief  Check whether the specified RTC Alarm interrupt has been enabled or not.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Alarm interrupt sources to check.
+  *         This parameter can be:
+  *            @arg RTC_IT_ALRA: Alarm A interrupt
+  *            @arg RTC_IT_ALRB: Alarm B interrupt
+  * @retval None
+  */
+#define __HAL_RTC_ALARM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)     (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
+
+/**
+  * @brief  Enable interrupt on the RTC Alarm associated EXTI line.
+  * @retval None
+  */
+#define __HAL_RTC_ALARM_EXTI_ENABLE_IT()            (EXTI->IMR |= RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief  Disable interrupt on the RTC Alarm associated EXTI line.
+  * @retval None
+  */
+#define __HAL_RTC_ALARM_EXTI_DISABLE_IT()           (EXTI->IMR &= ~RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief  Enable event on the RTC Alarm associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_ENABLE_EVENT()          (EXTI->EMR |= RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief  Disable event on the RTC Alarm associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_DISABLE_EVENT()         (EXTI->EMR &= ~RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief  Enable falling edge trigger on the RTC Alarm associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_ENABLE_FALLING_EDGE()   (EXTI->FTSR |= RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief  Disable falling edge trigger on the RTC Alarm associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_DISABLE_FALLING_EDGE()  (EXTI->FTSR &= ~RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief  Enable rising edge trigger on the RTC Alarm associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE()    (EXTI->RTSR |= RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief  Disable rising edge trigger on the RTC Alarm associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief  Enable rising & falling edge trigger on the RTC Alarm associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_FALLING_EDGE() do {                                             \
+                                                               __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE();  \
+                                                               __HAL_RTC_ALARM_EXTI_ENABLE_FALLING_EDGE(); \
+                                                             } while(0U)
+
+/**
+  * @brief  Disable rising & falling edge trigger on the RTC Alarm associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_FALLING_EDGE() do {                                              \
+                                                                __HAL_RTC_ALARM_EXTI_DISABLE_RISING_EDGE();  \
+                                                                __HAL_RTC_ALARM_EXTI_DISABLE_FALLING_EDGE(); \
+                                                              } while(0U)
+
+/**
+  * @brief Check whether the RTC Alarm associated EXTI line interrupt flag is set or not.
+  * @retval Line Status.
+  */
+#define __HAL_RTC_ALARM_EXTI_GET_FLAG()              (EXTI->PR & RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief Clear the RTC Alarm associated EXTI line flag.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_CLEAR_FLAG()            (EXTI->PR = RTC_EXTI_LINE_ALARM_EVENT)
+
+/**
+  * @brief Generate a Software interrupt on RTC Alarm associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_ALARM_EXTI_GENERATE_SWIT()         (EXTI->SWIER |= RTC_EXTI_LINE_ALARM_EVENT)
+/**
+  * @}
+  */
+
+/* Include RTC HAL Extended module */
+#include "stm32f4xx_hal_rtc_ex.h"
+
+/* Exported functions --------------------------------------------------------*/
+
+/** @addtogroup RTC_Exported_Functions
+  * @{
+  */
+
+/** @addtogroup RTC_Exported_Functions_Group1
+  * @{
+  */
+/* Initialization and de-initialization functions  ****************************/
+HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc);
+
+/* Callbacks Register/UnRegister functions  ***********************************/
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+HAL_StatusTypeDef HAL_RTC_RegisterCallback(RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID, pRTC_CallbackTypeDef pCallback);
+HAL_StatusTypeDef HAL_RTC_UnRegisterCallback(RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+/**
+  * @}
+  */
+
+/** @addtogroup RTC_Exported_Functions_Group2
+  * @{
+  */
+/* RTC Time and Date functions ************************************************/
+HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
+HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
+HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
+HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
+/**
+  * @}
+  */
+
+/** @addtogroup RTC_Exported_Functions_Group3
+  * @{
+  */
+/* RTC Alarm functions ********************************************************/
+HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
+HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
+HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm);
+HAL_StatusTypeDef HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format);
+void              HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+void              HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc);
+/**
+  * @}
+  */
+
+/** @addtogroup RTC_Exported_Functions_Group4
+  * @{
+  */
+/* Peripheral Control functions ***********************************************/
+HAL_StatusTypeDef   HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc);
+
+/* RTC Daylight Saving Time functions *****************************************/
+void              HAL_RTC_DST_Add1Hour(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_DST_Sub1Hour(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_DST_SetStoreOperation(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_DST_ClearStoreOperation(RTC_HandleTypeDef *hrtc);
+uint32_t          HAL_RTC_DST_ReadStoreOperation(RTC_HandleTypeDef *hrtc);
+/**
+  * @}
+  */
+
+/** @addtogroup RTC_Exported_Functions_Group5
+  * @{
+  */
+/* Peripheral State functions *************************************************/
+HAL_RTCStateTypeDef HAL_RTC_GetState(RTC_HandleTypeDef *hrtc);
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Private types -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private constants ---------------------------------------------------------*/
+
+/** @defgroup RTC_Private_Constants RTC Private Constants
+  * @{
+  */
+/* Masks Definition */
+#define RTC_TR_RESERVED_MASK    ((uint32_t)(RTC_TR_HT  | RTC_TR_HU  | \
+                                            RTC_TR_MNT | RTC_TR_MNU | \
+                                            RTC_TR_ST  | RTC_TR_SU  | \
+                                            RTC_TR_PM))
+#define RTC_DR_RESERVED_MASK    ((uint32_t)(RTC_DR_YT | RTC_DR_YU | \
+                                            RTC_DR_MT | RTC_DR_MU | \
+                                            RTC_DR_DT | RTC_DR_DU | \
+                                            RTC_DR_WDU))
+#define RTC_INIT_MASK           0xFFFFFFFFU
+#define RTC_RSF_MASK            ((uint32_t)~(RTC_ISR_INIT | RTC_ISR_RSF))
+#define RTC_FLAGS_MASK          ((uint32_t)(RTC_FLAG_INITF   | RTC_FLAG_INITS  | \
+                                            RTC_FLAG_ALRAF   | RTC_FLAG_ALRAWF | \
+                                            RTC_FLAG_ALRBF   | RTC_FLAG_ALRBWF | \
+                                            RTC_FLAG_WUTF    | RTC_FLAG_WUTWF  | \
+                                            RTC_FLAG_RECALPF | RTC_FLAG_SHPF   | \
+                                            RTC_FLAG_TSF     | RTC_FLAG_TSOVF  | \
+                                            RTC_FLAG_RSF     | RTC_TAMPER_FLAGS_MASK))
+
+#define RTC_TIMEOUT_VALUE       1000U
+
+#define RTC_EXTI_LINE_ALARM_EVENT  EXTI_IMR_MR17  /*!< External interrupt line 17 Connected to the RTC Alarm event */
+/**
+  * @}
+  */
+
+/* Private macros ------------------------------------------------------------*/
+
+/** @defgroup RTC_Private_Macros RTC Private Macros
+  * @{
+  */
+
+/** @defgroup RTC_IS_RTC_Definitions RTC Private macros to check input parameters
+  * @{
+  */
+#define IS_RTC_HOUR_FORMAT(FORMAT)     (((FORMAT) == RTC_HOURFORMAT_12) || \
+                                        ((FORMAT) == RTC_HOURFORMAT_24))
+
+#define IS_RTC_OUTPUT(OUTPUT) (((OUTPUT) == RTC_OUTPUT_DISABLE) || \
+                               ((OUTPUT) == RTC_OUTPUT_ALARMA)  || \
+                               ((OUTPUT) == RTC_OUTPUT_ALARMB)  || \
+                               ((OUTPUT) == RTC_OUTPUT_WAKEUP))
+
+#define IS_RTC_OUTPUT_POL(POL) (((POL) == RTC_OUTPUT_POLARITY_HIGH) || \
+                                ((POL) == RTC_OUTPUT_POLARITY_LOW))
+
+#define IS_RTC_OUTPUT_TYPE(TYPE) (((TYPE) == RTC_OUTPUT_TYPE_OPENDRAIN) || \
+                                  ((TYPE) == RTC_OUTPUT_TYPE_PUSHPULL))
+
+#define IS_RTC_ASYNCH_PREDIV(PREDIV)   ((PREDIV) <= 0x7FU)
+#define IS_RTC_SYNCH_PREDIV(PREDIV)    ((PREDIV) <= 0x7FFFU)
+
+#define IS_RTC_HOUR12(HOUR)            (((HOUR) > 0U) && ((HOUR) <= 12U))
+#define IS_RTC_HOUR24(HOUR)            ((HOUR) <= 23U)
+#define IS_RTC_MINUTES(MINUTES)        ((MINUTES) <= 59U)
+#define IS_RTC_SECONDS(SECONDS)        ((SECONDS) <= 59U)
+
+#define IS_RTC_HOURFORMAT12(PM)  (((PM) == RTC_HOURFORMAT12_AM) || \
+                                  ((PM) == RTC_HOURFORMAT12_PM))
+
+#define IS_RTC_DAYLIGHT_SAVING(SAVE) (((SAVE) == RTC_DAYLIGHTSAVING_SUB1H) || \
+                                      ((SAVE) == RTC_DAYLIGHTSAVING_ADD1H) || \
+                                      ((SAVE) == RTC_DAYLIGHTSAVING_NONE))
+
+#define IS_RTC_STORE_OPERATION(OPERATION) (((OPERATION) == RTC_STOREOPERATION_RESET) || \
+                                           ((OPERATION) == RTC_STOREOPERATION_SET))
+
+#define IS_RTC_FORMAT(FORMAT) (((FORMAT) == RTC_FORMAT_BIN) || ((FORMAT) == RTC_FORMAT_BCD))
+
+#define IS_RTC_YEAR(YEAR)              ((YEAR) <= 99U)
+#define IS_RTC_MONTH(MONTH)            (((MONTH) >= 1U) && ((MONTH) <= 12U))
+#define IS_RTC_DATE(DATE)              (((DATE) >= 1U) && ((DATE) <= 31U))
+
+#define IS_RTC_WEEKDAY(WEEKDAY) (((WEEKDAY) == RTC_WEEKDAY_MONDAY)    || \
+                                 ((WEEKDAY) == RTC_WEEKDAY_TUESDAY)   || \
+                                 ((WEEKDAY) == RTC_WEEKDAY_WEDNESDAY) || \
+                                 ((WEEKDAY) == RTC_WEEKDAY_THURSDAY)  || \
+                                 ((WEEKDAY) == RTC_WEEKDAY_FRIDAY)    || \
+                                 ((WEEKDAY) == RTC_WEEKDAY_SATURDAY)  || \
+                                 ((WEEKDAY) == RTC_WEEKDAY_SUNDAY))
+
+#define IS_RTC_ALARM_DATE_WEEKDAY_DATE(DATE) (((DATE) > 0U) && ((DATE) <= 31U))
+
+#define IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(WEEKDAY) (((WEEKDAY) == RTC_WEEKDAY_MONDAY)    || \
+                                                    ((WEEKDAY) == RTC_WEEKDAY_TUESDAY)   || \
+                                                    ((WEEKDAY) == RTC_WEEKDAY_WEDNESDAY) || \
+                                                    ((WEEKDAY) == RTC_WEEKDAY_THURSDAY)  || \
+                                                    ((WEEKDAY) == RTC_WEEKDAY_FRIDAY)    || \
+                                                    ((WEEKDAY) == RTC_WEEKDAY_SATURDAY)  || \
+                                                    ((WEEKDAY) == RTC_WEEKDAY_SUNDAY))
+
+#define IS_RTC_ALARM_DATE_WEEKDAY_SEL(SEL) (((SEL) == RTC_ALARMDATEWEEKDAYSEL_DATE) || \
+                                            ((SEL) == RTC_ALARMDATEWEEKDAYSEL_WEEKDAY))
+
+#define IS_RTC_ALARM_MASK(MASK)  (((MASK) & ((uint32_t)~RTC_ALARMMASK_ALL)) == 0U)
+
+#define IS_RTC_ALARM(ALARM)      (((ALARM) == RTC_ALARM_A) || ((ALARM) == RTC_ALARM_B))
+
+#define IS_RTC_ALARM_SUB_SECOND_VALUE(VALUE) ((VALUE) <= RTC_ALRMASSR_SS)
+
+#define IS_RTC_ALARM_SUB_SECOND_MASK(MASK)   (((MASK) == RTC_ALARMSUBSECONDMASK_ALL)     || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_1)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_2)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_3)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_4)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_5)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_6)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_7)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_8)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_9)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_10) || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_11) || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_12) || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_13) || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14)    || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_NONE))
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Private functions ---------------------------------------------------------*/
+
+/** @defgroup RTC_Private_Functions RTC Private Functions
+  * @{
+  */
+HAL_StatusTypeDef  RTC_EnterInitMode(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef  RTC_ExitInitMode(RTC_HandleTypeDef *hrtc);
+uint8_t            RTC_ByteToBcd2(uint8_t number);
+uint8_t            RTC_Bcd2ToByte(uint8_t number);
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STM32F4xx_HAL_RTC_H */

+ 1079 - 0
Soft/STM32/Proto/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h

@@ -0,0 +1,1079 @@
+/**
+  ******************************************************************************
+  * @file    stm32f4xx_hal_rtc_ex.h
+  * @author  MCD Application Team
+  * @brief   Header file of RTC HAL Extended module.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef STM32F4xx_HAL_RTC_EX_H
+#define STM32F4xx_HAL_RTC_EX_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+
+#include "stm32f4xx_hal_def.h"
+
+/** @addtogroup STM32F4xx_HAL_Driver
+  * @{
+  */
+
+/** @addtogroup RTCEx
+  * @{
+  */
+
+/* Exported types ------------------------------------------------------------*/
+
+/** @defgroup RTCEx_Exported_Types RTCEx Exported Types
+  * @{
+  */
+
+/**
+  * @brief  RTC Tamper structure definition
+  */
+typedef struct
+{
+  uint32_t Tamper;                      /*!< Specifies the Tamper Pin.
+                                             This parameter can be a value of @ref RTCEx_Tamper_Pin_Definitions */
+
+  uint32_t PinSelection;                /*!< Specifies the Tamper Pin.
+                                             This parameter can be a value of @ref RTCEx_Tamper_Pin_Selection */
+
+  uint32_t Trigger;                     /*!< Specifies the Tamper Trigger.
+                                             This parameter can be a value of @ref RTCEx_Tamper_Trigger_Definitions */
+
+  uint32_t Filter;                      /*!< Specifies the RTC Filter Tamper.
+                                             This parameter can be a value of @ref RTCEx_Tamper_Filter_Definitions */
+
+  uint32_t SamplingFrequency;           /*!< Specifies the sampling frequency.
+                                             This parameter can be a value of @ref RTCEx_Tamper_Sampling_Frequencies_Definitions */
+
+  uint32_t PrechargeDuration;           /*!< Specifies the Precharge Duration .
+                                             This parameter can be a value of @ref RTCEx_Tamper_Pin_Precharge_Duration_Definitions */
+
+  uint32_t TamperPullUp;                /*!< Specifies the Tamper PullUp .
+                                             This parameter can be a value of @ref RTCEx_Tamper_Pull_Up_Definitions */
+
+  uint32_t TimeStampOnTamperDetection;  /*!< Specifies the TimeStampOnTamperDetection.
+                                             This parameter can be a value of @ref RTCEx_Tamper_TimeStampOnTamperDetection_Definitions */
+} RTC_TamperTypeDef;
+/**
+  * @}
+  */
+
+/* Exported constants --------------------------------------------------------*/
+
+/** @defgroup RTCEx_Exported_Constants RTCEx Exported Constants
+  * @{
+  */
+
+/** @defgroup RTCEx_Backup_Registers_Definitions RTCEx Backup Registers Definitions
+  * @{
+  */
+#define RTC_BKP_DR0                       0x00000000U
+#define RTC_BKP_DR1                       0x00000001U
+#define RTC_BKP_DR2                       0x00000002U
+#define RTC_BKP_DR3                       0x00000003U
+#define RTC_BKP_DR4                       0x00000004U
+#define RTC_BKP_DR5                       0x00000005U
+#define RTC_BKP_DR6                       0x00000006U
+#define RTC_BKP_DR7                       0x00000007U
+#define RTC_BKP_DR8                       0x00000008U
+#define RTC_BKP_DR9                       0x00000009U
+#define RTC_BKP_DR10                      0x0000000AU
+#define RTC_BKP_DR11                      0x0000000BU
+#define RTC_BKP_DR12                      0x0000000CU
+#define RTC_BKP_DR13                      0x0000000DU
+#define RTC_BKP_DR14                      0x0000000EU
+#define RTC_BKP_DR15                      0x0000000FU
+#define RTC_BKP_DR16                      0x00000010U
+#define RTC_BKP_DR17                      0x00000011U
+#define RTC_BKP_DR18                      0x00000012U
+#define RTC_BKP_DR19                      0x00000013U
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Timestamp_Edges_Definitions RTCEx Timestamp Edges Definitions
+  * @{
+  */
+#define RTC_TIMESTAMPEDGE_RISING          0x00000000U
+#define RTC_TIMESTAMPEDGE_FALLING         RTC_CR_TSEDGE
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Timestamp_Pin_Selection RTC Timestamp Pin Selection
+  * @{
+  */
+#define RTC_TIMESTAMPPIN_DEFAULT            0x00000000U
+#if defined(RTC_AF2_SUPPORT)
+#define RTC_TIMESTAMPPIN_POS1               RTC_TAFCR_TSINSEL
+#endif /* RTC_AF2_SUPPORT */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_Pin_Definitions RTCEx Tamper Pins Definitions
+  * @{
+  */
+#define RTC_TAMPER_1                    RTC_TAFCR_TAMP1E
+#if defined(RTC_TAMPER2_SUPPORT)
+#define RTC_TAMPER_2                    RTC_TAFCR_TAMP2E
+#endif /* RTC_TAMPER2_SUPPORT */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_Pin_Selection RTC tamper Pins Selection
+  * @{
+  */
+#define RTC_TAMPERPIN_DEFAULT               0x00000000U
+#if defined(RTC_AF2_SUPPORT)
+#define RTC_TAMPERPIN_POS1                  RTC_TAFCR_TAMP1INSEL
+#endif /* RTC_AF2_SUPPORT */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_Interrupt_Definitions RTCEx Tamper Interrupt Definitions
+  * @{
+  */
+#define RTC_IT_TAMP                       RTC_TAFCR_TAMPIE   /*!< Enable global Tamper Interrupt           */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_Trigger_Definitions RTCEx Tamper Triggers Definitions
+  * @{
+  */
+#define RTC_TAMPERTRIGGER_RISINGEDGE       0x00000000U
+#define RTC_TAMPERTRIGGER_FALLINGEDGE      RTC_TAFCR_TAMP1TRG
+#define RTC_TAMPERTRIGGER_LOWLEVEL         RTC_TAMPERTRIGGER_RISINGEDGE
+#define RTC_TAMPERTRIGGER_HIGHLEVEL        RTC_TAMPERTRIGGER_FALLINGEDGE
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_Filter_Definitions RTCEx Tamper Filter Definitions
+  * @{
+  */
+#define RTC_TAMPERFILTER_DISABLE   0x00000000U             /*!< Tamper filter is disabled */
+
+#define RTC_TAMPERFILTER_2SAMPLE   RTC_TAFCR_TAMPFLT_0    /*!< Tamper is activated after 2
+                                                                 consecutive samples at the active level */
+#define RTC_TAMPERFILTER_4SAMPLE   RTC_TAFCR_TAMPFLT_1    /*!< Tamper is activated after 4
+                                                                 consecutive samples at the active level */
+#define RTC_TAMPERFILTER_8SAMPLE   RTC_TAFCR_TAMPFLT      /*!< Tamper is activated after 8
+                                                                 consecutive samples at the active level */
+#define RTC_TAMPERFILTER_MASK      RTC_TAFCR_TAMPFLT      /*!< Masking all bits except those of
+                                                                 field TAMPFLT                           */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_Sampling_Frequencies_Definitions RTCEx Tamper Sampling Frequencies Definitions
+  * @{
+  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768  0x00000000U                                     /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 32768 */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384  RTC_TAFCR_TAMPFREQ_0                           /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 16384 */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192   RTC_TAFCR_TAMPFREQ_1                           /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 8192  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096   (RTC_TAFCR_TAMPFREQ_0 | RTC_TAFCR_TAMPFREQ_1) /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 4096  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048   RTC_TAFCR_TAMPFREQ_2                           /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 2048  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024   (RTC_TAFCR_TAMPFREQ_0 | RTC_TAFCR_TAMPFREQ_2) /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 1024  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512    (RTC_TAFCR_TAMPFREQ_1 | RTC_TAFCR_TAMPFREQ_2) /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 512   */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256    RTC_TAFCR_TAMPFREQ                             /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 256   */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK      RTC_TAFCR_TAMPFREQ                             /*!< Masking all bits except those of
+                                                                                                      field TAMPFREQ                     */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_Pin_Precharge_Duration_Definitions RTCEx Tamper Pin Precharge Duration Definitions
+  * @{
+  */
+#define RTC_TAMPERPRECHARGEDURATION_1RTCCLK     0x00000000U             /*!< Tamper pins are pre-charged before
+                                                                              sampling during 1 RTCCLK cycle  */
+#define RTC_TAMPERPRECHARGEDURATION_2RTCCLK     RTC_TAFCR_TAMPPRCH_0   /*!< Tamper pins are pre-charged before
+                                                                              sampling during 2 RTCCLK cycles */
+#define RTC_TAMPERPRECHARGEDURATION_4RTCCLK     RTC_TAFCR_TAMPPRCH_1   /*!< Tamper pins are pre-charged before
+                                                                              sampling during 4 RTCCLK cycles */
+#define RTC_TAMPERPRECHARGEDURATION_8RTCCLK     RTC_TAFCR_TAMPPRCH     /*!< Tamper pins are pre-charged before
+                                                                              sampling during 8 RTCCLK cycles */
+#define RTC_TAMPERPRECHARGEDURATION_MASK        RTC_TAFCR_TAMPPRCH     /*!< Masking all bits except those of
+                                                                              field TAMPPRCH                  */
+/**
+  * @}
+  */
+
+/** @defgroup  RTCEx_Tamper_Pull_Up_Definitions RTCEx Tamper Pull Up Definitions
+  * @{
+  */
+#define RTC_TAMPER_PULLUP_ENABLE  0x00000000U           /*!< Tamper pins are pre-charged before sampling     */
+#define RTC_TAMPER_PULLUP_DISABLE RTC_TAFCR_TAMPPUDIS   /*!< Tamper pins are not pre-charged before sampling */
+#define RTC_TAMPER_PULLUP_MASK    RTC_TAFCR_TAMPPUDIS   /*!< Masking all bits except bit TAMPPUDIS           */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_TimeStampOnTamperDetection_Definitions RTCEx Tamper TimeStamp On Tamper Detection Definitions
+  * @{
+  */
+#define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE  RTC_TAFCR_TAMPTS  /*!< TimeStamp on Tamper Detection event saved        */
+#define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE 0x00000000U       /*!< TimeStamp on Tamper Detection event is not saved */
+#define RTC_TIMESTAMPONTAMPERDETECTION_MASK    RTC_TAFCR_TAMPTS  /*!< Masking all bits except bit TAMPTS               */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Wakeup_Timer_Definitions RTCEx Wakeup Timer Definitions
+  * @{
+  */
+#define RTC_WAKEUPCLOCK_RTCCLK_DIV16        0x00000000U
+#define RTC_WAKEUPCLOCK_RTCCLK_DIV8         RTC_CR_WUCKSEL_0
+#define RTC_WAKEUPCLOCK_RTCCLK_DIV4         RTC_CR_WUCKSEL_1
+#define RTC_WAKEUPCLOCK_RTCCLK_DIV2         (RTC_CR_WUCKSEL_0 | RTC_CR_WUCKSEL_1)
+#define RTC_WAKEUPCLOCK_CK_SPRE_16BITS      RTC_CR_WUCKSEL_2
+#define RTC_WAKEUPCLOCK_CK_SPRE_17BITS      (RTC_CR_WUCKSEL_1 | RTC_CR_WUCKSEL_2)
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Coarse_Calibration_Definitions RTCEx Coarse Calib Definitions
+  * @{
+  */
+#define RTC_CALIBSIGN_POSITIVE            0x00000000U
+#define RTC_CALIBSIGN_NEGATIVE            RTC_CALIBR_DCS
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Smooth_calib_period_Definitions RTCEx Smooth Calib Period Definitions
+  * @{
+  */
+#define RTC_SMOOTHCALIB_PERIOD_32SEC   0x00000000U      /*!< If RTCCLK = 32768 Hz, smooth calibration
+                                                              period is 32s, otherwise 2^20 RTCCLK pulses */
+#define RTC_SMOOTHCALIB_PERIOD_16SEC   RTC_CALR_CALW16  /*!< If RTCCLK = 32768 Hz, smooth calibration
+                                                              period is 16s, otherwise 2^19 RTCCLK pulses */
+#define RTC_SMOOTHCALIB_PERIOD_8SEC    RTC_CALR_CALW8   /*!< If RTCCLK = 32768 Hz, smooth calibration
+                                                              period is 8s, otherwise 2^18 RTCCLK pulses  */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Smooth_calib_Plus_pulses_Definitions RTCEx Smooth Calib Plus Pulses Definitions
+  * @{
+  */
+#define RTC_SMOOTHCALIB_PLUSPULSES_SET    RTC_CALR_CALP           /*!< The number of RTCCLK pulses added
+                                                                        during a X -second window = Y - CALM[8:0]
+                                                                        with Y = 512, 256, 128 when X = 32, 16, 8 */
+#define RTC_SMOOTHCALIB_PLUSPULSES_RESET  0x00000000U             /*!< The number of RTCCLK pulses subbstited
+                                                                        during a 32-second window = CALM[8:0] */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Add_1_Second_Parameter_Definitions RTCEx Add 1 Second Parameter Definitions
+  * @{
+  */
+#define RTC_SHIFTADD1S_RESET      0x00000000U
+#define RTC_SHIFTADD1S_SET        RTC_SHIFTR_ADD1S
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Calib_Output_selection_Definitions RTCEx Calib Output Selection Definitions
+  * @{
+  */
+#define RTC_CALIBOUTPUT_512HZ            0x00000000U
+#define RTC_CALIBOUTPUT_1HZ              RTC_CR_COSEL
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Exported macros -----------------------------------------------------------*/
+
+/** @defgroup RTCEx_Exported_Macros RTCEx Exported Macros
+  * @{
+  */
+
+/* ---------------------------------WAKEUPTIMER-------------------------------*/
+
+/** @defgroup RTCEx_WakeUp_Timer RTCEx WakeUp Timer
+  * @{
+  */
+
+/**
+  * @brief  Enable the RTC WakeUp Timer peripheral.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_ENABLE(__HANDLE__)                      ((__HANDLE__)->Instance->CR |= (RTC_CR_WUTE))
+
+/**
+  * @brief  Disable the RTC Wakeup Timer peripheral.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_DISABLE(__HANDLE__)                     ((__HANDLE__)->Instance->CR &= ~(RTC_CR_WUTE))
+
+/**
+  * @brief  Enable the RTC Wakeup Timer interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Wakeup Timer interrupt sources to be enabled or disabled.
+  *         This parameter can be:
+  *            @arg RTC_IT_WUT: Wakeup Timer interrupt
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_ENABLE_IT(__HANDLE__, __INTERRUPT__)    ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
+
+/**
+  * @brief  Disable the RTC Wakeup Timer interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Wakeup Timer interrupt sources to be enabled or disabled.
+  *         This parameter can be:
+  *            @arg RTC_IT_WUT: Wakeup Timer interrupt
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_DISABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
+
+/**
+  * @brief  Check whether the specified RTC Wakeup Timer interrupt has occurred or not.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Wakeup Timer interrupt to check.
+  *         This parameter can be:
+  *            @arg RTC_IT_WUT: Wakeup Timer interrupt
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__)          (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
+
+/**
+  * @brief  Check whether the specified RTC Wakeup timer interrupt has been enabled or not.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Wakeup timer interrupt sources to check.
+  *         This parameter can be:
+  *            @arg RTC_IT_WUT: WakeUpTimer interrupt
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)   (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
+
+/**
+  * @brief  Get the selected RTC Wakeup Timer's flag status.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __FLAG__ specifies the RTC Wakeup Timer flag to check.
+  *          This parameter can be:
+  *             @arg RTC_FLAG_WUTF: Wakeup Timer interrupt flag
+  *             @arg RTC_FLAG_WUTWF: Wakeup Timer 'write allowed' flag
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__)          (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
+
+/**
+  * @brief  Clear the RTC Wakeup timer's pending flags.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __FLAG__ specifies the RTC Wakeup Timer Flag to clear.
+  *         This parameter can be:
+  *             @arg RTC_FLAG_WUTF: Wakeup Timer interrupt Flag
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__)            ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
+
+/**
+  * @brief  Enable interrupt on the RTC Wakeup Timer associated EXTI line.
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT()       (EXTI->IMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief  Disable interrupt on the RTC Wakeup Timer associated EXTI line.
+  * @retval None
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT()      (EXTI->IMR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief  Enable event on the RTC Wakeup Timer associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT()    (EXTI->EMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief  Disable event on the RTC Wakeup Timer associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT()   (EXTI->EMR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief  Enable falling edge trigger on the RTC Wakeup Timer associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE()   (EXTI->FTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief  Disable falling edge trigger on the RTC Wakeup Timer associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE()  (EXTI->FTSR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief  Enable rising edge trigger on the RTC Wakeup Timer associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE()    (EXTI->RTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief  Disable rising edge trigger on the RTC Wakeup Timer associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief  Enable rising & falling edge trigger on the RTC Wakeup Timer associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() do {                                                   \
+                                                                     __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();  \
+                                                                     __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE(); \
+                                                                   } while(0U)
+
+/**
+  * @brief  Disable rising & falling edge trigger on the RTC Wakeup Timer associated EXTI line.
+  * This parameter can be:
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() do {                                                    \
+                                                                      __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();  \
+                                                                      __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE(); \
+                                                                    } while(0U)
+
+/**
+  * @brief Check whether the RTC Wakeup Timer associated EXTI line interrupt flag is set or not.
+  * @retval Line Status.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG()              (EXTI->PR & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief Clear the RTC Wakeup Timer associated EXTI line flag.
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG()            (EXTI->PR = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @brief Generate a Software interrupt on the RTC Wakeup Timer associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT()         (EXTI->SWIER |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
+
+/**
+  * @}
+  */
+
+/* ---------------------------------TIMESTAMP---------------------------------*/
+
+/** @defgroup RTCEx_Timestamp RTCEx Timestamp
+  * @{
+  */
+
+/**
+  * @brief  Enable the RTC Timestamp peripheral.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_TIMESTAMP_ENABLE(__HANDLE__)                        ((__HANDLE__)->Instance->CR |= (RTC_CR_TSE))
+
+/**
+  * @brief  Disable the RTC Timestamp peripheral.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_TIMESTAMP_DISABLE(__HANDLE__)                       ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TSE))
+
+/**
+  * @brief  Enable the RTC Timestamp interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Timestamp interrupt sources to be enabled or disabled.
+  *         This parameter can be:
+  *            @arg RTC_IT_TS: TimeStamp interrupt
+  * @retval None
+  */
+#define __HAL_RTC_TIMESTAMP_ENABLE_IT(__HANDLE__, __INTERRUPT__)      ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
+
+/**
+  * @brief  Disable the RTC Timestamp interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Timestamp interrupt sources to be enabled or disabled.
+  *         This parameter can be:
+  *            @arg RTC_IT_TS: TimeStamp interrupt
+  * @retval None
+  */
+#define __HAL_RTC_TIMESTAMP_DISABLE_IT(__HANDLE__, __INTERRUPT__)     ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
+
+/**
+  * @brief  Check whether the specified RTC Timestamp interrupt has occurred or not.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Timestamp interrupt to check.
+  *         This parameter can be:
+  *            @arg RTC_IT_TS: TimeStamp interrupt
+  * @retval None
+  */
+#define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__)         (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
+
+/**
+  * @brief  Check whether the specified RTC Timestamp interrupt has been enabled or not.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Timestamp interrupt source to check.
+  *         This parameter can be:
+  *            @arg RTC_IT_TS: TimeStamp interrupt
+  * @retval None
+  */
+#define __HAL_RTC_TIMESTAMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)     (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
+
+/**
+  * @brief  Get the selected RTC Timestamp's flag status.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __FLAG__ specifies the RTC Timestamp flag to check.
+  *         This parameter can be:
+  *            @arg RTC_FLAG_TSF: Timestamp interrupt flag
+  *            @arg RTC_FLAG_TSOVF: Timestamp overflow flag
+  * @retval None
+  */
+#define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__)            (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
+
+/**
+  * @brief  Clear the RTC Timestamp's pending flags.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __FLAG__ specifies the RTC Timestamp flag to clear.
+  *         This parameter can be:
+  *            @arg RTC_FLAG_TSF: Timestamp interrupt flag
+  *            @arg RTC_FLAG_TSOVF: Timestamp overflow flag
+  * @retval None
+  */
+#define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__)          ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
+
+/**
+  * @}
+  */
+
+/* ---------------------------------TAMPER------------------------------------*/
+
+/** @defgroup RTCEx_Tamper RTCEx Tamper
+  * @{
+  */
+
+/**
+  * @brief  Enable the RTC Tamper1 input detection.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER1_ENABLE(__HANDLE__)                         ((__HANDLE__)->Instance->TAFCR |= (RTC_TAFCR_TAMP1E))
+
+/**
+  * @brief  Disable the RTC Tamper1 input detection.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER1_DISABLE(__HANDLE__)                        ((__HANDLE__)->Instance->TAFCR &= ~(RTC_TAFCR_TAMP1E))
+
+#if defined(RTC_TAMPER2_SUPPORT)
+/**
+  * @brief  Enable the RTC Tamper2 input detection.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__)                         ((__HANDLE__)->Instance->TAFCR |= (RTC_TAFCR_TAMP2E))
+
+/**
+  * @brief  Disable the RTC Tamper2 input detection.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__)                        ((__HANDLE__)->Instance->TAFCR &= ~(RTC_TAFCR_TAMP2E))
+#endif /* RTC_TAMPER2_SUPPORT */
+
+/**
+  * @brief  Enable the RTC Tamper interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Tamper interrupt sources to be enabled.
+  *          This parameter can be any combination of the following values:
+  *            @arg RTC_IT_TAMP: Tamper global interrupt
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__)        ((__HANDLE__)->Instance->TAFCR |= (__INTERRUPT__))
+
+/**
+  * @brief  Disable the RTC Tamper interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Tamper interrupt sources to be disabled.
+  *         This parameter can be any combination of the following values:
+  *            @arg RTC_IT_TAMP: Tamper global interrupt
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__)       ((__HANDLE__)->Instance->TAFCR &= ~(__INTERRUPT__))
+
+/**
+  * @brief  Check whether the specified RTC Tamper interrupt has occurred or not.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Tamper interrupt to check.
+  *         This parameter can be:
+  *            @arg RTC_IT_TAMP1: Tamper 1 interrupt
+  *            @arg RTC_IT_TAMP2: Tamper 2 interrupt
+  * @note   RTC_IT_TAMP2 is not applicable to all devices.
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__)       (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
+
+/**
+  * @brief  Check whether the specified RTC Tamper interrupt has been enabled or not.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Tamper interrupt source to check.
+  *         This parameter can be:
+  *            @arg RTC_IT_TAMP: Tamper global interrupt
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)     (((((__HANDLE__)->Instance->TAFCR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
+
+/**
+  * @brief  Get the selected RTC Tamper's flag status.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __FLAG__ specifies the RTC Tamper flag to be checked.
+  *          This parameter can be:
+  *             @arg RTC_FLAG_TAMP1F: Tamper 1 interrupt flag
+  *             @arg RTC_FLAG_TAMP2F: Tamper 2 interrupt flag
+  * @note   RTC_FLAG_TAMP2F is not applicable to all devices.
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__)               (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
+
+/**
+  * @brief  Clear the RTC Tamper's pending flags.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __FLAG__ specifies the RTC Tamper Flag to clear.
+  *          This parameter can be:
+  *             @arg RTC_FLAG_TAMP1F: Tamper 1 interrupt flag
+  *             @arg RTC_FLAG_TAMP2F: Tamper 2 interrupt flag
+  * @note   RTC_FLAG_TAMP2F is not applicable to all devices.
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__)         ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
+/**
+  * @}
+  */
+
+/* --------------------------TAMPER/TIMESTAMP---------------------------------*/
+/** @defgroup RTCEx_Tamper_Timestamp EXTI RTC Tamper Timestamp EXTI
+  * @{
+  */
+
+/**
+  * @brief  Enable interrupt on the RTC Tamper and Timestamp associated EXTI line.
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT()        (EXTI->IMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief  Disable interrupt on the RTC Tamper and Timestamp associated EXTI line.
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT()       (EXTI->IMR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief  Enable event on the RTC Tamper and Timestamp associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_EVENT()    (EXTI->EMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief  Disable event on the RTC Tamper and Timestamp associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT()   (EXTI->EMR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief  Enable falling edge trigger on the RTC Tamper and Timestamp associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE()   (EXTI->FTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief  Disable falling edge trigger on the RTC Tamper and Timestamp associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE()  (EXTI->FTSR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief  Enable rising edge trigger on the RTC Tamper and Timestamp associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE()    (EXTI->RTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief  Disable rising edge trigger on the RTC Tamper and Timestamp associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief  Enable rising & falling edge trigger on the RTC Tamper and Timestamp associated EXTI line.
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_FALLING_EDGE() do {                                                        \
+                                                                          __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();  \
+                                                                          __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE(); \
+                                                                        } while(0U)
+
+/**
+  * @brief  Disable rising & falling edge trigger on the RTC Tamper and Timestamp associated EXTI line.
+  * This parameter can be:
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_FALLING_EDGE() do {                                                         \
+                                                                           __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE();  \
+                                                                           __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE(); \
+                                                                         } while(0U)
+
+/**
+  * @brief Check whether the RTC Tamper and Timestamp associated EXTI line interrupt flag is set or not.
+  * @retval Line Status.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG()         (EXTI->PR & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief Clear the RTC Tamper and Timestamp associated EXTI line flag.
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG()       (EXTI->PR = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+
+/**
+  * @brief Generate a Software interrupt on the RTC Tamper and Timestamp associated EXTI line
+  * @retval None.
+  */
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT()    (EXTI->SWIER |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
+/**
+  * @}
+  */
+
+/* ------------------------------CALIBRATION----------------------------------*/
+
+/** @defgroup RTCEx_Calibration RTCEx Calibration
+  * @{
+  */
+
+/**
+  * @brief  Enable the Coarse calibration process.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_COARSE_CALIB_ENABLE(__HANDLE__)                       ((__HANDLE__)->Instance->CR |= (RTC_CR_DCE))
+
+/**
+  * @brief  Disable the Coarse calibration process.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_COARSE_CALIB_DISABLE(__HANDLE__)                      ((__HANDLE__)->Instance->CR &= ~(RTC_CR_DCE))
+
+/**
+  * @brief  Enable the RTC calibration output.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(__HANDLE__)                 ((__HANDLE__)->Instance->CR |= (RTC_CR_COE))
+
+/**
+  * @brief  Disable the calibration output.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(__HANDLE__)                ((__HANDLE__)->Instance->CR &= ~(RTC_CR_COE))
+
+/**
+  * @brief  Enable the clock reference detection.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_CLOCKREF_DETECTION_ENABLE(__HANDLE__)                 ((__HANDLE__)->Instance->CR |= (RTC_CR_REFCKON))
+
+/**
+  * @brief  Disable the clock reference detection.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @retval None
+  */
+#define __HAL_RTC_CLOCKREF_DETECTION_DISABLE(__HANDLE__)                ((__HANDLE__)->Instance->CR &= ~(RTC_CR_REFCKON))
+
+/**
+  * @brief  Get the selected RTC shift operation's flag status.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __FLAG__ specifies the RTC shift operation Flag is pending or not.
+  *          This parameter can be:
+  *             @arg RTC_FLAG_SHPF: Shift pending flag
+  * @retval None
+  */
+#define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__)                (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Exported functions --------------------------------------------------------*/
+
+/** @defgroup RTCEx_Exported_Functions RTCEx Exported Functions
+  * @{
+  */
+
+/** @addtogroup RTCEx_Exported_Functions_Group1
+  * @{
+  */
+/* RTC Timestamp and Tamper functions *****************************************/
+HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin);
+HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin);
+HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format);
+
+HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper);
+HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper);
+HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper);
+void              HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc);
+
+void              HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc);
+#if defined(RTC_TAMPER2_SUPPORT)
+void              HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
+#endif /* RTC_TAMPER2_SUPPORT */
+void              HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+#if defined(RTC_TAMPER2_SUPPORT)
+HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+#endif /* RTC_TAMPER2_SUPPORT */
+/**
+  * @}
+  */
+
+/** @addtogroup RTCEx_Exported_Functions_Group2
+  * @{
+  */
+/* RTC Wakeup functions ******************************************************/
+HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
+HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
+HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc);
+uint32_t          HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc);
+void              HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc);
+void              HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+/**
+  * @}
+  */
+
+/** @addtogroup RTCEx_Exported_Functions_Group3
+  * @{
+  */
+/* Extended Control functions ************************************************/
+void              HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data);
+uint32_t          HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister);
+
+HAL_StatusTypeDef HAL_RTCEx_SetCoarseCalib(RTC_HandleTypeDef *hrtc, uint32_t CalibSign, uint32_t Value);
+HAL_StatusTypeDef HAL_RTCEx_DeactivateCoarseCalib(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue);
+HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS);
+HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput);
+HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc);
+/**
+  * @}
+  */
+
+/** @addtogroup RTCEx_Exported_Functions_Group4
+  * @{
+  */
+/* Extended RTC features functions *******************************************/
+void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Private types -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private constants ---------------------------------------------------------*/
+
+/** @defgroup RTCEx_Private_Constants RTCEx Private Constants
+  * @{
+  */
+#define RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT  EXTI_IMR_MR21  /*!< External interrupt line 21 Connected to the RTC Tamper and Timestamp event */
+#define RTC_EXTI_LINE_WAKEUPTIMER_EVENT       EXTI_IMR_MR22  /*!< External interrupt line 22 Connected to the RTC Wakeup event */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Private_Constants RTCEx Private Constants
+  * @{
+  */
+/* Masks Definition */
+#if defined(RTC_TAMPER2_SUPPORT)
+#define RTC_TAMPER_ENABLE_BITS_MASK         ((uint32_t) (RTC_TAMPER_1 | \
+                                                         RTC_TAMPER_2))
+
+#define RTC_TAMPER_FLAGS_MASK               ((uint32_t) (RTC_FLAG_TAMP1F | \
+                                                         RTC_FLAG_TAMP2F))
+#else /* RTC_TAMPER2_SUPPORT */
+#define RTC_TAMPER_ENABLE_BITS_MASK                      RTC_TAMPER_1
+
+#define RTC_TAMPER_FLAGS_MASK                            RTC_FLAG_TAMP1F
+#endif /* RTC_TAMPER2_SUPPORT */
+/**
+  * @}
+  */
+
+/* Private macros ------------------------------------------------------------*/
+
+/** @defgroup RTCEx_Private_Macros RTCEx Private Macros
+  * @{
+  */
+
+/** @defgroup RTCEx_IS_RTC_Definitions Private macros to check input parameters
+  * @{
+  */
+#define IS_RTC_BKP(BKP)     ((BKP) < (uint32_t) RTC_BKP_NUMBER)
+
+#define IS_TIMESTAMP_EDGE(EDGE) (((EDGE) == RTC_TIMESTAMPEDGE_RISING) || \
+                                 ((EDGE) == RTC_TIMESTAMPEDGE_FALLING))
+
+#define IS_RTC_TAMPER(TAMPER) ((((TAMPER) & ((uint32_t)~RTC_TAMPER_ENABLE_BITS_MASK)) == 0x00U) && ((TAMPER) != 0U))
+
+#if defined(RTC_AF2_SUPPORT)
+#define IS_RTC_TAMPER_PIN(PIN) (((PIN) == RTC_TAMPERPIN_DEFAULT) || \
+                                ((PIN) == RTC_TAMPERPIN_POS1))
+#else /* RTC_AF2_SUPPORT */
+#define IS_RTC_TAMPER_PIN(PIN) ((PIN) == RTC_TAMPERPIN_DEFAULT)
+#endif /* RTC_AF2_SUPPORT */
+
+#if defined(RTC_AF2_SUPPORT)
+#define IS_RTC_TIMESTAMP_PIN(PIN) (((PIN) == RTC_TIMESTAMPPIN_DEFAULT) || \
+                                   ((PIN) == RTC_TIMESTAMPPIN_POS1))
+#else /* RTC_AF2_SUPPORT */
+#define IS_RTC_TIMESTAMP_PIN(PIN) ((PIN) == RTC_TIMESTAMPPIN_DEFAULT)
+#endif /* RTC_AF2_SUPPORT */
+
+#define IS_RTC_TAMPER_TRIGGER(TRIGGER) (((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE)  || \
+                                        ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE) || \
+                                        ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL)    || \
+                                        ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))
+
+#define IS_RTC_TAMPER_FILTER(FILTER)  (((FILTER) == RTC_TAMPERFILTER_DISABLE) || \
+                                       ((FILTER) == RTC_TAMPERFILTER_2SAMPLE) || \
+                                       ((FILTER) == RTC_TAMPERFILTER_4SAMPLE) || \
+                                       ((FILTER) == RTC_TAMPERFILTER_8SAMPLE))
+
+#define IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(FILTER, TRIGGER)                  \
+                        (  (  ((FILTER) != RTC_TAMPERFILTER_DISABLE)          \
+                           && (  ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL)    \
+                              || ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))) \
+                        || (  ((FILTER) == RTC_TAMPERFILTER_DISABLE)          \
+                           && (  ((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE)  \
+                              || ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE))))
+
+#define IS_RTC_TAMPER_SAMPLING_FREQ(FREQ) (((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768)|| \
+                                           ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384)|| \
+                                           ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192) || \
+                                           ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096) || \
+                                           ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048) || \
+                                           ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024) || \
+                                           ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512)  || \
+                                           ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256))
+
+#define IS_RTC_TAMPER_PRECHARGE_DURATION(DURATION) (((DURATION) == RTC_TAMPERPRECHARGEDURATION_1RTCCLK) || \
+                                                    ((DURATION) == RTC_TAMPERPRECHARGEDURATION_2RTCCLK) || \
+                                                    ((DURATION) == RTC_TAMPERPRECHARGEDURATION_4RTCCLK) || \
+                                                    ((DURATION) == RTC_TAMPERPRECHARGEDURATION_8RTCCLK))
+
+#define IS_RTC_TAMPER_PULLUP_STATE(STATE) (((STATE) == RTC_TAMPER_PULLUP_ENABLE) || \
+                                           ((STATE) == RTC_TAMPER_PULLUP_DISABLE))
+
+#define IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(DETECTION) (((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \
+                                                              ((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_DISABLE))
+
+#define IS_RTC_WAKEUP_CLOCK(CLOCK) (((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV16)   || \
+                                    ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV8)    || \
+                                    ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV4)    || \
+                                    ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV2)    || \
+                                    ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_16BITS) || \
+                                    ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_17BITS))
+
+#define IS_RTC_WAKEUP_COUNTER(COUNTER)  ((COUNTER) <= RTC_WUTR_WUT)
+
+#define IS_RTC_CALIB_SIGN(SIGN) (((SIGN) == RTC_CALIBSIGN_POSITIVE) || \
+                                 ((SIGN) == RTC_CALIBSIGN_NEGATIVE))
+
+#define IS_RTC_CALIB_VALUE(VALUE) ((VALUE) < 0x20U)
+
+#define IS_RTC_SMOOTH_CALIB_PERIOD(PERIOD) (((PERIOD) == RTC_SMOOTHCALIB_PERIOD_32SEC) || \
+                                            ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_16SEC) || \
+                                            ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_8SEC))
+
+#define IS_RTC_SMOOTH_CALIB_PLUS(PLUS) (((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_SET) || \
+                                        ((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_RESET))
+
+#define  IS_RTC_SMOOTH_CALIB_MINUS(VALUE) ((VALUE) <= RTC_CALR_CALM)
+
+#define IS_RTC_SHIFT_ADD1S(SEL) (((SEL) == RTC_SHIFTADD1S_RESET) || \
+                                 ((SEL) == RTC_SHIFTADD1S_SET))
+
+#define IS_RTC_SHIFT_SUBFS(FS) ((FS) <= RTC_SHIFTR_SUBFS)
+
+#define IS_RTC_CALIB_OUTPUT(OUTPUT)  (((OUTPUT) == RTC_CALIBOUTPUT_512HZ) || \
+                                      ((OUTPUT) == RTC_CALIBOUTPUT_1HZ))
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STM32F4xx_HAL_RTC_EX_H */

+ 4779 - 0
Soft/STM32/Proto/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h

@@ -0,0 +1,4779 @@
+/**
+  ******************************************************************************
+  * @file    stm32f4xx_ll_adc.h
+  * @author  MCD Application Team
+  * @brief   Header file of ADC LL module.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_LL_ADC_H
+#define __STM32F4xx_LL_ADC_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx.h"
+
+/** @addtogroup STM32F4xx_LL_Driver
+  * @{
+  */
+
+#if defined (ADC1) || defined (ADC2) || defined (ADC3)
+
+/** @defgroup ADC_LL ADC
+  * @{
+  */
+
+/* Private types -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+
+/* Private constants ---------------------------------------------------------*/
+/** @defgroup ADC_LL_Private_Constants ADC Private Constants
+  * @{
+  */
+
+/* Internal mask for ADC group regular sequencer:                             */
+/* To select into literal LL_ADC_REG_RANK_x the relevant bits for:            */
+/* - sequencer register offset                                                */
+/* - sequencer rank bits position into the selected register                  */
+
+/* Internal register offset for ADC group regular sequencer configuration */
+/* (offset placed into a spare area of literal definition) */
+#define ADC_SQR1_REGOFFSET                 0x00000000UL
+#define ADC_SQR2_REGOFFSET                 0x00000100UL
+#define ADC_SQR3_REGOFFSET                 0x00000200UL
+#define ADC_SQR4_REGOFFSET                 0x00000300UL
+
+#define ADC_REG_SQRX_REGOFFSET_MASK        (ADC_SQR1_REGOFFSET | ADC_SQR2_REGOFFSET | ADC_SQR3_REGOFFSET | ADC_SQR4_REGOFFSET)
+#define ADC_REG_RANK_ID_SQRX_MASK          (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
+
+/* Definition of ADC group regular sequencer bits information to be inserted  */
+/* into ADC group regular sequencer ranks literals definition.                */
+#define ADC_REG_RANK_1_SQRX_BITOFFSET_POS  ( 0UL) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ1) */
+#define ADC_REG_RANK_2_SQRX_BITOFFSET_POS  ( 5UL) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ2) */
+#define ADC_REG_RANK_3_SQRX_BITOFFSET_POS  (10UL) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ3) */
+#define ADC_REG_RANK_4_SQRX_BITOFFSET_POS  (15UL) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ4) */
+#define ADC_REG_RANK_5_SQRX_BITOFFSET_POS  (20UL) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ5) */
+#define ADC_REG_RANK_6_SQRX_BITOFFSET_POS  (25UL) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ6) */
+#define ADC_REG_RANK_7_SQRX_BITOFFSET_POS  ( 0UL) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ7) */
+#define ADC_REG_RANK_8_SQRX_BITOFFSET_POS  ( 5UL) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ8) */
+#define ADC_REG_RANK_9_SQRX_BITOFFSET_POS  (10UL) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ9) */
+#define ADC_REG_RANK_10_SQRX_BITOFFSET_POS (15UL) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ10) */
+#define ADC_REG_RANK_11_SQRX_BITOFFSET_POS (20UL) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ11) */
+#define ADC_REG_RANK_12_SQRX_BITOFFSET_POS (25UL) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ12) */
+#define ADC_REG_RANK_13_SQRX_BITOFFSET_POS ( 0UL) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ13) */
+#define ADC_REG_RANK_14_SQRX_BITOFFSET_POS ( 5UL) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ14) */
+#define ADC_REG_RANK_15_SQRX_BITOFFSET_POS (10UL) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ15) */
+#define ADC_REG_RANK_16_SQRX_BITOFFSET_POS (15UL) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ16) */
+
+/* Internal mask for ADC group injected sequencer:                            */
+/* To select into literal LL_ADC_INJ_RANK_x the relevant bits for:            */
+/* - data register offset                                                     */
+/* - offset register offset                                                   */
+/* - sequencer rank bits position into the selected register                  */
+
+/* Internal register offset for ADC group injected data register */
+/* (offset placed into a spare area of literal definition) */
+#define ADC_JDR1_REGOFFSET                 0x00000000UL
+#define ADC_JDR2_REGOFFSET                 0x00000100UL
+#define ADC_JDR3_REGOFFSET                 0x00000200UL
+#define ADC_JDR4_REGOFFSET                 0x00000300UL
+
+/* Internal register offset for ADC group injected offset configuration */
+/* (offset placed into a spare area of literal definition) */
+#define ADC_JOFR1_REGOFFSET                0x00000000UL
+#define ADC_JOFR2_REGOFFSET                0x00001000UL
+#define ADC_JOFR3_REGOFFSET                0x00002000UL
+#define ADC_JOFR4_REGOFFSET                0x00003000UL
+
+#define ADC_INJ_JDRX_REGOFFSET_MASK        (ADC_JDR1_REGOFFSET | ADC_JDR2_REGOFFSET | ADC_JDR3_REGOFFSET | ADC_JDR4_REGOFFSET)
+#define ADC_INJ_JOFRX_REGOFFSET_MASK       (ADC_JOFR1_REGOFFSET | ADC_JOFR2_REGOFFSET | ADC_JOFR3_REGOFFSET | ADC_JOFR4_REGOFFSET)
+#define ADC_INJ_RANK_ID_JSQR_MASK          (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
+
+/* Internal mask for ADC group regular trigger:                               */
+/* To select into literal LL_ADC_REG_TRIG_x the relevant bits for:            */
+/* - regular trigger source                                                   */
+/* - regular trigger edge                                                     */
+#define ADC_REG_TRIG_EXT_EDGE_DEFAULT       (ADC_CR2_EXTEN_0) /* Trigger edge set to rising edge (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value) */
+
+/* Mask containing trigger source masks for each of possible                  */
+/* trigger edge selection duplicated with shifts [0; 4; 8; 12]                */
+/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}.        */
+#define ADC_REG_TRIG_SOURCE_MASK            (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_EXTSEL) >> (4UL * 0UL)) | \
+                                             ((ADC_CR2_EXTSEL)                            >> (4UL * 1UL)) | \
+                                             ((ADC_CR2_EXTSEL)                            >> (4UL * 2UL)) | \
+                                             ((ADC_CR2_EXTSEL)                            >> (4UL * 3UL)))
+
+/* Mask containing trigger edge masks for each of possible                    */
+/* trigger edge selection duplicated with shifts [0; 4; 8; 12]                */
+/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}.        */
+#define ADC_REG_TRIG_EDGE_MASK              (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_EXTEN) >> (4UL * 0UL)) | \
+                                             ((ADC_REG_TRIG_EXT_EDGE_DEFAULT)            >> (4UL * 1UL)) | \
+                                             ((ADC_REG_TRIG_EXT_EDGE_DEFAULT)            >> (4UL * 2UL)) | \
+                                             ((ADC_REG_TRIG_EXT_EDGE_DEFAULT)            >> (4UL * 3UL)))
+
+/* Definition of ADC group regular trigger bits information.                  */
+#define ADC_REG_TRIG_EXTSEL_BITOFFSET_POS  (24UL) /* Value equivalent to POSITION_VAL(ADC_CR2_EXTSEL) */
+#define ADC_REG_TRIG_EXTEN_BITOFFSET_POS   (28UL) /* Value equivalent to POSITION_VAL(ADC_CR2_EXTEN) */
+
+
+
+/* Internal mask for ADC group injected trigger:                              */
+/* To select into literal LL_ADC_INJ_TRIG_x the relevant bits for:            */
+/* - injected trigger source                                                  */
+/* - injected trigger edge                                                    */
+#define ADC_INJ_TRIG_EXT_EDGE_DEFAULT      (ADC_CR2_JEXTEN_0) /* Trigger edge set to rising edge (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value) */
+
+/* Mask containing trigger source masks for each of possible                  */
+/* trigger edge selection duplicated with shifts [0; 4; 8; 12]                */
+/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}.        */
+#define ADC_INJ_TRIG_SOURCE_MASK            (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_JEXTSEL) >> (4UL * 0UL)) | \
+                                             ((ADC_CR2_JEXTSEL)                            >> (4UL * 1UL)) | \
+                                             ((ADC_CR2_JEXTSEL)                            >> (4UL * 2UL)) | \
+                                             ((ADC_CR2_JEXTSEL)                            >> (4UL * 3UL)))
+
+/* Mask containing trigger edge masks for each of possible                    */
+/* trigger edge selection duplicated with shifts [0; 4; 8; 12]                */
+/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}.        */
+#define ADC_INJ_TRIG_EDGE_MASK              (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_CR2_JEXTEN) >> (4UL * 0UL)) | \
+                                             ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT)             >> (4UL * 1UL)) | \
+                                             ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT)             >> (4UL * 2UL)) | \
+                                             ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT)             >> (4UL * 3UL)))
+
+/* Definition of ADC group injected trigger bits information.                 */
+#define ADC_INJ_TRIG_EXTSEL_BITOFFSET_POS  (16UL) /* Value equivalent to POSITION_VAL(ADC_CR2_JEXTSEL) */
+#define ADC_INJ_TRIG_EXTEN_BITOFFSET_POS   (20UL) /* Value equivalent to POSITION_VAL(ADC_CR2_JEXTEN) */
+
+/* Internal mask for ADC channel:                                             */
+/* To select into literal LL_ADC_CHANNEL_x the relevant bits for:             */
+/* - channel identifier defined by number                                     */
+/* - channel differentiation between external channels (connected to          */
+/*   GPIO pins) and internal channels (connected to internal paths)           */
+/* - channel sampling time defined by SMPRx register offset                   */
+/*   and SMPx bits positions into SMPRx register                              */
+#define ADC_CHANNEL_ID_NUMBER_MASK         (ADC_CR1_AWDCH)
+#define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS ( 0UL)/* Value equivalent to POSITION_VAL(ADC_CHANNEL_ID_NUMBER_MASK) */
+#define ADC_CHANNEL_ID_MASK                (ADC_CHANNEL_ID_NUMBER_MASK | ADC_CHANNEL_ID_INTERNAL_CH_MASK)
+/* Equivalent mask of ADC_CHANNEL_NUMBER_MASK aligned on register LSB (bit 0) */
+#define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 0x0000001FU /* Equivalent to shift: (ADC_CHANNEL_NUMBER_MASK >> POSITION_VAL(ADC_CHANNEL_NUMBER_MASK)) */
+
+/* Channel differentiation between external and internal channels */
+#define ADC_CHANNEL_ID_INTERNAL_CH         0x80000000UL   /* Marker of internal channel */
+#define ADC_CHANNEL_ID_INTERNAL_CH_2       0x40000000UL   /* Marker of internal channel for other ADC instances, in case of different ADC internal channels mapped on same channel number on different ADC instances */
+#define ADC_CHANNEL_DIFFERENCIATION_TEMPSENSOR_VBAT 0x10000000U  /* Dummy bit for driver internal usage, not used in ADC channel setting registers CR1 or SQRx */
+#define ADC_CHANNEL_ID_INTERNAL_CH_MASK    (ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2 | ADC_CHANNEL_DIFFERENCIATION_TEMPSENSOR_VBAT)
+
+/* Internal register offset for ADC channel sampling time configuration */
+/* (offset placed into a spare area of literal definition) */
+#define ADC_SMPR1_REGOFFSET                0x00000000UL
+#define ADC_SMPR2_REGOFFSET                0x02000000UL
+#define ADC_CHANNEL_SMPRX_REGOFFSET_MASK   (ADC_SMPR1_REGOFFSET | ADC_SMPR2_REGOFFSET)
+
+#define ADC_CHANNEL_SMPx_BITOFFSET_MASK    0x01F00000UL
+#define ADC_CHANNEL_SMPx_BITOFFSET_POS     (20UL)           /* Value equivalent to POSITION_VAL(ADC_CHANNEL_SMPx_BITOFFSET_MASK) */
+
+/* Definition of channels ID number information to be inserted into           */
+/* channels literals definition.                                              */
+#define ADC_CHANNEL_0_NUMBER               0x00000000UL
+#define ADC_CHANNEL_1_NUMBER               (                                                                        ADC_CR1_AWDCH_0)
+#define ADC_CHANNEL_2_NUMBER               (                                                      ADC_CR1_AWDCH_1                  )
+#define ADC_CHANNEL_3_NUMBER               (                                                      ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
+#define ADC_CHANNEL_4_NUMBER               (                                    ADC_CR1_AWDCH_2                                    )
+#define ADC_CHANNEL_5_NUMBER               (                                    ADC_CR1_AWDCH_2                   | ADC_CR1_AWDCH_0)
+#define ADC_CHANNEL_6_NUMBER               (                                    ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1                  )
+#define ADC_CHANNEL_7_NUMBER               (                                    ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
+#define ADC_CHANNEL_8_NUMBER               (                  ADC_CR1_AWDCH_3                                                      )
+#define ADC_CHANNEL_9_NUMBER               (                  ADC_CR1_AWDCH_3                                     | ADC_CR1_AWDCH_0)
+#define ADC_CHANNEL_10_NUMBER              (                  ADC_CR1_AWDCH_3                   | ADC_CR1_AWDCH_1                  )
+#define ADC_CHANNEL_11_NUMBER              (                  ADC_CR1_AWDCH_3                   | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
+#define ADC_CHANNEL_12_NUMBER              (                  ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2                                    )
+#define ADC_CHANNEL_13_NUMBER              (                  ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2                   | ADC_CR1_AWDCH_0)
+#define ADC_CHANNEL_14_NUMBER              (                  ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1                  )
+#define ADC_CHANNEL_15_NUMBER              (                  ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
+#define ADC_CHANNEL_16_NUMBER              (ADC_CR1_AWDCH_4                                                                        )
+#define ADC_CHANNEL_17_NUMBER              (ADC_CR1_AWDCH_4                                                       | ADC_CR1_AWDCH_0)
+#define ADC_CHANNEL_18_NUMBER              (ADC_CR1_AWDCH_4                                     | ADC_CR1_AWDCH_1                  )
+
+/* Definition of channels sampling time information to be inserted into       */
+/* channels literals definition.                                              */
+#define ADC_CHANNEL_0_SMP                  (ADC_SMPR2_REGOFFSET | (( 0UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP0) */
+#define ADC_CHANNEL_1_SMP                  (ADC_SMPR2_REGOFFSET | (( 3UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP1) */
+#define ADC_CHANNEL_2_SMP                  (ADC_SMPR2_REGOFFSET | (( 6UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP2) */
+#define ADC_CHANNEL_3_SMP                  (ADC_SMPR2_REGOFFSET | (( 9UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP3) */
+#define ADC_CHANNEL_4_SMP                  (ADC_SMPR2_REGOFFSET | ((12UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP4) */
+#define ADC_CHANNEL_5_SMP                  (ADC_SMPR2_REGOFFSET | ((15UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP5) */
+#define ADC_CHANNEL_6_SMP                  (ADC_SMPR2_REGOFFSET | ((18UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP6) */
+#define ADC_CHANNEL_7_SMP                  (ADC_SMPR2_REGOFFSET | ((21UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP7) */
+#define ADC_CHANNEL_8_SMP                  (ADC_SMPR2_REGOFFSET | ((24UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP8) */
+#define ADC_CHANNEL_9_SMP                  (ADC_SMPR2_REGOFFSET | ((27UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP9) */
+#define ADC_CHANNEL_10_SMP                 (ADC_SMPR1_REGOFFSET | (( 0UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP10) */
+#define ADC_CHANNEL_11_SMP                 (ADC_SMPR1_REGOFFSET | (( 3UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP11) */
+#define ADC_CHANNEL_12_SMP                 (ADC_SMPR1_REGOFFSET | (( 6UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP12) */
+#define ADC_CHANNEL_13_SMP                 (ADC_SMPR1_REGOFFSET | (( 9UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP13) */
+#define ADC_CHANNEL_14_SMP                 (ADC_SMPR1_REGOFFSET | ((12UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP14) */
+#define ADC_CHANNEL_15_SMP                 (ADC_SMPR1_REGOFFSET | ((15UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP15) */
+#define ADC_CHANNEL_16_SMP                 (ADC_SMPR1_REGOFFSET | ((18UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP16) */
+#define ADC_CHANNEL_17_SMP                 (ADC_SMPR1_REGOFFSET | ((21UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP17) */
+#define ADC_CHANNEL_18_SMP                 (ADC_SMPR1_REGOFFSET | ((24UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP18) */
+
+/* Internal mask for ADC analog watchdog:                                     */
+/* To select into literals LL_ADC_AWD_CHANNELx_xxx the relevant bits for:     */
+/* (concatenation of multiple bits used in different analog watchdogs,        */
+/* (feature of several watchdogs not available on all STM32 families)).       */
+/* - analog watchdog 1: monitored channel defined by number,                  */
+/*   selection of ADC group (ADC groups regular and-or injected).             */
+
+/* Internal register offset for ADC analog watchdog channel configuration */
+#define ADC_AWD_CR1_REGOFFSET              0x00000000UL
+
+#define ADC_AWD_CRX_REGOFFSET_MASK         (ADC_AWD_CR1_REGOFFSET)
+
+#define ADC_AWD_CR1_CHANNEL_MASK           (ADC_CR1_AWDCH | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL)
+#define ADC_AWD_CR_ALL_CHANNEL_MASK        (ADC_AWD_CR1_CHANNEL_MASK)
+
+/* Internal register offset for ADC analog watchdog threshold configuration */
+#define ADC_AWD_TR1_HIGH_REGOFFSET         0x00000000UL
+#define ADC_AWD_TR1_LOW_REGOFFSET          0x00000001UL
+#define ADC_AWD_TRX_REGOFFSET_MASK         (ADC_AWD_TR1_HIGH_REGOFFSET | ADC_AWD_TR1_LOW_REGOFFSET)
+
+/* ADC registers bits positions */
+#define ADC_CR1_RES_BITOFFSET_POS          (24UL) /* Value equivalent to POSITION_VAL(ADC_CR1_RES) */
+#define ADC_TR_HT_BITOFFSET_POS            (16UL) /* Value equivalent to POSITION_VAL(ADC_TR_HT) */
+
+/* ADC internal channels related definitions */
+/* Internal voltage reference VrefInt */
+#define VREFINT_CAL_ADDR                   ((uint16_t*) (0x1FFF7A2AU)) /* Internal voltage reference, address of parameter VREFINT_CAL: VrefInt ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
+#define VREFINT_CAL_VREF                   ( 3300UL)                    /* Analog voltage reference (Vref+) value with which temperature sensor has been calibrated in production (tolerance: +-10 mV) (unit: mV). */
+/* Temperature sensor */
+#define TEMPSENSOR_CAL1_ADDR               ((uint16_t*) (0x1FFF7A2CU)) /* Internal temperature sensor, address of parameter TS_CAL1: On STM32F4, temperature sensor ADC raw data acquired at temperature  30 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
+#define TEMPSENSOR_CAL2_ADDR               ((uint16_t*) (0x1FFF7A2EU)) /* Internal temperature sensor, address of parameter TS_CAL2: On STM32F4, temperature sensor ADC raw data acquired at temperature 110 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
+#define TEMPSENSOR_CAL1_TEMP               (( int32_t)   30)           /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL1_ADDR (tolerance: +-5 DegC) (unit: DegC). */
+#define TEMPSENSOR_CAL2_TEMP               (( int32_t)  110)           /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL2_ADDR (tolerance: +-5 DegC) (unit: DegC). */
+#define TEMPSENSOR_CAL_VREFANALOG          ( 3300UL)                    /* Analog voltage reference (Vref+) voltage with which temperature sensor has been calibrated in production (+-10 mV) (unit: mV). */
+
+/**
+  * @}
+  */
+
+
+/* Private macros ------------------------------------------------------------*/
+/** @defgroup ADC_LL_Private_Macros ADC Private Macros
+  * @{
+  */
+
+/**
+  * @brief  Driver macro reserved for internal use: isolate bits with the
+  *         selected mask and shift them to the register LSB
+  *         (shift mask on register position bit 0).
+  * @param  __BITS__ Bits in register 32 bits
+  * @param  __MASK__ Mask in register 32 bits
+  * @retval Bits in register 32 bits
+  */
+#define __ADC_MASK_SHIFT(__BITS__, __MASK__)                                   \
+  (((__BITS__) & (__MASK__)) >> POSITION_VAL((__MASK__)))
+
+/**
+  * @brief  Driver macro reserved for internal use: set a pointer to
+  *         a register from a register basis from which an offset
+  *         is applied.
+  * @param  __REG__ Register basis from which the offset is applied.
+  * @param  __REG_OFFFSET__ Offset to be applied (unit number of registers).
+  * @retval Pointer to register address
+  */
+#define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__)                         \
+ ((__IO uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2UL))))
+
+/**
+  * @}
+  */
+
+
+/* Exported types ------------------------------------------------------------*/
+#if defined(USE_FULL_LL_DRIVER)
+/** @defgroup ADC_LL_ES_INIT ADC Exported Init structure
+  * @{
+  */
+
+/**
+  * @brief  Structure definition of some features of ADC common parameters
+  *         and multimode
+  *         (all ADC instances belonging to the same ADC common instance).
+  * @note   The setting of these parameters by function @ref LL_ADC_CommonInit()
+  *         is conditioned to ADC instances state (all ADC instances
+  *         sharing the same ADC common instance):
+  *         All ADC instances sharing the same ADC common instance must be
+  *         disabled.
+  */
+typedef struct
+{
+  uint32_t CommonClock;                 /*!< Set parameter common to several ADC: Clock source and prescaler.
+                                             This parameter can be a value of @ref ADC_LL_EC_COMMON_CLOCK_SOURCE
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetCommonClock(). */
+
+#if defined(ADC_MULTIMODE_SUPPORT)
+  uint32_t Multimode;                   /*!< Set ADC multimode configuration to operate in independent mode or multimode (for devices with several ADC instances).
+                                             This parameter can be a value of @ref ADC_LL_EC_MULTI_MODE
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultimode(). */
+
+  uint32_t MultiDMATransfer;            /*!< Set ADC multimode conversion data transfer: no transfer or transfer by DMA.
+                                             This parameter can be a value of @ref ADC_LL_EC_MULTI_DMA_TRANSFER
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiDMATransfer(). */
+
+  uint32_t MultiTwoSamplingDelay;       /*!< Set ADC multimode delay between 2 sampling phases.
+                                             This parameter can be a value of @ref ADC_LL_EC_MULTI_TWOSMP_DELAY
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiTwoSamplingDelay(). */
+#endif /* ADC_MULTIMODE_SUPPORT */
+
+} LL_ADC_CommonInitTypeDef;
+
+/**
+  * @brief  Structure definition of some features of ADC instance.
+  * @note   These parameters have an impact on ADC scope: ADC instance.
+  *         Affects both group regular and group injected (availability
+  *         of ADC group injected depends on STM32 families).
+  *         Refer to corresponding unitary functions into
+  *         @ref ADC_LL_EF_Configuration_ADC_Instance .
+  * @note   The setting of these parameters by function @ref LL_ADC_Init()
+  *         is conditioned to ADC state:
+  *         ADC instance must be disabled.
+  *         This condition is applied to all ADC features, for efficiency
+  *         and compatibility over all STM32 families. However, the different
+  *         features can be set under different ADC state conditions
+  *         (setting possible with ADC enabled without conversion on going,
+  *         ADC enabled with conversion on going, ...)
+  *         Each feature can be updated afterwards with a unitary function
+  *         and potentially with ADC in a different state than disabled,
+  *         refer to description of each function for setting
+  *         conditioned to ADC state.
+  */
+typedef struct
+{
+  uint32_t Resolution;                  /*!< Set ADC resolution.
+                                             This parameter can be a value of @ref ADC_LL_EC_RESOLUTION
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetResolution(). */
+
+  uint32_t DataAlignment;               /*!< Set ADC conversion data alignment.
+                                             This parameter can be a value of @ref ADC_LL_EC_DATA_ALIGN
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetDataAlignment(). */
+
+  uint32_t SequencersScanMode;          /*!< Set ADC scan selection.
+                                             This parameter can be a value of @ref ADC_LL_EC_SCAN_SELECTION
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetSequencersScanMode(). */
+
+} LL_ADC_InitTypeDef;
+
+/**
+  * @brief  Structure definition of some features of ADC group regular.
+  * @note   These parameters have an impact on ADC scope: ADC group regular.
+  *         Refer to corresponding unitary functions into
+  *         @ref ADC_LL_EF_Configuration_ADC_Group_Regular
+  *         (functions with prefix "REG").
+  * @note   The setting of these parameters by function @ref LL_ADC_REG_Init()
+  *         is conditioned to ADC state:
+  *         ADC instance must be disabled.
+  *         This condition is applied to all ADC features, for efficiency
+  *         and compatibility over all STM32 families. However, the different
+  *         features can be set under different ADC state conditions
+  *         (setting possible with ADC enabled without conversion on going,
+  *         ADC enabled with conversion on going, ...)
+  *         Each feature can be updated afterwards with a unitary function
+  *         and potentially with ADC in a different state than disabled,
+  *         refer to description of each function for setting
+  *         conditioned to ADC state.
+  */
+typedef struct
+{
+  uint32_t TriggerSource;               /*!< Set ADC group regular conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
+                                             This parameter can be a value of @ref ADC_LL_EC_REG_TRIGGER_SOURCE
+                                             @note On this STM32 series, setting of external trigger edge is performed
+                                                   using function @ref LL_ADC_REG_StartConversionExtTrig().
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetTriggerSource(). */
+
+  uint32_t SequencerLength;             /*!< Set ADC group regular sequencer length.
+                                             This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_SCAN_LENGTH
+                                             @note This parameter is discarded if scan mode is disabled (refer to parameter 'ADC_SequencersScanMode').
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerLength(). */
+
+  uint32_t SequencerDiscont;            /*!< Set ADC group regular sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
+                                             This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_DISCONT_MODE
+                                             @note This parameter has an effect only if group regular sequencer is enabled
+                                                   (scan length of 2 ranks or more).
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerDiscont(). */
+
+  uint32_t ContinuousMode;              /*!< Set ADC continuous conversion mode on ADC group regular, whether ADC conversions are performed in single mode (one conversion per trigger) or in continuous mode (after the first trigger, following conversions launched successively automatically).
+                                             This parameter can be a value of @ref ADC_LL_EC_REG_CONTINUOUS_MODE
+                                             Note: It is not possible to enable both ADC group regular continuous mode and discontinuous mode.
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetContinuousMode(). */
+
+  uint32_t DMATransfer;                 /*!< Set ADC group regular conversion data transfer: no transfer or transfer by DMA, and DMA requests mode.
+                                             This parameter can be a value of @ref ADC_LL_EC_REG_DMA_TRANSFER
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetDMATransfer(). */
+
+} LL_ADC_REG_InitTypeDef;
+
+/**
+  * @brief  Structure definition of some features of ADC group injected.
+  * @note   These parameters have an impact on ADC scope: ADC group injected.
+  *         Refer to corresponding unitary functions into
+  *         @ref ADC_LL_EF_Configuration_ADC_Group_Regular
+  *         (functions with prefix "INJ").
+  * @note   The setting of these parameters by function @ref LL_ADC_INJ_Init()
+  *         is conditioned to ADC state:
+  *         ADC instance must be disabled.
+  *         This condition is applied to all ADC features, for efficiency
+  *         and compatibility over all STM32 families. However, the different
+  *         features can be set under different ADC state conditions
+  *         (setting possible with ADC enabled without conversion on going,
+  *         ADC enabled with conversion on going, ...)
+  *         Each feature can be updated afterwards with a unitary function
+  *         and potentially with ADC in a different state than disabled,
+  *         refer to description of each function for setting
+  *         conditioned to ADC state.
+  */
+typedef struct
+{
+  uint32_t TriggerSource;               /*!< Set ADC group injected conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
+                                             This parameter can be a value of @ref ADC_LL_EC_INJ_TRIGGER_SOURCE
+                                             @note On this STM32 series, setting of external trigger edge is performed
+                                                   using function @ref LL_ADC_INJ_StartConversionExtTrig().
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTriggerSource(). */
+
+  uint32_t SequencerLength;             /*!< Set ADC group injected sequencer length.
+                                             This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_SCAN_LENGTH
+                                             @note This parameter is discarded if scan mode is disabled (refer to parameter 'ADC_SequencersScanMode').
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerLength(). */
+
+  uint32_t SequencerDiscont;            /*!< Set ADC group injected sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
+                                             This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_DISCONT_MODE
+                                             @note This parameter has an effect only if group injected sequencer is enabled
+                                                   (scan length of 2 ranks or more).
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerDiscont(). */
+
+  uint32_t TrigAuto;                    /*!< Set ADC group injected conversion trigger: independent or from ADC group regular.
+                                             This parameter can be a value of @ref ADC_LL_EC_INJ_TRIG_AUTO
+                                             Note: This parameter must be set to set to independent trigger if injected trigger source is set to an external trigger. 
+                                             
+                                             This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTrigAuto(). */
+
+} LL_ADC_INJ_InitTypeDef;
+
+/**
+  * @}
+  */
+#endif /* USE_FULL_LL_DRIVER */
+
+/* Exported constants --------------------------------------------------------*/
+/** @defgroup ADC_LL_Exported_Constants ADC Exported Constants
+  * @{
+  */
+
+/** @defgroup ADC_LL_EC_FLAG ADC flags
+  * @brief    Flags defines which can be used with LL_ADC_ReadReg function
+  * @{
+  */
+#define LL_ADC_FLAG_STRT                   ADC_SR_STRT        /*!< ADC flag ADC group regular conversion start */
+#define LL_ADC_FLAG_EOCS                   ADC_SR_EOC         /*!< ADC flag ADC group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
+#define LL_ADC_FLAG_OVR                    ADC_SR_OVR         /*!< ADC flag ADC group regular overrun */
+#define LL_ADC_FLAG_JSTRT                  ADC_SR_JSTRT       /*!< ADC flag ADC group injected conversion start */
+#define LL_ADC_FLAG_JEOS                   ADC_SR_JEOC        /*!< ADC flag ADC group injected end of sequence conversions (Note: on this STM32 series, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
+#define LL_ADC_FLAG_AWD1                   ADC_SR_AWD         /*!< ADC flag ADC analog watchdog 1 */
+#if defined(ADC_MULTIMODE_SUPPORT)
+#define LL_ADC_FLAG_EOCS_MST               ADC_CSR_EOC1       /*!< ADC flag ADC multimode master group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
+#define LL_ADC_FLAG_EOCS_SLV1              ADC_CSR_EOC2       /*!< ADC flag ADC multimode slave 1 group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
+#define LL_ADC_FLAG_EOCS_SLV2              ADC_CSR_EOC3       /*!< ADC flag ADC multimode slave 2 group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
+#define LL_ADC_FLAG_OVR_MST                ADC_CSR_OVR1    /*!< ADC flag ADC multimode master group regular overrun */ 
+#define LL_ADC_FLAG_OVR_SLV1               ADC_CSR_OVR2   /*!< ADC flag ADC multimode slave 1 group regular overrun */
+#define LL_ADC_FLAG_OVR_SLV2               ADC_CSR_OVR3   /*!< ADC flag ADC multimode slave 2 group regular overrun */
+#define LL_ADC_FLAG_JEOS_MST               ADC_CSR_JEOC1     /*!< ADC flag ADC multimode master group injected end of sequence conversions (Note: on this STM32 series, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
+#define LL_ADC_FLAG_JEOS_SLV1              ADC_CSR_JEOC2  /*!< ADC flag ADC multimode slave 1 group injected end of sequence conversions (Note: on this STM32 series, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
+#define LL_ADC_FLAG_JEOS_SLV2              ADC_CSR_JEOC3  /*!< ADC flag ADC multimode slave 2 group injected end of sequence conversions (Note: on this STM32 series, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
+#define LL_ADC_FLAG_AWD1_MST               ADC_CSR_AWD1       /*!< ADC flag ADC multimode master analog watchdog 1 of the ADC master */
+#define LL_ADC_FLAG_AWD1_SLV1              ADC_CSR_AWD2       /*!< ADC flag ADC multimode slave 1 analog watchdog 1 */
+#define LL_ADC_FLAG_AWD1_SLV2              ADC_CSR_AWD3       /*!< ADC flag ADC multimode slave 2 analog watchdog 1 */
+#endif
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_IT ADC interruptions for configuration (interruption enable or disable)
+  * @brief    IT defines which can be used with LL_ADC_ReadReg and  LL_ADC_WriteReg functions
+  * @{
+  */
+#define LL_ADC_IT_EOCS                     ADC_CR1_EOCIE      /*!< ADC interruption ADC group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
+#define LL_ADC_IT_OVR                      ADC_CR1_OVRIE      /*!< ADC interruption ADC group regular overrun */
+#define LL_ADC_IT_JEOS                     ADC_CR1_JEOCIE     /*!< ADC interruption ADC group injected end of sequence conversions (Note: on this STM32 series, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
+#define LL_ADC_IT_AWD1                     ADC_CR1_AWDIE      /*!< ADC interruption ADC analog watchdog 1 */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_REGISTERS  ADC registers compliant with specific purpose
+  * @{
+  */
+/* List of ADC registers intended to be used (most commonly) with             */
+/* DMA transfer.                                                              */
+/* Refer to function @ref LL_ADC_DMA_GetRegAddr().                            */
+#define LL_ADC_DMA_REG_REGULAR_DATA          0x00000000UL   /* ADC group regular conversion data register (corresponding to register DR) to be used with ADC configured in independent mode. Without DMA transfer, register accessed by LL function @ref LL_ADC_REG_ReadConversionData32() and other functions @ref LL_ADC_REG_ReadConversionDatax() */
+#if defined(ADC_MULTIMODE_SUPPORT)
+#define LL_ADC_DMA_REG_REGULAR_DATA_MULTI    0x00000001UL   /* ADC group regular conversion data register (corresponding to register CDR) to be used with ADC configured in multimode (available on STM32 devices with several ADC instances). Without DMA transfer, register accessed by LL function @ref LL_ADC_REG_ReadMultiConversionData32() */
+#endif
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_COMMON_CLOCK_SOURCE  ADC common - Clock source
+  * @{
+  */
+#define LL_ADC_CLOCK_SYNC_PCLK_DIV2        0x00000000UL                                           /*!< ADC synchronous clock derived from AHB clock with prescaler division by 2 */
+#define LL_ADC_CLOCK_SYNC_PCLK_DIV4        (                   ADC_CCR_ADCPRE_0)                 /*!< ADC synchronous clock derived from AHB clock with prescaler division by 4 */
+#define LL_ADC_CLOCK_SYNC_PCLK_DIV6        (ADC_CCR_ADCPRE_1                   )                 /*!< ADC synchronous clock derived from AHB clock with prescaler division by 6 */
+#define LL_ADC_CLOCK_SYNC_PCLK_DIV8        (ADC_CCR_ADCPRE_1 | ADC_CCR_ADCPRE_0)                 /*!< ADC synchronous clock derived from AHB clock with prescaler division by 8 */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_COMMON_PATH_INTERNAL  ADC common - Measurement path to internal channels
+  * @{
+  */
+/* Note: Other measurement paths to internal channels may be available        */
+/*       (connections to other peripherals).                                  */
+/*       If they are not listed below, they do not require any specific       */
+/*       path enable. In this case, Access to measurement path is done        */
+/*       only by selecting the corresponding ADC internal channel.            */
+#define LL_ADC_PATH_INTERNAL_NONE          0x00000000UL            /*!< ADC measurement paths all disabled */
+#define LL_ADC_PATH_INTERNAL_VREFINT       (ADC_CCR_TSVREFE)      /*!< ADC measurement path to internal channel VrefInt */
+#define LL_ADC_PATH_INTERNAL_TEMPSENSOR    (ADC_CCR_TSVREFE)      /*!< ADC measurement path to internal channel temperature sensor */
+#define LL_ADC_PATH_INTERNAL_VBAT          (ADC_CCR_VBATE)        /*!< ADC measurement path to internal channel Vbat */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_RESOLUTION  ADC instance - Resolution
+  * @{
+  */
+#define LL_ADC_RESOLUTION_12B              0x00000000UL                         /*!< ADC resolution 12 bits */
+#define LL_ADC_RESOLUTION_10B              (                ADC_CR1_RES_0)     /*!< ADC resolution 10 bits */
+#define LL_ADC_RESOLUTION_8B               (ADC_CR1_RES_1                )     /*!< ADC resolution  8 bits */
+#define LL_ADC_RESOLUTION_6B               (ADC_CR1_RES_1 | ADC_CR1_RES_0)     /*!< ADC resolution  6 bits */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_DATA_ALIGN  ADC instance - Data alignment
+  * @{
+  */
+#define LL_ADC_DATA_ALIGN_RIGHT            0x00000000UL            /*!< ADC conversion data alignment: right aligned (alignment on data register LSB bit 0)*/
+#define LL_ADC_DATA_ALIGN_LEFT             (ADC_CR2_ALIGN)        /*!< ADC conversion data alignment: left aligned (alignment on data register MSB bit 15)*/
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_SCAN_SELECTION ADC instance - Scan selection
+  * @{
+  */
+#define LL_ADC_SEQ_SCAN_DISABLE            0x00000000UL    /*!< ADC conversion is performed in unitary conversion mode (one channel converted, that defined in rank 1). Configuration of both groups regular and injected sequencers (sequence length, ...) is discarded: equivalent to length of 1 rank.*/
+#define LL_ADC_SEQ_SCAN_ENABLE             (ADC_CR1_SCAN) /*!< ADC conversions are performed in sequence conversions mode, according to configuration of both groups regular and injected sequencers (sequence length, ...). */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_GROUPS  ADC instance - Groups
+  * @{
+  */
+#define LL_ADC_GROUP_REGULAR               0x00000001UL   /*!< ADC group regular (available on all STM32 devices) */
+#define LL_ADC_GROUP_INJECTED              0x00000002UL   /*!< ADC group injected (not available on all STM32 devices)*/
+#define LL_ADC_GROUP_REGULAR_INJECTED      0x00000003UL   /*!< ADC both groups regular and injected */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_CHANNEL  ADC instance - Channel number
+  * @{
+  */
+#define LL_ADC_CHANNEL_0                   (ADC_CHANNEL_0_NUMBER  | ADC_CHANNEL_0_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN0  */
+#define LL_ADC_CHANNEL_1                   (ADC_CHANNEL_1_NUMBER  | ADC_CHANNEL_1_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN1  */
+#define LL_ADC_CHANNEL_2                   (ADC_CHANNEL_2_NUMBER  | ADC_CHANNEL_2_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN2  */
+#define LL_ADC_CHANNEL_3                   (ADC_CHANNEL_3_NUMBER  | ADC_CHANNEL_3_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN3  */
+#define LL_ADC_CHANNEL_4                   (ADC_CHANNEL_4_NUMBER  | ADC_CHANNEL_4_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN4  */
+#define LL_ADC_CHANNEL_5                   (ADC_CHANNEL_5_NUMBER  | ADC_CHANNEL_5_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN5  */
+#define LL_ADC_CHANNEL_6                   (ADC_CHANNEL_6_NUMBER  | ADC_CHANNEL_6_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN6  */
+#define LL_ADC_CHANNEL_7                   (ADC_CHANNEL_7_NUMBER  | ADC_CHANNEL_7_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN7  */
+#define LL_ADC_CHANNEL_8                   (ADC_CHANNEL_8_NUMBER  | ADC_CHANNEL_8_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN8  */
+#define LL_ADC_CHANNEL_9                   (ADC_CHANNEL_9_NUMBER  | ADC_CHANNEL_9_SMP)  /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN9  */
+#define LL_ADC_CHANNEL_10                  (ADC_CHANNEL_10_NUMBER | ADC_CHANNEL_10_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN10 */
+#define LL_ADC_CHANNEL_11                  (ADC_CHANNEL_11_NUMBER | ADC_CHANNEL_11_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN11 */
+#define LL_ADC_CHANNEL_12                  (ADC_CHANNEL_12_NUMBER | ADC_CHANNEL_12_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN12 */
+#define LL_ADC_CHANNEL_13                  (ADC_CHANNEL_13_NUMBER | ADC_CHANNEL_13_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN13 */
+#define LL_ADC_CHANNEL_14                  (ADC_CHANNEL_14_NUMBER | ADC_CHANNEL_14_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN14 */
+#define LL_ADC_CHANNEL_15                  (ADC_CHANNEL_15_NUMBER | ADC_CHANNEL_15_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN15 */
+#define LL_ADC_CHANNEL_16                  (ADC_CHANNEL_16_NUMBER | ADC_CHANNEL_16_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN16 */
+#define LL_ADC_CHANNEL_17                  (ADC_CHANNEL_17_NUMBER | ADC_CHANNEL_17_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN17 */
+#define LL_ADC_CHANNEL_18                  (ADC_CHANNEL_18_NUMBER | ADC_CHANNEL_18_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN18 */
+#define LL_ADC_CHANNEL_VREFINT             (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to VrefInt: Internal voltage reference. On STM32F4, ADC channel available only on ADC instance: ADC1. */
+#define LL_ADC_CHANNEL_VBAT                (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to Vbat/3: Vbat voltage through a divider ladder of factor 1/3 to have Vbat always below Vdda. On STM32F4, ADC channel available only on ADC instance: ADC1. */
+#if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F405xx) || defined(STM32F407xx) || defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F415xx) || defined(STM32F417xx)
+#define LL_ADC_CHANNEL_TEMPSENSOR          (LL_ADC_CHANNEL_16 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to Temperature sensor. On STM32F4, ADC channel available only on ADC instance: ADC1. */
+#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F401xC || STM32F401xE || STM32F410xx */
+#if defined(STM32F411xE) || defined(STM32F412Cx) || defined(STM32F412Rx) || defined(STM32F412Vx) || defined(STM32F412Zx) || defined(STM32F413xx) || defined(STM32F423xx) || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+#define LL_ADC_CHANNEL_TEMPSENSOR          (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_DIFFERENCIATION_TEMPSENSOR_VBAT) /*!< ADC internal channel connected to Temperature sensor. On STM32F4, ADC channel available only on ADC instance: ADC1. This internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled. */
+#endif /* STM32F411xE || STM32F412Cx || STM32F412Rx || STM32F412Vx || STM32F412Zx || STM32F413xx || STM32F423xx || STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_REG_TRIGGER_SOURCE  ADC group regular - Trigger source
+  * @{
+  */
+#define LL_ADC_REG_TRIG_SOFTWARE           0x00000000UL                                                                                                 /*!< ADC group regular conversion trigger internal: SW start. */
+#define LL_ADC_REG_TRIG_EXT_TIM1_CH1       (ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                                                             /*!< ADC group regular conversion trigger from external IP: TIM1 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM1_CH2       (ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                                          /*!< ADC group regular conversion trigger from external IP: TIM1 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM1_CH3       (ADC_CR2_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                                          /*!< ADC group regular conversion trigger from external IP: TIM1 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM2_CH2       (ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                       /*!< ADC group regular conversion trigger from external IP: TIM2 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM2_CH3       (ADC_CR2_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                                          /*!< ADC group regular conversion trigger from external IP: TIM2 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM2_CH4       (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                       /*!< ADC group regular conversion trigger from external IP: TIM2 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM2_TRGO      (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                       /*!< ADC group regular conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM3_CH1       (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                    /*!< ADC group regular conversion trigger from external IP: TIM3 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM3_TRGO      (ADC_CR2_EXTSEL_3 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                                          /*!< ADC group regular conversion trigger from external IP: TIM3 TRGO. Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM4_CH4       (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                       /*!< ADC group regular conversion trigger from external IP: TIM4 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM5_CH1       (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                       /*!< ADC group regular conversion trigger from external IP: TIM5 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM5_CH2       (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                    /*!< ADC group regular conversion trigger from external IP: TIM5 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM5_CH3       (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                                       /*!< ADC group regular conversion trigger from external IP: TIM5 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM8_CH1       (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                    /*!< ADC group regular conversion trigger from external IP: TIM8 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_TIM8_TRGO      (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)                    /*!< ADC group regular conversion trigger from external IP: TIM8 TRGO. Trigger edge set to rising edge (default setting). */
+#define LL_ADC_REG_TRIG_EXT_EXTI_LINE11    (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: external interrupt line 11. Trigger edge set to rising edge (default setting). */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_REG_TRIGGER_EDGE  ADC group regular - Trigger edge
+  * @{
+  */
+#define LL_ADC_REG_TRIG_EXT_RISING         (                  ADC_CR2_EXTEN_0)     /*!< ADC group regular conversion trigger polarity set to rising edge */
+#define LL_ADC_REG_TRIG_EXT_FALLING        (ADC_CR2_EXTEN_1                  )     /*!< ADC group regular conversion trigger polarity set to falling edge */
+#define LL_ADC_REG_TRIG_EXT_RISINGFALLING  (ADC_CR2_EXTEN_1 | ADC_CR2_EXTEN_0)     /*!< ADC group regular conversion trigger polarity set to both rising and falling edges */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_REG_CONTINUOUS_MODE  ADC group regular - Continuous mode
+* @{
+*/
+#define LL_ADC_REG_CONV_SINGLE             0x00000000UL             /*!< ADC conversions are performed in single mode: one conversion per trigger */
+#define LL_ADC_REG_CONV_CONTINUOUS         (ADC_CR2_CONT)          /*!< ADC conversions are performed in continuous mode: after the first trigger, following conversions launched successively automatically */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_REG_DMA_TRANSFER  ADC group regular - DMA transfer of ADC conversion data
+  * @{
+  */
+#define LL_ADC_REG_DMA_TRANSFER_NONE       0x00000000UL              /*!< ADC conversions are not transferred by DMA */
+#define LL_ADC_REG_DMA_TRANSFER_LIMITED    (              ADC_CR2_DMA)          /*!< ADC conversion data are transferred by DMA, in limited mode (one shot mode): DMA transfer requests are stopped when number of DMA data transfers (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. */
+#define LL_ADC_REG_DMA_TRANSFER_UNLIMITED  (ADC_CR2_DDS | ADC_CR2_DMA)          /*!< ADC conversion data are transferred by DMA, in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions). This ADC mode is intended to be used with DMA mode circular. */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_REG_FLAG_EOC_SELECTION ADC group regular - Flag EOC selection (unitary or sequence conversions)
+  * @{
+  */
+#define LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV       0x00000000UL    /*!< ADC flag EOC (end of unitary conversion) selected */
+#define LL_ADC_REG_FLAG_EOC_UNITARY_CONV        (ADC_CR2_EOCS) /*!< ADC flag EOS (end of sequence conversions) selected */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_REG_SEQ_SCAN_LENGTH  ADC group regular - Sequencer scan length
+  * @{
+  */
+#define LL_ADC_REG_SEQ_SCAN_DISABLE        0x00000000UL                                                 /*!< ADC group regular sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS  (                                             ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 2 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS  (                              ADC_SQR1_L_1               ) /*!< ADC group regular sequencer enable with 3 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS  (                              ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 4 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS  (               ADC_SQR1_L_2                              ) /*!< ADC group regular sequencer enable with 5 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS  (               ADC_SQR1_L_2                | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 6 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS  (               ADC_SQR1_L_2 | ADC_SQR1_L_1               ) /*!< ADC group regular sequencer enable with 7 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS  (               ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 8 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS  (ADC_SQR1_L_3                                             ) /*!< ADC group regular sequencer enable with 9 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS (ADC_SQR1_L_3                               | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 10 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS (ADC_SQR1_L_3                | ADC_SQR1_L_1               ) /*!< ADC group regular sequencer enable with 11 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS (ADC_SQR1_L_3                | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 12 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2                              ) /*!< ADC group regular sequencer enable with 13 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2                | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 14 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1               ) /*!< ADC group regular sequencer enable with 15 ranks in the sequence */
+#define LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 16 ranks in the sequence */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_REG_SEQ_DISCONT_MODE  ADC group regular - Sequencer discontinuous mode
+  * @{
+  */
+#define LL_ADC_REG_SEQ_DISCONT_DISABLE     0x00000000UL                                                                  /*!< ADC group regular sequencer discontinuous mode disable */
+#define LL_ADC_REG_SEQ_DISCONT_1RANK       (                                                            ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every rank */
+#define LL_ADC_REG_SEQ_DISCONT_2RANKS      (                                        ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enabled with sequence interruption every 2 ranks */
+#define LL_ADC_REG_SEQ_DISCONT_3RANKS      (                    ADC_CR1_DISCNUM_1                     | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 3 ranks */
+#define LL_ADC_REG_SEQ_DISCONT_4RANKS      (                    ADC_CR1_DISCNUM_1 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 4 ranks */
+#define LL_ADC_REG_SEQ_DISCONT_5RANKS      (ADC_CR1_DISCNUM_2                                         | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 5 ranks */
+#define LL_ADC_REG_SEQ_DISCONT_6RANKS      (ADC_CR1_DISCNUM_2                     | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 6 ranks */
+#define LL_ADC_REG_SEQ_DISCONT_7RANKS      (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_1                     | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 7 ranks */
+#define LL_ADC_REG_SEQ_DISCONT_8RANKS      (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_1 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 8 ranks */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_REG_SEQ_RANKS  ADC group regular - Sequencer ranks
+  * @{
+  */
+#define LL_ADC_REG_RANK_1                  (ADC_SQR3_REGOFFSET | ADC_REG_RANK_1_SQRX_BITOFFSET_POS)  /*!< ADC group regular sequencer rank 1 */
+#define LL_ADC_REG_RANK_2                  (ADC_SQR3_REGOFFSET | ADC_REG_RANK_2_SQRX_BITOFFSET_POS)  /*!< ADC group regular sequencer rank 2 */
+#define LL_ADC_REG_RANK_3                  (ADC_SQR3_REGOFFSET | ADC_REG_RANK_3_SQRX_BITOFFSET_POS)  /*!< ADC group regular sequencer rank 3 */
+#define LL_ADC_REG_RANK_4                  (ADC_SQR3_REGOFFSET | ADC_REG_RANK_4_SQRX_BITOFFSET_POS)  /*!< ADC group regular sequencer rank 4 */
+#define LL_ADC_REG_RANK_5                  (ADC_SQR3_REGOFFSET | ADC_REG_RANK_5_SQRX_BITOFFSET_POS)  /*!< ADC group regular sequencer rank 5 */
+#define LL_ADC_REG_RANK_6                  (ADC_SQR3_REGOFFSET | ADC_REG_RANK_6_SQRX_BITOFFSET_POS)  /*!< ADC group regular sequencer rank 6 */
+#define LL_ADC_REG_RANK_7                  (ADC_SQR2_REGOFFSET | ADC_REG_RANK_7_SQRX_BITOFFSET_POS)  /*!< ADC group regular sequencer rank 7 */
+#define LL_ADC_REG_RANK_8                  (ADC_SQR2_REGOFFSET | ADC_REG_RANK_8_SQRX_BITOFFSET_POS)  /*!< ADC group regular sequencer rank 8 */
+#define LL_ADC_REG_RANK_9                  (ADC_SQR2_REGOFFSET | ADC_REG_RANK_9_SQRX_BITOFFSET_POS)  /*!< ADC group regular sequencer rank 9 */
+#define LL_ADC_REG_RANK_10                 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_10_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 10 */
+#define LL_ADC_REG_RANK_11                 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_11_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 11 */
+#define LL_ADC_REG_RANK_12                 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_12_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 12 */
+#define LL_ADC_REG_RANK_13                 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_13_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 13 */
+#define LL_ADC_REG_RANK_14                 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_14_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 14 */
+#define LL_ADC_REG_RANK_15                 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_15_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 15 */
+#define LL_ADC_REG_RANK_16                 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_16_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 16 */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_INJ_TRIGGER_SOURCE  ADC group injected - Trigger source
+  * @{
+  */
+#define LL_ADC_INJ_TRIG_SOFTWARE           0x00000000UL                                                                                                     /*!< ADC group injected conversion trigger internal: SW start. */
+#define LL_ADC_INJ_TRIG_EXT_TIM1_CH4       (ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                                                                 /*!< ADC group injected conversion trigger from external IP: TIM1 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO      (ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                                             /*!< ADC group injected conversion trigger from external IP: TIM1 TRGO. Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM2_CH1       (ADC_CR2_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                                             /*!< ADC group injected conversion trigger from external IP: TIM2 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO      (ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                         /*!< ADC group injected conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM3_CH2       (ADC_CR2_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                                             /*!< ADC group injected conversion trigger from external IP: TIM3 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM3_CH4       (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                         /*!< ADC group injected conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM4_CH1       (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                         /*!< ADC group injected conversion trigger from external IP: TIM4 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM4_CH2       (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                     /*!< ADC group injected conversion trigger from external IP: TIM4 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM4_CH3       (ADC_CR2_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                                             /*!< ADC group injected conversion trigger from external IP: TIM4 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO      (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                         /*!< ADC group injected conversion trigger from external IP: TIM4 TRGO. Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM5_CH4       (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                         /*!< ADC group injected conversion trigger from external IP: TIM5 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM5_TRGO      (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                     /*!< ADC group injected conversion trigger from external IP: TIM5 TRGO. Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM8_CH2       (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                                         /*!< ADC group injected conversion trigger from external IP: TIM8 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM8_CH3       (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                     /*!< ADC group injected conversion trigger from external IP: TIM8 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_TIM8_CH4       (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)                     /*!< ADC group injected conversion trigger from external IP: TIM8 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
+#define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15    (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: external interrupt line 15. Trigger edge set to rising edge (default setting). */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_INJ_TRIGGER_EDGE  ADC group injected - Trigger edge
+  * @{
+  */
+#define LL_ADC_INJ_TRIG_EXT_RISING         (                   ADC_CR2_JEXTEN_0)   /*!< ADC group injected conversion trigger polarity set to rising edge */
+#define LL_ADC_INJ_TRIG_EXT_FALLING        (ADC_CR2_JEXTEN_1                   )   /*!< ADC group injected conversion trigger polarity set to falling edge */
+#define LL_ADC_INJ_TRIG_EXT_RISINGFALLING  (ADC_CR2_JEXTEN_1 | ADC_CR2_JEXTEN_0)   /*!< ADC group injected conversion trigger polarity set to both rising and falling edges */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_INJ_TRIG_AUTO  ADC group injected - Automatic trigger mode
+* @{
+*/
+#define LL_ADC_INJ_TRIG_INDEPENDENT        0x00000000UL            /*!< ADC group injected conversion trigger independent. Setting mandatory if ADC group injected injected trigger source is set to an external trigger. */
+#define LL_ADC_INJ_TRIG_FROM_GRP_REGULAR   (ADC_CR1_JAUTO)        /*!< ADC group injected conversion trigger from ADC group regular. Setting compliant only with group injected trigger source set to SW start, without any further action on  ADC group injected conversion start or stop: in this case, ADC group injected is controlled only from ADC group regular. */
+/**
+  * @}
+  */
+
+
+/** @defgroup ADC_LL_EC_INJ_SEQ_SCAN_LENGTH  ADC group injected - Sequencer scan length
+  * @{
+  */
+#define LL_ADC_INJ_SEQ_SCAN_DISABLE        0x00000000UL                     /*!< ADC group injected sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
+#define LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS  (                ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 2 ranks in the sequence */
+#define LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS  (ADC_JSQR_JL_1                ) /*!< ADC group injected sequencer enable with 3 ranks in the sequence */
+#define LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS  (ADC_JSQR_JL_1 | ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 4 ranks in the sequence */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_INJ_SEQ_DISCONT_MODE  ADC group injected - Sequencer discontinuous mode
+  * @{
+  */
+#define LL_ADC_INJ_SEQ_DISCONT_DISABLE     0x00000000UL            /*!< ADC group injected sequencer discontinuous mode disable */
+#define LL_ADC_INJ_SEQ_DISCONT_1RANK       (ADC_CR1_JDISCEN)      /*!< ADC group injected sequencer discontinuous mode enable with sequence interruption every rank */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_INJ_SEQ_RANKS  ADC group injected - Sequencer ranks
+  * @{
+  */
+#define LL_ADC_INJ_RANK_1                  (ADC_JDR1_REGOFFSET | ADC_JOFR1_REGOFFSET | 0x00000001UL) /*!< ADC group injected sequencer rank 1 */
+#define LL_ADC_INJ_RANK_2                  (ADC_JDR2_REGOFFSET | ADC_JOFR2_REGOFFSET | 0x00000002UL) /*!< ADC group injected sequencer rank 2 */
+#define LL_ADC_INJ_RANK_3                  (ADC_JDR3_REGOFFSET | ADC_JOFR3_REGOFFSET | 0x00000003UL) /*!< ADC group injected sequencer rank 3 */
+#define LL_ADC_INJ_RANK_4                  (ADC_JDR4_REGOFFSET | ADC_JOFR4_REGOFFSET | 0x00000004UL) /*!< ADC group injected sequencer rank 4 */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_CHANNEL_SAMPLINGTIME  Channel - Sampling time
+  * @{
+  */
+#define LL_ADC_SAMPLINGTIME_3CYCLES        0x00000000UL                                              /*!< Sampling time 3 ADC clock cycles */
+#define LL_ADC_SAMPLINGTIME_15CYCLES       (ADC_SMPR1_SMP10_0)                                      /*!< Sampling time 15 ADC clock cycles */
+#define LL_ADC_SAMPLINGTIME_28CYCLES       (ADC_SMPR1_SMP10_1)                                      /*!< Sampling time 28 ADC clock cycles */
+#define LL_ADC_SAMPLINGTIME_56CYCLES       (ADC_SMPR1_SMP10_1 | ADC_SMPR1_SMP10_0)                  /*!< Sampling time 56 ADC clock cycles */
+#define LL_ADC_SAMPLINGTIME_84CYCLES       (ADC_SMPR1_SMP10_2)                                      /*!< Sampling time 84 ADC clock cycles */
+#define LL_ADC_SAMPLINGTIME_112CYCLES      (ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_0)                  /*!< Sampling time 112 ADC clock cycles */
+#define LL_ADC_SAMPLINGTIME_144CYCLES      (ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_1)                  /*!< Sampling time 144 ADC clock cycles */
+#define LL_ADC_SAMPLINGTIME_480CYCLES      (ADC_SMPR1_SMP10)                                        /*!< Sampling time 480 ADC clock cycles */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number
+  * @{
+  */
+#define LL_ADC_AWD1                        (ADC_AWD_CR1_CHANNEL_MASK  | ADC_AWD_CR1_REGOFFSET) /*!< ADC analog watchdog number 1 */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_AWD_CHANNELS  Analog watchdog - Monitored channels
+  * @{
+  */
+#define LL_ADC_AWD_DISABLE                 0x00000000UL                                                                                   /*!< ADC analog watchdog monitoring disabled */
+#define LL_ADC_AWD_ALL_CHANNELS_REG        (                                                             ADC_CR1_AWDEN                 ) /*!< ADC analog watchdog monitoring of all channels, converted by group regular only */
+#define LL_ADC_AWD_ALL_CHANNELS_INJ        (                                            ADC_CR1_JAWDEN                                 ) /*!< ADC analog watchdog monitoring of all channels, converted by group injected only */
+#define LL_ADC_AWD_ALL_CHANNELS_REG_INJ    (                                            ADC_CR1_JAWDEN | ADC_CR1_AWDEN                 ) /*!< ADC analog watchdog monitoring of all channels, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_0_REG           ((LL_ADC_CHANNEL_0  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_0_INJ           ((LL_ADC_CHANNEL_0  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_0_REG_INJ       ((LL_ADC_CHANNEL_0  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_1_REG           ((LL_ADC_CHANNEL_1  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_1_INJ           ((LL_ADC_CHANNEL_1  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_1_REG_INJ       ((LL_ADC_CHANNEL_1  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_2_REG           ((LL_ADC_CHANNEL_2  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_2_INJ           ((LL_ADC_CHANNEL_2  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_2_REG_INJ       ((LL_ADC_CHANNEL_2  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_3_REG           ((LL_ADC_CHANNEL_3  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_3_INJ           ((LL_ADC_CHANNEL_3  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_3_REG_INJ       ((LL_ADC_CHANNEL_3  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_4_REG           ((LL_ADC_CHANNEL_4  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_4_INJ           ((LL_ADC_CHANNEL_4  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_4_REG_INJ       ((LL_ADC_CHANNEL_4  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_5_REG           ((LL_ADC_CHANNEL_5  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_5_INJ           ((LL_ADC_CHANNEL_5  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_5_REG_INJ       ((LL_ADC_CHANNEL_5  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_6_REG           ((LL_ADC_CHANNEL_6  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_6_INJ           ((LL_ADC_CHANNEL_6  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_6_REG_INJ       ((LL_ADC_CHANNEL_6  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_7_REG           ((LL_ADC_CHANNEL_7  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_7_INJ           ((LL_ADC_CHANNEL_7  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_7_REG_INJ       ((LL_ADC_CHANNEL_7  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_8_REG           ((LL_ADC_CHANNEL_8  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_8_INJ           ((LL_ADC_CHANNEL_8  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_8_REG_INJ       ((LL_ADC_CHANNEL_8  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_9_REG           ((LL_ADC_CHANNEL_9  & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_9_INJ           ((LL_ADC_CHANNEL_9  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_9_REG_INJ       ((LL_ADC_CHANNEL_9  & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_10_REG          ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_10_INJ          ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_10_REG_INJ      ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_11_REG          ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_11_INJ          ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_11_REG_INJ      ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_12_REG          ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_12_INJ          ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_12_REG_INJ      ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_13_REG          ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_13_INJ          ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_13_REG_INJ      ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_14_REG          ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_14_INJ          ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_14_REG_INJ      ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_15_REG          ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_15_INJ          ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_15_REG_INJ      ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_16_REG          ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_16_INJ          ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_16_REG_INJ      ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_17_REG          ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_17_INJ          ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_17_REG_INJ      ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by either group regular or injected */
+#define LL_ADC_AWD_CHANNEL_18_REG          ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by group regular only */
+#define LL_ADC_AWD_CHANNEL_18_INJ          ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by group injected only */
+#define LL_ADC_AWD_CHANNEL_18_REG_INJ      ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by either group regular or injected */
+#define LL_ADC_AWD_CH_VREFINT_REG          ((LL_ADC_CHANNEL_VREFINT    & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group regular only */
+#define LL_ADC_AWD_CH_VREFINT_INJ          ((LL_ADC_CHANNEL_VREFINT    & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group injected only */
+#define LL_ADC_AWD_CH_VREFINT_REG_INJ      ((LL_ADC_CHANNEL_VREFINT    & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by either group regular or injected */
+#define LL_ADC_AWD_CH_VBAT_REG             ((LL_ADC_CHANNEL_VBAT       & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Vbat/3: Vbat voltage through a divider ladder of factor 1/3 to have Vbat always below Vdda, converted by group regular only */
+#define LL_ADC_AWD_CH_VBAT_INJ             ((LL_ADC_CHANNEL_VBAT       & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Vbat/3: Vbat voltage through a divider ladder of factor 1/3 to have Vbat always below Vdda, converted by group injected only */
+#define LL_ADC_AWD_CH_VBAT_REG_INJ         ((LL_ADC_CHANNEL_VBAT       & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Vbat/3: Vbat voltage through a divider ladder of factor 1/3 to have Vbat always below Vdda */
+#if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F405xx) || defined(STM32F407xx) || defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F415xx) || defined(STM32F417xx)
+#define LL_ADC_AWD_CH_TEMPSENSOR_REG       ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group regular only */
+#define LL_ADC_AWD_CH_TEMPSENSOR_INJ       ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group injected only */
+#define LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ   ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by either group regular or injected */
+#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F401xC || STM32F401xE || STM32F410xx */
+#if defined(STM32F411xE) || defined(STM32F412Cx) || defined(STM32F412Rx) || defined(STM32F412Vx) || defined(STM32F412Zx) || defined(STM32F413xx) || defined(STM32F423xx) || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+#define LL_ADC_AWD_CH_TEMPSENSOR_REG       ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK)                  | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group regular only. This internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled. */
+#define LL_ADC_AWD_CH_TEMPSENSOR_INJ       ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN                 | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group injected only. This internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled. */
+#define LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ   ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by either group regular or injected. This internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled. */
+#endif /* STM32F411xE || STM32F412Cx || STM32F412Rx || STM32F412Vx || STM32F412Zx || STM32F413xx || STM32F423xx || STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_AWD_THRESHOLDS  Analog watchdog - Thresholds
+  * @{
+  */
+#define LL_ADC_AWD_THRESHOLD_HIGH          (ADC_AWD_TR1_HIGH_REGOFFSET) /*!< ADC analog watchdog threshold high */
+#define LL_ADC_AWD_THRESHOLD_LOW           (ADC_AWD_TR1_LOW_REGOFFSET)  /*!< ADC analog watchdog threshold low */
+/**
+  * @}
+  */
+
+#if defined(ADC_MULTIMODE_SUPPORT)
+/** @defgroup ADC_LL_EC_MULTI_MODE  Multimode - Mode
+  * @{
+  */
+#define LL_ADC_MULTI_INDEPENDENT           0x00000000UL                                                             /*!< ADC dual mode disabled (ADC independent mode) */
+#define LL_ADC_MULTI_DUAL_REG_SIMULT       (                  ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1                  ) /*!< ADC dual mode enabled: group regular simultaneous */
+#define LL_ADC_MULTI_DUAL_REG_INTERL       (                  ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: Combined group regular interleaved */
+#define LL_ADC_MULTI_DUAL_INJ_SIMULT       (                  ADC_CCR_MULTI_2                   | ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: group injected simultaneous */
+#define LL_ADC_MULTI_DUAL_INJ_ALTERN       (ADC_CCR_MULTI_3                                     | ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: group injected alternate trigger. Works only with external triggers (not internal SW start) */
+#define LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM  (                                                      ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: Combined group regular simultaneous + group injected simultaneous */
+#define LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT  (                                    ADC_CCR_MULTI_1                  ) /*!< ADC dual mode enabled: Combined group regular simultaneous + group injected alternate trigger */
+#define LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM  (                                    ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: Combined group regular interleaved + group injected simultaneous */
+#if defined(ADC3)
+#define LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_SIM  (ADC_CCR_MULTI_4                                                       | ADC_CCR_MULTI_0) /*!< ADC triple mode enabled: Combined group regular simultaneous + group injected simultaneous */
+#define LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_ALT  (ADC_CCR_MULTI_4                                     | ADC_CCR_MULTI_1                  ) /*!< ADC triple mode enabled: Combined group regular simultaneous + group injected alternate trigger */
+#define LL_ADC_MULTI_TRIPLE_INJ_SIMULT       (ADC_CCR_MULTI_4                   | ADC_CCR_MULTI_2                   | ADC_CCR_MULTI_0) /*!< ADC triple mode enabled: group injected simultaneous */
+#define LL_ADC_MULTI_TRIPLE_REG_SIMULT       (ADC_CCR_MULTI_4                   | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1                  ) /*!< ADC triple mode enabled: group regular simultaneous */
+#define LL_ADC_MULTI_TRIPLE_REG_INTERL       (ADC_CCR_MULTI_4                   | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0) /*!< ADC triple mode enabled: Combined group regular interleaved */
+#define LL_ADC_MULTI_TRIPLE_INJ_ALTERN       (ADC_CCR_MULTI_4                                                       | ADC_CCR_MULTI_0) /*!< ADC triple mode enabled: group injected alternate trigger. Works only with external triggers (not internal SW start) */
+#endif
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_MULTI_DMA_TRANSFER  Multimode - DMA transfer
+  * @{
+  */
+#define LL_ADC_MULTI_REG_DMA_EACH_ADC        0x00000000UL                                   /*!< ADC multimode group regular conversions are transferred by DMA: each ADC uses its own DMA channel, with its individual DMA transfer settings */
+#define LL_ADC_MULTI_REG_DMA_LIMIT_1         (                              ADC_CCR_DMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (DMA of ADC master), in limited mode (one shot mode): DMA transfer requests are stopped when number of DMA data transfers (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting of DMA mode 1: 2 or 3 (dual or triple mode) half-words one by one, ADC1 then ADC2 then ADC3. */
+#define LL_ADC_MULTI_REG_DMA_LIMIT_2         (              ADC_CCR_DMA_1                ) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (DMA of ADC master), in limited mode (one shot mode): DMA transfer requests are stopped when number of DMA data transfers (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting of DMA mode 2: 2 or 3 (dual or triple mode) half-words one by one, ADC2&1 then ADC1&3 then ADC3&2. */
+#define LL_ADC_MULTI_REG_DMA_LIMIT_3         (              ADC_CCR_DMA_1 | ADC_CCR_DMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (DMA of ADC master), in limited mode (one shot mode): DMA transfer requests are stopped when number of DMA data transfers (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting of DMA mode 3: 2 or 3 (dual or triple mode) bytes one by one, ADC2&1 then ADC1&3 then ADC3&2. */
+#define LL_ADC_MULTI_REG_DMA_UNLMT_1         (ADC_CCR_DDS |                 ADC_CCR_DMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (DMA of ADC master), in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting of DMA mode 1: 2 or 3 (dual or triple mode) half-words one by one, ADC1 then ADC2 then ADC3. */
+#define LL_ADC_MULTI_REG_DMA_UNLMT_2         (ADC_CCR_DDS | ADC_CCR_DMA_1                ) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (DMA of ADC master), in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting of DMA mode 2: 2 or 3 (dual or triple mode) half-words by pairs, ADC2&1 then ADC1&3 then ADC3&2. */
+#define LL_ADC_MULTI_REG_DMA_UNLMT_3         (ADC_CCR_DDS | ADC_CCR_DMA_1 | ADC_CCR_DMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (DMA of ADC master), in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting of DMA mode 3: 2 or 3 (dual or triple mode) bytes one by one, ADC2&1 then ADC1&3 then ADC3&2. */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_MULTI_TWOSMP_DELAY  Multimode - Delay between two sampling phases
+  * @{
+  */
+#define LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES  0x00000000UL                                                             /*!< ADC multimode delay between two sampling phases: 5 ADC clock cycles*/
+#define LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES  (                                                      ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 6 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES  (                                    ADC_CCR_DELAY_1                  ) /*!< ADC multimode delay between two sampling phases: 7 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES  (                                    ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 8 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES  (                  ADC_CCR_DELAY_2                                    ) /*!< ADC multimode delay between two sampling phases: 9 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (                  ADC_CCR_DELAY_2                   | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 10 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (                  ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1                  ) /*!< ADC multimode delay between two sampling phases: 11 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (                  ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 12 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_13CYCLES (ADC_CCR_DELAY_3                                                      ) /*!< ADC multimode delay between two sampling phases: 13 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_14CYCLES (ADC_CCR_DELAY_3                                     | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 14 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_15CYCLES (ADC_CCR_DELAY_3                   | ADC_CCR_DELAY_1                  ) /*!< ADC multimode delay between two sampling phases: 15 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_16CYCLES (ADC_CCR_DELAY_3                   | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 16 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_17CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2                                    ) /*!< ADC multimode delay between two sampling phases: 17 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_18CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2                   | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 18 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_19CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1                  ) /*!< ADC multimode delay between two sampling phases: 19 ADC clock cycles */
+#define LL_ADC_MULTI_TWOSMP_DELAY_20CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 20 ADC clock cycles */
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EC_MULTI_MASTER_SLAVE  Multimode - ADC master or slave
+  * @{
+  */
+#define LL_ADC_MULTI_MASTER                (                    ADC_CDR_RDATA_MST) /*!< In multimode, selection among several ADC instances: ADC master */
+#define LL_ADC_MULTI_SLAVE                 (ADC_CDR_RDATA_SLV                    ) /*!< In multimode, selection among several ADC instances: ADC slave */
+#define LL_ADC_MULTI_MASTER_SLAVE          (ADC_CDR_RDATA_SLV | ADC_CDR_RDATA_MST) /*!< In multimode, selection among several ADC instances: both ADC master and ADC slave */
+/**
+  * @}
+  */
+
+#endif /* ADC_MULTIMODE_SUPPORT */
+
+
+/** @defgroup ADC_LL_EC_HW_DELAYS  Definitions of ADC hardware constraints delays
+  * @note   Only ADC IP HW delays are defined in ADC LL driver driver,
+  *         not timeout values.
+  *         For details on delays values, refer to descriptions in source code
+  *         above each literal definition.
+  * @{
+  */
+  
+/* Note: Only ADC IP HW delays are defined in ADC LL driver driver,           */
+/*       not timeout values.                                                  */
+/*       Timeout values for ADC operations are dependent to device clock      */
+/*       configuration (system clock versus ADC clock),                       */
+/*       and therefore must be defined in user application.                   */
+/*       Indications for estimation of ADC timeout delays, for this           */
+/*       STM32 series:                                                        */
+/*       - ADC enable time: maximum delay is 2us                              */
+/*         (refer to device datasheet, parameter "tSTAB")                     */
+/*       - ADC conversion time: duration depending on ADC clock and ADC       */
+/*         configuration.                                                     */
+/*         (refer to device reference manual, section "Timing")               */
+
+/* Delay for internal voltage reference stabilization time.                   */
+/* Delay set to maximum value (refer to device datasheet,                     */
+/* parameter "tSTART").                                                       */
+/* Unit: us                                                                   */
+#define LL_ADC_DELAY_VREFINT_STAB_US       (  10UL)  /*!< Delay for internal voltage reference stabilization time */
+
+/* Delay for temperature sensor stabilization time.                           */
+/* Literal set to maximum value (refer to device datasheet,                   */
+/* parameter "tSTART").                                                       */
+/* Unit: us                                                                   */
+#define LL_ADC_DELAY_TEMPSENSOR_STAB_US    (  10UL)  /*!< Delay for internal voltage reference stabilization time */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+
+/* Exported macro ------------------------------------------------------------*/
+/** @defgroup ADC_LL_Exported_Macros ADC Exported Macros
+  * @{
+  */
+
+/** @defgroup ADC_LL_EM_WRITE_READ Common write and read registers Macros
+  * @{
+  */
+
+/**
+  * @brief  Write a value in ADC register
+  * @param  __INSTANCE__ ADC Instance
+  * @param  __REG__ Register to be written
+  * @param  __VALUE__ Value to be written in the register
+  * @retval None
+  */
+#define LL_ADC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
+
+/**
+  * @brief  Read a value in ADC register
+  * @param  __INSTANCE__ ADC Instance
+  * @param  __REG__ Register to be read
+  * @retval Register value
+  */
+#define LL_ADC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro
+  * @{
+  */
+
+/**
+  * @brief  Helper macro to get ADC channel number in decimal format
+  *         from literals LL_ADC_CHANNEL_x.
+  * @note   Example:
+  *           __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4)
+  *           will return decimal number "4".
+  * @note   The input can be a value from functions where a channel
+  *         number is returned, either defined with number
+  *         or with bitfield (only one bit must be set).
+  * @param  __CHANNEL__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  * @retval Value between Min_Data=0 and Max_Data=18
+  */
+#define __LL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__)                                        \
+  (((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS)
+
+/**
+  * @brief  Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x
+  *         from number in decimal format.
+  * @note   Example:
+  *           __LL_ADC_DECIMAL_NB_TO_CHANNEL(4)
+  *           will return a data equivalent to "LL_ADC_CHANNEL_4".
+  * @param  __DECIMAL_NB__ Value between Min_Data=0 and Max_Data=18
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.\n
+  *         (1) For ADC channel read back from ADC register,
+  *             comparison with internal channel parameter to be done
+  *             using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
+  */
+#define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__)                                                          \
+  (((__DECIMAL_NB__) <= 9UL)                                                                                     \
+    ? (                                                                                                         \
+       ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS)                                       |        \
+       (ADC_SMPR2_REGOFFSET | (((uint32_t) (3UL * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS))         \
+      )                                                                                                         \
+      :                                                                                                         \
+      (                                                                                                         \
+       ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS)                                              | \
+       (ADC_SMPR1_REGOFFSET | (((uint32_t) (3UL * ((__DECIMAL_NB__) - 10UL))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
+      )                                                                                                         \
+  )
+
+/**
+  * @brief  Helper macro to determine whether the selected channel
+  *         corresponds to literal definitions of driver.
+  * @note   The different literal definitions of ADC channels are:
+  *         - ADC internal channel:
+  *           LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...
+  *         - ADC external channel (channel connected to a GPIO pin):
+  *           LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...
+  * @note   The channel parameter must be a value defined from literal
+  *         definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
+  *         LL_ADC_CHANNEL_TEMPSENSOR, ...),
+  *         ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...),
+  *         must not be a value from functions where a channel number is
+  *         returned from ADC registers,
+  *         because internal and external channels share the same channel
+  *         number in ADC registers. The differentiation is made only with
+  *         parameters definitions of driver.
+  * @param  __CHANNEL__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel connected to a GPIO pin).
+  *         Value "1" if the channel corresponds to a parameter definition of a ADC internal channel.
+  */
+#define __LL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__)                              \
+  (((__CHANNEL__) & ADC_CHANNEL_ID_INTERNAL_CH_MASK) != 0UL)
+
+/**
+  * @brief  Helper macro to convert a channel defined from parameter
+  *         definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
+  *         LL_ADC_CHANNEL_TEMPSENSOR, ...),
+  *         to its equivalent parameter definition of a ADC external channel
+  *         (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...).
+  * @note   The channel parameter can be, additionally to a value
+  *         defined from parameter definition of a ADC internal channel
+  *         (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...),
+  *         a value defined from parameter definition of
+  *         ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
+  *         or a value from functions where a channel number is returned
+  *         from ADC registers.
+  * @param  __CHANNEL__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  */
+#define __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__)                     \
+  ((__CHANNEL__) & ~ADC_CHANNEL_ID_INTERNAL_CH_MASK)
+
+/**
+  * @brief  Helper macro to determine whether the internal channel
+  *         selected is available on the ADC instance selected.
+  * @note   The channel parameter must be a value defined from parameter
+  *         definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
+  *         LL_ADC_CHANNEL_TEMPSENSOR, ...),
+  *         must not be a value defined from parameter definition of
+  *         ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
+  *         or a value from functions where a channel number is
+  *         returned from ADC registers,
+  *         because internal and external channels share the same channel
+  *         number in ADC registers. The differentiation is made only with
+  *         parameters definitions of driver.
+  * @param  __ADC_INSTANCE__ ADC instance
+  * @param  __CHANNEL__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  * @retval Value "0" if the internal channel selected is not available on the ADC instance selected.
+  *         Value "1" if the internal channel selected is available on the ADC instance selected.
+  */
+#define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__)  \
+  (                                                                            \
+   ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT)    ||                             \
+   ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) ||                             \
+   ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT)                                      \
+  )
+/**
+  * @brief  Helper macro to define ADC analog watchdog parameter:
+  *         define a single channel to monitor with analog watchdog
+  *         from sequencer channel and groups definition.
+  * @note   To be used with function @ref LL_ADC_SetAnalogWDMonitChannels().
+  *         Example:
+  *           LL_ADC_SetAnalogWDMonitChannels(
+  *             ADC1, LL_ADC_AWD1,
+  *             __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR))
+  * @param  __CHANNEL__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.\n
+  *         (1) For ADC channel read back from ADC register,
+  *             comparison with internal channel parameter to be done
+  *             using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
+  * @param  __GROUP__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_GROUP_REGULAR
+  *         @arg @ref LL_ADC_GROUP_INJECTED
+  *         @arg @ref LL_ADC_GROUP_REGULAR_INJECTED
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_AWD_DISABLE
+  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
+  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
+  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_0_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_1_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_2_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_3_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_4_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_5_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_6_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_7_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_8_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_9_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_10_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_11_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_12_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_13_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_14_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_15_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_16_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_17_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_18_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CH_VREFINT_REG          (1)
+  *         @arg @ref LL_ADC_AWD_CH_VREFINT_INJ          (1)
+  *         @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ      (1)
+  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG       (1)(2)
+  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ       (1)(2)
+  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ   (1)(2)
+  *         @arg @ref LL_ADC_AWD_CH_VBAT_REG             (1)
+  *         @arg @ref LL_ADC_AWD_CH_VBAT_INJ             (1)
+  *         @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  */
+#define __LL_ADC_ANALOGWD_CHANNEL_GROUP(__CHANNEL__, __GROUP__)                                           \
+  (((__GROUP__) == LL_ADC_GROUP_REGULAR)                                                                  \
+    ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL)                            \
+      :                                                                                                   \
+      ((__GROUP__) == LL_ADC_GROUP_INJECTED)                                                              \
+       ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL)                        \
+         :                                                                                                \
+         (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL)        \
+  )
+
+/**
+  * @brief  Helper macro to set the value of ADC analog watchdog threshold high
+  *         or low in function of ADC resolution, when ADC resolution is
+  *         different of 12 bits.
+  * @note   To be used with function @ref LL_ADC_SetAnalogWDThresholds().
+  *         Example, with a ADC resolution of 8 bits, to set the value of
+  *         analog watchdog threshold high (on 8 bits):
+  *           LL_ADC_SetAnalogWDThresholds
+  *            (< ADCx param >,
+  *             __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, <threshold_value_8_bits>)
+  *            );
+  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @param  __AWD_THRESHOLD__ Value between Min_Data=0x000 and Max_Data=0xFFF
+  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
+  */
+#define __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD__) \
+  ((__AWD_THRESHOLD__) << ((__ADC_RESOLUTION__) >> (ADC_CR1_RES_BITOFFSET_POS - 1UL )))
+
+/**
+  * @brief  Helper macro to get the value of ADC analog watchdog threshold high
+  *         or low in function of ADC resolution, when ADC resolution is 
+  *         different of 12 bits.
+  * @note   To be used with function @ref LL_ADC_GetAnalogWDThresholds().
+  *         Example, with a ADC resolution of 8 bits, to get the value of
+  *         analog watchdog threshold high (on 8 bits):
+  *           < threshold_value_6_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION
+  *            (LL_ADC_RESOLUTION_8B,
+  *             LL_ADC_GetAnalogWDThresholds(<ADCx param>, LL_ADC_AWD_THRESHOLD_HIGH)
+  *            );
+  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @param  __AWD_THRESHOLD_12_BITS__ Value between Min_Data=0x000 and Max_Data=0xFFF
+  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
+  */
+#define __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD_12_BITS__) \
+  ((__AWD_THRESHOLD_12_BITS__) >> ((__ADC_RESOLUTION__) >> (ADC_CR1_RES_BITOFFSET_POS - 1UL )))
+
+#if defined(ADC_MULTIMODE_SUPPORT)
+/**
+  * @brief  Helper macro to get the ADC multimode conversion data of ADC master
+  *         or ADC slave from raw value with both ADC conversion data concatenated.
+  * @note   This macro is intended to be used when multimode transfer by DMA
+  *         is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer().
+  *         In this case the transferred data need to processed with this macro
+  *         to separate the conversion data of ADC master and ADC slave.
+  * @param  __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_MULTI_MASTER
+  *         @arg @ref LL_ADC_MULTI_SLAVE
+  * @param  __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF
+  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
+  */
+#define __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__)  \
+  (((__ADC_MULTI_CONV_DATA__) >> POSITION_VAL((__ADC_MULTI_MASTER_SLAVE__))) & ADC_CDR_RDATA_MST)
+#endif
+
+/**
+  * @brief  Helper macro to select the ADC common instance
+  *         to which is belonging the selected ADC instance.
+  * @note   ADC common register instance can be used for:
+  *         - Set parameters common to several ADC instances
+  *         - Multimode (for devices with several ADC instances)
+  *         Refer to functions having argument "ADCxy_COMMON" as parameter.
+  * @param  __ADCx__ ADC instance
+  * @retval ADC common register instance
+  */
+#if defined(ADC1) && defined(ADC2) && defined(ADC3)
+#define __LL_ADC_COMMON_INSTANCE(__ADCx__)                                     \
+  (ADC123_COMMON)
+#elif defined(ADC1) && defined(ADC2)
+#define __LL_ADC_COMMON_INSTANCE(__ADCx__)                                     \
+  (ADC12_COMMON)
+#else
+#define __LL_ADC_COMMON_INSTANCE(__ADCx__)                                     \
+  (ADC1_COMMON)
+#endif
+
+/**
+  * @brief  Helper macro to check if all ADC instances sharing the same
+  *         ADC common instance are disabled.
+  * @note   This check is required by functions with setting conditioned to
+  *         ADC state:
+  *         All ADC instances of the ADC common group must be disabled.
+  *         Refer to functions having argument "ADCxy_COMMON" as parameter.
+  * @note   On devices with only 1 ADC common instance, parameter of this macro
+  *         is useless and can be ignored (parameter kept for compatibility
+  *         with devices featuring several ADC common instances).
+  * @param  __ADCXY_COMMON__ ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval Value "0" if all ADC instances sharing the same ADC common instance
+  *         are disabled.
+  *         Value "1" if at least one ADC instance sharing the same ADC common instance
+  *         is enabled.
+  */
+#if defined(ADC1) && defined(ADC2) && defined(ADC3)
+#define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__)              \
+  (LL_ADC_IsEnabled(ADC1) |                                                    \
+   LL_ADC_IsEnabled(ADC2) |                                                    \
+   LL_ADC_IsEnabled(ADC3)  )
+#elif defined(ADC1) && defined(ADC2)
+#define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__)              \
+  (LL_ADC_IsEnabled(ADC1) |                                                    \
+   LL_ADC_IsEnabled(ADC2)  )
+#else
+#define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__)              \
+  (LL_ADC_IsEnabled(ADC1))
+#endif
+
+/**
+  * @brief  Helper macro to define the ADC conversion data full-scale digital
+  *         value corresponding to the selected ADC resolution.
+  * @note   ADC conversion data full-scale corresponds to voltage range
+  *         determined by analog voltage references Vref+ and Vref-
+  *         (refer to reference manual).
+  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @retval ADC conversion data equivalent voltage value (unit: mVolt)
+  */
+#define __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)                             \
+  (0xFFFU >> ((__ADC_RESOLUTION__) >> (ADC_CR1_RES_BITOFFSET_POS - 1UL)))
+
+/**
+  * @brief  Helper macro to convert the ADC conversion data from
+  *         a resolution to another resolution.
+  * @param  __DATA__ ADC conversion data to be converted 
+  * @param  __ADC_RESOLUTION_CURRENT__ Resolution of to the data to be converted
+  *         This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @param  __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion
+  *         This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @retval ADC conversion data to the requested resolution
+  */
+#define __LL_ADC_CONVERT_DATA_RESOLUTION(__DATA__, __ADC_RESOLUTION_CURRENT__, __ADC_RESOLUTION_TARGET__) \
+  (((__DATA__)                                                                 \
+    << ((__ADC_RESOLUTION_CURRENT__) >> (ADC_CR1_RES_BITOFFSET_POS - 1UL)))     \
+   >> ((__ADC_RESOLUTION_TARGET__) >> (ADC_CR1_RES_BITOFFSET_POS - 1UL))        \
+  )
+
+/**
+  * @brief  Helper macro to calculate the voltage (unit: mVolt)
+  *         corresponding to a ADC conversion data (unit: digital value).
+  * @note   Analog reference voltage (Vref+) must be either known from
+  *         user board environment or can be calculated using ADC measurement
+  *         and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
+  * @param  __VREFANALOG_VOLTAGE__ Analog reference voltage (unit mV)
+  * @param  __ADC_DATA__ ADC conversion data (resolution 12 bits)
+  *                       (unit: digital value).
+  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @retval ADC conversion data equivalent voltage value (unit: mVolt)
+  */
+#define __LL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\
+                                      __ADC_DATA__,\
+                                      __ADC_RESOLUTION__)                      \
+  ((__ADC_DATA__) * (__VREFANALOG_VOLTAGE__)                                   \
+   / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)                                \
+  )
+
+/**
+  * @brief  Helper macro to calculate analog reference voltage (Vref+)
+  *         (unit: mVolt) from ADC conversion data of internal voltage
+  *         reference VrefInt.
+  * @note   Computation is using VrefInt calibration value
+  *         stored in system memory for each device during production.
+  * @note   This voltage depends on user board environment: voltage level
+  *         connected to pin Vref+.
+  *         On devices with small package, the pin Vref+ is not present
+  *         and internally bonded to pin Vdda.
+  * @note   On this STM32 series, calibration data of internal voltage reference
+  *         VrefInt corresponds to a resolution of 12 bits,
+  *         this is the recommended ADC resolution to convert voltage of
+  *         internal voltage reference VrefInt.
+  *         Otherwise, this macro performs the processing to scale
+  *         ADC conversion data to 12 bits.
+  * @param  __VREFINT_ADC_DATA__ ADC conversion data (resolution 12 bits)
+  *         of internal voltage reference VrefInt (unit: digital value).
+  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @retval Analog reference voltage (unit: mV)
+  */
+#define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\
+                                         __ADC_RESOLUTION__)                   \
+  (((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF)                          \
+   / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__),                  \
+                                      (__ADC_RESOLUTION__),                    \
+                                      LL_ADC_RESOLUTION_12B))
+
+/* Note: On device STM32F4x9, calibration parameter TS_CAL2 is not available. */
+/*       Therefore, helper macro __LL_ADC_CALC_TEMPERATURE() is not available.*/
+/*       Use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS().        */
+#if !defined(STM32F469) && !defined(STM32F479xx) && !defined(STM32F429xx) && !defined(STM32F439xx)
+/**
+  * @brief  Helper macro to calculate the temperature (unit: degree Celsius)
+  *         from ADC conversion data of internal temperature sensor.
+  * @note   Computation is using temperature sensor calibration values
+  *         stored in system memory for each device during production.
+  * @note   Calculation formula:
+  *           Temperature = ((TS_ADC_DATA - TS_CAL1)
+  *                           * (TS_CAL2_TEMP - TS_CAL1_TEMP))
+  *                         / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
+  *           with TS_ADC_DATA = temperature sensor raw data measured by ADC
+  *                Avg_Slope = (TS_CAL2 - TS_CAL1)
+  *                            / (TS_CAL2_TEMP - TS_CAL1_TEMP)
+  *                TS_CAL1   = equivalent TS_ADC_DATA at temperature
+  *                            TEMP_DEGC_CAL1 (calibrated in factory)
+  *                TS_CAL2   = equivalent TS_ADC_DATA at temperature
+  *                            TEMP_DEGC_CAL2 (calibrated in factory)
+  *         Caution: Calculation relevancy under reserve that calibration
+  *                  parameters are correct (address and data).
+  *                  To calculate temperature using temperature sensor
+  *                  datasheet typical values (generic values less, therefore
+  *                  less accurate than calibrated values),
+  *                  use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS().
+  * @note   As calculation input, the analog reference voltage (Vref+) must be
+  *         defined as it impacts the ADC LSB equivalent voltage.
+  * @note   Analog reference voltage (Vref+) must be either known from
+  *         user board environment or can be calculated using ADC measurement
+  *         and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
+  * @note   On this STM32 series, calibration data of temperature sensor
+  *         corresponds to a resolution of 12 bits,
+  *         this is the recommended ADC resolution to convert voltage of
+  *         temperature sensor.
+  *         Otherwise, this macro performs the processing to scale
+  *         ADC conversion data to 12 bits.
+  * @param  __VREFANALOG_VOLTAGE__  Analog reference voltage (unit mV)
+  * @param  __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal
+  *                                 temperature sensor (unit: digital value).
+  * @param  __ADC_RESOLUTION__      ADC resolution at which internal temperature
+  *                                 sensor voltage has been measured.
+  *         This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @retval Temperature (unit: degree Celsius)
+  */
+#define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\
+                                  __TEMPSENSOR_ADC_DATA__,\
+                                  __ADC_RESOLUTION__)                              \
+  (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__),     \
+                                                    (__ADC_RESOLUTION__),          \
+                                                    LL_ADC_RESOLUTION_12B)         \
+                   * (__VREFANALOG_VOLTAGE__))                                     \
+                  / TEMPSENSOR_CAL_VREFANALOG)                                     \
+        - (int32_t) *TEMPSENSOR_CAL1_ADDR)                                         \
+     ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP)                    \
+    ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \
+   ) + TEMPSENSOR_CAL1_TEMP                                                        \
+  )
+#endif
+
+/**
+  * @brief  Helper macro to calculate the temperature (unit: degree Celsius)
+  *         from ADC conversion data of internal temperature sensor.
+  * @note   Computation is using temperature sensor typical values
+  *         (refer to device datasheet).
+  * @note   Calculation formula:
+  *           Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV)
+  *                         / Avg_Slope + CALx_TEMP
+  *           with TS_ADC_DATA      = temperature sensor raw data measured by ADC
+  *                                   (unit: digital value)
+  *                Avg_Slope        = temperature sensor slope
+  *                                   (unit: uV/Degree Celsius)
+  *                TS_TYP_CALx_VOLT = temperature sensor digital value at
+  *                                   temperature CALx_TEMP (unit: mV)
+  *         Caution: Calculation relevancy under reserve the temperature sensor
+  *                  of the current device has characteristics in line with
+  *                  datasheet typical values.
+  *                  If temperature sensor calibration values are available on
+  *                  on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()),
+  *                  temperature calculation will be more accurate using
+  *                  helper macro @ref __LL_ADC_CALC_TEMPERATURE().
+  * @note   As calculation input, the analog reference voltage (Vref+) must be
+  *         defined as it impacts the ADC LSB equivalent voltage.
+  * @note   Analog reference voltage (Vref+) must be either known from
+  *         user board environment or can be calculated using ADC measurement
+  *         and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
+  * @note   ADC measurement data must correspond to a resolution of 12bits
+  *         (full scale digital value 4095). If not the case, the data must be
+  *         preliminarily rescaled to an equivalent resolution of 12 bits.
+  * @param  __TEMPSENSOR_TYP_AVGSLOPE__   Device datasheet data Temperature sensor slope typical value (unit uV/DegCelsius).
+  *                                       On STM32F4, refer to device datasheet parameter "Avg_Slope".
+  * @param  __TEMPSENSOR_TYP_CALX_V__     Device datasheet data Temperature sensor voltage typical value (at temperature and Vref+ defined in parameters below) (unit mV).
+  *                                       On STM32F4, refer to device datasheet parameter "V25".
+  * @param  __TEMPSENSOR_CALX_TEMP__      Device datasheet data Temperature at which temperature sensor voltage (see parameter above) is corresponding (unit mV)
+  * @param  __VREFANALOG_VOLTAGE__        Analog voltage reference (Vref+) voltage (unit mV)
+  * @param  __TEMPSENSOR_ADC_DATA__       ADC conversion data of internal temperature sensor (unit digital value).
+  * @param  __ADC_RESOLUTION__            ADC resolution at which internal temperature sensor voltage has been measured.
+  *         This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @retval Temperature (unit: degree Celsius)
+  */
+#define __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\
+                                             __TEMPSENSOR_TYP_CALX_V__,\
+                                             __TEMPSENSOR_CALX_TEMP__,\
+                                             __VREFANALOG_VOLTAGE__,\
+                                             __TEMPSENSOR_ADC_DATA__,\
+                                             __ADC_RESOLUTION__)               \
+  ((( (                                                                        \
+       (int32_t)(((__TEMPSENSOR_TYP_CALX_V__))                                 \
+                 * 1000)                                                       \
+       -                                                                       \
+       (int32_t)((((__TEMPSENSOR_ADC_DATA__) * (__VREFANALOG_VOLTAGE__))       \
+                  / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__))                \
+                 * 1000)                                                       \
+      )                                                                        \
+    ) / (__TEMPSENSOR_TYP_AVGSLOPE__)                                          \
+   ) + (__TEMPSENSOR_CALX_TEMP__)                                              \
+  )
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+
+/* Exported functions --------------------------------------------------------*/
+/** @defgroup ADC_LL_Exported_Functions ADC Exported Functions
+  * @{
+  */
+
+/** @defgroup ADC_LL_EF_DMA_Management ADC DMA management
+  * @{
+  */
+/* Note: LL ADC functions to set DMA transfer are located into sections of    */
+/*       configuration of ADC instance, groups and multimode (if available):  */
+/*       @ref LL_ADC_REG_SetDMATransfer(), ...                                */
+
+/**
+  * @brief  Function to help to configure DMA transfer from ADC: retrieve the
+  *         ADC register address from ADC instance and a list of ADC registers
+  *         intended to be used (most commonly) with DMA transfer.
+  * @note   These ADC registers are data registers:
+  *         when ADC conversion data is available in ADC data registers,
+  *         ADC generates a DMA transfer request.
+  * @note   This macro is intended to be used with LL DMA driver, refer to
+  *         function "LL_DMA_ConfigAddresses()".
+  *         Example:
+  *           LL_DMA_ConfigAddresses(DMA1,
+  *                                  LL_DMA_CHANNEL_1,
+  *                                  LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA),
+  *                                  (uint32_t)&< array or variable >,
+  *                                  LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
+  * @note   For devices with several ADC: in multimode, some devices
+  *         use a different data register outside of ADC instance scope
+  *         (common data register). This macro manages this register difference,
+  *         only ADC instance has to be set as parameter.
+  * @rmtoll DR       RDATA          LL_ADC_DMA_GetRegAddr\n
+  *         CDR      RDATA_MST      LL_ADC_DMA_GetRegAddr\n
+  *         CDR      RDATA_SLV      LL_ADC_DMA_GetRegAddr
+  * @param  ADCx ADC instance
+  * @param  Register This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_DMA_REG_REGULAR_DATA
+  *         @arg @ref LL_ADC_DMA_REG_REGULAR_DATA_MULTI (1)
+  *         
+  *         (1) Available on devices with several ADC instances.
+  * @retval ADC register address
+  */
+#if defined(ADC_MULTIMODE_SUPPORT)
+__STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register)
+{
+  uint32_t data_reg_addr = 0UL;
+  
+  if (Register == LL_ADC_DMA_REG_REGULAR_DATA)
+  {
+    /* Retrieve address of register DR */
+    data_reg_addr = (uint32_t)&(ADCx->DR);
+  }
+  else /* (Register == LL_ADC_DMA_REG_REGULAR_DATA_MULTI) */
+  {
+    /* Retrieve address of register CDR */
+    data_reg_addr = (uint32_t)&((__LL_ADC_COMMON_INSTANCE(ADCx))->CDR);
+  }
+  
+  return data_reg_addr;
+}
+#else
+__STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register)
+{
+  /* Retrieve address of register DR */
+  return (uint32_t)&(ADCx->DR);
+}
+#endif
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to several ADC instances
+  * @{
+  */
+
+/**
+  * @brief  Set parameter common to several ADC: Clock source and prescaler.
+  * @rmtoll CCR      ADCPRE         LL_ADC_SetCommonClock
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @param  CommonClock This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
+  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
+  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV6
+  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV8
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock)
+{
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_ADCPRE, CommonClock);
+}
+
+/**
+  * @brief  Get parameter common to several ADC: Clock source and prescaler.
+  * @rmtoll CCR      ADCPRE         LL_ADC_GetCommonClock
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
+  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
+  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV6
+  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV8
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_ADCPRE));
+}
+
+/**
+  * @brief  Set parameter common to several ADC: measurement path to internal
+  *         channels (VrefInt, temperature sensor, ...).
+  * @note   One or several values can be selected.
+  *         Example: (LL_ADC_PATH_INTERNAL_VREFINT |
+  *                   LL_ADC_PATH_INTERNAL_TEMPSENSOR)
+  * @note   Stabilization time of measurement path to internal channel:
+  *         After enabling internal paths, before starting ADC conversion,
+  *         a delay is required for internal voltage reference and
+  *         temperature sensor stabilization time.
+  *         Refer to device datasheet.
+  *         Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US.
+  *         Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US.
+  * @note   ADC internal channel sampling time constraint:
+  *         For ADC conversion of internal channels,
+  *         a sampling time minimum value is required.
+  *         Refer to device datasheet.
+  * @rmtoll CCR      TSVREFE        LL_ADC_SetCommonPathInternalCh\n
+  *         CCR      VBATE          LL_ADC_SetCommonPathInternalCh
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @param  PathInternal This parameter can be a combination of the following values:
+  *         @arg @ref LL_ADC_PATH_INTERNAL_NONE
+  *         @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
+  *         @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
+  *         @arg @ref LL_ADC_PATH_INTERNAL_VBAT
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal)
+{
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_TSVREFE | ADC_CCR_VBATE, PathInternal);
+}
+
+/**
+  * @brief  Get parameter common to several ADC: measurement path to internal
+  *         channels (VrefInt, temperature sensor, ...).
+  * @note   One or several values can be selected.
+  *         Example: (LL_ADC_PATH_INTERNAL_VREFINT |
+  *                   LL_ADC_PATH_INTERNAL_TEMPSENSOR)
+  * @rmtoll CCR      TSVREFE        LL_ADC_GetCommonPathInternalCh\n
+  *         CCR      VBATE          LL_ADC_GetCommonPathInternalCh
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval Returned value can be a combination of the following values:
+  *         @arg @ref LL_ADC_PATH_INTERNAL_NONE
+  *         @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
+  *         @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
+  *         @arg @ref LL_ADC_PATH_INTERNAL_VBAT
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_TSVREFE | ADC_CCR_VBATE));
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC instance
+  * @{
+  */
+
+/**
+  * @brief  Set ADC resolution.
+  *         Refer to reference manual for alignments formats
+  *         dependencies to ADC resolutions.
+  * @rmtoll CR1      RES            LL_ADC_SetResolution
+  * @param  ADCx ADC instance
+  * @param  Resolution This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetResolution(ADC_TypeDef *ADCx, uint32_t Resolution)
+{
+  MODIFY_REG(ADCx->CR1, ADC_CR1_RES, Resolution);
+}
+
+/**
+  * @brief  Get ADC resolution.
+  *         Refer to reference manual for alignments formats
+  *         dependencies to ADC resolutions.
+  * @rmtoll CR1      RES            LL_ADC_GetResolution
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_RESOLUTION_12B
+  *         @arg @ref LL_ADC_RESOLUTION_10B
+  *         @arg @ref LL_ADC_RESOLUTION_8B
+  *         @arg @ref LL_ADC_RESOLUTION_6B
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetResolution(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_RES));
+}
+
+/**
+  * @brief  Set ADC conversion data alignment.
+  * @note   Refer to reference manual for alignments formats
+  *         dependencies to ADC resolutions.
+  * @rmtoll CR2      ALIGN          LL_ADC_SetDataAlignment
+  * @param  ADCx ADC instance
+  * @param  DataAlignment This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_DATA_ALIGN_RIGHT
+  *         @arg @ref LL_ADC_DATA_ALIGN_LEFT
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetDataAlignment(ADC_TypeDef *ADCx, uint32_t DataAlignment)
+{
+  MODIFY_REG(ADCx->CR2, ADC_CR2_ALIGN, DataAlignment);
+}
+
+/**
+  * @brief  Get ADC conversion data alignment.
+  * @note   Refer to reference manual for alignments formats
+  *         dependencies to ADC resolutions.
+  * @rmtoll CR2      ALIGN          LL_ADC_SetDataAlignment
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_DATA_ALIGN_RIGHT
+  *         @arg @ref LL_ADC_DATA_ALIGN_LEFT
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetDataAlignment(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_ALIGN));
+}
+
+/**
+  * @brief  Set ADC sequencers scan mode, for all ADC groups
+  *         (group regular, group injected).
+  * @note  According to sequencers scan mode :
+  *         - If disabled: ADC conversion is performed in unitary conversion
+  *           mode (one channel converted, that defined in rank 1).
+  *           Configuration of sequencers of all ADC groups
+  *           (sequencer scan length, ...) is discarded: equivalent to
+  *           scan length of 1 rank.
+  *         - If enabled: ADC conversions are performed in sequence conversions
+  *           mode, according to configuration of sequencers of
+  *           each ADC group (sequencer scan length, ...).
+  *           Refer to function @ref LL_ADC_REG_SetSequencerLength()
+  *           and to function @ref LL_ADC_INJ_SetSequencerLength().
+  * @rmtoll CR1      SCAN           LL_ADC_SetSequencersScanMode
+  * @param  ADCx ADC instance
+  * @param  ScanMode This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_SEQ_SCAN_DISABLE
+  *         @arg @ref LL_ADC_SEQ_SCAN_ENABLE
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetSequencersScanMode(ADC_TypeDef *ADCx, uint32_t ScanMode)
+{
+  MODIFY_REG(ADCx->CR1, ADC_CR1_SCAN, ScanMode);
+}
+
+/**
+  * @brief  Get ADC sequencers scan mode, for all ADC groups
+  *         (group regular, group injected).
+  * @note  According to sequencers scan mode :
+  *         - If disabled: ADC conversion is performed in unitary conversion
+  *           mode (one channel converted, that defined in rank 1).
+  *           Configuration of sequencers of all ADC groups
+  *           (sequencer scan length, ...) is discarded: equivalent to
+  *           scan length of 1 rank.
+  *         - If enabled: ADC conversions are performed in sequence conversions
+  *           mode, according to configuration of sequencers of
+  *           each ADC group (sequencer scan length, ...).
+  *           Refer to function @ref LL_ADC_REG_SetSequencerLength()
+  *           and to function @ref LL_ADC_INJ_SetSequencerLength().
+  * @rmtoll CR1      SCAN           LL_ADC_GetSequencersScanMode
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_SEQ_SCAN_DISABLE
+  *         @arg @ref LL_ADC_SEQ_SCAN_ENABLE
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetSequencersScanMode(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_SCAN));
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: group regular
+  * @{
+  */
+
+/**
+  * @brief  Set ADC group regular conversion trigger source:
+  *         internal (SW start) or from external IP (timer event,
+  *         external interrupt line).
+  * @note   On this STM32 series, setting of external trigger edge is performed
+  *         using function @ref LL_ADC_REG_StartConversionExtTrig().
+  * @note   Availability of parameters of trigger sources from timer 
+  *         depends on timers availability on the selected device.
+  * @rmtoll CR2      EXTSEL         LL_ADC_REG_SetTriggerSource\n
+  *         CR2      EXTEN          LL_ADC_REG_SetTriggerSource
+  * @param  ADCx ADC instance
+  * @param  TriggerSource This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_REG_TRIG_SOFTWARE
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH4
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM5_CH1
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM5_CH2
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM5_CH3
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
+{
+/* Note: On this STM32 series, ADC group regular external trigger edge        */
+/*       is used to perform a ADC conversion start.                           */
+/*       This function does not set external trigger edge.                    */
+/*       This feature is set using function                                   */
+/*       @ref LL_ADC_REG_StartConversionExtTrig().                            */
+  MODIFY_REG(ADCx->CR2, ADC_CR2_EXTSEL, (TriggerSource & ADC_CR2_EXTSEL));
+}
+
+/**
+  * @brief  Get ADC group regular conversion trigger source:
+  *         internal (SW start) or from external IP (timer event,
+  *         external interrupt line).
+  * @note   To determine whether group regular trigger source is
+  *         internal (SW start) or external, without detail
+  *         of which peripheral is selected as external trigger,
+  *         (equivalent to 
+  *         "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)")
+  *         use function @ref LL_ADC_REG_IsTriggerSourceSWStart.
+  * @note   Availability of parameters of trigger sources from timer 
+  *         depends on timers availability on the selected device.
+  * @rmtoll CR2      EXTSEL         LL_ADC_REG_GetTriggerSource\n
+  *         CR2      EXTEN          LL_ADC_REG_GetTriggerSource
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_REG_TRIG_SOFTWARE
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH4
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM5_CH1
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM5_CH2
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM5_CH3
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerSource(ADC_TypeDef *ADCx)
+{
+  uint32_t TriggerSource = READ_BIT(ADCx->CR2, ADC_CR2_EXTSEL | ADC_CR2_EXTEN);
+  
+  /* Value for shift of {0; 4; 8; 12} depending on value of bitfield          */
+  /* corresponding to ADC_CR2_EXTEN {0; 1; 2; 3}.                             */
+  uint32_t ShiftExten = ((TriggerSource & ADC_CR2_EXTEN) >> (ADC_REG_TRIG_EXTEN_BITOFFSET_POS - 2UL));
+  
+  /* Set bitfield corresponding to ADC_CR2_EXTEN and ADC_CR2_EXTSEL           */
+  /* to match with triggers literals definition.                              */
+  return ((TriggerSource
+           & (ADC_REG_TRIG_SOURCE_MASK << ShiftExten) & ADC_CR2_EXTSEL)
+          | ((ADC_REG_TRIG_EDGE_MASK << ShiftExten) & ADC_CR2_EXTEN)
+         );
+}
+
+/**
+  * @brief  Get ADC group regular conversion trigger source internal (SW start)
+            or external.
+  * @note   In case of group regular trigger source set to external trigger,
+  *         to determine which peripheral is selected as external trigger,
+  *         use function @ref LL_ADC_REG_GetTriggerSource().
+  * @rmtoll CR2      EXTEN          LL_ADC_REG_IsTriggerSourceSWStart
+  * @param  ADCx ADC instance
+  * @retval Value "0" if trigger source external trigger
+  *         Value "1" if trigger source SW start.
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
+{
+  return (READ_BIT(ADCx->CR2, ADC_CR2_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_EXTEN));
+}
+
+/**
+  * @brief  Get ADC group regular conversion trigger polarity.
+  * @note   Applicable only for trigger source set to external trigger.
+  * @note   On this STM32 series, setting of external trigger edge is performed
+  *         using function @ref LL_ADC_REG_StartConversionExtTrig().
+  * @rmtoll CR2      EXTEN          LL_ADC_REG_GetTriggerEdge
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_RISING
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerEdge(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_EXTEN));
+}
+
+
+/**
+  * @brief  Set ADC group regular sequencer length and scan direction.
+  * @note   Description of ADC group regular sequencer features:
+  *         - For devices with sequencer fully configurable
+  *           (function "LL_ADC_REG_SetSequencerRanks()" available):
+  *           sequencer length and each rank affectation to a channel
+  *           are configurable.
+  *           This function performs configuration of:
+  *           - Sequence length: Number of ranks in the scan sequence.
+  *           - Sequence direction: Unless specified in parameters, sequencer
+  *             scan direction is forward (from rank 1 to rank n).
+  *           Sequencer ranks are selected using
+  *           function "LL_ADC_REG_SetSequencerRanks()".
+  *         - For devices with sequencer not fully configurable
+  *           (function "LL_ADC_REG_SetSequencerChannels()" available):
+  *           sequencer length and each rank affectation to a channel
+  *           are defined by channel number.
+  *           This function performs configuration of:
+  *           - Sequence length: Number of ranks in the scan sequence is
+  *             defined by number of channels set in the sequence,
+  *             rank of each channel is fixed by channel HW number.
+  *             (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
+  *           - Sequence direction: Unless specified in parameters, sequencer
+  *             scan direction is forward (from lowest channel number to
+  *             highest channel number).
+  *           Sequencer ranks are selected using
+  *           function "LL_ADC_REG_SetSequencerChannels()".
+  * @note   On this STM32 series, group regular sequencer configuration
+  *         is conditioned to ADC instance sequencer mode.
+  *         If ADC instance sequencer mode is disabled, sequencers of
+  *         all groups (group regular, group injected) can be configured
+  *         but their execution is disabled (limited to rank 1).
+  *         Refer to function @ref LL_ADC_SetSequencersScanMode().
+  * @note   Sequencer disabled is equivalent to sequencer of 1 rank:
+  *         ADC conversion on only 1 channel.
+  * @rmtoll SQR1     L              LL_ADC_REG_SetSequencerLength
+  * @param  ADCx ADC instance
+  * @param  SequencerNbRanks This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
+{
+  MODIFY_REG(ADCx->SQR1, ADC_SQR1_L, SequencerNbRanks);
+}
+
+/**
+  * @brief  Get ADC group regular sequencer length and scan direction.
+  * @note   Description of ADC group regular sequencer features:
+  *         - For devices with sequencer fully configurable
+  *           (function "LL_ADC_REG_SetSequencerRanks()" available):
+  *           sequencer length and each rank affectation to a channel
+  *           are configurable.
+  *           This function retrieves:
+  *           - Sequence length: Number of ranks in the scan sequence.
+  *           - Sequence direction: Unless specified in parameters, sequencer
+  *             scan direction is forward (from rank 1 to rank n).
+  *           Sequencer ranks are selected using
+  *           function "LL_ADC_REG_SetSequencerRanks()".
+  *         - For devices with sequencer not fully configurable
+  *           (function "LL_ADC_REG_SetSequencerChannels()" available):
+  *           sequencer length and each rank affectation to a channel
+  *           are defined by channel number.
+  *           This function retrieves:
+  *           - Sequence length: Number of ranks in the scan sequence is
+  *             defined by number of channels set in the sequence,
+  *             rank of each channel is fixed by channel HW number.
+  *             (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
+  *           - Sequence direction: Unless specified in parameters, sequencer
+  *             scan direction is forward (from lowest channel number to
+  *             highest channel number).
+  *           Sequencer ranks are selected using
+  *           function "LL_ADC_REG_SetSequencerChannels()".
+  * @note   On this STM32 series, group regular sequencer configuration
+  *         is conditioned to ADC instance sequencer mode.
+  *         If ADC instance sequencer mode is disabled, sequencers of
+  *         all groups (group regular, group injected) can be configured
+  *         but their execution is disabled (limited to rank 1).
+  *         Refer to function @ref LL_ADC_SetSequencersScanMode().
+  * @note   Sequencer disabled is equivalent to sequencer of 1 rank:
+  *         ADC conversion on only 1 channel.
+  * @rmtoll SQR1     L              LL_ADC_REG_SetSequencerLength
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerLength(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_L));
+}
+
+/**
+  * @brief  Set ADC group regular sequencer discontinuous mode:
+  *         sequence subdivided and scan conversions interrupted every selected
+  *         number of ranks.
+  * @note   It is not possible to enable both ADC group regular 
+  *         continuous mode and sequencer discontinuous mode.
+  * @note   It is not possible to enable both ADC auto-injected mode
+  *         and ADC group regular sequencer discontinuous mode.
+  * @rmtoll CR1      DISCEN         LL_ADC_REG_SetSequencerDiscont\n
+  *         CR1      DISCNUM        LL_ADC_REG_SetSequencerDiscont
+  * @param  ADCx ADC instance
+  * @param  SeqDiscont This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
+{
+  MODIFY_REG(ADCx->CR1, ADC_CR1_DISCEN | ADC_CR1_DISCNUM, SeqDiscont);
+}
+
+/**
+  * @brief  Get ADC group regular sequencer discontinuous mode:
+  *         sequence subdivided and scan conversions interrupted every selected
+  *         number of ranks.
+  * @rmtoll CR1      DISCEN         LL_ADC_REG_GetSequencerDiscont\n
+  *         CR1      DISCNUM        LL_ADC_REG_GetSequencerDiscont
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
+  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerDiscont(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_DISCEN | ADC_CR1_DISCNUM));
+}
+
+/**
+  * @brief  Set ADC group regular sequence: channel on the selected
+  *         scan sequence rank.
+  * @note   This function performs configuration of:
+  *         - Channels ordering into each rank of scan sequence:
+  *           whatever channel can be placed into whatever rank.
+  * @note   On this STM32 series, ADC group regular sequencer is
+  *         fully configurable: sequencer length and each rank
+  *         affectation to a channel are configurable.
+  *         Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
+  * @note   Depending on devices and packages, some channels may not be available.
+  *         Refer to device datasheet for channels availability.
+  * @note   On this STM32 series, to measure internal channels (VrefInt,
+  *         TempSensor, ...), measurement paths to internal channels must be
+  *         enabled separately.
+  *         This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
+  * @rmtoll SQR3     SQ1            LL_ADC_REG_SetSequencerRanks\n
+  *         SQR3     SQ2            LL_ADC_REG_SetSequencerRanks\n
+  *         SQR3     SQ3            LL_ADC_REG_SetSequencerRanks\n
+  *         SQR3     SQ4            LL_ADC_REG_SetSequencerRanks\n
+  *         SQR3     SQ5            LL_ADC_REG_SetSequencerRanks\n
+  *         SQR3     SQ6            LL_ADC_REG_SetSequencerRanks\n
+  *         SQR2     SQ7            LL_ADC_REG_SetSequencerRanks\n
+  *         SQR2     SQ8            LL_ADC_REG_SetSequencerRanks\n
+  *         SQR2     SQ9            LL_ADC_REG_SetSequencerRanks\n
+  *         SQR2     SQ10           LL_ADC_REG_SetSequencerRanks\n
+  *         SQR2     SQ11           LL_ADC_REG_SetSequencerRanks\n
+  *         SQR2     SQ12           LL_ADC_REG_SetSequencerRanks\n
+  *         SQR1     SQ13           LL_ADC_REG_SetSequencerRanks\n
+  *         SQR1     SQ14           LL_ADC_REG_SetSequencerRanks\n
+  *         SQR1     SQ15           LL_ADC_REG_SetSequencerRanks\n
+  *         SQR1     SQ16           LL_ADC_REG_SetSequencerRanks
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_REG_RANK_1
+  *         @arg @ref LL_ADC_REG_RANK_2
+  *         @arg @ref LL_ADC_REG_RANK_3
+  *         @arg @ref LL_ADC_REG_RANK_4
+  *         @arg @ref LL_ADC_REG_RANK_5
+  *         @arg @ref LL_ADC_REG_RANK_6
+  *         @arg @ref LL_ADC_REG_RANK_7
+  *         @arg @ref LL_ADC_REG_RANK_8
+  *         @arg @ref LL_ADC_REG_RANK_9
+  *         @arg @ref LL_ADC_REG_RANK_10
+  *         @arg @ref LL_ADC_REG_RANK_11
+  *         @arg @ref LL_ADC_REG_RANK_12
+  *         @arg @ref LL_ADC_REG_RANK_13
+  *         @arg @ref LL_ADC_REG_RANK_14
+  *         @arg @ref LL_ADC_REG_RANK_15
+  *         @arg @ref LL_ADC_REG_RANK_16
+  * @param  Channel This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
+{
+  /* Set bits with content of parameter "Channel" with bits position          */
+  /* in register and register position depending on parameter "Rank".         */
+  /* Parameters "Rank" and "Channel" are used with masks because containing   */
+  /* other bits reserved for other purpose.                                   */
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
+  
+  MODIFY_REG(*preg,
+             ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_REG_RANK_ID_SQRX_MASK),
+             (Channel & ADC_CHANNEL_ID_NUMBER_MASK) << (Rank & ADC_REG_RANK_ID_SQRX_MASK));
+}
+
+/**
+  * @brief  Get ADC group regular sequence: channel on the selected
+  *         scan sequence rank.
+  * @note   On this STM32 series, ADC group regular sequencer is
+  *         fully configurable: sequencer length and each rank
+  *         affectation to a channel are configurable.
+  *         Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
+  * @note   Depending on devices and packages, some channels may not be available.
+  *         Refer to device datasheet for channels availability.
+  * @note   Usage of the returned channel number:
+  *         - To reinject this channel into another function LL_ADC_xxx:
+  *           the returned channel number is only partly formatted on definition
+  *           of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
+  *           with parts of literals LL_ADC_CHANNEL_x or using
+  *           helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
+  *           Then the selected literal LL_ADC_CHANNEL_x can be used
+  *           as parameter for another function.
+  *         - To get the channel number in decimal format:
+  *           process the returned value with the helper macro
+  *           @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
+  * @rmtoll SQR3     SQ1            LL_ADC_REG_GetSequencerRanks\n
+  *         SQR3     SQ2            LL_ADC_REG_GetSequencerRanks\n
+  *         SQR3     SQ3            LL_ADC_REG_GetSequencerRanks\n
+  *         SQR3     SQ4            LL_ADC_REG_GetSequencerRanks\n
+  *         SQR3     SQ5            LL_ADC_REG_GetSequencerRanks\n
+  *         SQR3     SQ6            LL_ADC_REG_GetSequencerRanks\n
+  *         SQR2     SQ7            LL_ADC_REG_GetSequencerRanks\n
+  *         SQR2     SQ8            LL_ADC_REG_GetSequencerRanks\n
+  *         SQR2     SQ9            LL_ADC_REG_GetSequencerRanks\n
+  *         SQR2     SQ10           LL_ADC_REG_GetSequencerRanks\n
+  *         SQR2     SQ11           LL_ADC_REG_GetSequencerRanks\n
+  *         SQR2     SQ12           LL_ADC_REG_GetSequencerRanks\n
+  *         SQR1     SQ13           LL_ADC_REG_GetSequencerRanks\n
+  *         SQR1     SQ14           LL_ADC_REG_GetSequencerRanks\n
+  *         SQR1     SQ15           LL_ADC_REG_GetSequencerRanks\n
+  *         SQR1     SQ16           LL_ADC_REG_GetSequencerRanks
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_REG_RANK_1
+  *         @arg @ref LL_ADC_REG_RANK_2
+  *         @arg @ref LL_ADC_REG_RANK_3
+  *         @arg @ref LL_ADC_REG_RANK_4
+  *         @arg @ref LL_ADC_REG_RANK_5
+  *         @arg @ref LL_ADC_REG_RANK_6
+  *         @arg @ref LL_ADC_REG_RANK_7
+  *         @arg @ref LL_ADC_REG_RANK_8
+  *         @arg @ref LL_ADC_REG_RANK_9
+  *         @arg @ref LL_ADC_REG_RANK_10
+  *         @arg @ref LL_ADC_REG_RANK_11
+  *         @arg @ref LL_ADC_REG_RANK_12
+  *         @arg @ref LL_ADC_REG_RANK_13
+  *         @arg @ref LL_ADC_REG_RANK_14
+  *         @arg @ref LL_ADC_REG_RANK_15
+  *         @arg @ref LL_ADC_REG_RANK_16
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.\n
+  *         (1) For ADC channel read back from ADC register,
+  *             comparison with internal channel parameter to be done
+  *             using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
+  
+  return (uint32_t) (READ_BIT(*preg,
+                              ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_REG_RANK_ID_SQRX_MASK))
+                     >> (Rank & ADC_REG_RANK_ID_SQRX_MASK)
+                    );
+}
+
+/**
+  * @brief  Set ADC continuous conversion mode on ADC group regular.
+  * @note   Description of ADC continuous conversion mode:
+  *         - single mode: one conversion per trigger
+  *         - continuous mode: after the first trigger, following
+  *           conversions launched successively automatically.
+  * @note   It is not possible to enable both ADC group regular 
+  *         continuous mode and sequencer discontinuous mode.
+  * @rmtoll CR2      CONT           LL_ADC_REG_SetContinuousMode
+  * @param  ADCx ADC instance
+  * @param  Continuous This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_REG_CONV_SINGLE
+  *         @arg @ref LL_ADC_REG_CONV_CONTINUOUS
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous)
+{
+  MODIFY_REG(ADCx->CR2, ADC_CR2_CONT, Continuous);
+}
+
+/**
+  * @brief  Get ADC continuous conversion mode on ADC group regular.
+  * @note   Description of ADC continuous conversion mode:
+  *         - single mode: one conversion per trigger
+  *         - continuous mode: after the first trigger, following
+  *           conversions launched successively automatically.
+  * @rmtoll CR2      CONT           LL_ADC_REG_GetContinuousMode
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_REG_CONV_SINGLE
+  *         @arg @ref LL_ADC_REG_CONV_CONTINUOUS
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_GetContinuousMode(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_CONT));
+}
+
+/**
+  * @brief  Set ADC group regular conversion data transfer: no transfer or
+  *         transfer by DMA, and DMA requests mode.
+  * @note   If transfer by DMA selected, specifies the DMA requests
+  *         mode:
+  *         - Limited mode (One shot mode): DMA transfer requests are stopped
+  *           when number of DMA data transfers (number of
+  *           ADC conversions) is reached.
+  *           This ADC mode is intended to be used with DMA mode non-circular.
+  *         - Unlimited mode: DMA transfer requests are unlimited,
+  *           whatever number of DMA data transfers (number of
+  *           ADC conversions).
+  *           This ADC mode is intended to be used with DMA mode circular.
+  * @note   If ADC DMA requests mode is set to unlimited and DMA is set to
+  *         mode non-circular:
+  *         when DMA transfers size will be reached, DMA will stop transfers of
+  *         ADC conversions data ADC will raise an overrun error
+  *        (overrun flag and interruption if enabled).
+  * @note   For devices with several ADC instances: ADC multimode DMA
+  *         settings are available using function @ref LL_ADC_SetMultiDMATransfer().
+  * @note   To configure DMA source address (peripheral address),
+  *         use function @ref LL_ADC_DMA_GetRegAddr().
+  * @rmtoll CR2      DMA            LL_ADC_REG_SetDMATransfer\n
+  *         CR2      DDS            LL_ADC_REG_SetDMATransfer
+  * @param  ADCx ADC instance
+  * @param  DMATransfer This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
+  *         @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
+  *         @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_SetDMATransfer(ADC_TypeDef *ADCx, uint32_t DMATransfer)
+{
+  MODIFY_REG(ADCx->CR2, ADC_CR2_DMA | ADC_CR2_DDS, DMATransfer);
+}
+
+/**
+  * @brief  Get ADC group regular conversion data transfer: no transfer or
+  *         transfer by DMA, and DMA requests mode.
+  * @note   If transfer by DMA selected, specifies the DMA requests
+  *         mode:
+  *         - Limited mode (One shot mode): DMA transfer requests are stopped
+  *           when number of DMA data transfers (number of
+  *           ADC conversions) is reached.
+  *           This ADC mode is intended to be used with DMA mode non-circular.
+  *         - Unlimited mode: DMA transfer requests are unlimited,
+  *           whatever number of DMA data transfers (number of
+  *           ADC conversions).
+  *           This ADC mode is intended to be used with DMA mode circular.
+  * @note   If ADC DMA requests mode is set to unlimited and DMA is set to
+  *         mode non-circular:
+  *         when DMA transfers size will be reached, DMA will stop transfers of
+  *         ADC conversions data ADC will raise an overrun error
+  *         (overrun flag and interruption if enabled).
+  * @note   For devices with several ADC instances: ADC multimode DMA
+  *         settings are available using function @ref LL_ADC_GetMultiDMATransfer().
+  * @note   To configure DMA source address (peripheral address),
+  *         use function @ref LL_ADC_DMA_GetRegAddr().
+  * @rmtoll CR2      DMA            LL_ADC_REG_GetDMATransfer\n
+  *         CR2      DDS            LL_ADC_REG_GetDMATransfer
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
+  *         @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
+  *         @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_GetDMATransfer(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_DMA | ADC_CR2_DDS));
+}
+
+/**
+  * @brief  Specify which ADC flag between EOC (end of unitary conversion)
+  *         or EOS (end of sequence conversions) is used to indicate
+  *         the end of conversion.
+  * @note   This feature is aimed to be set when using ADC with
+  *         programming model by polling or interruption
+  *         (programming model by DMA usually uses DMA interruptions
+  *         to indicate end of conversion and data transfer).
+  * @note   For ADC group injected, end of conversion (flag&IT) is raised
+  *         only at the end of the sequence.
+  * @rmtoll CR2      EOCS           LL_ADC_REG_SetFlagEndOfConversion
+  * @param  ADCx ADC instance
+  * @param  EocSelection This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV
+  *         @arg @ref LL_ADC_REG_FLAG_EOC_UNITARY_CONV
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_SetFlagEndOfConversion(ADC_TypeDef *ADCx, uint32_t EocSelection)
+{
+  MODIFY_REG(ADCx->CR2, ADC_CR2_EOCS, EocSelection);
+}
+
+/**
+  * @brief  Get which ADC flag between EOC (end of unitary conversion)
+  *         or EOS (end of sequence conversions) is used to indicate
+  *         the end of conversion.
+  * @rmtoll CR2      EOCS           LL_ADC_REG_GetFlagEndOfConversion
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV
+  *         @arg @ref LL_ADC_REG_FLAG_EOC_UNITARY_CONV
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_GetFlagEndOfConversion(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_EOCS));
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: group injected
+  * @{
+  */
+
+/**
+  * @brief  Set ADC group injected conversion trigger source:
+  *         internal (SW start) or from external IP (timer event,
+  *         external interrupt line).
+  * @note   On this STM32 series, setting of external trigger edge is performed
+  *         using function @ref LL_ADC_INJ_StartConversionExtTrig().
+  * @note   Availability of parameters of trigger sources from timer 
+  *         depends on timers availability on the selected device.
+  * @rmtoll CR2      JEXTSEL        LL_ADC_INJ_SetTriggerSource\n
+  *         CR2      JEXTEN         LL_ADC_INJ_SetTriggerSource
+  * @param  ADCx ADC instance
+  * @param  TriggerSource This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH2
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH1
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH2
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM5_CH4
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM5_TRGO
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH3
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
+{
+/* Note: On this STM32 series, ADC group injected external trigger edge       */
+/*       is used to perform a ADC conversion start.                           */
+/*       This function does not set external trigger edge.                    */
+/*       This feature is set using function                                   */
+/*       @ref LL_ADC_INJ_StartConversionExtTrig().                            */
+  MODIFY_REG(ADCx->CR2, ADC_CR2_JEXTSEL, (TriggerSource & ADC_CR2_JEXTSEL));
+}
+
+/**
+  * @brief  Get ADC group injected conversion trigger source:
+  *         internal (SW start) or from external IP (timer event,
+  *         external interrupt line).
+  * @note   To determine whether group injected trigger source is
+  *         internal (SW start) or external, without detail
+  *         of which peripheral is selected as external trigger,
+  *         (equivalent to 
+  *         "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)")
+  *         use function @ref LL_ADC_INJ_IsTriggerSourceSWStart.
+  * @note   Availability of parameters of trigger sources from timer 
+  *         depends on timers availability on the selected device.
+  * @rmtoll CR2      JEXTSEL        LL_ADC_INJ_GetTriggerSource\n
+  *         CR2      JEXTEN         LL_ADC_INJ_GetTriggerSource
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH2
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH1
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH2
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM5_CH4
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM5_TRGO
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH3
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
+  */
+__STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerSource(ADC_TypeDef *ADCx)
+{
+  uint32_t TriggerSource = READ_BIT(ADCx->CR2, ADC_CR2_JEXTSEL | ADC_CR2_JEXTEN);
+  
+  /* Value for shift of {0; 4; 8; 12} depending on value of bitfield          */
+  /* corresponding to ADC_CR2_JEXTEN {0; 1; 2; 3}.                            */
+  uint32_t ShiftExten = ((TriggerSource & ADC_CR2_JEXTEN) >> (ADC_INJ_TRIG_EXTEN_BITOFFSET_POS - 2UL));
+  
+  /* Set bitfield corresponding to ADC_CR2_JEXTEN and ADC_CR2_JEXTSEL         */
+  /* to match with triggers literals definition.                              */
+  return ((TriggerSource
+           & (ADC_INJ_TRIG_SOURCE_MASK << ShiftExten) & ADC_CR2_JEXTSEL)
+          | ((ADC_INJ_TRIG_EDGE_MASK << ShiftExten) & ADC_CR2_JEXTEN)
+         );
+}
+
+/**
+  * @brief  Get ADC group injected conversion trigger source internal (SW start)
+            or external
+  * @note   In case of group injected trigger source set to external trigger,
+  *         to determine which peripheral is selected as external trigger,
+  *         use function @ref LL_ADC_INJ_GetTriggerSource.
+  * @rmtoll CR2      JEXTEN         LL_ADC_INJ_IsTriggerSourceSWStart
+  * @param  ADCx ADC instance
+  * @retval Value "0" if trigger source external trigger
+  *         Value "1" if trigger source SW start.
+  */
+__STATIC_INLINE uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
+{
+  return (READ_BIT(ADCx->CR2, ADC_CR2_JEXTEN) == (LL_ADC_INJ_TRIG_SOFTWARE & ADC_CR2_JEXTEN));
+}
+
+/**
+  * @brief  Get ADC group injected conversion trigger polarity.
+  *         Applicable only for trigger source set to external trigger.
+  * @rmtoll CR2      JEXTEN         LL_ADC_INJ_GetTriggerEdge
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
+  */
+__STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerEdge(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_JEXTEN));
+}
+
+/**
+  * @brief  Set ADC group injected sequencer length and scan direction.
+  * @note   This function performs configuration of:
+  *         - Sequence length: Number of ranks in the scan sequence.
+  *         - Sequence direction: Unless specified in parameters, sequencer
+  *           scan direction is forward (from rank 1 to rank n).
+  * @note   On this STM32 series, group injected sequencer configuration
+  *         is conditioned to ADC instance sequencer mode.
+  *         If ADC instance sequencer mode is disabled, sequencers of
+  *         all groups (group regular, group injected) can be configured
+  *         but their execution is disabled (limited to rank 1).
+  *         Refer to function @ref LL_ADC_SetSequencersScanMode().
+  * @note   Sequencer disabled is equivalent to sequencer of 1 rank:
+  *         ADC conversion on only 1 channel.
+  * @rmtoll JSQR     JL             LL_ADC_INJ_SetSequencerLength
+  * @param  ADCx ADC instance
+  * @param  SequencerNbRanks This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
+  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
+  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
+  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
+{
+  MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks);
+}
+
+/**
+  * @brief  Get ADC group injected sequencer length and scan direction.
+  * @note   This function retrieves:
+  *         - Sequence length: Number of ranks in the scan sequence.
+  *         - Sequence direction: Unless specified in parameters, sequencer
+  *           scan direction is forward (from rank 1 to rank n).
+  * @note   On this STM32 series, group injected sequencer configuration
+  *         is conditioned to ADC instance sequencer mode.
+  *         If ADC instance sequencer mode is disabled, sequencers of
+  *         all groups (group regular, group injected) can be configured
+  *         but their execution is disabled (limited to rank 1).
+  *         Refer to function @ref LL_ADC_SetSequencersScanMode().
+  * @note   Sequencer disabled is equivalent to sequencer of 1 rank:
+  *         ADC conversion on only 1 channel.
+  * @rmtoll JSQR     JL             LL_ADC_INJ_GetSequencerLength
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
+  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
+  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
+  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
+  */
+__STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerLength(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL));
+}
+
+/**
+  * @brief  Set ADC group injected sequencer discontinuous mode:
+  *         sequence subdivided and scan conversions interrupted every selected
+  *         number of ranks.
+  * @note   It is not possible to enable both ADC group injected
+  *         auto-injected mode and sequencer discontinuous mode.
+  * @rmtoll CR1      DISCEN         LL_ADC_INJ_SetSequencerDiscont
+  * @param  ADCx ADC instance
+  * @param  SeqDiscont This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
+  *         @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
+{
+  MODIFY_REG(ADCx->CR1, ADC_CR1_JDISCEN, SeqDiscont);
+}
+
+/**
+  * @brief  Get ADC group injected sequencer discontinuous mode:
+  *         sequence subdivided and scan conversions interrupted every selected
+  *         number of ranks.
+  * @rmtoll CR1      DISCEN         LL_ADC_REG_GetSequencerDiscont
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
+  *         @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
+  */
+__STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerDiscont(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_JDISCEN));
+}
+
+/**
+  * @brief  Set ADC group injected sequence: channel on the selected
+  *         sequence rank.
+  * @note   Depending on devices and packages, some channels may not be available.
+  *         Refer to device datasheet for channels availability.
+  * @note   On this STM32 series, to measure internal channels (VrefInt,
+  *         TempSensor, ...), measurement paths to internal channels must be
+  *         enabled separately.
+  *         This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
+  * @rmtoll JSQR     JSQ1           LL_ADC_INJ_SetSequencerRanks\n
+  *         JSQR     JSQ2           LL_ADC_INJ_SetSequencerRanks\n
+  *         JSQR     JSQ3           LL_ADC_INJ_SetSequencerRanks\n
+  *         JSQR     JSQ4           LL_ADC_INJ_SetSequencerRanks
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_RANK_1
+  *         @arg @ref LL_ADC_INJ_RANK_2
+  *         @arg @ref LL_ADC_INJ_RANK_3
+  *         @arg @ref LL_ADC_INJ_RANK_4
+  * @param  Channel This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
+{
+  /* Set bits with content of parameter "Channel" with bits position          */
+  /* in register depending on parameter "Rank".                               */
+  /* Parameters "Rank" and "Channel" are used with masks because containing   */
+  /* other bits reserved for other purpose.                                   */
+  uint32_t tmpreg1 = (READ_BIT(ADCx->JSQR, ADC_JSQR_JL) >> ADC_JSQR_JL_Pos) + 1UL;
+  
+  MODIFY_REG(ADCx->JSQR,
+             ADC_CHANNEL_ID_NUMBER_MASK << (5UL * (uint8_t)(((Rank) + 3UL) - (tmpreg1))),
+             (Channel & ADC_CHANNEL_ID_NUMBER_MASK) << (5UL * (uint8_t)(((Rank) + 3UL) - (tmpreg1))));
+}
+
+/**
+  * @brief  Get ADC group injected sequence: channel on the selected
+  *         sequence rank.
+  * @note   Depending on devices and packages, some channels may not be available.
+  *         Refer to device datasheet for channels availability.
+  * @note   Usage of the returned channel number:
+  *         - To reinject this channel into another function LL_ADC_xxx:
+  *           the returned channel number is only partly formatted on definition
+  *           of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
+  *           with parts of literals LL_ADC_CHANNEL_x or using
+  *           helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
+  *           Then the selected literal LL_ADC_CHANNEL_x can be used
+  *           as parameter for another function.
+  *         - To get the channel number in decimal format:
+  *           process the returned value with the helper macro
+  *           @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
+  * @rmtoll JSQR     JSQ1           LL_ADC_INJ_SetSequencerRanks\n
+  *         JSQR     JSQ2           LL_ADC_INJ_SetSequencerRanks\n
+  *         JSQR     JSQ3           LL_ADC_INJ_SetSequencerRanks\n
+  *         JSQR     JSQ4           LL_ADC_INJ_SetSequencerRanks
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_RANK_1
+  *         @arg @ref LL_ADC_INJ_RANK_2
+  *         @arg @ref LL_ADC_INJ_RANK_3
+  *         @arg @ref LL_ADC_INJ_RANK_4
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.\n
+  *         (1) For ADC channel read back from ADC register,
+  *             comparison with internal channel parameter to be done
+  *             using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
+  */
+__STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
+{
+  uint32_t tmpreg1 = (READ_BIT(ADCx->JSQR, ADC_JSQR_JL) >> ADC_JSQR_JL_Pos)  + 1UL;
+  
+  return (uint32_t)(READ_BIT(ADCx->JSQR,
+                             ADC_CHANNEL_ID_NUMBER_MASK << (5UL * (uint8_t)(((Rank) + 3UL) - (tmpreg1))))
+                    >> (5UL * (uint8_t)(((Rank) + 3UL) - (tmpreg1)))
+                   );
+}
+
+/**
+  * @brief  Set ADC group injected conversion trigger:
+  *         independent or from ADC group regular.
+  * @note   This mode can be used to extend number of data registers
+  *         updated after one ADC conversion trigger and with data 
+  *         permanently kept (not erased by successive conversions of scan of
+  *         ADC sequencer ranks), up to 5 data registers:
+  *         1 data register on ADC group regular, 4 data registers
+  *         on ADC group injected.            
+  * @note   If ADC group injected injected trigger source is set to an
+  *         external trigger, this feature must be must be set to
+  *         independent trigger.
+  *         ADC group injected automatic trigger is compliant only with 
+  *         group injected trigger source set to SW start, without any 
+  *         further action on  ADC group injected conversion start or stop: 
+  *         in this case, ADC group injected is controlled only 
+  *         from ADC group regular.
+  * @note   It is not possible to enable both ADC group injected
+  *         auto-injected mode and sequencer discontinuous mode.
+  * @rmtoll CR1      JAUTO          LL_ADC_INJ_SetTrigAuto
+  * @param  ADCx ADC instance
+  * @param  TrigAuto This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
+  *         @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto)
+{
+  MODIFY_REG(ADCx->CR1, ADC_CR1_JAUTO, TrigAuto);
+}
+
+/**
+  * @brief  Get ADC group injected conversion trigger:
+  *         independent or from ADC group regular.
+  * @rmtoll CR1      JAUTO          LL_ADC_INJ_GetTrigAuto
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
+  *         @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
+  */
+__STATIC_INLINE uint32_t LL_ADC_INJ_GetTrigAuto(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_JAUTO));
+}
+
+/**
+  * @brief  Set ADC group injected offset.
+  * @note   It sets:
+  *         - ADC group injected rank to which the offset programmed
+  *           will be applied
+  *         - Offset level (offset to be subtracted from the raw
+  *           converted data).
+  *         Caution: Offset format is dependent to ADC resolution:
+  *         offset has to be left-aligned on bit 11, the LSB (right bits)
+  *         are set to 0.
+  * @note   Offset cannot be enabled or disabled.
+  *         To emulate offset disabled, set an offset value equal to 0.
+  * @rmtoll JOFR1    JOFFSET1       LL_ADC_INJ_SetOffset\n
+  *         JOFR2    JOFFSET2       LL_ADC_INJ_SetOffset\n
+  *         JOFR3    JOFFSET3       LL_ADC_INJ_SetOffset\n
+  *         JOFR4    JOFFSET4       LL_ADC_INJ_SetOffset
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_RANK_1
+  *         @arg @ref LL_ADC_INJ_RANK_2
+  *         @arg @ref LL_ADC_INJ_RANK_3
+  *         @arg @ref LL_ADC_INJ_RANK_4
+  * @param  OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_INJ_SetOffset(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t OffsetLevel)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JOFR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JOFRX_REGOFFSET_MASK));
+  
+  MODIFY_REG(*preg,
+             ADC_JOFR1_JOFFSET1,
+             OffsetLevel);
+}
+
+/**
+  * @brief  Get ADC group injected offset.
+  * @note   It gives offset level (offset to be subtracted from the raw converted data).
+  *         Caution: Offset format is dependent to ADC resolution:
+  *         offset has to be left-aligned on bit 11, the LSB (right bits)
+  *         are set to 0.
+  * @rmtoll JOFR1    JOFFSET1       LL_ADC_INJ_GetOffset\n
+  *         JOFR2    JOFFSET2       LL_ADC_INJ_GetOffset\n
+  *         JOFR3    JOFFSET3       LL_ADC_INJ_GetOffset\n
+  *         JOFR4    JOFFSET4       LL_ADC_INJ_GetOffset
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_RANK_1
+  *         @arg @ref LL_ADC_INJ_RANK_2
+  *         @arg @ref LL_ADC_INJ_RANK_3
+  *         @arg @ref LL_ADC_INJ_RANK_4
+  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
+  */
+__STATIC_INLINE uint32_t LL_ADC_INJ_GetOffset(ADC_TypeDef *ADCx, uint32_t Rank)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JOFR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JOFRX_REGOFFSET_MASK));
+  
+  return (uint32_t)(READ_BIT(*preg,
+                             ADC_JOFR1_JOFFSET1)
+                   );
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels
+  * @{
+  */
+
+/**
+  * @brief  Set sampling time of the selected ADC channel
+  *         Unit: ADC clock cycles.
+  * @note   On this device, sampling time is on channel scope: independently
+  *         of channel mapped on ADC group regular or injected.
+  * @note   In case of internal channel (VrefInt, TempSensor, ...) to be
+  *         converted:
+  *         sampling time constraints must be respected (sampling time can be
+  *         adjusted in function of ADC clock frequency and sampling time
+  *         setting).
+  *         Refer to device datasheet for timings values (parameters TS_vrefint,
+  *         TS_temp, ...).
+  * @note   Conversion time is the addition of sampling time and processing time.
+  *         Refer to reference manual for ADC processing time of
+  *         this STM32 series.
+  * @note   In case of ADC conversion of internal channel (VrefInt,
+  *         temperature sensor, ...), a sampling time minimum value
+  *         is required.
+  *         Refer to device datasheet.
+  * @rmtoll SMPR1    SMP18          LL_ADC_SetChannelSamplingTime\n
+  *         SMPR1    SMP17          LL_ADC_SetChannelSamplingTime\n
+  *         SMPR1    SMP16          LL_ADC_SetChannelSamplingTime\n
+  *         SMPR1    SMP15          LL_ADC_SetChannelSamplingTime\n
+  *         SMPR1    SMP14          LL_ADC_SetChannelSamplingTime\n
+  *         SMPR1    SMP13          LL_ADC_SetChannelSamplingTime\n
+  *         SMPR1    SMP12          LL_ADC_SetChannelSamplingTime\n
+  *         SMPR1    SMP11          LL_ADC_SetChannelSamplingTime\n
+  *         SMPR1    SMP10          LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP9           LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP8           LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP7           LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP6           LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP5           LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP4           LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP3           LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP2           LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP1           LL_ADC_SetChannelSamplingTime\n
+  *         SMPR2    SMP0           LL_ADC_SetChannelSamplingTime
+  * @param  ADCx ADC instance
+  * @param  Channel This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  * @param  SamplingTime This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_SAMPLINGTIME_3CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_15CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_28CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_56CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_84CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_112CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_144CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_480CYCLES
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime)
+{
+  /* Set bits with content of parameter "SamplingTime" with bits position     */
+  /* in register and register position depending on parameter "Channel".      */
+  /* Parameter "Channel" is used with masks because containing                */
+  /* other bits reserved for other purpose.                                   */
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
+  
+  MODIFY_REG(*preg,
+             ADC_SMPR2_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK),
+             SamplingTime   << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK));
+}
+
+/**
+  * @brief  Get sampling time of the selected ADC channel
+  *         Unit: ADC clock cycles.
+  * @note   On this device, sampling time is on channel scope: independently
+  *         of channel mapped on ADC group regular or injected.
+  * @note   Conversion time is the addition of sampling time and processing time.
+  *         Refer to reference manual for ADC processing time of
+  *         this STM32 series.
+  * @rmtoll SMPR1    SMP18          LL_ADC_GetChannelSamplingTime\n
+  *         SMPR1    SMP17          LL_ADC_GetChannelSamplingTime\n
+  *         SMPR1    SMP16          LL_ADC_GetChannelSamplingTime\n
+  *         SMPR1    SMP15          LL_ADC_GetChannelSamplingTime\n
+  *         SMPR1    SMP14          LL_ADC_GetChannelSamplingTime\n
+  *         SMPR1    SMP13          LL_ADC_GetChannelSamplingTime\n
+  *         SMPR1    SMP12          LL_ADC_GetChannelSamplingTime\n
+  *         SMPR1    SMP11          LL_ADC_GetChannelSamplingTime\n
+  *         SMPR1    SMP10          LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP9           LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP8           LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP7           LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP6           LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP5           LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP4           LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP3           LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP2           LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP1           LL_ADC_GetChannelSamplingTime\n
+  *         SMPR2    SMP0           LL_ADC_GetChannelSamplingTime
+  * @param  ADCx ADC instance
+  * @param  Channel This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_CHANNEL_0
+  *         @arg @ref LL_ADC_CHANNEL_1
+  *         @arg @ref LL_ADC_CHANNEL_2
+  *         @arg @ref LL_ADC_CHANNEL_3
+  *         @arg @ref LL_ADC_CHANNEL_4
+  *         @arg @ref LL_ADC_CHANNEL_5
+  *         @arg @ref LL_ADC_CHANNEL_6
+  *         @arg @ref LL_ADC_CHANNEL_7
+  *         @arg @ref LL_ADC_CHANNEL_8
+  *         @arg @ref LL_ADC_CHANNEL_9
+  *         @arg @ref LL_ADC_CHANNEL_10
+  *         @arg @ref LL_ADC_CHANNEL_11
+  *         @arg @ref LL_ADC_CHANNEL_12
+  *         @arg @ref LL_ADC_CHANNEL_13
+  *         @arg @ref LL_ADC_CHANNEL_14
+  *         @arg @ref LL_ADC_CHANNEL_15
+  *         @arg @ref LL_ADC_CHANNEL_16
+  *         @arg @ref LL_ADC_CHANNEL_17
+  *         @arg @ref LL_ADC_CHANNEL_18
+  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
+  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)(2)
+  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_SAMPLINGTIME_3CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_15CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_28CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_56CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_84CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_112CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_144CYCLES
+  *         @arg @ref LL_ADC_SAMPLINGTIME_480CYCLES
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
+  
+  return (uint32_t)(READ_BIT(*preg,
+                             ADC_SMPR2_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK))
+                    >> __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK)
+                   );
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: analog watchdog
+  * @{
+  */
+
+/**
+  * @brief  Set ADC analog watchdog monitored channels:
+  *         a single channel or all channels,
+  *         on ADC groups regular and-or injected.
+  * @note   Once monitored channels are selected, analog watchdog
+  *         is enabled.
+  * @note   In case of need to define a single channel to monitor
+  *         with analog watchdog from sequencer channel definition,
+  *         use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP().
+  * @note   On this STM32 series, there is only 1 kind of analog watchdog
+  *         instance:
+  *         - AWD standard (instance AWD1):
+  *           - channels monitored: can monitor 1 channel or all channels.
+  *           - groups monitored: ADC groups regular and-or injected.
+  *           - resolution: resolution is not limited (corresponds to
+  *             ADC resolution configured).
+  * @rmtoll CR1      AWD1CH         LL_ADC_SetAnalogWDMonitChannels\n
+  *         CR1      AWD1SGL        LL_ADC_SetAnalogWDMonitChannels\n
+  *         CR1      AWD1EN         LL_ADC_SetAnalogWDMonitChannels
+  * @param  ADCx ADC instance
+  * @param  AWDChannelGroup This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_AWD_DISABLE
+  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
+  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
+  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_0_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_1_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_2_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_3_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_4_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_5_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_6_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_7_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_8_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_9_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_10_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_11_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_12_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_13_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_14_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_15_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_16_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_17_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_18_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CH_VREFINT_REG          (1)
+  *         @arg @ref LL_ADC_AWD_CH_VREFINT_INJ          (1)
+  *         @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ      (1)
+  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG       (1)(2)
+  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ       (1)(2)
+  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ   (1)(2)
+  *         @arg @ref LL_ADC_AWD_CH_VBAT_REG             (1)
+  *         @arg @ref LL_ADC_AWD_CH_VBAT_INJ             (1)
+  *         @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ         (1)
+  *         
+  *         (1) On STM32F4, parameter available only on ADC instance: ADC1.\n
+  *         (2) On devices STM32F42x and STM32F43x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDChannelGroup)
+{
+  MODIFY_REG(ADCx->CR1,
+             (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL | ADC_CR1_AWDCH),
+             AWDChannelGroup);
+}
+
+/**
+  * @brief  Get ADC analog watchdog monitored channel.
+  * @note   Usage of the returned channel number:
+  *         - To reinject this channel into another function LL_ADC_xxx:
+  *           the returned channel number is only partly formatted on definition
+  *           of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
+  *           with parts of literals LL_ADC_CHANNEL_x or using
+  *           helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
+  *           Then the selected literal LL_ADC_CHANNEL_x can be used
+  *           as parameter for another function.
+  *         - To get the channel number in decimal format:
+  *           process the returned value with the helper macro
+  *           @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
+  *           Applicable only when the analog watchdog is set to monitor
+  *           one channel.
+  * @note   On this STM32 series, there is only 1 kind of analog watchdog
+  *         instance:
+  *         - AWD standard (instance AWD1):
+  *           - channels monitored: can monitor 1 channel or all channels.
+  *           - groups monitored: ADC groups regular and-or injected.
+  *           - resolution: resolution is not limited (corresponds to
+  *             ADC resolution configured).
+  * @rmtoll CR1      AWD1CH         LL_ADC_GetAnalogWDMonitChannels\n
+  *         CR1      AWD1SGL        LL_ADC_GetAnalogWDMonitChannels\n
+  *         CR1      AWD1EN         LL_ADC_GetAnalogWDMonitChannels
+  * @param  ADCx ADC instance
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_AWD_DISABLE
+  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
+  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
+  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_0_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_1_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_2_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_3_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_4_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_5_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_6_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_7_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_8_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_9_INJ 
+  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_10_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_11_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_12_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_13_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_14_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_15_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_16_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_17_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG
+  *         @arg @ref LL_ADC_AWD_CHANNEL_18_INJ
+  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetAnalogWDMonitChannels(ADC_TypeDef *ADCx)
+{
+  return (uint32_t)(READ_BIT(ADCx->CR1, (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL | ADC_CR1_AWDCH)));
+}
+
+/**
+  * @brief  Set ADC analog watchdog threshold value of threshold
+  *         high or low.
+  * @note   In case of ADC resolution different of 12 bits,
+  *         analog watchdog thresholds data require a specific shift.
+  *         Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION().
+  * @note   On this STM32 series, there is only 1 kind of analog watchdog
+  *         instance:
+  *         - AWD standard (instance AWD1):
+  *           - channels monitored: can monitor 1 channel or all channels.
+  *           - groups monitored: ADC groups regular and-or injected.
+  *           - resolution: resolution is not limited (corresponds to
+  *             ADC resolution configured).
+  * @rmtoll HTR      HT             LL_ADC_SetAnalogWDThresholds\n
+  *         LTR      LT             LL_ADC_SetAnalogWDThresholds
+  * @param  ADCx ADC instance
+  * @param  AWDThresholdsHighLow This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
+  *         @arg @ref LL_ADC_AWD_THRESHOLD_LOW
+  * @param  AWDThresholdValue Value between Min_Data=0x000 and Max_Data=0xFFF
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDThresholdsHighLow, uint32_t AWDThresholdValue)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->HTR, AWDThresholdsHighLow);
+  
+  MODIFY_REG(*preg,
+             ADC_HTR_HT,
+             AWDThresholdValue);
+}
+
+/**
+  * @brief  Get ADC analog watchdog threshold value of threshold high or
+  *         threshold low.
+  * @note   In case of ADC resolution different of 12 bits,
+  *         analog watchdog thresholds data require a specific shift.
+  *         Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION().
+  * @rmtoll HTR      HT             LL_ADC_GetAnalogWDThresholds\n
+  *         LTR      LT             LL_ADC_GetAnalogWDThresholds
+  * @param  ADCx ADC instance
+  * @param  AWDThresholdsHighLow This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
+  *         @arg @ref LL_ADC_AWD_THRESHOLD_LOW
+  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
+*/
+__STATIC_INLINE uint32_t LL_ADC_GetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDThresholdsHighLow)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->HTR, AWDThresholdsHighLow);
+  
+  return (uint32_t)(READ_BIT(*preg, ADC_HTR_HT));
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_Configuration_ADC_Multimode Configuration of ADC hierarchical scope: multimode
+  * @{
+  */
+
+#if defined(ADC_MULTIMODE_SUPPORT)
+/**
+  * @brief  Set ADC multimode configuration to operate in independent mode
+  *         or multimode (for devices with several ADC instances).
+  * @note   If multimode configuration: the selected ADC instance is
+  *         either master or slave depending on hardware.
+  *         Refer to reference manual.
+  * @rmtoll CCR      MULTI          LL_ADC_SetMultimode
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @param  Multimode This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_MULTI_INDEPENDENT
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
+  *         @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
+  *         @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_SIM
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_ALT
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_INJ_SIMULT
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIMULT
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_REG_INTERL
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_INJ_ALTERN
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetMultimode(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Multimode)
+{
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_MULTI, Multimode);
+}
+
+/**
+  * @brief  Get ADC multimode configuration to operate in independent mode
+  *         or multimode (for devices with several ADC instances).
+  * @note   If multimode configuration: the selected ADC instance is
+  *         either master or slave depending on hardware.
+  *         Refer to reference manual.
+  * @rmtoll CCR      MULTI          LL_ADC_GetMultimode
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_MULTI_INDEPENDENT
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
+  *         @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
+  *         @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
+  *         @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_SIM
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_ALT
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_INJ_SIMULT
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIMULT
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_REG_INTERL
+  *         @arg @ref LL_ADC_MULTI_TRIPLE_INJ_ALTERN
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetMultimode(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_MULTI));
+}
+
+/**
+  * @brief  Set ADC multimode conversion data transfer: no transfer
+  *         or transfer by DMA.
+  * @note   If ADC multimode transfer by DMA is not selected:
+  *         each ADC uses its own DMA channel, with its individual
+  *         DMA transfer settings.
+  *         If ADC multimode transfer by DMA is selected:
+  *         One DMA channel is used for both ADC (DMA of ADC master)
+  *         Specifies the DMA requests mode:
+  *         - Limited mode (One shot mode): DMA transfer requests are stopped
+  *           when number of DMA data transfers (number of
+  *           ADC conversions) is reached.
+  *           This ADC mode is intended to be used with DMA mode non-circular.
+  *         - Unlimited mode: DMA transfer requests are unlimited,
+  *           whatever number of DMA data transfers (number of
+  *           ADC conversions).
+  *           This ADC mode is intended to be used with DMA mode circular.
+  * @note   If ADC DMA requests mode is set to unlimited and DMA is set to
+  *         mode non-circular:
+  *         when DMA transfers size will be reached, DMA will stop transfers of
+  *         ADC conversions data ADC will raise an overrun error
+  *         (overrun flag and interruption if enabled).
+  * @note   How to retrieve multimode conversion data:
+  *         Whatever multimode transfer by DMA setting: using function
+  *         @ref LL_ADC_REG_ReadMultiConversionData32().
+  *         If ADC multimode transfer by DMA is selected: conversion data
+  *         is a raw data with ADC master and slave concatenated.
+  *         A macro is available to get the conversion data of
+  *         ADC master or ADC slave: see helper macro
+  *         @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
+  * @rmtoll CCR      MDMA           LL_ADC_SetMultiDMATransfer\n
+  *         CCR      DDS            LL_ADC_SetMultiDMATransfer
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @param  MultiDMATransfer This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_1
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_2
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_3
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_1
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_2
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_3
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiDMATransfer)
+{
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DMA | ADC_CCR_DDS, MultiDMATransfer);
+}
+
+/**
+  * @brief  Get ADC multimode conversion data transfer: no transfer
+  *         or transfer by DMA.
+  * @note   If ADC multimode transfer by DMA is not selected:
+  *         each ADC uses its own DMA channel, with its individual
+  *         DMA transfer settings.
+  *         If ADC multimode transfer by DMA is selected:
+  *         One DMA channel is used for both ADC (DMA of ADC master)
+  *         Specifies the DMA requests mode:
+  *         - Limited mode (One shot mode): DMA transfer requests are stopped
+  *           when number of DMA data transfers (number of
+  *           ADC conversions) is reached.
+  *           This ADC mode is intended to be used with DMA mode non-circular.
+  *         - Unlimited mode: DMA transfer requests are unlimited,
+  *           whatever number of DMA data transfers (number of
+  *           ADC conversions).
+  *           This ADC mode is intended to be used with DMA mode circular.
+  * @note   If ADC DMA requests mode is set to unlimited and DMA is set to
+  *         mode non-circular:
+  *         when DMA transfers size will be reached, DMA will stop transfers of
+  *         ADC conversions data ADC will raise an overrun error
+  *         (overrun flag and interruption if enabled).
+  * @note   How to retrieve multimode conversion data:
+  *         Whatever multimode transfer by DMA setting: using function
+  *         @ref LL_ADC_REG_ReadMultiConversionData32().
+  *         If ADC multimode transfer by DMA is selected: conversion data
+  *         is a raw data with ADC master and slave concatenated.
+  *         A macro is available to get the conversion data of
+  *         ADC master or ADC slave: see helper macro
+  *         @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
+  * @rmtoll CCR      MDMA           LL_ADC_GetMultiDMATransfer\n
+  *         CCR      DDS            LL_ADC_GetMultiDMATransfer
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_1
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_2
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_3
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_1
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_2
+  *         @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_3
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DMA | ADC_CCR_DDS));
+}
+
+/**
+  * @brief  Set ADC multimode delay between 2 sampling phases.
+  * @note   The sampling delay range depends on ADC resolution:
+  *         - ADC resolution 12 bits can have maximum delay of 12 cycles.
+  *         - ADC resolution 10 bits can have maximum delay of 10 cycles.
+  *         - ADC resolution  8 bits can have maximum delay of  8 cycles.
+  *         - ADC resolution  6 bits can have maximum delay of  6 cycles.
+  * @rmtoll CCR      DELAY          LL_ADC_SetMultiTwoSamplingDelay
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @param  MultiTwoSamplingDelay This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_13CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_14CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_15CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_16CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_17CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_18CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_19CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_20CYCLES
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_SetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiTwoSamplingDelay)
+{
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DELAY, MultiTwoSamplingDelay);
+}
+
+/**
+  * @brief  Get ADC multimode delay between 2 sampling phases.
+  * @rmtoll CCR      DELAY          LL_ADC_GetMultiTwoSamplingDelay
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval Returned value can be one of the following values:
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_13CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_14CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_15CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_16CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_17CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_18CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_19CYCLES
+  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_20CYCLES
+  */
+__STATIC_INLINE uint32_t LL_ADC_GetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DELAY));
+}
+#endif /* ADC_MULTIMODE_SUPPORT */
+
+/**
+  * @}
+  */
+/** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance
+  * @{
+  */
+
+/**
+  * @brief  Enable the selected ADC instance.
+  * @note   On this STM32 series, after ADC enable, a delay for 
+  *         ADC internal analog stabilization is required before performing a
+  *         ADC conversion start.
+  *         Refer to device datasheet, parameter tSTAB.
+  * @rmtoll CR2      ADON           LL_ADC_Enable
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx)
+{
+  SET_BIT(ADCx->CR2, ADC_CR2_ADON);
+}
+
+/**
+  * @brief  Disable the selected ADC instance.
+  * @rmtoll CR2      ADON           LL_ADC_Disable
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx)
+{
+  CLEAR_BIT(ADCx->CR2, ADC_CR2_ADON);
+}
+
+/**
+  * @brief  Get the selected ADC instance enable state.
+  * @rmtoll CR2      ADON           LL_ADC_IsEnabled
+  * @param  ADCx ADC instance
+  * @retval 0: ADC is disabled, 1: ADC is enabled.
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsEnabled(ADC_TypeDef *ADCx)
+{
+  return (READ_BIT(ADCx->CR2, ADC_CR2_ADON) == (ADC_CR2_ADON));
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regular
+  * @{
+  */
+
+/**
+  * @brief  Start ADC group regular conversion.
+  * @note   On this STM32 series, this function is relevant only for
+  *         internal trigger (SW start), not for external trigger:
+  *         - If ADC trigger has been set to software start, ADC conversion
+  *           starts immediately.
+  *         - If ADC trigger has been set to external trigger, ADC conversion
+  *           start must be performed using function 
+  *           @ref LL_ADC_REG_StartConversionExtTrig().
+  *           (if external trigger edge would have been set during ADC other 
+  *           settings, ADC conversion would start at trigger event
+  *           as soon as ADC is enabled).
+  * @rmtoll CR2      SWSTART        LL_ADC_REG_StartConversionSWStart
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_StartConversionSWStart(ADC_TypeDef *ADCx)
+{
+  SET_BIT(ADCx->CR2, ADC_CR2_SWSTART);
+}
+
+/**
+  * @brief  Start ADC group regular conversion from external trigger.
+  * @note   ADC conversion will start at next trigger event (on the selected
+  *         trigger edge) following the ADC start conversion command.
+  * @note   On this STM32 series, this function is relevant for 
+  *         ADC conversion start from external trigger.
+  *         If internal trigger (SW start) is needed, perform ADC conversion
+  *         start using function @ref LL_ADC_REG_StartConversionSWStart().
+  * @rmtoll CR2      EXTEN          LL_ADC_REG_StartConversionExtTrig
+  * @param  ExternalTriggerEdge This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_RISING
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
+  *         @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_StartConversionExtTrig(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
+{
+  SET_BIT(ADCx->CR2, ExternalTriggerEdge);
+}
+
+/**
+  * @brief  Stop ADC group regular conversion from external trigger.
+  * @note   No more ADC conversion will start at next trigger event
+  *         following the ADC stop conversion command.
+  *         If a conversion is on-going, it will be completed.
+  * @note   On this STM32 series, there is no specific command
+  *         to stop a conversion on-going or to stop ADC converting
+  *         in continuous mode. These actions can be performed
+  *         using function @ref LL_ADC_Disable().
+  * @rmtoll CR2      EXTEN          LL_ADC_REG_StopConversionExtTrig
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_REG_StopConversionExtTrig(ADC_TypeDef *ADCx)
+{
+  CLEAR_BIT(ADCx->CR2, ADC_CR2_EXTEN);
+}
+
+/**
+  * @brief  Get ADC group regular conversion data, range fit for
+  *         all ADC configurations: all ADC resolutions and
+  *         all oversampling increased data width (for devices
+  *         with feature oversampling).
+  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData32
+  * @param  ADCx ADC instance
+  * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_ReadConversionData32(ADC_TypeDef *ADCx)
+{
+  return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
+}
+
+/**
+  * @brief  Get ADC group regular conversion data, range fit for
+  *         ADC resolution 12 bits.
+  * @note   For devices with feature oversampling: Oversampling
+  *         can increase data width, function for extended range
+  *         may be needed: @ref LL_ADC_REG_ReadConversionData32.
+  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData12
+  * @param  ADCx ADC instance
+  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
+  */
+__STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData12(ADC_TypeDef *ADCx)
+{
+  return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
+}
+
+/**
+  * @brief  Get ADC group regular conversion data, range fit for
+  *         ADC resolution 10 bits.
+  * @note   For devices with feature oversampling: Oversampling
+  *         can increase data width, function for extended range
+  *         may be needed: @ref LL_ADC_REG_ReadConversionData32.
+  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData10
+  * @param  ADCx ADC instance
+  * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
+  */
+__STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData10(ADC_TypeDef *ADCx)
+{
+  return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
+}
+
+/**
+  * @brief  Get ADC group regular conversion data, range fit for
+  *         ADC resolution 8 bits.
+  * @note   For devices with feature oversampling: Oversampling
+  *         can increase data width, function for extended range
+  *         may be needed: @ref LL_ADC_REG_ReadConversionData32.
+  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData8
+  * @param  ADCx ADC instance
+  * @retval Value between Min_Data=0x00 and Max_Data=0xFF
+  */
+__STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData8(ADC_TypeDef *ADCx)
+{
+  return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
+}
+
+/**
+  * @brief  Get ADC group regular conversion data, range fit for
+  *         ADC resolution 6 bits.
+  * @note   For devices with feature oversampling: Oversampling
+  *         can increase data width, function for extended range
+  *         may be needed: @ref LL_ADC_REG_ReadConversionData32.
+  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData6
+  * @param  ADCx ADC instance
+  * @retval Value between Min_Data=0x00 and Max_Data=0x3F
+  */
+__STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData6(ADC_TypeDef *ADCx)
+{
+  return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
+}
+
+#if defined(ADC_MULTIMODE_SUPPORT)
+/**
+  * @brief  Get ADC multimode conversion data of ADC master, ADC slave
+  *         or raw data with ADC master and slave concatenated.
+  * @note   If raw data with ADC master and slave concatenated is retrieved,
+  *         a macro is available to get the conversion data of
+  *         ADC master or ADC slave: see helper macro
+  *         @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
+  *         (however this macro is mainly intended for multimode
+  *         transfer by DMA, because this function can do the same
+  *         by getting multimode conversion data of ADC master or ADC slave
+  *         separately).
+  * @rmtoll CDR      DATA1          LL_ADC_REG_ReadMultiConversionData32\n
+  *         CDR      DATA2          LL_ADC_REG_ReadMultiConversionData32
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @param  ConversionData This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_MULTI_MASTER
+  *         @arg @ref LL_ADC_MULTI_SLAVE
+  *         @arg @ref LL_ADC_MULTI_MASTER_SLAVE
+  * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_ReadMultiConversionData32(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t ConversionData)
+{
+  return (uint32_t)(READ_BIT(ADCxy_COMMON->CDR,
+                             ADC_DR_ADC2DATA)
+                    >> POSITION_VAL(ConversionData)
+                   );
+}
+#endif /* ADC_MULTIMODE_SUPPORT */
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group injected
+  * @{
+  */
+
+/**
+  * @brief  Start ADC group injected conversion.
+  * @note   On this STM32 series, this function is relevant only for
+  *         internal trigger (SW start), not for external trigger:
+  *         - If ADC trigger has been set to software start, ADC conversion
+  *           starts immediately.
+  *         - If ADC trigger has been set to external trigger, ADC conversion
+  *           start must be performed using function 
+  *           @ref LL_ADC_INJ_StartConversionExtTrig().
+  *           (if external trigger edge would have been set during ADC other 
+  *           settings, ADC conversion would start at trigger event
+  *           as soon as ADC is enabled).
+  * @rmtoll CR2      JSWSTART       LL_ADC_INJ_StartConversionSWStart
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_INJ_StartConversionSWStart(ADC_TypeDef *ADCx)
+{
+  SET_BIT(ADCx->CR2, ADC_CR2_JSWSTART);
+}
+
+/**
+  * @brief  Start ADC group injected conversion from external trigger.
+  * @note   ADC conversion will start at next trigger event (on the selected
+  *         trigger edge) following the ADC start conversion command.
+  * @note   On this STM32 series, this function is relevant for 
+  *         ADC conversion start from external trigger.
+  *         If internal trigger (SW start) is needed, perform ADC conversion
+  *         start using function @ref LL_ADC_INJ_StartConversionSWStart().
+  * @rmtoll CR2      JEXTEN         LL_ADC_INJ_StartConversionExtTrig
+  * @param  ExternalTriggerEdge This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
+  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_INJ_StartConversionExtTrig(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
+{
+  SET_BIT(ADCx->CR2, ExternalTriggerEdge);
+}
+
+/**
+  * @brief  Stop ADC group injected conversion from external trigger.
+  * @note   No more ADC conversion will start at next trigger event
+  *         following the ADC stop conversion command.
+  *         If a conversion is on-going, it will be completed.
+  * @note   On this STM32 series, there is no specific command
+  *         to stop a conversion on-going or to stop ADC converting
+  *         in continuous mode. These actions can be performed
+  *         using function @ref LL_ADC_Disable().
+  * @rmtoll CR2      JEXTEN         LL_ADC_INJ_StopConversionExtTrig
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_INJ_StopConversionExtTrig(ADC_TypeDef *ADCx)
+{
+  CLEAR_BIT(ADCx->CR2, ADC_CR2_JEXTEN);
+}
+
+/**
+  * @brief  Get ADC group regular conversion data, range fit for
+  *         all ADC configurations: all ADC resolutions and
+  *         all oversampling increased data width (for devices
+  *         with feature oversampling).
+  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData32\n
+  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData32\n
+  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData32\n
+  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData32
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_RANK_1
+  *         @arg @ref LL_ADC_INJ_RANK_2
+  *         @arg @ref LL_ADC_INJ_RANK_3
+  *         @arg @ref LL_ADC_INJ_RANK_4
+  * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
+  */
+__STATIC_INLINE uint32_t LL_ADC_INJ_ReadConversionData32(ADC_TypeDef *ADCx, uint32_t Rank)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
+  
+  return (uint32_t)(READ_BIT(*preg,
+                             ADC_JDR1_JDATA)
+                   );
+}
+
+/**
+  * @brief  Get ADC group injected conversion data, range fit for
+  *         ADC resolution 12 bits.
+  * @note   For devices with feature oversampling: Oversampling
+  *         can increase data width, function for extended range
+  *         may be needed: @ref LL_ADC_INJ_ReadConversionData32.
+  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData12\n
+  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData12\n
+  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData12\n
+  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData12
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_RANK_1
+  *         @arg @ref LL_ADC_INJ_RANK_2
+  *         @arg @ref LL_ADC_INJ_RANK_3
+  *         @arg @ref LL_ADC_INJ_RANK_4
+  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
+  */
+__STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData12(ADC_TypeDef *ADCx, uint32_t Rank)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
+  
+  return (uint16_t)(READ_BIT(*preg,
+                             ADC_JDR1_JDATA)
+                   );
+}
+
+/**
+  * @brief  Get ADC group injected conversion data, range fit for
+  *         ADC resolution 10 bits.
+  * @note   For devices with feature oversampling: Oversampling
+  *         can increase data width, function for extended range
+  *         may be needed: @ref LL_ADC_INJ_ReadConversionData32.
+  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData10\n
+  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData10\n
+  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData10\n
+  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData10
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_RANK_1
+  *         @arg @ref LL_ADC_INJ_RANK_2
+  *         @arg @ref LL_ADC_INJ_RANK_3
+  *         @arg @ref LL_ADC_INJ_RANK_4
+  * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
+  */
+__STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData10(ADC_TypeDef *ADCx, uint32_t Rank)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
+  
+  return (uint16_t)(READ_BIT(*preg,
+                             ADC_JDR1_JDATA)
+                   );
+}
+
+/**
+  * @brief  Get ADC group injected conversion data, range fit for
+  *         ADC resolution 8 bits.
+  * @note   For devices with feature oversampling: Oversampling
+  *         can increase data width, function for extended range
+  *         may be needed: @ref LL_ADC_INJ_ReadConversionData32.
+  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData8\n
+  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData8\n
+  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData8\n
+  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData8
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_RANK_1
+  *         @arg @ref LL_ADC_INJ_RANK_2
+  *         @arg @ref LL_ADC_INJ_RANK_3
+  *         @arg @ref LL_ADC_INJ_RANK_4
+  * @retval Value between Min_Data=0x00 and Max_Data=0xFF
+  */
+__STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData8(ADC_TypeDef *ADCx, uint32_t Rank)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
+  
+  return (uint8_t)(READ_BIT(*preg,
+                            ADC_JDR1_JDATA)
+                  );
+}
+
+/**
+  * @brief  Get ADC group injected conversion data, range fit for
+  *         ADC resolution 6 bits.
+  * @note   For devices with feature oversampling: Oversampling
+  *         can increase data width, function for extended range
+  *         may be needed: @ref LL_ADC_INJ_ReadConversionData32.
+  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData6\n
+  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData6\n
+  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData6\n
+  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData6
+  * @param  ADCx ADC instance
+  * @param  Rank This parameter can be one of the following values:
+  *         @arg @ref LL_ADC_INJ_RANK_1
+  *         @arg @ref LL_ADC_INJ_RANK_2
+  *         @arg @ref LL_ADC_INJ_RANK_3
+  *         @arg @ref LL_ADC_INJ_RANK_4
+  * @retval Value between Min_Data=0x00 and Max_Data=0x3F
+  */
+__STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData6(ADC_TypeDef *ADCx, uint32_t Rank)
+{
+  __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
+  
+  return (uint8_t)(READ_BIT(*preg,
+                            ADC_JDR1_JDATA)
+                  );
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_FLAG_Management ADC flag management
+  * @{
+  */
+
+/**
+  * @brief  Get flag ADC group regular end of unitary conversion
+  *         or end of sequence conversions, depending on
+  *         ADC configuration.
+  * @note   To configure flag of end of conversion,
+  *         use function @ref LL_ADC_REG_SetFlagEndOfConversion().
+  * @rmtoll SR       EOC            LL_ADC_IsActiveFlag_EOCS
+  * @param  ADCx ADC instance
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOCS(ADC_TypeDef *ADCx)
+{
+  return (READ_BIT(ADCx->SR, LL_ADC_FLAG_EOCS) == (LL_ADC_FLAG_EOCS));
+}
+
+/**
+  * @brief  Get flag ADC group regular overrun.
+  * @rmtoll SR       OVR            LL_ADC_IsActiveFlag_OVR
+  * @param  ADCx ADC instance
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_OVR(ADC_TypeDef *ADCx)
+{
+  return (READ_BIT(ADCx->SR, LL_ADC_FLAG_OVR) == (LL_ADC_FLAG_OVR));
+}
+
+
+/**
+  * @brief  Get flag ADC group injected end of sequence conversions.
+  * @rmtoll SR       JEOC           LL_ADC_IsActiveFlag_JEOS
+  * @param  ADCx ADC instance
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOS(ADC_TypeDef *ADCx)
+{
+  /* Note: on this STM32 series, there is no flag ADC group injected          */
+  /*       end of unitary conversion.                                         */
+  /*       Flag noted as "JEOC" is corresponding to flag "JEOS"               */
+  /*       in other STM32 families).                                          */
+  return (READ_BIT(ADCx->SR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS));
+}
+
+/**
+  * @brief  Get flag ADC analog watchdog 1 flag
+  * @rmtoll SR       AWD            LL_ADC_IsActiveFlag_AWD1
+  * @param  ADCx ADC instance
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD1(ADC_TypeDef *ADCx)
+{
+  return (READ_BIT(ADCx->SR, LL_ADC_FLAG_AWD1) == (LL_ADC_FLAG_AWD1));
+}
+
+/**
+  * @brief  Clear flag ADC group regular end of unitary conversion
+  *         or end of sequence conversions, depending on
+  *         ADC configuration.
+  * @note   To configure flag of end of conversion,
+  *         use function @ref LL_ADC_REG_SetFlagEndOfConversion().
+  * @rmtoll SR       EOC            LL_ADC_ClearFlag_EOCS
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_ClearFlag_EOCS(ADC_TypeDef *ADCx)
+{
+  WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_EOCS);
+}
+
+/**
+  * @brief  Clear flag ADC group regular overrun.
+  * @rmtoll SR       OVR            LL_ADC_ClearFlag_OVR
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_ClearFlag_OVR(ADC_TypeDef *ADCx)
+{
+  WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_OVR);
+}
+
+
+/**
+  * @brief  Clear flag ADC group injected end of sequence conversions.
+  * @rmtoll SR       JEOC           LL_ADC_ClearFlag_JEOS
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_ClearFlag_JEOS(ADC_TypeDef *ADCx)
+{
+  /* Note: on this STM32 series, there is no flag ADC group injected          */
+  /*       end of unitary conversion.                                         */
+  /*       Flag noted as "JEOC" is corresponding to flag "JEOS"               */
+  /*       in other STM32 families).                                          */
+  WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_JEOS);
+}
+
+/**
+  * @brief  Clear flag ADC analog watchdog 1.
+  * @rmtoll SR       AWD            LL_ADC_ClearFlag_AWD1
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_ClearFlag_AWD1(ADC_TypeDef *ADCx)
+{
+  WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_AWD1);
+}
+
+#if defined(ADC_MULTIMODE_SUPPORT)
+/**
+  * @brief  Get flag multimode ADC group regular end of unitary conversion
+  *         or end of sequence conversions, depending on
+  *         ADC configuration, of the ADC master.
+  * @note   To configure flag of end of conversion,
+  *         use function @ref LL_ADC_REG_SetFlagEndOfConversion().
+  * @rmtoll CSR      EOC1           LL_ADC_IsActiveFlag_MST_EOCS
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOCS(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOCS_MST) == (LL_ADC_FLAG_EOCS_MST));
+}
+
+/**
+  * @brief  Get flag multimode ADC group regular end of unitary conversion
+  *         or end of sequence conversions, depending on
+  *         ADC configuration, of the ADC slave 1.
+  * @note   To configure flag of end of conversion,
+  *         use function @ref LL_ADC_REG_SetFlagEndOfConversion().
+  * @rmtoll CSR      EOC2           LL_ADC_IsActiveFlag_SLV1_EOCS
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV1_EOCS(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOCS_SLV1) == (LL_ADC_FLAG_EOCS_SLV1));
+}
+
+/**
+  * @brief  Get flag multimode ADC group regular end of unitary conversion
+  *         or end of sequence conversions, depending on
+  *         ADC configuration, of the ADC slave 2.
+  * @note   To configure flag of end of conversion,
+  *         use function @ref LL_ADC_REG_SetFlagEndOfConversion().
+  * @rmtoll CSR      EOC3           LL_ADC_IsActiveFlag_SLV2_EOCS
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV2_EOCS(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOCS_SLV2) == (LL_ADC_FLAG_EOCS_SLV2));
+}
+/**
+  * @brief  Get flag multimode ADC group regular overrun of the ADC master.
+  * @rmtoll CSR      OVR1           LL_ADC_IsActiveFlag_MST_OVR
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_MST) == (LL_ADC_FLAG_OVR_MST));
+}
+
+/**
+  * @brief  Get flag multimode ADC group regular overrun of the ADC slave 1.
+  * @rmtoll CSR      OVR2           LL_ADC_IsActiveFlag_SLV1_OVR
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV1_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_SLV1) == (LL_ADC_FLAG_OVR_SLV1));
+}
+
+/**
+  * @brief  Get flag multimode ADC group regular overrun of the ADC slave 2.
+  * @rmtoll CSR      OVR3           LL_ADC_IsActiveFlag_SLV2_OVR
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV2_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_SLV2) == (LL_ADC_FLAG_OVR_SLV2));
+}
+
+
+/**
+  * @brief  Get flag multimode ADC group injected end of sequence conversions of the ADC master.
+  * @rmtoll CSR      JEOC           LL_ADC_IsActiveFlag_MST_JEOS
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  /* Note: on this STM32 series, there is no flag ADC group injected          */
+  /*       end of unitary conversion.                                         */
+  /*       Flag noted as "JEOC" is corresponding to flag "JEOS"               */
+  /*       in other STM32 families).                                          */
+  return (READ_BIT(ADCxy_COMMON->CSR, ADC_CSR_JEOC1) == (ADC_CSR_JEOC1));
+}
+
+/**
+  * @brief  Get flag multimode ADC group injected end of sequence conversions of the ADC slave 1.
+  * @rmtoll CSR      JEOC2          LL_ADC_IsActiveFlag_SLV1_JEOS
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV1_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  /* Note: on this STM32 series, there is no flag ADC group injected          */
+  /*       end of unitary conversion.                                         */
+  /*       Flag noted as "JEOC" is corresponding to flag "JEOS"               */
+  /*       in other STM32 families).                                          */
+  return (READ_BIT(ADCxy_COMMON->CSR, ADC_CSR_JEOC2) == (ADC_CSR_JEOC2));
+}
+
+/**
+  * @brief  Get flag multimode ADC group injected end of sequence conversions of the ADC slave 2.
+  * @rmtoll CSR      JEOC3          LL_ADC_IsActiveFlag_SLV2_JEOS
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV2_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  /* Note: on this STM32 series, there is no flag ADC group injected          */
+  /*       end of unitary conversion.                                         */
+  /*       Flag noted as "JEOC" is corresponding to flag "JEOS"               */
+  /*       in other STM32 families).                                          */
+  return (READ_BIT(ADCxy_COMMON->CSR, ADC_CSR_JEOC3) == (ADC_CSR_JEOC3));
+}
+
+/**
+  * @brief  Get flag multimode ADC analog watchdog 1 of the ADC master.
+  * @rmtoll CSR      AWD1           LL_ADC_IsActiveFlag_MST_AWD1
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_MST) == (LL_ADC_FLAG_AWD1_MST));
+}
+
+/**
+  * @brief  Get flag multimode analog watchdog 1 of the ADC slave 1.
+  * @rmtoll CSR      AWD2           LL_ADC_IsActiveFlag_SLV1_AWD1
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV1_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_SLV1) == (LL_ADC_FLAG_AWD1_SLV1));
+}
+
+/**
+  * @brief  Get flag multimode analog watchdog 1 of the ADC slave 2.
+  * @rmtoll CSR      AWD3           LL_ADC_IsActiveFlag_SLV2_AWD1
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV2_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+    return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_SLV2) == (LL_ADC_FLAG_AWD1_SLV2));
+}
+
+#endif /* ADC_MULTIMODE_SUPPORT */
+
+/**
+  * @}
+  */
+
+/** @defgroup ADC_LL_EF_IT_Management ADC IT management
+  * @{
+  */
+
+/**
+  * @brief  Enable interruption ADC group regular end of unitary conversion
+  *         or end of sequence conversions, depending on
+  *         ADC configuration.
+  * @note   To configure flag of end of conversion,
+  *         use function @ref LL_ADC_REG_SetFlagEndOfConversion().
+  * @rmtoll CR1      EOCIE          LL_ADC_EnableIT_EOCS
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_EnableIT_EOCS(ADC_TypeDef *ADCx)
+{
+  SET_BIT(ADCx->CR1, LL_ADC_IT_EOCS);
+}
+
+/**
+  * @brief  Enable ADC group regular interruption overrun.
+  * @rmtoll CR1      OVRIE          LL_ADC_EnableIT_OVR
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_EnableIT_OVR(ADC_TypeDef *ADCx)
+{
+  SET_BIT(ADCx->CR1, LL_ADC_IT_OVR);
+}
+
+
+/**
+  * @brief  Enable interruption ADC group injected end of sequence conversions.
+  * @rmtoll CR1      JEOCIE         LL_ADC_EnableIT_JEOS
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_EnableIT_JEOS(ADC_TypeDef *ADCx)
+{
+  /* Note: on this STM32 series, there is no flag ADC group injected          */
+  /*       end of unitary conversion.                                         */
+  /*       Flag noted as "JEOC" is corresponding to flag "JEOS"               */
+  /*       in other STM32 families).                                          */
+  SET_BIT(ADCx->CR1, LL_ADC_IT_JEOS);
+}
+
+/**
+  * @brief  Enable interruption ADC analog watchdog 1.
+  * @rmtoll CR1      AWDIE          LL_ADC_EnableIT_AWD1
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_EnableIT_AWD1(ADC_TypeDef *ADCx)
+{
+  SET_BIT(ADCx->CR1, LL_ADC_IT_AWD1);
+}
+
+/**
+  * @brief  Disable interruption ADC group regular end of unitary conversion
+  *         or end of sequence conversions, depending on
+  *         ADC configuration.
+  * @note   To configure flag of end of conversion,
+  *         use function @ref LL_ADC_REG_SetFlagEndOfConversion().
+  * @rmtoll CR1      EOCIE          LL_ADC_DisableIT_EOCS
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_DisableIT_EOCS(ADC_TypeDef *ADCx)
+{
+  CLEAR_BIT(ADCx->CR1, LL_ADC_IT_EOCS);
+}
+
+/**
+  * @brief  Disable interruption ADC group regular overrun.
+  * @rmtoll CR1      OVRIE          LL_ADC_DisableIT_OVR
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_DisableIT_OVR(ADC_TypeDef *ADCx)
+{
+  CLEAR_BIT(ADCx->CR1, LL_ADC_IT_OVR);
+}
+
+
+/**
+  * @brief  Disable interruption ADC group injected end of sequence conversions.
+  * @rmtoll CR1      JEOCIE         LL_ADC_EnableIT_JEOS
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_DisableIT_JEOS(ADC_TypeDef *ADCx)
+{
+  /* Note: on this STM32 series, there is no flag ADC group injected          */
+  /*       end of unitary conversion.                                         */
+  /*       Flag noted as "JEOC" is corresponding to flag "JEOS"               */
+  /*       in other STM32 families).                                          */
+  CLEAR_BIT(ADCx->CR1, LL_ADC_IT_JEOS);
+}
+
+/**
+  * @brief  Disable interruption ADC analog watchdog 1.
+  * @rmtoll CR1      AWDIE          LL_ADC_EnableIT_AWD1
+  * @param  ADCx ADC instance
+  * @retval None
+  */
+__STATIC_INLINE void LL_ADC_DisableIT_AWD1(ADC_TypeDef *ADCx)
+{
+  CLEAR_BIT(ADCx->CR1, LL_ADC_IT_AWD1);
+}
+
+/**
+  * @brief  Get state of interruption ADC group regular end of unitary conversion
+  *         or end of sequence conversions, depending on
+  *         ADC configuration.
+  * @note   To configure flag of end of conversion,
+  *         use function @ref LL_ADC_REG_SetFlagEndOfConversion().
+  *         (0: interrupt disabled, 1: interrupt enabled)
+  * @rmtoll CR1      EOCIE          LL_ADC_IsEnabledIT_EOCS
+  * @param  ADCx ADC instance
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOCS(ADC_TypeDef *ADCx)
+{
+  return (READ_BIT(ADCx->CR1, LL_ADC_IT_EOCS) == (LL_ADC_IT_EOCS));
+}
+
+/**
+  * @brief  Get state of interruption ADC group regular overrun
+  *         (0: interrupt disabled, 1: interrupt enabled).
+  * @rmtoll CR1      OVRIE          LL_ADC_IsEnabledIT_OVR
+  * @param  ADCx ADC instance
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_OVR(ADC_TypeDef *ADCx)
+{
+  return (READ_BIT(ADCx->CR1, LL_ADC_IT_OVR) == (LL_ADC_IT_OVR));
+}
+
+
+/**
+  * @brief  Get state of interruption ADC group injected end of sequence conversions
+  *         (0: interrupt disabled, 1: interrupt enabled).
+  * @rmtoll CR1      JEOCIE         LL_ADC_EnableIT_JEOS
+  * @param  ADCx ADC instance
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOS(ADC_TypeDef *ADCx)
+{
+  /* Note: on this STM32 series, there is no flag ADC group injected          */
+  /*       end of unitary conversion.                                         */
+  /*       Flag noted as "JEOC" is corresponding to flag "JEOS"               */
+  /*       in other STM32 families).                                          */
+  return (READ_BIT(ADCx->CR1, LL_ADC_IT_JEOS) == (LL_ADC_IT_JEOS));
+}
+
+/**
+  * @brief  Get state of interruption ADC analog watchdog 1
+  *         (0: interrupt disabled, 1: interrupt enabled).
+  * @rmtoll CR1      AWDIE          LL_ADC_EnableIT_AWD1
+  * @param  ADCx ADC instance
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD1(ADC_TypeDef *ADCx)
+{
+  return (READ_BIT(ADCx->CR1, LL_ADC_IT_AWD1) == (LL_ADC_IT_AWD1));
+}
+
+/**
+  * @}
+  */
+
+#if defined(USE_FULL_LL_DRIVER)
+/** @defgroup ADC_LL_EF_Init Initialization and de-initialization functions
+  * @{
+  */
+
+/* Initialization of some features of ADC common parameters and multimode */
+ErrorStatus LL_ADC_CommonDeInit(ADC_Common_TypeDef *ADCxy_COMMON);
+ErrorStatus LL_ADC_CommonInit(ADC_Common_TypeDef *ADCxy_COMMON, LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
+void        LL_ADC_CommonStructInit(LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
+
+/* De-initialization of ADC instance, ADC group regular and ADC group injected */
+/* (availability of ADC group injected depends on STM32 families) */
+ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx);
+
+/* Initialization of some features of ADC instance */
+ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, LL_ADC_InitTypeDef *ADC_InitStruct);
+void        LL_ADC_StructInit(LL_ADC_InitTypeDef *ADC_InitStruct);
+
+/* Initialization of some features of ADC instance and ADC group regular */
+ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
+void        LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
+
+/* Initialization of some features of ADC instance and ADC group injected */
+ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
+void        LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
+
+/**
+  * @}
+  */
+#endif /* USE_FULL_LL_DRIVER */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#endif /* ADC1 || ADC2 || ADC3 */
+
+/**
+  * @}
+  */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_LL_ADC_H */
+

+ 6 - 0
Soft/STM32/Proto/Drivers/STM32F4xx_HAL_Driver/LICENSE.txt

@@ -0,0 +1,6 @@
+This software component is provided to you as part of a software package and
+applicable license terms are in the  Package_license file. If you received this
+software component outside of a package or without applicable license terms,
+the terms of the BSD-3-Clause license shall apply. 
+You may obtain a copy of the BSD-3-Clause at:
+https://opensource.org/licenses/BSD-3-Clause

+ 1896 - 0
Soft/STM32/Proto/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c

@@ -0,0 +1,1896 @@
+/**
+  ******************************************************************************
+  * @file    stm32f4xx_hal_rtc.c
+  * @author  MCD Application Team
+  * @brief   RTC HAL module driver.
+  *          This file provides firmware functions to manage the following
+  *          functionalities of the Real-Time Clock (RTC) peripheral:
+  *           + Initialization and de-initialization functions
+  *           + RTC Calendar (Time and Date) configuration functions
+  *           + RTC Alarms (Alarm A and Alarm B) configuration functions
+  *           + Peripheral Control functions
+  *           + Peripheral State functions
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  @verbatim
+  ==============================================================================
+               ##### RTC and Backup Domain Operating Condition #####
+  ==============================================================================
+  [..] The real-time clock (RTC), the RTC backup registers, and the backup
+       SRAM (BKP SRAM) can be powered from the VBAT voltage when the main
+       VDD supply is powered off.
+       To retain the content of the RTC backup registers, BKP SRAM, and supply
+       the RTC when VDD is turned off, VBAT pin can be connected to an optional
+       standby voltage supplied by a battery or by another source.
+
+  [..] To allow the RTC operating even when the main digital supply (VDD) is turned
+       off, the VBAT pin powers the following blocks:
+    (#) The RTC
+    (#) The LSE oscillator
+    (#) The BKP SRAM when the low power backup regulator is enabled
+    (#) PC13 to PC15 I/Os, plus PI8 I/O (when available)
+
+  [..] When the backup domain is supplied by VDD (analog switch connected to VDD),
+       the following pins are available:
+    (#) PC14 and PC15 can be used as either GPIO or LSE pins
+    (#) PC13 can be used as a GPIO or as the RTC_AF1 pin
+    (#) PI8 can be used as a GPIO or as the RTC_AF2 pin
+
+  [..] When the backup domain is supplied by VBAT (analog switch connected to VBAT
+       because VDD is not present), the following pins are available:
+    (#) PC14 and PC15 can be used as LSE pins only
+    (#) PC13 can be used as the RTC_AF1 pin
+    (#) PI8 can be used as the RTC_AF2 pin
+
+                   ##### Backup Domain Reset #####
+  ==================================================================
+  [..] The backup domain reset sets all RTC registers and the RCC_BDCR register
+       to their reset values.
+       The BKP SRAM is not affected by this reset. The only way to reset the BKP
+       SRAM is through the Flash interface by requesting a protection level
+       change from 1 to 0.
+  [..] A backup domain reset is generated when one of the following events occurs:
+    (#) Software reset, triggered by setting the BDRST bit in the
+        RCC Backup domain control register (RCC_BDCR).
+    (#) VDD or VBAT power on, if both supplies have previously been powered off.
+
+                   ##### Backup Domain Access #####
+  ==================================================================
+  [..] After reset, the backup domain (RTC registers, RTC backup data registers
+       and BKP SRAM) is protected against possible unwanted write accesses.
+  [..] To enable access to the RTC Domain and RTC registers, proceed as follows:
+    (+) Enable the Power Controller (PWR) APB1 interface clock using the
+        __HAL_RCC_PWR_CLK_ENABLE() macro.
+    (+) Enable access to RTC domain using the HAL_PWR_EnableBkUpAccess() function.
+    (+) Select the RTC clock source using the __HAL_RCC_RTC_CONFIG() macro.
+    (+) Enable RTC Clock using the __HAL_RCC_RTC_ENABLE() macro.
+
+  ==============================================================================
+                        ##### How to use this driver #####
+  ==============================================================================
+  [..]
+    (+) Enable the RTC domain access (see description in the section above).
+    (+) Configure the RTC Prescaler (Asynchronous and Synchronous) and RTC hour
+        format using the HAL_RTC_Init() function.
+
+  *** Time and Date configuration ***
+  ===================================
+  [..]
+    (+) To configure the RTC Calendar (Time and Date) use the HAL_RTC_SetTime()
+        and HAL_RTC_SetDate() functions.
+    (+) To read the RTC Calendar, use the HAL_RTC_GetTime() and HAL_RTC_GetDate()
+        functions.
+    (+) To manage the RTC summer or winter time change, use the following
+        functions:
+        (++) HAL_RTC_DST_Add1Hour() or HAL_RTC_DST_Sub1Hour to add or subtract
+             1 hour from the calendar time.
+        (++) HAL_RTC_DST_SetStoreOperation() or HAL_RTC_DST_ClearStoreOperation
+             to memorize whether the time change has been performed or not.
+
+  *** Alarm configuration ***
+  ===========================
+  [..]
+    (+) To configure the RTC Alarm use the HAL_RTC_SetAlarm() function.
+        You can also configure the RTC Alarm with interrupt mode using the
+        HAL_RTC_SetAlarm_IT() function.
+    (+) To read the RTC Alarm, use the HAL_RTC_GetAlarm() function.
+
+                  ##### RTC and low power modes #####
+  ==================================================================
+  [..] The MCU can be woken up from a low power mode by an RTC alternate
+       function.
+  [..] The RTC alternate functions are the RTC alarms (Alarm A and Alarm B),
+       RTC wakeup, RTC tamper event detection and RTC timestamp event detection.
+       These RTC alternate functions can wake up the system from the Stop and
+       Standby low power modes.
+  [..] The system can also wake up from low power modes without depending
+       on an external interrupt (Auto-wakeup mode), by using the RTC alarm
+       or the RTC wakeup events.
+  [..] The RTC provides a programmable time base for waking up from the
+       Stop or Standby mode at regular intervals.
+       Wakeup from STOP and STANDBY modes is possible only when the RTC clock
+       source is LSE or LSI.
+
+  *** Callback registration ***
+  =============================================
+  [..]
+  The compilation define  USE_HAL_RTC_REGISTER_CALLBACKS when set to 1
+  allows the user to configure dynamically the driver callbacks.
+  Use Function HAL_RTC_RegisterCallback() to register an interrupt callback.
+  [..]
+  Function HAL_RTC_RegisterCallback() allows to register following callbacks:
+    (+) AlarmAEventCallback          : RTC Alarm A Event callback.
+    (+) AlarmBEventCallback          : RTC Alarm B Event callback.
+    (+) TimeStampEventCallback       : RTC Timestamp Event callback.
+    (+) WakeUpTimerEventCallback     : RTC WakeUpTimer Event callback.
+    (+) Tamper1EventCallback         : RTC Tamper 1 Event callback.
+    (+) Tamper2EventCallback         : RTC Tamper 2 Event callback.
+    (+) MspInitCallback              : RTC MspInit callback.
+    (+) MspDeInitCallback            : RTC MspDeInit callback.
+  [..]
+  This function takes as parameters the HAL peripheral handle, the Callback ID
+  and a pointer to the user callback function.
+  [..]
+  Use function HAL_RTC_UnRegisterCallback() to reset a callback to the default
+  weak function.
+  HAL_RTC_UnRegisterCallback() takes as parameters the HAL peripheral handle,
+  and the Callback ID.
+  This function allows to reset following callbacks:
+    (+) AlarmAEventCallback          : RTC Alarm A Event callback.
+    (+) AlarmBEventCallback          : RTC Alarm B Event callback.
+    (+) TimeStampEventCallback       : RTC Timestamp Event callback.
+    (+) WakeUpTimerEventCallback     : RTC WakeUpTimer Event callback.
+    (+) Tamper1EventCallback         : RTC Tamper 1 Event callback.
+    (+) Tamper2EventCallback         : RTC Tamper 2 Event callback.
+    (+) MspInitCallback              : RTC MspInit callback.
+    (+) MspDeInitCallback            : RTC MspDeInit callback.
+  [..]
+  By default, after the HAL_RTC_Init() and when the state is HAL_RTC_STATE_RESET,
+  all callbacks are set to the corresponding weak functions:
+  examples AlarmAEventCallback(), WakeUpTimerEventCallback().
+  Exception done for MspInit() and MspDeInit() callbacks that are reset to the
+  legacy weak function in the HAL_RTC_Init()/HAL_RTC_DeInit() only
+  when these callbacks are null (not registered beforehand).
+  If not, MspInit() or MspDeInit() are not null, HAL_RTC_Init()/HAL_RTC_DeInit()
+  keep and use the user MspInit()/MspDeInit() callbacks (registered beforehand).
+  [..]
+  Callbacks can be registered/unregistered in HAL_RTC_STATE_READY state only.
+  Exception done MspInit()/MspDeInit() that can be registered/unregistered
+  in HAL_RTC_STATE_READY or HAL_RTC_STATE_RESET state.
+  Thus registered (user) MspInit()/MspDeInit() callbacks can be used during the
+  Init/DeInit.
+  In that case first register the MspInit()/MspDeInit() user callbacks
+  using HAL_RTC_RegisterCallback() before calling HAL_RTC_DeInit()
+  or HAL_RTC_Init() functions.
+  [..]
+  When The compilation define USE_HAL_RTC_REGISTER_CALLBACKS is set to 0 or
+  not defined, the callback registration feature is not available and all
+  callbacks are set to the corresponding weak functions.
+
+  @endverbatim
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_hal.h"
+
+/** @addtogroup STM32F4xx_HAL_Driver
+  * @{
+  */
+
+/** @defgroup RTC RTC
+  * @brief    RTC HAL module driver
+  * @{
+  */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/* Exported functions --------------------------------------------------------*/
+
+/** @defgroup RTC_Exported_Functions RTC Exported Functions
+  * @{
+  */
+
+/** @defgroup RTC_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @brief    Initialization and Configuration functions
+  *
+@verbatim
+ ===============================================================================
+              ##### Initialization and de-initialization functions #####
+ ===============================================================================
+   [..] This section provides functions allowing to initialize and configure the
+         RTC Prescaler (Synchronous and Asynchronous), RTC Hour format, disable
+         RTC registers Write protection, enter and exit the RTC initialization mode,
+         RTC registers synchronization check and reference clock detection enable.
+         (#) The RTC Prescaler is programmed to generate the RTC 1Hz time base.
+             It is split into 2 programmable prescalers to minimize power consumption.
+             (++) A 7-bit asynchronous prescaler and a 15-bit synchronous prescaler.
+             (++) When both prescalers are used, it is recommended to configure the
+                 asynchronous prescaler to a high value to minimize power consumption.
+         (#) All RTC registers are Write protected. Writing to the RTC registers
+             is enabled by writing a key into the Write Protection register, RTC_WPR.
+         (#) To configure the RTC Calendar, user application should enter
+             initialization mode. In this mode, the calendar counter is stopped
+             and its value can be updated. When the initialization sequence is
+             complete, the calendar restarts counting after 4 RTCCLK cycles.
+         (#) To read the calendar through the shadow registers after Calendar
+             initialization, calendar update or after wakeup from low power modes
+             the software must first clear the RSF flag. The software must then
+             wait until it is set again before reading the calendar, which means
+             that the calendar registers have been correctly copied into the
+             RTC_TR and RTC_DR shadow registers. The HAL_RTC_WaitForSynchro() function
+             implements the above software sequence (RSF clear and RSF check).
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Initializes the RTC peripheral
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc)
+{
+  HAL_StatusTypeDef status = HAL_ERROR;
+
+  /* Check RTC handler validity */
+  if (hrtc == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Check the parameters */
+  assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance));
+  assert_param(IS_RTC_HOUR_FORMAT(hrtc->Init.HourFormat));
+  assert_param(IS_RTC_ASYNCH_PREDIV(hrtc->Init.AsynchPrediv));
+  assert_param(IS_RTC_SYNCH_PREDIV(hrtc->Init.SynchPrediv));
+  assert_param(IS_RTC_OUTPUT(hrtc->Init.OutPut));
+  assert_param(IS_RTC_OUTPUT_POL(hrtc->Init.OutPutPolarity));
+  assert_param(IS_RTC_OUTPUT_TYPE(hrtc->Init.OutPutType));
+
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+  if (hrtc->State == HAL_RTC_STATE_RESET)
+  {
+    /* Allocate lock resource and initialize it */
+    hrtc->Lock = HAL_UNLOCKED;
+
+    hrtc->AlarmAEventCallback          =  HAL_RTC_AlarmAEventCallback;        /* Legacy weak AlarmAEventCallback      */
+    hrtc->AlarmBEventCallback          =  HAL_RTCEx_AlarmBEventCallback;      /* Legacy weak AlarmBEventCallback      */
+    hrtc->TimeStampEventCallback       =  HAL_RTCEx_TimeStampEventCallback;   /* Legacy weak TimeStampEventCallback   */
+    hrtc->WakeUpTimerEventCallback     =  HAL_RTCEx_WakeUpTimerEventCallback; /* Legacy weak WakeUpTimerEventCallback */
+    hrtc->Tamper1EventCallback         =  HAL_RTCEx_Tamper1EventCallback;     /* Legacy weak Tamper1EventCallback     */
+#if defined(RTC_TAMPER2_SUPPORT)
+    hrtc->Tamper2EventCallback         =  HAL_RTCEx_Tamper2EventCallback;     /* Legacy weak Tamper2EventCallback     */
+#endif /* RTC_TAMPER2_SUPPORT */
+
+    if (hrtc->MspInitCallback == NULL)
+    {
+      hrtc->MspInitCallback = HAL_RTC_MspInit;
+    }
+    /* Init the low level hardware */
+    hrtc->MspInitCallback(hrtc);
+
+    if (hrtc->MspDeInitCallback == NULL)
+    {
+      hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
+    }
+  }
+#else /* USE_HAL_RTC_REGISTER_CALLBACKS */
+  if (hrtc->State == HAL_RTC_STATE_RESET)
+  {
+    /* Allocate lock resource and initialize it */
+    hrtc->Lock = HAL_UNLOCKED;
+
+    /* Initialize RTC MSP */
+    HAL_RTC_MspInit(hrtc);
+  }
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+  /* Set RTC state */
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
+  {
+    /* Clear RTC_CR FMT, OSEL and POL Bits */
+    hrtc->Instance->CR &= ((uint32_t)~(RTC_CR_FMT | RTC_CR_OSEL | RTC_CR_POL));
+    /* Set RTC_CR register */
+    hrtc->Instance->CR |= (uint32_t)(hrtc->Init.HourFormat | hrtc->Init.OutPut | hrtc->Init.OutPutPolarity);
+
+    /* Configure the RTC PRER */
+    hrtc->Instance->PRER = (uint32_t)(hrtc->Init.SynchPrediv);
+    hrtc->Instance->PRER |= (uint32_t)(hrtc->Init.AsynchPrediv << RTC_PRER_PREDIV_A_Pos);
+
+    /* Exit Initialization mode */
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->Instance->TAFCR &= (uint32_t)~RTC_OUTPUT_TYPE_PUSHPULL;
+    hrtc->Instance->TAFCR |= (uint32_t)(hrtc->Init.OutPutType);
+
+    hrtc->State = HAL_RTC_STATE_READY;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  return status;
+}
+
+/**
+  * @brief  DeInitializes the RTC peripheral
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @note   This function does not reset the RTC Backup Data registers.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc)
+{
+  HAL_StatusTypeDef status = HAL_ERROR;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance));
+
+  /* Set RTC state */
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
+  {
+    /* Reset RTC registers */
+    hrtc->Instance->TR = 0x00000000U;
+    hrtc->Instance->DR = (RTC_DR_WDU_0 | RTC_DR_MU_0 | RTC_DR_DU_0);
+    hrtc->Instance->CR  &= 0x00000000U;
+    hrtc->Instance->WUTR = RTC_WUTR_WUT;
+    hrtc->Instance->PRER = (uint32_t)(RTC_PRER_PREDIV_A | 0x000000FFU);
+    hrtc->Instance->CALIBR = 0x00000000U;
+    hrtc->Instance->ALRMAR   = 0x00000000U;
+    hrtc->Instance->ALRMBR   = 0x00000000U;
+    hrtc->Instance->CALR     = 0x00000000U;
+    hrtc->Instance->SHIFTR   = 0x00000000U;
+    hrtc->Instance->ALRMASSR = 0x00000000U;
+    hrtc->Instance->ALRMBSSR = 0x00000000U;
+
+    /* Exit Initialization mode */
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  if (status == HAL_OK)
+  {
+    /* Reset Tamper and alternate functions configuration register */
+    hrtc->Instance->TAFCR = 0x00000000U;
+
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+    if (hrtc->MspDeInitCallback == NULL)
+    {
+      hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
+    }
+
+    /* DeInit the low level hardware: CLOCK, NVIC.*/
+    hrtc->MspDeInitCallback(hrtc);
+#else /* USE_HAL_RTC_REGISTER_CALLBACKS */
+    /* De-Initialize RTC MSP */
+    HAL_RTC_MspDeInit(hrtc);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+    hrtc->State = HAL_RTC_STATE_RESET;
+  }
+
+  /* Release Lock */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
+}
+
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+/**
+  * @brief  Registers a User RTC Callback
+  *         To be used instead of the weak predefined callback
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  CallbackID ID of the callback to be registered
+  *         This parameter can be one of the following values:
+  *          @arg @ref HAL_RTC_ALARM_A_EVENT_CB_ID          Alarm A Event Callback ID
+  *          @arg @ref HAL_RTC_ALARM_B_EVENT_CB_ID          Alarm B Event Callback ID
+  *          @arg @ref HAL_RTC_TIMESTAMP_EVENT_CB_ID        Timestamp Event Callback ID
+  *          @arg @ref HAL_RTC_WAKEUPTIMER_EVENT_CB_ID      Wakeup Timer Event Callback ID
+  *          @arg @ref HAL_RTC_TAMPER1_EVENT_CB_ID          Tamper 1 Callback ID
+  *          @arg @ref HAL_RTC_TAMPER2_EVENT_CB_ID          Tamper 2 Callback ID
+  *          @arg @ref HAL_RTC_MSPINIT_CB_ID                Msp Init callback ID
+  *          @arg @ref HAL_RTC_MSPDEINIT_CB_ID              Msp DeInit callback ID
+  * @note   HAL_RTC_TAMPER2_EVENT_CB_ID is not applicable to all devices.
+  * @param  pCallback pointer to the Callback function
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_RegisterCallback(RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID, pRTC_CallbackTypeDef pCallback)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  if (pCallback == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Process locked */
+  __HAL_LOCK(hrtc);
+
+  if (HAL_RTC_STATE_READY == hrtc->State)
+  {
+    switch (CallbackID)
+    {
+      case HAL_RTC_ALARM_A_EVENT_CB_ID :
+        hrtc->AlarmAEventCallback = pCallback;
+        break;
+
+      case HAL_RTC_ALARM_B_EVENT_CB_ID :
+        hrtc->AlarmBEventCallback = pCallback;
+        break;
+
+      case HAL_RTC_TIMESTAMP_EVENT_CB_ID :
+        hrtc->TimeStampEventCallback = pCallback;
+        break;
+
+      case HAL_RTC_WAKEUPTIMER_EVENT_CB_ID :
+        hrtc->WakeUpTimerEventCallback = pCallback;
+        break;
+
+      case HAL_RTC_TAMPER1_EVENT_CB_ID :
+        hrtc->Tamper1EventCallback = pCallback;
+        break;
+
+#if defined(RTC_TAMPER2_SUPPORT)
+      case HAL_RTC_TAMPER2_EVENT_CB_ID :
+        hrtc->Tamper2EventCallback = pCallback;
+        break;
+#endif /* RTC_TAMPER2_SUPPORT */
+
+      case HAL_RTC_MSPINIT_CB_ID :
+        hrtc->MspInitCallback = pCallback;
+        break;
+
+      case HAL_RTC_MSPDEINIT_CB_ID :
+        hrtc->MspDeInitCallback = pCallback;
+        break;
+
+      default :
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
+    }
+  }
+  else if (HAL_RTC_STATE_RESET == hrtc->State)
+  {
+    switch (CallbackID)
+    {
+      case HAL_RTC_MSPINIT_CB_ID :
+        hrtc->MspInitCallback = pCallback;
+        break;
+
+      case HAL_RTC_MSPDEINIT_CB_ID :
+        hrtc->MspDeInitCallback = pCallback;
+        break;
+
+      default :
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
+    }
+  }
+  else
+  {
+    /* Return error status */
+    status =  HAL_ERROR;
+  }
+
+  /* Release Lock */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
+}
+
+/**
+  * @brief  Unregisters an RTC Callback
+  *         RTC callabck is redirected to the weak predefined callback
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  CallbackID ID of the callback to be unregistered
+  *         This parameter can be one of the following values:
+  *          @arg @ref HAL_RTC_ALARM_A_EVENT_CB_ID          Alarm A Event Callback ID
+  *          @arg @ref HAL_RTC_ALARM_B_EVENT_CB_ID          Alarm B Event Callback ID
+  *          @arg @ref HAL_RTC_TIMESTAMP_EVENT_CB_ID        Timestamp Event Callback ID
+  *          @arg @ref HAL_RTC_WAKEUPTIMER_EVENT_CB_ID      Wakeup Timer Event Callback ID
+  *          @arg @ref HAL_RTC_TAMPER1_EVENT_CB_ID          Tamper 1 Callback ID
+  *          @arg @ref HAL_RTC_TAMPER2_EVENT_CB_ID          Tamper 2 Callback ID
+  *          @arg @ref HAL_RTC_MSPINIT_CB_ID Msp Init callback ID
+  *          @arg @ref HAL_RTC_MSPDEINIT_CB_ID Msp DeInit callback ID
+  * @note   HAL_RTC_TAMPER2_EVENT_CB_ID is not applicable to all devices.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_UnRegisterCallback(RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Process locked */
+  __HAL_LOCK(hrtc);
+
+  if (HAL_RTC_STATE_READY == hrtc->State)
+  {
+    switch (CallbackID)
+    {
+      case HAL_RTC_ALARM_A_EVENT_CB_ID :
+        hrtc->AlarmAEventCallback = HAL_RTC_AlarmAEventCallback;             /* Legacy weak AlarmAEventCallback    */
+        break;
+
+      case HAL_RTC_ALARM_B_EVENT_CB_ID :
+        hrtc->AlarmBEventCallback = HAL_RTCEx_AlarmBEventCallback;           /* Legacy weak AlarmBEventCallback */
+        break;
+
+      case HAL_RTC_TIMESTAMP_EVENT_CB_ID :
+        hrtc->TimeStampEventCallback = HAL_RTCEx_TimeStampEventCallback;     /* Legacy weak TimeStampEventCallback    */
+        break;
+
+      case HAL_RTC_WAKEUPTIMER_EVENT_CB_ID :
+        hrtc->WakeUpTimerEventCallback = HAL_RTCEx_WakeUpTimerEventCallback; /* Legacy weak WakeUpTimerEventCallback */
+        break;
+
+      case HAL_RTC_TAMPER1_EVENT_CB_ID :
+        hrtc->Tamper1EventCallback = HAL_RTCEx_Tamper1EventCallback;         /* Legacy weak Tamper1EventCallback   */
+        break;
+
+#if defined(RTC_TAMPER2_SUPPORT)
+      case HAL_RTC_TAMPER2_EVENT_CB_ID :
+        hrtc->Tamper2EventCallback = HAL_RTCEx_Tamper2EventCallback;         /* Legacy weak Tamper2EventCallback         */
+        break;
+#endif /* RTC_TAMPER2_SUPPORT */
+
+      case HAL_RTC_MSPINIT_CB_ID :
+        hrtc->MspInitCallback = HAL_RTC_MspInit;
+        break;
+
+      case HAL_RTC_MSPDEINIT_CB_ID :
+        hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
+        break;
+
+      default :
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
+    }
+  }
+  else if (HAL_RTC_STATE_RESET == hrtc->State)
+  {
+    switch (CallbackID)
+    {
+      case HAL_RTC_MSPINIT_CB_ID :
+        hrtc->MspInitCallback = HAL_RTC_MspInit;
+        break;
+
+      case HAL_RTC_MSPDEINIT_CB_ID :
+        hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
+        break;
+
+      default :
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
+    }
+  }
+  else
+  {
+    /* Return error status */
+    status =  HAL_ERROR;
+  }
+
+  /* Release Lock */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
+}
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+/**
+  * @brief  Initializes the RTC MSP.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+__weak void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hrtc);
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTC_MspInit could be implemented in the user file
+   */
+}
+
+/**
+  * @brief  DeInitializes the RTC MSP.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+__weak void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hrtc);
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTC_MspDeInit could be implemented in the user file
+   */
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Exported_Functions_Group2 RTC Time and Date functions
+  * @brief    RTC Time and Date functions
+  *
+@verbatim
+ ===============================================================================
+                 ##### RTC Time and Date functions #####
+ ===============================================================================
+
+ [..] This section provides functions allowing to configure Time and Date features
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Sets RTC current time.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sTime Pointer to Time structure
+  * @note   DayLightSaving and StoreOperation interfaces are deprecated.
+  *         To manage Daylight Saving Time, please use HAL_RTC_DST_xxx functions.
+  * @param  Format Specifies the format of the entered parameters.
+  *          This parameter can be one of the following values:
+  *            @arg RTC_FORMAT_BIN: Binary data format
+  *            @arg RTC_FORMAT_BCD: BCD data format
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
+{
+  uint32_t tmpreg = 0U;
+  HAL_StatusTypeDef status;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_FORMAT(Format));
+  assert_param(IS_RTC_DAYLIGHT_SAVING(sTime->DayLightSaving));
+  assert_param(IS_RTC_STORE_OPERATION(sTime->StoreOperation));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  if (Format == RTC_FORMAT_BIN)
+  {
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
+    {
+      assert_param(IS_RTC_HOUR12(sTime->Hours));
+      assert_param(IS_RTC_HOURFORMAT12(sTime->TimeFormat));
+    }
+    else
+    {
+      sTime->TimeFormat = 0x00U;
+      assert_param(IS_RTC_HOUR24(sTime->Hours));
+    }
+    assert_param(IS_RTC_MINUTES(sTime->Minutes));
+    assert_param(IS_RTC_SECONDS(sTime->Seconds));
+
+    tmpreg = (uint32_t)(( (uint32_t)RTC_ByteToBcd2(sTime->Hours)   << RTC_TR_HU_Pos)  | \
+                        ( (uint32_t)RTC_ByteToBcd2(sTime->Minutes) << RTC_TR_MNU_Pos) | \
+                        ( (uint32_t)RTC_ByteToBcd2(sTime->Seconds))                   | \
+                        (((uint32_t)sTime->TimeFormat)             << RTC_TR_PM_Pos));
+  }
+  else
+  {
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
+    {
+      assert_param(IS_RTC_HOUR12(RTC_Bcd2ToByte(sTime->Hours)));
+      assert_param(IS_RTC_HOURFORMAT12(sTime->TimeFormat));
+    }
+    else
+    {
+      sTime->TimeFormat = 0x00U;
+      assert_param(IS_RTC_HOUR24(RTC_Bcd2ToByte(sTime->Hours)));
+    }
+    assert_param(IS_RTC_MINUTES(RTC_Bcd2ToByte(sTime->Minutes)));
+    assert_param(IS_RTC_SECONDS(RTC_Bcd2ToByte(sTime->Seconds)));
+    tmpreg = (((uint32_t)(sTime->Hours)      << RTC_TR_HU_Pos)  | \
+              ((uint32_t)(sTime->Minutes)    << RTC_TR_MNU_Pos) | \
+              ((uint32_t) sTime->Seconds)                       | \
+              ((uint32_t)(sTime->TimeFormat) << RTC_TR_PM_Pos));
+  }
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
+  {
+    /* Set the RTC_TR register */
+    hrtc->Instance->TR = (uint32_t)(tmpreg & RTC_TR_RESERVED_MASK);
+
+    /* Clear the bits to be configured (Deprecated. Use HAL_RTC_DST_xxx functions instead) */
+    hrtc->Instance->CR &= (uint32_t)~RTC_CR_BKP;
+
+    /* Configure the RTC_CR register (Deprecated. Use HAL_RTC_DST_xxx functions instead) */
+    hrtc->Instance->CR |= (uint32_t)(sTime->DayLightSaving | sTime->StoreOperation);
+
+    /* Exit Initialization mode */
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
+}
+
+/**
+  * @brief  Gets RTC current time.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sTime Pointer to Time structure
+  * @param  Format Specifies the format of the entered parameters.
+  *          This parameter can be one of the following values:
+  *            @arg RTC_FORMAT_BIN: Binary data format
+  *            @arg RTC_FORMAT_BCD: BCD data format
+  * @note  You can use SubSeconds and SecondFraction (sTime structure fields
+  *        returned) to convert SubSeconds value in second fraction ratio with
+  *        time unit following generic formula:
+  *        Second fraction ratio * time_unit =
+  *           [(SecondFraction - SubSeconds) / (SecondFraction + 1)] * time_unit
+  *        This conversion can be performed only if no shift operation is pending
+  *        (ie. SHFP=0) when PREDIV_S >= SS
+  * @note  You must call HAL_RTC_GetDate() after HAL_RTC_GetTime() to unlock the
+  *        values in the higher-order calendar shadow registers to ensure
+  *        consistency between the time and date values.
+  *        Reading RTC current time locks the values in calendar shadow registers
+  *        until current date is read to ensure consistency between the time and
+  *        date values.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
+{
+  uint32_t tmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_FORMAT(Format));
+
+  /* Get subseconds value from the corresponding register */
+  sTime->SubSeconds = (uint32_t)(hrtc->Instance->SSR);
+
+  /* Get SecondFraction structure field from the corresponding register field*/
+  sTime->SecondFraction = (uint32_t)(hrtc->Instance->PRER & RTC_PRER_PREDIV_S);
+
+  /* Get the TR register */
+  tmpreg = (uint32_t)(hrtc->Instance->TR & RTC_TR_RESERVED_MASK);
+
+  /* Fill the structure fields with the read parameters */
+  sTime->Hours      = (uint8_t)((tmpreg & (RTC_TR_HT  | RTC_TR_HU))  >> RTC_TR_HU_Pos);
+  sTime->Minutes    = (uint8_t)((tmpreg & (RTC_TR_MNT | RTC_TR_MNU)) >> RTC_TR_MNU_Pos);
+  sTime->Seconds    = (uint8_t)( tmpreg & (RTC_TR_ST  | RTC_TR_SU));
+  sTime->TimeFormat = (uint8_t)((tmpreg & (RTC_TR_PM))               >> RTC_TR_PM_Pos);
+
+  /* Check the input parameters format */
+  if (Format == RTC_FORMAT_BIN)
+  {
+    /* Convert the time structure parameters to Binary format */
+    sTime->Hours = (uint8_t)RTC_Bcd2ToByte(sTime->Hours);
+    sTime->Minutes = (uint8_t)RTC_Bcd2ToByte(sTime->Minutes);
+    sTime->Seconds = (uint8_t)RTC_Bcd2ToByte(sTime->Seconds);
+  }
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Sets RTC current date.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sDate Pointer to date structure
+  * @param  Format specifies the format of the entered parameters.
+  *          This parameter can be one of the following values:
+  *            @arg RTC_FORMAT_BIN: Binary data format
+  *            @arg RTC_FORMAT_BCD: BCD data format
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
+{
+  uint32_t datetmpreg = 0U;
+  HAL_StatusTypeDef status;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_FORMAT(Format));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  if ((Format == RTC_FORMAT_BIN) && ((sDate->Month & 0x10U) == 0x10U))
+  {
+    sDate->Month = (uint8_t)((sDate->Month & (uint8_t)~(0x10U)) + (uint8_t)0x0AU);
+  }
+
+  assert_param(IS_RTC_WEEKDAY(sDate->WeekDay));
+
+  if (Format == RTC_FORMAT_BIN)
+  {
+    assert_param(IS_RTC_YEAR(sDate->Year));
+    assert_param(IS_RTC_MONTH(sDate->Month));
+    assert_param(IS_RTC_DATE(sDate->Date));
+
+    datetmpreg = (((uint32_t)RTC_ByteToBcd2(sDate->Year)  << RTC_DR_YU_Pos) | \
+                  ((uint32_t)RTC_ByteToBcd2(sDate->Month) << RTC_DR_MU_Pos) | \
+                  ((uint32_t)RTC_ByteToBcd2(sDate->Date))                   | \
+                  ((uint32_t)sDate->WeekDay               << RTC_DR_WDU_Pos));
+  }
+  else
+  {
+    assert_param(IS_RTC_YEAR(RTC_Bcd2ToByte(sDate->Year)));
+    assert_param(IS_RTC_MONTH(RTC_Bcd2ToByte(sDate->Month)));
+    assert_param(IS_RTC_DATE(RTC_Bcd2ToByte(sDate->Date)));
+
+    datetmpreg = ((((uint32_t)sDate->Year)    << RTC_DR_YU_Pos) | \
+                  (((uint32_t)sDate->Month)   << RTC_DR_MU_Pos) | \
+                  ((uint32_t) sDate->Date)                      | \
+                  (((uint32_t)sDate->WeekDay) << RTC_DR_WDU_Pos));
+  }
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
+  {
+    /* Set the RTC_DR register */
+    hrtc->Instance->DR = (uint32_t)(datetmpreg & RTC_DR_RESERVED_MASK);
+
+    /* Exit Initialization mode */
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
+}
+
+/**
+  * @brief  Gets RTC current date.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sDate Pointer to Date structure
+  * @param  Format Specifies the format of the entered parameters.
+  *          This parameter can be one of the following values:
+  *            @arg RTC_FORMAT_BIN:  Binary data format
+  *            @arg RTC_FORMAT_BCD:  BCD data format
+  * @note  You must call HAL_RTC_GetDate() after HAL_RTC_GetTime() to unlock the
+  *        values in the higher-order calendar shadow registers to ensure
+  *        consistency between the time and date values.
+  *        Reading RTC current time locks the values in calendar shadow registers
+  *        until current date is read to ensure consistency between the time and
+  *        date values.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
+{
+  uint32_t datetmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_FORMAT(Format));
+
+  /* Get the DR register */
+  datetmpreg = (uint32_t)(hrtc->Instance->DR & RTC_DR_RESERVED_MASK);
+
+  /* Fill the structure fields with the read parameters */
+  sDate->Year    = (uint8_t)((datetmpreg & (RTC_DR_YT | RTC_DR_YU)) >> RTC_DR_YU_Pos);
+  sDate->Month   = (uint8_t)((datetmpreg & (RTC_DR_MT | RTC_DR_MU)) >> RTC_DR_MU_Pos);
+  sDate->Date    = (uint8_t) (datetmpreg & (RTC_DR_DT | RTC_DR_DU));
+  sDate->WeekDay = (uint8_t)((datetmpreg & (RTC_DR_WDU))            >> RTC_DR_WDU_Pos);
+
+  /* Check the input parameters format */
+  if (Format == RTC_FORMAT_BIN)
+  {
+    /* Convert the date structure parameters to Binary format */
+    sDate->Year  = (uint8_t)RTC_Bcd2ToByte(sDate->Year);
+    sDate->Month = (uint8_t)RTC_Bcd2ToByte(sDate->Month);
+    sDate->Date  = (uint8_t)RTC_Bcd2ToByte(sDate->Date);
+  }
+  return HAL_OK;
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Exported_Functions_Group3 RTC Alarm functions
+  * @brief    RTC Alarm functions
+  *
+@verbatim
+ ===============================================================================
+                 ##### RTC Alarm functions #####
+ ===============================================================================
+
+ [..] This section provides functions allowing to configure Alarm feature
+
+@endverbatim
+  * @{
+  */
+/**
+  * @brief  Sets the specified RTC Alarm.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sAlarm Pointer to Alarm structure
+  * @param  Format Specifies the format of the entered parameters.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_FORMAT_BIN: Binary data format
+  *             @arg RTC_FORMAT_BCD: BCD data format
+  * @note   The Alarm register can only be written when the corresponding Alarm
+  *         is disabled (Use the HAL_RTC_DeactivateAlarm()).
+  * @note   The HAL_RTC_SetTime() must be called before enabling the Alarm feature.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
+{
+  uint32_t tickstart = 0U;
+  uint32_t tmpreg = 0U;
+  uint32_t subsecondtmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_FORMAT(Format));
+  assert_param(IS_RTC_ALARM(sAlarm->Alarm));
+  assert_param(IS_RTC_ALARM_MASK(sAlarm->AlarmMask));
+  assert_param(IS_RTC_ALARM_DATE_WEEKDAY_SEL(sAlarm->AlarmDateWeekDaySel));
+  assert_param(IS_RTC_ALARM_SUB_SECOND_VALUE(sAlarm->AlarmTime.SubSeconds));
+  assert_param(IS_RTC_ALARM_SUB_SECOND_MASK(sAlarm->AlarmSubSecondMask));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  /* Change RTC state to BUSY */
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Check the data format (binary or BCD) and store the Alarm time and date
+     configuration accordingly */
+  if (Format == RTC_FORMAT_BIN)
+  {
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
+    {
+      assert_param(IS_RTC_HOUR12(sAlarm->AlarmTime.Hours));
+      assert_param(IS_RTC_HOURFORMAT12(sAlarm->AlarmTime.TimeFormat));
+    }
+    else
+    {
+      sAlarm->AlarmTime.TimeFormat = 0x00U;
+      assert_param(IS_RTC_HOUR24(sAlarm->AlarmTime.Hours));
+    }
+    assert_param(IS_RTC_MINUTES(sAlarm->AlarmTime.Minutes));
+    assert_param(IS_RTC_SECONDS(sAlarm->AlarmTime.Seconds));
+
+    if (sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
+    {
+      assert_param(IS_RTC_ALARM_DATE_WEEKDAY_DATE(sAlarm->AlarmDateWeekDay));
+    }
+    else
+    {
+      assert_param(IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(sAlarm->AlarmDateWeekDay));
+    }
+
+    tmpreg = (((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Hours)   << RTC_ALRMAR_HU_Pos)  | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Minutes) << RTC_ALRMAR_MNU_Pos) | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Seconds))                       | \
+              ((uint32_t)(sAlarm->AlarmTime.TimeFormat)            << RTC_TR_PM_Pos)      | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmDateWeekDay)  << RTC_ALRMAR_DU_Pos)  | \
+              ((uint32_t)sAlarm->AlarmDateWeekDaySel)                                     | \
+              ((uint32_t)sAlarm->AlarmMask));
+  }
+  else
+  {
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
+    {
+      assert_param(IS_RTC_HOUR12(RTC_Bcd2ToByte(sAlarm->AlarmTime.Hours)));
+      assert_param(IS_RTC_HOURFORMAT12(sAlarm->AlarmTime.TimeFormat));
+    }
+    else
+    {
+      sAlarm->AlarmTime.TimeFormat = 0x00U;
+      assert_param(IS_RTC_HOUR24(RTC_Bcd2ToByte(sAlarm->AlarmTime.Hours)));
+    }
+
+    assert_param(IS_RTC_MINUTES(RTC_Bcd2ToByte(sAlarm->AlarmTime.Minutes)));
+    assert_param(IS_RTC_SECONDS(RTC_Bcd2ToByte(sAlarm->AlarmTime.Seconds)));
+
+    if (sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
+    {
+      assert_param(IS_RTC_ALARM_DATE_WEEKDAY_DATE(RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay)));
+    }
+    else
+    {
+      assert_param(IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay)));
+    }
+
+    tmpreg = (((uint32_t)(sAlarm->AlarmTime.Hours)      << RTC_ALRMAR_HU_Pos)  | \
+              ((uint32_t)(sAlarm->AlarmTime.Minutes)    << RTC_ALRMAR_MNU_Pos) | \
+              ((uint32_t) sAlarm->AlarmTime.Seconds)                           | \
+              ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << RTC_TR_PM_Pos)      | \
+              ((uint32_t)(sAlarm->AlarmDateWeekDay)     << RTC_ALRMAR_DU_Pos)  | \
+              ((uint32_t) sAlarm->AlarmDateWeekDaySel)                         | \
+              ((uint32_t) sAlarm->AlarmMask));
+  }
+
+  /* Store the Alarm subseconds configuration */
+  subsecondtmpreg = (uint32_t)((uint32_t)(sAlarm->AlarmTime.SubSeconds) | \
+                               (uint32_t)(sAlarm->AlarmSubSecondMask));
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Configure the Alarm register */
+  if (sAlarm->Alarm == RTC_ALARM_A)
+  {
+    /* Disable the Alarm A */
+    __HAL_RTC_ALARMA_DISABLE(hrtc);
+
+    /* In case interrupt mode is used, the interrupt source must be disabled */
+    __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRA);
+
+    /* Clear the Alarm flag */
+    __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
+
+    /* Get tick */
+    tickstart = HAL_GetTick();
+
+    /* Wait till RTC ALRAWF flag is set and if timeout is reached exit */
+    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U)
+    {
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_TIMEOUT;
+      }
+    }
+
+    hrtc->Instance->ALRMAR = (uint32_t)tmpreg;
+    /* Configure the Alarm A Subseconds register */
+    hrtc->Instance->ALRMASSR = subsecondtmpreg;
+    /* Configure the Alarm state: Enable Alarm */
+    __HAL_RTC_ALARMA_ENABLE(hrtc);
+  }
+  else
+  {
+    /* Disable the Alarm B */
+    __HAL_RTC_ALARMB_DISABLE(hrtc);
+
+    /* In case interrupt mode is used, the interrupt source must be disabled */
+    __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRB);
+
+    /* Clear the Alarm flag */
+    __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
+
+    /* Get tick */
+    tickstart = HAL_GetTick();
+
+    /* Wait till RTC ALRBWF flag is set and if timeout is reached exit */
+    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U)
+    {
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_TIMEOUT;
+      }
+    }
+
+    hrtc->Instance->ALRMBR = (uint32_t)tmpreg;
+    /* Configure the Alarm B Subseconds register */
+    hrtc->Instance->ALRMBSSR = subsecondtmpreg;
+    /* Configure the Alarm state: Enable Alarm */
+    __HAL_RTC_ALARMB_ENABLE(hrtc);
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Change RTC state back to READY */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Sets the specified RTC Alarm with Interrupt.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sAlarm Pointer to Alarm structure
+  * @param  Format Specifies the format of the entered parameters.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_FORMAT_BIN: Binary data format
+  *             @arg RTC_FORMAT_BCD: BCD data format
+  * @note   The Alarm register can only be written when the corresponding Alarm
+  *         is disabled (Use the HAL_RTC_DeactivateAlarm()).
+  * @note   The HAL_RTC_SetTime() must be called before enabling the Alarm feature.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
+{
+  __IO uint32_t count  = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
+       uint32_t tmpreg = 0U;
+       uint32_t subsecondtmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_FORMAT(Format));
+  assert_param(IS_RTC_ALARM(sAlarm->Alarm));
+  assert_param(IS_RTC_ALARM_MASK(sAlarm->AlarmMask));
+  assert_param(IS_RTC_ALARM_DATE_WEEKDAY_SEL(sAlarm->AlarmDateWeekDaySel));
+  assert_param(IS_RTC_ALARM_SUB_SECOND_VALUE(sAlarm->AlarmTime.SubSeconds));
+  assert_param(IS_RTC_ALARM_SUB_SECOND_MASK(sAlarm->AlarmSubSecondMask));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  /* Change RTC state to BUSY */
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Check the data format (binary or BCD) and store the Alarm time and date
+     configuration accordingly */
+  if (Format == RTC_FORMAT_BIN)
+  {
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
+    {
+      assert_param(IS_RTC_HOUR12(sAlarm->AlarmTime.Hours));
+      assert_param(IS_RTC_HOURFORMAT12(sAlarm->AlarmTime.TimeFormat));
+    }
+    else
+    {
+      sAlarm->AlarmTime.TimeFormat = 0x00U;
+      assert_param(IS_RTC_HOUR24(sAlarm->AlarmTime.Hours));
+    }
+    assert_param(IS_RTC_MINUTES(sAlarm->AlarmTime.Minutes));
+    assert_param(IS_RTC_SECONDS(sAlarm->AlarmTime.Seconds));
+
+    if (sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
+    {
+      assert_param(IS_RTC_ALARM_DATE_WEEKDAY_DATE(sAlarm->AlarmDateWeekDay));
+    }
+    else
+    {
+      assert_param(IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(sAlarm->AlarmDateWeekDay));
+    }
+
+    tmpreg = (((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Hours)   << RTC_ALRMAR_HU_Pos)  | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Minutes) << RTC_ALRMAR_MNU_Pos) | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Seconds))                       | \
+              ((uint32_t)(sAlarm->AlarmTime.TimeFormat)            << RTC_TR_PM_Pos)      | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmDateWeekDay)  << RTC_ALRMAR_DU_Pos)  | \
+              ((uint32_t)sAlarm->AlarmDateWeekDaySel)                                     | \
+              ((uint32_t)sAlarm->AlarmMask));
+  }
+  else
+  {
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
+    {
+      assert_param(IS_RTC_HOUR12(RTC_Bcd2ToByte(sAlarm->AlarmTime.Hours)));
+      assert_param(IS_RTC_HOURFORMAT12(sAlarm->AlarmTime.TimeFormat));
+    }
+    else
+    {
+      sAlarm->AlarmTime.TimeFormat = 0x00U;
+      assert_param(IS_RTC_HOUR24(RTC_Bcd2ToByte(sAlarm->AlarmTime.Hours)));
+    }
+
+    assert_param(IS_RTC_MINUTES(RTC_Bcd2ToByte(sAlarm->AlarmTime.Minutes)));
+    assert_param(IS_RTC_SECONDS(RTC_Bcd2ToByte(sAlarm->AlarmTime.Seconds)));
+
+    if (sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
+    {
+      assert_param(IS_RTC_ALARM_DATE_WEEKDAY_DATE(RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay)));
+    }
+    else
+    {
+      assert_param(IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay)));
+    }
+
+    tmpreg = (((uint32_t)(sAlarm->AlarmTime.Hours)      << RTC_ALRMAR_HU_Pos)  | \
+              ((uint32_t)(sAlarm->AlarmTime.Minutes)    << RTC_ALRMAR_MNU_Pos) | \
+              ((uint32_t) sAlarm->AlarmTime.Seconds)                           | \
+              ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << RTC_TR_PM_Pos)      | \
+              ((uint32_t)(sAlarm->AlarmDateWeekDay)     << RTC_ALRMAR_DU_Pos)  | \
+              ((uint32_t) sAlarm->AlarmDateWeekDaySel)                         | \
+              ((uint32_t) sAlarm->AlarmMask));
+  }
+
+  /* Store the Alarm subseconds configuration */
+  subsecondtmpreg = (uint32_t)((uint32_t)(sAlarm->AlarmTime.SubSeconds) | \
+                               (uint32_t)(sAlarm->AlarmSubSecondMask));
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Configure the Alarm register */
+  if (sAlarm->Alarm == RTC_ALARM_A)
+  {
+    /* Disable the Alarm A */
+    __HAL_RTC_ALARMA_DISABLE(hrtc);
+
+    /* Clear the Alarm flag */
+    __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
+
+    /* Wait till RTC ALRAWF flag is set and if timeout is reached exit */
+    do
+    {
+      if (count-- == 0U)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_TIMEOUT;
+      }
+    } while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U);
+
+    hrtc->Instance->ALRMAR = (uint32_t)tmpreg;
+    /* Configure the Alarm A Subseconds register */
+    hrtc->Instance->ALRMASSR = subsecondtmpreg;
+    /* Configure the Alarm state: Enable Alarm */
+    __HAL_RTC_ALARMA_ENABLE(hrtc);
+    /* Configure the Alarm interrupt */
+    __HAL_RTC_ALARM_ENABLE_IT(hrtc, RTC_IT_ALRA);
+  }
+  else
+  {
+    /* Disable the Alarm B */
+    __HAL_RTC_ALARMB_DISABLE(hrtc);
+
+    /* Clear the Alarm flag */
+    __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
+
+    /* Reload the counter */
+    count = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
+
+    /* Wait till RTC ALRBWF flag is set and if timeout is reached exit */
+    do
+    {
+      if (count-- == 0U)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_TIMEOUT;
+      }
+    } while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U);
+
+    hrtc->Instance->ALRMBR = (uint32_t)tmpreg;
+    /* Configure the Alarm B Subseconds register */
+    hrtc->Instance->ALRMBSSR = subsecondtmpreg;
+    /* Configure the Alarm state: Enable Alarm */
+    __HAL_RTC_ALARMB_ENABLE(hrtc);
+    /* Configure the Alarm interrupt */
+    __HAL_RTC_ALARM_ENABLE_IT(hrtc, RTC_IT_ALRB);
+  }
+
+  /* RTC Alarm Interrupt Configuration: EXTI configuration */
+  __HAL_RTC_ALARM_EXTI_ENABLE_IT();
+  __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE();
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Change RTC state back to READY */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Deactivates the specified RTC Alarm.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  Alarm Specifies the Alarm.
+  *          This parameter can be one of the following values:
+  *            @arg RTC_ALARM_A: Alarm A
+  *            @arg RTC_ALARM_B: Alarm B
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm)
+{
+  uint32_t tickstart = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_ALARM(Alarm));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  if (Alarm == RTC_ALARM_A)
+  {
+    /* Disable Alarm A */
+    __HAL_RTC_ALARMA_DISABLE(hrtc);
+
+    /* In case interrupt mode is used, the interrupt source must be disabled */
+    __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRA);
+
+    /* Get tick */
+    tickstart = HAL_GetTick();
+
+    /* Wait till RTC ALRxWF flag is set and if timeout is reached exit */
+    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U)
+    {
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_TIMEOUT;
+      }
+    }
+  }
+  else
+  {
+    /* Disable Alarm B */
+    __HAL_RTC_ALARMB_DISABLE(hrtc);
+
+    /* In case interrupt mode is used, the interrupt source must be disabled */
+    __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRB);
+
+    /* Get tick */
+    tickstart = HAL_GetTick();
+
+    /* Wait till RTC ALRxWF flag is set and if timeout is reached exit */
+    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U)
+    {
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_TIMEOUT;
+      }
+    }
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Gets the RTC Alarm value and masks.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sAlarm Pointer to Date structure
+  * @param  Alarm Specifies the Alarm.
+  *          This parameter can be one of the following values:
+  *            @arg RTC_ALARM_A: Alarm A
+  *            @arg RTC_ALARM_B: Alarm B
+  * @param  Format Specifies the format of the entered parameters.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_FORMAT_BIN: Binary data format
+  *             @arg RTC_FORMAT_BCD: BCD data format
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format)
+{
+  uint32_t tmpreg = 0U;
+  uint32_t subsecondtmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_FORMAT(Format));
+  assert_param(IS_RTC_ALARM(Alarm));
+
+  if (Alarm == RTC_ALARM_A)
+  {
+    sAlarm->Alarm = RTC_ALARM_A;
+
+    tmpreg = (uint32_t)(hrtc->Instance->ALRMAR);
+    subsecondtmpreg = (uint32_t)((hrtc->Instance->ALRMASSR) & RTC_ALRMASSR_SS);
+  }
+  else
+  {
+    sAlarm->Alarm = RTC_ALARM_B;
+
+    tmpreg = (uint32_t)(hrtc->Instance->ALRMBR);
+    subsecondtmpreg = (uint32_t)((hrtc->Instance->ALRMBSSR) & RTC_ALRMBSSR_SS);
+  }
+
+  /* Fill the structure with the read parameters */
+  sAlarm->AlarmTime.Hours      = (uint8_t) ((tmpreg & (RTC_ALRMAR_HT  | RTC_ALRMAR_HU))  >> RTC_ALRMAR_HU_Pos);
+  sAlarm->AlarmTime.Minutes    = (uint8_t) ((tmpreg & (RTC_ALRMAR_MNT | RTC_ALRMAR_MNU)) >> RTC_ALRMAR_MNU_Pos);
+  sAlarm->AlarmTime.Seconds    = (uint8_t) ( tmpreg & (RTC_ALRMAR_ST  | RTC_ALRMAR_SU));
+  sAlarm->AlarmTime.TimeFormat = (uint8_t) ((tmpreg & RTC_ALRMAR_PM)                     >> RTC_TR_PM_Pos);
+  sAlarm->AlarmTime.SubSeconds = (uint32_t) subsecondtmpreg;
+  sAlarm->AlarmDateWeekDay     = (uint8_t) ((tmpreg & (RTC_ALRMAR_DT  | RTC_ALRMAR_DU))  >> RTC_ALRMAR_DU_Pos);
+  sAlarm->AlarmDateWeekDaySel  = (uint32_t) (tmpreg & RTC_ALRMAR_WDSEL);
+  sAlarm->AlarmMask            = (uint32_t) (tmpreg & RTC_ALARMMASK_ALL);
+
+  if (Format == RTC_FORMAT_BIN)
+  {
+    sAlarm->AlarmTime.Hours   = RTC_Bcd2ToByte(sAlarm->AlarmTime.Hours);
+    sAlarm->AlarmTime.Minutes = RTC_Bcd2ToByte(sAlarm->AlarmTime.Minutes);
+    sAlarm->AlarmTime.Seconds = RTC_Bcd2ToByte(sAlarm->AlarmTime.Seconds);
+    sAlarm->AlarmDateWeekDay  = RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay);
+  }
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Handles Alarm interrupt request.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc)
+{
+  /* Get the Alarm A interrupt source enable status */
+  if (__HAL_RTC_ALARM_GET_IT_SOURCE(hrtc, RTC_IT_ALRA) != 0U)
+  {
+    /* Get the pending status of the Alarm A Interrupt */
+    if (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAF) != 0U)
+    {
+      /* Alarm A callback */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+      hrtc->AlarmAEventCallback(hrtc);
+#else
+      HAL_RTC_AlarmAEventCallback(hrtc);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+      /* Clear the Alarm A interrupt pending bit */
+      __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
+    }
+  }
+
+  /* Get the Alarm B interrupt source enable status */
+  if (__HAL_RTC_ALARM_GET_IT_SOURCE(hrtc, RTC_IT_ALRB) != 0U)
+  {
+    /* Get the pending status of the Alarm B Interrupt */
+    if (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBF) != 0U)
+    {
+      /* Alarm B callback */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+      hrtc->AlarmBEventCallback(hrtc);
+#else
+      HAL_RTCEx_AlarmBEventCallback(hrtc);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+      /* Clear the Alarm B interrupt pending bit */
+      __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
+    }
+  }
+
+  /* Clear the EXTI's line Flag for RTC Alarm */
+  __HAL_RTC_ALARM_EXTI_CLEAR_FLAG();
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+}
+
+/**
+  * @brief  Alarm A callback.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+__weak void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hrtc);
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTC_AlarmAEventCallback could be implemented in the user file
+   */
+}
+
+/**
+  * @brief  Handles Alarm A Polling request.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  Timeout Timeout duration
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
+{
+  uint32_t tickstart = 0U;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Wait till RTC ALRAF flag is set and if timeout is reached exit */
+  while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAF) == 0U)
+  {
+    if (Timeout != HAL_MAX_DELAY)
+    {
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
+      {
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+        return HAL_TIMEOUT;
+      }
+    }
+  }
+
+  /* Clear the Alarm flag */
+  __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  return HAL_OK;
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Exported_Functions_Group4 Peripheral Control functions
+  * @brief    Peripheral Control functions
+  *
+@verbatim
+ ===============================================================================
+                     ##### Peripheral Control functions #####
+ ===============================================================================
+    [..]
+    This subsection provides functions allowing to
+      (+) Wait for RTC Time and Date Synchronization
+      (+) Manage RTC Summer or Winter time change
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Waits until the RTC Time and Date registers (RTC_TR and RTC_DR) are
+  *         synchronized with RTC APB clock.
+  * @note   The RTC Resynchronization mode is write protected, use the
+  *         __HAL_RTC_WRITEPROTECTION_DISABLE() before calling this function.
+  * @note   To read the calendar through the shadow registers after Calendar
+  *         initialization, calendar update or after wakeup from low power modes
+  *         the software must first clear the RSF flag.
+  *         The software must then wait until it is set again before reading
+  *         the calendar, which means that the calendar registers have been
+  *         correctly copied into the RTC_TR and RTC_DR shadow registers.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc)
+{
+  uint32_t tickstart = 0U;
+
+  /* Clear RSF flag */
+  hrtc->Instance->ISR &= (uint32_t)RTC_RSF_MASK;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Wait the registers to be synchronised */
+  while ((hrtc->Instance->ISR & RTC_ISR_RSF) == 0U)
+  {
+    if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+    {
+      return HAL_TIMEOUT;
+    }
+  }
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Daylight Saving Time, adds one hour to the calendar in one
+  *         single operation without going through the initialization procedure.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTC_DST_Add1Hour(RTC_HandleTypeDef *hrtc)
+{
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+  SET_BIT(hrtc->Instance->CR, RTC_CR_ADD1H);
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+}
+
+/**
+  * @brief  Daylight Saving Time, subtracts one hour from the calendar in one
+  *         single operation without going through the initialization procedure.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTC_DST_Sub1Hour(RTC_HandleTypeDef *hrtc)
+{
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+  SET_BIT(hrtc->Instance->CR, RTC_CR_SUB1H);
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+}
+
+/**
+  * @brief  Daylight Saving Time, sets the store operation bit.
+  * @note   It can be used by the software in order to memorize the DST status.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTC_DST_SetStoreOperation(RTC_HandleTypeDef *hrtc)
+{
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+  SET_BIT(hrtc->Instance->CR, RTC_CR_BKP);
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+}
+
+/**
+  * @brief  Daylight Saving Time, clears the store operation bit.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTC_DST_ClearStoreOperation(RTC_HandleTypeDef *hrtc)
+{
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+  CLEAR_BIT(hrtc->Instance->CR, RTC_CR_BKP);
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+}
+
+/**
+  * @brief  Daylight Saving Time, reads the store operation bit.
+  * @param  hrtc RTC handle
+  * @retval operation see RTC_StoreOperation_Definitions
+  */
+uint32_t HAL_RTC_DST_ReadStoreOperation(RTC_HandleTypeDef *hrtc)
+{
+  return READ_BIT(hrtc->Instance->CR, RTC_CR_BKP);
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup RTC_Exported_Functions_Group5 Peripheral State functions
+  * @brief    Peripheral State functions
+  *
+@verbatim
+ ===============================================================================
+                     ##### Peripheral State functions #####
+ ===============================================================================
+    [..]
+    This subsection provides functions allowing to
+      (+) Get RTC state
+
+@endverbatim
+  * @{
+  */
+/**
+  * @brief  Returns the RTC state.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL state
+  */
+HAL_RTCStateTypeDef HAL_RTC_GetState(RTC_HandleTypeDef *hrtc)
+{
+  return hrtc->State;
+}
+
+/**
+  * @}
+  */
+
+
+/**
+  * @}
+  */
+
+/** @addtogroup RTC_Private_Functions
+  * @{
+  */
+
+/**
+  * @brief  Enters the RTC Initialization mode.
+  * @note   The RTC Initialization mode is write protected, use the
+  *         __HAL_RTC_WRITEPROTECTION_DISABLE() before calling this function.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef *hrtc)
+{
+  uint32_t tickstart = 0U;
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Check that Initialization mode is not already set */
+  if (READ_BIT(hrtc->Instance->ISR, RTC_ISR_INITF) == 0U)
+  {
+    /* Set INIT bit to enter Initialization mode */
+    SET_BIT(hrtc->Instance->ISR, RTC_ISR_INIT);
+
+    /* Get tick */
+    tickstart = HAL_GetTick();
+
+    /* Wait till RTC is in INIT state and if timeout is reached exit */
+    while ((READ_BIT(hrtc->Instance->ISR, RTC_ISR_INITF) == 0U) && (status != HAL_ERROR))
+    {
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+      {
+        /* Set RTC state */
+        hrtc->State = HAL_RTC_STATE_ERROR;
+        status = HAL_ERROR;
+      }
+    }
+  }
+
+  return status;
+}
+
+/**
+  * @brief  Exits the RTC Initialization mode.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef RTC_ExitInitMode(RTC_HandleTypeDef *hrtc)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Clear INIT bit to exit Initialization mode */
+  CLEAR_BIT(hrtc->Instance->ISR, RTC_ISR_INIT);
+
+  /* If CR_BYPSHAD bit = 0, wait for synchro */
+  if (READ_BIT(hrtc->Instance->CR, RTC_CR_BYPSHAD) == 0U)
+  {
+    if (HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
+    {
+      /* Set RTC state */
+      hrtc->State = HAL_RTC_STATE_ERROR;
+      status = HAL_ERROR;
+    }
+  }
+
+  return status;
+}
+
+/**
+  * @brief  Converts a 2-digit number from decimal to BCD format.
+  * @param  number decimal-formatted number (from 0 to 99) to be converted
+  * @retval Converted byte
+  */
+uint8_t RTC_ByteToBcd2(uint8_t number)
+{
+  uint8_t bcdhigh = 0U;
+
+  while (number >= 10U)
+  {
+    bcdhigh++;
+    number -= 10U;
+  }
+
+  return ((uint8_t)(bcdhigh << 4U) | number);
+}
+
+/**
+  * @brief  Converts a 2-digit number from BCD to decimal format.
+  * @param  number BCD-formatted number (from 00 to 99) to be converted
+  * @retval Converted word
+  */
+uint8_t RTC_Bcd2ToByte(uint8_t number)
+{
+  uint8_t tmp = 0U;
+  tmp = ((uint8_t)(number & (uint8_t)0xF0) >> (uint8_t)0x4) * 10;
+  return (tmp + (number & (uint8_t)0x0F));
+}
+
+/**
+  * @}
+  */
+
+#endif /* HAL_RTC_MODULE_ENABLED */
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */

+ 1878 - 0
Soft/STM32/Proto/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c

@@ -0,0 +1,1878 @@
+/**
+  ******************************************************************************
+  * @file    stm32f4xx_hal_rtc_ex.c
+  * @author  MCD Application Team
+  * @brief   Extended RTC HAL module driver.
+  *          This file provides firmware functions to manage the following
+  *          functionalities of the Real-Time Clock (RTC) Extended peripheral:
+  *           + RTC Timestamp functions
+  *           + RTC Tamper functions
+  *           + RTC Wakeup functions
+  *           + Extended Control functions
+  *           + Extended RTC features functions
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  @verbatim
+  ==============================================================================
+                        ##### How to use this driver #####
+  ==============================================================================
+  [..]
+    (+) Enable the RTC domain access.
+    (+) Configure the RTC Prescaler (Asynchronous and Synchronous) and RTC hour
+        format using the HAL_RTC_Init() function.
+
+  *** RTC Wakeup configuration ***
+  ================================
+  [..]
+    (+) To configure the RTC Wakeup Clock source and Counter use the
+        HAL_RTCEx_SetWakeUpTimer() function.
+        You can also configure the RTC Wakeup timer in interrupt mode using the
+        HAL_RTCEx_SetWakeUpTimer_IT() function.
+    (+) To read the RTC Wakeup Counter register, use the HAL_RTCEx_GetWakeUpTimer()
+        function.
+
+  *** Timestamp configuration ***
+  ===============================
+  [..]
+    (+) To configure the RTC Timestamp use the HAL_RTCEx_SetTimeStamp() function.
+        You can also configure the RTC Timestamp with interrupt mode using the
+        HAL_RTCEx_SetTimeStamp_IT() function.
+    (+) To read the RTC Timestamp Time and Date register, use the
+        HAL_RTCEx_GetTimeStamp() function.
+    (+) The Timestamp alternate function can be mapped either to RTC_AF1 (PC13)
+        or RTC_AF2 (PI8) depending on the value of TSINSEL bit in RTC_TAFCR
+        register.
+        For STM32F446xx devices RTC_AF2 corresponds to pin PA0 and not to pin PI8.
+        The corresponding pin is also selected by HAL_RTCEx_SetTimeStamp()
+        or HAL_RTCEx_SetTimeStamp_IT() functions.
+
+  *** Tamper configuration ***
+  ============================
+  [..]
+    (+) To Enable the RTC Tamper and configure the Tamper filter count, trigger
+        Edge or Level according to the Tamper filter value (if equal to 0 Edge
+        else Level), sampling frequency, precharge or discharge and Pull-UP use
+        the HAL_RTCEx_SetTamper() function.
+        You can configure RTC Tamper in interrupt mode using HAL_RTCEx_SetTamper_IT()
+        function.
+    (+) The TAMPER1 alternate function can be mapped either to RTC_AF1 (PC13)
+        or RTC_AF2 (PI8) depending on the value of TAMP1INSEL bit in RTC_TAFCR
+        register.
+        The corresponding pin is also selected by HAL_RTCEx_SetTamper()
+        or HAL_RTCEx_SetTamper_IT() functions.
+    (+) The TAMPER2 alternate function is mapped to RTC_AF2 (PI8).
+        For STM32F446xx devices RTC_AF2 corresponds to pin PA0 and not to pin PI8.
+
+  *** Backup Data Registers configuration ***
+  ===========================================
+  [..]
+    (+) To write to the RTC Backup Data registers, use the HAL_RTCEx_BKUPWrite()
+        function.
+    (+) To read the RTC Backup Data registers, use the HAL_RTCEx_BKUPRead()
+        function.
+
+  *** Coarse Digital Calibration configuration ***
+  ================================================
+  [..]
+    (+) The Coarse Digital Calibration can be used to compensate crystal inaccuracy
+        by setting the DCS bit in RTC_CALIBR register.
+    (+) When positive calibration is enabled (DCS = ‘0’), 2 asynchronous prescaler
+        clock cycles are added every minute during 2xDC minutes.
+        This causes the calendar to be updated sooner, thereby adjusting the
+        effective RTC frequency to be a bit higher.
+    (+) When negative calibration is enabled (DCS = ‘1’), 1 asynchronous prescaler
+        clock cycle is removed every minute during 2xDC minutes.
+        This causes the calendar to be updated later, thereby adjusting the
+        effective RTC frequency to be a bit lower.
+    (+) DC is configured through bits DC[4:0] of RTC_CALIBR register. This number
+        ranges from 0 to 31 corresponding to a time interval (2xDC) ranging from
+        0 to 62.
+    (+) In order to measure the clock deviation, a 512 Hz clock is output for
+        calibration.
+    (+) The RTC Coarse Digital Calibration value and sign can be calibrated using
+        the HAL_RTCEx_SetCoarseCalib() function.
+
+  *** Smooth Digital Calibration configuration ***
+  ================================================
+  [..]
+    (+) RTC frequency can be digitally calibrated with a resolution of about
+        0.954 ppm with a range from -487.1 ppm to +488.5 ppm.
+        The correction of the frequency is performed using a series of small
+        adjustments (adding and/or subtracting individual RTCCLK pulses).
+    (+) The smooth digital calibration is performed during a cycle of about 2^20
+        RTCCLK pulses (or 32 seconds) when the input frequency is 32,768 Hz.
+        This cycle is maintained by a 20-bit counter clocked by RTCCLK.
+    (+) The smooth calibration register (RTC_CALR) specifies the number of RTCCLK
+        clock cycles to be masked during the 32-second cycle.
+    (+) The RTC Smooth Digital Calibration value and the corresponding calibration
+        cycle period (32s, 16s, or 8s) can be calibrated using the
+        HAL_RTCEx_SetSmoothCalib() function.
+
+  @endverbatim
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_hal.h"
+
+/** @addtogroup STM32F4xx_HAL_Driver
+  * @{
+  */
+
+/** @defgroup RTCEx RTCEx
+  * @brief    RTC Extended HAL module driver
+  * @{
+  */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/* Exported functions --------------------------------------------------------*/
+
+/** @defgroup RTCEx_Exported_Functions RTCEx Exported Functions
+  * @{
+  */
+
+/** @defgroup RTCEx_Exported_Functions_Group1 RTC Timestamp and Tamper functions
+  * @brief    RTC Timestamp and Tamper functions
+  *
+@verbatim
+ ===============================================================================
+                 ##### RTC Timestamp and Tamper functions #####
+ ===============================================================================
+
+ [..] This section provides functions allowing to configure Timestamp feature
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Sets Timestamp.
+  * @note   This API must be called before enabling the Timestamp feature.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  RTC_TimeStampEdge Specifies the pin edge on which the Timestamp is
+  *         activated.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_TIMESTAMPEDGE_RISING: the Timestamp event occurs on
+  *                                        the rising edge of the related pin.
+  *             @arg RTC_TIMESTAMPEDGE_FALLING: the Timestamp event occurs on
+  *                                        the falling edge of the related pin.
+  * @param  RTC_TimeStampPin Specifies the RTC Timestamp Pin.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_TIMESTAMPPIN_DEFAULT: PC13 is selected as RTC Timestamp Pin.
+  *             @arg RTC_TIMESTAMPPIN_POS1: PI8 is selected as RTC Timestamp Pin.
+  * @note RTC_TIMESTAMPPIN_POS1 corresponds to pin PA0 in the case of
+  *       STM32F446xx devices.
+  * @note RTC_TIMESTAMPPIN_POS1 is not applicable to the following list of devices:
+  *       STM32F412xx, STM32F413xx and STM32F423xx.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin)
+{
+  uint32_t tmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_TIMESTAMP_EDGE(RTC_TimeStampEdge));
+  assert_param(IS_RTC_TIMESTAMP_PIN(RTC_TimeStampPin));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  /* Change RTC state to BUSY */
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_TSINSEL;
+  hrtc->Instance->TAFCR |= (uint32_t)(RTC_TimeStampPin);
+
+  /* Get the RTC_CR register and clear the bits to be configured */
+  tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
+
+  /* Configure the Timestamp TSEDGE bit */
+  tmpreg |= RTC_TimeStampEdge;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Copy the desired configuration into the CR register */
+  hrtc->Instance->CR = (uint32_t)tmpreg;
+
+  /* Clear RTC Timestamp flag */
+  __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
+
+  /* Clear RTC Timestamp overrun Flag */
+  __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
+
+  /* Enable the Timestamp saving */
+  __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Change RTC state back to READY */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Sets Timestamp with Interrupt.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @note   This API must be called before enabling the Timestamp feature.
+  * @param  RTC_TimeStampEdge Specifies the pin edge on which the Timestamp is
+  *         activated.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_TIMESTAMPEDGE_RISING: the Timestamp event occurs on
+  *                                        the rising edge of the related pin.
+  *             @arg RTC_TIMESTAMPEDGE_FALLING: the Timestamp event occurs on
+  *                                        the falling edge of the related pin.
+  * @param  RTC_TimeStampPin Specifies the RTC Timestamp Pin.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_TIMESTAMPPIN_DEFAULT: PC13 is selected as RTC Timestamp Pin.
+  *             @arg RTC_TIMESTAMPPIN_POS1: PI8 is selected as RTC Timestamp Pin.
+  * @note RTC_TIMESTAMPPIN_POS1 corresponds to pin PA0 in the case of
+  *       STM32F446xx devices.
+  * @note RTC_TIMESTAMPPIN_POS1 is not applicable to the following list of devices:
+  *       STM32F412xx, STM32F413xx and STM32F423xx.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin)
+{
+  uint32_t tmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_TIMESTAMP_EDGE(RTC_TimeStampEdge));
+  assert_param(IS_RTC_TIMESTAMP_PIN(RTC_TimeStampPin));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  /* Change RTC state to BUSY */
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_TSINSEL;
+  hrtc->Instance->TAFCR |= (uint32_t)(RTC_TimeStampPin);
+
+  /* Get the RTC_CR register and clear the bits to be configured */
+  tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
+
+  /* Configure the Timestamp TSEDGE bit */
+  tmpreg |= RTC_TimeStampEdge;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Copy the desired configuration into the CR register */
+  hrtc->Instance->CR = (uint32_t)tmpreg;
+
+  /* Clear RTC Timestamp flag */
+  __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
+
+  /* Clear RTC Timestamp overrun Flag */
+  __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
+
+  /* Enable the Timestamp saving */
+  __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
+
+  /* Enable IT Timestamp */
+  __HAL_RTC_TIMESTAMP_ENABLE_IT(hrtc, RTC_IT_TS);
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* RTC Timestamp Interrupt Configuration: EXTI configuration */
+  __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
+  __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();
+
+  /* Change RTC state back to READY */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Deactivates Timestamp.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc)
+{
+  uint32_t tmpreg = 0U;
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* In case of interrupt mode is used, the interrupt source must disabled */
+  __HAL_RTC_TIMESTAMP_DISABLE_IT(hrtc, RTC_IT_TS);
+
+  /* Get the RTC_CR register and clear the bits to be configured */
+  tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
+
+  /* Configure the Timestamp TSEDGE and Enable bits */
+  hrtc->Instance->CR = (uint32_t)tmpreg;
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Gets the RTC Timestamp value.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sTimeStamp Pointer to Time structure
+  * @param  sTimeStampDate Pointer to Date structure
+  * @param  Format specifies the format of the entered parameters.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_FORMAT_BIN: Binary data format
+  *             @arg RTC_FORMAT_BCD: BCD data format
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format)
+{
+  uint32_t tmptime = 0U;
+  uint32_t tmpdate = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_FORMAT(Format));
+
+  /* Get the Timestamp time and date registers values */
+  tmptime = (uint32_t)(hrtc->Instance->TSTR & RTC_TR_RESERVED_MASK);
+  tmpdate = (uint32_t)(hrtc->Instance->TSDR & RTC_DR_RESERVED_MASK);
+
+  /* Fill the Time structure fields with the read parameters */
+  sTimeStamp->Hours      = (uint8_t)((tmptime & (RTC_TSTR_HT  | RTC_TSTR_HU))  >> RTC_TSTR_HU_Pos);
+  sTimeStamp->Minutes    = (uint8_t)((tmptime & (RTC_TSTR_MNT | RTC_TSTR_MNU)) >> RTC_TSTR_MNU_Pos);
+  sTimeStamp->Seconds    = (uint8_t)((tmptime & (RTC_TSTR_ST  | RTC_TSTR_SU))  >> RTC_TSTR_SU_Pos);
+  sTimeStamp->TimeFormat = (uint8_t)((tmptime & (RTC_TSTR_PM))                 >> RTC_TSTR_PM_Pos);
+  sTimeStamp->SubSeconds = (uint32_t) hrtc->Instance->TSSSR;
+
+  /* Fill the Date structure fields with the read parameters */
+  sTimeStampDate->Year    = 0U;
+  sTimeStampDate->Month   = (uint8_t)((tmpdate & (RTC_TSDR_MT | RTC_TSDR_MU)) >> RTC_TSDR_MU_Pos);
+  sTimeStampDate->Date    = (uint8_t)((tmpdate & (RTC_TSDR_DT | RTC_TSDR_DU)) >> RTC_TSDR_DU_Pos);
+  sTimeStampDate->WeekDay = (uint8_t)((tmpdate & (RTC_TSDR_WDU))              >> RTC_TSDR_WDU_Pos);
+
+  /* Check the input parameters format */
+  if (Format == RTC_FORMAT_BIN)
+  {
+    /* Convert the Timestamp structure parameters to Binary format */
+    sTimeStamp->Hours   = (uint8_t)RTC_Bcd2ToByte(sTimeStamp->Hours);
+    sTimeStamp->Minutes = (uint8_t)RTC_Bcd2ToByte(sTimeStamp->Minutes);
+    sTimeStamp->Seconds = (uint8_t)RTC_Bcd2ToByte(sTimeStamp->Seconds);
+
+    /* Convert the DateTimeStamp structure parameters to Binary format */
+    sTimeStampDate->Month   = (uint8_t)RTC_Bcd2ToByte(sTimeStampDate->Month);
+    sTimeStampDate->Date    = (uint8_t)RTC_Bcd2ToByte(sTimeStampDate->Date);
+    sTimeStampDate->WeekDay = (uint8_t)RTC_Bcd2ToByte(sTimeStampDate->WeekDay);
+  }
+
+  /* Clear the Timestamp Flag */
+  __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Sets Tamper.
+  * @note   By calling this API the tamper global interrupt will be disabled.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sTamper Pointer to Tamper Structure.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
+{
+  uint32_t tmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_TAMPER(sTamper->Tamper));
+  assert_param(IS_RTC_TAMPER_PIN(sTamper->PinSelection));
+  assert_param(IS_RTC_TAMPER_TRIGGER(sTamper->Trigger));
+  assert_param(IS_RTC_TAMPER_FILTER(sTamper->Filter));
+  assert_param(IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(sTamper->Filter, sTamper->Trigger));
+  assert_param(IS_RTC_TAMPER_SAMPLING_FREQ(sTamper->SamplingFrequency));
+  assert_param(IS_RTC_TAMPER_PRECHARGE_DURATION(sTamper->PrechargeDuration));
+  assert_param(IS_RTC_TAMPER_PULLUP_STATE(sTamper->TamperPullUp));
+  assert_param(IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(sTamper->TimeStampOnTamperDetection));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Copy control register into temporary variable */
+  tmpreg = hrtc->Instance->TAFCR;
+
+  /* Enable selected tamper */
+  tmpreg |= (sTamper->Tamper);
+
+  /* Configure the tamper trigger bit (this bit is just on the right of the
+       tamper enable bit, hence the one-time right shift before updating it) */
+  if (sTamper->Trigger == RTC_TAMPERTRIGGER_FALLINGEDGE)
+  {
+    /* Set the tamper trigger bit (case of falling edge or high level) */
+    tmpreg |= (uint32_t)(sTamper->Tamper << 1U);
+  }
+  else
+  {
+    /* Clear the tamper trigger bit (case of rising edge or low level) */
+    tmpreg &= (uint32_t)~(sTamper->Tamper << 1U);
+  }
+
+  /* Clear remaining fields before setting them */
+  tmpreg &= ~(RTC_TAMPERFILTER_MASK              | \
+              RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK | \
+              RTC_TAMPERPRECHARGEDURATION_MASK   | \
+              RTC_TAMPER_PULLUP_MASK             | \
+              RTC_TAFCR_TAMP1INSEL               | \
+              RTC_TIMESTAMPONTAMPERDETECTION_MASK);
+
+  /* Set remaining parameters of desired configuration into temporary variable */
+  tmpreg |= ((uint32_t)sTamper->Filter            | \
+             (uint32_t)sTamper->SamplingFrequency | \
+             (uint32_t)sTamper->PrechargeDuration | \
+             (uint32_t)sTamper->TamperPullUp      | \
+             (uint32_t)sTamper->PinSelection      | \
+             (uint32_t)sTamper->TimeStampOnTamperDetection);
+
+  /* Disable tamper global interrupt in case it is enabled */
+  tmpreg &= (uint32_t)~RTC_TAFCR_TAMPIE;
+
+  /* Copy desired configuration into configuration register */
+  hrtc->Instance->TAFCR = tmpreg;
+
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Sets Tamper with interrupt.
+  * @note   By calling this API the tamper global interrupt will be enabled.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  sTamper Pointer to RTC Tamper.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
+{
+  uint32_t tmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_TAMPER(sTamper->Tamper));
+  assert_param(IS_RTC_TAMPER_PIN(sTamper->PinSelection));
+  assert_param(IS_RTC_TAMPER_TRIGGER(sTamper->Trigger));
+  assert_param(IS_RTC_TAMPER_FILTER(sTamper->Filter));
+  assert_param(IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(sTamper->Filter, sTamper->Trigger));
+  assert_param(IS_RTC_TAMPER_SAMPLING_FREQ(sTamper->SamplingFrequency));
+  assert_param(IS_RTC_TAMPER_PRECHARGE_DURATION(sTamper->PrechargeDuration));
+  assert_param(IS_RTC_TAMPER_PULLUP_STATE(sTamper->TamperPullUp));
+  assert_param(IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(sTamper->TimeStampOnTamperDetection));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Copy control register into temporary variable */
+  tmpreg = hrtc->Instance->TAFCR;
+
+  /* Enable selected tamper */
+  tmpreg |= (sTamper->Tamper);
+
+  /* Configure the tamper trigger bit (this bit is just on the right of the
+       tamper enable bit, hence the one-time right shift before updating it) */
+  if (sTamper->Trigger == RTC_TAMPERTRIGGER_FALLINGEDGE)
+  {
+    /* Set the tamper trigger bit (case of falling edge or high level) */
+    tmpreg |= (uint32_t)(sTamper->Tamper << 1U);
+  }
+  else
+  {
+    /* Clear the tamper trigger bit (case of rising edge or low level) */
+    tmpreg &= (uint32_t)~(sTamper->Tamper << 1U);
+  }
+
+  /* Clear remaining fields before setting them */
+  tmpreg &= ~(RTC_TAMPERFILTER_MASK              | \
+              RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK | \
+              RTC_TAMPERPRECHARGEDURATION_MASK   | \
+              RTC_TAMPER_PULLUP_MASK             | \
+              RTC_TAFCR_TAMP1INSEL               | \
+              RTC_TIMESTAMPONTAMPERDETECTION_MASK);
+
+  /* Set remaining parameters of desired configuration into temporary variable */
+  tmpreg |= ((uint32_t)sTamper->Filter            | \
+             (uint32_t)sTamper->SamplingFrequency | \
+             (uint32_t)sTamper->PrechargeDuration | \
+             (uint32_t)sTamper->TamperPullUp      | \
+             (uint32_t)sTamper->PinSelection      | \
+             (uint32_t)sTamper->TimeStampOnTamperDetection);
+
+  /* Enable global tamper interrupt */
+  tmpreg |= (uint32_t)RTC_TAFCR_TAMPIE;
+
+  /* Copy desired configuration into configuration register */
+  hrtc->Instance->TAFCR = tmpreg;
+
+  /* RTC Tamper Interrupt Configuration: EXTI configuration */
+  __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
+  __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();
+
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Deactivates Tamper.
+  * @note   The tamper global interrupt bit will remain unchanged.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  Tamper Selected tamper pin.
+  *          This parameter can be any combination of the following values:
+  *            @arg RTC_TAMPER_1:  Tamper 1
+  *            @arg RTC_TAMPER_2:  Tamper 2
+  * @note   RTC_TAMPER_2 is not applicable to all devices.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper)
+{
+  assert_param(IS_RTC_TAMPER(Tamper));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the selected Tamper pin */
+  hrtc->Instance->TAFCR &= (uint32_t)~Tamper;
+
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Handles Timestamp and Tamper interrupt request.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc)
+{
+  /* Get the Timestamp interrupt source enable status */
+  if (__HAL_RTC_TIMESTAMP_GET_IT_SOURCE(hrtc, RTC_IT_TS) != 0U)
+  {
+    /* Get the pending status of the Timestamp Interrupt */
+    if (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) != 0U)
+    {
+      /* Timestamp callback */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+      hrtc->TimeStampEventCallback(hrtc);
+#else
+      HAL_RTCEx_TimeStampEventCallback(hrtc);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+      /* Clear the Timestamp interrupt pending bit */
+      __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
+    }
+  }
+
+  /* Get the Tamper 1 interrupt source enable status */
+  if (__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP) != 0U)
+  {
+    /* Get the pending status of the Tamper 1 Interrupt */
+    if (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F) != 0U)
+    {
+      /* Tamper callback */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+      hrtc->Tamper1EventCallback(hrtc);
+#else
+      HAL_RTCEx_Tamper1EventCallback(hrtc);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+      /* Clear the Tamper interrupt pending bit */
+      __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP1F);
+    }
+  }
+
+#if defined(RTC_TAMPER2_SUPPORT)
+  /* Get the Tamper 2 interrupt source enable status */
+  if (__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP) != 0U)
+  {
+    /* Get the pending status of the Tamper 2 Interrupt */
+    if (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) != 0U)
+    {
+      /* Tamper callback */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+      hrtc->Tamper2EventCallback(hrtc);
+#else
+      HAL_RTCEx_Tamper2EventCallback(hrtc);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+      /* Clear the Tamper interrupt pending bit */
+      __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP2F);
+    }
+  }
+#endif /* RTC_TAMPER2_SUPPORT */
+
+  /* Clear the EXTI's Flag for RTC Timestamp and Tamper */
+  __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG();
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+}
+
+/**
+  * @brief  Timestamp callback.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+__weak void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hrtc);
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_TimeStampEventCallback could be implemented in the user file
+  */
+}
+
+/**
+  * @brief  Tamper 1 callback.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+__weak void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hrtc);
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_Tamper1EventCallback could be implemented in the user file
+   */
+}
+
+#if defined(RTC_TAMPER2_SUPPORT)
+/**
+  * @brief  Tamper 2 callback.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+__weak void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hrtc);
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_Tamper2EventCallback could be implemented in the user file
+   */
+}
+#endif /* RTC_TAMPER2_SUPPORT */
+
+/**
+  * @brief  Handles Timestamp polling request.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  Timeout Timeout duration
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
+{
+  uint32_t tickstart = 0U;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  while (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) == 0U)
+  {
+    if (Timeout != HAL_MAX_DELAY)
+    {
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
+      {
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+        return HAL_TIMEOUT;
+      }
+    }
+
+    if (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSOVF) != 0U)
+    {
+      /* Clear the Timestamp Overrun Flag */
+      __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
+
+      /* Change Timestamp state */
+      hrtc->State = HAL_RTC_STATE_ERROR;
+
+      return HAL_ERROR;
+    }
+  }
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Handles Tamper 1 Polling.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  Timeout Timeout duration
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
+{
+  uint32_t tickstart = 0U;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Get the status of the Interrupt */
+  while (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F) == 0U)
+  {
+    if (Timeout != HAL_MAX_DELAY)
+    {
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
+      {
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+        return HAL_TIMEOUT;
+      }
+    }
+  }
+
+  /* Clear the Tamper Flag */
+  __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP1F);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  return HAL_OK;
+}
+
+#if defined(RTC_TAMPER2_SUPPORT)
+/**
+  * @brief  Handles Tamper 2 Polling.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  Timeout Timeout duration
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
+{
+  uint32_t tickstart = 0U;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Get the status of the Interrupt */
+  while (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) == 0U)
+  {
+    if (Timeout != HAL_MAX_DELAY)
+    {
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
+      {
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+        return HAL_TIMEOUT;
+      }
+    }
+  }
+
+  /* Clear the Tamper Flag */
+  __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP2F);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  return HAL_OK;
+}
+#endif /* RTC_TAMPER2_SUPPORT */
+
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Exported_Functions_Group2 RTC Wakeup functions
+  * @brief    RTC Wakeup functions
+  *
+@verbatim
+ ===============================================================================
+                        ##### RTC Wakeup functions #####
+ ===============================================================================
+
+ [..] This section provides functions allowing to configure Wakeup feature
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Sets wakeup timer.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  WakeUpCounter Wakeup counter
+  * @param  WakeUpClock Wakeup clock
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
+{
+  uint32_t tickstart = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock));
+  assert_param(IS_RTC_WAKEUP_COUNTER(WakeUpCounter));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Check RTC WUTWF flag is reset only when wakeup timer enabled*/
+  if ((hrtc->Instance->CR & RTC_CR_WUTE) != 0U)
+  {
+    tickstart = HAL_GetTick();
+
+    /* Wait till RTC WUTWF flag is reset and if timeout is reached exit */
+    while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) != 0U)
+    {
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_TIMEOUT;
+      }
+    }
+  }
+
+  /* Disable the Wakeup timer */
+  __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
+
+  /* Clear the Wakeup flag */
+  __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Wait till RTC WUTWF flag is set and if timeout is reached exit */
+  while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U)
+  {
+    if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+    {
+      /* Enable the write protection for RTC registers */
+      __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+      hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(hrtc);
+
+      return HAL_TIMEOUT;
+    }
+  }
+
+  /* Clear the Wakeup Timer clock source bits in CR register */
+  hrtc->Instance->CR &= (uint32_t)~RTC_CR_WUCKSEL;
+
+  /* Configure the clock source */
+  hrtc->Instance->CR |= (uint32_t)WakeUpClock;
+
+  /* Configure the Wakeup Timer counter */
+  hrtc->Instance->WUTR = (uint32_t)WakeUpCounter;
+
+  /* Enable the Wakeup Timer */
+  __HAL_RTC_WAKEUPTIMER_ENABLE(hrtc);
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Sets wakeup timer with interrupt.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  WakeUpCounter Wakeup counter
+  * @param  WakeUpClock Wakeup clock
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
+{
+  __IO uint32_t count  = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
+
+  /* Check the parameters */
+  assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock));
+  assert_param(IS_RTC_WAKEUP_COUNTER(WakeUpCounter));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Check RTC WUTWF flag is reset only when wakeup timer enabled */
+  if ((hrtc->Instance->CR & RTC_CR_WUTE) != 0U)
+  {
+    /* Wait till RTC WUTWF flag is reset and if timeout is reached exit */
+    do
+    {
+      if (count-- == 0U)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_TIMEOUT;
+      }
+    } while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) != 0U);
+  }
+
+  /* Disable the Wakeup timer */
+  __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
+
+  /* Clear the Wakeup flag */
+  __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
+
+  /* Reload the counter */
+  count = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
+
+  /* Wait till RTC WUTWF flag is set and if timeout is reached exit */
+  do
+  {
+    if (count-- == 0U)
+    {
+      /* Enable the write protection for RTC registers */
+      __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+      hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(hrtc);
+
+      return HAL_TIMEOUT;
+    }
+  } while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U);
+
+  /* Clear the Wakeup Timer clock source bits in CR register */
+  hrtc->Instance->CR &= (uint32_t)~RTC_CR_WUCKSEL;
+
+  /* Configure the clock source */
+  hrtc->Instance->CR |= (uint32_t)WakeUpClock;
+
+  /* Configure the Wakeup Timer counter */
+  hrtc->Instance->WUTR = (uint32_t)WakeUpCounter;
+
+  /* RTC wakeup timer Interrupt Configuration: EXTI configuration */
+  __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT();
+  __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();
+
+  /* Configure the interrupt in the RTC_CR register */
+  __HAL_RTC_WAKEUPTIMER_ENABLE_IT(hrtc, RTC_IT_WUT);
+
+  /* Enable the Wakeup Timer */
+  __HAL_RTC_WAKEUPTIMER_ENABLE(hrtc);
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Deactivates wakeup timer counter.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc)
+{
+  uint32_t tickstart = 0U;
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Disable the Wakeup Timer */
+  __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
+
+  /* In case of interrupt mode is used, the interrupt source must disabled */
+  __HAL_RTC_WAKEUPTIMER_DISABLE_IT(hrtc, RTC_IT_WUT);
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Wait till RTC WUTWF flag is set and if timeout is reached exit */
+  while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U)
+  {
+    if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+    {
+      /* Enable the write protection for RTC registers */
+      __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+      hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(hrtc);
+
+      return HAL_TIMEOUT;
+    }
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Gets wakeup timer counter.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval Counter value
+  */
+uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc)
+{
+  /* Get the counter value */
+  return ((uint32_t)(hrtc->Instance->WUTR & RTC_WUTR_WUT));
+}
+
+/**
+  * @brief  Handles Wakeup Timer interrupt request.
+  * @note   Unlike alarm interrupt line (shared by Alarms A and B) or tamper
+  *         interrupt line (shared by timestamp and tampers) wakeup timer
+  *         interrupt line is exclusive to the wakeup timer.
+  *         There is no need in this case to check on the interrupt enable
+  *         status via __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE().
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc)
+{
+  /* Get the pending status of the Wakeup timer Interrupt */
+  if (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) != 0U)
+  {
+    /* Wakeup timer callback */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+    hrtc->WakeUpTimerEventCallback(hrtc);
+#else
+    HAL_RTCEx_WakeUpTimerEventCallback(hrtc);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+    /* Clear the Wakeup timer interrupt pending bit */
+    __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
+  }
+
+  /* Clear the EXTI's line Flag for RTC WakeUpTimer */
+  __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG();
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+}
+
+/**
+  * @brief  Wakeup Timer callback.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+__weak void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hrtc);
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_WakeUpTimerEventCallback could be implemented in the user file
+   */
+}
+
+/**
+  * @brief  Handles Wakeup Timer Polling.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  Timeout Timeout duration
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
+{
+  uint32_t tickstart = 0U;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) == 0U)
+  {
+    if (Timeout != HAL_MAX_DELAY)
+    {
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
+      {
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+        return HAL_TIMEOUT;
+      }
+    }
+  }
+
+  /* Clear the Wakeup timer Flag */
+  __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  return HAL_OK;
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Exported_Functions_Group3 Extended Peripheral Control functions
+  * @brief    Extended Peripheral Control functions
+  *
+@verbatim
+ ===============================================================================
+              ##### Extended Peripheral Control functions #####
+ ===============================================================================
+    [..]
+    This subsection provides functions allowing to
+      (+) Write a data in a specified RTC Backup data register
+      (+) Read a data in a specified RTC Backup data register
+      (+) Set the Coarse calibration parameters.
+      (+) Deactivate the Coarse calibration parameters
+      (+) Set the Smooth calibration parameters.
+      (+) Configure the Synchronization Shift Control Settings.
+      (+) Configure the Calibration Pinout (RTC_CALIB) Selection (1Hz or 512Hz).
+      (+) Deactivate the Calibration Pinout (RTC_CALIB) Selection (1Hz or 512Hz).
+      (+) Enable the RTC reference clock detection.
+      (+) Disable the RTC reference clock detection.
+      (+) Enable the Bypass Shadow feature.
+      (+) Disable the Bypass Shadow feature.
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Writes a data in a specified RTC Backup data register.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  BackupRegister RTC Backup data Register number.
+  *          This parameter can be: RTC_BKP_DRx (where x can be from 0 to 19)
+  *                                 to specify the register.
+  * @param  Data Data to be written in the specified RTC Backup data register.
+  * @retval None
+  */
+void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data)
+{
+  uint32_t tmp = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_BKP(BackupRegister));
+
+  tmp = (uint32_t) & (hrtc->Instance->BKP0R);
+  tmp += (BackupRegister * 4U);
+
+  /* Write the specified register */
+  *(__IO uint32_t *)tmp = (uint32_t)Data;
+}
+
+/**
+  * @brief  Reads data from the specified RTC Backup data Register.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  BackupRegister RTC Backup data Register number.
+  *          This parameter can be: RTC_BKP_DRx (where x can be from 0 to 19)
+  *                                 to specify the register.
+  * @retval Read value
+  */
+uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister)
+{
+  uint32_t tmp = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_BKP(BackupRegister));
+
+  tmp = (uint32_t) & (hrtc->Instance->BKP0R);
+  tmp += (BackupRegister * 4U);
+
+  /* Read the specified register */
+  return (*(__IO uint32_t *)tmp);
+}
+
+/**
+  * @brief  Sets the Coarse calibration parameters.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  CalibSign Specifies the sign of the coarse calibration value.
+  *          This parameter can be  one of the following values:
+  *             @arg RTC_CALIBSIGN_POSITIVE: The value sign is positive
+  *             @arg RTC_CALIBSIGN_NEGATIVE: The value sign is negative
+  * @param  Value value of coarse calibration expressed in ppm (coded on 5 bits).
+  *
+  * @note   This Calibration value should be between 0 and 63 when using negative
+  *         sign with a 2-ppm step.
+  *
+  * @note   This Calibration value should be between 0 and 126 when using positive
+  *         sign with a 4-ppm step.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetCoarseCalib(RTC_HandleTypeDef *hrtc, uint32_t CalibSign, uint32_t Value)
+{
+  HAL_StatusTypeDef status;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_CALIB_SIGN(CalibSign));
+  assert_param(IS_RTC_CALIB_VALUE(Value));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
+  {
+    /* Enable the Coarse Calibration */
+    __HAL_RTC_COARSE_CALIB_ENABLE(hrtc);
+
+    /* Set the coarse calibration value */
+    hrtc->Instance->CALIBR = (uint32_t)(CalibSign | Value);
+
+    /* Exit Initialization mode */
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
+}
+
+/**
+  * @brief  Deactivates the Coarse calibration parameters.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_DeactivateCoarseCalib(RTC_HandleTypeDef *hrtc)
+{
+  HAL_StatusTypeDef status;
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
+  {
+    /* Disable the Coarse Calibration */
+    __HAL_RTC_COARSE_CALIB_DISABLE(hrtc);
+
+    /* Exit Initialization mode */
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
+}
+
+/**
+  * @brief  Sets the Smooth calibration parameters.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  SmoothCalibPeriod Select the Smooth Calibration Period.
+  *          This parameter can be can be one of the following values:
+  *             @arg RTC_SMOOTHCALIB_PERIOD_32SEC: The smooth calibration period is 32s.
+  *             @arg RTC_SMOOTHCALIB_PERIOD_16SEC: The smooth calibration period is 16s.
+  *             @arg RTC_SMOOTHCALIB_PERIOD_8SEC: The smooth calibration period is 8s.
+  * @param  SmoothCalibPlusPulses Select to Set or reset the CALP bit.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_SMOOTHCALIB_PLUSPULSES_SET: Add one RTCCLK pulse every 2*11 pulses.
+  *             @arg RTC_SMOOTHCALIB_PLUSPULSES_RESET: No RTCCLK pulses are added.
+  * @param  SmoothCalibMinusPulsesValue Select the value of CALM[8:0] bits.
+  *          This parameter can be one any value from 0 to 0x000001FF.
+  * @note   To deactivate the smooth calibration, the field SmoothCalibPlusPulses
+  *         must be equal to SMOOTHCALIB_PLUSPULSES_RESET and the field
+  *         SmoothCalibMinusPulsesValue must be equal to 0.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue)
+{
+  uint32_t tickstart = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_SMOOTH_CALIB_PERIOD(SmoothCalibPeriod));
+  assert_param(IS_RTC_SMOOTH_CALIB_PLUS(SmoothCalibPlusPulses));
+  assert_param(IS_RTC_SMOOTH_CALIB_MINUS(SmoothCalibMinusPulsesValue));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* check if a calibration is pending*/
+  if ((hrtc->Instance->ISR & RTC_ISR_RECALPF) != 0U)
+  {
+    /* Get tick */
+    tickstart = HAL_GetTick();
+
+    /* check if a calibration is pending*/
+    while ((hrtc->Instance->ISR & RTC_ISR_RECALPF) != 0U)
+    {
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        /* Change RTC state */
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_TIMEOUT;
+      }
+    }
+  }
+
+  /* Configure the Smooth calibration settings */
+  hrtc->Instance->CALR = (uint32_t)((uint32_t)SmoothCalibPeriod     | \
+                                    (uint32_t)SmoothCalibPlusPulses | \
+                                    (uint32_t)SmoothCalibMinusPulsesValue);
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Configures the Synchronization Shift Control Settings.
+  * @note   When REFCKON is set, firmware must not write to Shift control register.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  ShiftAdd1S Select to add or not 1 second to the time calendar.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_SHIFTADD1S_SET: Add one second to the clock calendar.
+  *             @arg RTC_SHIFTADD1S_RESET: No effect.
+  * @param  ShiftSubFS Select the number of Second Fractions to substitute.
+  *          This parameter can be one any value from 0 to 0x7FFF.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS)
+{
+  uint32_t tickstart = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_SHIFT_ADD1S(ShiftAdd1S));
+  assert_param(IS_RTC_SHIFT_SUBFS(ShiftSubFS));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Wait until the shift is completed */
+  while ((hrtc->Instance->ISR & RTC_ISR_SHPF) != 0U)
+  {
+    if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+    {
+      /* Enable the write protection for RTC registers */
+      __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+      hrtc->State = HAL_RTC_STATE_TIMEOUT;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(hrtc);
+
+      return HAL_TIMEOUT;
+    }
+  }
+
+  /* Check if the reference clock detection is disabled */
+  if ((hrtc->Instance->CR & RTC_CR_REFCKON) == 0U)
+  {
+    /* Configure the Shift settings */
+    hrtc->Instance->SHIFTR = (uint32_t)(uint32_t)(ShiftSubFS) | (uint32_t)(ShiftAdd1S);
+
+    /* If  RTC_CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */
+    if ((hrtc->Instance->CR & RTC_CR_BYPSHAD) == 0U)
+    {
+      if (HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_ERROR;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_ERROR;
+      }
+    }
+  }
+  else
+  {
+    /* Enable the write protection for RTC registers */
+    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+    /* Change RTC state */
+    hrtc->State = HAL_RTC_STATE_ERROR;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hrtc);
+
+    return HAL_ERROR;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Configures the Calibration Pinout (RTC_CALIB) Selection (1Hz or 512Hz).
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  CalibOutput Select the Calibration output Selection.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_CALIBOUTPUT_512HZ: A signal has a regular waveform at 512Hz.
+  *             @arg RTC_CALIBOUTPUT_1HZ: A signal has a regular waveform at 1Hz.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput)
+{
+  /* Check the parameters */
+  assert_param(IS_RTC_CALIB_OUTPUT(CalibOutput));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Clear flags before config */
+  hrtc->Instance->CR &= (uint32_t)~RTC_CR_COSEL;
+
+  /* Configure the RTC_CR register */
+  hrtc->Instance->CR |= (uint32_t)CalibOutput;
+
+  __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(hrtc);
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Deactivates the Calibration Pinout (RTC_CALIB) Selection (1Hz or 512Hz).
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc)
+{
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(hrtc);
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Enables the RTC reference clock detection.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc)
+{
+  HAL_StatusTypeDef status;
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
+  {
+    /* Enable the reference clock detection */
+    __HAL_RTC_CLOCKREF_DETECTION_ENABLE(hrtc);
+
+    /* Exit Initialization mode */
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
+}
+
+/**
+  * @brief  Disable the RTC reference clock detection.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc)
+{
+  HAL_StatusTypeDef status;
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
+  {
+    /* Disable the reference clock detection */
+    __HAL_RTC_CLOCKREF_DETECTION_DISABLE(hrtc);
+
+    /* Exit Initialization mode */
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
+}
+
+/**
+  * @brief  Enables the Bypass Shadow feature.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @note   When the Bypass Shadow is enabled the calendar value are taken
+  *         directly from the Calendar counter.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc)
+{
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Set the BYPSHAD bit */
+  hrtc->Instance->CR |= (uint8_t)RTC_CR_BYPSHAD;
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Disables the Bypass Shadow feature.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @note   When the Bypass Shadow is enabled the calendar value are taken
+  *         directly from the Calendar counter.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc)
+{
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Reset the BYPSHAD bit */
+  hrtc->Instance->CR &= (uint8_t)~RTC_CR_BYPSHAD;
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Exported_Functions_Group4 Extended features functions
+  * @brief    Extended features functions
+  *
+@verbatim
+ ===============================================================================
+                 ##### Extended features functions #####
+ ===============================================================================
+    [..]  This section provides functions allowing to:
+      (+) RTC Alarm B callback
+      (+) RTC Poll for Alarm B request
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Alarm B callback.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+__weak void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(hrtc);
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_AlarmBEventCallback could be implemented in the user file
+   */
+}
+
+/**
+  * @brief  Handles Alarm B Polling request.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @param  Timeout Timeout duration
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
+{
+  uint32_t tickstart = 0U;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Wait till RTC ALRBF flag is set and if timeout is reached exit */
+  while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBF) == 0U)
+  {
+    if (Timeout != HAL_MAX_DELAY)
+    {
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
+      {
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+        return HAL_TIMEOUT;
+      }
+    }
+  }
+
+  /* Clear the Alarm flag */
+  __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  return HAL_OK;
+}
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#endif /* HAL_RTC_MODULE_ENABLED */
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */

+ 922 - 0
Soft/STM32/Proto/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c

@@ -0,0 +1,922 @@
+/**
+  ******************************************************************************
+  * @file    stm32f4xx_ll_adc.c
+  * @author  MCD Application Team
+  * @brief   ADC LL module driver
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+#if defined(USE_FULL_LL_DRIVER)
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_ll_adc.h"
+#include "stm32f4xx_ll_bus.h"
+
+#ifdef  USE_FULL_ASSERT
+  #include "stm32_assert.h"
+#else
+  #define assert_param(expr) ((void)0U)
+#endif
+
+/** @addtogroup STM32F4xx_LL_Driver
+  * @{
+  */
+
+#if defined (ADC1) || defined (ADC2) || defined (ADC3)
+
+/** @addtogroup ADC_LL ADC
+  * @{
+  */
+
+/* Private types -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private constants ---------------------------------------------------------*/
+/* Private macros ------------------------------------------------------------*/
+
+/** @addtogroup ADC_LL_Private_Macros
+  * @{
+  */
+
+/* Check of parameters for configuration of ADC hierarchical scope:           */
+/* common to several ADC instances.                                           */
+#define IS_LL_ADC_COMMON_CLOCK(__CLOCK__)                                      \
+  (   ((__CLOCK__) == LL_ADC_CLOCK_SYNC_PCLK_DIV2)                             \
+   || ((__CLOCK__) == LL_ADC_CLOCK_SYNC_PCLK_DIV4)                             \
+   || ((__CLOCK__) == LL_ADC_CLOCK_SYNC_PCLK_DIV6)                             \
+   || ((__CLOCK__) == LL_ADC_CLOCK_SYNC_PCLK_DIV8)                             \
+  )
+
+/* Check of parameters for configuration of ADC hierarchical scope:           */
+/* ADC instance.                                                              */
+#define IS_LL_ADC_RESOLUTION(__RESOLUTION__)                                   \
+  (   ((__RESOLUTION__) == LL_ADC_RESOLUTION_12B)                              \
+   || ((__RESOLUTION__) == LL_ADC_RESOLUTION_10B)                              \
+   || ((__RESOLUTION__) == LL_ADC_RESOLUTION_8B)                               \
+   || ((__RESOLUTION__) == LL_ADC_RESOLUTION_6B)                               \
+  )
+
+#define IS_LL_ADC_DATA_ALIGN(__DATA_ALIGN__)                                   \
+  (   ((__DATA_ALIGN__) == LL_ADC_DATA_ALIGN_RIGHT)                            \
+   || ((__DATA_ALIGN__) == LL_ADC_DATA_ALIGN_LEFT)                             \
+  )
+
+#define IS_LL_ADC_SCAN_SELECTION(__SCAN_SELECTION__)                           \
+  (   ((__SCAN_SELECTION__) == LL_ADC_SEQ_SCAN_DISABLE)                        \
+   || ((__SCAN_SELECTION__) == LL_ADC_SEQ_SCAN_ENABLE)                         \
+  )
+
+#define IS_LL_ADC_SEQ_SCAN_MODE(__SEQ_SCAN_MODE__)                             \
+  (   ((__SCAN_MODE__) == LL_ADC_SEQ_SCAN_DISABLE)                             \
+   || ((__SCAN_MODE__) == LL_ADC_SEQ_SCAN_ENABLE)                              \
+  )
+
+/* Check of parameters for configuration of ADC hierarchical scope:           */
+/* ADC group regular                                                          */
+#define IS_LL_ADC_REG_TRIG_SOURCE(__REG_TRIG_SOURCE__)                         \
+  (   ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_SOFTWARE)                      \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH1)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH2)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM1_CH3)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH2)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH3)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_CH4)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM2_TRGO)                 \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_CH1)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM3_TRGO)                 \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM4_CH4)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM5_CH1)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM5_CH2)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM5_CH3)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_CH1)                  \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_TIM8_TRGO)                 \
+   || ((__REG_TRIG_SOURCE__) == LL_ADC_REG_TRIG_EXT_EXTI_LINE11)               \
+  )
+#define IS_LL_ADC_REG_CONTINUOUS_MODE(__REG_CONTINUOUS_MODE__)                 \
+  (   ((__REG_CONTINUOUS_MODE__) == LL_ADC_REG_CONV_SINGLE)                    \
+   || ((__REG_CONTINUOUS_MODE__) == LL_ADC_REG_CONV_CONTINUOUS)                \
+  )
+
+#define IS_LL_ADC_REG_DMA_TRANSFER(__REG_DMA_TRANSFER__)                       \
+  (   ((__REG_DMA_TRANSFER__) == LL_ADC_REG_DMA_TRANSFER_NONE)                 \
+   || ((__REG_DMA_TRANSFER__) == LL_ADC_REG_DMA_TRANSFER_LIMITED)              \
+   || ((__REG_DMA_TRANSFER__) == LL_ADC_REG_DMA_TRANSFER_UNLIMITED)            \
+  )
+
+#define IS_LL_ADC_REG_FLAG_EOC_SELECTION(__REG_FLAG_EOC_SELECTION__)           \
+  (   ((__REG_FLAG_EOC_SELECTION__) == LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV)      \
+   || ((__REG_FLAG_EOC_SELECTION__) == LL_ADC_REG_FLAG_EOC_UNITARY_CONV)       \
+  )
+
+#define IS_LL_ADC_REG_SEQ_SCAN_LENGTH(__REG_SEQ_SCAN_LENGTH__)                 \
+  (   ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_DISABLE)               \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS)         \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS)         \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS)         \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS)         \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS)         \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS)         \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS)         \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS)         \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS)        \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS)        \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS)        \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS)        \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS)        \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS)        \
+   || ((__REG_SEQ_SCAN_LENGTH__) == LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS)        \
+  )
+
+#define IS_LL_ADC_REG_SEQ_SCAN_DISCONT_MODE(__REG_SEQ_DISCONT_MODE__)          \
+  (   ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_DISABLE)           \
+   || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_1RANK)             \
+   || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_2RANKS)            \
+   || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_3RANKS)            \
+   || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_4RANKS)            \
+   || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_5RANKS)            \
+   || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_6RANKS)            \
+   || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_7RANKS)            \
+   || ((__REG_SEQ_DISCONT_MODE__) == LL_ADC_REG_SEQ_DISCONT_8RANKS)            \
+  )
+
+/* Check of parameters for configuration of ADC hierarchical scope:           */
+/* ADC group injected                                                         */
+#define IS_LL_ADC_INJ_TRIG_SOURCE(__INJ_TRIG_SOURCE__)                         \
+  (   ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_SOFTWARE)                      \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_CH4)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM1_TRGO)                 \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_CH1)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM2_TRGO)                 \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH2)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM3_CH4)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH1)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH2)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_CH3)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM4_TRGO)                 \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM5_CH4)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM5_TRGO)                 \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH2)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH3)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_TIM8_CH4)                  \
+   || ((__INJ_TRIG_SOURCE__) == LL_ADC_INJ_TRIG_EXT_EXTI_LINE15)               \
+  )
+
+#define IS_LL_ADC_INJ_TRIG_EXT_EDGE(__INJ_TRIG_EXT_EDGE__)                     \
+  (   ((__INJ_TRIG_EXT_EDGE__) == LL_ADC_INJ_TRIG_EXT_RISING)                  \
+   || ((__INJ_TRIG_EXT_EDGE__) == LL_ADC_INJ_TRIG_EXT_FALLING)                 \
+   || ((__INJ_TRIG_EXT_EDGE__) == LL_ADC_INJ_TRIG_EXT_RISINGFALLING)           \
+  )
+
+#define IS_LL_ADC_INJ_TRIG_AUTO(__INJ_TRIG_AUTO__)                             \
+  (   ((__INJ_TRIG_AUTO__) == LL_ADC_INJ_TRIG_INDEPENDENT)                     \
+   || ((__INJ_TRIG_AUTO__) == LL_ADC_INJ_TRIG_FROM_GRP_REGULAR)                \
+  )
+
+#define IS_LL_ADC_INJ_SEQ_SCAN_LENGTH(__INJ_SEQ_SCAN_LENGTH__)                 \
+  (   ((__INJ_SEQ_SCAN_LENGTH__) == LL_ADC_INJ_SEQ_SCAN_DISABLE)               \
+   || ((__INJ_SEQ_SCAN_LENGTH__) == LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS)         \
+   || ((__INJ_SEQ_SCAN_LENGTH__) == LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS)         \
+   || ((__INJ_SEQ_SCAN_LENGTH__) == LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS)         \
+  )
+
+#define IS_LL_ADC_INJ_SEQ_SCAN_DISCONT_MODE(__INJ_SEQ_DISCONT_MODE__)          \
+  (   ((__INJ_SEQ_DISCONT_MODE__) == LL_ADC_INJ_SEQ_DISCONT_DISABLE)           \
+   || ((__INJ_SEQ_DISCONT_MODE__) == LL_ADC_INJ_SEQ_DISCONT_1RANK)             \
+  )
+
+#if defined(ADC_MULTIMODE_SUPPORT)
+/* Check of parameters for configuration of ADC hierarchical scope:           */
+/* multimode.                                                                 */
+#if defined(ADC3)
+#define IS_LL_ADC_MULTI_MODE(__MULTI_MODE__)                                   \
+  (   ((__MULTI_MODE__) == LL_ADC_MULTI_INDEPENDENT)                           \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_SIMULT)                       \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_INTERL)                       \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_INJ_SIMULT)                       \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_INJ_ALTERN)                       \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM)                  \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT)                  \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM)                  \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_SIM)                \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_ALT)                \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_TRIPLE_INJ_SIMULT)                     \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_TRIPLE_REG_SIMULT)                     \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_TRIPLE_REG_INTERL)                     \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_TRIPLE_INJ_ALTERN)                     \
+  )
+#else
+#define IS_LL_ADC_MULTI_MODE(__MULTI_MODE__)                                   \
+  (   ((__MULTI_MODE__) == LL_ADC_MULTI_INDEPENDENT)                           \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_SIMULT)                       \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_INTERL)                       \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_INJ_SIMULT)                       \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_INJ_ALTERN)                       \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM)                  \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT)                  \
+   || ((__MULTI_MODE__) == LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM)                  \
+  )
+#endif
+
+#define IS_LL_ADC_MULTI_DMA_TRANSFER(__MULTI_DMA_TRANSFER__)                   \
+  (   ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_EACH_ADC)              \
+   || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_LIMIT_1)               \
+   || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_LIMIT_2)               \
+   || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_LIMIT_3)               \
+   || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_UNLMT_1)               \
+   || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_UNLMT_2)               \
+   || ((__MULTI_DMA_TRANSFER__) == LL_ADC_MULTI_REG_DMA_UNLMT_3)               \
+  )
+
+#define IS_LL_ADC_MULTI_TWOSMP_DELAY(__MULTI_TWOSMP_DELAY__)                   \
+  (   ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES)          \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES)          \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES)          \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES)          \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES)          \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_13CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_14CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_15CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_16CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_17CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_18CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_19CYCLES)         \
+   || ((__MULTI_TWOSMP_DELAY__) == LL_ADC_MULTI_TWOSMP_DELAY_20CYCLES)         \
+  )
+
+#define IS_LL_ADC_MULTI_MASTER_SLAVE(__MULTI_MASTER_SLAVE__)                   \
+  (   ((__MULTI_MASTER_SLAVE__) == LL_ADC_MULTI_MASTER)                        \
+   || ((__MULTI_MASTER_SLAVE__) == LL_ADC_MULTI_SLAVE)                         \
+   || ((__MULTI_MASTER_SLAVE__) == LL_ADC_MULTI_MASTER_SLAVE)                  \
+  )
+
+#endif /* ADC_MULTIMODE_SUPPORT */
+/**
+  * @}
+  */
+
+
+/* Private function prototypes -----------------------------------------------*/
+
+/* Exported functions --------------------------------------------------------*/
+/** @addtogroup ADC_LL_Exported_Functions
+  * @{
+  */
+
+/** @addtogroup ADC_LL_EF_Init
+  * @{
+  */
+
+/**
+  * @brief  De-initialize registers of all ADC instances belonging to
+  *         the same ADC common instance to their default reset values.
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @retval An ErrorStatus enumeration value:
+  *          - SUCCESS: ADC common registers are de-initialized
+  *          - ERROR: not applicable
+  */
+ErrorStatus LL_ADC_CommonDeInit(ADC_Common_TypeDef *ADCxy_COMMON)
+{
+  /* Check the parameters */
+  assert_param(IS_ADC_COMMON_INSTANCE(ADCxy_COMMON));
+  
+
+  /* Force reset of ADC clock (core clock) */
+  LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_ADC);
+  
+  /* Release reset of ADC clock (core clock) */
+  LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_ADC);
+  
+  return SUCCESS;
+}
+
+/**
+  * @brief  Initialize some features of ADC common parameters
+  *         (all ADC instances belonging to the same ADC common instance)
+  *         and multimode (for devices with several ADC instances available).
+  * @note   The setting of ADC common parameters is conditioned to
+  *         ADC instances state:
+  *         All ADC instances belonging to the same ADC common instance
+  *         must be disabled.
+  * @param  ADCxy_COMMON ADC common instance
+  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
+  * @param  ADC_CommonInitStruct Pointer to a @ref LL_ADC_CommonInitTypeDef structure
+  * @retval An ErrorStatus enumeration value:
+  *          - SUCCESS: ADC common registers are initialized
+  *          - ERROR: ADC common registers are not initialized
+  */
+ErrorStatus LL_ADC_CommonInit(ADC_Common_TypeDef *ADCxy_COMMON, LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct)
+{
+  ErrorStatus status = SUCCESS;
+  
+  /* Check the parameters */
+  assert_param(IS_ADC_COMMON_INSTANCE(ADCxy_COMMON));
+  assert_param(IS_LL_ADC_COMMON_CLOCK(ADC_CommonInitStruct->CommonClock));
+  
+#if defined(ADC_MULTIMODE_SUPPORT)
+  assert_param(IS_LL_ADC_MULTI_MODE(ADC_CommonInitStruct->Multimode));
+  if(ADC_CommonInitStruct->Multimode != LL_ADC_MULTI_INDEPENDENT)
+  {
+    assert_param(IS_LL_ADC_MULTI_DMA_TRANSFER(ADC_CommonInitStruct->MultiDMATransfer));
+    assert_param(IS_LL_ADC_MULTI_TWOSMP_DELAY(ADC_CommonInitStruct->MultiTwoSamplingDelay));
+  }
+#endif /* ADC_MULTIMODE_SUPPORT */
+
+  /* Note: Hardware constraint (refer to description of functions             */
+  /*       "LL_ADC_SetCommonXXX()" and "LL_ADC_SetMultiXXX()"):               */
+  /*       On this STM32 series, setting of these features is conditioned to  */
+  /*       ADC state:                                                         */
+  /*       All ADC instances of the ADC common group must be disabled.        */
+  if(__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(ADCxy_COMMON) == 0UL)
+  {
+    /* Configuration of ADC hierarchical scope:                               */
+    /*  - common to several ADC                                               */
+    /*    (all ADC instances belonging to the same ADC common instance)       */
+    /*    - Set ADC clock (conversion clock)                                  */
+    /*  - multimode (if several ADC instances available on the                */
+    /*    selected device)                                                    */
+    /*    - Set ADC multimode configuration                                   */
+    /*    - Set ADC multimode DMA transfer                                    */
+    /*    - Set ADC multimode: delay between 2 sampling phases                */
+#if defined(ADC_MULTIMODE_SUPPORT)
+    if(ADC_CommonInitStruct->Multimode != LL_ADC_MULTI_INDEPENDENT)
+    {
+      MODIFY_REG(ADCxy_COMMON->CCR,
+                   ADC_CCR_ADCPRE
+                 | ADC_CCR_MULTI
+                 | ADC_CCR_DMA
+                 | ADC_CCR_DDS
+                 | ADC_CCR_DELAY
+                ,
+                   ADC_CommonInitStruct->CommonClock
+                 | ADC_CommonInitStruct->Multimode
+                 | ADC_CommonInitStruct->MultiDMATransfer
+                 | ADC_CommonInitStruct->MultiTwoSamplingDelay
+                );
+    }
+    else
+    {
+      MODIFY_REG(ADCxy_COMMON->CCR,
+                   ADC_CCR_ADCPRE
+                 | ADC_CCR_MULTI
+                 | ADC_CCR_DMA
+                 | ADC_CCR_DDS
+                 | ADC_CCR_DELAY
+                ,
+                   ADC_CommonInitStruct->CommonClock
+                 | LL_ADC_MULTI_INDEPENDENT
+                );
+    }
+#else
+    LL_ADC_SetCommonClock(ADCxy_COMMON, ADC_CommonInitStruct->CommonClock);
+#endif
+  }
+  else
+  {
+    /* Initialization error: One or several ADC instances belonging to        */
+    /* the same ADC common instance are not disabled.                         */
+    status = ERROR;
+  }
+  
+  return status;
+}
+
+/**
+  * @brief  Set each @ref LL_ADC_CommonInitTypeDef field to default value.
+  * @param  ADC_CommonInitStruct Pointer to a @ref LL_ADC_CommonInitTypeDef structure
+  *                              whose fields will be set to default values.
+  * @retval None
+  */
+void LL_ADC_CommonStructInit(LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct)
+{
+  /* Set ADC_CommonInitStruct fields to default values */
+  /* Set fields of ADC common */
+  /* (all ADC instances belonging to the same ADC common instance) */
+  ADC_CommonInitStruct->CommonClock = LL_ADC_CLOCK_SYNC_PCLK_DIV2;
+  
+#if defined(ADC_MULTIMODE_SUPPORT)
+  /* Set fields of ADC multimode */
+  ADC_CommonInitStruct->Multimode             = LL_ADC_MULTI_INDEPENDENT;
+    ADC_CommonInitStruct->MultiDMATransfer      = LL_ADC_MULTI_REG_DMA_EACH_ADC;
+  ADC_CommonInitStruct->MultiTwoSamplingDelay = LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES;
+#endif /* ADC_MULTIMODE_SUPPORT */
+}
+
+/**
+  * @brief  De-initialize registers of the selected ADC instance
+  *         to their default reset values.
+  * @note   To reset all ADC instances quickly (perform a hard reset),
+  *         use function @ref LL_ADC_CommonDeInit().
+  * @param  ADCx ADC instance
+  * @retval An ErrorStatus enumeration value:
+  *          - SUCCESS: ADC registers are de-initialized
+  *          - ERROR: ADC registers are not de-initialized
+  */
+ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx)
+{
+  ErrorStatus status = SUCCESS;
+  
+  /* Check the parameters */
+  assert_param(IS_ADC_ALL_INSTANCE(ADCx));
+  
+  /* Disable ADC instance if not already disabled.                            */
+  if(LL_ADC_IsEnabled(ADCx) == 1UL)
+  {
+    /* Set ADC group regular trigger source to SW start to ensure to not      */
+    /* have an external trigger event occurring during the conversion stop    */
+    /* ADC disable process.                                                   */
+    LL_ADC_REG_SetTriggerSource(ADCx, LL_ADC_REG_TRIG_SOFTWARE);
+    
+    /* Set ADC group injected trigger source to SW start to ensure to not     */
+    /* have an external trigger event occurring during the conversion stop    */
+    /* ADC disable process.                                                   */
+    LL_ADC_INJ_SetTriggerSource(ADCx, LL_ADC_INJ_TRIG_SOFTWARE);
+    
+    /* Disable the ADC instance */
+    LL_ADC_Disable(ADCx);
+  }
+  
+  /* Check whether ADC state is compliant with expected state */
+  /* (hardware requirements of bits state to reset registers below) */
+  if(READ_BIT(ADCx->CR2, ADC_CR2_ADON) == 0UL)
+  {
+    /* ========== Reset ADC registers ========== */
+    /* Reset register SR */
+    CLEAR_BIT(ADCx->SR,
+              (  LL_ADC_FLAG_STRT
+               | LL_ADC_FLAG_JSTRT
+               | LL_ADC_FLAG_EOCS
+               | LL_ADC_FLAG_OVR
+               | LL_ADC_FLAG_JEOS
+               | LL_ADC_FLAG_AWD1 )
+             );
+    
+    /* Reset register CR1 */
+    CLEAR_BIT(ADCx->CR1,
+              (  ADC_CR1_OVRIE   | ADC_CR1_RES     | ADC_CR1_AWDEN
+               | ADC_CR1_JAWDEN
+               | ADC_CR1_DISCNUM | ADC_CR1_JDISCEN | ADC_CR1_DISCEN
+               | ADC_CR1_JAUTO   | ADC_CR1_AWDSGL  | ADC_CR1_SCAN
+               | ADC_CR1_JEOCIE  | ADC_CR1_AWDIE   | ADC_CR1_EOCIE
+               | ADC_CR1_AWDCH                                     )
+             );
+    
+    /* Reset register CR2 */
+    CLEAR_BIT(ADCx->CR2,
+              (  ADC_CR2_SWSTART  | ADC_CR2_EXTEN  | ADC_CR2_EXTSEL
+               | ADC_CR2_JSWSTART | ADC_CR2_JEXTEN | ADC_CR2_JEXTSEL
+               | ADC_CR2_ALIGN    | ADC_CR2_EOCS
+               | ADC_CR2_DDS      | ADC_CR2_DMA
+               | ADC_CR2_CONT     | ADC_CR2_ADON                    )
+             );
+    
+    /* Reset register SMPR1 */
+    CLEAR_BIT(ADCx->SMPR1,
+              (  ADC_SMPR1_SMP18 | ADC_SMPR1_SMP17 | ADC_SMPR1_SMP16
+               | ADC_SMPR1_SMP15 | ADC_SMPR1_SMP14 | ADC_SMPR1_SMP13
+               | ADC_SMPR1_SMP12 | ADC_SMPR1_SMP11 | ADC_SMPR1_SMP10)
+             );
+    
+    /* Reset register SMPR2 */
+    CLEAR_BIT(ADCx->SMPR2,
+              (  ADC_SMPR2_SMP9
+               | ADC_SMPR2_SMP8 | ADC_SMPR2_SMP7 | ADC_SMPR2_SMP6
+               | ADC_SMPR2_SMP5 | ADC_SMPR2_SMP4 | ADC_SMPR2_SMP3
+               | ADC_SMPR2_SMP2 | ADC_SMPR2_SMP1 | ADC_SMPR2_SMP0)
+             );
+    
+    /* Reset register JOFR1 */
+    CLEAR_BIT(ADCx->JOFR1, ADC_JOFR1_JOFFSET1);
+    /* Reset register JOFR2 */
+    CLEAR_BIT(ADCx->JOFR2, ADC_JOFR2_JOFFSET2);
+    /* Reset register JOFR3 */
+    CLEAR_BIT(ADCx->JOFR3, ADC_JOFR3_JOFFSET3);
+    /* Reset register JOFR4 */
+    CLEAR_BIT(ADCx->JOFR4, ADC_JOFR4_JOFFSET4);
+    
+    /* Reset register HTR */
+    SET_BIT(ADCx->HTR, ADC_HTR_HT);
+    /* Reset register LTR */
+    CLEAR_BIT(ADCx->LTR, ADC_LTR_LT);
+    
+    /* Reset register SQR1 */
+    CLEAR_BIT(ADCx->SQR1,
+              (  ADC_SQR1_L
+               | ADC_SQR1_SQ16
+               | ADC_SQR1_SQ15 | ADC_SQR1_SQ14 | ADC_SQR1_SQ13)
+             );
+             
+    /* Reset register SQR2 */
+    CLEAR_BIT(ADCx->SQR2,
+              (  ADC_SQR2_SQ12 | ADC_SQR2_SQ11 | ADC_SQR2_SQ10
+               | ADC_SQR2_SQ9 | ADC_SQR2_SQ8 | ADC_SQR2_SQ7)
+             );
+
+    /* Reset register SQR3 */
+    CLEAR_BIT(ADCx->SQR3,
+              (  ADC_SQR3_SQ6 | ADC_SQR3_SQ5 | ADC_SQR3_SQ4
+               | ADC_SQR3_SQ3 | ADC_SQR3_SQ2 | ADC_SQR3_SQ1)
+             );
+
+    /* Reset register JSQR */
+    CLEAR_BIT(ADCx->JSQR,
+              (  ADC_JSQR_JL
+               | ADC_JSQR_JSQ4 | ADC_JSQR_JSQ3
+               | ADC_JSQR_JSQ2 | ADC_JSQR_JSQ1  )
+             );
+    
+    /* Reset register DR */
+    /* bits in access mode read only, no direct reset applicable */
+    
+    /* Reset registers JDR1, JDR2, JDR3, JDR4 */
+    /* bits in access mode read only, no direct reset applicable */
+    
+    /* Reset register CCR */
+    CLEAR_BIT(ADC->CCR, ADC_CCR_TSVREFE | ADC_CCR_ADCPRE);
+  }
+  
+  return status;
+}
+
+/**
+  * @brief  Initialize some features of ADC instance.
+  * @note   These parameters have an impact on ADC scope: ADC instance.
+  *         Affects both group regular and group injected (availability
+  *         of ADC group injected depends on STM32 families).
+  *         Refer to corresponding unitary functions into
+  *         @ref ADC_LL_EF_Configuration_ADC_Instance .
+  * @note   The setting of these parameters by function @ref LL_ADC_Init()
+  *         is conditioned to ADC state:
+  *         ADC instance must be disabled.
+  *         This condition is applied to all ADC features, for efficiency
+  *         and compatibility over all STM32 families. However, the different
+  *         features can be set under different ADC state conditions
+  *         (setting possible with ADC enabled without conversion on going,
+  *         ADC enabled with conversion on going, ...)
+  *         Each feature can be updated afterwards with a unitary function
+  *         and potentially with ADC in a different state than disabled,
+  *         refer to description of each function for setting
+  *         conditioned to ADC state.
+  * @note   After using this function, some other features must be configured
+  *         using LL unitary functions.
+  *         The minimum configuration remaining to be done is:
+  *          - Set ADC group regular or group injected sequencer:
+  *            map channel on the selected sequencer rank.
+  *            Refer to function @ref LL_ADC_REG_SetSequencerRanks().
+  *          - Set ADC channel sampling time
+  *            Refer to function LL_ADC_SetChannelSamplingTime();
+  * @param  ADCx ADC instance
+  * @param  ADC_InitStruct Pointer to a @ref LL_ADC_REG_InitTypeDef structure
+  * @retval An ErrorStatus enumeration value:
+  *          - SUCCESS: ADC registers are initialized
+  *          - ERROR: ADC registers are not initialized
+  */
+ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, LL_ADC_InitTypeDef *ADC_InitStruct)
+{
+  ErrorStatus status = SUCCESS;
+  
+  /* Check the parameters */
+  assert_param(IS_ADC_ALL_INSTANCE(ADCx));
+  
+  assert_param(IS_LL_ADC_RESOLUTION(ADC_InitStruct->Resolution));
+  assert_param(IS_LL_ADC_DATA_ALIGN(ADC_InitStruct->DataAlignment));
+  assert_param(IS_LL_ADC_SCAN_SELECTION(ADC_InitStruct->SequencersScanMode));
+  
+  /* Note: Hardware constraint (refer to description of this function):       */
+  /*       ADC instance must be disabled.                                     */
+  if(LL_ADC_IsEnabled(ADCx) == 0UL)
+  {
+    /* Configuration of ADC hierarchical scope:                               */
+    /*  - ADC instance                                                        */
+    /*    - Set ADC data resolution                                           */
+    /*    - Set ADC conversion data alignment                                 */
+    MODIFY_REG(ADCx->CR1,
+                 ADC_CR1_RES
+               | ADC_CR1_SCAN
+              ,
+                 ADC_InitStruct->Resolution
+               | ADC_InitStruct->SequencersScanMode
+              );
+    
+    MODIFY_REG(ADCx->CR2,
+                 ADC_CR2_ALIGN
+              ,
+                 ADC_InitStruct->DataAlignment
+              );
+
+  }
+  else
+  {
+    /* Initialization error: ADC instance is not disabled. */
+    status = ERROR;
+  }
+  return status;
+}
+
+/**
+  * @brief  Set each @ref LL_ADC_InitTypeDef field to default value.
+  * @param  ADC_InitStruct Pointer to a @ref LL_ADC_InitTypeDef structure
+  *                        whose fields will be set to default values.
+  * @retval None
+  */
+void LL_ADC_StructInit(LL_ADC_InitTypeDef *ADC_InitStruct)
+{
+  /* Set ADC_InitStruct fields to default values */
+  /* Set fields of ADC instance */
+  ADC_InitStruct->Resolution    = LL_ADC_RESOLUTION_12B;
+  ADC_InitStruct->DataAlignment = LL_ADC_DATA_ALIGN_RIGHT;
+  
+  /* Enable scan mode to have a generic behavior with ADC of other            */
+  /* STM32 families, without this setting available:                          */
+  /* ADC group regular sequencer and ADC group injected sequencer depend      */
+  /* only of their own configuration.                                         */
+  ADC_InitStruct->SequencersScanMode      = LL_ADC_SEQ_SCAN_ENABLE;
+  
+}
+
+/**
+  * @brief  Initialize some features of ADC group regular.
+  * @note   These parameters have an impact on ADC scope: ADC group regular.
+  *         Refer to corresponding unitary functions into
+  *         @ref ADC_LL_EF_Configuration_ADC_Group_Regular
+  *         (functions with prefix "REG").
+  * @note   The setting of these parameters by function @ref LL_ADC_Init()
+  *         is conditioned to ADC state:
+  *         ADC instance must be disabled.
+  *         This condition is applied to all ADC features, for efficiency
+  *         and compatibility over all STM32 families. However, the different
+  *         features can be set under different ADC state conditions
+  *         (setting possible with ADC enabled without conversion on going,
+  *         ADC enabled with conversion on going, ...)
+  *         Each feature can be updated afterwards with a unitary function
+  *         and potentially with ADC in a different state than disabled,
+  *         refer to description of each function for setting
+  *         conditioned to ADC state.
+  * @note   After using this function, other features must be configured
+  *         using LL unitary functions.
+  *         The minimum configuration remaining to be done is:
+  *          - Set ADC group regular or group injected sequencer:
+  *            map channel on the selected sequencer rank.
+  *            Refer to function @ref LL_ADC_REG_SetSequencerRanks().
+  *          - Set ADC channel sampling time
+  *            Refer to function LL_ADC_SetChannelSamplingTime();
+  * @param  ADCx ADC instance
+  * @param  ADC_REG_InitStruct Pointer to a @ref LL_ADC_REG_InitTypeDef structure
+  * @retval An ErrorStatus enumeration value:
+  *          - SUCCESS: ADC registers are initialized
+  *          - ERROR: ADC registers are not initialized
+  */
+ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct)
+{
+  ErrorStatus status = SUCCESS;
+  
+  /* Check the parameters */
+  assert_param(IS_ADC_ALL_INSTANCE(ADCx));
+  assert_param(IS_LL_ADC_REG_TRIG_SOURCE(ADC_REG_InitStruct->TriggerSource));
+  assert_param(IS_LL_ADC_REG_SEQ_SCAN_LENGTH(ADC_REG_InitStruct->SequencerLength));
+  if(ADC_REG_InitStruct->SequencerLength != LL_ADC_REG_SEQ_SCAN_DISABLE)
+  {
+    assert_param(IS_LL_ADC_REG_SEQ_SCAN_DISCONT_MODE(ADC_REG_InitStruct->SequencerDiscont));
+  }
+  assert_param(IS_LL_ADC_REG_CONTINUOUS_MODE(ADC_REG_InitStruct->ContinuousMode));
+  assert_param(IS_LL_ADC_REG_DMA_TRANSFER(ADC_REG_InitStruct->DMATransfer));
+  
+  /* ADC group regular continuous mode and discontinuous mode                 */
+  /* can not be enabled simultenaeously                                       */
+  assert_param((ADC_REG_InitStruct->ContinuousMode == LL_ADC_REG_CONV_SINGLE)
+               || (ADC_REG_InitStruct->SequencerDiscont == LL_ADC_REG_SEQ_DISCONT_DISABLE));
+  
+  /* Note: Hardware constraint (refer to description of this function):       */
+  /*       ADC instance must be disabled.                                     */
+  if(LL_ADC_IsEnabled(ADCx) == 0UL)
+  {
+    /* Configuration of ADC hierarchical scope:                               */
+    /*  - ADC group regular                                                   */
+    /*    - Set ADC group regular trigger source                              */
+    /*    - Set ADC group regular sequencer length                            */
+    /*    - Set ADC group regular sequencer discontinuous mode                */
+    /*    - Set ADC group regular continuous mode                             */
+    /*    - Set ADC group regular conversion data transfer: no transfer or    */
+    /*      transfer by DMA, and DMA requests mode                            */
+    /* Note: On this STM32 series, ADC trigger edge is set when starting      */
+    /*       ADC conversion.                                                  */
+    /*       Refer to function @ref LL_ADC_REG_StartConversionExtTrig().      */
+    if(ADC_REG_InitStruct->SequencerLength != LL_ADC_REG_SEQ_SCAN_DISABLE)
+    {
+      MODIFY_REG(ADCx->CR1,
+                   ADC_CR1_DISCEN
+                 | ADC_CR1_DISCNUM
+                ,
+                   ADC_REG_InitStruct->SequencerDiscont
+                );
+    }
+    else
+    {
+      MODIFY_REG(ADCx->CR1,
+                   ADC_CR1_DISCEN
+                 | ADC_CR1_DISCNUM
+                ,
+                   LL_ADC_REG_SEQ_DISCONT_DISABLE
+                );
+    }
+    
+    MODIFY_REG(ADCx->CR2,
+                 ADC_CR2_EXTSEL
+               | ADC_CR2_EXTEN
+               | ADC_CR2_CONT
+               | ADC_CR2_DMA
+               | ADC_CR2_DDS
+              ,
+                (ADC_REG_InitStruct->TriggerSource & ADC_CR2_EXTSEL)
+               | ADC_REG_InitStruct->ContinuousMode
+               | ADC_REG_InitStruct->DMATransfer
+              );
+
+    /* Set ADC group regular sequencer length and scan direction */
+    /* Note: Hardware constraint (refer to description of this function):     */
+    /* Note: If ADC instance feature scan mode is disabled                    */
+    /*       (refer to  ADC instance initialization structure                 */
+    /*       parameter @ref SequencersScanMode                                */
+    /*       or function @ref LL_ADC_SetSequencersScanMode() ),               */
+    /*       this parameter is discarded.                                     */
+    LL_ADC_REG_SetSequencerLength(ADCx, ADC_REG_InitStruct->SequencerLength);
+  }
+  else
+  {
+    /* Initialization error: ADC instance is not disabled. */
+    status = ERROR;
+  }
+  return status;
+}
+
+/**
+  * @brief  Set each @ref LL_ADC_REG_InitTypeDef field to default value.
+  * @param  ADC_REG_InitStruct Pointer to a @ref LL_ADC_REG_InitTypeDef structure
+  *                            whose fields will be set to default values.
+  * @retval None
+  */
+void LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct)
+{
+  /* Set ADC_REG_InitStruct fields to default values */
+  /* Set fields of ADC group regular */
+  /* Note: On this STM32 series, ADC trigger edge is set when starting        */
+  /*       ADC conversion.                                                    */
+  /*       Refer to function @ref LL_ADC_REG_StartConversionExtTrig().        */
+  ADC_REG_InitStruct->TriggerSource    = LL_ADC_REG_TRIG_SOFTWARE;
+  ADC_REG_InitStruct->SequencerLength  = LL_ADC_REG_SEQ_SCAN_DISABLE;
+  ADC_REG_InitStruct->SequencerDiscont = LL_ADC_REG_SEQ_DISCONT_DISABLE;
+  ADC_REG_InitStruct->ContinuousMode   = LL_ADC_REG_CONV_SINGLE;
+  ADC_REG_InitStruct->DMATransfer      = LL_ADC_REG_DMA_TRANSFER_NONE;
+}
+
+/**
+  * @brief  Initialize some features of ADC group injected.
+  * @note   These parameters have an impact on ADC scope: ADC group injected.
+  *         Refer to corresponding unitary functions into
+  *         @ref ADC_LL_EF_Configuration_ADC_Group_Regular
+  *         (functions with prefix "INJ").
+  * @note   The setting of these parameters by function @ref LL_ADC_Init()
+  *         is conditioned to ADC state:
+  *         ADC instance must be disabled.
+  *         This condition is applied to all ADC features, for efficiency
+  *         and compatibility over all STM32 families. However, the different
+  *         features can be set under different ADC state conditions
+  *         (setting possible with ADC enabled without conversion on going,
+  *         ADC enabled with conversion on going, ...)
+  *         Each feature can be updated afterwards with a unitary function
+  *         and potentially with ADC in a different state than disabled,
+  *         refer to description of each function for setting
+  *         conditioned to ADC state.
+  * @note   After using this function, other features must be configured
+  *         using LL unitary functions.
+  *         The minimum configuration remaining to be done is:
+  *          - Set ADC group injected sequencer:
+  *            map channel on the selected sequencer rank.
+  *            Refer to function @ref LL_ADC_INJ_SetSequencerRanks().
+  *          - Set ADC channel sampling time
+  *            Refer to function LL_ADC_SetChannelSamplingTime();
+  * @param  ADCx ADC instance
+  * @param  ADC_INJ_InitStruct Pointer to a @ref LL_ADC_INJ_InitTypeDef structure
+  * @retval An ErrorStatus enumeration value:
+  *          - SUCCESS: ADC registers are initialized
+  *          - ERROR: ADC registers are not initialized
+  */
+ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct)
+{
+  ErrorStatus status = SUCCESS;
+  
+  /* Check the parameters */
+  assert_param(IS_ADC_ALL_INSTANCE(ADCx));
+  assert_param(IS_LL_ADC_INJ_TRIG_SOURCE(ADC_INJ_InitStruct->TriggerSource));
+  assert_param(IS_LL_ADC_INJ_SEQ_SCAN_LENGTH(ADC_INJ_InitStruct->SequencerLength));
+  if(ADC_INJ_InitStruct->SequencerLength != LL_ADC_INJ_SEQ_SCAN_DISABLE)
+  {
+    assert_param(IS_LL_ADC_INJ_SEQ_SCAN_DISCONT_MODE(ADC_INJ_InitStruct->SequencerDiscont));
+  }
+  assert_param(IS_LL_ADC_INJ_TRIG_AUTO(ADC_INJ_InitStruct->TrigAuto));
+  
+  /* Note: Hardware constraint (refer to description of this function):       */
+  /*       ADC instance must be disabled.                                     */
+  if(LL_ADC_IsEnabled(ADCx) == 0UL)
+  {
+    /* Configuration of ADC hierarchical scope:                               */
+    /*  - ADC group injected                                                  */
+    /*    - Set ADC group injected trigger source                             */
+    /*    - Set ADC group injected sequencer length                           */
+    /*    - Set ADC group injected sequencer discontinuous mode               */
+    /*    - Set ADC group injected conversion trigger: independent or         */
+    /*      from ADC group regular                                            */
+    /* Note: On this STM32 series, ADC trigger edge is set when starting      */
+    /*       ADC conversion.                                                  */
+    /*       Refer to function @ref LL_ADC_INJ_StartConversionExtTrig().      */
+    if(ADC_INJ_InitStruct->SequencerLength != LL_ADC_REG_SEQ_SCAN_DISABLE)
+    {
+      MODIFY_REG(ADCx->CR1,
+                   ADC_CR1_JDISCEN
+                 | ADC_CR1_JAUTO
+                ,
+                   ADC_INJ_InitStruct->SequencerDiscont
+                 | ADC_INJ_InitStruct->TrigAuto
+                );
+    }
+    else
+    {
+      MODIFY_REG(ADCx->CR1,
+                   ADC_CR1_JDISCEN
+                 | ADC_CR1_JAUTO
+                ,
+                   LL_ADC_REG_SEQ_DISCONT_DISABLE
+                 | ADC_INJ_InitStruct->TrigAuto
+                );
+    }
+    
+    MODIFY_REG(ADCx->CR2,
+                 ADC_CR2_JEXTSEL
+               | ADC_CR2_JEXTEN
+              ,
+                (ADC_INJ_InitStruct->TriggerSource & ADC_CR2_JEXTSEL)
+              );
+    
+    /* Note: Hardware constraint (refer to description of this function):     */
+    /* Note: If ADC instance feature scan mode is disabled                    */
+    /*       (refer to  ADC instance initialization structure                 */
+    /*       parameter @ref SequencersScanMode                                */
+    /*       or function @ref LL_ADC_SetSequencersScanMode() ),               */
+    /*       this parameter is discarded.                                     */
+    LL_ADC_INJ_SetSequencerLength(ADCx, ADC_INJ_InitStruct->SequencerLength);
+  }
+  else
+  {
+    /* Initialization error: ADC instance is not disabled. */
+    status = ERROR;
+  }
+  return status;
+}
+
+/**
+  * @brief  Set each @ref LL_ADC_INJ_InitTypeDef field to default value.
+  * @param  ADC_INJ_InitStruct Pointer to a @ref LL_ADC_INJ_InitTypeDef structure
+  *                            whose fields will be set to default values.
+  * @retval None
+  */
+void LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct)
+{
+  /* Set ADC_INJ_InitStruct fields to default values */
+  /* Set fields of ADC group injected */
+  ADC_INJ_InitStruct->TriggerSource    = LL_ADC_INJ_TRIG_SOFTWARE;
+  ADC_INJ_InitStruct->SequencerLength  = LL_ADC_INJ_SEQ_SCAN_DISABLE;
+  ADC_INJ_InitStruct->SequencerDiscont = LL_ADC_INJ_SEQ_DISCONT_DISABLE;
+  ADC_INJ_InitStruct->TrigAuto         = LL_ADC_INJ_TRIG_INDEPENDENT;
+}
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#endif /* ADC1 || ADC2 || ADC3 */
+
+/**
+  * @}
+  */
+
+#endif /* USE_FULL_LL_DRIVER */
+

+ 52 - 0
Soft/STM32/Proto/Inc/rtc.h

@@ -0,0 +1,52 @@
+/* USER CODE BEGIN Header */
+/**
+  ******************************************************************************
+  * @file    rtc.h
+  * @brief   This file contains all the function prototypes for
+  *          the rtc.c file
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2023 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+/* USER CODE END Header */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __RTC_H__
+#define __RTC_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+extern RTC_HandleTypeDef hrtc;
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+void MX_RTC_Init(void);
+
+/* USER CODE BEGIN Prototypes */
+
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __RTC_H__ */
+

+ 105 - 0
Soft/STM32/Proto/Src/rtc.c

@@ -0,0 +1,105 @@
+/* USER CODE BEGIN Header */
+/**
+  ******************************************************************************
+  * @file    rtc.c
+  * @brief   This file provides code for the configuration
+  *          of the RTC instances.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2023 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+/* USER CODE END Header */
+/* Includes ------------------------------------------------------------------*/
+#include "rtc.h"
+
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+RTC_HandleTypeDef hrtc;
+
+/* RTC init function */
+void MX_RTC_Init(void)
+{
+
+  /* USER CODE BEGIN RTC_Init 0 */
+
+  /* USER CODE END RTC_Init 0 */
+
+  /* USER CODE BEGIN RTC_Init 1 */
+
+  /* USER CODE END RTC_Init 1 */
+
+  /** Initialize RTC Only
+  */
+  hrtc.Instance = RTC;
+  hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
+  hrtc.Init.AsynchPrediv = 127;
+  hrtc.Init.SynchPrediv = 255;
+  hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
+  hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
+  hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
+  if (HAL_RTC_Init(&hrtc) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN RTC_Init 2 */
+
+  /* USER CODE END RTC_Init 2 */
+
+}
+
+void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)
+{
+
+  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+  if(rtcHandle->Instance==RTC)
+  {
+  /* USER CODE BEGIN RTC_MspInit 0 */
+
+  /* USER CODE END RTC_MspInit 0 */
+
+  /** Initializes the peripherals clock
+  */
+    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
+    PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+    {
+      Error_Handler();
+    }
+
+    /* RTC clock enable */
+    __HAL_RCC_RTC_ENABLE();
+  /* USER CODE BEGIN RTC_MspInit 1 */
+
+  /* USER CODE END RTC_MspInit 1 */
+  }
+}
+
+void HAL_RTC_MspDeInit(RTC_HandleTypeDef* rtcHandle)
+{
+
+  if(rtcHandle->Instance==RTC)
+  {
+  /* USER CODE BEGIN RTC_MspDeInit 0 */
+
+  /* USER CODE END RTC_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_RTC_DISABLE();
+  /* USER CODE BEGIN RTC_MspDeInit 1 */
+
+  /* USER CODE END RTC_MspDeInit 1 */
+  }
+}
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */

+ 27 - 0
Soft/STM32/essai/.project

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>essai</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<triggers>clean,full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+		<nature>com.st.stm32cube.ide.mcu.MCUSW4STM32ConvertedProjectNature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+	</natures>
+</projectDescription>