         }
         return ret
     }
+    
     internal func _setTimeout(delay:NSTimeInterval, block:()->Void) -> NSTimer {
         return NSTimer.scheduledTimerWithTimeInterval(delay, target: NSBlockOperation(block: block), selector: #selector(NSOperation.main), userInfo: nil, repeats: false)
     }

        nc.addObserver(self, selector: #selector(restartConversation), name: "RestartConversation", object: nil)
        nc.addObserver(self, selector: #selector(requestDialogEnd), name: REQUEST_DIALOG_END, object: nil)
        nc.addObserver(self, selector: #selector(requestDialogAction), name: REQUEST_DIALOG_ACTION, object: nil)
        
    }

    override func viewWillAppear(animated: Bool) {
        self.navigationController!.navigationBar.userInteractionEnabled = false;
        self.navigationController!.interactivePopGestureRecognizer!.enabled = false;
        self.navigationController!.navigationBar.tintColor = UIColor.lightGrayColor()        
    }
    override func viewDidAppear(animated: Bool) {
        NSNotificationCenter.defaultCenter().postNotificationName("RestartConversation", object: self)
    }
    override func viewWillDisappear(animated: Bool) {
        NSNotificationCenter.defaultCenter().postNotificationName("ResetConversation", object: self)
        self.navigationController!.navigationBar.userInteractionEnabled = true;
        self.navigationController!.interactivePopGestureRecognizer!.enabled = true;
        self.navigationController!.navigationBar.tintColor = self.tintColor;
    }
    private func validateSecurity(){
        AVCaptureDevice.requestAccessForMediaType(AVMediaTypeAudio, completionHandler: {(granted: Bool) in
        })
        self.conv_context_local.verify_security()
    }
    internal func requestDialogEnd() {
        self.navigationController!.navigationBar.userInteractionEnabled = true
        self.navigationController!.interactivePopGestureRecognizer!.enabled = true
        self.navigationController!.navigationBar.tintColor = self.tintColor
        self.navigationController?.popToRootViewControllerAnimated(true)
    }
    internal func requestDialogAction() {
        self.tapped()

                if let dest_info = resobj!.context["dest_info"] {
                    if let nodes:String = dest_info["nodes"] as? String {
                        postEndDialog = { [weak self] in
                            if let weakself = self {
                                weakself.cancellable = true
                                weakself.updateView()
                                
                                if weakself.root != nil {
                                    weakself.navigationController?.popToViewController(weakself.root!, animated: true)
