                 Log.Error.log("error = \(error)")
                 success = false
             }
-            
+
             finished?(success)
         }
         #endif
     }
-    
+
     override func cancel() {
         if let task = task {
             task.cancel()
         }
         super.cancel()
     }
-    
+
     override func main() {
         if let task = task { task.resume() }
     }
-    
+
 }
 
 #if swift(>=3.0)
 class AsynchronousOperation: Operation {
-    
+
     override public var isAsynchronous: Bool { return true }
-    
+
     private let stateLock = NSLock()
-    
+
     private var _executing: Bool = false
     override private(set) public var isExecuting: Bool {
         get {

            didChangeValueForKey("isFinished")
        }
    }
    
    /// Complete the operation
    ///
    /// This will result in the appropriate KVN of isFinished and isExecuting
    
    public func completeOperation() {
        if executing {
            executing = false
        }
        
        if !finished {
            finished = true
        }
    }
    
    override public func start() {
        if cancelled {
            finished = true
            return
        }
        
        executing = true
        
        main()
    }
    
    override public func main() {
        fatalError("subclasses must override `main`")
    }

            didChangeValue(forKey: "isExecuting")
        }
    }

    private var _finished: Bool = false
    override private(set) public var isFinished: Bool {
        get {
