---
 - "a-z": [T: "."]

 - "A-Z":
    - test: 
        if: "$CapitalLetters_Beep"
        then:
        - audio:
            value: "beep.mp4"
            replace: []
    - pitch:
        value: "$CapitalLetters_Pitch"
        # note: processing of ranges converts '.' into the character, so it needs to be in quotes below
        replace: [spell: "translate('.', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"]
    - test: 
        if: "$CapitalLetters_UseWord"
        then_test:
          if: "$SpeechOverrides_CapitalLetters = ''"
          then_test:
            if: "$Impairment = 'Blindness' and $Verbosity='Verbose'"
            then: [t: "hoa"]
          else: [x: "$SpeechOverrides_CapitalLetters"] 

 - "0-9": [T: "."]

 - " ": [t: " "]                                 # 0x20

 - "!": [T: giai thừa]                           # 0x21
 - "\"": [T: nháy kép]                     # 0x22
 - "#": [T: báo số]                              # 0x23
 - "$": [T: đô-la]                             # 0x24
 - "%": [T: phần trăm]                             # 0x25
 - "&": [T: và]                           # 0x26
 - "'": [T: nháy đơn]                          # 0x27
 - "(":                                          # 0x28
    - test:
        if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
        then: [test: {if: "$Verbosity='Terse'", then: [T: mở ngoặc], else: [T: mở ngoặc đơn]}]
        else: [T: mở ngoặc đơn]                            
 - ")":                                          # 0x29
    - test:
        if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
        then: [test: {if: "$Verbosity='Terse'", then: [T: đóng ngoặc], else: [T: đóng ngoặc đơn]}]
        else: [T: đóng ngoặc đơn]                            

 - "*": [T: nhân]                               # 0x2a
 - "+": [T: cộng]                                # 0x2b
 - ",":                                          # 0x2c
    # the following deals with the interaction of "," with "…" which sometimes wants the ',' to be silent
    # that this test is here and not with "…" is not ideal, but seems simplest
     test:
        if:
            - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or "
               # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn'
               # speak "comma" when not adjacent to '…'
            - "( following-sibling::*[1][text()!= '…'] and preceding-sibling::*[1][text()!='…']  ) or "
               # except if expression starts with '…'
            - " ../*[1][.='…'] "
        then: [T: phẩy]
        # else silent

 - "-": [T: trừ]                               # 0x2d
 - ".":                                          # 0x2e
    - test:
        if: "parent::*[1][self::m:mn]"
        then: [T: "chấm"]
        else: [T: "chấm"]
 - "/": [T: chia]                          # 0x2f
 - ":": [T: hai chấm]                               # 0x3a
 - ";": [T: chấm phẩy]                           # 0x3b
 - "<":                                          # 0x3c
     - test: 
         if: "$Verbosity!='Terse'"
         then: [T: ""]
     - T: nhỏ hơn
 - "=": [T: bằng]                              # 0x3d
 - ">":                                          # 0x3e
     - test: 
         if: "$Verbosity!='Terse'"
         then: [T: ""]
     - T: lớn hơn
 - "?": [T: chấm hỏi]                       # 0x3f
 - "@": [T: a móc]                             # 0x40
 - "[":                                          # 0x5b
    - test:
        if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
        then: [T: mở ngoặc vuông]
        else: [T: ngoặc vuông trái]                            
 - "\\": [T: hiệu]                         # 0x5c
 - "]":                                          # 0x5d
    - test:
        if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
        then: [T: đóng ngoặc vuông]
        else: [T: ngoặc vuông phải]
 - "^": [T: mũ]                                # 0x5e
 - "_": [T: gạch dưới]                          # 0x5f
 - "`": [T: dấu huyền]                              # 0x60
 - "{":                                         # 0x7b
    - test:
        if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
        then: [T: mở ngoặc nhọn]
        else: [T: ngoặc nhọn trái]                            
 - "|":                                          # 0x7c
    # note: for ClearSpeak and SimpleSpeak, "|" in side of sets is handled at the mrow level, same for 'sets'
     - with:
        variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B)
        replace:
        - test:
            - if: "$SpeechStyle != 'ClearSpeak'"
              then_test:
                - if: "$DefaultToGiven"
                  then: [T: sao cho]  # given
                - else_if: "preceding-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))] and 
                            following-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))]"
                  then: [T: sao cho]    # divides
                  else: [T: gạch đứng]  # vertical line
            - else_if: "not(preceding-sibling::*) or not(following-sibling::*)"
              then: [T: gạch đứng]
            - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'"
              then: [T: sao cho]  # such that
            - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven"
              then: [T: sao cho]   # given
            - else: [T: sao cho]   # divides                

 - "}":                                          # 0x7d
    - test:
        if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
        then: [T: đóng ngoặc nhọn]
        else: [T: ngoặc nhọn phải]                            

 - "~": [T: dấu ngã]                               # 0x7e
 - " ": [T: ""]                                  # 0xa0
 - "¢": [T: cents]                               # 0xa2
 - "£": [T: bảng Anh]                              # 0xa3
 - "¬": [T: không]                                 # 0xac
 - "°": [T: "độ"]                           # 0xb0
 - "±": [T: cộng trừ]                       # 0xb1
 - "´": [T: "dấu nháy đơn"]                            # 0xb4
 - "·":
    - test:
        if: "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_MultSymbolDot = 'Auto'"
        then: [T: nhân]
        else: [T: chấm]
 - "×":                                          # 0xd7
    - test:
        if: "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_MultSymbolX = 'Auto'"
        then: [T: nhân]
        else_test:
            if: $ClearSpeak_MultSymbolX = 'By'
            then: [T: cho]
            else: [T: nhân]
 - "÷": [T: chia]                          # 0xf7
 - "̀": [T: dấu huyền]          # 0x300
 - "́": [T: dấu sắc embellishment]          # 0x301
 - "̂": [T: dấu mũ embellishment]     # 0x302
 - "̃": [T: dấu ngã]                 # 0x303
 - "̄": [T: dấu nhấn]                # 0x304
 - "̅": [T: thanh ngang]               # 0x305
 - "̆": [T: mũ ngược]                 # 0x306
 - "̇": [T: dot above embellishment]             # 0x307

    # Note: ClearSpeak has pref TriangleSymbol for "Δ", but that is wrong
 - "Α-Ω": 
    - test: 
        if: "$CapitalLetters_Beep"
        then:
        - audio:
            value: "beep.mp4"
            replace: []
    - pitch:
        value: "$CapitalLetters_Pitch"
        # note: processing of ranges converts '.' into the character, so it needs to be in quotes below
        replace: [spell: "translate('.', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ', 'αβγδεζηθικλμνξοπρςστυφχψω')"]
    - test: 
        if: "$CapitalLetters_UseWord"
        then_test:
          if: "$SpeechOverrides_CapitalLetters = ''"
          then_test:
            if: "$Impairment = 'Blindness'"
            then: [t: "hoa"]
          else: [x: "$SpeechOverrides_CapitalLetters"] 

 - "α": [T: an pha]                               # 0x3b1
 - "β": [T: bê ta]                                # 0x3b2
 - "γ": [T: gam ma]                               # 0x3b3
 - "δ": [T: đen ta]                               # 0x3b4
 - "ε": [T: ép si lon]                             # 0x3b5
 - "ζ": [T: dê ta]                                # 0x3b6
 - "η": [T: ê ta]                                 # 0x3b7
 - "θ": [T: tê ta]                               # 0x3b8
 - "ι": [T: i ô ta]                                # 0x3b9
 - "κ": [T: k pa]                               # 0x3ba
 - "λ": [T: lam đa]                               # 0x3bb
 - "μ": [T: mu]                                  # 0x3bc
 - "ν": [T: nu]                                  # 0x3bd
 - "ξ": [T: xi]                                 # 0x3be
 - "ο": [T: o mi rong]                             # 0x3bf
 - "π": [T: pi]                                  # 0x3c0
 - "ρ": [T: rô]                                 # 0x3c1
 - "ς": [T: xích ma cuối]                         # 0x3c2
 - "σ": [T: xích ma]                               # 0x3c3
 - "τ": [T: tô]                                 # 0x3c4
 - "υ": [T: ấp si lon]                             # 0x3c5
 - "φ": [T: phi]                                 # 0x3c6
 - "χ": [T: cai]                                 # 0x3c7
 - "ψ": [T: bờ si]                                 # 0x3c8
 - "ω": [T: ô mê ga]                               # 0x3c9
 - "ϕ": [T: phi]                                 # 0x3d5
 - "ϖ": [T: pi]                                  # 0x3d6
 - "ϵ": [T: ép si lon]                             # 0x3f5
 - "϶": [T: ép si lon đảo ngược]                    # 0x3f6
 - "ℂ":                                          # 0x2102
     - T: C 
     - test: 
         if: "($Blind or $Verbosity!='Terse')"
         then: [T: "hoa"]
     - T: gạch đôi
 - "℃": [T: độ C]                     # 0x2103
 - "ℋ":                                          # 0x210b
     - T: h
     - test: 
         if: "($Blind or $Verbosity!='Terse')"
         then: [T: "hoa"]
     - T: viết tay
     
 - "ℕ":                                          # 0x2115
     - T: n
     - test: 
         if: "($Blind or $Verbosity!='Terse')"
         then: [T: "hoa"]
     - T: gạch đôi
 - "ℚ":                                          # 0x211a
     - T: q
     - test: 
         if: "($Blind or $Verbosity!='Terse')"
         then: [T: "hoa"]
     - T: gạch đôi
 - "ℛ":                                          # 0x211b
     - T: r
     - test: 
         if: "($Blind or $Verbosity!='Terse')"
         then: [T: "hoa"]
     - T: viết tay
 - "ℜ":                                          # 0x211c
     - T: r
     - test: 
         if: "($Blind or $Verbosity!='Terse')"
         then: [T: "hoa"]
     - T: kiểu chữ tiếng Đức
 - "ℝ":                                          # 0x211d
     - T: r
     - test: 
         if: "($Blind or $Verbosity!='Terse')"
         then: [T: "hoa"]
     - T: gạch đôi
 - "ℤ":                                          # 0x2124
     - T: z
     - test: 
         if: "($Blind or $Verbosity!='Terse')"
         then: [T: "hoa"]
     - T: gạch đôi
 - "ⅉ": [T: J nghiêng gạch đôi]              # 0x2149
 - "∇":                                             #  0x2207
     - test: 
         if: "$Verbosity!='Terse'"
         then: [t: "các"]                           #   (en: 'the')
     - t: "độ dốc của"                              #   (en: 'gradient of')

 # --- restored complex short definitions (prefer over unicode-full) ---
 - "А":                                          # 0x410
     - T: a
     - test: 
         if: "($Blind or $Verbosity!='Terse')"
         then: [T: "hoa"]
 - "…":                                          # 0x2026
    test:
        if:
            - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or"
               # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn'
               # speak '…' as 'and so on...' unless expr starts with '…'
            - "../*[1][.='…']"
        then: [T: chấm chấm chấm]
        else_test:  # must have $ClearSpeak_Ellipses = 'AndSoOn'
            if: "count(following-sibling::*) = 0"
            then: [T: và như thế]
            else: [T: và như vậy cho đến]
 - "⁡":                                          # 0x2061
    - test:
        # skip saying "of" when Terse and a trig function, when it is a shape (does this happen?), or we are in :literal mode
        if: "not(
              ( $Verbosity='Terse' or ($SpeechStyle = 'ClearSpeak' and IsNode(following-sibling::*[1],'simple')) and
                preceding-sibling::*[1][IfThenElse($SpeechStyle='ClearSpeak',
                                                   IsInDefinition(., 'ClearSpeakTrigFunctionNames'),
                                                   IsInDefinition(., 'TrigFunctionNames') )]
              ) or
              preceding-sibling::*[1][IsInDefinition(., 'GeometryShapes')] or
              (@data-changed='added' and ancestor-or-self::*[contains(@data-intent-property, ':literal:')])
            )"
        then: [T: "của"]
 - "→":                                          # 0x2192
     - test:
        if: "ancestor::*[2][self::m:limit]"
        then: [T: "tiến đến"]
        else: [T: "mũi tên phải"]
 - "∂":                                          # 0x2202
      - test: 
         if: "$Verbosity='Terse'"
         then: [T: phần]
         else: [T: đạo hàm riêng]
 - "∆":                                          # 0x2206
   #  - test: 
    #     if: "$Verbosity!='Terse'"
     #    then: [T: "the"]
     - T: đen ta
 - "∈":                                          # 0x2208
     - test:
        if: "$SpeechStyle != 'ClearSpeak'"
        then: [T: là phần tử của]
        # Several options for speaking elements in ClearSpeak -- they split between being inside a set or not and then the option
        else_test:
            if: "../../self::m:set or ../../../self::m:set" # inside a set
            then_test:
              - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In'
                then: [T: thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'Member'
                then: [T: phần tử của]
              - else_if: $ClearSpeak_SetMemberSymbol = 'Element'
                then: [T: phần tử của]
              - else: [T: thuộc về]             # $ClearSpeak_SetMemberSymbol = 'Belongs'
            else_test:
              - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member'
                then: [T: thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'Element'
                then: [T: thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'In'
                then: [T: thuộc]
              - else: [T: thuộc]              # $ClearSpeak_SetMemberSymbol = 'Belongs'
 - "∉":                                          # 0x2209
    # rule is identical to 0x2208
     - test:
        if: "$SpeechStyle != 'ClearSpeak'"
        then: [T: không thuộc]
        # Several options for speaking elements in ClearSpeak -- they split between being inside a set or not and then the option
        else_test:
            if: "../../self::m:set or ../../../self::m:set" # inside a set
            then_test:
              - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In'
                then: [T: không thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'Member'
                then: [T: không thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'Element'
                then: [T: không thuộc]
              - else: [T: không thuộc về]             # $ClearSpeak_SetMemberSymbol = 'Belongs'
            else_test:
              - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member'
                then: [T: không thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'Element'
                then: [T: không thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'In'
                then: [T: không thuộc]
              - else: [T: không thuộc]              # $ClearSpeak_SetMemberSymbol = 'Belongs'
 - "∊":                                          # 0x220a
     - test:
        if: "$SpeechStyle != 'ClearSpeak'"
        then: [T: thuộc]
        # Several options for speaking elements in ClearSpeak -- they split between being inside a set or not and then the option
        else_test:
            if: "../../self::m:set or ../../../self::m:set" # inside a set
            then_test:
              - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In'
                then: [T: thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'Member'
                then: [T: thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'Element'
                then: [T: thuộc]
              - else: [T: thuộc]             # $ClearSpeak_SetMemberSymbol = 'Belongs'
            else_test:
              - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member'
                then: [T: thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'Element'
                then: [T: thuộc]
              - else_if: $ClearSpeak_SetMemberSymbol = 'In'
                then: [T: thuộc]
              - else: [T: thuộc]              # $ClearSpeak_SetMemberSymbol = 'Belongs'
 - "√":                                          # 0x221a
   #  - test: 
    #     if: "$Verbosity!='Terse'"
     #    then: [T: ""]
     - T: căn bậc 2 của
 - "∝":                                          # 0x221d
    # - test: 
     #    if: "$Verbosity!='Terse'"
      #   then: [T: is]
     - T: tỉ lệ với
 - "∥":                                           # 0x2225
     - test: 
         if: "$Verbosity!='Terse'"
         then: [T: ""]
     - T: song song với
 - "∦":                                           # 0x2226
     - test: 
         if: "$Verbosity!='Terse'"
         then: [T: ""]
     - T: không song song với
 - "∶":                                          # 0x2236
     #- test: 
      #   if: "$Verbosity!='Terse'"
       #  then: [T: is]
     - T: tỉ suất
 - "∾":                                          # 0x223e
    # - test: 
     #    if: "$Verbosity!='Terse'"
      #   then: [T: is]
     - T: đồng dạng
 - "≠":                                          # 0x2260
     - test: 
         if: "$Verbosity!='Terse'"
         then: [T: ""]
     - T: khác
 - "≡":                                          # 0x2261
     - test: 
         if: "$Verbosity!='Terse'"
         then: [T: trùng với]
 - "≤": [T: nhỏ hơn hoặc bằng]                                         # 0x2264
     #- test: 
         #if: "$Verbosity!='Terse'"
         #then: [T: nhỏ hơn hoặc bằng]
 - "≥": [T: lớn hơn hoặc bằng]                                         # 0x2265
     #- test: 
         #if: "$Verbosity!='Terse'"
         #then: [T: lớn hơn hoặc bằng]
 - "⊂": [T: chứa trong]                                         # 0x2282
     #- test: 
         #if: "$Verbosity!='Terse'"
         #then: [T: chứa trong]
 - "⊃": [T: chứa]                                         # 0x2283
     #- test: 
         #if: "$Verbosity!='Terse'"
         #then: [T: chứa]
 - "⊄":                                          # 0x2284
   #  - test: 
    #     if: "$Verbosity!='Terse'"
     #    then: [T: is]
     - T: không chứa trong
 - "⊅":                                          # 0x2285
   #  - test: 
    #     if: "$Verbosity!='Terse'"
     #    then: [T: is]
     - T: không chứa
 - "⊆": [T: chứa trong hoặc bằng]                                         # 0x2286
     #- test: 
         #if: "$Verbosity!='Terse'"
         #then: [T: chứa trong]
 - "⊇": [T: chứa hoặc bằng]                                         # 0x2287
     #- test: 
         #if: "$Verbosity!='Terse'"
         #then: [T: chứa]

 # --- restored short definitions that differ from unicode-full ---
 - "–": [T: gạch nối]                             # 0x2013
 - "—": [T: gạch ngang]                             # 0x2014
 - "―": [T: gạch ngang dài]                      # 0x2015
 - "‖": [T: đường thẳng đứng kép]                # 0x2016
 - "⁢": [T: ""]                                   # 0x2062
 - "⁣": [T: ""]                                   # 0x2063
 - "⁤": [T: "và"]                                # 0x2064
 - "′": [T: phẩy]                               # 0x2032
 - "″": [T: đạo hàm cấp hai]                        # 0x2033
 - "‴": [T: đạo hàm cấp ba]                        # 0x2034
 - "‵": [T: nguyên hàm]                      # 0x2035
 - "‶": [T: nguyên hàm cấp hai]               # 0x2036
 - "‷": [T: nguyên hàm cấp ba]               # 0x2037
 - "℉": [T: độ F]                  # 0x2109
 - "ℎ": [T: hằng số plankc]                     # 0x210e
 - "ℓ": [T: l viết tay]                            # 0x2113
 - "Ω": [T: ohms]                                # 0x2126
 - "K": [T: kelvin]                              # 0x212a
 - "Å": [T: angstroms]                           # 0x212b
 - "ⅆ": [T: D nghiêng gạch đôi]              # 0x2146
 - "ⅇ": [T: E nghiêng gạch đôi]              # 0x2147
 - "ⅈ": [T: I nghiêng gạch đôi]              # 0x2148
 - "←": [T: mũi tên trái]                     # 0x2190
 - "↑": [T: mũi tên lên]                       # 0x2191
 - "↓": [T: mũi tên xuống]                     # 0x2193
 - "⇒": [T: suy ra]             # 0x21d2
 - "∀": [T: với mọi]                             # 0x2200
 - "∃": [T: tồn tại ít nhất]                        # 0x2203
 - "∄": [T: không tồn tại]                # 0x2204
 - "∅": [T: tập hợp rỗng]                           # 0x2205
 - "∏": [T: pi]                             # 0x220f
 - "∐": [T: pi ngược]                           # 0x2210
 - "∑": [T: tổng]                                 # 0x2211
 - "−": [T: trừ]                               # 0x2212
 - "∓": [T: trừ cộng]                       # 0x2213
 - "∗": [T: nhân]                               # 0x2217
 - "∘": [T: hàm hợp]                       # 0x2218
 - "∞": [T: "vô cực"]                          # 0x221e
 - "∟": [T: góc vuông]                         # 0x221f
 - "∠": [T: góc]                               # 0x2220
 - "∡": [T: góc được đo]                      # 0x2221
 - "∣": [T: chia hết]                              # 0x2223
 - "∤": [T: không chia hết]                      # 0x2224
 - "∧": [T: và]                                 # 0x2227
 - "∨": [T: hoặc]                                  # 0x2228
 - "∩": [T: giao]                        # 0x2229
 - "∪": [T: hợp]                               # 0x222a
 - "∫": [T: tích phân]                            # 0x222b
 - "∬": [T: tích phân 2 lớp]                     # 0x222c
 - "∭": [T: tích phân 3 lớp]                     # 0x222d
 - "∮": [T: tích phân vòng]                    # 0x222e
 - "∷": [T: tỉ lệ]                                  # 0x2237
 - "∼": [T: tương tự với]                         # 0x223c
 - "∽": [T: dấu ngã ngược]                      # 0x223d
 - "∿": [T: hình sin]                           # 0x223f
 - "≦": [T: nhỏ hơn hoặc bằng]             # 0x2266
 - "≧": [T: lớn hơn hoặc bằng]          # 0x2267
 - "≺": [T: precedes]                            # 0x227a
 - "≻": [T: succeeds]                            # 0x227b
