         self.init(frame: CGRect.zero)
     }
     
-    override public var bounds: CGRect {
+    override open var bounds: CGRect {
         didSet {
             setLockViewNeedsUpdate(needRelayoutDots: true)
         }

        setLockViewNeedsUpdate(needRelayoutDots: false)
    }
    
    public override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        guard !highlightedDots.isEmpty else {
            return
        }

        setLockViewNeedsUpdate(needRelayoutDots: false)
    }
    
    open override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
        guard let point = touches.first?.location(in: self) else {
            return
        }
