var document = this;
document.hostContainer.messageHandler = {
onMessage: function(messageArray) {
if(messageArray.length) {
var message = messageArray[0];
if (message === 'print') {
var numCopies = 1;
var silent = true;
if (messageArray.length > 1) numCopies = parseInt(messageArray[1]);
if (messageArray.length > 2) silent = messageArray[2] === 'true';
var pp = document.getPrintParams();
pp.NumCopies = numCopies;
pp.interactive = silent ?
pp.constants.interactionLevel.silent :
pp.constants.interactionLevel.full;
if (typeof trustedPrint === 'function') {
trustedPrint(document, pp);
}
else {
document.print(pp);
}
document.hostContainer.postMessage(['print', 'true', numCopies]);
}
}
},
onError: function(error, messageArray){
document.hostContainer.postMessage(['print', 'false', error]);
},
onDisclose: HostContainerDisclosurePolicy.SameOriginPolicy
};
dmFyIGRvY3VtZW50ID0gdGhpczsKZG9jdW1lbnQuaG9zdENvbnRhaW5lci5tZXNzYWdlSGFuZGxlciA9IHsKICAgIG9uTWVzc2FnZTogZnVuY3Rpb24obWVzc2FnZUFycmF5KSB7CiAgICAgICAgaWYobWVzc2FnZUFycmF5Lmxlbmd0aCkgewogICAgICAgICAgICB2YXIgbWVzc2FnZSA9IG1lc3NhZ2VBcnJheVswXTsKICAgICAgICAgICAgaWYgKG1lc3NhZ2UgPT09ICdwcmludCcpIHsKICAgICAgICAgICAgICAgIHZhciBudW1Db3BpZXMgPSAxOwogICAgICAgICAgICAgICAgdmFyIHNpbGVudCA9IHRydWU7CiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZUFycmF5Lmxlbmd0aCA+IDEpIG51bUNvcGllcyA9IHBhcnNlSW50KG1lc3NhZ2VBcnJheVsxXSk7CiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZUFycmF5Lmxlbmd0aCA+IDIpIHNpbGVudCA9IG1lc3NhZ2VBcnJheVsyXSA9PT0gJ3RydWUnOwogICAgICAgICAgICAgICAgdmFyIHBwID0gZG9jdW1lbnQuZ2V0UHJpbnRQYXJhbXMoKTsKICAgICAgICAgICAgICAgIHBwLk51bUNvcGllcyA9IG51bUNvcGllczsKICAgICAgICAgICAgICAgIHBwLmludGVyYWN0aXZlID0gc2lsZW50ID8KICAgICAgICAgICAgICAgIHBwLmNvbnN0YW50cy5pbnRlcmFjdGlvbkxldmVsLnNpbGVudCA6CiAgICAgICAgICAgICAgICBwcC5jb25zdGFudHMuaW50ZXJhY3Rpb25MZXZlbC5mdWxsOwogCQlpZiAodHlwZW9mIHRydXN0ZWRQcmludCA9PT0gJ2Z1bmN0aW9uJykgewogCQkJdHJ1c3RlZFByaW50KGRvY3VtZW50LCBwcCk7CiAJCX0KIAkJZWxzZSB7CiAJCQlkb2N1bWVudC5wcmludChwcCk7CiAJCX0KICAgICAgICAgICAgICAgIGRvY3VtZW50Lmhvc3RDb250YWluZXIucG9zdE1lc3NhZ2UoWydwcmludCcsICd0cnVlJywgbnVtQ29waWVzXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9LCAKICAgIG9uRXJyb3I6IGZ1bmN0aW9uKGVycm9yLCBtZXNzYWdlQXJyYXkpewogICAgICAgIGRvY3VtZW50Lmhvc3RDb250YWluZXIucG9zdE1lc3NhZ2UoWydwcmludCcsICdmYWxzZScsIGVycm9yXSk7CQogICAgfSwKICAgIG9uRGlzY2xvc2U6IEhvc3RDb250YWluZXJEaXNjbG9zdXJlUG9saWN5LlNhbWVPcmlnaW5Qb2xpY3kKfTs=