explain the logic of this :
 let skipa=x
         let skipb=x
         let opt={depth:64,layers:20}
         let proj=tf.layers.dense({
            units: opt.depth,
            activation: "sigmoid"
        })
         let size=512*16
        for (let k = 0; k < opt.layers; k++) {
       
            let x1 = tf.layers.dense({
                units: size,
                activation: "linear",
              
            }).apply(x)
        
           let x2 = tf.layers.dense({
                units: size,
                activation: "linear"
            }).apply(tf.layers.permute({dims:[2,1]}).apply(x))
           
          let xa = tf.layers.dot({
                axes: [2, 2]
            }).apply([x1, x2])
           let  xaf=tf.layers.activation({activation:"softmax"}).apply(xa)
            skipa = tf.layers.add().apply([skipa, xaf])

            xa=skipa
            xa = tf.layers.dense({
                units: size,
                activation: "relu"
            }).apply(xa)
        
            let x3 = tf.layers.dense({
                units: size,
                activation: "tanh"
            }).apply(x)
        
           let x4 = tf.layers.dense({
                units: size,
                activation: "tanh"
            }).apply(tf.layers.permute({dims:[2,1]}).apply(x))
            let xb = tf.layers.dot({
                axes: [2, 2]
            }).apply([x3, x4])
            let  xbf=tf.layers.activation({activation:"softmax"}).apply(xb)
            skipb = tf.layers.add().apply([skipa, xbf])
  There should be exactly 4 paragraphs separated by the markdown divider: ***.
user