     }
     
     public func glyph(with unicode: UnicodeScalar) -> Int {
-        let glyph = base.glyph(with: unicode)
-        return 0..<numberOfGlyphs ~= glyph ? glyph : 0
+        return base.glyph(with: unicode)
     }
     
     public func glyphs<S: Sequence>(with unicodes: S, layout: LayoutSetting = LayoutSetting()) -> [Int] where S.Element == UnicodeScalar {

                
                if let _last = last {
                    if let glyph = base.glyph(with: _last, unicode) {
                        result.append(0..<numberOfGlyphs ~= glyph ? glyph : 0)
                        last = nil
                    } else {
                        result.append(self.glyph(with: _last))
                        last = unicode
                    }
                } else {

            }
            
            if let last = last {
                result.append(base.glyph(with: last))
            }
            
        } else {
            result = unicodes.map { base.glyph(with: $0) }
        }
        
        return base.substitution(glyphs: result, layout: layout, features: features)
