// Replace baa glyphs with dot below following a raa or waw by an alternate ones
// with low dots.
feature ss01 {
  lookupflag IgnoreMarks;
  sub @RaaWaw @aBaaDotBelow' by @aBaaLowDotBelow;
} ss01;

//
lookup MemAlfFina {
  sub @aAlf.fina by @aAlf.fina_MemAlfFina;
  sub @aMem.medi by @aMem.medi_MemAlfFina;

  sub @aSad.medi by @aSad.medi_PreYaa;
  sub @aSen.medi by @aSen.medi_PreYaa;

  sub @aBaa.init_BaaSenInit by @aBaa.init_BaaSenAltInit;
  sub @aSen.medi_BaaSenInit by @aSen.medi_BaaSenAltInit;
} MemAlfFina;

lookup MemAlfFinaPostTooth {
  sub @aMem.medi by @aMem.medi_AlfPostTooth;
} MemAlfFinaPostTooth;

lookup BaaMemAlfFina {
  sub @aBaa.medi by @aBaa.medi_BaaMemAlfFina;
  sub @aMem.medi by @aMem.medi_BaaMemAlfFina;
} BaaMemAlfFina;

@NoMemAlfFina = [@aMem.medi @aMem.medi_LamBaaMemInit @aMem.medi_LamMemInit
                 @aMem.medi_LamHaaMemInit @aMem.medi_BaaMemInit
                 @aMem.medi_LamMemMedi @aMem.medi_SenBaaMemInit
                 @aMem.medi_BaaBaaMemInit @aMem.medi_LamMemInitTatweel
                 @aMem.medi_KafMemMedi @aMem.medi_SenMemInit
                 @aHeh.medi_BaaHehMedi @aHeh.medi_PostTooth];

feature ss02 {
  lookupflag IgnoreMarks;
  ignore sub @NoMemAlfFina @aMem.medi' @aAlf.fina';

  sub @aBaa.medi' lookup BaaMemAlfFina
      @aMem.medi' lookup BaaMemAlfFina
      @aAlf.fina' lookup MemAlfFina;

  sub [@aSad.medi @aSen.medi]' lookup MemAlfFina
      @aMem.medi' lookup MemAlfFinaPostTooth
      @aAlf.fina' lookup MemAlfFina;

  sub @aBaa.init_BaaSenInit' lookup MemAlfFina
      @aSen.medi_BaaSenInit' lookup MemAlfFina
      @aMem.medi'            lookup MemAlfFinaPostTooth
      @aAlf.fina'            lookup MemAlfFina;

  sub @aMem.medi' lookup MemAlfFina
      @aAlf.fina' lookup MemAlfFina;
} ss02;

#ifndef QURAN
lookup localsym {
  sub at by at.ara;
} localsym;

feature ss03 {
  script arab;
  language ARA;
  lookup localsym;

  script arab;
  language dflt;
  lookup localsym;
} ss03;

// alternate Gaf form
feature ss04 {
  sub @aGaf.isol by @aGaf.alt;
  sub @aGaf.fina by @aGaf.alt.fina;
} ss04;

lookup dummy {
  sub uni0640.1 by uni0640;
} dummy;

feature ss04 {
  sub @aLam.init' lookup LamLamInit
      [uni0640.1]' lookup dummy
      @aGaf.alt.fina 'lookup LamLamInit;

  sub @aLam.medi' lookup LamLamMedi2
      [uni0640.1]' lookup dummy
      @aGaf.alt.fina' lookup LamLamMedi;

  sub [@aKaf.init @aKaf.medi]' lookup KafLam
      @aGaf.alt.fina' lookup KafLam;
} ss04;
#endif

lookup SSShaddaKasra {
  sub uni064D by uni064D.small;
  sub uni0650 by uni0650.small;
} SSShaddaKasra;

feature ss05 {
  sub uni0651 [uni064D uni0650]' lookup SSShaddaKasra;
} ss05;
