Question: > 
> *No, not that thing in powerpoint*
> 
> 
> 

You will be given a string, and a 2D array of boolean values. The 2D array will represent a picture.

You will be creating art out of it.

Let me show you how.

The steps to art
================

First, you create a square which fits the 2d array, with the string.

Like if the string is 'PPCG', and the picture is 4x3, the square should be like this.

```
PPCG
PCGP
CGPP
GPPC

```

Now in the square, erase all characters which the corresponding boolean is 0, or the corresponding boolean doesn't exist.

Let me show you. If the 2D array is

```
1001
0110
1001

```

And the square is same to the above (above this one), the result should be like:

```
P  G
 CG 
C  P

```

Now output the result.

Test data is not made yet. Will add ASAP.
=========================================

Rules
=====

* General [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'") rules apply, including loopholes.

Answer: 
[05AB1E](https://github.com/Adriandmen/05AB1E), ~~17~~ ~~16~~ ~~15~~ 19 bytes
=============================================================================

```
ÂDÂø¦¨Dgú€Ás)˜»Igi¨

```

[Try it online!](https://tio.run/##ASsA1P8wNWFiMWX//8OCRMOCw7jCpsKoRGfDuuKCrMOBcynLnMK7SWdpwqj//2Fi "05AB1E – Try It Online")

**Explanation**

Example with `input = golf`

```
ÂDÂ                  # bifurcate, duplicate, bifurcate
                     # STACK: 'golf', 'flog', 'flog', 'golf'
   ø                 # zip the top 2 items
                     # STACK: 'golf', 'flog', ['fg', 'lo', 'ol', 'gf']
    ¦¨               # remove the first and last element
                     # STACK: 'golf', 'flog', ['lo', 'ol']
      Dg             # get the length of the list
                     # STACK: 'golf', 'flog', ['lo', 'ol'], 2
        ú            # prepend that many spaces to each element
                     # STACK: 'golf', 'flog', ['  lo', '  ol']
         €Á          # rotate each right
                     # STACK: 'golf', 'flog', ['o  l', 'l  o']
           s         # swap the top 2 items
                     # STACK: 'golf', ['o  l', 'l  o'], 'flog'
            )˜       # wrap in a flattened list
                     # STACK: ['golf', 'o  l', 'l  o', 'flog']
              »      # join on newline
               Igi¨  # if input is length 1, remove last char

```

The fix for 1-letter input was quite expensive.  

I feel like a different approach might be better now.
Java, 191 bytes
===============

```
(s)->{PrintStream o=System.out;int l=s.lenght();o.println(s);for(int i=0;i<l;i++){o.printf("%"+"s%"+(l-1)+"s%n",s.charAt(i),s.charAt(l-1-i));for(int i=0;i<l;i++){o.print(s.charAt(l-1-i));}}};

```