{"componentChunkName":"component---src-templates-blog-list-js","path":"/blog","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"id":"8f5d64c5-d97b-53f4-bfd2-c28d6ade86df","excerpt":"Digital or data transformation is a significant undertaking for any organisation. To go from an almost reluctant reliance on data (where managing and understanding data across the enterprise is viewed as necessary evil) to treating data as a primary…","frontmatter":{"date":"May 29, 2018","slug":"/blog/starting-on-a-transformational-journey","title":"Starting on a data transformation journey","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIFBAb/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/2gAMAwEAAhADEAAAAdrwHzapzwf/xAAZEAEAAwEBAAAAAAAAAAAAAAACAAEDEQT/2gAIAQEAAQUCO5leg3FqeiK4nff/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAXEAADAQAAAAAAAAAAAAAAAAAAATEg/9oACAEBAAY/AqMuP//EABcQAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQEAAT8hKTrsxlwnCSBP/9oADAMBAAIAAwAAABCM7//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAEDAQE/EIf/xAAXEQEAAwAAAAAAAAAAAAAAAAAAAREh/9oACAECAQE/EItr/8QAGxABAQEAAgMAAAAAAAAAAAAAAREAITFRcbH/2gAIAQEAAT8QK2PZhwLgFOzzlr8Oqlq4Qc6Ht4ve/9k=","aspectRatio":1.5,"src":"/static/b3c93af5bc3d6b11005f7316f2f849fc/6a01c/starting-journey.jpg","srcSet":"/static/b3c93af5bc3d6b11005f7316f2f849fc/fd70a/starting-journey.jpg 135w,\n/static/b3c93af5bc3d6b11005f7316f2f849fc/4aadd/starting-journey.jpg 270w,\n/static/b3c93af5bc3d6b11005f7316f2f849fc/6a01c/starting-journey.jpg 540w,\n/static/b3c93af5bc3d6b11005f7316f2f849fc/b0ea9/starting-journey.jpg 810w,\n/static/b3c93af5bc3d6b11005f7316f2f849fc/7be99/starting-journey.jpg 1080w,\n/static/b3c93af5bc3d6b11005f7316f2f849fc/9f3aa/starting-journey.jpg 5389w","sizes":"(max-width: 540px) 100vw, 540px","maxHeight":360,"maxWidth":540}}}}}},{"node":{"id":"bb9a0666-b7ba-58ea-a3bd-9931927a04b4","excerpt":"IdentityServer really is the swiss army knife of Identity & Access Management (IAM). Especially for developers. Here, I explain how it was used on a recent project.  Intro I have recently been working for a client on a cloud migration project, where…","frontmatter":{"date":"May 22, 2018","slug":"/blog/identityserver-the-iam-swiss-army-knife","title":"IdentityServer - The IAM Swiss Army Knife","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAgADBP/EABUBAQEAAAAAAAAAAAAAAAAAAAIE/9oADAMBAAIQAxAAAAHnSBoFtF//xAAaEAACAgMAAAAAAAAAAAAAAAAAARExAhIh/9oACAEBAAEFAogsdvAXDc//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQMBAT8BGxv/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAXEAEAAwAAAAAAAAAAAAAAAAAQABEx/9oACAEBAAY/AnZZ/8QAGxABAAEFAQAAAAAAAAAAAAAAAQARITFBYZH/2gAIAQEAAT8hoWLQRWYXJeSgbTk8hRp9n//aAAwDAQACAAMAAAAQBD//xAAXEQEBAQEAAAAAAAAAAAAAAAABACER/9oACAEDAQE/EEdIDOX/xAAXEQADAQAAAAAAAAAAAAAAAAAAAREh/9oACAECAQE/EHhUf//EABsQAQEAAwEBAQAAAAAAAAAAAAERACExQdHw/9oACAEBAAE/EGsaCy8uH9JPXn0wi79rbTNGpO7MaNGjJEcUQA8/DP/Z","aspectRatio":1.5,"src":"/static/8a06de7577998c9de4d9b6c7210036d2/6a01c/swiss-army-knifes.jpg","srcSet":"/static/8a06de7577998c9de4d9b6c7210036d2/fd70a/swiss-army-knifes.jpg 135w,\n/static/8a06de7577998c9de4d9b6c7210036d2/4aadd/swiss-army-knifes.jpg 270w,\n/static/8a06de7577998c9de4d9b6c7210036d2/6a01c/swiss-army-knifes.jpg 540w,\n/static/8a06de7577998c9de4d9b6c7210036d2/b0ea9/swiss-army-knifes.jpg 810w,\n/static/8a06de7577998c9de4d9b6c7210036d2/7be99/swiss-army-knifes.jpg 1080w,\n/static/8a06de7577998c9de4d9b6c7210036d2/a0b88/swiss-army-knifes.jpg 2914w","sizes":"(max-width: 540px) 100vw, 540px","maxHeight":360,"maxWidth":540}}}}}},{"node":{"id":"45d92117-900c-52ba-99ce-0c446cdf2e5e","excerpt":"Enterprise Architecture principles are a key component of the TOGAF framework for establishing an enterprise architecture capability. This post introduces a set of enterprise architecture principles I’ve collated from the public domain.  Others can…","frontmatter":{"date":"September 04, 2017","slug":"/blog/enteprise-architecture-principles-resource","title":"Enterprise Architecture Principles Resource","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwAE/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQP/2gAMAwEAAhADEAAAAczZEjZ4If/EABcQAAMBAAAAAAAAAAAAAAAAAAABESD/2gAIAQEAAQUCRc//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAcEAACAQUBAAAAAAAAAAAAAAAAASExQVFhkdH/2gAIAQEAAT8hZb4ITsXgsTXInF+n/9oADAMBAAIAAwAAABD/AP8A/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8Qqv/EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/EIj/xAAdEAACAgIDAQAAAAAAAAAAAAABEQAhMUFRgaHR/9oACAEBAAE/EBjoajhZtYjK/AjAEM42MzshSiEIll2+z//Z","aspectRatio":1.5,"src":"/static/85c2997b88646727d16c371094482883/6a01c/ea-resource.jpg","srcSet":"/static/85c2997b88646727d16c371094482883/fd70a/ea-resource.jpg 135w,\n/static/85c2997b88646727d16c371094482883/4aadd/ea-resource.jpg 270w,\n/static/85c2997b88646727d16c371094482883/6a01c/ea-resource.jpg 540w,\n/static/85c2997b88646727d16c371094482883/b0ea9/ea-resource.jpg 810w,\n/static/85c2997b88646727d16c371094482883/7be99/ea-resource.jpg 1080w,\n/static/85c2997b88646727d16c371094482883/b2533/ea-resource.jpg 3859w","sizes":"(max-width: 540px) 100vw, 540px","maxHeight":360,"maxWidth":540}}}}}},{"node":{"id":"2cbd13bd-be48-5edc-be53-1b19a5377523","excerpt":"(But they are in need of a makeover) I have been thinking about this topic for quite some time, but like a lot of my thoughts it had ended up as a Trello card and had went no further (yeah, I have a kanban system for blog posts and I’m still not…","frontmatter":{"date":"December 16, 2016","slug":"/blog/non-functional-requirements-are-not-nonsense","title":"Non-functional requirements are not nonsense","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQBAgP/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAVN12Zakhr//xAAaEAABBQEAAAAAAAAAAAAAAAABAAIDEiEi/9oACAEBAAEFAgCVbL1UfTRsjRn/xAAXEQEAAwAAAAAAAAAAAAAAAAAAAQMh/9oACAEDAQE/Aa4a/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERA//aAAgBAgEBPwHR0iP/xAAbEAACAgMBAAAAAAAAAAAAAAAAAQIREiExQf/aAAgBAQAGPwK176i9SrSspZDlx8MZJPFHT//EABkQAQADAQEAAAAAAAAAAAAAAAEAESExQf/aAAgBAQABPyGk04MUIXo8zhj0hUVRv0RlELBiHXdn/9oADAMBAAIAAwAAABBcH//EABgRAAMBAQAAAAAAAAAAAAAAAAABETFB/9oACAEDAQE/EGWvWXln/8QAFhEBAQEAAAAAAAAAAAAAAAAAARBh/9oACAECAQE/EAeEP//EABwQAQACAgMBAAAAAAAAAAAAAAERIQAxQWHw0f/aAAgBAQABPxAwwr72fusRlAR0bpZ9rDiCFlN72jhBVkHsJPuG6a1DMF4JTlph3n//2Q==","aspectRatio":1.5,"src":"/static/2ff69245e3588ff72b06c6ec0707df41/6a01c/makeover.jpg","srcSet":"/static/2ff69245e3588ff72b06c6ec0707df41/fd70a/makeover.jpg 135w,\n/static/2ff69245e3588ff72b06c6ec0707df41/4aadd/makeover.jpg 270w,\n/static/2ff69245e3588ff72b06c6ec0707df41/6a01c/makeover.jpg 540w,\n/static/2ff69245e3588ff72b06c6ec0707df41/b0ea9/makeover.jpg 810w,\n/static/2ff69245e3588ff72b06c6ec0707df41/7be99/makeover.jpg 1080w,\n/static/2ff69245e3588ff72b06c6ec0707df41/b35f6/makeover.jpg 5184w","sizes":"(max-width: 540px) 100vw, 540px","maxHeight":360,"maxWidth":540}}}}}},{"node":{"id":"e52ca73d-f62c-5003-bb9a-552d6050e0ac","excerpt":"This post is simply a list of gotchas for anyone using the ServiceStack services/API framework in conjunction with RestAngular client-side JavaScript framework.  ServiceStack For me, ServiceStack is the best API framework available to anyone working…","frontmatter":{"date":"April 26, 2016","slug":"/blog/chasm-restangular-servicestack","title":"Crossing The Chasm with ServiceStack and RestAngular","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABAACA//EABYBAQEBAAAAAAAAAAAAAAAAAAIAAf/aAAwDAQACEAMQAAABV0EyGoU8/8QAGhAAAgMBAQAAAAAAAAAAAAAAAQIAEiERIv/aAAgBAQABBQK6mKw5dJbyownf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAES/9oACAEDAQE/AZGX/8QAGBEBAQADAAAAAAAAAAAAAAAAAQACEiH/2gAIAQIBAT8Bcl6W9//EABsQAAEEAwAAAAAAAAAAAAAAAAEAEBEiMVFh/9oACAEBAAY/Aq5VgxOlPG//xAAZEAEAAwEBAAAAAAAAAAAAAAABABEhQVH/2gAIAQEAAT8haoXXYLo9Ij7ClLYNu1RHKZP/2gAMAwEAAgADAAAAEL/P/8QAGBEBAAMBAAAAAAAAAAAAAAAAAQARQaH/2gAIAQMBAT8QGqSLx5P/xAAYEQADAQEAAAAAAAAAAAAAAAAAASERof/aAAgBAgEBPxCkCbKun//EABwQAQEBAAMAAwAAAAAAAAAAAAERACExUUFxkf/aAAgBAQABPxAY4uUdGjXQvBKfWUiD83d5yK+5MIpWfMzYVPTf/9k=","aspectRatio":1.5,"src":"/static/9565d9701635eab3adacf737d62dce9c/6a01c/rope-bridge.jpg","srcSet":"/static/9565d9701635eab3adacf737d62dce9c/fd70a/rope-bridge.jpg 135w,\n/static/9565d9701635eab3adacf737d62dce9c/4aadd/rope-bridge.jpg 270w,\n/static/9565d9701635eab3adacf737d62dce9c/6a01c/rope-bridge.jpg 540w,\n/static/9565d9701635eab3adacf737d62dce9c/b0ea9/rope-bridge.jpg 810w,\n/static/9565d9701635eab3adacf737d62dce9c/7be99/rope-bridge.jpg 1080w,\n/static/9565d9701635eab3adacf737d62dce9c/d1cf3/rope-bridge.jpg 2908w","sizes":"(max-width: 540px) 100vw, 540px","maxHeight":360,"maxWidth":540}}}}}},{"node":{"id":"895f77bb-f779-5059-a564-401ff78a2a67","excerpt":"If there is one subject that causes controversy, confusion and gnashing of teeth amongst the AngularJS community, its whether to use a service, factory or a provider. This post is my attempt to rationalise this most controversial of topics. In order…","frontmatter":{"date":"April 11, 2016","slug":"/blog/angularjs-service-factory-provider","title":"AngularJS Wars - Service, Factory or Provider?","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEA//EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAbV1YhLA/8QAGxAAAgIDAQAAAAAAAAAAAAAAAAIBIQQREhP/2gAIAQEAAQUC87lLbGVpg0cn/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGRAAAgMBAAAAAAAAAAAAAAAAAAEQETEh/9oACAEBAAY/AtK6W250/8QAHBAAAwABBQAAAAAAAAAAAAAAAAERcSExQVHx/9oACAEBAAE/IVvXgmlNeUjWj5KZXY28H//aAAwDAQACAAMAAAAQcw//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAaEAEAAgMBAAAAAAAAAAAAAAABABEhMZFR/9oACAEBAAE/ELERHxYRhqxUNEtY0rAMclQycihpyKdI/9k=","aspectRatio":1.5,"src":"/static/fe82c2231fc3c2ac96b7a01cb00f71c6/6a01c/star-wars.jpg","srcSet":"/static/fe82c2231fc3c2ac96b7a01cb00f71c6/fd70a/star-wars.jpg 135w,\n/static/fe82c2231fc3c2ac96b7a01cb00f71c6/4aadd/star-wars.jpg 270w,\n/static/fe82c2231fc3c2ac96b7a01cb00f71c6/6a01c/star-wars.jpg 540w,\n/static/fe82c2231fc3c2ac96b7a01cb00f71c6/b0ea9/star-wars.jpg 810w,\n/static/fe82c2231fc3c2ac96b7a01cb00f71c6/7be99/star-wars.jpg 1080w,\n/static/fe82c2231fc3c2ac96b7a01cb00f71c6/d137c/star-wars.jpg 4875w","sizes":"(max-width: 540px) 100vw, 540px","maxHeight":360,"maxWidth":540}}}}}},{"node":{"id":"fbf0a53f-83a6-5e7d-b846-4e9d152594d1","excerpt":"This post tackles a common assumption of the TOGAF Architecture Development Framework (ADM), and suggests a more practical approach that is familiar to those with a software development background. For those not intimately familiar with the TOGAF…","frontmatter":{"date":"March 07, 2016","slug":"/blog/togaf-adm-big-bang-theory","title":"TOGAF ADM and the Big Bang Theory","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIBBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABxWGiuSV//8QAGBABAAMBAAAAAAAAAAAAAAAAAQIQMSH/2gAIAQEAAQUCiXF5g7//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAaEAACAgMAAAAAAAAAAAAAAAAAAREhEDFB/9oACAEBAAE/IejITGrLkoezB//aAAwDAQACAAMAAAAQDw//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAbEAEAAwEBAQEAAAAAAAAAAAABABEhMVFB8P/aAAgBAQABPxAKoz2cpX2OImZYBu9gEJecv97G22f/2Q==","aspectRatio":1.5,"src":"/static/af6d8e80aca31b3f997eef5327522f90/6a01c/firework.jpg","srcSet":"/static/af6d8e80aca31b3f997eef5327522f90/fd70a/firework.jpg 135w,\n/static/af6d8e80aca31b3f997eef5327522f90/4aadd/firework.jpg 270w,\n/static/af6d8e80aca31b3f997eef5327522f90/6a01c/firework.jpg 540w,\n/static/af6d8e80aca31b3f997eef5327522f90/b0ea9/firework.jpg 810w,\n/static/af6d8e80aca31b3f997eef5327522f90/7be99/firework.jpg 1080w,\n/static/af6d8e80aca31b3f997eef5327522f90/b35f6/firework.jpg 5184w","sizes":"(max-width: 540px) 100vw, 540px","maxHeight":360,"maxWidth":540}}}}}},{"node":{"id":"22589d7b-a04c-554b-bdf8-1b80500f72cb","excerpt":"It was when I first started out as a developer I first heard the phrase “designed on the back of a fag packet” (cigarette packet for those not in the UK or Ireland). It was a typically Scottish (i.e. acerbic) way of describing the lack of diligence…","frontmatter":{"date":"February 22, 2016","slug":"/blog/cigarette-packet-design","title":"Cigarette Packet Design","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMFBP/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAGdTlul1iw//8QAGxAAAwACAwAAAAAAAAAAAAAAAQIDABEEEhP/2gAIAQEAAQUCntr9Q7nhLk2003Poatn/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAACAgMBAAAAAAAAAAAAAAAAAQIREDEyQf/aAAgBAQAGPwK0vRwvR2xknj//xAAbEAADAAIDAAAAAAAAAAAAAAAAAREhQTFRYf/aAAgBAQABPyF6TtFozRTr0wlxLoZII05ZUf/aAAwDAQACAAMAAAAQ48//xAAXEQEBAQEAAAAAAAAAAAAAAAABABEh/9oACAEDAQE/EMUu3//EABYRAQEBAAAAAAAAAAAAAAAAAAEAIf/aAAgBAgEBPxASy//EAB0QAQACAgIDAAAAAAAAAAAAAAEAESExQaFRcZH/2gAIAQEAAT8QzElXTs4qaa0bMhS+K7haNRr5jRi0S5J2fYi637n/2Q==","aspectRatio":1.5,"src":"/static/0ceba1abc4c161185af2674b1c9bc156/6a01c/cigarette-packet-design-2.jpg","srcSet":"/static/0ceba1abc4c161185af2674b1c9bc156/fd70a/cigarette-packet-design-2.jpg 135w,\n/static/0ceba1abc4c161185af2674b1c9bc156/4aadd/cigarette-packet-design-2.jpg 270w,\n/static/0ceba1abc4c161185af2674b1c9bc156/6a01c/cigarette-packet-design-2.jpg 540w,\n/static/0ceba1abc4c161185af2674b1c9bc156/b0ea9/cigarette-packet-design-2.jpg 810w,\n/static/0ceba1abc4c161185af2674b1c9bc156/7be99/cigarette-packet-design-2.jpg 1080w,\n/static/0ceba1abc4c161185af2674b1c9bc156/242b1/cigarette-packet-design-2.jpg 6000w","sizes":"(max-width: 540px) 100vw, 540px","maxHeight":360,"maxWidth":540}}}}}}]}},"pageContext":{"limit":9,"skip":0,"numPages":1,"currentPage":1}},"staticQueryHashes":["228695001","3868140423"]}