Skip to content

HaleHound-CYD v3.7.0

Latest

Choose a tag to compare

@JesseCHale JesseCHale released this 08 Jul 13:06
37ddf45
              _                                                    _
         .k$$$$$g,                                             ,g$$$$$k.
      .k$$$$$$$$$$$a.                                       .a$$$$$$$$$$$k.
    .J$$$$$?'   `?$?^?,                                  ,?^?$?`    `?$$$$$L.
   JS$$SI!a,  _.JS$   ?,                                ,?   $SL._  ,a$!IS$$SL
  k$$$SI!:?$$$$$$$$$xu$$j                               j$$ux$$$$$$$$$?:!IS$$$k
 :I$$SI:J$$?*"$$$$4^?*?:                                :?*?^4$$$$"*?$$L:iIS$$I:
 :IS$$SiJ?`  _.'$?`/'   ':                            :'    '/'?$'._  `?LiS$$SI:
  ?ISSik? _        ',    `                              .    ,'       _ ?kiSSI?
    ?i$?` _   k$        .                               :.        $k   _ `?$i?
      '?I:-?z$$I   _._.'                                  ._._   I$$z?-:I?'
     '*?- '?$$a louSxuS?                               ?xuSxuol a$$?' -?*'
           i$$$$$$$$$$$S                               S$$$$$$$$$$$i
              ?$$$?-                                       -?$$$?

     ██░ ██  ▄▄▄       ██▓    ▓█████  ██░ ██  ▒█████   █    ██  ███▄    █ ▓█████▄
    ▓██░ ██▒▒████▄    ▓██▒    ▓█   ▀ ▓██░ ██▒▒██▒  ██▒ ██  ▓██▒ ██ ▀█   █ ▒██▀ ██▌
    ▒██▀▀██░▒██  ▀█▄  ▒██░    ▒███   ▒██▀▀██░▒██░  ██▒▓██  ▒██░▓██  ▀█ ██▒░██   █▌
    ░▓█ ░██ ░██▄▄▄▄██ ▒██░    ▒▓█  ▄ ░▓█ ░██ ▒██   ██░▓▓█  ░██░▓██▒  ▐▌██▒░▓█▄   ▌
    ░▓█▒░██▓ ▓█   ▓██▒░██████▒░▒████▒░▓█▒░██▓░ ████▓▒░▒▒█████▓ ▒██░   ▓██░░▒████▓
     ▒ ░░▒░▒ ▒▒   ▓▒█░░ ▒░▓  ░░░ ▒░ ░ ▒ ░░▒░▒░ ▒░▒░▒░ ░▒▓▒ ▒ ▒ ░ ▒░   ▒ ▒  ▒▒▓  ▒
     ▒ ░▒░ ░  ▒   ▒▒ ░░ ░ ▒  ░ ░ ░  ░ ▒ ░▒░ ░  ░ ▒ ▒░ ░░▒░ ░ ░ ░ ░░   ░ ▒░ ░ ▒  ▒
     ░  ░░ ░  ░   ▒     ░ ░      ░    ░  ░░ ░░ ░ ░ ▒   ░░░ ░ ░    ░   ░ ░  ░ ░  ░
     ░  ░  ░      ░  ░    ░  ░   ░  ░ ░  ░  ░    ░ ░     ░              ░    ░
    
              _                                                   _
         .k$$$$$g,                                           ,g$$$$$k.
      .k$$$$$$$$$$$a.                                     .a$$$$$$$$$$$k.
    .J$$$$$?'   `?$?^?,                                 ,?^?$?`   `?$$$$$L.
   JS$$SI!a,  _.JS$   ?,                               ,?   $SL._  ,a$!IS$$SL
  k$$$SI!:?$$$$$$$$$xu$$j                              j$$ux$$$$$$$$$?:!IS$$$k
 :I$$SI:J$$?*"$$$$4^?*?:                              :?*?^4$$$$"*?$$L:iIS$$I:
 :IS$$SiJ?`  _.'$?`/'  ':                            :'    '/'?$'._  `?LiS$$SI:
  ?ISSik? _        ',  .                                .    ,'       _ ?kiSSI?
    ?i$?` _  k$        .:                              :.        $k   _ `?$i?
      '?I:-?z$$I   _._.'                                  ._._   I$$z?-:I?'
     '*?- '?$$a louSxuS?                               ?xuSxuol a$$?' -?*'
           i$$$$$$$$$$$S                               S$$$$$$$$$$$i
              ?$$$?-                                       -?$$$?

HaleHound-CYD v3.7.0

A big one — a whole new BLE tool, dual-core wardriving, and a major IoT Recon upgrade.

What's New

SkeletonKey — new BLE module. Connect to any Bluetooth Low Energy device, map every service and characteristic, read its values, and send commands. Built-in profiles for common BLE gear (ELK-BLEDOM / Triones RGB controllers) give one-tap control, and it auto-identifies device types (remote, watch, sensor, light…) right in the scan list.

Dual-core wardriving. WiFi scanning now runs on its own core while the UI stays smooth — roughly 2× the scan rate, with a live nets/min RATE meter.

IoT Recon overhaul. Vendor fingerprinting (Hikvision, Dahua, Uniview, Amcrest), brand-aware credential ordering, unlimited SD-streamed wordlists, Sweep/Deep scan modes, and real RTSP/HTTP Digest auth with crack verification.

AirTag Scream — detection and UI improvements.

Fixes

3.5" re-calibration on every boot — the E32R35T saved its cal matrix but not the "done" flag, so it re-ran calibration at every power-up. Calibrate once now and it sticks.

BLE stability — fixed a white-screen when switching between BLE Predator and other BT/WiFi modules; hardened WhisperPair's SD save on marginal cards.

Wardriving stability — eliminated the dense-RF-area crashes.

Boards

E32R35T (3.5"), CYD (2.8"), CYD-HAT, E32R28T.

                                                            ⣀⡀⣀⢀⡀⢀⡀⣀    ⣀⢀⡀ ⡀⢀ ⣀⢀⡀⢀⡀
                                                     ⢀⡀⣛⠘⠿⢦⠤⣽⢟⣿⢻⡟⣾⡏⣹⣿⣿⢻⡟⣿⣾⣿⣿⡿⣿⢿⣿⣌⣿⢸⡷⢤⡄⢚⢀⡀
                                              ⣀⢀⣀⣀⣀⢀⣀⣈⣁⣉⣀⣀⣀⣀⣉⣈⣁⣀⣀⣀⣀⣉⣀⣁⣀⣁⣉⣉⣀⣈⣀⣀⣀⣉⣈⣉⣀⣀⣀⣀⣈⣈⣁⣀⣀⣀ ⣀
                                           ⣤⠐⢶⢻⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢠⡇
                                       ⢀⣀⣠⣄⣤⣀⣤⣤⣤⣤⣤⣤⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣭⣍⣭⣭⣭⣭⣥⣭⣭⣭⣭⣥⣭⣭⣭⣬⣭⣭⣥⣤⣤⣤⣤⣤⣤⣄⣤⣀⣄⣀⡀
                                      ⣴⠸⠟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⠿⠿⠉⠉
                                  ⢀⡀⣶⣦⣶⣴⣶⣴⣤⣴⣶⣶⣼⣦⣿⣶⣾⣶⣶⣾⣧⣿⣾⣷⣾⣷⣿⣶⣶⣶⣶⣶⣦⣶⣶⣶⣶⣷⣿⣶⣶⣶⣶⣶⣶⣿⣾⣷⣴⣦⣶⣦⣤⣤⣦⣴⣦⣴⢠⣦⣤⡆⣴⣤⣤⣤⣤⣤⣄
                                  ⠸⠇⠿⠻⢿⠿⠿⠿⠿⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠟⠛⠃
                               ⡤⢰⣶⣶⣶⣾⣷⣿⣶⣿⣾⣷⣿⣶⣿⣶⣷⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣷⣿⣿⣿⣾⣿⣿⣷⣿⣾⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣾⣷⣿⣧⣶⣰⣶⣤⣤⣤⣴⣶⣴⣶⣶⣶⣤⣶⣶
                               ⠛⠘⠛⠛⠛⢿⠿⣿⠿⠿⠿⠿⠿⠿⠿⠿⠿⢿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⢿⣿⣿⡿⣿⠿⠿⠛⠛⠛⠛⠛⠛⠛⠛⠋⠛⠛⠛⠛⠛⠛⠁⠛⠘⠃⠐⠂
                           ⢠⠶⣾⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣾⣿⣿⣷⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣶⣿⣾⣷⣿⣷⣾⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⠶⣶⣶⣦⣤⣀
                             ⠉⠉⠛⠈⠛⠙⠋⠙⠛⠛⠛⠛⣿⠿⢿⣻⣿⢿⡟⢿⠿⠿⠿⠿⢿⡿⣿⠿⠿⢿⡿⣿⠿⣿⢿⡿⢿⡟⠿⠿⣿⣿⡿⣿⠿⣿⢿⡟⠿⠿⠿⠻⡿⢿⡟⠛⠛⠛⠛⠛⠛⠛⠋⠙⠋⠛⠋⠛⠉⠛⠋ ⠘⠁⠉ ⠋⠉⠁⠈⠉⠉
                        ⢰⢿⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⡿⣿⣿⡾⢻⡟⣿⠿⣿ ⡆
                       ⣀⢀⡀⣀⡘⢋⣀ ⣉⣉⣉⣈⣁⣙⡛⣁⣉⣉⣉⣉⣛⢛⣛⣛⣋⣛⣛⣛⣻⣿⣿⡟⣿⣿⣿⣿⡟⣿⣿⣿⣻⣟⣻⣛⣛⢛⣻⣿⣟⣛⣿⣿⣻⡟⣿⣟⣿⢛⣛⢛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣉⡋⣛⡙⣛⠉⡀⠘⠁⠉⡈⠁⣈⡁⢉ ⠁⠈⠃
                     ⠋⠠⠏⠘⠁⡿⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⡿⣿⢻⡿⣹⡇⣿ ⣓ ⡀
                        ⢀⣀⣀⣈⣉⣩⣅⣄⣀⣭⣉⣍⣁⣈⣉⣩⣍⣩⣉⣭⣭⣿⣩⣍⣽⣭⣩⣭⣭⣭⣍⣭⣉⣍⣩⣍⣭⣉⣭⣩⣍⣩⣉⣭⣩⣍⣩⣍⣩⣉⣉⣉⣍⣉⣉⣭⣉⣉⣉⣍⣉⣉⣉⣩⣁⣉⢉⣉⢈⡁⣉⣀⣉⣉⣉⣁⣀⣈⣀⣈⣀⣁⣉⡁⠈ ⠁ ⠁
                       ⠂⠚⠉⠛⠩⠟⠟⠻⣿⢿⣿⢿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⢿⣿⡿⠿⣿⢿⣿⣿⡿⣿⣿⣿⢹⣿⠿⠏⣿⢩⣿⣿⣿⣿⣿⣿⢿⡟⢹⡟⣤
                        ⣠⣤⣤⣤⣤⣤⣤⣴⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣭⣼⣿⣿⣿⣿⣭⣭⣭⣭⣭⣭⣭⣤⣤⣤⣤⣤⣬⣥⣤⣄⣬⣭⣥⣬⣥⣭⣅⣤⣤⣬⣤⣄⣠⣄⣤ ⣤⣠⣤⣤⣴⣮⣤⣤⣤⣤⣤⣤⣤⣤⣤⣄⡀⣠⢀⣄⣤⣤⣤⣠⣤⣤⣀
                      ⠈⠉⠛⠛⠿⠿⠛⠿⠿⠿⠿⠿⢿⠿⣿⠟⠿⠸⠟⢹⡇⢿⠘⠿⠻⠿⠟⠻⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⣿⢿⡿⢿⠿⠿⠿⠿⠿⠿⠿⠿⠿⢻⡟⠛⠃⠛ ⠚⠘⠏⠛⠙⠛⠻⠿⠿⠿⠛⠹⠟⠙⠃⣿⠰⡾⠛⠋⠿⠣⣿⠻⡿⠻⠇⠰
                        ⢴⣤⣶⣶⣶⣶⣦⣶⣤⣤⣴⣤⢤⡄            ⣤⢠⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣦⣶⣤⣤⣴⣶⣶⣶⣶⣶⣶⣦⣤⣠⣄         ⣤⠠⡆⠠⣤⣤⢠⣶⣶⡶⣤⡤⢤       ⣠⡄⣀
                        ⠘⠋⠛⠛⠉⠋⠉⠿⠉⠿ ⠁              ⠉⠈⠁⠉⠉⠉⠉⠉⠉⠉⠋⠹⠿⠻⠏⠻⠿⠿⠻⠿⠿⠿⠟⠛⠛⠃           ⠈⠁⠘⠁⠉⠉⠛⠙⠃⠛ ⠋     ⠰⠆⠈ ⠴
                        ⢀⡶⣶⡐⢶ ⠆                           ⠠⠤⣦ ⣤⢲⣶⣶⣶⣶⣤⣤⢴⣦⢶⣶⣤⣶⣶                ⡴⢐⡆⢶⣰⣶
                        ⠈⠁⠋ ⠂  ⠛                            ⠋⠘⠛⠘⠋⠛⠛⠋⠙⠛⠛⠋⠚⠋⠛⠘⠃                 ⠈⠁⠈⠁          ⠚
                                                          ⢰⣷⣦⣴⣿⣾⣷⣶⣦        ⢰⡆⢲⡆
                               ⠛                          ⠉⠁⠉⠉⠋⠙⠋⠁         ⠈⠁⠈⠁                             ⠛
                               ⣀ ⣀                   ⢀ ⣸⠹⣿⣿⡟⣿⢿⣿⢿⡽⠿⠞⢿⠃        ⣹⡟⣿⠇⣀                        ⢀⡀⣀
                               ⣉ ⠉                   ⢀ ⡀⢀⣀⢈⡁⣉ ⠉⠈⠁  ⢀ ⡀       ⠉ ⠈ ⡉ ⡀                      ⠈⠁⢉
                             ⢘⡃⣿ ⣛⢀⡀                  ⠈⣧⢸⡿⢿⣷⣹⡇     ⠘⠈⠃        ⠠⠶⢶⡿⢹⡟⣀                   ⢀⡀⢘⡇⣿ ⣟⢀⡀⢀⡀
                             ⣀⣀⣀⣀⣁⢈⠁               ⢠⣄⣀⣀⣉⣈⣀⣈⣁⠉        ⡀ ⡀          ⢀⡀⣈⣀⣄⢀⡀⢀⡀             ⢀⣁⣀⣁⣈⣀⣁ ⡁⠈
                           ⢠⡤⢼⣿⣿⣯⡿⠸⡇⣤⠄⢤      ⣤⢠⡄⢿⠶⠿⢾⡟⣿⡏⣿⢫⣿⠹⡏⣤         ⠐⠃⠠      ⣤⠐⠶⠸⡇⢿⠻⠿⠸⡇⠙⠃⣤⠠⡤       ⢤⡄⣤⠈⠛⢽⠏⢿⠛⠿⠠⡇⢤⠄
                             ⣠⣄⣤⣤⣤⣤⣤⣤⣄   ⣠⡄⣤⣀⣤⢀⣄⣠⣤⣄⢀⣄⡀     ⡀          ⢀ ⣠⡄⢀         ⣤⣀⣤        ⡀⢀ ⡀ ⡀⣠⣤⣤⣤⣤⣤⣤⣀⣤⣤
                      ⠐ ⠒ ⣶⠰⠦⠉⠹⠟⢹⡿⠿⠋⠾⠛⠿⠛⠿⠉⠉⠉⠉⠉⠙⠛⢿⠟⢿⠸⡟⠻⠟⠛⠿⠟⠘⠇          ⠉⠁⠈ ⠈ ⠂  ⠶ ⠆⠘⠏⠉⠉⠉⠰⠆⠰⠆⠴⠈⠇⠘⠇⠿ ⡿⠘⠇⠉⠁⠿⠹⡿⠿⠋⠿⠉⠉⠰⠆⠰⠂
                     ⣶⣴⣶⢶⡄⣀  ⢀⡀   ⢀⡀       ⢤⢠⣦⣤⡴⠲⡦⢤    ⣀                ⢀ ⣤⢀⡄⣠⡄⣠ ⡄              ⠴⠄⣶⣦⡴⢦  ⢠⣦⣶⣦⣴⣄⣀  ⣀⡀
                     ⠉⠛⠛⠿⠆⠿⠰⠇⠰⠟⠛⠛⠛⠰⠆⠶⠆       ⠛⠈⠁⠘⠃⠈  ⠰⠆⠴ ⠦⠰⠆            ⠈ ⠉⠈⠁  ⠉⠰⠷⠰⠇⠶ ⠶           ⠁    ⠾ ⠁⠸⠏  ⠶⠰⠆⠰ ⠶
                    ⠰⢶⣶⣿⣷⣶⣶⢶⣶⣶⣄⣀⡠⠦⠰⠦⠶⠄⠄       ⣀⡀          ⠠⡄⣤              ⠰⠦⠶⢤⣶⣤⡤⠠⡄⢤       ⠠⠶⣺⡷⣶⣶⣶⢶⡶⠶⠄        ⠠⣤⡤
                      ⠉⠉⠙⠛⠛⠚⠛⠉⠈⠛                   ⠘⠃⠘⠃⠛⠐⠓⠘⠃⠛                   ⠙⠛⠘⠃⠛ ⠛⠘⠃     ⠈ ⠘⠉⠁ ⠁        ⠐⠛  ⠛⠂
                      ⠤⠤⢤⠄                             ⢀⠰⣶⠴⠦⣶⡆⣶⢠⡄  ⢀   ⡀  ⣀ ⡀⣶⡆⣶⣦⣤⢰⡦⢶⠆⣠         ⣒⢂⣶⢐⡒⠂
                                                     ⠘⠁⠉    ⠉ ⠉⠈⠁⠈⠁⠉⠈⠉⠈⠃  ⠙⠈⠃⠈⠃⠉ ⠉⠈⠁  ⠉         ⠉⠈⠛⠈⠃
                           ⢀⡀⢀⡀⣀                     ⢀⡀⣿⢈⣿⠸⣇⣴⣴⣦⣴⣦⣹⡇⣶    ⣶⠆⣿⣶⣦⣶⡄⣿⢈⣿⣿⡿⢿⡿⠿                        ⢀⡀
                           ⠈⠁⠈⠁⠉                ⣀ ⢀⢀⡀⢈⡁⣈⣈⣁⣈⣁⣀    ⠉ ⢉   ⡀⣉ ⢉  ⢀⣀⠉⢈⣁⣈⡀⣉⠁⣀                        ⠈⠁
                           ⢀⡀⢀⡀                 ⠉⠃⠉⠘⠋⢻⣿⣿⣿⣿⣻⡟⣿⠰⠶⠶⠶⣶⡶⠿⢻⣄⢀⡟⠿⠿⠿⠾⠷⣿⡟⣿⢻⡿⣿⣿⣿⣟⣿⢀⡄
                             ⠈⠁                ⡀⣠⡄⣠⢀⡀⣀⡅⣈⣩⣭⢀⡀⢀    ⠠⡀ ⠈⠉ ⡅⢠⣤⣤⣠⡄⣈⡀⣀ ⣄⣈⡀⣈⡉⠁ ⡁
                                               ⠁⠿⠁⠼⢸⡿⠻⡿⢿⢿⠟⠛⠛⣿⠤⣤   ⠁⠚⠛⠓ ⠁⠛⠹⣿⢩⡗⢤⡜⠋⠻⠟⢽⠇⢼⠟⠻⠺⡇
                                              ⣤⣄⢠⡄⣤⢀⡄      ⠄   ⢠⡄   ⢀⡀⣤⣴⣦⣤⣤⣴⣆⢰⡄ ⢀⡀
                                              ⠛⠛⠚⠳⣿⠸⡇⠺⠏⠈⠁ ⠰⠆     ⠻⠏⢿⠈⠁⠈⠋⠛⠙⢿⠻⡿⠒⠁⠶⠈⠻⠠⠆  ⠶  ⠰⠆
                                              ⢰⡆⣴⡆⠤                   ⢰⣦⣴⡶⣶⢶⡦⣄ ⣀
                                              ⠈⠁   ⠸⠇⠺⠇⠾           ⠿    ⠉ ⠛⠘⠋⠈⠁⠿ ⠶  ⠶ ⠶
                                                                        ⣀⡀

                                                                     ⡀⢀⡀
                                                                    ⠈⠉⠈⠁
                                                               ⢀⡀⢀⡀  ⡶⢰⡆
                                                               ⠈⠁⠈⠁ ⠈⠉⠈⠁


                                                   ⠠⡤   ⠠⡤⠠⡄⢤

                                                   ⠰⠆⠰⠆⠶⠐⠶⠰⠆⠶
                                                                     ⣄
                                                       ⠺⠐⠇⠐⠆⠲ ⠶⠐⠇⠰⠂⠲ ⠇⠐⠇⠲ ⠲⠐⠆⠸⠂⠾ ⠖

                                                        ⠘⠛⠘⠃⠛ ⠛⠘⠃⠘⠃⠛⠐⠓⠘⠃⠛ ⠛⠘⠃⠘⠃⠛⠐⠛⠐⠃